FHEM Forum

FHEM - Hardware => Server - Linux => Thema gestartet von: blubbla am 12 Januar 2019, 20:59:20

Titel: MySQL Datenbank fürs logging nutzen
Beitrag von: blubbla am 12 Januar 2019, 20:59:20
Hallo,

ich möchte gerne meine Messdaten in einer MySQL Datenbank speichern. Hierfür habe ich folgende Anleitungen verwendet:
http://www.linuxblognf.de/fhem-und-dblog-mysql/ (http://www.linuxblognf.de/fhem-und-dblog-mysql/)
und
https://www.youtube.com/watch?v=TOy9eP1YR98&t=0s&list=PLcXIjZgo0R3CyA42uH6oOlHCEohL4EZTB&index=10 (https://www.youtube.com/watch?v=TOy9eP1YR98&t=0s&list=PLcXIjZgo0R3CyA42uH6oOlHCEohL4EZTB&index=10)

Ich bekomme das Logging Device
define DBLogging DbLog /opt/fhem/contrib/dblog/db.conf .*:.* jedoch nicht angelegt. Zumindest sehe ich keinen Eintrag im WebGUI von fhem. Es sind ebenfalls keine Einträge in die Datenbank eingefügt worden.
Woran kann das liegen?
Vielen Dank
Titel: Antw:MySQL Datenbank fürs logging nutzen
Beitrag von: Wernieman am 12 Januar 2019, 21:47:22
1. Definitiv keine Fehlermeldung?
2. Auch kein Eintrag im "Raum" Everything?
Titel: Antw:MySQL Datenbank fürs logging nutzen
Beitrag von: blubbla am 12 Januar 2019, 22:28:20
Nein ich habe keine Fehlermeldung angezeigt bekommen. In den Logs
eventTypes.txt und fhem.save
auch nichts was ich dem zuordnen würde.
Auch im Raum Everything ist nichts mit den entsprechenden Namen. Den
DBLogging_Reopen zu folgendem Code hat er mir aber erstellt.
define DBLogging_Reopen at +*00:15:00 set DBLogging reopen
Titel: Antw:MySQL Datenbank fürs logging nutzen
Beitrag von: Wernieman am 13 Januar 2019, 10:10:59
Was sagt denn ein
list DBLogging
Titel: Antw:MySQL Datenbank fürs logging nutzen
Beitrag von: blubbla am 13 Januar 2019, 11:18:25
list DBLogging
No device named DBLogging found

In der Config ist es aber eingetragen:
define DBLogging DbLog /opt/fhem/contrib/dblog/db.conf .*:.*
attr DBLogging DbLogType Current/History
define DBLogging_Reopen at +*00:15:00 set DBLogging reopen
define logdb DbLog ./db.conf .*:.*
Titel: Antw:MySQL Datenbank fürs logging nutzen
Beitrag von: Wernieman am 13 Januar 2019, 19:03:47
Mal simple gefragt:
Fhem reboot?
Titel: Antw:MySQL Datenbank fürs logging nutzen
Beitrag von: blubbla am 13 Januar 2019, 19:43:51
Ja schon zig mal.
Titel: Antw:MySQL Datenbank fürs logging nutzen
Beitrag von: Wernieman am 13 Januar 2019, 20:34:47
Dann müssten FHEM-DB Spezialisten ran ...
Titel: Antw:MySQL Datenbank fürs logging nutzen
Beitrag von: sledge am 14 Januar 2019, 08:40:17
Mal die ganz einfachen Fragen gestellt - und nein, ich habe mir das HowTo nicht angeschaut, sondern bin "nur" nach der Commandref vorgegangen, als ich vor einigen Jahren dblog eingerichtet habe

1. DB-Skripte ausgeführt wie in der Commandref beschrieben? Mal mit HeidiSQL nachgeschaut, ob die Tabellen in der MySQL.Datenbank so angelegt wurden?
2. Die relevante Log-Datei lautet  nicht fhem.save oder eventTypes. Schonmal unter ".../fhem/logs/fhem-2019-01.log" geschaut? Oder im FHEM-Menu unter Logfile?
3. Dein Device wurde nicht angelegt - sieht man ja eindeutig. Wie hast du das Device angelegt?

Die Vermutung liegt nahe, dass Du es nicht über die Webschnittstelle angelegt hast, sondern direkt in die fhem.cfg eingetragen hast? Somit bleiben Dir die Fehlermeldungen natürlich verborgen.

Also bitte die Antworten zu 1-3 liefern.

Die nächste Überprüfung - sollte es das Device dann endlich geben:

set <name> configCheck




