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:
-
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.
-
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.
The effect is actually more dramatic if you take the actual values and not my average calculation:
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:
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.