Problem mit DbLog

Begonnen von PNinBB, 13 August 2017, 18:20:29

Vorheriges Thema - Nächstes Thema

PNinBB

Nach Umstieg von fhem.cfg auf configDB (ging fast ohne Probleme und läuft seit 3 Tagen) wollte ich nun die FileLogs auch nach DbLog überführen. Doch da "klemmt noch die Säge"!
Was habe ich gemacht, nach dem ich viele Beiträge im Forum und auch das Wiki gelesen habe ?

  • Die im Verzeichnis ..contrib/dblog abgelegten Skripte verwendet, d.h. genauer die DB eingerichtet (db_create_mysql.sql) und natürlich entsprechende Werte für user und password gesetzt.
  • Mittels 'mysql' alles kontrolliert: DB ist mit der geforderten Struktur eingerichtet, user 'fhemuser' hat Zugriff, etc.
  • Den File db.conf in das fhem-Verzeichnis kopiert und entsprechende Einträge (DB, user und password) vorgenommen. Ich habe es auch einmal alles neu angelegt (ohne copy and paste, gemäß eines Hinweises im Forum). Rechte sind wie vorgeschrieben (644, fhem,dialout).
  • Mittels 'define myDbLog DbLog db.conf .*:.*' das Device definiert.
Das Ergebnis ist: die Device-Definition wird ausgeführt.
Allerdings erscheint im Logfile die Meldung:
DbLog myDbLog - Error while reading db.conf: 'Error on reading db.conf from database!'

Für mich bedeutet das, dass aus der Datenbank 'db.conf' gelesen werden soll, was wohl nicht funktioniert !
Aber: wie soll es denn dorthin kommen und wer übernimmt es ? Die DB ist ja leer, wie ich es auch mit dem 'mysql'-Progrmm sehen konnte.
Eine Prüfung mit 'set <name> configCheck' liefert die Aussage:
Result of connection check
Connection to database was not successful.
Recommendation: Plese see logfile for further information.

Also ist eigentlich alles klar: keine Verbindung zur DB !
Vermutlich verstehe ich etwas noch nicht richtig.
Für jeden Tipp bin ich natürlich sehr dankbar.
Schönen Sonntagabend noch !
Peter
Raspi 4B + RaZberry2 (Deb 10), FritzBox 7490;
AEOTec: KeyFobGen5: 1x;
Danfoss: Living Connect 2.51: 3x;
Fibaro: FGK: 10x: 3x; FGBS: 001: 8x, 222: 1x; FGMS001: 2x; FGR: 222: 3x, 223: 2x; FGRGBWM-441: 1x; FGBS: 222: 2x, 223: 2x,224: 1x;
Philio: PAN06-1A: 3x;

rubbertail

Mal versucht, beim def den Pfad zur db.conf mit a zugeben?
FHEM auf Raspi, CUL433, CUL868, RFXTRX433e, CULCuBE
FRITZ: Fritzbox7590AX, 6xFritzDECT301, 10xFritzDECT200, FritzRepeater 6000
MAX!: Fensterkontakte
netatmo: Wetterstation & Thermostat
Milights, IT, Withings, HUE

PNinBB

@rubbertail:
Antwort: ja, auch mit verschiedenen Orten.
Merkwürdig finde ich - aber vielleicht hat es mit diesem Problem nichts zu tun - : nach dem Umstieg auf configDB ist der Eintrag ' modpath' in der DB leer ?!
Und noch eine Ergänzung: Die configDB befindet sich in der gleichen DB, eben nur unterschiedliche Tabellen.
Eigentlich müsste doch wohl beides gehen. ?!
Zumindest kann ich ja die logDB mittels mysql am Prompt erreichen !
Raspi 4B + RaZberry2 (Deb 10), FritzBox 7490;
AEOTec: KeyFobGen5: 1x;
Danfoss: Living Connect 2.51: 3x;
Fibaro: FGK: 10x: 3x; FGBS: 001: 8x, 222: 1x; FGMS001: 2x; FGR: 222: 3x, 223: 2x; FGRGBWM-441: 1x; FGBS: 222: 2x, 223: 2x,224: 1x;
Philio: PAN06-1A: 3x;

