57_Calender: perl warning bei http Timeout

Begonnen von kaihs, 11 Juli 2018, 20:58:08

Vorheriges Thema - Nächstes Thema

kaihs

Beim Abruf eines Google Kalenders kommt es bei mir immer zu einem Timeout. Das wird wohl noch nicht ganz sauber abgefangen denn dadurch kommt zu einer Warnung:

2018.07.11 20:45:43 4: Calendar cal_Beruflich: Wakeup
2018.07.11 20:45:43 4: Calendar cal_Beruflich: Updating...
2018.07.11 20:45:43 4: Calendar cal_Beruflich: Getting data from URL <hidden>
2018.07.11 20:46:15 1: Calendar cal_Beruflich: retrieval failed with error message read from https://calendar.google.com:443 timed out
2018.07.11 20:46:15 1: Calendar cal_Beruflich: retrieved no or empty data
2018.07.11 20:46:15 4: Calendar cal_Beruflich: Checking times...
2018.07.11 20:46:15 1: PERL WARNING: Use of uninitialized value $t in numeric lt (<) at ./FHEM/57_Calendar.pm line 2217.
2018.07.11 20:46:15 1: stacktrace:
2018.07.11 20:46:15 1:     main::__ANON__                      called by ./FHEM/57_Calendar.pm (2217)
2018.07.11 20:46:15 1:     main::Calendar_RearmTimer           called by ./FHEM/57_Calendar.pm (2582)
2018.07.11 20:46:15 1:     main::Calendar_CheckAndRearm        called by ./FHEM/57_Calendar.pm (2550)
2018.07.11 20:46:15 1:     main::Calendar_ProcessUpdate        called by FHEM/HttpUtils.pm (108)
2018.07.11 20:46:15 1:     main::HttpUtils_Err                 called by fhem.pl (3127)
2018.07.11 20:46:15 1:     main::HandleTimeout                 called by fhem.pl (646)
Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, SIGNALduino mit Logilink Temp.-sensoren und Auriol Wetterstation

betateilchen

#1
Kannst Du mal bitte ein list von Deinem Kalender-device posten?
(URL und Userdaten bitte anonymisieren)


Edit: Falscher Ansatz meinerseits, deshalb gestrichen.



Nebenbemerkung:
Auch wenn die Meldung aus dem Kalendermodul unschön ist, sollte Dein Hauptaugenmerk darauf liegen, herauszufinden, warum Du da überhaupt in einen Timeout läufst.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Kannst Du mal bitte in Zeile 2250 die markierte Zeile einfügen und dann testen?


  if($errmsg or !defined($ics) or ("$ics" eq "") ) {
    Log3 $hash, 1, "Calendar $name: retrieved no or empty data";
    readingsSingleUpdate($hash, "state", "error (no or empty data)", 1);
++    $hash->{".fhem"}{t}= $t;
    Calendar_CheckAndRearm($hash);
  } else {


Das Problem ist, dass Calendar_CheckAndRearm() einen Wert in $hash->{".fhem"}{t} erwartet, der aber (bisher) nur dann existiert, wenn vorher KEIN Fehler aufgetreten ist.

Unabhängig davon, ob es einen Fehler gab oder nicht, muss aber das Calendar_CheckAndRearm() natürlich ausgeführt werden.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

kaihs

Zitat von: betateilchen am 11 Juli 2018, 21:48:39
Kannst Du mal bitte in Zeile 2250 die markierte Zeile einfügen und dann testen?

Danke, dann tritt die Warnung nicht mehr auf.

Zitat
Nebenbemerkung:
Auch wenn die Meldung aus dem Kalendermodul unschön ist, sollte Dein Hauptaugenmerk darauf liegen, herauszufinden, warum Du da überhaupt in einen Timeout läufst.

Ja, dazu habe ich einen neuen Thread aufgemacht.
Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, SIGNALduino mit Logilink Temp.-sensoren und Auriol Wetterstation

betateilchen

Zitat von: kaihs am 11 Juli 2018, 22:12:42
Danke, dann tritt die Warnung nicht mehr auf.

Danke für die Rückmeldung, dann hat Boris ja was zum patchen :)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

kaihs

Auf einen HTTP response code 404 wird auch nicht ganz sauber reagiert:


2018.07.12 12:31:56 1: PERL WARNING: Use of uninitialized value $ics in split at ./FHEM/57_Calendar.pm line 991.
Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, SIGNALduino mit Logilink Temp.-sensoren und Auriol Wetterstation

Dr. Boris Neubert

Danke an Euch beide für die Hinweise. Ich sehe zu, dass ich das gelegentlich einbaue im Zuge der kontinuierlichen Verbesserung. Zwei Warnungen rausgepatcht sind zwei Anlässe für Fragen im Forum weniger  :D
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Dr. Boris Neubert

Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!