Template Sensor Geburtstag

Hallo zusammen,

ich möchte per ICAL Kalender einen Sensor machen, der mir dann die nächsten Geburstage “ausspuckt”

Sensor wurde auch soweit schon erstellt.

Die Entität von dem ICAL Kalender sagt folgendes:

Wenn ich aber jetzt nach der Entität des Sensors schaue, wo mir den nächsten Geburtstag anzeigen soll, findet er nichts…

Hier der Sensor code… sieht hier irgendjemand nen Fehler ?

- sensor:
      - name: "Nächster Geburtstag"
        unique_id: naechster_geburtstag_sensor
        icon: mdi:cake
        state: >
          {% set calendar_entity = 'calendar.gemeinsamer_kalender' %} {# <== WICHTIG: Entitätsnamen anpassen! #}
          {% set next_event = state_attr(calendar_entity, 'next_event') %}
          {% if next_event is not none %}
            {{ next_event.summary }}
          {% else %}
            Kein bevorstehender Geburtstag gefunden
          {% endif %}
        attributes:
          datum: >
            {% set calendar_entity = 'calendar.gemeinsamer_kalender' %} {# <== WICHTIG: Entitätsnamen anpassen! #}
            {% set next_event = state_attr(calendar_entity, 'next_event') %}
            {% if next_event is not none %}
              {{ next_event.start | as_datetime | as_local | strftime('%Y-%m-%d') }}
            {% else %}
              N/A
            {% endif %}
          tage_bis: >
            {% set calendar_entity = 'calendar.gemeinsamer_kalender' %} {# <== WICHTIG: Entitätsnamen anpassen! #}
            {% set next_event = state_attr(calendar_entity, 'next_event') %}
            {% if next_event is not none %}
              {% set start_dt = next_event.start | as_datetime | as_local %}
              {% set today = now().date() %}
              {% set start_date = start_dt.date() %}

              {# Handle recurring birthdays - check if date this year has passed #}
              {% set next_birthday_this_year = start_date.replace(year=today.year) %}
              {% if next_birthday_this_year < today %}
                {# Birthday for this year has passed, calculate for next year #}
                {% set next_birthday = start_date.replace(year=today.year + 1) %}
              {% else %}
                {# Birthday is still this year #}
                {% set next_birthday = next_birthday_this_year %}
              {% endif %}

              {{ (next_birthday - today).days }}
            {% else %}
              N/A
            {% endif %}

DANKE schon mal :slight_smile:

Kann sein, dass ich doof auf den Augen bin, aber ich sehe in deinen Kalenderattributen kein Attribut next_event.

Oh okay… da ich nicht so fit bin, in dem ganzen YAML Config Sache, kannst du mir genau sagen, wie das aussehen sollte ? Also wie ich es dann einfügen muss ?

In HACS gibt es die Anniversaries-Integration.
Da kann man Geburtstage eintragen und sich im Kalender anzeigen lassen.
Der Zeigt auch die Tage bis zum Geburtstag an worauf man dann reagieren kann.

Kann man dort auch ein ICAL Kalender angeben, wie Google Kalender ?
Den ich steuere mit mehreren Leuten im Haushalt alles über den Kalender von Google.

Wo hast du denn Code denn kopiert?

Also entweder baust du einen Trigger-basierten Sensor, der die Kalendereinträge abruft oder du schreibst selbst ein Dictionary mit den Geburtstagsdaten.

Das nicht, die Integration erzeugt eine eigene Kalender-Entität die dann mit deinem Google-Kalender zusammen in einer Kalender-Karte angezeigt werden kann.

Diesen habe ich von Gemini rauskopiert :slight_smile:

Es sollte halt so sein, dass wenn jemand in Google Kalender am Handy oder am PC etwas einträgt, dass es dann in Home Assistant auch erscheint.

Dann einfach die Google-Kalender Integration.
Die Ersteinrichtung ist ein wenig aufwendig, aber auch gut dokumentiert.

Ich bin da auch nicht so fit, aber ich erstelle das jetzt immer mit ChatGPT. Allerdings musst du ihm ständig sagen das du die HA 2025 nutzt, sonst kommt er oft mit veraltetem Code, der dann nicht läuft.

Also die Inegration habe ich schon drauf und die läuft auch soweit…
Ich möchte quasi wenn etwas im Kalender steht, dies auf ein Divoom Display anzeigen lassen. Aber ich bin nicht so fit in dem ganzen Thema :smiley: