Статья

Установка HomeBridge на контроллеры JetHome, заводим ZigBee2MQTT

Так как я в свое время достаточно долго пользовался системой HomeBridge, а судя по чату система до сих пор актуальна, мне стало интересно - можно ли запустить его на контроллере JetHome со встроенным Zigbee модулем?

P.S. Данная статья подойдет и для Raspberry pi, если в качестве контроллера вы будете использовать малину, следите за комментариями.

Первое, что нам необходимо сделать, это установить саму систему HomeBrige. Итак, приступим.

Установка HomeBridge

Начнем с установки Node.js, установка осуществляется из официального репозитория со всеми необходимыми зависимостями.

curl -sL https://deb.nodesource.com/setup_14.x | sudo bash - #Установка Node.js sudo apt install -y nodejs gcc g make python net-tools # Проверяем node -v

Далее приступим к установке Homebridge и Homebridge UI, для этого используем следующую команду:

sudo npm install -g --unsafe-perm homebridge homebridge-config-ui-x

Чтобы настроить Homebridge как службу, которая будет запускаться при загрузке, необходимо выполнить:

sudo hb-service install --user homebridge

На этом установка закончена, можно перейти в веб-интерфейс HomeBridge для дальнейшей настройки, в браузере: http://ip_address:8581

Установка MQTT брокера

После установки HomeBridge, необходимо установить MQTT брокер, мы будем использовать Mosquitto. В данном случае, брокер необходим для общения компонента zigbee2mqtt с системой HomeBridge.

Установка осуществляется вводом следующих команд в терминал:

sudo apt update sudo apt install -y mosquitto mosquitto-clients # Добаляем в автозапуск sudo systemctl enable mosquitto.service # роверяем mosquitto -v

Установка плагина Zigbee2MQTT

В Web-интерефейсе HomeBridge открываем:

Меню -> Плагины, в поиске пишем "Zigbee2MQTT". Находим плагин homebridge-z2m, нажимаем кнопку "Установить".

После установки плагина необходимо настроить конфиг, для этого на вкладке Конфигурация, в секцию "platforms": [] добавляем следующий конфиг:

{ "platform": "zigbee2mqtt", "mqtt": { "base_topic": "zigbee2mqtt", "server": "mqtt://localhost:1883" } }

Сохраняем и перезагружаем HomeBridge. Перезагрузить можно как в веб-интерфейсе (в правом верхнем углу), так и при помощи терминала sudo reboot - в таком случае система перезагрузится полностью.

Установка Zigbee2MQTT

После успешной установки и первичной настройки HomeBridge, можно приступить к установке компонентов Zigbee2MQTT.

Первым делом нужно установить Node.js, но так как мы устанавливали HomeBridge, он у нас уже установлен и данный пункт можно пропустить.

# Добавляем репозиторий Node.js sudo curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - # Установка Node.js sudo apt-get install -y nodejs git make g gcc

Сразу приступаем к следующему пункту:

# Проверяем как все установилось node --version npm --version # Клонируем репозиторий Zigbee2MQTT sudo git clone https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt # Для контроллера JetHome sudo chown -R root:root /opt/zigbee2mqtt # Для контроллера Raspberry pi # sudo chown -R pi:pi /opt/zigbee2mqtt # Установка зависимостей cd /opt/zigbee2mqtt npm ci --production

Настройка ZigBee2MQTT

Перед запуском Zigbee2MQTT, необходимо отредактировать configuration.yamlфайл. Этот файл содержит конфигурацию, которая используется компонентом Zigbee2MQTT.

Открываем файл конфигурации и приводим к такому виду. Для этого выполняем команду:

nano /opt/zigbee2mqtt/data/configuration.yaml

Базовый конфиг для контроллера JetHome.

homeassistant: false permit_join: false mqtt: base_topic: zigbee2mqtt server: 'mqtt://localhost' serial: port: /dev/ttyAML2 advanced: homeassistant_legacy_entity_attributes: false legacy_api: false device_options: legacy: false frontend: port: 8080 host: 0.0.0.0 auth_token: your-secret-token

Для Raspberry pi порт зигби модуля оставляем по умолчанию.

Первый запуск

Теперь, когда мы все настроили, можем приступать к первому запуску Zigbee2MQTT.

cd /opt/zigbee2mqtt npm start

Если все запустилось без ошибок, необходимо добавить запуск ZigBee2MQTT в фоновом режиме. Для этого:

sudo nano /etc/systemd/system/zigbee2mqtt.service

Вставляем следующие строки:

[Unit] Description=zigbee2mqtt After=network.target [Service] ExecStart=/usr/bin/npm start WorkingDirectory=/opt/zigbee2mqtt StandardOutput=inherit # Or use StandardOutput=null if you don't want Zigbee2MQTT messages filling syslog, for more options see systemd.exec(5) StandardError=inherit Restart=always User=pi [Install] WantedBy=multi-user.target

