Плата NRF52840: https://alii.pub/71fkjn?erid=2SDnjcsYiBc
У меня такая: https://alii.pub/71fkp3?erid=2SDnjdtrDTQ
USB версия: https://alii.pub/71fksl?erid=2SDnjeWRvDg
NRF52840 это микроконтроллер который имеет беспроводной способ связи Bluetooth и Zigbee.
Сам контроллер довольно дешевый и вот из него сделали Zigbee координатор. И можно его использовать даже в Zigbee2mqtt. И получается получаем самый дешевый Zigbee координатор за 300 рублей.
Zigbee2mqtt пока еще поддерживает этот контроллер как “экспериментальный” но пользоваться вполне себе можно.
Для прошивки устройства качаем прошивку в формате .uf2 от сюда https://github.com/kirovilya/files/raw/master/ncp_v2_2.uf2
Далее подключаем плату с NRF52840 к компьютеру, он определится в виде папки. И в эту папку закидываем скаченный файл ncp_v2_2.uf2. После загрузки файла, контроллер сразу перезагрузится и это будет означать, что прошивка установилась в контроллер.
После этого устанавливаем или обновляем ZIgbee2mqtt до последней версии, а лучше вообще (dev или edge) версию установить, там еще более новее версии, чем в основной ветке.
В настройках Zigbee2mqtt указываем путь к порту куда подключен NRF52840 и adapter указываем zboss.
adapter: zboss.
Но в WEB интерфейсе в блоке Serial если вписать adapter: zboss – то не даст сохранить конфигурацию, написав ошибку:
Не удалось сохранить конфигурацию дополнения, does not match regular expression zstack|deconz|zigate|ezsp|ember. Got {‘data_path’: ‘/config/zigbee2mqtt_2’, ‘socat’: {‘enabled’: False, ‘master’: ‘pty,raw,echo=0,link=/tmp/ttyZ2M,mode=777’, ‘slave’: ‘tcp-listen:8485,keepalive,nodelay,reuseaddr,keepidle=1,keepintvl=1,keepcnt=5’, ‘options’: ‘-d -d’, ‘log’: False}, ‘mqtt’: {}, ‘serial’: {‘adapter’: ‘zboss’}}
Но если зайти по пути в папку Zigbee2mqtt и открыть файл Configuration.yaml и там прописать adapter: zboss – то конфигурация сработает и Zigbee2mqtt запустится.
serial:
port: /dev/ttyACM1
adapter: zboss
Ну а порт, можно найти в Настройки-> оборудование-> показать все оборудование и там увидим наш Zigbee стик:
Собственно сохраняем все и запускаем Zigbee2mqtt.
В пункте “О Программе” видно, что используется zboss:
Добавил тестовый датчик открытия двери, все добавилось без проблем:
Поддержка адаптера zboss пока еще экспериментальная и не рекомендована к постоянному использованию. Но вот поиграться и поэкспериментировать – пойдет.
Например у меня экземпляр Zigbee2mqtt работал без включенного watchdog (который бы запустил аддон Zigbee2mqtt заново). И через сутки работы получил такую ошибку:
Starting Zigbee2MQTT without watchdog.
[2024-10-02 16:28:03] error: zh:zboss:driv: ==> Error: Error: Error on command APSDE_DATA_REQ(769): {"version":0,"type":1,"commandId":769,"tsn":69,"payload":{"category":3,"status":6,"ieee":"0x0000000000001177","srcEndpoint":1,"txTime":1,"dstAddrMode":0}}
[2024-10-02 16:28:04] error: zh:controller:device: Handling of poll check-in from 0x00158d0002b17ce3 failed (ZCL command 0x00158d0002b17ce3/1 genPollCtrl.checkinRsp({"startFastPolling":false,"fastPollTimeout":0}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":false,"direction":0,"reservedBits":0,"writeUndiv":false,"sendPolicy":"immediate"}) failed (Failure send 769:{"version":0,"type":0,"commandId":769,"tsn":69,"payload":{"paramLength":21,"dataLength":6,"addr":"0x00158d0002b17ce3","profileID":260,"clusterID":32,"dstEndpoint":1,"srcEndpoint":1,"radius":3,"dstAddrMode":3,"txOptions":2,"useAlias":0,"aliasAddr":0,"aliasSequence":0,"data":{"type":"Buffer","data":[1,27,0,0,0,0]}}}))
Но по сути с перезапуском аддона автоматическим, все будет работать и падать незаметно.