ich bin leider zu doof für YAML wie es scheint. Ich habe einen Solaredge-Wechselrichter, der im Energiemanager eingebunden ist. Zusätzlich besitze ich eine go-e charger-Wallbox und poweropti (powerfox).
Das sieht auch alles ganz toll aus im Energie-Dashboard. Ich habe mal die Wallbox neben meinem poweropti als zusätzlichen Verbraucher eingetragen, wodurch natürlich die Werte addiert werden. Schön wäre aber eine Darstellung des Wallbox-Verbrauchs + Restverbrauch des Hauses.
Daher wollte ich einen weiteren Sensor anlegen, der eigentlich ganz billig diese Differenz berechnen soll:
Dann wollte ich diesen Sensor statt den poweropti mit der Wallbox eintragen und alles wäre tutti.
Die Berechnung der Differenz klappt mit: {{ states('sensor.strom_aktuell')|int(0) - states('sensor.go_echarger_108263_nrg_12')|int(0) }}
Aber im Template-Editor kann man keine if-Schleifen mit Berechnung bauen, oder? Zumindest bekomme ich das nicht hin. Als Test, wo ich die if-Abfrage einfach manuell mit 1 oder 0 fütter, gibt er mir korrekt die 0 oder den berechneten Wert aus: Stromverbrauch ohne Wallbox: {% if 0<=0 -%} 0 {%- else -%} {{ states('sensor.strom_aktuell')|int(0) - states('sensor.go_echarger_108263_nrg_12')|int(0) }} {%- endif %}
Wenn ich jetzt aber einfach 0<=0 mit meiner Berechnung austausche, kommt als Ergebnis immer: TemplateSyntaxError: expected token ':', got '}'
Außerdem sind die geschweiften Doppelklammern auch lila gefärbt und nicht rot wie ohne if-Schleife.
Jemand eine Idee für eine Elegante Lösung? Äquivalent dazu bräuchte ich evtl auch noch einen ähnlich berechneten Sensor für die PV-Produktion, damit das mit dem Solarverbrauch dann auch passt. Ich habe mal eine grandiose Paint-Zeichnung erstellt, die mein Wunschszenario verdeutlichen soll, wobei die Wallbox in rot dargestellt ist
In meiner template.yaml befindet sich folgender Code. Von daher würde ich sagen, dass es gehen sollte.
- sensor:
- 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 %}
das was Du sonst so alles geschrieben hast
-%}
{%-
oder
0<=0
erschließt sich mir nicht. Was sollen die “-” und was ist das für ein komischer Vergleich “0<=0” das macht meiner Meinung nach so gar keinen Sinn.
Zeig mal Deinen ganzen Code und nicht nur Schnipsel in dieser komischen Darstellung. Eventuell ist auch irgendwo was falsch eingerückt. Also einfach mal posten wie Du meinst, dass es richtig aussehen soll und dann mal schauen. Ich sage aber gleich … Yaml ist auch nicht meine Kernkompetenz
Ich habe das noch nicht in die YAML.config übertragen, sondern erst im Template-Editor in den Entwicklerwerkzeugen getestet. Und dort klappt die if-Abfrage mit der Berechnung nicht, daher habe ich den Fall, dass die Berechnung 0 oder mehr als 0 ergibt einfach von Hand eingetragen (daher 0<=0). Die - hatte ich auch nur aus anderen Codebeispielen.
Hier meine config.yaml, wo ich den Sensor mal eingetragen habe (“PV-Produktion ohne Wallbox”):
DANKE! Oh man ich dachte die {{ }} werden immer für die Berechnung benötigt…Einfach weglassen und es geht xD Ich sag ja: Zu doof für YAML Vielen Dank nochmal! Dann test ich das mal mit der Energiedashboard-Darstellung, ob das so klappt wie gewünscht.
Ich stand auf dem Schlauch, weil meine Berechnung geklappt hat aber dann beim Kopieren in die if-Schleife die Berechnung offenbar nicht mehr klappen wollte. Da haben mich dann auch die lila geschweiften Klammern verwundert, die ja sonst rot waren.
Für den Energiemonitor hab ich jetzt übrigens noch einen Helfer mit Riemann-Summen-Integration erstellt, weil der aktuelle Zählerwert W ist und man für den Energiemonitor aber kWh braucht (power vs. energy state des Sensors). Jetzt lass ich ihn erstmal einige Werte sammeln, damit das visuell gut vergleichbar ist, wenn man die Sensoren tauscht. Ich poste euch dann mal ein Bild, wie das nachher aussieht
Orang und Lila sind identisch. Hellblau ist der Wallbox-Verbrauch und Dunkelblau der restliche Hausverbrauch. Die Addition passt perfekt. Jetzt muss ich nur noch gucken, wie man ihm begreiflich macht, dass die Werte nicht on-Top zum Solarstromverbrauch zu rechnen sind. Evtl muss ich da echt noch die Solarproduktion teilen oder so.
Habt ihr sonst noch eine Idee bzw. Erfahrung beim Anpassen des Energie-Dashboards bzw. dessen hinterlegte Berechnungen?
by HarryP: Zusammenführung Mehrfachpost
*@Kalle * Bitte zukünftig Ergänzungen/Korrekturen mit der “bearbeiten” Funktion (geht 24h) einbringen. Danke!