sqlite3 Probleme in zusammenhang mit dem Charting Frontend

Begonnen von rogseut, 27 März 2016, 17:49:29

Vorheriges Thema - Nächstes Thema

rogseut

Hallo zusammen.

Ich lese mit hilfe von SMAUTILS drei Wechselrichter aus und schreibe die Daten in eine SQLITE Datenbank.
Dass klappt auch prima, nur schreibt FHEM ständig diesen Fehler ins LOG.
Wie bekomm ich dass weg?
Ich bin gerade noch dabei die Daten aus der Datenbank in das Charting Frontend zu bekommen.

[2016-03-27 17:36:32.777] Error: sqlite3_exec() returned: 'unable to open database file' while executing
INSERT OR IGNORE INTO Inverters VALUES(2000488367,'SN: 2000488367','SMC 8000TL','12.12.203.R',0,0,0,0,0,0,'','',0)
[2016-03-27 17:36:32.779] Error: exec_query() returned: 'unable to open database file' while executing
INSERT OR IGNORE INTO Inverters VALUES(2000488367,'SN: 2000488367','SMC 8000TL','12.12.203.R',0,0,0,0,0,0,'','',0)
[2016-03-27 17:36:32.780] Error: sqlite3_exec() returned: 'unable to open database file' while executing
UPDATE Inverters SET Name='SN: 2000488367',Type='SMC 8000TL',SW_Version='12.12.203.R' WHERE Serial=2000488367
[2016-03-27 17:36:32.781] Error: exec_query() returned: 'unable to open database file' while executing
UPDATE Inverters SET Name='SN: 2000488367',Type='SMC 8000TL',SW_Version='12.12.203.R' WHERE Serial=2000488367
[2016-03-27 17:36:32.782] Error: sqlite3_exec() returned: 'unable to open database file' while executing
UPDATE Inverters SET TimeStamp=1459092992,TotalPac=0,EToday=13.043,ETotal=57707.6,OperatingTime=29864.6,FeedInTime=27063.5,Status='OK',GridRelay='?',Temperature=0 WHERE Serial=2000488367
[2016-03-27 17:36:32.782] Error: exec_query() returned: 'unable to open database file' while executing
UPDATE Inverters SET TimeStamp=1459092992,TotalPac=0,EToday=13.043,ETotal=57707.6,OperatingTime=29864.6,FeedInTime=27063.5,Status='OK',GridRelay='?',Temperature=0 WHERE Serial=2000488367
[2016-03-27 17:36:32.784] Error: sqlite3_exec() returned: 'unable to open database file' while executing
INSERT INTO SpotData VALUES(1459092992,2000488367,509,0,1.193,0,427,0,0,0,0,0,0,0,0,0,0,13043,57707620,49.96,29864.6,27063.5,74.5098,'OK','?',0)
[2016-03-27 17:36:32.784] Error: [spot_data]exec_query() returned: 'unable to open database file' while executing
INSERT INTO SpotData VALUES(1459092992,2000488367,509,0,1.193,0,427,0,0,0,0,0,0,0,0,0,0,13043,57707620,49.96,29864.6,27063.5,74.5098,'OK','?',0)
[2016-03-27 17:36:33.886] Error: sqlite3_exec() returned: 'unable to open database file' while executing
INSERT OR IGNORE INTO Inverters VALUES(2000488329,'','','12.09.122.R',0,0,0,0,0,0,'','',0)
[2016-03-27 17:36:33.888] Error: exec_query() returned: 'unable to open database file' while executing
INSERT OR IGNORE INTO Inverters VALUES(2000488329,'','','12.09.122.R',0,0,0,0,0,0,'','',0)
[2016-03-27 17:36:33.890] Error: sqlite3_exec() returned: 'unable to open database file' while executing
UPDATE Inverters SET Name='',Type='',SW_Version='12.09.122.R' WHERE Serial=2000488329
[2016-03-27 17:36:33.890] Error: exec_query() returned: 'unable to open database file' while executing
UPDATE Inverters SET Name='',Type='',SW_Version='12.09.122.R' WHERE Serial=2000488329
[2016-03-27 17:36:33.891] Error: sqlite3_exec() returned: 'unable to open database file' while executing
UPDATE Inverters SET TimeStamp=1459092993,TotalPac=464,EToday=0,ETotal=0,OperatingTime=29865.8,FeedInTime=27298.8,Status='?',GridRelay='?',Temperature=0 WHERE Serial=2000488329
[2016-03-27 17:36:33.892] Error: exec_query() returned: 'unable to open database file' while executing
UPDATE Inverters SET TimeStamp=1459092993,TotalPac=464,EToday=0,ETotal=0,OperatingTime=29865.8,FeedInTime=27298.8,Status='?',GridRelay='?',Temperature=0 WHERE Serial=2000488329
[2016-03-27 17:36:33.893] Error: sqlite3_exec() returned: 'unable to open database file' while executing
INSERT INTO SpotData VALUES(1459092993,2000488329,489,0,1.151,0,425,0,0,0,0,0,0,0,0,0,0,0,0,0,29865.8,27298.8,75.2941,'?','?',0)
[2016-03-27 17:36:33.894] Error: [spot_data]exec_query() returned: 'unable to open database file' while executing
INSERT INTO SpotData VALUES(1459092993,2000488329,489,0,1.151,0,425,0,0,0,0,0,0,0,0,0,0,0,0,0,29865.8,27298.8,75.2941,'?','?',0)

