# MegaD HomeAssistant integration Интеграция с [MegaD-2561](https://www.ab-log.ru/smart-house/ethernet/megad-2561) ## Основные особенности: - Настройка в веб-интерфейсе - Все порты автоматически добавляются как устройства (для обычных релейных выходов создается `light`, для шим - `light` с поддержкой яркости, для цифровых входов `binary_sensor`, для датчиков `sensor`) - Возможность работы с несколькими megad - Обратная связь по mqtt - Команды выполняются друг за другом без конкурентного доступа к ресурсам megad, это дает гарантии надежного исполнения большого кол-ва команд (например в сценах). Каждая следующая команда отправляется только после получения ответа о выполнении предыдущей. ## Зависимости **Важно!!** Перед использованием необходимо настроить интеграцию mqtt в HomeAssistant Для максимальной совместимости необходимо обновить ваш контроллер до последней версии, тк были важные обновления в части mqtt ## Установка Рекомендованный способ с поддержкой обновлений - [HACS](https://hacs.xyz/docs/installation/installation): HACS - Integrations - Explore, в поиске ищем MegaD. Альтернативный способ установки: ```shell # из папки с конфигом wget -q -O - https://raw.githubusercontent.com/andvikt/mega_hacs/master/install.sh | bash - ``` Не забываем перезагрузить HA ## Настройка `Настройки` -> `Интеграции` -> `Добавить интеграцию` в поиске ищем mega Все имеющиеся у вас порты будут настроены автоматически. Вы можете менять названия, иконки и entity_id так же из интерфейса. По умолчанию все порты настроенные как сенсоры запрашиваются с периодичностью, указанной в настройках. Если это значение выставить в 0, сканирование выполняться не будет. ####Так же доступна кастомизация устройств с помощью yaml: ```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: "%" # если датчик один, то просто строчкой ``` ## Сервисы Все сервисы доступны в меню разработчика с описанием и примерами использования ```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" ``` ## Отладка Интеграция находится в активной разработке, при возникновении проблем [заводите issue](https://github.com/andvikt/mega_hacs/issues/new/choose) Просьба прикладывать детальный лог, который можно включить в конфиге так: ```yaml logger: default: info logs: custom_components.mega: debug ```