diy solar

diy solar

JBD / Overkill BMS Monitoring

Which version are you using ?

The temp comes with the the cell info request. The response comes in 2 hex messages from the one request. and should be available to your system already.

Can you print out the returned data so I can see it ?
 
Below is a print out, I am not sure what you meant by version?


pi@BatteryPi:~ $ python jbdbms-4-socket-testV2.py -b A4:C1:38:82:82:CB -i 10 -m jbdbmscd
Attempting to connect
connected A4:C1:38:82:82:CB
Error creating socket: [Errno 2] No such file or directory
* sending
meter,cell1,cell2,cell3,cell4
jbdbmscd,3520,3527,3534,3517
meter,cellmin,cellmax,delta
jbdbmscd,3517,3534,17
* sending
meter,volts,amps,watts,remain,capacity,cycles
jbdbmscd,14.09,0.00,0.00,120,120,0
meter,c01,c02,c03,c04,c05,c06,c07,c08
jbdbmscd,0,0,0,0,0,0,0,0
meter,c09,c10,c11,c12,c13,c14,c15,c16
jbdbmscd,0,0,0,0,0,0,0,0
meter,ovp,uvp,bov,buv,cot,cut,dot,dut,coc,duc,sc,ic,cnf
jbdbmscd,0,0,0,0,0,0,0,0,0,0,0,0,0
meter,protect,percent,fet,cells,temp1,temp2
jbdbmscd,0,100,1,4,17.1,16.7
meter,cell1,cell2,cell3,cell4
jbdbmscd,3520,3527,3535,3517
meter,cellmin,cellmax,delta
jbdbmscd,3517,3535,18
* sending
 
Everything is okay. I meant which python script, and see you using jbdbms-4-socket-testV2.py.
 
I'm using ESP32's to read the BMS info and there's a field in the response data to indicate how many temp sensors there are. The 150A JBD units I'm using (long style) only have one. I also have a pair of short ones and they have two sensors
 
How many cells does bms support ? Then need know how many temp sensors on each. Are you going to use socket or mqtt ?
 
I have updated the git file names indicating number of temperature sensors for device. The problem I have had with this code is on the number of temp sensors and data. The bms returns the number of sensors and data in the same data record so I haven't been able to figure out a way to format the data structure to match the the count as they arrive together.

Will add the 2 sensor 4 cell bms for mqtt soon. Still unsure if 16 cell 3 temp sensor exists.
 
I hate to ask, but has the guide been finished? I did not see any mention of it in the post or the wiki so I figured I would ask again since it has been a little while.
 
Is it possible to run this on a mac without the pi? I just want to connect to bms and see the data and perhaps change gui with the data as my needs.
 
I think this will do what I am looking for, but wanted to ask. I will have 6 48v banks each running the Overkill Solar BMS (JDBMS). I want to be able to run a simple service process on a Raspberry Pi (Zero w, Pi 3 or Pi 4) and output the data to a socket connection UDP broadcast.

I think this will do it using the 'bdbms-16-socket-4temps.py' script.

I'll then write a program to listen for the socket data and pass it along to where i need (RabbitMQ, MQTT, SQL, etc.)

My question is, can I have multiple versions of this script running (different bluetooth addresses)? And when I output them, do they each need there own socket or can they all share the same UDP port (I assume the packets have a unique identifier for each BMS).

I do something similar with my temperature sensors. Each ESP32 just does a UDP broadcast so "anyone" on the network can use the data. I then have a separate Pi that listens for the data and populates a RabbitMQ (which then sends it to Azure for data storage).

Roy

 
I think this will do what I am looking for, but wanted to ask. I will have 6 48v banks each running the Overkill Solar BMS (JDBMS). I want to be able to run a simple service process on a Raspberry Pi (Zero w, Pi 3 or Pi 4) and output the data to a socket connection UDP broadcast.

I think this will do it using the 'bdbms-16-socket-4temps.py' script.

I'll then write a program to listen for the socket data and pass it along to where i need (RabbitMQ, MQTT, SQL, etc.)

