DbLog: Unterschied zwischen den Versionen

Aus FHEMWiki
KKeine Bearbeitungszusammenfassung
Zeile 16: Zeile 16:
Ein Beispiel hierfür wäre:
Ein Beispiel hierfür wäre:
:<code>define logdb DbLog ./db.conf .*:.* </code>
:<code>define logdb DbLog ./db.conf .*:.* </code>
Die Angabe von .*:.* bedeutet, dass sämtliche DeviceMessages (Messwerte, Batteriestatus, KeepAlives, etc.) in die Datenbank geschrieben werden. Dies führt u.U. dazu, dass die Datenbank auch mit vielen teils unrelevanten Werten gefüllt wird. Man kann daher die zu loggenden Werte einschränken, indem man genau angibt welche Werte geloggt werden sollen. Ein Beispiel um nur die Temperatur, Ventilposition und Luftfeuchte in die Datenbank zu schreiben wäre
Die Angabe von .*:.* bedeutet, dass sämtliche DeviceMessages (Messwerte, Batteriestatus, KeepAlives, etc.) in die Datenbank geschrieben werden. Dies führt u.U. dazu, dass die Datenbank auch mit vielen teils unrelevanten Werten gefüllt wird. Man kann daher die zu loggenden Werte einschränken, indem man genau angibt welche Werte geloggt werden sollen. Derste Wildcard, also das erste .* entspricht dem in FHEM verwendeten Device-Namen. Das Zweite .* dem vom Device augegebenen, zu loggenden Wert. Ein Beispiel um von allen Devices nur die Temperatur, Ventilposition und Luftfeuchte in die Datenbank zu schreiben wäre
:<code>define myDbLog DbLog ./db.conf .*:(temperature|valveposition|humidity).* </code>
:<code>define myDbLog DbLog ./db.conf .*:(temperature|valveposition|humidity).* </code>



Version vom 17. September 2014, 16:29 Uhr

Todo: Diese Seite muss noch vervollständigt werden. Informationen sind bisher verstreut, hauptsächlich über PGM3 dbLog und Neues Charting Frontend.


DbLog
Zweck / Funktion
Protokolliert Ereignisse in einer Datenbank
Allgemein
Typ Hilfsmodul
Details
Dokumentation EN / DE
Modulname 93_DbLog.pm
Ersteller Tobias
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!

DbLog protokolliert, im Unterschied zu FileLog, Fhem-Ereignisse in einer Datenbank.

Definition

DbLog wird durch 2 verschiedene Einträge aktiviert/definiert. In einer Datei namens db.conf werden in die Parameter für eine Verbindung zur Datenbank (host, username, password, etc.) hinterlegt. Diese Datei kann in einem beliebigen Verzeichnis angelegt werden. Das DbLog Device wird dann in der fhem.cfg definiert mit

define <name> DbLog <configfilename> <regexp>

wobei <configfilename> dem Pfad zur zuvor angelegten db.conf entspricht. Ein Beispiel hierfür wäre:

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

Die Angabe von .*:.* bedeutet, dass sämtliche DeviceMessages (Messwerte, Batteriestatus, KeepAlives, etc.) in die Datenbank geschrieben werden. Dies führt u.U. dazu, dass die Datenbank auch mit vielen teils unrelevanten Werten gefüllt wird. Man kann daher die zu loggenden Werte einschränken, indem man genau angibt welche Werte geloggt werden sollen. Derste Wildcard, also das erste .* entspricht dem in FHEM verwendeten Device-Namen. Das Zweite .* dem vom Device augegebenen, zu loggenden Wert. Ein Beispiel um von allen Devices nur die Temperatur, Ventilposition und Luftfeuchte in die Datenbank zu schreiben wäre

define myDbLog DbLog ./db.conf .*:(temperature|valveposition|humidity).*

Datenbank

Unterstützte Datenbanksysteme (Auswahl):

  • Sqlite
  • mySQL

Tabellen

  • current
  • history

Tabellenlayout

  • TIMESTAMP: timestamp of event, e.g. 2007-12-30 21:45:22
  • DEVICE: device name, e.g. Wetterstation
  • TYPE: device type, e.g. KS300
  • EVENT: event specification as full string, e.g. humidity: 71 (%)
  • READING: name of reading extracted from event, e.g. humidity
  • VALUE: actual reading extracted from event, e.g. 71
  • UNIT: unit extracted from event, e.g. %

Links