diy solar

diy solar

New JBD / Overkill bluetooth monitor

butter_fry

New Member
Joined
Mar 31, 2021
Messages
29
Location
Seattle, WA
Hey folks,
mostly a new lurker but I thought it interesting to share something new that is being worked on. For you DiY'ers this will make your tesla-snorting buddies jealous.
It's not my project, but I think I was one of if not the first to get it up and running aside from the creator. Consider this a plug and a nudge to go help develop/test it.

The setup: Super vanilla budget 8s Lishen/Eve 280ah build with an Overkill BMS fed by a Growatt spf-3000. Nothing exciting to see.

I wanted a way to monitor all this for the remote install location, so I started poking around Github to see what the nerds were up to. I ran across a little script that @tgalarneau was just in the process of publishing and tweaking. Over the course of a few days we adapted his 16cell code to the 8cell version. The result is some pretty cool stat porn. He also is a member here aparently and started his own thread about his work. Consider this a boost and endorsement, totally worth getting this up and going for anyone who is into stat meditations. Give him props.

I'm not done filling it all in, but all the metrics are there waiting to be used. At this point, communication is receive only (it's not a replacement for the App that can change settings) but that is all that anyone really needs for monitoring. I'm mentioning this because after some searching around here it doesn't look like anyone on the forums/interwebs has taken it as far, or cracked open the wonky communication protocol over bluetooth LE as far as he has.

The installation is pretty straightforward for those with basic unix skills and some patience to get it setup. I'm a total kludge, but am plenty proficient with the basics and hardware/software install portion. After that, the script just runs and feeds data into a influxdb database for displaying by Grafana.

Both he and I are running the code on Raspberry Pis'. I'm using a ultra fast one, he's using the most basic of all. His observation is that the RPi Zero-w is a bit anemic for the TIG (telegraf, Influx, Grafana) stack. Mine barely notices it's doing work and is running a bunch of other containers and processes too.

The end goal for mine is to display this dashboard on a little RPi touch panel screen that is mounted onsite for the client to interact with and monitor the system.

Stats come in at any speed you want, but i'm working with a 10s update. Unfortunately the Growatt maxes out a 1minute updates, which leaves a bit to be desired on that portion of the stats. It prevents me from doing some more advanced synchronous calculations (BMS and Solar aren't in sync) It's a budget system limitation, but maybe I'll dig into it and see if I can hijack it further to grab stats at a lower level instead of the http sends to the growatt online server. I'm using a cool little package called grott for that. It feeds metrics into the same database as well as forwards it to the growatt server and can be consumed by Grafana as well.

