93_DbLog - Überlegungen zur Optimierung (RPI und andere Systeme)

Begonnen von JoeALLb, 27 Januar 2017, 22:16:19

Vorheriges Thema - Nächstes Thema

DS_Starter

Hallo est,

wenn du mit den Maßnahmen nicht weiterkommst, dann gib mal im FHEMWEB in der KOmmandozeile ein:

{ delete $defs{myDbLog}{HELPER}{RUNNING_PID}}

Wird dann der Zustand wieder normalisiert ?

Grüße
Heiko
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

est

set myDbLog reopen 10 hat leider keine Veränderung gebracht.

Nach { delete $defs{myDbLog}{HELPER}{RUNNING_PID}} war der state 'Database access timeout' und CacheUsage hat neu zu zählen begonnen. Seit dem scheint das Loggen wieder zu funktionieren. Der MemCache ist aber offenbar auch verloren gegangen. Im Diagramm fehlt jedenfalls der Zeitraum von gestern Abend bis heute früh.

In dem List von vorhin, stehen ja die ganzen Daten (Bei mir in einer Datei - im Forum habe ich diesen Teil ja gekürzt). Das kann man aber auch nur mit großem Aufwand importieren - oder?
FHEM unter Ubuntu Server aus ESXi 5
1 HM-LAN, 3 HM-CC-RT-DN, 3 HM-CC-TC, 4 HM-CC-VD
1 Arduino verbindet die Vitodens + oneWire + sonstigen Heizungskram über Ethernet mit dem telnet-Port von FHEM

DS_Starter

#152
ZitatNach { delete $defs{myDbLog}{HELPER}{RUNNING_PID}} war der state 'Database access timeout' und CacheUsage hat neu zu zählen begonnen. Seit dem scheint das Loggen wieder zu funktionieren.

Dann werde ich die reopen-Funktion etwas erweitern damit solche Zustände (wahrscheinlich sehr selten , bei mir noch nie) bereinigt werden könnnen.

ZitatDer MemCache ist aber offenbar auch verloren gegangen. Im Diagramm fehlt jedenfalls der Zeitraum von gestern Abend bis heute früh.

Das ist allerdings unverständlich da nach der "Lösung des Knotens" alle vorhandenen Cache-Daten in die DB geschrieben werden, danach wird CacheUsage 0 (nach Browserrefresh) sein. Schau mal deinem SQL-Editor in die DB zu den fraglichen Zeiten bzw. auch im fhem/MySQL-Log nach weiteren Hinweisen.

EDIT: Sind mir gerade Schuppen von den Augen gefallen. Die Schreibfunktion ist in einen Timeout gelaufen weil seehr viele Daten in die DB zu schreiben waren. Die dafür benötigte Zeit lag über dem Timeout.  -> Werde die Timeout-Zeit generall erhöhen um dem vorzubeugen.

Grüße
Heiko
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

est

Ich habe attr myDbLog Verbose 5 gesetzt und gespeichert. Das ging obwohl es in mit configDb in die gleiche Datenbank läuft.

Dann habe ich den Eventmonitor mit Häckchen für FHEM log geöffnet und { delete $defs{myDbLog}{HELPER}{RUNNING_PID}} ausgeführt:

10:44:12 4 : DbLog myDbLog -> ################################################################
2017.02.18 10:44:12 4 : DbLog myDbLog -> ### start of new Logcycle ###
2017.02.18 10:44:12 4 : DbLog myDbLog -> ################################################################
2017.02.18 10:44:12 4 : DbLog myDbLog -> amount of events received: 1 for device: ThermeSpeicherTemp
2017.02.18 10:44:12 4 : DbLog myDbLog -> check Device: ThermeSpeicherTemp , Event: 74.9
2017.02.18 10:44:12 4 : DbLog myDbL
og -> added event - Timestamp: 2017-02-18 10:44:12, Device: ThermeSpeicherTemp, Type: DUMMY, Event: 74.9, Reading: state, Value: 74.9, Unit: 2017.02.18 10:44:12 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:12 4 : DbLog myDbLog -> ###              start of new Logcycle                       ###2017.02.18 10:44:12 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:12 4 : DbLog myDbLog -> amount of events received: 1 for device: myDbLog2017.02.18 10:44:12 4 : DbLog myDbLog -> check Device: myDbLog , Event: CacheUsage: 1082942017-02-18 10:44:12 DbLog myDbLog CacheUsage: 108294
2017.02.18 10:44:12 5 : DbLog myDbLog -> Number of cache entries reached cachelimit 1000 - start database sync.2017.02.18 10:44:12 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:12 4 : DbLog myDbLog -> ###              start of new Logcycle                       ###2017.02.18 10:44:12 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:12 4 : DbLog myDbLog -> amount of events received: 1 for device: myDbLog2017.02.18 10:44:12 4 : DbLog myDbLog -> check Device: myDbLog , Event: Commit already running - resync at NextSync2017.02.18 10:44:12 4 : DbLog myDbLog -> added event - Timestamp: 2017-02-18 10:44:12, Device: myDbLog, Type: DBLOG, Event: Commit already running - resync at NextSync, Reading: state, Value: Commit already running - resync at NextSync, Unit: 2017.02.18 10:44:12 5 : DbLog myDbLog -> Number of cache entries reached cachelimit 1000 - start database sync.2017-02-18 10:44:12 DbLog myDbLog Commit already running - resync at NextSync
2017-02-18 10:44:12 DbLog myDbLog CacheUsage: 108295
2017-02-18 10:44:12 DbLog myDbLog CacheUsage: 108295
2017-02-18 10:44:12 DbLog myDbLog NextSync: 2017-02-18 10:44:42 or if CacheUsage 1000 reached
2017-02-18 10:44:12 DbLog myDbLog Commit already running - resync at NextSync
2017-02-18 10:44:12 dummy ThermeSpeicherTemp 74.9
2017.02.18 10:44:13 4 : DbLog myDbLog -> ################################################################
2017.02.18 10:44:13 4 : DbLog myDbLog -> ### start of new Logcycle ###
2017.02.18 10:44:13 4 : DbLog myDbLog -> ################################################################
2017.02.18 10:44:13 4 : DbLog myDbLog -> amount of events received: 1 for device: global
2017.02.18 10:44:13 4 : DbLog myDbLog -> check Device: global , Event: SAVE
2017.02.18 10:44:13 4 : DbLog myDbLog -> added event - Timestamp: 2017-02-18 10:44:13, Device: global, Type: GLOBAL, Event: SAVE, Reading: state, Value: SAVE, Unit:
2017.02.18 10:44:13 4 : DbLog myDbLog -> ################################################################
2017.02.18 10:44:13 4 : DbLog myDbLog -> ### start of new Logcycle ###
2017.02.18 10:44:13 4 : DbLog myDbLog -> ################################################################
2017.02.18 10:44:13 4 : DbLog myDbLog -> amount of events received: 1 for device: myDbLog
2017.02.18 10:44:13 4 : DbLog myDbLog -> check Device: myDbLog , Event: CacheUsage: 108296
2017-02-18 10:44:13 DbLog myDbLog CacheUsage: 108296
2017.02.18 10:44:13 5 : DbLog myDbLog -> Number of cache entries reached cachelimit 1000 - start database sync.
2017.02.18 10:44:13 4 : DbLog myDbLog -> ################################################################
2017.02.18 10:44:13 4 : DbLog myDbLog -> ### start of new Logcycle ###
2017.02.18 10:44:13 4 : DbLog myDbLog -> ################################################################
2017.02.18 10:44:13 4 : DbLog myDbLog -> amount of events received: 1 for device: myDbLog
2017.02.18 10:44:13 4 : DbLog myDbLog -> check Device: myDbLog , Event: Commit already running - resync at NextSync
2017.02.18 10:44:13 4 : DbLog myDbLog -> added event - Timestamp: 2017-02-18 10:44:13, Device: myDbLog, Type: DBLOG, Event: Commit already running - resync at NextSync, Reading: state, Value: Commit already running - resync at NextSync, Unit:
2017.02.18 10:44:13 5 : DbLog myDbLog -> Number of cache entries reached cachelimit 1000 - start database sync.
2017-02-18 10:44:13 DbLog myDbLog Commit already running - resync at NextSync
2017-02-18 10:44:13 DbLog myDbLog CacheUsage: 108297
2017-02-18 10:44:13 DbLog myDbLog CacheUsage: 108297
2017-02-18 10:44:13 DbLog myDbLog NextSync: 2017-02-18 10:44:43 or if CacheUsage 1000 reached
2017-02-18 10:44:13 DbLog myDbLog Commit already running - resync at NextSync
2017-02-18 10:44:13 Global global SAVE
2017.02.18 10:44:14 5 : DbLog myDbLog -> Start DbLog_PushAsyncDone
2017.02.18 10:44:14 5 : DbLog myDbLog -> DbLog_PushAsyncDone finished
2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################
2017.02.18 10:44:21 4 : DbLog myDbLog -> ### start of new Logcycle ###
2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################
2017.02.18 10:44:21 4 : DbLog myDbLog -> amount of events received: 1 for device: LetztesEventDerSteuerung
2017.02.18 10:44:21 4 : DbLog myDbLog -> check Device: LetztesEventDerSteuerung , Event: HKRuecklaufTemp2
2017-02-18 10:44:21 dummy LetztesEventDerSteuerung HKRuecklaufTemp2
2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################
2017.02.18 10:44:21 4 : DbLog myDbLog -> ### start of new Logcycle ###
2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################
2017.02.18 10:44:21 4 : DbLog myDbLog -> amount of events received: 1 for device: HKRuecklaufTemp2
2017.02.18 10:44:21 4 : DbLog myDbLog -> check Device: HKRuecklaufTemp2 , Event: 37.0
2017.02.18 10:44:21 4 : DbLog myDbLog -> added event - Timestamp: 2017-02-18 10:44:21, Device: HKRuecklaufTemp2, Type: DUMMY, Event: 37.0, Reading: state, Value: 37.0, Unit:
2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################
2017.02.18 10:44:21 4 : DbLog myDbLog -> ### start of new Logcycle ###
2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################
2017.02.18 10:44:21 4 : DbLog myDbLog -> amount of events received: 1 for device: myDbLog
2017.02.18 10:44:21 4 : DbLog myDbLog -> check Device: myDbLog , Event: CacheUsage: 3
2017-02-18 10:44:21 DbLog myDbLog CacheUsage: 3
2017-02-18 10:44:21 dummy HKRuecklaufTemp2 37.0
2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################
2017.02.18 10:44:21 4 : DbLog myDbLog -> ### start of new Logcycle ###
2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################
2017.02.18 10:44:21 4 : DbLog myDbLog -> amount of events received: 1 for device: LetztesEventDerSteuerung
2017.02.18 10:4
4:21 4 : DbLog myDbLog -> check Device: LetztesEventDerSteuerung , Event: HKVorlaufTemp12017-02-18 10:44:21 dummy LetztesEventDerSteuerung HKVorlaufTemp1
2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> ###              start of new Logcycle                       ###2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> amount of events received: 1 for device: HKVorlaufTemp12017.02.18 10:44:21 4 : DbLog myDbLog -> check Device: HKVorlaufTemp1 , Event: 56.02017.02.18 10:44:21 4 : DbLog myDbLog -> added event - Timestamp: 2017-02-18 10:44:21, Device: HKVorlaufTemp1, Type: DUMMY, Event: 56.0, Reading: state, Value: 56.0, Unit: 2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> ###              start of new Logcycle                       ###2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> amount of events received: 1 for device: myDbLog2017.02.18 10:44:21 4 : DbLog myDbLog -> check Device: myDbLog , Event: CacheUsage: 42017-02-18 10:44:21 DbLog myDbLog CacheUsage: 4
2017-02-18 10:44:21 dummy HKVorlaufTemp1 56.0
2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> ###              start of new Logcycle                       ###2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> amount of events received: 1 for device: LetztesEventDerSteuerung2017.02.18 10:44:21 4 : DbLog myDbLog -> check Device: LetztesEventDerSteuerung , Event: SolarVorlauf2017-02-18 10:44:21 dummy LetztesEventDerSteuerung SolarVorlauf
2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> ###              start of new Logcycle                       ###2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> amount of events received: 1 for device: LetztesEventDerSteuerung2017.02.18 10:44:21 4 : DbLog myDbLog -> check Device: LetztesEventDerSteuerung , Event: SolarLeistung2017-02-18 10:44:21 dummy LetztesEventDerSteuerung SolarLeistung
2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> ###              start of new Logcycle                       ###2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> amount of events received: 1 for device: SolarLeistung2017.02.18 10:44:21 4 : DbLog myDbLog -> check Device: SolarLeistung , Event: 02017.02.18 10:44:21 4 : DbLog myDbLog -> added event - Timestamp: 2017-02-18 10:44:21, Device: SolarLeistung, Type: DUMMY, Event: 0, Reading: state, Value: 0, Unit: 2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> ###              start of new Logcycle                       ###2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> amount of events received: 1 for device: myDbLog2017.02.18 10:44:21 4 : DbLog myDbLog -> check Device: myDbLog , Event: CacheUsage: 52017-02-18 10:44:21 DbLog myDbLog CacheUsage: 5
2017-02-18 10:44:21 dummy SolarLeistung 0
2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> ###              start of new Logcycle                       ###2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> amount of events received: 1 for device: SolarVorlauf2017.02.18 10:44:21 4 : DbLog myDbLog -> check Device: SolarVorlauf , Event: 42.02017.02.18 10:44:21 4 : DbLog myDbLog -> added event - Timestamp: 2017-02-18 10:44:21, Device: SolarVorlauf, Type: DUMMY, Event: 42.0, Reading: state, Value: 42.0, Unit: 2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> ###              start of new Logcycle                       ###2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> amount of events received: 1 for device: myDbLog2017.02.18 10:44:21 4 : DbLog myDbLog -> check Device: myDbLog , Event: CacheUsage: 62017-02-18 10:44:21 DbLog myDbLog CacheUsage: 6
2017-02-18 10:44:21 dummy SolarVorlauf 42.0
2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> ###              start of new Logcycle                       ###2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> amount of events received: 1 for device: LetztesEventDerSteuerung2017.02.18 10:44:21 4 : DbLog myDbLog -> check Device: LetztesEventDerSteuerung , Event: SpeicherA32017-02-18 10:44:21 dummy LetztesEventDerSteuerung SpeicherA3
2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> ###              start of new Logcycle                       ###2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> amount of events received: 1 for device: SpeicherA32017.02.18 10:44:21 4 : DbLog myDbLog -> check Device: SpeicherA3 , Event: 55.02017.02.18 10:44:21 4 : DbLog myDbLog -> added event - Timestamp: 2017-02-18 10:44:21, Device: SpeicherA3, Type: DUMMY, Event: 55.0, Reading: state, Value: 55.0, Unit: 2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> ###              start of new Logcycle                       ###2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> amount of events received: 1 for device: myDbLog2017.02.18 10:44:21 4 : DbLog myDbLog -> check Device: myDbLog , Event: CacheUsage: 72017-02-18 10:44:21 DbLog myDbLog CacheUsage: 7
2017-02-18 10:44:21 dummy SpeicherA3 55.0
2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> ###              start of new Logcycle                       ###2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> amount of events received: 1 for device: LetztesEventDerSteuerung2017.02.18 10:44:21 4 : DbLog myDbLog -> check Device: LetztesEventDerSteuerung , Event: SpeicherA42017-02-18 10:44:21 dummy LetztesEventDerSteuerung SpeicherA4
2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> ###              start of new Logcycle                       ###2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> amount of events received: 1 for device: SpeicherA42017.02.18 10:44:21 4 : DbLog myDbLog -> check Device: SpeicherA4 , Event: 33.82017.02.18 10:44:21 4 : DbLog myDbLog -> added event - Timestamp: 2017-02-18 10:44:21, Device: SpeicherA4, Type: DUMMY, Event: 33.8, Reading: state, Value: 33.8, Unit: 2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> ###              start of new Logcycle                       ###2017.02.18 10:44:21 4 : DbLog myDbLog -> ################################################################2017.02.18 10:44:21 4 : DbLog myDbLog -> amount of events received: 1 for device: myDbLog2017.02.18 10:44:21 4 : DbLog myDbLog -> check Device: myDbLog , Event: CacheUsage: 82017-02-18 10:44:21 DbLog myDbLog CacheUsage: 8
2017-02-18 10:44:21 dummy SpeicherA4 33.8
2017.02.18 10:44:25 4 : DbLog myDbLog -> ################################################################
2017.02.18 10:44:25 4 : DbLog myDbLog -> ### start of new Logcycle ###
2017.02.18 10:44:25 4 : DbLog myDbLog -> ################################################################
2017.02.18 10:44:25 4 : DbLog myDbLog -> amount of events received: 1 for device: LetztesEventDerSteuerung
2017.02.18 10:44:25 4 : DbLog myDbLog -> check Device: LetztesEventDerSteuerung , Event: HKVorlaufValue
2017-02-18 10:44:25 dummy LetztesEventDerSteuerung HKVorlaufValue
2017.02.18 10:44:25 4 : DbLog myDbLog -> ################################################################
2017.02.18 10:44:25 4 : DbLog myDbLog -> ### start of new Logcycle ###
2017.02.18 10:44:25 4 : DbLog myDbLog -> ################################################################
2017.02.18 10:44:25 4 : DbLog myDbLog -> amount of events received: 1 for device: HKVorlaufValue
2017.02.18 10:44:25 4 : DbLog myDbLog -> check Device: HKVorlaufValue , Event: 64.3
2017.02.18 10:44:25 4 : DbLog myDbLog -> added event - Timestamp: 2017-02-18 10:44:25, Device: HKVorlaufValue, Type: DUMMY, Event: 64.3, Reading: state, Value: 64.3, Unit:
2017.02.18 10:44:25 4 : DbLog myDbLog -> ################################################################
2017.02.18 10:44:25 4 : DbLog myDbLog -> ### start of new Logcycle ###
2017.02.18 10:44:25 4 : DbLog myDbLog -> ################################################################
2017.02.18 10:44:25 4 : DbLog myDbLog -> amount of events received: 1 for device: myDbLog
2017.02.18 10:44:25 4 : DbLog myDbLog -> check Device: myDbLog , Event: CacheUsage: 9
2017-02-18 10:44:25 DbLog myDbLog CacheUsage: 9


