Neue Version von HTTPMOD mit neuen Features zum Testen

Begonnen von StefanStrobel, 05 Dezember 2015, 08:31:32

Vorheriges Thema - Nächstes Thema

DigiNecro


StefanStrobel

Dass das ganze Fhem abstürzt sollte nicht passieren. Das schaue ich mir nochmal genauer an.
Kannst Du mir die HTTP-Response mal als File zum Testen posten?

Gruss
   Stefan

timtom2000

Hallo zusammen,

ich bräuchte mal Hilfe und wäre für einen Tipp dankbar...

Ich habe bisher immer erfolgreich den Status meines Wechselrichters mittels POST-Request ausgelesen.

Nun klappt das nicht mehr, ich bekomme folgende Fehlermeldungen (verbose 5):
2023.02.18 20:02:18 5: PM_Test: ReadCallback called from __ANON__
2023.02.18 20:02:18 5: PM_Test: Read callback Error LogLvl set to 3, regex
2023.02.18 20:02:18 3: PM_Test: Read callback: Error:  SSL connect attempt failed error:14094410:lib(20):func(148):reason(1040)
2023.02.18 20:02:18 4: PM_Test: Read callback: request type was update retry 0, no headers, no body
2023.02.18 20:02:18 5: PM_Test: Read callback: body empty
2023.02.18 20:02:18 4: PM_Test: BodyDecode is not decoding the response body (charset not found, bodyDecode defaults to none)
2023.02.18 20:02:18 5: PM_Test: GetCookies is looking for Cookies
2023.02.18 20:02:18 5: PM_Test: ExtractSid called, context reading, num unknown
2023.02.18 20:02:18 4: PM_Test: no header to look for redirects
2023.02.18 20:02:18 5: PM_Test: Read callback sets LAST_REQUEST to update
2023.02.18 20:02:18 5: PM_Test: CheckAuth decided no authentication required


