It's up and running!
Recently, my Solaredge inverter wasn't producing the power I expected. It was a real challenge to prove that there was something wrong to Solaredge and my local installer. I persevered and gave specific examples of max production, ramp up rates, etc.
Solaredge agreed and replaced the inverter, at no charge of course. The effort was worth it since my PV production was down almost 25% and now it's back up to "normal". This all started when one day last July the inverter didn't make any power for almost two days. I realized that the monitoring Solaredge did only gathered info for them and allowed me to view it online. However their monitoring would not notify me of a problem; hence my project.
The day the inverter was replaced I had the installer plug an RJ45 cable into the port on the inverter and I ran it to my router. On the inverter I fumbled through the menu and found Modbus. I enabled the Modbus communication and confirmed port 502 the default.
On my router software, I reserved the IP address that was assigned and that was it.
On the PC I added an IP master and pointed Modbus to the same IP address. The Solaredge PDF states that Modbus stays active for 2 minutes so I set polling at 1m30s. Now the tougher part, reading the registers.
It was a real challenge to get the registers read correctly. Again the Solaredge PDF showed what was Int16, Int32, etc. There were challenges when the PDF didn't match the choices in Modbus plug-in, challenges in whether it was a signed value or not, etc. Thanks to John245 for helping me understand some of this. I finally got three registers working that I knew I would need:
AC Power Value Register 84 Int16
Current Power Production multiplied by the scale number below to get a real current output
AC Power Scale Register 85 Int 16 - not sure why but there are four numbers for the scale
0 - the current power production is the number displayed
65533 - the current power production *.001 = true power production
65534 - the current power production *.01 = true power production
65535 - the current power production *.1 = true power production
Lifetime Power Register 94 Int32
Exactly what it says
I then created some Virtual devices to hold variables. Note that the variables are type "Control" otherwise I had a problem having Easytrigger do the math.
Current Power Production which holds the result of AC Power Value * AC Power Scale
Today's Power Production Beginning Number which is the Lifetime Power just before sunrise
Today's Power Production which is the Lifetime Power - Today's Production Beginning Number at sunset
Yesterday's Power Production Total which is Lifetime Power - Today's Production Beginning Number
It depends when I decide to do the math which is why there are two variables with the same result. All of this needs refining as I narrow down what I really need and want.
Now the challenge. I had to press the "Test" button on the Modbus tab of the gateway every morning as there was no way to wake the system. I could disable polling at sunset but at sunrise when I enabled polling nothing worked until I clicked the "Test" button. I thought about just leaving polling on 24/7 but that didn't work because the inverter goes into night mode and trying to communicate is futile. I contacted Solaredge and they tried to help but basically said 'Why are you using Modbus AND Zigbee?' You're not supposed to do that or even be able to do that. Meanwhile, the Zigbee gateway communicates with Solaredge Monitoring and the Modbus gateway communicates with my PC.
After weeks of trying various things I was about to throw in the towel when I read a post about Jon00Enable/Disable Utility. Having nothing to lose I installed the plugin. I changed my sunrise event from enable polling to enable Modbus plugin. I changed my sunset event from disable polling to disable Modbus plugin. Voila!
At this point I am reliably collecting power production data. For me, the most important part is that I have an event that notifies me via text if there is less than 10w power production from one hour after sunrise to one hour before sunset. Even with dark clouds in the winter I generally make over 100w power at any given moment. I'm considering tracking production but I would just be replicating what Solaredge already does for me.
I've seen a few other people talk about various solar projects, hopefully this makes it easier.
Recently, my Solaredge inverter wasn't producing the power I expected. It was a real challenge to prove that there was something wrong to Solaredge and my local installer. I persevered and gave specific examples of max production, ramp up rates, etc.
Solaredge agreed and replaced the inverter, at no charge of course. The effort was worth it since my PV production was down almost 25% and now it's back up to "normal". This all started when one day last July the inverter didn't make any power for almost two days. I realized that the monitoring Solaredge did only gathered info for them and allowed me to view it online. However their monitoring would not notify me of a problem; hence my project.
The day the inverter was replaced I had the installer plug an RJ45 cable into the port on the inverter and I ran it to my router. On the inverter I fumbled through the menu and found Modbus. I enabled the Modbus communication and confirmed port 502 the default.
On my router software, I reserved the IP address that was assigned and that was it.
On the PC I added an IP master and pointed Modbus to the same IP address. The Solaredge PDF states that Modbus stays active for 2 minutes so I set polling at 1m30s. Now the tougher part, reading the registers.
It was a real challenge to get the registers read correctly. Again the Solaredge PDF showed what was Int16, Int32, etc. There were challenges when the PDF didn't match the choices in Modbus plug-in, challenges in whether it was a signed value or not, etc. Thanks to John245 for helping me understand some of this. I finally got three registers working that I knew I would need:
AC Power Value Register 84 Int16
Current Power Production multiplied by the scale number below to get a real current output
AC Power Scale Register 85 Int 16 - not sure why but there are four numbers for the scale
0 - the current power production is the number displayed
65533 - the current power production *.001 = true power production
65534 - the current power production *.01 = true power production
65535 - the current power production *.1 = true power production
Lifetime Power Register 94 Int32
Exactly what it says
I then created some Virtual devices to hold variables. Note that the variables are type "Control" otherwise I had a problem having Easytrigger do the math.
Current Power Production which holds the result of AC Power Value * AC Power Scale
Today's Power Production Beginning Number which is the Lifetime Power just before sunrise
Today's Power Production which is the Lifetime Power - Today's Production Beginning Number at sunset
Yesterday's Power Production Total which is Lifetime Power - Today's Production Beginning Number
It depends when I decide to do the math which is why there are two variables with the same result. All of this needs refining as I narrow down what I really need and want.
Now the challenge. I had to press the "Test" button on the Modbus tab of the gateway every morning as there was no way to wake the system. I could disable polling at sunset but at sunrise when I enabled polling nothing worked until I clicked the "Test" button. I thought about just leaving polling on 24/7 but that didn't work because the inverter goes into night mode and trying to communicate is futile. I contacted Solaredge and they tried to help but basically said 'Why are you using Modbus AND Zigbee?' You're not supposed to do that or even be able to do that. Meanwhile, the Zigbee gateway communicates with Solaredge Monitoring and the Modbus gateway communicates with my PC.
After weeks of trying various things I was about to throw in the towel when I read a post about Jon00Enable/Disable Utility. Having nothing to lose I installed the plugin. I changed my sunrise event from enable polling to enable Modbus plugin. I changed my sunset event from disable polling to disable Modbus plugin. Voila!
At this point I am reliably collecting power production data. For me, the most important part is that I have an event that notifies me via text if there is less than 10w power production from one hour after sunrise to one hour before sunset. Even with dark clouds in the winter I generally make over 100w power at any given moment. I'm considering tracking production but I would just be replicating what Solaredge already does for me.
I've seen a few other people talk about various solar projects, hopefully this makes it easier.
Comment