[gelöst] Device ermitteln welches das Event gefeuert hat

Begonnen von Goofy180173, 11 Juli 2018, 16:53:37

Vorheriges Thema - Nächstes Thema

Goofy180173

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?

DeeSPe

Wie du schon richtig vermutet hast, ist die Variable $NAME dafür da.

Geuß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Goofy180173


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

Allerdings liefert mir $NAME in meinem Beispiel "Device: fhemicon.png"
Damit kann ich nichts anfangen:-(
Was mach ich falsch?

betateilchen

Wenn man nicht weiß, was perl interne Variablen wie $_ bedeuten, sollte man sie nicht verwenden.


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

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Goofy180173

Danke für den Hinweis.
In der Zwischenzeit weis ich es.
$_ ist der Itterator.
Aber jeder fängt irgendwann einmal mit perl an ;)

betateilchen

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...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Goofy180173

ich hab $_ mit @_ verwechselt :(
Passiert mir aber sicher nicht wieder

betateilchen

und weißt Du denn wenigstens, was @_ bedeutet?  8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

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

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

CoolTux

Ich weiß. Hoffe es bleibt beim Threadersteller hängen. Einen schönen Abend wünsche ich.
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