Umstellung von Filelog auf Dblog

Begonnen von blueberry63, 26 Juli 2013, 15:27:26

Vorheriges Thema - Nächstes Thema

blueberry63

Hallo,

ich habe mein FHEM schon vor einiger Zeit von Filelog auf Dblog umngestellt. Der Zugriff auf die DB funktioniert z.Bsp. mit:

Zitatget myDB - - 2013-07-26 2013-07-26 HZ_TempAussen:Temperature::

Allerdings habe ich eben festgestellt, daß die Log-Dateien immernoch aktualisiert werden. Auch wenn ich die Log-Dateien lösche, werden sie wieder neu erstellt.

Kann mir jemand sagen, wie ich die Log-Dateien loswerde? Wird nicht mit

Zitatdefine myDB DbLog /opt/fhem/db.conf .*:.*

automatisch auf DBlog umgestellt, auch wenn ich bei den Devices noch "Filelog" definiert habe?

Gruß
Blueberry63

FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Puschel74

Hallo,

solange die FileLog-Einträge in der fhem.cfg (oder einer eingebundenen Konfig) stehen werden diese natürlich
genauso noch bedient.

Lösung:
Alle FileLog-Einträge löschen.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

blueberry63

Hallo Puschel74,

Danke für die schenlle Antwort. Aber wie kommen die Daten denn in die DB, wenn ich alle Filelog-Definitionen lösche? Muß ich die Definitionen alle auf Dblog umschreiben? Ich dachte, die Filelog-Definitionen würden ignoriert, wenn man über
Zitatdefine myDB DbLog /opt/fhem/db.conf .*:.*
auf Dblog umstellt.

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Puschel74

Hallo,

die FileLog-Einträge verweisen nicht auf DBLog sondern auf die fhem-Logfiles.

In den defines für FileLog wird das Modul FileLog angesprochen und dieses schreibt die Daten in die "FHEM-eigenen" Logfiles.

Wenn du

define myDB DbLog /opt/fhem/db.conf .*:.*

angegeben hast (wie du ja geschrieben hast) werden ALLE Events ALLER Devices an DBLog übergeben und dieses schreibt die Daten dann in die Datenbank.
Aus dieser kannst du dann ganz einfach wieder die weblinks generieren lassen.

Du kannst also die FileLog-Definitionen deiner Devices beruhigt löschen wenn du keine Logfiles wie bisher mehr haben möchtest.

Das habe ich auf meinem DB-RasPi genauso gemacht.
Devices erzeugt - aber keine FileLog-Definitionen dazu.
Die Daten wandern in die DB und von dort in die weblinks.

Grüße

Edith: Solange aber die FileLog-Definitionen existieren erzeugen die jeweiligen Devices natürlich immer noch auch FileLog-Einträge - parallel zu den DBLog-Einträgen.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

blueberry63

Hallo Puschel74,

bis jetzt sah mein Weblink bspw. so aus:

Zitatdefine wl_HZ_TempAussen weblink filelog FL_HZ_TempAussen:myHZ_temp:CURRENT

Wenn ich nun "filelog" durch "dbplot" ersetzte, bekomme ich die Grafik nicht angezeigt. Hast Du mal ein Bespiel für mich?


Danke
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Puschel74

Hallo,

ZitatWenn ich nun "filelog" durch "dbplot" ersetzte, bekomme ich die Grafik nicht angezeigt.

Kann auch nicht.
Soo einfach ist das ganze dann auch wieder nicht ;-)

Der weblink sieht z.B. für meinen S300TH draussen so aus:

define wl_Eingang_aussen weblink dbplot myDb:temphum
attr wl_Eingang_aussen label "Eingang_aussen Min: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"
attr wl_Eingang_aussen plotfunction Eingang_aussen
attr wl_Eingang_aussen room Temperaturen


das ist aber nur die halbe Miete.
Du musst entsprechend auch die temp4hum4.gplot anpassen damit diese die passenden Werte aus der DB ausliest und dir anzeigt.
Also etwas so:
set terminal png transparent truecolor rounded medium size <SIZE> enhanced
 
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set ytics nomirror
set y2tics
#set ytics
set title '<L1>'
set grid xtics y2tics
 
set y2label "&#xb0;C"
set ylabel "%"
 
#DbLog <SPEC1>:temperature::
#DbLog <SPEC1>:humidity::
 
plot \
  1:2 ls l0 axes x1y2 title 'Temperature (&#xb0;C)' with lines
  1:2 ls l2fill axes x1y1 title 'Humidity (%)' with lines


Wichtig sind darin die Zeilen
Zitat#DbLog <SPEC1>:temperature::
#DbLog <SPEC1>:humidity::
Auch wenn die Raute als Kommentarzeichen zu verstehen ist weiß weblink anhand dieser Zeilen welche Werte du anzeigen willst.

