Hallo zusammen,
ich versuche seit Tagen SQL-Befehle in fhem abzusetzen.
Ich möchte beispielsweise Werte aus der Datenbank löschen:
set logdb userCommand DELETE from logdb WHERE DEVICE = Sensor3
Wenn ich dann in dem Datenbank-Frontend nachschaue, sehe ich keinen Effekt.
Was mache ich falsch?
P.S.: manchmal scheint es zu funktionieren, da ich ganze Spalten löschen konnte.
Lieb Grüße
ette
Delete from history sollte da rein.
Mit dem Handy online, daher kurz gefasst...
Warum denn history?
Meine Tabelle heisst doch logdb:
defmod logdb DbLog ./db.conf .*:.*
Oder habe ich da was falsch verstanden
Zitat von: ettettette am 07 November 2017, 17:40:29
Warum denn history?
Meine Tabelle heisst doch logdb:
defmod logdb DbLog ./db.conf .*:.*
Oder habe ich da was falsch verstanden
Dein device in FHEM heisst logdb,
Innerhalb der Datenbank ist es die Tabelle "history"
Deshalb.
Mit dem Handy online, daher kurz gefasst...
Hab ich mal ausprobiert:
Befehl in fhem eingetippt:
set logdb userCommand Delete from history WHERE DEVICE = Lueften
Anschliessend FHEM WebFrontende die Datenbank ausgelesen:
Alle Werte noch da!
Noch jemand eine idee?
set logdb userCommand Delete from history WHERE DEVICE = "Lueften";
sorry, hatte deinen letzten Post übersehen.
Ich lösche direkt in der Konsole über sqlite. Der Befehl wird da per semicolon abgeschlossen.
versuche es mal wie oben, ansonsten prüfe ob das device wirklich so geschrieben wird. (Groß/Kleinschrift!)
Die usercommand-funktion ist recht einfach gebaut. möglicherweise liegt es an einem fehlenden autocommit auf deiner DB. Vorschlag: Installiere dir ein Dbrep-device. Dann hast du die Möglichkeit sehr differenziert zu löschen (und weitere Funktionen).
So hat das zumindest schon mal funktioniert.
Die SQL-Abfrage die ich eigentlich machen wollte hab ich unter https://forum.fhem.de/index.php/topic,79855.0.html (https://forum.fhem.de/index.php/topic,79855.0.html) jetzt nochmal neu formuliert.