mirror of
https://github.com/andvikt/mega_hacs.git
synced 2025-12-10 16:44:28 +05:00
add new docs
This commit is contained in:
58
docs/blueprints.md
Normal file
58
docs/blueprints.md
Normal file
@@ -0,0 +1,58 @@
|
||||
**blueprints** - это удобные шаблоны автоматизаций, которые помогают строить автоматизацию из
|
||||
интерфейса и ими легко делиться. Все ваши шаблоны доступны из специального меню.
|
||||
|
||||
[](https://my.home-assistant.io/redirect/blueprints/)
|
||||
|
||||
[Официальная документация по blueprints](https://www.home-assistant.io/docs/blueprint/)
|
||||
|
||||
## Общее
|
||||
Здесь я делюсь шаблонами, в которых используются события из моей интеграции.
|
||||
|
||||
Если вы хотите сделать что-то подобное своими руками, то можно использовать мои шаблоны как отправную точку.
|
||||
|
||||
Во всех шаблонах в качестве триггера используется событие **mega.binary** и доступен выбор типа,
|
||||
[подробное описание типов здесь](events.md#binary).
|
||||
|
||||
## Включить что-то
|
||||
Этот шаблон лучше всего подходит для включения сценариев/сцен или любых других объектов по нажатию какой-то кнопки или
|
||||
обнаружению движения.
|
||||
|
||||
!!! note "Движение"
|
||||
Датчики движения - это такие же *binary_sensor* как и обычные выключатели. В зависимости от настроек контроллера
|
||||
будут приходить события либо типа **single** (если настроен режим click), либо **press**
|
||||
|
||||
Опционально так же доступна настройка автоматического выключения по таймеру, если указан 0 (по умолчанию), таймер не
|
||||
будет использован.
|
||||
|
||||
Опционально доступен так же *блокирующий объект* и *период блокировки*. Например, если в одной комнате с датчиком
|
||||
движения есть выключатель, тогда его можно указать как *блокирующий объект* и в течении *периода блокировки*
|
||||
после нажатия выключателя события с датчика движения будут игнорироваться.
|
||||
|
||||
[](https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgist.github.com%2Fandvikt%2Fb78459f4f43862d04c7fbba20d6893c7)
|
||||
|
||||
[Исходный код](https://gist.github.com/andvikt/b78459f4f43862d04c7fbba20d6893c7)
|
||||
## Переключить состояние
|
||||
Классическое управление светом с кнопки без фиксации: нажали кнопку - свет выключился, если он сейчас включен, и наоборот.
|
||||
Если вам нужно управлять несколькими светильниками, то необходимо будет
|
||||
[создать группу света](https://www.home-assistant.io/integrations/light.group/)
|
||||
|
||||
[](https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgist.github.com%2Fandvikt%2Fefb48535b1b9d998fe3dbe9a3efcea2c)
|
||||
|
||||
[Исходный код](https://gist.github.com/andvikt/efb48535b1b9d998fe3dbe9a3efcea2c)
|
||||
## Выключатель с фиксацией
|
||||
Если выбран тип "нестрогий", то при каждом переключении состояния выключателя состоянии целевого объекта так же будет
|
||||
меняться. Этот режим рекомендуется, тк в случае переключения состояния с сервера, в случае со строгим типом будет
|
||||
"рассинхрон" - вам придется сначала выключатель привести в соответствие с текущим состоянием света.
|
||||
|
||||
Если выбран тип "строгий", то будет строгое соответсвие состояний, те выкл==выкл и наоборот.
|
||||
|
||||
[](https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgist.github.com%2Fandvikt%2F9addf966db75d0964143177963f40bb9)
|
||||
|
||||
[Исходный код](https://gist.github.com/andvikt/9addf966db75d0964143177963f40bb9)
|
||||
## Универсальный шаблон
|
||||
Универсальный шаблон, с помощью которого можно выбрать любое событие меги, привязать
|
||||
к нему набор произвольных действий
|
||||
|
||||
[](https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgist.github.com%2Fandvikt%2Fbe1f683d308050b8972f9efa8aec465f)
|
||||
|
||||
[Исходный код](https://gist.github.com/andvikt/be1f683d308050b8972f9efa8aec465f)
|
||||
15
docs/debug.md
Normal file
15
docs/debug.md
Normal file
@@ -0,0 +1,15 @@
|
||||
[Сообщить о проблеме](https://github.com/andvikt/mega_hacs/issues/new?assignees=&labels=&template=bug-report.md&title=){ .md-button .md-button--primary }
|
||||
|
||||
В первую очередь проверьте лог на наличие ошибок, доступ к логу возможен по кнопке ниже.
|
||||
|
||||
[](https://my.home-assistant.io/redirect/logs/)
|
||||
|
||||
Так же будет очень полезно прикладывать детальный лог, который можно включить в конфиге так:
|
||||
```yaml
|
||||
logger:
|
||||
default: info
|
||||
logs:
|
||||
custom_components.mega: debug
|
||||
```
|
||||
Для просмотра логов рекомендуется использовать [logviewer](https://github.com/hassio-addons/addon-log-viewer)
|
||||
|
||||
66
docs/events.md
Normal file
66
docs/events.md
Normal file
@@ -0,0 +1,66 @@
|
||||
Для быстрого старта рекомендую попробовать [мои шаблоны автоматизаций](blueprints.md)
|
||||
|
||||
## mega.binary {: #binary}
|
||||
События можно использовать только в автоматизациях как триггер типа *event*
|
||||
```yaml
|
||||
- alias: some long click
|
||||
trigger:
|
||||
- platform: event
|
||||
event_type: mega.binary
|
||||
event_data:
|
||||
entity_id: binary_sensor.some_id
|
||||
type: long
|
||||
action:
|
||||
- service: light.toggle
|
||||
entity_id: light.some_light
|
||||
```
|
||||
!!! note "Возможные варианты поля type"
|
||||
- **press**: замыкание
|
||||
- **release**: размыкание (с гарантией, что не было долгого нажатия)
|
||||
|
||||
*Эти типы доступны только в режиме click (настраивается на контроллере):*
|
||||
|
||||
- **long**: долгое нажатие
|
||||
- **long_release**: размыкание после долгого нажатия
|
||||
- **single**: одинарный клик (в режиме кликов)
|
||||
- **double**: двойной клик
|
||||
|
||||
## mega.sensor
|
||||
Этот вид событий более "технический", им имеет смысл пользоваться только если функциональности *mega.binary* не
|
||||
достаточно.
|
||||
```yaml
|
||||
# событие при перезагрузке меги
|
||||
- alias: mega restart
|
||||
trigger:
|
||||
- platform: event
|
||||
event_type: mega.sensor
|
||||
event_data:
|
||||
st: 1
|
||||
action:
|
||||
# какой-то экшн
|
||||
# Пример события с полями как есть прямо из меги
|
||||
- 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
|
||||
```
|
||||
!!! note "События могут содержать следующие поля в event_data"
|
||||
- **mega_id**: id как в конфиге HA
|
||||
- **pt**: номер порта
|
||||
- **cnt**: счетчик срабатываний
|
||||
- **mdid**: id как в конфиге контроллера
|
||||
- **click**: клик (подробнее в документации меги)
|
||||
- **port**: номер порта
|
||||
|
||||
|
||||
## Отладка
|
||||
Чтобы понять, какие события приходят, лучше всего воспользоваться панелью разработчика (кнопка ниже) и подписаться
|
||||
на вкладке события на событие `mega.binary` или `mega.sensor`, понажимать физические кнопки на меге.
|
||||
|
||||
[](https://my.home-assistant.io/redirect/developer_events/)
|
||||
64
docs/http.md
Normal file
64
docs/http.md
Normal 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, либо скрипт, который вы настроили
|
||||
29
docs/i2c.md
Normal file
29
docs/i2c.md
Normal file
@@ -0,0 +1,29 @@
|
||||
I2C-датчики будут добавлены автоматически в HA с названием, соответствующим порту, типу и адресу
|
||||
(если необходим), название и entity_id вы всегда можете поменять из интерфейса HA, [а также дополнительно их
|
||||
кастомизировать с помощью yaml](yaml.md#sensors).
|
||||
|
||||
Как и все остальные датчики, i2c подчиняется единому интервалу обновления, который указывается в меню интеграции.
|
||||
|
||||
## Список i2c-датчиков, поддерживаемых интеграцией: {: #list}
|
||||
!!! note ""
|
||||
Под поддерживаемыми подразумеваются те датчики, у которых учтены все возможные
|
||||
дополнительные значения, а так же корректно определены типы
|
||||
|
||||
Неподдерживаемые датчики все равно будут работать, но будет отображаться только основное значение (i2c_par=0),
|
||||
а тип будет определен как общий, универсальный для всех датчиков.
|
||||
|
||||
- HTU21D/Si7021
|
||||
- SHT31
|
||||
- MAX44009
|
||||
- BH1750
|
||||
- TSL2591
|
||||
- BMP180
|
||||
- BME280
|
||||
- T6703/T67xx
|
||||
- MLX90614
|
||||
- PTsensor
|
||||
- MCP9600
|
||||
- DPS368
|
||||
- ADS1115/ADS1015
|
||||
|
||||
Так же заводите issue если какой-то датчик отсутсвует в этом списке, но поддерживается контроллером.
|
||||
69
docs/index.md
Normal file
69
docs/index.md
Normal file
@@ -0,0 +1,69 @@
|
||||
# MegaD HomeAssistant integration
|
||||
[](https://github.com/custom-components/hacs)
|
||||
[](https://yoomoney.ru/to/410013955329136)
|
||||
<a class="github-button" href="https://github.com/andvikt/mega_hacs" data-icon="octicon-star" data-show-count="true" aria-label="Star andvikt/mega_hacs on GitHub">Star</a>
|
||||
|
||||
[Сообщить о проблеме](https://github.com/andvikt/mega_hacs/issues/new?assignees=&labels=&template=bug-report.md&title=){ .md-button .md-button--primary }
|
||||
|
||||
Интеграция с [MegaD-2561, MegaD-328](https://www.ab-log.ru/smart-house/ethernet/megad-2561)
|
||||
|
||||
|
||||
Если вам понравилась интеграция, не забудьте поставить звезду на гитхабе - вам не сложно, а мне приятно ) А если
|
||||
интеграция очень понравилась - еще приятнее, если вы воспользуетесь кнопкой доната )
|
||||
|
||||
Обновление прошивки MegaD можно делать прямо из HA с помощью [аддона](https://github.com/andvikt/mega_addon.git)
|
||||
|
||||
Предложения по доработкам просьба писать в [discussions](https://github.com/andvikt/mega_hacs/discussions), о проблемах
|
||||
создавать [issue](https://github.com/andvikt/mega_hacs/issues/new/choose)
|
||||
## Основные особенности {: #mains }
|
||||
- Настройка в [веб-интерфейсе](settings.md) + [yaml](yaml.md)
|
||||
- Все порты автоматически добавляются как устройства (для обычных релейных выходов создается
|
||||
`light`, для шим - `light` с поддержкой яркости, для цифровых входов `binary_sensor`, для датчиков
|
||||
`sensor`)
|
||||
- Поддержка rgb+w лент как с использованием диммеров, так и адресных лент на чипах ws28xx и подобных,
|
||||
[подробнее про rgbw](yaml.md#rgb)
|
||||
- Плавное диммирование для любых диммируемых объектов (в том числе с аппаратной поддержкой и без),
|
||||
[подробнее про smooth](smooth.md)
|
||||
- Возможность работы с несколькими megad
|
||||
- Обратная связь по [http](http.md)
|
||||
- Автоматическое восстановление состояний выходов после перезагрузки контроллера
|
||||
- Автоматическое добавление/изменение объектов после перезагрузки контроллера
|
||||
- [События](events.md) на двойные/долгие нажатия
|
||||
- Команды выполняются друг за другом без конкурентного доступа к ресурсам megad, это дает гарантии надежного исполнения
|
||||
большого кол-ва команд (например в сценах). Каждая следующая команда отправляется только после получения ответа о
|
||||
выполнении предыдущей.
|
||||
- поддержка [ds2413](https://www.ab-log.ru/smart-house/ethernet/megad-2w) в том числе несколько шиной (начиная с версии 0.4.1)
|
||||
- поддержка расширителей MegaD-16I-XT, MegaD-16R-XT, MegaD-16PWM (начиная с версии 0.5.1)
|
||||
- поддержка всех возможных датчиков в режиме I2C-ANY, полный список поддерживаемых датчиков
|
||||
[по ссылке](i2c.md) (начиная с версии 0.6.1)
|
||||
|
||||
## Установка {: #install}
|
||||
Если вы уже раньше устанавливали HACS, то просто поищите в списке интеграций HACS MegaD, если нет, то сначла необходимо
|
||||
установить HACS - это витрина сторонних интеграций. [Инструкция по установке](https://hacs.xyz/docs/installation/installation)
|
||||
|
||||
Далее внутри интерфейса HACS ищем MegaD: `HACS - Integrations - Explore`, в поиске ищем MegaD.
|
||||
|
||||
На этом установка не закончена, вам потребуется прописать настройки каждого контроллера, [подробнее](settings.md)
|
||||
|
||||
!!! note "Альтернативный способ установки"
|
||||
```shell
|
||||
# из папки с конфигом
|
||||
wget -q -O - https://raw.githubusercontent.com/andvikt/mega_hacs/master/install.sh | bash -
|
||||
```
|
||||
Не забываем перезагрузить HA
|
||||
|
||||
## Обновления
|
||||
Обновления выполняются так же в меню HACS.
|
||||
Информация об обновлениях приходит с некоторым интервалом, чтобы вручную проверить наличие обновлений
|
||||
нажмите три точки возле интеграции в меню HACS и нажмите `обновить информацию`
|
||||
|
||||
Чтобы включить возможность использования бета-версий, зайдите в HACS, найдите интеграцию MegaD, нажмите три точки,
|
||||
там кнопка "переустановить" или reinstall, дальше нужно нажать галку "показывать бета-версии"
|
||||
|
||||
## Зависимости {: #deps }
|
||||
Для максимальной скорости реакции на команды сервера, рекомендуется выключить `имитацию http-ответа` в
|
||||
настройках интеграции и настроить proxy_pass к HA, самый простой способ сделать это - воспользоваться
|
||||
[специальным аддоном](https://github.com/andvikt/mega_addon/tree/master/mega-proxy)
|
||||
|
||||
Обновить ваш контроллер до последней версии, обновление прошивки MegaD можно делать
|
||||
из HA с помощью [аддона](https://github.com/andvikt/mega_addon.git)
|
||||
32
docs/services.md
Normal file
32
docs/services.md
Normal file
@@ -0,0 +1,32 @@
|
||||
Все сервисы доступны в меню разработчика с описанием и примерами использования
|
||||
```yaml
|
||||
mega.save:
|
||||
description: Сохраняет текущее состояние портов (?cmd=s)
|
||||
fields:
|
||||
mega_id:
|
||||
description: ID меги, можно оставить пустым, тогда будут сохранены все зарегистрированные меги
|
||||
example: "mega"
|
||||
|
||||
mega.get_port:
|
||||
description: Запросить текущий статус порта (или всех)
|
||||
fields:
|
||||
mega_id:
|
||||
description: ID меги, можно оставить пустым, тогда будут порты всех зарегистрированных мег
|
||||
example: "mega"
|
||||
port:
|
||||
description: Номер порта (если не заполнять, будут запрошены все порты сразу)
|
||||
example: 1
|
||||
|
||||
mega.run_cmd:
|
||||
description: Выполнить любую произвольную команду
|
||||
fields:
|
||||
mega_id:
|
||||
description: ID меги
|
||||
example: "mega"
|
||||
port:
|
||||
description: Номер порта (это не порт, которым мы управляем, а порт с которого шлем команду)
|
||||
example: 1
|
||||
cmd:
|
||||
description: Любая поддерживаемая мегой команда
|
||||
example: "1:0"
|
||||
```
|
||||
16
docs/settings.md
Normal file
16
docs/settings.md
Normal file
@@ -0,0 +1,16 @@
|
||||
[После успешной установки интеграции в HACS](index.md#install), необходимо настроить
|
||||
каждый контроллер, проще всего сделать это по этой кнопке:
|
||||
|
||||
[](https://my.home-assistant.io/redirect/config_flow_start/?domain=mega)
|
||||
|
||||
Все имеющиеся у вас порты будут настроены автоматически. Вы можете менять названия, иконки и entity_id так же из интерфейса.
|
||||
|
||||
В самой меге необходимо прописать настройки:
|
||||
```yaml
|
||||
srv: "192.168.1.4:8123" # ip:port вашего HA
|
||||
script: "mega" # это api интеграции, к которому будет обращаться контроллер
|
||||
```
|
||||
Так же необходимо настроить Mega-ID в настройках контроллера, для каждой меги id должен быть разным.
|
||||
|
||||
При любых изменениях настроек контроллера (типы входов, id и тд) необходимо в настройках интеграции нажать `Обновить
|
||||
объекты`
|
||||
50
docs/smooth.md
Normal file
50
docs/smooth.md
Normal file
@@ -0,0 +1,50 @@
|
||||
Начиная с версии `1.0.0` интеграция поддерживает плавные переходы. Функция реализована
|
||||
как на аппаратном уровне, так и на программном.
|
||||
|
||||
Для аппаратной поддержки в настройках контроллера диммируемого порта необходимо включить опцию smooth.
|
||||
|
||||
В чем разница между аппаратной и программной реализацией? Контроллер на аппаратном уровне умеет медленно
|
||||
менять значение pwm-порта, рекомендуется для всех портов с поддержкой этого режима использовать именно его,
|
||||
тк будет обеспечена максимальная плавность для любого числа устройств одновременно.
|
||||
Плавность программного диммирования ограничена ресурсами вашего сервера и скоростью ответа контроллера,
|
||||
если вы будете довольно быстро (за пару секунд) диммировать сразу группу
|
||||
света из нескольких светильков, то в программной реализации возможно увидеть скачки.
|
||||
|
||||
Тем не менее, pwm-расширитель не умеет аппаратно сглаживать диммирование, поэтому для него есть смысл воспользоваться
|
||||
программной реализацией
|
||||
|
||||
Для запуска плавного перехода можно воспользоваться штатными сервисами, например:
|
||||
```yaml
|
||||
action:
|
||||
service: light.turn_on
|
||||
entity_id: light.some_light
|
||||
data:
|
||||
# свет будет плавно включаться в течении 30 секунд
|
||||
brightness_pct: 50
|
||||
transition: 10 # кол-во секунд на переход
|
||||
```
|
||||
Так же любые диммируемые каналы могут участвовать в сценах, а эти сцены в свою очередь будут поддерживать опцию transition:
|
||||
```yaml
|
||||
action:
|
||||
service: scene.turn_on
|
||||
target:
|
||||
entity_id: scene.romantic
|
||||
data:
|
||||
transition: 2.5
|
||||
```
|
||||
|
||||
Плавность реализована в любых диммируемых объектах: свет, rgb-ленты.
|
||||
|
||||
Кроме того, возможно установить плавность по-умолчанию (имеет смысл использовать на pwm-расширителе), для этого в yaml-конфиге
|
||||
следует добавить опцию smooth:
|
||||
```yaml
|
||||
mega:
|
||||
mega1:
|
||||
10e1:
|
||||
smooth: 1 # если указать, то порт будет диммироваться плавно (от 0 до 100% за <smooth> секунд)
|
||||
# опцию smooth можно использовать и на обычном pwm-порте, но в этом мало необходимости, лучше использовать
|
||||
# встроенный в контроллер механизм smooth
|
||||
```
|
||||
|
||||
Для светодиодных лент smooth по умолчанию установлен в 1 секунду,
|
||||
подробнее [тут](yaml.md#rgb)
|
||||
217
docs/yaml.md
Normal file
217
docs/yaml.md
Normal file
@@ -0,0 +1,217 @@
|
||||
С помощью yaml-конфигурации можно кастомизировать ваши устройства.
|
||||
|
||||
## Основное
|
||||
Конфиг записывается стандартным образом в файл `configuration.yaml`, начинаем с
|
||||
указания названия интеграции:
|
||||
```yaml hl_lines="1"
|
||||
mega:
|
||||
megaid1:
|
||||
10:
|
||||
domain: switch
|
||||
invert: true
|
||||
megaid2:
|
||||
14:
|
||||
hex_to_float: true
|
||||
```
|
||||
Далее каждый новый контроллер добавляется с помощью указания его id, который вы
|
||||
придумали при установке интеграции
|
||||
```yaml hl_lines="2 6"
|
||||
mega:
|
||||
megaid1:
|
||||
10:
|
||||
domain: switch
|
||||
invert: true
|
||||
megaid2:
|
||||
14:
|
||||
hex_to_float: true
|
||||
```
|
||||
|
||||
Далее конфигурируются порты:
|
||||
```yaml hl_lines="3 4 5 7 8"
|
||||
mega:
|
||||
megaid1:
|
||||
10:
|
||||
domain: switch
|
||||
invert: true
|
||||
megaid2:
|
||||
14:
|
||||
hex_to_float: true
|
||||
```
|
||||
|
||||
## Параметры устройств
|
||||
В зависимости от типа порта доступны разные параметры. Все параметры опциональные, в скобках приведены типы и дефолтные
|
||||
значения.
|
||||
### Стандартный набор параметров
|
||||
Все устройства вне зависимости от типа
|
||||
!!! note ""
|
||||
- **skip** (bool, false): пропустить или нет. Если true - устройство будет исключено из списка
|
||||
- **name** (str): имя, используется в интерфейсе
|
||||
### Реле
|
||||
!!! note ""
|
||||
- **domain** (str, light): тип устройства. Можно выбрать light или switch
|
||||
- **invert** (bool, false): инвертировать или нет.
|
||||
### ds2413
|
||||
Те же параметры, что у реле, но записываются иначе:
|
||||
```yaml
|
||||
10:
|
||||
c6c439000000_a: #c6c439000000 - это адрес ds2413, a-первый канал
|
||||
# параметры
|
||||
c6c439000000_b: #b-второй канал
|
||||
```
|
||||
### Диммеры
|
||||
!!! note ""
|
||||
- **smooth** (float, 0): программное плавное диммирование. Это поле отвечает за кол-во секунд, за которое яркость
|
||||
диммера набирает от 0 до 100%
|
||||
- **limits** (list[int, int], [0, 255]), *начиная с версии 1.1.0*: границы диммирования в абсолютных единицах контроллера. При диммировании 1%
|
||||
будет равен левой границе, 100% - правой.
|
||||
[Подробнее про плавное диммирование](smooth.md)
|
||||
### MegaD-16R-XT, MegaD-16PWM
|
||||
Порты расширителей MegaD-16R-XT, MegaD-16PWM конфигурируются аналогично обычным реле и диммерам, но адресация порта
|
||||
выглядит так:
|
||||
```yaml
|
||||
33e1: # 33-основной порт, на котором сидит расширитель, e1-дополнительный порт расширителя
|
||||
# стандартный конфиг порта
|
||||
33e2:
|
||||
```
|
||||
### RGB+W {: #rgb}
|
||||
Для настройки rgb(w) лент существует специальный раздел `led` в настройках каждого контроллера:
|
||||
```yaml hl_lines="3"
|
||||
mega:
|
||||
megaid1:
|
||||
led:
|
||||
ledid1: # id, который вы придумываете сами
|
||||
# конфиг
|
||||
```
|
||||
Далее интеграция имеет поддержку двух типов лент
|
||||
#### На диммерах
|
||||
Интеграция может превратить любые 3 (или 4) диммера (актуально для мосфетов на pwm-расширителе или моноблоке)
|
||||
в rgb(w) контроллер с интерфейсом выбора цвета. Конфиг для такого типа ленты будет выглядеть так:
|
||||
!!! note ""
|
||||
- **ports** (list\[str\]): список номеров портов, из которых составлять ленту, все порты должны быть типа PWM.
|
||||
Порядок цветов строго \[R, G, B, W\]. W указывается опционально
|
||||
- **white_sep** (bool, true): яркостью белого можно управлять в двух режимах - синхронно с яркостью RGB, либо
|
||||
отдельно, по умолчанию стоит отдельно (true)
|
||||
- **smooth** (float, 1): скорость диммирования, от 0 до 100% за <smooth> секунд.
|
||||
Пример:
|
||||
```yaml
|
||||
some_led1:
|
||||
ports: [10, 12, 15, 16]
|
||||
white_sep: true
|
||||
smooth: 2
|
||||
```
|
||||
#### Адресные ленты на WS281X
|
||||
Подробно про поддержку контроллера таких лент рассказано в [инструкции](https://www.ab-log.ru/smart-house/ethernet/megad-2561#ws).
|
||||
Интеграция не привносит ничего нового - только помогает "пробросить" такие ленты в интерфейс HA.
|
||||
Конфиг таких лент выглядит так:
|
||||
!!! note ""
|
||||
- **ws28xx** (bool, false): обязательное поле, необходимо установить true.
|
||||
- **port** (int): номер порта, на котором настроена лента.
|
||||
- **order** (str, "rgb"): последовательность каналов, допускаются любые комбинации букв r,g,b: rbg, bgr и тд
|
||||
- **chip** (int, 100): кол-во чипов в ленте, по умолчанию 100, если их меньше емеет смысл указать правильное кол-во
|
||||
для увеличения скорости плавного диммирования
|
||||
- **smooth** (float, 1): скорость диммирования, от 0 до 100% за <smooth> секунд.
|
||||
Пример:
|
||||
```yaml
|
||||
some_led2:
|
||||
ws28xx: true
|
||||
port: 36
|
||||
order: bgr
|
||||
smooth: 2
|
||||
```
|
||||
### Бинарные сенсоры {: #binary}
|
||||
Или по-другому цифровые входы. Как правило используются для выключателей, кнопок, датчиков движения и тд.
|
||||
!!! note ""
|
||||
- **response_template** (str): шаблон ответа на команды сервера. По-умолчанию d.
|
||||
Про формат ответа подробно описано [тут](https://www.ab-log.ru/smart-house/ethernet/megad-2561#conf-in-act).
|
||||
В шаблоне можно использовать параметры, которые передает контроллер (m, click, pt, mdid, mega_id).
|
||||
Про отладку шаблонов подробнее [тут](http.md#temp-debug)
|
||||
|
||||
!!! note "на меге"
|
||||
Для корректной работы binary_sensor имеет смысл использовать режим P&R в настройках порта меги
|
||||
Бинарные сенсоры так же отвечают за события типа *mega.binary*, [об этом подробнее в разделе события](events.md)
|
||||
|
||||
Примеры шаблонов ответа:
|
||||
```yaml
|
||||
4:
|
||||
response_template: "5:2" # простейший пример без шаблона. Каждый раз когда будет приходить сообщение на этот порт,
|
||||
# будем менять состояние на противоположное
|
||||
5:
|
||||
# пример с использованием шаблона, порт 1 будет выключен если он сейчас включен и включен с последней сохраненной
|
||||
# яркостью если он сейчас выключен
|
||||
response_template: >-
|
||||
{% if is_state('light.some_port_1', 'on') %}
|
||||
1:0
|
||||
{% else %}
|
||||
1:{{state_attr('light.some_port_1', 'brightness')}}
|
||||
{% endif %}
|
||||
6:
|
||||
# в шаблон так же передаются все параметры, которые передает контроллер (pt, cnt, m, click)
|
||||
# эти параметры можно использовать в условиях или непосредственно в шаблоне в виде {{pt}}
|
||||
response_template: >-
|
||||
{% if m==2 %}1:0{% else %}d{% endif %}
|
||||
```
|
||||
|
||||
|
||||
### Датчики {: #sensors }
|
||||
Любой датчик будь то i2c или аналоговый или 1-wire
|
||||
!!! note ""
|
||||
- **unit_of_measurement** (str): единицы измерения, [список доступных](https://developers.home-assistant.io/docs/core/entity/sensor#available-device-classes)
|
||||
- **value_template** (str): шаблон для конвертации, например `{{(value|float)/100}}`
|
||||
- **device_class** (str): класс устройства, [список доступных](https://developers.home-assistant.io/docs/core/entity/sensor#available-device-classes)
|
||||
- **hex_to_float** (bool, false): если ваш датчик возвращает float запакованный в HEX, интеграция его распакует (перед применением темплейта)
|
||||
При этом есть так же особенности адресации, так для сенсора на одном порте с одним значением:
|
||||
```yaml
|
||||
36:
|
||||
# конфиг
|
||||
```
|
||||
#### DHT11/22
|
||||
На этих сенсорах два значения, одно для температуры, второе для влажности, поэтому для них применяется
|
||||
особый вид адресации:
|
||||
```yaml
|
||||
35:
|
||||
name:
|
||||
hum: "влажность"
|
||||
temp: "температура"
|
||||
# и так далее для любого параметра сенсоров
|
||||
```
|
||||
Логика так себе ) Но так повелось в первых версиях.
|
||||
#### 1W-BUS
|
||||
Для датчиков установленных в шину 1-wire адресация кастомизации такая:
|
||||
```yaml
|
||||
35:
|
||||
addr: # адрес датчика, по-умолчанию entity_id будет состоять из адреса и типа
|
||||
# конфиг
|
||||
```
|
||||
#### i2c {: #i2c}
|
||||
Для сенсоров i2c адресация конфига такая:
|
||||
```yaml
|
||||
36:
|
||||
htu21d_humidity: # entity_id сенсора без приставки sensor., видно в интерфейсе HA
|
||||
# конфиг
|
||||
```
|
||||
[Подробнее про i2c](i2c.md)
|
||||
## Параметры контроллера
|
||||
Некоторые параметры применяются для всего контроллера (одна мега)
|
||||
### def_response
|
||||
Шаблон ответа сервера по умолчанию. Если этот параметр указан, то настройка "d по умолчанию"
|
||||
в UI игнорируется.
|
||||
|
||||
Пример:
|
||||
```yaml
|
||||
mega:
|
||||
megaid1:
|
||||
def_response: >-
|
||||
{% if m in [0, 1] %}d{% endif %}
|
||||
```
|
||||
|
||||
## Параметры интеграции
|
||||
### allow_hosts {: #allow_hosts }
|
||||
Отвечает за список хостов, с которых интеграция "слушает" сообщения. По умолчанию, в этот список
|
||||
входят все настроенные меги, а так же все запросы с локального хоста.
|
||||
|
||||
Иногда, в целях отладки, требуется расширить этот список, что можно сделать следующим оьразом:
|
||||
```yaml
|
||||
mega:
|
||||
allow_hosts:
|
||||
- 192.168.1.20
|
||||
```
|
||||
Reference in New Issue
Block a user