Fehler in Automatisierung "Radio einschalten"

Hallo zusammen,

ich habe eine Automatisierung, die bisher funktioniert hat. Sie schaltete jeden Morgen (Mo-Fr) für eine bestimmte Zeit das Radio im Bad ein, wenn mindestens einer von uns zu Hause ist. Das tat er allerdings auch wenn wir zu Hause waren und Urlaub haben, oder wenn Feiertag war.

Daher hatte ich die Bedingungen etwas angepasst, wie folgt:

conditions:
  - type: is_on
    condition: device
    device_id: c28b5af5144a47fa07e726b6a204b9ab
    entity_id: 5cc8de657b87134fb121236f609e0e70
    domain: binary_sensor
    for:
      hours: 0
      minutes: 0
      seconds: 5
  - condition: or
    conditions:
      - condition: zone
        entity_id: person1
        zone: zone.home
      - condition: zone
        entity_id: person2
        zone: zone.home
  - condition: not
    conditions:
      - condition: template
        value_template: |-
          {{ 'Urlaub' in state_attr('calendar.standardkalender',
          'message') }}

Die erste Bedingung ist Workday Sensor an, die zweite Bedingung ist einer von beiden zu Hause, die dritte Bedingung soll der Eintrag “Urlaub” im Standardkalender sein.
Und der bringt jetzt eine Fehlermeldung:

Error evaluating condition in 'Guten Morgen Neu': In 'condition' (item 3 of 3): In 'not': In 'template' condition: TypeError: argument of type 'NoneType' is not iterable

Fehlt da noch etwas?

Gibt es wirklich einen Kalender mit dem Namen “standardkalender” und hat dieser einen Eintrag in der Zukunft?

Was erhält Du als Ergebnis bei

{% set event = states.calendar['standardkalender'] %}
{% if event and event.attributes.message %}
  Nächster Termin: {{ event.attributes.message }}
  Startzeit: {{ event.attributes.start_time }}
  Endzeit: {{ event.attributes.end_time }}
{% else %}
  Kein Termin verfügbar.
{% endif %}

ich habe gerade mal einen Termin hinzu gefügt und erhalte:

Nächster Termin: Urlaub
  Startzeit: 2025-01-25 00:00:00
  Endzeit: 2025-01-30 00:00:00

Hm, ich denke dennoch der Fehler liegt entweder am Kalendernamen oder am fehlenden Termin.

Stelle ich das mit meinem Kalender nach, erhalte ich auch die Fehlermeldung:
“TypeError: argument of type ‘NoneType’ is not iterable”

Was wäre denn wenn Du None extra abfängst

{% set MeinKalender = 'calendar.standardkalender' %}
{% set invalide = ['none', 'unavailable', 'unknown'] %}
{{ state_attr(MeinKalender, 'message') | lower is not in invalide and 'Urlaub' in state_attr(MeinKalender, 'message') }}

Das hat leider nicht funktioniert. Ich habe danach noch ein wenig in den Weiten des Netzes recherchiert. Anscheinend funktioniert das nur mit Trigger. Aber damit habe ich noch nie gearbeitet.