HUEBridge device verliert/schließt immer wieder die Verbindung zur deConz Instan

Begonnen von pjakobs, 06 Oktober 2020, 20:40:20

Vorheriges Thema - Nächstes Thema

pjakobs

Moin zusammen,

ich habe deConz in einem Container laufen und kann mich mit dem HUEBridge Modul auch prima damit verbinden, allerdings wird die Verbindung immer wieder für etliche Sekunden geschlossen, was dann dazu führt, dass Events in der Zeit verloren gehen (besonders unangenehm bei Bewegungsmeldern).
Das ganze passiert recht unspektakulär und ohne Fehlermeldung:

2020.10.06 20:29:31 5: deCONZ: websocket data: $VAR1 = {
  'attr' => {
    'lastannounced' => '2020-10-04T01:08:25Z',
    'lastseen' => '2020-10-06T18:29:31Z',
    'manufacturername' => 'OSRAM',
    'modelid' => 'CLA60 TW OSRAM',
    'name' => 'Color temperature light 3',
    'swversion' => 'V1.05.10',
    'type' => 'Color temperature light',
    'uniqueid' => '7c:b0:3e:aa:00:af:63:27-03'
  },
  'e' => 'changed',
  'id' => '3',
  'r' => 'lights',
  't' => 'event',
  'uniqueid' => '7c:b0:3e:aa:00:af:63:27-03'
};

2020.10.06 20:29:32 2: deCONZ: websocket closed

und dann wird die Verbindung wieder aufgebaut, allerdings gut 20 Sekunden später

2020.10.06 20:29:53 3: deCONZ: websocket opened to 192.168.29.5:8443
2020.10.06 20:29:53 3: deCONZ: websocket: Switching Protocols ok
2020.10.06 20:29:56 5: deCONZ: websocket data: $VAR1 = {
  'attr' => {
    'lastannounced' => '2020-10-04T01:08:25Z',
    'lastseen' => '2020-10-06T18:29:56Z',
    'manufacturername' => 'OSRAM',
    'modelid' => 'CLA60 TW OSRAM',
    'name' => 'Color temperature light 3',
    'swversion' => 'V1.05.10',
    'type' => 'Color temperature light',
    'uniqueid' => '7c:b0:3e:aa:00:af:63:27-03'
  },
  'e' => 'changed',
  'id' => '3',
  'r' => 'lights',
  't' => 'event',
  'uniqueid' => '7c:b0:3e:aa:00:af:63:27-03'
};

Wie gesagt, in der Zeit gehen dann natürlich alle zigbee Events verloren. Hat jemand eine gute Idee, woran das liegen könnte, oder was ich tun kann, um den Fehler zu debuggen?
Im deConz Log selbst sehe ich erstmal nichts dazu.

Grüße

pj

justme1968

es gibt irgendwo einen thread bei dem es schon mal darum ging. wenn im log 'websocket closed' auftaucht wurde die verbindung von der gegenstelle zugemacht.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

pjakobs

ich hab mal ein bisschen nachgesehen, das HUEBridge Modul schließt die Verbindung wenn die Länge der Nachricht undefiniert oder null ist.

my $close = 0;
   if( !defined($len) || !$len ) {
     $close = 1;
     #pj
     Log3 $name, 5, "$name: closing websocket due to empty message";

   } elsif( $hash->{websocket} ) {
     $hash->{buf} .= $buf;

(logmessage von mir, um die Situation zu finden)

Wenn ich den Port bei der Bedingung nicht schließe, dann lauf ich erstmal in eine Endlosschleife.

Wenn ich das richtig sehe kommt da also ein leerer Request an. Die Frage ist: ist das eine Fehlerkondition der Socket Verbindung oder nur eine fehlerhafte Nachricht?
Ich schau mal weiter.

justme1968

länge 0 bedeutet eof bzw. eben genau das die gegenstelle die verbindung beendet hat.

wenn du nicht schliesst kommt die endlosschleife weil du immer wieder das gleiche eof bekommst wenn du es ignorierst.

es gibt in diesem kontext keine leeren nachrichten.

schau lieber auf deconz seite was direkt vorher passiert.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

pjakobs

Zitat von: justme1968 am 07 Oktober 2020, 09:46:30
länge 0 bedeutet eof bzw. eben genau das die gegenstelle die verbindung beendet hat.

wenn du nicht schliesst kommt die endlosschleife weil du immer wieder das gleiche eof bekommst wenn du es ignorierst.

es gibt in diesem kontext keine leeren nachrichten.

schau lieber auf deconz seite was direkt vorher passiert.
deconz sagt

Remove websocket 192.168.29.5:49660 after error Unknown error

und Mimiix meint auf Github, dass das Websocket Interface vom Client administriert wird...
Weil deConz bei mir im Container läuft ist es erstmal einfacher, auf fhem Seite zu schauen ;-)

