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

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25238
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #15 am: 08 März 2018, 12:55:00 »
Ja ist es sicherlich. Steht ja auch ausser Frage. Mich interessiert aber wieso. Der Port wird forwarded, Protokoll TCP. Leider kenne ich websocket nicht, denke aber es sollte doch mit dem Forward ohne Probleme gehen. Oder?
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 #16 am: 08 März 2018, 12:57:30 »
Wenn es weitergeletet wird: ja. Bist Du sicher, dass es so ist?

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25238
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #17 am: 08 März 2018, 13:01:15 »
Ja denn die Webseite wird ja geladen, ich kann die Widgets verwenden, also damit auch schalten, es werden alles Readings angezeigt und das beste es werden mir aktuallisierte Readings angezeigt. Also Reading Timestamp ändert sich und wird rot.
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 #18 am: 08 März 2018, 13:17:18 »
Wäre ich von diesem Problem betroffen, dann würde ich den in/out Traffic auf dem Switchport mitschneiden und mit Wireshark o.ä. nachschauen, ob wirklich alles _unverändert_ durchgeht. Oder die FW, zum Testen, deaktivieren. Je nach Aufwand.

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25238
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #19 am: 08 März 2018, 13:24:49 »
Wäre ich von diesem Problem betroffen, dann würde ich den in/out Traffic auf dem Switchport mitschneiden und mit Wireshark o.ä. nachschauen, ob wirklich alles _unverändert_ durchgeht. Oder die FW, zum Testen, deaktivieren. Je nach Aufwand.

Es handelt sich dabei um simpelstes linux kernel packetfiltern. Ich schaue heute Abend gerne auch nich mit wenn ich teste was die Firewall dazu sagt.
Ausschalten geht leider nicht, dann ist alles tot.
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

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25238
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #20 am: 08 März 2018, 20:07:47 »
Hallo Rudi,

Hier nun die Daten für den direkten Zugriff, lediglich über eine Firewall mit Portforwarding




