Rolladen mit iCal schalten

Begonnen von ms_steini, 27 Dezember 2016, 13:43:22

Vorheriges Thema - Nächstes Thema

ms_steini

Hallo zusammen,

da ich im 3-Schichtdienst tätig bin möchte ich gerne im Schlfzimmer die Rolladen bei Nachtdienst erst um 13 Uhr öffnen.
Dazu habe ich ersteinmal einen Calender mit meinem iCal angelegt.
(Mein Dienstplan liegt bereits jetzt schon für 2017 und 2018 als iCal Datei vor und bei Änderungen wird dies auch aktualisiert)

define Nachtdienst.2016 Calendar ical url http://www.xxx/xxx/Nachtdienst_2016.ics 43200

Dazu habe ich mir ein Dummy und ein Notify angelegt:
define Nachtdienst.notify notify Nachtdienst.2016 { fhem "set Nachtdienst.dummy " . (ReadingsVal("Nachtdienst.2016", "modeStart", "") =~ "_Nacht" ? 1:0) }
define Nachtdienst.dummy dummy
und natürlich noch ein AT:
define Schlafzimmer.Rollo.Nachtdienst.auf at *13:00:00 { if (Value("Schichtplan_Nacht") ) { fhem("set OG.Rollo.Schlafzimmer.Fenster,OG.Rollo.Schlafzimmer.Tuer on");; } }

Wie bekomme ich denn jetzt beim NOTIFY die Abfrage für die Jahre 2016, 2017 und 2018 eingetragen?
.... und gedacht habe ich mir das so:
define Nachtdienst.notify notify (Nachtdienst.2016|Nachtdienst.2017|Nachtdienst.2018) { fhem "set Nachtdienst.dummy " . (ReadingsVal("(Nachtdienst.2016|Nachtdienst.2017|Nachtdienst.2018)", "modeStart", "") =~ "_Nacht" ? 1:0) }
funktioniert das so ?

Weiterhin habe ich noch ein Problem mit dem "modeStart" und zwar, Der Nachtdienst beginnt z.B. am 27.12.2016 um 20:00 Uhr und endet am 28.12. 2016 um 05:45 Uhr.
Die Rollos sollen dann natürlich erst am 28.12.2016 um 13 Uhr auf gehen und nicht am 27.



Kann mir bitte jemand erklähren wie ich das vernünftig lösen kann, vielen Dank


hartenthaler

Zitat von: ms_steini am 27 Dezember 2016, 13:43:22
ReadingsVal("(Nachtdienst.2016|Nachtdienst.2017|Nachtdienst.2018)", "modeStart", "")

Ich habe Deine Logik noch nicht durchblickt, aber ReadingsVal erwartet im ersten Parameter genau ein Device und nicht eine Sammlung von mehreren Devices. Das kann also so nicht gehen.

Aber generell: was interessiert Dich ab nächster Woche noch 2016? Und ist 2018 schon interessant? Wenn es bislang für 2016 funktioniert hat, dann ersetzte doch einfach 2016 überall durch 2017 und alles läuft weiter wie gewohnt.

Löst natürlich nicht das Problem, dass eine Nachtschicht über zwei Tage hinweg läuft. Kannst Du statt auf den Beginn der Nachtschicht nicht einfach auf das Ende der Nachtschicht triggern, also modeEnd statt modeStart? Aber wie gesagt, ist nur eine Vermutung, müsste man sich näher ansehen.
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

ms_steini

es ging mir haubsächlich darum die vorhandenen ical Dateien einzubinden, ob 2018 schon relevant ist oder nicht, was ich hab, das hab ich.
Funktionieren tut es mit:
define Nachschicht.notify notify Nachtschicht.2016 { fhem "set Schichtplan_Nacht " . (ReadingsVal("Nachtschicht.2016", "modeStart", "") =~ "_Nacht" ? 1:0) }
Da ich ja ab nächste Woche das notify und den Kalender auf 2017 umstellen muß, habe ich mir gedacht ich nehme auch gleich schon 2018 mit auf.

Na vieleicht wäre es ja eine bessere Variante die iCal datei nicht Jahresabhängig zu machen sondern alle verfügbaren Jahre vom Schichtplan in eine iCal Datei zu packen.
Das könnte ich mit PHP realisieren, da die iCal datei so oder so schon per PHP und mysql aufbereitet wird, Jahr für Jahr.
Wenn ich alles in eine iCal Datei einfliessen lassen brauche ich mich auch nicht mehr um Jahreswechsel zu kümmern.

Ich glaube das wäre für mich die beste lösung

ms_steini

ODER mal anders gefragt, WIE MACHT IHR DAS DENN ?

Hier sind doch bestimmt einige die z.B. den Schulferien-Kalender von schulferien.org integriet haben, geht ihr jedes Jahr her und ändert manuell das Jahr der ical Datei ?
Kann ich mir eigendlich nicht vorstellen, denn das hat ja nichts mit Automation zu tun.