Dummywert über Konsole setzen

Begonnen von Billy, 04 März 2013, 18:45:48

Vorheriges Thema - Nächstes Thema

Billy

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
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

fladdy

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"



Billy

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.
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

Billy

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
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

fladdy

So?


system('/opt/fhem/fhem.pl 7072 "set T2 41.3"');

Billy

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
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

fladdy

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.

Billy

Vielen Dank Fladdy,
jetzt läuft es! Jetzt kann ich die ausgelesenen Temperaturwerte von meiner Heizung in FHEM Dummys einlesen.

Nochmals vielen Dank.
Billy
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*