Knurb
27. März 2024 um 10:22
1
Hallo zusammen,
ich bin noch recht neu im Thema HA und komme hier gerade nicht weiter.
Ich habe ein Smartmeter, welches die gesamte eingespeiste Strommenge in einer Entität bereitstellt. Ich möchte jetzt täglich um 23:59 diesen Wert in einem Template Sensor “zwischenspeichern”.
Mit Hilfe dieses neuen Sensors möchte ich dann die tägliche Einspeisung berechnen lassen.
Aktuell sieht das wie folgt aus.
- trigger:
platform: time
at: "23:59:00"
- sensor:
name: "Export Gestern"
unique_id: export_gestern
unit_of_measurement: "kWh"
device_class: "energy"
state_class: total_increasing
state: "{{states('sensor.power_meter_exportierte_energie') | float}}"
- sensor:
name: "Export Heute"
unique_id: export_heute
unit_of_measurement: "kWh"
device_class: "energy"
state_class: total_increasing
state: "{{(states('sensor.power_meter_exportierte_energie') | float) - (states('sensor.export_gestern') | float)}}"
Leider wird der Wert von export_gestern laufend aktualisiert und nicht nur um 23:59, so dass export_heute immer den Wert 0 hat.
Hat jemand eine Idee wo mein Gedankenfehler ist?
Danke
Versuch es mal so
- trigger:
platform: time
at: "23:59:00"
sensor:
name: "Export Gestern"
unique_id: export_gestern
unit_of_measurement: "kWh"
device_class: "energy"
state_class: total_increasing
state: "{{states('sensor.power_meter_exportierte_energie') | float}}"
Durch den Bindestrich auf der gleichen Ebene wie - trigger:, meint HA, dass es was eigentständiges neues ist und nicht zu trigger gehört.
Edit:
und float erwartet einen Default-Wert, also z. B. float(0), falls der Sensor mal unavailable ist oder sonst einen Fehler hat.
Knurb
27. März 2024 um 11:35
3
Ok, vielen Dank schonmal, klingt logisch. Ich muss mich mit der Struktur der yaml Dateien noch etwas beschäftigen
Probiere ich mal aus wenn ich wieder zu Hause bin.
Edit: Der Sensor export_heute soll das Ergebnis auf 2 Stellen gerundet ausgeben. Reicht da ein | round (2) am Ende des states?
Mir ist noch nicht ganz klar, wann ich state und value_template beim Anlegen von Template Sensoren verwenden muss.
value_template: findet Verwendung bei der Platform Template → Ist veraltet und sollte nicht mehr verwendet werden. Also gleich schon mal aus dem Gedächtnis streichen.
state: findet Verwendung bei der Template Integration → Aktuell
Gruß
Osorkon
Knurb
27. März 2024 um 13:36
5
Ist gestrichen, das macht es schonmal verständlicher. Werde das wie gesagt später mal testen.
Danke
sirector:
| float
Hallo zusammen.
Ich habe die Idee mal für meinen Wasserzähler von Qundis aufgegriffen.
Super Idee, vielen Dank für den Gedanken!
- trigger:
platform: time
at: "23:30:00"
sensor:
name: "O2 Gestern"
unique_id: o2_gestern
unit_of_measurement: "m³"
device_class: "water"
state_class: total_increasing
state: "{{states('sensor.0x51743092_wasseruhr') | float}}"
Jetzt kommt das “aber”. Der Sensor “o2_gestern” hat Daten, aber ich möchte auch den gerade aktuellen Verbrauch, wenn möglich in Litern anzeigen lassen und habe es so versucht:
- name: "O2 Verbrauch"
unique_id: o2_verbrauch
unit_of_measurement: "m³"
device_class: "water"
state_class: total_increasing
state: |
"{{(states('sensor.0x51743092_wasseruhr') | float) - (states('sensor.o2_gestern') | float)}}"
Abgesehen von der Einheit müsste da ja eigentlich ein Ergebnis rauskommen, funktioniert aber nicht. Sensor bleibt “unbekannt”.
Was mache ich falsch?
Antworte mir mal selber . Der folgende Templatesensor scheint zu funktionieren:
{% set x = states('sensor.0x51743092_wasseruhr') | float | round(3) %}
{% set y = states('sensor.h2o_gestern') | float | round(3) %}
{{ (x-y)*1000 | float | round(3)}}
jove
22. Januar 2025 um 12:35
8
Auch wenn der Beitrag schon etwas älter ist
Ich habe meine yaml in Packages aufgeteilt. Soweit so gut. Klappt auch, auch mit Trigger-Templates.
In einer Datei habe ich zuerst Template
template:
- sensor:
- name: "Daily PV-Ertrag"
unique_id: daily_pv_ertrag
device_class: energy
und weiter unten soll ein Trigger-Template hin
- trigger:
platform: time
at: "23:58:00"
sensor:
name: "Solcast Abweichung Estimate"
unique_id: solcast_abweichung_estimate
unit_of_measurement: "%"
state: >
Erzeugt jedoch einen Fehler
Auch andere Formatiwerungsversuche brachten keine Erfolg.
Kannst du mal den ganzen Inhalt posten.
Ich vermute da stimmen Einrückungen nicht.