Hallo,
ich möchte gerne eine readingsGroup mit allen dead devices des ActionDetectors haben. Dies ist meines Wissens mit dem readingsGRoup Modul nach nur mit einer Perl-Funktion realisierbar, die alle dead devices zurückgibt. Nur müsste ich dazu alle readings (status_*) des ActionDetector devices auslesen. Jemand eine Idee wie das geht?
fhem('list Activity=dead')
du kannst in einer readingsGroup die devices nach jedem reading, internal oder attribut filtern ohne das es dazu perl code braucht.
wenn du möchtest das sich die liste auch per longpoll aktualisiert musst du alle devices includen die potentiell in frage kommen und mit etwas perl code in valueFormat alle aussortieren die aktuell nicht dead sind.
das geht auch dynamisch zum umschalten. im wiki gibt es beispiele wie das prinzipiell funktioniert.
gruss
andre
Direkt mit readingsGroup wäre natürlich klasse, aber ich wüsste nicht, wie man mit readingsGroup alle readings (status_*) eines devices (ActionDetector) filtern kann, die als Value "dead" haben. Habe es schon mit
define rg_dead readingsGroup ActionDetector:FILTER=status_.*=dead
probiert, aber das ging nicht.
define rg_dead readingsGroup .*:Activity:FILTER=Activity=dead
geht nicht.
Daher der Ansatz mit Perl.
Danke, mit dem list-Befehl und entsprechenden Perl code als devspec in der readingsgroup müsste es gehen...
habe es:
alle Activity readings mit
define rg_dead readingsGroup .*:Activity
dann mit valueFormat filtern:
attr rg_dead valueFormat { return $VALUE if ( $VALUE ne "alive" );; return undef;; }
und die filter variante (aber ohne longpoll aktualisierung): der filter gehört hinter das device. nicht hinter das reading:.*:FILTER=Activity=dead:Activity
gruss
andre