Hauptmenü

Wecker anhand Kalender

Begonnen von Kitt, 10 Juli 2019, 16:30:43

Vorheriges Thema - Nächstes Thema

Kitt

Hallo,

ich habe meinen Dienstplan im Google-Calender (notfalls könnte ich den auch irgendwie anders abspeichern).
Darin sind die Schichten "Früh", "Spät" und "Nacht" eingetragen.

Gibt es eine Möglichkeit, automatisch einen Wecker in FHEM (oder Alexa) danach zu stellen?
Also, dass ich nicht zusätzlich jeden Tag den Wecker stellen muss?

Danke und viele Grüße

Otto123

#1
Hi,

ja das geht mit dem Calendar Modul. Ein passendes Beispiel solltest Du in der Commandref finden.
Entgegen dem was hier viele machen brauchst Du dazu kein anderes Modul. Prinzip:
Das Calendar Modul erzeugt Events, Du definierst dazu ein notify als Wecker, fertig. Falls der Termin nicht deiner Weckzeit entspricht kann man das entsprechend behandeln. Für Details brauchte man Details aus deinem Kalender :)

Ansonsten frag einfach nach.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Kitt

Hallo,

danke schonmal. Ich habe im Kalender jeden Tag einen ganztätigen Eintrag "früh", "spät" und "nacht" erstellt
und kann die readings auch abrufen.

Ich würde nun gerne am Vortag (abends) einen Wecker stellen lassen, abhängig von der nächsten Schicht. Gibt es dazu schon
eine Vorlage, an die ich mich halten kann? Ich kenne mich mit dem Programmieren leider nicht besonders gut aus.

Danke und VG

Otto123

Hi,

dazu "und kann die readings auch abrufen." kann ich mir irgendwie nix vorstellen. Da müsstest Du mich mit einem list von dem Device  und/oder Kalender unterstützen.
Ich kann mir auch unter Wecker noch nicht viel vorstellen.

Prinzipiell kannst Du einmal am Tag 18:00 Uhr ? ein at laufen lassen, was den nächsten Tag abfragt, auswertet und deinen Wecker stellt.

So ein Tagestermin ist irgendwie "dumm".  Ich dachte ja eher daran da steht Schicht von 10:00 - 18:00 und du willst 2 h vorher aufstehen. Dann könnte man einen Alarm Event im Kalender erzeugen und das wäre Dein Wecker.

Aber ganz wie Du willst, viele Wege führen noch Rom.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Kitt

#4
Hi,

hier ist mal das List:


Internals:
   CFGFN     
   DEF        Dienstplankalender 300
   FUUID      5d285b8d-f33f-52ef-1fc4-2dee945db4e9456f
   INTERVAL   43200
   KALENDER   Dienstplankalender
   NAME       Dienstplan
   NR         897
   NTFY_ORDER 50-Dienstplan
   STATE      t: 1 td: 0 tm: 1
   TYPE       CALVIEW
   READINGS:
     2019-07-12 16:31:42   c-term          1
     2019-07-12 16:31:42   c-today         0
     2019-07-12 16:31:42   c-tomorrow      1
     2019-07-12 16:31:42   state           t: 1 td: 0 tm: 1
     2019-07-12 16:31:42   t_001_bdate     13.07.2019
     2019-07-12 16:31:42   t_001_btime     00:00
     2019-07-12 16:31:42   t_001_categories
     2019-07-12 16:31:42   t_001_daysleft  1
     2019-07-12 16:31:42   t_001_daysleftLong morgen
     2019-07-12 16:31:42   t_001_description
     2019-07-12 16:31:42   t_001_duration  ganztägig
     2019-07-12 16:31:42   t_001_edate     14.07.2019
     2019-07-12 16:31:42   t_001_etime     00:00
     2019-07-12 16:31:42   t_001_location 
     2019-07-12 16:31:42   t_001_mode      next
     2019-07-12 16:31:42   t_001_source    Dienstplankalender
     2019-07-12 16:31:42   t_001_sourcecolor white
     2019-07-12 16:31:42   t_001_summary   Spät
     2019-07-12 16:31:42   t_001_timeshort ganztägig
     2019-07-12 16:31:42   t_001_weekday   6
     2019-07-12 16:31:42   t_001_weekdayname Samstag
     2019-07-12 16:31:42   tomorrow_001_bdate morgen
     2019-07-12 16:31:42   tomorrow_001_btime 00:00
     2019-07-12 16:31:42   tomorrow_001_categories
     2019-07-12 16:31:42   tomorrow_001_daysleft 1
     2019-07-12 16:31:42   tomorrow_001_daysleftLong morgen
     2019-07-12 16:31:42   tomorrow_001_description
     2019-07-12 16:31:42   tomorrow_001_duration ganztägig
     2019-07-12 16:31:42   tomorrow_001_edate 14.07.2019
     2019-07-12 16:31:42   tomorrow_001_etime 00:00
     2019-07-12 16:31:42   tomorrow_001_location
     2019-07-12 16:31:42   tomorrow_001_mode next
     2019-07-12 16:31:42   tomorrow_001_source Dienstplankalender
     2019-07-12 16:31:42   tomorrow_001_sourcecolor white
     2019-07-12 16:31:42   tomorrow_001_summary Spät
     2019-07-12 16:31:42   tomorrow_001_timeshort ganztägig
     2019-07-12 16:31:42   tomorrow_001_weekday 6
     2019-07-12 16:31:42   tomorrow_001_weekdayname Samstag
