[Problem erkannt] - Probleme mit 93_DbLog.pm 5612 2014-04-23

Begonnen von maxritti, 24 April 2014, 08:57:02

Vorheriges Thema - Nächstes Thema

maxritti

Hallo,

eben habe ich ein Update meiner Entwicklungsumgebung durchgeführt.
Aktualisiert wurde folgendes:

2014.04.24 08:35:38 3: update get http://fhem.de/fhemupdate4/svn/controls_fhem.txt
2014.04.24 08:35:38 3: update get http://fhem.de/fhemupdate4/svn/controls_fhem.txt
2014.04.24 08:35:44 3: update get http://fhem.de/fhemupdate4/svn/FHEM/FhemUtils/release.pm
2014.04.24 08:35:44 1: update check Releases => local: Fhem 5.5 (DEVELOPMENT) remote: Fhem 5.5 (DEVELOPMENT)
2014.04.24 08:35:44 3: update get http://fhem.de/fhemupdate4/svn/controls_fhem.txt
2014.04.24 08:35:44 1: update saving statefile
2014.04.24 08:35:44 3: update get http://fhem.de/fhemupdate4/svn/./CHANGED
2014.04.24 08:35:44 3: update get http://fhem.de/fhemupdate4/svn/FHEM/00_THZ.pm
2014.04.24 08:35:44 3: update get http://fhem.de/fhemupdate4/svn/FHEM/01_FHEMWEB.pm
2014.04.24 08:35:44 3: update get http://fhem.de/fhemupdate4/svn/FHEM/31_LightScene.pm
2014.04.24 08:35:45 3: update get http://fhem.de/fhemupdate4/svn/FHEM/33_readingsProxy.pm
2014.04.24 08:35:45 3: update get http://fhem.de/fhemupdate4/svn/FHEM/42_SYSMON.pm
2014.04.24 08:35:45 3: update get http://fhem.de/fhemupdate4/svn/FHEM/45_TRX.pm
2014.04.24 08:35:45 3: update get http://fhem.de/fhemupdate4/svn/FHEM/46_TRX_ELSE.pm
2014.04.24 08:35:45 3: update get http://fhem.de/fhemupdate4/svn/FHEM/46_TRX_LIGHT.pm
2014.04.24 08:35:45 3: update get http://fhem.de/fhemupdate4/svn/FHEM/46_TRX_SECURITY.pm
2014.04.24 08:35:45 3: update get http://fhem.de/fhemupdate4/svn/FHEM/46_TRX_WEATHER.pm
2014.04.24 08:35:45 3: update get http://fhem.de/fhemupdate4/svn/FHEM/93_DbLog.pm
2014.04.24 08:35:46 3: update get http://fhem.de/fhemupdate4/svn/FHEM/95_holiday.pm
2014.04.24 08:35:46 3: update get http://fhem.de/fhemupdate4/svn/FHEM/98_SVG.pm
2014.04.24 08:35:46 3: update get http://fhem.de/fhemupdate4/svn/FHEM/98_configdb.pm
2014.04.24 08:35:46 3: update get http://fhem.de/fhemupdate4/svn/FHEM/98_weblink.pm
2014.04.24 08:35:46 3: update get http://fhem.de/fhemupdate4/svn/docs/commandref.html
2014.04.24 08:35:48 3: update get http://fhem.de/fhemupdate4/svn/docs/commandref_DE.html
2014.04.24 08:35:49 1: update 18 file(s) have been updated.


Seit dem bekomme ich beim starten von Fhem diese Meldung:

2014.04.24 08:49:07 1: Cannot open database configuration file /opt/fhem/contrib/dblog/db.conf.
2014.04.24 08:49:07 1: define myDbLog myDbLog DbLog /opt/fhem/contrib/dblog/db.conf .*:.*: Can't connect to database.


Ein version zeigt mir dies:

# $Id: 93_DbLog.pm 5612 2014-04-23 18:12:07Z tobiasfaust $

Diese Datei aus einem Backup verbindet wieder erfolgreich:

# $Id: 93_DbLog.pm 5348 2014-03-28 09:38:23Z tobiasfaust $

maxritti

Ich vergass zu schreiben:

Ein "configdb filemove ./contrib/dblog/db.conf" habe ich ausgeführt. Danach ist die db.conf auch nicht mehr im Filesystem.
Dennoch die Fehlermeldung.


betateilchen


  • ein filemove sollte man nur ausführen, wenn man verstanden hat, was man tut.
  • ./contrib/blablabla ist generell kein Pfad, aus dem man produktiv irgendwelche Daten nehmen sollte. Die in contrib vorhandenen Dateien sollte man immer in den fhem Hauptzweig kopieren und dort verwenden.
  • die Pfadangaben die Du bei configdb fileimport (bzw. filemove) verwendest müssen mit den Pfadangaben, die Du im define Deines DbLog verwendest, übereinstimmen.

Lösungsweg:

define myDbLog myDbLog DbLog ./contrib/dblog/db.conf .*:.*

Danach prüfen, ob es funktioniert. WENN es funktioniert (und NUR DANN!) ein save config.

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

maxritti

Nach Deinem 2. Hinweis habe ich mal ein "delete myDbLog" gemacht, dann die db.conf in den Hauptzweig von Fhem verschoben.
Gebe ich dann deinen Lösungsvorschlag (mit dem Pfad /opt/fhem/db.conf) ein kommt die Meldung:

Unknown module myDbLog

Ist ja eigentlich auch logisch denke ich. Denn 2 x myDbLog in dem define?

Wenn ich nun ein define myDbLog DbLog /opt/fhem/db.conf .*:.* mache, verdoppelt der mir im Log wieder das myDbLog.

2014.04.24 13:23:10 1: Cannot open database configuration file /opt/fhem/db.conf.
2014.04.24 13:23:10 1: define myDbLog myDbLog DbLog /opt/fhem/db.conf .*:.*: Can't connect to database.


Die erste Zeile, dass er die db.conf nicht findet verstehe ich auch nicht ganz, denn die kann vom fhem user gelesen und bearbeitet werden.

fhem@tdfsr178193:~/contrib/dblog$ cat /opt/fhem/db.conf
#
# database configuration file
#
#
## for MySQL
################################################################
%dbconfig= (
connection => "mysql:database=DEV-fhem;host=192.168.178.192;port=3306",
user => "fhemsql",
password => "...",
);
################################################################
#
## for PostgreSQL
################################################################
#%dbconfig= (
#        connection => "Pg:database=fhem;host=localhost",
#        user => "fhemuser",
#        password => "fhempassword"
#);
################################################################
#
## for SQLite (username and password stay empty for SQLite)
################################################################
#%dbconfig= (
#        connection => "SQLite:dbname=/opt/fhem/fhem.db",
#        user => "",
#        password => ""
#);
################################################################


Nehme ich nun das 93_DbLog.pm von 28.03.2014 kann ich mein DbLog wieder ohne Fehler definieren.

Habe ich meine Config DB nun schon unbrauchbar gemacht?



betateilchen

Zitat von: maxritti am 24 April 2014, 13:32:14
Habe ich meine Config DB nun schon unbrauchbar gemacht?

Du hast einfach nur treudoof meinen Lösungsvorschlag per copy&paste übernommen, obwohl Du sogar selbst den Fehler darin schon erkannt hast:

Zitat2 x myDbLog in dem define?

Es muss natürlich heißen:

define myDbLog DbLog ./contrib/dblog/db.conf .*:.*

Und weisst Du auch, woher der Fehler kam?

Aus DEINEM ersten Beitrag hier

Zitat2014.04.24 08:49:07 1: define myDbLog myDbLog DbLog /opt/fhem/contrib/dblog/db.conf .*:.*: Can't connect to database.

aus dem ich die Zeile genauso treudoof kopiert und einfach nur die Pfadangabe geändert habe  :P
Du hattest also den Fehler bei Dir schon heute morgen im System.

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

maxritti

Na das hilft ja nun ungemeine weiter.

Zumal es ja bis gestern vor dem Update noch lief und dies auch mit der "alten" 93_DbLog.pm noch funktioniert.

Hast Du denn eine Idee, warum das verdoppelt wird?
Denn wie Du siehst, gebe ich es nur einfach ein und es wird dann doppelt im Log angegeben.

betateilchen

