Используем Node-RED вместе с Home Assistant.
Часть 0. Почему Home Assistant?
Часть 1. Установка Home Assistant
Часть 2. Настройка Z-wave
Часть 3. Настройка Zigbee
Часть 4. Установка Node-RED
Часть 5. HomeKit в Home Assistant через Node-RED
Начнем с небольшой справки: что такое Node-RED.
Node-RED — это flow-based инструмент, созданный для визуального программирования, разработанный IBM для совмещения вместе: устройств, API, онлайн-сервисов и IoT, используемый также совместно с известному нами IBM Watson.
Многие задаются вопросом: зачем вообще использовать Node-red и Home Assistant вместе, ведь они по факту оба являются центрами автоматизации со своими отдельными интерфейсами и зачастую замещают друг друга во многом.
Но как и во всем (вспоминается самый простой пример: совместное использование Apache и NGINX), хотя у обоих функциональностей есть что-то схожее, но у них есть также и сильные/слабые стороны.
Так например: сильная сторона Home Assistant в огромном сообществе, количестве примеров и практически полнейшей всеядности (я не встречал еще чего-то, что нельзя было бы «затащить» в Home Assistant.
При этом слабые стороны Home Assistant, которые всем известны: автоматизации на YAML (ох, без кучи примеров и бест-кейсов из интернета даже разбираться не стоит) и ужасный проброс в HomeKit — прекрасно покрываются Node-red, который как будто создан для написания автоматизаций, и т.к. использует более продвинутый HAP-nodeJS в отличие от используемого HAP-python в Home Assistant, намного стабильнее работает с HomeKit.
Кроме этого, используя Node-red для отправки устройств в HomeKit, у нас появляется возможность самим создавать устройства и настраивать их под себя.
Примеры:
- У вас есть увлажнитель/очиститель, который в Home Assistant может быть проброшен в HomeKit как вентилятор. С Node-red вы можете пробросить любые параметры увлажнителя в HomeKit как вам угодно.
- Или у вас есть датчик PM2.5, датчик CO2, датчик еще чего-то. Всё это из Home Assistant будет уходить отдельными датчиками. Зачем? Когда через Node-red вы сможете создать один единственный датчик «качество воздуха» и отслеживать все эти характеристики в нем.
- Или у вашего очистителя/увлажнителя и тому подобное есть какой-то параметр, который не пробрасывается по-умолчанию в HomeKit. Не проблема, пробросьте его сами отдельно или добавьте к какому-то уже проброшенному устройству.
Вот такие поверхностные примеры — и даже они заставляют задуматься о переезде с «нативного» HomeKit от Home Assistant на Node-red.
И так начнем.
Установка Node-RED
Благодаря тому, что Node-red не совсем opensource продукт, то его установка на наш Raspberry Pi займет буквально несколько минут и потребует всего двух команд: первой мы его устанавливаем, второй добавляем в автозапуск.
- Соответственно, для установки Node-RED вам необходимо вбить данную команду
bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)
После чего необходимо будет пройти несколько шагов, на которых вам будут задавать вопросы на тему «вы уверены?», на которые вы должны отвечать утвердительно, и подождать окончания установки. Здесь можно подробнее почитать, что именно у вас спрашивают и что делает данный «установщик».
- После чего добавляем node-red в автозапуск
sudo systemctl enable nodered.service
- И последним шагом запускаем Node-RED
node-red-start
Отмечу также, что закрыв этот процесс (CTRL+C) node-red не погасится, как это обычно бывает с другими службами. Очень удобно.
Ну и также несколько команд для запуска логов и остановки вам в помощь:node-red-stop node-red-log
- После этого заходим http://yourip:1880/ и наслаждаемся установленным Node-RED
Подключение Home Assistant
После успешной установки Node-RED нам необходимо связать две системы.
- Заходим в интерфейс Node-red
- Открываем меню (справа вверху)
- Выбираем пункт Manage Palette
- Переходим на вкладку Install
- Вбиваем в поиск node-red-contrib-home-assistant-websocket
- Нажимаем на кнопку установить
После этого ждем установки данного модуля, для надежности в терминале можно открыть лог node-red для того, чтобы контролировать процесс. Пока наш новый модуль устанавливается перейдем к Home Assistant.
- Заходим в интерфейс Home Assistant http://yourip:8123/
- Нажимаем на букву около надписи Home Assistant в левом верхнем углу («буква» означает первый символ имени вашего профиля — по факту нажав на нее мы переходим в информацию о профиле)
- Проматываем в самый низ, доходим до блока «долгосрочные токены» и нажимаем на «Создать токен»
- Задаем название, допустим «node-red» и нажимаем ОК.
- После этого нам отобразится наш токен — копируем его в надежное место. Он пригодится нам дальше.
Возвращаемся обратно в Node-RED и заканчиваем настройку Home Assistant модуля.
- Слева, в колонке со всеми блоками, находим раздел «Home Assistant» — скорее всего он будет в самом низу
- Переносим блок «events:all» на пустой лист (обычным drag-n-drop) и открываем его двойным щелчком мыши
- Нажимаем на «карандашик» около Server, тем самым переходим в конфигурацию модуля
- И заполняем информацию следующим образом (в поле Token вставляем полученный нами ранее токен)
- Нажимаем на Update и закрываем все окна
- После чего сохраняем изменения в Node-RED нажимая кнопку Deploy в верхнем правом углу и для надежности перезагружаем Node-RED, выполнив команду
node-red-restart
После чего обновляем страницу с Node-RED и довольствуемся тем, что теперь все события из Home Assistant будут попадать в Node-RED, а значит теперь мы сможем воспользоваться полностью его функционалом.
Часть 0. Почему Home Assistant?
Часть 1. Установка Home Assistant
Часть 2. Настройка Z-wave
Часть 3. Настройка Zigbee
Часть 4. Установка Node-RED
Часть 5. HomeKit в Home Assistant через Node-RED