mirror of
https://github.com/andvikt/mega_hacs.git
synced 2025-12-11 17:14:28 +05:00
edit readme
This commit is contained in:
106
readme.md
106
readme.md
@@ -79,50 +79,11 @@ srv: "192.168.1.4:8123" # ip:port вашего HA
|
|||||||
script: "mega" # это api интеграции, к которому будет обращаться контроллер
|
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`, что означает
|
Контроллер ожидает ответ от сервера, который может быть сценарием (по умолчанию интеграция отвечает `d`, что означает
|
||||||
запустить то что прописано в поле act в настройках порта).
|
запустить то что прописано в поле act в настройках порта).
|
||||||
|
|
||||||
Поддерживаеются шаблоны HA. Это может быть использовано, например, для запоминания яркости (тк сам контроллер этого не
|
Поддерживаются шаблоны HA. Это может быть использовано, например, для запоминания яркости (тк сам контроллер этого не
|
||||||
умеет). В шаблоне можно использовать параметры, которые передает контроллер (m, click, pt, mdid, mega_id)
|
умеет). В шаблоне можно использовать параметры, которые передает контроллер (m, click, pt, mdid, mega_id)
|
||||||
|
|
||||||
Примеры:
|
Примеры:
|
||||||
@@ -130,7 +91,7 @@ script: "mega" # это api интеграции, к которому будет
|
|||||||
mega:
|
mega:
|
||||||
mega1: # id меги, который вы сами придумываете в конфиге в UI
|
mega1: # id меги, который вы сами придумываете в конфиге в UI
|
||||||
4: # номер порта, с которого ожидаются события
|
4: # номер порта, с которого ожидаются события
|
||||||
response_template: 5:2 # простейший пример без шаблона. Каждый раз когда будет приходить сообщение на этот порт,
|
response_template: "5:2" # простейший пример без шаблона. Каждый раз когда будет приходить сообщение на этот порт,
|
||||||
# будем менять состояние на противоположное
|
# будем менять состояние на противоположное
|
||||||
5:
|
5:
|
||||||
# пример с использованием шаблона, порт 1 будет выключен если он сейчас включен и включен с последней сохраненной
|
# пример с использованием шаблона, порт 1 будет выключен если он сейчас включен и включен с последней сохраненной
|
||||||
@@ -148,30 +109,13 @@ mega:
|
|||||||
{% if m==2 %}1:0{% else %}d{% endif %}
|
{% 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, а так же в виде событий `mega.sensor` и `mega.binary`.
|
||||||
`binary_sensor` срабатывает когда цифровой выход принимает значение 'ON'. `binary_sensor` имеет смысл использовать
|
Для корректной работы binary_sensor имеет смысл использовать режим P&R, для остальных режимов - лучше пользоваться
|
||||||
только с режимом входа P&R
|
событиями.
|
||||||
|
|
||||||
При каждом срабатывании `binary_sensor` так же сообщает о событии типа `mega.sensor`.
|
|
||||||
События можно использовать в автоматизациях, например так:
|
События можно использовать в автоматизациях, например так:
|
||||||
```yaml
|
```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_type: mega.sensor
|
||||||
event_data:
|
event_data:
|
||||||
pt: 1
|
pt: 1
|
||||||
cnt: 2
|
click: 2
|
||||||
action:
|
action:
|
||||||
- service: light.toggle
|
- service: light.toggle
|
||||||
entity_id: light.some_light
|
entity_id: light.some_light
|
||||||
```
|
```
|
||||||
События могут содержать следующие поля:
|
События могут содержать следующие поля:
|
||||||
- mega_id: id как в конфиге HA
|
- `mega_id`: id как в конфиге HA
|
||||||
- pt: номер порта
|
- `pt`: номер порта
|
||||||
- cnt: счетчик срабатываний
|
- `cnt`: счетчик срабатываний
|
||||||
- mdid: if как в конфиге контроллера
|
- `mdid`: if как в конфиге контроллера
|
||||||
- click: клик (подробнее в документации меги)
|
- `click`: клик (подробнее в документации меги)
|
||||||
- value: текущее значение (только для mqtt)
|
- `value`: текущее значение (только для mqtt)
|
||||||
- port: номер порта
|
- `port`: номер порта
|
||||||
|
|
||||||
Начиная с версии 0.3.7 появилось так же событие типа mega.binary:
|
Начиная с версии 0.3.7 появилось так же событие типа `mega.binary`:
|
||||||
```yaml
|
```yaml
|
||||||
# Пример события с полями как есть прямо из меги
|
# Пример события с полями как есть прямо из меги
|
||||||
- alias: some long click
|
- alias: some long click
|
||||||
@@ -264,3 +208,21 @@ logger:
|
|||||||
logs:
|
logs:
|
||||||
custom_components.mega: debug
|
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`, либо скрипт, который вы настроили
|
||||||
Reference in New Issue
Block a user