ESP32: https://alii.pub/6oimu6
ESP32-C3: https://alii.pub/6oin43
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
Не так давно появилась в ESPHome очень интересная функция, которая обошла меня стороной.
Дело в том, что у меня установлен Home Assistant На Raspberry pi 4 и блютуза встроенного в Raspberry pi 4 мне хватало. ПО этому я не обращал внимание на Bluetooth proxy от ESPHome.
Но беда пришла откуда не ждали. Я начал разбираться с датчиком движения LD2410B. И установить с ним Bluetooth соединение не получалось. Raspberry pi 4 с Home Assistant На борту его не находила. Хотя телефон вполне к нему подключался через приложение.
И вот поломав голову изменяя настройки датчика, решил попробовать Bluetooth proxy от ESPHome. Загрузив буквально несколько строчек кода, у меня тут-же датчик движения LD2410B нашелся и пробросился в Home Assistant.
По этому я и решил сделать эту статью, чтоб помочь людям, у которых такая же проблема возникнет. Или просто если на компьютере с Home Assistant нет Bluetooth модуля, то это очень удобный способ будет для добавления устройств Bluetooth в Home Assitant.
Bluetooth proxy ESPHome.
Давайте сначала начнем с предупреждения: https://esphome.io/components/bluetooth_proxy.html
Предупреждение: Активные соединения Bluetooth-прокси ESPHome предоставляет Home Assistant максимум 3 одновременных активных соединения. Устройства, которые поддерживают постоянное активное соединение, будут потреблять одно из них постоянно, в то время как устройства, которые периодически отключаются и снова подключаются , позволяют использовать более 3 из них (на статистической основе). Пассивно передаваемые данные датчиков (которые рекламируются определенными устройствами без активных подключений) принимаются отдельно от них и не ограничиваются определенным количеством. Компонент веб-сервера следует отключить, так как в устройстве может не хватить памяти, и при одновременном включении обоих компонентов устройство может работать со сбоями. Поддерживаются не все устройства, а ESPHome не декодирует и не ведет список. Чтобы узнать, поддерживается ли ваше устройство, найдите его в списке интеграций Home Assistant . |
С предупреждением разобрались, идем далее.
По сути Bluetoot proxy включается двумя строчками кода:
bluetooth_proxy: active: true
- active ( Необязательный , логическое значение): Включает проксирование активных подключений. По умолчанию
false
. Требуется Home Assistant 2022.10 или новее.
Добавив этот параметр, у Вас включится Buetooth прокси, но есть еще некий параметр, который улучшит связт Bluetooth.
Улучшение качества приема
Используйте плату с Ethernet-подключением к сети, чтобы разгрузить радиомодуль ESP32 от трафика WiFi, это повышает производительность на стороне Bluetooth.
Но у меня и по Wi-fi отлично все работает. Правда я на модуль ничего больше не вешал кроме Bluetooth proxy функции.
Чтобы максимизировать шансы поймать рекламу датчиков, вы можете установить interval
равным window
в настройках параметров сканирования ESP32 Bluetooth Low Energy Tracker Hub :
esp32_ble_tracker:
scan_parameters:
interval: 1100ms
window: 1100ms
Примечание
Для прокси-серверов на основе WiFi изменение значений по умолчанию interval
или window
значений по умолчанию может привести к нестабильному соединению WiFi. Использование значений по умолчанию для interval
и window
обычно устраняет любую нестабильность.
Ну и собственно конечный результат у меня выглядит так:
esp32_ble_tracker: scan_parameters: interval: 1100ms window: 1100ms active: true bluetooth_proxy: active: true
Добавив эти несколько строчек кода и добавив получившееся устройство в Home Assistant, у Вас моментально начнут появляться новые устройства для добавления в Home Assistant по Bluetooth.
Вот как у меня это выглядело. Как работало на штатном bluetooth raspbery pi 4. Видно, что нашлось какое-то одно устройство Bluetooth:
Ну а как только я добавил Bluetooth proxy, картина тут-же изменилась:
И мой многострадальный датчик LD2410B сразу нашелся.
P.S. Bluetooth proxy поддерживается и ESP32-C3.