Anzahl der Readings mit "on"

Begonnen von DerFrickler, 17 Oktober 2015, 18:22:46

Vorheriges Thema - Nächstes Thema

DerFrickler

Hallo zusammen,

ich bin gerade am experimentieren wie ich herausfinden kann wieviele Geräte aktuell am Heizen sind.

Dazu habe ich mir einen dummy mit dem vielversprechenden Namen "test" erstellt. Dazu ein notify welches auf ValvePosition prüft und mir dann den device Namen mit dem Value on oder off ins dummy schreibt.

D.h., ich habe eine Liste (in Form von Readings) die mir zu jedem Heizkörper-Thermostat anzeigt ob es geöffnet ist ("on") oder nicht ("off"). Wie kann ich jetzt die Anzahl der Heizkörper-Thermostate im Status "on" ermitteln?

Gruß!

rapster

#1
Da musste irgendwas in der Form verwenden:

{ my $c=0;; for(keys %{$defs{test}->{READINGS}}){ $c++ if($defs{test}->{READINGS}->{$_}->{VAL} eq 'on') } return $c }

Das gibt dir die Anzahl der readings aus welche "on" sind. Gute Frage ob das vll. auch einfacher geht...

Gruß
  Claudiu

DerFrickler

Hallo und Danke! Der Ansatz schaut doch durchaus solide aus. Das %{defs{test} habe ich dann nur noch durch ein ${defs{test} ersetzt und dann hat es auch geklappt. Prima!

Gruß!

rapster

Ups, FAST richtig %{$defs.. muss es lauten, immer dieses schnell mal hingetippt ;)

Gruß
  Claudiu