[gelöst] Starten von FHEM auf FB 7270

Begonnen von matrois, 17 Juli 2014, 15:16:18

Vorheriges Thema - Nächstes Thema

matrois

Hallo.
Ich teste gerade FHEM und bräuchte eure Hilfe:
Auf meiner Fritzbox (7270v3) läuft Freetz (freetz-2.0-11757) mit angeschlossener HDD. Ich möchte FHEM auf der Fritzbox starten und danach meine Systeme (ETH200, Max und Homematic) unter FHEM verbinden. Beim Starten von FHEM hakt es leider.

Kurzfassung was ich bisher gemacht habe:
Ich habe FHEM runtergeladen und versucht zu starten. Es kam die Fehlermeldung
Can't locate strict.pm in @INC
Nach einigem Rumprobieren habe ich gemerkt, dass FHEM die libs mitliefert. Nach einem export PERL5LIB='[pfadzumfhemordner]/fhem/lib/perl
hat sich die Fehlermeldung zu
Can't locate IO/Socket.pm in @INC geändert. Die lib-Datei "iO/Socket.pm" scheint allerdings wirklich nicht vorhanden zu sein. Vorher, nachher und hinterher hab ich noch so lange gegoogelt, dass mir jetzt schwindelig ist. Kann mir bitte jemand sagen wo der Wald ist, ich seh nur Bäume...

Danke für Tipps.
Viele Grüße,
matrois.
FHEM: 5.9@docker@qnap | 5.9@raspberry pi III
IO: HMLAN | HMUART | Jeelink | MySensors
CUL_HM: CC-RT-DN | SEC-SCo | Sen-DB-PCB | TC-WM-W-EU
Module / Konfig: configdb | FHEMWEB | FRITZBOX | FileLog | HMinfo | IPCAM | SIP | Abfall | Tablet UI - FUIP | Sonoff/Tasmota

rudolfkoenig

ZitatDie lib-Datei "iO/Socket.pm" scheint allerdings wirklich nicht vorhanden zu sein.

Doch. In fhem-5.5-fb7270.zip zu finden als fhem/lib/perl/arch/IO/Socket.pm


matrois

Danke für die schnelle Antwort. Ich war nicht drauf gekommen in den Unterordnern zu suchen. Ich bin leider nicht so firm in Sachen Perl. Daher muss ich leider schon wieder fragen... (hab aber eine neue Fehlermeldung dabei... ;-)

So wie ich das verstanden habe wird dem System per export PERL5LIB='/pfad/zu/libs'


mitgeteilt wo sich die libs befinden. Da strict.pm in "/pfad/zu/fhem/lib/perl" und IO/Socket.pm in "/pfad/zu/fhem/lib/perl/arch" befindet hab ich in meiner Einfältigkeit mal

export PERL5LIB='/var/media/ftp/uStor01/config/fhem/lib/perl:/var/medi
a/ftp/uStor01/config/fhem/lib/perl/arch'


probiert. Und siehe da, es kommt eine vollkommen neue Fehlermeldung:

Perl lib version (5.14.2) doesn't match executable 'fhem.pl' version (v5.10.1) at /var/media/ftp/uStor01/config/fhem/lib/perl/arch/Config.pm line 60.
Compilation failed in require at /var/media/ftp/uStor01/config/fhem/lib/perl/arch/DynaLoader.pm line 22.
BEGIN failed--compilation aborted at /var/media/ftp/uStor01/config/fhem/lib/perl/arch/DynaLoader.pm line 22.
Compilation failed in require at /var/media/ftp/uStor01/config/fhem/lib/perl/arch/XSLoader.pm line 99.
Compilation failed in require at /var/media/ftp/uStor01/config/fhem/lib/perl/arch/IO/Handle.pm line 266.
BEGIN failed--compilation aborted at /var/media/ftp/uStor01/config/fhem/lib/perl/arch/IO/Handle.pm line 266.
Compilation failed in require at /var/media/ftp/uStor01/config/fhem/lib/perl/arch/IO/Socket.pm line 11.
BEGIN failed--compilation aborted at /var/media/ftp/uStor01/config/fhem/lib/perl/arch/IO/Socket.pm line 11.
Compilation failed in require at fhem.pl line 35.
BEGIN failed--compilation aborted at fhem.pl line 35.


