[gelöst] Perl-Funktion, um alle readings eines devices zu erhalten?

Begonnen von FhemPiUser, 21 August 2016, 10:46:11

Vorheriges Thema - Nächstes Thema

FhemPiUser

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?


betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

FhemPiUser

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...


FhemPiUser

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;; }

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968