diy solar

diy solar

JBD BMS Wi-Fi Module

Thanks for this information.
Hey Mama! Look what I did!

I'm using an USR-DR302 and here's how I set it up for working with this tool:
First, IP parameters:
View attachment 52219
Then, serial parameters:
View attachment 52218

Then I ran the jbdtool.exe with this commands:
Code:
jbdtool.exe -d 2 -t ip:172.16.10.99 -m 172.16.9.12:GABO-WORKSTATION:LIFEPO4

With this, I got the data on the cmd window, excellent!

Code:
main(788): transport: 00FF0F78, target: 00FF0F7B
main(813): transport: ip
ip_init(48): initializng winsock...
main(816): tp: 004184A0
main(819): cp: 004183C0
jbd_new(424): pp->target: 172.16.10.99, pp->opts:
ip_new(69): target: 172.16.10.99
main(831): charge: -1, discharge: -1
main(855): mqtt: 00FF0FA0
main(865): broker: 172.16.9.12, clientid: GABO-WORKSTATION, topic: LIFEPO4, user: , pass:
mqtt_new(42): address: 172.16.9.12, clientid: GABO-WORKSTATION, topic: LIFEPO4
mqtt_new(59): returning: 0262EE90
mqtt_connect(67): s: 0262EE90, interval: 20, user: , pass:
mqtt_connect(79): rc: 0
mqtt_disconnect(96): timeout: 10
mqtt_disconnect(100): rc: 0
main(898): outfp: 75C84660
jbd_open(435): opening...
ip_open(97): s->sock: FFFFFFFF
ip_open(100): creating socket...
jbd_get_info(263): transport: ip
ip_write(196): s->sock: 00000198
ip_write(201): bytes: 7
ip_read(179): debug: 2
jbd_std_get_info(172): voltage: 26.17
jbd_std_get_info(173): current: -11.50
jbd_std_get_info(174): capacity: 57.37
jbd_std_get_info(179): fullcap: 100.00
jbd_std_get_info(180): cycles: 3
jbd_std_get_info(181): pctcap: 39
jbd_std_get_info(196): balance: 0000000000000000
jbd_std_get_info(212): protect: 0000000000000000
jbd_std_get_info(224): fetstate: 3
jbd_std_get_info(225): mfgdate: 20200904
jbd_std_get_info(226): version: 2.2
jbd_std_get_info(230): strings: 8
jbd_std_get_info(231): probes: 2
jbd_std_get_info(236): temp[0]: 2992
jbd_std_get_info(236): temp[1]: 2991
jbd_std_get_info(242): temp 0: 32.470
jbd_std_get_info(242): temp 1: 32.468
ip_write(196): s->sock: 00000198
ip_write(201): bytes: 7
ip_read(179): debug: 2
ip_write(196): s->sock: 00000198
ip_write(201): bytes: 7
ip_read(179): debug: 2
jbd_get_info(271): r: 0
jbd_get_info(280): cell 0: 3.272
jbd_get_info(280): cell 1: 3.271
jbd_get_info(280): cell 2: 3.274
jbd_get_info(280): cell 3: 3.271
jbd_get_info(280): cell 4: 3.274
jbd_get_info(280): cell 5: 3.271
jbd_get_info(280): cell 6: 3.272
jbd_get_info(280): cell 7: 3.273
jbd_get_info(288): cells: total: 26.178, min: 3.271, max: 3.274, diff: 0.003, avg: 3.272
display_info(498): temp: [ 26.1,26.0 ]
display_info(520): temp: [ 3.272,3.271,3.274,3.271,3.274,3.271,3.272,3.273 ]
mqtt_new(42): address: 172.16.9.12, clientid: GABO-WORKSTATION, topic: LIFEPO4
mqtt_new(59): returning: 0262DB50
mqtt_connect(67): s: 0262DB50, interval: 20, user: , pass:
mqtt_connect(79): rc: 0
mqtt_send(116): message: {"Name":"GABO-WORKSTATION","Voltage":26.170000076293945,"Current":-11.5,"DesignCapacity":100,"RemainingCapacity":57.369998931884766,"PercentCapacity":57,"CycleCount":3,"Probes":2,"Temps":[26.100000000000001,26],"Strings":8,"Cells":[3.2719999999999998,3.2709999999999999,3.274,3.2709999999999999,3.274,3.2709999999999999,3.2719999999999998,3.2730000000000001],"CellTotal":26.177999496459961,"CellMin":3.2709999084472656,"CellMax":3.2739999294281006,"CellDiff":0.0030000209808349609,"CellAvg":3.2722499370574951,"DeviceName":"15300051-SP10S009-L8S-100A","ManufactureDate":"20200904","Version":2.2000000476837158,"FET":"Charge,Discharge"}, timeout: 10
mqtt_send(123): rc: 0
mqtt_send(129): rc: 0
mqtt_send(134): delivered message.
mqtt_disconnect(96): timeout: 10
mqtt_disconnect(100): rc: 0

