Hauptmenü

dB Log aber richtig

Begonnen von Heiner, 05 April 2015, 11:01:09

Vorheriges Thema - Nächstes Thema

Heiner

Hi,

frohe Ostern,

Ich habe auf dB Log umgestellt aber mir ist einiges nicht so klar und das Wiki hilft mir nicht wirklich. Ich hoffe hier kann mir geholfen werden.

ich hab sqllite installiert weil resourcen schonender für meinem Banana PI. Aber das ist wohl auch langsamer jedenfalls bei vielen Zugriffen als mysql. Ich frag mich ob es die richtige Entscheidung war.

Laut einer Anleitung soll man zunächst 2 Table erstellen (CURRENT und HISTORY)
und dann dBLog so definieren:
define myDbLog DbLog /opt/fhem/db.conf Device1,Device2,Device3:.*
und damit die dBLog schnell bleibt gibts noch das naechtliche reopen:
define dBLog_reopen *01:31:00 set myDbLog reopen

Bei jedem Plot den ich erzeuge soll ich auf HISTORY verweisen und mein DB Log zeit auch nur Einträge in HISTORY
Im dBLog habe ich das Attribut auf HISTORY gesetzt, nur dann gehen die Plots.

Wozu dient nun CURRENT und HISTORY, warum 2 Tabellen und nicht nur eine. :-\

Ich fände es ja auch sinnvoll wenn man gezielt einige Daten von Current in History übernehmen könnte und zb. Current täglich löscht und History monatlich. Dann könnte man Plots gezielt erzeugen mit minimalem Datenbankwachstum, geht sowas?

Die codezeile oben beschränkt die Sammelwut auf die Devices 1-3, wie sähe der Code aus wenn ich das Reading1 vom Device1(r1d1) und reading2 vom Device2(r2d2) und alle readings von Device3 schrieben möchte? Ich weiss ich könnte die  nicht gewünschten Readings per dbLogexlude in jedem Device sperren, aber wenn ich nur wenige readings schreiben will ist es so herum evtl. einfacher. ginge folglich:
define myDbLog DbLog /opt/fhem/db.conf Device1,Device2,Device3:.r1d1,r2d2,r1d3,r2d3,r3d3,r4d3...[/


Und dann noch das dbLogexclude, ich hab in meiner Heizung etliche Readings, jede Menge fangen mit "p" an, ich will aber nur alle readings lesen die nicht mit "P" anfangen. Leider war ich nicht erfolgreich mit meinem Code:

attr Heizung dbLogexclude p*

wie geht das richtig?

Kann ich eigentlich auch das fhem.log auf dblog umstellen? Spricht etwas dagegen?


Viele Fragen, Danke schon mal für viele Antworten.


Heiner
--------------------------------
fhem auf Pi3+
CUL 868MHz, Signalduino 434MHz, HM-CFG-USB
HM, THZ, Kostal, Somfy, Conbee, Pytonbinding, FritzBox, FTUI, MQTT2

marvin78

Clevere Devicenamen würden dir das Leben einfacher machen.

Zitat von: Heiner am 05 April 2015, 11:01:09


Und dann noch das dbLogexclude, ich hab in meiner Heizung etliche Readings, jede Menge fangen mit "p" an, ich will aber nur alle readings lesen die nicht mit "P" anfangen.

wie geht das richtig?


attr Heizung dbLogExclude p.*

justme1968

CURRENT enthält nur einen einzigen wert pro device und reading und ist in 99.9% aller fälle unnötig. set DbLogType auf History und CURRENT wird nicht mehr verwendet.

ohne CURRENT zu arbeiten ist deutlich resourcen schönender selbst wenn CURRENT nur im hauptspeicher gecached existiert.

die tabellen von hand anzulegen ist unnötig. das macht das modul automatisch.

den inhalt der die in memory tabelle CURRENT kannst du außerhalb des eigenen fhem prozesses nicht sehen.

sqlite ist für den typischen fhem einstatz resourcen schönender als mysql und nicht langsamer.

das reopen halte ich für unnötig.

monatlich zu löschen ist eigentlich auch unnötig. da kannst du auch bei filelog bleiben. täglich erst recht.

gruss
  andre



hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968