Announcement

Collapse
No announcement yet.

My Modbus vs Solaredge Experience

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    My Modbus vs Solaredge Experience

    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.

    #2
    Do you have a battery system as well? I'd be very interested to know if it's possible to tell when the inverter is charging a battery, or supplying power to the grid.

    Comment


      #3
      Originally posted by Fellhahn View Post
      Do you have a battery system as well? I'd be very interested to know if it's possible to tell when the inverter is charging a battery, or supplying power to the grid.
      I don't, yet. A powerwall or equivalent is my next project. The only way I know I'm making more than I consume is to look at my electric meter and jot down the kW number. I'm not aware of any "smart" meters in my neck of the woods. They did install a digital meter because of the solar installation. That way it moves forward or backward depending on production and consumption. But there's no way to access it other than looking at the numbers.

      Comment


        #4
        Originally posted by racerfern View Post

        I don't, yet. A powerwall or equivalent is my next project. The only way I know I'm making more than I consume is to look at my electric meter and jot down the kW number. I'm not aware of any "smart" meters in my neck of the woods. They did install a digital meter because of the solar installation. That way it moves forward or backward depending on production and consumption. But there's no way to access it other than looking at the numbers.

        You can get your consumption without manually reading your meter. Just purchase an Aeon Labs Aeotec ZW095 ZW095-A Home Energy Meter. Put the current loops on the main lugs of your homes main panel . The current loops are split, so the just snap around the power lines connected to the main lugs. To do this you do have to crack your panel open, so If your not comfortable around electricity, you'd need to hire an electrician. Then in HS it's just a matter of subtracting the Solar Edge production from the Aeotec reading.

        I also looked at a number of battery solutions with my system (43 - 350W Jinko Panels in 3 strings connected two Solar Edge Inverters, an SE10000A and an SE5000H). In the end I found it would be much, much cheaper right now to install a whole house generator if I wanted to add reliability. Hopefully, the cost for power storage will drop eventually, It was very difficult to get approval for my system from my power company (6 month process) and I don't think the relationship will get any easier in the future. They seem to always be working with the NM Regulatory Commission to penalize individual producers connected to their grid. Eventually they will succeed. At that point I'd like to be able to go off grid without having to change my life style (reduce my power usage to reduce quantity of batteries needed.

        I would note for those of you thinking about installing a PV system on your homes to consider how long you intend to own the house v.s payback. I was surprised to find in Southern New Mexico that a PV system has no bearing on the asking price of a house. Although it could help a house sell faster if the potential buyers consider the savings in the homes electric bill. My systems been operational for 12 months. I paid the power company $23.97 for the year. The year previous I paid the power company $3,353.07. That's a big savings on the annual living expenses.

        Comment


          #5
          Originally posted by racerfern View Post
          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.
          racerfern, thanks for taking the time to document your trials and tribulations. It's already helped me. When I was trying to get HS to talk to the SE inverters with the Modbus plugin I was doing it in the evening after work. I didn't realize SE shut down communications when it was in sleep mode. That explains a lot.

          Can you expand on "On the PC I added an IP master and pointed Modbus to the same IP address."? Did you set the Plugin to the IP of inverter or did you use an TCP to RS-485 Modbus Converter/Gateway?

          I have installer access to the Solar Edge Monitoring Portal. It shows my system errors, but off-hand I don't see a way to enable text or email notifications. I'll did a bit more when I get time. I do know that I can export production data. I assume this can be done from the user acess too, but I'll have to test it to see. An example is attached (maybe, not sure I succeeded it attaching a file)

          Chart Export 11_30_2018 17_46.zip
          Attached Files

          Comment


            #6
            kesterf I would love a Kohler or Generac natural gas of about 9-11kW. But I just don't have the real estate. There's one spot where I could put it but it would be an eyesore. Hence my thinking to get some kind of battery solution. I contacted Sunrun but they only install them on their panels. I'm sure the company that installed my system has a battery solution, we'll see what they offer.

            When the replacement inverter was installed, the desktop app changed substantially. I could always export various data, but now I see lots of icons. Before, I had DASHBOARD and LAYOUT, now in addition I have CHARTS, REPORTS, ALERTS and ADMIN.

            I set the plug-in to the IP of the inverter. There is nothing about TCP to RS-485 at all.

            The text notification or email comes from Homeseer and the easytrigger plug-in. If power output is less than 10 watts and it's more than one hour after sunrise and more than one hour before sunset then send an email. Notice that it goes as a text message to my cell phone, or I can send an actual email.

            As far as the selling price, I think it's what the realtor understands and makes of it. Presentation is key. I pay my electric company about $11/month for the privilege of getting billed.
            Click image for larger version  Name:	Screen Shot 11-30-18 at 05.17 PM.PNG Views:	1 Size:	60.8 KB ID:	1263356

            Comment


              #7
              Thanks. I'll give at try again. Hopefully, your help will make it go smoother this time. My desktop has the same sections. You can export from the dashboard, but the button isn't obvious. I attached a screen shot of my desktop with a two red arrows added. The export button is on right. Pick Day, Week, Month, or Year on the left and then click the export button. You can also export from the "Reports" page, but I haven't messed with the reports too much yet.

              Click image for larger version

Name:	SE Dashboard .JPG
Views:	1151
Size:	52.3 KB
ID:	1263373

              Comment


                #8
                Yup, that's what I have.

                Comment


                  #9
                  Originally posted by racerfern View Post
                  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.
                  racerfern, I made significant progress today. I had two issues I found. First, I hadn't enabled the Modbus TCP port under the LAN settings in the inverter. and Second, I was using the full register address rather than dropping the leading "400" in the plugin. So I'm now communicating with the inverters and populating devices with values. Now I have to build the virtual devices. Thanks again for your help!!!

                  Comment


                    #10
                    kesterf You're welcome, but more importantly don't jump through hoops if you don't have to. I'm no expert by any stretch of the imagination, but if I can make the learning process easier, just ask. Giving credit where credit is due, it was John245 that showed me how to work with registers.

                    Comment


                      #11
                      Thanks for sharing your solution, it will be really useful as I want to get real-time data from the inverter into HS3, but I’m not there yet!

                      Our solar system complete with SolarEdge inverter was installed in September. It has the WiFi module so no RJ45 cable installed. My issue is that I can’t see Modbus register data above register 40190. I can however see data held in lower registers (using an app on my phone)

                      I've tried getting support from SolarEdge and our installer but both are ignoring me and I can’t get a definitive answer by Googling. My next step is to install an RJ45 cable myself but I’d prefer to do that from a position of knowledge rather than guess work!

                      Any ideas?

                      Cheers
                      Jez

                      Comment


                        #12
                        My issue is that I can’t see Modbus register data above register 40190.
                        I haven't tried any others than the few I needed for my purposes. However, I see addresses beginning at 40001 and ending at 40120, but not inclusive. For models with meters it starts at 40121 and goes to 40643. You'll know if yours has a meter or not. What pdf are you reading? I'm referring to the Sunspec Implementation Technical Note found on the Solaredge site.

                        Installing the RJ45 was very easy but you do need to snake it through a gland then install the RJ45 connector (at least that's how I had to do it)

                        Comment


                          #13
                          Hi, i got a few others working. Im connected over wifi and using the Float32 Register's as these don't need a scale.
                          I also had to use Jon00's plugin to disable and enable the plugin after sun rise to stop the errors from no connection.

                          thanks
                          Attached Files

                          Comment


                            #14
                            AFA the Int16s that use a scale, it's easy to use. I have four events for the four scale numbers and do the math on each one. I see also that my register 94 is Lifetime Power so clearly we have different models. I wonder the purpose of reading ampers, watts, volts, Hz, etc.

                            Comment

                            Working...
                            X