Hauptmenü

Systembefehl echo

Begonnen von horni, 16 November 2025, 22:38:14

Vorheriges Thema - Nächstes Thema

horni

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")}

TomLee

#1
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.

horni

Ja super. Besten Dank.. Da wäre ich Anfänger ja nie drauf gekommen. Funktioniert dann gleich ohne Probleme.

Prof. Dr. Peter Henning

Das liegt einfach daran, dass Perl innerhalb von '..' keine Variablensubstitution macht, es benötigt also qq(..) oder ".."

LG

pah

betateilchen

#4
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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!