The screenshot below is a snip from Home Assistant located in yet another location. This other remote RPi and the onsite one are connected via a VPN over a 4g celluar modem. The second Pi (at my client's home) is the one running Grafana and consuming/displaying the data. I have Home Assistant monitoring alerts and alarms produced by the BMS script. I get notified of battery depletion, Over current, BMS and Charger error states, Float cycle start, temps... When the battery gets down to 15%ish Home Assistant remote-starts a little suitcase generator to supplement the storage for as long as needed. Metrics are cool


cosmic_solar.png
 
Last edited:
After writing this up, I started thinking that, even though i'm a kludge.. i do know what i'm doing in this realm. I thought about all the steps that I take for granted that my fingers just do in a SSH shell.. Someone should build a RPi image that can just be written to a SD card. It would have the whole system already installed.. just a little welcome/setup webpage that runs on first boot where you can setup the system you have.. A white label monitoring solution that you don't have to learn all of the things needed to get this up and going...

heck, i have tons of ideas for this.. Make the pi a little hotspot which can serve up all the stats page and be totally offline, or even a "repeater" that your other solar IoT accessories can be connected to. Anything with software that has metrics available can be funneled into the database. The owner of this code has his Thornwave Bluetooth battery monitors feeding it as well. Data collection w/o internet dependency or needing to launch 4 different apps to get a good reading on your system. A stat warehouse that simplifies monitoring on a single site.

there's enough of us with these JBD / Overkill units that it would be useful. I should stop thinking about it, I'll end up with another pandemic hobby/distraction.

hmm...
 
Last edited:
Great job guys. I wish I could get on top of coding the Pi . Sitting here with a Pi Zero and Pi 4B gathering dust.
What a waste!
 
After writing this up, I started thinking that, even though i'm a kludge.. i do know what i'm doing in this realm. I thought about all the steps that I take for granted that my fingers just do in a SSH shell.. Someone should build a RPi image that can just be written to a SD card. It would have the whole system already installed.. just a little welcome/setup webpage that runs on first boot where you can setup the system you have.. A white label monitoring solution that you don't have to learn all of the things needed to get this up and going...

heck, i have tons of ideas for this.. Make the pi a little hotspot which can serve up all the stats page and be totally offline, or even a "repeater" that your other solar IoT accessories can be connected to. Anything with software that has metrics available can be funneled into the database. The owner of this code has his Thornwave Bluetooth battery monitors feeding it as well. Data collection w/o internet dependency or needing to launch 4 different apps to get a good reading on your system. A stat warehouse that simplifies monitoring on a single site.

there's enough of us with these JBD / Overkill units that it would be useful. I should stop thinking about it, I'll end up with another pandemic hobby/distraction.

hmm...
I would absolutely pay for this. Lol.
 
I just ordered a RPi 4 and ESP32 yesterday, starting down this road with Home Assistant. I was going to do just the house, but this topic might get me to do the motorhome as well. I will be following and posting if I have any success.
 
I'm waiting on the final box of batteries and JBD BMS so I can rework my RV system. This software looks real interesting and I plan to set it up once I have the battery pack built. There's another thread here somewhere with info on it (from the creator of it)

My current setup is a Pi3 running SQL to log data and a few ESP32's for sensor support. I have an ESP32 w/INA219 & shunt to monitor current flow to/from batteries & solar. An ESP32 w/GPS & gyro to monitor trailer level and location. Also have a Pi3 with Pi display running Win IoT for a display which is redundant as I mostly just view web pages from a local server on the main Pi. I've tried a couple of methods of tank monitoring (capacitive) but anything that works on my test bench doesn't work in the RV
 
I have figured out(I think) a few values from Grott for my system but some are still puzzling to me. I wanted to do some dual axis graphs with say solar wattage coming in and inverter load and battery consumption but I'm having a hard time finding values that correspond appropriately with each other to be what I'm looking for. Here is a sample reading from Verbose log file of Grott.

SPF 3000LVM 24
Datalogger is a shineWIFI-S
Using proxy configuration in grott.


- Growatt new layout processing - decrypt : True - offset : 6 - record layout : T05NNNN - Grott values retrieved: - pvserial : UKDAA45012 - pvstatus : 12 - pvpowerin : 5380505.6 - pv1voltage : 0.0 - pv1current : 125.0 - pv1watt : 0.0 - pv2voltage : 3.1 - pv2current : 0.0 - pv2watt : 126.0 - pvpowerout : 147.0 - pvfrequentie : 0.0 - pvgridvoltage : 0.0 - pvgridcurrent : 0.0 - pvgridpower : 266.1 - pvgridvoltage2 : 10.0 - pvgridcurrent2 : 239.3 - pvgridpower2 : 0.0 - pvgridvoltage3 : 119.9 - pvgridcurrent3 : 599.9 - pvgridpower3 : 33.8 - pvenergytoday : 2169246.5 - pvenergytotal : 0.0 - totworktime : 0.0 - pvtemperature : 33.3 - pvipmtemperature : 0.0 - epv1today : 0.2 - epv1total : 63.1 - epv2today : 0.0 - epv2total : 0.0 - epvtotal : 0.0
Correct me if I'm wrong.
pv1currentwattage coming from panel production, matches sun and shade patterns and the Growatt portal.
pvpoweroutInverter output in VA
pv2wattInverter output wattage
pv2voltagerecharging current(yes the name is wrong in grott), same value on Growatt site and matches with pv1current(which is also misnamed... IMO)
epvtotalenergy power generation since datalogger installation or system installation
pvgridvoltage3inverter output voltage
pvgridcurrent3inverter output freq *.1(yes misnamed again) notice pvfrequentie is never used or always zero.
pvenergytodaywatthours total today *1000 ??
pvgridpower3Today's PV Wh production * .1 ? This corresponds to the "Today(kWh):0.3" found under the "My Photovoltaic devices" on Growatt page.

Possible grott is not picking the right record layout? Should I correct the misnomers in the template? Where is batt voltage?

A lot of the table above was figured out while making this post.

Joe-
 
Sorry to flood this thread. But I just switched grott branch to 2.6 and everything above is probably unrelated now.
 
Hey folks,
mostly a new lurker but I thought it interesting to share something new that is being worked on. For you DiY'ers this will make your tesla-snorting buddies jealous.
It's not my project, but I think I was one of if not the first to get it up and running aside from the creator. Consider this a plug and a nudge to go help develop/test it.

The setup: Super vanilla budget 8s Lishen/Eve 280ah build with an Overkill BMS fed by a Growatt spf-3000. Nothing exciting to see.

I wanted a way to monitor all this for the remote install location, so I started poking around Github to see what the nerds were up to. I ran across a little script that @tgalarneau was just in the process of publishing and tweaking. Over the course of a few days we adapted his 16cell code to the 8cell version. The result is some pretty cool stat porn. He also is a member here aparently and started his own thread about his work. Consider this a boost and endorsement, totally worth getting this up and going for anyone who is into stat meditations. Give him props.

I'm not done filling it all in, but all the metrics are there waiting to be used. At this point, communication is receive only (it's not a replacement for the App that can change settings) but that is all that anyone really needs for monitoring. I'm mentioning this because after some searching around here it doesn't look like anyone on the forums/interwebs has taken it as far, or cracked open the wonky communication protocol over bluetooth LE as far as he has.

