Template Sensoren - Was Kosten mich ein Waschgang

Eine Sammlung von Home Assistant Templates.
Bitte nur fertige Templates posten, ergänzt um eine Beschreibung und ggf. Screenshots.


Antworten
Benutzeravatar
Osorkon
Administrator
Beiträge: 1936
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 529 times
Kontaktdaten:

Template Sensoren - Was Kosten mich ein Waschgang

Beitrag von Osorkon »

Ein kleines HowTo für eine Energie Karte die den Verbrauch und die Kosten in Euro eines Gerätes ermittelt.
Mit der Möglichkeit die Werte über ein Button auf 0 zurückzusetzen.
z.B. um den Verbrauch und die Kosten eines Waschgangs zu ermitteln.
Der Verbrauch und die Kosten werden kontinuierlich ermittelt, wenn ein Verbrauch erfolgt.
Nach der Formel
aktuelle Wert kWh - kWh zum Zeitpunkt Reset

Waschgang Karte.jpg
Waschgang Karte.jpg (37.48 KiB) 3596 mal betrachtet

Benötigt werden 2 Helfer

  • Taste -> zum Zurücksetzen des Verbrauchs und der Kosten
    In diesem Beispiel input_button.reset_waschmaschine. Bennet ihr euren Taster anders, musst die Entität im code angepasst werden.

  • Nummer -> zur definition des Strompreises in ct/kWh.
    In diesem Beispiel input_number.strompreis. Bennet ihr euren Input Number anders, musst die Entität im code angepasst werden.

Und natürlich ein Sensor der den Stromverbrauch in kWh misst. :mrgreen:
In diesem Beispiel sensor.waschmaschine_energy. Diesen müsst Ihr natürlich gegen euern Energy Sensor austauschen.

Den Helfer Input Number, könnt Ihr auch weg lassen, dann erfolgt die Eingabe des Strompreises direkt im Template.

Benötigt werden jetzt insgesamt 4 Template Sensoren.

Die ersten 2 Sensoren ermitteln den Verbrauch in kWh und den Preis in Euro

Auszug aus der template.yam

Code: Alles auswählen

- sensor:
  - name: Waschgang Verbrauch
    state: |
      {{ (states('sensor.waschmaschine_energy') | float(0) - states('sensor.waschgang_reset') | float(0)) | round(2) }}
    state_class: total_increasing
    device_class: power
    unit_of_measurement: "kWh"
    unique_id: 127ae870-eb71-11ed-8a25-03a25d56f841
- sensor:
  - name: Waschgang Kosten
    state: |
      {{ ((states('sensor.waschmaschine_energy') | float(0) - states('sensor.waschgang_reset') | float(0)) * states('input_number.strompreis') | float(0) /100) | round(2) }}
    state_class: total_increasing
    device_class: monetary
    unit_of_measurement: "€"
    unique_id: a795e0d0-eb72-11ed-8a25-03a25d56f841

Der 3te wird benötigt um den Wert des letzen Reset zur ermitteln (Wird für die Sensoren Waschgang Verbrauch & Waschgang Kosten benötigt)
Der 4te und letze Sensor ermittelt das Datum des letzten Reset.

Diese sind sogenannte Trigger-based Sensoren und werden beim Drücken der Taste (input_button.reset_waschmaschine) aktualisiert.

Auszug aus der template.yam

Code: Alles auswählen

- trigger:
    platform: state
    entity_id:
      - input_button.reset_waschmaschine
  sensor:
    - name: Waschgang reset
      state: |
        {{ states('sensor.waschmaschine_energy') }}
      unique_id: 93d931b0-eb71-11ed-8a25-03a25d56f841
    - name: Waschgang Reset Datum
      state: |
        {{ as_timestamp(now()) | timestamp_custom(" %d.%m.%Y - %H:%M") }}
      unique_id: ac612050-eb79-11ed-8a25-03a25d56f841

Nach anlegen der Template Sensor und Neuladen der Template Konfiguration (Zuvor natürlich zuerst die Konfiguration prüfen :D )

Müsst Ihr nun Initial den Taster Reset drücken, damit die Trigger-based Sensoren auch erzeugt werden.

Der yaml Code für eine einfache Entitäten Karte, wie oben dargestellt.

Code: Alles auswählen