Wenn ich den exakt gleichen Request (Content + Header) über ein Webportal (z.B. https://reqbin.com/) absetze, klappt der Zugriff weiterhin anstandslos.
Installiert ist openssl 1.1.1l, daran sollte es also nicht liegen.

Hat jemand eine Idee was da schief läuft?
LWZ 304 (BJ 2017; FW 7.09); DHH o. Keller; 100m² Wohnfläche
FHEM auf USB-Stick an FritzBox 7560 (FW 7.12)

Wolle02

Spontan würde ich sagen

Zitat2023.02.18 20:02:18 5: PM_Test: Read callback: body empty
2023.02.18 20:02:18 4: PM_Test: BodyDecode is not decoding the response body (charset not found, bodyDecode defaults to none)

Schau doch mal mit welchem Charset die Antwort über das Webportal kommt und wähle dann im Attribut 'bodyDecode' das entsprechende Charset; oder versuch mal die Option 'auto'.

StefanStrobel

So wie das für mich aussieht, kommt gar keine Antwort, weil irgendwas mit HTTPS nicht klappt:


2023.02.18 20:02:18 5: PM_Test: Read callback Error LogLvl set to 3, regex
2023.02.18 20:02:18 3: PM_Test: Read callback: Error:  SSL connect attempt failed error:14094410:lib(20):func(148):reason(1040)
2023.02.18 20:02:18 4: PM_Test: Read callback: request type was update retry 0, no headers, no body


sind die Zertifikate ok?

Gruß
   Stefan

timtom2000

Danke für die schnelle Antwort...da erwischst du mich jetzt auf dem falschen Fuß ???
Das Zertifikat der Gegenseite (Wechselrichter), oder das bei mir? Wie prüfe ich das?
LWZ 304 (BJ 2017; FW 7.09); DHH o. Keller; 100m² Wohnfläche
FHEM auf USB-Stick an FritzBox 7560 (FW 7.12)

betateilchen

Den ganzen Thread mit > 80 Seiten habe ich jetzt nicht durchforstet, deshalb entschuldigt bitte, falls das schonmal diskutiert wurde.

1. Frage: welchen Sinn hat die Ausgabe des featurelevel am Ende einer define Meldung?

2023.02.19 13:59:10 3: pegel: Defined with URL https://... and interval 900 featurelevel 6.2

2. Frage: gehört diese Meldung nicht eigentlich in den Loglevel 4? Wenn jedes Modul ein "Define" im Loglevel 3 bestätigen würde, dann gute Nacht...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

timtom2000

Ergänzung:
Das Zertifikat der Gegenstelle ist lt. Anzeige in meinem Browser bis 10.April gültig.
Ich frage zudem noch eine andere (Wetter)-Webside ab, die ebenfalls über https läuft, das funktioniert anstandslos.
LWZ 304 (BJ 2017; FW 7.09); DHH o. Keller; 100m² Wohnfläche
FHEM auf USB-Stick an FritzBox 7560 (FW 7.12)

timtom2000

Ich habe das Beispiel mal aufs Nötigste reduziert.
Folgender Zugriff klappt, d.h. im TestReading steht (irgend)eine Response drin.
defmod PM_Test HTTPMOD https://www.wetter.de/ 0
attr PM_Test reading1Name TestReading
attr PM_Test reading1Regex ([\d\D]+)
set PM_Test reread

Ersetze ich hingegen www.wetter.de durch www.soliscloud.com kommt nichts zurück.
Die Ursache zu verstehen wäre natürlich toll...aber viell. ist jemand so nett und könnte das (mit soliscloud) mal kurz nachstellen und schauen, ob das Verhalten gleich ist, bitte?
Wäre ein Hinweis auf "Problem liegt bei Webside" oder auf "Problem liegt bei mir"...
LWZ 304 (BJ 2017; FW 7.09); DHH o. Keller; 100m² Wohnfläche
FHEM auf USB-Stick an FritzBox 7560 (FW 7.12)

betateilchen

#1239

2023.02.22 08:14:29 3: PM_Test: interval is 0, no periodic updates will done.
2023.02.22 08:14:29 3: PM_Test: Read callback: Error: https://www.soliscloud.com: malformed or unsupported URL

2023.02.22 08:15:18 5: PM_Test: set called with reread
2023.02.22 08:15:18 4: PM_Test: GetUpdate called (reread)
2023.02.22 08:15:18 5: PM_Test: AddToQueue adds type update to URL https://www.soliscloud.com, no data, no headers, retry 0, initial queue len: 0
2023.02.22 08:15:18 5: PM_Test: HandleSendQueue called from AddToSendQueue, qlen = 1
2023.02.22 08:15:18 4: PM_Test: HandleSendQueue sends update with timeout 2 to https://www.soliscloud.com, No Data, No Header
2023.02.22 08:15:18 5: PM_Test: ReadCallback called from HttpUtils_NonblockingGet
2023.02.22 08:15:18 5: PM_Test: Read callback Error LogLvl set to 3, regex
2023.02.22 08:15:18 3: PM_Test: Read callback: Error: https://www.soliscloud.com: malformed or unsupported URL
2023.02.22 08:15:18 4: PM_Test: Read callback: request type was update retry 0, no headers, no body
2023.02.22 08:15:18 5: PM_Test: Read callback: body empty
2023.02.22 08:15:18 4: PM_Test: BodyDecode is not decoding the response body (charset not found, bodyDecode defaults to none)
2023.02.22 08:15:18 5: PM_Test: GetCookies is looking for Cookies
2023.02.22 08:15:18 5: PM_Test: ExtractSid called, context reading, num unknown
2023.02.22 08:15:18 4: PM_Test: no header to look for redirects
2023.02.22 08:15:18 5: PM_Test: Read callback sets LAST_REQUEST to update
2023.02.22 08:15:18 5: PM_Test: CheckAuth decided no authentication required


Die Webseite ist einfach zu langsam mit ihrer Antwort.


attr PM_Test timeout 7


sollte helfen. Zumindest kam bei mir dann eine Antwort und es wurde das TestReading mit Inhalt gefüllt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

DigiNecro

Zitat von: StefanStrobel am 15 Februar 2023, 16:10:38
Dass das ganze Fhem abstürzt sollte nicht passieren. Das schaue ich mir nochmal genauer an.
Kannst Du mir die HTTP-Response mal als File zum Testen posten?

Gruss
   Stefan

Sorry, ich bin gerade bissl eingespannt. Ich werd aber mal was zusammenstellen. Danke für das Angebot!

betateilchen

Zitat von: DigiNecro am 22 Februar 2023, 10:16:30
Sorry, ich bin gerade bissl eingespannt. Ich werd aber mal was zusammenstellen. Danke für das Angebot!

Warum für alles immer HTTPMOD, insbesondere wenn das Ergebnis JSON ist?
Das werde ich in diesem Leben wohl nicht mehr verstehen.


defmod witzapi JsonMod https://witzapi.de/api/joke/?language=de
attr witzapi readingList complete()


Funktioniert einwandfrei, auch mit den indischen Nachbarn - siehe Screenshot.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

timtom2000

Zitat von: betateilchen am 22 Februar 2023, 08:17:43
Die Webseite ist einfach zu langsam mit ihrer Antwort.

attr PM_Test timeout 7

sollte helfen. Zumindest kam bei mir dann eine Antwort und es wurde das TestReading mit Inhalt gefüllt.
Hi betateilchen,
vielen Dank fürs Nachstellen!
Auch mit Timeout(=20) bekomme ich leider keinen Inhalt im Reading, sondern weiterhin diese Fehlermeldung
2023.02.22 19:56:36 5: PM_Test: ReadCallback called from __ANON__
2023.02.22 19:56:36 5: PM_Test: Read callback Error LogLvl set to 3, regex
2023.02.22 19:56:36 3: PM_Test: Read callback: Error:  SSL connect attempt failed error:14094410:lib(20):func(148):reason(1040)
2023.02.22 19:56:36 4: PM_Test: Read callback: request type was update retry 0, no headers, no body
2023.02.22 19:56:36 5: PM_Test: Read callback: body empty
2023.02.22 19:56:36 4: PM_Test: BodyDecode is not decoding the response body (charset not found, bodyDecode defaults to none)
2023.02.22 19:56:36 5: PM_Test: GetCookies is looking for Cookies
2023.02.22 19:56:36 5: PM_Test: ExtractSid called, context reading, num unknown
2023.02.22 19:56:36 4: PM_Test: no header to look for redirects
2023.02.22 19:56:36 5: PM_Test: Read callback sets LAST_REQUEST to update
2023.02.22 19:56:36 5: PM_Test: CheckAuth decided no authentication required


Nun habe ich zumindest die Bestätigung, dass es wohl nicht an der Webside liegt...wie ich die Ursache nun finde, weiß ich leider nicht. Mit dem o.g. Fehlercode komme ich mit googlen auch auf keinen grünen Zweig :(
LWZ 304 (BJ 2017; FW 7.09); DHH o. Keller; 100m² Wohnfläche
FHEM auf USB-Stick an FritzBox 7560 (FW 7.12)

betateilchen

Du solltest zuerst versuchen herauszufinden, woher das hier kommt:

2023.02.22 19:56:36 5: PM_Test: ReadCallback called from __ANON__

Das __ANON__ irritiert mich einigermaßen.

Poste doch mal ein komplettes raw list von Deinem device.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

timtom2000

Das __ANON__ kommt in diversen Modulen meiner Perl-Installation vor, dort ist das im Quellcode hinterlegt.
Hatte ich bisher noch nicht hinterfragt. Kommt auch bei Abfrage der Wetter-Seite, insofern scheint das nicht zu stören.

Hier mal das Device-Listing
Internals:
   BUSY       0
   CFGFN     
   DEF        https://www.soliscloud.com/ 0
   FUUID      63f6aaa8-f33f-6d30-56cd-90f331849196ed38
   Interval   0
   MainURL    https://www.soliscloud.com/
   ModuleVersion 4.1.15 - 17.12.2022
   NAME       PM_Test
   NOTIFYDEV  global
   NR         747
   NTFY_ORDER 50-PM_Test
   STATE      ???
   TYPE       HTTPMOD
   eventCount 1
   value     
   CompiledRegexes:
   HttpUtils:
     NAME       
     addr       https://www.soliscloud.com:443
     auth       0
     data       
     displayurl https://www.soliscloud.com/
     header     
     host       www.soliscloud.com
     httpversion 1.0
     ignoreredirects 1
     loglevel   4
     path       /
     protocol   https
     redirects  0
     timeout    2
     url        https://www.soliscloud.com/
     sslargs:
   QUEUE:
   READINGS:
   REQUEST:
     context    reading
     data       
     header     
     ignoreredirects 0
     num        unknown
     retryCount 0
     type       update
     url        https://www.soliscloud.com/
Attributes:
   reading1Name TestReading
   reading1Regex ([\d\D]+)


Ich bin mit den FHEM-Modulen aus dem Backup mal ein paar Monate zurückgegangen (weil es ja damals funktioniert hatte).
Funktioniert zwar immer noch nicht, aber es kommt eine zusätzl. Fehlermeldung von Httputils, der Fehler wird also bereits dort detektiert.
2023.02.23 00:30:55 4: HttpUtils: https://www.soliscloud.com/: Can't connect(2) to https://www.soliscloud.com:443:  SSL connect attempt failed error:14094410:lib(20):func(148):reason(1040)
2023.02.23 00:30:55 5: PM_Test: ReadCallback called from __ANON__
2023.02.23 00:30:55 5: PM_Test: Read callback Error LogLvl set to 3, regex
2023.02.23 00:30:55 3: PM_Test: Read callback: Error: https://www.soliscloud.com/: Can't connect(2) to https://www.soliscloud.com:443:  SSL connect attempt failed error:14094410:lib(20):func(148):reason(1040)
2023.02.23 00:30:55 4: PM_Test: Read callback: request type was update retry 0, no headers, no body
LWZ 304 (BJ 2017; FW 7.09); DHH o. Keller; 100m² Wohnfläche
FHEM auf USB-Stick an FritzBox 7560 (FW 7.12)