FHEM Forum

FHEM => Sonstiges => Thema gestartet von: Ruggy am 14 Oktober 2022, 11:45:42

Titel: Mit DbRep - Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: Ruggy am 14 Oktober 2022, 11:45:42
Hallo,

ich habe vor kurzem eine Steckdose Shelly Plug S zum Messen vom Stromverbrauch eingerichtet. Dies hat anfangs noch nicht geklappt.
Hatte im Device "DbLog" bei DEF die jeweiligen zu loggenden Readings vergessen.
Jetzt funktioniert es.

Durch das ganze werden mir negative Werte in den Readings (statEnergyLastDay, statEnergyMonth, statEnergyYear) angezeigt.
Habe gelesen (und es dann auch gemacht), dass man die Readings von einen Device löschen kann; mit folgenden Befehl

deleteReading myShelly_Plug_1 statEnergyHour

(für die anderen Readings habe ich ihn auch ausgeführt)

Jetzt werden mir negative Werte angezeigt.
Wie bekomme ich diesen weg?

List vom Device myShellyPlug

Internals:
   DEF        192.168.1.42
   DURATION   0
   FUUID      633ad3ff-f33f-f59f-3348-5e3c38309aa375f1
   INTERVAL   2
   NAME       myShelly_Plug_1
   NR         173
   SHELLYID   shellyplug-s-893C64
   STATE      off
   TCPIP      192.168.1.42
   TYPE       Shelly
   eventCount 116222
   Helper:
     DBLOG:
       energy:
         DbLog:
           TIME       1665738121.21386
           VALUE      72.5
       power:
         DbLog:
           TIME       1665738061.00461
           VALUE      0
       statEnergyDay:
         DbLog:
           TIME       1665738121.21386
           VALUE      3.2
       statEnergyDayLast:
         DbLog:
           TIME       1665698395.00915
           VALUE      -15.0
       statEnergyHour:
         DbLog:
           TIME       1665738121.21386
           VALUE      1.6
       statEnergyHourLast:
         DbLog:
           TIME       1665719995.01382
           VALUE      0.0
       statEnergyMonth:
         DbLog:
           TIME       1665738121.21386
           VALUE      -11.8
       statEnergyYear:
         DbLog:
           TIME       1665738121.21386
           VALUE      -11.8
       state:
         DbLog:
           TIME       1665740700.84326
           VALUE      off
   OLDREADINGS:
   READINGS:
     2022-10-03 14:22:23   cloud           disabled
     2022-10-14 11:02:01   energy          72.5
     2022-10-03 14:22:23   firmware        4
     2022-10-14 11:45:08   inttemp         21.85
     2022-10-12 19:41:31   network         <html>connected to <a href="http://192.168.1.42">192.168.1.42</a></html>
     2022-10-14 11:45:01   overpower       0
     2022-10-14 11:01:00   power           0
     2022-10-14 11:45:01   relay           off
     2022-10-14 11:45:08   statEnergy      Hour: 1.6 Day: 3.2 Month: -11.8 Year: -11.8 (since: 2022-10-13 )
     2022-10-14 11:45:08   statEnergyDay   3.2
     2022-10-13 23:59:55   statEnergyDayLast -15.0
     2022-10-14 11:45:08   statEnergyHour  1.6
     2022-10-14 10:59:55   statEnergyHourLast 0.0
     2022-10-14 10:59:55   statEnergyLast  Hour: 0.0 Day: -15.0 Month: - Year: -
     2022-10-14 11:45:08   statEnergyMonth -11.8
     2022-10-14 11:45:08   statEnergyYear  -11.8
     2022-10-14 11:45:08   statPowerDay    Min: 0.00 Avg: 0.08 Max: 49.78
     2022-10-13 23:59:55   statPowerDayLast Min: 0.00 Avg: 10.00 Max: 51.46
     2022-10-14 11:45:08   statPowerMonth  Min: 0.00 Avg: 7.60 Max: 51.92 (since: 2022-10-12_10:00:41 )
     2022-10-14 11:45:08   statPowerYear   Min: 0.00 Avg: 7.60 Max: 51.92 (since: 2022-10-12_10:00:41 )
     2022-10-14 11:01:00   state           off
   helper:
     _98_statistics myStatDevice
     bm:
       Shelly_Get:
         cnt        24
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        13.10. 13:37:07
         max        0.000155925750732422
         tot        0.00225186347961426
         mAr:
           HASH(0x3f6e580)
           myShelly_Plug_1
           ?
       Shelly_Set:
         cnt        15160
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        09.10. 17:22:46
         max        0.0169467926025391
         tot        16.2509860992432
         mAr:
           HASH(0x3f6e580)
           myShelly_Plug_1
           off
Attributes:
   event-on-change-reading .*
   icon       measure_power
   interval   2
   model      shellyplug
   room       Kellerlüftung,Stromverbrauch
Titel: Antw:Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: betateilchen am 14 Oktober 2022, 11:48:52
Mit deletereading löscht man readings nur im device selbst, nicht im DbLog.

Negative Daten im DbLog kann man bestimmt mit Hilfe eines DbRep devices löschen.
Titel: Antw:Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: MadMax-FHEM am 14 Oktober 2022, 12:25:47
Die negativen stat-Werte kommen ja vom statistics-Device, d.h. die Datenbasis zur Berechnung liegt dort, da hilft es nichts die stat-Readings im "Ziel-Device" zu löschen.

