FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: dirk.k am 08 März 2020, 17:47:55

Titel: [gelöst] in myutils definierte variable im notify verwenden
Beitrag von: dirk.k am 08 März 2020, 17:47:55
Hallo zusammen,
ich möchte einen ein myutils gebildeten Wert in einem Notify verwenden. Klappt aber nicht...
Es soll in einer Benachrichtigung der Alias verwendet werden falls vorhanden, sonst der DeviceName

myutils:
sub aliasORname($)
{
   my $alias;
   my $device=$_[0];
   $alias = AttrVal($device,"alias",$device);
   return $alias;
}

Notify:
defmod notify_low_batt notify .*:[Bb]atterieStatus:.* set teleBot message BATTERY STATUS CHANGED $NAME $EVENT Gerät:  {$aliasORname($NAME)}

In der Benachrichtigung steht ....Gerät:{$aliasORname(MAX_TA_xxxx)}

geht das, was ich vorhabe und wie müsste das aussehen?
Danke

Titel: Antw:problem: in myutils definierte variable im notify verwenden
Beitrag von: KernSani am 08 März 2020, 18:18:57
Beim Subaufruf darf kein $ vorangestellt werden.. Aber wozu brauchst du die Sub? Du kannst doch die AttrVal-Abfrage direkt im notify machen...
Und in Zukunft bitte Codetags verwenden (das # über den Emojis)



Gesendet von iPhone mit Tapatalk
Titel: Antw:problem: in myutils definierte variable im notify verwenden
Beitrag von: Otto123 am 08 März 2020, 18:27:57
Du musst auch noch zusätzlich klammern bei set magic -> https://fhem.de/commandref_DE.html#set
Zitat{(perlExpression)} mit dem Ergebnis der perlExpression. $DEV wird dabei mit dem Namen des vom set betroffenen Gerätes ersetzt.
Diese Ersetzungen sind unter dem Namen "set magic" bekannt.
defmod notify_low_batt notify .*:[Bb]atterieStatus:.* set teleBot message BATTERY STATUS CHANGED $NAME $EVENT Gerät:  {(aliasORname($NAME))}

Oder einfach [a:$NAME:alias] ohne Sub, Perl und Klammern.

Gruß Otto
Titel: Antw:problem: in myutils definierte variable im notify verwenden
Beitrag von: dirk.k am 08 März 2020, 18:40:01
OK, Danke.
Wieder einiges dazugelernt.
Am Einfachsten war hier dann natürlich [a:$NAME:alias]