Hallo und Grüße aus Berlin.
Ich bin stiller Mitleser und folge gern Euren Themen. Nun ist es bei mir soweit eine Frage zu stellen.
Ich habe vor mir ein Automatisierung zu basteln, die den Wecker auf meinem Handy zu stellen. Dabei soll der Kalender (calendar.rene) als Grundlage dienen. Hier ist mein Dienstplan mit Startzeiten hinterlegt. Auch frei Tage sind mit dem Titel „frei“ hinterlegt. Daraus soll dann eine Weckzeit an mein Handy gesendet werden (rene_handy). Ich habe mir die Daten der verschiedenen Weckzeiten in der Variable „weckzeit“ zusammen gebastelt, das auch frei in Abhängigkeit von Frei am Wochenende und in der Woche, berücksichtigt. Wenn ein Termin mit Startzeit angegeben ist, soll die Startzeit minus 90 Minuten als Weckzeit genommen werden. Unter habt Ihr meine Yaml, die den Fehler " Message malformed: extra keys not allowed @ data[‚0‘] " ausgibt. Habt Ihr eine Idee wo ich den Fehler noch suchen kann?
Vielen Dank und liebe Grüße aus Berlin
René
- id: weckerkalender
alias: Wecker
trigger:
- platform: time
at: "18:00:00"
action:
- service: calendar.get_events
target:
entity_id: calendar.rene
data:
duration:
days: 1
response_variable: calendar_events
- variables:
morgen_datum: "{{ (now() + timedelta(days=1)).strftime('%Y-%m-%d') }}"
morgen_weekday: "{{ (now() + timedelta(days=1)).weekday() }}"
ist_wochenende: "{{ morgen_weekday > 4 }}"
standard_weckzeit_woche: "06:00:00"
standard_weckzeit_wochenende: "07:30:00"
weckzeit: >
{% set frei_tag = calendar_events.calendar.events | selectattr('summary', 'search', 'frei') | list | count > 0 %}
{% set event_mit_zeit = calendar_events.calendar.events | selectattr('start', 'defined') | list | count > 0 %}
{% if frei_tag %}
{% if ist_wochenende %}
{{ standard_weckzeit_wochenende }}
{% else %}
{{ standard_weckzeit_woche }}
{% endif %}
{% elif event_mit_zeit %}
{% set event_start_str = calendar_events.calendar.events[0].start %}
{% set event_start = strptime(event_start_str, '%Y-%m-%dT%H:%M:%S%z') %}
{% set weckzeit_dt = event_start - timedelta(minutes=90) %}
{{ weckzeit_dt.strftime('%H:%M:%S') }}
{% else %}
{% if ist_wochenende %}
{{ standard_weckzeit_wochenende }}
{% else %}
{{ standard_weckzeit_woche }}
{% endif %}
{% endif %}
- service: notify.mobile_app_rene_handy
data:
intent_package_name: com.google.android.deskclock
message: "Wecker für morgen gestellt auf {{ weckzeit }}"
command_activity: SetAlarm
alarm_time: "{{ weckzeit }}"