Telnet im Script funktioniert aus der Shell, nicht aus FHEM

Begonnen von Markus M., 14 September 2013, 14:44:02

Vorheriges Thema - Nächstes Thema

Markus M.


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
Aktuell weder Smarthome noch FHEM vorhanden

Markus M.

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 :(
Aktuell weder Smarthome noch FHEM vorhanden