Прошивка CC2530 через ESP32 и настройка Aqara Bulb в HomeAssistant через Zigbee2mqtt


Устал ждать поддержку 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 — вот ты какая, лампа Акарыча:


Всё пока!
Планирую купить +39 Добавить в избранное +31 +57
+
avatar
+4
Круто!
А можно три слова простым языком о новых возможностях?
+
avatar
  • nopower
  • 08 декабря 2019, 23:39
+3
Мне нужно было Aqara bulb с HomeAssistant подружить — пока единственный способ такой вот — длиной 30мин.
Обычно же главная цель — управлять разными zigbee устройствами (например xiaomi и ikea) из одного места.
Или уйти от китайских облаков xiaomi.
+
avatar
0
Вот если, например, мне нужно контролировать температуру в нескольких местах и использовать датчики, которые живут подолгу от одного комплекта батареек — пойдёт?
+
avatar
  • nopower
  • 09 декабря 2019, 00:11
+3
Подойдет. Но я за минимально простые решения.

Если требования такие простые — зачем что-то городить:
aliexpress.com/item/32920284867.html

Если надо контролировать удаленно и хранить историю — xiaomi из коробки подойдет — и ничего прошивать не нужно:
хаб $22 aliexpress.com/item/32800798288.html
датчик $9 aliexpress.com/item/32714410866.html
Контроль через смартфон
+
avatar
0
Да, нужен логер и удалённый контроль — забыл сказать :)
+
avatar
+1
Купить esp и датчики, прошить и контролировать
+
avatar
  • Harwest
  • 09 декабря 2019, 09:37
0
Esp не живут подолгу от батареек ;)
+
avatar
0
В режиме глубокого сна живут
+
avatar
+1
У меня от двух АА в течении года и 3 месяцев датчик на ESP отработал 8900 просыпаний и передач сигнала.
+
avatar
  • Harwest
  • 09 декабря 2019, 18:51
0
Zigbee датчик от этих АА проработал бы лет шесть )
+
avatar
+2
Да, не спорю, это класс. Только для zigbee нужна инфраструктура, а для esp инфраструктура в виде точки доступа уже есть.
+
avatar
  • Zhenya88
  • 09 декабря 2019, 19:54
0
На esp огромным плюсом является то, что ей любую логику работы можно прикрутить при получении команды, в отличии от устройств Zigbee.
+
avatar
  • Harwest
  • 09 декабря 2019, 20:03
0
Можно, не спорю, но имхо deep sleep это все таки режим сенсора, а не исполнительного устройства.
Если что-то исполнять, то на стороне сервера надо держать некую очередь команд/посылок на каждую esp. И контролировать выполнение (обратная связь).
Совсем недавно здесь был обзор переделки шлюза Xiaomi на ESP32 + CC253x с возможностью локальной обработки данных и выполнения команд.
+
avatar
  • vovadpua
  • 09 декабря 2019, 11:01
0
Информации вы предоставили мало, как удаленно мерят температуру в разных городах, или разных комнатах/этажах. Как обстоит дело с питанием в этих точках, где меряется температура. Если в радиусе километра нет 220 то вам не поможет и датчик от батареек, так как он все равно передает данные на гетвейт, который без 220 никак не сможет.
+
avatar
0
Температуру необходимо контролировать/логировать от датчиков, расположенных в разных комнатах/этажах частного дома + теплица.
Второй (не обязательный) уровень задачи — контроль датчика на расстоянии ~500 метров — потому посматривал в сторону LoraWAN.
220 для шлюза есть :)
+
avatar
  • _Konan_
  • 09 декабря 2019, 01:31
+4
А шо за язык? Индийский?
+
avatar
0
А блютуз есть?
+
avatar
  • Harwest
  • 09 декабря 2019, 04:34
0
Странно, СС2530 не шьется через малину?
(использую народный стик 2531 — компактно, укладывается с малиной в один корпус, легко выводится rp-sma и подключается к usb напрямую 4мя проводами).
+
avatar
  • Berlin
  • 09 декабря 2019, 04:42
+2
Обзору не хватает души) Помигайте лампочкой и как котэ отреагирует) Зацените всем на видео, что вы из улице можете выключить свет. Что даже если китайское облако навернется у тебя останется контроль.
+
avatar
  • Yurissum
  • 09 декабря 2019, 05:23
-2
Устал ждать поддержку Aqara bulb в HomeAssistant через Xiaomi gateway
Мы не ищем легких путей. Мы сами создаем себе трудности, а затем мужественно их преодолеваем. Хотя это в нашем духе. Сперва покупаем — потом думаем.
+
avatar
  • BETEPAH
  • 09 декабря 2019, 06:59
+5
А можете для тех, кто еще не купил, озвучить изначально правильные девайсы?
+
avatar
  • airwalk
  • 09 декабря 2019, 11:47
