Werte aus einer Action in einem Sensor verwenden?

Hallo zusammen!

Ich habe eine Action, die mir aus dem Kalender den nächstem Termin für morgen übergibt. Die ist wirklich einfach:

action: calendar.get_events
target:
entity_id: calendar.muell
data:
duration:
days: 1
hours: 0
minutes: 0
seconds: 0

Der Wert, der zurückkommt ist perfekt.
Jetzt möchte ich das aber in einer entity speichern. damit ich es in Automationen verwenden kann.
Zuerst dachte ich daran, dass ich mir mit Templates einen Sensor baue, der den Wert immer drin hat.

Aber da scheitert es schon an meinem Wissen. Ich habe gegoogelt und die KI befragt und diese gibt mir folgendes zurück für einen Sensor, der den nächsten Termin enthält:

sensor:

name: “Termin Müll morgen”
unique_id: termin_muell_morgen
state: >
{% set events = state_attr(‘calendar.muell’, ‘events’) %}
{% set now_dt = now() %}
{% set morgen_start = now_dt.replace(hour=0, minute=0, second=0, microsecond=0) + timedelta(days=1) %}
{% set morgen_end = morgen_start + timedelta(days=1) %}
{% for event in events %}
{% set start_dt = event.start_datetime if event.start_datetime else event.start %}
{% if start_dt is defined and start_dt >= morgen_start and start_dt < morgen_end %}
{{ event.summary }}
{% endif %}
{% endfor %}
# Optional: Icon anpassen
icon: >
{% set events = state_attr(‘calendar.muell_altkirchen’, ‘events’) %}
{% set now_dt = now() %}
{% set morgen_start = now_dt.replace(hour=0, minute=0, second=0, microsecond=0) + timedelta(days=1) %}
{% set morgen_end = morgen_start + timedelta(days=1) %}
{% for event in events %}
{% set start_dt = event.start_datetime if event.start_datetime else event.start %}
{% if start_dt is defined and start_dt >= morgen_start and start_dt < morgen_end %}
{% if ‘Restmüll’ in event.summary %}
mdi:trash-can
{% elif ‘Papier’ in event.summary %}
mdi:package-variant
{% else %}
mdi:calendar-check
{% endif %}
{% endif %}
{% endfor %}
mdi:calendar-question

Da denke ich mir, dass kann doch nicht der Weg sein, oder? Die Action ist so viel einfacher gehalten und liefert das perfekte Ergebnis. Das muss doch einfacher umzusetzten sein, als so ein langes Template-Statement.

Könnt ihr mich da auf den richtigen Weg bringen?

Danke vorab!

:crayon:by HarryP: Post formatiert

Verwende die Wate Collection Schedule aus dem HACS.
Da hast Du dann alles was Du brauchst.

Gruß Osorkon

Danke für den Hinweis, die habe ich bereits verwendet, aber mein Entsorger bzw. meine Gemeinde ist da nicht mehr drin.

Dann verwende doch Deinen bestehenden Kalender als Quelle.

Gruß Osorkon

Was genau möchtest du wo verwenden?

Im Grunde genommen möchte ich auf einen EInk Display die Tonnenart der nächsten Leerung anzeigen lassen. Den Kalender dafür muss ich händisch pflegen, weil meine Gemeinde nicht mitmacht. Den Kalender habe ich in HA angelegt.
Ich bin jetzt soweit, dass ich eine Aktion ausführe, wenn am nächsten Tag ein Termin im Kalender ist. Da es nur der Müllkalender ist und nur Ganztagestermine drin sind, kann ich da so vorgehen.

Aber: Wenn ich jetzt den Text aus dem Termin (Attribute “message” aus Entität Kalender") als Wert für OpenDisplay text: haben will, kapiere ich immer noch nicht, wie ich das da reingebe.

Ich würde es so in etwa testen

alias: Muell morgen
description: ""
trigger:
  - platform: calendar
    event: start
    offset: "-24:0:0"
    entity_id: calendar.muell
condition: []
action:
  - service: notify.xyz
    data:
      message: >-
        {{state_attr('calendar.muell','message')}}
mode: single

offset und action stellst du so ein, wie du es brauchst.
state_attr() ist hier das wichtigste.