rubbertail

#3
Und wieso dieselbe Datenbank? Wieso nicht wie vorgesehen zwei?

Soweit ich weiss (grad nicht am Rechner, daher nicht sicher) werden beide von zweierlei Personen betreut - und haben unterschiedliche Optimierungen etc.
FHEM auf Raspi, CUL433, CUL868, RFXTRX433e, CULCuBE
FRITZ: Fritzbox7590AX, 6xFritzDECT301, 10xFritzDECT200, FritzRepeater 6000
MAX!: Fensterkontakte
netatmo: Wetterstation & Thermostat
Milights, IT, Withings, HUE

DS_Starter

#4
Hallo zusammen,

das Problem liegt zunächst daran, dass mit der Umstellung auf configDB die Konfiguration db.conf, die eigentlich im Filesystem liegt, aus der configDB Datenbank gelesen werden soll. Das klappt momentan noch nicht.
Der Titel des Thread ist etwas irreführend, da der Bezug zu configDB nicht ersichtlich ist und der Maintainer der configDB, betateilchen, dies eventuell nicht liest.

Peter hat schon richtig erkannt ->

ZitatFür mich bedeutet das, dass aus der Datenbank 'db.conf' gelesen werden soll, was wohl nicht funktioniert !
Aber: wie soll es denn dorthin kommen und wer übernimmt es ?

Der Supportbereich von configDB ist in "Sonstiges".
Ich würde empfehlen dort nochmal nachzufragen wie in diesem Fall zu verfahren ist bzw. vorher nach evtl. schon vorhandenen Lösungen zu suchen.

EDIT: wie rubbertail geschrieben hat, zwei DBs sind sicherlich die bessere Vorgehensweise. Möglicherweise gibt es ansonsten Konflikte  (kann ich aber mangels eigener Erfahrung mit configDB nicht eindeutig darlegen).

VG,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

PNinBB

@rubbertail und DS_Starter:
Bezüglich meiner Aussage zu einer DB und zwei Tabellen war ich oberflächlich mit der Bezeichnung !
Es sind  natürlich zwei Datenbanken (auf meinem Server sogar noch mehrere  andere) mit den entsprechenden Tabellen, wie von den Entwicklern vorgesehen ! Daran habe ich nichts geändert.
Ich bitte um mildernde Umstände !
Danke auch für den Tipp, mich im Forum unter "Sonstiges" zu melden.
Schöne Woche !
Peter
Raspi 4B + RaZberry2 (Deb 10), FritzBox 7490;
AEOTec: KeyFobGen5: 1x;
Danfoss: Living Connect 2.51: 3x;
Fibaro: FGK: 10x: 3x; FGBS: 001: 8x, 222: 1x; FGMS001: 2x; FGR: 222: 3x, 223: 2x; FGRGBWM-441: 1x; FGBS: 222: 2x, 223: 2x,224: 1x;
Philio: PAN06-1A: 3x;

betateilchen

Zitat von: DS_Starter am 13 August 2017, 21:30:12
wie in diesem Fall zu verfahren ist bzw. vorher nach evtl. schon vorhandenen Lösungen zu suchen.

steht alles in der Doku zu configDB :)

Zitat
Interaction with other modules

Currently the fhem modules

02_RSS.pm
55_InfoPanel.pm
91_eventTypes
93_DbLog.pm
95_holiday.pm
98_SVG.pm

will use configDB to read their configuration data from database
instead of formerly used configuration files inside the filesystem.

This requires you to import your configuration files from filesystem into database.