In der Datenbank sind für den fraglichen Zeitraum wirklich keine Daten.
FHEM unter Ubuntu Server aus ESXi 5
1 HM-LAN, 3 HM-CC-RT-DN, 3 HM-CC-TC, 4 HM-CC-VD
1 Arduino verbindet die Vitodens + oneWire + sonstigen Heizungskram über Ethernet mit dem telnet-Port von FHEM

JoeALLb

Zitat von: est am 18 Februar 2017, 10:58:02
In dem List von vorhin, stehen ja die ganzen Daten (Bei mir in einer Datei - im Forum habe ich diesen Teil ja gekürzt). Das kann man aber auch nur mit großem Aufwand importieren - oder?
Wieviele sind das ca.?
Es gibt 2 Methoden, die mir spontan einfallen... da kann ich dir schon helfen!
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

DS_Starter

Hallo est,

ja, siehe oben mein Edit.
Ich werde in Kürze eine Version hier einstellen die mit dieser etwas unglücklichen Situation besser umgehen kann.

Grüße
Heiko
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

est

Äh - 96628 Zeilen.
Solche:
myDbLog|DBLOG|Commit already running - resync at NextSync|state|Commit already running - resync at NextSync|
könnte man aber auch gleich wegschmeißen.

Danke für Dein Angebot. Ich denke ich verbessere dann selber mal meine sed-Kenntnisse und schmeiß das direkt in die Datenbank.

