UPDATED! SolarEdge Modbus full setup guide with Energy Dashboard integration for Installations with Battery connected

Hi thanks for your reply! Now I understand how it works, I thought the graph represented instant consumption / production …

Have you created automatisms to charge the battery during the night, just in case the forecast of solar production is low due to bad weather?

I do not have a battery myself but I imagine the forecast data could be used with a threshold value to tell your battery to charge from grid.

I think you‘re right! Having the same problem at your described situation!

Pls look at configuration of your inverter
Typical config should be one inverter and one battery.

did you try this config ?

I have a SE5000H with RESU 10H and it worked for me declaring 1 inverter and one battery

Thanks @Remko , this looks really nice. Do you know of a Modbus configuration like your energy.yaml without battery included?

I converted it for my own setup without a battery. It was pretty straight forward.

Note i have altered some of the sensor names and added a bunch of extra stuff to mine to deal with AGLs complex demand tarrifs (still a WIP but i’ve nearly got it). You’ll see this mostly in the accounting totals.

template:
  - sensor:
      - name: "Solar Self Consumption Ratio"
        unique_id: solar_self_consumption_ratio
        icon: mdi:percent-outline
        state: >
          {% if ((states('sensor.solar_panel_production_daily_total') | float(0)) <= 0) %}
            0
          {% else %}
            {{((((states('sensor.solar_house_consumption_daily_total') | float(0)) - (states('sensor.solar_imported_power_daily_total') | float(0))) / (states('sensor.solar_panel_production_daily_total') | float(0)) ) * 100 ) | round (0)}}
          {% endif %}
      - name: "Solar Self Sufficiency Ratio"
        unique_id: solar_self_sufficiency_ratio
        icon: mdi:percent-outline
        state: >
          {% if ((states('sensor.solar_house_consumption_daily_total') | float(0)) <= 0) %}
            0
          {% else %}
            {{((1 - ((states('sensor.solar_imported_power_daily_total') | float(0)) / (states('sensor.solar_house_consumption_daily_total') | float(0)))) * 100 ) | round (0)}}   
          {% endif %}

      - name: "Solar Inverter Effectiveness"
        unique_id: solar_inverter_effectiveness
        icon: mdi:percent-outline
        unit_of_measurement: "%"
        state: >
          {% if ((states('sensor.solaredge_dc_power') | float(0)) < 100) or ((states('sensor.solaredge_ac_power') | float(0)) < 100)%}
            {{(states('sensor.solar_inverter_effectiveness'))}}
          {% else %}
            {% if is_state('sensor.solar_inverter_effectiveness', 'unknown') %}
              1
            {% elif ((states('sensor.solaredge_ac_power') | float(0)) <= 0) %}
              {{(states('sensor.solar_inverter_effectiveness'))}}
            {% elif ((states('sensor.solaredge_dc_power') | float(0)) <= 0) %}
              {{(states('sensor.solar_inverter_effectiveness'))}}
            {% else %}
              {{(states('sensor.solaredge_ac_power') | float(0)) / (states('sensor.solaredge_dc_power') | float(0))}}
            {% endif %}
          {% endif %}

      - name: "Solar Panel Production W"
        unique_id: solar_panel_production_w
        unit_of_measurement: "W"
        icon: mdi:solar-power
        state: >
          {% if ((states('sensor.solaredge_dc_power') | float(0)) <= 0) %}
            0
          {% elif (is_state('sensor.solaredge_dc_power', 'unknown')) %}
            0
          {% else %}
            {{ (states('sensor.solaredge_dc_power') | float(0)) }}
          {% endif %}

      - name: "Solar Panel To House W"
        unique_id: solar_panel_to_house_w
        unit_of_measurement: "W"
        icon: mdi:solar-power
        state: >
          {% if ((states('sensor.solaredge_m1_ac_power') | float(0)) > 0) %}
            {{(states('sensor.solaredge_ac_power') | float(0) - states('sensor.solaredge_m1_ac_power') | float(0))}}
          {% elif ((states('sensor.solaredge_m1_ac_power') | float(0)) < 0) %}
            {{states('sensor.solaredge_ac_power') | float(0)}}
          {% elif ((states('sensor.solaredge_dc_power') | float(0)) < 0)%}
            0
          {% else %}
            {{((states('sensor.solaredge_dc_power') | float(0))) * (states('sensor.solar_inverter_effectiveness') | float(0))}} 
          {% endif %}

      - name: "Solar Grid To House W"
        unique_id: solar_grid_to_house_w
        unit_of_measurement: "W"
        icon: mdi:transmission-tower-export
        state: >
          {% if ((states('sensor.solaredge_m1_ac_power') | float(0)) <= 0) %}
            {{((states('sensor.solaredge_m1_ac_power') | float(0)) *-1)}}
          {% else %}
            0
          {% endif %}

      - name: "Solar Panel To Grid W"
        unique_id: solar_panel_to_grid_w
        unit_of_measurement: "W"
        icon: mdi:solar-power
        state: >
          {% if ((states('sensor.solaredge_m1_ac_power') | float(0)) > 0) %}
            {{(states('sensor.solaredge_m1_ac_power') | float(0))}}
          {% else %}
            0
          {% endif %}

      - name: "Solar House Consumption W"
        unique_id: solar_house_consumption_w
        unit_of_measurement: "W"
        icon: mdi:home
        state: >
          {{(states('sensor.solar_panel_to_house_w') | float(0)) + (states('sensor.solar_grid_to_house_w') | float(0))}}

      - name: "Solar Imported Power W"
        unique_id: solar_imported_power_w
        unit_of_measurement: "W"
        icon: mdi:transmission-tower-export
        state: >
          {% if ((states('sensor.solaredge_m1_ac_power') | float(0)) <= 0) %}
            {{((states('sensor.solaredge_m1_ac_power') | float(0)) *-1)}}
          {% else %}
            0
          {% endif %}

      - name: "Solar Exported Power W"
        unique_id: solar_exported_power_w
        unit_of_measurement: "W"
        icon: mdi:transmission-tower-import
        state: >
          {% if ((states('sensor.solaredge_m1_ac_power') | float(0)) > 0) %}
            {{(states('sensor.solaredge_m1_ac_power') | float(0))}}
          {% else %}
            0
          {% endif %}

      - name: "Solar Lifetime Production"
        unique_id: solar_lifetime_production
        unit_of_measurement: "W"
        icon: mdi:solar-power
        state: >
          {{(((states('sensor.solaredge_ac_energy_kwh') | float(0)) / 1000) | round (2))}}

      ##############################################################
      # CUSTOM STUFF ############
      - name: "Current Electricity Rate"
        unique_id: current_electricity_rate
        unit_of_measurement: "AUD/kWh"
        icon: mdi:currency-usd
        state: >
          {{ states('sensor.electricity_import_rate_peak') | float(0) }}

        # {% set t = now() %}
        # {%- if t.hour >=14 and t.hour <20 and is_state('binary_sensor.workday_sensor', 'on') %}
        #   {%- if t.month in [11,12,1,2,3] -%}
        #     0.23452
        #   {%- elif t.month in [4,5,9,10] -%}
        #     0.11726
        #   {%- endif -%}
        # {%- elif t.hour >=17 and t.hour <21 and is_state('binary_sensor.workday_sensor', 'on') and t.month in [6,7,8] -%}
        #   0.23452
        # {%- else -%}
        #   0.13156
        # {%- endif -%}

      # Custom ones from https://community.home-assistant.io/t/updated-solaredge-modbus-full-setup-guide-with-energy-dashboard-integration-for-installations-with-battery-connected/340956/175?u=sgtbatten
      - name: "Electricity Import Rate High Demand"
        unique_id: electricity_import_rate_high_demand
        icon: mdi:cash-minus
        unit_of_measurement: "$/kWh"
        state: >
          0.23452

      - name: "Electricity Import Rate Low Demand"
        unique_id: electricity_import_rate_low_demand
        icon: mdi:cash-minus
        unit_of_measurement: "$/kWh"
        state: >
          0.11726

      - name: "Electricity Import Rate Peak"
        unique_id: electricity_import_rate_peak
        icon: mdi:cash-minus
        unit_of_measurement: "$/kWh"
        state: >
          0.13156

      - name: "Electricity Import Rate Shoulder"
        unique_id: electricity_import_rate_shoulder
        icon: mdi:cash-minus
        unit_of_measurement: "$/kWh"
        state: >
          0.13156

      - name: "Electricity Import Rate Off Peak"
        unique_id: electricity_import_rate_off_peak
        icon: mdi:cash-minus
        unit_of_measurement: "$/kWh"
        state: >
          0.13156

      - name: "Electricity Export Rate"
        unique_id: electricity_export_rate
        icon: mdi:cash-plus
        unit_of_measurement: "$/kWh"
        state: >
          0.05000

      - name: "Electricity Supply Charge"
        unique_id: electricity_supply_charge
        icon: mdi:cash-plus
        unit_of_measurement: "$/day"
        state: >
          1.03235

      - name: "Solar Accounting Total Daily"
        unique_id: solar_accounting_total_daily
        icon: mdi:currency-usd
        unit_of_measurement: "$"
        state: >
          {% set supply = states('sensor.electricity_supply_charge') | float(0) %}
          {% set offpeak = (states('sensor.solar_imported_power_daily_off_peak') | float(0)) * (states('sensor.electricity_import_rate_off_peak') | float(0)) %}
          {% set shoulder = (states('sensor.solar_imported_power_daily_shoulder') | float(0)) * (states('sensor.electricity_import_rate_shoulder') | float(0)) %}
          {% set peak = (states('sensor.solar_imported_power_daily_peak') | float(0)) * (states('sensor.electricity_import_rate_peak') | float(0)) %}
          {% set feedintariff = (states('sensor.solar_exported_power_daily') | float(0)) * (states('sensor.electricity_export_rate') | float(0)) %}
          {{ (supply + offpeak + shoulder + peak - feedintariff) | round(2) }}

      # - name: "Solar Accounting Total Weekly"
      #   unique_id: solar_accounting_total_weekly
      #   icon: mdi:currency-usd
      #   unit_of_measurement: "$"
      #   state: >
      #     {% set cost = (states('sensor.solar_imported_power_weekly') | float(0)) * ((states('sensor.solar_import_rate') | float(0))) + ((states('sensor.supply_charge') | float(0))) %}
      #     {% set compensation = (states('sensor.solar_exported_power_weekly') | float(0)) * ((states('sensor.solar_export_rate') | float(0))) %}
      #     {{ (cost - compensation) | round(2) }}

      - name: "Solar Accounting Total Monthly"
        unique_id: solar_accounting_total_monthly
        icon: mdi:currency-usd
        unit_of_measurement: "$"
        state: >
          {% set supply = (states('sensor.electricity_supply_charge') | float(0)) * ((states('sensor.days_past_in_month') | float(0)) + 1 ) %}
          {% set offpeak = (states('sensor.solar_imported_power_monthly_off_peak') | float(0)) * (states('sensor.electricity_import_rate_off_peak') | float(0)) %}
          {% set shoulder = (states('sensor.solar_imported_power_monthly_shoulder') | float(0)) * (states('sensor.electricity_import_rate_shoulder') | float(0)) %}
          {% set peak = (states('sensor.solar_imported_power_monthly_peak') | float(0)) * (states('sensor.electricity_import_rate_peak') | float(0)) %}
          {% set feedintariff = (states('sensor.solar_exported_power_monthly') | float(0)) * (states('sensor.electricity_export_rate') | float(0)) %}
          {{ (supply + offpeak + shoulder + peak - feedintariff) | round(2) }}

      - name: "Solar Accounting Total Yearly"
        unique_id: solar_accounting_total_yearly
        icon: mdi:currency-usd
        unit_of_measurement: "$"
        state: >
          {% set supply = (states('sensor.electricity_supply_charge') | float(0)) * ((states('sensor.days_past_in_year') | float(0)) + 1 ) %}
          {% set offpeak = (states('sensor.solar_imported_power_yearly_off_peak') | float(0)) * (states('sensor.electricity_import_rate_off_peak') | float(0)) %}
          {% set shoulder = (states('sensor.solar_imported_power_yearly_shoulder') | float(0)) * (states('sensor.electricity_import_rate_shoulder') | float(0)) %}
          {% set peak = (states('sensor.solar_imported_power_yearly_peak') | float(0)) * (states('sensor.electricity_import_rate_peak') | float(0)) %}
          {% set feedintariff = (states('sensor.solar_exported_power_yearly') | float(0)) * (states('sensor.electricity_export_rate') | float(0)) %}
          {{ (supply + offpeak + shoulder + peak - feedintariff) | round(2) }}

      - name: "Solar Inverter Effectiveness Int"
        unique_id: solar_inverter_effectiveness_int
        icon: mdi:percent-outline
        unit_of_measurement: "%"
        state: >
          {{ ((states('sensor.solar_inverter_effectiveness') | float(0)) * 100) | round(2) }}

      - name: "Solar Inverter Effectiveness Average Int"
        unique_id: solar_inverter_effectiveness_average_int
        icon: mdi:percent-outline
        unit_of_measurement: "%"
        state: >
          {{ ((states('sensor.solar_inverter_effectiveness_average') | float(0)) * 100) | round(2) }}
      ################## END CUSTOM #########################################
