Template.yaml Trigger Problem

Moin,

ich bin gerade dabei mich etwas in das Thema yaml/jinja einzuarbeiten und stoße gerade auf folgendes Problem:

In meiner template.yaml habe ich einen Trigger erstellt, der immer zu einer gewissen Zeit auslösen soll, soweit so gut. Und ja ich könnte es über einen Helfer direkt machen aber ich will mich etwas in die Scriptebene einarbeiten.

Folgendes funktioniert aber scheint veraltet zu sein da ich über VSCode nen Fehler erhalte:

- trigger:
  - platform: time

Fehler:

String does not match the pattern of “LEGACY_SYNTAX^”.yaml-schema: http://schemas.home-assistant.io/integration-template

Schlau wie ich war hab ich etwas gegoogelt und konnte mich aber durch den ganzen Codemix nicht wirklich schlau machen, aber ich bin auf folgendes gestoßen und habe es mal ausprobiert:

- trigger:
  - trigger: time

Ich habe mit der Schreibweise keine Fehlermeldung mehr in VSCode aber der Trigger löst nicht aus.

Wo liegt da der Fehler?! Ich verstehe es nicht

Heisst jetzt triggers und platform wurde durch trigger ersetzt.
Und die Zeitangabe fehlt

triggers:
  - trigger: time
    at: "22:00:00"

Aber warum erstellst Du Dir die Automatisierung nicht im grafischen Editor, kannst ja dann bequem zwischen grafisch und yaml Sicht hin und her umschalten.

Gruß Osorkon

Sorry, die Zeit ist natürlich im Code enthalten.

Mir geht es primär um die Schreibweise um zu verstehen wie man das ganze korrekt anlegt.

Das Problem liegt allein an der beschriebenen Zeile.

Erstelle Dir die Automation im grafischen Editor und schalte in die YAML Sicht um. Dann weisst Du wie die Syntax auszusehen muss.

Darüber hinaus kann ein Blick in die Doku auch nicht verkehrt sein. :wink:

Gruß Osorkon

1 „Gefällt mir“

Erst einmal Danke für die Denkanstöße.

Die Dokumentation ist mir bereits gut bekannt. Mein Problem scheint ein größeres zu sein, zumindest für mich.

Hintergrund meines Triggers ist die aktuelle Uhrzeit des nächsten Sonnenuntergangs (am nächsten Tag) zu speichern als Helfer, der wiederum als Anfangszeitpunkt für eine Automation dient.

Hier meine Erstellung meines Helfers in der template.yaml:

- trigger:
    - platform: time
      at: "14:00:00"
  sensor:
    - name: "Helfer Sonnenuntergang"
      unique_id: "sunsetsave"
      device_class: timestamp
      icon: "mdi:sun-clock"
      state: "{{ state_attr('sun.sun','next_setting') | as_datetime | as_local - timedelta(minutes=30)}}"

Dieser funktioniert so auch. Sobald ich den Einstieg im Trigger ändere, funktioniert der Helfer nicht mehr und es wird keine Uhrzeit hinterlegt. Ich habe jetzt auch die Variante mit

triggers:
  - trigger: time

versucht, aber die führt zu kompletten Fehlermeldungen. Unter anderem zu folgendem Fehler:

Property triggers is not allowed.

Die Visuelle Variante hatte ich auch bereits ausprobiert und auch dir triggers Variante entdeckt, aber es umzusetzen in meinen Code führt zu Fehler.

Jetzt bist aber beim einem Trigger Based Template Sensor. Zuvor sprachst Du immer von einer Automation?!

Wen. Du den Template Sensor ändern tust, braucht es wieder erstmal den ersten Trigger, damit ein Wert angezeigt werden kann.

Lass doch mal den kompletten yaml Code des Template Sensor sehen.

Einen Template Sensor kannst in der GUI als Helfer erstellen.
Einen Trigger based Template Sensor allerdings nur über Yaml, was Du ja bereits festgestellt hast.

Gruß Osorkon

Bin ja auch frisch in dem Thema… ich muss sagen mir fehlt etwas die konstante Leitlinie zum lernen der Thematik in der Dokumentation. Ist schon nicht einfach da was mitzunehmen. Und sorry, Template Sensor, nicht Automation.

Vom Template Sensor inkl. Trigger ist das der ganze Code den ich gepostet hab :face_with_peeking_eye:

Die Automation dazu ist über die Gui erstellt, die den Sensor als Zeitgeber hernimmt.

Aber nicht den, der zum einem Fehler führt. :wink:

Gruß Osorkon

Achso, ja klar :grin:

Im Grunde der gleiche Code wie vorher, nur eben die Trigger Definition:

triggers:
    - trigger: time
      at: "14:00:00"
      sensor:
      - name: "Helfer Sonnenuntergang"
        !env_var unique_id: "sunsetsave"
        device_class: timestamp
        icon: "mdi:sun-clock"
        state: "{{ state_attr('sun.sun','next_setting') | as_datetime | as_local - timedelta(minutes=30)}}"

Er reklamiert hier den triggers Einstieg.

So sehe der Template Sensor aus:

template:
  - triggers:
      trigger: time
      at: "00:30:00"
    sensor:
      - name: "Helfer Sonnenuntergang"
        unique_id: 2336afa4-e940-46d2-bdac-498c39cfdb86
        device_class: timestamp
        icon: "mdi:sun-clock"
        state: "{{ state_attr('sun.sun','next_setting') | as_datetime | as_local - timedelta(minutes=30)}}"

Edit:
Wobei triggers von SCS als Fehler interpretiert wird.
Funktioniert aber beides sowohl triggers: als auch trigger.

Gruß
Osorkon

Danke dir schon mal für die Antwort.

Folgender Code direkt in der template.yaml funktioniert eben mit der unten gezeigten Fehlermeldung

- triggers:
    - trigger: time
      at: "13:00:00"
  sensor:
    - name: "Helfer Sonnenuntergang"
      unique_id: 2991c090-ebd2-4e24-a944-15f59f115c48
      device_class: timestamp
      icon: "mdi:sun-clock"
      state: "{{ state_attr('sun.sun','next_setting') | as_datetime | as_local - timedelta(minutes=30)}}"

image

Kleiner Hinweis, das einleiten des Templates mit triggers hat nicht ganz so funktioniert. Hab es dann doch zu “trigger” geändert und siehe da, alles funktioniert wie es soll.

Der Richtigkeitshalber, falls jemand ein ähnliches Problem hat, folgendes funktioniert einwandfrei ohne jegliche Fehlermeldung:

- trigger:
    - trigger: time
      at: "11:00:00"
  sensor:
    - name: "Helfer Sonnenuntergang"
      unique_id: sundown_helfer
      device_class: timestamp
      icon: "mdi:sun-clock"
      state: "{{ state_attr('sun.sun','next_setting') | as_datetime | as_local - timedelta(minutes=30)}}"

Beides ist zugelassen :grin:
triggers:

Entspricht der offiziellen Dokumention.

Gruß
Osorkon