FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: AnBad am 11 Oktober 2022, 19:38:26

Titel: [gelöst]"allgemeine" notify und Name des Auslösedevice Perl mitteilen?
Beitrag von: AnBad am 11 Oktober 2022, 19:38:26
Hallo,
ich habe eine Notify, welche auf mehrer Fensterkontakte reagiert und eine Sub() aufruft.

Jetzt möchte ich der Sub() auch den Namen des auslösenden Fensterkontakt mitteilen. Doch leider funktioniert die folgende Codezeile nicht. Wie kann man das lösen?

Danke und Euch einen schönen Abend!!

fen_.*:.* {sub_switchList_V21_11_21("$DEVICE????", "$EVENT", "$SELF")}
Titel: Antw:"allgemeine" DOIF und Name des Auslösedevice Perl mitteilen?
Beitrag von: Damian am 11 Oktober 2022, 21:18:31
Zitat von: AnBad am 11 Oktober 2022, 19:38:26
Hallo,
ich habe eine DOIF, welche auf mehrer Fensterkontakte reagiert und eine Sub() aufruft.

Jetzt möchte ich der Sub() auch den Namen des auslösenden Fensterkontakt mitteilen. Doch leider funktioniert die folgende Codezeile nicht. Wie kann man das lösen?

Danke und Euch einen schönen Abend!!

fen_.*:.* {sub_switchList_V21_11_21("$DEVICE????", "$EVENT", "$SELF")}

Wie sieht die ganze Definition aus? Das sieht mir eher nach notify-Syntax aus.
Titel: Antw:"allgemeine" DOIF und Name des Auslösedevice Perl mitteilen?
Beitrag von: AnBad am 11 Oktober 2022, 22:04:47
Oh ja, sorry, ist ein notify. Da hab ich ein Fehler gemacht. Ich war irgenwie irr
Titel: Antw:"allgemeine" notify und Name des Auslösedevice Perl mitteilen?
Beitrag von: MadMax-FHEM am 11 Oktober 2022, 22:57:49
Ich denke was du suchst ist $NAME.

Ich habe das z.B. so:


.*:battery.* {my_CalculateBatteryStatus($NAME, $EVENT)}


oder


ECHO_.*:currentArtist:.* { my_AutoSkipArtist($NAME, $EVENT) }


oder


Wandthermostat_.*_Climate:measured-temp.* {my_CheckOpenWindows($NAME, $EVTPART1)}


usw.

Steht aber auch in der commandref: https://fhem.de/commandref_DE.html#notify

Zitat von: https://fhem.de/commandref_DE.html#notify
In der Anweisung von Notify kann das auslösende Ereignis (Event) genutzt werden:

    Die Anweisung $EVENT wird das komplette Ereignis (Event) beinhalten, z.B. measured-temp: 21.7 (Celsius)
    $EVTPART0,$EVTPART1,$EVTPART2,etc enthalten die durch Leerzeichen getrennten Teile des Events der Reihe nach (im Beispiel also $EVTPART0="measured-temp:", $EVTPART1="21.7", $EVTPART2="(Celsius)".
    Diese Daten sind verfügbar als lokale Variablen in Perl, als Umgebungs-Variablen für Shell-Scripts, und werden als Text ausgetauscht in FHEM-Kommandos.
    $NAME und $TYPE enthalten den Namen bzw. Typ des Ereignis auslösenden Gerätes, z.B. myFht und FHT
    $SELF enthaelt den Namen dieser notify

Gruß, Joachim
Titel: Antw:"allgemeine" notify und Name des Auslösedevice Perl mitteilen?
Beitrag von: AnBad am 15 Oktober 2022, 20:14:57
Zitat von: MadMax-FHEM am 11 Oktober 2022, 22:57:49
Ich denke was du suchst ist $NAME.

Ja, vielen Dank. Funktioniert!!
Schönen Abend!!