-
-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Supervolt BMS #22
Comments
And I was able to use the Android bluetooth snoop feature to log the packets when opening the Supervolt app, connect, and close the app after receiving the first value update. |
Seems like sending the messages from the log returns data
|
Hey @gerritb, the information you provided looks pretty good, I think that way it should be possible to integrate the BMS quite fast. I usually create a fake battery to play around with using an ESP32 and try to fake all values in the app first. Then I use the fake battery to engineer the readout. |
Interesting. You mean create a dummy on the ESP and change the response values to identify the byte/field order from the response message? |
Well the data position you can gather from e.g. batmon-ha implementation, but to really verify, I used for the daly bms this emulation and checked it with the Android app. Then I verified the output of the integration so that it shows the same numbers. Since it is possible to play around quite easy it makes development faster. Of course, a test against a real battery is always more accurate, but values can be harder to be tested. Here is a simpler reference I tried to use for the JK BMS unfortunately, the Android app is broken, just as a starting point BLE_JK_BMS.zip |
Thanks, will take a look. I don't have a lot of hope for the batmon-ha implementation. I didn't work at all with my batteries, so maybe there's a new version of the BMS or they changed the protocol. |
From the information you already provided it shouldn't be too hard to get it working. I already had bigger challenges. 😉 We can get that done. |
Sounds good, the ESP32s are in the mail. Will try to emulate the battery for the app when they arrive. |
I actually asked Supervolt for the spec and they sent it to me today. Will read through it and try to get it into code. |
I'm receiving faulty data from the BMS and can't decode it. Here's the layout: I'm receiving |
Will sanity check everything, clean up the code and open a PR |
ok, just wanted to say that I finished the update for HA2024.6 and could support you. Seems you are making fast progress. 👍 Let me know if you need some support. |
@gerritb should I continue from your fork or are you still busy cleaning up? |
I'm on vacation right now and back end of next week. Will open the PR then. |
I had this version running for a little over a week in my RV with two batteries now and encountered no issues 😎 Supervolt asked me to write a short blog post for their website about the integration of their batteries with HA. Will post it here when I'm done writing. |
@gerritb I moved back from the PR to here, because
Just noticed from the spec, this is a JBD BMS and I already have an implementation for it. Protocol, service and characteristics are identical. Can you provide me with an decoded advertisement of the battery from nRF connect (Android app)? Possibly in raw? If you could post this, I think I can get it easily working. |
This is the output from the HA log: |
Let me check the nRF app since you probably want the manufacturer_data or service_data? |
Yes, I have a fake JBD device (using ESP32), but the Supervolt app does not detect it, so they are checking some additional data that I have not set yet. 😎 |
Should the 0 responses contain more specific manufacturer data? |
or let me know how I should dump logs from the app, don't quite understand the app yet |
Can you check the first page ("scanner") with the list of devices? (Before you hit "connect") There should be a button raw, showing the advertisement in raw and when you just click on the device it should show the decoded advertisement. |
0x020106030200FF0F095358313030502D4232333032303107FF7B0002FFFF7D |
Works perfectly and is in sync with the values from my app |
2024-06-30 19:52:24.276 DEBUG (MainThread) [custom_components.bms_ble] BMS SX100P-B230201 data update |
Thanks for your support, release v1.5.0 should cover everything. If there is something more, please do not hesitate to open a new issue. |
Thank you too for the explanations and patience. Definitely learned a lot about BLE. |
I want to add support for Supervolt BMS. I have two Supervolt POLAR LiFePO4 100Ah.
There is an implementation in the reference project batmon-ha and this seems to be replicated from WoMoAtor.
I'm able to connect to the batteries through HomeAssistant on RPi4 but struggle to setup the "start_notify" callback in the connect function.
The initial device debug shows 5 service-uuids:
Not sure which one to use in the code.
Pushed my first few changes here:
https://github.com/gerritb/BMS_BLE-HA/tree/feature/supervolt_bms
I also added
to my configuration.yaml but can't find a dedicated log file in the HA folders. Any advise on that?
Additional context
https://github.com/fl4p/batmon-ha/blob/master/bmslib/models/supervolt.py
https://github.com/BikeAtor/WoMoAtor/blob/main/src/main/python/supervolt/supervoltbatterybleak.py)
The text was updated successfully, but these errors were encountered: