FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Gisbert am 29 Dezember 2019, 15:45:39

Titel: [Gelöst] set-Befehl (cmd gpio,2,0) im Ausführungsteil - doppelte Klammerung
Beitrag von: Gisbert am 29 Dezember 2019, 15:45:39
Hallo zusammen,

ich habe folgenden set-Befehl, der in der Fhem-Kommandozeile funktioniert:
set Stellantriebe.EG cmd gpio,2,0
Damit wird beim MQTT-Device Stellantriebe.EG der GPIO2 auf null gesetzt.

Wenn ich dengleichen Befehl in einem DOIF-Ausführungsteil benutzen möchte, erhalte ich folgenden Fehler im log - das DOIF hat den Namen "HKV.EG":
2019.12.29 14:21:16 2: HKV.EG: 2: Unknown command 2, try help.
Wenn ich mit mqttfx lausche, dann wird nur die payload gpio übertragen, nicht aber gpio,2,0.
Gibt es dafür eine Lösung, d.h. Senden der payload gpio,2,0 in dem Ausführungsteil eines DOIFs?

Viele Grüße Gisbert
Titel: Antw:set-Befehl (cmd gpio,2,0) im Ausführungsteil
Beitrag von: Frank_Huber am 29 Dezember 2019, 16:15:41
Hallo Gisbert,

Doppelt klammern ist der Trick.
Doif nutzt das Komma als Befehlstrenner. Mit der doppelten klammerung wird das Komma zum Befehl genommen.

Grüße
Frank

Gesendet von meinem Doogee S60 mit Tapatalk

Titel: Antw:set-Befehl (cmd gpio,2,0) im Ausführungsteil
Beitrag von: Gisbert am 29 Dezember 2019, 17:41:22
Zitat von: Frank_Huber am 29 Dezember 2019, 16:15:41
Hallo Gisbert,

Doppelt klammern ist der Trick.
Doif nutzt das Komma als Befehlstrenner. Mit der doppelten klammerung wird das Komma zum Befehl genommen.

Grüße
Frank

Hallo Frank,

funktioniert perfekt.
Ich erinnere mich, dass ich die doppelte Klammersetzung im Ausführungsteil beim Versenden von Nachrichten sogar schon genutzt  habe, um die  Formatierung der Nachricht beim Empfänger hinzubekommen. Gut zu wissen, das es eine Erklärung gibt.

Viele Grüße Gisbert
Titel: Antw:[Gelöst] set-Befehl (cmd gpio,2,0) im Ausführungsteil - doppelte Klammerung
Beitrag von: Frank_Huber am 29 Dezember 2019, 18:00:21
Im Detail steht es auch hier:
https://fhem.de/commandref_DE.html#DOIF_Angaben_im_Ausfuehrungsteil
Zeile 2 und 3.
:-)