gima84

Hi, evtl. sind die Berechtigungen / Owner / Group auf die Datenbankdateien falsch.

Gruß Martin

Blablubblaber

Hallo ich habe das selbe Problem.
Gab es damals eine Lösung dafür?

Blablubblaber

an Berechtigungen hat das File als Benutzer (pi) und als Gruppe (dialout) in der Gruppe ist Fhem auch mit drin.

Blablubblaber

Hat jemand ne Idee wie ich das aus dem log raus bekomme?


Wernieman

#5
D.h. es schreiben 2 verschiedene Prozesse in die gleiche DB?
https://www.sqlite.org/faq.html#q5

User/Group der DB-Files, bzw. des Ordners passt?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Blablubblaber

Kann man das überprüfen ob 2 gleichzeitig reinschreiben wollen da ich eigentlich der Meinung bin das das nicht der Fall sein sollte ich starte die abfrage ja aus fhem raus und die schreibt das Ergebnis in ein .txt Dokument und ich führe eigentlich keine zweite abfrage zeitgleich aus.

Bei der .db Datei ist der User Pi und die Gruppe Dialout bei der Gruppe sind fhem und PI Mitglied.



Wernieman

Wenn nur FHEM schreibt .. warum gehört ddas DB-File pi? Switche es mal zum User fhem um (abgeschaltetes fhem)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Blablubblaber

glaub es könnte doch anders sein das Modul 98_SBFspot.pm führt am ende den Befehl /usr/local/bin/sbfspot.3/SBFspot -v -finq -nocsv
aus und das Ergebnis wird in ein .txt File geschrieben.
aber das SBFspot schreibt glaube ich seine Daten in das .db File was jedoch glaub ich nix mit fhem zu tun haben sollte.

Ich kenne mich leider nicht gut genug aus glaube ich.
Ich habe das Modul mal in Anhang gemacht falls das hilft.

ich habe es bei pi belassen da das SBFspot ja ein eigenständiges Programm auf dem Raspberry ist oder sehe ich das falsch?

Wernieman

Habe es mir jetzt nicht agesehen, aber warum sollte das DB File einem user gehören, der es nicht verwendet?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Blablubblaber

frage zum Verständnis:
wenn fhem in dem Modul mit dem oben genannten Befehl das Programm / abfrage mit SBFspot startet startet das Programm dann unter fhem oder unter pi?

Wernieman

Rate mal ....
FHEM läuft (normalerweise) unter dem User FHEM. Der Startet jetzt ein Subprozess ... warum sollte er auf PI kommen?

Wenn Du in einem rechner eingelogt bist und ein Programm startest, startet es unter dem user ...???
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Blablubblaber

Vielen Dank nun hab ich es verstanden hatte da echt ein knoten im Kopf.
Habe es geändert auf fhem und siehe da es klappt vielen Dank für die Hilfe.

Wernieman

Danke das Du Deine Einsicht geschrieben hast. Machen nicht viele!
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html