FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Markus M. am 14 September 2013, 14:44:02

Titel: Telnet im Script funktioniert aus der Shell, nicht aus FHEM
Beitrag von: Markus M. am 14 September 2013, 14:44:02

Ich habe hier ein Shell Script, das ein FHEM Command per Telnet absetzt.

Die Problematische Zeile ist die hier:
STATE=$(/usr/bin/perl /opt/fhem/fhem.pl 7072 "{if (Value(\"speaker_kitchen\") eq \"off\") {fhem \"set speaker_kitchen on\";;return \"off\"};;{return \"on\"}}")


Wenn ich das Script aus der Shell starte ist alles ok.
Starte ich es über einen Perl system() Aufruf aus FHEM, funktioniert diese Zeile nicht.



Der Prozess hängt dann einfach:
root       501 28.2  1.1   8924  5208 ?        S    14:33   0:01 /usr/bin/perl /opt/fhem/fhem.pl 7072 {if (Value("speaker_kitchen") eq "off") {fhem "set speaker_kitchen on";;return ...
Der Rest des Scripts ohne fhem.pl Aufrufe funktioniert, kille ich den Prozess läuft es durch.

Ich vermute mal dass irgendwas mit den Quotes schief läuft, habe aber keine Ahnung warum es aus der Shell funktioniert aber nicht mit system()


Kennt sich jemand damit aus und kann mir weiterhelfen?

Markus
Titel: Aw: Telnet im Script funktioniert aus der Shell, nicht aus FHEM
Beitrag von: Markus M. am 19 September 2013, 00:45:06
Es sieht so aus als würde das an den Doublequotes liegen, die je nach Aufrufart unterschiedlich behandelt werden.
Ich habe leider noch keine Lösung gefunden :(