FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Ruggy am 24 Juli 2019, 18:19:49

Titel: FHEM läd extrem langsam
Beitrag von: Ruggy am 24 Juli 2019, 18:19:49
Hallo,
seit längerm läd FHEM extrem langsam. Vor allem, wenn ich die Temperaturwerte anzeigen lassen bzw. Räume mit Temperatursensoren.

im Logfile zeigt Freezemon folgende Meldungen an (habe vom 21.07. mal ein paar Meldungen herauskopiert; wiederholen sich anscheinend immer wieder):

2019.07.21 01:11:02 1: [Freezemon] myFreezemon: possible freeze starting at 01:11:00, delay is 2.52 possibly caused by: no bad guy found :-(
2019.07.21 01:14:44 1: [Freezemon] myFreezemon: possible freeze starting at 01:14:43, delay is 1.51 possibly caused by: no bad guy found :-(
2019.07.21 01:14:48 1: [Freezemon] myFreezemon: possible freeze starting at 01:14:47, delay is 1.826 possibly caused by: no bad guy found :-(
2019.07.21 01:15:49 1: [Freezemon] myFreezemon: possible freeze starting at 01:15:47, delay is 2.212 possibly caused by: no bad guy found :-(
2019.07.21 01:24:18 1: [Freezemon] myFreezemon: possible freeze starting at 01:24:17, delay is 1.801 possibly caused by: tmr-at_Exec(at_KIND_virt_Temperatur_Sensor1) tmr-at_Exec(at_KIND_virt_Temperatur_Sensor2) tmr-at_Exec(at_WOH_virt_Temperatur) tmr-at_Exec(at_WOH_virt_Temperatur_2) tmr-at_Exec(at_WOH_virt_Temperatur_3)
2019.07.21 02:24:18 1: [Freezemon] myFreezemon: possible freeze starting at 02:24:17, delay is 1.792 possibly caused by: tmr-at_Exec(at_KIND_virt_Temperatur_Sensor1) tmr-at_Exec(at_KIND_virt_Temperatur_Sensor2) tmr-at_Exec(at_WOH_virt_Temperatur) tmr-at_Exec(at_WOH_virt_Temperatur_2) tmr-at_Exec(at_WOH_virt_Temperatur_3)
2019.07.21 03:24:18 1: [Freezemon] myFreezemon: possible freeze starting at 03:24:17, delay is 1.875 possibly caused by: tmr-HMUARTLGW_CheckCredits(HmUART) tmr-at_Exec(at_KIND_virt_Temperatur_Sensor1) tmr-at_Exec(at_KIND_virt_Temperatur_Sensor2) tmr-at_Exec(at_WOH_virt_Temperatur) tmr-at_Exec(at_WOH_virt_Temperatur_2) tmr-at_Exec(at_WOH_virt_Temperatur_3)
2019.07.21 04:14:09 1: [Freezemon] myFreezemon: possible freeze starting at 04:14:08, delay is 1.834 possibly caused by: tmr-CUL_HM_valvePosUpdt(96517501)
2019.07.21 04:24:18 1: [Freezemon] myFreezemon: possible freeze starting at 04:24:17, delay is 1.802 possibly caused by: tmr-at_Exec(at_KIND_virt_Temperatur_Sensor1) tmr-at_Exec(at_KIND_virt_Temperatur_Sensor2) tmr-at_Exec(at_WOH_virt_Temperatur) tmr-at_Exec(at_WOH_virt_Temperatur_2) tmr-at_Exec(at_WOH_virt_Temperatur_3)
2019.07.21 05:24:18 1: [Freezemon] myFreezemon: possible freeze starting at 05:24:17, delay is 1.755 possibly caused by: tmr-at_Exec(at_KIND_virt_Temperatur_Sensor1) tmr-at_Exec(at_KIND_virt_Temperatur_Sensor2) tmr-at_Exec(at_WOH_virt_Temperatur) tmr-at_Exec(at_WOH_virt_Temperatur_2) tmr-at_Exec(at_WOH_virt_Temperatur_3)
2019.07.21 06:24:19 1: [Freezemon] myFreezemon: possible freeze starting at 06:24:17, delay is 2.078 possibly caused by: tmr-at_Exec(at_KIND_virt_Temperatur_Sensor1) tmr-at_Exec(at_KIND_virt_Temperatur_Sensor2) tmr-at_Exec(at_WOH_virt_Temperatur) tmr-at_Exec(at_WOH_virt_Temperatur_2) tmr-at_Exec(at_WOH_virt_Temperatur_3) tmr-HttpUtils_Err(N/A)
2019.07.21 07:24:18 1: [Freezemon] myFreezemon: possible freeze starting at 07:24:17, delay is 1.764 possibly caused by: tmr-at_Exec(at_KIND_virt_Temperatur_Sensor1) tmr-at_Exec(at_KIND_virt_Temperatur_Sensor2) tmr-at_Exec(at_WOH_virt_Temperatur) tmr-at_Exec(at_WOH_virt_Temperatur_2) tmr-at_Exec(at_WOH_virt_Temperatur_3)
2019.07.21 09:24:18 1: [Freezemon] myFreezemon: possible freeze starting at 09:24:17, delay is 1.885 possibly caused by: tmr-at_Exec(at_KIND_virt_Temperatur_Sensor1) tmr-at_Exec(at_KIND_virt_Temperatur_Sensor2) tmr-at_Exec(at_WOH_virt_Temperatur) tmr-at_Exec(at_WOH_virt_Temperatur_2) tmr-at_Exec(at_WOH_virt_Temperatur_3)
2019.07.21 10:24:18 1: [Freezemon] myFreezemon: possible freeze starting at 10:24:17, delay is 1.913 possibly caused by: tmr-HMUARTLGW_CheckCredits(HmUART) tmr-at_Exec(at_KIND_virt_Temperatur_Sensor1) tmr-at_Exec(at_KIND_virt_Temperatur_Sensor2) tmr-at_Exec(at_WOH_virt_Temperatur) tmr-at_Exec(at_WOH_virt_Temperatur_2) tmr-at_Exec(at_WOH_virt_Temperatur_3)
2019.07.21 11:24:18 1: [Freezemon] myFreezemon: possible freeze starting at 11:24:17, delay is 1.738 possibly caused by: tmr-CUL_HM_valvePosUpdt(85764302) tmr-at_Exec(at_KIND_virt_Temperatur_Sensor1) tmr-at_Exec(at_KIND_virt_Temperatur_Sensor2) tmr-at_Exec(at_WOH_virt_Temperatur) tmr-at_Exec(at_WOH_virt_Temperatur_2) tmr-at_Exec(at_WOH_virt_Temperatur_3)
2019.07.21 12:24:18 1: [Freezemon] myFreezemon: possible freeze starting at 12:24:17, delay is 1.739 possibly caused by: tmr-at_Exec(at_KIND_virt_Temperatur_Sensor1) tmr-at_Exec(at_KIND_virt_Temperatur_Sensor2) tmr-at_Exec(at_WOH_virt_Temperatur) tmr-at_Exec(at_WOH_virt_Temperatur_2) tmr-at_Exec(at_WOH_virt_Temperatur_3)



Hier ein list vom KIND_virt_Temperatur_Sensor1, an dem es ansch. mit liegt (die anderen Devices kann ich gerne auch noch einstellen, falls benötigt):

Internals:
   DEF        85764301
   FUUID      5c65c66f-f33f-194f-a8ed-cae43cd59de3bfbb
   NAME       KIND_virt_Temperatur_Sensor1
   NOTIFYDEV  global
   NR         131
   NTFY_ORDER 50-KIND_virt_Temperatur_Sensor1
   STATE      set_virtTemp 27.12
   TYPE       CUL_HM
   chanNo     01
   device     KIND_virt_Temperatur
   peerList   KIND_HEIZUNG_1_Weather,
   Helper:
     DBLOG:
       state:
         DbLog:
           TIME       1563982884.17976
           VALUE      set_virtTemp 27.12
       temperature:
         DbLog:
           TIME       1563982884.15539
           VALUE      27.12
   READINGS:
     2019-07-24 14:41:25   peerList        KIND_HEIZUNG_1_Weather,
     2019-07-24 17:41:24   state           set_virtTemp 27.12
     2019-07-24 17:41:24   temperature     27.12
   helper:
     fkt        virtThSens
     peerFriend peerSD,peerSens,peerAct
     peerOpt    -:virtual
     regLst     
     virtTC     00
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     role:
       chn        1
       vrt        1
     tmpl:
     vd:
       cmd        8470857643000000
       idh        2369086
       idl        17152
       msgCnt     81
       msgRed     0
       next       1563985135.11012
       nextM      1563985135.11012
       typ        2
       val        010F
       vin        27.12
Attributes:
   model      VIRTUAL
   peerIDs    62FB6A01,
   webCmd     press short:press long



Vielen Dank

Ruggy
Titel: Antw:FHEM läd extrem langsam
Beitrag von: Ruggy am 06 Oktober 2019, 10:37:07
Leider bin ich noch nicht weitergekommen.

Jetzt ist es leider nur so, dass ich nahezu keine Temperatur/Feuchtewerte mehr auslesen kann.
Es hängt anscheinend auch irgendwie mit den Sensoren (Xiaomi) und deren Logs zusammen. Oder mit den zusammenhängenden virtuellen Sensoren (für die Steuerung der Heizkörperthermostate; Homematic).
Die Räume in denen sich diese Sensoren befinden kann ich nicht mehr laden. Es läd und läd und läd...

Der Rest wie Türsensor, Lichtschalter, Steckdosenschalter funktionieren noch normal.
Die Räume in denen sich keine Temperatursensoren befinden werden relativ schnell angezeigt.


Wahrscheinlich bleibt mir nichts anderes übrig, FHEM komplett neu zu instalieren.
Ich hätte nur  dabei den Fehler nicht erneut gemacht.

Falls noch andere Lists benötigt werden kann ich das gerne machen.

Danke
Grüße  Ruggy


Folgendes wird durch den Befehl apptime max angezeigt.

active-timers: 19; max-active timers: 21; max-timer-load: 7  min-tmrHandlingTm: 0.0ms; max-tmrHandlingTm: 671.2ms; totAvgDly: 1590.1ms

name                                     function                               max    count      total  average   maxDly   avgDly TS Max call     param Max call
DbLog                                    DbLog_Get                            60982        2   71830.94 35915.47     0.00     0.00 06.10. 10:12:30 HASH(DbLog); DbLog; HISTORY; INT; 2019-10-06_00:00:00; 2019-10-06_23:59:59; KIND_LUFTFEUCHTE:temperature; KIND_LUFTFEUCHTE:humidity
HmUART                                   HMUARTLGW_Read                         573      330    3644.49    11.04     0.00     0.00 06.10. 10:12:42 HASH(HmUART)
tmr-CUL_HM_valvePosUpdt                  valvePos                               411       38    3257.40    85.72 50281.69  2254.59 06.10. 10:12:41 valvePos:96517501
presence.karsten                         PRESENCE_Notify                        255       35    1335.04    38.14     0.00     0.00 06.10. 10:09:31 HASH(presence.karsten); HASH(Unifi_AP_Abstellkammer)
DbLog                                    DbLog_Log                              252      364    9197.34    25.27     0.00     0.00 06.10. 10:09:31 HASH(DbLog); HASH(presence.karsten)
MQTT                                     MQTT::Read                             242       23     375.63    16.33     0.00     0.00 06.10. 10:12:43 HASH(MQTT)
presence.susi                            PRESENCE_Notify                        229       35    1259.16    35.98     0.00     0.00 06.10. 10:12:45 HASH(presence.susi); HASH(Unifi_AP_Abstellkammer)
deCONZ                                   HUEBridge_Read                         182       21     570.21    27.15     0.00     0.00 06.10. 10:27:41 HASH(deCONZ)
tmr-at_Exec                              HASH(0x3b54ab8)                         84        1      84.18    84.18    85.14    85.14 06.10. 10:19:59 HASH(at_WOH_virt_Temperatur)
tmr-at_Exec                              HASH(0x3b55150)                         67        1      67.22    67.22   167.93   167.93 06.10. 10:19:59 HASH(at_WOH_virt_Temperatur_2)
tmr-at_Exec                              HASH(0x3b27228)                         65        1      65.04    65.04     1.93     1.93 06.10. 10:19:58 HASH(at_KIND_virt_Temperatur_Sensor1)
tmr-at_Exec                              HASH(0x2b14f60)                         64        1      64.04    64.04   233.69   233.69 06.10. 10:19:59 HASH(at_WOH_virt_Temperatur_3)
tmr-at_Exec                              HASH(0x3b40060)                         57        1      57.62    57.62    65.55    65.55 06.10. 10:19:58 HASH(at_KIND_virt_Temperatur_Sensor2)
WOH_virt_Temperatur_Sensor1              CUL_HM_Set                              54        1      54.91    54.91     0.00     0.00 06.10. 10:19:59 HASH(WOH_virt_Temperatur_Sensor1); WOH_virt_Temperatur_Sensor1; virtTemp; 21.16
WOH_virt_Temperatur_2_Sensor1            CUL_HM_Set                              46        1      46.64    46.64     0.00     0.00 06.10. 10:19:59 HASH(WOH_virt_Temperatur_2_Sensor1); WOH_virt_Temperatur_2_Sensor1; virtTemp; 21.16
nanoCUL                                  CUL_Read                                39        9     241.55    26.84     0.00     0.00 06.10. 10:25:25 HASH(nanoCUL)
KIND_virt_Temperatur_Sensor2             CUL_HM_Set                              37        2      47.66    23.83     0.00     0.00 06.10. 10:19:58 HASH(KIND_virt_Temperatur_Sensor2); KIND_virt_Temperatur_Sensor2; virtTemp; 19.23
WOH_virt_Temperatur_3_Sensor1            CUL_HM_Set                              37        1      37.26    37.26     0.00     0.00 06.10. 10:19:59 HASH(WOH_virt_Temperatur_3_Sensor1); WOH_virt_Temperatur_3_Sensor1; virtTemp; 21.16
KIND_virt_Temperatur_Sensor1             CUL_HM_Set                              36        1      36.65    36.65     0.00     0.00 06.10. 10:19:58 HASH(KIND_virt_Temperatur_Sensor1); KIND_virt_Temperatur_Sensor1; virtTemp; 19.23
KIND_LUFTDRUCK                           HUEDevice_Set                           20        1      20.97    20.97     0.00     0.00 06.10. 10:11:29 HASH(KIND_LUFTDRUCK); KIND_LUFTDRUCK; ?
MQTT                                     MQTT::Ready                             18        2      18.97     9.48     0.00     0.00 06.10. 10:12:42 HASH(MQTT)
KIND_HEIZUNG_1                           CUL_HM_Set                               7        1       7.78     7.78     0.00     0.00 06.10. 10:11:29 HASH(KIND_HEIZUNG_1); KIND_HEIZUNG_1; ?
KIND_HEIZUNG_2                           CUL_HM_Set                               7        1       7.75     7.75     0.00     0.00 06.10. 10:11:29 HASH(KIND_HEIZUNG_2); KIND_HEIZUNG_2; ?
FileLog_WOH_HEIZUNG_2                    FileLog_Log                              7        7      17.34     2.48     0.00     0.00 06.10. 10:22:18 HASH(FileLog_WOH_HEIZUNG_2); HASH(WOH_HEIZUNG_2)
Push_FLUR_BEWEG_1_notify                 notify_Exec                              7        6      23.57     3.93     0.00     0.00 06.10. 10:21:29 HASH(Push_FLUR_BEWEG_1_notify); HASH(FLUR_BEWEG_1)
FileLog_WOH_HEIZUNG_1                    FileLog_Log                              6        8      10.97     1.37     0.00     0.00 06.10. 10:12:41 HASH(FileLog_WOH_HEIZUNG_1); HASH(WOH_HEIZUNG_1)
FileLog_KIND_HEIZUNG_2                   FileLog_Log                              6        7      10.01     1.43     0.00     0.00 06.10. 10:13:25 HASH(FileLog_KIND_HEIZUNG_2); HASH(KIND_HEIZUNG_2)
FileLog_KIND_HEIZUNG_1                   FileLog_Log                              6        8      10.68     1.33     0.00     0.00 06.10. 10:13:31 HASH(FileLog_KIND_HEIZUNG_1); HASH(KIND_HEIZUNG_1)
FileLog_WOH_HEIZUNG_3                    FileLog_Log                              6        7      10.62     1.52     0.00     0.00 06.10. 10:13:39 HASH(FileLog_WOH_HEIZUNG_3); HASH(WOH_HEIZUNG_3)
BALKON_TEMPERATUR_FileLog_1              FileLog_Log                              6        2       7.09     3.55     0.00     0.00 06.10. 10:26:54 HASH(BALKON_TEMPERATUR_FileLog_1); HASH(BALKON_TEMPERATUR)
tmr-CUL_HM_ActCheck                      ActionDetector                           3        2       5.96     2.98   135.07    69.07 06.10. 10:20:01 ActionDetector
FileLog_CUL_TX_78                        FileLog_Log                              3        1       3.72     3.72     0.00     0.00 06.10. 10:23:03 HASH(FileLog_CUL_TX_78); HASH(CUL_TX_78)
tmr-Unifi_DoUpdate                       HASH(0x3b57418)                          3       35      70.44     2.01 60073.70  1718.97 06.10. 10:20:27 HASH(Unifi_AP_Abstellkammer)
tmr-HMUARTLGW_CheckCredits               HMUARTLGW_CheckCredits                   3       76     170.24     2.24 71652.90   949.66 06.10. 10:17:41 HMUARTLGW_CheckCredits:HmUART
tmr-HUEBridge_GetUpdate                  HASH(0x2995b00)                          3       20      46.63     2.33 38662.47  1946.92 06.10. 10:17:41 HASH(deCONZ)
FileLog_FLUR_BEWEG_1                     FileLog_Log                              3        6       6.36     1.06     0.00     0.00 06.10. 10:21:29 HASH(FileLog_FLUR_BEWEG_1); HASH(FLUR_BEWEG_1)
dewpointToAllDeviceReadings              dewpoint_Notify                          3      364     169.58     0.47     0.00     0.00 06.10. 10:14:25 HASH(dewpointToAllDeviceReadings); HASH(Unifi_AP_Abstellkammer)
tmr-HMUARTLGW_CheckCmdResp               HASH(0x296bb48)                          2        1       2.69     2.69    45.29    45.29 06.10. 10:12:42 HASH(HmUART)
tmr-MQTT::Timer                          HASH(0x3c221e8)                          2       20      38.45     1.92 38670.69  1940.00 06.10. 10:17:42 HASH(MQTT)
FileLog_HM_544B10                        FileLog_Log                              2      364     165.31     0.45     0.00     0.00 06.10. 10:14:25 HASH(FileLog_HM_544B10); HASH(Unifi_AP_Abstellkammer)
FileLog_HM_62FAC4                        FileLog_Log                              2      364     126.23     0.35     0.00     0.00 06.10. 10:23:16 HASH(FileLog_HM_62FAC4); HASH(Unifi_AP_Abstellkammer)



Ein List von DbLog

Internals:
   COLUMNS    field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
   CONFIGURATION ./db.conf
   DEF        ./db.conf .*:(temperature|humidity|dewpoint|absFeuchte|pressure|state|open|closed|on|off|water|ValvePosition).*
   FUUID      5c65c66f-f33f-194f-58b0-1caee314a069d7a7
   MODE       synchronous
   MODEL      SQLITE
   NAME       DbLog
   NR         85
   NTFY_ORDER 50-DbLog
   PID        32618
   REGEXP     .*:(temperature|humidity|dewpoint|absFeuchte|pressure|state|open|closed|on|off|water|ValvePosition).*
   STATE      connected
   TYPE       DbLog
   VERSION    3.13.1
   dbconn     SQLite:dbname=/opt/fhem/fhem.db
   dbuser     
   HELPER:
     COLSET     1
     DEVICECOL  64
     EVENTCOL   512
     OLDSTATE   connected
     READINGCOL 64
     TYPECOL    64
     UNITCOL    32
     VALUECOL   128
   Helper:
     DBLOG:
       state:
         DbLog:
           TIME       1570342802.67589
           VALUE      connected
   READINGS:
     2019-10-06 10:29:37   state           connected
   cache:
     index      0
   helper:
     bm:
       DbLog_Get:
         cnt        2
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        06.10. 10:12:30
         max        60.9821169376373
         tot        71.8309409618378
         mAr:
           HASH(DbLog)
           DbLog
           HISTORY
           INT
           2019-10-06_00:00:00
           2019-10-06_23:59:59
           KIND_LUFTFEUCHTE:temperature
           KIND_LUFTFEUCHTE:humidity
       DbLog_Log:
         cnt        387
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        06.10. 10:09:31
         max        0.252151966094971
         tot        9.59991788864136
         mAr:
           HASH(DbLog)
           HASH(presence.karsten)
       DbLog_regexpFn:
         cnt        2
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        06.10. 10:12:41
         max        7.48634338378906e-05
         tot        0.000139713287353516
         mAr:
           DbLog
           KIND_LUFTFEUCHTE:absFeuchte KIND_LUFTFEUCHTE:dewpoint
Attributes:
   DbLogType  Current/History


Titel: Antw:FHEM läd extrem langsam
Beitrag von: MadMax-FHEM am 06 Oktober 2019, 10:47:38
Hast du auf den Seiten mit den Temp-Sensoren auch irgendwelche Plots!?

Wie häufig loggst du denn Temp-Werte?
Wie sehen die Log-Devices aus, also wie groß ist die Datenmenge?
(Wenn du FileLog hättest, wüsste ich wie man das sieht, also wie häufig wird eine neue Logdatei angelegt: 1x pro Jahr, 1x pro Monat, 1x pro ... / bei DBLog weiß ich leider nicht wie man das feststellt)

Hast du event-on-change-reading etc. "im Einsatz"!?
(solltest du dir mal anschauen, wenn noch nicht)

Weil ansonsten sind die Detailansichten (egal von was) unabhängig von den Werten eines Devices im Log...
...wird ja nicht (bzw. halt max. in Plots) angezeigt...

Wenn das Problem an diesen Dingen liegt: zu viele Daten im Log und (zu) viele Plots auf den Seiten, dann wird ein neu aufsetzen nicht wirklich helfen (außer wirklich NEU OHNE die "alten" Logs / und das dann nur, bis die neu aufgesetzten Logs wieder "groß" sind)...

Gruß, Joachim
Titel: Antw:FHEM läd extrem langsam
Beitrag von: Ruggy am 06 Oktober 2019, 13:47:43
Auf den Seiten bzw. Räumen mit den Sensoren habe ich Plots aus den DbLogs.

So sieht z.B. das List vom Sensor im Kinderzimmer. Aus diesen lese ich Temperatur, Luftfeuchtigkeit, abs. Luftfeuchtigkeit, Taupunkt.

Internals:
   DEF        sensor 10  IODev=deCONZ
   FUUID      5c65c66e-f33f-194f-7c57-c84105a208a13e31
   ID         S10
   INTERVAL   
   IODev      deCONZ
   NAME       KIND_LUFTFEUCHTE
   NR         61
   STATE      Initialized
   TYPE       HUEDevice
   lastupdated 2019-10-06 11:17:33
   lastupdated_local 2019-10-06 12:17:33
   manufacturername LUMI
   modelid    lumi.weather
   name       Multi_Kinderzimmer
   on         1
   reachable  1
   swversion  20161129
   type       ZHAHumidity
   uniqueid   00:15:8d:00:02:78:9d:dc-01-0405
   Helper:
     DBLOG:
       absFeuchte:
         DbLog:
           TIME       1570360653.20201
           VALUE      9.9
       dewpoint:
         DbLog:
           TIME       1570360653.20201
           VALUE      11.3
       humidity:
         DbLog:
           TIME       1570360653.20201
           VALUE      57.27
       temperature:
         DbLog:
           TIME       1570360653.20201
           VALUE      20.04
   READINGS:
     2019-10-06 13:17:33   absFeuchte      9.9
     2019-10-06 13:17:33   battery         100
     2019-10-06 13:17:33   dewpoint        11.3
     2019-10-06 12:17:33   humidity        57.27
     2019-10-06 13:17:33   reachable       1
     2019-10-06 13:17:33   temperature     20.04
   helper:
     devtype    S
     reachable  0
     update_timeout 1
     bm:
       HUEDevice_Get:
         cnt        1
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        06.10. 13:31:48
         max        6.103515625e-05
         tot        6.103515625e-05
         mAr:
           HASH(0x32654f0)
           KIND_LUFTFEUCHTE
           ?
       HUEDevice_Set:
         cnt        3
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        06.10. 13:31:48
         max        0.00120687484741211
         tot        0.00283002853393555
         mAr:
           HASH(0x32654f0)
           KIND_LUFTFEUCHTE
           ?
     setList:
Attributes:
   IODev      deCONZ
   room       Kinderzimmer
   userReadings temperature {ReadingsVal("KIND_TEMPERATUR","temperature",0)}



So sieht der virt Temperatursensor vom Kinderzimmer aus.

Internals:
   COMMAND    { my $T=(ReadingsVal("KIND_LUFTFEUCHTE","temperature",20.0)); fhem "set KIND_virt_Temperatur_Sensor1 virtTemp $T" }
   DEF        +*01:00 { my $T=(ReadingsVal("KIND_LUFTFEUCHTE","temperature",20.0)); fhem "set KIND_virt_Temperatur_Sensor1 virtTemp $T" }
   FUUID      5c65c66f-f33f-194f-50a5-0d83b901c7b79372
   NAME       at_KIND_virt_Temperatur_Sensor1
   NR         133
   NTM        14:19:58
   PERIODIC   yes
   RELATIVE   yes
   REP        -1
   STATE      Next: 14:19:58
   TIMESPEC   01:00
   TRIGGERTIME 1570364398.84665
   TRIGGERTIME_FMT 2019-10-06 14:19:58
   TYPE       at
   Helper:
     DBLOG:
       state:
         DbLog:
           TIME       1570360799.10468
           VALUE      Next
   READINGS:
     2019-10-06 13:19:59   state           Next: 14:19:58
   helper:
     bm:
       at_Set:
         cnt        1
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        06.10. 13:31:40
         max        0.000165939331054688
         tot        0.000165939331054688
         mAr:
           HASH(0x3b27228)
           at_KIND_virt_Temperatur_Sensor1
           ?
Attributes:


Hier das Verzeichnis log unter fhem.
(Ganz schön viel; kenne mich leider zu wenig aus; wusste nicht, was hier alles geloggt wird. Von Hoermann habe ich eigentlich keine Geräte.)

total 430120
-rw-r--r-- 1 fhem dialout      3347 Dec 19  2018 BALKON_LUFTFEUCHTE_FileLog_1.log
-rw-r--r-- 1 fhem dialout   2827690 Oct  6 13:04 BALKON_TEMPERATUR_FileLog_1.log
-rw-r--r-- 1 fhem dialout         0 May 15 14:30 CUL_FHTTK_0cc0c0-2019.log
-rw-r--r-- 1 fhem dialout         0 Mar 18  2019 CUL_FHTTK_634178-2019.log
-rw-r--r-- 1 fhem dialout         0 Mar  9  2019 CUL_HOERMANN_0010020050-2019.log
-rw-r--r-- 1 fhem dialout         0 Apr 28 15:51 CUL_HOERMANN_02310410A0-2019.log
-rw-r--r-- 1 fhem dialout         0 Apr 27 08:53 CUL_HOERMANN_026425D080-2019.log
-rw-r--r-- 1 fhem dialout         0 Aug 16 08:33 CUL_HOERMANN_0400110000-2019.log
-rw-r--r-- 1 fhem dialout         0 Mar 15  2019 CUL_HOERMANN_312C601840-2019.log
-rw-r--r-- 1 fhem dialout         0 May  4 05:15 CUL_HOERMANN_3900800880-2019.log
-rw-r--r-- 1 fhem dialout         0 Aug 21 19:51 CUL_HOERMANN_4040132010-2019.log
-rw-r--r-- 1 fhem dialout         0 Apr  8 22:51 CUL_HOERMANN_4572881800-2019.log
-rw-r--r-- 1 fhem dialout         0 Mar 13  2019 CUL_HOERMANN_45C0480380-2019.log
-rw-r--r-- 1 fhem dialout         0 Sep 25 19:05 CUL_HOERMANN_503188F000-2019.log
-rw-r--r-- 1 fhem dialout         0 Mar  9  2019 CUL_HOERMANN_6B7EFFF5E0-2019.log
-rw-r--r-- 1 fhem dialout         0 Apr  6  2019 CUL_HOERMANN_7E808C1000-2019.log
-rw-r--r-- 1 fhem dialout         0 Apr 24 14:19 CUL_HOERMANN_8000000000-2019.log
-rw-r--r-- 1 fhem dialout         0 Mar 11  2019 CUL_HOERMANN_8060A61090-2019.log
-rw-r--r-- 1 fhem dialout         0 Aug  6 21:14 CUL_HOERMANN_8EF4708BA0-2019.log
-rw-r--r-- 1 fhem dialout         0 Mar  7  2019 CUL_HOERMANN_A000000000-2019.log
-rw-r--r-- 1 fhem dialout         0 Sep 10 21:20 CUL_HOERMANN_AC01C5E080-2019.log
-rw-r--r-- 1 fhem dialout         0 Apr 18 02:50 CUL_HOERMANN_B0228105C0-2019.log
-rw-r--r-- 1 fhem dialout         0 Mar 12  2019 CUL_HOERMANN_B0C8109120-2019.log
-rw-r--r-- 1 fhem dialout         0 Mar 24  2019 CUL_HOERMANN_B440050C00-2019.log
-rw-r--r-- 1 fhem dialout         0 Mar 12  2019 CUL_HOERMANN_D1CD000800-2019.log
-rw-r--r-- 1 fhem dialout         0 Apr 21 23:25 CUL_HOERMANN_E0F093A080-2019.log
-rw-r--r-- 1 fhem dialout         0 May 13 23:26 CUL_HOERMANN_F8401C0000-2019.log
-rw-r--r-- 1 fhem dialout      6384 Apr  1  2019 CUL_TX_2-2019.log
-rw-r--r-- 1 fhem dialout   1220744 Oct  6 13:26 CUL_TX_78-2019.log
-rw-r--r-- 1 fhem dialout         0 Feb 18  2019 CUL_WS_1-2019.log
-rw-r--r-- 1 fhem dialout         0 Jan 17  2019 CUL_WS_6-2019.log
-rw-r--r-- 1 fhem dialout         0 Nov 28  2018 CUL_WS_8-2018.log
-rw-r--r-- 1 fhem dialout       142 Aug 10 07:21 CUL_WS_8-2019.log
-rw-r--r-- 1 fhem dialout     79420 Oct  6 08:19 eventTypes.txt
-rw-r--r-- 1 fhem dialout    412104 Nov 30  2018 fhem-2018-11.log
-rw-r--r-- 1 fhem dialout   1455459 Dec 31  2018 fhem-2018-12.log
-rw-r--r-- 1 fhem dialout   2137397 Jan 31  2019 fhem-2019-01.log
-rw-r--r-- 1 fhem dialout   2996429 Feb 28  2019 fhem-2019-02.log
-rw-r--r-- 1 fhem dialout 149175323 Mar 31  2019 fhem-2019-03.log
-rw-r--r-- 1 fhem dialout   1600629 Apr 30 23:57 fhem-2019-04.log
-rw-r--r-- 1 fhem dialout   1828748 May 31 23:57 fhem-2019-05.log
-rw-r--r-- 1 fhem dialout   1872166 Jun 30 23:55 fhem-2019-06.log
-rw-r--r-- 1 fhem dialout   1883825 Jul 31 23:59 fhem-2019-07.log
-rw-r--r-- 1 fhem dialout   1732436 Aug 31 23:57 fhem-2019-08.log
-rw-r--r-- 1 fhem dialout   1781431 Sep 30 23:58 fhem-2019-09.log
-rw-r--r-- 1 fhem dialout    347098 Oct  6 13:34 fhem-2019-10.log
-rw-r--r-- 1 fhem dialout     93869 Oct  6 08:19 fhem.save
-rw-r--r-- 1 fhem dialout    151045 Dec 31  2018 FLUR_BEWEG_1-2018.log
-rw-r--r-- 1 fhem dialout   1376125 Oct  6 13:28 FLUR_BEWEG_1-2019.log
-rw-r--r-- 1 fhem dialout         0 Jul  6 09:01 FS20_114a7f-2019.log
-rw-r--r-- 1 fhem dialout         0 Jul 20 04:27 FS20_8e4f46-2019.log
-rw-r--r-- 1 fhem dialout         0 Mar  7  2019 FS20_bbe139-2019.log
-rw-r--r-- 1 fhem dialout      3168 Oct  6 08:20 GONG_FLUR-2019.log
-rw-r--r-- 1 fhem dialout       280 Jul 24 21:48 HM_544B10-2019.log
-rw-r--r-- 1 fhem dialout      1428 Jan 13  2019 HM_62FAC4-2019.log
-rw-r--r-- 1 fhem dialout         0 Mar 29  2019 HMS_0725-2019.log
-rw-r--r-- 1 fhem dialout      1026 Sep 25 16:02 HMS100TF_0000-2019.log
-rw-r--r-- 1 fhem dialout         0 Dec 13  2018 IT_00000000-2018.log
-rw-r--r-- 1 fhem dialout         0 Jan  1  2019 IT_00000000-2019.log
-rw-r--r-- 1 fhem dialout        38 Dec 16  2018 IT_000F000F0F-2018.log
-rw-r--r-- 1 fhem dialout       526 Aug  2 23:10 IT_000F000F0F-2019.log
-rw-r--r-- 1 fhem dialout       851 Jul 15 16:08 IT_1527x0a7f0-2019.log
-rw-r--r-- 1 fhem dialout       446 Dec 27  2018 IT_1527x6a17d-2018.log
-rw-r--r-- 1 fhem dialout      4701 Oct  6 12:31 IT_1527x6a17d-2019.log
-rw-r--r-- 1 fhem dialout      4157 Dec 28  2018 IT_V3_33177ac0-2018.log
-rw-r--r-- 1 fhem dialout      5048 Feb 25  2019 IT_V3_33177ac0-2019.log
-rw-r--r-- 1 fhem dialout   6589278 Dec 31  2018 KIND_HEIZUNG_1-2018.log
-rw-r--r-- 1 fhem dialout  47298915 Oct  6 13:36 KIND_HEIZUNG_1-2019.log
-rw-r--r-- 1 fhem dialout   6580802 Dec 31  2018 KIND_HEIZUNG_2-2018.log
-rw-r--r-- 1 fhem dialout  47181262 Oct  6 13:35 KIND_HEIZUNG_2-2019.log
-rw-r--r-- 1 fhem dialout     54981 Oct  6 08:20 Steckdose_PC-2019.log
-rw-r--r-- 1 fhem dialout   6469692 Dec 31  2018 WOH_HEIZUNG_1-2018.log
-rw-r--r-- 1 fhem dialout  46831287 Oct  6 13:34 WOH_HEIZUNG_1-2019.log
-rw-r--r-- 1 fhem dialout   6466019 Dec 31  2018 WOH_HEIZUNG_2-2018.log
-rw-r--r-- 1 fhem dialout  46448566 Oct  6 13:36 WOH_HEIZUNG_2-2019.log
-rw-r--r-- 1 fhem dialout   6458541 Dec 31  2018 WOH_HEIZUNG_3-2018.log
-rw-r--r-- 1 fhem dialout  46466661 Oct  6 13:35 WOH_HEIZUNG_3-2019.log
-rw-r--r-- 1 fhem dialout         0 Dec 19  2018 WOH_HEIZUNG_3_Clima_FileLog_1.log
-rw-r--r-- 1 fhem dialout    172969 Oct  6 00:46 WOH_SCHALTER_1-2019.log
-rw-r--r-- 1 fhem dialout    211048 Oct  6 12:24 WOH_TUERSENSOR_FileLog_1.log



Wie kann ich sehe bzw. beeinflussen, wie bzw. wann immer aufgezeichnet wird?

Habe gerade gelesen, dass man bei DbLog Indizes erstellt werden können, welche einfluß auf die Performance der Datenbank haben. Evlt. sollte ich das mal versuchen. Habe aber noch keine Ahnung wir, ob es einen Nachteil hat und ob es nur auf alte Werte einfluss habe oder auch neu hinzukommende.
Titel: Antw:FHEM läd extrem langsam
Beitrag von: MadMax-FHEM am 06 Oktober 2019, 14:05:02
Wieviele Plots hast du denn auf den Seiten die "langsam" gehen?

Schaue doch mal im Eventmonitor (mit Filter auf eines der "betroffenen" Geräte) was da so los ist.

Hast du nun event-on-change-reading in Verwendung?

EDIT4: zumindest bei den geposteten nicht...

Wie geschrieben weiß ich nicht wie man bei LogDB rausbekommt wieviel geloggt wird bzw. wie groß die Datenmenge ist.

Aber auch dort gilt (wohl) jeder Event der vom Device kommt (und in die Regex [wenn es sowas bei LogDB gibt] passt) wird wohl in die Datenbank geschrieben.

Wenn viele Werte drin sind, evtl. sogar welche die gar nicht "interessieren" (weil diese nicht genutzt werden z.B. nicht in Plots auftauchen etc.) dann dauert es nat. lange diese zu lesen, auszuwerten (evtl. unnötige Daten zu verwerfen) und darzustellen...

Wie geschrieben: wenn alles eigentlich gut/schnell/flüssig geht und "nur" Seiten mit (vielen) Plots langsam sind, dann eben mal die "Datensammlung" optimieren...

Was ich so vom Lesen kenne: LogExclude/LogInclude etc. und halt event-on-change-reading etc.

Wenn fhem generell langsam ist, dann auch im Eventmonitor mal schauen was dort so an Events durch das System "huscht" und prüfen, ob du die wirklich alle brauchst.
Wenn du Events weder Loggen willst, noch mit Notify/DOIF/... darauf reagieren willst, um etwas zu tun/auszulösen, dann: "weg damit"! ;)
(event-on-change-reading und "Derivate")

EDIT: die Anzahl der Logs ist (vermutlich) erst mal nicht das Problem. Sondern eher: wieviele Daten stehen jeweils drin und von wievielen Daten machst du (gleichzeitig/auf einer Seite) Plots und wieviele Daten in den Logs sind "nutzlos" (weil nie jemals verwendet für Plots etc.). Wenn du Logs gar nicht willst: Log-Device löschen ODER deaktivieren (attr disable). Aber ich dachte gesehen zu haben, dass du LogDB verwendest? Oder beides (und weißt es gar nicht so genau)?

EDIT2: es gibt auch bzgl. Darstellung/Aufbau von Plots einige Einstellungen. Plotfork (glaube ich heißt das) und "Derivate". Vielleicht auch da mal nachlesen...

EDIT3: wozu schreibst du eigentlich die Temperatur noch mal (alle Minute!?) in einen virtuellen Sensor? Welche Daten nimmst du nun für den Plot? Den des virtuellen Sensors? Das können dann ganz schön (unnötig) viele Daten sein... Evtl. mal drauf achten was du alles in welchen Zeitabständen wohin schreibst. Nutze doch mal event-on-change-reading (evtl. mit min-interval, damit die Plots nicht so "eckig" werden) und warum schreibst du die Daten mittels "at" und nicht mittels "notify" (also nur, wenn sich auch etwas geändert hat)... Das sind lauter Dinge, die nat. das System (unnötig) belasten, weil es muss ja bearbeitet werden und wenn du Seiten mit Plots anzeigst eben auch die gesammelten Daten bearbeitet werden...

Gruß, Joachim
Titel: Antw:FHEM läd extrem langsam
Beitrag von: Ruggy am 06 Oktober 2019, 17:24:45
Vielen Dank erstmal für die ausführlichen Antworten.

Und vor allem auch Umfangreiche; da muss ich mich jetzt erst mal durcharbeiten und vorher noch ein paar Mal lesen.
Kann mir aber jetzt vorstellen, dass bei mir viel zu viel aufgezeichnet wird, was man gar nicht braucht.

Beim bereits gezeigten Raum "Kinderzimmer" sind z.B. zwei verschiedene logs. Einer mit Temperatur und Feuchtigkeit und der andere mit absoluter Luftfeuchtigkeit und Taupunkt.


Evlt. würde ich mich aber nochmal melden.

Danke und schönen Sonntag noch.
Titel: Antw:FHEM läd extrem langsam
Beitrag von: MadMax-FHEM am 06 Oktober 2019, 17:27:32
Klar, kein Thema...

Lieber nachlesen und prüfen und in Ruhe machen, nicht dass dann am Ende wichtige Daten fehlen... ;)

Viel Erfolg, Joachim
Titel: Antw:FHEM läd extrem langsam
Beitrag von: DS_Starter am 06 Oktober 2019, 19:57:29
Hallo zusammen,

ich habe gesehen, dass du DbLog im synchronen Modus betriebst. In diesem Modus wirkt sich jede Performanceschwäche der Datenbank direkt auf dein FHEM aus.
Am Besten DbLog zunächst auf asynchron (asyncMode=1) umstellen, dann die Attribute showNotifyTime und showproctime im DbLog setzen um die Reaktionszeiten der DB zu sehen und ein "set ... configCheck" im DbLog ausführen.
Dann sieht man eventuelle grundlegende Schwächen.

Mit listCache siehst du wieviele Events sich im Cache ansammeln um in die DB geschrieben zu werden. Indexe kannst du recht komfortabel mit einem DbRep-Device erstellen und noch mehr.

Grüße,
Heiko

Titel: Antw:FHEM läd extrem langsam
Beitrag von: Ruggy am 06 Oktober 2019, 22:34:02
Ich denke hier liegt einiges im argen.

Habe mir jetzt die DbLog Datenbank mit ssh angesehen.
Hier werden tatsächlich auch die Daten aus dem virtuellen Sensoren mit geloggt. Und noch einiges "unnützes" mehr.

Aber wie kann ich das verhindern. habe mit folgenden Befehl die Daten eingrenzen wollen. Leider kommen diese readings auch in anderen Devices vor; wie z.B. auch im virtuellen Sensor. Wie mache ich es, dass nur bestimmte Geräte geloggt werden?
Vor allem nicht die virtuellen.

define DbLog DbLog ./db.conf .*:(temperature|humidity|dewpoint|absFeuchte|pressure|state|open|closed|on|off|water|ValvePosition).*

Ist das richtig, dass unter dem Device DbLog bei
Probably associated with
SVG_DbLog_1
SVG_DbLog_2
usw. (bis SVG_DbLog_15)
angezeigt wird?
Dachte es wird alles in der einen Datenbank fhem.db gespeichert und ist somit die einzige?


@DS_Starter
habe die Einstellungen gemacht.
Folgendes wird mit set ... configCheck angezeigt:

Result of DbLog version check

Used DbLog version: 3.13.1
Recommendation: Your running version may be the current one. Please check for updates of DbLog periodically.

Result of configuration read check

Connection parameter store type: file
Connection parameter: Connection -> SQLite:dbname=/opt/fhem/fhem.db, User -> , Password -> read o.k.

Result of connection check

Connection to database /opt/fhem/fhem.db successfully done.
Recommendation: settings o.k.

Result of encoding check

Encoding used by DB /opt/fhem/fhem.db: UTF-8
Recommendation: This is only an information about text encoding used by the main database.

Result of logmode check

Logmode of DbLog-device DbLog is: asynchronous
Recommendation: settings o.k.

Result of shutdown sequence preparation check

Attribute "shutdownWait" is set to:
Recommendation: Please set this attribute at least to 2 seconds to avoid data loss when system shutdown is initiated.

Result of plot generation method check

WARNING - at least one of your FHEMWEB devices have attribute "plotfork = 1" not set. This may cause blocking situations when creating plots.
WEB: plotfork=0
Recommendation: You should set attribute "plotfork = 1" in relevant devices

Result of table 'history' check

Column width set in DB /opt/fhem/fhem.db.history: 'DEVICE' = 32, 'TYPE' = 32, 'EVENT' = 512, 'READING' = 32, 'VALUE' = 64, 'UNIT' = 32
Column width used by DbLog: 'DEVICE' = 64, 'TYPE' = 64, 'EVENT' = 512, 'READING' = 64, 'VALUE' = 128, 'UNIT' = 32
Recommendation: WARNING - The relation between column width in table history and the field width used by device DbLog should be equal but it differs.The field width used by DbLog can be adjusted by setting attributes 'colEvent', 'colReading', 'colValue'. (pls. refer to commandref)Because you use SQLite this is only a warning. Normally the database can handle these differences.

Result of table 'current' check

Column width set in DB /opt/fhem/fhem.db.current: 'DEVICE' = 32, 'TYPE' = 32, 'EVENT' = 512, 'READING' = 32, 'VALUE' = 64, 'UNIT' = 32
Column width used by DbLog: 'DEVICE' = 64, 'TYPE' = 64, 'EVENT' = 512, 'READING' = 64, 'VALUE' = 128, 'UNIT' = 32
Recommendation: WARNING - The relation between column width in table current and the field width used by device DbLog should be equal but it differs. The field width used by DbLog can be adjusted by setting attributes 'colEvent', 'colReading', 'colValue'. (pls. refer to commandref)Because you use SQLite this is only a warning. Normally the database can handle these differences.

Result of check 'Search_Idx' availability

The index 'Search_Idx' is missing.
Recommendation: You can create the index by executing statement 'CREATE INDEX Search_Idx ON `history` (DEVICE, READING, TIMESTAMP)'
Depending on your database size this command may running a long time.
Please make sure the device 'DbLog' is operating in asynchronous mode to avoid FHEM from blocking when creating the index.
Note: If you have just created another index which covers the same fields and order as suggested (e.g. a primary key) you don't need to create the 'Search_Idx' as well !


Result of check 'Report_Idx' availability for DbRep-devices

No DbRep-device assigned to DbLog is used. Hence an index for DbRep isn't needed.
Recommendation: settings o.k.


Das zeigt listCache:

49 => 2019-10-06 22:30:07|WOH_HEIZUNG_3_Clima|CUL_HM|ValvePosition: 0|ValvePosition|0|
50 => 2019-10-06 22:30:07|WOH_HEIZUNG_3_Clima|CUL_HM|state: T: 21.4 desired: 21.0 valve: 0|state|T: 21.4 desired: 21.0 valve: 0|
51 => 2019-10-06 22:30:07|WOH_HEIZUNG_3_Weather|CUL_HM|state: 21.4|state|21.4|
52 => 2019-10-06 22:30:08|presence.karsten|PRESENCE|state: present|state|present|
53 => 2019-10-06 22:30:08|presence.susi|PRESENCE|state: present|state|present|
54 => 2019-10-06 22:30:09|KIND_HEIZUNG_1_Clima|CUL_HM|ValvePosition: 0|ValvePosition|0|
55 => 2019-10-06 22:30:09|KIND_HEIZUNG_1_Clima|CUL_HM|state: T: 20.5 desired: 20.0 valve: 0|state|T: 20.5 desired: 20.0 valve: 0|
56 => 2019-10-06 22:30:09|KIND_HEIZUNG_1_Weather|CUL_HM|state: 20.5|state|20.5|
57 => 2019-10-06 22:30:18|WOH_HEIZUNG_2_Clima|CUL_HM|ValvePosition: 0|ValvePosition|0|
58 => 2019-10-06 22:30:18|WOH_HEIZUNG_2_Clima|CUL_HM|state: T: 21.4 desired: 21.0 valve: 0|state|T: 21.4 desired: 21.0 valve: 0|
59 => 2019-10-06 22:30:18|WOH_HEIZUNG_2_Weather|CUL_HM|state: 21.4|state|21.4|
Titel: Antw:FHEM läd extrem langsam
Beitrag von: DS_Starter am 06 Oktober 2019, 22:52:26
Da ist ein bisschen was zu richten, aber heute nicht mehr.
Wir können morgen weiter optimieren. Vllt. hat MadMax-FHEM noch etwas Zeit ...

ZitatProbably associated with ...
Dort taucht jedes Device auf welches FHEM meint mit dem DbLog-Device evtl. assoziiert zu sein.
Ist für die Funktion unwesentlich.

Grüße,
Heiko
Titel: Antw:FHEM läd extrem langsam
Beitrag von: DS_Starter am 06 Oktober 2019, 22:54:22
Aber mach ein Update, DbLog ist zu alt.
Titel: Antw:FHEM läd extrem langsam
Beitrag von: MadMax-FHEM am 06 Oktober 2019, 23:03:36
Zitat von: DS_Starter am 06 Oktober 2019, 22:52:26
Da ist ein bisschen was zu richten, aber heute nicht mehr.
Wir können morgen weiter optimieren. Vllt. hat MadMax-FHEM noch etwas Zeit ...

Leider heute nicht mehr...
...und auch die restl. Woche weiß ich noch nicht, bin dienstl. unterwegs...

Aber das meiste was ich so beitragen kann hab ich erst mal genannt...

Klar bei gezielten Fragen gibt's Hilfe (wenn ich Zeit hab)...

Bzgl. DB kann ich eh nichts beitragen, ich nutze FileLog...

Gruß, Joachim
Titel: Antw:FHEM läd extrem langsam
Beitrag von: Ruggy am 06 Oktober 2019, 23:26:38
Danke schon mal euch beiden für die Hilfe.

Evlt. ist ja morgen etwas Zeit dafür, oder die nächsten Tage.
Also kann man hier noch etwas retten ohne neu zu installieren?

Läuft ja nichts davon, so langsam wie es ist  ;)

Gruß
Ruggy
Titel: Antw:FHEM läd extrem langsam
Beitrag von: MadMax-FHEM am 06 Oktober 2019, 23:34:05
Bzgl. der Dinge: reduzieren von Events (und [damit] Logeinträgen) und evtl. optimieren beim Plotanzeigen kann das jederzeit (und immer wieder) getan/verbessert werden...

Ich mache das auch hin und wieder: Eventmonitor öffnen und schauen was da so durchläuft und prüfen, ob ich die Events alle brauche (Logeinträge, Reaktion mittels notif/DOIF etc. wenn nicht versuche ich das abzustellen/einzuschränken)...

Viel Erfolg, Joachim
Titel: Antw:FHEM läd extrem langsam
Beitrag von: Ruggy am 06 Oktober 2019, 23:53:28
Die Logeinträge zu reduzieren hört sich vernünftig an. Habe aber leider noch nichts gefunden, wie ich einzelne devices ausschließen kann oder nur bestimmte Devices loggen kann.

Evlt. weiß hierzu DS_Starter morgen etwas.

Weiß jetzt auch nicht mehr sicher aus welchem Grund bzw. für was ich "state" und "ValvePosition" loggen will.
Das letzte wird vom Thermostat sein. Aber eigenlich bräuchte ich wahrscheinlich das nicht.

Benötigt man DbLog eigentlich noch für etwas anderes oder "nur" um Plots grafisch anzeigen zu können?
Titel: Antw:FHEM läd extrem langsam
Beitrag von: DS_Starter am 07 Oktober 2019, 20:31:14
ZitatHabe aber leider noch nichts gefunden, wie ich einzelne devices ausschließen kann oder nur bestimmte Devices loggen kann.
Es gibt verschiedene Möglichkeiten. Die Beschränkung im DEF wie bei Filelog, aber auch über die Attribute DbLogInclude oder
DbLogExclude in den Quelldevices. Dazu unbedingt das Attribut DbLogSelectionMode im DbLog beachten.

Ich empfehle dringend die commadref zu DbLog durchzulesen um zu verstehen wie was arbeitet.

Für den Anfang ist vermutlich am einfachsten direkt im DEF (Regex) die Einschränkung vorzunehmen. z.B.:

define DbLog DbLog ./db.conf (<device>:temperature|<device>:humidity|<device>:dewpoint|<device>:absFeuchte|<device>:pressure|<device>:open|<device>:closed|<device>:ValvePosition)

ZitatBenötigt man DbLog eigentlich noch für etwas anderes oder "nur" um Plots grafisch anzeigen zu können?
Um einfach nur Plots anzuzeigen kann man FileLog und DbLog gleichermaßen verwenden. Wenn man viele Daten auch über längere Zeit speichern will, bietet sich DbLog an. Ebenfalls für weitere Auswertungen (siehe DbRep) und das relative einfache Datenmanagement, wie das (selektive) Löschen von Daten die man nicht mehr braucht oder das Ausdünnen um nur Wichtiges zu behalten oder,oder ...

DbLog hat viele Vorteile, aber auch Nachteile. So sollte man sich ein bisschen mit Datenbanken beschäftigen, speziell sich auch um ein Backupkonzept Gedanken machen.
Und meistens braucht eine DB auch entsprechend leistungsfähige Hardware, wobei SQLite dabei sehr genügsam ist gegenüber "richtigen" DB-Systemen wie MySQL und PostgreSQL.

Jetzt zu deinem System. Hast du ein Update gemacht ? Wenn noch nicht, bitte machen.


WEB: plotfork=0
Recommendation: You should set attribute "plotfork = 1" in relevant devices

Für die Schreibperformance ist das Attr asyncMode wichtig. Für die Erstellung der SVGs ist plotfork = 1 im deinem WEB Device wichtig. Wenn plotfork = 1 gesetzt ist, werden die SVG-Daten aus der DB in einem Nebenprozess gelesen was die Performance unabhängig von der DB-Schnelligkeit macht.
Dazu auch das Attr plotEmbed im WEB beachten !

Column width set in DB /opt/fhem/fhem.db.history: 'DEVICE' = 32, 'TYPE' = 32, 'EVENT' = 512, 'READING' = 32, 'VALUE' = 64, 'UNIT' = 32
Column width used by DbLog: 'DEVICE' = 64, 'TYPE' = 64, 'EVENT' = 512, 'READING' = 64, 'VALUE' = 128, 'UNIT' = 32
Recommendation: WARNING - The relation between column width in table history and the field width used by device DbLog should be equal but it differs.The field width used by DbLog can be adjusted by setting attributes 'colEvent', 'colReading', 'colValue'. (pls. refer to commandref)Because you use SQLite this is only a warning. Normally the database can handle these differences.

Das ist im Umfeld SQLite eher eine Warnung. Hast vermutlich nicht das aktuellste Script zur Erstellung der DB verwendet. Der Link zum aktuellen Script ist in der Commandref zu DbLog angegeben. Wenn es sich anbietet, löscht du DB nochmal und erstellst sie neu. Ist aber ein "kann".


The index 'Search_Idx' is missing.
Recommendation: You can create the index by executing statement 'CREATE INDEX Search_Idx ON `history` (DEVICE, READING, TIMESTAMP)'

Das ist ganz bitter. Ohne Index wird deine DB nicht vernünftig laufen !
Du kannst den Index über die Befehlszeile anlegen oder benutzt ein angelegtes DbRep-Device dazu:

set <dbrep> index recreate_Search_Idx

Wenn du das alles gemacht hast, nochmal ein configCheck ausführen.
Unnütze DB-Einträge von Devices oder Readings wirst du mit den entsprechnden Befehlen in einem DbRep-Device einfach wieder los.

Grüße,
Heiko
Titel: Antw:FHEM läd extrem langsam
Beitrag von: Ruggy am 07 Oktober 2019, 21:41:03
Update habe ich gestern noch gemacht.
Hat aber keine spürbare Verbesserung gebracht.

Eine Einschränkung für jedes device wird evlt. unübersichtlich aber ist wahrscheinlich die sicherste Methode. Müsste also bei define für jeden Sensor alle benötigten Werte einzeln zum loggen befehlen?

Habe den Hinweis von MadMax-FHEM bzgl. event-on-change-reading gestern irgendwie ein paar Mal überlesen. Ist bestimmt auch sinnvoll. Muss ich dies bei jedem Sensor setzen?


Habe jetzt gerade plotfork = 1 gesetzt und den index erstellt.


;D-> ist der Wahnsinn wie schnell es jetzt ist. So schnell war es glaube ich noch nie  ;D
Das gefällt mir schon mal sehr gut. Danke ;D ;D
Bedeutet dies, dass die "bremse" meine schlechte Datenbank war?

Wird der Index ab jetzt immer automatisch erstellt oder muss ich diesen hin und wieder manuell erstellen?


Die anderen vorgeschlagenen Dinge habe ich noch nicht gemacht, weil ich manches noch nicht verstehe wie ich es machen muss.
Werde mich darüber machen.
Das DbRep-Device muss ich erst mal Verstehen. Muss man anscheinend erst erstellen bzw. anlegen?


Das sagt configCheck

Result of version check

Used Perl version: 5.24.1
Used DBI (Database independent interface) version: 1.636
Used DBD (Database driver) version SQLite: 1.54
Used DbLog version: 4.7.4.
Your local DbLog module is up to date.
Recommendation: No update of DbLog is needed.

Result of configuration read check

Connection parameter store type: file
Connection parameter: Connection -> SQLite:dbname=/opt/fhem/fhem.db, User -> , Password -> read o.k.

Result of connection check

Connection to database /opt/fhem/fhem.db successfully done.
Recommendation: settings o.k.

Result of encoding check

Encoding used by DB /opt/fhem/fhem.db: UTF-8
Recommendation: This is only an information about text encoding used by the main database.

Result of logmode check

Logmode of DbLog-device DbLog is: asynchronous
Recommendation: settings o.k.

Result of plot generation method check

WEB: plotfork=1
Recommendation: settings o.k.

Result of table 'history' check

Column width set in DB history: 'DEVICE' = 32, 'TYPE' = 32, 'EVENT' = 512, 'READING' = 32, 'VALUE' = 64, 'UNIT' = 32
Column width used by DbLog: 'DEVICE' = 64, 'TYPE' = 64, 'EVENT' = 512, 'READING' = 64, 'VALUE' = 128, 'UNIT' = 32
Recommendation: WARNING - The relation between column width in table history and the field width used by device DbLog should be equal but it differs.The field width used by DbLog can be adjusted by setting attributes 'colEvent', 'colReading', 'colValue'. (pls. refer to commandref)Because you use SQLite this is only a warning. Normally the database can handle these differences.

Result of table 'current' check

Column width set in DB current: 'DEVICE' = 32, 'TYPE' = 32, 'EVENT' = 512, 'READING' = 32, 'VALUE' = 64, 'UNIT' = 32
Column width used by DbLog: 'DEVICE' = 64, 'TYPE' = 64, 'EVENT' = 512, 'READING' = 64, 'VALUE' = 128, 'UNIT' = 32
Recommendation: WARNING - The relation between column width in table current and the field width used by device DbLog should be equal but it differs. The field width used by DbLog can be adjusted by setting attributes 'colEvent', 'colReading', 'colValue'. (pls. refer to commandref)Because you use SQLite this is only a warning. Normally the database can handle these differences.

Result of check 'Search_Idx' availability

The index 'Search_Idx' is missing.
Recommendation: You can create the index by executing statement 'CREATE INDEX Search_Idx ON `history` (DEVICE, READING, TIMESTAMP)'
Depending on your database size this command may running a long time.
Please make sure the device 'DbLog' is operating in asynchronous mode to avoid FHEM from blocking when creating the index.
Note: If you have just created another index which covers the same fields and order as suggested (e.g. a primary key) you don't need to create the 'Search_Idx' as well !


Result of check 'Report_Idx' availability for DbRep-devices

No DbRep-device assigned to DbLog is used. Hence an index for DbRep isn't needed.
Recommendation: settings o.k.
Titel: Antw:FHEM läd extrem langsam
Beitrag von: MadMax-FHEM am 07 Oktober 2019, 21:57:30
event-on-change-reading (und "Derivate") dämmen generell die "Flut" von Events ein...

D.h. das System muss generell weniger tun und ja: bei jedem Sensor (im Prinzip / allerdings reicht es [erst mal] bei den "Geschwätzigsten" -> Eventmonitor / es gibt auch die Möglichkeit sich durch DOIF-Tools Events pro Device "zählen" zu lassen)

Wichtig ist halt die Einschränkung so zu machen, dass nur unnötige Events wegfallen...

Und wie bereits geschrieben: da kann man immer wieder mal ran und optimieren...

Wichtig ist dabei: genau lesen!

Bzw. immer mal einen Blick in den Eventmonitor um zu sehen, ob "wichtige" Events noch kommen (oder plötzlich "weg" sind)...

Gruß, Joachim
Titel: Antw:FHEM läd extrem langsam
Beitrag von: DS_Starter am 07 Oktober 2019, 22:03:30
ZitatUpdate habe ich gestern noch gemacht.
Hat aber keine spürbare Verbesserung gebracht.
Das ist klar. Es sollte nur aktuell sein. (auch wegen configCheck)  ;)

