пост 05.10.2025
Bluetooth - хороший источник данных для Home Assistant
Ранее я писал, что использую умный дом на ZIgbee. Поэтому, конечно, большинство моих датчиков - это zigbee-датчики. И они прекрасны.
Однако, у меня есть несколько датчиков, с которыми не все хорошо. И они не zigbee.
Мой любимый - это Qingping Air Monitor CGP22C. Это - самый дешевый рабочий датчик CO2, температуры и влажности.
У этого китайского датчика есть китайское приложение и он умеет работать по wifi и bluetooth.
Т.к. раньше у меня bluetooth в умном доме не было - я выбрал путь интеграции датчика через wifi.
И я успешно его туда интегрировал, но каких же сил мне это стоило и что я получил в итоге.
Итак, чтобы такой датчик начал какие-то данные отдавать по mqtt (единственный способ снять с него данные через wifi) - нам нужно найти специальный сайт для разработчиков quingping dev и там создать профиль устройства и привязать свои датчики.
После перезагрузки они подхватят конфиг и смогут сливать в mqtt данные в каком-то супер диком бинарном формате.
В интернете я нашел китайца, который расшифровал этот формат и предоставил библиотеку для этого.
А также другого китайца, который взял наработку первого китайца и упаковал в шаблонную интеграция с home assistant.
Но вот проблема, он сделал это криво, и поэтому больше одного датчика там не работает. А у меня их два.
И поэтому я разработал свою версию этой интеграции, которая использовала нативный mqtt-сервис ha как основу, конфигурировалась через yaml и работала.
В процессе этого я узнал некоторое количество нюансов работы yaml-интеграций в ha, которые меня не порадовали.
Если коротко - не пишите кастомную yaml-интеграцию, делайте сразу через конфигурацию в графическом интерфейсе, и все у вас будет хорошо. Через yaml часть возможностей просто недоступна.
Как итог - у меня появились объекты с цифрами показаний датчиков в ha, которые показывают “недоступно” если mqtt ещё не успел впихнуть в них данные.
А впихивание происходит раз в 10 минут, по-другому эти датчики не умеют общаться с mqtt, даже будучи подключенными к сети.
Итак, если вы дочитали до сюда, вы уже поняли, что чтобы вытащить 3 цифры из китайского датчика мне пришлось пройти немалый путь.
Но его можно было не проходить!
Можно просто купить bluetooth-адаптер из списка поддерживаемых (я взял UGREEN CM591), добавить его нативно в home assistant и … с этого датчика вообще без всякой особой настройки можно снимать показания в реальном времени по bluetooth / ble.
И ещё с пачки датчиков которые умеют в ble. Цена вопроса - 500 рублей.
Даже мой старый xiaomi-датчик, который я уже давно использовал просто как дисплей для этих показаний на балконе, как оказалось - умеет их по ble транслировать.