Hallo
ich nutze schon ewig lange sqlite "SQLite:dbname=/opt/fhem/fhem.db".
Heute habe ich für DbLog_reduce u.a. die Anzahl der Tage reduziert. Dabei hatte ich einen Netzwerkfehler im Webfrontend. Danach habe ich die config gesichert.
Später wollte ich mit phpliteadmin prüfen, wieviel Einträge für dei einzelnen Device gschrieben werden, um bei diesen evtl. etwas zu optimieren. phpliteadmin ist auch schon ewig installiert.
Jetzt bekomme ich aber unter fhem.db No table in database ??? Wenn ich dann über Putty die einzelnen Test laut Wiki durchführe bekomme ich
SQLite version 3.8.7.1 2014-10-29 13:59:56
Enter ".help" for usage hints.
sqlite> .tables
sqlite> .schema
sqlite> pragma integrity_check;
ok
sqlite> select * from HISTORY;
Error: no such table: HISTORY
sqlite>
Die Plots scheinen aber alle zu funktionieren!?
Hat sich an fhem.db irgendetwas geändert, dass ich so nicht mehr zugreifen kann? Aber im Wiki steht nichts.
Sollte ich von fhem.db eine Sicherung von gestern oder wann einspielen ?
Ich hoffe, einer kann meine Verwirrung auflösen.
Danke
Jürgen
Was ist das für eine Db? Config oder Log?
Poste mal ein "list <dbDevice>"
Hallo amenomade
vielen Dank für deine Antwort
da ich <dbDevice> nicht ganz verstanden habe, da meines Wissens <> für einen Platzhalter steht, habe ich ein list myDbLog durchgeführt (Solltest du irgend etwas anderes gemeint haben, bitte korrigiere mich.
Internals:
COLUMNS field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
CONFIGURATION /opt/fhem/db.conf
DBMODEL SQLITE
DEF /opt/fhem/db.conf .*:(.*emp.*|desired-temp|.*alve.*|.*umidity.*|statTotal.*|current|actuator|ur_Th.*|motion|brightness|PWMPulse|actorState|PID.*).*
MODE synchronous
NAME myDbLog
NR 23
NTFY_ORDER 50-myDbLog
PID 1138
REGEXP .*:(.*emp.*|desired-temp|.*alve.*|.*umidity.*|statTotal.*|current|actuator|ur_Th.*|motion|brightness|PWMPulse|actorState|PID.*).*
STATE connected
TYPE DbLog
VERSION 2.17.1
dbconn SQLite:dbname=/opt/fhem/fhem.db
dbuser
Helper:
COLSET 1
DEVICECOL 64
EVENTCOL 512
READINGCOL 64
TYPECOL 64
UNITCOL 32
VALUECOL 128
Readings:
2017-03-02 02:00:11 lastReduceLogResult Rows processed: 44556, deleted: 1982, updated: 94, excluded: 29140, time: 11.00sec
2017-07-19 02:30:05 lastRowsDeleted 2968
2017-07-19 02:00:06 reduceLogState Rows processed: 20846, deleted: 1876, updated: 87, excluded: 11976, time: 6.00sec
2017-07-19 23:54:23 state connected
Cache:
index 0
Attributes:
DbLogSelectionMode Exclude/Include
DbLogType History
room 01 Logs
Selbst wenn ich irgendwann mal " DbLogType History" gesetzt habe, müßten die Tabellen doch da sein.
Ja, das meinte ich.
Anscheinend sind die Daten doch da. Was sagt:
set myDbLog count
?
Wenn > 0, wie hast Du sqlite im terminal gestartet? Ist die Db open?
Hallo amenomade
das sieht gut aus
countCurrent
0
2017-07-20 10:09:11
countHistory
735961
2017-07-20 10:09:11
lastReduceLogResult
Rows processed: 44556, deleted: 1982, updated: 94, excluded: 29140, time: 11.00sec
2017-03-02 02:00:11
lastRowsDeleted
19968
2017-07-20 02:30:13
reduceLogState
Rows processed: 44787, deleted: 11403, updated: 573, excluded: 22782, time: 15.00sec
2017-07-20 02:00:15
state
connected
2017-07-20 10:09:30
Zitatsudo sqlite3 /opt/fhem/fhem.db
Uns was sagt dann .databases
.dbinfo
?
sqlite> .databases
seq name file
--- --------------- ----------------------------------------------------------
0 main /opt/fhem/fhem.db
sqlite> .dbinfo
Error: unknown command or invalid arguments: "dbinfo". Enter ".help" for help
jedoch
sqlite> .fullschema
CREATE TABLE 'history' (TIMESTAMP TIMESTAMP, DEVICE varchar(32), TYPE varchar(32), EVENT varchar(512), READING varchar(32), VALUE varchar(32), UNIT varchar(32));
CREATE TABLE 'current' (TIMESTAMP TIMESTAMP, DEVICE varchar(32), TYPE varchar(32), EVENT varchar(512), READING varchar(32), VALUE varchar(32), UNIT varchar(32));
CREATE INDEX Search_Idx ON `history` (DEVICE, READING, TIMESTAMP);
/* No STAT tables available */
Es passieren wundersame Dinge. jetzt habe ich nochmals ausgeführt
sqlite> .tables
current history
und auch bei ".schema" bekomme ich das gewünschte Ergebnis. Warum auch immer? SQlite habe ich immer mit dem gleichen (kopiert aus dem Wiki) in der Konsole gestartet.
Letzlich bin ich wieder bei phpliteadmin. Hier wird fhem.db angezeigt, aber "no table in database". Kann sich an den Rechten irgendetwas geändert haben ?
Vorab schon einmal Dank für deine Unterstützung.
Jürgen
jetzt ist das Problem phpliteadmin auch geklärt. Es war ein Berechtigungsproblem
Nochmals vielen Dank