sensor:
  - platform: integration
    source: sensor.solar_panel_production_w
    method: left
    unit_prefix: k
    name: solar_panel_production_kwh
  - platform: integration
    source: sensor.solar_house_consumption_w
    method: left
    unit_prefix: k
    name: solar_house_consumption_kwh
  - platform: integration
    source: sensor.solar_imported_power_w
    method: left
    unit_prefix: k
    name: solar_imported_power_kwh
  - platform: integration
    source: sensor.solar_exported_power_w
    method: left
    unit_prefix: k
    name: solar_exported_power_kwh
  - platform: integration
    source: sensor.solar_panel_to_house_w
    method: left
    unit_prefix: k
    name: solar_panel_to_house_kwh

  - platform: statistics
    name: "Solar Inverter Effectiveness Average"
    unique_id: solar_inverter_effectiveness_average
    state_characteristic: mean
    sampling_size: 1200
    max_age:
      hours: 24
    entity_id: sensor.solar_inverter_effectiveness

utility_meter:
  solar_panel_production_daily:
    source: sensor.solar_panel_production_kwh
    name: Solar Panel Production Daily
    cycle: daily
    tariffs:
      - peak
      - shoulder
      - off-peak
  solar_panel_production_daily_total:
    source: sensor.solar_panel_production_kwh
    name: Solar Panel Production Daily Total
    cycle: daily
  solar_house_consumption_daily:
    source: sensor.solar_house_consumption_kwh
    name: Solar House Consumption Daily
    cycle: daily
    tariffs:
      - peak
      - shoulder
      - off-peak
  solar_house_consumption_daily_total:
    source: sensor.solar_house_consumption_kwh
    name: Solar House Consumption Daily Total
    cycle: daily
  solar_imported_power_daily:
    source: sensor.solar_imported_power_kwh
    name: Solar Imported Power Daily
    cycle: daily
    tariffs:
      - peak
      - shoulder
      - off-peak
  solar_imported_power_daily_total:
    source: sensor.solar_imported_power_kwh
    name: Solar Imported Power Daily Total
    cycle: daily
  solar_exported_power_daily:
    source: sensor.solar_exported_power_kwh
    name: Solar Exported Power Daily
    cycle: daily
  solar_panel_to_house_daily:
    source: sensor.solar_panel_to_house_kwh
    name: Solar Panel To House Daily
    cycle: daily

  # solar_panel_to_house_weekly:
  #   source: sensor.solar_panel_to_house_kwh
  #   name: Solar Panel To House Weekly
  #   cycle: weekly
  # solar_imported_power_weekly:
  #   source: sensor.solar_imported_power_kwh
  #   name: Solar Imported Power Weekly
  #   cycle: weekly
  #   tariffs:
  #     - peak
  #     - shoulder
  #     - off-peak
  # solar_house_consumption_weekly:
  #   source: sensor.solar_house_consumption_kwh
  #   name: Solar House Consumption Weekly
  #   cycle: weekly
  #   tariffs:
  #     - peak
  #     - shoulder
  #     - off-peak
  # solar_panel_production_weekly:
  #   source: sensor.solar_panel_production_kwh
  #   name: Solar Panel Production Weekly
  #   cycle: weekly
  #   tariffs:
  #     - peak
  #     - shoulder
  #     - off-peak
  # solar_exported_power_weekly:
  #   source: sensor.solar_exported_power_kwh
  #   name: Solar Exported Power Weekly
  #   cycle: weekly

  solar_panel_to_house_monthly:
    source: sensor.solar_panel_to_house_kwh
    name: Solar Panel To House Monthly
    cycle: monthly
  solar_imported_power_monthly:
    source: sensor.solar_imported_power_kwh
    name: Solar Imported Power Monthly
    cycle: monthly
    tariffs:
      - peak
      - shoulder
      - off-peak
  solar_house_consumption_monthly:
    source: sensor.solar_house_consumption_kwh
    name: Solar House Consumption Monthly
    cycle: monthly
    tariffs:
      - peak
      - shoulder
      - off-peak
  solar_panel_production_monthly:
    source: sensor.solar_panel_production_kwh
    name: Solar Panel Production Monthly
    cycle: monthly
    tariffs:
      - peak
      - shoulder
      - off-peak
  solar_exported_power_monthly:
    source: sensor.solar_exported_power_kwh
    name: Solar Exported Power Monthly
    cycle: monthly

  solar_panel_to_house_yearly:
    source: sensor.solar_panel_to_house_kwh
    name: Solar Panel To House Yearly
    cycle: yearly
  solar_imported_power_yearly:
    source: sensor.solar_imported_power_kwh
    name: Solar Imported Power Yearly
    cycle: yearly
    tariffs:
      - peak
      - shoulder
      - off-peak
  solar_house_consumption_yearly:
    source: sensor.solar_house_consumption_kwh
    name: Solar House Consumption Yearly
    cycle: yearly
    tariffs:
      - peak
      - shoulder
      - off-peak
  solar_panel_production_yearly:
    source: sensor.solar_panel_production_kwh
    name: Solar Panel Production Yearly
    cycle: yearly
    tariffs:
      - peak
      - shoulder
      - off-peak
  solar_exported_power_yearly:
    source: sensor.solar_exported_power_kwh
    name: Solar Exported Power Yearly
    cycle: yearly

  # https://crontab.guru/#0,30_14-20_*_4,5,9,10_1-5
  electricity_imported_demand:
    source: sensor.solar_imported_power_kwh
    name: Electricity Imported Demand
    cron: 0,30 * * * *
    tariffs:
      - high-demand
      - low-demand
      - no-demand

  # electricity_imported_high_demand_winter:
  #   source: sensor.solar_imported_power_kwh
  #   name: Electricity Imported Winter High Demand
  #   cron: 0,30 17-21 * 6-8 1-5
  #   tariffs:
  #     - demand
  #     - non-demand

  #
  # electricity_imported_low_demand:
  #   source: sensor.solar_imported_power_kwh
  #   name: Electricity Imported Low Demand
  #   cron: 0,30 14-20 * 4,5,9,10 1-5
  #   tariffs:
  #     - demand
  #     - non-demand

