Aktualisierung eines Template Sensors nur zu einer bestimmten Zeit

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.

Ok, vielen Dank schonmal, klingt logisch. Ich muss mich mit der Struktur der yaml Dateien noch etwas beschäftigen :wink:

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

Ist gestrichen, das macht es schonmal verständlicher. Werde das wie gesagt später mal testen.

Danke

Hallo zusammen.
Ich habe die Idee mal für meinen Wasserzähler von Qundis aufgegriffen.

Super Idee, vielen Dank für den Gedanken! :slight_smile:

  - 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 :smiley: . 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)}}

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.