Метки
amd bittorrent bug centos debian enlightenment fedora fedora 8 fedora 9 fedora 10 fedora 11 fedora 12 fedora 13 fedora 15 fedora 16 FedoraMD fglrx firefox flash player gnome google intel interview java kde kernel linux livecd migrate moldova nvidia openoffice OpenStreetMap opera Orange ovirt radeon red hat rpmfusion Sandel skype video virtualisation vmware wine
IoT зоопарк: Bluetooth LE датчики
2025-12-26 20:41 | Автор: jekader | Filed under: FedoraMD
Датчики к умному дому традиционно подключаются по протоколу Zigbee, но на глаза попался Bluetooth LE термометр всего за 3 доллара. Заказал ради интереса. Пришло вот это:

Сразу уточню, что Bluetooth LE имеет мало общего с классическим Bluetooth. Датчик просто отправляет показания с регулярными интервалами: никаких сопряжений и двухсторонней связи не требуется. К сожалению, данные могут иметь произвольный формат и как результат у каждой модели он свой, привязанный к подозрительному китайскому приложению на смартфон.
Эту проблему призван решить протокол BTHome. На их сайте есть список поддерживаемых устройств - полезно его изучить перед покупкой. Я этого, конечно же, не сделал.
К счастью, мой датчик оказался на базе микроконтроллера PHY6222, под который есть альтернативная прошивка с поддержкой BTHome. Так что припаиваюсь согласно инструкции и прошиваю по последней моде - прямо через браузер.
Следующая задача - заставить Home Assistant видеть Bluetooth устройства. Учитывая, что у меня всё работает в rootless podman, попахивало танцами с бубном. Были также опасения, что Bluetooth это маломощный протокол и далеко от приёмника датчик не отодвинуть. Благо, и для этого придумали решение: Bluetooth Proxy посредством ESPhome. То есть: датчик отправляет BLE датаграммы, их получает плата ESP32 и уже по WiFi передаёт их в Home Assistant. Таких ретрансляторов может быть несколько, что позволяет существенно расширить зону покрытия.
Если уже есть устройства ESPhome, можно на них активировать ретранслятор добавив пару строк к конфигурации:
bluetooth_proxy:
active: true
Я пошёл другим путём и установил плату ESP32 в качестве исключительно ретранслятора. Всё максимально удобно и делается опять-же прямо через браузер. Подключаем ESP32 через UART, идём сюда, выбираем Bluetooth Proxy, прошиваем и подключаем к сети wifi.
На стороне Home Assistant достаточно указать IP адрес платы ESP32 в плагине ESPhome. После этого, рядом расположенные BLE датчики определятся автоматически.
Очень недурно, учитывая низкую цену датчика. Посмотрим, сколько выдержит батарейка CR2032. И насколько надёжно будет работать соединение через ретранслятор.
Метки: BLE, bthome, esp32, esphome, IoT

