Modul 93_DbRep - Reporting und Management von Datenbankinhalten (DbLog)

Begonnen von DS_Starter, 19 Mai 2016, 22:52:13

Vorheriges Thema - Nächstes Thema

rolizer

Hallo,
sorry, Anfänger  :-[
Allerdings funktioniert das noch  immer nicht: mit verbose 4 und gleichem Multicmd kommt nach wie vor die folgende Meldung:
2024.03.03 21:04:35 2: DbRep DBRep.multiCmd.reduceLog - ERROR - The Timestamp of the oldest dataset (1706029700) is newer than specified end time (1701644399)
2024.03.03 21:04:35 4: DbRep DBRep.multiCmd.reduceLog - multiCmd index >4< start
2024.03.03 21:04:35 3: LogDB - Database disconnected by request.
2024.03.03 21:04:35 3: LogDB - Database disconnected by request.
2024.03.03 21:04:35 3: LogDB - SubProcess connected to fhem
Ein multiCmd index 5 taucht nicht auf.

DS_Starter

Die Meldung muß kommen, das ist klar.
Hast du auch restarted?
ESXi@NUC+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

rolizer

via "shutdown restart", ja.
2024.03.03 21:02:38 0: Server started with 224 defined entities (fhem.pl:28484/2024-02-06 perl:5.036000 os:linux user:fhem pid:127418)sollte ich via systemctl?

DS_Starter

#2073
Nein, das reicht schon.
Hmmm, komisch.
Kannst du bitte den gesamten Kommandohash und den gesamten Logausdruck vom Lauf posten. Da muß ich mirgen nochmal suchen.

EDIt: Und bitte noch ein List von dem Device nach der Ausführung vom multiCmd.
ESXi@NUC+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

DS_Starter

Ach lass mal, ich glaube ich weiß schon woran es noch hapert.
ESXi@NUC+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

DS_Starter

Nein ... Sorry ich brauche die Infos doch. War gerade ein Holzweg.
ESXi@NUC+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

rolizer

Hier zuerst das AT, das DbRep und das Log (verbose 4)

Internals:
   COMMAND    {\
my $cmdhash = "{\
      1  => { cmd             => 'sqlCmd select count(*) from history'\
            },\
      2  => { timeOlderThan   => 'd:5',\
                timeDiffToNow   => 'd:7',\
                cmd              => 'reduceLog average'\
            },\
      3  => { timeOlderThan   => 'd:90',\
                timeDiffToNow   => 'd:91',\
                cmd              => 'reduceLog average=day'\
            },\
      4  => { timeOlderThan   => 'd:360',\
              device          => 'sysmon%,global',\
              cmd             => 'delEntries'\
            },\
      5  => { cmd             => 'sqlCmd select count(*) from history'\
            },\
    }";;\
fhem ("set DBRep.multiCmd.reduceLog multiCmd $cmdhash");;\
}
   DEF        *01:00:00 {\
my $cmdhash = "{\
      1  => { cmd             => 'sqlCmd select count(*) from history'\
            },\
      2  => { timeOlderThan   => 'd:5',\
                timeDiffToNow   => 'd:7',\
                cmd              => 'reduceLog average'\
            },\
      3  => { timeOlderThan   => 'd:90',\
                timeDiffToNow   => 'd:91',\
                cmd              => 'reduceLog average=day'\
            },\
      4  => { timeOlderThan   => 'd:360',\
              device          => 'sysmon%,global',\
              cmd             => 'delEntries'\
            },\
      5  => { cmd             => 'sqlCmd select count(*) from history'\
            },\
    }";;\
fhem ("set DBRep.multiCmd.reduceLog multiCmd $cmdhash");;\
}
   FUUID      65ca34d8-f33f-fd93-bf66-ee965ab4cacd3dc0
   NAME       at.MultiCmd.DBaufraeumen
   NR         61
   PERIODIC   yes
   RELATIVE   no
   REP        -1
   STATE      Next: 01:00:00
   TIMESPEC   01:00:00
   TRIGGERTIME 1709510400
   TRIGGERTIME_FMT 2024-03-04 01:00:00
   TYPE       at
   eventCount 2
   READINGS:
     2024-03-03 21:20:44   state           Next: 01:00:00
Attributes:
   DbLogExclude .*
   room       System->DB

Internals:
   DATABASE   fhem
   DEF        LogDB
   FUUID      65c9ff92-f33f-fd93-d13c-23c6751017ed43f9
   FVERSION   93_DbRep.pm:v8.53.2-s28525/2024-02-16
   LASTCMD    reduceLog average=day
   MODEL      Client
   NAME       DBRep.multiCmd.reduceLog
   NOTIFYDEV  global,DBRep.multiCmd.reduceLog
   NR         60
   NTFY_ORDER 50-DBRep.multiCmd.reduceLog
   ROLE       Client
   STATE      The Timestamp of the oldest dataset is newer than the specified time range
   TYPE       DbRep
   UTF8       1
   eventCount 18
   HELPER:
     DBLOGDEVICE LogDB
     GRANTS     DELETE,UPDATE,INSERT,SELECT,FILE
     IDRETRIES  2
     MINTS      2024-01-23 18:08:20
     PACKAGE    main
     VERSION    8.53.2
     CV:
       aggregation no
       aggsec     1
       destr      2023-12-03
       dsstr      2023-12-02
       epoch_seconds_end 1701644399
       mestr      12
       msstr      12
       testr      23:59:59
       tsstr      00:00:00
       wdadd      172800
       yestr      2023
       ysstr      2023
     DBREPCOL:
       COLSET     1
       DEVICE     64
       EVENT      512
       READING    64
       TYPE       64
       UNIT       32
       VALUE      128
   OLDREADINGS:
   READINGS:
     2024-03-03 21:39:13   state           The Timestamp of the oldest dataset is newer than the specified time range
Attributes:
   DbLogExclude .*
   allowDeletion 0
   comment    <<<ganz viel Text>>>
   devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
   device     sysmon%,global
   event-on-update-reading state
   executeAfterProc set LogDB reopen
   executeBeforeProc set LogDB reopen 3600
   room       System->DB
   showproctime 1
   timeOlderThan d:360
   timeout    3600
   verbose    4

2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - multiCmd index >1< start
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - -------- New selection ---------
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - Command: sqlCmd select count(*) from history;
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - Timestamp begin human readable: not set
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - Timestamp end human readable: not set
2024.03.03 21:39:12 3: DbRep DBRep.multiCmd.reduceLog - execute command before sqlCmd: 'set LogDB reopen 3600'
2024.03.03 21:39:12 2: LogDB - Connection closed until 22:39:12 (3600 seconds).
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - Database connect - user: fhemuser, UTF-8 option set: yes
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - SQL execute: SHOW VARIABLES LIKE 'collation_database'
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - Database Character set is >utf8mb4_bin<
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - simple do statement: set names "utf8mb4" collate "utf8mb4_bin"
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - SQL execute: select count(*) from history;
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - SQL result: 19980
2024.03.03 21:39:12 3: DbRep DBRep.multiCmd.reduceLog - execute command after sqlCmd: 'set LogDB reopen'
2024.03.03 21:39:12 3: LogDB - Reopen requested
2024.03.03 21:39:12 2: DbRep DBRep.multiCmd.reduceLog - command message after sqlCmd: >Reopen executed.<
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - multiCmd index >2< start
2024.03.03 21:39:12 3: DbRep DBRep.multiCmd.reduceLog - ################################################################
2024.03.03 21:39:12 3: DbRep DBRep.multiCmd.reduceLog - ###                    new reduceLog run                     ###
2024.03.03 21:39:12 3: DbRep DBRep.multiCmd.reduceLog - ################################################################
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - -------- New selection ---------
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - Command: reduceLog average
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - timeDiffToNow - year: , day: 7, hour: , min: , sec:
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - Year 2024 is leap year
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - startMonth: 1 endMonth: 2 lastleapyear:  baseYear: 2024 diffdaylight:0 isdaylight:0
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - timeOlderThan - year: 0, day: 5, hour: 0, min: 0, sec: 0
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - Year 2024 is leap year
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - startMonth: 0 endMonth: 1 lastleapyear: 2024 baseYear: 2024 diffdaylight:0 isdaylight:0
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - FullDay option: 0
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - Time difference to current time for calculating Timestamp begin: 604801 sec
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - Timestamp begin human readable: 2024-02-25 21:39:11
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - Time difference to current time for calculating Timestamp end: 432001 sec
2024.03.03 21:39:12 4: DbRep DBRep.multiCmd.reduceLog - Timestamp end human readable: 2024-02-27 21:39:11
2024.03.03 21:39:12 3: DbRep DBRep.multiCmd.reduceLog - execute command before reduceLog: 'set LogDB reopen 3600'
2024.03.03 21:39:12 2: LogDB - Connection closed until 22:39:12 (3600 seconds).
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - Database connect - user: fhemuser, UTF-8 option set: yes
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - SQL execute: SHOW VARIABLES LIKE 'collation_database'
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - Database Character set is >utf8mb4_bin<
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - simple do statement: set names "utf8mb4" collate "utf8mb4_bin"
2024.03.03 21:39:13 3: DbRep DBRep.multiCmd.reduceLog - reduce data older than: 2024-02-27 21:39:11, newer than: 2024-02-25 21:39:11
2024.03.03 21:39:13 3: DbRep DBRep.multiCmd.reduceLog - reduceLog requested with options:
average
INCLUDE -> Devs: % Readings: %
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - SQL prepare: DELETE FROM history WHERE (DEVICE=?) AND (READING=?) AND (TIMESTAMP=?) AND (VALUE=?)
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - SQL prepare: DELETE FROM history WHERE (DEVICE=?) AND (READING=?) AND (TIMESTAMP=?) AND VALUE IS NULL
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - SQL prepare: UPDATE history SET TIMESTAMP=?, EVENT=?, VALUE=? WHERE (DEVICE=?) AND (READING=?) AND (TIMESTAMP=?) AND (VALUE=?)
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - SQL prepare: DELETE FROM history WHERE (DEVICE=?) AND (READING=?) AND (TIMESTAMP=?)
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - SQL prepare: UPDATE history SET TIMESTAMP=?, EVENT=?, VALUE=? WHERE (DEVICE=?) AND (READING=?) AND (TIMESTAMP=?)
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - SQL execute: SELECT TIMESTAMP,DEVICE,'',READING,VALUE FROM history where  TIMESTAMP >= '2024-02-25 21:39:11' AND TIMESTAMP <= '2024-02-27 21:39:11' ORDER BY TIMESTAMP ASC;
2024.03.03 21:39:13 3: DbRep DBRep.multiCmd.reduceLog - reduceLog deleting 35 records of day: 2024-02-27
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - begin transaction
2024.03.03 21:39:13 3: LogDB - Database disconnected by request.
2024.03.03 21:39:13 3: LogDB - Database disconnected by request.
2024.03.03 21:39:13 3: LogDB - SubProcess connected to fhem
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - transaction committed
2024.03.03 21:39:13 3: DbRep DBRep.multiCmd.reduceLog - reduceLog (hourly-average) updating 4 records of day: 2024-02-27
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - begin transaction
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - UPDATE history SET TIMESTAMP=2024-02-27 21:30:00, EVENT=rl_av_h, VALUE=55.4206 WHERE DEVICE=sysmon_pi2 AND READING=cpu_temp AND TIMESTAMP=2024-02-27 21:27:21 AND VALUE=54.77
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - UPDATE history SET TIMESTAMP=2024-02-27 21:30:00, EVENT=rl_av_h, VALUE=955.5556 WHERE DEVICE=sysmon_pi2 AND READING=cpu_freq AND TIMESTAMP=2024-02-27 21:29:20 AND VALUE=1400
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - UPDATE history SET TIMESTAMP=2024-02-27 21:30:00, EVENT=rl_av_h, VALUE=0.0000 WHERE DEVICE=LogDB AND READING=CacheOverflowLastNum AND TIMESTAMP=2024-02-27 21:27:22 AND VALUE=0
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - UPDATE history SET TIMESTAMP=2024-02-27 21:30:00, EVENT=rl_av_h, VALUE=55.5525 WHERE DEVICE=sysmon_pi2 AND READING=cpu_temp_avg AND TIMESTAMP=2024-02-27 21:27:21 AND VALUE=55.5
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - transaction committed
2024.03.03 21:39:13 3: DbRep DBRep.multiCmd.reduceLog - reduceLog finished. Rows processed: 442, deleted: 35, updated: 4
2024.03.03 21:39:13 3: DbRep DBRep.multiCmd.reduceLog - execute command after reduceLog: 'set LogDB reopen'
2024.03.03 21:39:13 3: LogDB - Reopen requested
2024.03.03 21:39:13 2: DbRep DBRep.multiCmd.reduceLog - command message after reduceLog: >Reopen executed.<
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - multiCmd index >3< start
2024.03.03 21:39:13 3: DbRep DBRep.multiCmd.reduceLog - ################################################################
2024.03.03 21:39:13 3: DbRep DBRep.multiCmd.reduceLog - ###                    new reduceLog run                     ###
2024.03.03 21:39:13 3: DbRep DBRep.multiCmd.reduceLog - ################################################################
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - -------- New selection ---------
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - Command: reduceLog average=day
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - timeDiffToNow - year: , day: 91, hour: , min: , sec:
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - Year 2024 is leap year
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - startMonth: 11 endMonth: 2 lastleapyear: 2024 baseYear: 2023 diffdaylight:0 isdaylight:0
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - timeOlderThan - year: 0, day: 90, hour: 0, min: 0, sec: 0
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - Year 2024 is leap year
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - startMonth: 0 endMonth: 11 lastleapyear: 2024 baseYear: 2023 diffdaylight:0 isdaylight:0
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - FullDay option: 1
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - Time difference to current time for calculating Timestamp begin: 7948801 sec
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - Timestamp begin human readable: 2023-12-02 00:00:00
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - Time difference to current time for calculating Timestamp end: 7862401 sec
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - Timestamp end human readable: 2023-12-03 23:59:59
2024.03.03 21:39:13 2: DbRep DBRep.multiCmd.reduceLog - ERROR - The Timestamp of the oldest dataset (1706029700) is newer than specified end time (1701644399)
2024.03.03 21:39:13 4: DbRep DBRep.multiCmd.reduceLog - multiCmd index >4< start
2024.03.03 21:39:13 3: LogDB - Database disconnected by request.
2024.03.03 21:39:13 3: LogDB - Database disconnected by request.
2024.03.03 21:39:13 3: LogDB - SubProcess connected to fhem

DS_Starter

Danke.
Das Kommando 4 (delEntries) wird schon nicht ausgeführt.
In dem Device ist das Attr allowDeletion nicht gesetzt. Setze es mal auf 1.
ESXi@NUC+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

rolizer

Danke! Das wars wohl:
2024.03.03 22:05:05 2: DbRep DBRep.multiCmd.reduceLog - ERROR - The Timestamp of the oldest dataset (1706029700) is newer than specified end time (1701644399)
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - multiCmd index >4< start
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - -------- New selection ---------
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - Command: delEntries
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - timeOlderThan - year: , day: 360, hour: , min: , sec:
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - Year 2024 is leap year
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - startMonth: 0 endMonth: 2 lastleapyear: 2024 baseYear: 2023 diffdaylight:0 isdaylight:0
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - FullDay option: 0
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - Timestamp begin human readable: 2024-01-23 18:08:20
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - Time difference to current time for calculating Timestamp end: 31190401 sec
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - Timestamp end human readable: 2023-03-08 22:05:04
2024.03.03 22:05:05 2: DbRep DBRep.multiCmd.reduceLog - ERROR - The Timestamp of the oldest dataset (1706029700) is newer than specified end time (1678309504)
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - multiCmd index >5< start
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - -------- New selection ---------
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - Command: sqlCmd select count(*) from history;
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - Timestamp begin human readable: not set
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - Timestamp end human readable: not set
2024.03.03 22:05:05 3: DbRep DBRep.multiCmd.reduceLog - execute command before sqlCmd: 'set LogDB reopen 3600'
2024.03.03 22:05:05 2: LogDB - Connection closed until 23:05:05 (3600 seconds).
2024.03.03 22:05:05 3: LogDB - Database disconnected by request.
2024.03.03 22:05:05 3: LogDB - SubProcess connected to fhem
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - Database connect - user: fhemuser, UTF-8 option set: yes
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - SQL execute: SHOW VARIABLES LIKE 'collation_database'
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - Database Character set is >utf8mb4_bin<
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - simple do statement: set names "utf8mb4" collate "utf8mb4_bin"
2024.03.03 22:05:05 4: DbRep DBRep.multiCmd.reduceLog - SQL execute: select count(*) from history;
2024.03.03 22:05:06 4: DbRep DBRep.multiCmd.reduceLog - SQL result: 19984
2024.03.03 22:05:06 3: DbRep DBRep.multiCmd.reduceLog - execute command after sqlCmd: 'set LogDB reopen'
2024.03.03 22:05:06 3: LogDB - Reopen requested
2024.03.03 22:05:06 2: DbRep DBRep.multiCmd.reduceLog - command message after sqlCmd: >Reopen executed.<
2024.03.03 22:05:06 3: LogDB - Database disconnected by request.
2024.03.03 22:05:06 3: LogDB - Database disconnected by request.
2024.03.03 22:05:06 3: LogDB - SubProcess connected to fhem
2024.03.03 22:05:06 3: LogDB - Database disconnected by request.
2024.03.03 22:05:06 3: LogDB - Database disconnected by request.
2024.03.03 22:05:06 3: LogDB - SubProcess connected to fhem
Ich wusste nicht, dass verdichten funktioniert ohne allowDeletion, löschen aber nicht. Wieder was gelernt.
Das scheint es gewesen zu sein. Top!

DS_Starter

Stimmt. Eigentlich müßte ich allowDeletion auch bei reduceLog verpflichtend definieren.
Aber das muß ich mal separat machen. Viele User würden jetzt plötzlich mit ihren Definitionen auf Fehler laufen wenn ich das "mal so nebenbei" ändere.

Ich checke die Version ein. Ist dann morgen früh im Update.

LG
ESXi@NUC+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

betateilchen

Ey, mal ehrlich. Das Attribut "allowDeletion" ist genau so unnötig wie ein goldenes Fußkettchen.

Wenn ich als User ein "reduceLog" Task definiere, dann bin ich mir durchaus bewusst, dass dadurch Zeilen in der Datenbank gelösche werde, und ich gebe sogar selbst die Kriterien dafür an.

Da muss ich doch nicht noch extra ein Attribut setzen, um meinen Geisteszustand zu bestätigen.
Du kannst Dir nicht vorstellen, was mich dieser Mist schon an Nerven und Zeit gekostet hat.

Schaff das Attribut endlich ab!
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

flummy1978

Guten Morgen,

vielen Dank für den schnellen Lösungsvorschlag:

Zitat von: DS_Starter am 03 März 2024, 16:58:52Du kannst es überprüfen indem du vor dem Start von multiCmd im DbLog ein "set ... reopen 3600" ausführst.
Das sperrt DbLog für eine Stunde und DbRep hat die DB für sich. Wenn multiCmd durch ist, öffnest du DbLog wieder mit "set ... reopen".

Jetzt hab ich mal eine Frage kosmetischer Natur: Wenn ich o.g. ausführe, scheinen alle anderen Fehler weg zu sein. Allerdings wir mein Log voll gespamt mit:
2024.03.04 11:26:00.875 2: DbRep SQL_DBrep_Device - command message after averageValue: >Reopen executed.<
und
2024.03.04 11:26:02.004 2: DbRep SQL_DBrep_Device - command message after delEntries: >Reopen executed.<

Ich hab das entsprechende Device bereits aus Verbose 2 (damit eben wichtiger Fehler durchkommen. Für mich ist das ein Hinweis, dass die DB gesperrt wurde und geöffnet wurde - Kann man das irgendwie von Log 3 auf 2 "erzwingen" oder könntest Du direkt im Modul?

VG
Andreas

DS_Starter

ZitatSchaff das Attribut endlich ab!
Durchaus eine Variante. Fasse ich ins Auge.
ESXi@NUC+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

DS_Starter

#2083
ZitatJetzt hab ich mal eine Frage kosmetischer Natur: Wenn ich o.g. ausführe, scheinen alle anderen Fehler weg zu sein. Allerdings wir mein Log voll gespamt mit:
Als erste Variante kannst du im relevanten DbRep das verbose=1 setzen.
Weiterhin könntest du aber auf das Setzen der exec-Attribute im Device verzichten und das Schließen der DB für DbLog als Befehl im at hinterlegen.
Für das Öffnen bietet sich eventuell ein Notify an welches auf eine Ende-Meldung des 'sqlCmd select count(*) from history' reagiert. Muß man schauen ob ein brauchbares Event generiert wird.
Die 2. Variante würde ich bevorzugen als die DB ständig für DbLog zu schließen/öffnen.

Grüße,
Heiko
ESXi@NUC+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

flummy1978

Zitat von: DS_Starter am 04 März 2024, 12:51:14Die 2. Variante würde ich bevorzugen als die DB ständig für DbLog zu schließen/öffnen.

Das hab ich nicht so ganz verstanden  ::)  ich muss die DB ja eh ständig zu und auf machen, damit der obere Fehler weg bleibt. Ob ich das nun mit der execute before / aufter oder einem notify mache, ist ja dann egal? 🤔

Vg
Andreas

P. S. Tippfehler sind der Autokorrektur am Handy zuzuschreiben ;)