Syntaxfrage in Verbindung mit Calview Modul

Begonnen von hinrich2001, 18 Februar 2018, 20:49:24

Vorheriges Thema - Nächstes Thema

hinrich2001

Hallo zusammen,

ich habe eine Frage zur Syntax in Verbindung mit dem Calview Modul.

Idee:
Ich möchte am Vorabend den Kalender prüfen ob meine Frau am nächsten Tag Frühdienst hat - um die Heizung im Badezimmer früher einzuschalten.
Sie trägt in den Google Kalender immer "Früh" oder "Frühdienst" oder "früh" ein (natürlich ohne die Anführungsstriche).
Ich könnte ihr sagen, dass sie immer nur eine Schreibweise verwenden soll, eine Garantie, dass das dann auch so passiert, gibt es natürlich nicht :-)
Das gilt ebenso für die Zeit. D.h. sie trägt nicht exakt die Zeit ihres Dienstes ein, sondern irgendeine Uhrzeit, s.u. 17 bis 18 Uhr. Das ist auch ok, denn es geht hauptsächlich darum, zu sehen, an welchem Tag sie Dienst hat, die Uhrzeit ist da nebensächlich.

Im Calview tauchen die morgigen Termine in den Readings tomorrow_001_summary, tomorrow_002_summary etc. auf.


     2018-02-18 20:41:28   tomorrow_002_bdate morgen
     2018-02-18 20:41:28   tomorrow_002_btime 17:00:00
     2018-02-18 20:41:28   tomorrow_002_categories 
     2018-02-18 20:41:28   tomorrow_002_daysleft 1
     2018-02-18 20:41:28   tomorrow_002_daysleftLong morgen
     2018-02-18 20:41:28   tomorrow_002_description 
     2018-02-18 20:41:28   tomorrow_002_edate 19.02.2018
     2018-02-18 20:41:28   tomorrow_002_etime 18:00:00
     2018-02-18 20:41:28   tomorrow_002_location 
     2018-02-18 20:41:28   tomorrow_002_mode next
     2018-02-18 20:41:28   tomorrow_002_source Familienkalender
     2018-02-18 20:41:28   tomorrow_002_sourcecolor white
     2018-02-18 20:41:28   tomorrow_002_summary Früh
     2018-02-18 20:41:28   tomorrow_002_timeshort 17:00:00 - 18:00:00


Testweise (die Wiederholfrequenz von einer Minute ist sonst natürlich Quatsch) habe ich folgendes gemacht.

define at_fruehdienst_check at +*00:01:00 {\
        if ((ReadingsVal('myCalView', 'tomorrow_001_summary', 0) eq "Früh") || (ReadingsVal('myCalView', 'tomorrow_002_summary', 0) eq "Früh") || (ReadingsVal('myCalView', 'tomorrow_003_summary', 0) eq "Früh")) {\
    fhem "set fruehdienst on"\
    }\
else {\
   {\
   fhem "set fruehdienst off"\
   }\
}}


Das klappt soweit - aber in dem Beispiel auch nur, wenn im Kalender einer der ersten drei Einträge genau "Früh" lautet.

Wie kann man eleganter als mit etlichen ODER-Verknüpfungen
a) die unterschiedlichen Schreibweisen (früh, Früh, Frühdienst...)
b) die verschiedenen "Positionen" im Kalender (001, 002, 003...)
abfangen?

Für Tipps wäre ich euch dankbar!

Viele Grüße,
Hinrich