FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Kalendermodule => Thema gestartet von: kaihs am 11 Juli 2018, 20:58:08

Titel: 57_Calender: perl warning bei http Timeout
Beitrag von: kaihs am 11 Juli 2018, 20:58:08
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)
Titel: Antw:57_Calender: perl warning bei http Timeout
Beitrag von: betateilchen am 11 Juli 2018, 21:10:45
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.
Titel: Antw:57_Calender: perl warning bei http Timeout
Beitrag von: betateilchen am 11 Juli 2018, 21:48:39
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.
Titel: Antw:57_Calender: perl warning bei http Timeout
Beitrag von: kaihs am 11 Juli 2018, 22:12:42
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 (https://forum.fhem.de/index.php/topic,89318.0.html) aufgemacht.
Titel: Antw:57_Calender: perl warning bei http Timeout
Beitrag von: betateilchen am 11 Juli 2018, 22:26:31
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 :)
Titel: Antw:57_Calender: perl warning bei http Timeout
Beitrag von: kaihs am 12 Juli 2018, 12:33:28
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.
Titel: Antw:57_Calender: perl warning bei http Timeout
Beitrag von: Dr. Boris Neubert am 16 Juli 2018, 12:27:36
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
Titel: Antw:57_Calender: perl warning bei http Timeout
Beitrag von: Dr. Boris Neubert am 20 Oktober 2019, 21:45:26
Kannst Du Dir bitte mal die Version in https://forum.fhem.de/index.php/topic,104587.msg985270.html#msg985270 (https://forum.fhem.de/index.php/topic,104587.msg985270.html#msg985270) daraufhin ansehen?