Autor Thema: [gelöst] DOIF - Readings werden doppelt ins DBLog geschrieben  (Gelesen 718 mal)

Offline Soc

  • Full Member
  • ***
  • Beiträge: 215
Hallo Zusammen,

ich habe folgenden DOIF gebaut:

Internals:
   CFGFN     
   DEF        ([BU.sysmon:"ram"])
## (setreading di_sysmon_userreading update 1)
(setreading di_sysmon_userreading update {(ReadingsTimestamp("di_sysmon_userreading","state","0"))})
   NAME       di_sysmon_userreading
   NR         1727
   NTFY_ORDER 50-di_sysmon_userreading
   STATE      deactivated
   TYPE       DOIF
   Helper:
     DBLOG:
       ALO_cpu_SumUsed:
         DBLogging:
           TIME       1520956781.52946
           VALUE      1.18
       ALO_cpu_idle:
         DBLogging:
           TIME       1520956781.52946
           VALUE      98.82
       ALO_cpu_io:
         DBLogging:
           TIME       1520956781.52946
           VALUE      0.20
       ALO_cpu_irq:
         DBLogging:
           TIME       1520956781.52946
           VALUE      0.00
       ALO_cpu_nice:
         DBLogging:
           TIME       1520956781.52946
           VALUE      0.00
       ALO_cpu_sirq:
         DBLogging:
           TIME       1520956781.52946
           VALUE      0.01
       ALO_cpu_sys:
         DBLogging:
           TIME       1520956781.52946
           VALUE      0.43
       ALO_cpu_user:
         DBLogging:
           TIME       1520956781.52946
           VALUE      0.54
       ALO_cputemp_curr:
         DBLogging:
           TIME       1520956781.52946
           VALUE      45.73
       ALO_cputemp_max:
         DBLogging:
           TIME       1520956781.52946
           VALUE      65.53
       ALO_cputemp_min:
         DBLogging:
           TIME       1520956781.52946
           VALUE      37.01
       ALO_fsroot_availableMB:
         DBLogging:
           TIME       1520956781.52946
           VALUE      2769
       ALO_fsroot_percentused:
         DBLogging:
           TIME       1520956781.52946
           VALUE      61
       ALO_fsroot_totalMB:
         DBLogging:
           TIME       1520956781.52946
           VALUE      7388
       ALO_fsroot_usedMB:
         DBLogging:
           TIME       1520956781.52946
           VALUE      4289
       ALO_ram_free:
         DBLogging:
           TIME       1520956781.52946
           VALUE      78.38
       ALO_ram_percentused:
         DBLogging:
           TIME       1520956781.52946
           VALUE      36.13
       ALO_ram_total:
         DBLogging:
           TIME       1520956781.52946
           VALUE      927.32
       ALO_ram_used:
         DBLogging:
           TIME       1520956781.52946
           VALUE      335.05
       cmd:
         DBLogging:
           TIME       1520875946.05134
           VALUE      0
       mode:
         DBLogging:
           TIME       1520875946.05134
           VALUE      enabled
       state:
         DBLogging:
           TIME       1520875946.05134
           VALUE      initialized
   READINGS:
     2018-03-13 16:59:41   ALO_cpu_SumUsed 1.18
     2018-03-13 16:59:41   ALO_cpu_idle    98.82
     2018-03-13 16:59:41   ALO_cpu_io      0.20
     2018-03-13 16:59:41   ALO_cpu_irq     0.00
     2018-03-13 16:59:41   ALO_cpu_nice    0.00
     2018-03-13 16:59:41   ALO_cpu_sirq    0.01
     2018-03-13 16:59:41   ALO_cpu_sys     0.43
     2018-03-13 16:59:41   ALO_cpu_user    0.54
     2018-03-13 16:59:41   ALO_cputemp_curr 45.73
     2018-03-13 16:59:41   ALO_cputemp_max 65.53
     2018-03-13 16:59:41   ALO_cputemp_min 37.01
     2018-03-13 16:59:41   ALO_fsroot_availableMB 2769
     2018-03-13 16:59:41   ALO_fsroot_percentused 61
     2018-03-13 16:59:41   ALO_fsroot_totalMB 7388
     2018-03-13 16:59:41   ALO_fsroot_usedMB 4289
     2018-03-13 16:59:41   ALO_ram_free    78.38
     2018-03-13 16:59:41   ALO_ram_percentused 36.13
     2018-03-13 16:59:41   ALO_ram_total   927.32
     2018-03-13 16:59:41   ALO_ram_used    335.05
     2018-03-13 16:59:41   mode            deactivated
     2018-03-13 16:59:41   state           deactivated
     2018-03-13 16:59:12   update          2018-03-13 16:58:12
   Regex:
   condition:
   do:
     0:
   helper:
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   DbLogInclude ALO_cpu_SumUsed,ALO_cpu_idle,ALO_cpu_io,ALO_cpu_irq,ALO_cpu_nice,ALO_cpu_sirq,ALO_cpu_sys,ALO_cpu_user,ALO_cputemp_curr,ALO_cputemp_max,ALO_cputemp_min,ALO_fsroot_availableMB,ALO_fsroot_percentused,ALO_fsroot_totalMB,ALO_fsroot_usedMB,ALO_ram_free,ALO_ram_percentused,ALO_ram_total,ALO_ram_used
   alias      sysmon - Raspi Performance Werte fürDBLogging sammeln
   checkReadingEvent 1
   disable    1
   do         always
   group      Raspberry
   room       00_Favoriten,96_Status
   userReadings ALO_ram_total {my @b = split ' ',ReadingsVal('BU.sysmon','ram',0);;$b[1]},
