configDb - Unknown command UNDEFINED, try help.

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

Vorheriges Thema - Nächstes Thema

Markus Bloch

Hallo zusammen,

da ich den Ansatz von configDb sehr interessant finde, wollte ich es bei mir einrichten. Ich bin nach commandref vorgegangen.

1. Konfigfile configDb.conf erzeugt mit meinen Zugangsdaten
2. FHEM neugestartet
3. "configdb migrate" in der FHEM Befehlszeile eingegeben.

Dann erscheint aber bei mir:

Unknown command UNDEFINED, try help.

Muss ich configDb noch irgendwie nachladen? Ich dachte es steht sofort zur Verfügung?

Was mache ich falsch?

Vielen Dank

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

Ich glaube es liegt an der Ordnerstruktur, bin mir aber nicht sicher.

Hier mal exemplarisch die wichtigsten Pfade auf meinem Synology NAS


/volume1/FHEM Live/bin
/volume1/FHEM Live/bin/fhem.pl
/volume1/FHEM Live/etc
/volume1/FHEM Live/etc/fhem.cfg
/volume1/FHEM Live/etc/configDB.conf
/volume1/FHEM Live/share/fhem/configDB.pm
/volume1/FHEM Live/share/fhem/FHEM
/volume1/FHEM Live/share/fhem/FHEM/18_CUL_HOERMANN.pm
/volume1/FHEM Live/share/fhem/FHEM/10_IT.pm
/volume1/FHEM Live/share/fhem/FHEM/36_PCA301.pm
/volume1/FHEM Live/share/fhem/FHEM/70_EFR.pm
.....


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)

maxritti

#2
Hallo zusammen,


gerade eben wollte ich auch mal den Schritt wagen und meine fhem.cfg in den Ruhestand bringen.
Um das ganze zu testen wie immer in der Entwicklungsumgebung das Vorgehen der command ref durchgeführt.
Da klappt alles wunderbar. Keine fhem.cfg mehr per Fhemweb editiertbar.

Nur leider kommt bei meinem produktiven System genau die gleiche Meldung wie bei Markus.
Nach "configdb migrate" eben auch diese Meldung:

Unknown command UNDEFINED, try help.

Ich habe keine NAS im Einsatz. Sowohl die Entwicklungsumgebung als auch produktive Umgebung auf jeweils einem Debian Linux.

betateilchen hat bestimmt einen Tip oder? :)

Edit:

Ich sehe gerade das hier noch im fhem-log:

reload: Error:Modul 98_configdb deactivated:
configDB.pm did not return a true value at ./FHEM/98_configdb.pm line 8.
BEGIN failed--compilation aborted at ./FHEM/98_configdb.pm line 8.

2014.04.14 13:00:19 0: configDB.pm did not return a true value at ./FHEM/98_configdb.pm line 8.


Als version ist die hier im Einsatz:

# $Id: configDB.pm 5423 2014-04-03 15:43:17Z betateilchen $

Sowohl produktiv, als auch Entwicklung.

betateilchen

Und dieser Thread hier war mir irgendwie völlig entgangen, ich sehe ihn eben zum ersten Mal - sorry. Das beschriebene Problem muss ich mir heute abend zu Hause anschauen.

Wichtig ist: die configDB.conf muss im gleichen Verzeichnis liegen wie die fhem.pl!

Das ist zumindest bei Markus nicht der Fall, wenn er schreibt:

Zitat
/volume1/FHEM Live/bin/fhem.pl
/volume1/FHEM Live/etc/configDB.conf
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

maxritti

Hi,

das wäre prima, wenn Du da etwas findest.
So ein halber Vorruhrestand ist nichts für die fhem.cfg ;-)

Zumindest bei mir liegt die im gleichen Verzeichnis wie fhem.pl


dlehmann69

FHEM 6.0 Development auf Ubuntu 20.04 GIGABYTE GB-BACE mit Intel(R) Celeron(R) CPU N3150
CUL 3.4 FW 1.53 868 MHz für FS20, FHT
CUL 3.4 FW 1.66 868 MHz für HM
configDB; DbLog
FHT80, FS20, HMS, EM1000WZ, FHTTF, HM-LC-Sw1-DR; Lightify; HM-CC-RT-DN; HM-TC-IT-WM-W-EU; HM-SEC-SCO

