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
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
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
OK, Danke.
Wieder einiges dazugelernt.
Am Einfachsten war hier dann natürlich [a:$NAME:alias]