Abfragen ob am nächsten Tag Kalender Event ist und ob kein Werktag ist

Hallo,

Ich habe einen Template Sensor geschrieben, der sagt ob heute ein Schultag ist.
Er bezieht einen Kalender der Schulferien ein und checkt ob heute ein Werktag ist, mit der Werktags Integration von HomeAssistant.

sensor:
  - platform: template
    sensors:
      ist_schule:
        friendly_name: "Ist Schule"
        unique_id: "ist-heute-schule"
        value_template: >-
          {% if is_state('calendar.schulferien_bayern', 'off') and is_state('input_boolean.krank', 'off') and is_state('binary_sensor.workday_sensor', 'on') %}
            on
          {% else %}
            off
          {% endif %}

Mein Problem ist nur das ich noch einen Sensor brauche, der feststellt ob morgen ein Schultag ist oder nicht.
Ich habe schon eine Möglichkeit gefunden mit einer Automation abzufragen ob morgen ein Kalender Event ist, aber ich würde dieser Automation nicht wirklich vertrauen.

Gibt es die Möglichkeit über einen Template Sensor abzufragen ob morgen ein Kalender Event ist? Wie ich mit der Workday Integration Abfragen kann ob morgen ein Werktag ist weiß ich schon.

VG Pablo

Genau das benötige ich auch - aber alles was ich gefunden habe oder mir diverse KIs generierten war fehlerhaft oder sage immer “kein Freier Tag”. Dabei war ein ganztägiger Termin eingetragen.

Das kannst du nur über die Aktion calendar.get_events lösen.
In den letzten Tagen kam das Thema wieder auf, schau mal in der Suche.


Ich nutze einfach einen Trigger und eine Automation um einen input_boolean umzuschalten.

alias: on kal
event: start
offset: "-24:0:0"
entity_id: calendar.schulferien_bayern
id: "on"
trigger: calendar

Ja, das habe ich auch probiert - allerdings mit dem selben Ergebnis das es nicht erkannt wird.

Die Workday Integration kann automatisch mit Feiertagen umgehen wenn man auch die Holiday Integration installiert (und konfiguriert) hat.

Edit: Die Holiday Integration enthält per Default keine Schulferien.

Man bekommt das mit den Schulferien hin, mit einem eigenen Kalender im HA für nur die Schulferien. Ich hab’ mir das damals für meine Müll Benachrichtungen zusammengesucht.

Solange wir keine Details kennen (= Code deiner Automation) und du uns nicht verrätst, an welcher Stelle des oben von @Wiesbaden_Er geposteten Links du Verständnisprobleme hat, wird’s schwierig mit einer Lösung.

Ich habe es inzwischen so gelöst:

     # morgen frei
      - name: Cal_FreeNextDay
        unique_id: 48d5z43d5
        icon: mdi:bed
        state:  >
          {% set tomorrow = (now() + timedelta(days=1)).date() %}
          {% set nextweekday = (now() + timedelta(days=1)).weekday() | int %}
          
          {% set start_1 = state_attr('calendar.ferien', 'start_time') %}
          {% set end_1 = state_attr('calendar.ferien', 'end_time') %}
          {% set all_day_1 = state_attr('calendar.ferien', 'all_day') %}
          
          {% set start_2 = state_attr('calendar.feiertage', 'start_time') %}
          {% set end_2 = state_attr('calendar.feiertage', 'end_time') %}
          {% set all_day_2 = state_attr('calendar.feiertage', 'all_day') %}
          
          {% set cond_1 = (start_1 and end_1 and all_day_1 and as_datetime(start_1).date() <= tomorrow < as_datetime(end_1).date()) %}
          {% set cond_2 = (start_2 and end_2 and all_day_2 and as_datetime(start_2).date() <= tomorrow < as_datetime(end_2).date()) %}
          {% set cond_3 = (nextweekday == 5 or nextweekday == 6) %}
          
          {{ (cond_1 or cond_2 or cond_3) | string }}

Es werden die Kalender “Ferien” und “Feiertage” abgefragt, sowie ob Morgen Samstag oder Sonntag ist. Der Eintrag in den Kalender muss ganztägig sein, und es darf nur ein Eintrag am Tag vorhanden sein. Deswegen habe ich es auch mit zwei Kalender lösen müssen.

Rückgabe ist dann ‘true’ wenn am nächsten Tag frei ist.