Es gibt doch beim statistics-Device set-Befehle, um die Statistikdaten zurückzusetzen?

Gut dann beginnt die Statistik-Berechnung neu aber das ist doch das was du willst/brauchst?

Gruß, Joachim
Titel: Antw:Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: Ruggy am 14 Oktober 2022, 12:43:23
Im statistics-Device gibt es den Befehl

set myStatDevice resetStatistics all

Den hätte ich auch durchgeführt gehabt (habe es jetzt nochmal gemacht und beobachte das Ganze)


Bevor ich alles gelöscht habe (mit deleteReading...) , habe ich beim statistics-Device "myStatDevice" das Attributes gesetzt.

attr myStatDevice disable 1

Hier war mein Gedanke, dass während dem löschen nicht neue Daten kommen.


DbRep-Device habe ich versucht einzurichten mit folgenden Befehl. DbLog ist der Name von meinen Device mit dem ich Logge.
(So habe ich es zumindest verstanden)

define Rep.Energy DbRep DbLog

Beim Device Rep.Energy bleibt state aber auf  initialized.
Laut DbRep Wiki bedeutet das aber, dass die Verbindung nicht geklappt hat. Es sollte auf connected wechseln

List vom Rep.Energy:

Internals:
   CFGFN     
   DATABASE   /opt/fhem/fhem.db
   DEF        DbLog
   FUUID      6349395b-f33f-f59f-8e10-255074fb8c168bc2
   FVERSION   93_DbRep.pm:v8.50.3-s26429/2022-09-19
   LASTCMD    initial database connect stopped due to attribute 'fastStart'
   MODEL      Client
   NAME       Rep.Energy
   NOTIFYDEV  global,Rep.Energy
   NR         761
   NTFY_ORDER 50-Rep.Energy
   ROLE       Client
   STATE      initialized
   TYPE       DbRep
   UTF8       0
   eventCount 1
   HELPER:
     DBLOGDEVICE DbLog
     IDRETRIES  3
     PACKAGE    main
     VERSION    8.50.3
   Helper:
     DBLOG:
       state:
         DbLog:
           TIME       1665743195.73166
           VALUE      initialized
   READINGS:
     2022-10-14 12:26:35   state           initialized
   helper:
     bm:
       DbRep_Attr:
         cnt        1
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        14.10. 12:26:54
         max        0.000133991241455078
         tot        0.000133991241455078
         mAr:
           set
           Rep.Energy
           room
           Testraum
       DbRep_Define:
         cnt        1
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        14.10. 12:26:35
         max        0.0209510326385498
         tot        0.0209510326385498
         mAr:
           HASH(0x4f12e00)
           Rep.Energy DbRep DbLog
       DbRep_Get:
         cnt        4
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        14.10. 12:29:27
         max        0.000195026397705078
         tot        0.000583887100219727
         mAr:
           HASH(0x4f12e00)
           Rep.Energy
           ?
       DbRep_Notify:
         cnt        3
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        14.10. 12:33:27
         max        9.89437103271484e-05
         tot        0.000262022018432617
         mAr:
           HASH(0x4f12e00)
           HASH(0x955910)
       DbRep_Set:
         cnt        10
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        14.10. 12:29:27
         max        0.00299811363220215
         tot        0.0174672603607178
         mAr:
           HASH(0x4f12e00)
           Rep.Energy
           ?
Attributes:
   room       Testraum
Titel: Antw:Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: DS_Starter am 14 Oktober 2022, 13:17:32
Zitat
Beim Device Rep.Energy bleibt state aber auf  initialized.
Laut DbRep Wiki bedeutet das aber, dass die Verbindung nicht geklappt hat. Es sollte auf connected wechseln

Der Wiki Beitrag muss angepasst werden, initial ist ok. Das hängt mit dem default von Attr fastStart  zusammen.
EDit: erledigt
Titel: Antw:Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: Ruggy am 14 Oktober 2022, 13:59:18
@DS_Starter
Danke für den Hinweis.
Dann stimmt es soweit.

Habe set Rep.Energy countEntries ausgeführt.


Als Readings wird mir darufhin folgendes angezeigt.

__COUNT_history__no_aggregation 5902256
Titel: Antw:Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: DS_Starter am 14 Oktober 2022, 14:21:10
Ja, es sind rund 5,9 Mio Einträge in der DB (ohne Eingrenzungen).
Funktioniert also grundsätzlich und kannst nun mit dem Device die DB pflegen was du benötigst.
Titel: Antw:Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: Ruggy am 14 Oktober 2022, 14:25:14
Zitat von: DS_Starter am 14 Oktober 2022, 14:21:10
Ja, es sind rund 5,9 Mio Einträge in der DB (ohne Eingrenzungen).

