Hallo zusammen,
ich bin bei der Suche nicht fündig geworden. Vermutlich auch weil ich gar nicht sicher bin was ich suche... :-(
Ich habe ein Gerät welches mir per mqtt seinen Status mitteilt. (Idle, Circulating, Heating, JetsOnly, All)
Nun möchte ich auswerten wie lange ein Status pro Tag/Woche/etc. aktiv war.
Dazu habe ich für jeden Status einen HourCounter erstellt.
Beispiel:
define poolHeatingCounter HourCounter PoolState:heating
Aber: ich habe für die define des HourCounters nur das <pattern_for_ON>
nicht das [<pattern_for_OFF>]
define <name> HourCounter <pattern_for_ON> [<pattern_for_OFF>]
Die Counters zählen zwar die ticks, aber das ergibt alles keinen Sinn. Also es lässt sich daraus nicht auf Zeit/Dauer schließen.
Jetzt meine Frage:
Gibt es ein [<pattern_for_OFF>] für den HourCounter dass der immer "aus" geht wenn das <pattern_for_ON> nicht gegeben ist bzw. der state sich ändert?
ODER:
Kann der HourCounter direkt mehrere Status zählen?
Danke schonmal.
Viele Grüße
Dirk
Hallo Dirk,
hiermit Werte ich ich die tägliche Laufzeit meiner Poolheizung aus:
defmod Poolheizung_H HourCounter Poolheizung_Status:on Poolheizung_Status:off
attr Poolheizung_H alias heutige Betriebstunden Poolheizung
attr Poolheizung_H group Betriebsstunden
attr Poolheizung_H interval 1
attr Poolheizung_H room Pool
attr Poolheizung_H stateFormat Betriebsstunden
attr Poolheizung_H userReadings Betriebsstunden:pulseTimePerDay.* {my $hours=ReadingsNum($NAME,"pulseTimePerDay",0)/3600;; my $h=int($hours);; my $m=int(($hours - $h)*60);; $m="0".$m if ($m=~/^\d$/);; "$h:$m"}
Vielleicht hilft dir das.
Gruß, Sascha