Firstly I am new to Node-Red and to this forum and look forward to many discussions!
I am beginning a small project where I hope to set up a dashboard monitoring the performance of my Solar panels. My Solax inverter supports data exchange and I hope to use node-red to pull the data I need. I am running node-red on my windows machine for now and then I hope to switch over to my R-PI as a host once my dashboard is functioning.
I have fixed the IP of my inverter and I can ping it successfully. I have created a basic flow using an injector, Modbus Getter and debug.
I have then set up the Modbus getter with the following settings
also , here are the server settings I have entered
When I inject a time stamp, i get no response at all. Any ideas?
I have followed this tutorial - https://www.youtube.com/watch?v=yci6Z35J3C0
Thanks...I hope the screenshots display correctly !
First impression is that you're using FC4 instead of FC3 to pull your data. Most MODBUS modules like FC3 when making requests. You can still have multiple registers returned (i.e. your 99), but it gives the controller a starting point to start returning data from instead of an array of data to return.
Also, do you need 99 register returns? That seems like quite a lot. You should have a register list for your inverter somewhere. They possibly exist in the manual or in a spec sheet online. If you're looking for performance, you'll want that as you'll only need things like power in, power out, input volts and so on. At most, you're looking at less than 20 registers, and they may not all be contiguous. You may also be trying to pull registers that don't exist, which will cause your inverter controller to reject the request.
I checked the youtube video you referenced and tried to get my hands on a manual for your inverter, the latter without luck.
I do have solar power with an inverter in my house and connected this successfully to node-red using modbusTCP, which then feeds into influxdb and grafana (a very common use case here). But the manual to my inverter gave me the FC value (4) and the unit ID (1), and the content of the 1 or 2 byte registers I'm interested in.
I use the Modbus-Read node from the node-red-contrib-modbus package.
I have set up polling every 5 minutes. Therefore I do not need an inject node.
The registers of my inverter start at 3500, not at 0 as in your setup. The manual would give us a hint here.
Can you drop us a link to the manual of your inverter, then we might be able to help better.
Thanks very much for your replies. The user manual can be found here
I will look into the modbus read node a little more. Thanks!
Awesome! Only not awesome...
Note on page 53 says you'll have to contact Solax directly to get the information for the MODBUS registers. That's going to do a lot more for you in the long run that what the Youtube video shows.
One thing I seemed to have found (but can't find again) is that there may be a firmware update that actually enables MODBUS communication on that inverter. It's something to check on.
Can you post your flow that you have so far? That's going to help the best with what you have. It may be that something has changed since that video was posted and something needs to be configured differently.
Barring that, try using FC3 and see if you can pull register 0, since that's apparently a good register. See if you get any data back from that, even if it's just 0. Having any return means it has a round trip path. If you can't get a single register, it points more to a configuration on your inverter than something in Node-Red, since you can ping it and such.
Let us know what you can come up with.