0
датчики xiaomi aqara изначально и будут наиболее предпочтительны по соотношению цена/качество/фунционал. А СС253х — изначально правильный девайс для открытой и наиболее функциональной инетграции с системами умного дома.
+
avatar
  • nopower
  • 09 декабря 2019, 12:27
0
не поверите — но Aqara bulb для меня самый подходящий девайс — а ради поддержки HomeAssistant пришлось убить вечер
+
avatar
0
напишите, как малинкой напрямую перешивать. от себя добавлю, что hassio в докере на малину ставится за минуты, ставил для пробы и удивился, что не нужен бубен
+
avatar
  • kvvhost
  • 09 декабря 2019, 15:59
+1
Даже запись в блоге сделал на эту тему: kvvhost.ru/2019/05/29/zigbee2mqtt-cc2531-raspberry-pi/
+
avatar
  • Jager
  • 09 декабря 2019, 07:36
+1
Зашли бы в чат zigbee и прямо в приветственном сообщении нашли бы все для прошивки сс2530 массой способов :)
+
avatar
  • Zhenya88
  • 09 декабря 2019, 08:37
0
подскажите, какой сервер умного дома сейчас актуальнее использовать?
сейчас на orange pi pc крутится majordomo, но стабильность не устраивает (раз в неделю в отказ уходит). Читаю, что HA и Iobroker сейчас на подъеме, отпишитесь, кто какой использует.
+
avatar
  • addams
  • 09 декабря 2019, 10:21
+2
На OrangePi Plus 2E уже 2 года работает Домотикз, никаких проблем, ни разу!
+
avatar
  • Almister
  • 09 декабря 2019, 11:33
+1
в трех разных местах у меня стоит 3 raspberry примерно с одинаковыми конфигами с работающими domoticz,mqtt, rfxcom433, homebridge и еще некоторыми фичами.
за почти 3 года -пару раз слетала база domoticz на одной малине, вероятнее всего изза кривой SD карты
1 раз эта карта окончательно умерла, дав при этом нормально скопировать нужные данные.
SD ставил первую которая попалась.
остальные 2 малинки работают без проблем с SD картами что были в комплекте. правда и нагрузка на них на порядок меньше. (на основной малинке почти 500 Devices)
+
avatar
+1
Так сделайте на тройке usb boot и прицепите usb sata+мелкий SSD
+
avatar
  • addams
  • 09 декабря 2019, 19:20
+1
В OrangePi Plus 2E EMMC впаяна на плате, работает без SD card.
Из-за этого я именно ее и купил для сервера умного дома.
+
avatar
  • Almister
  • 09 декабря 2019, 20:29
0
Я все-таки больше склоняюсь к плохой карте, у меня база domoticz работает в RAM, поэтому активность на карте во время работы почти нулевая.
+
avatar
  • revolt
  • 09 декабря 2019, 08:37
0
Друзья а подскажите, можно чтоб на rasp3b+ одновременно работали xbmc+HA(+node red)? Перечитал что нашел, где пишут лучше не надо, где что все работает, а где что можно, но HA будет без аддонов(node red).где правда?
+
avatar
0
revolt, пихайте все в докеровские контейнеры, насчет xbmc не знаю, но Kodi точно есть контейнерный
+
avatar
  • Rupunx
  • 09 декабря 2019, 08:41
0
del
+
avatar
  • OXOTH1K
  • 09 декабря 2019, 09:00
-2
Зачем, при наличии Hass.io ставить москито отдельно в хост систему, если есть аналогичный аддон, о чем вы сами же и говорите в статье?
+
avatar
  • Harwest
  • 09 декабря 2019, 09:39
0
Хочется отдельно — поставил.
У меня тож на хосте крутится…
+
avatar
  • nopower
  • 09 декабря 2019, 11:58
+1
привычнее консольные mosquitto_sub mosquitto_pub использовать
+
avatar
  • Alex208
  • 09 декабря 2019, 09:44
-1
Для очень продвинутых прогеров однако.Ничего не понял но лайк поставил
+
avatar
  • renat85
  • 09 декабря 2019, 10:40
0
Серьезно, быстро не нашел ПРОСТОЙ инструкции, как прошить CC2530 без cc debugger (через обычный USB-to-TTL не прошивается).
Серьезно? www.zigbee2mqtt.io/information/alternative_flashing_methods.html
+
avatar
  • nopower
  • 09 декабря 2019, 11:57
0
Ну да, смотрю прошивка через малинку (самый конец) стала простой, мне кажется год назад когда я первый раз пробовал поднять zigbee2mqtt — все было сложнее.

Надо перевести на русский и добавить сюда.
+
avatar
  • Nuts_
  • 09 декабря 2019, 14:54
0
ну она как то меньше соответствует слову ПРОСТОЙ :)
VLK DIY Multi Flasher позволяет прошить CC2530 так же через ардуину да и через родной программатор
предлагаемый zesp так же превращает esp32 в программатор
+
avatar
  • Aven
  • 09 декабря 2019, 12:51
