Установка zigbee2mqtt для windows

Установка zigbee2mqtt для windows

Давно известно, что с zigbee устройствами можно работать не только через шлюз MiHome. Имеется множество других решений, через которые можно получать данные и управлять устройствами (deconz, athom hommey, samsung smartthings, philips hue, Smart home Hommyn Zigbee Хаб (HU-20-Z) и др.). По моему мнению, самым интересным и бюджетным вариантом является проект zigbee2mqtt

Для работы zigbee2mqtt понадобится прошитый usb-стик и компьютер (windows, linux, в том числе микрокомпьютеры на arm-процессорах)

Желательно все позиции заказывать у одного продавца, тогда мы молучим один трек на все товары. Я имел неосторожность заказать у разных продавцов, в итоге кабель ожидал около 3 месяцев.

Прошивка USB-стика cc2531 через arduino.

Прошивка стика через ардуино — очень долгий процесс и занимает около 5 часов. К тому-же очень сложно прошивать, не имея кабель-шнурок. От этого варианта прошивки я отказался.

Также usb-стик можно прошить у коллег в вашем городе, например в Екатеринбурге я могу прошить стик за символическую плату в размере 500 руб.

Инструкция по перепрошивке USB-стика cc2531 через отладчик:

Понадобится драйвер для отладчика
Прошивку следует осуществлять по этой инструкции.
Альтернативная инструкция
Ссылка на прошивальщик
Последние версии прошивок можно взять тут

Инструкция по установке zigbee2mqtt для linux:

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

sudo git clone https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt
sudo chown -R pi:pi /opt/zigbee2mqtt
cd /opt/zigbee2mqtt
npm install

sudo git clone —single-branch —branch dev https://github.com/Koenkk/zigbee2mqtt/ /opt/zigbee2mqtt
sudo chown -R pi:pi /opt/zigbee2mqtt
cd /opt/zigbee2mqtt
npm install

Установка zigbee2mqtt для windows

1) Устанавливаем брокер mqtt, если у вас его еще нет по инструкции

Также в качестве mqtt брокера, при наличии платной подписки на connect-pac (200р.), вы можете использовать адрес http://connect.smartliving.ru в качестве брокера mqtt. Логик и пароль необходимо использовать реквизиты входа сайта http://connect.smartliving.ru

2) Качаем и устанавливаем git

3) Качаем и устанавливаем node.js для windows

Далее процесс идентичен установке под linux.

Настраиваем конфигурационного файла

Конфигурационный файл обычно расположен по указанному пути /opt/zigbee2mqtt/data/configuration.yaml

Пример вариантов настроек конфигурационного файла

homeassistant: false
permit_join: true
advanced:
channel: 26
log_level: debug
mqtt:
base_topic: zigbee2mqtt
# server: ‘mqtt://192.168.178.32:1900’
server: ‘mqtt://192.168.1.39’

serial:
port: /dev/ttyACM1