Oh je.  :-[

Da ist es glaube ich mir "Frühjahrsputz" alleine nicht getan.
Da weiß ich ja gar nicht wo ich anfangen soll bzw. mit welcher Systematik ich vorgehe...

(vorerst zumindest mal das zumindest der Stromverbrauch keine negativen Werte mehr angezeigt)
Titel: Antw:Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: Ruggy am 14 Oktober 2022, 14:30:01
Ein

attr Rep.Energy device myShelly_Plug_1

und

set Rep.Energy countEntries

gibt jedoch nichts aus.

myShelly_Plug_1 wäre der Name vom Device.

Hier das List vom Rep.Energy:

Internals:
   CFGFN     
   DATABASE   /opt/fhem/fhem.db
   DEF        DbLog
   FUUID      6349395b-f33f-f59f-8e10-255074fb8c168bc2
   FVERSION   93_DbRep.pm:v8.50.3-s26429/2022-09-19
   LASTCMD    countEntries history
   MODEL      Client
   NAME       Rep.Energy
   NOTIFYDEV  global,Rep.Energy
   NR         761
   NTFY_ORDER 50-Rep.Energy
   ROLE       Client
   STATE      done
   TYPE       DbRep
   UTF8       1
   eventCount 9
   HELPER:
     DBLOGDEVICE DbLog
     IDRETRIES  2
     MINTS      2018-12-29 11:20:13
     PACKAGE    main
     VERSION    8.50.3
     DBREPCOL:
       COLSET     1
       DEVICE     64
       EVENT      512
       READING    64
       TYPE       64
       UNIT       32
       VALUE      128
   Helper:
     DBLOG:
       state:
         DbLog:
           TIME       1665750448.68971
           VALUE      done
   OLDREADINGS:
   READINGS:
     2022-10-14 14:27:28   __COUNT_history__no_aggregation 101016
     2022-10-14 14:27:28   state           done
   helper:
     bm:
       DbRep_Attr:
         cnt        2
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        14.10. 14:26:31
         max        0.000918149948120117
         tot        0.0010521411895752
         mAr:
           set
           Rep.Energy
           device
           myShelly_Plug_1
       DbRep_Define:
         cnt        1
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        14.10. 12:26:35
         max        0.0209510326385498
         tot        0.0209510326385498
         mAr:
           HASH(0x4f12e00)
           Rep.Energy DbRep DbLog
       DbRep_Get:
         cnt        12
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        14.10. 14:26:37
         max        0.000319957733154297
         tot        0.00219392776489258
         mAr:
           HASH(0x4f12e00)
           Rep.Energy
           ?
       DbRep_Notify:
         cnt        17
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        14.10. 13:52:59
         max        0.000334978103637695
         tot        0.00192999839782715
         mAr:
           HASH(0x4f12e00)
           HASH(0x4f12e00)
       DbRep_Set:
         cnt        37
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        14.10. 14:26:37
         max        0.053555965423584
         tot        0.209994792938232
         mAr:
           HASH(0x4f12e00)
           Rep.Energy
           countEntries
           history
Attributes:
   device     myShelly_Plug_1
   room       Testraum
Titel: Antw:Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: DS_Starter am 14 Oktober 2022, 14:38:38
Es gibt einen Setter "sqlSpecial allDevReadCount".
Im Ergebnis erhältst du einen Überblick welche / wieviel Device/Reading - Kombinationen in deine Db sind.

Beispiel:


  READINGS:
     2022-10-14 14:34:57   SqlResultRow_001 DEVICE|READING|COUNT
     2022-10-14 14:34:57   SqlResultRow_002 PR.GIGA.1|presenceAsNum|1557844
     2022-10-14 14:34:57   SqlResultRow_003 PR.GIGA.2|presenceAsNum|1470810
     2022-10-14 14:34:57   SqlResultRow_004 PR.GTag.AMISL|presenceAsNum|1194970
     2022-10-14 14:34:57   SqlResultRow_005 LogDB|notify_processing_time|576414
     2022-10-14 14:34:57   SqlResultRow_006 Shelly.shellyplug1|relay_0_energy_Wh|347022
     2022-10-14 14:34:57   SqlResultRow_007 ZWave.Switch.2|power|291778
     2022-10-14 14:34:57   SqlResultRow_008 ZWave.Switch.1|power|291498
     2022-10-14 14:34:57   SqlResultRow_009 og.bad.tablet.ladestation|state|282636
     2022-10-14 14:34:57   SqlResultRow_010 og.bad.tablet.ladestation|relay0|282422
     2022-10-14 14:34:57   SqlResultRow_011 og.bad.tablet.ladestation|input0|281730
     2022-10-14 14:34:57   SqlResultRow_012 Shelly.shellyplug2|relay_0_energy_Wh|274177
     2022-10-14 14:34:57   SqlResultRow_013 Shelly.shellyplug3|relay_0_energy_Wh|262410
     2022-10-14 14:34:57   SqlResultRow_014 PR.GIGA.1|rssi|216489
     2022-10-14 14:34:57   SqlResultRow_015 PR.GIGA.2|rssi|204194
     2022-10-14 14:34:57   SqlResultRow_016 Shelly.shellyplug4|relay_0_energy_Wh|179909
     2022-10-14 14:34:57   SqlResultRow_017 sysmon.fhem2|state|156361
     2022-10-14 14:34:57   SqlResultRow_018 heartbeat.fhem2|touch|145328
     2022-10-14 14:34:57   SqlResultRow_019 heartbeat|touch|145183
     2022-10-14 14:34:57   SqlResultRow_020 sysmon.fhem2|ram|145160
     2022-10-14 14:34:57   SqlResultRow_021 sysmon.fhem2|swap|145160
     2022-10-14 14:34:57   SqlResultRow_022 sysmon|ram|145039
     2022-10-14 14:34:57   SqlResultRow_023 sysmon|swap|145039
     2022-10-14 14:34:57   SqlResultRow_024 sysmon|stat_cpu_percent|145038
     2022-10-14 14:34:57   SqlResultRow_025 LogDB|CacheUsage|143328
     2022-10-14 14:34:57   SqlResultRow_026 LogDBShort|CacheOverflowLastNum|121312
     2022-10-14 14:34:57   SqlResultRow_027 LogDBShort|CacheUsage|103657
....


Vielleicht ist das ein guter erster Ansatz um zu sehen was überflüssig ist und wo es sich am meisten lohnt zu löschen um Platz zu sparen. Als Anregung.
Ansonsten gibt es einen Thread direkt zu DbRep in "Sonstiges". Dort kannst du alle deine Fragen rund um DbRep platzieren.
Wahrscheinlich kommt man hier dann schnell vom Thema weg.

Edit:
Gibt doch etwas aus:
Zitat
2022-10-14 14:27:28   __COUNT_history__no_aggregation 101016
Titel: Antw:Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: Frank_Huber am 14 Oktober 2022, 16:31:39
Zitat von: Ruggy am 14 Oktober 2022, 14:25:14
Oh je.  :-[

Da ist es glaube ich mir "Frühjahrsputz" alleine nicht getan.
Da weiß ich ja gar nicht wo ich anfangen soll bzw. mit welcher Systematik ich vorgehe...

(vorerst zumindest mal das zumindest der Stromverbrauch keine negativen Werte mehr angezeigt)

wenn Du MySQL einsetzt und auf eine SQL Konsole Zugreifen kannst ist der hier ganz hilfreich, listet dir die Geräte/Reading Kombinationen in der DB zusammen mit der Anzahl DB Einträge. evtl geht das auch als custom SQL Kommando. wäre jetzt aber nicht sicher ob das dafür nicht zu lang ist. :)

use fhem;
select `history`.`DEVICE` AS `device`,`history`.`READING` AS `reading`,count(0) AS `number` from `history` group by `history`.`DEVICE`,`history`.`READING`  order by `number` DESC;

Titel: Antw:Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: DS_Starter am 14 Oktober 2022, 16:36:51
Hallo Frank,

das ist doch das Statement was hinter dem Setter "sqlSpecial allDevReadCount" steckt  ;)
Man kann dein SQL Statement natürlich im DbRep sqlCmd ausführen lassen und bekommt das Ergebnis als Readings angezeigt.
Titel: Antw:Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: Frank_Huber am 14 Oktober 2022, 16:50:06
Zitat von: DS_Starter am 14 Oktober 2022, 16:36:51
das ist doch das Statement was hinter dem Setter "sqlSpecial allDevReadCount" steckt  ;)
;D ;D ;D
und das sagst jetzt wo ich das immer in der Konsole ausführe. Danke für die Info! ist gut zu wissen!
Titel: Antw:Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: DS_Starter am 14 Oktober 2022, 16:56:08
 :)
