configdb installieren - Schritt 3 unklar

Begonnen von Invers, 19 August 2014, 13:17:39

Vorheriges Thema - Nächstes Thema

Invers

Ich würde gerne die configdb nutzen und habe dazu laut Anleitung Schritt 1 und 2 erfolgreich ausgeführt.
In Schritt 3 soll nun folgendes gemacht werden:
Eine leere Datenbank muss angelegt werden, z.B. in sqlite3:

mba:fhem udo$ sqlite3 configDB.db

SQLite version 3.7.13 2012-07-17 17:46:21
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> pragma auto_vacuum=2;
sqlite> .quit

mba:fhem udo$


Ich finde allerdings nicht raus, wo ich "mba:fhem udo$ sqlite3 dummy.db" eingeben muss. alle mir bekannten Stellen habe ich probiert, jedoch ohne Ergebnis. Suche hat nicht geholfen, weil ich vermutlich die falschen Fragen gestellt habe.

Kann bitte jemand einen Linux/Unix-Laien kurz aufklären? :-)
Vielen Dank im Voraus.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

betateilchen

Zitat von: Invers am 19 August 2014, 13:17:39
Ich finde allerdings nicht raus, wo ich "mba:fhem udo$ sqlite3 dummy.db" eingeben muss.

Manchmal überlege ich bei Deinen Fragen wirklich, ob Du sie ernst meinst oder ob Du hier nur das gesamte Forum hochnehmen und Deinen Spaß haben willst...

mba:fhem udo$

ist der Kommandozeilen-Prompt, den es sogar bei Windows gibt. Den muss man nirgends eingeben.

sqlite3 dummy.db

ist der auszuführende Befehl, den Du (logischerweise) in dem Unterverzeichnis ausführen musst, in dem sich die Datenbankdatei dummy.db befindet.

Tipp am Rande: Ich würde die Konfigurationsdatenbank nicht dummy.db nennen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

ph1959de

mba:fhem udo$ dürfte wohl der Prompt in betateilchen's Terminal Fenster gewesen sein. Der eigentliche Befehl heißt also sqlite3 configDB.db

ZitatKann bitte jemand einen Linux/Unix-Laien kurz aufklären? :-)

... ja, es ist jetzt Zeit für die Linux Basisausbildung.
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

Invers

Ja, entschuldige, aber ich will wirklich niemanden hochnehmen. Der prompt im Windows sieht halt anders aus und mein Prompt in Putty auch. Ich bin auch nicht davon ausgegangen, dass jemand seinen Prompt mit veröffentlicht. Wenn man halt im Betriebssystem fremd ist, fällt man darauf rein.

Danke euch 2 für die Aufklärung.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Invers

Auch auf die Gefahr hin, mich noch einmal zu blamieren, stelle ich mal die folgende Frage:
In der Referenz steht:
Bestehende Konfiguration in die Datenbank übertragen

    configdb migrate

    in die Befehlszeile der fhem-Oberfläche eingeben


Ich soll also zur Migration fhem neu starten mit: perl fhem.pl fhem.cfg

Danach soll ich in die fhem-Zeile eingeben: configdb migrate

Dieser Befehl wird aber nicht angenommen. Meldung lautet: Unknown command UNDEFINED, try help.

Woran kann das liegen?
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

betateilchen

dann schau doch einfach mal ins Logfile, da sollte sich ein Hinweis finden.

Meine Vermutung: Du hast das benötigte Perl-Modul zur Verbindung mit Deiner Datenbank nicht installiert -> siehe commandref!

Zitat von: commandrefThe corresponding DBD module must be available in your perl environment,
e.g. sqlite3 running on a Debian systems requires package libdbd-sqlite3-perl
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Invers

#6
Schade. Hatte ich mir einfacher vorgestellt.

Im Log steht folgendes:
2014.08.19 15:30:07 1: reload: Error:Modul 98_configdb deactivated:
Attempt to reload configDB.pm aborted.
Compilation failed in require at ./FHEM/98_configdb.pm line 8.
BEGIN failed--compilation aborted at ./FHEM/98_configdb.pm line 8.

2014.08.19 15:30:07 0: Attempt to reload configDB.pm aborted.
Compilation failed in require at ./FHEM/98_configdb.pm line 8.
BEGIN failed--compilation aborted at ./FHEM/98_configdb.pm line 8.



Was muss ich denn konkret tun, um das fehlende Modul zu installieren? Ich habe ansich alles so gemacht, wie in der Anleitung vorgegeben, soweit ich das beurteilen kann.


EDIT:
In der Referenz steht auch:
Im Verzeichnis contrib/configDB befinden sich zwei Vorlagen für Datenbank und Konfiguration,
die durch einfaches Kopieren in das fhem Verzeichnis sofort verwendet werden können (Nur für sqlite!).


Ich finde aber das Verzeichnis nicht, wie angegeben.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

betateilchen

ZitatSchade. Hatte ich mir einfacher vorgestellt.

Es ist supereinfach. Vorausgesetzt, man hat die commandref gelesen und verstanden.

Was Du tun musst, steht in meinem vorherigen Beitrag - Du solltest zuerst das zu Deiner Datenbank gehörende perl Modul installieren. Den Namen des Moduls findest Du in dem Beitrag (und er steht auch in der commandref - mehr kann ich als Entwickler nicht tun!)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Invers