ZitatHabe den Hinweis von MadMax-FHEM bzgl. event-on-change-reading gestern irgendwie ein paar Mal überlesen. Ist bestimmt auch sinnvoll. Muss ich dies bei jedem Sensor setzen?
Ist sinnvoll, wie Joachim schon schrieb. Musst du in jedem Device bzw. Reading setzen wo du es haben willst.
Aber hier nochmal der Hinweis, es gibt den "DbLogSelectionMode  = Include" -Modus ! In dem Modus wird überhaupt nichts geloggt außer das was man explizit über DbLogInclude in den Quelldevices freigibt.
Ich kann verstehen, dass du erstmal heiß auf Ergebnisse bist, aber unbedingt commandref lesen !!  :)

ZitatHabe jetzt gerade plotfork = 1 gesetzt und den index erstellt.

;D-> ist der Wahnsinn wie schnell es jetzt ist. So schnell war es glaube ich noch nie  ;D
Das gefällt mir schon mal sehr gut. Danke ;D ;D
Bedeutet dies, dass die "bremse" meine schlechte Datenbank war?
Sehr gut.  :D  ... Und ja, an der richtigen Einstellung der DB bzw. dem Gesamtwerk lag es. Eine DB ist nicht nur ein File. Und eine DB ist für "Massendaten" gemacht, will damit sagen dass es normalerweise nicht auf ein paar tausend Datensätze mehr oder weniger ankommt. Dafür ist diese Technik gemacht. Den "configCheck" kann man immer mal wiederholen.

