Hallo Forengemeinde!
Ich logge Stromzählerwerte in DBlog mit. Da ich hin und wieder "nan" als Wert geliefert bekomme und dieser meine SVG-Plot zerstört lösche ich jene alle 20 Minuten mit
+*00:20:00 set DBLogging userCommand DELETE FROM history where VALUE = 'nan'
aus der Datenbank.
Dieses erzeugt in der Fhem-Log aber folgende Meldung
2018.09.23 11:29:08 1: DbLog DBLogging: DBLog_Set - DBD::mysql::db selectrow_array failed: fetch() without execute() at ./FHEM/93_DbLog.pm line 859.
Kann mir jemand einen Tip geben wo der Fehlerteufel liegt bzw. warum es zu diese Meldung kommt?
Grüße
Marco
Hallo Marco,
diese Funktion in DbLog ist recht einfach gestrickt. Die Meldung kommt durch eine Mitteilung der Datenbankschnittstelle.
Von meiner Architekturphilosophie her sollte es diese Funktion in einem Log-Device überhaupt nicht geben. Historisch bedingt ist sie aber noch vorhanden.
Führe deinen Aufruf besser in einem DbRep-Device aus mit:
set <DbRep-Device> sqlCmd DELETE FROM history where VALUE = 'nan'
Das Attribut "allowDeletion" ist in dem Device zu setzen.
Die DbRep-Verwendung hat weiterhin den Vorteil dass die Abarbeitung non-blocking erfolgt.
Grüße,
Heiko
Danke Heiko,
so werde ich es heute Abend mal umsetzten ;)
Gruß
Marco