pjakobs

@justme1968 - ich bin drüben auf dem discord channel mit dem Entwickler der deConz API, Mimiix, im Gespräch, aktuell ist die Situation mit den Abbrüchen der websocket Verbindung nervig - und keine Seite liefert vernünftige fehler (hier nur die Tatsache, dass die Message Lenght 0 ist, in deConz gibt es einen "unknown Error")
Am einfachsten kämst Du über den Invitation Code von Phoscon discord.gg/9N38PpA

grüße

pj


justme1968

wir können discord gerne probieren, ich weiss aber nicht ob es auf dauer produktiv ist noch einen kanal mit eventuell hohem durchsatz zu haben. wir versuchen es mal...

zum eigentlichen problem zurück: auf fhem seite kann ich leider keine bessere meldung ausspucken weil das verhalten wie oben beschrieben ist. die gegenseite macht das socket zu und ich erfahr über das länge 0 das es nichts mehr zu lesen gibt. an dieser stelle kann ich nichts mehr tun. es kann sehr gut sein das vorher schon etwas schief geht und die gegenseite etwas erwartet das ich nicht liefere. ein keep alive oder was auch immer. aber dann sollte das auf der gegenstelle auch im log stehen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

pjakobs

@mimiix, @justme1968 keep me posted, I'll happily try to provide any debug data needed.

pj

justme1968

was genau steht auf deconz seite im log. also die komplette zeile mit dem unknown error. oder direkt davor.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Fs79

Hab das gleiche Problem und zwar schon länger.
Helfe gern, wenn Ihr Daten braucht.
2020-10-08T05:31:46.376989661Z 07:29:24:017 Remove websocket 10.0.0.11:51460 after error Unknown error
2020-10-08T05:41:32.852313200Z 07:39:41:416 Remove websocket 10.0.0.11:52678 after error Unknown error
2020-10-08T05:41:32.852460348Z 07:40:35:348 Remove websocket 10.0.0.11:53526 after error Unknown error
2020-10-08T05:42:19.495386672Z 07:42:17:950 Remove websocket 10.0.0.11:53700 after error Unknown error
2020-10-08T05:47:34.714493577Z 07:45:01:971 Remove websocket 10.0.0.11:54014 after error Unknown error
2020-10-08T05:52:32.767641825Z 07:50:59:634 Remove websocket 10.0.0.11:54564 after error Unknown error
2020-10-08T05:56:29.674637277Z 07:52:47:669 Remove websocket 10.0.0.11:51824 after error Unknown error
2020-10-08T05:56:29.674922536Z 07:53:04:017 Remove websocket 10.0.0.11:55568 after error Unknown error
2020-10-08T06:02:22.351268067Z 08:02:10:217 Remove websocket 10.0.0.11:56862 after error Unknown error
2020-10-08T06:08:09.814633878Z 08:07:22:349 Remove websocket 10.0.0.11:57522 after error Unknown error


Habe das ganze im Docker laufen, erinnere mich aber das es direkt auf dem Linux Host (RPi) das gleiche Problem war.

pjakobs

exakt was Fs79 geschrieben hat.

leider gibt die deConz Dokumentation auch nicht wirklich was her, was keepalive oder sowas angeht.

pj

P.A.Trick

Ich habe das gleiche Problem (docker). Damals hatte ich das Issue bei github aufgemacht, aber leider hat sich niemand
der Sache angenommen - bis jetzt. Ich bin gespannt...

BTW: mit verbose 2 auf das deconz Modul kann zumindest die nervigen Meldungen im Log unterbinden!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

pjakobs

Zitat von: P.A.Trick am 08 Oktober 2020, 09:33:19
BTW: mit verbose 2 auf das deconz Modul kann zumindest die nervigen Meldungen im Log unterbinden!
Die Meldungen stören mich weniger, vielmehr, dass meine Bewegungsmelder ganz oft einfach nicht funktionieren

justme1968

diese meldung wird laut code von deConz ausgegeben wenn ein fehler aufgetreten ist. deConz macht dann die verbindung zu. leider ist nicht zu sehen welcher fehler aufgetreten ist.

bitte mal durchzählen: wer mit diesem fehler verwendet das ganze in docker und wer nicht?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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