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.
passiert, wenn es in der Datenbank keine Tabelle "current" gibt.
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.
ZitatWarum sie verschwunden ist kann ich nicht nachvollziehen.
Das wüsste ich auch gerne, denn das bei mir auch so.
"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...
https://forum.fhem.de/index.php/topic,65237.msg564876.html#msg564876 (https://forum.fhem.de/index.php/topic,65237.msg564876.html#msg564876)
hat die Lösung für das leere Device:Reading.
Es geht jetzt wieder alles
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.
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.
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.
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.