solaredge-modbus-hass
solaredge-modbus-hass copied to clipboard
feat: add battery sensors
Based on the PR #30 , but only with code to add the battery sensors to split this feature up. Additionally I rebased it on the current master ;)
Already tested on new local SolarEdge installation 😊:
Hi, thanks for sharing the code.
I've just installed it and on SolarEdge SE4000H with an LG RESU10H Prime.
I got the following result:
Need to figure out the battery state code. 0 – Off; 1 – Standby; 2 – Init; 3 – Charge; 4 – Discharge; 5 – Fault; 7 - Idle Don't know what state 6 means. Not active?
Hi, first of thanks for trying it out on your side. 😊 I must say, that I did not really debug the Battery state, since my battery showed yesterday only the statuscode 3 or 10. Now it is also showing the state 6. 😅
Don't know what statuscode 10 means. If that happens, can you check what you get in MySolaredge app?
I've create some custom sensor.
solaredge_battery_energy_flow:
friendly_name: "Battery Energy Flow"
value_template: "{{ state_attr('sensor.solaredge_modbus_battery', 'battery_power') }}"
unit_of_measurement: 'W'
solaredge_battery_percentage:
friendly_name: "Battery Percentage"
value_template: "{{ state_attr('sensor.solaredge_modbus_battery', 'battery_state_of_charge') | round(2) }}"
unit_of_measurement: '%'
icon_template: mdi:battery
solaredge_battery_status:
friendly_name: "Battery Status"
value_template: >-
{% if state_attr('sensor.solaredge_modbus_battery', 'battery_state') == 0 %}
Off
{% elif state_attr('sensor.solaredge_modbus_battery', 'battery_state') == 1 %}
Standby
{% elif state_attr('sensor.solaredge_modbus_battery', 'battery_state') == 2 %}
Init
{% elif state_attr('sensor.solaredge_modbus_battery', 'battery_state') == 3 %}
Charge
{% elif state_attr('sensor.solaredge_modbus_battery', 'battery_state') == 4 %}
Discharge
{% elif state_attr('sensor.solaredge_modbus_battery', 'battery_state') == 5 %}
Fault
{% elif state_attr('sensor.solaredge_modbus_battery', 'battery_state') == 6 %}
Not active
{% elif state_attr('sensor.solaredge_modbus_battery', 'battery_state') == 7 %}
Idle
{% else %}
Unknown
{% endif %}`
Only need to find out custom sensors to use in Energy Dashboard.
One for discharge and charge values.
Maybe battery_energy_discharged_sum
and battery_energy_charged_sum
but I think those values are daily values.
Sadly the code did not happen again as long as I looked it my values. But if it happen again I will look into it 😊
I added two other sensor templates with it. This can be used in the Energy dashboard to see what has been charged and discharged from battery. In may case when first installed, those values where daily values and now has changed to total values after an update from SolarEdge.
solaredge_battery_energy_discharged_sum:
friendly_name: "Battery Energy Discharged"
value_template: "{{ (state_attr('sensor.solaredge_modbus_battery', 'battery_energy_discharged_sum') / 1000.0) | round(2) }}"
unit_of_measurement: 'kWh'
solaredge_battery_energy_charged_sum:
friendly_name: "Battery Energy Charged"
value_template: "{{ (state_attr('sensor.solaredge_modbus_battery', 'battery_energy_charged_sum') / 1000.0) | round(2) }}"
unit_of_measurement: 'kWh'