[GELÖST]DBLog und LaCrosse Temperatursensor

Begonnen von Markus., 06 Oktober 2018, 07:20:02

Vorheriges Thema - Nächstes Thema

Markus.

Hallo Zusammen,

bin gerade dabei mein Logging ein wenig am überarbeiten. Soll heißen ich möchte für einen Temperatursensor, der alle 4 Sekunden Daten sendet einen festen "Log-Intervall" von 15 Minuten einstellen. Aber irgendwie funktioniert das nicht.
Hier mal ein List vom Device:

Internals:
   CFGFN     
   DEF        0A
   IODev      LaCrosseGateway
   LASTInputDev LaCrosseGateway
   LaCrosseGateway_MSGCNT 21152
   LaCrosseGateway_TIME 2018-10-06 07:13:29
   LaCrosse_lastRcv 2018-10-06 07:13:29
   MSGCNT     21151
   NAME       Temp_Zimmer_Svenja
   NR         301
   STATE      T: 19.6 H: 52 D: 9.5
   TYPE       LaCrosse
   addr       0A
   battery_new 0
   bufferedH 
   bufferedT 
   corr1      0
   corr2      0
   previousH  52
   previousT  19.6
   sensorType 0=T(H)
   Helper:
     DBLOG:
       battery:
         logdb:
           TIME       1538802409.63025
           VALUE      ok
       dewpoint:
         logdb:
           TIME       1538802409.63025
           VALUE      9.5
       humidity:
         logdb:
           TIME       1538802409.63025
           VALUE      52
       state:
         logdb:
           TIME       1538802788.96021
           VALUE      T: 19.6 H: 52 D: 9.5
       temperature:
         logdb:
           TIME       1538802409.63025
           VALUE      19.6
   READINGS:
     2018-10-06 07:13:29   battery         ok
     2018-10-06 07:13:29   dewpoint        9.5
     2018-10-06 07:13:29   humidity        52
     2018-10-06 07:13:08   state           T: 19.6 H: 52 D: 9.5
     2018-10-06 07:13:29   temperature     19.6
Attributes:
   DbLogExclude .*
   DbLogInclude state
   IODev      LaCrosseGateway
   doAverage  1
   doDewpoint 1
   event-min-interval state:20
   event-on-change-reading state
   event-on-update-reading .*
   room       105_LaCrosse


