Hallo zusammen,
ich habe seit gut 6 Monaten ohne Probleme das ical plugin und eine
Logik in Betrieb welche diverse Aktionen in Abhängigkeit von Kalendereinträgen steuert. (Rollo, "Müllampe", ...)
/Plauder an
Heute morgen hätten wir fast verschlafen weil sh.py fälschlicherweise
davon ausging dass die erste Schulstunde unseres Sohnes ausfällt.
/Plauder aus
Wegen Fritzbox bin ich (allerdings schon länger) auf Develop, ansonsten habe ich in der letzten Zeit nichts an sh.py geschraubt. (Nein, gar nichts)
ein Blick ins Log bringt das Folgende zu Tage:
die zugehörige Logik (vielleicht nicht schön / optimal, aber funktioniert seit Monaten):
und die logic.conf
Kann mir jemand helfen?
Danke vorab & Grüße
Sven
ich habe seit gut 6 Monaten ohne Probleme das ical plugin und eine
Logik in Betrieb welche diverse Aktionen in Abhängigkeit von Kalendereinträgen steuert. (Rollo, "Müllampe", ...)
/Plauder an
Heute morgen hätten wir fast verschlafen weil sh.py fälschlicherweise
davon ausging dass die erste Schulstunde unseres Sohnes ausfällt.
/Plauder aus
Wegen Fritzbox bin ich (allerdings schon länger) auf Develop, ansonsten habe ich in der letzten Zeit nichts an sh.py geschraubt. (Nein, gar nichts)
ein Blick ins Log bringt das Folgende zu Tage:
Code:
2014-04-09 04:00:02 ERROR 00_kalender Logic: 00_kalender, File: /usr/lib/python3.2/ssl.py, Line: 293, Method: read, Exception: The read operation timed out Traceback (most recent call last): File "/usr/smarthome/lib/scheduler.py", line 339, in _task exec(obj.bytecode) File "/usr/smarthome/logics/00_kalender.py", line 10, in <module> events = sh.ical('https://www.google.com/calendar/ical/hier-meine-mail/private-hier mein key/basic',delta=2) File "/usr/smarthome/plugins/ical/__init__.py", line 57, in __call__ ical = self._sh.tools.fetch_url(ics, username=username, password=password) File "/usr/smarthome/lib/tools.py", line 78, in fetch_url resp = conn.getresponse() File "/usr/lib/python3.2/http/client.py", line 1052, in getresponse response.begin() File "/usr/lib/python3.2/http/client.py", line 346, in begin version, status, reason = self._read_status() File "/usr/lib/python3.2/http/client.py", line 308, in _read_status line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") File "/usr/lib/python3.2/socket.py", line 287, in readinto return self._sock.recv_into(b) File "/usr/lib/python3.2/ssl.py", line 399, in recv_into return self.read(nbytes, buffer) File "/usr/lib/python3.2/ssl.py", line 293, in read v = self._sslobj.read(len, buffer) socket.timeout: The read operation timed ou
Code:
#!/usr/bin/env python # #siehe https://knx-user-forum.de/smartvisu/30789-zeitschaltuhr-mit-google-kalender-steuern.html now = sh.now() today = sh.now().date() tomorrow = today + datetime.timedelta(days=1) events = sh.ical('https://www.google.com/calendar/ical/hier-meine-mail/private-hier mein key/basic',delta=2) #Schalter zurücksetzen sh.mjm.status.muell(0) sh.mjm.status.feiertag(0) sh.mjm.status.ferien(0) sh.mjm.status.erstestundefrei(0) for day in events: logger.info("Date: {0}".format(day)) for event in events[day]: estart = event['Start'] + datetime.timedelta(hours=+1) eend = event['End'] + datetime.timedelta(hours=+1) logger.info(event['Summary']) logger.info(event['Start']) logger.info(event['End']) #Müllbenachrichtigung if 'Rest' in event['Summary'] or 'Bio' in event['Summary'] or 'Flach' in event['Summary'] or 'Rund' in event['Summary']: if now + datetime.timedelta(days=1) >= estart: if now + datetime.timedelta(days=1) <= eend: logger.info("Müllswitch EIN") logger.info(event['Summary']) logger.info(event['Description']) logger.info(event['Location']) logger.info(event['Start']) logger.info(event['End']) sh.mjm.status.muell(1) #Feriensteuerung if 'ferien' in event['Summary']: if now >= estart: if now <= eend: logger.info("Ferienswitch EIN") logger.info(event['Summary']) logger.info(event['Description']) logger.info(event['Location']) logger.info(event['Start']) logger.info(event['End']) logger.info(event['Summary']) sh.mjm.status.ferien(1) #Feiertagssteuerung if 'Feiertag' in event['Description']: if now >= estart: if now <= eend: logger.info("Feiertagsswitch EIN") logger.info(event['Summary']) logger.info(event['Description']) logger.info(event['Location']) logger.info(event['Start']) logger.info(event['End']) sh.mjm.status.feiertag(1) #Stundenplansteuerung if event['Summary'] == 'erste Stunde fällt aus': if now >= estart: if now <= eend: logger.info("erste Stunde fällt aus: EIN") logger.info(event['Summary']) logger.info(event['Description']) logger.info(event['Location']) logger.info(event['Start']) logger.info(event['End']) sh.mjm.status.erstestundefrei(1)
Code:
[00_kalender] filename = 00_kalender.py crontab = init | 00 04 * *
Danke vorab & Grüße
Sven
Kommentar