Die *.gplot findest du unter
Zitatfhem\www\gplot
.
Am besten umbennen damit sie bei einem update nicht überschrieben werden oder einfach mal meine angehängte temphum.gplot nehmen ;-)

Grüße

P.S.: Ob "temperature" und "humidity" reichen weiß ich nicht da ich nicht weiß welchen Sensor bzw. welche Readings dieser liefert.
Einfach mal ausprobieren.

Edith: Achtung! Grad gesehen:
Du musst in meiner define des weblink auch auf DEINE DBLog verweisen. Ich habs grad angepasst - sollte so 1:1 klappen (bis auf temperature und humidity evtl.)

Edith2: Nicht zu vergessen!
Danke an andre für die Hilfe mit DBLog (ich wollts nur mal erwähnt haben ^^)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

UliM

Hi,
laut http://fhem.de/MAINTAINER.txt
sollten Beiträge zu dblog im Ordner "Automatisierung" platziert werden.
Habe daher diesen Fred dorthin verschoben.
Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

blueberry63

@Puschel74
Heute hatte ich endlich Zeit, den Weblink mit DbLog zu testen. Vielen Dank für Dein Beispiel. Es funktionieren nun alle Weblinks, bis auf solche Devices (dummy), die als Werte "EIN" bzw. "AUS" als Reading haben.

Beispiel-Eintrag in DbLog:
ZitatTIMESTAMP   DEVICE   TYPE   EVENT   READING   VALUE   UNIT
29.07.2013 00:01   HZ_ZPstatus   DUMMY   Status: AUS   Status   AUS   

Eintrag in CFG-Datei:
Zitatdefine wl_HZ_ZPstatus weblink dbplot myDB:myHZ_status
attr wl_HZ_ZPstatus label "Heizung ZP Status: Aktuell $data{currval1}"
attr wl_HZ_ZPstatus plotfunction HZ_ZPstatus
attr wl_HZ_ZPstatus room Heizung

Die Plot-Datei:
Zitatset terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<L1>'
set grid xtics y2tics

set ytics ("AUS" 0, "EIN" 1)
set y2tics ("AUS" 0, "EIN" 1)
set ylabel "Status"
set y2label "Status"
set yrange [-0.1:1.1]
set y2range [-0.1:1.1]

#dbLog <SPEC1>:Status::

plot \
  1:2 ls l0 axes x1y2 title 'Status' with lines


Hast Du (oder jemand) eine Idee, warum die Plots leer bleiben?

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Puschel74

Hallo,

Dummys habe ich noch nicht versucht aber versuch mal anstelle von

Zitat#dbLog <SPEC1>:Status::

#dbLog <SPEC1>:State::

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

justme1968

wenn du bei einem dummy state mit dblog loggen/plotten willst musst du data als namen verwenden:#dbLog <SPEC1>:data::
gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Puschel74

Hallo,

Mist, wusste doch das ich wieder was vergessen habe :-(

Danke andre

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

blueberry63

@Andre, Puschel74,

es funktioniert weder mit "state", noch mit "data". Meine anderen Meßwerte lege ich übrigens auch in Dummys ab und dort funktioniert es. Allerdings werden dort Zahlenwerte eingelesen (Temperatur, Zähler, Stunden).

Ich werde zunächst mal mit "Filelog" weitermachen. Vielleicht gibt es ja irgendwann eine Lösung.

Danke Euch beiden.
Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

justme1968

ich habe eben gesehen das du .*:.* als regex verwendest. das matched nicht auf state weil da im event kein doppelpunkt ist. also nur .*

hast du das umwandeln der EIN und AUS  in 0 und 1 schon in deinem plotfile? etwas in der art: $fld[2]=~"EIN"?1:0

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

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

blueberry63

@Andre,

ich habe jetzt mal die Definition für DbLog umgestellt:

Zitatdefine myDB DbLog /opt/fhem/db.conf .*

Aber wie ich "$fld[2]=~"EIN"?1:0" einbauen soll verstehe ich nicht. Ich dachte, das würde durch
Zitatset ytics ("AUS" 0, "EIN" 1)
set y2tics ("AUS" 0, "EIN" 1)

gemacht. Könntest Du mir die Zeile in o.g. Plot-Datei einbauen?

Danke
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

justme1968

die ticks setzen nur die beschriftung an den achsen.

die plot zeile muss etwa so aussehen: #dbLog <SPEC1>:data:$fld[2]=~"EIN"?1:0

ich kann es nur gerade nicht probieren und eventuell nach data noch ein zweiter doppelpunkt.

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

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