Attributes:
   maxreadings 1
   modes      next



Ich möchte also morgen "t_001_summary   Spät" geweckt werden, um 14 Uhr. Dann soll eine Lampe angehen.
Zum Frühdienst soll die Lampe zu einer anderen Zeit eingeschaltet werden.

Ich hab jeden Tag eine andere Schicht und will nicht jeden Tag den Wecker stellen.
Den Schichtplan hab ich als Kalenderdatei zur Verfügung.
Schien mir so am einfachsten, bin aber auch für andere Ideen offen.

Otto123

Na gut Du hast es mit Calview gemacht, hatte ich irgendwie befürchtet. :D
Was mir da einfällt ist ein DOIF, von der Sache her so:
define Wecker DOIF ([14:00] and [Dienstplan:t_001_summary] eq "Spät")(set Lampe on)
DOELSEIF ([06:00] and [Dienstplan:t_001_summary] eq "Früh")(set Lampe on)
DOELSEIF ([22:00] and [Dienstplan:t_001_summary] eq "Nacht")(set Lampe on)


Vielleicht geht es, aber ich habe keine Ahnung was Calview wirklich macht.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Kitt

#6
Super, danke! Ich probiere mal aus, ob es klappt. Kommt das DOIF auch mit den Tagen
zurecht, wenn es keinen Eintrag gibt (wenn ich frei habe oder an Sonntagen)?

Wie hättest du das ganze denn gelöst? Mir war es wichtig, dass ich Änderungen direkt
im Kalender im Handy tätigen kann und der Wecker mich dann automatisch zur
richtigen Zeit weckt. Das müsste dann ja so klappen.

Nochmal danke!

Otto123

#7
Du trägst den Kalender im Smartphone ein
das synchronisiert mit dem Googlekalender in der Cloud (oder schreibt bestenfalls direkt den Googlekalender)
Das Kalender Device (Dienstplankalender) liest Deinen Google Kalender regelmäßig ein (default 1x pro h)
Das Calview Device macht irgendwas mit deinem Calendar Device, liefert z.B. ein Reading.
Das DOIF triggert jetzt zu 3 festen Zeiten und fragt das Reading von Calview ab, je nach Inhalt passiert etwas.

Ich hätte wahrscheinlich den Kalendereintrag so gemacht wie der Termin wirklich ist, also nicht einfach Ganztagestermin sondern: von bis.
Das Calendar Device kann nach einer definierbaren Regel daraus einen Alarmtermin erzeugen. Das Calendar Device erzeugt dann zu diesem Zeitpunkt (Alarm) einen Event.
Auf den Event kann man einfach mit einem notify reagieren - das macht einfach die Lampe an.  ;)

