Solaredge Modbus Configuration for Single Inverter and Battery

Hi all, I have noticed a couple of anomalies which may be related to each other, otherwise working very well.
My battery was charging from the grid a couple of nights ago pulling around 4kW. the Tesla graphic showed correctly but the bubble one said my solar panels were also using 4kW which became 8kW from the grid. Images attached.

I also have no data in my graphs after 2 days or running. Any ideas what I need to check please? ‘Recorder’ is in the energy.yaml as per default. I also notice the ‘Energy distribution’ graphic shows both as zero. Thank you.



Update: I had not setup the default ‘Energy’ page in HA, the graphs are now working and the distribution so it’s just the anomaly to explore. Thanks.

Hi!
Again, I have a question… I tried to create my own sensors, using your code as example. Basically, it works, but the behavior is “strange”. What I did:

I added my own sensor ‘sensor.solar_savings_daily’ in template - sensors:

      - name: "Solar Accounting Total Daily"
        unique_id: solar_accounting_total_daily
        icon: mdi:currency-eur
        unit_of_measurement: "€"
        state: >
          {% set cost = (states('sensor.solar_imported_power_daily') | float(0)) * (states('sensor.solar_accounting_cost_rate') | float(0)) %}
          {% set compensation = (states('sensor.solar_exported_power_daily') | float(0)) * (states('sensor.solar_accounting_compensation_rate') | float(0)) %}
          {{ (cost - compensation) | round(2) }}

      - name: "Savings Daily"
        unique_id: solar_savings_daily
        icon: mdi:currency-eur
        unit_of_measurement: "€"
        state: >
          {{ -(((states('sensor.solar_panel_to_house_daily') | float(0))) * ((states('sensor.solar_accounting_cost_rate') | float(0))-states('sensor.solar_accounting_compensation_rate') | float(0))) | round(2) }}

      - name: "Solar Accounting Total Weekly"
        unique_id: solar_accounting_total_weekly
        icon: mdi:currency-eur
        unit_of_measurement: "€"
        state: >
          {% set cost = (states('sensor.solar_imported_power_weekly') | float(0)) * (states('sensor.solar_accounting_cost_rate') | float(0)) %}
          {% set compensation = (states('sensor.solar_exported_power_weekly') | float(0)) * (states('sensor.solar_accounting_compensation_rate') | float(0)) %}
          {{ (cost - compensation) | round(2) }}

When adding my sensor to the dashboard, it’s not selectable:

However, when I delete the prefix ‘solar’ it’s selectable. This behavior I have with all my sensors. Do you know, what I’m doing wrong here?

Thanks for your help!

The name is what determines the entity id, the unique id can be anything unique and enables editing some elements via the UI but has nothing to do with the entity id.

1 Like

Thank you very much! Sometimes it’s too obvious to see it…

Hi all of you experts here!

I am quite new to HA (just installed my first instance on an RPI4 and I love it), and I just got my solar panels up on the roof today - obviously a SolarEdge solution.
For now, I am waiting for my final inverter (SE8K which is expected to come in Q2/23) and my battery storage.
So, I have a spare inverter from my installer until the final solution is available.

I also got my Wallbox installed today (openWB Series 2), which is talking to the inverter via Modbus.

And here my problems start: I cannot get ANY data from the inverter and I cant access ANY config options. I do not have the “admin” panel available on my customer login and cannot generate an API key.

As the openWB is configured to use the modbus connection, I cannot access my Inverters setup at all (connection refused on ports 80, 502, 1502, no matter if I try when pushing to “P” mode before.) Wifi connection to the inverted can be established, but I cannot access any frontend to configure anything.
I have a wired LAN connection to the inverter, but also no means to access any frontend or telnet login from my desktop PC.

So, any solution to this? I do not have a installer login (to use SetApp) and I couldnt do it on this inverter, as I have to give it back to my installer as soon as I get my final solution…

Do I HAVE to change the Modbus config at all or would it work to shut down the openWB, install a MQTT multiplexer and then try to grab data from there in both openWB and HA? This is all very new and experimental to me…

Any help is highly appreciated.

(Please give me a hint if you feel my questions should be in a seperate thread. Thanks!)

Maybe I am to stupid. I have followed the instructions and I can see the Energy dashboard. But when I refresh the browser, the dashboard is empty. I have to open the RAW editor, close the RAW editor (without any changes) and how the dashboard is shown. What’s wrong with my setup…?