type:
entitiesentities: 
  - entity: input_button.reset_waschmaschine 
  - entity: sensor.waschgang 
  - entity: sensor.waschgang_kosten 
  - entity: sensor.waschgang_reset_datum

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
henk
Beiträge: 2
Registriert: Di 11. Okt 2022, 12:48
1
Has thanked: 4 times

Re: Template Sensoren - Was Kosten mich ein Waschgang

Beitrag von henk »

Hallo Osorkon,

Ich habe lange nach dieser template gesucht.
Vielen Dank für diesen Beitrag.

Ich habe versucht, dies zu kopieren, aber ich bin auf ein Problem gestoßen.

Es wurden zwei Helfer erstellt:
input_button.reset_wasmachine
input_number.stroomprijs

Energy Sensor:
sensor.smart_plug_wasmachine_power


Auf der Karte beim "Waschmaschinen reset datum" bekomme ich nur Sekunden (und Minuten), die rückwärts zählen.
Egal was ich versuche, ich bekomme kein Date.

Nachdem ich den ganzen Tag rumgespielt habe, habe Ich es in die Ecke geworfen. :evil:
Vielleicht könnt ihr mir damit helfen den Fehler zu finden.
Vielen Dank im Voraus.

Den Helfer Input Number, könnt Ihr auch weg lassen, dann erfolgt die Eingabe des Strompreises direkt im Template.
Hat jemand ein Beispiel?

ScreenHunter 177.jpg
ScreenHunter 177.jpg (12.79 KiB) 3580 mal betrachtet

Meine template.yaml:

Code: Alles auswählen

  - sensor:
      - name: Wasmachine verbruik
        state: |
          {{ (states('sensor.smart_plug_wasmachine_power') | float(0) - states('sensor.wasmachine_reset') | float(0)) | round(2) }}
        state_class: total_increasing
        device_class: power
        unit_of_measurement: "kWh"
        unique_id: 127ae870-eb71-11ed-8a25-03a25d56f841

  - name: Wasmachine kosten
    state: |
      {{ ((states('sensor.smart_plug_wasmachine_power') | float(0) - states('sensor.wasmachine_reset') | float(0)) * states('input_number.stroomprijs') | float(0) /100) | round(2) }}
    state_class: total_increasing
    device_class: monetary
    unit_of_measurement: "€"
    unique_id: a795e0d0-eb72-11ed-8a25-03a25d56f841

  - trigger:
      - platform: state
        entity_id: input_button.reset_wasmachine
    sensor:
      - name: Wasmachine reset
        state: |
          {{ states('sensor.smart_plug_wasmachine_power') }}
        unique_id: 93d931b0-eb71-11ed-8a25-03a25d56f841
      - name: Wasmachine reset datum
        state: |
          {{ now() }}
        device_class: timestamp
        unique_id: ac612050-eb79-11ed-8a25-03a25d56f841

Und meine yaml Code für die Entitäten Karte:

type: entities
entities:

  • entity: input_button.reset_wasmachine
  • entity: sensor.wasmachine_verbruik
  • entity: sensor.wasmachine_kosten
  • entity: sensor.wasmachine_reset_datum
Benutzeravatar
Osorkon
Administrator
Beiträge: 1936
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 529 times
Kontaktdaten:

Re: Template Sensoren - Was Kosten mich ein Waschgang

Beitrag von Osorkon »

henk hat geschrieben: So 7. Mai 2023, 17:30

Auf der Karte beim "Waschmaschinen reset datum" bekomme ich nur Sekunden (und Minuten), die rückwärts zählen.
Egal was ich versuche, ich bekomme kein Date.

Das liegt daran, dass ich im eile des Gefechts den falschen Code eingefügt habe. :o
Hatte 2 Versionen erstellt. Eine, die die relative Zeit angibt. Seit xx h und xx Minuten:

Code: Alles auswählen

  sensor:
    - name: Waschgang reset
      state: |
        {{ states('sensor.waschmaschine_energy') }}
      unique_id: 93d931b0-eb71-11ed-8a25-03a25d56f841
    - name: Waschgang Reset Datum
      state: |
        {{ now() }}
      device_class: timestamp
      unique_id: ac612050-eb79-11ed-8a25-03a25d56f841

Die Version die das Absolute Datum und Uhrzeit ausgibt lautet:

