Files
mega_hacs/docs/http.md
2021-08-03 11:23:53 +03:00

64 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Контроллер оповещает сервер о своих событиях, например, нажали кнопку выключателя или сработал датчик движения,
для этого в интеграции реализован 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, либо скрипт, который вы настроили