uDocs

Получаем процент зарядки ESPHome

Добавляем сенсоры заряда батареи, с помощью сканера сети ESP.

Получаем процент зарядки ESPHome

Если у вас есть, какое-либо устройство с bluetooth, через ESPHome можно достать определенные параметры. На текущем примере будем получать процент зарядки и выводить его в Home Assistant.

По стандарту процент заряда хранится в сервисе 0x180f, под характеристикой 0x2a19. Подойдет для всех видов устройств. Довольно редко производители придумывают свои структуры хранения данных.

Получаем MAC устройства

Первым делом необходимо получить MAC адрес устройства. Для этого можно воспользоваться любым сканером bluetooth сети. В магазинах приложений полно программ на телефон.

В случае, если телефона нет под рукой, то можно загрузить прошивку на ESPHome со сканером сети.

esp32_ble_tracker:

text_sensor:
  - platform: ble_scanner
    name: "Сканер bluetooth"

После чего сенсор будет выдавать все устройства, которые найдет в сети.

{
    "timestamp":1673701516,
    "address":"70:28:45:6D:66:8E",
    "rssi":"-80",
    "name":"Oclean X"
}

Сенсоры получения заряда ESPHome

После того, как мы получили MAC адрес, приступаем к добавлению сенсоров. Нам необходимо создать их 2 штуки. Первый будет получать текущий заряд, второй мощность сигнала до устройства.

Добавляем в yaml конфигурацию esp и нажимаем Install. Клиентов и сенсоров может быть несколько.

esp32_ble_tracker:

ble_client:
  - mac_address: 70:28:45:6D:66:8E
    id: oclean_x

sensor:
  - platform: ble_client
    type: characteristic
    ble_client_id: oclean_x
    name: 'Oclean X'
    service_uuid: '180f'
    characteristic_uuid: '2a19'
    icon: 'mdi:battery'
    unit_of_measurement: '%'

  - platform: ble_client
    type: rssi
    ble_client_id: oclean_x
    name: 'Oclean X RSSI'

Перепрошиваем ESP и ждем пока сенсоры добавятся в Home Assistant.

На примере добавлено 2 зубных щетки.

Теперь можно вывести сенсоры и создать автоматизацию, которая будет сообщать, что необходимо поставить устройство на зарядку.

В некоторых случаях для сенсора, необходимо добавить параметр интервала получения данных. Это сэкономит аккумулятора устройства и не будет нагружать сеть.

Пример интервала в 12 часов:

update_interval: '12:00'

Обсуждение

ИванИван
1 апреля 2023

Отличная статья! Спасибо, все получилось

ИванИван
7 марта 2023

Поставил себе update_interval на 48 часов. Даже если останется 10% то на 2 дня точно хватает заряда.

ИванИван
7 марта 2023

У меня такая же зубная щетка Oclean, очень долго искал как подружить ее с Home Assistant. Перелазил абсолютно все, на github сказали, что это невозможно сделать. По статье быстро получилось настроить. Большое спасибо!

ИванИван
1 марта 2023

Пришлось ждать около часа, чтобы данные аккумулятора появились. И переодически почему-то связь пропадает. Возможно что-то с ESP не так, буду еще мониторить. Полезная инструкция.

Рекомендуемые записи

Отправка сообщений в Telegram из ESPHome

Отправка сообщений в Telegram из ESPHome

Отправляем сообщения в Telegram с устройств ESPHome
Bluetooth Proxy ESPHome Home Assistant

Bluetooth Proxy ESPHome Home Assistant

Добавляем Bluetooth Proxy в Home Assistant с помощью ESPHome.
Прошивка ESP32/ESP8266 через ESPHome

Прошивка ESP32/ESP8266 через ESPHome

Прошиваем устройства на базе ESP32 без программаторов, через ESPHome.
Настраиваем Apple HomeKit через Home Assistant

Настраиваем Apple HomeKit через Home Assistant

Быстрая интеграция Home Assistant с системой умного дома от компании Apple.