Skip to content
Andrey Viktorov edited this page Mar 23, 2021 · 11 revisions

HTTP in

hacs_badge Donate

Внимание! Не используйте 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 %}

Инструкция по отладке ответов тут

Clone this wiki locally