Interessant ist am Ende die gewandelte Energie die du dann tatsächlich verbrauchst und die in der Batterie gespeicherte Leistung ja auch vom Dach gekommen.
Aber hier mal ein Beispiel von Daily Solar Yield · wlcrs/huawei_solar Wiki · GitHub - daraus kannst du dir einen Sensor für deinen Bedarf mit/ohne Batterie basteln.
- name: "energy_pv"
unique_id: "PV Energy"
state: >
{{ (states('sensor.inverter_total_yield') | float) - (states('sensor.battery_total_discharge') | float) + (states('sensor.battery_total_charge') | float) }}
device_class: energy
state_class: total_increasing
unit_of_measurement: 'kWh'
- name: "energy_pv_daily"
unique_id: "PV Energy daily"
state: >
{{ (states('sensor.inverter_daily_yield') | float) - (states('sensor.battery_day_discharge') | float) + (states('sensor.battery_day_charge') | float) }}
device_class: energy
state_class: total_increasing
unit_of_measurement: 'kWh'
Alternativ könntest du noch Sensoren für deine Strings basteln und darauf einen Zähler aufbauen. In dem Fall hättest den von dir gewünschten Effekt das die Leistung auf 0 fällt sobald die Sonne weg ist.
### pv Strings kW berrechnen
- sensor:
- name: "PV String 01 Power"
unique_id: "pv_string_01_power"
unit_of_measurement: "kW"
state: "{{ states('sensor.inverter_pv_1_voltage') |float * states('sensor.inverter_pv_1_current') | float / 1000|round(2) }}"
- sensor:
- name: "PV String 02 Power"
unique_id: "pv_string_02_power"
unit_of_measurement: "kW"
state: "{{ states('sensor.inverter_pv_2_voltage') |float * states('sensor.inverter_pv_2_current') | float / 1000|round(2) }}"