Example:
configdb fileimport FHEM/nrw.holiday
configdb fileimport FHEM/myrss.layout
configdb fileimport www/gplot/xyz.gplot
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

DS_Starter

Zitatsteht alles in der Doku zu configDB :)
Ertappt ....  :)

@PNinBB, ein "help configDB" zeigt gleich am Anfang die Lösung deines Problems. Melde dich gerne wieder falls du mit der Einrichtung von DbLog selbst auf Probleme stoßen solltest.

viele Grüße
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

betateilchen

Zitat von: PNinBB am 13 August 2017, 18:20:29
Was habe ich gemacht, nach dem ich viele Beiträge im Forum und auch das Wiki gelesen habe ?

Tipp: Man sollte einfach die vom Modulautor erstellte Modul-Dokumentation lesen, anstatt sich auf Sekundärliteratur zu verlassen  8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

PNinBB

#9
Da ich für 3 Tage unterwegs war, geht es erst heute weiter.
Zunachst besten Dank für die Hinweise.
Ich bin aber noch nicht "durch" !

  • Ich habe die entsprechend angepasste (s.u.) db.conf mittels 'configdb fileimport <PfadZurDatei>/db.conf' in die configDB geschrieben.
  • Sowohl mittels 'phpMyAdmin' als auch per commandline 'mysql' finde ich den Eintrag (siehe Bild).
  • Es gibt aber keine Verbindung zur Datenbank, nachdem ich das 'device' angelegt habe.
Hier meine db.conf:
# 13.08.2017: database configuration file for MySQL
#
###################################################
#
%dbconfig = (
connection => mysql:database=fhem;host=localhost;port=3306",
user => "fhemuser",
password => "xxxxxxxxxxx",
utf => 1
);


Nachfolgend die Bilder zu den Einträgen in der Datenbank und zur Gerätedefinition.
Besten Dank für Hinweise.
Peter
Nachtrag: der Nutzer 'fhemuser' ist angelegt und hat auch (erst mal) alle Rechte.
Raspi 4B + RaZberry2 (Deb 10), FritzBox 7490;
AEOTec: KeyFobGen5: 1x;
Danfoss: Living Connect 2.51: 3x;
Fibaro: FGK: 10x: 3x; FGBS: 001: 8x, 222: 1x; FGMS001: 2x; FGR: 222: 3x, 223: 2x; FGRGBWM-441: 1x; FGBS: 222: 2x, 223: 2x,224: 1x;
Philio: PAN06-1A: 3x;

DS_Starter

#10
Was sagt configCheck jetzt ?
Wie, mit welchem Editor, hast du db.conf erstellt ?
Hast du die Einträge in db.conf mit Cut&Paste erstellt oder eingetippt ?

Edit: ich sehe gerade dass wohl in "connection" vor mysql ein " fehlt !

Grüße
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

PNinBB

ZitatWas sagt configCheck jetzt ?
Unverändert: keine Verbindung !
ZitatWie, mit welchem Editor, hast du db.conf erstellt ?
Mit nano, auch 'per Hand' !
Ja und das fehlende '"' war es - merkwürdigerweise - auch nicht.
Ich baue jetzt ein kleine, von fhem unabhängige Perl-Routine und versuche so eine Verbindung zur Datenbank herzustellen.
Ich melde mich wieder.
Peter
Raspi 4B + RaZberry2 (Deb 10), FritzBox 7490;
AEOTec: KeyFobGen5: 1x;
Danfoss: Living Connect 2.51: 3x;
Fibaro: FGK: 10x: 3x; FGBS: 001: 8x, 222: 1x; FGMS001: 2x; FGR: 222: 3x, 223: 2x; FGRGBWM-441: 1x; FGBS: 222: 2x, 223: 2x,224: 1x;
Philio: PAN06-1A: 3x;

DS_Starter

Aber im Logfile steht jetzt nicht mehr drin dass DB.conf oder Teile davon nicht gelesen werden konnten, oder ?
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

