Внимание! В разработке и тестируется!
Поскольку официальной интеграции Home Assistant с мессенджером MAX не существует, реализуем подключение через промежуточный механизм — HTTP‑веб‑хуки + скрипт‑прокладка. Ниже — полный пошаговый гайд.
Схема работы
- Home Assistant отправляет уведомления в скрипт‑прокладку (через HTTP).
- Скрипт‑прокладка пересылает сообщение в MAX Messenger (через его API/веб‑интерфейс).
- MAX Messenger доставляет уведомление пользователю.
Шаг 1. Подготовка сервера для скрипта‑прокладки
Вам понадобится:
- сервер/VPS с публичным IP или доменом;
- Python 3.8+;
- доступ к API MAX Messenger (уточните у поддержки MAX).
Шаг 2. Создание скрипта‑прокладки (Python)
Создайте директорию для скрипта:
mkdir ~/max_notifier
cd ~/max_notifier
Создайте файл max_notifier.py:
from flask import Flask, request, jsonify
import requests
import logging
app = Flask(__name__)
# Настройки MAX Messenger (замените на реальные)
MAX_API_URL = "https://api.maxmessenger.com/v1/send"
MAX_TOKEN = "ваш_токен_max"
MAX_RECIPIENT = "id_получателя_в_max"
@app.route('/send', methods=['POST'])
def send_max_message():
try:
data = request.get_json()
message = data.get('message', 'Уведомление из Home Assistant')
title = data.get('title', 'HA Alert')
payload = {
"token": MAX_TOKEN,
"recipient": MAX_RECIPIENT,
"message": f"{title}\n{message}"
}
response = requests.post(MAX_API_URL, json=payload, timeout=10)
........
if response.status_code == 200:
return jsonify({"status": "success"}), 200
else:
return jsonify({"status": "error", "details": response.text}), response.sta
except Exception as e:
logging.error(f"Ошибка: {e}")
return jsonify({"status": "error", "details": str(e)}), 500
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
Для этого:
Чтобы получить токен для вашего бота в MAX, выполните следующие действия: 1. Откройте мессенджер MAX и найдите бота @MasterBot через поиск. 2. Начните с ним диалог. 3. Создайте нового бота, отправив команду /create. 4. При создании бота укажите: * Уникальный ник (начинается с латинской буквы, содержит цифры, заканчивается на bot/_bot, минимум 11 символов) * Имя бота (до 59 символов, можно использовать русский и латинский алфавит) 5. После создания бота вы автоматически получите токен. Для управления токеном используйте специальные команды в диалоге с @MasterBot: * /get_token — просмотреть текущий токен * /refresh_token — создать новый токен * /revoke — отозвать текущий токен Важно! Токен предоставляет полный доступ к боту. Храните его в безопасном месте и не передавайте третьим лицам. При компрометации токена немедленно отозвайте его и создайте новый. Пример токена: AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw
Как создать своего чат-бота в MAX?
Если вы являетесь физическим лицом, то создать собственного чат-бота в MAX не получится.
Если у вас зарегистрированы ООО или ИП и вы зарегистрированы на платформе МСП.РФ, вы можете создать чат-бота. Также создание чат-ботов доступно ООО или ИП при наличии размещённого приложения в RuStore.
Если у вас остались вопросы или возникли трудности, напишите на почту
На данный момент создание ботов через @MasterBot действительно временно недоступно для обычных пользователей. Однако есть альтернативный способ — создание бота для бизнеса через Платформу партнёров:
* Кто может создать бота:
* Компании малого и среднего бизнеса (МСП)
* Индивидуальные предприниматели
* Юридические лица с приложениями в RuStore
Порядок действий:
1. Создайте и верифицируйте организацию в MAX
2. Получите доступ к Платформе для партнёров на business.max.ru
3. Создайте чат-бот через интерфейс платформы
4. После модерации получите токен в разделе «Чат-бот и мини-приложение»
Важно знать:
* Для физических лиц создание ботов временно приостановлено
* Токен выдаётся только после успешной модерации
* Публичная регистрация ботов будет возобновлена позже
Пока функция недоступна, вы можете:
* Подготовить сценарии работы бота
* Написать базу ответов
* Продумать структуру диалогов
* Подготовить визуальные материалы
Следите за официальными новостями платформы в боте MAX: web.max.ru/maxbot — там сообщат о возобновлении возможности создания ботов для обычных пользователей.
━━━━━━━━━━━━━━━━━━
На основе: github.com mx-radar.ru xn--80aakdatfmqiqnw.xn--p1ai
Установка зависимостей
pip install flask requests
Запуск скрипта
python max_notifier.py
Убедитесь, что порт 5000 открыт в фаерволе.
Шаг 3. Настройка Home Assistant
1. Добавьте веб‑хук в configuration.yaml
webhook: max_notifier: url: http://ВАШ_СЕРВЕР:5000/send method: POST content_type: application/json
2. Создайте сервис уведомлений (notify.yaml)
- name: max_messenger platform: rest resource: http://ВАШ_СЕРВЕР:5000/send method: POST headers: Content-Type: application/json data_template: '{"message": "{{ message }}", "title": "{{ title|default("HA Alert") }}"}'
Замените ВАШ_СЕРВЕР на IP/домен вашего сервера со скриптом.
Шаг 4. Пример автоматизации
Добавьте в automations.yaml:
automation: - alias: "Уведомление в MAX при движении" trigger: platform: state entity_id: binary_sensor.motion_living to: "on" action: - service: notify.max_messenger data: message: "Движение в гостиной! Время: {{ now().strftime('%H:%M') }}" title: "Охранная система"
Шаг 5. Тестирование
Вручную вызовите уведомление:
service:notify.max_messenger
data:
message: "Тест уведомления через MAX"
title: "Проверка"
Проверьте, пришло ли сообщение в MAX Messenger.
Установите зависимости
sudo apt update
sudo apt install python3-pip
pip3 install flask requests
Шаг 5. Запустите скрипт
python3 max_notifier.py
Для фоновой работы используйте nohup или systemd (см. ниже).
Настройка автозапуска (systemd)
Создайте сервис‑файл:sudo nano /etc/systemd/system/max_notifier.service
Вставьте конфигурацию:Замените
user на имя вашего пользователя.ini
[Unit]
Description=MAX Messenger Notifier
After=network.target
[Service]
ExecStart=/usr/bin/python3 /home/user/max_notifier/max_notifier.py
WorkingDirectory=/home/user/max_notifier
Restart=always
User=user
Group=user
[Install]
WantedBy=multi-user.target
Активируйте сервис:
sudo systemctl daemon-reexec
sudo systemctl enable max_notifier.service
sudo systemctl start max_notifier.service
Проверьте статус:
sudo systemctl status max_notifier.service
Важные моменты
Порт 5000Убедитесь, что он открыт в фаерволе:
sudo ufw allow 5000
Для безопасности лучше сменить на другой порт (например, 8080) в скрипте и настройках HA.
Comments powered by CComment