Вы вышли из замкнутой экосистемы умного дома, в которой каждый датчик или лампочка имеет свой собственный фирменный шлюз, который работает только со своим приложением. В результате на роутере красуется целая гирлянда этих коробочек, а управление распределено по разным приложениям.
Всё можно сделать проще, надежнее и дешевле. Чип CC2531 может использоваться вместо десятка проприетарных хабов. Это простой USB-накопитель, который может соединить ZigBee-устройства с вашей домашней сетью.
Программное решение ZigBee2MQTT обеспечивает связь. Он преобразует сигналы ZigBee-устройств в понятные команды, которые могут быть отправлены с помощью единого протокола MQTT. Это позволяет управлять всей автоматизацией из одной системы, будь то ioBroker, Home Assistant или другая.
Такой метод предоставляет полную свободу: вы больше не зависите от бренда или облака производителя; все устройства разных марок работают в одной сети, что позволяет вам управлять своими данными и настроить любые, даже самые сложные сценарии автоматизации.
Прошивка CC2531
Первое, что необходимо сделать, это залить прошивку на устройство. Существует несколько способов прошить устройство:
- При помощи CC Debugger, покупается на той же площадке где и плата, стоит как два устройства CC2531. Можно поискать у знакомых, которые уже купили данное устройство. Минус, то что оно нужно всего на один-два раза, прошить/обновить плату и…. возможно прошить еще одну, которая будет выступать как роутер. Необходим Debug кабель, покупается там же вместе с CC Debugger’ом или отдельно.
- Прошить с помощью Paspberry Pi. [Инструкция]
Ниже приведены подробности первого варианта Windows. Сайт ZigBee2MQTT предоставил подробную информацию об оригинале. UPD.: Хотя страница перенесена на 10.11.2020, ссылка на нее отсутствует в общем списке.
Скачиваем и устанавливаем программу SmartRF Flash Programmer, необходимо зарегистрироваться на сайте, после чего будет доступна ссылка на скачивание. Будьте внимательны! SmartRF Flash Programmer v2 не подходит!!! [Зеркало]
Установить и загрузить драйвер CC Debugger. Затем подключите CC Debugger к USB-порту. Убедитесь, что драйвер установился правильно и что устройство определилось в диспетчере устройств. Установите драйвер вручную в случае возникновения проблем. Приостановить CC Debugger. [Изображение]
Чтобы подключить СС2531 к CC Debugger, используйте Debug Cable. Подключите CC2531 и CC Debugger к USB портам вашего компьютера. Если индикатор CC Debugger светит красным, нажимайте кнопку Reset, чтобы индикатор загорался зеленым цветом.

