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
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 :(