OWServer häufige unregelmäßige reconnects

Begonnen von ritter_runkel, 15 Mai 2018, 17:53:26

Vorheriges Thema - Nächstes Thema

ritter_runkel

Hallo Zusammen,
meine Log-Datei füllt sich mit unregelmäßigen reconnects zwischen fhem und OW-Server. Beide Dienste laufen 2 getrennten Raspi 3 am gleichen Switch. Ein Netzwerkfehler halte ich also für unwahrscheinlich (aber möglich).

Die Reconnects treten immer nach einem Lesefehler auf.
Auszug aus der Log-Datei (verbose 3 auf dem OWServer-Device):

2018.05.15 15:54:22 1: OWServer: read timeout for child 16055
Can't call method "read" on an undefined value at /opt/fhem/FHEM/10_OWServer.pm line 367.
2018.05.15 15:54:22 3: Raspi_OWServer: Opening connection to OWServer 192.168.100.25:4304...
2018.05.15 15:54:22 3: Raspi_OWServer: Successfully connected to 192.168.100.25:4304.
2018.05.15 15:57:50 1: netatmo_Rain: summed rain 0.101 (to 47.975)
2018.05.15 16:04:26 1: OWServer: read timeout for child 16418
Can't call method "read" on an undefined value at /opt/fhem/FHEM/10_OWServer.pm line 367.
2018.05.15 16:04:26 3: Raspi_OWServer: Opening connection to OWServer 192.168.100.25:4304...
2018.05.15 16:04:26 3: Raspi_OWServer: Successfully connected to 192.168.100.25:4304.
2018.05.15 16:25:09 1: OWServer: read timeout for child 16921
Can't call method "read" on an undefined value at /opt/fhem/FHEM/10_OWServer.pm line 367.
2018.05.15 16:25:09 3: Raspi_OWServer: Opening connection to OWServer 192.168.100.25:4304...
2018.05.15 16:25:09 3: Raspi_OWServer: Successfully connected to 192.168.100.25:4304.
2018.05.15 16:30:13 1: OWServer: read timeout for child 17046
Can't call method "read" on an undefined value at /opt/fhem/FHEM/10_OWServer.pm line 367.
2018.05.15 16:30:13 3: Raspi_OWServer: Opening connection to OWServer 192.168.100.25:4304...
2018.05.15 16:30:13 3: Raspi_OWServer: Successfully connected to 192.168.100.25:4304.
2018.05.15 16:35:17 1: OWServer: read timeout for child 17166
Can't call method "read" on an undefined value at /opt/fhem/FHEM/10_OWServer.pm line 367.
2018.05.15 16:35:17 3: Raspi_OWServer: Opening connection to OWServer 192.168.100.25:4304...
2018.05.15 16:35:17 3: Raspi_OWServer: Successfully connected to 192.168.100.25:4304.
2018.05.15 16:40:21 1: OWServer: read timeout for child 17286
Can't call method "read" on an undefined value at /opt/fhem/FHEM/10_OWServer.pm line 367.
2018.05.15 16:40:21 3: Raspi_OWServer: Opening connection to OWServer 192.168.100.25:4304...
2018.05.15 16:40:21 3: Raspi_OWServer: Successfully connected to 192.168.100.25:4304.
2018.05.15 16:51:03 1: netatmo_Rain: summed rain 0.404 (to 48.379)
2018.05.15 16:51:03 1: netatmo_Rain: summed rain 0.202 (to 48.581)
2018.05.15 17:18:23 1: RMDIR: /opt/fhem/restoreDir/save/2018-05-09
2018.05.15 17:35:37 1: OWServer: read timeout for child 18672
Can't call method "read" on an undefined value at /opt/fhem/FHEM/10_OWServer.pm line 367.
2018.05.15 17:35:37 3: Raspi_OWServer: Opening connection to OWServer 192.168.100.25:4304...
2018.05.15 17:35:37 3: Raspi_OWServer: Successfully connected to 192.168.100.25:4304.
2018.05.15 17:40:41 1: OWServer: read timeout for child 18800
Can't call method "read" on an undefined value at /opt/fhem/FHEM/10_OWServer.pm line 367.
2018.05.15 17:40:41 3: Raspi_OWServer: Opening connection to OWServer 192.168.100.25:4304...
2018.05.15 17:40:41 3: Raspi_OWServer: Successfully connected to 192.168.100.25:4304.
2018.05.15 17:44:41 1: OWServer: read timeout for child 18904
Can't call method "read" on an undefined value at /opt/fhem/FHEM/10_OWServer.pm line 367.
2018.05.15 17:44:41 3: Raspi_OWServer: Opening connection to OWServer 192.168.100.25:4304...
2018.05.15 17:44:41 3: Raspi_OWServer: Successfully connected to 192.168.100.25:4304.


