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

connection is not stable, i need to set connection_time 2 instead of 0.1

Generated Config
devices:
  - modbus:
      url: 192.168.1.125:502 # device url (mandatory)
      timeout: 10 # communication timeout (s) (optional, default: 10)
      connection_time: 0.1 # delay after connection (s) (optional, default: 0)
    listen:
      bind: 0:502 # listening address (mandatory)
2022-04-21 00:26:47,941     INFO modbus-proxy: Starting...
2022-04-21 00:26:47,945     INFO modbus-proxy.ModBus(192.168.1.125:502): Ready to accept requests on 0:502
2022-04-21 00:26:48,546     INFO modbus-proxy.Client(192.168.1.100:55901): new client connection
2022-04-21 00:26:48,547     INFO modbus-proxy.ModBus(192.168.1.125:502): connecting to modbus...
2022-04-21 00:26:48,548    ERROR modbus-proxy.ModBus(192.168.1.125:502): write_read error [1/2]: ConnectionRefusedError(111, "Connect call failed ('192.168.1.125', 502)")
2022-04-21 00:26:48,549     INFO modbus-proxy.ModBus(192.168.1.125:502): connecting to modbus...
2022-04-21 00:26:48,550    ERROR modbus-proxy.ModBus(192.168.1.125:502): write_read error [2/2]: ConnectionRefusedError(111, "Connect call failed ('192.168.1.125', 502)")
2022-04-21 00:26:48,550     INFO modbus-proxy.Client(192.168.1.100:55901): closing connection...
2022-04-21 00:26:48,551     INFO modbus-proxy.Client(192.168.1.100:55901): connection closed
2022-04-21 00:27:03,549     INFO modbus-proxy.Client(192.168.1.100:45661): new client connection
2022-04-21 00:27:03,550     INFO modbus-proxy.ModBus(192.168.1.125:502): connecting to modbus...
2022-04-21 00:27:03,551    ERROR modbus-proxy.ModBus(192.168.1.125:502): write_read error [1/2]: ConnectionRefusedError(111, "Connect call failed ('192.168.1.125', 502)")
2022-04-21 00:27:03,551     INFO modbus-proxy.ModBus(192.168.1.125:502): connecting to modbus...
2022-04-21 00:27:03,552    ERROR modbus-proxy.ModBus(192.168.1.125:502): write_read error [2/2]: ConnectionRefusedError(111, "Connect call failed ('192.168.1.125', 502)")
2022-04-21 00:27:03,552     INFO modbus-proxy.Client(192.168.1.100:45661): closing connection...
2022-04-21 00:27:03,553     INFO modbus-proxy.Client(192.168.1.100:45661): connection closed

do you have any other client still connected to the solaredge modbus server? solaredge needs 2 minutes of idle time before it shuts down the server and the proxy can connect properly. the proxy should hold the connection after it manages to connect
are you on wifi ?
does it work after you set it to connection_time 2 ?

1 Like

Works now, I had to be patient :slight_smile: more

Hi @Remko there seems to be an error with the house consumption calculation. See attached Screenshots:


seems to be the “Problem” which i also have. In my Case it has to be (i assume) something to do with sensor.solar_battery_effectiveness.

look at

and

Hey Remko,

pls look at my previus Post. I’ve observed the problem - at the moment i can say:

  • the problem only occurs if i discharge the battery
  • the wrong values comes from the battery effectivnes values - or how it is calculated. I’ve manually adapted your config and removed the multiple with the effective and the values are “OK”.

Do you by any chance also have an electric car which you charge? I am starting to suspect that is where the difference comes from. The effectivnes value may be calculated wrong in that scenario. If removing that from the configuration solves the issue, I would suggest to do just that…

Of course this can be the workaround. on the other hand, you have to consider how and what meaningfulness the value then has. I can imagine that there are other scenarios where this is wrong… the app does not (also) use the value

I’m in a similar boat with a new setup with a single SE10000H and LG RESU 10 Prime.

I do not have a second inverter or an EV charger yet. Perhaps it’s the RESU Prime? I am guessing there are not a lot of these in the field yet.

I did notice that most of the battery info is available if I configure solaredge_modbus with 3 meters and 0 batteries (if I configure a battery I also get unknown for everything). M3 has battery info, but this doesn’t work for the integration as it’s not considered a battery, and I can’t dynamically change the charging profile, since it’s not seen as a battery.

Have you tried adding a 3rd meter to your inverter with the battery connection? - EDIT upon further exam, the M3 values look like max_value type data for the respective data-types, not actual data.

When I run the example.py script in this thread, I only ever get two meters and no battery objects.

I have found that you can change the CAN/RS485 terminal settings via the battery’s local wifi connection, section 7.2 in the LG RESU 16H manual (seems the same as my 10H) https://www.zerohomebills.com/wp-content/uploads/LG-Chem-RESU-16H-Prime-Installation-Manual-EN.pdf . Still haven’t found a setting that works - guessing it is something in the meter dip switches still.

Thank you so much for this hard work !!, @Remko.

I have a small question : the entity “Solar House Consumption W”. It works well, but during the discharging time it’s not correct. I think we need to add the negative state of the battery and add it.
What do you think.?

1 Like

Hello everyone! I installed and set up as you explained in the initial post … I attach screenshots, but unfortunately the values that come out in the dashboard are wrong. Think that as I am writing this post it is 11.22 PM and the dashboard shows 16Kw of solar production: D

I ask for your help in understanding where I went wrong.

thank you!


That page is cumulative. Total for the day. Is that wrong?

Looks like you produced 16.8 for the day, sent 10.5 to the battery and used 6.3 yourself, nothing exported.

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: