configDb - Unknown command UNDEFINED, try help.

Begonnen von Markus Bloch, 20 März 2014, 22:05:13

Vorheriges Thema - Nächstes Thema

betateilchen

Zitat von: maxritti am 14 April 2014, 15:01:55
dass das Modul configdb quasi einen Befehl zum speichern der Config bekommt und dadurch das Modul geladen wird.
War dann wohl mal ein kleines Missverständnis meinerseits.

Nein, kein Missverständnis. Du hast immer noch nicht richtig gelesen ;)

Nicht configdb bekommt den Befehl zum Speichern, sondern configDB bekommt ihn. Und es bekommt den Befehl nicht von Dir, sondern von fhem. Du kannst und sollst doch als Anwender überhaupt nicht darüber nachdenken müssen, ob ein Klick auf "save config" nun in die Datenbank oder in die fhem.cfg speichert - das wird völlig autark von fhem verwaltet und ist für Dich absolut transparent. Genau das war meine wichtigste Zielsetzung bei der Entwicklung: Keinerlei Änderung in der Frontend-Bedienung für den Anwender.

Es gibt genau zwei Stellen, an denen Du im fhem-Frontend optisch erkennen kannst, dass Du mit der Datenbank anstatt der Konfigurationsdatei arbeitest:


  • An der Meldung "configDB saved" nach dem Klick auf "save config"
  • Daran, dass unter "Edit files" der Eintrag bzw. die "Gruppe" fhem.cfg verschwunden ist.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Markus Bloch

so, ich habe mich nochmal ran gewagt.

Neue Ausgangssituation (aktuellstes Update von heute):


/volume1/FHEM Live/share/fhem/FHEM/98_configdb.pm 
/volume1/FHEM Live/share/fhem/FHEM/98_configDBwrap.pm
/volume1/FHEM Live/bin/fhem.pl
/volume1/FHEM Live/bin/configDB.pm
/volume1/FHEM Live/bin/configDB.conf
/volume1/FHEM Live/etc/fhem.cfg


die configDB.conf ist mit meinen Daten korrekt befüllt. Dennoch erscheint im Logfile:


2014.04.16 11:03:04.869 1: reload: Error:Modul 98_configdb deactivated:
Can't locate configDB.pm in @INC (@INC contains: /usr/local/perl/lib/5.16.0/armv5tel-linux /usr/local/perl/lib/5.16.0 /usr/local/perl/lib/site_perl/5.16.0/armv5tel-linux /usr/local/perl/lib/site_perl/5.16.0 /usr/local/perl/lib/site_perl/5.16.0/armv5tel-linux /usr/local/perl/lib/site_perl/5.16.0 /usr/local/perl/lib/5.16.0/armv5tel-linux /usr/local/perl/lib/5.16.0 . /usr/local/FHEM/share/fhem/FHEM) at /usr/local/FHEM/share/fhem/FHEM/98_configdb.pm line 8.
BEGIN failed--compilation aborted at /usr/local/FHEM/share/fhem/FHEM/98_configdb.pm line 8.

2014.04.16 11:03:04.870 0: Can't locate configDB.pm in @INC (@INC contains: /usr/local/perl/lib/5.16.0/armv5tel-linux /usr/local/perl/lib/5.16.0 /usr/local/perl/lib/site_perl/5.16.0/armv5tel-linux /usr/local/perl/lib/site_perl/5.16.0 /usr/local/perl/lib/site_perl/5.16.0/armv5tel-linux /usr/local/perl/lib/site_perl/5.16.0 /usr/local/perl/lib/5.16.0/armv5tel-linux /usr/local/perl/lib/5.16.0 . /usr/local/FHEM/share/fhem/FHEM) at /usr/local/FHEM/share/fhem/FHEM/98_configdb.pm line 8.
BEGIN failed--compilation aborted at /usr/local/FHEM/share/fhem/FHEM/98_configdb.pm line 8.