Mach mal bitte ein "configdb filelist" und ein "configdb list <dbLogName>" und poste beide Ergebnisse hier.


-----------------------
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 24 April 2014, 14:14:01
Denn wie Du siehst, gebe ich es nur einfach ein und es wird dann doppelt im Log angegeben.

das sehe ich nirgends, ich muss das glauben, was Du hier schreibst ;)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

maxritti

#8
configdb filelist

Files found in database:
------------------------------------------------------------


configdb list myDblog

search result for device: myDbLog in version: 0
--------------------------------------------------------------------------------


Rührt wohl daher, dass ich sowohl ein

configdb filedelete ./contrib/dblog/db.conf

als auch ein

configdb filedelete ./db.conf

eingegeben habe um eine so wie ich dachte konsistente Konfiguration zu erhalten, wo alles über die im Verzeichnis befindliche db.conf läuft.

Nur noch mal um sicher zu gehen:

# $Id: 93_DbLog.pm 5348 2014-03-28 09:38:23Z tobiasfaust $

ist derzeit im Einsatz, da ich mit der neuen Version ein define myDbLog DbLog .... gar nicht mehr ans fliegen bekomme.

betateilchen

Weißt Du, was mich grade massiv stört?

Du hast ein Problem und erwartest hier Hilfe - die ich Dir gerne geben möchte.
Aber gleichzeitig wurschtelst Du irgenwas bei Dir auf dem System rum, von dem Du hoffst/glaubst/vermutest, dass es irgendwas nützen könnte.

So geht das nicht - so kommen wir nicht weiter!

Einfache Regel:

Du fragst - dann wartest Du auf meine Antwort und tust solange NICHTS.
Ich frage - dann warte ich auf Deine Antwort.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitatconfigdb list myDblog

Code:
search result for device: myDbLog in version: 0
--------------------------------------------------------------------------------

Rührt wohl daher, dass ich

Das rührt daher, dass Du irgenwann mal ein "save config" gemacht hast, obwohl das DbLog Device überhaupt nicht vorhanden war. Ein nicht vorhandenes Device kann auch nicht gespeichert werden.


  • Aktualisiere die Datei 93_DbLog.pm auf den aktuellen Stand von gestern abend.
  • Lege Dir in ./FHEM eine Konfigurationsdatei mit den richtigen Verbindungsdaten zu Deiner Datenbank an
  • Importiere diese Datei in die Datenbank mit "configdb fileimport <datenbankdatei>"
  • Starte Dein fhem jetzt neu.
  • Definiere das DbLog Device unter Angabe der Konfigurationsdatei einschließlich der gleichen Pfadangabe, die Du beim fileimport verwendet hast
  • Halte Dich exakt an die angegebene Reihenfolge der vorgenannten fünf Schritte.

Und dann mach nochmal ein "configdb filelist" und ein "configdb list <dbLogName>" und poste beide Ergebnisse hier - sofern der Fehler dann immer noch besteht.
-----------------------
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 24 April 2014, 14:42:57
Weißt Du, was mich grade massiv stört?

Du hast ein Problem und erwartest hier Hilfe - die ich Dir gerne geben möchte.
Aber gleichzeitig wurschtelst Du irgenwas bei Dir auf dem System rum, von dem Du hoffst/glaubst/vermutest, dass es irgendwas nützen könnte.

So geht das nicht - so kommen wir nicht weiter!

Einfache Regel:

Du fragst - dann wartest Du auf meine Antwort und tust solange NICHTS.
Ich frage - dann warte ich auf Deine Antwort.


Okay.
So manches Gewitter reinigt mal die Luft :)

Allerdings erwarten tue ich hier gar nichts. Hoffen, dass jemand ein offenes Ohr für die Probleme hat, wäre da treffender.
Ich weiss, dass hier viele die Freizeit opfern um FHEM weiter zu entwickeln und anderen zu helfen.
Dafür mal ganz herzlichen Dank an dieser Stelle.

Nun aber back to topic:

1. Aktualisiere die Datei 93_DbLog.pm auf den aktuellen Stand von gestern abend.

Das ist dann diese

# $Id: 93_DbLog.pm 5348 2014-03-28 09:38:23Z tobiasfaust $

