mirror of
https://github.com/andvikt/mega_hacs.git
synced 2025-12-11 00:54:28 +05:00
64 lines
4.8 KiB
Markdown
64 lines
4.8 KiB
Markdown
Контроллер оповещает сервер о своих событиях, например, нажали кнопку выключателя или сработал датчик движения,
|
||
для этого в интеграции реализован http-сервер, для его работы необходимо прописать
|
||
в настройках меги следующие параметры:
|
||
|
||
```yaml
|
||
srv: "192.168.1.4:8123" # ip:port вашего HA
|
||
script: "mega" # это api интеграции, к которому будет обращаться контроллер
|
||
```
|
||
|
||
!!! note "Внимание!"
|
||
Не используйте **srv loop** на контроллере - это может приводить к ложным срабатываниям входов. Вместо srv loop
|
||
интеграция будет сама обновлять все состояния портов с заданным интервалом
|
||
|
||
За события будут отвечать объекты типа *binary_sensor* - их статус будет меняться на **on** при замыкании
|
||
контакта, на **off** при размыкании, а так же для более сложного контроля (двойные, долгие нажатия) предусмотрены
|
||
события с типом *mega.binary*, [об этом подробнее в разделе события](events.md)
|
||
|
||
Так же вы можете [воспользоваться моими шаблонами автоматизаций](blueprints.md) для быстрого понимания, как всем этим
|
||
пользоваться.
|
||
|
||
## Ответ на входящие события от контроллера
|
||
|
||
Контроллер ожидает ответ от сервера, который может быть сценарием (по умолчанию интеграция отвечает `d`, что означает
|
||
запустить то что прописано в поле act в настройках порта).
|
||
|
||
*Внимание!* По умолчанию в настройках интеграции стоит опция `имитация ответа` - это означает, что сервер вместо ответа
|
||
делает запрос к меге с необходимой командой - это вынужденная мера, тк встроенный в HA сервер разбивает пакет на части,
|
||
а контроллер не работает с такими пакетами. В целом, `имитация ответа` полностью закрывает эту проблему, единственный
|
||
недостаток - это небольшая задержка в ответе.
|
||
|
||
Для максимальной скорости реакции, можно воспользоваться
|
||
[аддоном](https://github.com/andvikt/mega_addon/tree/master/mega-proxy), подробности в документации аддона.
|
||
|
||
[Поддерживаются шаблоны HA.](yaml.md#binary) Это может быть использовано, например, для запоминания яркости (тк сам контроллер этого не
|
||
умеет).
|
||
|
||
## Отладка шаблонов {: #temp-debug }
|
||
Отладку шаблонов рекомендуется проводить в специальном меню HA, которое находится в `Панель разработчика` - `Шаблоны`
|
||
|
||
Вот пример, с которого можно начать:
|
||
```yaml
|
||
{## Переменные, которые передает контроллер, указываются только в тесте ##}
|
||
{% set m = 1%}
|
||
{% set pt = 2%}
|
||
{% set mdid = 'mega'%}
|
||
{## Шаблон ответа ##}
|
||
{% if m in [0, 1] %}d{% endif %}
|
||
```
|
||
|
||
## Отладка ответов http-сервера {: #http-response }
|
||
Для отладки ответов сервера можно самим имитировать запросы контроллера, если у вас есть доступ к консоли HA:
|
||
```shell
|
||
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`
|
||
|
||
При этом необходимо так же в настройках интеграции прописать хост, с которого вы будете обращаться,
|
||
[подробнее](yaml.md#allow_hosts)
|
||
|
||
И тогда можно с локальной машины делать запросы на ваш сервер HA:
|
||
```shell
|
||
curl -v -X GET 'http://192.168.88.1.4:8123/mega?pt=5&m=1&mdid=mymega1'
|
||
```
|
||
В ответ будет приходить либо d, либо скрипт, который вы настроили |