Hallo,
Ich hab das ical Plugin in verbindung mit einem Google Kalender in mein SmartHomeNG integriert,
in diesen Kalender trage ich meinen Urlaub und Feiertage ein,
zusätzlich hab ich mir eine kleine Logik geschrieben, die mir täglich prüft, ob am nächsten Tag ein Feiertag oder Urlaub ansteht,
und dadurch schaltet sich mein Squeezebox Radiowecker entsprechend ein oder aus.
Das ganze funktioniert mit eintägigen Ereignissen wie z.B. Feiertagen perfekt, trage ich aber z.B. eine oder 2 Urlaubswochen als durchgehenden Termin ein erkennt das meine Logik nicht. Kann mir hier jemand einen Tip geben, wie ich das lösen kann ?
Alternativ gibt es zwar im ical Plugin bereits die Funktion, dass man wenn am besagten Tag ein Termin ansteht ein Bool Item triggern kann, allerdings bräuchte ich diese Funktion eben einen Tag vorher.
hier die Logik:
Ich hab das ical Plugin in verbindung mit einem Google Kalender in mein SmartHomeNG integriert,
in diesen Kalender trage ich meinen Urlaub und Feiertage ein,
zusätzlich hab ich mir eine kleine Logik geschrieben, die mir täglich prüft, ob am nächsten Tag ein Feiertag oder Urlaub ansteht,
und dadurch schaltet sich mein Squeezebox Radiowecker entsprechend ein oder aus.
Das ganze funktioniert mit eintägigen Ereignissen wie z.B. Feiertagen perfekt, trage ich aber z.B. eine oder 2 Urlaubswochen als durchgehenden Termin ein erkennt das meine Logik nicht. Kann mir hier jemand einen Tip geben, wie ich das lösen kann ?
Alternativ gibt es zwar im ical Plugin bereits die Funktion, dass man wenn am besagten Tag ein Termin ansteht ein Bool Item triggern kann, allerdings bräuchte ich diese Funktion eben einen Tag vorher.
hier die Logik:
Code:
#!/usr/bin/env python heute = sh.now().date() morgen = heute + datetime.timedelta(days=1) urlaub = sh.ical('urlaub', delta=14, offset=0) feiertag = sh.ical('feiertag') if (morgen in urlaub or morgen in feiertag) and not sh.calendar.merker(): sh.Squeezebox_1.Alarm1sw('0') sh.calendar.merker('True') if sh.calendar.merker() == True: if not morgen in urlaub and not morgen in feiertag: sh.Squeezebox_1.Alarm1sw('1') sh.Squeezebox_1.Alarm1set('21600') sh.calendar.merker('False')
Kommentar