Hallo zusammen,
ich habe derzeit eine einfache Anwesendheitssimulation, die zu bestimmten Zeiten mehr als rudimentär einige Lichter mit Timer schaltet.
Dies wollte ich nun optimieren, indem ich die Ereignisse vergangener Tage "abspule"
Meine derzeitige Regel lautet (Als Ausschnitt)
Dies funktioniert, finde ich aber umständlich.
Frage: Wie bekomme ich denn in einer Rule hin, dass zu bestimmten Zeiten die unterschiedlichen Aktionen gefahren werden.
z.B.
Aber, dass geht so natürlich nicht :-(
VG
Jörg
ich habe derzeit eine einfache Anwesendheitssimulation, die zu bestimmten Zeiten mehr als rudimentär einige Lichter mit Timer schaltet.
Dies wollte ich nun optimieren, indem ich die Ereignisse vergangener Tage "abspule"
Meine derzeitige Regel lautet (Als Ausschnitt)
Code:
rule PresenceSimulator
when
Time cron "0 31 22 ? * MON" or
Time cron "0 34 22 ? * TUE" or
Time cron "0 02 23 ? * WED" or
Time cron "0 17 22 ? * THU" or
Time cron "0 58 22 ? * FRI" or
Time cron "0 27 23 ? * SAT" or
Time cron "0 09 22 ? * SUN"
then
if (Absence.state == ON){
var int Wochentag = now.getDayOfWeek
pushNotification("Info", "Anwesenheitssimulation Tag: " + Wochentag)
switch (Wochentag) {
case (1): {
pushNotification("Info", "Monday Anwesenheitssimulation !!")
Lampe_OG.sendCommand(ON)
timer1 = createTimer(now.plusSeconds(24)) [|
Steckd_EG_Flur.sendCommand(OFF)
Lampe_EG_Deko.sendCommand(OFF)
timer2 = createTimer(now.plusSeconds(17)) [|
Lampe_OG.sendCommand(OFF)
]
Lampe_Haustuere.sendCommand(OFF)
]
}
case (2): {
pushNotification("Info", "Tuesday Anwesenheitssimulation !!")
........
Frage: Wie bekomme ich denn in einer Rule hin, dass zu bestimmten Zeiten die unterschiedlichen Aktionen gefahren werden.
z.B.
Code:
rule PresenceSimulator
when
Absence.state == ON
then
var int Wochentag = now.getDayOfWeek
pushNotification("Info", "Anwesenheitssimulation Tag: " + Wochentag)
switch (Wochentag) {
case (1): {
pushNotification("Info", "Monday Anwesenheitssimulation !!")
IF timeCron (xyz) then Lampe_OG.sendCommand(ON)
If timeCron(dfv) then Steckd_EG_Flur.sendCommand(OFF)
If timeCron(dfv) then Lampe_OG.sendCommand(OFF)
usw
case (2): {
pushNotification("Info", "Tuesday Anwesenheitssimulation !!")
........
VG
Jörg


<= Was alles mit guten Programmierkenntnissen machbar ist 



Kommentar