FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Goofy180173 am 11 Juli 2018, 16:53:37

Titel: [gelöst] Device ermitteln welches das Event gefeuert hat
Beitrag von: Goofy180173 am 11 Juli 2018, 16:53:37
Ich habe ein Notify auf mehreren devices und würde gerne in meiner perl Funktion wissen welches device das Event getriggert hat

define tuwas.notify notify (test1.on|test2.on) {tuwas($NAME)}


wenn ich in der Perl Funktion print ("Device", $_, "\n"); mache bekomme ich als ausgabe "fhemicon.png"
Ich hab aufs Icon geklickt:-)
Erwartet hätte ich mir aber test1 oder test2
Ich hab auch schon $EVENT versucht. Da bekomme ich als ausgabe "on"
Was grundsätzlich ja ok ist. Erwartet hätte ich mir allerdings die Ausgabe die ich im Log erhalte.
Was mach ich falsch?
Titel: Antw:Device ermitteln welches das Event gefeuert hat
Beitrag von: DeeSPe am 11 Juli 2018, 17:22:26
Wie du schon richtig vermutet hast, ist die Variable $NAME dafür da.

Geuß
Dan
Titel: Antw:Device ermitteln welches das Event gefeuert hat
Beitrag von: Goofy180173 am 11 Juli 2018, 17:27:07

Sub
tuwas($) {
  print("Device: ", $_, "/n");
}

Allerdings liefert mir $NAME in meinem Beispiel "Device: fhemicon.png"
Damit kann ich nichts anfangen:-(
Was mach ich falsch?
Titel: Antw:Device ermitteln welches das Event gefeuert hat
Beitrag von: betateilchen am 11 Juli 2018, 17:54:41
Wenn man nicht weiß, was perl interne Variablen wie $_ bedeuten, sollte man sie nicht verwenden.


sub tuwas($) {
my ($v) = @_;
Debug "Device: $v";
}

Titel: Antw:Device ermitteln welches das Event gefeuert hat
Beitrag von: Goofy180173 am 11 Juli 2018, 19:27:12
Danke für den Hinweis.
In der Zwischenzeit weis ich es.
$_ ist der Itterator.
Aber jeder fängt irgendwann einmal mit perl an ;)
Titel: Antw:Device ermitteln welches das Event gefeuert hat
Beitrag von: betateilchen am 11 Juli 2018, 19:28:04
Zitat von: Goofy180173 am 11 Juli 2018, 19:27:12
Aber jeder fängt irgendwann einmal mit perl an ;)

ja schon, aber doch bitte nicht mit dessen internen Variablen...
Titel: Antw:[gelöst] Device ermitteln welches das Event gefeuert hat
Beitrag von: Goofy180173 am 11 Juli 2018, 19:30:15
ich hab $_ mit @_ verwechselt :(
Passiert mir aber sicher nicht wieder
Titel: Antw:[gelöst] Device ermitteln welches das Event gefeuert hat
Beitrag von: betateilchen am 11 Juli 2018, 19:31:44
und weißt Du denn wenigstens, was @_ bedeutet?  8)
Titel: Antw:[gelöst] Device ermitteln welches das Event gefeuert hat
Beitrag von: CoolTux am 11 Juli 2018, 19:53:06
http://perl-seiten.privat.t-online.de/html/perl_spevar.html
Titel: Antw:[gelöst] Device ermitteln welches das Event gefeuert hat
Beitrag von: betateilchen am 11 Juli 2018, 20:00:06
Spaßbremse...
Titel: Antw:[gelöst] Device ermitteln welches das Event gefeuert hat
Beitrag von: CoolTux am 11 Juli 2018, 20:02:09
Ich weiß. Hoffe es bleibt beim Threadersteller hängen. Einen schönen Abend wünsche ich.