FHEM Forum

FHEM - Hausautomations-Systeme => 1Wire => Thema gestartet von: Starkstrombastler am 16 September 2014, 23:59:56

Titel: Cannot load module OWTHERM
Beitrag von: Starkstrombastler am 16 September 2014, 23:59:56
Hallo,
ich möchte einige OneWire-Sensoren via meiner FritzBox 7270 einlesen.

Fhem wurde via fhem-5.5-fb7270.zip installiert und ist jetzt aktuell, "nothing to do". version liefert:
# $Id: fhem.pl 6542 2014-09-12 09:03:55Z rudolfkoenig $
# $Id: 01_FHEMWEB.pm 6545 2014-09-12 17:46:39Z rudolfkoenig $
# $Id: 92_FileLog.pm 5876 2014-05-16 19:54:51Z rudolfkoenig $
# $Id: 00_OWX.pm 6392 2014-08-11 15:25:00Z ntruchsess $
# $Id: 99_SUNRISE_EL.pm 5851 2014-05-13 19:39:03Z rudolfkoenig $
# $Id: 98_SVG.pm 6542 2014-09-12 09:03:55Z rudolfkoenig $
# $Id: 99_Utils.pm 6446 2014-08-23 10:09:44Z rudolfkoenig $
# $Id: 90_at.pm 5319 2014-03-25 10:11:47Z rudolfkoenig $
# $Id: 98_autocreate.pm 6505 2014-09-06 12:24:48Z rudolfkoenig $
# $Id: 98_dummy.pm 4934 2014-02-15 08:23:12Z rudolfkoenig $
# $Id: 91_eventTypes.pm 6428 2014-08-20 11:51:27Z rudolfkoenig $
# $Id: 91_notify.pm 6371 2014-08-07 05:33:37Z rudolfkoenig $
# $Id: 98_telnet.pm 6484 2014-08-31 07:45:45Z rudolfkoenig $


OWX funktioniert und liefert auf get devices die korrekten 1W-IDs, kann aber nicht autocreate:
OWX: 1-Wire devices found on bus OWusb
OWX: Error autocreating with OWX_28_E510E1040000 OWTHERM DS18B20 E510E1040000: Cannot load module OWTHERM

Das manuelle Define gelingt auch nicht:
OWX_28_E510E1040000 OWTHERM DS18B20 E510E1040000 liefert Cannot load module OWTHERM
Reload:
reload 21_OWTHERM
liefert
Attempt to reload ProtoThreads.pm aborted.
Compilation failed in require at ./FHEM/21_OWTHERM.pm line 84, <FH> line 26476.
BEGIN failed--compilation aborted at ./FHEM/21_OWTHERM.pm line 84, <FH> line 26476.


Die Meldung im Logfile lautet:
2014.09.16 23:40:22 1: reload: Error:Modul 21_OWTHERM deactivated:
Attempt to reload ProtoThreads.pm aborted.
Compilation failed in require at ./FHEM/21_OWTHERM.pm line 84, <FH> line 26476.
BEGIN failed--compilation aborted at ./FHEM/21_OWTHERM.pm line 84, <FH> line 26476.


Die Moduldateien sind aber im Dateisystem vorhanden und die Rechte lauten "777". Ich weiß hier erstmal nicht weiter.
Titel: Antw:Cannot load module OWTHERM
Beitrag von: Prof. Dr. Peter Henning am 17 September 2014, 08:40:08
Offenbar wird hier als Backendmodul OWX_ASYNC verwendet, das braucht ein Perl-Modul Protothreads.pm.

Bitte entweder dieses nachinstallieren, oder das "alte" OWX verwenden.

LG

