Ganztagstermin in googlekalender prüfen und Aktion ausführen

Moin zusammen,

ich möchte in einer Automation den integrierten Googlekalender abfragen ob z.B. ein Ganztagstermin „Spätdienst“ vorhanden ist. Sobald dieser vorhanden ist, soll eine Aktion ausgeführt werden (z.B. Kaffeemaschine an, Heizung auf 24 Grad usw usw.).

Natürlich habe ich diesen Beitrag im Forum gefunden, der hat mich allerdings total verwirrt und ich verstehe die Lösungsansätze nicht.

Ich habe es so ausprobiert und ich meine es hat letzte Woche einmal funktioniert, diese Woche springt die Automation aber nicht an.

alias: kalender_spaetschicht
description: ""
triggers:
  - at: "07:00:00"
    trigger: time
    weekday:
      - mon
      - tue
      - wed
      - thu
      - fri
conditions:
  - condition: state
    state: Spätschicht
    entity_id: calendar.meinkalender_googlemail_com
    for:
      hours: 0
      minutes: 0
      seconds: 0
    attribute: description
actions:
  - type: turn_on
    device_id: light.xyz
    entity_id: light.zxy
    domain: light
  - action: switch.turn_on
    metadata: {}
    data: {}
    target:
      entity_id:
        - switch.kaffeevollautomat_einschalter
        - switch.steckdose_bad
  - delay:
      hours: 0
      minutes: 3
      seconds: 0
      milliseconds: 0
  - action: script.paloma_bad
    metadata: {}
    data: {}
mode: single

Vielleicht erkennt einer das Problem, ich komme da leider nicht weiter.

Gruß, AndiFidi

Hi.

Ich habe mir auch solche Automationen erstellt und nutze diese seit Ewigkeiten ohne Probleme. Nur mit dem Unterschied, das ich einen Schalter steuere und diesen dann für andere Automationen nutze:

description: ""
mode: parallel
triggers:
  - event: start
    offset: "-0:0:0"
    entity_id: calendar.XXXXXXXX_googlemail_com
    id: Kalendereintrag Start Google
    trigger: calendar
    alias: " Kalender Google Start"
  - event: end
    offset: "0:1:0"
    entity_id: calendar.XXXXXXXX_googlemail_com
    id: Kalendereintrag Ende Google
    trigger: calendar
    alias: " Kalender Google Ende"
conditions: []
actions:
  - alias: Schalter Bereitschaft an
    if:
      - condition: trigger
        id:
          - Kalendereintrag Start Google
        enabled: true
      - condition: template
        value_template: "{{ trigger.calendar_event.summary is search('Bereitschaft') }}"
    then:
      - data: {}
        target:
          entity_id: input_boolean.bereitschaft
        action: input_boolean.turn_on
    else: []
  - alias: Schalter Bereitschaft aus
    if:
      - condition: trigger
        id:
          - Kalendereintrag Ende Google
      - condition: template
        value_template: "{{ trigger.calendar_event.summary is search('Bereitschaft') }}"
    then:
      - target:
          device_id: []
          area_id: []
          entity_id: input_boolean.bereitschaft
        data: {}
        action: input_boolean.turn_off
max: 10

Gruß Jonas

Hi @Jonas.DER

Ein guter Ansatz, ich habe das versucht umzusetzen. Leider wird input_boolean nicht aktiviert.

Was mache ich falsch?

alias: Kalender_spaet
description: ""
triggers:
  - event: start
    offset: "-0:0:0"
    entity_id: calendar.meinkalender_googlemail_com
    id: Kalendereintrag Start Google
    trigger: calendar
    alias: Kalender Google Start
  - event: end
    offset: "0:1:0"
    entity_id: calendar.meinkalender_googlemail_com
    id: Kalendereintrag Ende Google
    trigger: calendar
    alias: Kalender Google Ende
conditions: []
actions:
  - alias: Schalter Spätschicht an
    if:
      - condition: trigger
        id:
          - Kalendereintrag Start Google
        enabled: true
      - condition: template
        value_template: "{{ trigger.calendar_event.summary is search('Spätschicht') }}"
    then:
      - data: {}
        target:
          entity_id: input_boolean.dienst_spaet
        action: input_boolean.turn_on
    else: []
  - alias: Schalter Spätschicht aus
    if:
      - condition: trigger
        id:
          - Kalendereintrag Ende Google
      - condition: template
        value_template: "{{ trigger.calendar_event.summary is search('Spätschicht') }}"
    then:
      - target:
          device_id: []
          area_id: []
          entity_id: input_boolean.dienst_spaet
        data: {}
        action: input_boolean.turn_off
mode: parallel
max: 10

Grüße, AndiFidi

Wird die Automation getriggert/ausgelöst? Wenn ja, wie sieht die Trace-Timeline aus?

Hi.

Auf dem ersten Blick sieht deine Automation gut aus. Was mir nur noch einfallt ist, das man genau auf die Schreibweise im Google Kalender achten muss.

Wenn du jetzt z.B. “Spätschicht” mit dem Handy im Kalender einträgst, wird oft ein Leerzeichen hinten dran gehängt. Ich meine, dass das dann nicht funktioniert.

Jonas

Hi @Jonas.DER Der Termin ist ohne Leerzeichen am Ende. Die Schichten habe ich mit einem Script erstellt :slight_smile:

Hi @sirector

 Kalender_spaet  triggered
09:00:00 - Vor 7 Minuten

dienst_spaet  eingeschaltet ausgelöst durch Automation Kalender_spaet  triggered
09:00:00 - Vor 7 Minuten

Da der Termin gestern zum testen ein Ganztagstermin war, hat das wohl nicht funktioniert.

Heute stand der Termin im Kalender so wie er sein soll und er hat um 09:00 getriggert.

Allerdings möchte ich ja, daß der Trigger schon vorher ausgelöst werden soll. Wie war das mit dem Offset nochmal ?

offset: "-24:0:0"

würde z. B. 24 Stunden vorher auslösen.

@sirector

So funktioniert es, danke euch beiden :slight_smile:

Was bedeutet/bewirkt das zweite offset bei ‚end‘

Das gleiche wie beim ersten Offset. Entweder später oder früher, aber dann abhängig vom Ende des Termins.

Sehr gut, vielen Dank. Die Automation kann jetzt ja für alles mögliche eingesetzt werden.

War ein guter Tipp :slight_smile:

Ich habe noch nie eine Automation erstellt mit:

mode: parallel
max: 10

Schon erstaunlich, daß ich das noch nicht benötigte.

Beste Grüße

AndiFidi