Kommunikation mit Openhab bricht ab - NEU

Geht leider immer noch nicht…

Logs auf dl 5:

homegear.err (2,7 KB)
homegear.log (1,4 MB)

ok… danke dir! Die nächste Version ist online. Jetzt wird die Antwort auf ping() gesendet auch, wenn das init() noch nicht abgeschlossen ist. Das entspricht mehr oder weniger dem Zustand vorher, von daher glaube ich nicht, dass es funktioniert. Das Log auf Level 5 zeigt mir aber in dieser Version hoffentlich, wo das Problem liegt.

Viele Grüße

Sathya

@sathya

Hier das logfile:

homegear.err (2,7 KB)
homegear.log (1,1 MB)

Hallo @s4ndst0rm,

noch einmal vielen Dank für die schnellen Antworten und Logs!!! Hier einmal ein Zwischenergebnis. Folgendes passiert:

08:32:11.045 269 => Erstes init()
08:32:11.548 9518 => system.listMethods
08:32:11.610 9555 => Antwort

Erfolgreiche ping/pong

08:33:26.642 11113 => ping()
08:33:26.647 11142 => Connecting ohne "connected"
08:33:41.656 11160 => Zweites init() - Verbindungsabbau
08:33:56.719 11177 => event (PONG) - erfolglos (weil Dateideskriptor durch init() geschlossen)

08:33:56.722 11187 => Drittes init() - neue Verbindung
08:33:56.755 11205 => ping()
08:33:56.781 11236 => event (PONG)
08:33:57.210 12638 => Antwort
08:33:57.225 12645 => system.listMethods
08:33:57.253 12652 => Antwort

Erfolgreiche  ping/pong

08:37:27.104 13388 => ping()
08:37:27.107 13415 => Connecting ohne "connected"
08:37:42.115 13437 => Viertes init() - Verbindungsabbau
08:37:57.233 13513 => event (PONG) - erfolglos (weil Dateideskriptor durch init() geschlossen)

08:37:57.176 13464 => Fünftes init() - neue Verbindung
08:37:57.207 13482 => ping()
08:37:57.208 13486 => event (PONG)
08:37:57.656 14918 => Antwort auf PONG
08:37:57.681 14925 => system.listMethods
08:37:57.711 14931 => Antwort

08:38:27.260 15014 => ping()
08:38:27.261 15020 => event (PONG)
08:38:27.263 15043 => Connecting ohne "connected"
08:38:42.268 15065 => Sechstes init() - Verbindungsabbau

08:38:57.295 15098 => Siebtes init() - neue Verbindung
08:38:57.320 15100 => event (PONG) - erfolglos (weil Dateideskriptor durch init() geschlossen)

.
.
.

Das ist an sich das gewünschte Verhalten. Aus irgendeinem Grund kann zum Teil keine Verbindung zu OpenHAB hergestellt werden, was zu einem Verbindungsneuaufbau führt. Ich glaube nicht, dass der Grund nicht mehr vorhandene Ports sind. Dafür sind es noch zu wenige TIME_WAIT. Heute schaffe ich es leider nicht, mir das Problem weiter anzusehen. Morgen geht’s weiter.

@job: Hast du noch Probleme (bzw. irgendwer anders)?

Viele Grüße

Sathya

Ich habe das Problem im Zusammenhang mit Home-Assistant - allerdings nicht in einem Container, aber das dürfte ja egal sein. Alle 4 bis 8 Stunden “stirbt” die Verbindung - im Gegensatz zu Openhab wird sie aber nicht wieder neu aufgebaut.
Ich habe mir ein script gebastelt das die Verbindung von Zeit zu Zeit prüft und im Bedarfsfall neu aufbaut.
Hatte aber noch nicht getestet ob die alten Verbindungen offen bleiben - bleiben sie aber

tcp        0      0 127.0.0.1:2015          0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:2015          127.0.0.1:48192         TIME_WAIT
tcp        0      0 127.0.0.1:2015          127.0.0.1:48110         TIME_WAIT
tcp        0      0 127.0.0.1:48066         127.0.0.1:2015          TIME_WAIT
tcp        0      0 127.0.0.1:2015          127.0.0.1:48188         TIME_WAIT
tcp        0      0 127.0.0.1:2015          127.0.0.1:48078         TIME_WAIT

Aktuell nicht, seit den getuneten Verbindungsparametern habe keine Störung mehr gehabt, bzw. haben sich die Systeme selbst wieder synchronisiert.

Kleiner Nachtrag: Ich habe mal versucht, die Verbindung zu OpenHAB offenzuhalten (was sinnvoll wäre). Leider braucht OpenHAB mit jedem Ereignispaket eine neue Verbindung.

Ich habe jetzt mal bei mir OpenHAB in einer Windows-VM installiert. Mal sehen, ob ich den Fehler hier reproduziert bekomme.

@trilu: Home-Assistant läuft bei dir ebenfalls unter Windows? Kannst du mir auch ein Homegear-Log auf Loglevel 5 posten?

Viele Grüße

Sathya

Sorry für die Verwirrung - nein, Hmeassistant läuft bei mir auf dem Raspberry, das mit Windows hatte ich überlesen…
Ich lass mal den Log mitlaufen und schicke dir den nächsten Verbindungsabbruch.
Viele Grüße
Horst

