Ankündigung

Einklappen
Keine Ankündigung bisher.

HA - Service: calender.get_events

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    HA - Service: calender.get_events

    Ich versuche gerade, Kalender-Einträge der nächsten 90 Tage in einen Template-Sensor zu kopieren.
    Es gibt dazu zwar unzählige Beispiele, aber ich bekomme es trotzdem nicht hin.

    Hier die Beispiele, die mir alle nicht weiterhelfen.

    https://community.home-assistant.io/...vents/607276/5
    https://community.home-assistant.io/...-events/654573
    https://community.home-assistant.io/...-status/673918

    Alle Beispiele mit calendar.list_events hab ich gleich einmal verworfen, da es deprecated ist und seit HA 2024.6 auch entfernt wurde.

    Interessanterweise beginnen alle Beispiele mit:

    HTML-Code:
    template:
      - trigger:
          - platform: time_pattern
        action:
          - service: calender.get_events​
    und bereits da beschwert sich der Studio Code Server in beiden Fällen:
    String does not match the pattern of "LEGACY_SYNTAX^".
    Natürlich verrät die Meldung nicht, was seiner Meinung nach legacy wäre.

    Ich habe daher mehrere Varianten probiert und es haben auch alle den Sensor erstellt, aber immer ohne Inhalt.

    Hier nun der Inhalt von meinem templates.yaml mit den Varianten als Kommentar.

    HTML-Code:
    - trigger:
        - trigger: time_pattern
    #   - platform: time_pattern
          minutes: /5
      action:
        - action: calendar.get_events
    #   - service: calendar.get_events
          target:
            entity_id: calendar.02_geburtstage
          data:
            start_date_time: "{{ now().strftime('%Y-%m-%d 00:00:00') }}"
    #       start_date_time: "{{today_at()}}"
            duration:
              days: 90
          response_variable: raw_events
        - variables:
            scheduled_events: "{{ raw_events['calendar.02_geburtstage']}}"
      sensor:
        - name: Geburtstage
          unique_id: geburtstage
          state: "{{ raw_events['calendar.02_geburtstage'].events | count() }}"
          attributes:
            scheduled_events: "{{ raw_events['calendar.02_geburtstage'].events }}"
          icon: mdi:calendar
    ​
    Name und Icon des Sensors werden erstellt, status und attributes fehlen aber.
    Hat irgend jemand so etwas schon erfolgreich gelöst oder kann den Fehler in meinem Code finden?
    Zuletzt geändert von scw2wi; 05.01.2025, 17:56.

    #2
    Hier hatte ich mal meinen Code für den Jahreskalender geposted. Da werden alle im aktuellen Jahr liegenden wiederkehrenden Termine (alle 6 / 12 / 22 / 57 Wochen, alle 1 / 6 / 9 / 27 Monate, alle 1 / 3 / 25 Jahre usw) mit calendar.get_events aus einem eigens dafür angelegten Kalender angeholt. Läuft sein Monaten tadellos - einfach neuen wiederkehrenden Termin in diesen Kalender schmeissen, und schon erscheint er in der Übersicht ...

    /tom

    image.png

    Kommentar


      #3
      Nachtrag: Das mit dem Fehler 'Legacy Syntax' liegt an einer Änderung in HA 2024.10.

      Die alte Schreibweise wird trotz dieses Fehlers noch laufen, ist aber deprecated. Mein Jahrekalender-Beispiel im letzten Post verwendet bereits die neue Schreibweise mit entsprechenden Auskommentierungen der alten Variante (als 'Kommentare' im Quellcode belassen). Weitere Details dazu siehe mein Chat hier mit den HA-Supportern auf Discord ...

      > Hilburn:
      > platform has been renamed > trigger
      > service > action


      /tom
      Zuletzt geändert von Tom Bombadil; 05.01.2025, 17:20.

      Kommentar


        #4
        Tom Bombadil
        prima, vielen Dank, jetzt läuft es auch bei mir. Ich hatte ein Durcheinander mit den Variablen, jetzt sieht der Code auch viel übersichtlicher aus.

        HTML-Code:
        - trigger:
            - trigger: homeassistant
              event: start
            - trigger: event
              event_type: event_template_reloaded
            - trigger: state
              entity_id: calendar.02_geburtstage
          action:
            - action: calendar.get_events
              target:
                entity_id:
                  - calendar.02_geburtstage
              data:
                start_date_time: "{{ now().strftime('%Y-%m-%d 00:00:00') }}"
                duration:
                  days: 90
              response_variable: raw_events
            - variables:
                events: |
                  {{ raw_events['calendar.02_geburtstage']['events']}}
          sensor:
            - name: "Geburtstage"
              unique_id: geburtstage
              state: "{{ events | count() }}"
              attributes:
                scheduled_events: "{{ events }}"
              icon: mdi:calendar​

        Kommentar

        Lädt...
        X