Code: Alles auswählen

  sensor:
    - name: Waschgang reset
      state: |
        {{ states('sensor.waschmaschine_energy') }}
      unique_id: 93d931b0-eb71-11ed-8a25-03a25d56f841
    - name: Waschgang Reset Datum
      state: |
        {{ as_timestamp(now()) | timestamp_custom(" %d.%m.%Y - %H:%M") }}
      unique_id: ac612050-eb79-11ed-8a25-03a25d56f841

Das werde ich gleich im ersten Beitrag korrigieren.

henk hat geschrieben: So 7. Mai 2023, 17:30

Den Helfer Input Number, könnt Ihr auch weg lassen, dann erfolgt die Eingabe des Strompreises direkt im Template.
Hat jemand ein Beispiel?

Anstatt den Wert von einem Helfer (input_number) im template zu verwenden, gibts Du den Strompreis direkt als Zahl ein.
Hier im Bsp. 0.44 Euro/kWh

Code: Alles auswählen

{{ ((states('sensor.waschmaschine_energy') | float(0) - states('sensor.waschgang_reset') | float(0)) * 0.44) | round(2) }}

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
henk
Beiträge: 2
Registriert: Di 11. Okt 2022, 12:48
1
Has thanked: 4 times

Re: Template Sensoren - Was Kosten mich ein Waschgang

Beitrag von henk »

Hallo Osorkon,

Es hat geklappt.

Vielen dank!
Henk

Thomas86
Beiträge: 6
Registriert: Sa 13. Jan 2024, 07:03

Re: Template Sensoren - Was Kosten mich ein Waschgang

Beitrag von Thomas86 »

Guten Morgen, ich habe aufgeteilte. yaml Dateien, da bring ich es nicht zum laufen, sobald ich die trigger.yaml einbinde, funktioniert der Rest nicht mehr.

In meiner template.yaml steht folgendes

Sensor: !include_dir_merge_list sensors/
Trigger: !include_dir_merge_list triggers/

Dann habe och jeweils die Ordner angelegt und darin jeweils eine Datei
Wie müsste denn die trigger file aussehen, damit es funktioniert?

Vielen dank

Benutzeravatar
Osorkon
Administrator
Beiträge: 1936
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 529 times
Kontaktdaten:

Re: Template Sensoren - Was Kosten mich ein Waschgang

Beitrag von Osorkon »

Hallo @Thomas86 und Herzlich Willkommen bei den SmartHome for Dummies! :D :D

Du versuchst das ganze als Sensor zu realisieren. Dabei handelt es sich um Template Sensoren, also die Template Integration.
Die von mir vorgestellten yaml Code für die Template Sensoren stammt jeweils aus der template.yaml und nicht aus der sensor.yaml

Hier die Dokumention zum Thema Template Integration

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Thomas86
Beiträge: 6
Registriert: Sa 13. Jan 2024, 07:03

Re: Template Sensoren - Was Kosten mich ein Waschgang

Beitrag von Thomas86 »

Danke :)

ja das weiß ich, das das Template.yaml ist, war es ja die ganze Zeit, lediglich alles in einer datei, wollte das eben jetzt aufteilen :) siehe Bild

Dateianhänge
Clipboard 1.jpg
Clipboard 1.jpg (95.23 KiB) 1833 mal betrachtet
Benutzeravatar
Osorkon
Administrator
Beiträge: 1936
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 529 times
Kontaktdaten:

Re: Template Sensoren - Was Kosten mich ein Waschgang

Beitrag von Osorkon »

@Thomas86 zeig doch mal den Inhalt der yaml

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Thomas86
Beiträge: 6
Registriert: Sa 13. Jan 2024, 07:03

Re: Template Sensoren - Was Kosten mich ein Waschgang

Beitrag von Thomas86 »

im Anhang ist einmal der templatesensor der Spülmaschine und der dazugehörige trigger

Dateianhänge
Spühlmaschine trigger.jpg
Spühlmaschine trigger.jpg (180.05 KiB) 1818 mal betrachtet
Spühlmaschine Sensor.jpg
Spühlmaschine Sensor.jpg (382.88 KiB) 1818 mal betrachtet
Benutzeravatar
Osorkon
Administrator
Beiträge: 1936
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 529 times
Kontaktdaten:

Re: Template Sensoren - Was Kosten mich ein Waschgang

Beitrag von Osorkon »

