Hallo,
ich logge einige Daten aus meinem FHEM in einer Mysql Datenbank. Das funktioniert so weit ganz gut, allerdings hält sich das System nicht an meine Zeitangaben:
attr Wetterstation DbLogExclude .*
attr Wetterstation DbLogInclude temperature:900,humidity:900,brightness:900,rain:900,windSpeed:900,battery:36000
Die Wetterdaten werden etwa alle zwei-drei Minuten abgelegt, egal was ich einstelle. Woran kann das liegen?
Gruss. Carsten
DbLogInclude
attr <device> DbLogInclude regex:MinInterval,[regex:MinInterval] ...
Wird DbLog genutzt, wird in allen Devices das Attribut DbLogInclude propagiert. DbLogInclude funktioniert im Endeffekt genau wie DbLogExclude, ausser dass Readings mit diesen RegExp in das Logging eingeschlossen statt ausgeschlossen werden koennen. Ist MinIntervall angegeben, so wird der Logeintrag nur dann nicht geloggt, wenn das Intervall noch nicht erreicht und der Wert des Readings sich nicht verändert hat.
Siehe auch das DbLog Attribut DbLogSelectionMode. Es beeinflußt wie DbLogExclude und DbLogInclude ausgewertet werden.
Denke deine Werte haben sich verändert.
Einfacher wäre es die Daten nur im gewünschten Logging Interval abzurufen.
Gesendet von meinem Doogee S60 mit Tapatalk
Ah, verstanden. Wie kann ich das Abruf-Intervall einstellen?
Da niemand weiß was du für eine Wetterstation du hast kann das niemand beantworten. [emoji6]
Gesendet von meinem Doogee S60 mit Tapatalk
Ist das Geräteabhängig? Es ist eine Homematic HM-WDS100-C6-O
Klar,
Das Gerät erzeugt die Events
Die Events werden geloggt.
Zeig mal ein List der Wetterstation oder schaue einfach ob du dort einen Interval einstellen kannst.
Gesendet von meinem Doogee S60 mit Tapatalk
Ich vermute dies ist gemeint...
Gets ------
cmdList
param -param-
reg -addr- ... -list- -peer-
regList
regVal -addr- ... -list- -peer-
saveConfig -filename- ...
Sets ------
assignHmKey:
clear:[readings|trigger|register|oldRegs|rssi|msgEvents|msgErrors|attack|all]
deviceRename:newName
fwUpdate:-filename- -bootTime- ...
getConfig:
getDevInfo:
getRegRaw:[List0|List1|List2|List3|List4|List5|List6] ... [-PeerChannel-]
peerBulk -peer1,peer2,...- [set|unset]
peerChan 0 -actChn- ... single [set|unset] [actor|remote|both]
raw:data ...
regBulk:-list-.-peer- -addr1:data1- -addr2:data2- ...
regSet:[prep|exec] -regName- -value- ... [-peerChannel-]
reset:
sign:[on|off]
templateDel:tmplt
unpair:
Ein list erhaltest du mit "list Gerätename" in der fhem eingabezeile.
Das Ergebnis davon in Code Tags (Raute Taste über dem Eingabefeld) posten.
Gesendet von meinem Doogee S60 mit Tapatalk
Was bezweckst du? Sinn eines Logs ist doch Änderungen zu dokumentieren.
Wenn es dir darum geht, nicht bei jedem 0,01 Grad einen Einrag zu erhalten kannst du das mit "event-on-change-reading ... [threshold]" erreichen. Dann setzt du 0,1 oder 1 als Threshold und du hast entweder bei einer Überschreitung oder bei min-interval einen Wert. Syntax s. Commandref oder Wiki.
Hier der list Output.
@kadettilac89, ist auch ein Ansatz. Ich möchte zumindest die Datenmenge im Log deutlich reduzieren.
Trotzdem würde mich interessieren, ob sich das Intervall irgendwie anpassen läst.
Internals:
DEF
FUUID
IODev hmusb
LASTInputDev hmusb
MSGCNT 428
NAME Wetterstation
NOTIFYDEV global
NR 287
NTFY_ORDER 50-Wetterstation
STATE Temperatur: 6.9 °C, Feuchtigkeit: 71 %, Helligkeit: 19, Regen: 83.485 mm/qm, Wind: 16.6 km/h, Richtung: 175
TYPE CUL_HM
hmusb_MSGCNT 428
hmusb_RAWMSG EFF0111,0000,000DF263,FF,FFB6,E38670FF0111000000004547011BC0A6238413
hmusb_RSSI -74
hmusb_TIME 2019-03-17 18:10:50
lastMsg No:E3 - t:70 s:FF0111 d:000000 004547011BC0A6238413
protLastRcv 2019-03-17 18:10:50
protRcv 426 last_at:2019-03-17 18:10:50
rssi_at_hmusb cnt:428 min:-93 max:-72 avg:-79.01 lst:-74
Helper:
DBLOG:
brightness:
myDbLog:
TIME 1552842650.1367
VALUE 19
humidity:
myDbLog:
TIME 1552842650.1367
VALUE 71
rain:
myDbLog:
TIME 1552835964.77871
VALUE 83.485
temperature:
myDbLog:
TIME 1552842485.3743
VALUE 6.9
windSpeed:
myDbLog:
TIME 1552842650.1367
VALUE 16.6
READINGS:
2019-03-16 23:48:16 Activity alive
2019-02-24 15:54:11 CommandAccepted yes
2019-02-24 15:50:06 D-firmware 1.4
2019-02-24 15:50:06 D-serialNr
2019-02-24 15:54:12 PairedTo
2019-02-24 15:51:33 R-burstRx off
2019-02-24 15:51:33 R-pairCentral
2019-02-24 15:51:34 R-sunThresh 30
2019-02-24 15:54:12 RegL_00. 00:00 01:00 02:01 05:00 0A:42 0B:42 0C:42
2019-02-24 15:54:12 RegL_01. 00:00 05:1E
2019-03-17 18:10:50 brightness 19
2019-03-17 18:10:50 humidity 71
2019-03-17 18:10:50 isRaining 0
2019-03-17 18:10:50 rain 83.485
2019-03-17 18:10:50 state T: 6.9 H: 71 W: 16.6 R: 83.485 IR: 0 WD: 175 WDR: 67.5 S: 132 B: 19
2019-03-17 18:10:50 sunshine 132
2019-03-17 18:10:50 temperature 6.9
2019-03-17 18:10:50 windDirRange 67.5
2019-03-17 18:10:50 windDirection 175
2019-03-17 18:10:50 windSpeed 16.6
helper:
HM_CMDNR 227
mId 0040
regLst ,0,1,1p
rxType 12
supp_Pair_Rep 0
expert:
def 1
det 0
raw 1
tpl 0
io:
newChn +FF0111,00,00,00
nextSend 1552842650.19002
prefIO
rxt 0
vccu
p:
FF0111
00
00
00
mRssi:
mNo E3
io:
hmusb:
-72
-72
prt:
bErr 0
sProc 0
q:
qReqConf
qReqStat
role:
chn 1
dev 1
rssi:
at_hmusb:
avg -79.0140186915887
cnt 428
lst -74
max -72
min -93
tmpl:
Attributes:
DbLogExclude .*
DbLogInclude temperature:900,humidity:900,brightness:900,rain:900,windSpeed:900,battery:36000
IODev hmusb
actCycle 020:00
actStatus alive
autoReadReg 5_readMissing
event-on-change-reading .*
expert 2_full
firmware 1.4
model HM-WDS100-C6-O
peerIDs 00000000,
room Wettervorhersage
stateFormat Temperatur: temperature °C, Feuchtigkeit: humidity %, Helligkeit: brightness, Regen: rain mm/qm, Wind: wind/code]
Schau mal ob es ein Attribut "Interval" für das Gerät gibt.
Im List ist nichts zu erkennen.
Eine andere Idee:
Setze im device DbLogExclude aum .* (alles) ohne DbLogInclude.
Dann erzeugt dir ein at welches alle x min ein addlog aufruft und die gewünschten Daten loggt.
Gesendet von meinem Doogee S60 mit Tapatalk