FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Tempr42 am 20 Oktober 2015, 19:40:32

Titel: Ausgabe aus Shell-Script in Log speichern
Beitrag von: Tempr42 am 20 Oktober 2015, 19:40:32
Hallo zusammen,

ich führe alle 5 Sekunden ein Shell-Script aus:
define Sensor at +*00:00:05 {system('sudo /var/bin/sensor.sh&')}

Die Ausgabe des Scripts wird auch wunderbar im Logfile dargestellt.
Jetzt möchte ich nur das die Ausgabe des Scripts in ein eigenes Logfile geschrieben wird.

Ich habe folgendes probiert:
define FileLog_Sensor FileLog ./log/sensor-%Y.log Sensor
attr FileLog_Sensor logtype text


Leider werden nur die Zeiten in denen das Script ausgeführt wird im neuen Log gespeichert, jedoch nicht die Ausgabe.
Hab jemand eine Idee, wie ich die Script-Ausgabe mit in das Log bekomme?
Titel: Antw:Ausgabe aus Shell-Script in Log speichern
Beitrag von: marvin78 am 20 Oktober 2015, 19:41:45
Eine Möglichkeit wäre, die Werte in ein dummy zu legen und das dummy zu loggen.
Titel: Antw:Ausgabe aus Shell-Script in Log speichern
Beitrag von: Tempr42 am 20 Oktober 2015, 20:04:44
Wie müsste denn der Dummy dafür definiert werden?
Titel: Antw:Ausgabe aus Shell-Script in Log speichern
Beitrag von: Tempr42 am 20 Oktober 2015, 20:17:54
Hatte es jetzt so definiert:

define Sensor dummy
define Sensorreading at +*00:00:05 {my $value = system('sudo /var/bin/sensor.sh&');; fhem("set Sensor $value")}
define FileLog_Sensor FileLog ./log/sensor-%Y.log Sensor
attr FileLog_Sensor logtype text


Leider bekomme ich als Wert im Log jetzt immer -1 anstatt der Ausgabe des Scripts.
Wo liegt der Fehler?

Im Logfile wird die Ausgabe des Scripts korrekt ausgegeben...
Titel: Antw:Ausgabe aus Shell-Script in Log speichern
Beitrag von: marvin78 am 20 Oktober 2015, 20:32:18
Probiers mal mit


+*00:00:05 {my $value = qx(sudo /var/bin/sensor.sh&);fhem("set Sensor $value")}


(Code für den DEF Bereich des at)
Titel: Antw:Ausgabe aus Shell-Script in Log speichern
Beitrag von: Tempr42 am 21 Oktober 2015, 19:59:44
@marvin78
Danke dir, hatte nur noch eine Semikolon gefehlt. Funktioniert jetzt wunderbar. Hier der fertige Code:

define Sensor dummy
define Sensorreading at +*00:00:05 {my $value = qx(sudo /var/bin/sensor.sh&);;fhem("set Sensor $value")}
define FileLog_Sensor FileLog ./log/sensor-%Y.log Sensor
attr FileLog_Sensor logtype text