Autor Thema: asyncOutput() und FHEMWEB mit websocket Probleme  (Gelesen 3956 mal)

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25728
asyncOutput() und FHEMWEB mit websocket Probleme
« am: 06 März 2018, 16:54:49 »
Ich bekomme einfach keine Daten angezeigt in FHEMWEB wenn ich die Instanz auf longpoll websocket setze. Bei longpoll 1 bekomme ich die Daten


2018.03.06 16:52:00 4: Connection closed for WEB_10.6.6.17_59734: EOF
2018.03.06 16:52:00 4: WEB_10.6.6.17_59723 POST /fhem?detail=aqicnMaster&dev.getaqicnMaster=aqicnMaster&cmd.getaqicnMaster=get&arg.getaqicnMaster=stationSearchByCity&val.getaqicnMaster=Potsdam&XHR=1&addLinks=1&fwcsrf=csrf_277902422370463&fw_id=17512; BUFLEN:0
2018.03.06 16:52:00 4: authorize WEB/cmd/get: allowed_WEB returned dont care
2018.03.06 16:52:00 4: authorize WEB/cmd/get: allowed_WEBhook returned dont care
2018.03.06 16:52:00 4: authorize WEB/devicename/aqicnMaster: allowed_WEB returned dont care
2018.03.06 16:52:00 4: authorize WEB/devicename/aqicnMaster: allowed_WEBhook returned dont care
2018.03.06 16:52:00 4: WEB: /fhem?detail=aqicnMaster&dev.getaqicnMaster=aqicnMaster&cmd.getaqicnMaster=get&arg.getaqicnMaster=stationSearchByCity&val.getaqicnMaster=Potsdam&XHR=1&addLinks=1&fwcsrf=csrf_277902422370463&fw_id=17512 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
 /
2018.03.06 16:52:01 4: authorize WEB/devicename/aqicnMaster: allowed_WEB returned dont care
2018.03.06 16:52:01 4: authorize WEB/devicename/aqicnMaster: allowed_WEBhook returned dont care
2018.03.06 16:52:01 4: Connection closed for WEB_10.6.6.17_59735: EOF
2018.03.06 16:52:06 4: Connection accepted from WEB_10.6.6.17_59739
2018.03.06 16:52:06 4: authorize WEB/devicename/aqicnMaster: allowed_WEB returned dont care
2018.03.06 16:52:06 4: authorize WEB/devicename/aqicnMaster: allowed_WEBhook returned dont care
2018.03.06 16:52:18 4: WEB_10.6.6.17_59723 GET /fhem?detail=aqicnMaster&fw_id=; BUFLEN:0
2018.03.06 16:52:18 4: authorize WEB/devicename/aqicnMaster: allowed_WEB returned dont care
2018.03.06 16:52:18 4: authorize WEB/devicename/aqicnMaster: allowed_WEBhook returned dont care
2018.03.06 16:52:18 4: authorize WEB/devicename/aqicnMaster: allowed_WEB returned dont care
2018.03.06 16:52:18 4: authorize WEB/devicename/aqicnMaster: allowed_WEBhook returned dont care
2018.03.06 16:52:18 4: authorize WEB/devicename/aqicnMaster: allowed_WEB returned dont care
2018.03.06 16:52:18 4: authorize WEB/devicename/aqicnMaster: allowed_WEBhook returned dont care
2018.03.06 16:52:18 4: WEB: /fhem?detail=aqicnMaster&fw_id= / RL:3038 / text/html; charset=UTF-8 / Content-Encoding: gzip
 /