PNinBB

Die Logfile-Einträge sind unverändert.
Aber, mich verwirrt jetzt dein
ZitatAber im Logfile steht jetzt nicht mehr drin dass DB.conf oder Teile davon nicht gelesen werden konnten, oder ?
Wird 'db.conf' mit Großbuchstaben geschrieben ?
Mich wundert auch, dass er das fehlende '"' nicht beanstandet hat !?
Demzufolge müsste das Problem doch vorher liegen !?
Peter
Raspi 4B + RaZberry2 (Deb 10), FritzBox 7490;
AEOTec: KeyFobGen5: 1x;
Danfoss: Living Connect 2.51: 3x;
Fibaro: FGK: 10x: 3x; FGBS: 001: 8x, 222: 1x; FGMS001: 2x; FGR: 222: 3x, 223: 2x; FGRGBWM-441: 1x; FGBS: 222: 2x, 223: 2x,224: 1x;
Philio: PAN06-1A: 3x;

DS_Starter

Nicht verwirren lassen. Das ist die unsägliche Wortkorrektur auf meinem Mobilteil. Wie du es schreibst ist eigentlich egal, muss nur mit der Angabe im DEF passen.

Was heißt das jetzt, wird immer noch ausgeschrieben dass db.conf nicht gefunden wird ?
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

PNinBB

#15
Im Logfile steht unverändert:
2017.08.17 17:02:07.003 1: DbLog myDbLog - Error while reading db.conf: 'Error on reading db.conf from database!'

Mit einem kleinen Perlprogramm kann ich problemlos aus der DB lesen. Ich habe das Programmstück aus meinen anderen Perlroutinen entnommen.
Die entscheidenden Zeilen sind:
  my $dbh = DBI->connect("DBI:mysql:database=$DATABASE", $DB_USER, $DB_PASSWD);
  my $sql = "SELECT * FROM `fhemb64filesave`";
  my $sth = $dbh->prepare($sql);
  if (!($sth->execute))
    {                                            # Fehler bei DB-EXECUTE
    print "Datenbankfehler\n";
    }
  while (my @row = $sth->fetchrow_array())
   {
    print "Datenbankinhalt: |$row[1]|\n";
   }
  $dbh->disconnect();

Der Inhalt ist nur schwer nachprüfbar, da alles binär ist !?
Geliefert wird:
Datenbankinhalt: |JWRiY29uZmlnID0gKAogY29ubmVjdGlvbiA9PiAibXlzcWw6ZGF0YWJhc2U9ZmhlbTtob3N0PWxv
Y2FsaG9zdDtwb3J0PTMzMDYiLAogdXNlciA9PiAiZmhlbXVzZXIiLAogcGFzc3dvcmQgPT4gInNR
bCFCeVJ1RyIsCiB1dGYgPT4gIjEiCik7Cgo=

Peter
1. Nachtrag: Dieser Inhalt ist identisch mit dem, den 'phpMyAdmin' zeigt.
2. Nachtrag: Der Fehler tritt auf unabhängig davon, ob in 'configDB' die 'db.conf' vorhanden ist, oder nicht. Es muss demzufolge wohl schon bei dem 'connect' zu Bruch gehen ?
Raspi 4B + RaZberry2 (Deb 10), FritzBox 7490;
AEOTec: KeyFobGen5: 1x;
Danfoss: Living Connect 2.51: 3x;
Fibaro: FGK: 10x: 3x; FGBS: 001: 8x, 222: 1x; FGMS001: 2x; FGR: 222: 3x, 223: 2x; FGRGBWM-441: 1x; FGBS: 222: 2x, 223: 2x,224: 1x;
Philio: PAN06-1A: 3x;

DS_Starter

Zitat2017.08.17 17:02:07.003 1: DbLog myDbLog - Error while reading db.conf: 'Error on reading db.conf from database!'