Der trigger based sensor beginnt mit trigger, wie in meinem Bsp. Oben

Code: Alles auswählen


- trigger:
    platform: state
    entity_id:
      - input_button.reset_waschmaschine
  sensor:
    - name: Waschgang reset

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Thomas86
Beiträge: 6
Registriert: Sa 13. Jan 2024, 07:03

Re: Template Sensoren - Was Kosten mich ein Waschgang

Beitrag von Thomas86 »

Ja das weiß ich, die Sensoren fangen ja auch mit "sensor:" an,
Mit denen klappt es ja, aber mit dem trigger leider nicht

Thomas86
Beiträge: 6
Registriert: Sa 13. Jan 2024, 07:03

Re: Template Sensoren - Was Kosten mich ein Waschgang

Beitrag von Thomas86 »

hab nun eine lösung gefunden, scheinbar geht das so wie ich vor hatte mit den Templates nicht, anbei ein Screenshot meiner Config...yaml und einer datei aus dem Ordner Templates.

Vielleicht hilft das den einen oder anderen :)

Danke

Dateianhänge
templateyaml.jpg
templateyaml.jpg (475.64 KiB) 1804 mal betrachtet
confiyaml.jpg
confiyaml.jpg (167.59 KiB) 1804 mal betrachtet
0lli
Beiträge: 4
Registriert: Mi 28. Feb 2024, 09:57

Re: Template Sensoren - Was Kosten mich ein Waschgang

Beitrag von 0lli »

Moin,
bin tatsächlich noch ein Dummie und bekomme das nicht hin.
sobald ich eine (ich nenne sie) Waschmaschine_kosten.yaml in meinen template Verzeichnis lege bekomme ich Fehler Meldungen.

die Yaml sieht so aus

Code: Alles auswählen

- sensor:
  - name: Waschgang Verbrauch
    state: |
      {{ (states('sensor.waschmaschine_electricity') | float(0) - states('sensor.waschgang_reset') | float(0)) | round(2) }}
    state_class: total_increasing
    device_class: power
    unit_of_measurement: "kWh"
    unique_id: 127ae870-eb71-11ed-8a25-03a25d56f841
- sensor:
  - name: Waschgang Kosten
    state: |
      {{ ((states('sensor.waschmaschine_electricity') | float(0) - states('sensor.waschgang_reset') | float(0)) * states('input_number.strompreis') | float(0) /100) | round(2) }}
    state_class: total_increasing
    device_class: monetary
    unit_of_measurement: "€"
    unique_id: a795e0d0-eb72-11ed-8a25-03a25d56f841

und fehler bekomme ich folgende:

Code: Alles auswählen

Invalid config for 'template' at template/Verbrauch_Trockner.yaml, line 1: expected a dictionary '', got [{'sensor': [{'name': 'Prognose Jahresstromverbrauch Spuelmaschine', 'state': '{% set basis = states(\'input_select.prognose_basis\') | lower %}\n{% if basis == "stunde" %}\n {{(states(\'sensor.spuelmaschine_stromverbrauch_1_stunde\') | float(0) * (states(\'input_number.strompreis\') | float(0) / 100) * 365*24) |round(2)}}\n{% elif basis == "tag" %}\n {{(states(\'sensor.spuelmaschine_stromverbrauch_1_tag\') | float(0) * (states(\'input_number.strompreis\') | float(0) / 100) * 365) |round(2)...
Invalid config for 'template' at template/Wasmaschine_kosten.yaml, line 1: expected a dictionary '', got [{'sensor': [{'name': 'Waschgang Verbrauch', 'state': "{{ (states('sensor.waschmaschine_electricity') | float(0) - states('sensor.waschgang_reset') | float(0)) | round(2) }}\n", 'state_class': 'total_increasing', 'device_class': 'power', 'unit_of_measurement': 'kWh', 'unique_id': '127ae870-eb71-11ed-8a25-03a25d56f841'}]}, {'sensor': [{'name': 'Waschgang Kosten', 'state': "{{ ((states('sensor.waschmaschine_electricity') | float(0) - states('sensor.waschgang_reset') | float(0)) * states('inpu...

wie gesagt bin ein absoluter Dummie würde diese Verbrauchsgeschichte dennoch sehr gerne nutzen können
vielen dank schonmal für eure Hilfe.
Gruß 0lli

Antworten