'Create SVG plot from DbLog' beendet FHEM

Begonnen von mattt, 18 Februar 2017, 12:25:30

Vorheriges Thema - Nächstes Thema

mattt

Hallo,

ich kann plötzlich keine Grafiken mehr erstellen oder editieren.
Wenn ich z.B. 'Create SVG plot from DbLog' klicke beendet sich FHEM sofort.

Logauszug mit verbose=4 auf das dbLog device:

2017.02.18 12:06:09 4: DbLog myDbLog -> ################################################################
2017.02.18 12:06:09 4: DbLog myDbLog -> ###              start of new Logcycle                       ###
2017.02.18 12:06:09 4: DbLog myDbLog -> ################################################################
2017.02.18 12:06:09 4: DbLog myDbLog -> amount of events received: 2 for device: Handy.Silke
2017.02.18 12:06:09 4: DbLog myDbLog -> check Device: Handy.Silke , Event: absent
2017.02.18 12:06:09 4: DbLog myDbLog -> check Device: Handy.Silke , Event: presence: absent
2017.02.18 12:06:14 4: DbLog myDbLog -> ################################################################
2017.02.18 12:06:14 4: DbLog myDbLog -> ###              start of new Logcycle                       ###
2017.02.18 12:06:14 4: DbLog myDbLog -> ################################################################
2017.02.18 12:06:14 4: DbLog myDbLog -> amount of events received: 1 for device: HMLAN1
2017.02.18 12:06:14 4: DbLog myDbLog -> check Device: HMLAN1 , Event: loadLvl: low
2017.02.18 12:06:14 4: DbLog myDbLog -> added event - Timestamp: 2017-02-18 12:06:14, Device: HMLAN1, Type: HMLAN, Event: loadLvl: low, Reading: loadLvl, Value: low, Unit:
2017.02.18 12:06:14 4: DbLog myDbLog -> processing event Timestamp: 2017-02-18 12:06:14, Device: HMLAN1, Type: HMLAN, Event: loadLvl: low, Reading: loadLvl, Value: low, Unit:
2017.02.18 12:06:14 4: DbLog myDbLog -> 1 of 1 events successfully inserted into table history
2017.02.18 12:06:16 4: DbLog myDbLog -> ################################################################
2017.02.18 12:06:16 4: DbLog myDbLog -> ###              start of new Logcycle                       ###
2017.02.18 12:06:16 4: DbLog myDbLog -> ################################################################
2017.02.18 12:06:16 4: DbLog myDbLog -> amount of events received: 1 for device: global
2017.02.18 12:06:16 4: DbLog myDbLog -> check Device: global , Event: DEFINED SVG_myDbLog_5
2017.02.18 12:06:16 4: DbLog myDbLog -> added event - Timestamp: 2017-02-18 12:06:16, Device: global, Type: GLOBAL, Event: DEFINED SVG_myDbLog_5, Reading: state, Value: DEFINED SVG_myDbLog_5, Unit:
2017.02.18 12:06:16 4: DbLog myDbLog -> processing event Timestamp: 2017-02-18 12:06:16, Device: global, Type: GLOBAL, Event: DEFINED SVG_myDbLog_5, Reading: state, Value: DEFINED SVG_myDbLog_5, Unit:
2017.02.18 12:06:16 4: DbLog myDbLog -> 1 of 1 events successfully inserted into table history
2017.02.18 12:06:16 4: DbLog myDbLog -> ################################################################
2017.02.18 12:06:16 4: DbLog myDbLog -> ###              start of new Logcycle                       ###
2017.02.18 12:06:16 4: DbLog myDbLog -> ################################################################
2017.02.18 12:06:16 4: DbLog myDbLog -> amount of events received: 1 for device: SVG_myDbLog_5
2017.02.18 12:06:16 4: DbLog myDbLog -> check Device: SVG_myDbLog_5 , Event: copyGplotFile
2017.02.18 12:06:16 4: DbLog myDbLog -> added event - Timestamp: 2017-02-18 12:06:16, Device: SVG_myDbLog_5, Type: SVG, Event: copyGplotFile, Reading: state, Value: copyGplotFile, Unit:
2017.02.18 12:06:16 4: DbLog myDbLog -> processing event Timestamp: 2017-02-18 12:06:16, Device: SVG_myDbLog_5, Type: SVG, Event: copyGplotFile, Reading: state, Value: copyGplotFile, Unit:
2017.02.18 12:06:16 4: DbLog myDbLog -> 1 of 1 events successfully inserted into table history
Can't call method "execute" on an undefined value at ./FHEM/93_DbLog.pm line 2757.


list myDbLog:

NR         9
   NTFY_ORDER 50-myDbLog
   PID        13874
   REGEXP     .*:.*
   STATE      connected
   TYPE       DbLog
   VERSION    2.11.4
   dbconn     SQLite:dbname=/mnt/sdcard/FHEM/FHEM_new.sqlite
   dbuser
   Helper:
     COLSET     1
     DEVICECOL  64
     EVENTCOL   512
     READINGCOL 64
     TYPECOL    64
     UNITCOL    32
     VALUECOL   128
   Readings:
     vor 25 Minuten   DbFileSize      453200
     vor 6 Monaten   countCurrent    498
     vor 10 Tagen   countHistory    2204131
     vor 11 Stunden   lastReduceLogResult Rows processed: 1078851, deleted: 172190, time: 90.00sec
     vor 6 Monaten   lastRowsDeleted 3072
     vor ein paar Sekunden   state           connected
     vor 10 Tagen   userCommand     VACUUM
   Cache:
     index      0