Das ist das entscheidende. Das Lesen der Konfiguration aus der configDB klappt bei dir noch nicht so wie gewünscht.
Ich habe mal im Modul configDB.pm nachgeschaut. Die Meldung "Error on reading db.conf from database!" wird dort generiert und zurück gemeldet.
An der Stelle kann betateilchen sicher wieder weiterhelfen ....

Grüße
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

PNinBB

Ich habe in der Zwischenzeit einmal ziemlichen Unsinn in die db.conf geschrieben, beispielsweise total unsinnigen 'host', 'user' oder 'passwd'.
Soweit kommt es offensichtlich garnicht; es wird immer dieselbe Fehlermdelung ausgegeben.
Raspi 4B + RaZberry2 (Deb 10), FritzBox 7490;
AEOTec: KeyFobGen5: 1x;
Danfoss: Living Connect 2.51: 3x;
Fibaro: FGK: 10x: 3x; FGBS: 001: 8x, 222: 1x; FGMS001: 2x; FGR: 222: 3x, 223: 2x; FGRGBWM-441: 1x; FGBS: 222: 2x, 223: 2x,224: 1x;
Philio: PAN06-1A: 3x;

PNinBB

Es scheint komplexer zu sein, denn die Fehlermeldung scheint aus zwei Teilen zu bestehen.2017.08.17 17:02:07.003 1: DbLog myDbLog - Error while reading db.conf: 'Error on reading db.conf from database!'
Error while reading ... :
wird von # $Id: 93_DbLog.pm 14900 2017-08-14 18:53:19Z DS_Starter $
in der Zeile 255 erzeugt.
Dagegen wird Error on reading ... from database!
von # $Id: configDB.pm 14845 2017-08-04 13:15:20Z betateilchen $ erzeugt.
Nun bin ich zu wenig Profi, um einzuschätzen, ob das weiter hilft !?
Peter
Raspi 4B + RaZberry2 (Deb 10), FritzBox 7490;
AEOTec: KeyFobGen5: 1x;
Danfoss: Living Connect 2.51: 3x;
Fibaro: FGK: 10x: 3x; FGBS: 001: 8x, 222: 1x; FGMS001: 2x; FGR: 222: 3x, 223: 2x; FGRGBWM-441: 1x; FGBS: 222: 2x, 223: 2x,224: 1x;
Philio: PAN06-1A: 3x;

DS_Starter

Ja. "'Error on reading db.conf from database!' " ist ein Rückkehrcode aus der Lesefunktion in configDB der in DbLog dann angezeigt wird mit "Error while reading ... :".
Also configDB meldet das das Lesen nicht erfolgreich war und gibt dieses an DbLog zurück. Darauss erfolgt dann die Ausgabe.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

betateilchen

Können wir uns bitte mal festlegen, in welchem der beiden Threads zu diesem Problem wir weiter diskutieren wollen? Ich habe keine Lust, alles zweimal schreiben 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!

PNinBB

In der Zwischenzeit hatte ich es zum Laufen gebracht; die Fehlerursache war genau an dieser Stelle.
Ich hatte bei 'configdb fileimport db.conf' und der Gerätedefition ein kleine Differenz in den Pfadangaben.
Einmal richtig gemacht, gleich ging es!
Aber dabei habe ich viel in fhem.pl, configDB.pm und 93_DbLog.pm gelernt.
Auf jeden Fall: Danke für die Hinweise !
Peter
Raspi 4B + RaZberry2 (Deb 10), FritzBox 7490;
AEOTec: KeyFobGen5: 1x;
Danfoss: Living Connect 2.51: 3x;
Fibaro: FGK: 10x: 3x; FGBS: 001: 8x, 222: 1x; FGMS001: 2x; FGR: 222: 3x, 223: 2x; FGRGBWM-441: 1x; FGBS: 222: 2x, 223: 2x,224: 1x;
Philio: PAN06-1A: 3x;