5.5 KiB
MegaD HomeAssistant integration
Интеграция с MegaD-2561
Основные особенности:
- Настройка в веб-интерфейсе
- Все порты автоматически добавляются как устройства (для обычных релейных выходов создается
light, для шим -lightс поддержкой яркости, для цифровых входовbinary_sensor, для датчиковsensor) - Возможность работы с несколькими megad
- Обратная связь по mqtt
- Команды выполняются друг за другом без конкурентного доступа к ресурсам megad, это дает гарантии надежного исполнения большого кол-ва команд (например в сценах). Каждая следующая команда отправляется только после получения ответа о выполнении предыдущей.
Зависимости
Важно!! Перед использованием необходимо настроить интеграцию mqtt в HomeAssistant
Для максимальной совместимости необходимо обновить ваш контроллер до последней версии, тк были важные обновления в части mqtt
Установка
Рекомендованный способ с поддержкой обновлений - HACS:
HACS - Integrations - Explore, в поиске ищем MegaD.
Альтернативный способ установки:
# из папки с конфигом
wget -q -O - https://raw.githubusercontent.com/andvikt/mega_hacs/master/install.sh | bash -
Не забываем перезагрузить HA
Настройка
Настройки -> Интеграции -> Добавить интеграцию в поиске ищем mega
Все имеющиеся у вас порты будут настроены автоматически.
Вы можете менять названия, иконки и entity_id так же из интерфейса.
По умолчанию все порты настроенные как сенсоры запрашиваются с периодичностью, указанной в настройках. Если это значение выставить в 0, сканирование выполняться не будет.
Так же доступна кастомизация устройств с помощью yaml:
# configuration.yaml
mega:
hello: # ID меги, как в UI
7: # номер порта
domain: switch # тип устройства (switch или light, по умолчанию для цифровых выходов используется light)
invert: true # инвертировать или нет (по умолчанию false)
name: Насос # имя устройства
8:
# исключить из сканирования
skip: true
33:
# для датчиков можно кастомизировать только имя и unit_of_measurement
name: какой-то датчик
unit_of_measurement:
hum: "%" # если датчиков несколько, то можно указывать юниты по их ключам
14:
name: какой-то датчик
hum: "%" # если датчик один, то просто строчкой
Сервисы
Все сервисы доступны в меню разработчика с описанием и примерами использования
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"
Отладка
Интеграция находится в активной разработке, при возникновении проблем заводите issue
Просьба прикладывать детальный лог, который можно включить в конфиге так:
logger:
default: info
logs:
custom_components.mega: debug