2. Lege Dir in ./FHEM eine Konfigurationsdatei mit den richtigen Verbindungsdaten zu Deiner Datenbank an

Nur um sicherzugehen, damit wir das gleiche meinen.
./FHEM ist dann dein fhem Hauptzweig also /opt/fhem/FHEM?
Weil die urspünglich existierende fhem.cfg und configDB.conf liegen nicht dort sondern unter /opt/fhem/


betateilchen

Zitat von: maxritti am 24 April 2014, 17:07:02
# $Id: 93_DbLog.pm 5348 2014-03-28 09:38:23Z tobiasfaust $

Nein. Die aktuelle Version, ist die von gestern abend - wie schon mehrfach gesagt.

# $Id: 93_DbLog.pm 5612 2014-04-23 18:12:07Z tobiasfaust $

Das ist genau die Version, die auch schon den ganzen Tag in Deinem Thread-Titel stehen hast.

2. Lege Dir in ./FHEM eine Konfigurationsdatei mit den richtigen Verbindungsdaten zu Deiner Datenbank an

Zitat von: maxritti am 24 April 2014, 17:07:02
Nur um sicherzugehen, damit wir das gleiche meinen.
./FHEM ist dann dein fhem Hauptzweig also /opt/fhem/FHEM?

Ja.

Zitat von: maxritti am 24 April 2014, 17:07:02
Weil die urspünglich existierende fhem.cfg und configDB.conf liegen nicht dort sondern unter /opt/fhem/

mach doch bitte einfach EINMAL was man Dir hier als Hilfe anbietet. Es geht ausschließlich darum, dass ICH eine Basis habe, von der ich weiterhin ausgehen, wenn wir hier weiterdiskutieren. Ich kann doch nicht auf Deinen Monitor schauen, um zu sehen, was Du wirklich tust - deshalb muss ich ich darauf verlassen, dass Du genau DAS getan hast, was ich Dir empfohlen habe.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

maxritti

#13
1. Aktualisiere die Datei 93_DbLog.pm auf den aktuellen Stand von gestern abend.

Erledigt.

2. Lege Dir in ./FHEM eine Konfigurationsdatei mit den richtigen Verbindungsdaten zu Deiner Datenbank an

Erledigt.

#
# database configuration file
#
#
## for MySQL
################################################################
%dbconfig= (
connection => "mysql:database=DEV-fhem;host=192.168.178.192;port=3306",
user => "fhemuser",
password => "...",
);
################################################################
#
## for PostgreSQL
################################################################
#%dbconfig= (
#        connection => "Pg:database=fhem;host=localhost",
#        user => "fhemuser",
#        password => "fhempassword"
#);
################################################################
#
## for SQLite (username and password stay empty for SQLite)
################################################################
#%dbconfig= (
#        connection => "SQLite:dbname=/opt/fhem/fhem.db",
#        user => "",
#        password => ""
#);
################################################################


3. Importiere diese Datei in die Datenbank mit "configdb fileimport <datenbankdatei>"

Als Ergebnis sagt FHEM mir dies:

30 lines written from file ./FHEM/db.conf to database

4. Starte Dein fhem jetzt neu.

Erledigt.

5. Definiere das DbLog Device unter Angabe der Konfigurationsdatei einschließlich der gleichen Pfadangabe, die Du beim fileimport verwendet hast

Liefert mir dies im Logfile von FHEM und FHEM ist nicht mehr erreichbar.

2014.04.24 19:59:30 3: Unknown dbmodel type in configuration file ./FHEM/db.conf.
2014.04.24 19:59:30 3: Only Mysql, Postgresql, Oracle, SQLite are fully supported.
2014.04.24 19:59:30 3: It may cause SQL-Erros during generating plots.
2014.04.24 19:59:30 3: Connecting to database  with user


6. Halte Dich exakt an die angegebene Reihenfolge der vorgenannten fünf Schritte.

Habe ich hoffentlich gemacht.

betateilchen

nix vergessen?

Zitat von: betateilchen am 24 April 2014, 14:49:23
Und dann mach nochmal ein "configdb filelist" und ein "configdb list <dbLogName>" und poste beide Ergebnisse hier - sofern der Fehler dann immer noch besteht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!