[gelöst] in myutils definierte variable im notify verwenden

Begonnen von dirk.k, 08 März 2020, 17:47:55

Vorheriges Thema - Nächstes Thema

dirk.k

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


KernSani

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
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Otto123

#2
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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

dirk.k

OK, Danke.
Wieder einiges dazugelernt.
Am Einfachsten war hier dann natürlich [a:$NAME:alias]