Installation FHEM 5.5 unter Windows

Begonnen von cotecmania, 07 Oktober 2013, 20:54:09

Vorheriges Thema - Nächstes Thema

cotecmania

Hallo Zusammen,

bekomme FHEM 5.5 nicht zum laufen unter Windows XP.
Habe mir das ZIP fuer 5.5 heruntergeladen und Perl 5.18.1.1 Strawberry portable wie in Doku beschrieben.
Leider kann man Perl nicht ins Verzeichnis perl kopieren (laut Anleitung), da es in der Version 5.5 bereits eine Datei gibt die so heisst. Also perl_5.18.1.1 benannt.
Wenn ich nun fhem in der cmd starte und dann im Webbrowser http://localhost:8083 aufrufe erscheint "Seite kann nicht angezeigt werden" !
Can't locate TcpServerUtils.pm .... Selbiges im DemoMode

Logfile :

2013.10.07 20:51:46 1: starting in console mode
2013.10.07 20:51:46 1: Including fhem.cfg
2013.10.07 20:51:46 1: reload: Error:Modul 98_telnet deactivated:
 Can't locate TcpServerUtils.pm in @INC (you may need to install the TcpServerUtils module) (@INC contains: D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/site/lib D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/vendor/lib D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/lib .) at ./FHEM/98_telnet.pm line 10, <$fh> line 8.
BEGIN failed--compilation aborted at ./FHEM/98_telnet.pm line 10, <$fh> line 8.

2013.10.07 20:51:46 0: Can't locate TcpServerUtils.pm in @INC (you may need to install the TcpServerUtils module) (@INC contains: D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/site/lib D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/vendor/lib D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/lib .) at ./FHEM/98_telnet.pm line 10, <$fh> line 8.
BEGIN failed--compilation aborted at ./FHEM/98_telnet.pm line 10, <$fh> line 8.

2013.10.07 20:51:46 1: reload: Error:Modul 01_FHEMWEB deactivated:
 Can't locate TcpServerUtils.pm in @INC (you may need to install the TcpServerUtils module) (@INC contains: D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/site/lib D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/vendor/lib D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/lib .) at ./FHEM/01_FHEMWEB.pm line 7, <$fh> line 10.
BEGIN failed--compilation aborted at ./FHEM/01_FHEMWEB.pm line 7, <$fh> line 10.

2013.10.07 20:51:46 0: Can't locate TcpServerUtils.pm in @INC (you may need to install the TcpServerUtils module) (@INC contains: D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/site/lib D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/vendor/lib D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/lib .) at ./FHEM/01_FHEMWEB.pm line 7, <$fh> line 10.
BEGIN failed--compilation aborted at ./FHEM/01_FHEMWEB.pm line 7, <$fh> line 10.

2013.10.07 20:51:46 1: reload: Error:Modul 01_FHEMWEB deactivated:
 Can't locate TcpServerUtils.pm in @INC (you may need to install the TcpServerUtils module) (@INC contains: D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/site/lib D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/vendor/lib D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/lib .) at ./FHEM/01_FHEMWEB.pm line 7, <$fh> line 12.
BEGIN failed--compilation aborted at ./FHEM/01_FHEMWEB.pm line 7, <$fh> line 12.

2013.10.07 20:51:46 0: Can't locate TcpServerUtils.pm in @INC (you may need to install the TcpServerUtils module) (@INC contains: D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/site/lib D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/vendor/lib D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/lib .) at ./FHEM/01_FHEMWEB.pm line 7, <$fh> line 12.
BEGIN failed--compilation aborted at ./FHEM/01_FHEMWEB.pm line 7, <$fh> line 12.

2013.10.07 20:51:46 3: Please define WEBphone first
2013.10.07 20:51:46 1: reload: Error:Modul 01_FHEMWEB deactivated:
 Can't locate TcpServerUtils.pm in @INC (you may need to install the TcpServerUtils module) (@INC contains: D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/site/lib D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/vendor/lib D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/lib .) at ./FHEM/01_FHEMWEB.pm line 7, <$fh> line 15.
BEGIN failed--compilation aborted at ./FHEM/01_FHEMWEB.pm line 7, <$fh> line 15.

2013.10.07 20:51:46 0: Can't locate TcpServerUtils.pm in @INC (you may need to install the TcpServerUtils module) (@INC contains: D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/site/lib D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/vendor/lib D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/lib .) at ./FHEM/01_FHEMWEB.pm line 7, <$fh> line 15.
BEGIN failed--compilation aborted at ./FHEM/01_FHEMWEB.pm line 7, <$fh> line 15.

