Hallo
ich habe ein rule set erstellt, dass ich euch mal zur Kommentierung und Verbesserung
vorlegen mag.
Was ist mein Ziel: Ich möchte über einen konkreten Tag ein Helligkeitsprofil erzeugen, dh. ich will
auswerten, wie lange für einen jeweilen Tag ein bestimmter LUX-Wert überschritten wurde.
Hierzu habe ich mir überlegt, ich erzeuge einen Zähler auf Tagesbasis und werte den
LUX-Wert alle 2min dazu aus. Die 2min-Genauigkeit reicht mir, um damit den Rest zu approximieren,
dh. Zählerbetrag * 2min
Hierzu habe ich dann drei Regeln erstellt:
R1: Zurücksetzen des Zählers Var1 kurz nach Mitternacht
R2: Auswerten, ob der Grenzwert überschritten wurde, dazu über die Var2 eine Art Flag 0/1 setzen
R3: Auf 2min-Basis: Falls der Grenzwert überschritten wurde, den Zähler Var1 um 1 hochsetzen
Hier die konkreten Rules
Rule1 on Time#Minute=3 do var1 0 endon
Rule2 on BH1750#Illuminance>15000 do var2 1 endon on BH1750#Illuminance<15001 do var2 0 endon
Rule3 on Time#Minute|2 do if (var2==1) ADD1 1 endif endon
Das Set funktioniert und macht, was es soll, nur glaube ich, es geht eleganter und besser.
Insbesondere wird die R2 (fast) sekündlich ausgeführt, was sicher auch nicht sein müsste und den
den Controller bestimmt unnötig belastet.
Ich freu mich auf Korrekturen und Hinweise
Danke