Attributes:
   DbLogExclude MAXLAN_error,MAXLAN_errorInCommand,MAXLAN_initialized,MAXLAN_isAnswer,MAXLAN_valid,boostDuration,boostValveposition,weekprofile.*,MAX_.*
   room       System
   userReadings DbFileSize:lastReduceLogResult.* { (split(' ',`du -k /mnt/sdcard/FHEM/FHEM_new.sqlite`))[0] } myDbLog
   NR         9
   NTFY_ORDER 50-myDbLog
   PID        13874
   REGEXP     .*:.*
   STATE      connected
   TYPE       DbLog
   VERSION    2.11.4
   dbconn     SQLite:dbname=/mnt/sdcard/FHEM/FHEM_new.sqlite
   dbuser
   Helper:
     COLSET     1
     DEVICECOL  64
     EVENTCOL   512
     READINGCOL 64
     TYPECOL    64
     UNITCOL    32
     VALUECOL   128
   Readings:
     2017-02-18 11:58:50   DbFileSize      453200
     2016-08-20 22:21:02   countCurrent    498
     2017-02-08 19:30:14   countHistory    2204131
     2017-02-18 01:31:30   lastReduceLogResult Rows processed: 1078851, deleted: 172190, time: 90.00sec
     2016-08-20 22:21:49   lastRowsDeleted 3072
     2017-02-18 12:23:48   state           connected
     2017-02-08 19:30:37   userCommand     VACUUM
   Cache:
     index      0
Attributes:
   DbLogExclude MAXLAN_error,MAXLAN_errorInCommand,MAXLAN_initialized,MAXLAN_isAnswer,MAXLAN_valid,boostDuration,boostValveposition,weekprofile.*,MAX_.*
   room       System
   userReadings DbFileSize:lastReduceLogResult.* { (split(' ',`du -k /mnt/sdcard/FHEM/FHEM_new.sqlite`))[0] }


Danke für Unterstützung.

betateilchen

passiert, wenn es in der Datenbank keine Tabelle "current" gibt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

mattt

Hallo,

danke für den Tipp.
Ich habe jetzt mit
set myDbLog userCommand CREATE TABLE current (TIMESTAMP TIMESTAMP, DEVICE varchar(32), TYPE varchar(32), EVENT varchar(512), READING varchar(32), VALUE varchar(32), UNIT varchar(32));

die Tabelle wieder angelegt. Warum sie verschwunden ist kann ich nicht nachvollziehen.

Jetzt beendet sich FHEM nicht mehr bei Klicken auf 'Create SVG plot from DbLog', der Grafikeditor geht aber noch nicht richtig.
In der Eingabezeile für die Kurvendefinition ist das Auswahlmenü für 'Device:Reading' leer. D.h. wenn ich da drauf klicke passiert nichts.

Habe dann probehalber eine neue sqlite3 Datenbank angelegt, das Ergebnis bleibt gleich. Device:Reading ist leer.

Papaloewe

ZitatWarum sie verschwunden ist kann ich nicht nachvollziehen.

Das wüsste ich auch gerne, denn das bei mir auch so.

betateilchen

"Früher" gab es keine tatsächlich existierende Tabelle "CURRENT" in der Datenbank, diese Tabelle wurde virtuell im Speicher geführt. Nach dem grundlegenden Umbau des DbLog Moduls in den vergangenen Wochen scheint die Existenz dieser Tabelle in der Datenbank selbst zwingend notwendig zu sein.

Zu dem Problem gibt es inzwischen gefühlte 2000 Threads...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

mattt


JoeALLb

Zitat von: betateilchen am 18 Februar 2017, 20:56:45
Zu dem Problem gibt es inzwischen gefühlte 2000 Threads...
Zu welchem genau?
Dass die current nicht mehr virtuell ist hat mit den aktuellen Änderungen nichts zu tun...
es sei denn > 3 Jahre ist für dich aktuell...
Vielleicht wird sie es aber ja bald wieder...  Durch async=1 wurden Vorarbeiten dazu schon implementiert.
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

betateilchen

Zitat von: JoeALLb am 18 Februar 2017, 23:03:36
Dass die current nicht mehr virtuell ist hat mit den aktuellen Änderungen nichts zu tun...
es sei denn > 3 Jahre ist für dich aktuell...

Bei mir gab es bisher (> 3 Jahre) immer nur virtuelle CURRENT und alles hat problemlos funktioniert. Dass dies nicht mehr klappt, trat bei mir auch erst nach den kürzlich eingebauten Änderungen auf.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

JoeALLb

Zitat von: betateilchen am 19 Februar 2017, 12:14:49
Bei mir gab es bisher (> 3 Jahre) immer nur virtuelle CURRENT und alles hat problemlos funktioniert. Dass dies nicht mehr klappt, trat bei mir auch erst nach den kürzlich eingebauten Änderungen auf.
Dann schreib doch mal Details zu diener Sonderlösung, denn die bisherige(aktuelle) Implementierung für Current ist nicht besonders elegant.
Du verwendest noch sqLite, oder?
Schick mal den creation-code für die virtuelle Tabelle.
Ich verwende in MariaDB einen View statt der current-Tabelle.

Im aktuellen DbLog-Thread gibts es bereits eine Version zur Korrektur des Problems aus diesem Thread für Tests.
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

betateilchen

Zitat von: JoeALLb am 19 Februar 2017, 16:06:06
Du verwendest noch sqLite, oder?
Schick mal den creation-code für die virtuelle Tabelle.

Ja, ich arbeite mit sqlite. Und das create ist exakt das gleiche wie für die HISTORY. Völlig simpel.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!