HUEBridge kein Aufbau des websockets nach Verbindungsabbruch hard

Begonnen von CoolTux, 20 November 2021, 07:31:55

Vorheriges Thema - Nächstes Thema

CoolTux

Hallo Andre,

Mein FHEM und der Deconz sind über VPN verbunden. Alle 24h wird DSL neugestartet und der VPN Tunnel daher auch neu aufgebaut. Das dauert etwas. Während HUEBridge Ihre Verbindung nach bestehen der Verbindung wieder aufnimmt wird der websocket leider nicht neu aufgebaut.
Ich kann Dir da gerne einen Patch liefern wenn Du magst. Würde dann das alter eines Timestamps checken der in der ReadFn immer wieder neu gesetzt wird. Kommt dort nichts mehr an wird der Timestamp auch nicht aktualisiert. In einer immer wieder aufgerufenen Funktion wird ermittelt ob der Timestamp zu alt ist und versucht den socket neu auf zu bauen wenn er zu alt ist. Habe festgestellt das der websocket doch sehr kontinuierlich Daten liefert.



Grüße
Marko
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

justme1968

schau bitte noch mal genau in den code. beim neu aufbau der verbindung wird eigentlich erst die alte verbindung inklusive websocket zu gemacht und dann erst neu aufgemacht. d.h. das sollte ohne timestamps und timeouts gehen. vielleicht ist da noch ein logik fehler.

unabhängig davon sollte auch das websocket bei verbindungsabbruch aber eigentlich weg sein. die 'normale' verbindung wir ja bei jedem schaltvorgang oder pollen neu aufgebaut wegen stateless http. bekommt das system überhaupt mit das die verbindung weg ist? irgendwo gibt es einen anderen thread bei dem es um ein ähnliches problem bei zwangstrennnung ging. ich glaube da war die lösung auch auf netzwerk ebene.


timestamp wäre nur eine notlösung wenn das über den normalen verbindungs ab- und aufbau nicht zum laufen zu bekommen ist.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

CoolTux

Genau das ist ja das Problem, das Modul bekommt die Trennung nicht mit. Ich kann Dir morgen die genaue Meldung geben. Es war aber glaube in der _dispatch


if( $err ) {
    Log3 $name, 2, "$name: http request failed: $err";
} ....

Bei der Meldung bleibt der Status auch dauerhaft auf connected
Und da gibt es dann keine weitere Behandlung. Es wird immer und immer wieder versucht und irgendwann klappt es dann und er bekommt Daten. Das Modul bemerkt nicht das die Verbindung bereits weg ist. Seit mehreren Minuten. Daher wird auch nichts neu aufgebaut, die alte Verbindung ist ja wieder da, nur der websocket ist weg.



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

justme1968

eben. die 'richtige' lösung ist dafür zu sorgen das auf netzwerk ebene alle etwas von der neuen von verbindung mit bekommen.

hilft es wenn du das vpn von hand ab- und wieder aufbaust?

je nach dem wer genau das von aufbaut, wo nat passiert und wer das routing macht könnte es helfen hier anzusetzen.
eventuell würde helfen den tcp timeout zu ändern. das ist zwar auch nicht sauber aber etwas besser.

das mit dem websocket timestamp ist halt nur so ein workaround. der da eigentlich nicht hin gehört. der witz an tcp/ip ist ja das es eine zuverlässige verbindung ist und die zwangstrennung pfuscht an der falschen stelle auf die falsche art dazwischen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

CoolTux

Leider ist die Trennung vom Provider. Die typische 24h Trennung halt. Da kann keiner was mitbekommen. Habe es nun über ping-presence gelöst.
Danke Dir


Grüße
Marko
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