betateilchen

OK - ich hab grade mal meine VM angeworfen.

Den Fehler kann ich reproduzieren, wenn ich die configDB.conf woanders hinlege, als in das Verzeichnis fhem.pl.
Vor dem "reload: Error" sollte es in Deinem Log aber noch eine weitere Fehlerzeile geben, die die Ursache ziemlich gut beschreibt:


Zitat
2014.04.14 13:55:12 1: Cannot open database configuration file configDB.conf
2014.04.14 13:55:12 1: reload: Error:Modul 98_configdb deactivated:
configDB.pm did not return a true value at ./FHEM/98_configdb.pm line 8.
BEGIN failed--compilation aborted at ./FHEM/98_configdb.pm line 8.

2014.04.14 13:55:12 0: configDB.pm did not return a true value at ./FHEM/98_configdb.pm line 8.
BEGIN failed--compilation aborted at ./FHEM/98_configdb.pm line 8.

Also nochmal - folgende Dateien müssen in einem gemeinsamen Verzeichnis liegen und vorzugsweise sollte fhem auch aus diesem Verzeichnis gestartet werden:


Im nächsten Update werde ich das in der commandref nochmal ausdrücklich hervorheben. Mit solchen Sonderfällen wie bunt verteilten fhem-Dateien hatte ich es bisher noch nie zu tun ;)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: dlehmann69 am 14 April 2014, 14:01:58
muss die nicht nur configDB.conf heißen?

Jepp. configDB.config ist definitiv falsch.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

maxritti

Oh Gott wie peinlich.

Ihr habt natürlich recht.
Und damit klappts auf einmal auch.

Danke schön

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

#10
Zitat von: maxritti am 14 April 2014, 12:58:52
Als version ist die hier im Einsatz:
# $Id: configDB.pm 5423 2014-04-03 15:43:17Z betateilchen $

Dazu gehört immer noch ein Versionseintrag 98_configdb.pm:


# $Id: configDB.pm 5423 2014-04-03 15:43:17Z betateilchen $
# $Id: 98_configdb.pm 5409 2014-04-02 04:38:10Z betateilchen $


Der Versionseintrag steht allerdings erst dann zur Verfügung, wenn vom Anwender der erste configdb Befehl ausgeführt und dadurch das Modul auch tatsächlich geladen wurde.

98_configdb.pm ist quasi das Frontend, das die configdb-Befehle in einfacher Form bereitstellt. Für die fhem-interne Funktion der Konfigurationsverwaltung wird es grundsätzlich nicht benötigt, deshalb sind die beiden Teile voneinander getrennt.

Das begründet auch, warum unterschiedliche Versionsnummern bei diesen beiden Dateien kein Problem darstellen, denn es kann durchaus Optimierungen/Bugfixes im "Backend" geben, ohne dass sich an der Bedienung durch den Anwender irgendwas ändert.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

maxritti

Zitat von: betateilchen am 14 April 2014, 14:31:13
Dazu gehört immer noch ein Versionseintrag 98_configdb.pm:


# $Id: configDB.pm 5423 2014-04-03 15:43:17Z betateilchen $
# $Id: 98_configdb.pm 5409 2014-04-02 04:38:10Z betateilchen $


Der Versionseintrag steht allerdings erst dann zur Verfügung, wenn der erste configdb Befehl ausgeführt und dadurch das Modul auch tatsächlich geladen wurde.

Damit meinst Du den 98_configdb.pm?
Der taucht bei mir (noch) nicht auf.
Ich habe mal einen Dummy angelegt und auf "Save config" geklickt.
Daraufhin wird auch oben links "configDB saved." angezeigt.
Nach einem fehm neustart ist der dummy auch noch da. Hat also augenscheinlich geklappt mit configDB.

Nur wie gesagt. Ein "version" liefert mir die 98_configdb.pm nicht.