Wenn jemand hilfreiche Statements hat die immer wieder gern ausgeführt werden um bestimmte Infos aus der DB zu ziehen kann er sich gerne melden.
Solche Helferlein kann ich unter sqlSpecial gern einbauen.
Titel: Antw:Mit DbRep - Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: Ruggy am 14 Oktober 2022, 17:03:37
Ich habe das Thema verschoben, weil es hier "speziell" um das Modul DbRep jetzt geht und lt. @DS_Starter es hier evlt. besser aufgehoben ist.

Das DbRep ist ja ein "mächtiges" Modul mit vielen Funktionen. Wieder etwas neues mit dem ich mich beschäftigen müsste; wie so viele andere "Problemchen" die ich noch zu lösen hätte  ;)

Ich habe jetzt was gemacht und bekomme folgenden Fehler im DeviceOverview angezeigt:
Ich hoffe ich habe jetzt nicht schon was kaputt gemacht.

WARNING - countEntries finished, but message after command appeared

Folgendes habe ich durchgeführt, mit dem Device, was ich Rep.Energy genannt habe:


attr Rep.Energy allowDeletion 1
attr Rep.Energy device myShelly_Plug_1
attr Rep.Energy executeAfterProc set Rep.Energy reopen
attr Rep.Energy room Testraum


Dann
set Rep.Energy delEntries

Danach wird genannter Fehler angezeigt.

