FHEM Forum

FHEM => Sonstiges => Thema gestartet von: vbs am 15 April 2017, 17:24:32

Titel: DevIO Disconnects alle 60 Sekunden in DevIo_SimpleRead
Beitrag von: vbs am 15 April 2017, 17:24:32
Ich versuche gerade rauszufinden, warum DevIO ein Device von mir regelmäßig als disconnectet, welches mit einem TCP-Port als Client verbunden ist. Direkt nach dem Disconnect kann es sich wieder ordnungsgemäß verbinden.

2017-04-15 17:14:40.254 CUL_HM fl_benPowerMeter_Pwr energy: 139822.4
2017-04-15 17:14:40.254 CUL_HM fl_benPowerMeter_Pwr power: 25.46
2017.04.15 17:14:41.034 3 : LedController_Read: sz_lightledCouch
2017.04.15 17:14:41.034 3 : NO DATA READ; IDSCO
2017.04.15 17:14:41.034 1 : 192.168.2.43:9090 disconnected, waiting to reappear (sz_lightledCouch)
2017-04-15 17:14:41.038 LedController sz_lightledCouch DISCONNECTED
2017.04.15 17:14:41.044 1 : 192.168.2.43:9090 reappeared (sz_lightledCouch)
2017-04-15 17:14:41.046 LedController sz_lightledCouch CONNECTED


Das "NO DATA READ; IDSCO" ist eine Debugausgabe von mir in DevIO, Zeile 72 innerhalb on DevIo_SimpleRead, die besagt, dass keine Daten gelesen wurden.

Passiert regelmäßig alle 60 Sekunden. Es wird die Funktion "Read" des Moduls aufgerufen, welche wiederum "DevIo_SimpleRead" aufruft. Offenbar sind aber keine Daten verfügbar, so dass innerhalb von "DevIo_SimpleRead" dann das Disconnect aufruft.
Das verstehe ich aber nicht, da doch "Read" nur von FHEM aufgerufen wird, wenn select ergeben hat, dass Daten vorhanden sind, oder?
Ist vermutlich was ganz blödes, aber ich verstehs momentan nicht. Das es genau alle 60 Sekunden passiert, ist vlt. ein gutes Indiz?

Bin unter Ubuntu x64.

Danke schön für jeden Hinweis!
Titel: Antw:DevIO Disconnects alle 60 Sekunden in DevIo_SimpleRead
Beitrag von: rudolfkoenig am 15 April 2017, 17:52:56
Zitat"Read" nur von FHEM aufgerufen wird, wenn select ergeben hat, dass Daten vorhanden sind, oder?
oder... wenn die andere Seite die Verbindung zugemacht hat.

Falls was anderes ist, dann ist das entweder ein Bug im Kernel, oder ich habe bestimmte Faelle nicht beruecksichtigt. Weiss aber nicht welche :)
Titel: Antw:DevIO Disconnects alle 60 Sekunden in DevIo_SimpleRead
Beitrag von: vbs am 15 April 2017, 18:19:46
Zitat von: rudolfkoenig am 15 April 2017, 17:52:56
oder... wenn die andere Seite die Verbindung zugemacht hat.
Damit triffst du offenbar (mal wieder) voll ins Schwarze! :)
Hab mir das mal mit tcpdump angesehen und da kommt tatsächlich von der Gegenstelle immer ein Paket mit FIN-Flag zum Beenden der Verbindung:
18:15:21.115665 IP wz-led-tv.fritz.box.9090 > minion.48750: Flags [F.], seq 60, ack 1, win 5560, length 0
18:15:21.116197 IP minion.48750 > wz-led-tv.fritz.box.9090: Flags [F.], seq 1, ack 61, win 29200, length 0


Nochmals danke für den klasse Tip!

Muss jetzt nur noch rausfinden, warum das kommt...