Сохраняем - "Ctrl O", закрываем - "Ctrl X". Запускаем Zigbee2MQTT. При желании можно посмотреть статус.

# Старт Zigbee2MQTT sudo systemctl start zigbee2mqtt # Статус systemctl status zigbee2mqtt.service

Если видим active (running), значит все работает верно.

Полезности

Полезные команды для отладки установленных компонентов. В данном случае, на примере zigbee2mqtt.

# Стор Zigbee2MQTT sudo systemctl stop zigbee2mqtt # Старт Zigbee2MQTT sudo systemctl start zigbee2mqtt # Рестарт Zigbee2MQTT sudo systemctl restart zigbee2mqtt # Лог Zigbee2MQTT sudo journalctl -u zigbee2mqtt.service -f

Обновление ZigBee2MQTT

В дальнейшем вам понадобится обновлять Zigbee2MQTT, для этого необходимо проделать следующее:

# Stop Zigbee2MQTT and go to directory sudo systemctl stop zigbee2mqtt cd /opt/zigbee2mqtt # Backup configuration cp -R data data-backup # Update git checkout HEAD -- npm-shrinkwrap.json git pull npm ci # Restore configuration cp -R data-backup/* data rm -rf data-backup # Start Zigbee2MQTT sudo systemctl start zigbee2mqtt

Сейчас же мы пропускаем этот шаг, и можем приступить к добавлению нашего первого ZigBee устройства.

Web-интерфейс Zigbee2MQTT

Веб-интерфейс Zigbee2MQTT доступен по адресу: http://ip_address:8080

Добавление устройства

Для добавления Zigbee устройства, в правом верхнем углу нажимаем кнопку "Разрешить подключения (все)".

После чего вводим устройство в режим сопряжения, как правило, это скрытая кнопка на самом устройстве, либо активная клавиша самого устройства.

Подробнее можно узнать в нашем Каталоге, открыв девайс, характеристика: Режим спаривания, сброса.

Для примера я добавлю два первых устройства, которые мне попались под руку. Датчик движения от Heiman и съёмная розетка Xiaomi.

На этом можно было и заканчивать статью. Но ты наверняка задался вопросом - а что с автоматизациями? Ведь хомбридж только прокидывает устройства в Apple HomeKit, в этом случае автоматизации доступны только средствами самого кита, а мы знаем, что китовые автоматизации достаточно скудные.

Автоматизации

В качестве движка для автоматизаций мы будем использовать, на мой взгляд, самый гибкий, но при этом самый сложный инструмент - Node-RED.

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

Возвращаемся к терминалу, так как установка также осуществляется методом ввода команд.

#Установка sudo npm install -g --unsafe-perm node-red #Запуск node-red

Добавление в автозагрузку.

nano /etc/systemd/system/node-red.service

В открывшийся редактор вставляем следующее:

[Unit] Description=Node-RED After=syslog.target network.target [Service] ExecStart=/usr/bin/node-red Restart=on-failure KillSignal=SIGINT SyslogIdentifier=node-red StandardOutput=syslog StandardError=syslog WorkingDirectory=/root/.node-red User=root #Group=root [Install] WantedBy=multi-user.target

Сохраняем, активируем, запускаем.

systemctl enable node-red systemctl start node-red

Веб-интерфейс Node-RED будет доступен по адресу: http://ip_address:1880

И первое, что я бы порекомендовал - это установить плагин: node-red-contrib-homebridge-automation, для взаимодействия с устройствами HomeBridge. Для этого в правом верхнем углу нажимаем три полоски -> управление палитрой -> установить, вводим те плагины, которые необходимо установить.

Триггер

Ну и напоследок давайте создадим нашу первую автоматизацию. Так как мы добавили в Zigbee2MQTT два устройства, давайте создадим между ними простенький триггер. Включение розетки Xiaomi по датчику движения Heiman.

flows.json

Для примера, эта самая автоматизация:

