HTTPMOD (Redirect?) funktioniert nicht

Begonnen von tubu, 22 Dezember 2020, 16:54:10

Vorheriges Thema - Nächstes Thema

tubu

Hallo,

hole meine Wetterdaten seit Jahren von der Webseite WETTERDIENST.DE da ich dort alle 10 min aktuelle Daten für meine Location bekomme (Hannover).

Aus heiterem Himmel ging ab dem 28. November auf einmal nichts mehr - kein Update von FHEM oder dem Raspberry auf dem alles läuft. Fehler sei "Error: gethostbyname www.wetterdienst.de failed". Das macht natürlich stutzig - weil die Website natürlich unter dieser Adresse nachwievor erreichbar ist. Da ich keine Zeit hatte mich damit zu beschäftigen hab ich das erstmal liegen lassen.

Ab dem 20. Dezember kamen aufeinmal wieder Daten - ohne das ich Änderungen gemacht habe. Mußte meine Regex noch etwas anpassen, da Umlaute und das Gradzeichen offenbar nicht mehr korrekt dekodiert wurden von HTTPMOD.

Genauso plötzlich funktioniert es seit heute wieder nicht. Fehlermeldung ist wieder "Error: gethostbyname www.wetterdienst.de failed". Hier was im Log steht:

2020.12.22 16:34:15 4: Wetter: GetUpdate called (update)
2020.12.22 16:34:15 4: Wetter: UpdateTimer called from GetUpdate with cmd next sets timer to call update function in 30.0 sec at 2020-12-22 16:34:45, interval 30
2020.12.22 16:34:15 5: Wetter: AddToQueue adds type update to URL https://www.wetterdienst.de/Deutschlandwetter/Hannover/Aktuell/, no data, no headers, retry 0, initial queue len: 0
2020.12.22 16:34:15 5: Wetter: HandleSendQueue called from AddToSendQueue, qlen = 1
2020.12.22 16:34:15 4: Wetter: HandleSendQueue sends update with timeout 2 to https://www.wetterdienst.de/Deutschlandwetter/Hannover/Aktuell/, No Data, No Header
2020.12.22 16:34:15 5: Wetter: ReadCallback called from __ANON__
2020.12.22 16:34:15 3: Wetter: Read callback: Error: gethostbyname www.wetterdienst.de failed
2020.12.22 16:34:15 4: Wetter: Read callback: request type was update retry 0, no headers, no body
2020.12.22 16:34:15 5: Wetter: Read callback: body empty
2020.12.22 16:34:15 4: Wetter: BodyDecode found no charset header (bodyDecode was set to auto)
2020.12.22 16:34:15 5: Wetter: GetCookies is looking for Cookies
2020.12.22 16:34:15 5: Wetter: ExtractSid called, context reading, num 0
2020.12.22 16:34:15 4: Wetter: no header to look for redirects
2020.12.22 16:34:15 5: Wetter: Read callback sets LAST_REQUEST to update
2020.12.22 16:34:15 5: Wetter: CheckAuth decided no authentication required
2020.12.22 16:34:45 4: Wetter: GetUpdate called (update)
2020.12.22 16:34:45 4: Wetter: UpdateTimer called from GetUpdate with cmd next sets timer to call update function in 30.0 sec at 2020-12-22 16:35:15, interval 300
2020.12.22 16:34:45 5: Wetter: AddToQueue adds type update to URL https://www.wetterdienst.de/Deutschlandwetter/Hannover/Aktuell/, no data, no headers, retry 0, initial queue len: 0
2020.12.22 16:34:45 5: Wetter: HandleSendQueue called from AddToSendQueue, qlen = 1
2020.12.22 16:34:45 4: Wetter: HandleSendQueue sends update with timeout 2 to https://www.wetterdienst.de/Deutschlandwetter/Hannover/Aktuell/, No Data, No Header
2020.12.22 16:34:45 5: Wetter: ReadCallback called from __ANON__
2020.12.22 16:34:45 3: Wetter: Read callback: Error: gethostbyname www.wetterdienst.de failed
2020.12.22 16:34:45 4: Wetter: Read callback: request type was update retry 0, no headers, no body
2020.12.22 16:34:45 5: Wetter: Read callback: body empty
2020.12.22 16:34:45 4: Wetter: BodyDecode found no charset header (bodyDecode was set to auto)
2020.12.22 16:34:45 5: Wetter: GetCookies is looking for Cookies
2020.12.22 16:34:45 5: Wetter: ExtractSid called, context reading, num 0
2020.12.22 16:34:45 4: Wetter: no header to look for redirects
2020.12.22 16:34:45 5: Wetter: Read callback sets LAST_REQUEST to update
2020.12.22 16:34:45 5: Wetter: CheckAuth decided no authentication required

Habe jetzt schon alles mögliche ausprobiert. Auch mit curl ausprobiert ob die Adresse erreich/ladbar ist. Mit curl muß ich die -L option benutzen - d.h. den Redirects muß gefolgt werden. Sieht so aus als wenn da das Problem liegt. Hab das 'handleRedirects' Attribut aktiviert. Hat aber nix genutzt.

Hier meine momentane Definition des Devices:

define Wetter HTTPMOD https://www.wetterdienst.de/Deutschlandwetter/Hannover/Aktuell/ 30
attr Wetter userattr reading01Regex1 reading02Regex1
attr Wetter enableControlSet 1
attr Wetter enableCookies 1
attr Wetter handleRedirects 1
attr Wetter icon weather_wind
attr Wetter reading01Name WindboenAktuell
attr Wetter reading01Regex <span style="font-size: 1em;; font-weight: bold;;" id="wind_1">B.en (\d{1,3}) km/h</span><div id="wind_content_1" style="display:none">
attr Wetter reading02Name TemperaturAktuell
attr Wetter reading02Regex <strong>Temperatur:</strong> (-?\d{1,2}\.?\d{0,1}) .C</span><br/>
attr Wetter reading03Name Luftfeuchte
attr Wetter reading03Regex <strong>Feuchte:</strong> (-?\d{1,2}\.?\d{0,1}) %</span>
attr Wetter room Wetter,Wintergarten
attr Wetter showBody 1
attr Wetter showError 1
attr Wetter showMatched 1
attr Wetter stateFormat Temp: TemperaturAktuell Wind: WindboenAktuell km/h Feuchte: Luftfeuchte %
attr Wetter verbose 5

Irgend jemand vielleicht eine Idee wo der Hase im Pfeffer begraben ist?

Gruß Joachim

amenomade

Bei mir geht es.

Zitat"Error: gethostbyname www.wetterdienst.de failed"
Warum auch immer, kann plötzlich dein Fhem die Seite nicht mehr erreichen oder den Name nicht mehr auflösen. Vielleicht reicht es, das Timeout zu erhöhen. Was hast Du im Attribut dnsServer vom global Device?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

tubu

Hallo amenomade,

vielen Dank für's Ausprobieren und Deine Hinweise. Sie haben mich auf die richtige Spur geführt, wenn auch indirekt.
Das dnsServer Attribut hatte und habe ich nicht gesetzt. Und ich hatte auch sonst nichts an der FHEM Konfiguration geändert.

Aber ich hatte vor einiger Zeit mal mit IPv6 an meiner Fritzbox rumgespielt. Und genau liegt bzw. lag das Problem.
Die FB bietet verschiedene Einstellungen wenn man IPv6 aktiviert - unter anderem 'Native IPv4-Anbindung verwenden' - diese Option erschien mir für meine Zwecke am sinnvollsten wenn man sich die Hilfe von AVM anschaut.
Ist es aber offenbar nicht. Ich habe jetzt auf 'Native IPv6-Anbindung verwenden' umgestellt - und siehe da - Problem gelöst.

Gruß Joachim

amenomade

Zitat von: tubu am 23 Dezember 2020, 10:39:24
Das dnsServer Attribut hatte und habe ich nicht gesetzt.
Unabhängig von deinem bisherigen Problem würde ich es auf jeden Fall setzen (auf die IP Adresse der Fritzbox). Sonst machen viele Module in Fhem blockierende Calls.

Zitat von: CommandRefdnsServer
Enthält die IP Adresse des DNS Servers. Die von bestimmten Modulen (oder eigenen Code) aufgerufene HttpUtils_NonblockingGet wird auch bei der DNS Auflösung nicht mehr blockieren, falls dieses Attribut gesetzt ist, da es in diesem Fall FHEM eigene Routinen aufgerufen werden. Sonst werden die OS-eigenen, blockierenden Routinen inet_aton bzw gethostbyname aufgerufen.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

tubu

Ok. Werde ich machen. Hatte die Info zwar gelesen, aber dem keine Bedeutung beigemessen. Hatte nach meinen Erfahrungen aber bisher auch keine DNS-Probleme. Diese Wettersache ist das einzige FHEM-Modul was ins Internet geht. Meine Enocean, Homematic, Somfy, Intertechno-Devices brauchen das ja nicht.

Hab gerade in Deiner Signatur gesehen, daß Du Rademacher bei Dir integriert hast. Habe mich aufgrund des Problems mit der Wetterdienst-Seite entschlossen mir endlich eine eigene Wetterstation zuzulegen und habe mir eine von Rademacher bestellt zusammen mit dem USB-Stick. Bin gespannt wie gut das klappt.

Danke nochmal.