ALO_ram_used {my @b = split ' ',ReadingsVal('BU.sysmon','ram',0);;$b[4]},
ALO_ram_percentused {my @b = split ' ',ReadingsVal('BU.sysmon','ram',0);;$b[6]},
ALO_ram_free {my @b = split ' ',ReadingsVal('BU.sysmon','ram',0);;$b[9]},
ALO_fsroot_totalMB {my @b = split ' ',ReadingsVal('BU.sysmon','fs_root',0);;$b[1]},
ALO_fsroot_usedMB {my @b = split ' ',ReadingsVal('BU.sysmon','fs_root',0);;$b[4]},
ALO_fsroot_percentused {my @b = split ' ',ReadingsVal('BU.sysmon','fs_root',0);;$b[6]},
ALO_fsroot_availableMB {my @b = split ' ',ReadingsVal('BU.sysmon','fs_root',0);;$b[9]},
ALO_cputemp_min {my @b = split ' ',ReadingsVal('BU.sysmon','cpu_temp_stat',0);;$b[0]},
ALO_cputemp_max {my @b = split ' ',ReadingsVal('BU.sysmon','cpu_temp_stat',0);;$b[1]},
ALO_cputemp_curr {my @b = split ' ',ReadingsVal('BU.sysmon','cpu_temp_stat',0);;$b[2]},
ALO_cpu_user {my @b = split ' ',ReadingsVal('BU.sysmon','stat_cpu_percent',0);;$b[0]},
ALO_cpu_nice {my @b = split ' ',ReadingsVal('BU.sysmon','stat_cpu_percent',0);;$b[1]},
ALO_cpu_sys {my @b = split ' ',ReadingsVal('BU.sysmon','stat_cpu_percent',0);;$b[2]},
ALO_cpu_idle {my @b = split ' ',ReadingsVal('BU.sysmon','stat_cpu_percent',0);;$b[3]},
ALO_cpu_io {my @b = split ' ',ReadingsVal('BU.sysmon','stat_cpu_percent',0);;$b[4]},
ALO_cpu_irq {my @b = split ' ',ReadingsVal('BU.sysmon','stat_cpu_percent',0);;$b[5]},
ALO_cpu_sirq {my @b = split ' ',ReadingsVal('BU.sysmon','stat_cpu_percent',0);;$b[6]},
ALO_cpu_SumUsed {ReadingsVal($name,'ALO_cpu_user',0)+ReadingsVal($name,'ALO_cpu_nice',0)+ReadingsVal($name,'ALO_cpu_sys',0)+ReadingsVal($name,'ALO_cpu_io',0)+ReadingsVal($name,'ALO_cpu_irq',0)+ReadingsVal($name,'ALO_cpu_sirq',0)}

bei BU.sysmon habe ich das event-on-change-reding auf ram gesetzt.

Leider werden die Readings (fast immer) doppelt geschrieben.

Wo ist da mein Gedankenfehler?
« Letzte Änderung: 15 März 2018, 16:48:32 von Soc »

Offline Ellert

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2909
Antw:DOIF - Readings werden doppelt ins DBLog geschrieben
« Antwort #1 am: 13 März 2018, 22:54:06 »
Du hast keine beschränkenden Trigger für die userReadings angegeben.

Offline Soc

  • Full Member
  • ***
  • Beiträge: 215
Antw:DOIF - Readings werden doppelt ins DBLog geschrieben
« Antwort #2 am: 13 März 2018, 23:10:53 »
Mh, sagt mir leider nichts.
Wo muss ich was angebrn?

Offline Ellert

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2909
Antw:DOIF - Readings werden doppelt ins DBLog geschrieben
« Antwort #3 am: 14 März 2018, 08:47:28 »
Mh, sagt mir leider nichts.
Wo muss ich was angebrn?
Steht in der Befehlsreferenz zu userReadings, https://commandref.fhem.de/

Offline Soc

  • Full Member
  • ***
  • Beiträge: 215
