Устал ждать поддержку Aqara bulb в HomeAssistant через Xiaomi gateway — настроил через Zigbee2mqtt. Обзор из серии «Смотрите, что я сделал по инструкции».
Серьезно, быстро не нашел ПРОСТОЙ инструкции, как прошить CC2530 без cc debugger (через обычный USB-to-TTL не прошивается). Описанное ниже делается за 30 мин и сразу все работает.
Итак, в наличии сам CC2530, ESP32 и Raspberry 3B. Опционально USB-to-TTL. Ну и проводки, 7шт.
(Актуально для любого ARM одноплатника например OrangePi)
Прошивка сс2530
Шаги ниже сделаны согласно инструкциям с myzigbee.ru — проверено на Win10.
Качаем некий
VLK DIY Multi Flasher. Вообще прога — обертка над esptool и задумывалась для прошивки ZESP — эдакий шлюз-координатор с WebUI, крутящийся на ESP32 — но мы будем ставить Zigbee2mqtt, очень уж он дружит с HomeAssistant.
Качаем Zigbee2mqtt прошу для CC2530. Я выбрал
стабильную Stack 1.2 source_routing с поддержкой zigbee хабов.
Качаем
дрова для ESP32 и ставим.
Соединяем выводы есп32 и сс2530 по таблице:
Подключаем к компу ESP32 к компу.
VLK DIY Multi Flasher находит ESP — скажем на COM4. Переходим на вкладку ZESP.
Нажимаем Erase chip.
Кнопка… — выбираем CC2530ZNP-Prod.hex прошивку.
Нажимаем Write Full flash.
Все — CC2530 прошит — ESP32 больше не нужна!
Подключение CC2530 к малинке
Все отсоединяем и присоединяем к малинке. Можно напрямую на пины малинки, но тогда надо выключить UART и пропадет BT. У меня есть простой USB-to-TTL — соединю через него (если надо — дополню про прямое соединение).
Подключаем USB-to-TTL в малинку — появится ttyUSB0. Наконец-то закончили с железом.
raspberrypi:~ $ ls -l /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Dec 8 11:57 /dev/ttyUSB0
Настройка софта на малинке
HomeAssistant/HASSIO был поставлен в докере согласно www.home-assistant.io/hassio/installation/#alternative-install-on-a-generic-linux-host
В малинке нам нужен HomeAssistant/HASSIO и Mosquitto. Последнего можно ставить пакетом, а можно плагином для HASSIO. Я ставил пакетом:
raspberrypi:~ $ sudo apt-get install -y mosquitto mosquitto-clients
Открываем HomeAssistant, Настройки — Интеграции — Добавить — MQTT. Смотрим на собственный IP, порт 1883, ставим галку «Разрешить автодобавление устройств».
Шаги ниже сделаны согласно инструкциям с www.zigbee2mqtt.io
Открываем HomeAssistant, Hass.io — вкладка ADD-ON STORE — добавляем репу
github.com/danielwelch/hassio-zigbee2mqtt
В списке находим Zigbee2mqtt — ставим.
Вкладка Dashboard — выбираем Zigbee2mqtt. Ниже в json конфиге меняем
"permit_join": true
"server": "свой IP"
"port": "/dev/ttyUSB0"
Перезагружаем add-on — в логах в самом низу страницы видим строчки
zigbee2mqtt:warn 2019-12-08T19:54:46: Allowing new devices to join. (новый конфиг подхватился)
zigbee2mqtt:info 2019-12-08T19:54:46: Connected to MQTT server (MQTT подхватился)
Наконец переходим к лампе — сбрасываем настройки — 5 раз включить/выключить с задержкой в 1сек — лампа пропульсирует. Сразу же в логах Zigbee2mqtt видим строчку:
zigbee2mqtt:info 2019-12-08T19:54:46: 0x00158d0002d6f384 (0x00158d0002d6f384): ZNLDP12LM - Xiaomi Aqara smart LED bulb device has successfully been paired.
Т.о. благодаря permit_join=true у Zigbee2mqtt новые устройства пускаются в сеть. А благодаря галке «Разрешить автодобавление устройств» у MQTT — HomeAssistant сам создаст устройство на основании первого MQTT сообщения от Zigbee2mqtt.
Профит
Переходим на /states — вот ты какая, лампа Акарыча:
Всё пока!
А можно три слова простым языком о новых возможностях?
Обычно же главная цель — управлять разными zigbee устройствами (например xiaomi и ikea) из одного места.
Или уйти от китайских облаков xiaomi.
Если требования такие простые — зачем что-то городить:
aliexpress.com/item/32920284867.html
Если надо контролировать удаленно и хранить историю — xiaomi из коробки подойдет — и ничего прошивать не нужно:
хаб $22 aliexpress.com/item/32800798288.html
датчик $9 aliexpress.com/item/32714410866.html
Контроль через смартфон
Если что-то исполнять, то на стороне сервера надо держать некую очередь команд/посылок на каждую esp. И контролировать выполнение (обратная связь).
Совсем недавно здесь был обзор переделки шлюза Xiaomi на ESP32 + CC253x с возможностью локальной обработки данных и выполнения команд.
Второй (не обязательный) уровень задачи — контроль датчика на расстоянии ~500 метров — потому посматривал в сторону LoraWAN.
220 для шлюза есть :)
(использую народный стик 2531 — компактно, укладывается с малиной в один корпус, легко выводится rp-sma и подключается к usb напрямую 4мя проводами).
сейчас на orange pi pc крутится majordomo, но стабильность не устраивает (раз в неделю в отказ уходит). Читаю, что HA и Iobroker сейчас на подъеме, отпишитесь, кто какой использует.
за почти 3 года -пару раз слетала база domoticz на одной малине, вероятнее всего изза кривой SD карты
1 раз эта карта окончательно умерла, дав при этом нормально скопировать нужные данные.
SD ставил первую которая попалась.
остальные 2 малинки работают без проблем с SD картами что были в комплекте. правда и нагрузка на них на порядок меньше. (на основной малинке почти 500 Devices)
Из-за этого я именно ее и купил для сервера умного дома.
У меня тож на хосте крутится…
Надо перевести на русский и добавить сюда.
VLK DIY Multi Flasher позволяет прошить CC2530 так же через ардуину да и через родной программатор
предлагаемый zesp так же превращает esp32 в программатор
а вот мне кажется или в той статье забыт такой тонкий момент:
— прошивка zesp уже содержит в себе агента для работы с модулем сс253х, активируется он перемычкой между выводом IO21 и GND в ЕСП32, в общем ставим перемычку и переходим на вкладку [arduino CC]
----------
С Google home получится
для универсальности рекомендую:
— Tuya-совместимые
— xiaomi экосистема (aqara, mija)
— на базе ESP8266 где можно подпаяться и перепрошить tasmota или сразу по воздуху esphome
Лично мне так было проще в моменте, статью писал про горячим следам.
Вообще достаточно или Малинки или ESP (допустим Малинки нет и home assistant на ПК — тогда прошиваете зигби через ESP).
А zigbee стик переделал на прямое подключение USB пайкой, на выход RP-SMA с 5дБ антенной (на фото термоусадка сдвинута для наглядности).
Торчащая пипка BLE адаптер, он трекает сотовый и Miband4 (состояние «дома» — «не дома») и выводит озвучку на BT колонку.
Иглы радиатора не отпиливал а просто выгнул по форме верхней крышки, она скругленная.