Статья

HomeAssistant + Node-RED = Простая автоматизация

Перeчень разделов

  1. Введение
  2. Инсталляция HomeAssistant (сборка Hass.io) в Docker
  3. Инсталляция Node-RED, начальная конфигурация и запуск
  4. Прямая интеграция Node-RED в интерфейс HomeAssistant
  5. Заключение
  6. Полезные ссылки

1 Введение

Давно прорабатывал вопрос по самому гибкому и простому решению в плане автоматизации различных устройств на разной частоте и протоколах. 

Казалось бы есть решение «из коробки» - это Athom Homey (он же «Колобок») с отличным вариантом автоматизации через Workflow, что больше всего меня и привлекает в нем. Но, к сожалению, в моем случае, есть существенное ограничение, которое останавливает использование этого хаба - исторически сложилось, что 90% девайсом в доме на Z-Wave и на RU частоте (869 МГц).

Изначально, простейшую кросплатформенную автоматизацию легко получилось осуществить через HomeKit с использованием Homebridge. Например, подружить Bluthooth датчик температуры и влажности от Xiaomi c Fibaro Relay Switch на Z-wave, который в свою очередь управляет вытяжным вентилятором в ванне, т.е. при определенном уровне влажности вентилятор включается или выключается.  Но на более сложных вариантах автоматизации гибкость и возможности такого решения кончаются…

После, решил для себя в плотную познакомится с решением HomeAssistant (HA).

Вроде бы все ОК, возможностей и гибкости предостаточно, но что называется не User-friendly в плане подхода конфигурации и автоматизации.

Так вот, чтобы удовлетворить изначальные два требования - гибкость и простота - пришел на данном этапе к решению, подразумевающее использование HomeAssistant (hass.io сборка) в связке с модулем Node-RED, который обеспечивает интуитивную понятную настройку автоматизации всех устройств в HA и за его переделами через графический интерфейс написания Workflow схожий c Athom Homey. 

В данной статье рассматривается определенный подход инсталляции и конфигурации базовой среды, для последующей возможности простой, в плане настройки, автоматизации УД с помощью симбиоза HomeAssistant и Node-RED.

2 Инсталляция HomeAssistant (сборка Hass.io) в Docker

Если у вас уже стоит сборка hass.io, то можно переходит к 3-ему разделу.

ВАЖНО, обычная инсталляция HomeAssistant не поддерживает установку необходимого Add-on’а. То есть, например, описанный способ инсталляции в статье «Home Assistant, статья 1 (установка)» на этом портале работать не будет. 

Нужна именно сборка hass.io, подразумевающая возможность инсталляции hass add-on’ов. 

Стандартный и простой способ инсталляции, подразумевающий подготовку загрузочной флэшки и описанный на официальной странице, я не рассматривал, так как хотелось поставить на имеющийся Raspberry Pi 3 c развернутой ОС (Raspbian Stretch), на которой уже крутятся различные сервисы для УД.

Поэтому пришлось прибегнуть к альтернативному, немного как оказалось, нетривиальному способу инсталляция через Docker. 

Далее привожу выверенные в моем случае шаги инсталляции

Инсталлируем пакеты пререквизиты

$ sudo apt-get install bash jq curl avahi-daemon apparmor-utils

undefined

$ curl -fsSL https://get.docker.com -o get-docker.sh $ sudo sh get-docker.sh $ sudo usermod -aG docker pi

undefined

$ sudo curl -sL https://raw.githubusercontent.com/home-assistant/hassio-build/master/install/hassio_install | sudo bash -s -- -m raspberrypi3

После выполнения команды выше в systemctl формируются два новых сервиса, которые обеспечивают работу HA:

hassio-apparmor.service
hassio-supervisor.service

Проверяем их статус:

$ sudo systemctl status hassio-supervisor.service $ sudo systemctl status hassio-apparmor.service


undefined

$ sudo docker logs --follow hassio_supervisor

undefined

$ sudo docker pull homeassistant/raspberrypi3-homeassistant

undefined

$ sudo systemctl restart hassio-supervisor.service

undefined

$ sudo docker ps

undefined

3 Инсталляция Node-RED, начальная конфигурация и запуск

Прежде всего необходимо проверить есть ли необходимый репозиторий и при необходимости добавить его в HA для возможности скачивания Node-RED Add-on’а

Необходимый адрес репозитория: https://github.com/hassio-addons/repository

Делается это через меню Hass.io

undefined
undefined
undefined
undefined

