Guten Tag, ich habe eine Anfängerfrage. Ich möchte nach Auslösen eines Commands ZuAuf einen SIGNALdunio-Befehl auslösen. Dazu habe ich analog der Einleitung ("Erste Schritte") definiert
define Gartentor_Fussgaenger_bewegen notify Gartentor_Fussgaenger:ZuAuf set sduino raw SR;;R=3;;P0=335;;P1=-665;;P2=-335;;P3=665;;P4=-15018;;D=01023102310101023101010234;;
und kriege dann aber
2017.03.17 15:31:16 3: Gartentor_Fussgaenger_bewegen return value: Unknown command R=3, try help.
Unknown command P0=335, try help.
Unknown command P1=-665, try help
Da mache ich wohl was falsch. SIGNALdunio verlangt die doppelten ;; innerhalb der Befehlszeile, und das scheint hier Ärger zu machen. Hat jemand einen Tip, wie ich das hinbekommen kann? Danke im Voraus!
Nur eine Vermutung, aber versuche es mal nur mit jeweils einem ";". (so gibt man es beim Signalduino ja auch in das "set"-Eingabefeld ein).
Das doppelte ;; macht dann wohl die Syntaxprüfung/-Übersetzung rein...
Oder das Ganze vielleicht in {} setzten - wäre mein Ansatz gewesen.
Dann sollten die doppelten ;; auch passen.
Alles probiert, klappt nicht. Zum Verzweifeln.Hier passiert nix
define Gartentor_Fussgaenger_bewegen notify Gartentor_Fussgaenger:ZuAuf {fhem("set sduino raw SR;R=3;P0=335;P1=-665;P2=-335;P3=665;P4=-15018;D=01023102310101023101010234;")}
Fehlermeldung lautet
2017.03.17 16:05:21 1: ERROR evaluating my $TYPE='dummy';my $NAME='Gartentor_Fussgaenger';my $EVTPART0='ZuAuf';my $EVENT='ZuAuf';my $SELF='Gartentor_Fussgaenger_bewegen';{FHEM("set sduino raw SR;R=3;P0=335;P1=-665;P2=-335;P3=665;P4=-15018;D=01023102310101023101010234;")}: Undefined subroutine &main::FHEM called at (eval 79) line 1.
2017.03.17 16:05:21 3: Gartentor_Fussgaenger_bewegen return value: Undefined subroutine &main::FHEM called at (eval 79) line 1.
Nur mit {} lässt sich nichts eingeben, da kommt
Missing right curly or square bracket at (eval 97) line 1, at end of line
syntax error at (eval 97) line 1, at EOF
Unknown command R=3, try help.
usw
Unknown command }, try help.
Wirklich alles probiert?
m.E. entweder:
define Gartentor_Fussgaenger_bewegen notify Gartentor_Fussgaenger:ZuAuf set sduino raw SR;R=3;P0=335;P1=-665;P2=-335;P3=665;P4=-15018;D=01023102310101023101010234;
oder (da bin ich aber kein "Experte"):
define Gartentor_Fussgaenger_bewegen notify Gartentor_Fussgaenger:ZuAuf {fhem "set sduino raw SR;;R=3;;P0=335;;P1=-665;;P2=-335;;P3=665;;P4=-15018;;D=01023102310101023101010234;;"}
Denke auch, dass die () bei fhem (set...) nicht notwendig sind.
Steht zumindest auch so in der notify Wiki Seite:
define SteckdoseWZein notify LichtWZ { fhem "set Steckdose1 $EVENT;;set Steckdose2 $EVENT " }
Zitat"{ <perlcode> }" alles was zwischen {} steht ist Perl code. Perl kennt das Schlüsselwort fhem. Das Schlüsselwort FHEM dient dazu, FHEM Befehle auszuführen. Es wird also der FHEM Befehl "set RadioKueche on/off" ausgeführt. on oder off ist abhängig vom Pattern. Der eigentliche FHEM Befehl muss in " " stehen.
Wobei das ein (unnötiger?) Wechsel zwischen Perl und Fhem sein könnte - aber hier stehen die Klammern wiederum explizit drin: https://wiki.fhem.de/wiki/Klammerebenen
Könnte es sein, dass hier doppelt escaped werden muss? :o
Zitat von: Beta-User am 17 März 2017, 16:19:07
m.E. entweder:
define Gartentor_Fussgaenger_bewegen notify Gartentor_Fussgaenger:ZuAuf set sduino raw SR;R=3;P0=335;P1=-665;P2=-335;P3=665;P4=-15018;D=01023102310101023101010234;
Da kommt schon bei der Eingabe
Unknown command R=3, try help.
Unknown command P0=335, try help.
Unknown command P1=-665, try help.
Unknown command P2=-335, try help.
Unknown command P3=665, try help.
Unknown command P4=-15018, try help.
Zitat von: Beta-User am 17 März 2017, 16:19:07
oder (da bin ich aber kein "Experte"):
define Gartentor_Fussgaenger_bewegen notify Gartentor_Fussgaenger:ZuAuf {fhem "set sduino raw SR;;R=3;;P0=335;;P1=-665;;P2=-335;;P3=665;;P4=-15018;;D=01023102310101023101010234;;"}
Da wird das notify angelegt, aber im Logfile steht nun bei der Auslösung
2017.03.17 16:41:02 3: set sduino raw SR;R=3;P0=335;P1=-665;P2=-335;P3=665;P4=-15018;D=01010102310101023101010234; : Unknown command R=3, try help.
Unknown command P0=335, try help.
Unknown command P1=-665, try help.
Unknown command P2=-335, try help.
usw
Wirklich
alles probiert!
Probier mal doppelt zu escapen: https://forum.fhem.de/index.php/topic,12599.msg470954.html#msg470954
Super, danke - das war es!!
(Und ich hätte das schon sehen können, da nach dem Anlegen des devices aus den zwei ;; nur eines ; wurde.)
Schön, wenns klappt.
Manchmal sieht man vor lauter Klammern und Strichpunkten den Wald vor lauter Bäumen nicht mehr... Vor allem bei Einzeilern :)