Skip to content

This integration allows to monitor Bluetooth Low Energy (BLE) battery management systems (BMS) from within Home Assistant.

License

Notifications You must be signed in to change notification settings

patman15/BMS_BLE-HA

Repository files navigation

BLE Battery Management Systems for Home Assistant

GitHub Release License

This integration allows to monitor Bluetooth Low Energy (BLE) battery management systems (BMS) from within Home Assistant. You can use the ESPHome Bluetooth proxy to extend the bluetooth coverage range. The integration provides the following information about the battery

Platform Description Unit
sensor SoC (state of charge) %
sensor stored energy Wh
sensor voltage V
sensor current A
sensor power W
sensor temperature °C
sensor (remaining) runtime s
sensor charge cycles #
binary_sensor battery charging indicator bool

grafik

Supported Devices

  • Offgridtec LiFePo4 Smart Pro: type A & B (show up as SmartBat-Axxxxx or SmartBat-Bxxxxx)
  • Daly BMS (show up as DL-xxxxxxxxxxxx)

New device types can be easily added via the plugin architecture of this integration. See the contribution guidelines for details.

Installation

Automatic

Installation can be done using HACS by adding a custom repository.

Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

Manual

  1. Using the tool of choice open the directory (folder) for your HA configuration (where you find configuration.yaml).
  2. If you do not have a custom_components directory (folder) there, you need to create it.
  3. In the custom_components directory (folder) create a new folder called bms_ble.
  4. Download all the files from the custom_components/bms_ble/ directory (folder) in this repository.
  5. Place the files you downloaded in the new directory (folder) you created.
  6. Restart Home Assistant
  7. In the HA UI go to "Configuration" -> "Integrations" click "+" and search for "BLE Battery Management"

Outlook

  • 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

Troubleshooting

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.

FAQ

My sensors show unknown/unavailable at startup!

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.

Can I have the runtime in human readable format (using days)?

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

I need a discharge sensor not the charging indicator, can I have that?

Sure, use, e.g. a threshold sensor based on the current to/from the battery. Negative means discharging, positiv is charging.

References