[{"id":"01eb587b1a86964c","type":"tab","label":"Поток 1","disabled":false,"info":""},{"id":"1c98a85994aa250a","type":"group","z":"01eb587b1a86964c","style":{"stroke":"#999999","stroke-opacity":"1","fill":"none","fill-opacity":"1","label":true,"label-position":"nw","color":"#a4a4a4"},"nodes":["1a27dddfd87e8537","4c26fc61.906134","a69101bc494dd839","9961ca345126530e","a6a2b1fade2ddf0f","692bc0197ee03cb1"],"x":54,"y":119,"w":812,"h":142},{"id":"1a27dddfd87e8537","type":"hb-event","z":"01eb587b1a86964c","g":"1c98a85994aa250a","name":"Heiman motion sensor","Homebridge":"homebridge","Manufacturer":"HEIMAN","Service":"Occupancy Sensor","device":"homebridge0E:39:7D:7A:A4:1FHEIMANHeiman motion sensor00000086","conf":"d17c7d4e1ce4a995","x":180,"y":200,"wires":[["692bc0197ee03cb1","109c76ffe927984e"]]},{"id":"4c26fc61.906134","type":"comment","z":"01eb587b1a86964c","g":"1c98a85994aa250a","name":"Включение розетки по движению","info":"","x":220,"y":160,"wires":[]},{"id":"a69101bc494dd839","type":"hb-control","z":"01eb587b1a86964c","g":"1c98a85994aa250a","name":"Xiaomi Smart Plug","Homebridge":"homebridge","Manufacturer":"Xiaomi","Service":"Switch","device":"homebridge0E:39:7D:7A:A4:1FXiaomiXiaomi Smart Plug00000049","conf":"d17c7d4e1ce4a995","outputs":0,"x":750,"y":200,"wires":[]},{"id":"109c76ffe927984e","type":"debug","z":"01eb587b1a86964c","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":390,"y":340,"wires":[]},{"id":"cc30858f8f240635","type":"inject","z":"01eb587b1a86964c","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":400,"y":80,"wires":[["a6a2b1fade2ddf0f"]]},{"id":"4ff45b00e44010da","type":"inject","z":"01eb587b1a86964c","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":400,"y":40,"wires":[["9961ca345126530e"]]},{"id":"9961ca345126530e","type":"change","z":"01eb587b1a86964c","g":"1c98a85994aa250a","name":"Вкл","rules":[{"t":"delete","p":"payload","pt":"msg"},{"t":"set","p":"msg.payload['On']","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":570,"y":180,"wires":[["a69101bc494dd839"]]},{"id":"a6a2b1fade2ddf0f","type":"change","z":"01eb587b1a86964c","g":"1c98a85994aa250a","name":"Выкл","rules":[{"t":"delete","p":"payload","pt":"msg"},{"t":"set","p":"msg.payload['On']","pt":"msg","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":570,"y":220,"wires":[["a69101bc494dd839"]]},{"id":"692bc0197ee03cb1","type":"switch","z":"01eb587b1a86964c","g":"1c98a85994aa250a","name":"","property":"payload.OccupancyDetected","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"},{"t":"eq","v":"0","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":390,"y":200,"wires":[["9961ca345126530e"],["a6a2b1fade2ddf0f"]]},{"id":"d17c7d4e1ce4a995","type":"hb-conf","username":"462-93-171"}]

На написание статьи меня сподвигло сообщение в чате: "Посоветуйте недорогой контроллер под систему HomeBridge", так как Raspberry pi значительно подорожала на AliExpress. Я и подумал - а что мешает установить его на контроллер JetHome? Плюсом мы получаем еще и распаянный ZigBee модуль, который сейчас также в дефиците и его можно задействовать.

В общем, особо не принципиально, устанавливаем мы данную связку на Raspberry pi или на контроллер JetHome, все будет работать примерно одинаково. В случае с JetHome, все продается локально и есть в наличии.

Где купить?

Данный продукт был предоставлен на обзор нашими друзьями - магазином https://JHome.ru. Для всех читателей портала Sprut.ai в магазине действует промокод SPRUT, на скидку 3%. Напоминаю, что полный перечень партнёрских магазинов со скидками можно найти на этой странице.

2

Хорошая статья, по факту там debian и команды от малины тоже работают для установки софта

Очень полезная статья. Имею  этот набор ПО  на второй малине + стик СС2531 . Только для Raspberry Pi я  устанавливал Mosquito и Zigbee2MQTT уже на готовый официальный образ HomeBridge.  В этом софте нравится универсальность и поддержка большого количества Zigbee устройств в Zigbee2MQTT, a NR позволяет создавать достаточно сложные сценарии.
Пробовал также установить весь этот софт на Xiaomi Gateway (европейской версии) на прошивке OpenWRT . С установкой  Zigbee2MQTT  и Mosquito  проблем не возникло, но вот с установкой HomeBridge из готовых пакетов для OpenWRT 19.07 небольшая загвоздка вышла. HomeBridge установился, но старой версии 1.2 и он без UI-X.😕 сам собирать пакеты для OpenWRT  не умею, а сами разработчики всё больше «топят» за связку Zigbee2MQTT + HA. 


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

Устройства


Xiaomi

Socket

(24 отзыва)

Raspberry Pi

Raspberry Pi 4

(16 отзывов)

JetHome

JetHome JetHub H1

(3 отзыва)

JetHome

JetHome JetHub D1

(1 отзыв)

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