Das Calview Device ist zum Anzeigen, das ist für mich ein Gerät am Ende der Kette - ich würde es nicht als Anfang vom Wecker nehmen.  ;)

Ich habe hier mal sowas gemacht, damit laut Dienstplan definiert vor Dienstbeginn die Technik aufgeweckt wird.

Aber ich arbeite nicht in Schichten, ich kann mich da an die Organisation des Tagesablaufes nicht hineindenken.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

nils_

vielleicht auch als Lektüre interessant: https://forum.fhem.de/index.php/topic,87895.0.html

ansonsten bitte unbedingt beachten, das Calendar und CalView unterschiedliche Dinge sind! Otto hat da ja auch schon drauf hingewiesen.
viele Wege in FHEM es gibt!

Kitt

Hallo,

mein Wecker hat mich heute morgen geweckt, obwohl es Sonntags in meinem Kalender keinen Eintrag gibt.
CalView zeigt mir ein Ergeignis vom vorletzten Samstag an.

Hier mal das List:
Internals:
   DEF        Dienstplankalender 300
   FUUID      5d285b8d-f33f-52ef-1fc4-2dee945db4e9456f
   INTERVAL   43200
   KALENDER   Dienstplankalender
   NAME       Dienstplan
   NR         60
   NTFY_ORDER 50-Dienstplan
   STATE      t: 3 td: 0 tm: 1
   TYPE       CALVIEW
   READINGS:
     2019-07-21 09:03:22   c-term          3
     2019-07-21 09:03:22   c-today         0
     2019-07-21 09:03:22   c-tomorrow      1
     2019-07-21 09:03:22   state           t: 3 td: 0 tm: 1
     2019-07-21 09:03:22   t_001_bdate     13.07.2019
     2019-07-21 09:03:22   t_001_btime     00:00
     2019-07-21 09:03:22   t_001_categories
     2019-07-21 09:03:22   t_001_daysleft  -8
     2019-07-21 09:03:22   t_001_daysleftLong in -8 Tagen
     2019-07-21 09:03:22   t_001_description
     2019-07-21 09:03:22   t_001_duration  ganztägig
     2019-07-21 09:03:22   t_001_edate     14.07.2019
     2019-07-21 09:03:22   t_001_etime     00:00
     2019-07-21 09:03:22   t_001_location 
     2019-07-21 09:03:22   t_001_mode      next
     2019-07-21 09:03:22   t_001_source    Dienstplankalender
     2019-07-21 09:03:22   t_001_sourcecolor white
     2019-07-21 09:03:22   t_001_summary   Spät
     2019-07-21 09:03:22   t_001_timeshort ganztägig
     2019-07-21 09:03:22   t_001_weekday   6
     2019-07-21 09:03:22   t_001_weekdayname Samstag
     2019-07-21 09:03:22   t_002_bdate     20.07.2019
     2019-07-21 09:03:22   t_002_btime     00:00
     2019-07-21 09:03:22   t_002_categories
     2019-07-21 09:03:22   t_002_daysleft  -1
     2019-07-21 09:03:22   t_002_daysleftLong in -1 Tagen
     2019-07-21 09:03:22   t_002_description
     2019-07-21 09:03:22   t_002_duration  ganztägig
     2019-07-21 09:03:22   t_002_edate     21.07.2019
     2019-07-21 09:03:22   t_002_etime     00:00
     2019-07-21 09:03:22   t_002_location 
     2019-07-21 09:03:22   t_002_mode      next
     2019-07-21 09:03:22   t_002_source    Dienstplankalender
     2019-07-21 09:03:22   t_002_sourcecolor white
     2019-07-21 09:03:22   t_002_summary   Spät
     2019-07-21 09:03:22   t_002_timeshort ganztägig
     2019-07-21 09:03:22   t_002_weekday   6
     2019-07-21 09:03:22   t_002_weekdayname Samstag
     2019-07-21 09:03:22   t_003_bdate     22.07.2019
     2019-07-21 09:03:22   t_003_btime     00:00
     2019-07-21 09:03:22   t_003_categories
     2019-07-21 09:03:22   t_003_daysleft  1
     2019-07-21 09:03:22   t_003_daysleftLong morgen
     2019-07-21 09:03:22   t_003_description
     2019-07-21 09:03:22   t_003_duration  ganztägig
     2019-07-21 09:03:22   t_003_edate     23.07.2019
     2019-07-21 09:03:22   t_003_etime     00:00
     2019-07-21 09:03:22   t_003_location 
     2019-07-21 09:03:22   t_003_mode      next
     2019-07-21 09:03:22   t_003_source    Dienstplankalender
     2019-07-21 09:03:22   t_003_sourcecolor white
     2019-07-21 09:03:22   t_003_summary   Spät
     2019-07-21 09:03:22   t_003_timeshort ganztägig
     2019-07-21 09:03:22   t_003_weekday   1
     2019-07-21 09:03:22   t_003_weekdayname Montag
     2019-07-21 09:03:22   tomorrow_001_bdate morgen
     2019-07-21 09:03:22   tomorrow_001_btime 00:00
     2019-07-21 09:03:22   tomorrow_001_categories
     2019-07-21 09:03:22   tomorrow_001_daysleft 1
     2019-07-21 09:03:22   tomorrow_001_daysleftLong morgen
     2019-07-21 09:03:22   tomorrow_001_description
     2019-07-21 09:03:22   tomorrow_001_duration ganztägig
     2019-07-21 09:03:22   tomorrow_001_edate 23.07.2019
     2019-07-21 09:03:22   tomorrow_001_etime 00:00
     2019-07-21 09:03:22   tomorrow_001_location
     2019-07-21 09:03:22   tomorrow_001_mode next
     2019-07-21 09:03:22   tomorrow_001_source Dienstplankalender
     2019-07-21 09:03:22   tomorrow_001_sourcecolor white
     2019-07-21 09:03:22   tomorrow_001_summary Spät
     2019-07-21 09:03:22   tomorrow_001_timeshort ganztägig
     2019-07-21 09:03:22   tomorrow_001_weekday 1
     2019-07-21 09:03:22   tomorrow_001_weekdayname Montag
