max-notify-ha
Тип проекта: личный проект
MaxNotify - интеграция для отправки сообщений в мессенджер MAX из Home Assistant
Звезды: 51
Форки: 3
Обновлен: 16 мая 2026 г.
📰 Релизы
Релиз: v2.0.3 (10.05.2026)
[v2.0.3] — 2026-05-10
Важно
- Исправлен ответ в тот же чат из автоматизаций: если передать
config_entry_idиrecipient_idиз событияmax_notify_received, действие отправит сообщение именно в этот диалог, а не во все чаты выбранной записи. - Поля текста, заголовка, подписи к медиа и текста при редактировании теперь корректно работают как шаблоны Home Assistant в редакторе автоматизаций.
Добавлено
- В действиях для фото, документов, видео, удаления и редактирования можно указывать
recipient_idтак же, как вsend_message. - В интерфейсе действий появился явный переключатель
notifyдля текста, рассылки всем, фото, документов и видео. - Понятная ошибка, если в выбранной записи интеграции нет чата с указанным
recipient_id.
Изменено
notify: falseтеперь последовательно передаётся в тело запроса при отправке через основные действия и через сущностьnotify.- В документации уточнены каналы: для них используется отрицательный
recipient_id, как для групп. - В примерах автоматизаций отдельно показан сценарий ответа в тот же чат через данные входящего события.
- В AUTOMATIONS.md добавлены рабочие паттерны: прямые уведомления из automation, ветвление по
trigger.id, кнопка «Удалить», временное сообщение «формируется», фото/видео с камер и динамическое фото по URL. - Для удаления сообщений добавлено предупреждение: у бота должны быть права читать и удалять сообщения; в группах и каналах обычно нужна роль администратора с нужными разрешениями.
Ссылки
- Текущий релиз: v2.0.3
- Сравнение с прошлым релизом: v2.0.2…v2.0.3
Релиз: v2.0.2 (03.05.2026)
[v2.0.2] — 2026-05-03
Важно
- Slash-команды для официального API и для режима notify.a161.ru описаны отдельно: где можно регистрировать команды бота в Max, а где только задаётся список разрешённых команд для входящих — без смешения в настройках и в коде провайдеров.
Добавлено
- В README: как обрабатываются входящие
/командыв режиме a161; оговорены ограничения long polling на стороне Max (частота запросов, таймаут, размер выборки) и почему для продакшена по-прежнему предпочтителен WebHook при доступном публичном HTTPS. - Понятные сообщения об ошибках при вызове служб MaxNotify в интерфейсе Home Assistant (русский и английский).
- Журналы интеграции в основном на русском — проще искать причину по логам.
Изменено
- Таймаут long polling выровнен с документацией платформы (30 секунд).
- При добавлении записи интеграции не создаются лишние устаревшие сенсоры идентификаторов сообщений на каждый чат; остаются актуальные сенсоры по чату и два глобальных устаревших на запись (для совместимости со старыми версиями). Ранее появившиеся лишние сущности при желании можно удалить из реестра объектов вручную.
- Внутренняя унификация сборки исходящих сообщений между провайдерами — меньше дублирования, проще сопровождение.
Надёжность
- Уточнения в работе webhook и циклов опроса/обновлений для устойчивого приёма сообщений.
Ссылки
- Текущий релиз: v2.0.2
- Сравнение с прошлым релизом: v2.0.1…v2.0.2
Релиз: v2.0.1 (26.04.2026)
[v2.0.1] — 2026-04-26
Важно
- Патч после 2.0.0: исправлены миграция и обратная совместимость после смены имён уведомлений и подзаписей; в том числе восстановлена отправка в группы и устранена типичная ошибка «получатель не определён» на старых конфигурациях.
Добавлено
- Локальное сохранение числового идентификатора получателя, привязанного к подзаписи, чтобы рассылка не зависела от того, как сущность отображается в интерфейсе.
- При запуске интеграции автоматическое восстановление и заполнение этих привязок без ручных действий в настройках.
- У сущностей уведомлений — расширенные атрибуты для диагностики (откуда взят получатель, данные подзаписи, ссылка на настройки) и краткая текстовая подпись получателя для быстрого распознавания в списке.
- В формах служб MaxNotify в выборе цели — только уведомления этой интеграции, без посторонних сервисов уведомлений Home Assistant.
- Дополнительные устаревшие сенсоры последних идентификаторов входящих и исходящих сообщений (на каждого получателя), явно помеченные как устаревшие — для сохранения работы старых автоматизаций и карточек.
Изменено
- Более устойчивое определение получателя: сначала сохранённое значение, затем настройки подзаписи, поддержка очень старых форматов имён и заголовков; корректная обработка групп, которые в прошлом могли отображаться как личный чат.
- Службы отправки и сопутствующие действия принимают устаревшие имена сущностей уведомлений и сопоставляют их с актуальными.
Надёжность
- Более корректная работа отложенной записи служебного состояния интеграции в нестандартных условиях.
Ссылки
- Текущий релиз: v2.0.1
- Сравнение с прошлым релизом: v2.0.0…v2.0.1
Релиз: v2.0.0 (25.04.2026)
[2.0.0] — 2026-04-25
Важно
- Релиз 2.0.0 — это крупное обновление архитектуры интеграции, а не точечный патч.
- Изменения относительно
v1.4.11: 90 файлов, +14612 / -8149 строк.
Архитектура
- Интеграция переведена на provider-архитектуру:
- общий слой:
providers/base.py,providers/registry.py,providers/capabilities.py,providers/updates_service.py; - реализации провайдеров:
providers/official/*иproviders/notify_a161/*.
- общий слой:
- Крупные модули (
notify,config_flow,services,updates,webhook) разнесены по provider-слою: вынесены маршрутизация API, polling/webhook-циклы, проверка capabilities и сервисная валидация. - Добавлена документация для контракта провайдера и PR-процесса:
docs/PROVIDER_SPEC.mddocs/PROVIDER_PULL_REQUEST.mddocs/README.md
Добавлено
- Расширенное удаление сообщений в
max_notify.delete_message:- по
message_id; - по
message_ids; - по
date(календарный день); - по периоду
from+to.
- по
- Приоритет режимов удаления:
message_id->message_ids->date->from/to.
- Новое действие
delete_last_outgoing_message:- доступно для official API;
- работает для групповых чатов.
- Поддержка нескольких вложений в одном сообщении (общий лимит платформы до 12 слотов с учётом клавиатуры).
- Slash-команды улучшены: во входящих событиях выделяется отдельный
update_typeдля/команд, добавленыcommandиargs, а для official API поддержана синхронизация списка команд бота с платформой.
Изменено
- Для удаления по дате/периоду используется схема:
GET /messages(получение id);- затем удаление по одному
message_idна запрос.
- Добавлен ответ сервиса удаления:
{"deleted": N}. - В
services.yamlи UI выровнены порядок и структура полей,formatвedit_messageоформлен как dropdown. - Legacy-сенсоры
message_idдля старыхunique_idпереведены в совместимый режим: старые сущности не ломают миграцию и помечаются как устаревшие, а актуальные сенсоры привязаны к чатам.
Ограничения по провайдерам
- Official API:
- поддерживает удаление по date/period;
- поддерживает
delete_last_outgoing_message.
- notify.a161.ru:
- поддерживает удаление по ID;
- не поддерживает удаление по date/period;
- не поддерживает
delete_last_outgoing_message.
Надёжность и обработка ошибок
- Для API-ошибок удаления введены переводимые
ServiceValidationErrorс понятными сообщениями в UI:- 403 (нет прав) — рекомендация выдать боту права администратора и удаление сообщений;
- 401 (проблема токена);
- 404 (сообщение не найдено/недоступно для удаления);
- сетевые ошибки.
- При ошибке удаления сервис прекращает выполнение (без «тихого» продолжения).
- Логи
GET /messages for delete rangeсокращены: выводятся только найденныеmessage_id.
Производительность и лимиты
- Добавлен глобальный пейсинг исходящих API-запросов:
OUTBOUND_API_MAX_REQUESTS_PER_SECOND = 30;- отдельный модуль
outbound_rate.py; - ограничение действует для исходящих API-запросов (send/edit/delete/polling/subscriptions), а скачивание медиа по внешним URL в этот лимит не включено.
Документация
- Полностью обновлены:
README.mdAUTOMATIONS.md- переводы и строки UI (
translations/*.json,strings.json)
- Добавлены подробные разделы по удалению (
message_id/message_ids/date/from-to), различиям official vs notify.a161 и контрактуIntegrationCapabilitiesдля разработчиков.
Тесты
- Тестовый контур расширен под provider-модель:
tests/providers/official/*tests/providers/notify_a161/*- новые сценарии по удалениям (включая date/period), лимитам вложений и API-rate-limit, роутингу flow, capabilities и parsing.
- Регрессионные сценарии удаления/дат/периода покрыты отдельными тестами.
Ссылки
- Изменения относительно прошлой версии: v1.4.11…v2.0.0
- Скачать релиз: v2.0.0
Релиз: v1.4.11 (20.04.2026)
[1.4.11] — 2026-04-20
Добавлено
- Slash-команды бота (официальный API Max): в мастере настройки и в параметрах записи после шагов с кнопками клавиатуры — меню команд (добавление и удаление). Список синхронизируется с платформой при сохранении и при загрузке записи интеграции (аналог
setMyCommandsв API бота). - Входящие события: если в тексте сообщения есть slash-команда (в том числе вариант с упоминанием бота вроде
@бот /команда), для записи официального API в данных событияmax_notify_receivedполеupdate_typeстановитсяslash_command, чтобы в автоматизациях проще отличать такие сообщения от обычного текста. - Сенсоры идентификаторов сообщений по чатам: для каждого настроенного получателя (отдельный чат или пользователь) создаются диагностические сенсоры последнего входящего и последнего исходящего
message_id; состояние восстанавливается после перезапуска (RestoreSensor). Старые сенсоры «на всю запись интеграции» сохранены как устаревшие: они повторяют значение только если в записи настроен ровно один получатель (чтобы не смешивать id разных чатов). - Персистентное хранение последних id сообщений и связанных маркеров в каталоге
.storageHome Assistant — значения не теряются при перезапуске.
Исправлено
- notify.a161.ru и групповые чаты: при первой настройке записи можно указать отрицательный
recipient_id(групповой Chat ID), если у прокси связка выдана для группы, или положительныйuser_idдля личного диалога; исходящие запросы для группы уходят сchat_id. Уnotify.a161.ruна одну выдачу ключа приходится ровно один получатель; другой чат или пользователь — это другой API-ключ и отдельная запись интеграции. В сервисах параметрыchat_id/user_id/recipient_idдля этого режима должны совпадать с тем единственным получателем, который зафиксирован при настройке (произвольное «перенаправление» в другой чат той же записью не поддерживается). - Сенсоры и запись исходящих id: исправлена ситуация, когда идентификатор сообщения после успешной отправки не сохранялся и сенсоры не обновлялись: учёт
subentry.dataкак отображаемого слоя (Mapping, не толькоdict, как в Home Assistant), более надёжный разборmessage_idиз ответа API (midи др., запасной разбор текста ответа, снятие BOM). - Вызовы сервисов: если не указан
config_entry_id, запись MaxNotify может определяться поentity_idвыбранных сущностейnotify(удобно при нескольких интеграциях).
Изменено
- Отправка через платформу
notify: при явномrecipient_id/chat_id/user_idв параметрах выполняется проверка по записи интеграции. Для официального API цель должна быть среди настроенных чатов и пользователей. Дляnotify.a161.ruдопустим только один согласованный с токеном получатель (см. выше); иначе отправка отклоняется с понятной ошибкой.
Документация и интерфейс
- README: раздел про сенсоры
message_id, уточнения поentity_id,config_entry_idиrecipient_idдляsend_message,send_document,delete_message,edit_message. - Обновлены
services.yaml, строки интерфейса и переводы (RU/EN) под slash-команды, новые сенсоры и сообщения об ошибках.
Ссылки
- Изменения относительно прошлой версии: v1.4.10…v1.4.11
Релиз: v2.0.0_alpha2 (17.04.2026)
[2.0.0_alpha2] — 2026-04-17
Важно
- Вторая альфа линии 2.0 после предыдущей альфы: добавлены возможности поверх той же архитектуры провайдеров. Перед опорой на версию в «боевой» среде имеет смысл проверить сценарии с несколькими вложениями (фото и видео), slash-командами на официальном API и удалением сообщений.
Добавлено
- Несколько вложений в одном сообщении (до 12 слотов с учётом клавиатуры под сообщением): в max_notify.send_photo и max_notify.send_video можно передать список файлов (локальные пути или URL) вместо одного. В max_notify.send_document по-прежнему один файл за вызов; список файлов для документа не поддерживается.
- Slash-команды для записей официального Max API: в мастере и в настройках записи после шагов с кнопками — меню команд (добавление и удаление), синхронизация с платформой при сохранении и при загрузке записи. Во входящих событиях вызовы вида
/командаили с упоминанием бота помечаются отдельным типом обновления, чтобы их проще отличать от обычного текста в автоматизациях. - Массовое удаление: в max_notify.delete_message можно указать один идентификатор сообщения или несколько (списком или через запятую); удаление выполняется по очереди с паузой между запросами.
- Новое действие max_notify.delete_last_outgoing_message: в групповом чате найти и удалить последнее исходящее сообщение бота (с настройкой, сколько последних сообщений просмотреть в истории). В личном чате вызов отклоняется с понятной ошибкой. Поддерживается у официального API; у notify.a161.ru — нет.
- Ограничения на раскладку кнопок под сообщением (число рядов, кнопок в ряду, общие лимиты).
Исправлено
- Сенсор идентификатора последнего входящего сообщения по чату: раньше в него могли попадать и исходящие сообщения, из‑за чего значение смешивало вход и исход; теперь запись выполняется только для реальных новых сообщений в чате по данным приёма (без обновлений, которые относятся к slash-командам и аналогичным случаям).
Изменено
- Переработаны исходящая отправка и общий слой провайдеров: лимиты вложений и размеров загрузки, сбор сообщений, доработки для официального API и notify.a161.
- Приём входящих: исправлен разбор команд в тексте с упоминанием бота.
- Документация для разработчиков сторонних API: старый общий гайд заменён на две отдельные статьи (что нужно от оператора API и как оформить изменения в репозитории); обновлено оглавление раздела документации.
- Тексты для пользователей и примеры автоматизаций в репозитории приведены в соответствие с новыми возможностями.
Тесты
- Расширен набор автоматических проверок: удаление последнего исходящего, лимиты вложений, мастер настройки, приём сообщений, действия интеграции и проверка параметров вызовов.
Ссылки
- Изменения относительно прошлой альфы: v2.0.0_alpha1…v2.0.0_alpha2
Релиз: v2.0.0_alpha1 (16.04.2026)
[2.0.0_alpha1] — 2026-04-15
Важно
- Это альфа-релиз крупного рефакторинга 2.0: внутренняя архитектура интеграции переведена на модель провайдеров. Основные провайдеры сейчас: official (
platform-api.max.ru) и notify.a161.ru`. - Обновление затрагивает большой объём кода (масштабная декомпозиция и перенос логики по модулям), поэтому версия отмечена как alpha для ранней проверки.
Архитектура
- Выполнена полная разбивка монолитной логики на provider-слои:
- реестр провайдеров, базовые абстракции, capabilities, lifecycle;
- отдельные реализации для
officialиnotify_a161(API, config/options flow, send, updates, webhook).
- Введены новые инфраструктурные модули для flow/UI/subentry и общих provider-сервисов.
- Ключевые старые «тяжёлые» модули (
config_flow,notify,updates,webhook,services) существенно упрощены и теперь в основном оркестрируют provider-логику.
Для разработчиков
- Добавлена документация
docs/PROVIDERS.md— практический гайд по подключению нового backend-провайдера:- какие API-данные нужны;
- какие файлы/классы реализовать;
- как зарегистрировать провайдер и переводы;
- какие тесты добавить.
- В
READMEдобавлена ссылка на эту документацию.
Сервисы, схемы и переводы
- Обновлены
services,schemas,stringsи переводы (RU/EN) под новую provider-архитектуру. - Файл
services.yamlудалён в рамках миграции на новый путь описания сервисов и UI-текстов.
Тесты
- Тестовый контур перестроен под provider-подход:
- добавлены отдельные тесты для
officialиnotify_a161(capabilities, webhook/token-pool, normalize updates и др.); - обновлены существующие базовые тесты (
helpers,notify,updates,services,schemas,const).
- добавлены отдельные тесты для
Ссылки
- Изменения относительно прошлой версии: v1.4.10...v2.0.0_alpha1
Релиз: v1.4.10 (15.04.2026)
[1.4.10] — 2026-04-15
Добавлено
- Новый сервис
max_notify.send_text_to_all(экспериментально): отправка текстового сообщения всем настроенным получателям во всех записях MaxNotify (со стандартной клавиатурой и/или своимиbuttons, как вsend_message). - В сервисы отправки добавлен параметр
format(text/markdown/html), который переопределяет формат сообщений интеграции на один вызов:max_notify.send_messagemax_notify.send_photo(формат подписи)max_notify.send_document(формат подписи)max_notify.send_video(формат подписи)
Изменено
- Для
notify.a161.ru+ Polling изменена защитная логика отключения приёма:- вместо фиксированных 24 часов теперь настраиваемый период неактивности 1–3 суток (по умолчанию 3);
- если за выбранный период не было ни входящих сообщений, ни успешных отправок с кнопками, приём автоматически переключается на «Только отправка» (уведомление в Home Assistant).
Улучшено
- Диагностика Polling GET
/updates:- при ошибках создаётся запись в «Ремонты» (Repairs) с кратким описанием причины (токен/доступ/временные проблемы сервера и т.п.);
- в режиме DEBUG в лог пишется воспроизводимая команда
curlдля ручной проверки запроса (включая токен).
- Улучшена совместимость отправки сообщений при передаче только
recipient_id(безchat_id/user_id) — идентификатор корректно трактуется и маршрутизируется.
Документация и интерфейс
- Обновлены README и AUTOMATIONS.md: для
notify.a161.ruописаны Polling, поддержка кнопок через прокси и правило автопереключения на «Только отправка». - Обновлены описания сервисов, тексты мастера/настроек и переводы (RU/EN) под новые параметры
format, сервисsend_text_to_allи настройку периода неактивности.
Ссылки
- Изменения относительно прошлой версии: v1.4.9…v1.4.10
Релиз: v1.4.9 (12.04.2026)
[1.4.9] — 2026-04-12
Исправлено
- Скачивание медиа по
https://(отправка фото, документа, видео по URL): исправлена проверка TLS для типичных случаев wildcard и внутренних имён хоста, когда цепочка сертификата доверенна, но имя в URL не совпадает с SAN. Для загрузки файла с URL (не для запросов к API Max /notify.a161.ru) по умолчанию проверяется цепочка до УЦ, а сверка hostname отключена. Полное отключение проверки по-прежнему только черезdisable_ssl. Та же логика для ветки Digest, использующейrequests.
Документация
- README: оглавление с якорями по разделам, кнопка My Home Assistant для быстрого добавления репозитория в HACS, отдельные подразделы установки через HACS и вручную, ссылки «наверх» в конце блоков.
- AUTOMATIONS.md: оглавление и якоря; примечания обновлены под официальный API и
notify.a161.ru(событиеmax_notify_receivedпри Polling, кнопки в обоих режимах в рамках сервиса, уточнение про отрицательныйrecipient_idтолько для официального API).
Ссылки
- Изменения относительно прошлой версии: v1.4.8…v1.4.9
Релиз: v1.4.8 (11.04.2026)
[1.4.8] — 2026-04-11
Добавлено
- Авторизация при скачивании медиа по URL для
max_notify.send_photo,max_notify.send_documentиmax_notify.send_video:url_auth_type:basic,digestилиbearer;- для basic и digest —
url_auth_loginиurl_auth_password(или учётные данные в самом URL видаhttp://логин:пароль@host/...); - для bearer —
url_auth_token.
- Если в URL или в параметрах указаны учётные данные,
url_auth_typeобязателен — иначе сервис вернёт понятную ошибку валидации в Home Assistant.
Изменено
- Повторные попытки при нестабильной сети и части ответов сервера:
- для запросов POST upload-url добавлены повторы с задержками при сетевых сбоях и HTTP-статусах вроде 429, 5xx, 408, 425;
- при отправке сообщений в Max минимальное число попыток согласовано с тем же профилем задержек, чтобы transient-ошибки чаще проходили без ручного повтора.
- Поле
url_basic_auth(логин:пароль) помечено как устаревшее: для basic рекомендуетсяurl_auth_type: basicи пара логин/пароль;url_basic_authбудет удалён в версии 1.5.0 (для digest это поле не используется). - Поля
chat_idиuser_idв сервисах отправки помечены как устаревшие в пользуrecipient_id; удаление запланировано в версии 1.5.0 (см. также README).
Документация и интерфейс
- Обновлены README,
services.yaml, строки интерфейса и переводы (RU/EN) под новые поля URL-авторизации и тексты про устаревание параметров.
Ссылки
- Изменения относительно прошлой версии: v1.4.7…v1.4.8
Релиз: v1.4.7 (10.04.2026)
[1.4.7] — 2026-04-10
Добавлено
- Для режима
notify.a161.ruдобавлен полноценный приём входящих через Polling updates queue:- выбор режима приёма «Только отправка / Polling» в мастере и в настройках;
- новый шаг настройки интервала опроса
/updates(updates_interval, диапазон 2-30 секунд, по умолчанию 5 секунд).
- В сервисы отправки медиа добавлена опция
url_basic_auth(форматлогин:пароль) для скачивания файлов по URL с BasicAuth:max_notify.send_photomax_notify.send_documentmax_notify.send_video
- Для URL вида
http://логин:пароль@host/...учётные данные также поддерживаются автоматически.
Изменено
- Для
notify.a161.ruдобавлена отправка inline-кнопок для текста и при отправке фото/документов/видео (где поддерживается API сервиса). - Сенсор последнего входящего сообщения теперь создаётся по режиму приёма, а не только по типу интеграции: при включённом приёме (в т.ч.
notify.a161.ru+ polling) сенсор входящих доступен. - Интерфейс, переводы, manifest, HACS и документация унифицированы по новому названию: MaxNotify (вместо Max Notify).
- В
READMEиservices.yamlобновлены описания сервисов и добавлены пояснения поurl_basic_auth.
Улучшено
- Для
notify.a161.ruрасширена совместимость с форматами ответов/updates(reply/result/data, list/dict/string) с нормализацией во внутренний формат события. - Улучшена дедупликация callback-событий: приоритет ключа по
callback_id, что снижает риск дублей. - Повышена устойчивость жизненного цикла интеграции:
- более безопасный перезапуск polling при reload/reconfigure;
- защита от накопления duplicate update listeners;
- thread-safe планирование reload через
hass.add_job(...).
Автоматическое поведение для notify.a161.ru
- Добавлена защитная логика для режима polling без кнопок:
- если включён polling, но кнопки не настроены, запускается grace-период;
- при отсутствии отправок с кнопками в течение 24 часов режим автоматически переводится в «Только отправка»;
- запись интеграции переименовывается под новый режим, в Home Assistant создаётся уведомление.
Ссылки
- Изменения относительно прошлой версии: v1.4.6…v1.4.7
Релиз: v1.4.6 (07.04.2026)
[1.4.6] — 2026-04-07
Исправлено
- Исправлена ошибка, из-за которой отправка могла падать при сетевых таймаутах/кратковременных проблемах соединения с API Max.
Теперь для сетевых ошибок и таймаутов добавлены повторные попытки с задержками.
Добавлено
- В сервисы отправки медиа добавлена опция
disable_ssl(отключение проверки SSL для конкретного вызова):max_notify.send_photomax_notify.send_videomax_notify.send_document
- Опция полезна для источников с self-signed или некорректными сертификатами.
Улучшено
- Унифицирован таймаут чтения файлов по URL для отправки медиа (единый timeout вместо разных значений в отдельных ветках).
- Исправлены и унифицированы тексты раздела «Кнопки» в переводах и сервисных описаниях (RU/EN), чтобы форматы кнопок были описаны одинаково и без неоднозначностей.
Совместимость с Home Assistant
- Улучшена проверка минимальной версии Home Assistant:
- в мастере настройки при несовместимой версии показывается понятная ошибка с требуемой версией из
manifest.json; - при загрузке уже существующей записи интеграции добавлена жесткая runtime-проверка: несовместимая запись не загружается;
- при несовместимости создается запись в Repairs с пояснением;
- если для записи был включен WebHook (official API), интеграция пытается снять подписку WebHook в API Max перед блокировкой загрузки.
- в мастере настройки при несовместимой версии показывается понятная ошибка с требуемой версией из
Ссылки
- Изменения относительно прошлой версии: v1.4.5…v1.4.6
Релиз: v1.4.5 (06.04.2026)
[1.4.5] — 2026-04-06
Интерфейс вызова сервисов
- В формах сервисов Max Notify (отправка текста, фото, документа, видео, удаление и правка сообщения) поле «Сущность уведомления» снова показывает доступные цели: у фильтра списка оставлен только домен
notify(без привязки кintegrationв селекторе Home Assistant). В списке могут отображаться и другие службыnotify.*(другие интеграции или YAML вродеnotifyчерезrestна notify.a161.ru) — нужно выбирать сущность именно этой интеграции Max Notify. - Режим
notify.a161.ruи записи без сохранённого типа в данных, но с заголовком, содержащимnotify.a161.ru, снова однозначно определяются как этот режим во всех проверках, где это важно.
Официальный API Max: WebHook, HTTPS и режимы приёма
- WebHook предполагает, что у Home Assistant настроен внешний HTTPS-URL (доступ из интернета для серверов Max). Подробно — в README (раздел «Сеть», сценарии с Nabu Casa / reverse proxy).
- При каждой загрузке интеграции выполняется проверка: если выбран приём WebHook, но собрать корректный внешний HTTPS-вебхук нельзя, интеграция снимает подписки WebHook в Max, переводит запись в режим «Только отправка», очищает секрет вебхука, обновляет заголовок записи и создаёт запись о проблеме (repair) с подсказкой проверить Настройки → Система → Сеть.
- В журнал (INFO) при старте официальной записи добавлена строка диагностики: доступен ли HTTPS для вебхука, итоговый URL и заданные внешний/внутренний адреса.
- Один и тот же токен бота нельзя использовать одновременно для Long Polling на одной записи интеграции и WebHook на другой: конфликтующий режим скрыт в мастере, при сохранении настроек показывается ошибка. В одной записи по-прежнему можно переключать режим (снятие подписок при необходимости).
- Поля ввода токена и секретов в мастере настроены так, чтобы браузер по возможности не предлагал сохранить пароль (autocomplete off).
Режим notify.a161.ru
- Для видео улучшены повторные попытки отправки при необходимости (согласно логике сервиса).
Документация и переводы
- README и тексты интерфейса (RU/EN) обновлены под новое поведение WebHook и сети.
Ссылки
- Изменения относительно прошлой версии: v1.4.4…v1.4.5
Релиз: v1.4.4 (05.04.2026)
[1.4.4] — 2026-04-04
Официальный API Max: кнопки-ссылки
- В клавиатуре сообщения можно задать кнопки типа «ссылка» (
link): подпись и URL, по нажатию открывается сайт в браузере. - В URL допускаются только протоколы http и https (требование API). Иначе в Home Assistant показывается понятная ошибка валидации, а не сырой ответ сервера.
- Настройка через UI: при добавлении/редактировании кнопки выбирается тип «Ссылка» и поле URL; в сервисах — поле
urlу кнопки сtype: link(см. README и подсказки в формах).
Режим notify.a161.ru
- Лимит размера файла перед загрузкой унифицирован: до 10 МБ для фото, документов и видео (одна проверка для всех типов вложений).
- Между успешными исходящими сообщениями для одной записи интеграции выдерживается пауза не менее 1 секунды — снижает нагрузку на API, если из автоматизаций подряд уходит много отдельных сообщений. На официальный API Max это не распространяется.
Документация
- README, services.yaml и переводы интерфейса обновлены: кнопки
link, лимит 10 МБ и пауза 1 с дляnotify.a161.ru.
Ссылки
- Изменения относительно прошлой версии: v1.4.3…v1.4.4
Релиз: v1.4.3 (04.04.2026)
[1.4.3] — 2026-04-03
Режим notify.a161.ru: возможности и лимиты
- Видео — доступен сервис
max_notify.send_video(как у официального API, с учётом ограничений сервиса). Перед загрузкой проверяется размер до 10 МБ; при превышении в интерфейсе Home Assistant показывается понятная ошибка. - Удаление и правка сообщений — сервисы
max_notify.delete_messageиmax_notify.edit_messageбольше не блокируются для этого режима: запросы уходят на APInotify.a161.ru(без версииv=в URL, как ожидает сервис). Фактическая поддержка операций зависит от сервиса; по ответу сервера видно успех или ошибку. - Фото и документы — при слишком большом файле вместо только записи в журнал показывается ошибка валидации в UI (лимит порядка 4 МБ). Для ожидания обработки вложения на стороне сервера (
attachment.not.ready) используются повторы с паузами и параметрcount_requests— в том числе дляnotify.a161.ru(фото, документ, видео), а не только одна попытка. - Текст с кнопками в вызове — для
notify.a161.ruпо-прежнему уходит только текст; inline-клавиатура и кнопки из настроек не отправляются в API (поведение явно зафиксировано в коде и логах).
Интерфейс настройки (мастер и опции)
- Для
notify.a161.ruубраны шаги с настройкой клавиатуры к сообщениям (и при первой настройке, и при открытии шестерёнки / Перенастроить): остаются токен, формат сообщений и при первичной настройке — user_id. - Записи, у которых в данных не был сохранён тип интеграции, но заголовок содержит
notify.a161.ru, снова распознаются как этот режим; при сохранении настроек тип записывается в конфигурацию.
Сенсоры
- Для
notify.a161.ruне создаётся сенсор последнего входящего сообщения (входящие обновления Max для этого режима недоступны). Сенсор последнего исходящего сообщения сохраняется.
Документация
- README обновлён: актуальный список возможностей и ограничений
notify.a161.ru, описаниеcount_requests, разделы поsend_video,delete_message,edit_message, пояснение про настройки без мастера кнопок.
Ссылки
- Изменения относительно прошлой версии: v1.4.2…v1.4.3
Релиз: v1.4.2 (03.04.2026)
[1.4.2] — 2026-04-03
Новое и улучшено
- Режим
notify.a161.ru: фото и файлы — доступны сервисыmax_notify.send_photoиmax_notify.send_document(путь/URL к файлу и при необходимости подпись). Ограничения по размеру и форматам задаёт сторона сервиса (в интеграции проверяется лимит порядка 4 МБ до загрузки). Поведение официального APIplatform-api.max.ruпри отправке изображений и документов не менялось. - Интерфейс «Добавить чат» — если в списке выбрана интеграция с
notify.a161.ru, вместо ошибки показывается понятное сообщение: в этом режиме нельзя добавлять чаты к записи, для другого получателя нужна новая интеграция Max Notify. - Совместимость с ответами API
notify.a161.ruпри загрузке: корректная обработка ответов без ожидаемого заголовкаContent-Type: application/jsonи разных форм ответа после загрузки файла (в том числе с полямиtokenиfileId).
По-прежнему для notify.a161.ru
- Не поддерживаются видео (
send_video), редактирование и удаление сообщений. - Клавиатура и свои кнопки в вызовах сервисов для этого режима не работают; при отправке медиа кнопки из вызова игнорируются (как и раньше для текста).
- Сервис по-прежнему может отвечать пустым телом без
message_id.
Документация
- В README обновлены ограничения и возможности режима
notify.a161.ru, описания сервисовsend_photo/send_document.
Ссылки
- Изменения относительно прошлой версии: v1.4.1…v1.4.2
Релиз: v1.4.1 (01.04.2026)
[1.4.1] — 2026-04-01
Изменено
- Для сервиса
notify.a161.ruдобавлена отправка в группы
Ссылки
- Изменения относительно прошлой версии: v1.4.0…v1.4.1
Релиз: v1.4.0 (27.03.2026)
[1.4.0] — 2026-03-27
Новое
- Добавлен новый режим подключения через сторонний сервис
notify.a161.ru(выбор типа интеграции на первом шаге настройки):- отдельная ветка мастера настройки;
- отдельные поля/подсказки в UI;
- отдельные переводы (RU/EN);
- валидация токена формата сервиса (36 символов).
- Для пользовательских кнопок в сервисах добавлен новый удобный формат многорядной раскладки:
- каждый объект верхнего списка трактуется как отдельный ряд;
- старые форматы полностью сохранены (обратная совместимость).
Изменено
- Логика отправки сообщений теперь учитывает тип интеграции:
- официальный режим использует
platform-api.max.ru; - режим стороннего сервиса использует
notify.a161.ru.
- официальный режим использует
- В документации (README, AUTOMATIONS, сервисные примеры) разделены сценарии для официального API и стороннего сервиса.
- Для видео на официальном API увеличены задержка и окно повторов при ожидании обработки вложений — стабильнее для больших файлов.
Ограничения режима notify.a161.ru
- Поддерживается только отправка текстовых сообщений.
- Поддержка inline-кнопок (
buttons,send_keyboard) в этом режиме отключена. - Не поддерживаются сервисы:
- отправка фото/документов/видео;
- редактирование сообщений;
- удаление сообщений.
- При отправке сервис может возвращать пустой HTTP-ответ без тела (без
message_id).
Улучшено в диагностике
- После успешной отправки текста в лог пишется полный ответ сервера.
- Добавлена попытка извлечь
message_idиз ответа с явным логом результата (найден / не найден).
Ссылки
- Изменения относительно прошлой версии: v1.3.1…v1.4.0
Релиз: v1.3.1 (23.03.2026)
[1.3.1] — 2026-03-23
Важно: как теперь работают кнопки под сообщением
С 1.3.1 правила одинаковые для текста, фото, документа, видео и для редактирования сообщения (когда вы задаёте поле с кнопками):
- Если включено «Отправлять клавиатуру» (так по умолчанию):
не указали свои кнопки в вызове — к сообщению подставляется стандартная клавиатура из настроек интеграции; указали непустые свои кнопки — к сообщению идут только они, без склейки со стандартной; указали кнопки, но список пустой — снова используется стандартная клавиатура из настроек. - Если «Отправлять клавиатуру» выключено: стандартная клавиатура не подставляется; прикрепляются лишь явно заданные в вызове кнопки (если они не пустые).
Так проще предсказать результат в автоматизациях и не зависеть от того, какой именно сервис вы вызываете.
Улучшено в интерфейсе Home Assistant
- Для фото, документа, видео и редактирования сообщения в формах сервисов появились названия и пояснения к переключателю «Отправлять клавиатуру» (русский и английский).
- Тексты подсказок для кнопок и клавиатуры приведены в соответствие с описанной выше логикой.
Ссылки
- Изменения относительно прошлой версии: v1.3.0…v1.3.1
Релиз: v1.3.0 (22.03.2026)
[1.3.0] — 2026-03-22
Важно: обязательно обновиться, если включён Long Polling
При приёме сообщений режимом Long Polling в прошлых версиях Home Assistant мог долго ждать завершения загрузки или писать в лог предупреждение о таймауте при старте — как будто интеграция «висит» на этапе настройки.
В 1.3.0 опрос сервера Max перенесён так, что он не блокирует запуск Home Assistant: после обновления система должна нормально дозагружаться, а входящие сообщения по-прежнему обрабатываются.
Новое
- Удаление сообщения — отдельное действие сервиса: указали идентификатор сообщения и нужный чат/интеграцию, сообщение удаляется в Max. Удобно для автоматизаций «убрать старое меню».
- Редактирование сообщения — можно изменить текст, формат (обычный текст, Markdown или HTML), заменить или убрать кнопки под сообщением.
- Свои кнопки к любой отправке — при отправке текста, фото, документа или видео в дополнительных полях можно задать кнопки, которых нет в настройках интеграции (например, одноразовое меню для сценария). Они добавляются к уже настроенной клавиатуре, если она к сообщению прикрепляется.
- Больше попыток для тяжёлых файлов — для фото, документа и видео можно указать, сколько раз повторять отправку, если сервер не сразу принял большой файл. Сами паузы между попытками работают предсказуемее.
- Два сенсора на каждую интеграцию — отдельно запоминается последнее отправленное из Home Assistant сообщение и последнее входящее (по данным приёма). Идентификатор в интерфейсе показывается без префикса
mid., чтобы проще копировать в автоматизации. - Примеры автоматизаций — в репозитории добавлен отдельный файл с примерами вызовов сервисов и разбора входящих событий; в основном описании (README) есть на него ссылка.
Улучшено
- В событии о входящем сообщении чаще и надёжнее передаётся идентификатор сообщения; для продвинутых сценариев доступны полные данные, которые прислал Max (чтобы ничего не «терялось» в упрощённом виде).
- Подписи к полям и сообщения об ошибках в интерфейсе Home Assistant дополнены там, где появились новые действия (в том числе на русском и английском).
Ссылки
- Изменения относительно прошлой версии: v1.2.2…v1.3.0
🧾 Последние коммиты
Коммит: d4fde08 (10.05.2026)
дополнил файл AUTOMATIONS.md своими рабочими автоматизациями
Автор:
Maksim Kovalyov
Коммит: 1815d82 (10.05.2026)
документация
Автор:
Maksim Kovalyov
Коммит: 165511a (10.05.2026)
Исправил шаблоны в автоматизациях
Автор:
Maksim Kovalyov
Коммит: a3dbb1d (10.05.2026)
Merge branch 'ISS_19'
Автор:
Maksim Kovalyov
Коммит: ba8082a (10.05.2026)
документация
Автор:
Maksim Kovalyov
Коммит: a282258 (10.05.2026)
Merge branch 'ISS_18'
Автор:
Maksim Kovalyov
Коммит: c5feff0 (10.05.2026)
перевод
Автор:
Maksim Kovalyov
Коммит: 4f12755 (10.05.2026)
Исправлена «тихая» отправка для пути через сущность notify: в API уходит тот же флаг отключения уведомлений, что и при вызове служб MaxNotify. В services.yaml добавлен переключатель уведомлений в расширенных параметрах (текст, всем, фото, видео, документ). Добавлены тесты на тело запроса. В README — раздел про каналы (отрицательный ID, права админа) и про push на вебе/десктопе и мобильном (личка vs группы и каналы). Убран устаревший комментарий в коде медиаотправки.
Автор:
Maksim Kovalyov
Коммит: f11e429 (10.05.2026)
Починили рассылку во все чаты, когда в действии указаны только запись интеграции и recipient_id из события: служба теперь сама находит нужную сущность notify по этой паре и не обходит все добавленные чаты подряд. Добавили поддержку recipient_id в формах и схемах для отправки фото, документа и видео, для правки сообщения и для удаления по периоду; в интерфейсе действий снова можно явно задать recipient_id там, где это нужно. Новое сообщение об ошибке, если по записи и recipient_id не нашлось подходящей сущности notify; тест на фильтрацию целей по recipient_id. В AUTOMATIONS.md главным сценарием сделан ответ в тот же чат через config_entry_id и recipient_id из max_notify_received; убраны вводящие в заблуждение примеры только с entity_id для этого случая.
Автор:
Maksim Kovalyov
Коммит: ca2bbee (03.05.2026)
1. Разделили «регистрацию команд в Max» и «настройку списка команд в интерфейсе»: у кого что доступно — понятнее и без лишних вызовов к API. 2. Сообщения об ошибках в действиях и настройках — на русском, с нормальными формулировками, что не так и что сделать. 3. Логи интеграции на русском 4. Подтянули описание в README: лимиты long polling, slash-команды у внешнего сервиса, мелкие правки по документации, бейдж звёзд. 5. Обновили таймаут long polling под актуальные ограничения сервиса. 6. Сенсоры старых ID сообщений: совместимость с уже добавленными в Home Assistant сущностями сохранена; уточнены пояснения, что устаревшие — отдельно.
Автор:
Maksim Kovalyov