Wenn ich nun die configDB.pm zusätzlich in den Module-Ordner kopiere:


/volume1/FHEM Live/share/fhem/FHEM/98_configdb.pm 
/volume1/FHEM Live/share/fhem/FHEM/98_configDBwrap.pm
/volume1/FHEM Live/share/fhem/FHEM/configDB.pm    <<<<<<<<<<<<
/volume1/FHEM Live/bin/fhem.pl
/volume1/FHEM Live/bin/configDB.pm
/volume1/FHEM Live/bin/configDB.conf
/volume1/FHEM Live/etc/fhem.cfg



dann erscheint folgende Meldung:

2014.04.16 11:06:41.842 1: Cannot open database configuration file configDB.conf
2014.04.16 11:06:41.946 1: reload: Error:Modul 98_configdb deactivated:
configDB.pm did not return a true value at /usr/local/FHEM/share/fhem/FHEM/98_configdb.pm line 8.
BEGIN failed--compilation aborted at /usr/local/FHEM/share/fhem/FHEM/98_configdb.pm line 8.

2014.04.16 11:06:41.946 0: configDB.pm did not return a true value at /usr/local/FHEM/share/fhem/FHEM/98_configdb.pm line 8.
BEGIN failed--compilation aborted at /usr/local/FHEM/share/fhem/FHEM/98_configdb.pm line 8.




Dummerweise sehe ich aber garnicht, wo er die configDB.conf genau sucht, also in welchem Ordner genau.

Kannst du hier helfen, betateilchen?

Danke

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

betateilchen

#17
Wie um alles in der Welt startest Du Dein fhem?

Bitte zeige mir das Startskript.

Das hier:

/volume1/FHEM Live/share/fhem/FHEM/98_configdb.pm 

widerspricht irgendwie komplett dem hier:

/usr/local/FHEM/share/fhem/FHEM/98_configdb.pm
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Die in @INC hinterlegte Liste der Verzeichnisse, in denen perl nach Modulen sucht, kennt Deine fhem Installation nicht. Der aktuelle Pfad ist allerdings immer enthalten. Du musst dafür sorgen, dass


  • der Pfad Deiner fhem-Installation zu @INC hinzugefügt wird
  • fhem vorzugsweise aus seinem eigenen Verzeichnis gestartet wird, damit fhem.pl die configDB.pm finden kann, die im gleichen (also dem dann aktuellen) Pfad liegt.

http://perlmaven.com/how-to-change-inc-to-find-perl-modules-in-non-standard-locations
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Markus Bloch

Ich verwende die Synology-Pakete von Martin Fischer: http://fischer-net.de/hausautomation/fhem/55-fhem-5-3-pakete-fuer-synology.html

Das entsprechende Start-Skript habe ich angehangen.

Danke

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Markus Bloch

/volume1/FHEM Live/ ist ein Symlink auf => /volume1/@appstore/FHEM/
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

betateilchen

#21
ähm... mit dem Startskript kannst Du aber Dein fhem überhaupt nicht mit Datenbank starten, selbst wenn Dir die Migration gelingen würde.

Um die Migration zu testen, füge mal bitte die rot markierte Zeile in das Startskript ein:

Zitat
#
cd ${HOME}/bin
case "$1" in
   start)

Ausserdem bitte noch diese Änderung:

Zitat
perl_BIN=${PERL}/bin/perl
if [ -x ${perl_BIN} ]; then
   export PERL5LIB="${PERL}/lib/5.16.0:${PERL}/lib/site_perl/5.16.0:${HOME}/bin"
else
   perl_BIN=`which perl`
fi
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Markus Bloch

okay, funktioniert, jetzt scheitert es am fehlenden DBD::mysql Modul in Perl, aber das ist eine andere Baustelle.

Vielen Dank für deine Hilfe.


Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

betateilchen

ok, wenn Du das gelöst hast, kümmern wir uns darum, dass Dein Startskript auch mit configDB gestartet werden kann.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!