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?
Eine Möglichkeit wäre, die Werte in ein dummy zu legen und das dummy zu loggen.
Wie müsste denn der Dummy dafür definiert werden?
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...
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)
@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