My question is, can I have multiple versions of this script running (different bluetooth addresses)? And when I output them, do they each need there own socket or can they all share the same UDP port (I assume the packets have a unique identifier for each BMS).

I do something similar with my temperature sensors. Each ESP32 just does a UDP broadcast so "anyone" on the network can use the data. I then have a separate Pi that listens for the data and populates a RabbitMQ (which then sends it to Azure for data storage).

Roy

There are versions for either output to socket or MQTT. I personally use MQTT so I can pick up data from any device without a secondary program to listen to pipe and distribute data. I then use telegraf to receive this MQTT and output to format to a database (most use influxdb) can use any other program that can read MQTT data.

For 48 volt and sixteen cells use bdbms-16 script either socket or MQTT. You can run multiple instances of the script - one for each battery bank with unique bank names. I am using 3 instances.

I use my receiving pi for connecting bluetooth devices and to publish MQTT. I now use Victoria-Metrics DB as it is much more efficient.

My setup 3 Ble devices - Pi - MQTT - telegraf - victoria-metrics - grafana. But have experimented with

Tom
 
While my next set of batteries are on the charger I will try hooking my 4S for a small test bank and see about getting a Pi up and running.
 
I think this will do what I am looking for, but wanted to ask. I will have 6 48v banks each running the Overkill Solar BMS (JDBMS). I want to be able to run a simple service process on a Raspberry Pi (Zero w, Pi 3 or Pi 4) and output the data to a socket connection UDP broadcast.

I think this will do it using the 'bdbms-16-socket-4temps.py' script.

I'll then write a program to listen for the socket data and pass it along to where i need (RabbitMQ, MQTT, SQL, etc.)

My question is, can I have multiple versions of this script running (different bluetooth addresses)? And when I output them, do they each need there own socket or can they all share the same UDP port (I assume the packets have a unique identifier for each BMS).

I do something similar with my temperature sensors. Each ESP32 just does a UDP broadcast so "anyone" on the network can use the data. I then have a separate Pi that listens for the data and populates a RabbitMQ (which then sends it to Azure for data storage).

Roy

I used to use UDP broadcasts for my old system (in an RV) but switched to MQTT at the source. I have an ESP32 on each BMS and it publishes MQTT which is picked up by a Pi4. I figure the ESP32 is the cheapest way to do a wireless connection
 
I used to use UDP broadcasts for my old system (in an RV) but switched to MQTT at the source. I have an ESP32 on each BMS and it publishes MQTT which is picked up by a Pi4. I figure the ESP32 is the cheapest way to do a wireless connection

I probably should do MQTT ... Just never got around to switching things over, and linked the idea that any application that wanted to could just start listening without having to have a central system processing things.

What software are you using for the ESP32? Mind sharing? I have tons of ESP32's laying around and could dedicate one to each BMS.

Roy
 
I probably should do MQTT ... Just never got around to switching things over, and linked the idea that any application that wanted to could just start listening without having to have a central system processing things.

I just discovered the RabbitMQ has a built in MQTT broker that integrates nicely with my existing setup. Even allows a route to publish to Azure for processing and storage. So now I will try publishing the output from 'jdbms-16-mqtt' and see if I can get it to work.

Doing it from an ESP32 would be the end goal.
 
I probably should do MQTT ... Just never got around to switching things over, and linked the idea that any application that wanted to could just start listening without having to have a central system processing things.

What software are you using for the ESP32? Mind sharing? I have tons of ESP32's laying around and could dedicate one to each BMS.

Roy
I wrote my own.

 
Yes. I built a board for the ESP32 that has a voltage converter for power and then connects to the BMS serial port. Should be pics somewhere on here

found it https://diysolarforum.com/threads/jbd-bms-wi-fi-module.17252/page-9#post-368757

there's a small buck converter under the ESP32

Thats a nice compact setup. And solves the issue of the Bluetooth protocol. I'll have to look further in that thread to see if the schematic for the PCB is listed. Would be easy to DIY with the right parts. And with the ESP32 you can either run compiled code, or wit the Adafruit feathers even run circuit python. For me I would flash it and run the .NET nanoFramework. A lot of low cost options.

Roy
 
Back
Top