Antw:DOIF - Readings werden doppelt ins DBLog geschrieben
« Antwort #4 am: 14 März 2018, 10:58:14 »
Danke für den Link.
Leider fehlt mir wohl das Wissen was ich wie ändern muss das die Logeinträge nur noch einmal geschrieben werden.

Kannst Du mir bitte schreiben was ich an meinen DOIF ändern muss?

Offline Ellert

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2909
Antw:DOIF - Readings werden doppelt ins DBLog geschrieben
« Antwort #5 am: 14 März 2018, 12:57:43 »
Wenn Du das fehlende Wissen ergänzen möchtest, helfe ich Dir.


Offline Soc

  • Full Member
  • ***
  • Beiträge: 215
Antw:DOIF - Readings werden doppelt ins DBLog geschrieben
« Antwort #6 am: 14 März 2018, 13:50:40 »
Wenn Du das fehlende Wissen ergänzen möchtest, helfe ich Dir.
Ok, gerne.
Da bin ich jetzt mal ganz Ohr. :-)

Das einzige was ich aus der commandref entnommen habe (wahrscheinlich liege ich da grotten falsch), das durch meine Abfrage ([BU.sysmon:"ram"]) selber ein Trigger ausgelöst wird.
Jenes kann man verhindern mit ([?BU.sysmon:"ram"]) (Fragezeiche = wird kein trigger ausgelöst).

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 9370
    • Otto's Technik Blog
Antw:DOIF - Readings werden doppelt ins DBLog geschrieben
« Antwort #7 am: 14 März 2018, 14:58:06 »
Hi,

ganz falscher Dampfer (glaube ich), mit trigger ist gemeint das DOIF Modul wird nicht getriggert sondern nur der Wert wird abgefragt. Es geht nicht darum einen Trigger im System zu erzeugen.

Mir ist dein DOIF zu kompliziert und ich verstehe de Sinn gar nicht, ich habe den Thread jeden Tag zweimal gelesen.

Was Ellert meint (glaube ich) Deine userreadings sind falsch definiert, es ist gar kein DOIF Problem!

Aber auch dort sind mir deine userreadings einfach zu umfangreich. Ich empfehle Dir pick Dir eine Stelle raus, mach ein separates define und untersuche das.
Ein großes Problem löst sich leichter wenn man viele kleine draus macht!  ;)

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline Soc

  • Full Member
  • ***
  • Beiträge: 215
Antw:DOIF - Readings werden doppelt ins DBLog geschrieben
« Antwort #8 am: 14 März 2018, 15:28:40 »
Hallo Otto,

da hast Du wahrscheinlich Recht.
Also was ich damit erreichen möchte ist folgendes:

Ich nehme ein Reading von sysmon auseinander (ist ein Textfesld mit vielen Infos z.B. für die CPU Auslastung) und stelle die einzelnen Werte wie "user/idle/io/sys/irq/sirq (Prozentangaben)" in jeweils einzelnen userReadings.
Diese benötige ich um ein Plot aufzubauen.
Als Input verwende ich für den Plot Sätze aus einer mySQL DB. Hier kann man leider im SVG nicht einen komplexen Logrecord (wie z.B. "user 0.34 sys 1.04 idle 98.56 ...") mit splitänlicher Funktion auseinander nehmen (was beim Filelogging mit Angabe eines offset im String funktioniert).

Sprich: Wenn im sysmon dieses besagte Reading aktuallisiert wird, möchte ich die einzelnen Werte entnehmen und als einzelne Readings in mein DBLog sichern.

In wie weit ein DOIF überhaupt dafür zu gebrauchen ist, kann man sicherlich hinterfragen.

Anfänglich hatte ich diese userReadings im sysmon selber eingebaut, was übrigens auch funktioniert hat (keine doppelten Einträge in der gleichen Sekunde).
Es gab dabei nur ein Problem.
Die Readings vom sysmon werden minütlich aktuallisiert und damit auch jede Minuten 19 Einträge in meine DBLog geschrieben. Was am Tag 27.000 Einträge ausgemacht hat.
Im sysmon kann man zwar das Interval je Bereich hoch setzen, aber einige generelle Readings werden trotzdem minütlich aktuallisiert und damit auch die userReadings in die DB geschrieben.

War jetzt ziemlich viel Text, aber ich hoffe damit das Problem darlegen zu können.

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 9370
    • Otto's Technik Blog
Antw:DOIF - Readings werden doppelt ins DBLog geschrieben
« Antwort #9 am: 14 März 2018, 15:38:25 »
Was mir spontan noch als Idee einfällt (weil ich gerade in meinem Code an einer ähnlichen Ecke war)
[BU.sysmon:"ram"]
Zitat
define di_garage DOIF ([remotecontrol:"on"]) (set garage on) DOELSEIF ([remotecontrol:"off"]) (set garage off)