input_number:
  electricity_demand_max:
    name: Electricity Demand Max Value
    # initial: 0
    min: 0
    max: 20
    # mode: box
    step: 0.001

The above is a bit outdated but for anyone who was interested in handling demand tariffs, here is
a link to my finished Demand Tariff Guide which covers the next steps once you setup these sensors.

2 Likes

For “Solar Panel to House W”, I’m trying to convert that to the entities for my system. My meters are set up differently so I have to tweak things. I’m having a bad time trying to figure out your “if’s” so that I can align them to my setup. Would you be able to elaborate a bit on those conditions?

Something like “If Battery Charging and Panels Producing” or whatever the states are supposed to represent?

I would really appreciate it. Thanks!

edit: I think I figured it out, just had to walk away for a bit. I compared the entities you used in other places to see how I converted them for my setup. I think the numbers look better now… WIP for sure.

I was just going to look at it to try to explain it based on one example. That exactly has been the puzzle I worked on for quite a while, trying to catch all the different conditions. Used Excel tables and all for that. So I am happy you figured it out and have fun with the rest of the puzzle…:wink:

Hey @Remko
could you please look at the following Posts?

and

i’think that there is a small Bug in the Calculation in rare Situations. Perhaps you could fix it?

br
s_ash

Hi @s_ash ,

