FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: citydweller am 15 November 2014, 17:29:26

Titel: [Gelöst]Unknown command {system
Beitrag von: citydweller am 15 November 2014, 17:29:26
Hallo liebe FHEM-Gemeinde,

ich habe aktuell das Problem, dass ich aus FHEM keine Shell-Befehle absetzen kann.
Sobald sich der Status von WaschmaschineBetrieb auf standby ändert, soll ein Shell-Befehl ausgelöst werden: echo "msg Benutzer Der Waschvorgang ist abgeschlossen." | /sbin/telegram/telegram-cli -k /sbin/telegram/server.pub -W

Hier die komplette Definition:
define WaschmaschineWaschvorgangAbgeschlossenPushover notify WaschmaschineBetrieb:standby {system('echo "msg Benutzer Der Waschvorgang ist abgeschlossen." | /sbin/telegram/telegram-cli -k /sbin/telegram/server.pub -W')}

Wenn nun WaschmaschineBetrieb auf Status standby wechselt erhalte ich im Log-File folgende Rückmeldung:
WaschmaschineWaschvorgangAbgeschlossenPushover return value: Unknown command {system('echo, try help.

Was mache ich falsch? Über die Kommandozeile funktioniert es natürlich einwandfrei. FHEM läuft unter einem aktuellen Archlinux auf dem Raspberri Pi.
Vielen Dank für eure Hilfe.
Titel: Antw:Unknown command {system
Beitrag von: schka17 am 15 November 2014, 18:15:33
probiere mal
{system("echo \"msg Benutzer Der Waschvorgang ist abgeschlossen.\" \| /sbin/telegram/telegram-cli -k /sbin/telegram/server.pub -W")}

Titel: Antw:Unknown command {system
Beitrag von: citydweller am 16 November 2014, 15:40:51
Super hat funktioniert. Wert -1.
Jedoch steh ich noch mit telegram-cli auf Kriegsfuß. Mal funktioniert es, mal nicht.
Kannst du mir bitte kurz erklären wie sich deine Befehlssyntax zusammen setzt?

Nachtrag:
Vor jedem Sonderzeichen ein "\" ?
Titel: Antw:Unknown command {system
Beitrag von: schka17 am 16 November 2014, 20:32:32
Mit dem backslash maskierst du Sonderzeichen damit sie nicht von perl interpretiert werden sondern an die shell übergeben werden


Sent from my iPad using Tapatalk
Titel: Antw:[Gelöst]Unknown command {system
Beitrag von: citydweller am 17 November 2014, 08:15:52
Vielen Dank!
Titel: Antw:[Gelöst]Unknown command {system
Beitrag von: Joesky am 07 Januar 2015, 17:20:17
Ich habe genau die gleiche Lösung. Leider werden keine Nachrichten geschickt. Der Befehl wird ausgeführt und ich bekomme auch als Antwort den Wert -1, doch es kommt nichts an.
Hast Du das Problem auch gehabt? Kann man den Befehl auch auf der Konsole ausprobieren? Bei mir kommt nach dem Enter immer ein > und es passiert nichts.
Titel: Antw:[Gelöst]Unknown command {system
Beitrag von: citydweller am 07 Januar 2015, 19:54:53
Ja, hatte das identische Problem.
Mal ging es, mal nicht.

Wichtig ist das du nicht die identischen Accounts nutzt, sprich zwei verschiedene.

Ich bin mittlerweile auf Jabber ausgewichen/E-Mail, da zuverlässiger.
Titel: Antw:[Gelöst]Unknown command {system
Beitrag von: otto am 17 Januar 2015, 01:02:22
Hallo hab ein ähnliches Problem :
{system ("echo \"msg user#xxxxxxxx Der Waschvorgang ist abgeschlossen.\" \| /root/tg-for-pytg2/bin/telegram-cli -k /root/tg-for-pytg2/server.pub -W")}oder :
{system('echo "msg user#xxxxx Der Waschvorgang ist abgeschlossen." | /root/tg-for-pytg2/bin/telegram-cli -k /root/tg-for-pytg2/server.pub -W')}bekomm ich diede Fehlermeldung:
Unknown command {system('echo, try help.
Bei Putty geht alles oder wen ich es über ein Skript aufrufe.
so gehts bei Putty:  echo "msg user#xxxxx Der Waschvorgang ist abgeschlossen." | /root/tg-for-pytg2/bin/telegram-cli -U -k /root/tg-for-pytg2/server.pub -W

In der 99_myUtils.pm Hab ichs so versucht ... ohne Erfolg:

sub
SendNotificationTelegram($)
{
  my ($str) = @_;
  system ("msg user#xxxxxx \"$str\"" | "/root/tg-for-pytg2/bin/telegram-cli -U -k /root/tg-for-pytg2/server.pub -W");
  Log 1, "Fhem";
}
Wo liegt hier mein Fehler ?

Gruß otto