2018.03.06 16:52:18 4: Connection closed for WEB_10.6.6.17_59739: EOF
2018.03.06 16:52:18 4: WEB_10.6.6.17_59723 GET /fhem?cmd=%7BAttrVal(%22aqicnMaster%22%2C%22room%22%2C%22%22)%7D&XHR=1&fwcsrf=csrf_277902422370463; BUFLEN:0
2018.03.06 16:52:18 4: authorize WEB/cmd/perl: allowed_WEB returned dont care
2018.03.06 16:52:18 4: authorize WEB/cmd/perl: allowed_WEBhook returned dont care
2018.03.06 16:52:18 4: WEB: /fhem?cmd=%7BAttrVal(%22aqicnMaster%22%2C%22room%22%2C%22%22)%7D&XHR=1&fwcsrf=csrf_277902422370463 / RL:26 / text/plain; charset=UTF-8 / Content-Encoding: gzip
 /
2018.03.06 16:52:18 4: WEB_10.6.6.17_59723 GET /fhem/icons/favicon; BUFLEN:0
2018.03.06 16:52:18 4: Connection accepted from WEB_10.6.6.17_59741


Liegt es nur an meinem websocket?




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://paypal.me/pools/c/8gULisr9BT
My FHEM Git: https://git.cooltux.net/FHEM/
Mein Dokuwiki:
https://www.cooltux.net

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 22640
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #1 am: 06 März 2018, 21:33:18 »
Wie schaut denn "dein" websocket aus? Will sagen: hast du zwischen Browser und FHEM besondere Komponenten wie Proxy/Firewall/etc?
Wieso meinst du, dass etwas zum Browser geschickt werden sollte? Aus dem Log geht das nicht hervor.
Was genau meinst du mit "keine Daten angezeigt"?

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25728
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #2 am: 06 März 2018, 21:39:07 »
Hallo Rudi,

Zwischen Browser und FHEM Server ist eine Firewall welche bezüglich FHEM nur Port 8083 Forwarded.
Bei dem Device mache ich ein get und es sollte dann ein Zusätzliches Fenster aufpoppen mit den entsprechenden Werten als HTML Tabelle. Kann da gerne morgen mal ein Screenshot machen.


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://paypal.me/pools/c/8gULisr9BT
My FHEM Git: https://git.cooltux.net/FHEM/
Mein Dokuwiki:
https://www.cooltux.net
Hilfreich Hilfreich x 1 Liste anzeigen

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 22640
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #3 am: 06 März 2018, 21:48:31 »
Waere auch interessant zu wissen, ob das Problem auch ohne Firewall besteht.

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25728
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #4 am: 06 März 2018, 21:51:08 »
Das bekomme ich leider nicht hin. Ich kann halt nur sagen das es mit longpoll 1 funktioniert. Würde denn die Entwicklerkonsole des Browsers etwas Aufschluss geben können?
Werde mir das ganze morgen noch mal anschauen.
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://paypal.me/pools/c/8gULisr9BT
My FHEM Git: https://git.cooltux.net/FHEM/
Mein Dokuwiki:
https://www.cooltux.net

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25728
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #5 am: 06 März 2018, 21:58:28 »
Ein anderes Modul welches auf selbige Art arbeitet, also Daten für eine Ausgabe als Tabelle in einem Pop-up auf zu arbeiten funktioniert ohne AsyncOutput super, trotz websocket.
Hier werden die Daten per HttpUtils_BlockingGet geholt und bei AsyncOutput per HttpUtils_NonblockingGet
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://paypal.me/pools/c/8gULisr9BT
My FHEM Git: https://git.cooltux.net/FHEM/
Mein Dokuwiki:
https://www.cooltux.net

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 22640
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #6 am: 06 März 2018, 22:18:17 »
Zitat
funktioniert ohne AsyncOutput super, trotz websocket.
Das ist nicht wirklich ein Wunder, ohne asyncOutput wird die longpoll Verbindung nicht verwendet (websocket oder nicht).