ZitatWird der Index ab jetzt immer automatisch erstellt oder muss ich diesen hin und wieder manuell erstellen?
Im Normalfall braucht man den Index in useren Fällen nicht nochmal erstellen. Aber selbst das geht mit einem DbRep-Befehl sehr einfach.

Zitat
Das sagt configCheck:
....
The index 'Search_Idx' is missing.
.....
Das wundert mich allerdings. War die Indexerstellung noch nicht durch oder hast du den check vorher gemacht ?

Zitat
Das DbRep-Device muss ich erst mal Verstehen. Muss man anscheinend erst erstellen bzw. anlegen?
Ja, musst du einfach definieren. Im Wiki findest du auch jede Menge Infos und Hilfe: https://wiki.fhem.de/wiki/DbRep_-_Reporting_und_Management_von_DbLog-Datenbankinhalten

Denke auch an ein Backup deiner DB ! Auch dafür gibts Befehle im DbRep.

Titel: Antw:FHEM läd extrem langsam
Beitrag von: Ruggy am 07 Oktober 2019, 23:06:56
bzgl. The index 'Search_Idx' is missing habe ich wie im wiki-fhem zu DbLog und dort bei "Erstellung von Indizes" beschrieben folgenden Befehl (in der fhem.db) ausgeführt:

create index idx_device_reading_timestamp on history (device, reading, timestamp);

War das nicht richtig?


Folgender Befehl zeigte bei mir keine Reaktion.
set <dbrep> index recreate_Search_Idx

ein aktuelles config Check zeigt immer noch "The index 'Search_Idx' is missing" an.

Titel: Antw:FHEM läd extrem langsam
Beitrag von: DS_Starter am 07 Oktober 2019, 23:21:51
ZitatWar das nicht richtig?
Nicht direkt. Der Name ist falsch und wird nicht gefunden.

ZitatFolgender Befehl zeigte bei mir keine Reaktion.
Der Befehl läuft eine Weile je nach Größe der DB.
Schreibt in status und Logfile.

Was schreibt DbRep denn aus mit:

set .... index list_all

?

Müßte etwa so aussehen:


background_processing_time

0.0094

2019-10-07 23:19:14
index_state


Index found in database:
========================
Table: history, Idx: Search_Idx, Col: DEVICE, READING, TIMESTAMP


2019-10-07 23:19:14
sql_processing_time

0.0043

2019-10-07 23:19:14
state

done

2019-10-07 23:19:14


EDIT: Hinweis, bei DbRep immer mal die Browserseite refreshen.