Naja, nicht wenn man sich nicht richtig auskennt, aber egal, geschafft.
Ich habe das Modul installiert mit mehr Glück als Verstand und es läuft auch mit der DB.
Also vielen Dank für die Hilfe.

Ich hoffe, das ist so ok:

Starting migration...
Processing: database initialization.
Processing: save config.
Processing: save state.
Migration completed.

-----------------------------------------------------------------
configDB Database Information
-----------------------------------------------------------------
# $Id: configDB.pm 6152 2014-06-22 15:35:23Z betateilchen $
-----------------------------------------------------------------
dbconn: SQLite:dbname=/opt/fhem/configDB.db
dbuser:
dbpass:
dbtype: SQLITE
-----------------------------------------------------------------
config: 799 entries

Ver 0 saved: Tue Aug 19 16:22:42 2014 def: 169 attr: 621
Ver 1 saved: by cfgDB_Init  def: 3 attr: 4
-----------------------------------------------------------------
state: 720 entries saved: Tue Aug 19 16:22:44 2014
-----------------------------------------------------------------
filesave: No files stored in database
-----------------------------------------------------------------




Die DB wird nun auch mit demBefehl perl fhem.pl configDB gestarttet.

Problem:
Wenn ich in fhem shutdown/restart sende, wird nicht neu gestartet. Ich bekomme in Putty die Meldung:

DBD::SQLite::db do failed: attempt to write a readonly database at configDB.pm line 295.
DBD::SQLite::db do failed: attempt to write a readonly database at configDB.pm line 295.
Issuing rollback() due to DESTROY without explicit disconnect() of DBD::SQLite::db handle dbname=/opt/fhem/configDB.db a                                        t configDB.pm line 295.


Das gesamte fhem ist aber nicht schreibgeschützt. Muss ich fhem nun anders beenden?
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

betateilchen

Du hast vermutlich die Datenbankdatei als root angelegt und vergessen, fhem als Eigentümer zu setzen.

Zitat von: Invers am 19 August 2014, 16:58:02
Naja, nicht wenn man sich nicht richtig auskennt,

Ich frage mich grade, ob Du auch einfach ein Skalpell in die Hand nehmen würdest, ohne Arzt zu sein und zu wissen bzw. verstehen, was Du tust?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Invers

Naja, eigentlich gehört das ja nicht hierher, aber ich sag mal was dazu:
Natürlich könnte ich mich hinsetzen und nun Linux komplett lernen. Dann natürlich auch noch Perl und dann von Grund auf fhem studieren.
Ich bin jetzt über 60 Jahre alt und habe vermutlich nicht mehr die Zeit und die Hirnmasse, das alles in kurzer Zeit aufzunehmen. Erschwerend kommt neben anderen gravierenden Gründen, auf die ich hier wirklich nicht eingehen möchte, dass ich auch noch fast blind bin durch den grünern Star.
Da ist also lesen u.s.w. pures Gift für die Augen. Bei Überlastung droht Erblindung.

Seit 30 Jahren bin ich nun beruflich mit Windows unterwegs. Ich habe Lehrgänge über Windows und Microsoft abgehalten. Programmierung ist mir nicht fremd, was Turbopascal, VB und VBA angeht. Word, Excel und Access zu programmieren, kostet mich ein müdes Lächeln.

Wenn nun die Heimautomatisierung aus genannten Gründen das Falsche für mich ist, weiss ich jetzt nicht, warum. Gerade in meiner Situation ist das ja alles sehr nützlich für mich.

So, das ist nun genug Privatkram. Mit sowas rücke ich im Normalfall gar nicht raus.

Ich werde nun also googlen, wie ich die Rechte an fhem übertrage und hab dann wieder was gelernt.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

betateilchen

Zitat von: Invers am 19 August 2014, 20:43:56
Ich werde nun also googlen, wie ich die Rechte an fhem übertrage und hab dann wieder was gelernt.

Das steht schon x-Mal hier im Forum.

chown fhem:dialout <nameDerDatenbankdatei>

Entweder Du musst den kompletten Pfad zur Datei angeben, dann ist es egal, von wo aus Du den Befehl ausführst.
Oder Du wechselst zuerst in das Verzeichnis, in dem die Datenbankdatei liegt, dann kannst Du die Pfadangabe zur Datei weglassen und direkt mit dem Dateinamen arbeiten.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Wir reden hier übrigens über EINFACHSTE Linux-Grundlagen, die nix damit zu tun haben, bis ans  Lebensende nun zuerst Linux perfekt erlernen und beherrschen zu müssen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Invers

Vielen Dank, jetzt funktioniert alles.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Gustav

Vielen Dank an Invers für das Durchfragen. An jedem deiner Schritte hat es bei mir auch geharkt. Für Linux/Perl/FHEM Anfänger ist die Anleitung nicht ausreichend

Und Vielen Dank für die Antworten betateilchen. Deine Antworten waren exakt so, dass mir es zwar nicht direkt geholfen hat, aber ich damit eine Lösung finden konnte. An deinen Motivationssprüchen mußt du aber noch arbeiten.