0
Как альтернатива можно прошить ESP32 прошивкой SLS Zigbee Gateway и получить аппаратный шлюз с протоколом zigbee2mqtt. Подробнее тут.
+
avatar
  • RONIN
  • 09 декабря 2019, 14:50
0
Три слова из названия обзора, я точно знаю.
+
avatar
  • Iron_69
  • 09 декабря 2019, 16:09
0
Да, в средние века их уже бы сожгли на костре!:)
+
avatar
  • Nuts_
  • 09 декабря 2019, 14:55
0
@nopower
а вот мне кажется или в той статье забыт такой тонкий момент:
— прошивка zesp уже содержит в себе агента для работы с модулем сс253х, активируется он перемычкой между выводом IO21 и GND в ЕСП32, в общем ставим перемычку и переходим на вкладку [arduino CC]

----------
+
avatar
  • nopower
  • 09 декабря 2019, 21:18
0
Перемычка нужна чтоб саму ESP прошивать, нам она дальше не нужна
+
avatar
  • boutko
  • 09 декабря 2019, 16:28
0
Скажите, а не проще ли делать «умный дом» на Google home, например, a не на Xiaomi?
+
avatar
  • nopower
  • 09 декабря 2019, 22:16
0
Зависит что нужно от умного дома
+
avatar
  • boutko
  • 10 декабря 2019, 04:34
0
Ну, допустим, как в топике: HomeAssistant + Google home + лампа. Нужно было-бы что-то шить?
+
avatar
  • Harwest
  • 10 декабря 2019, 11:11
0
Ну, допустим, как в топике: HomeAssistant + Google home + лампа. Нужно было-бы что-то шить?
Не будет работать — у лампы по ссылке резьба левая :)
+
avatar
  • nopower
  • 11 декабря 2019, 15:34
+1
лампа E27 — лампа как лампа. Интеграция через собственную прилагу — мб broadlink но это неточно. Напрямую в HA не получится, www.home-assistant.io/integrations/broadlink:
The broadlink sensor platform let you monitor data from an RM2 and A1 E-air. There is currently no support for the cloud API.
С Google home получится

для универсальности рекомендую:
— Tuya-совместимые
— xiaomi экосистема (aqara, mija)
— на базе ESP8266 где можно подпаяться и перепрошить tasmota или сразу по воздуху esphome
+
avatar
  • Onegin45
  • 09 декабря 2019, 20:59
-1
Чета непонятные танцы с бубном. Прошили через ЕСП, а малинка зачем? Может вопрос нубский, но сплошные грабли с этим умным домом…
+
avatar
  • nopower
  • 09 декабря 2019, 21:22
0
Согласен, ESP только для прошивки зигби платы, а дальше не нужна.

Лично мне так было проще в моменте, статью писал про горячим следам.

Вообще достаточно или Малинки или ESP (допустим Малинки нет и home assistant на ПК — тогда прошиваете зигби через ESP).
+
avatar
0
Забавно, вчера этим же самым занималась. Заодно кнопки и датчики отвязала от шлюза.
+
avatar
  • Harwest
  • 10 декабря 2019, 11:18
0
Забавно, вчера этим же самым занималась. Заодно кнопки и датчики отвязала от шлюза.
И наверняка забыла сменить zigbee transport key? :)
+
avatar
0
А ещё у меня WiFi конфликтует, видимо. Надо место в эфире освобождать и припаять к свистку антенну помощнее.
+
avatar
  • Harwest
  • 10 декабря 2019, 14:04
0
А ещё у меня WiFi конфликтует, видимо. Надо место в эфире освобождать и припаять к свистку антенну помощнее
У меня коробкочка без вайфая, поигрался с ним и решил под IoT устройства лучше отдельную UniFi тарелочку поставить с Openwrt.
А zigbee стик переделал на прямое подключение USB пайкой, на выход RP-SMA с 5дБ антенной (на фото термоусадка сдвинута для наглядности).
Торчащая пипка BLE адаптер, он трекает сотовый и Miband4 (состояние «дома» — «не дома») и выводит озвучку на BT колонку.



Иглы радиатора не отпиливал а просто выгнул по форме верхней крышки, она скругленная.
+
avatar
0
Припаяла антенну, рядом с дверным проёмом в другую комнату поставила неиспользуемую зигби-розетку, которая служит роутером. Стало несколько получше. Надо будет потом собрать мощный роутер с усилителем.
+
avatar
  • sden
  • 30 августа 2020, 22:11
0
Ткните пожалуйста как на arduino nano найти vcc и dtr?
+
avatar
  • nopower
  • 11 января 2021, 11:17
0
Извините, не имею на руках ардуины
+
avatar
0
VLK DIY Multi Flasher ругается на все и вся
+
avatar
  • nopower
  • 11 января 2021, 11:22
0
Извините, тут не помогу — винду снес окончательно и перешел на более мощный готовый стик CC2538 заказанный в телеге ZigБЕРУ
+
avatar
0
На другом компе без проблем прошился