Статья

Удаленный ZigBee, добавление устройств в основной хаб

В одной из предыдущих статей мы научились устанавливать Home Assistant, со всеми его необходимыми компонентами, на контроллеры JetHome. Позже я рассказал о том, как установить HomeBridge и ZigBee2MQTT.

Теперь я решил добавить ума и своему гаражу, добавив в него Zigbee устройства. До этого у меня в гараже использовалась только одна ESP, с большим количеством сенсоров и реле.

Обдумав все, в голове созрел небольшой план. Установить контроллер JetHome H1 в гараж, для подключения датчика CO и брелков от Heiman, для управления реле и охраной. Гараж у меня находится неподалеку, но это абсолютно не имеет значения, общаться хабы все равно будут через интернет, посредством VPN туннеля. В качестве родительского контроллера в квартире, как вы уже догадались, я использовал JetHome D1. Итак мы получаем два и более контроллера, основной - со всем необходим софтом Home Assistant, MQTT брокер, ZigBee2MQTT... и дочерние, в моем случае - контроллер в гараже с Zigbee2MQTT.

А теперь давайте обо всем по порядку.

Построение сети

Первое, что необходимом сделать - это построить туннель между гаражом и квартирой. Так как основной роутер у меня дома микротик, проще всего реализовать туннель будет именно на микротиках. Роутер для гаража был выбран Mikrotik haP lite - дешевый и достаточно производительный, его функционала будет достаточно для всех моих потребностей.

Как создать VPN туннель - я описывать не буду, в интернете на эту тему есть огромное количество статей. Все они плюс-минус одинаковые. Скажу лишь, что я использовал протокол связи SSPT для построения туннеля - это протокол именно микротовый, поэтому мой выбор пал именно на него. Но можно также использовать и любой другой, процесс построения при этом будет аналогичен.

Также хочу обратить внимание, что для построения туннеля понадобится выделенный статический IP-адрес в любой из точек.

Установка ZigBee2MQTT на контроллер JetHome

Сеть построена, теперь давайте приступим к настройке самого контроллера для гаража. Устанавливаем чистую систему raspbian, подключаемся по SSH и устанавливаем Zigbee2MQTT. Процесс установки уже был описан в одной из моих предыдущих статей. Если вы ее не читали, опишу более подробно весь процесс тут.

Устанавливаем nodejs:

#Добавляем репозиторий sudo curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - #Устанавливаем nodejs 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: true permit_join: false mqtt: base_topic: zigbee2mqtt server: 'mqtt://ip адрес брокера:1883' 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

где:

ip адрес брокера - это ip нашей основной машины с установленным MQTT брокером.

Добавляем в автозагрузку, для этого редактируем следующий файл:

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

Все полезности по обновлению можно также посмотреть в моей предыдущей статье.

Настройка

В принципе, все настройки мы произвели при помощи конфига, но если вам необходимо внести какие-либо правки, это не обязательно делать через консоль. Открываем http://ip_адрес_контроллера:8080 и попадаем в web-интерфейс нашего контроллера, в Меню -> Настройки можем внести все необходимые изменения.

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

Процесс добавления ZigBee устройства аналогичен как основному хабу, так и тому, что мы только что настроили. Поэтому заострять свое внимание не вижу смысла. Если вы cделали все правильно, после сопряжения устройства с дочерним контроллером, оно автоматически появиться в Настройки -> Интеграции -> MQTT нашего основного хаба.

Итог

В данном случае мы получили готовый кейс, когда Home Assistant, MQTT брокер установлены в квартире, а клиентский Zigbee2MQTT - в гараже. Все устройства, добавленные на любой из контроллеров, будут автоматически добавляться в единую систему.

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

Где купить?

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


Позанудсивую немного)

Протокол туннелирования трафика "SSTP" и придумали его Microsoft 

Вопрос: Можно ли 2 mqtt сервера на одном Home assistant? (не использую вещей типа SLS шлюзов.) Например Дом+Дача.

из коробки незя. но если погуглить есть костыли как это решить 


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