# $Id: fhem.pl 5503 2014-04-10 07:50:19Z rudolfkoenig $
# $Id: configDB.pm 5423 2014-04-03 15:43:17Z betateilchen $
# $Id: 10_CUL_HM.pm 5520 2014-04-14 05:06:46Z martinp876 $
# $Id: 93_DbLog.pm 5348 2014-03-28 09:38:23Z tobiasfaust $
# $Id: 01_FHEMWEB.pm 5475 2014-04-07 16:07:58Z rudolfkoenig $
# $Id: 92_FileLog.pm 5452 2014-04-06 06:24:47Z rudolfkoenig $
# $Id: 00_HMLAN.pm 5449 2014-04-05 14:36:30Z martinp876 $
# $Id: 98_HMinfo.pm 5518 2014-04-13 15:22:34Z martinp876 $
# $Id: 98_RandomTimer.pm 4968 2014-02-17 18:48:38Z dietmar63 $
# $Id: 99_SUNRISE_EL.pm 4537 2014-01-03 08:28:59Z rudolfkoenig $
# $Id: 98_SVG.pm 5076 2014-03-01 06:30:23Z rudolfkoenig $
# $Id: 99_Utils.pm 5488 2014-04-08 11:32:17Z rudolfkoenig $
# $Id: 90_at.pm 5319 2014-03-25 10:11:47Z rudolfkoenig $
# $Id: 98_autocreate.pm 5268 2014-03-20 20:46:00Z rudolfkoenig $
# $Id: 98_dummy.pm 4934 2014-02-15 08:23:12Z rudolfkoenig $
# $Id: 91_eventTypes.pm 2982 2013-03-24 17:47:28Z rudolfkoenig $
# $Id: 91_notify.pm 5470 2014-04-07 08:32:35Z rudolfkoenig $
# $Id: 33_readingsGroup.pm 5414 2014-04-02 11:55:24Z justme1968 $
# $Id: 98_structure.pm 5050 2014-02-26 08:29:44Z rudolfkoenig $
# $Id: 98_telnet.pm 4844 2014-02-08 07:54:03Z rudolfkoenig $
# $Id: 98_weblink.pm 3770 2013-08-23 13:29:58Z rudolfkoenig $


betateilchen

#12
Du solltest lernen, aufmerksamer zu lesen!

Zitat von: betateilchen am 14 April 2014, 14:31:13
Der Versionseintrag steht allerdings erst dann zur Verfügung, wenn der erste configdb Befehl ausgeführt und dadurch das Modul auch tatsächlich geladen wurde.

Mach mal ein "configdb info" und danach nochmal "version" ;)

Ok, ich habe oben einen für BILD Leser vermutlich wichtigen Zusatz in rot hinzugefügt  8)

Und nochwas: "configDB.pm" != "98_configdb.pm" - deshalb gibt es auch ZWEI Einträge in der commandref.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: maxritti am 14 April 2014, 14:41:19
Ich habe mal einen Dummy angelegt

Dazu hast Du den Befehl define ausgeführt

Zitat von: maxritti am 14 April 2014, 14:41:19
und auf "Save config" geklickt.

Damit hast Du den Befehl save ausgeführt.

Zitat von: maxritti am 14 April 2014, 14:41:19
Nach einem fehm neustart ist der dummy auch noch da.
Nur wie gesagt. Ein "version" liefert mir die 98_configdb.pm nicht.

Logisch, Du hast auch noch nirgends den Befehl configdb ausgeführt. Und fhem selbst führt keine configdb Befehle aus, wie schon geschrieben:

ZitatFür die fhem-interne Funktion der Konfigurationsverwaltung wird es grundsätzlich nicht benötigt, deshalb sind die beiden Teile voneinander getrennt.

es heißt übrigens fhem und nicht fehm ;)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

maxritti

Zitat von: betateilchen am 14 April 2014, 14:50:15
Du solltest lernen, aufmerksamer zu lesen!
Okay, da bin ich gerne zu bereit.  :D

Ich hatte die Aussage halt so verstanden, 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.

Dann ziehe ich mich hier mal zurück, es sieht ja jetzt ganz gut aus.