{ "log_level": "info", "credential_secret": "<секретное_слово_для_административных_задач>", "http_node": { "username»: "<использовал_такой_как_для_HA>", "password": "<использовал_такой_как_для_HA>" }, "http_static": { "username": "<использовал_такой_как_для_HA>", "password": "<использовал_такой_как_для_HA>" }, "port": 1880, "ssl": false, "certfile": "fullchain.pem", "keyfile": "privkey.pem", "require_ssl": true, "system_packages": [], "npm_packages": [], "init_commands": [] }

undefined
undefined
undefined
undefined
undefined

4 Прямая интеграция Node-RED в интерфейс HomeAssistant

Для этого всего лишь нужно в конфигурационном файле HA прописать необходимые параметры.

Открываем на редактирование файл configuration.yaml

cd /usr/share/hassio/homeassistant sudo nano configuration.yaml

undefined

panel_iframe: nodered: title: Node-RED icon: mdi:sitemap url: http://<addres.to.your.hass.io>:1880

undefined
undefined
undefined

5 Заключение

В итоге, мы получили в тесной связке HA, обеспечивающий гибкую интеграцию устройств и управление их состоянием, и Node-Red, использующий всю информационную среду HA и за ее пределами для написания правил автоматизации УД простым и интуитивно понятным способом - через flows, который заменяет написание скриптов автоматизации на YAML.

Плюс к этому, данный способ инсталляции позволяет использовать уже имеющийся Raspberry Pi 3 c развернутой ОС (Raspbian Stretch), на которой уже крутятся различные сервисы для УД, с еще большей отдачей.

6 Полезные ссылки

https://smarthome.university/using-node-red-with-home-assistant/ - взял отсюда картинку для обложки статьи. Приведенный здесь способ инсталляции hass.io мне не подошел, так как подразумевает использование образа hass.io c флешки, а также способ инсталляции Node-red уже не актуален, так как используемый репозиторий и сам Add-on уже сняты с поддержки и не возможны к скачиванию.

https://docs.docker.com/install/linux/docker-ce/debian/#install-using-the-convenience-script - официальная страница Docker по различным способом инсталляции. Ссылка ведет на вариант инсталляции для Raspberry Pi 

https://medium.com/the-code-review/top-10-docker-commands-you-cant-live-without-54fb6377f481 - полезная статья по основным командам Docker

https://medium.com/the-code-review/clean-out-your-docker-images-containers-and-volumes-with-single-commands-b8e38253c271 - статья, описывающая полную очистку Docker

https://www.home-assistant.io/hassio/installation/ - официальная страница hass.io по различным способам инсталляции

https://hub.docker.com/u/homeassistant/ - страница Docker со всеми имеющимися image файлами для homeassistant

https://github.com/hassio-addons/addon-node-red/blob/v1.1.0/README.md - официальная страница Add-on'а Node-Red на Github'е


Найс. Ха становится ближе к людям

Отличная статья, ХА нравится, но с флоу вообще супер. Спасибо

Статья и решение супер! И как я её пропустил, спасибо! Я обязательно попробую этот вариант «колобка»

Спасибо, отличная статья. Ставил по другому - прям на распбиан с деконзом, где стоял уже ХА в VE. По инструкции с сайта самого Node Red. Все заработало. 

Хотелось бы узнать о базовых принципах составления автоматизация в Node Red на конкретных примерах. Есть ли ссылки на такие ресурсы? А еще лучше продолжение статьи :) Заранее спасибо!

Желание продолжить статью есть и реальные уже рабочие примеры есть, но как-то все не получается... Сейчас всю автоматизацию уже перенес на Node Red, и на текущий момент еще больше уверился в его гибкости и где-то даже простоте. По поводу ссылки на ресурсы: мне хватило трех частей видео с youtube'a "Node-RED Basics with Home Assistant" с хорошими, простыми и понятными примерами, чтобы понять основные принципы работы


Спасибо за ответ! Посмотрю видео обязательно. Я вот нашёл интересный ресурс где можно почитать про автоматизации в Node Red. https://diyfuturism.com/index.php/2017/12/14/basic-node-red-flows-for-automating-lighting-with-home-assistant/">https://diyfuturism.com/index.... надеюсь кому-нибудь пригодиться.

2е суток возился по другим статьям.. то виртуальный dns сервер чудит, то просто службы е поднимаются, то еще гемор какой.. По этой статье все как по маслу! Авто - красавчик.

Единственное node не пошел сразу.

  1. ошибка у автора с кавычками
"http_node": {
"username»: "<использовал_такой_как_для_HA>",
но у меня все равно не стартануло.. Прописал через конфиг - но так же не сработало.. в результате на малине вручную сервис node red нужно было пнуть..

Команда для установки hass.io сейчас немного другая, детали https://github.com/home-assistant/hassio-installer/blob/master/README.md">тут.



https://sprut.ai/static/media/cache/00/09/15/5/1158557/46196/1000x_image.jpg?1572889000" alt="1000x_image.jpg?1572889000" />

Подскажите в чем проблема?

Подскажите как быть если я не использую hass.io. Стоит просто HA в докере. Нашел вот такую либу https://github.com/zachowj/node-red-contrib-home-assistant-websocket">https://github.com/zachowj/node-red-contrib-home-assistant-websocket Я так понимаю можно поставить Node-red и с помощью нее его связать с HA. Может есть статьи на эту тему более подробные? Я пока начинающий во всех этих дела :)

просто ставишь нод ред


bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)






  • 1) Заходим в интерфейс Node-red
  • 2) Открываем меню (справа вверху)
  • 3) Выбираем пункт Manage Palette
  • 4) Переходим на вкладку Install
  • 5) Вбиваем в поиск node-red-contrib-home-assistant-websocket
  • 6) Нажимаем на кнопку установить


Помогите пожалуйста, столкнулся с проблемой, возможно не совсем в тему.
использую ноду "http in", чтоб передать в Node Red данные, но видимо HA требует авторизацию, как все сделать правильно или может как то можно авторизацию отключить? взял из готового примера в интернете, но почему то не работает.

Вернуться назад
Вернуться назад