Ja, dann liegt der Fehler in der Berechnung vom Sensor Total_active_power. Wie sieht der bei dir aus, Template Helfer oder in der configuration.yaml geschrieben?
Hier mal meine Berechnung in den Entwickler-Tools für die aktuelle Power vom Shelly. Dazu werden einfach die drei Phasen addiert
So sieht meine Konfiguration für den Shelly 3EM Pro aus, allerdings alles in der configuration.yaml geschrieben. Die Templates könnte man aber auch im Template-Helfer verwenden.
Zuerst wird der reine Verbrauch aus den drei Phasen ermittelt und danach entsprechend abgegrenzt. Erklärungen stehen im Code am Anfang.
# Stromverbrauch Shelly 3em Pro auslesen. Die aktuellen Verbräuche/Erträge je Phase werden in einen Wert zusammengefasst
- sensor:
- name: "Total Power"
device_class: power
state_class: measurement
unit_of_measurement: "W"
state: >
{{
(
states('sensor.shellypro3em_08d1f9130908_phase_a_active_power')|float(0) +
states('sensor.shellypro3em_08d1f9130908_phase_b_active_power')|float(0) +
states('sensor.shellypro3em_08d1f9130908_phase_c_active_power')|float(0)
) | round(1)
}}
Jetzt folgt die Ermittlung vom reinen Verbrauch ohne Einspeisung.
# Dann wird ermittelt ob sich der Sensor im positiven Bereich bewegt, was Verbrauch
# bedeutet. Bei negativen Werten (Netzeinspeisung), wird der Sensor auf 0 gesetzt
- sensor:
- name: "Total Power Nur Verbrauch" #Das ist der reine Verbrauch ohne Einspeisungen ins Netz
unique_id: Stromleistung_nur_Verbrauch
device_class: power
unit_of_measurement: "W"
state: "{{ states('sensor.total_power')|float(0) if states('sensor.total_power')| int > 0 else 0 }}"
Danach folgt der Sensor für die reine Netzeinspeisung, also alles was negativ ist.
# Die folgenden beiden Sensoren ermitteln Netzeinspeisung anhand eines negativen
# Wertes. Ansonsten wird der Sensor auf 0 gestellt. In einem weiteren Sensor wird dann
# der negative Wert in einen positiven umgewandelt und wir haben den tatsächlichen
# Netzeinspeisewert
- sensor:
- name: "Solar Einspeisung Ausgelesen-negativ" #Das sind die reinen Einspeisungen ins Netz
device_class: power
unit_of_measurement: "W"
state: "{{ states('sensor.total_power')|float(0) if states('sensor.total_power')| int < 1 else 0 }}"
- sensor:
- name: "Solar Einspeisung Normiert-positiver_wert" #Das sind die reinen Einspeisungen ins Netz in einen positiven Wert verwandelt
device_class: power
unit_of_measurement: "W"
state: "{{ states('sensor.solar_einspeisung_ausgelesen_negativ')|float(0) * -1 | round (3) }}"
