Kalender Ereignisse filtern und Tage ermitteln

Hallo,

ich habe mehrere Google Kalender in meiner HA Installation.
Ich benötige nun Sensoren, die mir die Anzahl Tage bis zu einem speziellen Kalendereintrag ausgeben.

Bisher habe ich folgendes:

- sensor:
  - unique_id: cal_nextfeiertag
    name: cal_nextfeiertag
    state: "{{(((as_timestamp(state_attr('calendar.feiertage_nrw', 'start_time')))-as_timestamp(now())) | int /60/1440) | round(0,'ceil')}}" 

Dieser Sensor gibt mir die Tage bis zum nächsten Feiertag aus.
Wenn ich nun aber einen anderen Kalender mit mehr Einträgen anspreche, dann werden mir natürlich alle Einträge zurück gegeben.

Ich brauche einen Sensor, der den “normalen Kalender” (calendar.maxx) durchsucht, den nächsten Eintrag mit dem Text “Homeoffice” findet und mir die Tage bis dahin ausgibt.

Stehe total auf dem Schlauch. Vielleicht kann mir da jemand helfen.

Gruß Mäxx

Wofür benötigst du den Sensor? Du kannst Event-Daten direkt in einer Automation z. B. als Bedingung abfragen.

Hi, als Beispiel möchte ich morgens wenn der Wecker klingelt und in meinem Kalender heute HomeOffice steht, den Computer einschalten. Der Kalender zeigt aber bei mir seit Sonntag “Kinderwoche” an. Ist ein Termin mit einer Woche Dauer. Aus diesem Grund muss ich filtern können und nur spezielle Termine auslesen.

Du kannst z.B. den Trigger auf die Wecker-Zeit setzen.
Dann als Bedingung den Zustand des Kalenders nehmen und dort beim Attribut “Message” den Eintrag “HomeOffice” angeben.
Hier mal ein Bsp:

description: ""
mode: single
trigger:
  - platform: time
    at: sensor.maxe_sm_g780g_next_alarm
condition:
  - condition: state
    entity_id: calendar.xyz
    attribute: message
    state: HomeOffice
action:
  - type: turn_on
    device_id: d84bc375797e2d7b2669b85fd9b37658
    entity_id: switch.computer_stecker
    domain: switch

Oder du nimmst den Kalendereintrag als Trigger mit oder ohne offset.

description: ""
trigger:
  - platform: calendar
    event: start
    offset: "-1:0:0"
    entity_id: calendar.maxx
condition:
  - condition: template
    value_template: "{{ 'HomeOffice' in trigger.calendar_event.summary }}"
action:
  - service: switch.turn_on
    data: {}
    target:
      entity_id: switch.steckdose_pc
mode: single

@sirector da fehlt dann aber die Wecker-Zeit.

Das ist richtig. Ich weiß ja nicht ob man es an die Zeit es Events koppeln kann. Deshalb die Alternative…mit oder ohne offset.

Edit:
So wird nicht jeden Tag beim Wecker getriggert, sondern nur am Tag des Kalendereintrag.

Das geht leider nicht, da der aktuelle Termin ja Kinderwoche und nicht Home Office heißt.

Hä? Ich dachte du willst HomeOffice abfragen :thinking:

Edit:
Du fragst direkt den Kalender ab, keinen extra Sensor.

Steht denn nu HomeOffice im Kalender oder nicht? Ich hab’s anscheinend auch noch nicht ganz verstanden.

Irgendwie reden wir am einander vorbei :joy:

In meinem Google Kalender gibt es seit Sonntag 7.5. bis Sonntag 14.5. einen Termin mit dem Text Kinderwoche.
Heute steht in meinem Kalender Home Office.

Ich möchte auf Home Office reagieren.

Der Kalender im HA zeigt aber Kinderwoche an, da dieser Eintrag “der erste gültige und heute andauernde Termin” ist

D.h. im Kalender steht nicht Home Office drin?
In meinem Kalender kann ich mehrere Einträge pro Tag haben.

Also falls “Kinderwoche” und “HomeOffice” drin steht, dann schau dir meine Automation von oben an. Dort habe ich beschrieben, wie du über Message den Zustand “HomeOffice” als Bedingung setzen kannst.

Sowohl die Automation von @maxe als auch meine suchen direkt im Google Kalender nach HomeOffice.

Warum zeigt dein Kalender im HA nur einen Termin an und nicht alle?

Der Kalender zeigt alle Termine an.

Aber die Entität des Kalenders zeigt nur “Kinderwoche” an.

Welche Entität? Kannst du einen Screenshot posten?

Nicht wundern. 'Kinderwoche" heißt hier “Kinder bei uns”

Das ist egal was da steht. Da zeigt er wirklich nur das nächste Event an.

Teste einfach mal beiden Automationen, dann merkst du was wir meinen.

OK. Werde ich testen. Brauche das allerdings für Node Red.
Aber es muss doch auch generell möglich sein, einen Templatesensor zu erzeugen, in dem die Anzahl Tage bis zum nächsten “Home Office Tag” steht. Dann kann ich das “leichter” an diversen Stellen verwenden.

Nachtrag:
Ähnliches gibt es doch in den Müll Kalendern für Papier, Bio und Rest Müll.

:crayon:by HarryP: Zusammenführung Doppelpost.
*@Maexx77 *
Bitte zukünftig für Nachträge/Korrekturen die “bearbeiten” Funktion (geht 24h) verwenden. Danke!

Bei Node Red bin ich raus … keinen Plan.

Schade, aber auf jeden Fall schon Mal vielen Dank für deine Hilfe.

Aber der zweite Absatz (Anzahl Tage bis…) müsste doch mit reinem HA möglich sein, oder?