Hallo,
ich möchte nicht mehr bei einem Event über den Batteriestatus informiert werden, sondern täglich um 12:00.
Hintergrund ist dass ich verdammt viele Prowl Nachrichten bekomme, wenn die Tochter auf der Fernbedienung sitzt oder dass ich mal vergesse ein Batterie zu wechseln und dann nicht mehr erinnert werde.
Habe schon eine readingsGroup aber wie frage ich die in einem at Befehl ab ?
"{if (ReadingsVal("AZ.Fenster.Geschlossen", "battery", "-1") eq "low")" ... ist für mich kein guter Weg da ich zu viel HM Geräte habe und sich immer was änder, daher möglichst dynamisch über alle .*:[Bb]attery Readings.
Danke für Tips
Dann musst Du wohl mit devspec2array mit allen benötigten Devices durch eine Schleife gehen und dann das Reading [Bb]attery prüfen.
z.B.
foreach my $dev (devspec2array("NAME=$regex"))
{
if (ReadingsNum($dev,"battery","-1") eq "low" || ReadingsNum($dev,"Battery","-1") eq "low")
{
# Benachrichtige mich...
}
}
$regex bitte entsprechend anpassen...
Gruß
Dan
Ich habe eine sub für meine Fenster, die müsste da eigentlich auch passen:
sub statusBatterien() {
my @monitored=devspec2array("[Bb]attery=low");
my $cnt_devs=@monitored;
my $i = 0;
my $msgtext = "";
foreach(@monitored) {
$msgtext .= AttrVal($_,"alias",$_);
if ($i < $cnt_devs - 2) {
$msgtext .= ", ";
}
if ($i == $cnt_devs - 2) {
$msgtext .= " und ";
}
$i++;
}
if ($cnt_devs > 0) {
fhem ("set Pushover msg 'FHEM-WARNUNG' '$msgtext Batterie low'");
#fhem ("set Telegram msg $msgtext Batterie low");
} else {
fhem ("set Pushover msg 'FHEM' 'Alle Batterien okay'");
#fhem ("set Telegram msg Alle Batterien okay");
}
}
Das ganze dann mit einem at um 12 Uhr aufrufen
Ist ungetestet und aus dem Kopf geschrieben.
Perfekt, vielen Dank Mitch !