Как стать автором
Обновить

Комментарии 14

Очень мне не понравились в HA сценарии на yaml, и невозможность нормально их организовать. Поставил интеграцию node red и доволен. Подобные интеграции там также можно легко реализовать.

Yaml-конфиги довольно удобно можно организовать с использованием пакетов (packages). Их можно организовывать в иерархии в файловой структуре, а внутри каждый пакет может содержать любые сущности: описания сенсоров и устройств, элементы ввода, таймеры, автоматизации.

Node Red хороша тем, что позволяет писать довольно сложные автоматизации в более удобном виде. Но если она существует в паре с HA, то в HA всё равно надо описывать сущности. Кстати, не раз слышал мнение, что Node Red лучше ставить отдельно, а не как интеграцию в HA.

Но если она существует в паре с HA, то в HA всё равно надо описывать сущности.

Не обязательно. В node red есть средства для работы с mqtt/http/tcp/udp, поэтому всю интеграцию можно делать там. Если нужно, результат пробросить в HA, для этого есть соответствующие ноды - сенсоры и свитчи, которые будут видны в HA.

Кстати, не раз слышал мнение, что Node Red лучше ставить отдельно, а не как интеграцию в HA.

Ну вот у меня довольно большая система умного дома (под сотню устройств, сложно остановиться :) ), изначально пытался сделать только на HA, быстро понял, что организация сценариев превращается в ад. Кроме того yaml мне не хаватало, более сложную логику необходимо описывать кодом, а погружаться в написание плагинов мне совсем не хотелось. Интеграция с node red полностью покрыла мои потребности. Код при необходимости пишется на JS в function нодах. Куски логики удобно реюзатся через subflow, сервисы выносятся в отдельные flow, и используются через link ноды. Всё можно документировать сразу встроенными средствами. При этом большинство устройств подхватываются сами из HA, там же дашборды. В общем, я полностью доволен такой связкой.

А может вам написать статью с обзором вашей системы и архитектуры?) Оч интересно как там у вас всё

Ну в принципе в этом комментарии вкратце всё описано. В принципе, наверно, стоит поделиться опытом и написать статью, но то такое дело, разродиться надо :) Если у вас какие-то вопросы лучше сразу здесь задавайте. После ещё одного года эксплуатации я в своём решении недостатков не нашёл, до сих пор доволен.

Я все чего не хватало приделывал через mqtt, с нативной интеграцией ХА было лень разбираться.

Хорошо, если устройство имеет возможность взаимодействовать через MQTT, а если нет. Я на днях добавлял управление девайсом, управляемым UDP-пакетами. И оказывается, что в HA нет нативных средств для отправки UDP-пакетов. Пришлось делать это с помощью вызова консольных команд. Хотел было запилить свою интеграцию, но почитал и чё-то приуныл от сложности не окупающей задачу.

В node red есть поддержка UDP. В интеграции с HA можно всё удобно сделать.

Глупо было бы внедрять Node Red только для этого.

Если нет, то paho-mqtt и десяток строк на питоне творят чудеса. Если уж смог поднять HA, то это вообще не проблема, я все свои старые ESPшные датчики таким способом в HA загнал через MQTT-интеграцию.

Если вы наследуетесь от Entity, то статичные свойства лучше задавать приватными атрибутами (_attr_icon = ... ).

А хорошим способом делать update, в вашем случае, будет data update coordinator, ибо HA дергает update каждого сенсора (переключателя итд), а значит update из модуля дергается чаще, чем мог бы.

ps. Раз уж пиариться просят...

https://github.com/IATkachenko/HA-YandexWeather

https://github.com/IATkachenko/HA-SleepAsAndroid

https://github.com/TionAPI/HA-tion

Спасибо! Дельные замечания, update в моем случае реализован только у одного сенсора, но обновляет данные на все устройство, т.е. лишний раз не должен дергаться. Хотя где то в глубине души я предполагал что это как то не правильно, data update coordinator более правильный подход, если руки дойдут, переделаю.

Да, вы верно предполагаете, надо этот момент переделать, отключение вашего сенсора, на котором висит метод update остановит обновление всех данных. Как вариант повесить метод обновления на все сенсоры и при вызове сравнивать время последнего обновления с текущей датой и если актуально запускать обновление, тут же меняя дату на текущую.

Так же вы обошли стороной вопрос что будет когда я добавлю новый датчик, в ха он автоматом не появится, для этого придется рестартовать ХА или интеграцию.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории