[gelöst] dbLog - nicht mehr notwendige Devices aus Datenbank löschen

Begonnen von thburkhart, 11 Januar 2023, 16:50:54

Vorheriges Thema - Nächstes Thema

thburkhart

hallo zusammen,

erst seit kurzen wurde mir gezeigt, wie man alle neuen Devices mit attr xxxxxx dblogeclude .* vom Schreiben in die Datenbank abhalten kann.

Einige Devices habe ich auch mit rename umbenannt.

Jedenfalls habe ich 100tausende Einträge mit devices a la
tuya_local_xxxxxxxxxxxxxxx

wie kann ich alle diese Einträge mit einem Befehl aus der dbLog  löschen?

mit dbLog sieht so aus:

[code]define dblog_THB DbLog ./configDB.conf .*:.*
attr dblog_THB DbLogType Current/History
attr dblog_THB alias dblog_THB
attr dblog_THB asyncMode 1
attr dblog_THB bulkInsert 1
attr dblog_THB cacheLimit 5000
attr dblog_THB comment ./configDB.conf .*:(state|temperature|power|humidity|va_temperature|va_humidity|humidity_value|desiredTemperature|valveposition|\\
\/buderus:heatSources\/systemPressure|CHpumpModulation|actualDHWPower|actualCHPower|flameStatus|\\
applianceSupplyTemperature|actualSupplyTemperature|supplyTemperatureSetpoint|outdoor_t1|supply_t1|supply_t1_setpoint|\\
actualTemp|currentSetpoint|charge|chargeDuration|setpoint|singleChargeSetpoint|workingTime|oilfox_metering_liters).*
attr dblog_THB commitMode ac:on_ta:off
attr dblog_THB room DBLog
attr dblog_THB syncInterval 30
attr dblog_THB useCharfilter 1
attr dblog_THB verbose 1
#   COLUMNS    field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
#   CONFIGURATION ./configDB.conf
#   DEF        ./configDB.conf .*:.*
#   FD         5
#   FUUID      63a33b3f-f33f-fd5f-7f81-5787629cdd49cde5
#   FVERSION   93_DbLog.pm:v5.5.9-s26923/2022-12-29
#   MODE       asynchronous
#   MODEL      MYSQL
#   NAME       dblog_THB
#   NR         2
#   NTFY_ORDER 50-dblog_THB
#   PID        23424
#   REGEXP     .*:.*
#   SBP_PID    27933
#   SBP_STATE  running
#   STATE      connected
#   TYPE       DbLog
#   UTF8       0
#   dbconn     mysql:database=fhem;host=localhost;port=3306
#   dbuser     fhemuser
#   eventCount 71
#   HELPER:
#     COLSET     1
#     DEVICECOL  64
#     EVENTCOL   512
#     LONGRUN_PID 1673452155.67657
#     OLDSTATE   connected
#     PACKAGE    main
#     READINGCOL 64
#     TC         current
#     TH         history
#     TYPECOL    64
#     UNITCOL    32
#     VALUECOL   128
#     VERSION    5.5.9
#   Helper:
#     DBLOG:
#       CacheOverflowLastNum:
#         dblog_THB:
#           TIME       1673452155.67046
#           VALUE      0
#       state:
#         dblog_THB:
#           TIME       1673450131.0978
#           VALUE      connected
#   OLDREADINGS:
#   READINGS:
#     2023-01-11 16:49:15   CacheOverflowLastNum 0
#     2022-12-31 19:49:09   CacheOverflowLastState normal
#     2023-01-11 16:49:15   CacheUsage      1
#     2023-01-11 16:49:15   NextSync        2023-01-11 16:49:45 or when CacheUsage 5000 is reached
#     2023-01-11 16:49:15   state           connected
#
setstate dblog_THB connected
setstate dblog_THB 2023-01-11 16:49:15 CacheOverflowLastNum 0
setstate dblog_THB 2022-12-31 19:49:09 CacheOverflowLastState normal
setstate dblog_THB 2023-01-11 16:49:15 CacheUsage 1
setstate dblog_THB 2023-01-11 16:49:15 NextSync 2023-01-11 16:49:45 or when CacheUsage 5000 is reached
setstate dblog_THB 2023-01-11 16:49:15 state connected

[/code]

danke sehr für Eure Hilfe

Thomas
1 RASPI4B, 1 RASPI3B, 2 CUL, 2 Jeelink, 60 Tuya-Devices (Schalter, Dimmer, Sensoren, Cameras), 30 HUE-Lampen, 5 MAX! WTs, 16 MAX! HTs, 12 MAX! FKs, 1 Bresser 5in1, 1 OilFox, 8 ALEXA Echos und Dots, FHEM, 5 Tasmota-Devices, SonOff -Bridge, PowerFox, Buderus KM200

DS_Starter

Im DbRep (sqlCmd) oder einem SQL Editor deiner Wahl ...

