Ich komm einfach nicht weiter. Villeicht kann mir mal ja jemand sagen wo mein Fehler ist . Ich will doch nur das er 2 Zahlen ausließt und diese untereinander in eine Datei schreibt. Ich bekomme es einfach nicht hin..
lacross_draussen_busch:.* {
my $wgt1 = minNum( ReadingsNum("lacross_draussen_busch","temperature",20), ReadingsNum("Tempdraussen","temperature",20));
my $wgt2 = ReadingsNum("lacross_draussen_busch","humidity",20)
system('echo "outsidewert = $wgt1 \noutfeuchtewert = $wgt2 "> /tmp/technolineouttemp.txt')}
So schreibt er zumindestens schon mal untereinander die Zeilen
outsidewert =
outfeuchtewert =
aber die $wgt strings bleiben in der Datei leer. Ich verstehe es einfach nicht. Ärgert mich
So schreibt er mir eine Zeile mit dem Wert aber da geht \n nicht
system("echo outsidewert = $wgt1 > /tmp/technolineouttemp.txt")}
Hallo,
ohne es jetzt nachvollzogen zu haben, würde ich vermuten das in qq() die Variablen aufgelöst werden.
system(qq(echo "outsidewert = $wgt1 \noutfeuchtewert = $wgt2 "> /tmp/technolineouttemp.txt))}
Gruß Thomas
edit:
ausprobiert, sollte funzen.
Ja super. Besten Dank.. Da wäre ich Anfänger ja nie drauf gekommen. Funktioniert dann gleich ohne Probleme.
Das liegt einfach daran, dass Perl innerhalb von '..' keine Variablensubstitution macht, es benötigt also qq(..) oder ".."
LG
pah
Man könnte das auch einfach mit FileWrite() und somit FHEM-Bordmitteln machen.
my $wgt1 = minNum( ReadingsNum("lacross_draussen_busch","temperature",20), ReadingsNum("Tempdraussen","temperature",20));
my $wgt2 = ReadingsNum("lacross_draussen_busch","humidity",20);
FileWrite("/tmp/technolineouttemp.txt",("outsidewert = $wgt1","outfeuchtewert = $wgt2"));
Achtung:
wer mit configDB arbeitet, findet die Datei danach in der Datenbank.
Ggf. also bei configDB-Nutzung im Funktionsaufruf noch den Parameter forceType setzen, falls auf die Datei von außerhalb FHEM zugegriffen werden soll.