Die mit ** gekennzeichnete Links auf dieser Seite sind Affiliatelinks. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen.
Für die Anbindung der MariaDB FHEM Datenbank müsst Ihr die Konfigurationsdatei "/opt/fhem/db.conf" erzeugen. Eine Vorlage dieser Datei befindet sich in dem "contrib" Verzeichnis Eures FHEM Servers. Über folgenden Befehl könnt Ihr diese Vorlage an den eigentlichen Ort kopieren:
sudo cp /opt/fhem/contrib/dblog/db.conf /opt/fhem/db.conf
Nach dem Kopieren müsst Ihr die Konfigurationsdatei noch anpassen. Hierfür verwendet Ihr folgenden Befehl:
sudo nano /opt/fhem/db.conf
vorher
danach
Wichtig ist hier, dass Ihr die "#" vor jeder Zeile in dem rot markierten Bereich entfernt. Danach müsst Ihr nur noch die Daten, entsprechend Eurer Konfiguration, anpassen. Zusätzlich solltet Ihr den Parameter "utf8 => 1" setzen.
Um die Daten von FHEM Devices zu erfassen, benötigt Ihr auf Eurem FHEM Server noch ein entsprechende FHEM Device. Mit folgendem Befehl könnt Ihr diese FHEM Device anlegen:
define logdb DbLog ./db.conf .*:.*
Direkt nach dem Befehl erscheint dann das neue FHEM Sevice.
Wenn der FHEM Server sich sauber mit dem MariaDB Server verbunden hat, steht bei "STATE" "connected"
Ab jetzt sammelt der FHEM Server alle Events, und schreibt diese direkt in die MariaDB.
Mit folgenden Befehlen könnt Ihr prüfen, ob die Datenbank Werte der FHEM Devices empfängt:
sudo mysql -p -u fhemuser
use fhem;
show tables;
select * from history;
exit
Um die Datenbank nicht mit unnötigen Informationen zu belasten, könnt Ihr das neu erstellte FHEM Device wie folgt anpassen:
In dem Bereich "DEF" könnt Ihr z.B. bestimmen, welche Readings in der Datenbank gesammelt werden sollen.
In diesem Beispiel werden von allen definierten FHEM Devices nur noch die Informationen der Readings "humidity" und "temperature" gesammelt.
Zusätzlich empfehle ich Euch das Setzen des Attributes "asyncMode". Dadurch wird FHEM nicht blockiert, wenn Eure Datenbank mal nicht erreichbar ist. Alle Datenbank Einträge, welche geschrieben werden sollen, werden auf dem FHEM Server zwischengespeichert. Wenn die Datenbank wieder erreichbar ist, werden die Einträge in die Datenbank geschrieben.
attr logdb asyncMode 1
Durch Setzen des Attributes "shutdownWait" auf den Wert "2" wartet der FHEM Server, bei einem "shutdown", 2 Sekunden. Diese Zeit sollte ausreichend sein, um die Datenbank korrekt zu beenden.
attr logdb shutdownWait 2
Durch Setzen des Attributes "showproctime" auf den Wert "1" wird in dem Reading "background_processing_time" die Abarbeitungszeit, in Sekunden, angezeigt.
attr logdb showproctime 1
ACHTUNG: Solltet Ihr die Datenbank für mehrere FHEM Server verwenden, müsst Ihr darauf achten, dass es keine FHEM Devices gibt, die den selben Namen haben.
**
Kommentar schreiben
Thorsten (Sonntag, 30 Juli 2023 11:05)
Hallo,
ich versuche mich gerade an dem EInrichten der Datenbank und der entsprechenden Anbindung.
Bisher hat alles relativ gut geklappt.
Allerding beim Anlegen des dblog in FHEM erhalte ich im STATE folgende Meldung: DBD::mysql::st execute_array failed: Table 'fhem.history' doesn't exist [err was 1146 now 2000000000]
executing 1082 generated 1082 errors [for Statement "INSERT INTO history (TIMESTAMP, DEVICE, TYPE, EVENT, READING, VALUE, UNIT) VALUES (?,?,?,?,?,?,?)"] at ./FHEM/93_DbLog.pm line 3211.
statt connected.
Auch die Abfrage der Datenbank selbst ergibt nur eine Fehlermeldung:
root@*****:~# sudo mysql -p -u fhemuser
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Kannst du mir dabei helfen?
Vielen Dank im Voraus.
Grüße