Servus Leute,
brauche Hilfe bei einer Sache:
define ntf_Test1 notify Dummy1:on.* {fhem("setreading DUMMYNAME [Dummy1:STATE]_".sprintf("%04d%02d%02d_%02d%02d%02d",$year,$month,$mday,$hour,$min,$sec)." [Dummy2:STATE]")}
Solange der Name DUMMYNAME festgelegt ist, klappt alles ganz gut. Wie stelle ich es aber an, dass ich den Namen DUMMYNAME bspw. durch DUMMY3:STATE ersetzen kann?
Ich bekomme immer eine Meldung: "Please define [DUMMY3:STATE] first". Ich komm nicht auf die richtige Syntax, bitte um Hilfe.
Danke!
Stephan
hä?
der fehler sagt doch eigentlich schon alles....
ist nicht definiert, und du sollst es anlegen?!
oder ich habe deinen anwendungsfall nicht richtig durchblickt :o
Variable ??
Was genau willst du eigentlich erreichen?
Ein Notify für verschiedene Dummy welches immer das selbe tut, nur eben mit verschiedenen Dummies?
Dazu müsste die regex bzgl. Trigger schon mal entsprechend formuliert sein, evtl. sowas:
define nDummy notify Dummy_.*:(on|off) ...
reagiert auf alle on/off von Dummies die mit Dummy_ beginnen:
Dummy_1
Dummy_2
Dummy_Wasweissich
Bzgl. dem konkret gefragten (sofern ich's verstanden habe) gibt es:
$NAME
$EVENT (dann halt mit split das raussuchen was du willst)
$EVTPART0
$EVTPART1
etc.
Eventuell erst mal statt gleich den Befehl zu schreiben erst mal die einzelnen genannten Variablen loggen und schauen welche passt...
Log(1,"Test: $NAME);
Gruß, Joachim
define ntf_Test1 notify Dummy1:on.* {my $dummyName = "Fritz"; fhem("setreading $dummyName [Dummy1:STATE]_".sprintf("%04d%02d%02d_%02d%02d%02d",$year,$month,$mday,$hour,$min,$sec)." [Dummy2:STATE]")}
was in die Variable $dummyName kommt, kannst Du selbst entscheiden.
@betateilchen: Dein Ansatz trifft es sehr gut, danke schonmal. Allerdings soll für die Variable statt "Fritz" der Status (STATE) eines Dummy benutzt werden.
Sozusagen:
define ntf_Test1 notify Dummy1:on.* {my $dummyName = "[Dummy3:STATE]"; fhem("setreading $dummyName [Dummy1:STATE]_".sprintf("%04d%02d%02d_%02d%02d%02d",$year,$month,$mday,$hour,$min,$sec)." [Dummy2:STATE]")}
Das klappt aber nicht. Wie stelle ich das richtig an (Syntax)?
Danke auch allen anderen.
Stephan
Du musst perl Syntax beachten, nicht dieses beschissene FHEM Gefrickel mit den verdammten eckigen Klammern...
define ntf_Test1 notify Dummy1:on.* {my $dummyName = Value("Dummy3"); fhem("setreading $dummyName [Dummy1:STATE]_".sprintf("%04d%02d%02d_%02d%02d%02d",$year,$month,$mday,$hour,$min,$sec)." [Dummy2:STATE]")}
Genau das wars, vielen Dank für die schnelle Hilfe!!