FHEM Forum

FHEM => Automatisierung => Thema gestartet von: cs-online am 11 Oktober 2019, 20:31:09

Titel: Fehlereintrag im FHEM-Log, wenn ich per SQL in die DB schreiben will
Beitrag von: cs-online am 11 Oktober 2019, 20:31:09
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
Titel: Antw:Fehlereintrag im FHEM-Log, wenn ich per SQL in die DB schreiben will
Beitrag von: amenomade am 11 Oktober 2019, 20:49:26
Mit single quotes werden die Variable nicht interpretiert.
Geht die Lösung nicht, die ich dir im anderen Thread gegeben habe?
Titel: Antw:Fehlereintrag im FHEM-Log, wenn ich per SQL in die DB schreiben will
Beitrag von: DS_Starter am 11 Oktober 2019, 20:53:52
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
Titel: Antw:Fehlereintrag im FHEM-Log, wenn ich per SQL in die DB schreiben will
Beitrag 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
Titel: Antw:Fehlereintrag im FHEM-Log, wenn ich per SQL in die DB schreiben will
Beitrag von: amenomade am 11 Oktober 2019, 23:17:17
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
Titel: Antw:Fehlereintrag im FHEM-Log, wenn ich per SQL in die DB schreiben will
Beitrag von: cs-online am 12 Oktober 2019, 19:49:10
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
Titel: Antw:Fehlereintrag im FHEM-Log, wenn ich per SQL in die DB schreiben will
Beitrag von: cs-online am 14 Oktober 2019, 08:27:38
Kurzes Feedback: Das funktioniert super !!! Danke !!!