hier noch ein List des OWServer-Devices:

Internals:
   DEF        192.168.100.25:4304
   LAST_READ_FAILED 0
   NAME       Raspi_OWServer
   NOTIFYDEV  global
   NR         270
   NR_READ_FAILED 94
   NTFY_ORDER 50a-Raspi_OWServer
   OWNET_VERSION 3.1p5
   OWSERVER_VERSION 3.1p5
   STATE      Initialized
   TYPE       OWServer
   READINGS:
     2018-05-15 17:44:41   /settings/timeout/directory           60
     2018-05-15 17:44:41   /settings/timeout/ftp          900
     2018-05-15 17:44:41   /settings/timeout/ha7           60
     2018-05-15 17:44:41   /settings/timeout/network            1
     2018-05-15 17:44:41   /settings/timeout/presence          120
     2018-05-15 17:44:41   /settings/timeout/serial            5
     2018-05-15 17:44:41   /settings/timeout/server           10
     2018-05-15 17:44:41   /settings/timeout/stable          300
     2018-05-15 17:44:41   /settings/timeout/uncached 0
     2018-05-15 17:44:41   /settings/timeout/usb            5
     2018-05-15 17:44:41   /settings/timeout/volatile           15
     2018-05-15 17:44:41   /settings/timeout/w1           30
     2018-05-15 17:44:41   /settings/units/pressure_scale mbar
     2018-05-15 17:44:41   /settings/units/temperature_scale C
     2018-05-15 17:44:41   state           Initialized
   fhem:
     protocol   192.168.100.25:4304
Attributes:
   group      Geräte
   nonblocking 1
   room       System
   verbose    4


Ein Blick auf die Errors der "OWServer-Devices" ergab ein fehlerfreies Bild (alles "0").

Hat jemand eine Idee wie ich den Fehler hier eingrenzen kann?

Lieben Dank aus Leipzig.
//Erik
FHEM auf Raspberry Pi 2B
2x eService 1WireHu, 7x DS1820, 2x Multisensoren Wiregate AMS 2.11 für Temperatur DS1820, relativer Luftfeuchte HIH4031, zwei IO-Ports DS2438, Analog-Eingang 0-10 V (bzw. 0-20 mA) DS2413
FritzDECT; HUE; 5xFibaro RollerShutter, Rauchmelder

mamaison

Guten Tag,

gibt es zu diesem Thema etwas Neues?
Habe ein ähnliches Problem:

2018.12.23 16:26:07 1: OWServer: read timeout for child 32501
Can't call method "read" on an undefined value at ./FHEM/10_OWServer.pm line 367.
2018.12.23 16:27:17 1: OWServer: read timeout for child 32611
Can't call method "read" on an undefined value at ./FHEM/10_OWServer.pm line 367.
2018.12.23 16:27:23 1: OWServer: Terminated child 32611
2018.12.23 16:39:20 1: OWServer: read timeout for child 1825
Can't call method "read" on an undefined value at ./FHEM/10_OWServer.pm line 367.


vielen Dank

Gruss
Tom

tobby

Gleiches Problem hier...
2019.01.17 14:31:45 1: OWServer: read timeout for child 23500
Can't call method "read" on an undefined value at ./FHEM/10_OWServer.pm line 367.