die leider auf etwas hindeutet was ich schon vorher vermutet hatte. Kann es sein, dass ich noch separate Dinge wie ein Perl-Paket oder Lib-Paket oder ähnliches benötige? Im Internet hatte ich auch diese Anleitung ( http://www.wehavemorefun.de/fritzbox/FHEM_installieren) gefunden bei der man Perl separat herunterladen soll. Das funktioniert natürlich sehr schlecht, wenn der Link zum Download tot ist... Zum Glück hab ich dann weitergesucht und dieses Forum gefunden. Kann mir bei dem oben beschriebenen Szenario jemand weiterhelfen?

FHEM: 5.9@docker@qnap | 5.9@raspberry pi III
IO: HMLAN | HMUART | Jeelink | MySensors
CUL_HM: CC-RT-DN | SEC-SCo | Sen-DB-PCB | TC-WM-W-EU
Module / Konfig: configdb | FHEMWEB | FRITZBOX | FileLog | HMinfo | IPCAM | SIP | Abfall | Tablet UI - FUIP | Sonoff/Tasmota

rudolfkoenig

Was ich nicht so recht verstehe: es gibt doch ein startfhem, wo eigentlich alles gesetzt wird, und auch getestet wurde (allerdings ist das ein paar Jahre her). Ich wuerde das als Ausgangspunkt verwenden.

matrois

#4
OK, die startfhem Skripte hatte ich mir angeschaut und ich werde bei erneutem Sichten vermeintlich schlauer komme aber trotzdem nicht weiter:
Ich kenne jetzt zwei Ordner, die wichtige Perl Librarys enthalten:

  • /pfad/zu/fhem/lib/perl (enthält u.a. strict.pm)
    • /pfad/zu/fhem/lib/per/arch (enthält u.a. IO/Socket.pm)

In den Skripten werden per Export die Variablen mit LD_LIBRARY_PATH und PERL5LIB gesetzt. Die Sache mit $home klappt auf automatischem Weg nicht. Deshalb möchte/muss ich das manuell setzen.

Ich habe folgendes ausporbiert:

export PERL5LIB='/pfad/zu/fhem/lib/perl'
export LD_LIBRARY_PATH='/pfad/zu/fhem/lib/perl/arch'
perl fhem.pl fhem.cfg.demo


Das führt dann zu "Can't locate IO/Socket.pm". Vice Versa führt zu "Can't locate strict.pm". Ich komme vermutlich nicht weiter weil ich an der Stelle nicht weiß welche tatsächlichen Ordner startfhemDemo setzen will. Ich habe jetzt mal versucht startfhemDemo so umzubauen, dass es bei mir funktioniert (PATH ermittelt einen sinnvollen Pfad). Jetzt habe ich eine längere, neue Fehlermeldung:
Can't locate IO/Socket.pm in @INC (@INC contains: /var/media/ftp/uStor01/config/fhem/lib/perl /home/rudi/fbperl/lib/perl/arch /home/rudi/fbperl/lib/perl .) at fhem.pl line 35.
BEGIN failed--compilation aborted at fhem.pl line 35.


Einen Benutzer Rudi habe ich nicht, falls das wichtig ist.
FHEM: 5.9@docker@qnap | 5.9@raspberry pi III
IO: HMLAN | HMUART | Jeelink | MySensors
CUL_HM: CC-RT-DN | SEC-SCo | Sen-DB-PCB | TC-WM-W-EU
Module / Konfig: configdb | FHEMWEB | FRITZBOX | FileLog | HMinfo | IPCAM | SIP | Abfall | Tablet UI - FUIP | Sonoff/Tasmota

PeMue

Hallo matrois,

ich habe mal das Startskript meiner FritzBox 7170 für die 7270 modifiziert, etwas swap als zusätzlicher Systemspreicher schadet nicht.
Sichere mal Deine startfhem mv startfhem startfhem.org und kopiere den Anhang in das Wurzelverzeichnis von fhem. Mit ./startfhem kannst Du dann fhem starten.

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

matrois

Extrem vielen Dank. Es klappt. Der Swapspeicher war dank meiner 1.5TB externen Platte und dem schon vorhandenen Swapspeicher nicht das Problem. Es waren die Zeilen 88 + 89 speziell Zeile 89 aus dem Script von PeMue, die mich darauf gebracht haben welche Pfade gesetzt werden müssen.

Danke nochmal an alle.
FHEM: 5.9@docker@qnap | 5.9@raspberry pi III
IO: HMLAN | HMUART | Jeelink | MySensors
CUL_HM: CC-RT-DN | SEC-SCo | Sen-DB-PCB | TC-WM-W-EU
Module / Konfig: configdb | FHEMWEB | FRITZBOX | FileLog | HMinfo | IPCAM | SIP | Abfall | Tablet UI - FUIP | Sonoff/Tasmota