Okay, simple solution: The installers set up an IP address that was already in use - by my smartphone. So, everything fine when my smartphone was connected to the inverter, but everything broke when my phone came back to my home network…rescheduled the inverters IP, now everything runs fine with modbus-proxy.

1 Like

@scbiker2 @WillCodeForCats re: meter reporting 0 over modbus for the SE-RGMTR, any update on this issue? I have a new SE-10000H with the exact same SE-RGMTR-1D-240C-B meter and I’m having the same problem. The data in my solaredge portal looks good, I’ve verified the CTs are correctly installed, etc. But I can’t get consumption data into home assistant.

Ignore my other response, I was thinking about a different issue.

If you have a combo meter and are only seeing a production meter in the integration, there is no fix to get the other data. The inverter has to send them and it’s only choosing to send one set of values. The only fix would be to get a second meter so that each meter is dedicated to one metering function.

Ok, thanks for the explanation! I’ve ordered a Shelly 3EM to install in my breaker box. It makes me so sad I own a computer that has data I want but it will not give me (the solaredge inverter), but when I get the Shelly meter integrated in HA I should be able to set up the template sensors I need. I really appreciate your code and your help, @WillCodeForCats! Thanks!

Yeah it would have to be something SolarEdge would need to change to treat the two sets of data from a single meter as two separate meters to modbus, or display all the values and not zero out the other values that don’t match the reported meter type.

Hi Guys

I appreciate all the work done here. Quick one if someone has an idea.

I would like to extract the yearly value for battery to house from the energy dashboard. I know the data is there but can’t find it anywhere. The current sensors are only collecting and can’t find that yearly figure.
I have tried to add my own sensor in order to calculate solar to house + battery to house for green savings but it is only collecting from the time the sensor was added and not the historical data that is there.

Hi Remko,
first of all many thx for all your great work and sharing it with us.
In my istallation I do have one inverter ( i4) connected to a LG RESU 10 battery and to L3 of the smart meter (M1). My second inverter (i5) is just directly connected to the Smart Meter L1.
However, together with your help and the excellent Modbus Multi Integration I got everything working so far.
Only the “battery effectiveness” template is not showing any numbers. The error code looks like: UndefinedError: ‘solar_battery_effectiveness’ is undefined.
Also while just copying the code into the template enginge, the result stays the same.
Could you please check.
Thanks a lot in advance.

Hello, using the SE multi modbus and Remko energy configs I get an issue where charging the battery at night from the grid when it’s dark with no Solar the values seems to be completely wrong on the Grid and solar circles. I’ve tried the single modbus and configs from Remko and that doesn’t have the same issue.

My energy page has already been set up so that’s not the issue.

Why does it think the grid power is doubled and sending power to the solar panels?

Any ideas? Thank you

Currently, in my config I only create a utility meter for the daily total:

  solar_battery_out_daily:
    source: sensor.solar_battery_out_kwh
    name: Solar Battery Out Daily
    cycle: daily

You would need to add one for yearly like so:

  solar_battery_out_yearly:
    source: sensor.solar_battery_out_kwh
    name: Solar Battery Out Yearly
    cycle: yearly

And add it to the recorder include section:

      - sensor.solar_battery_out_yearly
1 Like

This is a known problem with my configuration. I haven’t (till now) worked out how to calculate it correctly when charging from the grid. My setup rarely charges from grid, so I do not see the issue myself. It is something still on my to do list, to see if it is possible to work out, but I cannot promise a quick resolution…

It could be helpfull if you could send me a list of the solar_* sensors with their values (maybe as excel sheet) at the moment you are getting the wrong values. That could be very helpful figuring it out.

1 Like

The reason it is set to undefined is probably that you are not using your battery. The sensor only gets a value when you are actually consuming energy from your battery. Up until that moment it stays in undefined.

Also note…this is something I “invented” myself because I had the feeling that I charge more as I consume from battery. This actually has proven to be true but it does make the calculations more complicated. You can also remove all the effectivness entries out of the formulas if you are not that interested in these readings. It is only used as a multiplication factor in certain conditions.

It’s strange because the single modbus tcp and your energy configs work perfectly fine, it’s just the multi that has the issue?
I will try to gather the sensors data.

Hello,

Perhaps it’s not the place to do it, but I have enabled the modbus/tcp but, I can not see the port open when I perform nmap from Linux box. I can only see 80 and 8080 (http-proxy). what am I doing wrong?

thanks in advanced,