Usb zigbee стик cc2531 для чего
Для подключения ZigBee устройств и датчиков необходим шлюз, который обеспечит взаимодействие между ними. Зачастую каждый производитель выпускает шлюзы поддерживающие только устройства своей экосистемы. Не все шлюзы возможно подключить к альтернативным системам управления и не все, подключенные через шлюз устройства, могут поддерживаться, бывает, что у устройств ограничен функционал. Решить подобные проблемы и объединить наши устройства поможет USB координатор CC2531 стоимостью 5$. Заказать можно на одной известной торговой китайской торговой площадке, устройства предлагаются в двух вариантах, со встроенной и внешней подключаемой антенной, предпочтительнее второй вариант, т.к. при недостаточном уровне сигнала можно заменить антенну на более мощную.
Для подключения устройств необходимы:
- USB координатор CC2531.
- Компьютер для подключения координатора и установки необходимого программного обеспечения, для этих целей прекрасно подходит Raspberry Pi.
- Программное обеспечение ZigBee2MQTT.
- Программное обеспечение для работы протокола MQTT (так называемый MQTT брокер), например, Mosquitto.
Преимущества данного подключения устройств:
- Датчики и устройства можно подключить к альтернативным системам, таким как Home Assistant, не имея шлюза производителя.
- Обширный список устройств разных производителей. Полный список поддерживаемых устройств.
- Можно использовать гибридную систему, часть устройств подключены к шлюзу производителя, часть напрямую к СС2531.
- Некоторые устройства имеют функции, которых нет при подключении к шлюзу своей экосистемы.
Схема подключения будет выглядеть следующим образом:
На сайте проекта ZigBee2MQTT подробно расписан порядок действий, ниже будет представлен вольный перевод того, что необходимо выполнить:
С чего начать
Итак, вы хотите попробовать Zigbee. Что это этого нужно?
Нет единого мнения с чего лучше начинать. Кто-то рекомендует использовать официальные шлюзы, кто-то говорит что нужно сразу покупать хороший и дорогой стик, кто-то рекоменюует использовать перепрошитый шлюз.
Я начал с того что купил самый простой и дешевый стик CC2531 и стал использовать его с zigbee2mqtt.io.
Я решил что на первое время (10-20-30 устройств) мне этого стика будет достаточно, а дальше, если возникнет необходимость, можно будет и что-то другое купить.
Если решите покупать, то лучше всего сразу купить 3 лота:
- CC2531 Antenna (аккуратно — не перепутайте, там еще есть устройсвво CC2540, выглядит очень похоже, но это совершенно не то, нужно покупать CC2531)
- CC Debugger
- CC2540 zigbbe CC2531
Второй и третий лот — это программатор и кабель для подключения. Для того чтобы стик работал на него нужно залить прошивку. Это можно сделать с помощью arduino/raspberry pi/orange pi, но, гораздо проще и быстрее это сделать с помощью специального устройства. Иногда приходится эту прошивку менять, так что очень удобно когда это оборудование есть под рукой.
После того как у вас есть аппаратная часть (стик), нужно поставить софт. Есть много разных способов как можно установить zigbee2mqtt (и тут разные люди будут советовать разные решения). Я используют экосистему умного дома Home Assistant и с помощью этого бесплатного софта можно установить zigbee2mqtt в несколько кликов мышкой (но после установки нужно еще выполнить некоторые настройки). Home Assistant использовать не обязательно, но, на мой взгляд, это хорошая идея использовать Home Assistant и zigbee2mqtt.
Все слышали и знают, что обычные TI CC2531-стики имеют весьма посредственную площадь покрытия (в радиусе порядка 10-15м и в зависимости от условий). На помощь им приходят модули TI cc2530 с внешней антенной, что увеличивает радиус на несколько метров. А уже дальше следует использовать модули TI CC2530 с усилителями типа CC2591 или RFX2401, благодаря которым радиус еще немного возрастает.
В прошлом году, когда я впервые тестировал модули с усилителями, я еще не особо разбирался в них и мои тесты показали, что значительной разницы в модулях с усилителем нет. Но в этом году всё изменилось.
Тесты с “круглой кнопкой” Xiaomi показали, что её успешно “слышно” (координатор ловит сигналы нажатия) даже на 800м прямой видимости. В доме, работает через 2 ж/б стены. Т.е. усилитель повышает дальность и чувствительность.
Еще одним показательным критерием являются параметры link_quality сигналов от устройств (их видно например на карте сети в iobroker.zigbee или zigbee2mqtt). Для этого модуля link_quality показывает 36-40, там где с координатором cc2531 у “круглой кнопкой” показывало 2-5 и были перебои со связью (3 пеноблочные стены, одна тонкая деревянная стена).
На базе этих модулей умельцы “состряпали” себе координаторы и роутеры для покрытия сетью не только жилого дома, но и участка вокруг. Для продвинутых пользователей, умеющих держать в руках паяльник, пользователь Jager выложил в сеть схемы платы, на которой можно собрать себе приличный “стик” с описываемым модулем. А для тех у кого “лапки”, ограниченным тиражом разошлась первая партия таких “стиков”. Если работоспособность будет подтверждена, можно будет повторить.
Как это работает и зачем это нужно
Zigbee — это стандарт беспроводной связи для умных устройств.
Есть Wi-Fi — совершенно привычная технология. Центральный злемент — Wi-Fi роутер — коробочка с антенами. К Wi-Fi роутеру по воздуху подключаются клиенты — ноутбуки и телефоны.
Точно также в Zigbee сети есть центральный элемент — он называтеся "Координатор", к нему по воздуху подключаются разные клиенты: умные лампочки, кнопки, разные датчики. Устройства которые подключаются к Zigbee сети могут быть как с постоянным питанием, так и работающие от батареек.
Огромный плюс Zigbee по сравнению с Wi-Fi — это то как работают устройства на батарейках. Совершенно обычная ситуация что какая-нибудь зигби кнопка работает несколько лет (. ) на одной батарейке.
Бывают разные типы датчиков:
- датчики температуры и влажности
- датчики движения
- датчики которые фиксирует открытие и закрытие дверей и окон
- и еще множество других устройств
Безумно удобно когда для установки датчика не нужно тянуть никакие провода. Питание — от батарейки, данные передаются по воздуху через Zigbee. Взял, приклеил датчик в нужном месте и на этом установка завершена — не нужно штробить стены и прокладывать провода. Беспроводные датчики на батарейках бывают не только Zigbee, но еще и Wi-Fi и Bluetooth. Выбор Zigbee датчиков больше и живут на батарейке они дольше.
Стандарт Zigbee создан специально для умных устройств. Zigbee — это не замена Wi-Fi. Через Zigbee вы не сможете посмотреть фильм в интернете, не бывает зигби камер, но всякие умные устройства могут использовать Zigbee для эффективной работы.
Установка 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.
Редактируем файл настроек /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.
Добавляем сервис в автозагрузку и запускаем его:
USB Стики
Но кроме больших компаний которые производят оборудование есть еще множество энтузиастов, которые создают свои собственные устройства и софт.
Можно вообще не использовать официальные устройства в качестве Координатора, а использовать так называемые "USB стики". USB стик втыкает в компьютер. На компьютер ставится специальный софт. И вот совокупность этого стика + софт — это получается zigbee Координатор.
Но, использование подобных решений требует достаточно серьезных знаний компьютера. А для некоторых задач еще и нужно уметь паять.
Самый популярный софт который работает с zigbee стиками — это zigbee2mqtt. Этот софт поддерживает более 1000 Zigbee устройств разных производителей. При использовании стика + zigbee2mqtt в одной сети могут быть устройства разных брендов: датчики Aqara, кнопки Konke, лампочки Ikea.
Софт zigbee2mqtt может работать с разными стиками (список). Вот несколько популярных стиков:
Официальные устройства
Давайте сначала рассмотрим официальный подход. Есть много разных производителей умных устройств. Например, Aqara. Можно купить датчик температуры Aqara, датчик движения Aqara, датчик открытия Aqara — все это очень хорошие и популярные устройства. Но чтобы работать этим устройствами нужен Координатор. И компания Aqara продает устройства которое работает Кординатором — Aqara шлюз (есть несколько разных моделей этого устройства).
Практически все производители которые делают умные зигби устройства продают Координаторы. Обычно эти устройства называются Шлюз, Хаб, Gateway, Центр умного дома.
Но тут есть одна тонкость. Чаще всего к Координатору компании можно подключить только устройства которые производит эта же компания. Если у вас Sonoff Шлюз, то к нему будут подключаться только Sonoff Zigbee устройства. Если у вас Konke Шлюз, то к нему можно подключить только Konke устройства. Бывают небольшие исключения (например, в Aqara Шлюз можно подключать не только устройства Aqara, но и Mi), но в общем случае — к Координатру можно подключать только устройства этой же компании.
И это, конечно, ужасно. В мире Wi-Fi все совершенно не так: к Wi-Fi роутеру любой компании без проблем подключаются все Wi-Fi устройства любых других производителей.
Когда-нибудь наступит порядок и в мире Zigbee — к любым Координатором можно будет подключать любое оборудование, но пока прозводители пытаются удержать пользователей в рамках своих закрытых системы.
Обновление ZigBee2MQTT
Делаем резервную копию данных:
Восстановление данных и запуск сервиса:
Координатор
Координатор — это главное устройство в Zigbee сети. Все устройства подключаются к нему. Есть разные устройства которые могут работать координатором.
Прошивка 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 кабеля. Подключить оба устройства (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'а.
Чем еще живут энтузиасты?
Спустя полтора года, как тема zigbee получила хороший пинок и начала активно развиваться, в ней наблюдается активное брожжение и деление на лагери. Участники, желающие “путь подороже, но всё готовое” выбрали DeConz. Рукодельщики варганят себе сети на базе TI CC2530/CC2531. Альтернативщики работают с Samsung SmartThings или Zigate.
Я отношу себя к лагерю рукодельщиков и там я наблюдаю и участвую в активном развитии.
Флагманом этого направления является проект zigbee2mqtt, который благодаря своей универсальности получил очень широкое распространение по всему миру. О нем пишут различные издания, выходят ролики умельцев прикрутивших его к своим системам УД.
В последнее время наметилась тенденция перехода на новый Z-Stack 3.0. Представители TI вышли на автора проекта и предложили допилить поддержку новых модулей CC2652R на базе нового стика. Это наконец позволит избавиться от недостатков, которые присущи малому объему памяти в чипе CC253* и немного устаревшему стику Z-Stack 1.2.2.
Тема Zigbee в целом развивается и со стороны производителей: Ikea, Philips, Osram, Xiaomi/Aqara, Gledopto, Heiman… это в основном освещение, но есть и термостаты, реле, датчики.
Мы сами начали делать реле и датчики температуры на базе чипов TI CC2530. И это только начало!
Не так давно, в обновлении 0.106.0, без особых афиширований добавили нативную поддержку Zigbee стиков на чипе cc2531. Это очень хорошая новость для всех любителей HA. Я решил проверить, насколько хорошо дела обстоят сейчас. В часетсве подопытных взял несколько устройств от Xiaomi.
Итак, для настройки идём по пути Настройки -> Интеграции -> Добавить.
В открывшемся окошке вводим путь до вставленного в сервер стика cc2531. Узнать его можно, зайдя на хост машину по ssh и введя в командной строке следующее:
Устройство, в названии которого будет Texas_Instruments и есть то, что нам надо. После жмём готово и снова идём в Настройки, где перематываем до самого низа страницы и видим новый пункт ZHA. Зайдя в него, наблюдаем следующее (добавленных устройств у вас по началу не будет):
Дальше все просто - жмём на Добавить устройства и переводим нужный девайс в режим пэйринга. Добавлю от себя, что для устройств Xiaomi/Aqara необходимо не давать устройству заснуть, для этого до момента успешного коннекта необходимо раз в 2-3 секунды жать на кнопку коннекта на устройстве. Если все прошло успешно, мы увидим подключённый девайс:
После чего сможем взаимодействовать с ним в системе. Все необходимое, как видите, проделывается буквально за 5-10 минут при должной сноровке. И хоть пока маловато устройств, которые можно таким образом добавить в HA, но в будущем, надеюсь, ситуация поправится. На данный момент поддерживаются:
- бинарные сенсоры вроде датчика открытия двери/движения;
- рольставни и шторы;
- вентиляторы;
- замки;
- осветительные приборы;
- обычные сенсоры вроде датчиков температуры/влажности;
- выключатели и розетки.
Список небольшой, но в дальнейшем, конечно, будет пополняться.
Небольшая ремарка о том, что надо читать официальную документацию до конца, чего я не сделал, и получил отвал интеграции при перезапуске HA. Чтобы это предотвратить, делаем в консоли на хост машине следующее:
sudo apt-get purge modemmanager
Да, интеграция сейчас в глубокой бете, и многое ещё не описано, например, непонятно, как добавлять автоматизации, завязанные на нажатиях кнопок. Думаю через пол года у нас будет хорошая альтернатива Zigbee2mqtt. Пока же можно поковырять ее хотя бы из любопытства.
На Хабре уже встречались статьи о том, как подружить ZigBee устройства различных производителей с системами управления умным домом, без использования фирменных хабов, вроде Xiaomi Gateway. Однако, инструкции для homebridge, я не нашел не только на Хабре, но и на других просторах интернета. Поэтому хочу поделиться опытом добавления ZigBee устройств в homebridge. Огромную благодарность надо выразить создателю ресурса zigbee2mqtt.io, там уже расписаны способы прошивки модема CC2531 и подключения к таким системам управления умным домом как Home Assistant, Domoticz и Majordomo. Статья рассчитана на пользователей, у которых уже установлен и настроен homebridge.
Все действия в статье будут проводиться со следующим набором оборудования:
- Raspberry Pi 3 B+ (OS Raspbian) (Прошитый)
- Устройства Xiaomi (wireless switch, temperature & humidity sensor. )
- MacBook Pro (OSX 10.14)
Схематично всю цепочку работы можно изобразить так:
Теперь по порядку.
После прошивки модема необходимо установить MQTT брокер (если еще не установлен).
Я использую Mosquitto, устанавливается так:
Более подробную инструкцию по настройке можно посмотреть тут.
Теперь необходимо установить сервис zigbee2mqtt, который взаимодействует с модемом CC2531 и передает данные в Mosquitto:
Для того чтобы запускать zigbee2mqtt как сервис, необходимо создать файл:
/etc/systemd/system/zigbee2mqtt.service
Если у вас уже был установлен MQTT брокер то прописать правильные параметры подключения к нему нужно в файле:
Запускаем сервис и добавляем его в автозапуск:
Можно приступать к интеграции с homebridge. На ресурсе zigbee2mqtt.io есть список поддерживаемых устройств и инструкции по созданию пары. Для примера рассмотрим добавление Xiaomi Wireless Switch.
Для просмотра событий в Mosquitto воспользуемся программой MQTT Explorer. Запускаем, вводим адрес MQTT сервера, в моем случае он расположен по адресу 192.168.1.104 . Если все установлено правильно, то в дереве увидим ветку zigbee2mqtt. Переходим в нее. Теперь на Xiaomi Wireless Switch зажимаем кнопку Reset до появления мигания диода (около 5 секунд). Примерно через 10 секунд в ветке zigbee2mqtt мы увидим наше устройство и данные которое оно передает.
Если этого не происходит, то после появления мигания диода, попробуйте однократно нажимать Reset с периодичностью в секунду. Должно получиться так:
Поле Click содержит тип нажатия, их может быть пять:
Click, double click, triple click, long, long_release
Данные получать научились, теперь добавим Xiaomi Wireless Switch в homebrdige. Для взаимодействия с MQTT воспользуемся модулем homebridge-mqttthing. Устанавливается так же, как и другие:
Модуль поддерживает большое количество классов устройств начиная с выключателей и заканчивая термостатами. Для Xiaomi Wireless Switch больше всего подходит класс StatelessProgramableSwitch . Для добавления нужно знать Topic (0x00158d00022c85ea) и названия команд. Получается вот такой конфиг:
По аналогии я добавил:
Раньше я использовал модуль homebridge-mi-aqara, который добавляет ZigBee устройства, взаимодействуя с Xiaomi Gateway. При отказе от Gateway уменьшилось время отклика устройств, вдобавок я избавился от устройства которое сидит на моем WiFi и постоянно лезет в интернет.
Дополнение 07.11.2020 спасибо за @dalamber_sign, если у кого то есть подобные проблемы, возможно поможет:
Столкнулся с проблемой что периодически отваливается xiaomi розетка и не ищутся новые устройства.CC2531 у меня работает в Raspberry Pi 4 и как оказалось проблема была в том, что CC2531 включен прямо в USB порт, без usb-удлинителя. Официальный FAQ так и пишет «There can be too much interference, try connecting the coordinator USB through an USB extension cable. This problem occurs a lot when used in combination with a Raspberry Pi 4.», а казалось что слишком глупо чтобы быть правдой.
Выявленные проблемы
На Ubuntu было лень создавать отдельного пользователя для работы сервиса и программа запускалась от пользователя homeassistant вместе с самим Home Assistant. После нескольких минут работы у Home Assistant отваливалась связь со шлюзами и светильниками Xiaomi. После создания в системе отдельного пользователя и настройки запуска от его имени проблема ушла.
Как и у многих, мое знакомство с умным домом началось с умной Wi-Fi лампочки.
Купил лампочку, подключил к своей Wi-Fi сети и могу включать-выключать свет с телефона из любой точки мира. Потом у меня появились умные розетки, камеры и датчики температуры-влажности. Все устройства Wi-Fi.
Чем больше я погружался в мир умных домов тем чаще я слышал что бывают еще какие-то "зигби" устройства.
Меня вполне устраивал Wi-Fi, поэтому я не сильно интересовался чем-то другим. Но в конце-концов я разобрался что такое Zigbee и сейчас очень жалею что не узнал все это раньше.
В этом тексте я хочу рассказать что же такое зигби, чем отличается от Wi-Fi и что нужно для того чтобы работать с Zigbee устройствами.
Самоорганизующая сеть
Интересная особенность Zigbee — это то как устройств объединяются в сеть.
Есть 3 типа устройств в Zigbee сети:
- Zigbee координатор — главное устройство — такое устройство всегда одно в сети
- Zigbee роутер (не путать с Wi-Fi роутерами)
- Конечное устройство
Пример конечного устройства — это какой-нибудь датчик температуры-влажности который работает от батареек, или какая-нибудь беспроводная кнопка.
Роутер — тоже какое-то полезное устройство, например умная розетка или умная лампочка.
Назначение роутеров — это расширение сети Zigbee. Конечные устройства могут подключаться или напрямую к координатору, или к роутеру. Это происходит автоматически. Устройства сами понимают куда и как нужно подключаться и повлиять на это никак нельзя.
Практически всегда если устройство работает от батареек — это конечное устройство, а если к устройству подводится фаза и ноль — это роутер (на самом деле, это не обязательно, бывают исключения, но, по факту, почти всегда это так). Бывают Zigbee реле и выключатели к которым подводится только фаза, без нуля — такие устройства роутерами не являются.
Вот пример как может выглядеть Zigbee сеть:
- красный прямоугольник — это координатор
- синие — это роутеры
- желтые — это конечные устройства
Первое время после того как появляются Zigbee устройства очень интересно смотреть в карту сети. И тут сразу появляются вопросы "Почему этот датчик температуру идет напрямую в координатор, который находится через 2 стены от него, а не садиться на роутер который находится в 20 сантиметрах?" Ответ — сеть сама понимает как ей лучше. Может быть, когда-нибудь, сеть перестроится, но возможно что все и дальше будет работать именно так. Не стоит ожидать мгновенной перестройки сети. Могут проходить недели перед тем как поменяются маршруты. Нет возможности настроить конечное устройство чтобы оно подключалось к какому-то определенному роутеру. Сеть сам определяет какие маршруты использовать.
Подключение устройств
Для подключения устройств в файле /opt/zigbee2mqtt/data/configuration.yaml надо установить permit_join: true и перезагрузить сервис.
Перед подключением необходимо проверить, что подключаемое устройство находится в списке поддерживаемых устройств. Для перевода подключаемого устройства в режим спаривания необходимо обратиться к инструкции производителя.
После подключения всех устройств для повышения безопасности и избежании случайного подключения других устройств в файле /opt/zigbee2mqtt/data/configuration.yaml необходимо установить permit_join: false после чего перезагрузить сервис.
Прошивка 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 кабеля. Подключить оба устройства (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'а.
DIY устройства
Официальные Координаторы очень ограниченые — к нем нельзя подключать устройства разных производителей.
Для того чтобы работать с USB стиком должен быть компьютер в который этот стик вставлен.
Есть несколько проектов которые пытаются создать устройство, которое лишено этих недостатков. Эти проекты не разрабатывают устройство с нуля, а модифицируют официальные устройства.
Установка MQTT брокера Mosquitto
Дальнейшие инструкции описывают установку программного обеспечения на Ubuntu и другие системы на базе Debian, в том числе Raspberry Pi OS.
В файле /etc/mosquitto/mosquitto.conf должно быть следующее:
Создадим файл default.conf для внесения своих настроек:
Для установки пароля в файл /etc/mosquitto/conf.d/default.conf внесем следующее:
Создаем нового пользователя usermosquitto с паролем passmosquitto для подключения к Mosquitto:
Вводим пароль для нового пользователя и перезапускаем сервис Mosquitto:
Читайте также: