Oha…
das sind natürlich Voraussetzungen die nun alles ganz anders darstellen.
Dann kommst du wohl eher nicht an die tatsächliche Produktion ran.
Wobei du natürlich Bezug und Einspeisung aus dem Shelly 3EM bekommst. Solltest Du jedoch nachts negative Werte, also Einspeisung, haben und tagsüber Bezug, also positive Werte, dann sind wohl die Shelly-Klemmen in der falschen Richtung eingebaut worden.
Und wie bereits gesagt, du musst die Enzelwerte der Phasen in HA zu einem Wert zusammen rechnen und dann wird Bezug und Einspeisung richtig angegeben. In HA muss aber auch die Einspeisung als positiver Wert angegeben werden. Somit musst du die Einspeisung und den Netzbezug berechnen und dann die neuen Helfer im Energiedashboard hinterlegen.
ACHTUNG: mein Code muss angepasst werden. Bitte die Kommentarzeilen lesen
Bei mir steht der Code in
#folgender Code steht in configuration.yaml
template:
sensor: !include_dir_merge_list template/sensor/
Zuerst alle Phasenwerte zu einem zusammenfasse:
#folgender Code steht in template/sensor/shelly.yaml
#Shelly EM3 Power fuer alle 3 Phasen addiert
- name: "Total Power"
unique_id: "total_power"
device_class: power
state_class: measurement
unit_of_measurement: "W"
state: >
{{
states('sensor.shellyem3_XXXX_channel_a_power')| float(0) +
states('sensor.shellyem3_XXXX_channel_b_power')| float(0) +
states('sensor.shellyem3_XXXX_channel_c_power')| float(0)
}}
Dann diesen Sensor normieren und aufteilen.
- name: "Total Power Nur Verbrauch" #Das ist der reine Verbrauch ohne Einspeisungen ins Netz
unique_id: "total_power_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 }}"
- name: "PV Einspeisung Ausgelesen" #Das sind die reinen Einspeisungen ins Netz
unique_id: "pv_einspeisung_ausgelesen"
device_class: power
unit_of_measurement: "W"
state: "{{ states('sensor.total_power')|float(0) if states('sensor.total_power')| int < 1 else 0 }}"
- name: "PV Einspeisung Normiert" #Das sind die reinen Einspeisungen ins Netz in einen positiven Wert verwandelt
unique_id: "pv_einspeisung_normiert"
device_class: power
unit_of_measurement: "W"
state: >
{% if states('sensor.pv_einspeisung_ausgelesen')| int == 0 %}
0
{% else %}
{{ states('sensor.pv_einspeisung_ausgelesen')|float(0) * -1 | round(3) }}
{% endif %}
Aus den nun neuen Sensoren total_power_nur_verbrauch
und pv_einspeisung_normiert
habe ich dann 2 Riemann-Summenintegralsensoren gebaut und diese in EnergieDashboard eingebunden.
Wenn Du meinen Code verwenden möchtest aber z.B. in der configuration.yaml nur einen Verweis
template: !include template.yaml
haben möchtest, dann musst du
-sensor:
- name: "Total Power Nur Verbrauch" #Das ist der reine Verbrauch ohne Einspeisungen ins Netz
unique_id: "total_power_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 }}"
- name: "PV Einspeisung Ausgelesen" #Das sind die reinen Einspeisungen ins Netz
unique_id: "pv_einspeisung_ausgelesen"
device_class: power
unit_of_measurement: "W"
state: "{{ states('sensor.total_power')|float(0) if states('sensor.total_power')| int < 1 else 0 }}"
- name: "PV Einspeisung Normiert" #Das sind die reinen Einspeisungen ins Netz in einen positiven Wert verwandelt
unique_id: "pv_einspeisung_normiert"
device_class: power
unit_of_measurement: "W"
state: >
{% if states('sensor.pv_einspeisung_ausgelesen')| int == 0 %}
0
{% else %}
{{ states('sensor.pv_einspeisung_ausgelesen')|float(0) * -1 | round(3) }}
{% endif %}
machen, oder so ähnlich. Sorry ich kann den Code bei mir nicht prüfen, da ich eben diese Aufgliederung bei mir umgesetzt habe um meine Config langfristig übersichtlicher und wertbarer zu haben.
Eventuell muss vor jedes - name:
noch ein - sensor:
auf höherer Ebene davor.
Viel Erfolg
Claudius
P.S. es gibt sicherlich auch andere Wege zum Ziel, aber das ist meiner, den ich Dir nur so beschreiben kann.