ich habe meine Wetterstation ausgetauscht und versuche nun alle verwendeten/benötigten Items umzustellen.
Leider habe ich keinen fertigen Channel für die täglichen Regenstunden.
Kein Problem... dachte ich

Ich versuche seit Stunden eine Rule zu schreiben die die Zeit in Sekunden erfasst die das Item "HomeMatic_Regensensor_Regen_ja_nein" täglich "ON" war.
Um Mitternacht soll der Zähler dann (auch wenn es grade regnet) zurück gesetzt werden.
Basierend auf diesem post viewtopic.php?t=7411
und diesem post viewtopic.php?t=3170
habe ich schon viel ausprobiert ...aber

Nun bin ich zu diesem Ergebnis gekommen aber es läuft etwas holprig.
Code: Alles auswählen
rule "Zeitpunkt Regenbeginn"
when
//Time cron "*/30 * * * * ?" or
Item HomeMatic_Regensensor_Regen_ja_nein changed to ON
then
Regen_Beginn.postUpdate(now.toEpochSecond)
if(RegenSekunden.state == NULL)
{
Regendauer_vor_Schauer.postUpdate(0)
RegenSekunden.postUpdate(0)
}
else
{
Regendauer_vor_Schauer.postUpdate(RegenSekunden.state)
}
end
rule "tägliche Regensekunden"
when
Time cron "*/10 * * * * ?"
then
if(HomeMatic_Regensensor_Regen_ja_nein.state == ON)
{
val Start = (Regen_Beginn.state as DecimalType)
val Now = now.toEpochSecond
val Diff = Now - Start
Regenschauer_Dauer.postUpdate(Diff)
RegenSekunden.postUpdate(Regendauer_vor_Schauer.state as DecimalType + Regenschauer_Dauer.state as DecimalType)
}
end
rule "Regensekunden zurück setzen"
when
Time cron "5 0 0 * * ?"
then
RegenSekunden.postUpdate(0)
end
Kann ich hier noch was optimieren oder gibt es in zwischen einen fertigen Baustein für so etwas?
Danke und Gruß
Florian