sorry for the late replies. Been pretty busy with work lately and just haven’t gotten round to actively answering here. So my try…I do see the “issues” people are reporting and may have 2 different explanations:

  1. Some people use an EV charger, which I do not have and do not know how I could integrate that, without having some setup myself. So, if that is the case I am afraid I cannot really help figuring that out.

  2. The other effect I keep seeing is the result of the effectiveness of both battery, as well as the inverter. In my previous version of this package I did not take that into account. In this setup I do and the effect is quite dramatic to be honest. The inverter itself is pretty good, the effectiveness is always around 98%. That means, if the panels would produce 100W and I would use all for my house consumption, 98 W would actually be used by my house.
    The other effectiveness value, the battery, is quite different. It really depends on the charge state of the battery and the load I am asking from it, how effective it is. The values range between 95% (very good) and about 40% (not so good). So this means…if the battery delivers 100W to the house, my house actually only gets 40W of real usage.

Here it is clearly visible in the graphs over the same time period.
image
image

The effect is actually more dramatic if you take the actual values and not my average calculation:
image

These effects are not taking into account when using the Solaredge Monitoring platform. I think it would scare most people how much power they actually loose.

For example, below a screenshot of my total values so far this year:
image

and the corresponding values from SolarEdge:

So what I see here:

  • Total production is roughly equal, so that is correct
  • Import and export are roughly equal
  • My House consumption is off by about 300 kWh.
  • Battery output is off by about 200 kWh