In diesem Beispiel wird nach dem Vorkommen von "on" innerhalb des Events gesucht. Falls "on" gefunden wird, wird der Ausdruck wahr und der DOIF-Fall wird ausgeführt,
Mach mal Eventmonitor auf, Filter auf BU.sysmon.* und schau wie oft dort ram steht? Nur einmal?

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline Ellert

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2909
Antw:DOIF - Readings werden doppelt ins DBLog geschrieben
« Antwort #10 am: 14 März 2018, 16:40:03 »
Ok, gerne.
Da bin ich jetzt mal ganz Ohr. :-)

Das einzige was ich aus der commandref entnommen habe (wahrscheinlich liege ich da grotten falsch), das durch meine Abfrage ([BU.sysmon:"ram"]) selber ein Trigger ausgelöst wird.
Jenes kann man verhindern mit ([?BU.sysmon:"ram"]) (Fragezeiche = wird kein trigger ausgelöst).

Wenn Du den Trigger im DOIF vehinderst, dann werden keine userReadings berechnet, also das Fragezeichen löst das Problem nicht.

Zitat
In wie weit ein DOIF überhaupt dafür zu gebrauchen ist, kann man sicherlich hinterfragen.
Das ist in der Tat ein berechtigter Einwand.

Die userReadings in Sysmon anzulegen war eine gute Idee. Es können auch weniger Logeinträge erzeugt werden, auch wenn einige Readings häufiger aktualisiert werden. Und genau dafür kann der einschränkende Trigger in userReading genutzt werden.

Wissen musst Du, wann userReadings berechnet werden, das hast Du bestimmt gelesen:
Zitat
Diese benutzerdefinierte Readings werden bei jeder Aktualisierung der Gerätereadings gesetzt
Und zusätzlich wird gesagt
Zitat
Falls <trigger> spezifiziert ist, dann findet diese Ausführung nur dann statt, falls einer der aktualisierten Readings dem regexp <trigger> entspricht (matched).
Jedes berechnete Reading daher benötigt eine <trigger> Angabe, die genau zu einem Reading passt, das nur im langen Updateintervall aktualisiert wird.

Das Problem in Deinem DOIF ist, dass es vermutlich mehrere Events gibt. Auch hier könntest Du durch eine eindeutige <trigger> Angabe, z.B. cmd..1 die Berechnung nur einmal durchführen lassen.
« Letzte Änderung: 14 März 2018, 16:43:59 von Ellert »

Offline Soc

  • Full Member
  • ***
  • Beiträge: 215
Antw:DOIF - Readings werden doppelt ins DBLog geschrieben
« Antwort #11 am: 14 März 2018, 17:10:51 »
Was mir spontan noch als Idee einfällt (weil ich gerade in meinem Code an einer ähnlichen Ecke war)
[BU.sysmon:"ram"]Mach mal Eventmonitor auf, Filter auf BU.sysmon.* und schau wie oft dort ram steht? Nur einmal?

Der Event kommt wirklich nur 1 mal pro Minute (habe bei sysmon "event-on-update-reding ram" eingestellt.)

2018-03-14 17:08:07.294 SYSMON BU.sysmon ram: Total: 927.32 MB, Used: 246.59 MB, 26.59 %, Free: 241.95 MB
2018-03-14 17:09:07.299 SYSMON BU.sysmon ram: Total: 927.32 MB, Used: 246.56 MB, 26.59 %, Free: 241.95 MB

Offline Soc

  • Full Member
  • ***
  • Beiträge: 215
Antw:DOIF - Readings werden doppelt ins DBLog geschrieben
« Antwort #12 am: 14 März 2018, 17:14:31 »
Das Problem in Deinem DOIF ist, dass es vermutlich mehrere Events gibt. Auch hier könntest Du durch eine eindeutige <trigger> Angabe, z.B. cmd..1 die Berechnung nur einmal durchführen lassen.

Durch die Angabe von event-on-update-reading auf "ram" kommt wirklich pro Minute nur ein Event. (siehe oben)

Offline Soc

  • Full Member
  • ***
  • Beiträge: 215
Antw:DOIF - Readings werden doppelt ins DBLog geschrieben
« Antwort #13 am: 14 März 2018, 17:32:28 »
Ich habe nun die userReadings wieder in den sysmon verbannt.

Somit sieht das device wie folgt aus:

Internals:
   DEF        1 1 1 60
   INTERVAL_BASE 60
   INTERVAL_MULTIPLIERS 1 1 1 60
   MODE       local
   NAME       BU.sysmon
   NR         51
   STATE      Initialized
   TYPE       SYSMON
   READINGS:
     2018-03-14 17:27:07   ALO_cpu_SumUsed 1.15
     2018-03-14 17:27:07   ALO_cpu_idle    98.85
     2018-03-14 17:27:07   ALO_cpu_io      0.12
     2018-03-14 17:27:07   ALO_cpu_irq     0.00
     2018-03-14 17:27:07   ALO_cpu_nice    0.00
     2018-03-14 17:27:07   ALO_cpu_sirq    0.00
     2018-03-14 17:27:07   ALO_cpu_sys     0.40
     2018-03-14 17:27:07   ALO_cpu_user    0.63
     2018-03-14 17:27:07   ALO_cputemp_curr 45.58
     2018-03-14 17:27:07   ALO_cputemp_max 65.53
     2018-03-14 17:27:07   ALO_cputemp_min 37.01
     2018-03-14 17:27:07   ALO_fsroot_availableMB 2815
     2018-03-14 17:27:07   ALO_fsroot_percentused 61
     2018-03-14 17:27:07   ALO_fsroot_totalMB 7388
     2018-03-14 17:27:07   ALO_fsroot_usedMB 4242
     2018-03-14 17:27:07   ALO_ram_free    211.07
     2018-03-14 17:27:07   ALO_ram_percentused 27.84
     2018-03-14 17:27:07   ALO_ram_total   927.32
     2018-03-14 17:27:07   ALO_ram_used    258.15
     2018-03-14 17:27:07   cpu0_freq       600
     2018-03-14 17:27:07   cpu0_freq_stat  600.00 1200.00 635.65
     2018-03-14 17:27:07   cpu0_idle_stat  -4.32 100.14 97.97
     2018-03-14 17:27:07   cpu1_freq       600
     2018-03-14 17:27:07   cpu1_freq_stat  600.00 1200.00 635.65
     2018-03-14 17:27:07   cpu1_idle_stat  5.93 110.35 99.38
     2018-03-14 17:27:07   cpu2_freq       600
     2018-03-14 17:27:07   cpu2_freq_stat  600.00 1200.00 635.65
     2018-03-14 17:27:07   cpu2_idle_stat  -26.26 100.09 97.12
     2018-03-14 17:27:07   cpu3_freq       600
     2018-03-14 17:27:07   cpu3_freq_stat  600.00 1200.00 635.65
     2018-03-14 17:27:07   cpu3_idle_stat  9.10 102.72 99.42
     2018-03-13 17:33:56   cpu_bogomips    38.40
     2018-03-14 17:27:07   cpu_core_count  4
     2018-03-14 17:27:07   cpu_freq        600
     2018-03-14 17:27:07   cpu_freq_stat   600.00 1200.00 635.65
     2018-03-14 17:27:07   cpu_idle_stat   30.23 129.86 98.47
     2018-03-13 17:33:56   cpu_model_name  ARMv7 Processor rev 4 (v7l)
     2018-03-14 17:27:07   cpu_temp        45.62
     2018-03-14 17:27:07   cpu_temp_avg    45.5
     2018-03-14 17:27:07   cpu_temp_stat   37.01 65.53 45.58
     2018-03-14 17:27:07   eth0            RX: 68.82 MB, TX: 13.00 MB, Total: 81.82 MB
     2018-03-14 17:27:07   eth0_diff       RX: 0.04 MB, TX: 0.07 MB, Total: 0.11 MB
     2018-03-14 17:27:07   eth0_ip         192.168.50.201
     2018-03-14 17:27:07   eth0_rx         72158922
     2018-03-14 17:27:07   eth0_speed      100
     2018-03-14 17:27:07   eth0_tx         13636497
     2018-03-14 17:27:07   fhemstarttime   1520958779
     2018-03-14 17:27:07   fhemstarttime_text 13.03.2018 17:32:59
     2018-03-14 17:27:07   fhemuptime      86048
     2018-03-14 17:27:07   fhemuptime_text 0 days, 23 hours, 54 minutes
     2018-03-14 17:00:07   fs_boot         Total: 42 MB, Used: 21 MB, 51 %, Available: 21 MB at /boot
     2018-03-14 17:00:07   fs_root         Total: 7388 MB, Used: 4242 MB, 61 %, Available: 2815 MB at /
     2018-03-14 17:00:07   fs_usb1         Total: 0 MB, Used: 0 MB, 0 %, Available: 0 MB at //media/RaspiBackup (not available)
     2018-03-14 17:27:07   idletime        84827 98.56 %
     2018-03-14 17:27:07   idletime_text   0 days, 23 hours, 33 minutes (98.56 %)
     2018-03-14 17:27:07   loadavg         0.17 0.12 0.03
     2018-03-13 17:33:56   perl_version    v5.24.1
     2018-03-14 17:27:07   ram             Total: 927.32 MB, Used: 258.15 MB, 27.84 %, Free: 211.07 MB
     2018-02-21 16:49:15   ram_free        67.66
     2018-02-21 16:49:15   ram_total       927.32
     2018-02-21 16:49:15   ram_used        355.59
     2018-03-14 17:27:07   ram_used_stat   -1053.63 498.07 253.93
     2018-03-14 17:27:07   starttime       1520958760
     2018-03-14 17:27:07   starttime_text  13.03.2018 17:32:40
     2018-03-14 17:27:07   stat_cpu        215485 5697 146881 33931165 57094 0 2683
     2018-03-14 17:27:07   stat_cpu0       97548 1149 45805 8393232 19099 0 2334
     2018-03-14 17:27:07   stat_cpu0_diff  8 0 22 5910 26 0 1
     2018-03-14 17:27:07   stat_cpu0_percent 0.13 0.00 0.37 99.04 0.44 0.00 0.02
     2018-03-14 17:27:07   stat_cpu0_text  user: 0.13 %, nice: 0.00 %, sys: 0.37 %, idle: 99.04 %, io: 0.44 %, irq: 0.00 %, sirq: 0.02 %
     2018-03-14 17:27:07   stat_cpu1       40105 1810 38939 8507024 13968 0 97
     2018-03-14 17:27:07   stat_cpu1_diff  7 0 22 5969 0 0 0
     2018-03-14 17:27:07   stat_cpu1_percent 0.12 0.00 0.37 99.52 0.00 0.00 0.00
     2018-03-14 17:27:07   stat_cpu1_text  user: 0.12 %, nice: 0.00 %, sys: 0.37 %, idle: 99.52 %, io: 0.00 %, irq: 0.00 %, sirq: 0.00 %
     2018-03-14 17:27:07   stat_cpu2       33775 1243 27944 8525744 10657 0 160
     2018-03-14 17:27:07   stat_cpu2_diff  130 0 29 5831 2 0 0
     2018-03-14 17:27:07   stat_cpu2_percent 2.17 0.00 0.48 97.31 0.03 0.00 0.00
     2018-03-14 17:27:07   stat_cpu2_text  user: 2.17 %, nice: 0.00 %, sys: 0.48 %, idle: 97.31 %, io: 0.03 %, irq: 0.00 %, sirq: 0.00 %
     2018-03-14 17:27:07   stat_cpu3       44057 1495 34193 8505165 13370 0 92
     2018-03-14 17:27:07   stat_cpu3_diff  6 0 22 5968 0 0 0
     2018-03-14 17:27:07   stat_cpu3_percent 0.10 0.00 0.37 99.53 0.00 0.00 0.00
     2018-03-14 17:27:07   stat_cpu3_text  user: 0.10 %, nice: 0.00 %, sys: 0.37 %, idle: 99.53 %, io: 0.00 %, irq: 0.00 %, sirq: 0.00 %
     2018-03-14 17:27:07   stat_cpu_diff   151 0 95 23678 28 0 1
     2018-03-14 17:27:07   stat_cpu_percent 0.63 0.00 0.40 98.85 0.12 0.00 0.00
     2018-03-14 17:27:07   stat_cpu_text   user: 0.63 %, nice: 0.00 %, sys: 0.40 %, idle: 98.85 %, io: 0.12 %, irq: 0.00 %, sirq: 0.00 %
     2018-03-14 17:27:07   swap            Total: 100.00 MB, Used: 0.00 MB,  0.00 %, Free: 100.00 MB
     2018-03-14 17:27:07   swap_used_stat  0.00 87.81 0.01
     2018-03-14 17:27:07   uptime          86066
     2018-03-14 17:27:07   uptime_text     0 days, 23 hours, 54 minutes
     2018-03-14 17:27:07   wlan0           RX: 0.00 MB, TX: 0.00 MB, Total: 0 MB
     2018-03-14 17:27:07   wlan0_diff      RX: 0.00 MB, TX: 0.00 MB, Total: 0.00 MB
     2018-03-14 17:27:07   wlan0_rx        0
     2018-03-14 17:27:07   wlan0_tx        0
   helper:
     sys_cpu0_freq 1
     sys_cpu0_temp 0
     sys_cpu1_freq 1
     sys_cpu1_temp 0
     sys_cpu2_freq 1
     sys_cpu2_temp 0
     sys_cpu3_freq 1
     sys_cpu3_temp 0
     sys_cpu4_freq 0
     sys_cpu4_temp 0
     sys_cpu5_freq 0
     sys_cpu5_temp 0
     sys_cpu6_freq 0
     sys_cpu6_temp 0
     sys_cpu7_freq 0
     sys_cpu7_temp 0
     sys_cpu_freq_rpi_bbb 1
     sys_cpu_temp_rpi 1
     sys_fb     0
     sys_power_ac 0
     sys_power_bat 0
     sys_power_usb 0
     u_first_mark 1
     cur_readings_map:
       cpu0_freq  CPU frequency (core 0)
       cpu0_freq_stat CPU frequency (core 0) stat
       cpu0_idle_stat CPU0 min/max/avg (idle)
       cpu1_freq  CPU frequency (core 1)
       cpu1_freq_stat CPU frequency (core 1) stat
       cpu1_idle_stat CPU1 min/max/avg (idle)
       cpu2_freq  CPU frequency (core 2)
       cpu2_freq_stat CPU frequency (core 2) stat
       cpu2_idle_stat CPU2 min/max/avg (idle)
       cpu3_freq  CPU frequency (core 3)
       cpu3_freq_stat CPU frequency (core 3) stat
       cpu3_idle_stat CPU3 min/max/avg (idle)
       cpu4_idle_stat CPU4 min/max/avg (idle)
       cpu5_idle_stat CPU5 min/max/avg (idle)
       cpu6_idle_stat CPU6 min/max/avg (idle)
       cpu7_idle_stat CPU7 min/max/avg (idle)
       cpu_bogomips BogoMIPS
       cpu_core_count Number of CPU cores
       cpu_freq   CPU frequency
       cpu_freq_stat CPU frequency stat
       cpu_idle_stat CPU min/max/avg (idle)
       cpu_model_name CPU model name
       cpu_temp   CPU temperature
       cpu_temp_avg Average CPU temperature
       cpu_temp_stat CPU temperature stat
       date       Date
       eth0       Ethernet
       eth0_diff  Ethernet (diff)
       eth0_ip    Ethernet (IP)
       eth0_ip6   Ethernet (IP6)
       eth0_rx    Ethernet (RX)
       eth0_speed Ethernet (speed)
       eth0_tx    Ethernet (TX)
       fhemstarttime Fhem start time
       fhemstarttime_text Fhem start time
       fhemuptime System up time
       fhemuptime_text FHEM up time
       fs_boot    Filesystem /boot
       fs_boot_free Filesystem /boot (free)
       fs_boot_used Filesystem /boot (used)
       fs_boot_used_percent Filesystem /boot (used %)
       fs_root    Root
       fs_root_free Root (free)
       fs_root_used Root (used)
       fs_root_used_percent Root (used %)
       fs_usb1    USB-Stick
       fs_usb1_free USB-Stick (free)
       fs_usb1_used USB-Stick (used)
       fs_usb1_used_percent USB-Stick (used %)
       idletime   Idle time
       idletime_text Idle time
       io_sda     TEST
       io_sda_diff TEST
       io_sda_raw TEST
       loadavg    Load average
       loadavg_1  Load average 1
       loadavg_15 Load average 15
       loadavg_5  Load average 5
       perl_version Perl Version
       ram        RAM
       ram_free   RAM free
       ram_free_percent RAM free %
       ram_total  RAM total
       ram_used   RAM used
       ram_used_stat RAM used stat
       starttime  System start time
       starttime_text System start time
       stat_cpu   CPU statistics
       stat_cpu0  CPU0 statistics
       stat_cpu0_diff CPU0 statistics (diff)
       stat_cpu0_percent CPU0 statistics (diff, percent)
       stat_cpu0_text CPU0 statistics (text)
       stat_cpu1  CPU1 statistics
       stat_cpu1_diff CPU1 statistics (diff)
       stat_cpu1_percent CPU1 statistics (diff, percent)
       stat_cpu1_text CPU1 statistics (text)
       stat_cpu2  CPU2 statistics
       stat_cpu2_diff CPU2 statistics (diff)
       stat_cpu2_percent CPU2 statistics (diff, percent)
       stat_cpu2_text CPU2 statistics (text)
       stat_cpu3  CPU3 statistics
       stat_cpu3_diff CPU3 statistics (diff)
       stat_cpu3_percent CPU3 statistics (diff, percent)
       stat_cpu3_text CPU3 statistics (text)
       stat_cpu4  CPU4 statistics
       stat_cpu4_diff CPU4 statistics (diff)
       stat_cpu4_percent CPU4 statistics (diff, percent)
       stat_cpu4_text CPU4 statistics (text)
       stat_cpu5  CPU5 statistics
       stat_cpu5_diff CPU5 statistics (diff)
       stat_cpu5_percent CPU5 statistics (diff, percent)
       stat_cpu5_text CPU5 statistics (text)
       stat_cpu6  CPU6 statistics
       stat_cpu6_diff CPU6 statistics (diff)
       stat_cpu6_percent CPU6 statistics (diff, percent)
       stat_cpu6_text CPU6 statistics (text)
       stat_cpu7  CPU7 statistics
       stat_cpu7_diff CPU7 statistics (diff)
       stat_cpu7_percent CPU7 statistics (diff, percent)
       stat_cpu7_text CPU7 statistics (text)
       stat_cpu_diff CPU statistics (diff)
       stat_cpu_idle_percent CPU statistics idle %
       stat_cpu_io_percent CPU statistics io %
       stat_cpu_irq_percent CPU statistics irq %
       stat_cpu_nice_percent CPU statistics nice %
       stat_cpu_percent CPU statistics (diff, percent)
       stat_cpu_sirq_percent CPU statistics sirq %
       stat_cpu_sys_percent CPU statistics sys %
       stat_cpu_text CPU statistics (text)
       stat_cpu_user_percent CPU statistics user %
       swap       swap
       swap_free  swap free
       swap_total swap total
       swap_used  swap used
       swap_used_percent swap used %
       swap_used_stat swap used stat
       uptime     System up time
       uptime_text System up time
       wlan0      WiFi
       wlan0_diff WiFi (diff)
       wlan0_ip   WiFi (IP)
       wlan0_ip6  WiFi (IP6)
       wlan0_rx   WiFi (RX)
       wlan0_speed WiFi (speed)
       wlan0_tx   WiFi (TX)
     excludes:
Attributes:
   DbLogExclude .*
   filesystems fs_boot:/boot,fs_root:/:Root,fs_usb1://media/RaspiBackup:USB-Stick
   network-interfaces eth0:eth0:Ethernet,wlan0:wlan0:WiFi
   room       30_Buero,96_Status
   userReadings ALO_ram_total {my @b = split ' ',ReadingsVal($name,'ram',0);;$b[1]},
ALO_ram_used {my @b = split ' ',ReadingsVal($name,'ram',0);;$b[4]},
ALO_ram_percentused {my @b = split ' ',ReadingsVal($name,'ram',0);;$b[6]},
ALO_ram_free {my @b = split ' ',ReadingsVal($name,'ram',0);;$b[9]},
ALO_fsroot_totalMB {my @b = split ' ',ReadingsVal($name,'fs_root',0);;$b[1]},
ALO_fsroot_usedMB {my @b = split ' ',ReadingsVal($name,'fs_root',0);;$b[4]},
ALO_fsroot_percentused {my @b = split ' ',ReadingsVal($name,'fs_root',0);;$b[6]},
ALO_fsroot_availableMB {my @b = split ' ',ReadingsVal($name,'fs_root',0);;$b[9]},
ALO_cputemp_min {my @b = split ' ',ReadingsVal($name,'cpu_temp_stat',0);;$b[0]},
ALO_cputemp_max {my @b = split ' ',ReadingsVal($name,'cpu_temp_stat',0);;$b[1]},
ALO_cputemp_curr {my @b = split ' ',ReadingsVal($name,'cpu_temp_stat',0);;$b[2]},
ALO_cpu_user {my @b = split ' ',ReadingsVal($name,'stat_cpu_percent',0);;$b[0]},
ALO_cpu_nice {my @b = split ' ',ReadingsVal($name,'stat_cpu_percent',0);;$b[1]},
ALO_cpu_sys {my @b = split ' ',ReadingsVal($name,'stat_cpu_percent',0);;$b[2]},
ALO_cpu_idle {my @b = split ' ',ReadingsVal($name,'stat_cpu_percent',0);;$b[3]},
ALO_cpu_io {my @b = split ' ',ReadingsVal($name,'stat_cpu_percent',0);;$b[4]},
ALO_cpu_irq {my @b = split ' ',ReadingsVal($name,'stat_cpu_percent',0);;$b[5]},
ALO_cpu_sirq {my @b = split ' ',ReadingsVal($name,'stat_cpu_percent',0);;$b[6]},
ALO_cpu_SumUsed {ReadingsVal($name,'ALO_cpu_user',0)+ReadingsVal($name,'ALO_cpu_nice',0)+ReadingsVal($name,'ALO_cpu_sys',0)+ReadingsVal($name,'ALO_cpu_io',0)+ReadingsVal($name,'ALO_cpu_irq',0)+ReadingsVal($name,'ALO_cpu_sirq',0)}

Mit der Anpassung der Definition (1 1 1 60) ändere ich den Multiplikator von Intervall (INTERVAL_BASE steht auf 60 Sekunden).
Wenn ich alle auf 60 stelle werden die userReadings trotzdem aktualisiert da andere Reading von der neuen Zeitspanne ausgenommen werden.
Sobald ich meine readings mit in DBLogInclude nehme, landen sie dann trotzdem jede Minute im Log.

Wohin soll ich das Thema verschieben (ist ja kein DOIF Problem mehr)?

Offline Soc

  • Full Member
  • ***
  • Beiträge: 215
Antw:DOIF - Readings werden doppelt ins DBLog geschrieben
« Antwort #14 am: 14 März 2018, 18:19:35 »
Interessant ist, dass selbst hier (userReadings in sysmon) doppelte Einträge in den Log geschrieben werden.
Und zwar mit einer Sekunde Unterschied.