FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Billy am 04 März 2013, 18:45:48

Titel: Dummywert über Konsole setzen
Beitrag von: Billy am 04 März 2013, 18:45:48
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
Titel: Aw: Dummywert über Konsole setzen
Beitrag von: fladdy am 04 März 2013, 18:50:11
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"


Titel: Aw: Dummywert über Konsole setzen
Beitrag von: Billy am 04 März 2013, 19:00:32
Zitat von: fladdy schrieb am Mo, 04 März 2013 18:50
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"
Das war's!

Vielen Dank.
Titel: Aw: Dummywert über Konsole setzen
Beitrag von: Billy am 04 März 2013, 19:22:12
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
Titel: Aw: Dummywert über Konsole setzen
Beitrag von: fladdy am 04 März 2013, 19:28:58
So?


system('/opt/fhem/fhem.pl 7072 "set T2 41.3"');
Titel: Aw: Dummywert über Konsole setzen
Beitrag von: Billy am 04 März 2013, 19:46:55
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
Titel: Aw: Dummywert über Konsole setzen
Beitrag von: fladdy am 04 März 2013, 19:51:00
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.
Titel: Aw: Dummywert über Konsole setzen
Beitrag von: Billy am 04 März 2013, 19:58:06
Vielen Dank Fladdy,
jetzt läuft es! Jetzt kann ich die ausgelesenen Temperaturwerte von meiner Heizung in FHEM Dummys einlesen.

Nochmals vielen Dank.
Billy