diy solar

diy solar

Data extraction from inverters

I downloaded the Solis version. Nodered does indeed show data and actually all appears to look just fine in that space. By getting Grafana,Influx,MQTT up I just thought it would magically work despite having a sense it wouldn't because of the Pi zero and hiw different it is to the other Pi's
 
I downloaded the Solis version. Nodered does indeed show data and actually all appears to look just fine in that space. By getting Grafana,Influx,MQTT up I just thought it would magically work despite having a sense it wouldn't because of the Pi zero and hiw different it is to the other Pi's
From my prior research there is no official suported version of Grafana that functions on the Zero due to being an older Arm architecture, i gave up in the end even compiling from source i couldn't get it to work.
 
From my prior research there is no official suported version of Grafana that functions on the Zero due to being an older Arm architecture, i gave up in the end even compiling from source i couldn't get it to work.
Happened upon this,

apt-get install grafana-rpi

Don't recall the list or source, ran a wget for it from somewhere. Like you said though, likely not a supported version

After purging the version on the image and running the above, that got Grafana up and running just fine on the Pi Zero.
 
Following this thread with interest, but I'm having trouble grasping how the full application flow works here. My understanding is that Grafana is a dashboard framework, and it's picking the data up from a RAM disk.

But what is putting the data there? I'm guessing there is some daemon that is using the various serial protocols to poll the inverters, get the data and then save it to the RAM disk. Does Grafana orchestrate that? Or is it something else?

I guess another question I have is where are the serial protocol definitions (or implementation code) to enable whatever is orchestrating the polling and data writing?

Apologies if I have missed something obvious in the various documentation, links would be great.

Thx,
James
 
But what is putting the data there? I'm guessing there is some daemon that is using the various serial protocols to poll the inverters, get the data and then save it to the RAM disk. Does Grafana orchestrate that? Or is it something else?

In short, you have something like Prometheus or other (time series) database that Grafana reads from. Then, something like Node Exporter (with Prometheus) that reads the data from a Ramdisk and puts it in the Prometheus database. The data in the Ramdisk is put there by individual scripts that know how to talk to the hardware.

There is a set-up guide for this in the wiki of this site: https://diysolarforum.com/ewr-carta/data_communication/
 
Thanks! Ok, so prometheus is the daemon, with prometheus-node-exporter a way of exposing the data that it creates (to get the data to a place that Grafana can read it). So we are adapting infrastructure primarily designed for accessing data from CPUs, CPUs etc. Sort of like "Activity Monitor" on the mac.

Re-reading these great notes: the parts that read the data from the inverters starts to come at the end of https://diysolarforum.com/ewr-carta/grafana_configuration/

Links to SolarShed and there I can see the scripts that implement the data collection, eg.:


These use some combination of raw serial modbus processing and libraries to get the data, right? e.g., the mpp-solar script says that it assumes that you have the mpp-solar package installed. Which is here: https://github.com/jblance/mpp-solar although that seems to work for a much broader range of equipment than just mpp-solar :)

I have Jakiper batteries, so I would need something like this: https://github.com/ClassicDIY/PylonToMQTT although that seems to use a different "publisher" called MQTT (so I'm guessing that MQTT is roughly equivalent to prometheus here).

Anyway, not really a question, just writing down as I try to figure out the great stuff everyone has been doing.
 
I really see little benefit in using node-exporter. Since you already getting data somehow from inverter then it is easy enough just to write a simple exporter and expose it to prometheus.
I have been doing this for a while now with my Solis inverter.
 
I really see little benefit in using node-exporter. Since you already getting data somehow from inverter then it is easy enough just to write a simple exporter and expose it to prometheus.

The reason to use node-exporter is that you can use its Node Exporter Textfile Collector, which makes things very easy.
 
I really see little benefit in using node-exporter. Since you already getting data somehow from inverter then it is easy enough just to write a simple exporter and expose it to prometheus.
I have been doing this for a while now with my Solis inverter.
What causes your exporter to run? Is it a cronjob?
 