My conclusion: The battery output in my own calculation takes the effectiveness into account and you can see here that in average, my battery has an effectivity of (590/841) 70%

This also results in the difference in house consumption; Solaredge just takes the direct output value from the battery and ignores the losses there.

So summarised, if I look at my values over a couple of months now, it seems pretty accurate and the differences I see are explainable. Again, if people see bigger differences it may be due to EV Charger, not having a battery, or just simply a different setup which is hard for me to debug.

An option would be to basically edit the yaml in your configuration and take the effectiveness calculations out. So basically replace this section:

    - name: "Solar Inverter Effectiveness"
      unique_id: solar_inverter_effectiveness
      icon: mdi:percent-outline
      unit_of_measurement: '%'
      state: >
        {% if ((states('sensor.solaredge_dc_power') | float(0)) < 100) or ((states('sensor.solaredge_ac_power') | float(0)) < 100)%}
          {{(states('sensor.solar_inverter_effectiveness'))}}
        {% else %}
          {% if is_state('sensor.solar_inverter_effectiveness', 'unknown') %}
            1
          {% elif ((states('sensor.solaredge_ac_power') | float(0)) <= 0) %}
            {{(states('sensor.solar_inverter_effectiveness'))}}
          {% elif ((states('sensor.solaredge_dc_power') | float(0)) <= 0) %}
            {{(states('sensor.solar_inverter_effectiveness'))}}
          {% else %}
            {{(states('sensor.solaredge_ac_power') | float(0)) / (states('sensor.solaredge_dc_power') | float(0))}}
          {% endif %}
        {% endif %}
        
    - name: "Solar Battery Effectiveness"
      unique_id: solar_battery_effectiveness
      icon: mdi:percent-outline
      unit_of_measurement: '%'
      state: >       
        {% if (((states('sensor.solaredge_dc_power') | float(0)) + (states('sensor.solaredge_battery1_power') | float(0))) <= 0 ) %}
          {% if ((states('sensor.solaredge_battery1_power')| float(0)) >= 0) %}
            {{(states('sensor.solar_battery_effectiveness'))}}
          {% elif ((states('sensor.solaredge_dc_power') | float(0)) <= 0) %}
            {{(states('sensor.solar_battery_effectiveness'))}}  
          {% else %}
            {{1 - ((((states('sensor.solaredge_battery1_power') | float(0)) * -1) - (states('sensor.solaredge_dc_power') | float(0))) /  ((states('sensor.solaredge_battery1_power') | float(0)) * -1))}}
          {% endif %} 
        {% elif is_state('sensor.solar_battery_effectiveness', 'unknown') %}
          1
        {% elif is_state('sensor.solar_battery_effectiveness', 'unavailable') %}
          1
        {% elif is_state('sensor.solar_battery_effectiveness', 0) %}
          1
        {% else %}
          {{(states('sensor.solar_battery_effectiveness'))}}
        {% endif %}

