Guten Morgen,
ich habe mir vor längerem mal ein Skript gebastelt, dass bei geöffneten Fenstern alle 5 Minuten eine Ansage bringt, dass die Fenster geschlossen werden sollen. Funktioniert soweit, auch unter Einbeziehung dass die Ansage nur bei 16 Grad oder Kälter kommt, ich würde aber gerne noch eine Funktion nachrüsten, dass man temporär die Ansage stumm schalten kann.
Betreffen würde es die AT Kommandos, die im Hintergrund gesetzt sind und die ich via list TYPE=at:FILTER=.*.Reminder
bekomme. Ich möchte nun einfach nur bei den Devices, die von dem AT Befehl abgefragt werden, ob die noch geöffnet sind, ein Attribut setzen (z.B. keepQuiet). Ist das gesetzt, wird die Funktion ruhig bleiben die sonst die Sprachausgabe macht. Kann ich "irgendwie" den Befehl list innerhalb der Perl Funktion die ich in 99_myUtils.pm definieren würde, in einer for each Liste durchlaufen?
Mir fehlt gerade der (wahrscheinlich sehr kleine) Denkanstoß wie das ginge. Vielleicht geht es auch vollständig mit einem FHEM Einzeiler das Setzen des Attributes?
Grüße, p7
Okay, Beispiel in der Datei ./FHEM/98_powerMap.pm gefunden:
foreach ( devspec2array("TYPE=$TYPE:FILTER=$ta=$tm") ) {
next if ( $maps{$_} );
if ( $m->{map} ) {
next unless ( keys %{ $m->{map} } );
$maps{$_} = $m;
}
else {
next unless ( keys %{$m} );
$maps{$_}{map} = $m;
}
}
my @listAT=devspec2array("TYPE=at:FILTER=.*.Reminder");
Gerade ungetestet. Sollte aber gehen.