Die hier im Beispiel angegebenen 20 Sekunden werden nicht berücksichtigt. Es wird bei jeder Änderung von "state" ein Eintrag in die Datenbank gemacht. Ich glaube ich sehe im Moment den Wald vor lauter Bäumen nicht. Hoffe es kann mich jemand mal in die richtige Richtung schubsen. Mit der Commandref und den entsprechenden Wechselwirkungen habe ich mich schon beschäftigt. :-(

Gruß

Markus



DS_Starter

Hallo Markus,

wenn ich es richtig verstanden habe, hast du zwei Teilprobleme.

1. willst du regelmäßig Readings des Tempsensors in einem festen Intervall alle 15 Minuten loggen
2. soll "state" nicht bei jeder Änderung,sondern mit einem Mindestabstand von 20 Sekunden geloggt werden.

Ist das so richtig verstanden ?

LG,
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Frank_Huber

Vermute die 20sek sind zum testen und werden wenn es funktioniert auf 900 hochgezogen.

Ich vermute das Problem hängt an dem event-on-update .*
Dadurch wird bei jedem reading Update ein Event erzeugt.

Nimm das mal raus.

Gesendet von meinem Doogee S60 mit Tapatalk


Markus.

Zitat von: Frank_Huber am 06 Oktober 2018, 07:54:56
Vermute die 20sek sind zum testen und werden wenn es funktioniert auf 900 hochgezogen.

Ich vermute das Problem hängt an dem event-on-update .*
Dadurch wird bei jedem reading Update ein Event erzeugt.

Nimm das mal raus.

Gesendet von meinem Doogee S60 mit Tapatalk

Ja genau die 20 Sekunden sind nur zum testen. Wenn es funktioniert will ich auf 900 oder so hoch.
Habs jetzt so

   DbLogExclude battery,dewpoint,hunidity,temperature
   IODev      LaCrosseGateway
   doAverage  1
   doDewpoint 1
   event-min-interval state:20
   event-on-change-reading state
   room       105_LaCrosse


Aber nun wird jedesmal geloggt wenn state sich ändert. die 20 Sekunden bleiben unberücksichtigt.
Gruß

Markus

Frank_Huber



Zitat von: Markus. am 06 Oktober 2018, 07:59:34
Ja genau die 20 Sekunden sind nur zum testen. Wenn es funktioniert will ich auf 900 oder so hoch.
Habs jetzt so

   DbLogExclude battery,dewpoint,hunidity,temperature
   IODev      LaCrosseGateway
   doAverage  1
   doDewpoint 1
   event-min-interval state:20
   event-on-change-reading state
   room       105_LaCrosse


Aber nunwird nichts mehr geloggt

Gruß

Markus

Mach mal DbLogExclude .* und DbLogInclude state


Gesendet von meinem Doogee S60 mit Tapatalk


Markus.

dann macht er wieder alle 4 Sekunden einen Logeintrag... :-(


2018-10-06 07:33:52|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.5 H: 52 D: 9.4|state|T: 19.5 H: 52 D: 9.4|
2018-10-06 07:59:05|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.5 H: 52.3 D: 9.5|state|T: 19.5 H: 52.3 D: 9.5|
2018-10-06 07:59:09|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.5 H: 52.8 D: 9.6|state|T: 19.5 H: 52.8 D: 9.6|
2018-10-06 07:59:13|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.5 H: 52 D: 9.4|state|T: 19.5 H: 52 D: 9.4|
2018-10-06 08:01:48|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.5 H: 52.3 D: 9.5|state|T: 19.5 H: 52.3 D: 9.5|
2018-10-06 08:01:52|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.5 H: 52.8 D: 9.6|state|T: 19.5 H: 52.8 D: 9.6|
2018-10-06 08:01:57|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.5 H: 52 D: 9.4|state|T: 19.5 H: 52 D: 9.4|
2018-10-06 08:03:10|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.5 H: 52.3 D: 9.5|state|T: 19.5 H: 52.3 D: 9.5|
2018-10-06 08:03:14|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.5 H: 52.8 D: 9.6|state|T: 19.5 H: 52.8 D: 9.6|
2018-10-06 08:03:18|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.5 H: 52 D: 9.4|state|T: 19.5 H: 52 D: 9.4|
2018-10-06 08:03:34|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.5 H: 52.3 D: 9.5|state|T: 19.5 H: 52.3 D: 9.5|
2018-10-06 08:03:38|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.5 H: 52.8 D: 9.6|state|T: 19.5 H: 52.8 D: 9.6|
2018-10-06 08:03:43|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.5 H: 52 D: 9.4|state|T: 19.5 H: 52 D: 9.4|
sqlite>




Gruß

MArkus

Frank_Huber

Ja, durch das event-on-change-reading.
Nimm den mal noch raus, dann sollte es passen.

Wenn du kuckst hast alle 4 Sekunden ne Änderung.
Da greift das on-change.

Gesendet von meinem Doogee S60 mit Tapatalk


DS_Starter

#7
Naja, weil es zwei Teilprobleme sind hatte ich nach meinem richtigen Verständnis gefragt  ;)

1. event-min-interval  und event-on-change-reading state  zusammen beeinflussen sich.
    In der Commandref ist dazu ausgeführt:


ZitatEin Event wird nur dann generiert, falls seit dem letzten Auftreten des gleichen Events mindestens minInterval Sekunden vergangen sind.   
   Falls event-on-change-reading auch spezifiziert ist, dann werden sie mit ODER kombiniert, d.h. wenn einer der beiden Bedingungen wahr
   ist.

   Lösung wäre die beiden Attribute event-min-interval und event-on-change-reading löschen und DbLogExclude .* zu setzen.
   Damit wird erstmal gar nichts geloggt.

2. Um jetzt deinen gewünschten Rythmus von 15 Minuten zu finden, kannst du addLog im DbLog benutzen:

   
   set <dblog> addLog TYPE=LaCrosse:.* !useExcludes
   


   Den obigen Aufruf alle 900 s mit einem AT eingeplant sollte deine Anforderung erfüllen.

   LG,
   Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Markus.

mmmh werde das mal testen, da der andere Weg irgendwie nicht funktioniert.

Als Attribute für das Device habe ich nun:

Attributes:
   DbLogExclude .*
   DbLogInclude state
   IODev      LaCrosseGateway
   doAverage  1
   doDewpoint 1
   event-min-interval state:20
   room       105_LaCrosse



Aber da wird wieder nichts geloggt.

Gruß

Markus

DS_Starter

ZitatAber da wird wieder nichts geloggt.

Schrieb ich doch  ;)  Und das event-min-interval state:20 bitte auch raus.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Frank_Huber

