ich habe ein kleines Problem und komme einfach nicht weiter. Ich habe schon einige Einträge darüber gelesen, aber irgendwas mache ich noch falsch. Nun zum Problem.....
Eine Rule schaltet nach Helligkeit X und anderen Faktoren die Dekolichter an. Funktioniert so weit alles gut. Jetzt möchte ich aber einen Counter einbauen, der hochzählt, sobald das Licht einmal geschaltet wurde. Der Counter soll dann am nächsten Morgen um eine Zeit X wieder genullt werden. Die Rule soll also nur einmal ausgeführt werden. Könnt ihr mir hier weiterhelfen?
Hier meine Rule ohne Counter:
Code: Alles auswählen
rule "Wohnzimmer Hue Dekolicht an bei Helligkeit X"
when
Item HmIPHelligkeitssensorWesten1LOWESTILLUMINATION changed
then
var Number nBright = 100 //default
if (HmIPHelligkeitssensorWesten1LOWESTILLUMINATION.state instanceof Number) //Das Item hat einen gültigen Zahlenwert
nBright = (HmIPHelligkeitssensorWesten1LOWESTILLUMINATION.state as Number).intValue //Setze die Variable auf den Wert
//Bedingungen zum schalten....
if (nBright <= 20 && PhilipsHueSchlafzimmerGruppeSwitch.state == OFF && PhilipsHueSchlafzimmerBettGruppeSwitch.state == OFF)
if (now.getHour >= 18 && now.getHour <= 22)
{
Stehlampe3Color.sendCommand(60)
Thread::sleep(2000)
PhilipsHueWohnbereich2LeuchteE27ColorColor.sendCommand(60)
Thread::sleep(2000)
HueLivingColorColor.sendCommand(60)
Thread::sleep(2000)
WohnzimmerStripeColor.sendCommand(60)
Thread::sleep(2000)
Stehlampe1Color.sendCommand(60)
}
end
So habe ich es getestet und komme nicht weiter....erstmal nur zum hochzählen.
Code: Alles auswählen
rule "Wohnzimmer Hue Dekolicht an bei Helligkeit X"
when
Item HmIPHelligkeitssensorWesten1LOWESTILLUMINATION changed
then
var nCount = 1
var Number nBright = 100 //default
if (HmIPHelligkeitssensorWesten1LOWESTILLUMINATION.state instanceof Number) //Das Item hat einen gültigen Zahlenwert
nBright = (HmIPHelligkeitssensorWesten1LOWESTILLUMINATION.state as Number).intValue //Setze die Variable auf den Wert
if (nBright <= 20 && PhilipsHueSchlafzimmerGruppeSwitch.state == OFF && PhilipsHueSchlafzimmerBettGruppeSwitch.state == OFF && nCount < 0)
if (now.getHour >= 18 && now.getHour <= 22)
{
Stehlampe3Color.sendCommand(60)
Thread::sleep(2000)
PhilipsHueWohnbereich2LeuchteE27ColorColor.sendCommand(60)
Thread::sleep(2000)
HueLivingColorColor.sendCommand(60)
Thread::sleep(2000)
WohnzimmerStripeColor.sendCommand(60)
Thread::sleep(2000)
Stehlampe1Color.sendCommand(60)
nCount.postUpdate(+1)
}
end
Hoffe, es passt so weit alles, denn dies ist mein erster Beitrag.

Grüße