This is a guide for all those out there that are a bit crazy and need to know their cell voltages at all times, even when not at home. This is also helpful because we typically bypass our BMS for discharge, making it easy to miss a warning.
The guide will show you how you can set up a raspberry pi, old laptop or NUC (needs to have a BLE card!) as a server that will pull data from xiaoxiang/JBD/LTT bmses and make history graphs from them. You can set up alarms and thresholds to trigger other actions based on the state of your pack.
This is an automation example. Will remind you everyday to charge your pack if its below 80%!
Step 1 install home assistant on a device:
If you get stuck on this, this might not be for you.
I could prepare a preflashed sd image for PIs for people who have difficulties.
Step 2 install the batmon addon in home assistant
(If you don’t have a BLE chip onboard you can install jdb-esp on an esp32 instead)
First install the MQTT addon then install the batmon addon:
Get a way to connect to the BMS systems through batmon:
Iam currently working on a project that Will display your battery stats on a small OLED.
This way you can have a small device (esp32) connected through Bluetooth or even straight to UART and monitor the pack. Handy if you want to have a display on the wall
Yes!
You can use esphome on an esp32 and then relay the data this way to your Hass server.
That would imo be the easiest way in your case.
Also gives you more options, because with the batmon addon you are assuming your battery is stored next to your Hass server.
Using an esp32 and esphome gives you the option to put your battery anywhere where you have wifi coverage.
Damn, I’m getting: 14:15:29 ERROR [sampling] Bigboi-12s8p error: <class 'TimeoutError'>
on both batteries after they claim they connected. Both are Xiaoxiang bms
Here’s my config: