FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: stewen am 29 August 2017, 14:03:44

Titel: [gelöst] Dynamischer Dummyname in Notify
Beitrag von: stewen am 29 August 2017, 14:03:44
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
Titel: Antw:Dynamischer Dummyname in Notify
Beitrag von: nils_ am 29 August 2017, 14:26:23
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
Titel: Antw:Dynamischer Dummyname in Notify
Beitrag von: rabehd am 29 August 2017, 14:29:15
Variable ??
Titel: Antw:Dynamischer Dummyname in Notify
Beitrag von: MadMax-FHEM am 29 August 2017, 14:42:57
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
Titel: Antw:Dynamischer Dummyname in Notify
Beitrag von: betateilchen am 29 August 2017, 14:48:57


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.

Titel: Antw:Dynamischer Dummyname in Notify
Beitrag von: stewen am 29 August 2017, 17:19:35
@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
Titel: Antw:Dynamischer Dummyname in Notify
Beitrag von: betateilchen am 29 August 2017, 17:48:13
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]")}

Titel: Antw:Dynamischer Dummyname in Notify
Beitrag von: stewen am 29 August 2017, 20:09:20
Genau das wars, vielen Dank für die schnelle Hilfe!!