Umsteig von fhem.cfg auf configDB

Begonnen von -Stefan-, 01 November 2014, 17:08:43

Vorheriges Thema - Nächstes Thema

-Stefan-

Hallo zusammen,

ich verstehe noch nicht ganz, wie ich einen Umstieg auf eine MYSQL DB realisiere.
Ich möchte mir ein einges Webpanel in PHP programmieren und da ist es einfach die Werte in der DB zu haben um mit diesen weiter zu arbeiten.

Nun weiß ich aber nicht genau, was für Tabellen ich ür FHEM anlegen muss.
Aus dem WIKI weiß ich, ich muss das DBLog aktivieren (define logdb DbLog ./db.conf .*:.* ) sowie  eine db.conf (
%dbconfig=

              on => "mysql:database=fhem;localhost=fhem;port=3306",
        user=> "xxx",
        password => "xxx",
);
)
anlegen.
Aber wie geht es dann weiter? Was für Tabellen muss ich anlegen?
Wenn ich einen neuen Aktor hinzufüge wird dieser dann automatisch in die DB geschrieben?

Vielen Dank,

MfG
Stefan

maxritti

#1
Schau mal hier:

http://fhem.de/commandref.html#DbLog

Die Suche nach *sql im FHEM Verzeichnis bringt dann das hier zu Tage:

/opt/fhem/contrib/dblog/db_create_postgresql.sql
/opt/fhem/contrib/dblog/db_create_mysql.sql
/opt/fhem/contrib/dblog/db_create_sqlite.sql


Ach ja. Und neue Aktoren werden mit aufgenommen, da Deine Definition des DbLog mit der RegExp .*:.* alles loggt.

-Stefan-

Vielen Dank für deine Antwort.
Okay, super nun habe ich die DB erstellt.
Die configDB im Hauotverzeichnis /opt/fhem  angelegt und den DBLog definiert.
Nun steht die ganze Zeit bei mir " STATE waiting for connection"
und im Log : 2014.11.01 19:17:01 3: Connecting to database mysql:database=fhem;host=localhost;port=3306 with user fhemuser

Nun wollte ich mit configdb migrate alles in die DB schreiben. Dabei kommt aber folgender fehler: "Unknown command UNDEFINED, try help. "

Wie geht es denn weiter?
MfG
Stefan

Puschel74

#3
Hallo,

wenn du dein FHEM in die Datenbank schieben willst würde ich im Einplatinencomputerbereich unter Sonstiges nach betateilchens Beiträgen dazu suchen.
Dafür hat er die ja erstellt  ;)

Grüße

Edith: Hier ist doch was http://fhem.de/commandref.html#configdb
Edith2: Unter Sonstiges gibt es sogar einen Beitrag der sich mit configDB und genau deiner Fehlermeldung befasst:
http://forum.fhem.de/index.php/topic,21639.msg151265.html#msg151265
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.

-Stefan-

Hallo,


ja habe diesen Beitrag von ihm gefunden " http://forum.fhem.de/index.php?topic=26394.0".
Auf der Seite " http://fhem.de/commandref.html#configdb " war ich auch schon und bin ja nun bei dem Punkt "Migrate your existing fhem configuration into the database  / configdb migrate " Und genau da kommt dann der Fehler Unknown command UNDEFINED, try help.

Grüße Stefan

Puschel74

siehe mein Edith2 oben
Aber da du nicht von FileLog auf DBLog wechseln willst sondern von fhem.cfg auf configDB bitte den Betreff erstmal anpassen.
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.

-Stefan-

Also ich habe nun nochmal nachgeschaut.
In /opt/fhem befinden sich:
- configDB.conf 
- configDB.pm
- fhem.cfg 
- fhem.pl

Desweiteren kann ich auch das Modul 98_configdb.pm nicht laden
Fehler: 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.


Das Paket libdbd-mysql-perl ist bei mir installiert. Habe zur Sicherheit auch noch das sqlite3 Modul installiert.



maxritti

Und das laut Command Ref angegebene perl package Text::Diff hast du auch installiert?

betateilchen

Welches Modul genau fehlt, sollte sich im Logfile finden lassen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

-Stefan-

Genau, das Paket libtext-diff-perl  habe ich ebenfalls installiert.

Im Log steht nur ttempt 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.



Gruß
Stefan

Puschel74

Hallo,

jetzt wäre noch interessant wann du das letzte update gemacht hast  ::)

Grüße
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.

betateilchen

Nö, mit dem Update hat das nix zu tun. Das Modul, das in Zeile 8 von 98_configdb.pm nicht geladen wird, ist das configDB.pm selbst - steht ja auch in der Fehlermeldung.


  • Wie sehen die Rechte auf die Dateien in /opt/fhem aus?
  • Hat die configDB.conf einen korrekten Inhalt?
  • Ist die Datenbank korrekt angelegt?


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

-Stefan-

Das letze Update habe ich vor ca. einer Woche duchgeführt.
Das Modul 98_configdb.pm  ist auf dem neusten Stand zumindest wird dies nicht aufgeführt wenn ich nach neuen Updates prüfe.

Gruß
Stefan

-Stefan-

#13
Meine configDB.conf:
################################################################
%dbconfig= (
        connection => "mysql:database=fhem;host=localhost;port=3306",
        user => "fhemusrr",
        password => "xxxx",
);
################################################################


Rechte sehen wie folgt aus:
fhem dialout   configDB.pm
fhem dialout   configDB.conf (hier hatte ich aber auch schon root:root und fhem:root versucht)

Ja, über phpmysql kann ich mich auf die Datenbank einlogen und beim anlegen trat kein Fehler auf.


Gruß Stefan


betateilchen

Hör doch mal bitte auf, Dir über 98_configdb.pm Gedanken zu machen, das ist doch überhaupt nicht das Problem bei Dir!

Dein Problem liegt in configDB.pm, das ist eine andere Moduldatei.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!