Re: Anwesenheitssimulation durch zufälliges Schalten der Lichter
Verfasst: 28. Aug 2021 23:19
Du schreibst das immer alles so leicht.
Ich verzweifel da immer halb dran...
Ich habe das nun mal etwas umgebaut (mit sehr vielen Versuchen
)
Aktuell sieht es so aus:
Also es wird zufällig eine Lampe eingeschaltet, oder auch nicht.
Und dann wird das ganze nach zufälliger Zeit wieder ausgeschaltet...
Mit dem Ursprünglichen Script hatte ich immer ""zufällig""
viele Lampen an, und zum Schluss wurden sie auch nicht ausgeschaltet...
Time cron und ""5,15"" wird noch angepasst, nur so kann ich das besser begutachten, Läuft noch im Testmodus...
Grundsätzlich ist es nun eigentlich wie ich es mir vorgestellt habe...
Wenn du da Verbesserungsvorschläge hast, Ich versuche sie zu verstehn
und umzusetzen...

Ich verzweifel da immer halb dran...
Ich habe das nun mal etwas umgebaut (mit sehr vielen Versuchen

Aktuell sieht es so aus:
Code: Alles auswählen
var Timer RandomLightsTimer = null
val java.util.concurrent.ThreadLocalRandom random = (new java.util.concurrent.ThreadLocalRandom)
rule "Urlaubsmodus / Licht zufällig einschalten"
when
Time cron "0 */1 0-23 * * ?"
then
if((Abwesend.state != ON))
return;
if((new java.util.Random()).nextInt(2) == 1)
return;
var randomLights = random.nextInt(zufall.allMembers.size)
zufall.allMembers.get(randomLights).sendCommand(ON)
var Integer randomTime = random.nextInt(5,15)
logInfo("randomLight","Timer: {} Sekunden.", randomTime)
RandomLightsTimer = createTimer(now.plusSeconds(randomTime), [ |
zufall.allMembers.filter[i|i.getStateAs(OnOffType)!=OFF].forEach[j|j.sendCommand(OFF)]
])
end
Und dann wird das ganze nach zufälliger Zeit wieder ausgeschaltet...
Mit dem Ursprünglichen Script hatte ich immer ""zufällig""

Time cron und ""5,15"" wird noch angepasst, nur so kann ich das besser begutachten, Läuft noch im Testmodus...
Grundsätzlich ist es nun eigentlich wie ich es mir vorgestellt habe...
Wenn du da Verbesserungsvorschläge hast, Ich versuche sie zu verstehn