pah
Titel: Antw:Cannot load module OWTHERM
Beitrag von: ntruchsess am 17 September 2014, 10:08:39
da fehlt die FHEM/lib/ProtoThreads.pm (https://github.com/ntruchsess/fhem-mirror/raw/master/fhem/FHEM/lib/ProtoThreads.pm). (Unabhängig davon, ob OWX oder OWX_ASYNC verwendet wird, wird die Protothreads-library auch von den Device-modulen zur compiletime benötigt, auch wenn der code mit OWX (ohne ASYNC) nachher gar nicht ausgeführt wird). Warum die in das Fritzbox-zipfile nicht eingepackt wird, weiß ich nicht, das habe ich mir noch nie angeschaut (hab keine FB). Im SVN ist die Datei jedenfalls drinnen und kommt nach meinen Test bei einem normalen Update auch mit.

Gruß,

Norbert
Titel: Antw:Cannot load module OWTHERM
Beitrag von: Starkstrombastler am 17 September 2014, 23:53:48
wenn ProtoThreads bei OWX garnicht gebraucht wird, liegt es nahe dieses in 21_OWTHERM.pm probeweise auszukommentieren.
Nachdem ich auch "use strict" auskommentiert hatte (!??), konnte der Temp-Sensor definiert werden und lieferte auch gleich Werte.

Die Datei ProtoThreads.pm ist aber definitiv im Zip-File vorhanden und wurde in meinem System installiert.
Wurde halt nur nicht gefunden.

Beim Experimentieren mit anderen Definitionen stelle ich fest, dass auch bei anderen Modulen benötigte Dateien nicht gefunden werden, also kein spezielles OneWire-Problem.

Im Logfile finde ich noch folgenden Eintrag (hier etwas aufbereitet):
@INC contains:
/var/InternerSpeicher/Verbatim-STORENGO-11/fhem/lib/perl
/var/InternerSpeicher/Verbatim-STORENGO-11/fhem/lib/perl/arch
/home/rudi/fbperl/lib/perl/arch
/home/rudi/fbperl/lib/perl
.
./FHEM
./FHEM/lib


Hat jemand eine Idee?

Titel: Antw:Cannot load module OWTHERM
Beitrag von: ntruchsess am 18 September 2014, 09:24:08
ja, beim Start von fhem ist das aktuelle Direktory möglicherweise nicht das fhem directory, so dass die relativen Pfade './FHEM' und './FHEM/lib' nicht korrekt aufgelöst werden.
Titel: Antw:Cannot load module OWTHERM
Beitrag von: Starkstrombastler am 19 September 2014, 01:18:27

Das Startskript enthält:
home=/var/media/ftp/Verbatim-STORENGO-01/fhem
echo $home
cd $home
export home
HOME=$home
export HOME

Und frage das über die fhem-Kommandozeile ab:
{$ENV{"HOME"}}
Antwort:
/var/media/ftp/Verbatim-STORENGO-01/fhem
Das sieht soweit korrekt aus, ist das aber wirklich das Home-Direktory für das laufende fhem ?

Kann ich das noch irgendwie anders kontrollieren?
Titel: Antw:Cannot load module OWTHERM
Beitrag von: ntruchsess am 19 September 2014, 09:42:00
was findet sich denn in /var/media/ftp/Verbatim-STORENGO-01/fhem/FHEM/lib ?
Titel: Antw:Cannot load module OWTHERM
Beitrag von: Starkstrombastler am 22 September 2014, 22:47:38
Ich habe dieses Thema erstmal ein paar Tage liegen gelassen.
Und weil ich so viel in den Modulen gespielt habe, habe ich nochmal komplett von vorne angefangen und neu installiert.

In FHEM/lib findet sich nach "update" folgendes:
drwxrwxrwx    3 root     root          4096 Sep 21 22:04 Device
-rwxrwxrwx    1 root     root         10421 Sep 21 22:04 LiquidCrystal_I2C.pm
-rwxrwxrwx    1 root     root         21407 Sep 21 22:04 OWNet.pm
-rwxrwxrwx    1 root     root          1162 Sep 21 22:04 README.perl-firmata
drwxrwxrwx    4 root     root          4096 Sep 21 22:04 SWAP


D.h. ProtoThreads.pm fehlt. Ist auch nicht im Installations-Zip-File fhem-5.5-fb7270.zip.
Titel: Antw:Cannot load module OWTHERM
Beitrag von: ntruchsess am 23 September 2014, 10:43:23
In der fhem-5.5-fb7270.zip kann ProtoThreads.pm kaum drinnen sein, das ist ja Version 5.5 vom 29.09.2013, also fast 1 Jahr alt - da gab's noch kein OWX_ASYNC oder Protothreads (siehe fhem.de/fhem.html: Last released version: (as of 2013-09-29): fhem-5.5.tar.gz, fhem-5.5.deb, fhem-5.5-fb7390.image, fhem-5.5-fb7270.zip (http://fhem.de/fhem.html)).

Warum die ProtoThreads.pm beim Update nicht rüberkommt ist mir unklar. In der aktuellen controls_fhem.txt (http://fhem.de/fhemupdate/controls_fhem.txt) steht die Datei jedenfalls korrekt drin.

Gruß,

Norbert
Titel: Antw:Cannot load module OWTHERM
Beitrag von: Starkstrombastler am 28 September 2014, 23:29:15
Im Zusammenhang mit einem anderen Module habe ich erfahren, dass es mindestens  folgende zwei Gründe geben kann, dass ein Modul nicht geladen wird:
1)  das Modul wird nicht gefunden (nicht in der Pfadliste @INC eingetragen oder einfach nicht vorhanden)
2)  es wird ein nicht vorhandenes Library benötigt.

Da die Moduldatei vorhanden ist, vermute ich, dass an irgendeiner Stelle eine bei mir nicht vorhandene Bibliothek aufgerufen wird.
Wie kann ich feststellen, ob alle von den One-Wire-Modulen benötigten Librarys bei mir vorhanden sind?
Titel: Antw:Cannot load module OWTHERM
Beitrag von: znbrain am 22 Mai 2015, 13:47:54
Hallo,

ich möchte das Thema noch einmal aufwärmen.
Ich habe das gleiche Problem wenn ich auf die Version 5.6 updaten möchte. Die Datei ProtoThreads.pm ist allerdings bei mir vorhanden und liegt in Verzeichnis /FHEM/lib unterhalb des Home-Verzeichnisses.

Gibt es mittlerweile neuere Erkenntnisse?

Gruß znbrain
Titel: Antw:Cannot load module OWTHERM
Beitrag von: Starkstrombastler am 23 Mai 2015, 09:42:53
Hallo znbrain,

ich habe mich von der FritzBox als fhem-Server verabschiedet, vor allem aber aus anderen Gründen.

Auf meinem Ubuntu-IPC hatte ich nie solche Probleme.

Gruß
Starkstrombastler