Attributes:
   maxreadings 3
   modes      next


Gibt es eine Möglichkeit, die Readings direkt aus dem Calendar zu bekommen ohne den Umweg über Calview?
Ich verstehe nicht so ganz, wieso das Problem überhaupt auftritt.

VG

Otto123

#10
Zitat von: Kitt am 21 Juli 2019, 12:24:53
Gibt es eine Möglichkeit, die Readings direkt aus dem Calendar zu bekommen ohne den Umweg über Calview?
Ich verstehe nicht so ganz, wieso das Problem überhaupt auftritt.

VG
ja, es gibt die Variante ohne calview, habe ich dir ja beschrieben.
Du läufst jetzt scheinbar in dem typischen Problem,dass alte Termine angezeigt werden. Du kannst mit den hideolder... Attributen experimentieren.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Schuh

ich habe es mit den Modulen calview, alarmclock und DOIF gemacht.

define Wecker_stellen DOIF ([23:30] and ([?vKalender_..._Schichtplan:tomorrow_001_summary] eq "Zwischenschicht")) (set Wecker load Weekprofile_2)\
DOELSEIF \
([23:30] and ([?vKalender_..._Schichtplan:tomorrow_001_summary] eq "Frühschicht")) (set Wecker load Weekprofile_1) \
DOELSEIF \
([23:30] and ([?vKalender_..._Schichtplan:tomorrow_001_summary] eq "Frühschicht ...straße")) (set Wecker load Weekprofile_1) \
DOELSEIF \
([23:30] and ([?vKalender_..._Schichtplan:tomorrow_001_summary] eq "Frühschicht Bereitschaft")) (set Wecker load Weekprofile_1) \
DOELSE \
(set Wecker AlarmOff All)

mit dem Wecker alarmclock hast du viele Einstellmöglichkeiten.
rpi 3, CUL433, CUL868, CUL JeeLink, ZigBee CC2531, HUE Bridge, Sonos, Lametric, Nello, Sonoff, Telegrambot, Alexa, XiaomiMQTT, ....