Hallo,
ich möchte im Log eine Info finden, wenn ein Device eine Batteriewarnung ausgibt. Eine Lösung habe ich bereits gefunden:
define BatteriewarnungNotify notify .*:[Bb]attery:.* {\
if(("$EVENT" !~ m/ok/) && (Value("vBatWarningNOTSent") eq "on")) {\
my $deviceAlias = ReadingsVal($NAME,"alias",$NAME);;\
Log 1, "BATTERIEWARNUNG: $NAME = $EVENT $deviceAlias";;\
fhem "set vBatWarningNOTSent off";;\
fhem "delete Bat_Alert_on";;\
fhem "define Bat_Alert_on at +24:00:00 set vBatWarningNOTSent on";;\
}\
}
So bekomme ich Einträge, wenn ein Gerät ein Batterieproblem hat. Die Meldungen werden nur alle 24h einmal generiert. Auch wenn ggf. zwischendurch weitere Beräte ignoriert werden, ist das so erst einmal ok. Allerdings habe ich ein Problem, dass leider nciht die Alias-Namen angezeigt werden, sodern der richtige Name.
Beispiel:
define HM_4CEE98 CUL_HM 4CEE98
attr HM_4CEE98 IODev CUL_1
attr HM_4CEE98 actStatus alive
attr HM_4CEE98 alias Schlafzimmer
attr HM_4CEE98 autoReadReg 4_reqStatus
attr HM_4CEE98 subType thermostat
...
Dieses Gerät generiert folgenden Eintrag:
BATTERIEWARNUNG: HM_4CEE98 = battery: low
Warum erscheint der Alias-Name (Schlafzimmer) nicht?
Statt ReadingsVal AttrVal nehmen...
Weil der alias kein Reading sondern eben ein Attribut ist...
Kurz, da nur Handy grad...
Gruß, Joachim
Funzt! Super, Danke.