with this:

    - name: "Solar Inverter Effectiveness"
      unique_id: solar_inverter_effectiveness
      icon: mdi:percent-outline
      unit_of_measurement: '%'
      state: '1'
        
    - name: "Solar Battery Effectiveness"
      unique_id: solar_battery_effectiveness
      icon: mdi:percent-outline
      unit_of_measurement: '%'
      state: '1'

I hope this answers some of the questions and helps others forward.

1 Like

Simply Magnificent! - Thanks so much for spending the time to get this working :slight_smile:
Much satisfaction now that everything is logging properly!

1 Like

Charging and discharging house batteries always comes with a high amount of lost energy.
The efficiency of a battery depends on the setup… but usually, your inverter converts DC into AC (with losses) - then, the battery inverter will again convert the AC into DC (with losses) and if your house consumes energy from the battery, it needs to be converted again from DC into AC (again with losses).

all of that needs to be taken to account…

Yes correct, I just find it interesting to see that this setup allows me to make these losses visible. Especially the relation between load on the battery and it’s charge state. really interesting to see how the battery operates in those areas and to see how much is actually lost (which is quite a bit I think).

Hey Remko,

thank you for your great support and your Answer!

I’ve thought a little Time about your answer, and i think most of your explaination is absolutely correct! But some (edge) Cases are in my opinion not 100% correct.