So ein Problem ist bei mir jetzt auch zum ersten mal aufgetreten. Scheint also nicht so häufig zu sein.

Jetzt wo es für neue Daten wieder funktioniert nehme ich mir mal meine eigentliche ToDo-Liste vor.

Vielen Dank für eure Hilfe.

Eddy
FHEM unter Ubuntu Server aus ESXi 5
1 HM-LAN, 3 HM-CC-RT-DN, 3 HM-CC-TC, 4 HM-CC-VD
1 Arduino verbindet die Vitodens + oneWire + sonstigen Heizungskram über Ethernet mit dem telnet-Port von FHEM

DS_Starter

ZitatEs gibt 2 Methoden, die mir spontan einfallen... da kann ich dir schon helfen!

Falls du diese Methode noch nicht auf dem Schirm hast -> in eine CSV-Datei überführen und mit DbRep imporieren.
Sollte relativ gut machbar 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

JoeALLb

Zitat von: JoeALLb am 18 Februar 2017, 10:33:18
So wird bei mir aktuell eine Whatsapp-Nachricht geloggt. Mit ist bewußt, dass hier eine Implementierung von SplitFN im Modul
die korrekte lösung wäre, der Modulautor ist daran aber im Moment nicht interessiert.
+---------------------+-------------+--------+----------------------------------------+-----------+---------------+--------------+----------+
| TIMESTAMP           | DEVICE      | TYPE   | EVENT                                    | READING   | VALUE         | UNIT         | count(*) |
+---------------------+-------------+--------+----------------------------------------+-----------+---------------+--------------+----------+
| 2016-12-19 14:30:02 | whats | YOWSUP | chatstate: composing                           | chatstate | composing     |              |      256 |
| 2016-12-19 14:31:34 | whats | YOWSUP | chatstate: paused                              | chatstate | paused        |              |       56 |
| 2016-12-19 14:28:40 | whats | YOWSUP | chatstate: received from: 491XXXXX             | chatstate | received from | 491XXXXX     |      131 |
+---------------------+-------------+--------+----------------------------------------+-----------+---------------+--------------+----------+



