-
Notifications
You must be signed in to change notification settings - Fork 17
http
Внимание! Не используйте srv loop
на контроллере, это может приводить к ложным срабатываниям входов. Вместо srv loop
интеграция будет сама обновлять все состояния портов с заданным интервалом
В самой меге необходимо прописать настройки:
srv: "192.168.1.4:8123" # ip:port вашего HA
script: "mega" # это api интеграции, к которому будет обращаться контроллер
Контроллер ожидает ответ от сервера, который может быть сценарием (по умолчанию интеграция отвечает d
, что означает
запустить то что прописано в поле act в настройках порта).
Внимание! По умолчанию в настройках интеграции стоит опция имитация ответа
- это означает, что сервер вместо ответа
делает запрос к меге с необходимой командой - это вынужденная мера, тк встроенный в HA сервер разбивает пакет на части,
а контроллер не работает с такими пакетами. В целом, имитация ответа
полностью закрывает эту проблему, единственный
недостаток - это небольшая задержка в ответе.
Для максимальной скорости реакции, можно воспользоваться аддоном, подробности в документации аддона.
Поддерживаются шаблоны HA. Это может быть использовано, например, для запоминания яркости (тк сам контроллер этого не умеет). В шаблоне можно использовать параметры, которые передает контроллер (m, click, pt, mdid, mega_id)
Примеры:
mega:
mega1: # id меги, который вы сами придумываете в конфиге в UI
# начиная с v0.4.1 можно указать стандартный респонс-шаблон (и это лучше чем force_d)
# в примере ниже d будет отправлено только при условии что m=0 или 1 (что исключает отправку d на долгих нажатиях)
def_response: >-
{% if m in [0, 1] %}d{% endif %}
4: # номер порта, с которого ожидаются события
response_template: "5:2" # простейший пример без шаблона. Каждый раз когда будет приходить сообщение на этот порт,
# будем менять состояние на противоположное
5:
# пример с использованием шаблона, порт 1 будет выключен если он сейчас включен и включен с последней сохраненной
# яркостью если он сейчас выключен
response_template: >-
{% if is_state('light.some_port_1', 'on') %}
1:0
{% else %}
1:{{state_attr('light.some_port_1', 'brightness')}}
{% endif %}
6:
# в шаблон так же передаются все параметры, которые передает контроллер (pt, cnt, m, click)
# эти параметры можно использовать в условиях или непосредственно в шаблоне в виде {{pt}}
response_template: >-
{% if m==2 %}1:0{% else %}d{% endif %}
Отладку шаблонов рекомендуется проводить в специальном меню HA, которое находится в Панель разработчика
- Шаблоны
Вот пример, с которого можно начать:
{## Переменные, которые передает контроллер, указываются только в тесте ##}
{% set m = 1%}
{% set pt = 2%}
{% set mdid = 'mega'%}
{## Шаблон ответа ##}
{% if m in [0, 1] %}d{% endif %}
Инструкция по отладке ответов тут