Just need to figure out how to use mqtt, as I have never used it before, but this should be simple enough for me to do it on home-assistant with their guides.

Thank you everyone that helped on this topic.
I know the topic is for the WiFi module, but a lot of what you did also applies for RS485 with this BMS and any RS485 to Ethernet adapter!
I'm really happy with this BMS, now I'm going to buy another one for my other battery!

That's awesome! Congrats!

For what to do with the MQTT data, see my post (#37) on SLS:


In your case, you'd subscribe to the LIFEPO4 topic. You'll need to use node-red or something else to 'flatten' the arrays into seperate fields (for example: cell[0] cell[1], etc. would become cell_00, cell_01, etc)

I'm interested to see what you come up with. Good luck!
 
Seems like this one publishes more attributes on the mqtt topic than this other tool
Then be carefull when extracting the attributes. One really useful attribute that is missing is RemainingCapacity, that I found totally essential for me.

Example: jbdtool_win32.zip gives me this on this topic:
LIFEPO4 (I choose the name):
Code:
{
  "Name": "GABO-WORKSTATION",
  "Voltage": 25.979999542236328,
  "Current": -10.9399995803833,
  "DesignCapacity": 100,
  "RemainingCapacity": 28.290000915527344,
  "PercentCapacity": 28,
  "CycleCount": 3,
  "Probes": 2,
  "Temps": [
    24.7,
    24.6
  ],
  "Strings": 8,
  "Cells": [
    3.248,
    3.246,
    3.249,
    3.247,
    3.249,
    3.248,
    3.249,
    3.249
  ],
  "CellTotal": 25.985000610351562,
  "CellMin": 3.246000051498413,
  "CellMax": 3.249000072479248,
  "CellDiff": 0.003000020980834961,
  "CellAvg": 3.2481250762939453,
  "DeviceName": "15300051-SP10S009-L8S-100A",
  "ManufactureDate": "20200904",
  "Version": 2.200000047683716,
  "FET": "Charge,Discharge"
}

jbd_win64.zip gives me this topic with this attributes:
Topic: SolarD/Battery/jbd/Data

Code:
{
  "name": "jbd",
  "capacity": 100,
  "voltage": 26,
  "current": -10.880000114440918,
  "ntemps": 2,
  "temps": [
    24.600000381469727,
    24.5
  ],
  "ncells": 8,
  "cellvolt": [
    3.250999927520752,
    3.249000072479248,
    3.252000093460083,
    3.25,
    3.252000093460083,
    3.25,
    3.252000093460083,
    3.252000093460083
  ],
  "cell_min": 3.249000072479248,
  "cell_max": 3.252000093460083,
  "cell_diff": 0.003000020980834961,
  "cell_avg": 3.251000165939331,
  "cell_total": 26.00800132751465,
  "errcode": 0,
  "errmsg": "",
  "state": "Charging,Discharging,Balancing"
}
 
That's awesome! Congrats!

For what to do with the MQTT data, see my post (#37) on SLS:


In your case, you'd subscribe to the LIFEPO4 topic. You'll need to use node-red or something else to 'flatten' the arrays into seperate fields (for example: cell[0] cell[1], etc. would become cell_00, cell_01, etc)

I'm interested to see what you come up with. Good luck!
Thanks!
I have MQTT broker running inside my home-assistant now and I was able to get the data into it, only I'm dealing with separating the attributes by using templates. I'm totally new on this, so I'm learning my way into getting everything working.
Fancy graphs you have on that topic! I don't have an idea how to use NodeRed, maybe one day ;-)
 
Seems like this one publishes more attributes on the mqtt topic than this other tool
Then be carefull when extracting the attributes. One really useful attribute that is missing is RemainingCapacity, that I found totally essential for me.

Example: jbdtool_win32.zip gives me this on this topic:
LIFEPO4 (I choose the name):
Code:
{
  "Name": "GABO-WORKSTATION",
  "Voltage": 25.979999542236328,
  "Current": -10.9399995803833,
  "DesignCapacity": 100,
  "RemainingCapacity": 28.290000915527344,
  "PercentCapacity": 28,
  "CycleCount": 3,
  "Probes": 2,
  "Temps": [
    24.7,
    24.6
  ],
  "Strings": 8,
  "Cells": [
    3.248,
    3.246,
    3.249,
    3.247,
    3.249,
    3.248,
    3.249,
    3.249
  ],
  "CellTotal": 25.985000610351562,
  "CellMin": 3.246000051498413,
  "CellMax": 3.249000072479248,
  "CellDiff": 0.003000020980834961,
  "CellAvg": 3.2481250762939453,
  "DeviceName": "15300051-SP10S009-L8S-100A",
  "ManufactureDate": "20200904",
  "Version": 2.200000047683716,
  "FET": "Charge,Discharge"
}

jbd_win64.zip gives me this topic with this attributes:
Topic: SolarD/Battery/jbd/Data

Code:
{
  "name": "jbd",
  "capacity": 100,
  "voltage": 26,
  "current": -10.880000114440918,
  "ntemps": 2,
  "temps": [
    24.600000381469727,
    24.5
  ],
  "ncells": 8,
  "cellvolt": [
    3.250999927520752,
    3.249000072479248,
    3.252000093460083,
    3.25,
    3.252000093460083,
    3.25,
    3.252000093460083,
    3.252000093460083
  ],
  "cell_min": 3.249000072479248,
  "cell_max": 3.252000093460083,
  "cell_diff": 0.003000020980834961,
  "cell_avg": 3.251000165939331,
  "cell_total": 26.00800132751465,
  "errcode": 0,
  "errmsg": "",
  "state": "Charging,Discharging,Balancing"
}

jbdtool dumps from the jbd bms only so I included that info (which was part of the HWINFO struct returned)

jbd (and other storage agents for solard director) only report the total capacity (in amp hours) of the storage device (and does not use any other metrics for capacity).

It sounds as if jbdtool may be of more use to you for your application. In the end, solard director will determine remaining capacity from the amount of amps going in/out.
 
Another question arrives:
Does jbdtool_win32.zip for Windows have the same functionality than jbdtool_linux64_static.zip for linux?
I'm planning on creating a docker container (no idea how, but will find out) that will run jbdtool_linux64_static.zip 24/7 on my Synology NAS to feed in real time this data to my home assistant, as I usually keep my NAS turned on, but I shutdown my windows computer.
 
Another question arrives:
Does jbdtool_win32.zip for Windows have the same functionality than jbdtool_linux64_static.zip for linux?
I'm planning on creating a docker container (no idea how, but will find out) that will run jbdtool_linux64_static.zip 24/7 on my Synology NAS to feed in real time this data to my home assistant, as I usually keep my NAS turned on, but I shutdown my windows computer.
It should ... if it doesnt let me know - since both were created from the same source code.

if you want to run jbdtool in the background and just have it loop ... use the -i option (reporting interval).
 
Thanks for this information.
Hey Mama! Look what I did!

I'm using an USR-DR302 and here's how I set it up for working with this tool:
First, IP parameters:
View attachment 52219
Then, serial parameters:
View attachment 52218

Then I ran the jbdtool.exe with this commands:
Code:
jbdtool.exe -d 2 -t ip:172.16.10.99 -m 172.16.9.12:GABO-WORKSTATION:LIFEPO4

With this, I got the data on the cmd window, excellent!

Code:
main(788): transport: 00FF0F78, target: 00FF0F7B
main(813): transport: ip
ip_init(48): initializng winsock...
main(816): tp: 004184A0
main(819): cp: 004183C0
jbd_new(424): pp->target: 172.16.10.99, pp->opts:
ip_new(69): target: 172.16.10.99
main(831): charge: -1, discharge: -1
main(855): mqtt: 00FF0FA0
main(865): broker: 172.16.9.12, clientid: GABO-WORKSTATION, topic: LIFEPO4, user: , pass:
mqtt_new(42): address: 172.16.9.12, clientid: GABO-WORKSTATION, topic: LIFEPO4
mqtt_new(59): returning: 0262EE90
mqtt_connect(67): s: 0262EE90, interval: 20, user: , pass:
mqtt_connect(79): rc: 0
mqtt_disconnect(96): timeout: 10
mqtt_disconnect(100): rc: 0
main(898): outfp: 75C84660
jbd_open(435): opening...
ip_open(97): s->sock: FFFFFFFF
ip_open(100): creating socket...
jbd_get_info(263): transport: ip
ip_write(196): s->sock: 00000198
ip_write(201): bytes: 7
ip_read(179): debug: 2
jbd_std_get_info(172): voltage: 26.17
jbd_std_get_info(173): current: -11.50
jbd_std_get_info(174): capacity: 57.37
jbd_std_get_info(179): fullcap: 100.00
jbd_std_get_info(180): cycles: 3
jbd_std_get_info(181): pctcap: 39
jbd_std_get_info(196): balance: 0000000000000000
jbd_std_get_info(212): protect: 0000000000000000
jbd_std_get_info(224): fetstate: 3
jbd_std_get_info(225): mfgdate: 20200904
jbd_std_get_info(226): version: 2.2
jbd_std_get_info(230): strings: 8
jbd_std_get_info(231): probes: 2
jbd_std_get_info(236): temp[0]: 2992
jbd_std_get_info(236): temp[1]: 2991
jbd_std_get_info(242): temp 0: 32.470
jbd_std_get_info(242): temp 1: 32.468
ip_write(196): s->sock: 00000198
ip_write(201): bytes: 7
ip_read(179): debug: 2
ip_write(196): s->sock: 00000198
ip_write(201): bytes: 7
ip_read(179): debug: 2
jbd_get_info(271): r: 0
jbd_get_info(280): cell 0: 3.272
jbd_get_info(280): cell 1: 3.271
jbd_get_info(280): cell 2: 3.274
jbd_get_info(280): cell 3: 3.271
jbd_get_info(280): cell 4: 3.274
jbd_get_info(280): cell 5: 3.271
jbd_get_info(280): cell 6: 3.272
jbd_get_info(280): cell 7: 3.273
jbd_get_info(288): cells: total: 26.178, min: 3.271, max: 3.274, diff: 0.003, avg: 3.272
display_info(498): temp: [ 26.1,26.0 ]
display_info(520): temp: [ 3.272,3.271,3.274,3.271,3.274,3.271,3.272,3.273 ]
mqtt_new(42): address: 172.16.9.12, clientid: GABO-WORKSTATION, topic: LIFEPO4
mqtt_new(59): returning: 0262DB50
mqtt_connect(67): s: 0262DB50, interval: 20, user: , pass:
mqtt_connect(79): rc: 0
mqtt_send(116): message: {"Name":"GABO-WORKSTATION","Voltage":26.170000076293945,"Current":-11.5,"DesignCapacity":100,"RemainingCapacity":57.369998931884766,"PercentCapacity":57,"CycleCount":3,"Probes":2,"Temps":[26.100000000000001,26],"Strings":8,"Cells":[3.2719999999999998,3.2709999999999999,3.274,3.2709999999999999,3.274,3.2709999999999999,3.2719999999999998,3.2730000000000001],"CellTotal":26.177999496459961,"CellMin":3.2709999084472656,"CellMax":3.2739999294281006,"CellDiff":0.0030000209808349609,"CellAvg":3.2722499370574951,"DeviceName":"15300051-SP10S009-L8S-100A","ManufactureDate":"20200904","Version":2.2000000476837158,"FET":"Charge,Discharge"}, timeout: 10
mqtt_send(123): rc: 0
mqtt_send(129): rc: 0
mqtt_send(134): delivered message.
mqtt_disconnect(96): timeout: 10
mqtt_disconnect(100): rc: 0

Just need to figure out how to use mqtt, as I have never used it before, but this should be simple enough for me to do it on home-assistant with their guides.

Thank you everyone that helped on this topic.
I know the topic is for the WiFi module, but a lot of what you did also applies for RS485 with this BMS and any RS485 to Ethernet adapter!
I'm really happy with this BMS, now I'm going to buy another one for my other battery!
This is basic information on how to use the JBD BMS (Overkill Solar) on RS485 connected to the RS485 to TCP adapter USR-DR302 in Home Assistant, using jbdtool or jbd for Windows to push to MQTT broker on Home Assistant: (sorry, I needed to include all key words for better search results ;-))

You need to have an MQTT broker working, I used this guide on Youtube
After MQTT is working, Create the sensors on your configuration.yaml file:

Code:
sensor:
# Example configuration.yaml entry: https://www.home-assistant.io/integrations/sensor.mqtt/
#jbd.exe Solar Director on Windows, uncomment this section if you're using this binary
#https://diysolarforum.com/threads/jbd-bms-wi-fi-module.17252/post-282045
#https://diysolarforum.com/threads/jbd-bms-wi-fi-module.17252/post-282071

#- platform: mqtt
#  name: "LIFEPO4 Battery Voltage"
#  unit_of_measurement: "V"
#  state_topic: "SolarD/Battery/jbd/Data"
#  value_template: "{{ value_json.voltage }}"
#  json_attributes_topic: "SolarD/Battery/jbd/Data"
#  json_attributes_template: "{{ value_json.voltage | tojson }}"
#- platform: mqtt
#  name: "LIFEPO4 Battery Current"
#  unit_of_measurement: "A"
#  state_topic: "SolarD/Battery/jbd/Data"
#  value_template: "{{ value_json.current }}"
#  json_attributes_topic: "SolarD/Battery/jbd/Data"
#  json_attributes_template: "{{ value_json.current | tojson }}"
#- platform: mqtt
#  name: "LIFEPO4 Battery Temps"
#  unit_of_measurement: "C"
#  state_topic: "SolarD/Battery/jbd/Data"
#  value_template: "{{ value_json.temps }}"
#  json_attributes_topic: "SolarD/Battery/jbd/Data"
#  json_attributes_template: "{{ value_json.temps | tojson }}"

# Example configuration.yaml entry: https://www.home-assistant.io/integrations/sensor.mqtt/
#jbdtool.exe on Windows, comment this section if you're not using this binary
#https://diysolarforum.com/threads/jbd-bms-wi-fi-module.17252/post-282019

- platform: mqtt
  name: "LIFEPO4 Battery Voltage"
  unit_of_measurement: "V"
  state_topic: "LIFEPO4"
  value_template: "{{ value_json.Voltage }}"
  json_attributes_topic: "LIFEPO4"
  json_attributes_template: "{{ value_json.Voltage | tojson }}"

- platform: mqtt
  name: "LIFEPO4 Battery Current"
  unit_of_measurement: "A"
  state_topic: "LIFEPO4"
  value_template: "{{ value_json.Current }}"
  json_attributes_topic: "LIFEPO4"
  json_attributes_template: "{{ value_json.Current | tojson }}"

- platform: mqtt
  name: "LIFEPO4 Battery Design Capacity"
  unit_of_measurement: "Ah"
  state_topic: "LIFEPO4"
  value_template: "{{ value_json.DesignCapacity }}"
  json_attributes_topic: "LIFEPO4"
  json_attributes_template: "{{ value_json.DesignCapacity | tojson }}"

- platform: mqtt
  name: "LIFEPO4 Battery Remaining Capacity"
  unit_of_measurement: "Ah"
  state_topic: "LIFEPO4"
  value_template: "{{ value_json.RemainingCapacity }}"
  json_attributes_topic: "LIFEPO4"
  json_attributes_template: "{{ value_json.RemainingCapacity | tojson }}"

- platform: mqtt
  name: "LIFEPO4 Battery Percent Capacity"
  unit_of_measurement: "%"
  state_topic: "LIFEPO4"
  value_template: "{{ value_json.PercentCapacity }}"
  json_attributes_topic: "LIFEPO4"
  json_attributes_template: "{{ value_json.PercentCapacity | tojson }}"

- platform: mqtt
  name: "LIFEPO4 Battery CycleCount"
  state_topic: "LIFEPO4"
  value_template: "{{ value_json.CycleCount }}"
  json_attributes_topic: "LIFEPO4"
  json_attributes_template: "{{ value_json.CycleCount | tojson }}"

- platform: mqtt
  name: "LIFEPO4 Battery Temperatutes"
  unit_of_measurement: "ºC"
  state_topic: "LIFEPO4"
  value_template: "{{ value_json.Temps }}"
  json_attributes_topic: "LIFEPO4"
  json_attributes_template: "{{ value_json.Temps | tojson }}"

Then run one of the two binaries, in my specific case I'm using jbdtool.exe with this command:
Code:
jbdtool.exe -d 9 -t ip:172.16.10.99 -m 172.16.9.12:GABO-WORKSTATION:LIFEPO4 -i 5
Replace 172.16.10.99 with your USR-DR302 IP address, remember to have the USR-DR302 on TCP-Server Port 23.
Replace the 172.16.9.12 with your MQTT Broker IP address.
Replace GABO-WORKSTATION with your CLIENTID.
Adjust -i 5 to your needs, in seconds.

I setup a Scheduled Task on Windows for the moment, to run this command at computer startup, then will move on to a docker container when I find how to do it.

This is the result on my Home Assistant Developer Tools, having new sensor available to be used!
1623301322488.png
Any suggestion is welcome!
 
Any idea on how to explode the two temperature values into separate sensors?
Maybe too easy, but I'm doing copy and paste with little understanding on how json or yaml language works.

Also, I noticed that JDBTOOL.exe on windows is not respecting the port number after the IP address of the host, it doesn't matter which port you tell it to use, will always connect to port 23
 
Any idea on how to explode the two temperature values into separate sensors?
Maybe too easy, but I'm doing copy and paste with little understanding on how json or yaml language works.

Also, I noticed that JDBTOOL.exe on windows is not respecting the port number after the IP address of the host, it doesn't matter which port you tell it to use, will always connect to port 23

the port can be specified after the IP address, like this:

Code:
jbdtool -t ip:192.168.0.1:2900

Also, you might not want to run with full debug output all the time - just when trouibleshooting. It will fill up a logfile quickly. I generally dont have it turned on most of the time (no -d option).

I've found an interval (-i) of no less than 20 works best over the long run.

Keep in mind, my efforts (development time) are going into the jbd agent vs jbdtool going forward.
 
Last edited:
I know I said my dev time was going into jbd agent going forward, but I went ahead and added a feature to jbdtool for you:

the -F option will "flatten" the arrays into seperate names:

Code:
# ./jbdtool -t ip:pack_01 -F -J
{
    "Voltage": 54.180000305175781,
    "Current": 0,
    "DesignCapacity": 75,
    "RemainingCapacity": 44.330001831054688,
    "PercentCapacity": 59,
    "CycleCount": 0,
    "Probes": 2,
    "Strings": 14,
    "temp_00": 25.600000381469727,
    "temp_01": 25.700000762939453,
    "cell_00": 3.8640000820159912,
    "cell_01": 3.8599998950958252,
    "cell_02": 3.8610000610351562,
    "cell_03": 3.8619999885559082,
    "cell_04": 3.874000072479248,
    "cell_05": 3.8789999485015869,
    "cell_06": 3.878000020980835,
    "cell_07": 3.878000020980835,
    "cell_08": 3.877000093460083,
    "cell_09": 3.871999979019165,
    "cell_10": 3.875,
    "cell_11": 3.8689999580383301,
    "cell_12": 3.8659999370574951,
    "cell_13": 3.8680000305175781,
    "CellTotal": 54.183002471923828,
    "CellMin": 3.8599998950958252,
    "CellMax": 3.8789999485015869,
    "CellDiff": 0.019000053405761719,
    "CellAvg": 3.8702144622802734,
    "DeviceName": "15350021-SP15S008C-P14S-100A",
    "ManufactureDate": "20201022",
    "Version": 2.5,
    "FET": "Charge,Discharge"
}

static binaries for arm,win64, and linux64 attached
 

Attachments

  • jbdtool_linux_static.zip
    1 MB · Views: 34
  • jbdtool_win64_static.zip
    177.2 KB · Views: 38
  • jbdtool_pi_static.zip
    1.3 MB · Views: 31
I know I said my dev time was going into jbd agent going forward, but I went ahead and added a feature to jbdtool for you:

the -F option will "flatten" the arrays into seperate names:

Code:
# ./jbdtool -t ip:pack_01 -F -J
{
    "Voltage": 54.180000305175781,
    "Current": 0,
    "DesignCapacity": 75,
    "RemainingCapacity": 44.330001831054688,
    "PercentCapacity": 59,
    "CycleCount": 0,
    "Probes": 2,
    "Strings": 14,
    "temp_00": 25.600000381469727,
    "temp_01": 25.700000762939453,
    "cell_00": 3.8640000820159912,
    "cell_01": 3.8599998950958252,
    "cell_02": 3.8610000610351562,
    "cell_03": 3.8619999885559082,
    "cell_04": 3.874000072479248,
    "cell_05": 3.8789999485015869,
    "cell_06": 3.878000020980835,
    "cell_07": 3.878000020980835,
    "cell_08": 3.877000093460083,
    "cell_09": 3.871999979019165,
    "cell_10": 3.875,
    "cell_11": 3.8689999580383301,
    "cell_12": 3.8659999370574951,
    "cell_13": 3.8680000305175781,
    "CellTotal": 54.183002471923828,
    "CellMin": 3.8599998950958252,
    "CellMax": 3.8789999485015869,
    "CellDiff": 0.019000053405761719,
    "CellAvg": 3.8702144622802734,
    "DeviceName": "15350021-SP15S008C-P14S-100A",
    "ManufactureDate": "20201022",
    "Version": 2.5,
    "FET": "Charge,Discharge"
}

static binaries for arm,win64, and linux64 attached
On Windows it works great! Thank you!

I know I said my dev time was going into jbd agent going forward, but I went ahead and added a feature to jbdtool for you:
What is this jbd agent you're developing?
 
I've been trying to setup the docker image with the jbdtool, but it's not easy to learn it in some hours.

Here's the image (still with errors about the env variables, so no functioning).
gabrielpc1190/jbdtool
I put the link here, in case there is a docker expert that can help me fix it.
What I want is to give all the parameters by using environmental variables instead of having the jbdtool command hardcoded.

I've tried this as the CMD/ENTRYPOINT for the image (not really understanding the real difference):

Code:
jbdtool -i 5 -F -t ip:${IP} -m ${MQTT_BROKER}:${CLIENTID}:${MQTT_TOPIC}:${MQTT_USER}:${MQTT_PASS}
but gives me an error:
Code:
jbdtool: line 1: syntax error: unexpected ")"

Any ideas would be well received.
 
I've been trying to setup the docker image with the jbdtool, but it's not easy to learn it in some hours.

Here's the image (still with errors about the env variables, so no functioning).
gabrielpc1190/jbdtool
I put the link here, in case there is a docker expert that can help me fix it.
What I want is to give all the parameters by using environmental variables instead of having the jbdtool command hardcoded.

I've tried this as the CMD/ENTRYPOINT for the image (not really understanding the real difference):

Code:
jbdtool -i 5 -F -t ip:${IP} -m ${MQTT_BROKER}:${CLIENTID}:${MQTT_TOPIC}:${MQTT_USER}:${MQTT_PASS}
but gives me an error:
Code:
jbdtool: line 1: syntax error: unexpected ")"

Any ideas would be well received.
Can you show us the command line after substitution and/or expansion.
 
Does this project require the JBD uart box?


I built this esp device, but had no luck. Server worked and programmed perfectly. HW Virtual serial port connected but. VSP just just keep going on and off and jbd software doesnt connect.

Strangely enough, I was able to connect the windows JBD tool with a USB to serial programmer in my computer with the TX and RX for where the esp goes straight to the BMS.
 
Hallo.
I have jk bd6a20s 10p and i measures Vcc Gnd from 485. Value is 56V. I have 16 cell. Something is wrong?
 
Do you have the windows version of the source?

Also, do you know how I can get the firmware source for the JBD 4s 12 v 120a and 8s 24v 100a and 16s 48v 100a BMS?

The reason for asking is that I am in the process of designing a 300 amp 4s 12 v and a 8s 24 v and a 16s 48v LiFePO4 (280 Ah cells) BMS and would like to have the source code for the apps and firmware to jump start me off. I am thinking of switching the BMS processor to a Microchip PIC type as I have a lot of experience using these devices and have all the hardware and software to easily do the development. I have a BSE EE degree with over 40 years hardware/software/firmware/windows GUI development experience to apply against this design effort.
 
Last edited:
I replicated project and:
First is mandatory to enable esp ch_en to + vcc
Second vcc is battery vcc. If value is biger then step-down surce don't use . Use auxiliary surce .
I am stacked here,this adaptor work (I monitored virtual port rx connected whith tx ,send an recive a word,ok) I use Windows 7 but applications...not work.
Please help my
 
I replicated project and:
First is mandatory to enable esp ch_en to + vcc
Second vcc is battery vcc. If value is biger then step-down surce don't use . Use auxiliary surce .
I am stacked here,this adaptor work (I monitored virtual port rx connected whith tx ,send an recive a word,ok) I use Windows 7 but applications...not work.
Please help my
+1 i also found ch_en needs to be pulled high, I should have mentioned this in my post above.

But have also had the same problem.
 
Back
Top