Browserkonsole
20:01:14.586 FW_queryValue:{AttrVal("aqicnMaster","room","")}
fhemweb.js:427 20:01:14.680 Inform-channel opened (websocket) with filter aqicnMaster
fhemweb.js:427 20:01:15.093 Rcvd:
fhemweb.js:427 20:02:08.096 FW_cmd:/fhem?detail=aqicnMaster&dev.getaqicnMaster=aqicnMaster&fwcsrf=csrf_821718558298017&cmd.getaqicnMaster=get&arg.getaqicnM...
fhemweb.js:1106 WebSocket connection to 'wss://fhem02.tuxnet.local:8083/fhem?XHR=1&inform=type=status;filter=aqicnMaster;since=1520535674;fmt=JSON&fw_id=919&timestamp=1520535674680' failed: A server must not mask any frames that it sends to the client.
fhemweb.js:427 20:02:09.895 ERRMSG:Connection lost, trying a reconnect every 5 seconds.<
fhemweb.js:427 20:02:14.796 ERRMSG:<
fhemweb.js:427 20:02:14.896 Inform-channel opened (websocket) with filter aqicnMaster
fhemweb.js:427 20:02:15.151 Rcvd: ["aqicnMaster","search finished","<div id=\u0022aqicnMaster\u0022  title=\u0022search finished\u0022 class=\u0022col2\u0022>search f...(147)


FHEM Log
2018.03.08 20:02:08 4: WEB_10.6.6.17_37301 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=919; BUFLEN:0
2018.03.08 20:02:08 4: authorize WEB/cmd/get: allowed_WEB returned dont care
2018.03.08 20:02:08 4: authorize WEB/cmd/get: allowed_WEBhook returned dont care
2018.03.08 20:02:08 4: authorize WEB/devicename/aqicnMaster: allowed_WEB returned dont care
2018.03.08 20:02:08 4: authorize WEB/devicename/aqicnMaster: allowed_WEBhook returned dont care
2018.03.08 20:02:09 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=919 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
 /
2018.03.08 20:02:10 4: AsyncOutput from WEB_10.6.6.17_37301
2018.03.08 20:02:10 4: Connection closed for WEB_10.6.6.17_37340: EOF
2018.03.08 20:02:15 4: Connection accepted from WEB_10.6.6.17_37344
2018.03.08 20:03:05 4: Closing inactive connection WEB_10.6.6.17_37302
2018.03.08 20:04:05 4: Closing inactive connection WEB_10.6.6.17_37301

Das Firewalllog meldet nichts.
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: 22260
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #21 am: 09 März 2018, 19:36:57 »
Habe nicht wirklich eine Idee, und verstehe auch die Chrome-Fehlermeldung nicht.
Kannst du bitte den Text noch ausgeben, indem du in 01_FHEMWEB.pm die neue Zeile
  Log3 $hash->{SNAME}, 4, "AsyncOutput from $hash->{NAME}";
durch
  Log3 $hash->{SNAME}, 4, "AsyncOutput from $hash->{NAME} $data";
ersetzt, und nochmal testest?

Gibt es diese Probleme auch durch einen ssh Tunnel zum FHEM Server?
D.h. "ssh -L8083:localhost:8083 fhemuser@fhemserver", und im Browser http://localhost:8083/fhem

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25238
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #22 am: 09 März 2018, 19:41:12 »
Habe nicht wirklich eine Idee, und verstehe auch die Chrome-Fehlermeldung nicht.
Kannst du bitte den Text noch ausgeben, indem du in 01_FHEMWEB.pm die neue Zeile
  Log3 $hash->{SNAME}, 4, "AsyncOutput from $hash->{NAME}";
durch
  Log3 $hash->{SNAME}, 4, "AsyncOutput from $hash->{NAME} $data";
ersetzt, und nochmal testest?

Gibt es diese Probleme auch durch einen ssh Tunnel zum FHEM Server?
D.h. "ssh -L8083:localhost:8083 fhemuser@fhemserver", und im Browser http://localhost:8083/fhem

Kann ich gerne testen.
Kann auch mal versuchen über ssh ein Socket Proxy auf zu bauen. Mal schauen.


Da keine Dir.
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

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25238
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #23 am: 10 März 2018, 07:34:43 »
Guten Morgen Rudi,

Interessanter Weise bekomme ich über SSH den selben Effekt. Anbei die Logs

2018.03.10 07:31:30 4: WEB_127.0.0.1_45452 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=3098; BUFLEN:0
2018.03.10 07:31:30 4: authorize WEB/cmd/get: allowed_WEB returned dont care
2018.03.10 07:31:30 4: authorize WEB/cmd/get: allowed_WEBhook returned dont care
2018.03.10 07:31:30 4: authorize WEB/devicename/aqicnMaster: allowed_WEB returned dont care
2018.03.10 07:31:30 4: authorize WEB/devicename/aqicnMaster: allowed_WEBhook returned dont care
2018.03.10 07:31:30 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=3098 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
 /
2018.03.10 07:31:31 4: AsyncOutput from WEB_127.0.0.1_45452 ["#FHEMWEB:WEB","FW_okDialog('<table><tr><td><table class=\u0022block wide\u0022><tr class=\u0022even\u0022><td><b>City</b></td><td><b>Last Update Time</b></td><td><b>Latitude</b></td><td><b>Longitude</b></td><td></td></tr><tr class=\u0022odd\u0022><td>Potsdam, Großbeerenstr. v, Germany</td><td>2018-03-10 06:00:00</td><td>52.389817</td><td>13.0903142</td><td><a target=\u0022_blank\u0022 href=\u0022https://www.google.de/maps/search/52.389817+13.0903142\u0022>Station on Google Maps</a></td><td><a href=\u0022https://localhost:8083/fhem?cmd=define+Potsdam__Gro_beerenstr._v__Germany+Aqicn+6198&fwcsrf=csrf_821718558298017\u0022>Create Station Device</a></td></tr><tr class=\u0022even\u0022><td>Potsdam-Zentrum, Germany</td><td>2018-03-10 07:00:00</td><td>52.401111111111</td><td>13.059722222222</td><td><a target=\u0022_blank\u0022 href=\u0022https://www.google.de/maps/search/52.401111111111+13.059722222222\u0022>Station on Google Maps</a></td><td><a href=\u0022https://localhost:8083/fhem?cmd=define+Potsdam_Zentrum__Germany+Aqicn+6189&fwcsrf=csrf_821718558298017\u0022>Create Station Device</a></td></tr><tr class=\u0022odd\u0022><td>Potsdam, Zeppelinstr. v, Germany</td><td>2018-03-10 07:00:00</td><td>52.393888888889</td><td>13.037777777778</td><td><a target=\u0022_blank\u0022 href=\u0022https://www.google.de/maps/search/52.393888888889+13.037777777778\u0022>Station on Google Maps</a></td><td><a href=\u0022https://localhost:8083/fhem?cmd=define+Potsdam__Zeppelinstr._v__Germany+Aqicn+6199&fwcsrf=csrf_821718558298017\u0022>Create Station Device</a></td></tr><tr class=\u0022even\u0022><td>Potsdam, Groß Glienicke, Germany</td><td>2018-03-10 07:00:00</td><td>52.484166666667</td><td>13.123611111111</td><td><a target=\u0022_blank\u0022 href=\u0022https://www.google.de/maps/search/52.484166666667+13.123611111111\u0022>Station on Google Maps</a></td><td><a href=\u0022https://localhost:8083/fhem?cmd=define+Potsdam__Gro__Glienicke__Germany+Aqicn+6188&fwcsrf=csrf_821718558298017\u0022>Create Station Device</a></td></tr></table></td></tr></table>')",""]
2018.03.10 07:31:31 4: Connection closed for WEB_127.0.0.1_45498: EOF
2018.03.10 07:31:36 4: Connection accepted from WEB_127.0.0.1_45512
2018.03.10 07:31:36 4: Connection closed for WEB_127.0.0.1_45512: EOF
2018.03.10 07:31:37 4: Connection accepted from WEB_127.0.0.1_45516


07:31:01.530 FW_queryValue:{AttrVal("aqicnMaster","room","")}
fhemweb.js:427 07:31:01.625 Inform-channel opened (websocket) with filter aqicnMaster
fhemweb.js:427 07:31:02.005 Rcvd:
fhemweb.js:427 07:31:30.392 FW_cmd:/fhem?detail=aqicnMaster&dev.getaqicnMaster=aqicnMaster&fwcsrf=csrf_821718558298017&cmd.getaqicnMaster=get&arg.getaqicnM...
fhemweb.js:1106 WebSocket connection to 'wss://localhost:8083/fhem?XHR=1&inform=type=status;filter=aqicnMaster;since=1520663460;fmt=JSON&fw_id=3098&timestamp=1520663461624' failed: Invalid frame header
FW_longpoll @ fhemweb.js:1106
(anonymous) @ VM214:1
fhemweb.js:427 07:31:31.669 ERRMSG:Connection lost, trying a reconnect every 5 seconds.<
fhemweb.js:427 07:31:36.570 ERRMSG:<
fhemweb.js:427 07:31:36.670 Inform-channel opened (websocket) with filter aqicnMaster
fhemweb.js:427 07:31:37.085 Rcvd:
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: 22260
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #24 am: 10 März 2018, 12:06:03 »
Bin ratlos, bei mir funktioniert es: Ich habe aus der AsyncOutput-Zeile in deinem Log die <table>...</table> Daten in /tmp/t.txt gespeichert, es mit <html> "umkeidet", \u0022 in " konvertiert und es per
Zitat
fhem> { FW_AsyncOutput($defs{"WEB_127.0.0.1_53192"}, `cat /tmp/t.txt`) }
angezeigt, und ich bekomme die angehaengte Darstellung, was meiner Ansicht nach ok ist.

Irgendwer muss bei Dir die Daten aendern, ich wuerde, wie dev0 das vorgeschlagen hat, mit Wireshark / tcpdump / etc es in beiden Faellen (geht/geht nicht) protokollieren, und die beiden Protokolle vergleichen. Sorry, aber das ist das Beste, was mir z.Zt. einfaellt.

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25238
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #25 am: 10 März 2018, 12:30:54 »
Bin ratlos, bei mir funktioniert es: Ich habe aus der AsyncOutput-Zeile in deinem Log die <table>...</table> Daten in /tmp/t.txt gespeichert, es mit <html> "umkeidet", \u0022 in " konvertiert und es per angezeigt, und ich bekomme die angehaengte Darstellung, was meiner Ansicht nach ok ist.

Irgendwer muss bei Dir die Daten aendern, ich wuerde, wie dev0 das vorgeschlagen hat, mit Wireshark / tcpdump / etc es in beiden Faellen (geht/geht nicht) protokollieren, und die beiden Protokolle vergleichen. Sorry, aber das ist das Beste, was mir z.Zt. einfaellt.

Musst Dich entschuldigen. Vielen Dank für Deine Unterstützung. Ich werde mir das ganze dann die Tage mal in Ruhe anschauen. Auch so wie dev0 und Du es vorgeschlagen haben.



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

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25238
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #26 am: 11 März 2018, 20:46:45 »
Gute Nachrichen. Ich habe neue Infos. Es liegt nicht an websocket, es liegt an HTTPS. Sobald ich HTTPS deaktiviere und alles andere so lasse, geht es.
Jetzt muss ich nur noch rausfinden was HTTPS da macht.
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

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25238
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #27 am: 11 März 2018, 21:13:33 »
Ich habe soeben die Gegenprobe auf meinem lokalen virtualisierten FHEM gemacht, da wo es vorher (ohne HTTPS) ging. Nun habe auch hier, nach aktivieren von HTTPS, genau das selbige Fehlerbild.
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

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25238
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #28 am: 13 März 2018, 10:29:12 »
Wäre es möglich das ein anderer Entwickler einmal asyncOutput unter HTTPS testet bitte?
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 michael.winkler

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1557
Antw: asyncOutput() und FHEMWEB mit websocket Probleme
« Antwort #29 am: 13 März 2018, 11:56:05 »
Wäre es möglich das ein anderer Entwickler einmal asyncOutput unter HTTPS testet bitte?
Hi,

das Verhalten kann ich nachstellen.

Allerdings habe ich direkt auf dem FHEM Server kein SSL aktiviert, sondern einen SSL Server davor hängen. Der SSL Server leitet alles auf den entsprechenden HTTP Port vom FHEM Server weiter.

Mit Longpoll=1 zeigt es die Dialog. Mit Longpoll=websocket kommt im Browser folgende Fehlermeldung.

fhemweb.js:1106 WebSocket connection to 'wss://10.10.0.242/fhem?XHR=1&inform=type=status;filter=WEB.Test;since=1520938390;fmt=JSON&fw_id=154&timestamp=1520938389720' failed: Error during WebSocket handshake: net::ERR_CONNECTION_RESET

 

decade-submarginal