26 канал выбран для livolo выключателя (работают только на 26 канале https://github.com/Koenkk/zigbee2mqtt/issues/592). При отсутствии ливоло выключателей, можно удалить эту строку.

Если вы настраиваете систему под windows, порт необходимо указать в следующем формате:

Запускаем командой sudo systemctl start 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
rm -rf node_modules
npm install

Читайте также:  Добавить исключение брендмауэры windows

# Restore configuration
cp -R data-backup/* data
rm -rf data-backup

# Start zigbee2mqtt
sudo systemctl start zigbee2mqtt

Чтобы сервис стартовал автоматически, не забудьте после п. 5 (Optional) Running as a daemon with systemctl выполнить

sudo systemctl enable zigbee2mqtt

(сервис будет запускаться автоматически при старте системы)

Текущий статус модуля: бетта

Реализовано:

1) подписка на канал zigbee2mqtt/#
2) автоматическое создание устройств;
3) автоматическое заполнение метрик устройств;
4) привязка метрик к объектам.
5) просмотр логов zigbee2mqtt;
6) конвертирование привязанных переменных в стандартный для мажордомо формат (вместо 1/0 в zigbee2mqtt используется ON/OFF);
7) управление устройствами;
8) создание карты устройств.
9) Добавлено управление и просмотр режимами сопряжения.
10) Добавлено управление (ON OFF) устройствами с главного окна модуля.
11)Подсвечиваются серым потерянные устройства.

Что планируется:

1) Работа с группами https://www.zigbee2mqtt.io/information/groups.html
2) Заведение отсутствующих метрик, чтобы можно было привязать не описанные события)
3) Отладить работу. Поступают противоречивые данные, у кого-то не отображаются выпадающие списки с картинками и тд.
4) Отладить работу, когда мажордомо и zigbee2mqtt находятся на разных устройствах. Запросил информацию для отвязки от конфигов
5) Настройка прямого управления устройствами

6) Разработка шлюза на базе платы сс2530 и микрокомпьютера raspberry pi nano в едином корпусе.

Ссылки:

Ссылка на интересный тематический канал в телеграм: https://t.me/zigbeer
Ссылка на репозиторий модуля zigbee2mqtt:
Топики для управления устройствами через mqtt
Топики для управления шлюзом через mqtt

Драйвера для smartRF04EB начинаются на swrc* есть в репозитории Кирова Ильи
Огромная благодарность Илье @goofyk за помощь в освоении материала )

CC2531 + ZigBee2MQTT, отказываемся от шлюзов производителей

Для подключения ZigBee устройств и датчиков необходим шлюз, который обеспечит взаимодействие между ними. Зачастую каждый производитель выпускает шлюзы поддерживающие только устройства своей экосистемы. Не все шлюзы возможно подключить к альтернативным системам управления и не все, подключенные через шлюз устройства, могут поддерживаться, бывает, что у устройств ограничен функционал. Решить подобные проблемы и объединить наши устройства поможет USB координатор CC2531 стоимостью 5$. Заказать можно на одной известной торговой китайской торговой площадке, устройства предлагаются в двух вариантах, со встроенной и внешней подключаемой антенной, предпочтительнее второй вариант, т.к. при недостаточном уровне сигнала можно заменить антенну на более мощную.

Для подключения устройств необходимы:

  • USB координатор CC2531.
  • Компьютер для подключения координатора и установки необходимого программного обеспечения, для этих целей прекрасно подходит Raspberry Pi.
  • Программное обеспечение ZigBee2MQTT.
  • Программное обеспечение для работы протокола MQTT (так называемый MQTT брокер), например, Mosquitto.

Преимущества данного подключения устройств:

  • Датчики и устройства можно подключить к альтернативным системам, таким как Home Assistant, не имея шлюза производителя.
  • Обширный список устройств разных производителей. Полный список поддерживаемых устройств.
  • Можно использовать гибридную систему, часть устройств подключены к шлюзу производителя, часть напрямую к СС2531.
  • Некоторые устройства имеют функции, которых нет при подключении к шлюзу своей экосистемы.

Схема подключения будет выглядеть следующим образом:

На сайте проекта ZigBee2MQTT подробно расписан порядок действий, ниже будет представлен вольный перевод того, что необходимо выполнить:

Прошивка CC2531

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

  • При помощи CC Debugger, покупается на той же площадке где и плата, стоит как два устройства CC2531. Можно поискать у знакомых, которые уже купили данное устройство. Минус, то что оно нужно всего на один-два раза, прошить/обновить плату и. возможно прошить еще одну, которая будет выступать как роутер. Необходим Debug кабель, покупается там же вместе с CC Debugger’ом или отдельно.
  • Прошить с помощью Paspberry Pi. [Инструкция]
Читайте также:  Как удалить операционную систему windows через биос

Ниже описан первый вариант для Windows. Оригинал был описан на сайте ZigBee2MQTT. UPD.: на 10.11.2020 страница перенесена, но в общем списке ссылка на нее отсутствует.

Скачиваем и устанавливаем программу SmartRF Flash Programmer, необходимо зарегистрироваться на сайте, после чего будет доступна ссылка на скачивание. Будьте внимательны! SmartRF Flash Programmer v2 не подходит. [Зеркало]

Скачиваем и устанавливаем драйвер для CC Debugger, подключите CC Debugger к USB порту, в диспетчере устройств убедитесь, что драйвер установился корректно и устройство определилось. При возникновении проблем установите драйвер вручную. Отключите CC Debugger. [Зеркало]

Подключить СС2531 к CC Debugger’у при помощи Debug кабеля. Подключить оба устройства (CC2531 и CC Debugger) к USB портам компьютера. Если индикатор на CC Debugger светит красным, то нажать кнопку Reset на CC Debugger, индикатор должен загореться зеленым цветом.

Скачиваем и распаковываем прошивку для CC2531. Прошивки есть для ZigBee версии 1.2 и 3. Для версии 1.2 есть два вида прошивок Default и Source Routing, автор комментирует так:

  • Если в ZigBee сети до 30 устройств, то рекомендуется версия Default.
  • Если в ZigBee сети более 30 устройств, то рекомендуется версия Source Routing. Данная прошивка поддерживает только 5 прямых подключений к координатору, остальные устройства подключаются через роутеры. Роутером в ZigBee сети обычно выступает любое устройство, подключенное к постоянному питанию, розетки, выключатели, светильники, но выключатели Xiaomi без нулевой линии не являются роутерами. Так же в качестве роутера можно использовать другое устройства CC2531 или CC2530, но прошитые специальной прошивкой.

Запускаем SmartRF Flash Programmer и выбираем:

  • What do you want to program: Program CCxxxx SoC or MSP430
  • Во вкладке Sisten-on-Chip выбираем CC2531
  • Interface: Fast
  • Flash Image File выбираем файл прошивки с расширением *.hex .
  • Location: Primary
  • Actions: Erace, program and verify

Нажимаем Perfom actions, ждем окончания прошивки модуля.

Отключаем модуль от компьютера и CC Debugger’а.

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

Дальнейшие инструкции описывают установку программного обеспечения на Ubuntu и другие системы на базе Debian, в том числе Raspberry Pi OS.

В файле /etc/mosquitto/mosquitto.conf должно быть следующее:

Создадим файл default.conf для внесения своих настроек:

Для установки пароля в файл /etc/mosquitto/conf.d/default.conf внесем следующее:

Создаем нового пользователя usermosquitto с паролем passmosquitto для подключения к Mosquitto:

Вводим пароль для нового пользователя и перезапускаем сервис Mosquitto:

Установка ZigBee2MQTT

Подключаем CC2531 координатор к компьютеру, работающему 24/7, самый распространенный вариант это Raspberry Pi где крутится сервис автоматизации, но на самом деле это могут быть разные компьютеры, первый MQTT брокером, второй с сервисом ZigBee2MQTT, третий с сервисом автоматизации 🙂 Но обычно это один компьютер.

Проверяем подключение устройства в системе:

Как видно из ответа, наше устройство обнаружилось как ttyACM0 , проверяем:

Устанавливаем репозиторий Node.js :

Проверяем версии Node.js и npm:

Версия Node.js должна быть 10.x или 12.x, npm — 6.x

Делаем клон репозитория ZigBee2MQTT:

где user — пользователь, под которым будет работать сервис, group — группа имеющая доступ к папке. Для Raspberry Pi это обычно pi:pi. Пользователь должен входить в группу dialout.

Читайте также:  Микрофон для windows media

При корректной установке в ответ будет выведено сообщение вида:

Предупреждающие сообщения Warning игнорируем.

Редактируем файл настроек /opt/zigbee2mqtt/data/configuration.yaml :

homeassistant: true — если вы собираетесь используете интеграцию с Home Assistant.
permit_join: false — подключение новых устройств. Для подключения новых устройств необходимо выставить в true, рекомендуемое значение false во избежании подключения случайных устройств.
server: ‘mqtt://localhost‘ — адрес сервера MQTT. Если это тоже самое устройство, то оставляем localhost .
user: usermosquitto — пользователь с доступом к MQTT серверу.
password: passmosquitto — Пароль пользователя MQTT сервера.
port: /dev/ttyACM0 — устройсво CC2531 в системе.
network_key: GENERATE — ключ безопасности сети ZigBee. GENERATE — при старте будет сгенерирован новый ключ, можно задать вручную: network_key: [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5]

При правильной настройке будет сообщение вида:

Останавливаем программу Ctrl+C .

Создаем файл для запуска сервиса при старте системы.

User=pi — Пользователь, с правами которого запускается сервис. Для Raspberry Pi это обычно пользователь pi.

Добавляем сервис в автозагрузку и запускаем его:

Обновление ZigBee2MQTT

Делаем резервную копию данных:

Восстановление данных и запуск сервиса:

Подключение устройств

Для подключения устройств в файле /opt/zigbee2mqtt/data/configuration.yaml надо установить permit_join: true и перезагрузить сервис.

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

После подключения всех устройств для повышения безопасности и избежании случайного подключения других устройств в файле /opt/zigbee2mqtt/data/configuration.yaml необходимо установить permit_join: false после чего перезагрузить сервис.

Выявленные проблемы

На Ubuntu было лень создавать отдельного пользователя для работы сервиса и программа запускалась от пользователя homeassistant вместе с самим Home Assistant. После нескольких минут работы у Home Assistant отваливалась связь со шлюзами и светильниками Xiaomi. После создания в системе отдельного пользователя и настройки запуска от его имени проблема ушла.

zigbee2mqtt.io

📘 Zigbee2mqtt documentation

Running Zigbee2MQTT on Windows #

Since Node.js is fully cross-platform it is possible to run Zigbee2MQTT on Windows.

Before you start make sure you have already flashed your Zigbee adapter with the appropriate firmware.

1. Determine which COM port is assigned to your device #

  1. Connect your sniffer device
  2. Open up Start menu and start typing Device Manager
  3. Expand Ports (COM & LPT)
  4. Look for a node similar to USB Serial Device (COM4)
  5. Take note of the port number, it will be needed during configuration

2. Installing #

  1. Download and install Node.js 10 LTS from their website
  2. Open up a Command prompt or Powershell from the Start menu (Powershell has prettier colors)
  3. Verify Node.js was successfully installed

3. Configuring #

  1. Open data\configuration.yaml in a text editor
  2. Change the serial port configuration to match your setup

Congratulations, you’re now ready to start your Zigbee2MQTT installation

4. Starting Zigbee2MQTT #

Just change to the root directory of your installation and run the application:

A successful setup produces an output similar to this:

The Coordinator firmware version: ‘20190608’ entry means that Zigbee2MQTT has successfully communicated with the USB sniffer.

Zigbee2MQTT can be stopped anytime by pressing CTRL + C and then confirming with Y (on English locales at least).

Оцените статью