4.8 KiB
Контроллер оповещает сервер о своих событиях, например, нажали кнопку выключателя или сработал датчик движения, для этого в интеграции реализован http-сервер, для его работы необходимо прописать в настройках меги следующие параметры:
srv: "192.168.1.4:8123" # ip:port вашего HA
script: "mega" # это api интеграции, к которому будет обращаться контроллер
!!! note "Внимание!" Не используйте srv loop на контроллере - это может приводить к ложным срабатываниям входов. Вместо srv loop интеграция будет сама обновлять все состояния портов с заданным интервалом
За события будут отвечать объекты типа binary_sensor - их статус будет меняться на on при замыкании контакта, на off при размыкании, а так же для более сложного контроля (двойные, долгие нажатия) предусмотрены события с типом mega.binary, об этом подробнее в разделе события
Так же вы можете воспользоваться моими шаблонами автоматизаций для быстрого понимания, как всем этим пользоваться.
Ответ на входящие события от контроллера
Контроллер ожидает ответ от сервера, который может быть сценарием (по умолчанию интеграция отвечает d, что означает
запустить то что прописано в поле act в настройках порта).
Внимание! По умолчанию в настройках интеграции стоит опция имитация ответа - это означает, что сервер вместо ответа
делает запрос к меге с необходимой командой - это вынужденная мера, тк встроенный в HA сервер разбивает пакет на части,
а контроллер не работает с такими пакетами. В целом, имитация ответа полностью закрывает эту проблему, единственный
недостаток - это небольшая задержка в ответе.
Для максимальной скорости реакции, можно воспользоваться аддоном, подробности в документации аддона.
Поддерживаются шаблоны HA. Это может быть использовано, например, для запоминания яркости (тк сам контроллер этого не умеет).
Отладка шаблонов {: #temp-debug }
Отладку шаблонов рекомендуется проводить в специальном меню HA, которое находится в Панель разработчика - Шаблоны
Вот пример, с которого можно начать:
{## Переменные, которые передает контроллер, указываются только в тесте ##}
{% set m = 1%}
{% set pt = 2%}
{% set mdid = 'mega'%}
{## Шаблон ответа ##}
{% if m in [0, 1] %}d{% endif %}
Отладка ответов http-сервера {: #http-response }
Для отладки ответов сервера можно самим имитировать запросы контроллера, если у вас есть доступ к консоли HA:
curl -v -X GET 'http://localhost:8123/mega?pt=5&m=1&mdid=mymega1'
Где mymega1 - id устройства mega, который нужно узнать по url http://192.168.1.14/sec/?cf=2
При этом необходимо так же в настройках интеграции прописать хост, с которого вы будете обращаться, подробнее
И тогда можно с локальной машины делать запросы на ваш сервер HA:
curl -v -X GET 'http://192.168.88.1.4:8123/mega?pt=5&m=1&mdid=mymega1'
В ответ будет приходить либо d, либо скрипт, который вы настроили