Wäre aber etwas komplex die Losung Heiko. [emoji6]

Denke der Knackpunkt war dass er beides gleichzeitig angepackt hat. Das "was" und das "wie oft"
Das würde ich immer nacheinander realisieren.
Erst das "was" mit exclude und include,
Dannach das "wie oft" mit den event-on

Evtl gibt es auch ein Attribut für die LaCrosse um den Interval zu setzen.

Gesendet von meinem Doogee S60 mit Tapatalk


Markus.

#11
nee bin noch ohne den AT dran.
Will das erstmal vestehen wenn ich das nur lokal auf dem device löse...
War nicht richtig meine aussage das Garnichts geloggt wird, es wird bei Änderung von state geloggt. Aber die 20 Sekunden greifen nicht.

Frank_Huber

Wie oft wird denn geloggt?
Zitat von: Markus. am 06 Oktober 2018, 08:23:58
nee bin noch ohne den AT dran.
Will das erstmal vestehen wenn ich ich nur lokal auf dem device löse...
War nicht richtig meine aussage das Garnichts geloggt wird, es wird bei Änderung von state geloggt. Aber die 20 Sekunden greifen nicht.

Gesendet von meinem Doogee S60 mit Tapatalk


DS_Starter

ZitatWäre aber etwas komplex die Losung Heiko.

Hast recht  :)
Er kann ja gerne noch verschiedene Wege probieren. Das übt und wenn Markus es dann simpler hinbekommt wäre es um so besser.
Aber dann hat er wieder Möglichkeiten von DbLog kennengelernt an die er sich bei Gelegenheit wieder erinnern kann.

@Markus, das Reading state hat immer eine besondere Rolle weil der Readingname nicht unbedingt im Event vorkommt. Das sieht man mit einem verbose 4 oder 5 vom DbLog recht gut. Das state-Problem würde ich erstmal ausklammern.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Markus.

Zitat von: Frank_Huber am 06 Oktober 2018, 08:26:01
Wie oft wird denn geloggt?
Gesendet von meinem Doogee S60 mit Tapatalk

Bei jeder Änderung von State wird geloggt ...
Und wie es der Zufall nun Will sind es etwa 20 Sekunden meistens ...


2018-10-06 08:23:33|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.7 H: 64.8 D: 12.9|state|T: 19.7 H: 64.8 D: 12.9|
2018-10-06 08:23:54|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.7 H: 62 D: 12.2|state|T: 19.7 H: 62 D: 12.2|
2018-10-06 08:24:14|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.7 H: 60.8 D: 11.9|state|T: 19.7 H: 60.8 D: 11.9|
2018-10-06 08:24:34|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.7 H: 59.8 D: 11.7|state|T: 19.7 H: 59.8 D: 11.7|
2018-10-06 08:24:59|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.7 H: 58.8 D: 11.4|state|T: 19.7 H: 58.8 D: 11.4|
2018-10-06 08:25:19|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.6 H: 58 D: 11.1|state|T: 19.6 H: 58 D: 11.1|
2018-10-06 08:25:40|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.7 H: 57.8 D: 11.1|state|T: 19.7 H: 57.8 D: 11.1|
2018-10-06 08:26:00|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.7 H: 57 D: 10.9|state|T: 19.7 H: 57 D: 10.9|
2018-10-06 08:26:21|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.6 H: 57 D: 10.9|state|T: 19.6 H: 57 D: 10.9|
2018-10-06 08:26:45|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.7 H: 56 D: 10.7|state|T: 19.7 H: 56 D: 10.7|
2018-10-06 08:27:26|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.7 H: 56 D: 10.7|state|T: 19.7 H: 56 D: 10.7|
2018-10-06 08:28:03|Temp_Zimmer_Svenja|LACROSSE|state: T: 19.6 H: 55.8 D: 10.5|state|T: 19.6 H: 55.8 D: 10.5|