Klasse!

@s4ndst0rm: Bis jetzt läuft bei mir noch alles stabil. Um zu sehen, ob es wirklich an den TIME_WAIT liegt: Verbessern folgende Einstellungen die Situation?

https://docs.oracle.com/cd/E23095_01/Search.93/ATGSearchAdmin/html/s1207adjustingtcpsettingsforheavyload01.html

Nimm mal 30 statt 60 Sekunden.

Gerade eben passiert, war wohl doch nix. Schade. Ich habe nachdem ich den Zyklus gesehen habe auf log level 5 gestellt. Der erste Abbruch war um 21:49, danach hat es sich immer wiederholt.

homegear-abbruch.log (2,9 MB)

Zwischenstand:

Nach dem ändern der registry hab ich den Server neu gestartet. Momentan läuft es…

Ob es jetzt am Parameter oder Neustart liegt weiß ich nicht.
Mal abwarten…

so, hab auch mal ein log. Neuaufbau der Verbindung war um
2018-08-09 14:13:53.642180 INFO check_rpc: restart homematic interface
Ich prüfe das Interface alle 10 Sekunden, folglich muss der Abbruch max 10 Sekunden davor gewesen sein.
homegear-short.zip (276.9 KB)

Es hat lange gehalten. Jetzt ist der Fehler aber wieder da.
Ich hatte jetzt noch den Port von 2001 auf 20001 geändert hat aber auch nichts gebracht.

Irgendwann erreicht der Docker Container Openhab einfach nicht mehr :confused:

Liegt es evtl. an Openhab? Gibt es ein Update des Homematic Bindings was hilft?

@sathya

Warum wird eigentlich alle 15Minuten eine neue Verbindung aufgebaut (wechselnde Client ID) und nicht einfach eine behalten?
Kann es sein, dass diese dann nie geschlossen werden (von welcher Seite auch immer)?

Ich habe heute die Openhab nightly 2.4 ausprobiert. In der Version baut er noch nicht mal eine Verbindung zu homegear auf.

Hallo,

tut mir Leid für die späte Antwort. Ich war bis gestern unterwegs und bin jetzt weider zurück im Büro. Morgen schaue ich mir das Problem weiter an. Vielen Dank auf jeden Fall für die weiteren Logs!

Es wäre Homegear-seitig nicht erforderlich. Auch die Verbindung von Homegear zu OpenHAB könnte offen bleiben. Es könnte sogar alles über die eingehende Verbindung laufen. Nur die CCU kann das nicht und da das Binding Homegear und CCU unterstützen soll, wäre für @gerrieg die Implementierung etwas umständlicher.

Doch, diese werden sogar von Homegear geschlossen. Das ist also nicht das Problem.

Geht bei mir auch nicht. Er findet bei mir Homegear nicht einmal. Da muss @gerrieg etwas zu sagen. Ich vermute, dass das Binding einfach noch nicht ganz fertig ist.

Viele Grüße

Sathya

Hallo!

Bin gerade auf Urlaub und habe nur wenig Zeit.

Warum wird eigentlich alle 15Minuten eine neue Verbindung aufgebaut

Das kann man mit einem Bridge Parameter einstellen: socketMaxAlive (default 900 Sekunden) Probiert mal hier einen sehr hohen Wert zu konfigurieren. Dann wissen wir ob es daran liegt. Wenn ja, kann ich diese Connection zu Homegear geöffnet lassen.

Ich habe heute die Openhab nightly 2.4 ausprobiert. In der Version baut er noch nicht mal eine Verbindung zu homegear auf.

Da gibt’s momentan Probleme, weiß noch nicht warum. Irgendwer dürfte da was commited haben (siehe auch #6053). Kann mir das erst nächste Woche ansehen.

Viele Grüße
Gerhard

1 Like

Hallo @gerrieg,

vielen Dank für die schnelle Antwort.

ok, das erklärt die init()s alle 15 Minuten. Wäre es auch möglich, die Verbindung zum Ereignisserver offenzuhalten? Das erzeugt die meisten TIME_WAITs. Seit einigen Versionen kann Homegear die Ereignisse auch über die eingehende Verbindung senden, so dass der Ereignisserver prinzipiell gar nicht mehr nötig wäre. Das macht die Konfiguration für den Nutzer etwas einfacher.

Viele Grüße

Sathya

Hallo @sathya

Wäre es auch möglich, die Verbindung zum Ereignisserver offenzuhalten?

Ja, ist leicht möglich. Man kann das ja mit dem socketMaxAlive simulieren. Wenn das hilft kann ich es einbauen.

Seit einigen Versionen kann Homegear die Ereignisse auch über die eingehende Verbindung senden, so dass der Ereignisserver prinzipiell gar nicht mehr nötig wäre. Das macht die Konfiguration für den Nutzer etwas einfacher.

Für mich aber schwerer :wink: Da müsste einiges nur für Homegear umgebaut werden. Ich würde gerne alle Gateways wenn möglich gleich behandeln. Wäre schön wenn sich Homegear hier kompatibel zu den Anderen verhält.

Viele Grüße
Gerhard

@sathya @gerrieg

Ich habe einfach aus 900s 90000 gemacht. Der Fehler ist dieses Mal innerhalb der ersten Stunde aufgetreten. So einfach war es also nicht :frowning: