Главная страницаHome AssistantESPHomeПолучаем процент зарядки ESPHome
Получаем процент зарядки ESPHome

Получаем процент зарядки 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'
Был ли полезен материал?

Мне очень важно получать обратную связь. Пожалуйста, оцените материал. Так я пойму в какую сторону его стоит изменить.

Комментарии
  • Иван
    Иван
    01.03.2023 16:02

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

  • Александр
    Александр
    07.03.2023 15:17

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

  • Glow
    Glow
    07.03.2023 20:22

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

  • Сергей
    Сергей
    01.04.2023 12:22

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

Оставить комментарий