Danach ist Feierabend und ich muss meine ganze FHEM-VM neu starten, FHEM reagiert nicht mehr und lässt sich auch nicht mehr aufrufen, beenden, neu starten, per Telnet bedienen, ...

Das Problem habe ich seit gestern und es tritt teilweise nach wenigen Minuten, teilweise nach ein paar Stunden auf.
FHEM 5.7 in Ubuntu 14.04.3 (als VM via KVM auf Homeserver) / CUL V3
MAX!: 5x Wandthermostat+, 5x Heizkörperthermostat (derzeit nicht in Benutzung), 5x Heizkörperthermostat basic, 5x Fensterkontakt, 1x Cube (derzeit nicht in Benutzung)

bmwfan

Ich habe das gleiche Problem auf dem RPI03 im Erdgeschoß, auf dem das Haupt-FHEM läuft. Dieses fragt vom RPI02 im Technikraum, worauf owfs läuft, mehrere DS18B20 über Busmaster ab.

Sobald der RPI02 weg ist friert fhem ein. Im Raspi ist auch kein Prozeß mehr zu sehen (Datei RPI03OhneConnect)
Ist der RPI02 wieder da, läuft fhem ganz normal wieder (Datei RPI03MitConnect)

Das steht im Log des RPI03, wenn der RPI02 nicht mehr erreichbar ist:
2019.02.25 20:02:08.047 3: AbluftTemp_EG_RPI02: reading temperature did not return a value
2019.02.25 20:02:22.024 1: OWServer: read timeout for child 9527
2019.02.25 20:02:22.052 3: AbluftTemp_EG_RPI02: reading temperature did not return a value
2019.02.25 20:02:22.059 1: Perfmon: possible freeze starting at 20:02:18, delay is 4.058
Can't call method "read" on an undefined value at ./FHEM/10_OWServer.pm line 367.


Wollte die Abfrage über OWServer machen, da ich dachte dies wäre der einfachste Weg. Wenn aber fhem einfriert geht das natürlich nicht. Kennt jemand einen Weg, das Einfrieren zu umgehen?

Wenn nicht, wird als Alternative eher Fhem2Fhem oder MQTT empfohlen?

Grüße Jürgen
Synology DS720+ mit Docker-Container und Haupt-FHEM, HW-LAN, Jalousienaktoren; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

fiedel

Aus der Commandref:
ZitatHinweis: Falls in FHEM trotzdem ungewöhnliche Stillstände auftreten, sollte das Attribut nonblocking wieder deaktiviert werden.

Also würde ich zuerst mit diesem Attr. spielen. Möglich wäre auch noch, den USB- Busmaster per Ser2Net auf den Hauptrechner zu verbinden. Dann kann der OWSERVER ebenfalls auf dem Hauptrechner laufen und bei Ausfall des Mess- Raspi fehlen zwar die Daten, aber es gibt ggf. keine Freezes mehr.

Gruß
Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

bmwfan

@fiedel: Habe beides ausprobiert. Hat das Einfrieren leider nicht behoben.

Möchte jetzt auf MQTT2 gehen. Scheint mir, sofern es mal läuft, am geeignetsten zu sein.
Leider habe ich, trotz lesens im Wiki und Threads, Verständnisprobleme.
Habe auf RPI03 (im EG mit Haupt-FHEM) einen MQTT2_Server installiert und am RPI02 im Technikraum einen MQTT2_Client. Denke, so ist es gedacht wenn ich vom Client zum Server Daten senden will und vom Server zum Client Befehle
Dann denke ich, dass ich eine MQTT2_GENERIC_Bridge benötige, damit ich die Daten sammeln und weitergeben kann. Brauche ich das auf jedem RPI oder nur auf dem Server?

Gibt es kein Schaubild, auf dem eingezeichnet ist was ich auf welchem RPI aufsetzen muss?

Gruss Jürgen
Synology DS720+ mit Docker-Container und Haupt-FHEM, HW-LAN, Jalousienaktoren; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd