add new docs

This commit is contained in:
Andrey
2021-08-03 11:23:53 +03:00
parent 54f1ebeda3
commit 912440c079
10 changed files with 616 additions and 0 deletions

64
docs/http.md Normal file
View File

@@ -0,0 +1,64 @@
Контроллер оповещает сервер о своих событиях, например, нажали кнопку выключателя или сработал датчик движения,
для этого в интеграции реализован 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, либо скрипт, который вы настроили