habe es nicht verstanden $DEVICE $device $NAME Variablen

Begonnen von riker1, 03 Mai 2018, 08:21:54

Vorheriges Thema - Nächstes Thema

riker1

Hi

irgendwie ist es mir unklar  wie ich die Variablen verwenden kann.

habe ein notify mit einem Send Message und möchte die Variablen verwenden.

$NAME, $SELF, $hms, gehen, aber $DEVICE will er nicht, $EVENTS ebenfalls nicht, ( die auch nicht $events, $device)
habe ich Fhem und Perl eben irgendwie vermischt?

Funktioniert:
defmod 1_V_FTK3_open_on notify HM_480AA7.open   {my $alias = AttrVal($NAME,"alias",$NAME);; {fhem("set TR_BOT message Von $SELF -mit FHEM klammer -NAME: $NAME und Event: $EVENT !!-Value: Value($NAME)-!-STATE : ".ReadingsVal("$NAME","state","")."-- ($hms) Uhr ✓ count: ".ReadingsVal("$NAME","trigger_cnt","")."!!ALIAS $alias!") }}

Funktioniert nicht :
defmod 1_V_FTK3_open_on notify HM_480AA7.open   {my $alias = AttrVal($NAME,"alias",$NAME);; {fhem("set TR_BOT message Von $SELF -mit FHEM klammer -NAME: $NAME und Event: $EVENT !!-Value: Value($NAME)-!-STATE : ".ReadingsVal("$NAME","state","")."-- ($hms) Uhr ✓ count: ".ReadingsVal("$NAME","trigger_cnt","")."!!ALIAS $alias!  --$DEVICE   ") }}

Fehler: Global symbol "$DEVICE" requires explicit package name (did you forget to declare "my $DEVICE"?) at (eval 1771402) line 1

Danke für die Klärung
Thomas
FHEM    5.26.1 Ubuntu 18, FHEM    5.26.1 RPI 3 , Actoren: IT ,Tasmota, ESPEasy,
MAX CUBE, MAX HT, MAX WT, Selbstbau nanoCULs, FS 20,Tasmota, Homematic, FTK, SW. DIM, Smoke,KODI,Squeezebox

CoolTux

$DEVICE und $EVENTS sind auch keine FHEM Variablen.
$EVENT ist noch eine, $DEVICE aber nicht. Das heißt $NAME
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

riker1

Zitat von: CoolTux am 03 Mai 2018, 09:12:14
$DEVICE und $EVENTS sind auch keine FHEM Variablen.
$EVENT ist noch eine, $DEVICE aber nicht. Das heißt $NAME

Hi

ok, danke, dachte wenn ich die dazugehörigen perl variablen nutze müsste es gehen: $device, $events, geht aber auch nicht.
FHEM    5.26.1 Ubuntu 18, FHEM    5.26.1 RPI 3 , Actoren: IT ,Tasmota, ESPEasy,
MAX CUBE, MAX HT, MAX WT, Selbstbau nanoCULs, FS 20,Tasmota, Homematic, FTK, SW. DIM, Smoke,KODI,Squeezebox

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

riker1

FHEM    5.26.1 Ubuntu 18, FHEM    5.26.1 RPI 3 , Actoren: IT ,Tasmota, ESPEasy,
MAX CUBE, MAX HT, MAX WT, Selbstbau nanoCULs, FS 20,Tasmota, Homematic, FTK, SW. DIM, Smoke,KODI,Squeezebox

amenomade

Man muss nur lesen.

Zitat von: CommandRef/DOIFIn der Bedingung und im Ausführungsteil werden die Schlüsselwörter $SELF durch den eigenen Namen des DOIF-Moduls, $DEVICE durch das aktuelle Device, $EVENT durch die passende Eventzeile, $EVENTS kommagetrennt durch alle Eventzeilen des Triggers ersetzt.

Entsprechend können Perl-Variablen in der DOIF-Bedingung ausgewertet werden, sie werden in Kleinbuchstaben geschrieben. Sie lauten: $device, $event, $events

Zitat von: CommandRef/notifyIn 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
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

riker1

Danke für den Hinweis,

hatte ich zwar gelesen, aber mangels perl Kentnisse nicht eindeutig verstanden und nicht nur auf DOIF bezogen.

Nun klar
FHEM    5.26.1 Ubuntu 18, FHEM    5.26.1 RPI 3 , Actoren: IT ,Tasmota, ESPEasy,
MAX CUBE, MAX HT, MAX WT, Selbstbau nanoCULs, FS 20,Tasmota, Homematic, FTK, SW. DIM, Smoke,KODI,Squeezebox