Zitat
Würde denn die Entwicklerkonsole des Browsers etwas Aufschluss geben können?
Vielleicht, ich glaube aber eher nicht. Vermutlich muss ich mehr Debug in FHEMWEB einbauen.

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25728
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #7 am: 06 März 2018, 22:33:10 »
Habe kein Problem damit da was rum zu bauen. Sag mir nur wo ich welchen Code einfügen soll und dann kann ich testen. Das System auf dem ich das Modul zu laufen habe ist nicht ganz so kritisch.

Ich danke Dir schon mal für die Unterstützung.


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://paypal.me/pools/c/8gULisr9BT
My FHEM Git: https://git.cooltux.net/FHEM/
Mein Dokuwiki:
https://www.cooltux.net

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 22640
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #8 am: 07 März 2018, 22:36:43 »
Ich habe eine neue 01_FHEMWEB.pm eingecheckt mit etwas mehr debugging fuer AsyncOutput.
Bitte:
- attr WEB verbose 4 setzen, Problem reproduzieren, und FHEM-Log + JavaScript-ConsolenInhalt hier anhaengen.
- Achtung: AsyncOutput funktioniert _nicht_ im EventMonitor
- Auf eine "normale" FHEM-Seite wechseln (Raum oder Detailansicht), danach im telnet oder andere FHEMWEB-Instanz
fhem> li WEB_.* FW_ID
absetzen, ich kriege:
Zitat
WEB_127.0.0.1_56033      307
Damit Folgendes passend ersetzen, und ausfuehren:
{ FW_AsyncOutput($defs{"WEB_127.0.0.1_56033"}, "HALLO") }
Was steht im FHEM-Log? Kommt ein Dialog?

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25728
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #9 am: 08 März 2018, 06:21:44 »
Guten Morgen Rudi,

Ich konnte das ganze nun einmal auf einer lokalen VM auf meinem Notebook testen und da bekomme ich trotz websocket ein aufpoppendes Fenster. Genau so wie es sein sollte.
Ich teste Deine neue Version wie beschrieben heute im laufe des Tages.



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://paypal.me/pools/c/8gULisr9BT
My FHEM Git: https://git.cooltux.net/FHEM/
Mein Dokuwiki:
https://www.cooltux.net

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25728
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #10 am: 08 März 2018, 09:42:43 »
Hallo Rudi,

Ich habe mal mit der Developerkonsole vom Chrome probiert. Da kommt eine Ausagbe
09:38:56.122 FW_queryValue:{AttrVal("aqicnMaster","room","")}
fhemweb.js:427 09:38:56.216 Inform-channel opened (websocket) with filter aqicnMaster
fhemweb.js:427 09:38:56.953 Rcvd:
fhemweb.js:427 09:39:05.132 FW_cmd:/fhem?detail=aqicnMaster&dev.getaqicnMaster=aqicnMaster&fwcsrf=csrf_821718558298017&cmd.getaqicnMaster=get&arg.getaqicnM...
fhemweb.js:1106 WebSocket connection to 'wss://fhem02.net/fhem?XHR=1&inform=type=status;filter=aqicnMaster;since=1520498334;fmt=JSON&fw_id=185&timestamp=1520498336216' failed: A server must not mask any frames that it sends to the client.
FW_longpoll @ fhemweb.js:1106
(anonymous) @ VM114:1
fhemweb.js:427 09:39:06.579 ERRMSG:Connection lost, trying a reconnect every 5 seconds.<
fhemweb.js:427 09:39:11.479 ERRMSG:<
fhemweb.js:427 09:39:11.581 Inform-channel opened (websocket) with filter aqicnMaster
fhemweb.js:427 09:39:12.211 Rcvd:

Hier muß ich aber dazu sagen das ich hier von außen über einen Reverse Proxy gegangen bin. Intern teste ich heute Abend.


Hier das selbe mit Firefox