Im Logfile wird dies angezeigt:
2022.10.14 16:51:00 3: DbRep Rep.Energy - WARNING - running process 9855 will be killed now to start a new operation
2022.10.14 16:51:00 1: DbRep Rep.Energy -> BlockingCall DbRep_del pid:9855 Timeout: process terminated
2022.10.14 16:51:00 2: DbRep Rep.Energy - command message after command: "Unknown argument reopen, choose one of eraseReadings:noArg deviceRename index:list_all,recreate_Search_Idx,drop_Search_Idx,recreate_Report_Idx,drop_Report_Idx delDoublets:adviceDelete,delete delEntries changeValue readingRename exportToFile importFromFile maxValue:display,writeToDB,deleteOther minValue:display,writeToDB,deleteOther fetchrows:history,current diffValue:display,writeToDB insert reduceLog sqlCmd:textField-long sqlSpecial:50mostFreqLogsLast2days,allDevCount,allDevReadCount,50DevReadCount,recentReadingsOfDevice syncStandby tableCurrentFillup:noArg tableCurrentPurge:noArg countEntries:history,current sumValue:display,writeToDB,writeToDBSingle,writeToDBInTime averageValue:display,writeToDB,writeToDBSingle,writeToDBInTime delSeqDoublets:adviceRemain,adviceDelete,delete dumpSQLite:noArg repairSQLite vacuum:noArg restoreSQLite:  "
2022.10.14 16:51:16 2: DbRep Rep.Energy - Database command aborted: "Timeout: process terminated"
2022.10.14 16:51:16 1: [Freezemon] myFreezemon: possible freeze starting at 16:51:01, delay is 15.24 possibly caused by: tmr-HMUARTLGW_CheckCredits(myHmUART) tmr-HUEBridge_GetUpdate(deCONZ)
2022.10.14 16:51:16 2: DbRep Rep.Energy - command message after countEntries: "Unknown argument reopen, choose one of eraseReadings:noArg deviceRename index:list_all,recreate_Search_Idx,drop_Search_Idx,recreate_Report_Idx,drop_Report_Idx delDoublets:adviceDelete,delete delEntries changeValue readingRename exportToFile importFromFile maxValue:display,writeToDB,deleteOther minValue:display,writeToDB,deleteOther fetchrows:history,current diffValue:display,writeToDB insert reduceLog sqlCmd:textField-long sqlSpecial:50mostFreqLogsLast2days,allDevCount,allDevReadCount,50DevReadCount,recentReadingsOfDevice syncStandby tableCurrentFillup:noArg tableCurrentPurge:noArg countEntries:history,current sumValue:display,writeToDB,writeToDBSingle,writeToDBInTime averageValue:display,writeToDB,writeToDBSingle,writeToDBInTime delSeqDoublets:adviceRemain,adviceDelete,delete dumpSQLite:noArg repairSQLite vacuum:noArg restoreSQLite:  "
2022.10.14 16:51:41 2: DbRep Rep.Energy - command message after countEntries: "Unknown argument reopen, choose one of eraseReadings:noArg deviceRename index:list_all,recreate_Search_Idx,drop_Search_Idx,recreate_Report_Idx,drop_Report_Idx delDoublets:adviceDelete,delete delEntries changeValue readingRename exportToFile importFromFile maxValue:display,writeToDB,deleteOther minValue:display,writeToDB,deleteOther fetchrows:history,current diffValue:display,writeToDB insert reduceLog sqlCmd:textField-long sqlSpecial:50mostFreqLogsLast2days,allDevCount,allDevReadCount,50DevReadCount,recentReadingsOfDevice syncStandby tableCurrentFillup:noArg tableCurrentPurge:noArg countEntries:history,current sumValue:display,writeToDB,writeToDBSingle,writeToDBInTime averageValue:display,writeToDB,writeToDBSingle,writeToDBInTime delSeqDoublets:adviceRemain,adviceDelete,delete dumpSQLite:noArg repairSQLite vacuum:noArg restoreSQLite:  "


Titel: Antw:Mit DbRep - Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: DS_Starter am 14 Oktober 2022, 17:09:13
Du hast fast alles richtig gemacht, aber das Kommando in executeAfterProc

attr Rep.Energy executeAfterProc set Rep.Energy reopen

ist falsch. Das reopen gibt es im DbLog-Device, also so:


attr Rep.Energy executeAfterProc set DbLog reopen


So nebenbei, den Namen DbLog für das DbLog-Device halte ich nicht für sonderlich gelungen weil der TYPE schon DbLog ist.
Ist nicht verkehrt, aber könnte manchmal zu einem Knoten im Hirn führen.  ;)

Zitat
Ich hoffe ich habe jetzt nicht schon was kaputt gemacht.
Nein, so schnell gehts dann doch nicht.  ;)
Titel: Antw:Mit DbRep - Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: Ruggy am 14 Oktober 2022, 17:22:33
Jetzt habe ich das attribut geändert und nochmal den set ... Entries ausgeführt.

Folgendes wird jetzt in DeviceOverview angezeigt.

WARNING - delEntries finished, but message after command appeared


Den Namen DbLog habe ich, weil ich wahrscheinlich nach einer Anleitung vorgegangen bin.
Weiß nicht mehr sicher, ob nach Wiki oder einer anderen Anleitung.
Aber stimmt, es kann schon verwirren.
Titel: Antw:Mit DbRep - Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: DS_Starter am 14 Oktober 2022, 17:27:13
Ja das passt. Die Warnung deutet nur darauf hin, dass das ausgeführte Kommando in executeAfterProc eine Rückmeldung gegeben hat. In dem Fall eben dass die DB wieder geöffnet wurde. Im Log solltest du die Info dazu finden.
Titel: Antw:Mit DbRep - Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: Ruggy am 14 Oktober 2022, 17:36:42
Da bin ich froh, dass es so passt  :)

Danke für die Hilfe dazu.
Jetzt bin ich mal gespannt, ob die negativen Werte weg sind und dann auch der SVG-Plot richtig dargestellt wird.


Habe ich das richtig verstanden, dass es besser ist, wenn man für jede "Aufgabe" ein eigenes DbRep device anlegt?
Wenn man es für eine Aufgabe benötigt, welche nur einmal ausgeführt werden muss, kann man dieses wieder löschen?

