This integration allows to monitor Bluetooth Low Energy (BLE) battery management systems (BMS) from within Home Assistant. After installation, no configuration is required. You can use the ESPHome Bluetooth proxy to extend the bluetooth coverage range. By using standard dashboard cards, it is easy to visualize the current state of remote batteries.
- Zero configuration
- Autodetects compatible batteries
- Supports ESPHome Bluetooth proxy
- Native Home Assistant integration (works with all HA installation methods)
- Offgridtec LiFePo4 Smart Pro: type A & B (show up as
SmartBat-Axxxxx
orSmartBat-Bxxxxx
) - Daly BMS (show up as
DL-xxxxxxxxxxxx
) - JiKong BMS (HW version >=11 required)
New device types can be easily added via the plugin architecture of this integration. See the contribution guidelines for details.
The integration provides the following information about the battery
Platform | Description | Unit | Details |
---|---|---|---|
sensor |
SoC (state of charge) | % |
range 100% (full) to 0% (battery empty) |
sensor |
stored energy | Wh |
currently stored energy |
sensor |
voltage | V |
overall battery voltage |
sensor |
current | A |
positive for charging, negative for discharging |
sensor |
power | W |
positive for charging, negative for discharging |
sensor |
temperature | °C |
|
sensor |
(remaining) runtime | s |
remaining discharge time till SoC 0% |
sensor |
charge cycles | # |
|
binary_sensor |
battery charging indicator | bool |
true if battery is charging |
Installation can be done using HACS by adding a custom repository.
- Using the tool of choice open the directory (folder) for your HA configuration (where you find
configuration.yaml
). - If you do not have a
custom_components
directory (folder) there, you need to create it. - In the
custom_components
directory (folder) create a new folder calledbms_ble
. - Download all the files from the
custom_components/bms_ble/
directory (folder) in this repository. - Place the files you downloaded in the new directory (folder) you created.
- Restart Home Assistant
- In the HA UI go to "Configuration" -> "Integrations" click "+" and search for "BLE Battery Management"
- Add readout of individual cell voltages to be able to judge battery health
- Add option to only have temporary connections (lowers reliability, but helps running more devices via ESPHome Bluetooth proxy)
- Add further battery types from Home Assistant Add-on: BatMON
In case you have severe troubles,
- please enable the debug protocol for the integration,
- reproduce the issue,
- disable the log (Home Assistant will prompt you to download the log), and finally
- open an issue with a good description of what happened and attach the log.
The polling interval is 30 seconds. So at startup it takes a few minutes to detect the battery and query the sensors. Then data will be available.
Yes, you can use a template sensor or a card to show templates, e.g. Mushroom template card with the following template:
{{ timedelta(seconds=int(states("sensor.smartbat_..._runtime"), 0)) }}
results in e,g, 4 days, 4:20:00
Sure, use, e.g. a threshold sensor based on the current to/from the battery. Negative means discharging, positiv is charging.
@downset
for helping with making the integration better.
- Home Assistant Add-on: BatMON
- Daly BMS: esp32-smart-bms-simulation
- JiKong BMS: esphome-jk-bms