Zuerst mit einem count checken ob das Ergebnis den Erwartungen entspricht:


select count(*) from history where device like "tuya_local_%";


Und dann löschen:


delete from history where device like "tuya_local_%";


(Eine DB Sicherung sollte man immer haben)
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

thburkhart

#2
Zitat von: DS_Starter am 11 Januar 2023, 17:01:10

danke, Heiko

(Eine DB Sicherung sollte man immer haben)

peinliche Frage ;-) wie erstelle ich die am Besten?

mit mit dumpMySql clientside ?
wohin wird der dump dann geschrieben ?
1 RASPI4B, 1 RASPI3B, 2 CUL, 2 Jeelink, 60 Tuya-Devices (Schalter, Dimmer, Sensoren, Cameras), 30 HUE-Lampen, 5 MAX! WTs, 16 MAX! HTs, 12 MAX! FKs, 1 Bresser 5in1, 1 OilFox, 8 ALEXA Echos und Dots, FHEM, 5 Tasmota-Devices, SonOff -Bridge, PowerFox, Buderus KM200

DS_Starter

Es gibt je nach Datenbanktyp diverse Möglichkeiten die vom Typ abhängen.

Im DbRep habe ich für MySQL/MariaDB und SQLite Befehle eingebaut um aus FHEM heraus eine (regelmäßige) Sicherung zu machen.

Im Wiki:

https://wiki.fhem.de/wiki/DbRep_-_Reporting_und_Management_von_DbLog-Datenbankinhalten#Backup.2FRestore_einer_SQLite_Datenbank_im_laufenden_Betrieb

bzw.

https://wiki.fhem.de/wiki/DbRep_-_Reporting_und_Management_von_DbLog-Datenbankinhalten#Backup.2FRestore_einer_MySQL.2FMariaDB_Datenbank_im_laufenden_Betrieb

Wenn du DB nutzt, solltest du auf jeden Fall eine regelmäßige Sicherung anfertigen. Es kann immer mal etwas schiefgehen.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Zitat
wohin wird der dump dann geschrieben ?

Steht doch in der Commandref:

Zitat
Option clientSide
Der Dump wird durch den Client (FHEM-Rechner) erstellt und per default im log-Verzeichnis des Clients gespeichert. Das Zielverzeichnis kann mit dem Attribut dumpDirLocal verändert werden und muß auf dem Client durch FHEM beschreibbar sein.
....
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

thburkhart

das mache ich regelmäßig mit:

[code]define at_dblog_THBDump at *04:00:00 set Report_DumpsRows dumpMySQL clientSide
attr at_dblog_THBDump DbLogExclude .*
attr at_dblog_THBDump alias THBDUMP 4:00
attr at_dblog_THBDump room DBLog,xTimer
#   COMMAND    set Report_DumpsRows dumpMySQL clientSide
#   DEF        *04:00:00 set Report_DumpsRows dumpMySQL clientSide
#   FUUID      61daea6a-f33f-21fb-b2e6-a7e04cc6a8d5bed2
#   NAME       at_dblog_THBDump
#   NR         48
#   PERIODIC   yes
#   RELATIVE   no
#   REP        -1
#   STATE      Next: 04:00:00
#   TIMESPEC   04:00:00
#   TRIGGERTIME 1673492400
#   TRIGGERTIME_FMT 2023-01-12 04:00:00
#   TYPE       at
#   READINGS:
#     2023-01-11 16:14:24   state           Next: 04:00:00
#
setstate at_dblog_THBDump Next: 04:00:00
setstate at_dblog_THBDump 2023-01-11 16:14:24 state Next: 04:00:00

[/code]

ich weiß nur nicht, wohin der dump geschrieben wird, damit ich es überprüfen könnte..
1 RASPI4B, 1 RASPI3B, 2 CUL, 2 Jeelink, 60 Tuya-Devices (Schalter, Dimmer, Sensoren, Cameras), 30 HUE-Lampen, 5 MAX! WTs, 16 MAX! HTs, 12 MAX! FKs, 1 Bresser 5in1, 1 OilFox, 8 ALEXA Echos und Dots, FHEM, 5 Tasmota-Devices, SonOff -Bridge, PowerFox, Buderus KM200

DS_Starter

#6
Zitat
ich weiß nur nicht, wohin der dump geschrieben wird, damit ich es überprüfen könnte..

siehe meine Antwort oben.

Vllt. sollte ich in der ComRef schreiben /opt/fhem/log -> wäre wohl eindeutiger. Muss ich mal dran denken.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

thburkhart

Zitat von: DS_Starter am 11 Januar 2023, 17:26:22
siehe meine Antwort oben.

du schreibst schneller wie ich denke..

nur finde ich im Log nur fhemlog-Dateien

was mache ich in der Def oben falsch?
1 RASPI4B, 1 RASPI3B, 2 CUL, 2 Jeelink, 60 Tuya-Devices (Schalter, Dimmer, Sensoren, Cameras), 30 HUE-Lampen, 5 MAX! WTs, 16 MAX! HTs, 12 MAX! FKs, 1 Bresser 5in1, 1 OilFox, 8 ALEXA Echos und Dots, FHEM, 5 Tasmota-Devices, SonOff -Bridge, PowerFox, Buderus KM200

DS_Starter

#8
Sieht alles richtig aus.

Führe den Befehl doch im DbRep mal manuell aus, setze dabei evtl. verbose 4 um Logausgaben zu sehen und prüfe ob alles funktioniert.
Möglicherweise hast du die Lage auch mit dem Attr dumpDirLocal  geändert, sieht man hier ja nicht.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

thburkhart

Zitat von: DS_Starter am 11 Januar 2023, 17:37:02
Sieht alles richtig aus.

Führe den Befehl doch im DbRep mal manuell aus, setze dabei evtl. verbose 4 um Logasusagen zu sehen und prüfe ob alles funktioniert.
Möglicherweise hast du die Lage auch mit dem Attr dumpDirLocal  geändert, sieht man hier ja nicht.

ok habe nun mal manuell gestartet:
2023.01.11 17:37:33 3: DbRep ReportDbLog_THB - ################################################################
2023.01.11 17:37:33 3: DbRep ReportDbLog_THB - ###             New database clientSide dump                 ###
2023.01.11 17:37:33 3: DbRep ReportDbLog_THB - ################################################################
2023.01.11 17:37:33 3: DbRep ReportDbLog_THB - Starting dump of database 'fhem'
2023.01.11 17:37:33 3: DbRep ReportDbLog_THB - Characterset of collection set to utf8.
2023.01.11 17:37:33 3: DbRep ReportDbLog_THB - Searching for tables inside database fhem....
2023.01.11 17:37:38 3: HUESensor6: Batteriewarnung battery: 77
2023.01.11 17:37:38 3: DbRep ReportDbLog_THB - Found 2 tables with 2751106 records.
2023.01.11 17:37:38 3: DbRep ReportDbLog_THB - Dumping table current (Type InnoDB):
2023.01.11 17:37:39 3: DbRep ReportDbLog_THB - 13669 records inserted (size of backupfile: 2.60 MB)
2023.01.11 17:37:39 3: DbRep ReportDbLog_THB - Dumping table history (Type InnoDB):


das wird wohl nun ne weile dauern
1 RASPI4B, 1 RASPI3B, 2 CUL, 2 Jeelink, 60 Tuya-Devices (Schalter, Dimmer, Sensoren, Cameras), 30 HUE-Lampen, 5 MAX! WTs, 16 MAX! HTs, 12 MAX! FKs, 1 Bresser 5in1, 1 OilFox, 8 ALEXA Echos und Dots, FHEM, 5 Tasmota-Devices, SonOff -Bridge, PowerFox, Buderus KM200

thburkhart

#10
wie muss das Zielverzeichnis für dumpDirLocal  angeben werden ?

attr dumpDirLocal /fhem/sqllog oder so?


jedenfalls kommt nun im log Verzeichnis was an..
dann stimmt wohl an meinem at was nicht ?
1 RASPI4B, 1 RASPI3B, 2 CUL, 2 Jeelink, 60 Tuya-Devices (Schalter, Dimmer, Sensoren, Cameras), 30 HUE-Lampen, 5 MAX! WTs, 16 MAX! HTs, 12 MAX! FKs, 1 Bresser 5in1, 1 OilFox, 8 ALEXA Echos und Dots, FHEM, 5 Tasmota-Devices, SonOff -Bridge, PowerFox, Buderus KM200

DS_Starter

Zitat
wie muss das Zielverzeichnis für dumpDirLocal  angeben werden ?

Steht doch auch in der (Direkt)hilfe zum Attribut als Beispiel:

Zitat
attr <Name> dumpDirLocal /sds1/backup/dumps_FHEM/

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

DS_Starter

Du kannst dein at auch mit "set ... execNow" mal manuell starten und dann kannst du im Log verfolgen was DbRep macht.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Schau mal in deinem at steht


set Report_DumpsRows dumpMySQL clientSide


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

thburkhart

super; mein Dump läuft nun prima auch mit Trigger
danke

nun mache ich mich ans Löschen
1 RASPI4B, 1 RASPI3B, 2 CUL, 2 Jeelink, 60 Tuya-Devices (Schalter, Dimmer, Sensoren, Cameras), 30 HUE-Lampen, 5 MAX! WTs, 16 MAX! HTs, 12 MAX! FKs, 1 Bresser 5in1, 1 OilFox, 8 ALEXA Echos und Dots, FHEM, 5 Tasmota-Devices, SonOff -Bridge, PowerFox, Buderus KM200