Solaredge Modbus Configuration for Single Inverter and Battery

I get around the inverter reset by having a state trigger that watches for a change in the state of switch.solaredge_i1_advanced_power_control from "unavailable" to "on" . When that triggers it simply sets any storage settings back to what they were before the reset. So if I’m limiting the discharge rate:

alias: When inverter resets
platform: state
entity_id:
  - switch.solaredge_i1_advanced_power_control
from: unavailable
to: "on"
id: Inverter Reset

Then do:

      - conditions:
          - condition: trigger
            id:
              - Inverter Reset
          - condition: time
            after: "01:00:00"
            before: "05:45:00"
          - condition: numeric_state
            entity_id: number.solaredge_i1_storage_discharge_limit
            above: 100
          - condition: or
            conditions:
              - condition: template
                value_template: "{{is_state('input_boolean.plunge_pricing','on')}}"
              - condition: template
                value_template: "{{is_state('input_boolean.cheap_energy','on')}}"
              - condition: numeric_state
                entity_id: >-
                  sensor.octopus_energy_electricity_21e5275054_2400000260098_current_rate
                below: 0.05
        sequence:
          - service: number.set_value
            data:
              value: >-
                {{
                states('input_number.desired_battery_output_limit_for_overnight_ev_charging')
                | float(0) }}
            target:
              entity_id: number.solaredge_i1_storage_discharge_limit

I have a few conditions that are specific to our requirement, but you could change of omit them as necessary.

Thank you. But I thought that the moment the inverter comes available again, the discharge limit automatically gets reset to 5000 W. So how do I get the right value that was set BEFORE the reset? If the value is fixed, that’s no problem. But if e.g. one day the limit is set to 500 W, the next to 800 W and the one after that to 1000 W, the value was there before the reset should be also set after the reset. I hope you understand what I mean.

I think I just got an idea. It came to me after writing the previous answer.

I could create a second helper. But one that doesn’t get sync immediately after a change in the entity number.solaredge_i1_storage_discharge_limit, but maybe 10-15minutes later. Then I could make an automation that every time the inverter comes back, the value from the second helper gets set as the current discharge limit.

That way the sync second-helper → discharge limit will happen before the sync discharge-limit → second-helper does. Right?

Creating a number helper that stores the current value of storage discharge limit and updates every 10/15mins should work, but I guess there’s only one way to find out.

I had initially thought you might be able to create a snapshot scene of the current storage settings, triggered when the switch.solaredge_i1_advanced_power_control becomes unavailable, but then I realised that all the other solaredge settings would also be unavailable so that wouldn’t work.

Just out of interest, what are you using flexible discharge limits for?

I only have a 4 kWh battery. And at least I have the impression, that if I don’t use any storage limit at all and my wife starts cooking in the evening, the battery gets drained empty VERY quick. It seems that with high amount of discharge (e.g. > 2000 W) you get less out of the battery then with a lower discharge. So I limit the discharge to sometimes 500 W, sometimes 600 W, sometimes even 1000 W - and get the rest from the grid. This way the battery lasts longer in the evening/night.

Ah okay. So you want to be able to stretch out the battery for as long as possible.

You say you “have the impression” that the battery drains VERY quickly if you don’t limit it. That’s simply a factor of the total capacity and how much power you’re drawing from it.

A 4kWh battery will output 4kw for 1 hour, or 1kW for 4 hours, or 500W for 8 hours etc. So yes, it will drain quicker if you don’t limit it. BUT, unless you have a smart tariff that gives you cheaper electricity at some times of the day, it really makes no difference whether or not you keep some of the battery in reserve for overnight. In fact I would argue that from a carbon footprint and a cost perspective, it’s better to use the battery’s fully capacity during the day and allow the house to run off the grid overnight.

I’m likely going to be getting solar edge inveteer and batteries. There’s quite a few integrations discussed here and I’m not sure which one to look into and use as the main one for solar edge control not just getting data.

What I should ask from my installer to ensure I can use it with home assistant?
I am really keen to be able to control the sell to grid amount if possible and control my battery usage.

I am on a three phase system in getting a 17kw solar array.

Thank you very much.

Thank you @WillCodeForCats ,

any chance to get some details regarding the optimizers?

I’m looking for the info about potential failure or error

No chance since the modbus interface doesn’t provide optimizer data.

roger, anything about the error messages?

A 4kWh battery will output 4kw for 1 hour, or 1kW for 4 hours, or 500W for 8 hours etc. So yes, it will drain quicker if you don’t limit it. BUT, unless you have a smart tariff that gives you cheaper electricity at some times of the day, it really makes no difference whether or not you keep some of the battery in reserve for overnight. In fact I would argue that from a carbon footprint and a cost perspective, it’s better to use the battery’s fully capacity during the day and allow the house to run off the grid overnight.

Thank you - but I know all this. I meant that I have the impression, that I get MORE energy out of the battery, if I drain it a little slower than if I do that faster. At least that’s what the numbers say.

Can you actually control solaredge using modbus ?

Hey all,

first of all - Thank you @WillCodeForCats ! I moved to my new home about a year ago and your integration is crucial for my everyday life. It works flawlessly and helped me understand and control my energy consumption tremendously.

Over the last weeks SolarEdge provided an update to control the battery more via the app and as I switched to an energy tariff with dynamic pricing I looked more into my sytem (up until now “it just worked”). I noticed that there is a SE-SW (solaredge switch) connected to the system and after searching the house I found it connected to my heating system :laughing:

I did some testing and yes - the switch controls a “energy price” flag for the heating system telling it that currently electricity is cheap. Seems nobody every bothered to set it up. Via the SolarEdge App it was easy to tell the app to flip that switch when the battery is full. But it would be awesome if I could it flip it as well when my electricity tariff is cheap.

Do you know if there is a way to control this SE-SW via the modbus connection?

Best regards,
Jonas

Hi all. What should I ask my installer for to ensure I can control my energy usage via this intergration? Thanks

Yes - quite granular control once you work out the naming vagaries of the various charging and discharging modes & limits and the ways they interact.

Just make sure your modbus interface has an Ethernet connection (I’ve never tried WiFi but from what I’ve read it seems it can be hit-and-miss sometimes). You also need to configure the inverter to enable modbus access, but that can be done after the install if your installer doesn’t do it for you.

1 Like

No, there isn’t a modbus interface for the switch device that I’m aware of.

You can try the solaredge error docs:

Its odd - I received some peculiar information from my installer regarding the battery control.

When I inquired about having control over the battery, as i read onlline you need admin access. He said it was an ESV requirement, similar to BYD. Despite this, I’m unsure about how others are managing their batteries or if my request is misconstrued.

keen for any experiences here for controlling solaredge inverter and batteries

i.e if i want to

  1. automatically adjust the solar inverter’s export limit to match my home’s electricity demand (in Watts).

  2. also have an automation to set production to 0W if the general price goes negative

You need to be able to enable ModbusTCP on the solar inverter:

There are some limitations in some locations so you need to check your local rules:

  • automatically adjust the solar inverter’s export limit to match my home’s electricity demand (in Watts).

When the feed in price goes negative I switch to Export Control mode:

  • also have an automation to set production to 0W if the general price goes negative

When the general price goes negative I switch to Production Control mode:

1 Like