Wenn man etwas immer wieder benötig behält man es natürlich.
Titel: Antw:Mit DbRep - Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: DS_Starter am 14 Oktober 2022, 17:51:06
Für immer wiederkehrende Aufgaben ist jeweils ein separates DbRep richtig.
Zum probieren, testen und solche Dinge habe ich mehrere universelle DbRep die ich je nach Bedarf umkonfiguriiere. Die lösche ich auch nicht.
Titel: Antw:Mit DbRep - Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: Ruggy am 14 Oktober 2022, 19:22:50
Habe jetzt mal den Anfang des derzeit 115 Seiten langen Thread überflogen und festgestellt, dass das DbRep auch evlt. für die Anzeige meiner Verbrauchswerte (Shelly) etwas wäre.
Vom Namen her wäre ich nicht darauf gekommen, dass man es dafür auch nutzen kann, sondern "nur" zum Verwalten der Daten in der Datenbank.
Hierfür muss ich mich aber erst damit mehr beschäftigen, wenn es zeitlich mal passt.

Derzeit und seit kurzem nutze ich das statistics dafür.
Bin erstmal froh, wenn dies jetzt funktioniert. Evtl. hätte ich aber mit DbRep Vorteile.


Außerdem hätte ich auch eine kleine PV-Anlage.
Die Daten logge ich über einen Solarlog 500 und die Daten werden auf einen Raspberry gespeichert, auf welchen "Sieglog" läuft und ich mir die Daten dadurch grafisch darstellen kann.
Dies habe ich nach Anleitung so eingerichtet.

In FHEM habe ich es bisher nicht eingebunden.
Titel: Antw:Mit DbRep - Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: DS_Starter am 14 Oktober 2022, 20:23:29
Thema Solaranlage ... vielleicht ist das eine Anregung:  https://wiki.fhem.de/wiki/Datenbankgest%C3%BCtzte_Erstellung_der_Energiebilanz_einer_SMA_PV-Anlage_mit_%C3%9Cberschusseinspeisung

Passt zum DbRep Thema weil damit die Datenextraktionen gemacht werden.
Titel: Antw:Mit DbRep - Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: Ruggy am 15 Oktober 2022, 08:56:48
Danje, schaue ich mir bei Gelegenheit an.
habe aber noch eine ältere Anlage ohne Überschusseinspeisung.
Titel: Antw:Mit DbRep - Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: Ruggy am 15 Oktober 2022, 19:39:16
Hat jemand eine Idee, warum jetzt das Modul statistics die Werte im Device myShelly_Plug_1

statEnergyHour
statEnergyHourLast


nicht aktualisiert?


statEnergyDay
statEnergyDayLast
statEnergyMonth
statEnergyYear


wird aber aktualisiert.

List
Internals:
   DEF        myShelly_Plug_1
   DEV_REGEXP myShelly_Plug_1
   FUUID      633feb30-f33f-f59f-391f-1ccdcfe2447c4ced
   NAME       myStatDevice
   NOTIFYDEV  global,myShelly_Plug_1
   NR         175
   NTFY_ORDER 10-myStatDevice
   PREFIX     stat
   STATE      Updated stats for: myShelly_Plug_1
   TYPE       statistics
   eventCount 138628
   Helper:
     DBLOG:
       state:
         DbLog:
           TIME       1665855399.68318
           VALUE      Updated stats for: myShelly_Plug_1
   READINGS:
     2022-10-09 10:05:51   monitoredDevicesShelly myShelly_Plug_1
     2022-10-15 18:59:55   nextPeriodChangeCalc 2022-10-15 19:59:55
     2022-10-15 19:36:39   state           Updated stats for: myShelly_Plug_1
   fhem:
     modulVersion $Date: 2022-07-12 07:25:06 +0200 (Tue, 12 Jul 2022) $
     nextPeriodChangeTime 1665856795
   helper:
     bm:
       statistics_Notify:
         cnt        140215
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        10.10. 18:56:34
         max        0.389561891555786
         tot        3268.50905227661
         mAr:
           HASH(0x3f6b718)
           HASH(0x3f6e580)
       statistics_Set:
         cnt        6417
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        14.10. 16:42:35
         max        0.0257971286773682
         tot        1.83132743835449
         mAr:
           HASH(0x3f6b718)
           myStatDevice
           resetStatistics
           all
Attributes:
   deltaReadings energy
   room       Stromverbrauch
   singularReadings myShelly_Plug_1:energy:Delta:(Hour|Day|Month|Year)


List myShelly_plug_1

Internals:
   DEF        192.168.1.42
   DURATION   0
   FUUID      633ad3ff-f33f-f59f-3348-5e3c38309aa375f1
   INTERVAL   2
   NAME       myShelly_Plug_1
   NR         173
   SHELLYID   shellyplug-s-893C64
   STATE      off
   TCPIP      192.168.1.42
   TYPE       Shelly
   eventCount 140221
   Helper:
     DBLOG:
       energy:
         DbLog:
           TIME       1665824520.58977
           VALUE      77
       power:
         DbLog:
           TIME       1665824478.08481
           VALUE      0
       statEnergyDay:
         DbLog:
           TIME       1665824520.58977
           VALUE      3.1
       statEnergyDayLast:
         DbLog:
           TIME       1665784795.01693
           VALUE      1.4
       statEnergyHour:
         DbLog:
           TIME       1665827995.01224
           VALUE      0.0
       statEnergyHourLast:
         DbLog:
           TIME       1665831595.01448
           VALUE      0.0
       statEnergyMonth:
         DbLog:
           TIME       1665824520.58977
           VALUE      3.1
       statEnergyYear:
         DbLog:
           TIME       1665824520.58977
           VALUE      3.1
       state:
         DbLog:
           TIME       1665855438.54616
           VALUE      off
   OLDREADINGS:
   READINGS:
     2022-10-03 14:22:23   cloud           disabled
     2022-10-15 11:02:00   energy          77
     2022-10-03 14:22:23   firmware        4
     2022-10-15 19:37:25   inttemp         22.12
     2022-10-14 13:25:26   network         <html>connected to <a href="http://192.168.1.42">192.168.1.42</a></html>
     2022-10-15 19:37:18   overpower       0
     2022-10-15 11:01:18   power           0
     2022-10-15 19:37:18   relay           off
     2022-10-15 19:37:25   statEnergy      Hour: 0.0 Day: 3.1 Month: 3.1 Year: 3.1 (since: 2022-10-15 )
     2022-10-15 19:37:25   statEnergyDay   3.1
     2022-10-14 23:59:55   statEnergyDayLast 1.4
     2022-10-15 19:37:25   statEnergyHour  0.0
     2022-10-15 18:59:55   statEnergyHourLast 0.0
     2022-10-15 18:59:55   statEnergyLast  Hour: 0.0 Day: 1.4 Month: - Year: - (since: 2022-10-14_17:31:59 )
     2022-10-15 19:37:25   statEnergyMonth 3.1
     2022-10-15 19:37:25   statEnergyYear  3.1
     2022-10-15 19:37:25   statPowerDay    Min: 0.00 Avg: 0.07 Max: 51.27
     2022-10-14 23:59:55   statPowerDayLast Min: 0.00 Avg: 0.06 Max: 50.07 (since: 2022-10-14_17:31:59 )
     2022-10-15 19:37:25   statPowerMonth  Min: 0.00 Avg: 0.07 Max: 51.27 (since: 2022-10-14_17:31:59 )
     2022-10-15 19:37:25   statPowerYear   Min: 0.00 Avg: 0.07 Max: 51.27 (since: 2022-10-14_17:31:59 )
     2022-10-15 11:01:18   state           off
   helper:
     _98_statistics myStatDevice
     bm:
       Shelly_Get:
         cnt        40
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        14.10. 12:45:30
         max        0.00373506546020508
         tot        0.00877022743225098
         mAr:
           HASH(0x3f6e580)
           myShelly_Plug_1
           ?
       Shelly_Set:
         cnt        27880
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        09.10. 17:22:46
         max        0.0169467926025391
         tot        24.9542870521545
         mAr:
           HASH(0x3f6e580)
           myShelly_Plug_1
           off
Attributes:
   event-on-change-reading .*
   icon       measure_power
   interval   2
   model      shellyplug
   room       Kellerlüftung,Stromverbrauch


DEF von DbLog

./db.conf .*:(temperature|humidity|dewpoint|absFeuchte|pressure|state|open|closed|on|off|motion|nomotion|power|energy|statEnergyDay|statEnergyDayLast|statEnergyHour|statEnergyHourLast|statEnergyMonth|statEnergyYear).*
Titel: Antw:Mit DbRep - Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: Ruggy am 15 Oktober 2022, 19:46:06
Ich glaube ich habe mal wieder schneller geschrieben als gedacht (also langsam)  ;)