09:45:09.947 FW_queryValue:{AttrVal("aqicnMaster","room","")}  fhemweb.js:427:5
09:45:10.035 Inform-channel opened (websocket) with filter aqicnMaster  fhemweb.js:427:5
09:45:10.723 Rcvd:   fhemweb.js:427:5
09:45:55.424 FW_cmd:/fhem?detail=aqicnMaster&dev.getaqicnMaster=aqicnMaster&fwcsrf=csrf_821718558298017&cmd.getaqicnMaster=get&arg.getaqicnM...  fhemweb.js:427:5
Die Verbindung zu wss://fhem02.net/fhem?XHR=1&inform=type=status;filter=aqicnMaster;since=1520498706;fmt=JSON&fw_id=252&timestamp=1520498710035 wurde unterbrochen, während die Seite geladen wurde.  fhemweb.js:1106:18
09:45:57.110 ERRMSG:Connection lost, trying a reconnect every 5 seconds.<  fhemweb.js:427:5
09:46:02.012 ERRMSG:<  fhemweb.js:427:5
09:46:02.113 Inform-channel opened (websocket) with filter aqicnMaster  fhemweb.js:427:5
09:46:08.379 Rcvd:



Grüße
« Letzte Änderung: 08 März 2018, 09:47:28 von CoolTux »
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://paypal.me/pools/c/8gULisr9BT
My FHEM Git: https://git.cooltux.net/FHEM/
Mein Dokuwiki:
https://www.cooltux.net

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25728
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #11 am: 08 März 2018, 09:55:55 »
Hier noch mal mit Reverse Proxy. Diesmal aber FHEMWEB mit verbose 4 und Java Konsole


