This custom component for Home Assistant to reads BLE Battery Monitor BM7 (BM300 Pro).
Before installing this integration, you must have HACS integration installed first. Select 'HACS' (usual on the left bar), add then choose from menu 'Custom repositories' (on top at right). Put the address https://github.com/derekpurdy/BM7 at first and select repository type 'Integration' choose 'ADD'. Now you can add BM7 devices.
Go to "Settings', next 'Devices & services', select 'Integration' and use 'ADD INTEGRATION'
In the configuration process, you need to provide some information. This includes the battery voltage, type, method of calculating its condition or percentage. You can also specify the intervals at which data should be downloaded from the BM7 device. You can also correct the temperature and voltage provided by the BM7 device by providing their offset. It is also possible to change the temperature unit.
- 6 Volts
- 12 Volts
- Custom from device voltage 6-20V
- Flooded Lead-Acid (FLA)
- Absorbent Glass Mat (AGM)
- Gel Cell (GEL)
- Nickel-Cadmium (NiCd)
- Nickel-Metal Hydride (NiMH)
- Lithium-Ion (Li-Ion)
- Lithium Iron Phosphate (LiFePO4)
- Lithium Titanate (LTO)
- Custom Battery - defined by user.
To calculate percentage of battery power and actual state, integration use algorithm configured by user.
- Calculated by BM7 Device (integration get information from BM7 device)
- Calculated using State of Charge/Discharge (SoC/SoD)
- Calculated using Charge/Discharge Voltage Range (CVR/DVR)
Each BM7 device have one calculated sensor presents actual battery state. It can take one of these values. Availability of this states is depending of used algorithms.
| State name | From BM7 | Calculated | Description |
|---|---|---|---|
| Ok | X | Battery state Ok (1) | |
| Low Voltage | X | Low voltage (1) | |
| Under Voltage | X | Voltage is under minimum of SoD or DVR | |
| Discharging | X | Charging process, voltage is between minimum and maximum of SoD or DVR | |
| Idle | X | Idle state, voltage is between maximum SoD or DVR and minimum of SoC or CVR | |
| Charging | X | X | Charging process, voltage is between minimum and maximum of SoC or CVR |
| Over Voltage | X | Voltage is over maximum of SoC or CVR | |
| (1) - Only the BM7 manufacturer knows the details |
- Sensor 'Temperature' it presents temperature measure by BM7 device. Value can by calibrated at integration configuration time.
- Sensor 'Voltage' it presents battery voltage measure by BM7 device. Value can by calibrated too.
- Sensor 'State' calculates the hypothetical battery state from the actual device voltage. Calculation can use parameters of battery configuration or can be get directly from BM7 device.
- Sensor 'Percent' calculates the hypothetical charge or discharge percentage of the battery using one of these algorithms
- Sensor 'Signal Strength (RSSI)' - signal strength reported by Bluetooth gateway.
- Sensor 'Percentage by device' - percentage value reported directly from BM7 device.
- Sensor 'State by device' - battery state reported directly from BM7 device. Only 'Ok', 'Low Voltage' and 'Charging'.
- Sensor 'Bluetooth scanner' - name and address of Bluetooth scanner/gateway who interact with BM7 device
Triggers availability is depending on choose algorithm at configuration time. Their behavior corresponds to the change of the value 'State' sensor.
| Name | From BM7 | Calculated |
|---|---|---|
| Started OK state | X | |
| Started Low Voltage state | X | |
| Under Voltage | X | |
| Started Discharging | X | |
| Started Idle | X | |
| Started Charging | X | X |
| Over Voltage | X | |
| State Changed | X | X |
- BM7 device is unresponsive or not visible. It is likely that BM7 device cannot connect to multiple other devices at the same time. If you have a mobile app for BM7 running, your integration may not be able to connect to BM7 device at the same time.
The Battery Monitor BM7 is a device designed to help you keep track of your car battery's health and performance. Here are some key features:
- Real-time Voltage Monitoring: It allows you to monitor the voltage of your car battery in real-time.
- Battery Testing: You can test the starting and charging system voltage to ensure your battery is functioning properly.
- Data Logging: The device can accurately record the time of car starting and stopping, and all data can be displayed on your mobile phone via Bluetooth.
- Compatibility: The BM7 is compatible with most 12V car batteries and can be easily installed in your vehicle.
- Bluetooth Connectivity: It connects to your smartphone via Bluetooth, allowing you to monitor your battery's health and performance in real-time.
Battery Monitor BM7 is also available under other names:
- ANCEL BM300 Pro Car Battery Tester
The integration has been automatically translated into several languages:





























If you would like to correct any of them, please create an issue.
This project is inspired and based on the hard work of other people and their publications:
- Reverse Engineering the BM7 BLE Battery Monitor
- bm6-battery-monitor
- bm2-battery-monitor
- BM2: Reversing the BLE Protocol of the BM2 Battery Monitor
- BM6 fork with en translation fixes from bsrotten
- BM7 Keys from slydiman
| Battery Type | DVR | CVR | SoD | SoC |
|---|---|---|---|---|
| 6V | 5.8-6.3V | 6.8-7.2V | 5.8-6.0V | 6.0-6.3V |
| 12V | 10.5-12.7V | 13.8-14.4V | 10.5-12.0V | 12.0-12.7V |
| Battery Type | DVR | CVR | SoD | SoC |
|---|---|---|---|---|
| 6V | 5.8-6.3V | 6.8-7.2V | 5.8-6.0V | 6.0-6.3V |
| 12V | 10.5-12.6V | 14.4-14.7V | 10.5-12.0V | 12.0-12.6V |
| Battery Type | DVR | CVR | SoD | SoC |
|---|---|---|---|---|
| 6V | 5.8-6.3V | 6.8-7.2V | 5.8-6.0V | 6.0-6.3V |
| 12V | 10.5-12.6V | 13.8-14.4V | 10.5-12.0V | 12.0-12.6V |
| Battery Type | DVR | CVR | SoD | SoC |
|---|---|---|---|---|
| 6V | 5.4-6.0V | 6.8-7.2V | 5.4-5.8V | 5.8-6.0V |
| 12V | 10.8-12.0V | 13.6-14.4V | 10.8-11.5V | 11.5-12.0V |
| Battery Type | DVR | CVR | SoD | SoC |
|---|---|---|---|---|
| 6V | 5.4-6.0V | 6.8-7.2V | 5.4-5.8V | 5.8-6.0V |
| 12V | 10.8-12.0V | 13.6-14.4V | 10.8-11.5V | 11.5-12.0V |
| Battery Type | DVR | CVR | SoD | SoC |
|---|---|---|---|---|
| 6V | 6.0-7.2V | 7.0-7.2V | 6.0-6.5V | 6.5-7.2V |
| 12V | 10.0-13.5V | 14.4-14.6V | 10.0-12.0V | 12.0-13.5V |
| Battery Type | DVR | CVR | SoD | SoC |
|---|---|---|---|---|
| 12V | 12.0-13.5V | 14.6-15.0V | 12.0-13.0V | 13.0-13.5V |
| Battery Type | DVR | CVR | SoD | SoC |
|---|---|---|---|---|
| 6V | 5.4-6.6V | 6.0-6.6V | 5.4-6.0V | 6.0-6.6V |
| 12V | 10.8-13.2V | 12.0-13.2V | 10.8-12.0V | 12.0-13.2V |
- DVR = Discharging Voltage Range
- CVR = Charging Voltage Range
- SoC = State of Charge
- SoD = State of Discharge