in userReadings könnte ich es in etwa mit diesem Code korrigieren: 

attr <device> valueFormat
{
   if( $DEVICE eq "whats" && $VALUE  =~ /^received from/ ) {  $READING=$VALUE;  $VALUE = $UNIT;  }
   elsif( $DEVICE eq "whats" && $VALUE  =~ /^composing/ ) {    $VALUE =  undef; # don't save it to database!}   
}


Zitat von: DS_Starter am 18 Februar 2017, 10:42:33
ich werde mal schauen wie wir so etwas implementieren können.
Allerdings wird es bei mir etwas dauern. Ich möchte erst einmal den gegenwärtigen Stand eingecheckt haben wenn es nach einer entsprechenden Testzeit keine Einwände gibt.
Und dann muss ich mich mal um DbRep kümmern damit die dortigen Insertroutinen ebenfalls PK supporten können. Das klappt ja momentan noch nicht.

Vielleicht hat Dan etwas Zeit um sich darum Gedanken machen zu können. Schön wäre eine solche Funktion schon.

Ich hol das Thema noch mal hoch: Heiko, danke fürd drüberschauen und mitdenken.
Ich habe mit den Code dazu von readingsGroup schon angesehen, scheitere hier aber an den Grundlagen, also kann ich hierzu leider nichts beitragen.
(obwohl ich denke/hoffe, dass man viel von dort direkt übernehmen kann)

Zitat von: DeeSPe am 07 Februar 2017, 20:37:50
[...]
Wenn sich die Programmierarbeit in kleinere Tasks zerlegen lässt bin ich gerne bereit (Teil)Funktionen beizusteuern.

Gruß
Dan

@Dan, wäre das was für Dich?

Es gibt noch einen Anwendungsfall hierfür: Manche Module vertauschen "," und "." bei Zahlen, was Berechnungen verhindert. Auch das könnte hiermit korrigiert werden.

schöne Grüße
Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

SusisStrolch

Öhem... ich habe ein ähnliches Problem wie @est...
MySQL läuft auf Synology DS1515+, FHEM als Docker Image ebenfalls auf der Synology.
DbLog ist die Version 2.11.4

Seit heute morgen tauchen in FHEM Log Fehlermeldungen von DbLog auf:
2017.02.18 07:39:34.915 2: DbLog logdb -> Error: DBD::mysql::st execute_array failed: executing 195 generated 1 errors at ./FHEM/93_DbLog.pm line 1357.
2017.02.18 07:44:27.070 2: DbLog logdb -> Error: DBD::mysql::st execute_array failed: executing 500 generated 1 errors at ./FHEM/93_DbLog.pm line 1357.
2017.02.18 07:51:08.428 2: DbLog logdb -> Error: DBD::mysql::st execute_array failed: executing 986 generated 1 errors at ./FHEM/93_DbLog.pm line 1357.
2017.02.18 07:55:06.955 2: DbLog logdb -> Error: DBD::mysql::st execute_array failed: executing 1348 generated 1 errors at ./FHEM/93_DbLog.pm line 1357.
2017.02.18 08:01:01.155 2: DbLog logdb -> Error: DBD::mysql::st execute_array failed: executing 2051 generated 1 errors at ./FHEM/93_DbLog.pm line 1357.
2017.02.18 08:09:16.073 2: DbLog logdb -> Error: DBD::mysql::st execute_array failed: executing 2812 generated 2 errors at ./FHEM/93_DbLog.pm line 1357.
2017.02.18 08:21:31.707 2: DbLog logdb -> Error: DBD::mysql::st execute_array failed: executing 4162 generated 4 errors at ./FHEM/93_DbLog.pm line 1357.
2017.02.18 08:38:22.634 2: DbLog logdb -> Error: DBD::mysql::st execute_array failed: executing 5754 generated 6 errors at ./FHEM/93_DbLog.pm line 1357.
2017.02.18 11:49:31.524 4: DbLog logdb -> ################################################################
2017.02.18 11:49:31.524 4: DbLog logdb -> ###              start of new Logcycle                       ###
2017.02.18 11:49:31.524 4: DbLog logdb -> ################################################################
2017.02.18 11:49:31.525 4: DbLog logdb -> amount of events received: 1 for device: global
2017.02.18 11:49:31.525 4: DbLog logdb -> check Device: global , Event: ATTR logdb verbose 4
2017.02.18 11:49:31.525 4: DbLog logdb -> added event - Timestamp: 2017-02-18 11:49:31, Device: global, Type: GLOBAL, Event: ATTR lo
gdb verbose 4, Reading: state, Value: ATTR logdb verbose 4, Unit:
2017.02.18 11:49:31.670 4: DbLog logdb -> ################################################################
2017.02.18 11:49:31.670 4: DbLog logdb -> ###              start of new Logcycle                       ###
2017.02.18 11:49:31.670 4: DbLog logdb -> ################################################################
2017.02.18 11:49:31.670 4: DbLog logdb -> amount of events received: 1 for device: ESPEasy.DS18B20_001D
2017.02.18 11:49:31.670 4: DbLog logdb -> check Device: ESPEasy.DS18B20_001D , Event: tem: 85.00
2017.02.18 11:49:31.671 4: DbLog logdb -> added event - Timestamp: 2017-02-18 11:49:31, Device: ESPEasy.DS18B20_001D, Type: ESPEASY,
Event: tem: 85.00, Reading: tem, Value: 85.00, Unit:
2017.02.18 11:49:31.806 4: DbLog logdb -> ################################################################
2017.02.18 11:49:31.806 4: DbLog logdb -> ###              start of new Logcycle                       ###
2017.02.18 11:49:31.806 4: DbLog logdb -> ################################################################
2017.02.18 11:49:31.806 4: DbLog logdb -> amount of events received: 5 for device: ESPEasy_NodeMCUv3_01_Wasser
2017.02.18 11:49:31.807 4: DbLog logdb -> check Device: ESPEasy_NodeMCUv3_01_Wasser , Event: Ruecklauf: 11.1
2017.02.18 11:49:31.807 4: DbLog logdb -> added event - Timestamp: 2017-02-18 11:49:31, Device: ESPEasy_NodeMCUv3_01_Wasser, Type: E
SPEASY, Event: Ruecklauf: 11.1, Reading: Ruecklauf, Value: 11.1, Unit:
2017.02.18 11:49:31.810 4: DbLog logdb -> check Device: ESPEasy_NodeMCUv3_01_Wasser , Event: Delta: 0.0
2017.02.18 11:49:31.810 4: DbLog logdb -> added event - Timestamp: 2017-02-18 11:49:31, Device: ESPEasy_NodeMCUv3_01_Wasser, Type: E
SPEASY, Event: Delta: 0.0, Reading: Delta, Value: 0.0, Unit:
2017.02.18 11:49:31.813 4: DbLog logdb -> check Device: ESPEasy_NodeMCUv3_01_Wasser , Event: Vorlauf: 19.1
2017.02.18 11:49:31.813 4: DbLog logdb -> added event - Timestamp: 2017-02-18 11:49:31, Device: ESPEasy_NodeMCUv3_01_Wasser, Type: E
SPEASY, Event: Vorlauf: 19.1, Reading: Vorlauf, Value: 19.1, Unit:
2017.02.18 11:49:31.815 4: DbLog logdb -> check Device: ESPEasy_NodeMCUv3_01_Wasser , Event: Pumpe: 0.0
2017.02.18 11:49:31.816 4: DbLog logdb -> added event - Timestamp: 2017-02-18 11:49:31, Device: ESPEasy_NodeMCUv3_01_Wasser, Type: E
SPEASY, Event: Pumpe: 0.0, Reading: Pumpe, Value: 0.0, Unit:
2017.02.18 11:49:31.818 4: DbLog logdb -> check Device: ESPEasy_NodeMCUv3_01_Wasser , Event: Del: 0.0 Pum: 0.0 Rue: 11.1 Vor: 19.1
2017.02.18 11:49:31.818 4: DbLog logdb -> added event - Timestamp: 2017-02-18 11:49:31, Device: ESPEasy_NodeMCUv3_01_Wasser, Type: E
SPEASY, Event: Del: 0.0 Pum: 0.0 Rue: 11.1 Vor: 19.1, Reading: Del, Value: 0.0 Pum: 0.0 Rue: 11.1 Vor: 19.1, Unit:


Andere Auffälligkeiten habe ich nicht gesehen.

Von den meisten meiner Sensoren stehen keine Werte mehr in der Datenbank.
Bspw. enden die Eintragungen meines Stromzählers um 7:42:54.
select * from history where DEVICE='ESPEasy_NodeMCUv3_02_FIFO' AND TIMESTAMP > '2017-02-18 07:00:00'  order by timestamp;

TIMESTAMP DEVICE TYPE EVENT READING VALUE UNIT
2017-02-18 07:00:02 ESPEasy_NodeMCUv3_02_FIFO ESPEASY Total: 6696.00 Total 6696.00
2017-02-18 07:00:02 ESPEasy_NodeMCUv3_02_FIFO ESPEASY t1: 451.97 t1 451.97
2017-02-18 07:00:02 ESPEasy_NodeMCUv3_02_FIFO ESPEASY t3: 453.88 t3 453.88
2017-02-18 07:00:02 ESPEasy_NodeMCUv3_02_FIFO ESPEASY t2: 452.72 t2 452.72
2017-02-18 07:00:02 ESPEasy_NodeMCUv3_02_FIFO ESPEASY Tot: 6696.00 t1: 451.97 t2: 452.72 t3: 453.88 Tot 6696.00 t1: 451.97 t2: 452.72 t3
2017-02-18 07:01:02 ESPEasy_NodeMCUv3_02_FIFO ESPEASY t3: 452.72 t3 452.72
2017-02-18 07:01:02 ESPEasy_NodeMCUv3_02_FIFO ESPEASY t2: 451.97 t2 451.97
2017-02-18 07:01:02 ESPEasy_NodeMCUv3_02_FIFO ESPEASY t1: 761.10 t1 761.10
2017-02-18 07:01:02 ESPEasy_NodeMCUv3_02_FIFO ESPEASY Total: 6697.00 Total 6697.00
2017-02-18 07:01:02 ESPEasy_NodeMCUv3_02_FIFO ESPEASY Tot: 6697.00 t1: 761.10 t2: 451.97 t3: 452.72 Tot 6697.00 t1: 761.10 t2: 451.97 t3
....
2017-02-18 07:42:04 ESPEasy_NodeMCUv3_02_FIFO ESPEASY Total: 6843.00 Total 6843.00
2017-02-18 07:42:04 ESPEasy_NodeMCUv3_02_FIFO ESPEASY t1: 2989.16 t1 2989.16
2017-02-18 07:42:04 ESPEasy_NodeMCUv3_02_FIFO ESPEASY t2: 2997.56 t2 2997.56
2017-02-18 07:42:04 ESPEasy_NodeMCUv3_02_FIFO ESPEASY t3: 2986.37 t3 2986.37
2017-02-18 07:42:04 ESPEasy_NodeMCUv3_02_FIFO ESPEASY Tot: 6843.00 t1: 2989.16 t2: 2997.56 t3: 2986.37 Tot 6843.00 t1: 2989.16 t2: 2997.56
2017-02-18 07:42:24 ESPEasy_NodeMCUv3_02_FIFO ESPEASY t1: 3017.92 t1 3017.92
2017-02-18 07:42:24 ESPEasy_NodeMCUv3_02_FIFO ESPEASY Total: 6844.00 Total 6844.00
2017-02-18 07:42:24 ESPEasy_NodeMCUv3_02_FIFO ESPEASY t3: 2997.56 t3 2997.56
2017-02-18 07:42:24 ESPEasy_NodeMCUv3_02_FIFO ESPEASY t2: 2989.16 t2 2989.16
2017-02-18 07:42:24 ESPEasy_NodeMCUv3_02_FIFO ESPEASY Tot: 6844.00 t1: 3017.92 t2: 2989.16 t3: 2997.56 Tot 6844.00 t1: 3017.92 t2: 2989.16
2017-02-18 07:42:54 ESPEasy_NodeMCUv3_02_FIFO ESPEASY t1: 1790.64 t1 1790.64
2017-02-18 07:42:54 ESPEasy_NodeMCUv3_02_FIFO ESPEASY Total: 6845.00 Total 6845.00
2017-02-18 07:42:54 ESPEasy_NodeMCUv3_02_FIFO ESPEASY t3: 2989.16 t3 2989.16
2017-02-18 07:42:54 ESPEasy_NodeMCUv3_02_FIFO ESPEASY t2: 3017.92 t2 3017.92
2017-02-18 07:42:54 ESPEasy_NodeMCUv3_02_FIFO ESPEASY Tot: 6845.00 t1: 1790.64 t2: 3017.92 t3: 2989.16 Tot 6845.00 t1: 1790.64 t2: 3017.92


Ein "set reopen" hat nichts gebracht, ein "set listcache" zeigt keine Daten aus dem fraglichen Zeitraum an.

Any hints?
Synology DS1515+, 16GB RAM, 4x 6TB WD-Red
- Docker (FHEM), MariaDB, MariaDB10, Surveillance Station
Gateways: LCG miniCUL433, LCG miniCUL868, AVR-X4000, VU-Solo SE, Kodi
ESP8266: ESPEasy (S0-Counter, Temp/Hum), Sonoff TH, Sonoff 4ch

DS_Starter

#160
Setz das verbose des DbLog-Device mal auf 5. Interessant ist dann der komplette Abschnitt mit "New database processing cycle".

EDIT: eine primary key hast du aber nicht gesetzt !?

EDIT2: Habe gerade gesehen dass es wohl ein Prob mit der current-Tabelle ist -> setzte die das Attr DbLogType mal nur auf "history" zum Vergleich des Verhaltens
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

SusisStrolch

ZitatEDIT: eine primary key hast du aber nicht gesetzt !?
Nein, habe die Datenbank noch nicht überarbeitet.
Synology DS1515+, 16GB RAM, 4x 6TB WD-Red
- Docker (FHEM), MariaDB, MariaDB10, Surveillance Station
Gateways: LCG miniCUL433, LCG miniCUL868, AVR-X4000, VU-Solo SE, Kodi
ESP8266: ESPEasy (S0-Counter, Temp/Hum), Sonoff TH, Sonoff 4ch

JoeALLb

#162
@All hier wurde ein Fehler im Modul gemeldet:
https://forum.fhem.de/index.php/topic,67326.0.html
Vielleicht können wir den Absturz von fhem abfangen..
Habe beim Versuch des reproduzierens auch meine memcache-Logs verloren...  ;-)
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

