Hallo,
um Logabrisse zu verhindern und speziell das Weiterschreiben von Plots möglich zu machen, habe ich versucht mittels Timer direkt in die DB Werte einzutragen, z.B. über die Anweisung
insert into fhem.history values('2019-10-11 20:10:04','search_activ','ECMDDEVICE','Fakelog','FlowTempDesired','21.00','')
Der Fakelogeintrag sollte dafür sein, dass ich im Zweifel "echte" und gefakte Einträge auseinander halten kann... Das funktioniert dann über den Aufruf:
$SQL="insert into fhem.history values('$dt1','search_activ','ECMDDEVICE','Fakelog','$_','$read','')";
fhem("set LOGDB userCommand $SQL");;
Ich bekomme dann aber im FHEM-Log mit Verbose 1 diesen Fehler bei jedem Eintrag:
2019.10.11 18:15:11 1: DbLog LOGDB: DBLog_Set - DBD::mysql::db selectrow_array failed: fetch() without execute() at ./FHEM/93_DbLog.pm line 912.
Gibt es ggf. noch eine andere Möglichkeit Einträge in die DB zu schreiben ohne den Fehler auszulösen ?
Grüße
Christian
Mit single quotes werden die Variable nicht interpretiert.
Geht die Lösung nicht, die ich dir im anderen Thread gegeben habe?
Hallo Christian,
dieses userCommand in DbLog ist minimalistisch und für sehr einfache selects geeignet.
Für deinen Zweck eignet sich ein DbRep-Device:
$SQL="INSERT INTO history (TIMESTAMP, DEVICE, TYPE, EVENT, READING, VALUE, UNIT) VALUES ('$dt1','search_activ','ECMDDEVICE','Fakelog',"$_','$read','')";
fhem("set DbRepDev sqlCmd $SQL");;
Habe dein SQL noch etwas angepasst. Sollte so passen. Wenn ' nicht funktioniert, dann statt dessen \" verwenden.
Grüße,
Heiko
Jetzt habe ich nochmal gelesen und frage mich warum du nicht einfach das in DbLog eingebaute "addLog" verwendest ?
Ist genau dafür gemacht.
LG
Zitat von: DS_Starter am 11 Oktober 2019, 23:15:11
Jetzt habe ich nochmal gelesen und frage mich warum du nicht einfach das in DbLog eingebaute "addLog" verwendest ?
Ist genau dafür gemacht.
LG
Stimmt. Das ist noch einfacher als die Routine in myUtils
Danke euch allen, habe das gerade mal ausprobiert, das scheint wirklich genau das zu sein, was ich brauchte, da hätt ich mir den Stress mit dem SQL gar nicht machen brauchen, wenn ich mal richtig gelesen hätte....
schönes Restwochenende,
Grüße
Christian
Kurzes Feedback: Das funktioniert super !!! Danke !!!