Hi,
ich habe einen curl Befehl den ich verwenden will; aber ich schaffs nicht sauber die Gänsefüßchen zu escapen. auf der shell sieht der Befehl so aus:
curl --data '{"message":"Fenster EG noch offen"}' --user user:secret https://api.getnotify.me/submit
in fhem wäre das ja dann ungefähr so:
{system("curl --data '{"message":"Fenster EG noch offen"}' --user user:secret https://api.getnotify.me/submit")}
aber ich bekomm nur syntax error auch wenn ich mit \ die " escapen möchte bzw. " mit '' ersetze.. jemand eine Idee?
Danke im Voraus!
Hallo,
falls Du noch mehrere von den API Aufrufen hast, wäre das HTTPMOD eine schöne Integration.
VG Christian
Eigentlich eben nur den einen.. da wäre eine schnelle einfache lösung nett..
probier mal den system aufruf durch backticks zu ersetzen: `...`
Hi,
versuch mal so:
{system( q(curl --data '{"message":"Fenster EG noch offen"}' --user user:secret https://api.getnotify.me/submit) )}
Ist das der einzige Perl Befehl oder steht in dem Zusammenhang mehr? Sonst geht es auch im FHEM Syntax:
https://fhem.de/commandref_modular_DE.html#command
Gruß Otto
sub test {
my $a = '{"message":"Fenster EG noch offen"}';
system("curl --data '$a' --user user:secret https://api.getnotify.me/submit");
}
Das liefert bei mir zumindest mal keinen Fehler.
Erstmal danke für die Infos; ja es werden noch weitere Befehle ausgeführt.. und wie ich nun gelesen habe (danke Otto123) geht das wohl nicht:
Achtung: unterschiedlicher Befehlsarten (FHEM/Shell/perl) in einer Kommandozeile sind nicht unterstützt, auch wenn es in manchen Fällen funktioniert.
ich leg mal n dummy oder so an den ich trigger und dann mal schauen.. geb nochmal Rückmeldung!
Das Verpacken des System-Befehls in einen Dummy, das normale escapen via \ und der finale Aufruf des Dummys als FHEM-Befehl in der DOIF haben nun einwandfrei geklappt. Vielen Dank für eure Hilfe!