diff --git a/readme.md b/readme.md index 5549567..f5e255a 100644 --- a/readme.md +++ b/readme.md @@ -79,50 +79,11 @@ srv: "192.168.1.4:8123" # ip:port вашего HA script: "mega" # это api интеграции, к которому будет обращаться контроллер ``` -Входы будут доступны как binary_sensor, а так же в виде событий `mega.sensor`. -События можно обрабатывать так: -```yaml -- alias: some double click - trigger: - - platform: event - event_type: mega.sensor - event_data: - pt: 1 - click: 2 - action: - - service: light.toggle - entity_id: light.some_light -``` -Для binary_sensor имеет смысл использовать режим P&R, для остальных режимов - лучше пользоваться событиями. - -Примеры использования binary_sensor: -```yaml -- alias: обработка долгих/коротких нажатий - trigger: - - platform: state - entity_id: binary_sensor.some_sensor - to: on - for: 1 # задержка на секунду - - action: - - choose: - # если кнопка все еще нажата - значит это долгое нажатие - - conditions: "{{ is_state('binary_sensor.some_sensor', 'on')}}" - sequence: - - service: light.turn_on - entity_id: light.some_light - # если кнопка уже не нажата - значит это короткое нажатие - - conditions: "{{ is_state('binary_sensor.some_sensor', 'off')}}" - sequence: - - service: light.turn_off - entity_id: light.some_light -``` - -## Ответ на входящие события от контроллера +#### Ответ на входящие события от контроллера Контроллер ожидает ответ от сервера, который может быть сценарием (по умолчанию интеграция отвечает `d`, что означает запустить то что прописано в поле act в настройках порта). -Поддерживаеются шаблоны HA. Это может быть использовано, например, для запоминания яркости (тк сам контроллер этого не +Поддерживаются шаблоны HA. Это может быть использовано, например, для запоминания яркости (тк сам контроллер этого не умеет). В шаблоне можно использовать параметры, которые передает контроллер (m, click, pt, mdid, mega_id) Примеры: @@ -130,7 +91,7 @@ script: "mega" # это api интеграции, к которому будет mega: mega1: # id меги, который вы сами придумываете в конфиге в UI 4: # номер порта, с которого ожидаются события - response_template: 5:2 # простейший пример без шаблона. Каждый раз когда будет приходить сообщение на этот порт, + response_template: "5:2" # простейший пример без шаблона. Каждый раз когда будет приходить сообщение на этот порт, # будем менять состояние на противоположное 5: # пример с использованием шаблона, порт 1 будет выключен если он сейчас включен и включен с последней сохраненной @@ -148,30 +109,13 @@ mega: {% if m==2 %}1:0{% else %}d{% endif %} ``` -## Отладка ответов -Для отладки ответов сервера можно самим имитировать запросы контроллера, если у вас есть доступ к консоли -HA: -```shell -curl -v -X GET 'http://localhost:8123/mega?pt=5&m=1' -``` -Если доступа нет, нужно в файл конфигурации добавить ip компьюетра, с которого вы хотите делать запросы, например: -```yaml -mega: - allow_hosts: - - 192.168.1.1 -``` -И тогда можно с локальной машины делать запросы на ваш сервер HA: -```shell -curl -v -X GET 'http://192.168.88.1.4:8123/mega?pt=5&m=1' -``` -В ответ будет приходить либо `d`, либо скрипт, который вы настроили +## binary_sensor и события -## События -`binary_sensor` срабатывает когда цифровой выход принимает значение 'ON'. `binary_sensor` имеет смысл использовать -только с режимом входа P&R +Входы будут доступны как binary_sensor, а так же в виде событий `mega.sensor` и `mega.binary`. +Для корректной работы binary_sensor имеет смысл использовать режим P&R, для остальных режимов - лучше пользоваться +событиями. -При каждом срабатывании `binary_sensor` так же сообщает о событии типа `mega.sensor`. События можно использовать в автоматизациях, например так: ```yaml # Пример события с полями как есть прямо из меги @@ -181,21 +125,21 @@ curl -v -X GET 'http://192.168.88.1.4:8123/mega?pt=5&m=1' event_type: mega.sensor event_data: pt: 1 - cnt: 2 + click: 2 action: - service: light.toggle entity_id: light.some_light ``` События могут содержать следующие поля: -- mega_id: id как в конфиге HA -- pt: номер порта -- cnt: счетчик срабатываний -- mdid: if как в конфиге контроллера -- click: клик (подробнее в документации меги) -- value: текущее значение (только для mqtt) -- port: номер порта +- `mega_id`: id как в конфиге HA +- `pt`: номер порта +- `cnt`: счетчик срабатываний +- `mdid`: if как в конфиге контроллера +- `click`: клик (подробнее в документации меги) +- `value`: текущее значение (только для mqtt) +- `port`: номер порта -Начиная с версии 0.3.7 появилось так же событие типа mega.binary: +Начиная с версии 0.3.7 появилось так же событие типа `mega.binary`: ```yaml # Пример события с полями как есть прямо из меги - alias: some long click @@ -264,3 +208,21 @@ logger: logs: custom_components.mega: debug ``` + +#### Отладка ответов http-сервера +Для отладки ответов сервера можно самим имитировать запросы контроллера, если у вас есть доступ к консоли +HA: +```shell +curl -v -X GET 'http://localhost:8123/mega?pt=5&m=1' +``` +Если доступа нет, нужно в файл конфигурации добавить ip, с которого вы хотите делать запросы, например: +```yaml +mega: + allow_hosts: + - 192.168.1.1 +``` +И тогда можно с локальной машины делать запросы на ваш сервер HA: +```shell +curl -v -X GET 'http://192.168.88.1.4:8123/mega?pt=5&m=1' +``` +В ответ будет приходить либо `d`, либо скрипт, который вы настроили \ No newline at end of file