Hallo,
Möchte einem Dummy einen Temperaturwert über die Konsole übergeben.
Was problemlos über Telnet funktioniert ist : fhem> set T2 41.3
Über die normale Konsole (nicht Telnet) mit backticks geht auch : `echo set T2 41.3 | nc -w 1 localhost 7072`
Ergebnis mit "stateFormat Temp.:state °C" sieht so aus: T2 Temp.:41.3 °C
Gibt es von der Konsole aus auch eine einfachere Eingabe ohne den nc (netcat) Befehl?
Danke Billy
Zitat von: Billy schrieb am Mo, 04 März 2013 18:45Gibt es von der Konsole aus auch eine einfachere Eingabe ohne den nc (netcat) Befehl?
Sowas?:
/opt/fhem/fhem.pl 7072 "set T2 41.3"
Zitat von: fladdy schrieb am Mo, 04 März 2013 18:50Zitat von: Billy schrieb am Mo, 04 März 2013 18:45Gibt es von der Konsole aus auch eine einfachere Eingabe ohne den nc (netcat) Befehl?
Sowas?:
/opt/fhem/fhem.pl 7072 "set T2 41.3"
Das war's!Vielen Dank.
Sorry,
war zu kurz gedacht.
Wie muss ich jetzt -- /opt/fhem/fhem.pl 7072 "set T2 41.3" --
verändern um das ganze aus einem Perl Script abzusetzen, der parallel zu FHHEM läuft?
Danke Billy
So?
system('/opt/fhem/fhem.pl 7072 "set T2 41.3"');
Danke,
wir nähern uns der Sache an.
-- system('/opt/fhem/fhem.pl 7072 "set T2 41.3"'); -- funktioniert.
wenn ich jedoch
einen im Script errechneten Wert übergebe ! mit -- system('/opt/fhem/fhem.pl 7072 "set T2 $TT1"'); --
Kommt die Meldung
no set value specified
Fällt dir da noch was ein?
Gruss Billy
Zitat von: Billy schrieb am Mo, 04 März 2013 19:46Fällt dir da noch was ein?
Das liegt daran, dass Variablen nur in "" und nicht in '' Zeichenketten substituiert werden. Lösung: Konkatenation.
Versuch mal:
system('/opt/fhem/fhem.pl 7072 "set T2 '.$TT1.'"');
wenn $TT1 den gewünschtern Wert enthält.
Vielen Dank Fladdy,
jetzt läuft es! Jetzt kann ich die ausgelesenen Temperaturwerte von meiner Heizung in FHEM Dummys einlesen.
Nochmals vielen Dank.
Billy