Titel: Antw:MySQL Datenbank fürs logging nutzen
Beitrag von: blubbla am 14 Januar 2019, 20:10:14
Hi,
Zu Punkt
1:
Ja ich habe die Scripte nach der Anleitung ausgeführt. Und mit MySQL Workbench geprüft ob diese angelegt wurde. Dies ist der Fall.
2:
In den "Normalen" Logs sehe ich nichts was auf das Problem hindeutet. Auch nicht nach direkter Eingabe in der Webkonsole.
3:
Ja ich habe es direkt in die Config-Datei eingetragen. Und dann den FHEM neu gestartet. Wenn ich den Befehl über die Webkonsole eintippe bekomme ich folgenden Fehler angezeigt: could not read connection
Titel: Antw:MySQL Datenbank fürs logging nutzen
Beitrag von: sledge am 14 Januar 2019, 20:56:35
Zitat von: blubbla am 14 Januar 2019, 20:10:14
Hi,
Zu Punkt
1:
Ja ich habe die Scripte nach der Anleitung ausgeführt. Und mit MySQL Workbench geprüft ob diese angelegt wurde. Dies ist der Fall.
2:
In den "Normalen" Logs sehe ich nichts was auf das Problem hindeutet. Auch nicht nach direkter Eingabe in der Webkonsole.
3:
Ja ich habe es direkt in die Config-Datei eingetragen. Und dann den FHEM neu gestartet. Wenn ich den Befehl über die Webkonsole eintippe bekomme ich folgenden Fehler angezeigt: could not read connection

Naja - die fhem.cfg Datei soll man nicht editieren - sondern eben alles über das Webinterface machen. Und das nichts in den Logs steht, fällt mir schwer zu glauben. Sehr.

Hier ein Thread, in dem das Problem auch aufgetaucht ist - immerhin gibt es ja jetzt einen Fehlermeldung, die man zur Suche verwenden kann:

https://forum.fhem.de/index.php?topic=74413.0

Den dortigen Ausführungen des Threaderstellers kann ich sehr gut folgen (was hat er gemacht, welche Fehlermeldungen hat er)... und in seinem Log sind welche vorhanden.

Weitere Fragen:

1. Auf welchem System läuft die DB - gleicher Server wie FHEM oder ein anderes?
2. Funktioniert der Remote-Zugriff auf die Datenbank einwandfrei?
3. Die Anleitung aus dem Wiki bist Du auch nochmal Schritt für Schritt durchgegangen: https://wiki.fhem.de/wiki/DbLog

Gruß,
Tom

Titel: Antw:MySQL Datenbank fürs logging nutzen
Beitrag von: blubbla am 15 Januar 2019, 19:20:13
Es kann gut sein, dass ich was in der Log-Datei übersehen habe, ich habe keine Ahnung wonach ich da suchen muss. Ich habe gestern noch was ausprobiert, und jetzt ist der Log nach 30s schon 1600 Einträge lang. Wenn ich das wieder hinbekomme, poste ich den Log.

Zu den Fragen:
1. Ja Datenbank und FHEM sind auf dem gleichen System ausgesetzt.
2. Zugriff auf die Datenbank scheint zu funktionieren. Kann es zu Problemen kommen, wenn mehrere DB auf dem System sind, bzw. muss ich da noch zusätzlich was beachten?
3. Soweit ich das verstanden habe, ja. Es ist dem aber nicht so einfach zu folgen, daher habe ich die anderen Tutorials bemüht.
Titel: Antw:MySQL Datenbank fürs logging nutzen
Beitrag von: blubbla am 20 Januar 2019, 15:08:31
Folgendes habe ich jetzt noch gemacht.
dB.conf auf Zeilenumbruch geprüft, war OK
Im Log habe ich keine Einträge mit DbLog gefunden.
Was mich im Log stutzig macht:
2019.01.20 14:54:32 5: Initializing Type Library:
2019.01.20 14:54:32 1: Including fhem.cfg
2019.01.20 14:54:32 5: Cmd: >attr global userattr DbLogExclude DbLogInclude cmdIcon devStateIcon devStateIcon:textField-long devStateStyle icon sortby webCmd webCmdLabel:textField-long widgetOverride<
2019.01.20 14:54:32 5: Cmd: >attr global autoload_undefined_devices 1<
2019.01.20 14:54:32 5: Cmd: >attr global autosave 0<
2019.01.20 14:54:32 5: Cmd: >attr global logfile ./log/fhem-%Y-%m.log<
2019.01.20 14:54:32 5: Cmd: >attr global modpath .<
2019.01.20 14:54:32 5: Cmd: >attr global motd Messages collected while initializing FHEM:
configfile: could not read connection

Autosave deactivated<
2019.01.20 14:54:32 5: Cmd: >attr global statefile ./log/fhem.save<
2019.01.20 14:54:32 5: Cmd: >attr global updateInBackground 1<
2019.01.20 14:54:32 5: Cmd: >attr global verbose 5<
2019.01.20 14:54:32 5: Cmd: >define telnetPort telnet 7072 global<
2019.01.20 14:54:32 5: Loading ./FHEM/98_telnet.pm
2019.01.20 14:54:32 3: telnetPort: port 7072 opened
2019.01.20 14:54:32 5: Cmd: >define WEB FHEMWEB 8083 global<
2019.01.20 14:54:32 5: Loading ./FHEM/01_FHEMWEB.pm
2019.01.20 14:54:32 3: WEB: port 8083 opened
2019.01.20 14:54:32 5: Cmd: >attr WEB stylesheetPrefix darktouchpad<
2019.01.20 14:54:32 5: Cmd: >define WEBphone FHEMWEB 8084 global<
2019.01.20 14:54:32 3: WEBphone: port 8084 opened
2019.01.20 14:54:32 5: Cmd: >attr WEBphone stylesheetPrefix smallscreen<
2019.01.20 14:54:32 5: Cmd: >define WEBtablet FHEMWEB 8085 global<
2019.01.20 14:54:32 3: WEBtablet: port 8085 opened
2019.01.20 14:54:32 5: Cmd: >attr WEBtablet stylesheetPrefix touchpad<
2019.01.20 14:54:32 5: Cmd: >define Logfile FileLog ./log/fhem-%Y-%m.log fakelog<
2019.01.20 14:54:32 5: Loading ./FHEM/92_FileLog.pm
2019.01.20 14:54:32 5: Cmd: >define autocreate autocreate<
2019.01.20 14:54:32 5: Loading ./FHEM/98_autocreate.pm
2019.01.20 14:54:32 5: Cmd: >attr autocreate filelog ./log/%NAME-%Y.log<
2019.01.20 14:54:32 5: Cmd: >define eventTypes eventTypes ./log/eventTypes.txt<
2019.01.20 14:54:32 5: Loading ./FHEM/91_eventTypes.pm
2019.01.20 14:54:32 2: eventTypes: loaded 44 events from ./log/eventTypes.txt

Auf was für eine Verbindung bezieht sich das could not read connection?


    set <name> configCheck

Führt zum Fehler da Modul unbekannt ist.
Titel: Antw:MySQL Datenbank fürs logging nutzen
Beitrag von: Frank_Huber am 20 Januar 2019, 15:19:48
Ich würde mal anhand der wiki Seite zu dblog vorgehen.
Da ist es haarklein beschrieben und der Weg führt zum Ziel.

Gesendet von meinem Doogee S60 mit Tapatalk

Titel: Antw:MySQL Datenbank fürs logging nutzen
Beitrag von: blubbla am 20 Januar 2019, 17:35:30
Wie schon geschrieben, ist das wiki mir zu unübersichtlich, sodass mir nicht klar ist was ich genau zu machen habe.
Titel: Antw:MySQL Datenbank fürs logging nutzen
Beitrag von: Frank_Huber am 20 Januar 2019, 18:34:38
https://wiki.fhem.de/wiki/DbLog

Dann scrollt du runter bis:
Beispiel: Anlegen und Nutzung einer Mysql-Datenbank

Wenn diese Schritt für Schritt Anleitung zu unübersichtlich findest empfehle ich bei filelog zu bleiben. [emoji6][emoji6][emoji6]

Gesendet von meinem Doogee S60 mit Tapatalk

Titel: Antw:MySQL Datenbank fürs logging nutzen
Beitrag von: sledge am 21 Januar 2019, 08:58:23
Vielleicht nochmal ganz einfach:

1. Die Datenbank + Tabellen wurden erstellt - das hast Du geprüft. Und zwar genau so wie im WIKI beschrieben (und was daran kompliziert ist, kann ich ernsthaft nicht nachvollziehen).

# mysql -p -u <fhemuser>
Enter password: <fhempassword>
mysql> show databases;


Das Beispiel klappt natürlich nur auf der Maschine, auf der die Datenbanken angelegt wurden.

2. Jetzt in der db.conf die entsprechenden Anpassungen vornehmen. Username / Passwort.

3. NICHT in der fhem.cfg, sondern in der Webschnittstelle

define logdb DbLog ./db.conf .*:.*

eingeben.

Wenn hier eine Fehlermeldung auftaucht, dann diese posten UND den entsprechenden Eintrag im log.

Der Befehl     set <name> configCheck kann auch nur funktionieren, wenn Du ein dblog-Device erfolgreich angelegt hast. Hast Du aber bisher nicht.

Du kannst das auch gerne anders machen, aber dann wird das mit Hilfe im Forum schwierig. Der im Wiki beschriebene Weg funktioniert - ebenso die Commandref. Deswegen machen sich die Leute ja extra die Mühe, den Weg dort exakt zu beschreiben.
Titel: Antw:MySQL Datenbank fürs logging nutzen
Beitrag von: drul am 28 Mai 2021, 11:03:02
Das Thema ist vielleicht schon ein bisschen alt, aber ich bekam gestern auch die Meldung "could not read connection" beim Ausführen von "define logdb DbLog ./db.conf .*:.*"
Das Problem war ein "@"-Zeichen im Passwort in der db.conf
Lösung: innerhalb des Passworts ein "\" vor das "@" setzen