The installation is pretty straightforward for those with basic unix skills and some patience to get it setup. I'm a total kludge, but am plenty proficient with the basics and hardware/software install portion. After that, the script just runs and feeds data into a influxdb database for displaying by Grafana.

Both he and I are running the code on Raspberry Pis'. I'm using a ultra fast one, he's using the most basic of all. His observation is that the RPi Zero-w is a bit anemic for the TIG (telegraf, Influx, Grafana) stack. Mine barely notices it's doing work and is running a bunch of other containers and processes too.

The end goal for mine is to display this dashboard on a little RPi touch panel screen that is mounted onsite for the client to interact with and monitor the system.

Stats come in at any speed you want, but i'm working with a 10s update. Unfortunately the Growatt maxes out a 1minute updates, which leaves a bit to be desired on that portion of the stats. It prevents me from doing some more advanced synchronous calculations (BMS and Solar aren't in sync) It's a budget system limitation, but maybe I'll dig into it and see if I can hijack it further to grab stats at a lower level instead of the http sends to the growatt online server. I'm using a cool little package called grott for that. It feeds metrics into the same database as well as forwards it to the growatt server and can be consumed by Grafana as well.

The screenshot below is a snip from Home Assistant located in yet another location. This other remote RPi and the onsite one are connected via a VPN over a 4g celluar modem. The second Pi (at my client's home) is the one running Grafana and consuming/displaying the data. I have Home Assistant monitoring alerts and alarms produced by the BMS script. I get notified of battery depletion, Over current, BMS and Charger error states, Float cycle start, temps... When the battery gets down to 15%ish Home Assistant remote-starts a little suitcase generator to supplement the storage for as long as needed. Metrics are cool


View attachment 47805
Somebody needs to write a starter raspberry pi article for beginners, what it is, what you need to make it work, and benefits. All great info, but there's a knowledge gap for many people.
 
And......View attachment 64096

Short version: RPi 4B, Debian/RaspberryPi OS, @tgalarneau Github, YouTube, MQTT, NodeRed, Influxdb, Grafana.
Do you have just one pack being monitored or multiple?

I've started working on getting the s/w up and running now that my batteries are built. I also want to integrate the data I am pulling from my Rover CC and was running on a Pi when I had the AGMs installed.
 
For some reason in my system the CellInfo1 string "meter,volts,amps,watts,remain,capacity,cycles" isn't making into the db. The debug output shows that jbdbms-4-socket.py has the info but the db never gets it.

I'm just running with it talking to one battery at the moment
 
Hello folks - Not sure if any of this is of interest but I asked growatt to provide me some info related to their communication protocol and they provided the following
 

Attachments

  • Growatt BMS CAN-Bus-protocol-low-voltage-V1.08.pdf
    663.3 KB · Views: 34
  • 1xSxxP_ESS_protocal_rev _23_20171128 SPF5k MHP5k.pdf
    255.5 KB · Views: 26
Hello folks - Not sure if any of this is of interest but I asked growatt to provide me some info related to their communication protocol and they provided the following
Glanced at this very quickly. Am I correct in assuming this is related more towards the communication between the battery BMS and the growatt and not the growatt to other devices such as PC over rs485?

Joe-
 
Glanced at this very quickly. Am I correct in assuming this is related more towards the communication between the battery BMS and the growatt and not the growatt to other devices such as PC over rs485?

Joe-
that was my original ask of growatt. How to communicate from the BMS (in my case overkill solar) to the growatt).
 
Back
Top