FHEM Forum

FHEM => Automatisierung => Thema gestartet von: PNinBB am 13 August 2017, 18:20:29

Titel: Problem mit DbLog
Beitrag von: PNinBB am 13 August 2017, 18:20:29
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 ?
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
Titel: Antw:Problem mit DbLog
Beitrag von: rubbertail am 13 August 2017, 18:30:41
Mal versucht, beim def den Pfad zur db.conf mit a zugeben?
Titel: Antw:Problem mit DbLog
Beitrag von: PNinBB am 13 August 2017, 19:11:12
@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 !
Titel: Problem mit DbLog
Beitrag von: rubbertail am 13 August 2017, 20:27:03
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.
Titel: Antw:Problem mit DbLog
Beitrag von: DS_Starter am 13 August 2017, 21:30:12
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
Titel: Antw:Problem mit DbLog
Beitrag von: PNinBB am 14 August 2017, 07:50:18
@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
Titel: Antw:Problem mit DbLog
Beitrag von: betateilchen am 14 August 2017, 09:23:40
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
Titel: Antw:Problem mit DbLog
Beitrag von: DS_Starter am 14 August 2017, 10:35:40
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
Titel: Antw:Problem mit DbLog
Beitrag von: betateilchen am 14 August 2017, 12:04:55
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)
Titel: Antw:Problem mit DbLog
Beitrag von: PNinBB am 17 August 2017, 11:30:49
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" !
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.
Titel: Antw:Problem mit DbLog
Beitrag von: DS_Starter am 17 August 2017, 13:05:33
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
Titel: Antw:Problem mit DbLog
Beitrag von: PNinBB am 17 August 2017, 16:15:19
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
Titel: Antw:Problem mit DbLog
Beitrag von: DS_Starter am 17 August 2017, 16:19:22
Aber im Logfile steht jetzt nicht mehr drin dass DB.conf oder Teile davon nicht gelesen werden konnten, oder ?
Titel: Antw:Problem mit DbLog
Beitrag von: PNinBB am 17 August 2017, 16:43:50
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
Titel: Antw:Problem mit DbLog
Beitrag von: DS_Starter am 17 August 2017, 16:48:17
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 ?
Titel: Antw:Problem mit DbLog
Beitrag von: PNinBB am 17 August 2017, 17:09:46
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 ?
Titel: Antw:Problem mit DbLog
Beitrag von: DS_Starter am 17 August 2017, 18:01:42
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
Titel: Antw:Problem mit DbLog
Beitrag von: PNinBB am 17 August 2017, 18:33:44
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.
Titel: Antw:Problem mit DbLog
Beitrag von: PNinBB am 17 August 2017, 19:32:32
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
Titel: Antw:Problem mit DbLog
Beitrag von: DS_Starter am 17 August 2017, 19:44:51
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.
Titel: Antw:Problem mit DbLog
Beitrag von: betateilchen am 18 August 2017, 15:35:51
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.
Titel: [Gelöst] Antw:Problem mit DbLog
Beitrag von: PNinBB am 18 August 2017, 16:30:32
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