Got a Pi3 - running just fine. Thanks again @shavermcspud . Great work.

For anybody that might be tempted to try and get both the Wifi Stick and this solution wired in together and working in tandem - it doesn't. Well my efforts has been in vain trying to get it working with the Solis S3 Wifi stick. Perhaps the older stick might play nicely with this - not sure.
 
I'm trying to get the flow working in Node Red V3.0.2.

It was working perfectly fine using the image, however due to an SD card corrupting, I did a fresh install of Raspbian and the latest version of Node red.

Would someone please be able to provide me with the flows and if I need the IO Buffer File ?
 
I'm trying to get the flow working in Node Red V3.0.2.

It was working perfectly fine using the image, however due to an SD card corrupting, I did a fresh install of Raspbian and the latest version of Node red.

Would someone please be able to provide me with the flows and if I need the IO Buffer File ?
Here you go
 

Attachments

  • flows.zip
    7.8 KB · Views: 31
Thought id give something back to the community.

Not sure if its been done before, I didn't see it here, but I have managed to decode the data from a wide variety of PV inverters, Grid tie, storage etc, written a python script that outputs to influxdb then you can read off in to grafana or similar.

Any that use the huge hex data values basically

i.e Canadian solar, Solis, Sofar, Ginlong (any type) if it uses the wifi stick or lan adapter you can pull the values, from my brief research there are around 90 odd inverters that use these same hex values. This doesn't work for the MPP USB/RS232 or all in one units but I think that's already covered in ICC solar plus many other bits of software.

I have made a pre configured Raspberry Pi image if anyone wants to dive straight in, or I can provide the python script. the hex values

View attachment 23103

So, can you post the "hex protocol" you decoded? With that, I'll be able to process the data using any language besides Python.

Thanks in advance.

Regards,
Bob
 
So, can you post the "hex protocol" you decoded? With that, I'll be able to process the data using any language besides Python.

Thanks in advance.

Regards,
Bob
Hi Bob, all the modbus registers are present in the json file attached above.
 
I'm all up and running now. Has anyone managed to set charge times, or control the inverter yet. I would like to be able to set the nightly charge limit, based on my solar forecast.
 
Here you go

Thanks for this post - i have downloaded your Rpi image - but most of my Home Automation is done with NR in Virtual Machines on ESXi any chance you could list the custom nodes in your Flow ? I am getting issues with importing to the palette with missing nodes

Craig
 
Thanks for this post - i have downloaded your Rpi image - but most of my Home Automation is done with NR in Virtual Machines on ESXi any chance you could list the custom nodes in your Flow ? I am getting issues with importing to the palette with missing nodes

Craig
Actually trial and error got me there

Node-red-contrib-modbus
node-red-contrib-sum
node-red-contrib-python-function

(i do not think the python one is needed as it appears to only talk to your Eddi/My Energi)

Craig
 
Just an update on this - i have a Solis 3P5K-4G AU - that is a Solis 3 Phase 4th Gen for Australia.

I have just used your NR flow as a starting point - but note that none of the registers match up with what i am seeing and using. I have sourced different modbus documentation and will post up some more info on that and a flow once it is finalised. I also have a Solis 25K - Semi commercial inverter which i will be setting up tomorrow also and will report back as to which Modbus registers it responds to

Craig
 
Actually trial and error got me there

Node-red-contrib-modbus
node-red-contrib-sum
node-red-contrib-python-function

(i do not think the python one is needed as it appears to only talk to your Eddi/My Energi)

Craig
I am trying to input you json file but there a re some nodes missing and for the life of me i cannot seem to find them. Do you have an updated list for the nodes that have to be installed. Thanks. I am in node-red v 3.0.2
 
Just installed node-js and node-red and finally made a connection to read one modbus port ! excellent. It was easier than expected. Now my problem is that i cannot stop the flow once i deploy it !. Maybe next time !!
 

diy solar

diy solar
Back
Top