the Examples from the following Posts show exactly the same behavior.

and

i don’t think that your explanation is correct, because in my case the House consumption at the pic is at 222w - but my house always uses more than 400w (my little Server, POE Switches and mining rig alone are at about 300w - always)

today i hade again the same problem - the pv gives me some watts, the battery gives me some watts and the net also gives me some watts. Every time - In this case - the values are not correct.

I hope you understand what i mean - perhaps we could talk together also in German (PN?) - perhaps it helps to understand each other?

1 Like

Hi, I have problems with battery readout. It doesn’t read out battery? Sometime it does and than it stops.

Many thanks for your work!
I installed the suggested integration, configured configuration.yaml and energy.yaml as described.
I’d like use Energy Dashboard.
Are the data insert correct?


(I have doubt about GRID CONSUMPTION and RETURN TO GRID)
Thanks

Those should be ok, I personally have sensor.solaredge_m1_exported_kwh for export and sensor.solaredge_m1_imported_kwh for import, but that should not make a difference.

just now I see that all values are 0…

at first I installed the solaredge integration, after I Enabled Modbus TCP on SolarEdge Inverter, and installed home-assistant-solaredge-modbus by HACS.
At last I configured conf.yaml and energy.yaml…

It will take a few hours before data starts to show up in the energy dashboard. But I would start to make sure that the entities from the modbus integration actually gives you values.

You also only need the modbus integration, I do not use the cloud based solar edge integration at all.

So, Should I remove the integration? How can I check if the modbus integration works?