Hi Marcus,
bist ein Schatz.
Habe gerade gerade aktualisiert, und (nachdem ich begriffen habe das
ich den Parameter nicht in der plugin.conf eintragen muss) mit 3 Sekunden
angefangen zu probieren.
Ergebnis:
10 Aufrufe über CLI und alle fehlerlos.
Aus meiner Sicht ist das Problem gelöst ==> Haken
Vielen Dank und Grüße
Sven
Ankündigung
Einklappen
Keine Ankündigung bisher.
- √ - ical plugin, ssl.py, The read operation timed out
Einklappen
X
-
Hi Sven,
in develop habe ich das Plugin erweitert. Dort kann man timeout=X einen Wert in Sekunden für den Timeout eingeben.
Bis bald
Marcus
Einen Kommentar schreiben:
-
... ich muss den Thread nochmal nach oben bringen, da ich jetzt eine gewisse
Langzeit-Erfahrung habe.
Ergebnis:
an 2 von 7 Tagen funktioniert es die Abfrage, in den anderen 5 Fällen nicht.
Es scheint also an äußeren Bedingungen (Netzperformance, Server Antwortzeit...) zu liegen.
Fehler bleibt:
@Marcus:Code:2014-04-19 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 mein user/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 out
Hast Du eine Idee wie man die TimeOut Dauer nach oben setzt?
Grüße
Sven
Einen Kommentar schreiben:
-
Nachtrag:
Ich habe jetzt die privaten Links neu generiert.
Ergebnis:
Ging zweimal nicht einmal schon und dann wieder nicht. (getestet über CLI und rr in kurzen Abständen)
... seltsam.
(Kann das ein Timing / TimeOut Problem sein? würde ja zur Fehlermeldung passen.)
Grüße
Sven
Einen Kommentar schreiben:
-
Hi Marcus,
Beim Öffnen der URL im Browser wird die Datei Basic heruntergeladen (Download)
(Habe natürlich darauf geachtet dass es keine Anmeldedaten von mir mehr aktiv sind)
Grüße
Sven
Einen Kommentar schreiben:
-
Hi Sven,
was passiert, wenn Du die URL im Browser eingibst? Klappt das dann?
Wollte Google nicht die API totmachen?
Bis bald
Marcus
Einen Kommentar schreiben:
-
- √ - ical plugin, ssl.py, The read operation timed out
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):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
und die logic.confCode:#!/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)
Kann mir jemand helfen?Code:[00_kalender] filename = 00_kalender.py crontab = init | 00 04 * *
Danke vorab & Grüße
Sven


Einen Kommentar schreiben: