Используем 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, у нас появляется возможность самим создавать устройства и настраивать их под себя.

Примеры:

  1. У вас есть увлажнитель/очиститель, который в Home Assistant может быть проброшен в HomeKit как вентилятор. С Node-red вы можете пробросить любые параметры увлажнителя в HomeKit как вам угодно.
  2. Или у вас есть датчик PM2.5, датчик CO2, датчик еще чего-то. Всё это из Home Assistant будет уходить отдельными датчиками. Зачем? Когда через Node-red вы сможете создать один единственный датчик «качество воздуха» и отслеживать все эти характеристики в нем.
  3. Или у вашего очистителя/увлажнителя и тому подобное есть какой-то параметр, который не пробрасывается по-умолчанию в HomeKit. Не проблема, пробросьте его сами отдельно или добавьте к какому-то уже проброшенному устройству.

Вот такие поверхностные примеры — и даже они заставляют задуматься о переезде с «нативного» HomeKit от Home Assistant на Node-red.

И так начнем.

Установка Node-RED

Благодаря тому, что Node-red не совсем opensource продукт, то его установка на наш Raspberry Pi займет буквально несколько минут и потребует всего двух команд: первой мы его устанавливаем, второй добавляем в автозапуск.

  1. Соответственно, для установки Node-RED вам необходимо вбить данную команду
    bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)

    После чего необходимо будет пройти несколько шагов, на которых вам будут задавать вопросы на тему «вы уверены?», на которые вы должны отвечать утвердительно, и подождать окончания установки. Здесь можно подробнее почитать, что именно у вас спрашивают и что делает данный «установщик».

  2. После чего добавляем node-red в автозапуск
    sudo systemctl enable nodered.service
  3. И последним шагом запускаем Node-RED
    node-red-start

    Отмечу также, что закрыв этот процесс (CTRL+C) node-red не погасится, как это обычно бывает с другими службами. Очень удобно.
    Ну и также несколько команд для запуска логов и остановки вам в помощь:

    node-red-stop
    node-red-log
    
  4. После этого заходим http://yourip:1880/ и наслаждаемся установленным Node-RED

Подключение Home Assistant

После успешной установки Node-RED нам необходимо связать две системы.

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

После этого ждем установки данного модуля, для надежности в терминале можно открыть лог node-red для того, чтобы контролировать процесс. Пока наш новый модуль устанавливается перейдем к Home Assistant.

  1. Заходим в интерфейс Home Assistant http://yourip:8123/
  2. Нажимаем на букву около надписи Home Assistant в левом верхнем углу («буква» означает первый символ имени вашего профиля — по факту нажав на нее мы переходим в информацию о профиле)
  3. Проматываем в самый низ, доходим до блока «долгосрочные токены» и нажимаем на «Создать токен»
  4. Задаем название, допустим «node-red» и нажимаем ОК.
  5. После этого нам отобразится наш токен — копируем его в надежное место. Он пригодится нам дальше.

Возвращаемся обратно в Node-RED и заканчиваем настройку Home Assistant модуля.

  1. Слева, в колонке со всеми блоками, находим раздел «Home Assistant» — скорее всего он будет в самом низу
  2. Переносим блок «events:all» на пустой лист (обычным drag-n-drop) и открываем его двойным щелчком мыши
  3. Нажимаем на «карандашик» около Server, тем самым переходим в конфигурацию модуля
  4. И заполняем информацию следующим образом (в поле Token вставляем полученный нами ранее токен)
  5. Нажимаем на Update и закрываем все окна
  6. После чего сохраняем изменения в 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

Author

Наш главный гайд-мастер. Инструкции и обзоры его конёк. Иногда перебарщивает с личным мнением.