Timeouts bei NonblockingGet Funktion

Begonnen von CoolTux, 06 Dezember 2016, 15:11:55

Vorheriges Thema - Nächstes Thema

CoolTux

Ich verwende NonblockingGet um einen URL Aufruf mit anschließenden Datenerhalt zu machen.
Leider bekomme ich immer nur ein Timeout. Es wird wohl am Zusammenspiel von NonblockingGet und dem Webserver der Gegenstelle sein. Ein stink normaler curl Aufruf klappt ohne Probleme. Kann mir einer einen Tip geben wie ich das ganze Testen kann.
Interessant wäre wohl noch das ein

http://ip:port/info?token=1234

super funktioniert, wo gegen ein

http://ip:port/list?token=1234

jeweils mit einem Timeout abbricht. Ich habe schon so einige Optionen durch

noshutdown     => 1 oder 0
keepalive      => 0 oder 1
httpversion    => "1.1" oder 1.0

Wie kann ich da am besten testen um zu erfahren was die Gegenstelle für Probleme hat?
In beiden Fällen wird als Antwort ein JSON String geliefert.


Danke Euch
Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rudolfkoenig

Kannst du mir die Differenz zwischen den beiden URLs verdeutlichen? Ich bin blind...
Sonst tippe ich auf fehlende Headerdaten im Request.

CoolTux

Sorry. Mein Fehler. Eines davon ist /list das andere /info
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Loredo

Vielleicht musst du noch einen User-Agent setzen, der eher wie ein Browser heißt?
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

CoolTux

Hatte ich meines Erachtens schon gehabt. Aber ich probiere gerne noch mal.
Hast du da vielleicht eine Header Zeile für mich die nachweislich funktioniert?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Loredo


Nimm im Zweifel doch den User-Agent deines Browsers wie z.B. hier einzusehen:
http://www.whoishostingthis.com/tools/user-agent/


Wichtig ist dabei glaube ich aber nur am Anfang sowas wie "Mozilla/5.0" stehen zu haben.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

CoolTux

Hallo Julian,

Vielen Dank für Deine Anwort. Habe ich mal probiert, hilft aber auch nichts. Ich denke es hat was mit der Hersteller API zu tun. Die wollten das ich denen ein funktionierendes Perl Script mit den Aufrufen und der Verwendung von http Utils gebe. Also einen originalen Aufruf nur ohne FHEM. Mal sehen ob ich das so einfach hin bekomme.



Grüße
Leon
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Habe soeben einen Hinweis vom Hersteller bekommen.

Zitat
Die Vermutung ist, dass das httputils irgendwie mit den responses nicht klar kommt (längere responses werden als mehrere sequentielle pakete geschickt)

Kann ich das irgendwie abfangen? Das selbe Problem habe ich auch wenn ich Blocking_Get verwende um zum Beispiel ein Log Auszug von der Nuki Bridge zu holen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rudolfkoenig

Protokolliere bitte ein Versuch im Browser/wget/etc mit allen Headerdaten, und dann ein HttpNonblockingGet mit maximalen verbose, und gib danach die headerdaten aus ($hash->{httpheader}). Ich versuche dann aus diesen Daten zu verstehen, was schiefgeht.

CoolTux

Mache ich.
Eventuell wäre das hier ein Ansatz
https://forum.fhem.de/index.php?topic=43377.0


Melde mich wenn ich getestet habe.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

So ich habe mich da mal versucht


Das hier ist mit curl aufgerufen

