FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: erwin am 15 März 2014, 17:22:05

Titel: Blocking.pm Fehler verhindert update in background
Beitrag von: erwin am 15 März 2014, 17:22:05
Hi All,

Situation: ein frisch installiertes FHEM, ohne Presence oder anderer definitionen, die blocking.pm oder DevIo benutzen.
Fehlerbild: ein update (mit updateInBackground=1) schlägt fehl, mit folgender Fehlermeldung:
2014.03.15 16:57:22 3: update get http://fhem.de/fhemupdate4/svn/controls_fhem.txt
2014.03.15 16:57:44 3: telnetForBlockingFn: port 40732 opened
Undefined subroutine &main::DevIo_CloseDev called at FHEM/Blocking.pm line 86.

Lösungsvorschlag:
use DevIo; in Zeile 18 in Blocking.pm einfügen.

Dieses Prolem könnte auch mit einem anderen Thread in Zusammenhang stehen, ich zitiere aus: http://forum.fhem.de/index.php/topic,21150.msg146704.html#msg146704 (http://forum.fhem.de/index.php/topic,21150.msg146704.html#msg146704)
noch ein Update probiert, keine Reaktion im Eventmonitor. Auf der Konsole Ausgabe: "Undefined subroutine &main::DevIo_CloseDev called at FHEM/Blocking.pm line 86."

danke
erwin
Titel: Antw:Blocking.pm Fehler verhindert update in background
Beitrag von: rudolfkoenig am 16 März 2014, 13:17:02
Das Problem triit auf, falls keiner der verwendeten Module DevIo.pm benutzt, aber einer trotzdem DeviceName setzt: ich wuerde gerne rauskriegen, welches Modul das ist. Ich habe zwar jetzt diese Fehlermeldung vermieden, allerdings bin ich nicht sicher, ob ein DevIo_CloseDev angebracht ist.
Titel: Antw:Blocking.pm Fehler verhindert update in background
Beitrag von: Markus Bloch am 16 März 2014, 14:41:24
Hallo rudi,

wie kommst du auf diese Annahme? Blocking.pm führt doch das DevIo_Close selber aus und zwar eben in Zeile 86. Wenn aber nun noch kein einziges Modul geladen ist, welches DevIo verwendet, so stehen ja die Routinen aus DevIo.pm noch nicht zur Verfügung.

Dehalb ist eine "use DevIo;" in Blocking.pm notwendig.

Dassselbe gilt auch für die  TcpServerUtils.pm auch hier wird  TcpServer_Close() verwendet obwohl zu Beginn kein "use .." existiert.

Gruß
Markus

Titel: Antw:Blocking.pm Fehler verhindert update in background
Beitrag von: rudolfkoenig am 16 März 2014, 16:16:49
Weil ich natuerlich update mit allen moeglichen Kombination getestet habe (unter anderem mit dem leeren fhem.cfg der Distribution), und ich keine Fehlermeldungen oder gar Abstuerze bekommen habe.
Titel: Antw:Blocking.pm Fehler verhindert update in background
Beitrag von: erwin am 16 März 2014, 19:33:53
Hallo Rudi,

ausgelöst wird's durch update (inBackground).
meine config besteht aus einem SYSSTAT device, einem TUL und etlichen EIB devices.
und dann noch FileLog, Readingsgroup und dashboard.
und vielleicht wichtig: initialUsbCheck disable = 1.

Alles andere ist die distribution-cfg.
Falls du möchtest, kann ich die gesamte konfig posten...
l.g. erwin