Ich glaube es hängt damit zusammen, dass in dieser Stunde und die letzte Stunde keine Strom verbraucht wurde.  :-[
Titel: Antw:Mit DbRep - Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: Ruggy am 16 Oktober 2022, 10:47:49
Jetzt muß ich mich doch wieder melden, weil wieder negative Werte im myShelly_Plug_1 angezeigt werden.


An was könnte das liegen?

Das Löschen der Werte hat anscheinend bzgl. den negativen Werten nichts bewirkt.

List vom myShelly_Plug_1

Internals:
   DEF        192.168.1.42
   DURATION   0
   FUUID      633ad3ff-f33f-f59f-3348-5e3c38309aa375f1
   INTERVAL   2
   NAME       myShelly_Plug_1
   NR         173
   SHELLYID   shellyplug-s-893C64
   STATE      off
   TCPIP      192.168.1.42
   TYPE       Shelly
   eventCount 151826
   Helper:
     DBLOG:
       energy:
         DbLog:
           TIME       1665885721.45866
           VALUE      1.5
       power:
         DbLog:
           TIME       1665885679.93221
           VALUE      0
       statEnergyDay:
         DbLog:
           TIME       1665885721.45866
           VALUE      1.5
       statEnergyDayLast:
         DbLog:
           TIME       1665871195.00891
           VALUE      -73.9
       statEnergyHour:
         DbLog:
           TIME       1665889195.01447
           VALUE      0.0
       statEnergyHourLast:
         DbLog:
           TIME       1665892795.01478
           VALUE      0.0
       statEnergyMonth:
         DbLog:
           TIME       1665885721.45866
           VALUE      -72.4
       statEnergyYear:
         DbLog:
           TIME       1665885721.45866
           VALUE      -72.4
       state:
         DbLog:
           TIME       1665909919.60888
           VALUE      off
   OLDREADINGS:
   READINGS:
     2022-10-03 14:22:23   cloud           disabled
     2022-10-16 04:02:01   energy          1.5
     2022-10-03 14:22:23   firmware        4
     2022-10-16 10:45:41   inttemp         22.66
     2022-10-15 23:34:26   network         <html>connected to <a href="http://192.168.1.42">192.168.1.42</a></html>
     2022-10-16 10:45:19   overpower       0
     2022-10-16 04:01:19   power           0
     2022-10-16 10:45:19   relay           off
     2022-10-16 10:45:41   statEnergy      Hour: 0.0 Day: 1.5 Month: -72.4 Year: -72.4 (since: 2022-10-15 )
     2022-10-16 10:45:41   statEnergyDay   1.5
     2022-10-15 23:59:55   statEnergyDayLast -73.9
     2022-10-16 10:45:41   statEnergyHour  0.0
     2022-10-16 09:59:55   statEnergyHourLast 0.0
     2022-10-16 09:59:55   statEnergyLast  Hour: 0.0 Day: -73.9 Month: - Year: -
     2022-10-16 10:45:41   statEnergyMonth -72.4
     2022-10-16 10:45:41   statEnergyYear  -72.4
     2022-10-16 10:45:41   statPowerDay    Min: 0.00 Avg: 0.07 Max: 49.74
     2022-10-15 23:59:55   statPowerDayLast Min: 0.00 Avg: 0.57 Max: 51.27
     2022-10-16 10:45:41   statPowerMonth  Min: 0.00 Avg: 0.36 Max: 51.27 (since: 2022-10-14_17:31:59 )
     2022-10-16 10:45:41   statPowerYear   Min: 0.00 Avg: 0.36 Max: 51.27 (since: 2022-10-14_17:31:59 )
     2022-10-16 04:01:19   state           off
   helper:
     _98_statistics myStatDevice
     bm:
       Shelly_Get:
         cnt        50
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        14.10. 12:45:30
         max        0.00373506546020508
         tot        0.00974440574645996
         mAr:
           HASH(0x3f6e580)
           myShelly_Plug_1
           ?
       Shelly_Set:
         cnt        37296
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        09.10. 17:22:46
         max        0.0169467926025391
         tot        29.3826704025269
         mAr:
           HASH(0x3f6e580)
           myShelly_Plug_1
           off
Attributes:
   event-on-change-reading .*
   icon       measure_power
   interval   2
   model      shellyplug
   room       Kellerlüftung,Stromverbrauch


List vom myStatDevice

Internals:
   DEF        myShelly_Plug_1
   DEV_REGEXP myShelly_Plug_1
   FUUID      633feb30-f33f-f59f-391f-1ccdcfe2447c4ced
   NAME       myStatDevice
   NOTIFYDEV  global,myShelly_Plug_1
   NR         175
   NTFY_ORDER 10-myStatDevice
   PREFIX     stat
   STATE      Updated stats for: myShelly_Plug_1
   TYPE       statistics
   eventCount 150259
   Helper:
     DBLOG:
       state:
         DbLog:
           TIME       1665909983.17739
           VALUE      Updated stats for: myShelly_Plug_1
   READINGS:
     2022-10-09 10:05:51   monitoredDevicesShelly myShelly_Plug_1
     2022-10-16 09:59:55   nextPeriodChangeCalc 2022-10-16 10:59:55
     2022-10-16 10:46:23   state           Updated stats for: myShelly_Plug_1
   fhem:
     modulVersion $Date: 2022-07-12 07:25:06 +0200 (Tue, 12 Jul 2022) $
     nextPeriodChangeTime 1665910795
   helper:
     bm:
       statistics_Notify:
         cnt        151838
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        10.10. 18:56:34
         max        0.389561891555786
         tot        3542.95421409607
         mAr:
           HASH(0x3f6b718)
           HASH(0x3f6e580)
       statistics_Set:
         cnt        8683
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        14.10. 16:42:35
         max        0.0257971286773682
         tot        2.43413829803467
         mAr:
           HASH(0x3f6b718)
           myStatDevice
           resetStatistics
           all
Attributes:
   deltaReadings energy
   room       Stromverbrauch
   singularReadings myShelly_Plug_1:energy:Delta:(Hour|Day|Month|Year)
Titel: Antw:Mit DbRep - Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: DS_Starter am 16 Oktober 2022, 10:54:52
Zitat
Das Löschen der Werte hat anscheinend bzgl. den negativen Werten nichts bewirkt.
Aus der DB wurden die Readings bestimmt gelöscht.
Aber wenn die statistic wieder negative Werte erstellt kommen sie per Logging auch wieder in die DB.

Du müsstest m.M. nach einen neuen Thread für das Statistics Modul eröffnen um die Ursache der negativen Werte zu ermitteln und zu beseitigen.
Titel: Antw:Mit DbRep - Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: Ruggy am 16 Oktober 2022, 11:08:37
Ja, die Werte wurden gelöscht. Dies hat funktioniert.
Danke.

Werde einen neuen Thread eröffnen.
Dies wäre im Prinzip der selbe als der Eröffnungsthread von diesem (und zusätzlich, dass die Daten gelöscht wurden).
Oder soll ich diesen wieder verschieben oder verwirrt dies zuviel?
Titel: Antw:Mit DbRep - Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: DS_Starter am 16 Oktober 2022, 11:11:07
Zitat
Oder soll ich diesen wieder verschieben oder verwirrt dies zuviel?
Nein, nicht verschieben. Das war hier DbRep bzw. Datenbank Thema.
Darum geht es dir ja jetzt nicht mehr.
Titel: Antw:Mit DbRep - Einzelne Werte in dbLog löschen - negative Werte werden angezeigt
Beitrag von: Ruggy am 16 Oktober 2022, 11:26:41
Alles klar.
Vielen Dank an dieser Stelle  :)