Вы можете скачать и распаковать прошивку для 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.
Выполняем:
$ sudo apt-get install mosquitto
Следующее должно быть включено в файл /etc/mosquitto/mosquitto.conf:
pid_file /var/run/mosquitto.pid persistence true persistence_location /var/lib/mosquitto/ log_dest file /var/log/mosquitto/mosquitto.log include_dir /etc/mosquitto/conf.d
Мы должны создать файл default.conf, чтобы включить свои настройки:
$ sudo touch /etc/mosquitto/conf.d/default.conf
Чтобы установить пароль, добавьте следующее в файл /etc/mosquitto/conf.d/default.conf:
allow_anonymous false password_file /etc/mosquitto/passwd
Создайте нового пользователя Mosquitto с паролем passmosquitto:
$ sudo mosquitto_passwd -c /etc/mosquitto/passwd <strong>usermosquitto</strong>
Перезапуск сервиса Mosquitto, введя пароль нового пользователя:
$ sudo systemctl restart mosquitto
Установка ZigBee2MQTT
Подключаем CC2531 коорднатор к компьютеру, который работает круглосуточно. Raspberry Pi, где работает сервис автоматизации, является наиболее распространенным вариантом, но это могут быть другие компьютеры, например, первый брокер MQTT, второй с сервисом ZigBee2MQTT, а третий с сервисом автоматизации. Однако обычно это только один компьютер.
Включите устройство в систему:
$ ls -l /dev/serial/by-id total 0 lrwxrwxrwx 1 root root 13 Jul 18 10:56 usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0014D47D15-if00 -> ../../ttyACM0
Проверяем, чтобы увидеть, что наше устройство обнаружилось как ttyACM0, как показано в ответе:
$ ls -l /dev/ttyACM0 crw-rw—- 1 root dialout 166, 0 Jul 22 22:43 /dev/ttyACM0
Мы должны установить pепозиторий Node.js:
$ sudo curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash —
Открываем Node.js:
$ sudo apt-get install -y nodejs git make g++ gcc
Попробуйте проверить версии Node.js и npm:
$ node —version v12.18.2 $ npm —version 6.14.5
Версия Node.js 10.x или 12.x, npm — 6.x.
Мы создаем клон ZigBee2MQTT-ппозитория:
$ sudo git clone https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt
Устанавливаем права:
$ sudo chown -R <strong>user</strong>:<strong>group </strong>/opt/zigbee2mqtt
Где пользователь, под которым будет работать сервис, и группа, которая имеет доступ к папке. Это обычно pi:pi для Raspberry Pi. Пользователь должен зарегистрироваться в группе Dialout.
Установка зависимостей:
$ cd /opt/zigbee2mqtt $ npm ci
При правильном устaновлении в ответ будет выведено сообщение такого типа:
node-pre-gyp info ok added 752 packages in 121.57s
Мы должны игнорировать предупредительные сообщения о предупреждении.
Произведите редактирование файла настроек /opt/zigbee2mqtt/data/configuration.yaml:
homeassistant: true permit_join: false mqtt: base_topic: zigbee2mqtt server: ‘mqtt://localhost’ user: usermosquitto password: passmosquitto serial: port: /dev/ttyACM0 advanced: network_key: GENERATE
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]
Первый запуск:
$ cd /opt/zigbee2mqtt $ npm start
При правильной настройке сообщение будет таким образом:
zigbee2mqtt:info: Connecting to MQTT server at mqtt://localhost zigbee2mqtt:info: Connected to MQTT server
Нажмите Ctrl+C, чтобы остановить программу.
Мы создадим файл, который будет использоваться для запуска сервиса при запуске системы.
<code class="code language-shell cm-s-default"><span class="cm-builtin">$ sudo</span> nano /etc/systemd/system/zigbee2mqtt.service</code>
Заполняем его.
[Unit] Description=zigbee2mqtt After=network.target [Service] ExecStart=/usr/bin/npm start WorkingDirectory=/opt/zigbee2mqtt StandardOutput=inherit StandardError=inherit Restart=always User=pi [Install] WantedBy=multi-user.target
Человек, с правами которого запускается сервис, называется User=pi. Это обычно пользователь Pi для Raspberry Pi.
Мы добавляем сервис и запускаем его:
$ sudo systemctl enable zigbee2mqtt.service $ sudo systemctl start zigbee2mqtt.service
Многие умные устройства работают с помощью проприетарных шлюзов, которые связывают вас с одним производителем и заставляют вас доверять закрытому программному обеспечению. С другой стороны, с помощью бесплатной прошивки ZigBee2MQTT и недорогой USB-модульки CC2531 можно обойтись без них. Она превращает адаптер в универсальный центр управления, который понимает протокол ZigBee и использует MQTT для передачи данных в одну систему. Все это работает локально, без облаков, что означает, что устройства различных брендов могут быть объединены в одну сеть, что делает его простым и надежным, не зависящим от других серверов.
Обновление ZigBee2MQTT
Останавливаем сервис:
$ sudo systemctl stop zigbee2mqtt.service
Делаем копию данных:
$ cd /opt/zigbee2mqtt $ cp -R data data-backup
Запуск обновления:
$ git checkout HEAD — npm-shrinkwrap.json $ git pull $ npm ci
Восстановление данных и начало работы сервиса:
$ cp -R data-backup/* data $ rm -rf data-backup $ sudo systemctl start zigbee2mqtt
Подключение устройств
Для подключения уcтройств в файле /opt/zigbee2mqtt/data/configuration.yaml необходимо установить permit_join: true, а затем перезагрузить сервис.
Проверьте, есть ли подключаемое устройство в списке поддерживаемых устройств перед подключением. Если необходимо, обратитесь к инструкциям производителя, чтобы перевести устройство в режим спаривания.
Чтобы обеспечить безопасность и предотвратить случайное подключение других устройств, после подключения всех устройств в файле /opt/zigbee2mqtt/data/configuration.yaml необходимо установить permit_join: false. Затем перезагрузите сервис.
Как видно, интеграция CC2531 и Zigbee2MQTT позволяет создавать реальный умный дом без ограничений. Вы больше не зависите от вендоров, чьи шлюзы могут устареть или не поддерживаться в должном состоянии. Вы получите единую централизованную систему, в которой все устройства, используя MQTT, говорят на одном языке, и вы можете управлять ими из любой платформы, которую вы выберете.
На самом деле этот метод требует немного больше усилий на начальном этапе: вам нужно будет купить и прошить адаптер и установить программное обеспечение. Однако последствия этих действий будут положительными. Вы получите беспрецедентную гибкость, стабильность и управление. Ваша сеть Zigbee становится полностью вашей, а не принадлежит производителю.
Этот вариант — отличный способ взять в свои руки технологию, если вы устaли от замкнутых экосистем и хотите собрать умный дом, который будет работать именно так, как вам нужно. Это инвестиция в стабильность и независимость вашего дома.








