Template Sensor mit Bedingung

Bereich rings rum zum Thema Yaml und seine Tücken.


Antworten
Nailuj
Beiträge: 9
Registriert: Fr 30. Sep 2022, 15:48
1
Has thanked: 9 times

Template Sensor mit Bedingung

Beitrag von Nailuj »

Einen schönen guten Morgen.

Ich würde gerne einen Template Sensor anlegen, welcher einen Wert aus einem Gaszahler-Sensor übernimmt oder addiert, aber nur dann, wenn der neue Wert höher ist als der alte.

Ich habe schon mit Template-Sensoren gearbeitet, bekomme es aber einfach nicht hin hier eine Condition oder ähnliches einzubinden.

Hat jemand dazu einen Tipp? Es müsste ja irgendwie mit einer of Condition gehen.

Vielen Dank

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

Re: Template Sensor mit Bedingung

Beitrag von Osorkon »

Hallo @Nailuj

Hier mal ein Template Sensor (Auszug aus der template.yaml)
Damit erstellst Du einen template Sensor mit folgender Entität: sensor.gaszaehler_neu Abgeleitet vom Namen Gaszaehler Neu.
Wenn Du einen anderen Namen verwenden tust, musst Du die Entität im Template dementsprechend ändern.

Für die Entität Deines original Sensors habe ich diese verwendet: sensor.original_gaszahler diese muss gegen die Entität Deines Sensors ausgetauscht werden.

Wenn Sich der Original Sensor Wert ändert und dieser größer ist als des des Neuen Sensors, bekommt der neue Sensor den Wert vom original Sensor zugewiesen.
Ansonsten behält der neue Sensor seinen Wert.
Ich habe die Werte als float formatiert mit dem default Wert 0 | float(0)
Wenn Du nur Ganzzahlen haben willst, dan wäre es integer | int(0)

Code: Alles auswählen

- sensor:
  - name: Gaszaehler Neu
    state: |
      {% if states('sensor.original_gaszahler') | float(0) > states('sensor.gaszaehler_neu') | float(0) %}
        {{ states('sensor.original_gaszahler') | float(0) }}
      {% else %}
        {{ states('sensor.gaszaehler_neu') | float(0) }}
      {% endif %}
    device_class: gas
    state_class: total_increasing
    unit_of_measurement: "m³"
    unique_id: 047acc80-6355-11ed-a77d-5b342a216b17

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Nailuj
Beiträge: 9
Registriert: Fr 30. Sep 2022, 15:48
1
Has thanked: 9 times

Re: Template Sensor mit Bedingung

Beitrag von Nailuj »

Vielen lieben Dank.
Das scheint zu klappen und ist einfacher wie erwartet. Ich glaube ich habe die Logik dahinter verstanden.

Aber noch zu deiner template.yaml - ich habe bisher die Template Sensoren in die configuration.yaml geschrieben. Das wird mir aber auch solangsam zu unübersichtlich. Wenn ich jetzt eine template.yaml erstelle und diese in die configuration.yaml einbinden, dann muss ich ja alle Geräte mit der plattform: template in die neue template.yaml übernehmen. Übernimmt er dann auch die Werte der Sensoren, weil diese unverändert sind?

In der config.yaml wäre es dann

Code: Alles auswählen

template: !include template.yaml

Darein kämen dann allen Sensoren der Platform Template. Richtig?

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

Re: Template Sensor mit Bedingung

Beitrag von Osorkon »

Richtig 😀

Wichtig ist nur, dass in der template.yaml
die Zeile:

Code: Alles auswählen

template:

nichts zu suchen hat.

Einfach meinen Code in die template.yaml einfügen.
Konfiguration prüfen und die Template Entitäten neu laden.

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Nailuj
Beiträge: 9
Registriert: Fr 30. Sep 2022, 15:48
1
Has thanked: 9 times

Re: Template Sensor mit Bedingung

Beitrag von Nailuj »

Okay, soweit verstanden eine Rückfrage noch. Wenn ich die template.yaml anlege muss ich aber alle Sensors, binary (on/off) sensors, buttons, numbers da hinein packen oder?

Also die in der configuration.yaml werden dann quasi ignoriert?

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

Re: Template Sensor mit Bedingung

Beitrag von Osorkon »

Nein, nur alles was zu der Template Integration gehört.

Alles andere kann wie gehabt in der configuration.yaml bleiben.
Oder Du bist konsequent und splittest die anderen Integrationen ebenfalls auf.

in z.B. sensor.yaml, binary_sensor.yaml, light.yaml, switch.yaml, etc.

siehe auch Dokumentation

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Antworten