Перeчень разделов
- Введение
- Инсталляция HomeAssistant (сборка Hass.io) в Docker
- Инсталляция Node-RED, начальная конфигурация и запуск
- Прямая интеграция Node-RED в интерфейс HomeAssistant
- Заключение
- Полезные ссылки
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
$ curl -fsSL https://get.docker.com -o get-docker.sh $ sudo sh get-docker.sh $ sudo usermod -aG docker pi
$ sudo curl -sL https://raw.githubusercontent.com/home-assistant/hassio-build/master/install/hassio_install | sudo bash -s -- -m raspberrypi3
После выполнения команды выше в systemctl формируются два новых сервиса, которые обеспечивают работу HA:
hassio-apparmor.servicehassio-supervisor.service
Проверяем их статус:
$ sudo systemctl status hassio-supervisor.service $ sudo systemctl status hassio-apparmor.service
$ sudo docker logs --follow hassio_supervisor
$ sudo docker pull homeassistant/raspberrypi3-homeassistant
$ sudo systemctl restart hassio-supervisor.service
$ sudo docker ps
3 Инсталляция Node-RED, начальная конфигурация и запуск
Прежде всего необходимо проверить есть ли необходимый репозиторий и при необходимости добавить его в HA для возможности скачивания Node-RED Add-on’а
Необходимый адрес репозитория: https://github.com/hassio-addons/repository
Делается это через меню Hass.io
{ "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": [] }
4 Прямая интеграция Node-RED в интерфейс HomeAssistant
Для этого всего лишь нужно в конфигурационном файле HA прописать необходимые параметры.
Открываем на редактирование файл configuration.yaml
cd /usr/share/hassio/homeassistant sudo nano configuration.yaml
panel_iframe: nodered: title: Node-RED icon: mdi:sitemap url: http://<addres.to.your.hass.io>:1880
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 не пошел сразу.
- ошибка у автора с кавычками
но у меня все равно не стартануло.. Прописал через конфиг - но так же не сработало.. в результате на малине вручную сервис node red нужно было пнуть..Команда для установки hass.io сейчас немного другая, детали https://github.com/home-assistant/hassio-installer/blob/master/README.md">тут.
Подскажите в чем проблема?
Подскажите как быть если я не использую 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. Может есть статьи на эту тему более подробные? Я пока начинающий во всех этих дела :)
просто ставишь нод ред
использую ноду "http in", чтоб передать в Node Red данные, но видимо HA требует авторизацию, как все сделать правильно или может как то можно авторизацию отключить? взял из готового примера в интернете, но почему то не работает.