DS_Starter

#163
Morgen Joe, hallo zusammen,

anbei die neue Version 2.13.4

Wegen der gemeldeten Situationen habe ich in dieser Version folgende Erweiterungen/Änderungen eingebaut:

1. Erweiterung der reopen-Funktion um einen abgestürzten asynchronen Prozess mit zu bereinigen.

2. default timeout der asynchronen Log-Funktion auf 1800s erhöht.

3. sowohl im synchronen als auch asynchronen Mode werden die Tabellen history und current in jeweils voneinander getrennt   
   ausgeführten/ausgewerteten Transaktionen behandelt um zu verhindern dass kein Commit für
   die history-Daten erfolgt, falls es ein Problem mit der current-Tabelle geben sollte (falls man beide Tabellen verwendet).
   (z.B. die current wurde nicht angelegt siehe 4., whatever ...)   
   Somit sind die Vorgänge zwischen history und current voneinander entkoppelt um eventuell auftretenden Problemen
   vorzubeugen deren Ursache in der gemeinsamen Transaktion beider Tabellen liegt.
 
4. dem in https://forum.fhem.de/index.php/topic,67326.0.html gemeldeten Problem dass fhem crashed wenn das Attr DbLogType
   nicht gesetzt ist UND die current Tabelle obendrein nicht angelegt ist, wurde durch eine geänderte Abfrage in
   DbLog_sampleDataFn vorgebeugt.
   Idealerweise müßte eine SQL-Abfrage auf die definitive Existenz der current-Tabelle erfolgen um dieses Problem
   gänzlich auszuschließen,
   @Joe, hast du ein passendes Statement welches für alle DB-Typen valide ist, bei der Hand ? Dann würde ich das demnächst mit
   implementieren.
 
Bitte testet wieder auf euren Systemen und meldet bitte falls etwas auffällt.

EDIT: Habe noch einen kleinen Fehler beim restart ausgemerzt
        "PERL WARNING: Found = in conditional, should be == at ./FHEM/93_DbLog.pm line 474,"

Grüße
Heiko 
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

JoeALLb

Zitat von: DS_Starter am 19 Februar 2017, 08:31:22
   @Joe, hast du ein passendes Statement welches für alle DB-Typen valide ist, bei der Hand ? Dann würde ich das demnächst mit
   implementieren.

Aus dem Stehgreif kenne ich diese Befehle...
Statt (count) kann man natürlich auch andere Werte wie Name, Größe etc.. abfragen.


#mysql
SELECT count(*) FROM INFORMATION_SCHEMA.TABLES where table_schema='fhem' and table_name='current';

#Postgres
SELECT count(*) FROM pg_catalog.pg_tables where schemaname='fhem' and tablename='current';

#sqlite
SELECT count(*) FROM sqlite_master r WHERE name='current';
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270