Материалов на эту тему не мало, но, благодаря участникам портала, Node-RED становится все легче и понятнее для новых пользователей, так как появляются новые плагины и решения.
В этой статье я опишу установку и настройку Node-RED на Raspberry Pi deCONZ и интеграцию ZigBee устройств в HomeKit.
Установка deCONZ
Я использую официальный образ deCONZ без HomeBridge (Raspbian Buster Desktop). HomeBridge лучше установить отдельно. Например так.
Установка Node-RED
Подключаемся к малине по SSH и устанавливаем Node-RED следующей командой:
bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)
Соглашаемся два раза, нажав ''Y''.
Добавляем Node-RED в авто загрузку и запускаем его:
sudo systemctl enable nodered.service node-red-start
Запуск Node-RED и установка необходимых плагинов
После успешной установки Node-RED, запускаем веб-интерфейс, вбив в браузере: IP малины:1880.
Слева видим список всех доступных нам нод. В правом верхнем углу - кнопку Deploy (она нужна, чтобы задействовать все изменения, которые мы делаем). Чуть правее от нее - 3 полоски (это кнопка меню).
Установка необходимых нам contributions:
В данной статье мы будем использовать всего несколько нод. Существует два способа их установки:
Через терминалЧерез веб-интерфейс Node-REDУстановим контрибьюшн для связи с HomeKit через веб-интерфейс. Для этого нужно перейти:
Меню->Manage palette->install, ввести в строке поиска node-red-contrib-homekit-bridged и нажать install.
Теперь в нодах (раздел advanced) появилась нода HomeKit.
Также установим контрибьюшн для связи deCONZ и Node-RED. Эти ноды существенно упростили добавление устройств в Node-RED и HomeKit. Огромное спасибо @popov1988 за создание этих нод.
Вводим в строке поиска node-red-contrib-deconz и устанавливаем.
Теперь перезагрузим Node-RED и почистим кэш, выполнив следующие команды:
node-red-stop sudo npm cache clean --force node-red-start
Как видим, у нас появились новые ноды:
homekit - для проброса устройств в HomeKit;battery - для передачи уровня заряда батареи;in - входящая нода от deCONZ;
get - получить текущий статус устройства;event - выводит все события, которые приходят от deCONZ;out - вывод в deCONZ.
Добавление устройств в HomeKit
Рассмотрим добавление на примере геркона от Aqara и проводного одноклавишного выключателя без нулевой линии Aqara, которые у нас уже добавлены в deCONZ. В процессе добавления первого устройства, нам потребуется добавить сервер deCONZ и мост HomeKit, но делается это единоразово.
Датчик касания (геркон)
Перетягиваем ноды: in и homekit на белое поле нашего флоу. Соединяем их ниточкой (в ноде in - с нижнего выхода).
В ноде in имеется 2 выхода(серые маленькие квадратики):
- Верхний - для автоматизаций в Node-RED.
- Нижний - для HomeKit.
Добавление сервера deCONZ (Делается один раз)
Дважды нажимаем на ноду in, нажимаем на карандашик.В новой вкладке браузера открываем deCONZ->Settings->Gataway->Advanced и нажимаем на кнопку Authenticate app.Возвращаемся в Node-RED и жмем кнопку "Получить настройки". Можно поменять IP адрес на локальный 127.0.0.1Если по какой-то причине настройки сервера не выставились автоматически, то придется это сделать вручную.Название сервера можно написать любое.Нажимаем кнопку Add, Done.Нажимаем кнопку Deploy в правом верхнем углу.Сервер настроен.
В ноде in пишем любое название, выбираем созданный нами сервер и выбираем нужное нам устройство.
Добавление моста HomeKit (Делается один раз)
Дважды нажимаем на ноду homekit, нажимаем на карандашик напротив строки Bridge.
Pin Code и Name пишем любые (Пин код должен быть строго в таком же формате ***-**-***).
Нажимаем кнопку Add, Confim. Мост настроен.
В строке "Bridge" ноды homekit выбираем созданный нами мост, в строке "Service" выбираем тип нашего устройства (в данном примере - это contact sensor), в строке "Name" - имя устройства в HomeKit.
Нажимаем кнопку Deploy в правом верхнем углу.
Перезагружаем Node-RED:
node-red-restart
Теперь мы можем добавить мост в приложении Дом на устройстве Apple. Вместе с мостом добавится и наш датчик касания.
Дочерние сервисы
У датчика касания есть батарейка, поэтому нам нужно добавить ноду батареи. Для этого перетягиваем ноду battery и homekit.
В ноде battery выбираем наш датчик и пишем любое имя в строке "название". Нажимаем Done.
В ноде homekit в строке "Service Hierarchy" выбираем Linked (т.к батарея у нас это дочерний сервис). В строке "Parent service" выбираем наше родительское устройство (т.е сам датчик касания). В строке "Service" выбираем BatteryService. Имя выбираем любое.
Возле кнопки Deploy нажимаем на треугольник и выбираем Modified Nodes.
Теперь в HomeKit мы сможем увидеть заряд батареи на нашем датчике касания.
Далее устройства добавлять гораздо проще т.к сервер и мост уже есть.
Добавление выключателя Aqara
В ноде in - все, как и с датчиком касания.В ноде homekit - тоже, но в строке "Service" выбираем Switch.В нашем случае, выключателю требуется нода "out".В ней мы: выбираем наш сервер, выбираем устройство и в строке "команда" выбираем homekit слева.
Возле кнопки Deploy нажимаем на треугольник и выбираем Modified Nodes(если выключатель не появился в HomeKit, то нужно перезагрузить Node-RED командой).
Импорт примеров и Флоу
Также можно воспользоваться готовыми примерами и отредактировать их под себя. Но при импорте примеров добавятся серверы и мосты, которые нужно будет потом удалить.
Flows
Все ваши ноды можно экспортировать, и импортировать чьи-либо себе, через import/export->Clipboard.
В этой статье я постарался как можно подробнее описать все действия в Node-RED для новых пользователей. Все, о чем писал, основано на собственном опыте и советах других участников сообщества.
В следующей части постараюсь так же подробно рассказать про автоматизации в самом Node-RED.
Всем Спасибо за внимание.
Для начинающих то что нужно!
Очень пригодилась статья. Сегодня как раз ConBee привезли. Спасибо!
Скажите, а как я могу в homekit геркон перекинуть как датчик протечки? Так сказать поменять тип устройства, это возможно?
Возможно.Спросите в чате Node-RED
Очень круто - Спасибо
а как устройства конектить?
Теперь как пробросить Xiaomi Камеры в HOMEKIT?
А можно еще пример по простым http командам типа включить и выключить? Акары нет, но хочется понять принцип добавления устройств на более простых вещах.
После последнего НА апдейта немогу увидеть устрайства. В смысле к Деконз потключен, но дроплист с устройствами не показывает. кликаешь, кликаешь...
отличная статья для старта)
Я все обыскал и не нашел это меню. Подскажите, пожалуйста, где искать?
Статье почти год).И плагины и сам софт деконза могли поменяться.Рекомендую уточнить это в спрут-чате деконза.