FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: andies am 17 März 2017, 15:35:33

Titel: [gelöst] notify mit set-Befehl, der ;; enthält
Beitrag von: andies am 17 März 2017, 15:35:33
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!
Titel: Antw:notify mit längerem set-Befehl
Beitrag von: Beta-User am 17 März 2017, 15:38:22
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...
Titel: Antw:notify mit set-Befehl, der ;; enthält
Beitrag von: r00t2 am 17 März 2017, 15:39:21
Oder das Ganze vielleicht in {} setzten - wäre mein Ansatz gewesen.
Dann sollten die doppelten ;; auch passen.
Titel: Antw:notify mit set-Befehl, der ;; enthält
Beitrag von: andies am 17 März 2017, 16:11:17
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.
Titel: Antw:notify mit set-Befehl, der ;; enthält
Beitrag von: Beta-User am 17 März 2017, 16:19:07
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;;"}
Titel: Antw:notify mit set-Befehl, der ;; enthält
Beitrag von: r00t2 am 17 März 2017, 16:21:22
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
Titel: Antw:notify mit set-Befehl, der ;; enthält
Beitrag von: andies am 17 März 2017, 16:42:26
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!

Titel: Antw:notify mit set-Befehl, der ;; enthält
Beitrag von: r00t2 am 17 März 2017, 16:47:53
Probier mal doppelt zu escapen: https://forum.fhem.de/index.php/topic,12599.msg470954.html#msg470954
Titel: Antw:notify mit set-Befehl, der ;; enthält
Beitrag von: andies am 17 März 2017, 16:53:18
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.)
Titel: Antw:[gelöst] notify mit set-Befehl, der ;; enthält
Beitrag von: r00t2 am 17 März 2017, 17:00:52
Schön, wenns klappt.
Manchmal sieht man vor lauter Klammern und Strichpunkten den Wald vor lauter Bäumen nicht mehr... Vor allem bei Einzeilern :)