Nach dockerize kein ws in fronthem

Begonnen von bgewehr, 19 Januar 2020, 20:01:20

Vorheriges Thema - Nächstes Thema

bgewehr

Hallo,

nach dem Umzug meines fhem in einen docker container mit dem Image von

https://registry.hub.docker.com/u/fhem/fhem/

bekomme ich den Websocket von fronthem nicht wieder dazu, mit mir zu sprechen.

Docker network ist bridge, port 2121 ist extern an intern 2121 tcp gebunden.

Die Clients geben keinen Fehler, fhem gibt keinen Fehler, die Clients melden sogar connected in fhem, aber es kommen einfach keine Daten über den websocket.

Die config aus ../www/fronthem/... habe ich vom alten fhem übernommen.

Alle nötigen perl Module sind da, loopback Adapter ist da.

Wie kann ich weiter testen?
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

bgewehr

Der WS scheint zu existieren, aber bleibt im handshake stecken:

CAUTION! Request has not finished yet sehe ich im debug view mit F12 im network WS bei Timing.

Aber: was kann ich tun? @Jörg, irgendeine Idee?

FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

herrmannj

leider keine. Mir fehlt da leider auch Docker Verständnis. Grundsätzlich, und ab hier fängt raten an, benötigt ein ws zb in Proxys auch eine Extrabehandlung. Eventuell benötigt der Docker auch Sonderbehandlungen. Aber: funktioniert der Websocket in fhemweb ?

bgewehr

Kann ich den Port von 2121 auf etwas anderes setzen? Ich habe vergessen, wo... ;-))
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

herrmannj

ja konfigurierbar in line #91 in 01_fronthem.pm ;)

$cfg->{port} = 2121;

bgewehr

Es sieht so aus, also ob die außerhalb von Docker sinnvolle Verwendung von localhost mit loopback auf 127.0.0.1 innerhalb eines Containers nicht funktioniert, da der relevante localhost hier 127.17.0.4 oder so etwas ist.

https://stackoverflow.com/questions/54101508/how-do-you-dockerize-a-websocket-server/54102318#54102318

Ich muss also entweder am hostile Schrauben oder am frontHEM.pm oder am local Host File.

Womit würdest Du starten?
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

herrmannj

uh. Ich bin mir aber gar nicht so sicher ob das in Deinem Fall die Ursache ist. Der stack overflow bezieht sich mMn auf eine Connection von außerhalb des Dockers. Steht denn was im fhem log? Die localhost Verbindung kommt nur innerhalb des Dockers zum tragen.

Ansonsten: persönlich würde ich mit Änderungen in fronthem anfangen. Zumindest solange bis ichs besser verstehe. Änderungen am hostfile sind vielleicht als Lösung geeignet. Aber hat das Nebeneffekte für den Rest des Systems ?

Der code in fronthem ist in line #620    PeerHost => 'localhost',

vg
joerg