I recently bought a Sealey BT2020 Battery Monitor. This was described as a BM6 in a BLE sniffer. After much digging I found this post and an ESPHome configuration that just worked! Couldn’t find any reference to it on the forum.
Oh, good to know! I wonder how many other names the BM6 goes by. I’ve added a note on that blog post with the fact it’s also known as the Sealey BT2020. Thanks!
@baz123 You only need a Bluetooth proxy. Small ESP32 board like “ESP32-C3 Super Mini”, power adapter, this page Ready-Made Projects — ESPHome, PC, USB cable and few minutes.
Not played with Bluetooth proxy before, Had a ESP32 so installed it.
First question - ESPHome offers to adopt the device, Is this something to do? One problem with leaving as is, is that there is no way of seeing if it is online or not.
Your integration.
For the installation, worth adding to it that, once the Custom Repository is added to HACS, you then need to download the Repository via the 3 dots. Took me a little while to work out why I could not add it as an integration.
When trying to add the integration, I am getting a ‘No BM6 found’ response. The proxy is close to the Sealy BM6 device.
[edit]
I have switched off the old device so the BM6 is not connected to anything else.
[edit2]
Interestingly, iBeacon seems to be picking it up
First question - ESPHome offers to adopt the device, Is this something to do? One problem with leaving as is, is that there is no way of seeing if it is online or not.
I have no knowledge on this subject. When I find time, I will read and try to answer something.
For the installation, worth adding to it that, once the Custom Repository is added to HACS, you then need to download the Repository via the 3 dots. Took me a little while to work out why I could not add it as an integration.
I’m waiting for my integration to be added to HACS, then it will be easier to use. Unfortunately, it’s been a month now.
When trying to add the integration, I am getting a ‘No BM6 found’ response. The proxy is close to the Sealy BM6 device.
[edit]
I have switched off the old device so the BM6 is not connected to anything else.
[edit2]
Interestingly, iBeacon seems to be picking it up
Please upload a picture of your BM6 here.
What firmware version do you have?
Do you have the BM6 app disabled on your phone when you try to add the BM6 to HA?
I don’t understand the difference between the 3 calculation options.
Available calculation algorithms:
Calculated by BM6 Device → BM6 calculate the ‘State’ of battery it’s own method (I don’t known what), this integration only get sate value with one of this value: “Ok”, “Low Voltage” and “Charging”.
Calculated using State of Charge/Discharge (SoC/SoD)
Does the integration guess the ‘Battery Type’ or is that just the default value?
Not, integration doesn’t guess type of battery. You have to choose right type of used battery. This settings is base of calculation algorithm if you use (SoC/SoD) or (CVR/DVR).
What is Stan and Tension (might be a language thing )
@baz123 The integration queries the BM6 device at intervals that you set during configuration. If there are unavailable states, it means that the integration tried to read, and the device was not available or visible.
substitutions:
name: "bt-proxy"
friendly_name: BT-Proxy
packages:
esphome.bluetooth-proxy: github://esphome/bluetooth-proxies/esp32-generic/esp32-generic.yaml@main
esphome:
name: ${name}
name_add_mac_suffix: false
friendly_name: ${friendly_name}
esp32:
board: esp32dev
framework:
type: esp-idf
sdkconfig_options:
# @grigi found in testing that these options resulted in better responsiveness.
# BLE 4.2 is supported by ALL ESP32 boards that have bluetooth, the original and derivatives.
CONFIG_BT_BLE_42_FEATURES_SUPPORTED: y
# Also enable this on any derivative boards (S2, C3 etc) but not the original ESP32.
CONFIG_BT_BLE_50_FEATURES_SUPPORTED: y
# Extend the watchdog timeout, so the device reboots if the device appears locked up for over 10 seconds.
CONFIG_ESP_TASK_WDT_TIMEOUT_S: "10"
esp32_ble_tracker:
scan_parameters:
# Don't auto start BLE scanning, we control it in the `api` block's automation.
continuous: False
active: True # send scan-request packets to gather more info, like device name for some devices.
interval: 320ms # default 320ms - how long to spend on each advert channel
window: 300ms # default 30ms - how long to actually "listen" in each interval. Reduce this if device is unstable.
# If the device cannot keep up or becomes unstable, reduce the "window" setting. This may be
# required if your device is controlling other sensors or doing PWM for lights etc.
mopeka_ble:
bluetooth_proxy:
active: true # allows outbound connections from HA to devices.
# Enable logging
logger:
baud_rate: 0 # disable serial uart logging
# Enable Home Assistant API
api:
encryption:
key: !sectret api_password
ota:
- platform: esphome
password: !secret ota_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
on_connect:
- esp32_ble_tracker.start_scan:
continuous: true
on_disconnect:
- esp32_ble_tracker.stop_scan:
button:
- platform: restart
name: "${friendly_name} Restart"
@Rafciq I have this up and running. I am using the Closed by the BM6 device config. Things seem to be working fine other than the status. It shows unknown. Anyway to fix this? Also can the text be correct to English?
Thanks so much for your hard work on this. I’m going to be adding a few more monitors for my other vehicles.