Meine Items:
Code: Alles auswählen
//RX-A2050
Number Yamaha_RXA2050_BetriebsstundenZaehler "Betriebsstunden [%d]" <receiver>
String Yamaha_RXA2050_Betriebsstunden "Betriebsstunden RX-A2050 [%s Stunden]" <receiver>
Code: Alles auswählen
rule "RX-A2050 Bertriebsstunden"
when
Time cron "0/1 * * * * ?"
then
if(Yamaha_RXA2050_Power.state == ON){
var Number Zaehler_RX_A2050 = Yamaha_RXA2050_BetriebsstundenZaehler.state as DecimalType
Zaehler_RX_A2050=Zaehler_RX_A2050+1
Yamaha_RXA2050_BetriebsstundenZaehler.postUpdate(Zaehler_RX_A2050)
}
end
Code: Alles auswählen
rule "Aktualisiere_Betriebsstunden_Anzeige"
when
Item Yamaha_RXA2050_BetriebsstundenZaehler changed
then
var String h
var Number H
var String m
var Number M
var String s
var Number S
/*berechne Stunden */
S = Yamaha_RXA2050_BetriebsstundenZaehler.state as Number //Erfassen der gezählten Ticks als Nummer
H = (S/3600).intValue //Errechnen der Gesamtstunden
h = H.toString
S = S-H*3600 //Errechne die Sekunden
/* berechne Minuten */
M = (S/60).intValue //Errechne die Minuten
if (M <=9) m = "0" + M.toString //Wenn Minuten <=9, dann füge "0" zum String hinzu
else m = M.toString //Direkte Ausgabe zum String für Minuten
/* berechne sekunden */
S = S-M*60 //Errechne Sekunden
if (S <=9) s = "0" + S.toString //Wenn Sekunden <=9, dann füger "0" zum String hinzu
else s = S.toString //Direkte Ausgabe zum String für Sekunden
Yamaha_RXA2050_Betriebsstunden.postUpdate(h+":"+m+":"+s)
end
Könnt ihr mir dabei helfen? Die Umrechnung auf Tage ist ja kein Problem.
Code: Alles auswählen
...
var String d
var Number D
D = ((Yamaha_RXA2050_BetriebsstundenZaehler.state as Number)/86400).intValue //Errechnen der Ticks(Sekunden) in Tage
d = D.toString //Direkte Ausgabe zum String für Tage
...
Yamaha_RXA2050_Betriebsstunden.postUpdate(d+" Tage "+h+":"+m+":"+s)
Eventuell kennt ihr auch einen einfacheren Code und ich mach es nur unnötig kompliziert.