Hauptmenü

Frage zu DBInclude

Begonnen von steinigel, 16 März 2019, 22:55:33

Vorheriges Thema - Nächstes Thema

steinigel

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

Frank_Huber

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


steinigel

Ah, verstanden. Wie kann ich das Abruf-Intervall einstellen?

Frank_Huber

Da niemand weiß was du für eine Wetterstation du hast kann das niemand beantworten. [emoji6]

Gesendet von meinem Doogee S60 mit Tapatalk


steinigel

Ist das Geräteabhängig? Es ist eine Homematic HM-WDS100-C6-O

Frank_Huber

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


steinigel

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:


Frank_Huber

#7
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

kadettilac89

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.

steinigel

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]


Frank_Huber

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