2013.10.07 20:51:46 3: Please define WEBtablet first
2013.10.07 20:51:46 1: configfile: Cannot load module telnet
Cannot load module FHEMWEB
Cannot load module FHEMWEB
Please define WEBphone first
Cannot load module FHEMWEB
Please define WEBtablet first
2013.10.07 20:51:46 3: initialUsbCheck return value: This command is not yet supported on windows
2013.10.07 20:51:46 0: Server started with 5 defined entities (version $Id: fhem.pl 3872 2013-09-07 11:58:33Z rudolfkoenig $, os MSWin32, user Administrator, pid 4764)
FHEM auf RaspberryPI B (buster)
2xCUL868 für MAX/Slow_RF, HM-LAN, JeeLink
MAX!/HM-Thermostate, FS20/HM-Rolladenschalter, FS20-EM, LevelJet-Ölstandsmessung, PCA301, IT, KM271, IPCAM, FireTAB10 FTUI

cotecmania

Hallo Zusammen,

das Ganze läuft NUR, wenn man es z.B. unter C:\fhem installiert. Von USB-STick oder D:-Platte erscheint obiger Fehler.
Ist das zwingend oder kann man das irgendwo parametrieren ?



FHEM auf RaspberryPI B (buster)
2xCUL868 für MAX/Slow_RF, HM-LAN, JeeLink
MAX!/HM-Thermostate, FS20/HM-Rolladenschalter, FS20-EM, LevelJet-Ölstandsmessung, PCA301, IT, KM271, IPCAM, FireTAB10 FTUI

ChrisD

Hallo,

Kann es sein dass du die Datei fhem-5.5-fb7270.zip heruntergeladen hast ?
Diese ist für die FritzBox 7270 und enthält deshalb die Datei perl.

Für Windows musst du die Datei fhem-5.5.tar.gz verwenden. Entpacken kannst du sie z.B. mit 7-Zip. Wie in der Howto FHEM for Windows erklärt funktioniert dies auch auf einem USB-Laufwerk. Wenn sowohl FHEM als auch Perl richtig entpackt sind sollte die Verzeichnisstruktur wie im beigefügten Bild aussehen.

Grüße,

ChrisD


cotecmania

Hallo,

Ja, hatte zuerst das falsche ZIP für die Fritzbox. Jetzt aber das TAR. War aber nicht die Ursache.

Bei mir liegt es definitiv am Hauptordner.

Installation auf USB Stick : g:\Programme\FHEM-5.5\...   läuft !
Umbenennen von "Programme" nach "FHEM" ... läuft nicht mehr !

Alles, nur nicht FHEM, als Hauptordner funktioniert !?!

Gruss
Joe
FHEM auf RaspberryPI B (buster)
2xCUL868 für MAX/Slow_RF, HM-LAN, JeeLink
MAX!/HM-Thermostate, FS20/HM-Rolladenschalter, FS20-EM, LevelJet-Ölstandsmessung, PCA301, IT, KM271, IPCAM, FireTAB10 FTUI

ChrisD

Hallo,

Ich habe es mit diversen Ordnernamen versucht, schaffe es aber nicht den Fehler zu reproduzieren. Bei mir funktioniert es auch wenn FHEM im Ordner E:\FHEM\FHEM-5.5 liegt.

Grüße,

ChrisD

ChrisD

Hallo,

Ich habe den Fehler durch Zufall gefunden. Du hattest Recht mit dem Ordner, allerdings ist es nicht der Ordner in dem FHEM installiert ist der Probleme bereitet sondern der wo Perl installiert ist . Perl verwendet eine Liste von Pfaden namens @INC in denen es nach Modulen sucht. Bei deiner Installation in D:/Programme/FHEM/fhem-5.5 sind dies D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/site/lib, D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/vendor/lib, D:/Programme/FHEM/fhem-5.5/perl_5.18.1.1/perl/lib und .

Beim Start von FHEM wird überprüft ob der Modulpfad von FHEM in dieser Liste steht. Ist dies nicht der Fall wird er hinzugefügt. Der Modulpfad ergibt sich aus dem Attribut 'modpath' aus der Konfigurationsdatei (üblicherweise ein Punkt) an das die Zeichenkette '/FHEM' angehängt wird. Somit überprüft FHEM ob './FHEM' in @INC enthalten ist. Das Ergebnis dieser Überprüfung ist bei deiner Installation positiv, d.h. './FHEM' wird nicht zu @INC hinzugefügt da bereits vorhanden. Dies kommt daher dass beim Vergleich './FHEM' nicht als Zeichenkette sondern als Regexp ausgewertet wird (der Punkt bedeutet irgend ein Zeichen). Das Problem lässt sich auf 3 Arten lösen:

- dafür sorgen dass im Verzeichnisbaum von Perl kein FHEM (großgeschrieben) vorkommt
- im Attribut modpath in der fhem.cfg den absoluten Pfad angeben, unter Windows \ durch / ersetzen
- den Vergleich in fhem.pl ändern, dazu muss die Zeile

    push @INC, $modpath if(!grep(/$modpath/, @INC));
in
    push @INC, $modpath if(!grep(/\Q$modpath\E/, @INC));

geändert werden

Die beste Lösung für das Problem ist sicherlich die 3.

Das Problem betrifft nicht nur Windows, es lässt sich auch leicht auf der Fritzbox reproduzieren. Es reicht aus FHEM zu beenden, das Verzeichnis von fhem in FHEM umzubenennen, das Startskript anzupassen und zu starten. Das Ergebnis im Logfile sieht dann so aus:
Zitat
Can't locate TcpServerUtils.pm in @INC (@INC contains: /var/InternerSpeicher/FHEM/lib/perl5/site_perl/5.12.2/mips-linux /var/InternerSpeicher/FHEM/lib/perl5/site_perl/5.12.2/mips-linux /var/InternerSpeicher/FHEM/lib/perl5/site_perl/5.12.2 /var/InternerSpeicher/FHEM/lib/perl5/5.12.2/mips-linux /var/InternerSpeicher/FHEM/lib/perl5/5.12.2/mips-linux /var/InternerSpeicher/FHEM/lib/perl5/5.12.2 /opt/lib/perl5/site_perl/5.12.2/mips-linux /opt/lib/perl5/site_perl/5.12.2 /opt/lib/perl5/5.12.2/mips-linux /opt/lib/perl5/5.12.2 .) at ./FHEM/98_telnet.pm line 10, <$fh> line 18.
BEGIN failed--compilation aborted at ./FHEM/98_telnet.pm line 10, <$fh> line 18.

Grüße,

ChrisD

P.S. Bei meinem letzten Test mit dem Ordner E:\FHEM\FHEM-5.5 ist der Fehler nicht aufgetreten, weil ich nicht darauf geachtet hatte welche Perl-Version verwendet wird.


cotecmania

Na da bin ich ja froh ...
Selber die fhem.pl zu ändern macht ja keinen Sinn, beim nächsten Update ists weg.
Kann das niemand einpflegen, bzw. wie ist die Vorgehensweise, solche Fehler offiziell zu fixen ??

Gruss
FHEM auf RaspberryPI B (buster)
2xCUL868 für MAX/Slow_RF, HM-LAN, JeeLink
MAX!/HM-Thermostate, FS20/HM-Rolladenschalter, FS20-EM, LevelJet-Ölstandsmessung, PCA301, IT, KM271, IPCAM, FireTAB10 FTUI

rudolfkoenig


willybauss

Zitat von: rudolfkoenig am 21 Oktober 2013, 22:41:41
Habs eingecheckt.
hm - und warum sehe ich denselben Fehler heute wieder? FHEM in fhem umbenannt und alles läuft.
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

Puschel74

Weil du kein update gemacht hast?
Nur das tar downloaden und installieren ist zu wenig da die Änderungen seit dem Release von 5.5 nur und ausschliesslich per update verteilt werden.
Ich hoffe das stimmt so  8)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

ChrisD

Hallo,

Mit dem Update wäre das Problem tatsächlich behoben, nur ist es nicht möglich das Update durchzuführen da die FHEM-Version aus dem Archiv nicht startet wenn im Pfad zu Perl 'FHEM' enthalten ist.

Grüße,

ChrisD

Puschel74

Hallo,

ok, dann bin ich Unwissender mal wieder raus.

Grüße

Mist - und nu dacht ich das ich einmal ne gute Idee haben könnte aber wieder nüscht  :(
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

ChrisD

Hallo,

Deine Antwort war richtig, nach dem Update ist das Problem behoben. Vielleicht sollte auf der Windows-Howto-Seite ein Hinweis hinzugefügt werden dass im Pfad zu Perl der Text 'FHEM' nicht vorkommen darf.

Grüße,

ChrisD