Entwicklerkonsole mit Java Ausgabe
09:49:09.749 FW_queryValue:{AttrVal("aqicnMaster","room","")}  fhemweb.js:427:5
09:49:09.836 Inform-channel opened (websocket) with filter aqicnMaster  fhemweb.js:427:5
09:49:10.456 Rcvd:   fhemweb.js:427:5
Die Verbindung zu wss://fhem02.net/fhem?XHR=1&inform=type=status;filter=aqicnMaster;since=1520498706.805;fmt=JSON&fw_id=252&timestamp=1520498762112 wurde unterbrochen, während die Seite geladen wurde.  fhemweb.js:1106:18
Die Verbindung zu wss://fhem02.net/fhem?XHR=1&inform=type=status;filter=WEB;since=1520498930;fmt=JSON&fw_id=271&timestamp=1520498932412 wurde unterbrochen, während die Seite geladen wurde.  fhemweb.js:1106:18
09:49:26.391 FW_cmd:/fhem?detail=aqicnMaster&dev.getaqicnMaster=aqicnMaster&fwcsrf=csrf_821718558298017&cmd.getaqicnMaster=get&arg.getaqicnM...  fhemweb.js:427:5
Die Verbindung zu wss://fhem02.net/fhem?XHR=1&inform=type=status;filter=WEB;since=1520498943;fmt=JSON&fw_id=277&timestamp=1520498944690 wurde unterbrochen, während die Seite geladen wurde.  fhemweb.js:1106:18
Die Verbindung zu wss://fhem02.net/fhem?XHR=1&inform=type=status;filter=aqicnMaster;since=1520498948;fmt=JSON&fw_id=283&timestamp=1520498949836 wurde unterbrochen, während die Seite geladen wurde.  fhemweb.js:1106:18
09:49:28.263 ERRMSG:Connection lost, trying a reconnect every 5 seconds.<  fhemweb.js:427:5
Die Verbindung zu wss://fhem02.net/fhem?XHR=1&inform=type=status;filter=room=Klima;since=1520498946;fmt=JSON&fw_id=281&timestamp=1520498948474 wurde unterbrochen, während die Seite geladen wurde.  fhemweb.js:1106:18
09:49:33.167 ERRMSG:<  fhemweb.js:427:5
09:49:33.266 Inform-channel opened (websocket) with filter aqicnMaster  fhemweb.js:427:5
09:49:34.113 Rcvd: ["aqicnMaster","search finished","<div id=\u0022aqicnMaster\u0022  title=\u0022search finished\u0022 class=\u0022col2\u0022>search f...(147)  fhemweb.js:427:5



FHEM Log FHEMWEB Instanz WEB mit verbose 4
2018.03.08 09:49:23 4: Connection closed for WEB_10.6.6.17_57271: EOF
2018.03.08 09:49:26 4: Connection accepted from WEB_10.6.6.17_57289
2018.03.08 09:49:26 4: WEB_10.6.6.17_57289 POST /fhem?detail=aqicnMaster&dev.getaqicnMaster=aqicnMaster&cmd.getaqicnMaster=get&arg.getaqicnMaster=stationSearchByCity&val.getaqicnMaster=Potsdam&XHR=1&addLinks=1&fwcsrf=csrf_821718558298017&fw_id=283; BUFLEN:0
2018.03.08 09:49:26 4: authorize WEB/cmd/get: allowed_WEB returned dont care
2018.03.08 09:49:26 4: authorize WEB/cmd/get: allowed_WEBhook returned dont care
2018.03.08 09:49:26 4: authorize WEB/devicename/aqicnMaster: allowed_WEB returned dont care
2018.03.08 09:49:26 4: authorize WEB/devicename/aqicnMaster: allowed_WEBhook returned dont care
2018.03.08 09:49:26 4: WEB: /fhem?detail=aqicnMaster&dev.getaqicnMaster=aqicnMaster&cmd.getaqicnMaster=get&arg.getaqicnMaster=stationSearchByCity&val.getaqicnMaster=Potsdam&XHR=1&addLinks=1&fwcsrf=csrf_821718558298017&fw_id=283 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
 /
2018.03.08 09:49:26 4: Connection closed for WEB_10.6.6.17_57289: EOF
2018.03.08 09:49:27 4: Connection closed for WEB_10.6.6.17_57281: EOF
2018.03.08 09:49:28 4: AsyncOutput from WEB_10.6.6.17_57289
2018.03.08 09:49:28 4: Connection closed for WEB_10.6.6.17_57286: EOF
2018.03.08 09:49:29 4: Connection closed for WEB_10.6.6.17_57283: EOF
2018.03.08 09:49:33 4: Connection accepted from WEB_10.6.6.17_57291


Ich denke mal hier haben wir schon mal eine Sache
2018.03.08 09:49:26 4: Connection closed for WEB_10.6.6.17_57289: EOF
2018.03.08 09:49:28 4: AsyncOutput from WEB_10.6.6.17_57289

Die Verbindung wurde getrennt bevor  AsyncOutput ausliefern konnte. Das kann aber nun auch am Proxy liegen.
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://paypal.me/pools/c/8gULisr9BT
My FHEM Git: https://git.cooltux.net/FHEM/
Mein Dokuwiki:
https://www.cooltux.net

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 22640
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #12 am: 08 März 2018, 11:52:37 »
Zu deinen Proxys kann ich nichts sagen.
Ein close ist kein Problem, solange eine Verbindung mit der gleichen FW_ID gibt.

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25728
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #13 am: 08 März 2018, 11:53:47 »
Danke Dir.
Dann lassen wir das mit dem Proxy erstmal aussen vor und schauen uns an was eine direkte Verbindung macht. Also durch meine Firewall natürlich. Dazu gebe ich heute Abend mehr Daten.



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://paypal.me/pools/c/8gULisr9BT
My FHEM Git: https://git.cooltux.net/FHEM/
Mein Dokuwiki:
https://www.cooltux.net

Offline dev0

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3578
    • _.:|:._
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #14 am: 08 März 2018, 12:49:18 »
Zitat
Ich konnte das ganze nun einmal auf einer lokalen VM auf meinem Notebook testen und da bekomme ich trotz websocket ein aufpoppendes Fenster. Genau so wie es sein sollte.
Ist das nicht der Beweis, dass es an der Firewall liegt?