curl -v http://10.6.34.46:8080/list?token=FX0dQQ
* Hostname was NOT found in DNS cache
*   Trying 10.6.34.46...
* Connected to 10.6.34.46 (10.6.34.46) port 8080 (#0)
> GET /list?token=FX0dQQ HTTP/1.1
> User-Agent: curl/7.38.0
> Host: 10.6.34.46:8080
> Accept: */*
>
< HTTP/1.1 200 OK
< Connection: Close
< Content-Type: application/json;charset=utf-8
< Transfer-Encoding: chunked
<
* Closing connection 0
[{"nukiId": 1, "name": "CobraTuer", "lastKnownState": {"state": 255, "stateName": "undefined", "batteryCritical": false, "timestamp": "2016-12-06T13:02:08+00:00"}}]



Und hier mit HttpUtils_nonBlockingGet

2016.12.08 10:29:10 4: WEB_10.6.9.2_54710 POST /fhem&detail=NukiBridge&dev.setNukiBridge=NukiBridge&cmd.setNukiBridge=set&arg.setNukiBridge=autocreate&val.setNukiBridge=; BUFLEN:0
2016.12.08 10:29:10 5: Cmd: >set NukiBridge autocreate<
2016.12.08 10:29:10 5: HttpUtils url=http://10.6.34.46:8080/list?token=FX0dQQ
2016.12.08 10:29:10 4: NUKIBridge (NukiBridge) - Send HTTP POST with URL http://10.6.34.46:8080/list?token=FX0dQQ
2016.12.08 10:29:10 5: Triggering NukiBridge (1 changes)
2016.12.08 10:29:10 5: Starting notify loop for NukiBridge, 1 event(s), first is autocreate
2016.12.08 10:29:10 4: WEB_10.6.9.2_54710 GET /fhem?detail=NukiBridge&fw_id=; BUFLEN:0
2016.12.08 10:29:10 4: name: /fhem?detail=NukiBridge&fw_id= / RL:3028 / text/html; charset=UTF-8 / Content-Encoding: gzip
/
2016.12.08 10:29:10 4: Connection closed for WEB_10.6.9.2_54704: EOF
2016.12.08 10:29:10 4: WEB_10.6.9.2_54716 GET /fhem/pgm2/fhemweb_fbcalllist.js; BUFLEN:0
2016.12.08 10:29:10 4: WEB_10.6.9.2_54716 => 304 Not Modified
2016.12.08 10:29:10 4: WEB_10.6.9.2_54714 GET /fhem/pgm2/jquery-ui.min.css; BUFLEN:0
2016.12.08 10:29:10 4: WEB_10.6.9.2_54714 => 304 Not Modified
2016.12.08 10:29:10 4: Connection accepted from WEB_10.6.9.2_54718
2016.12.08 10:29:10 4: WEB_10.6.9.2_54710 GET /fhem/pgm2/style.css?v=1481024918; BUFLEN:0
2016.12.08 10:29:10 4: WEB_10.6.9.2_54710 => 304 Not Modified
2016.12.08 10:29:10 4: WEB_10.6.9.2_54712 GET /fhem/pgm2/fhemweb.js; BUFLEN:0
2016.12.08 10:29:10 4: WEB_10.6.9.2_54712 => 304 Not Modified
2016.12.08 10:29:10 4: WEB_10.6.9.2_54708 GET /fhem/pgm2/fhemweb_colorpicker.js; BUFLEN:0
2016.12.08 10:29:10 4: WEB_10.6.9.2_54708 => 304 Not Modified
2016.12.08 10:29:10 4: WEB_10.6.9.2_54710 GET /fhem/pgm2/fhemweb_sortable.js; BUFLEN:0
2016.12.08 10:29:10 4: WEB_10.6.9.2_54710 => 304 Not Modified
2016.12.08 10:29:10 4: WEB_10.6.9.2_54718 GET /fhem/pgm2/fhemweb_knob.js; BUFLEN:0
2016.12.08 10:29:10 4: WEB_10.6.9.2_54718 => 304 Not Modified
2016.12.08 10:29:10 4: WEB_10.6.9.2_54712 GET /fhem/pgm2/defaultCommon.css; BUFLEN:0
2016.12.08 10:29:10 4: WEB_10.6.9.2_54712 => 304 Not Modified
2016.12.08 10:29:10 4: WEB_10.6.9.2_54716 GET /fhem/pgm2/fhemweb_readingsGroup.js; BUFLEN:0
2016.12.08 10:29:10 4: WEB_10.6.9.2_54716 => 304 Not Modified
2016.12.08 10:29:10 4: WEB_10.6.9.2_54714 GET /fhem/pgm2/fhemweb_readingsHistory.js; BUFLEN:0
2016.12.08 10:29:10 4: WEB_10.6.9.2_54714 => 304 Not Modified
2016.12.08 10:29:10 4: WEB_10.6.9.2_54708 GET /fhem/pgm2/fhemweb_uzsu.js; BUFLEN:0
2016.12.08 10:29:10 4: WEB_10.6.9.2_54708 => 304 Not Modified
2016.12.08 10:29:10 4: WEB_10.6.9.2_54710 GET /fhem/pgm2/fhemweb_weekprofile.js; BUFLEN:0
2016.12.08 10:29:10 4: WEB_10.6.9.2_54710 => 304 Not Modified
2016.12.08 10:29:10 4: WEB_10.6.9.2_54718 GET /fhem/codemirror/fhem_codemirror.js; BUFLEN:0
2016.12.08 10:29:10 4: WEB_10.6.9.2_54718 => 304 Not Modified
2016.12.08 10:29:11 4: WEB_10.6.9.2_54712 GET /fhem/pgm2/dashboard_style.css; BUFLEN:0
2016.12.08 10:29:11 4: WEB_10.6.9.2_54712 => 304 Not Modified
2016.12.08 10:29:11 4: WEB_10.6.9.2_54718 GET /fhem/images/default/icoEverything.png; BUFLEN:0
2016.12.08 10:29:11 4: WEB_10.6.9.2_54718 => 304 Not Modified
2016.12.08 10:29:11 4: WEB_10.6.9.2_54718 GET /fhem/images/default/fhemicon.png; BUFLEN:0
2016.12.08 10:29:11 4: WEB_10.6.9.2_54718 => 304 Not Modified
2016.12.08 10:29:11 4: WEB_10.6.9.2_54710 GET /fhem?cmd={AttrVal(%22NukiBridge%22,%22room%22,%22%22)}&XHR=1; BUFLEN:0
2016.12.08 10:29:11 5: Cmd: >{AttrVal("NukiBridge","room","")}<
2016.12.08 10:29:11 4: name: /fhem?cmd={AttrVal(%22NukiBridge%22,%22room%22,%22%22)}&XHR=1 / RL:25 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2016.12.08 10:29:11 4: WEB_10.6.9.2_54712 GET /fhem?cmd={ReadingsVal(%22NukiBridge%22,%22autocreate%22,%22%22)}&XHR=1; BUFLEN:0
2016.12.08 10:29:11 5: Cmd: >{ReadingsVal("NukiBridge","autocreate","")}<
2016.12.08 10:29:11 4: name: /fhem?cmd={ReadingsVal(%22NukiBridge%22,%22autocreate%22,%22%22)}&XHR=1 / RL:21 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2016.12.08 10:29:11 4: WEB_10.6.9.2_54712 GET /fhem?XHR=1&inform=type=status;filter=NukiBridge;since=1481189349;fmt=JSON&fw_id=3131&timestamp=1481189351101; BUFLEN:0

2016.12.08 10:29:40 3: NUKIBridge (NukiBridge) - Param Alive:
2016.12.08 10:29:40 3: NUKIBridge (NukiBridge) - Param Code:
2016.12.08 10:29:40 3: NUKIBridge (NukiBridge) - Error: read from http://10.6.34.46:8080 timed out
2016.12.08 10:29:40 3: NUKIBridge (NukiBridge) - PATH: /list?token=FX0dQQ
2016.12.08 10:29:40 3: NUKIBridge (NukiBridge) - httpheader:
2016.12.08 10:29:40 4: NUKIBridge (NukiBridge) - error while requesting: read from http://10.6.34.46:8080 timed out
2016.12.08 10:29:40 5: Triggering NukiBridge (1 changes)
2016.12.08 10:29:40 5: Starting notify loop for NukiBridge, 1 event(s), first is lastError: read from http://10.6.34.46:8080 timed out


Ich bekomme erst gar keinen HttpHeader zurück würde ich sagen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rudolfkoenig

HttpUtils unterstuetzt (noch) kein "Transfer-Encoding: chunked".
Das kann ich gerne implementieren, allerdings brauche ich etwas zum Testen, und ich habe auf die Schnelle nichts gefunden.

CoolTux

Kann ich auch testen? Schick mir einfach irgendwie die Datei und ich teste ob es mit der Nuki Bridge klappt. Das wäre super.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rudolfkoenig

Nee, andersherum. Ich brauche einen Server, den ich anzapfen kann, der die Daten mit chunked schickt.
Fuer die "posten/fragen/fixen" Methode habe ich z.Zt. keine Energie.

CoolTux

Ok ich überlege mir was. Wäre ein VPN Zugang für Dich ok? Dann gebe ich Dir Zugang zur Bridge u d Du kannst die Anfragen machen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net