Autor Thema: 57_Calender: perl warning bei http Timeout  (Gelesen 502 mal)

Offline kaihs

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 921
57_Calender: perl warning bei http Timeout
« 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)
Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, FHEM V5.8, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EMT7110, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, FHEMduino mit Logilink Temp.-sensoren und Auriol Wetterstation

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 15054
  • s/fhem\.cfg/configDB/g
Antw:57_Calender: perl warning bei http Timeout
« Antwort #1 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.
« Letzte Änderung: 11 Juli 2018, 21:21:32 von betateilchen »
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg-Stammtisch: 14.12.2018 - 18:30 Uhr

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 15054
  • s/fhem\.cfg/configDB/g
Antw:57_Calender: perl warning bei http Timeout
« Antwort #2 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.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg-Stammtisch: 14.12.2018 - 18:30 Uhr

Offline kaihs

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 921
Antw:57_Calender: perl warning bei http Timeout
« Antwort #3 am: 11 Juli 2018, 22:12:42 »
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, FHEM V5.8, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EMT7110, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, FHEMduino mit Logilink Temp.-sensoren und Auriol Wetterstation

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 15054
  • s/fhem\.cfg/configDB/g
Antw:57_Calender: perl warning bei http Timeout
« Antwort #4 am: 11 Juli 2018, 22:26:31 »
Danke, dann tritt die Warnung nicht mehr auf.

Danke für die Rückmeldung, dann hat Boris ja was zum patchen :)
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg-Stammtisch: 14.12.2018 - 18:30 Uhr

Offline kaihs

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 921
Antw:57_Calender: perl warning bei http Timeout
« Antwort #5 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.
Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, FHEM V5.8, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EMT7110, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, FHEMduino mit Logilink Temp.-sensoren und Auriol Wetterstation

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4220
Antw:57_Calender: perl warning bei http Timeout
« Antwort #6 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
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!