Re: Rule - Xmas-Beleuchtung
Verfasst: 29. Jan 2020 23:47
Immer gerne 

Code: Alles auswählen
rule "Xmas-Beleuchtung (Innen) EIN"
when
Time cron "0 30 05 ? 12,1 MON,TUE,WED,THU,FRI" or // 05:30:00 Uhr Montag-Freitag, Dezember und Januar
Time cron "0 00 16 ? 12,1 MON,TUE,WED,THU,FRI" or // 16:00:00 Uhr Montag-Freitag, Dezember und Januar
Time cron "0 00 05 ? 12,1 SAT,SUN" or // 05:00:00 Uhr Samstag + Sonntag, Dezember und Januar
Time cron "0 00 15 ? 12,1 SAT,SUN" // 15:00:00 Uhr Samstag + Sonntag, Dezember und Januar
then
if(now.plusDays(31).getDayOfYear < 38) //1. Dezember + 31 Tage = 1. Januar = 1. Tag... (1. Dezember - 6. Januar = 38 Tage)
Xmas.sendCommand(ON)
end
rule "Xmas-Beleuchtung (Innen) AUS"
when
Time cron "0 59 23 30 11 ?" or // 23:59:00 Uhr 30.11. erster Schaltpunkt AUS
Time cron "0 30 07 ? 12,1 MON,TUE,WED,THU,FRI" or // 07:30:00 Uhr Montag-Freitag, Dezember und Januar
Time cron "0 45 23 ? 12,1 MON,TUE,WED,THU,FRI" or // 23:45:00 Uhr Montag-Freitag, Dezember und Januar
Time cron "0 00 10 ? 12,1 SAT,SUN" or // 10:00:00 Uhr Samstag + Sonntag, Dezember und Januar
Time cron "0 59 23 ? 12,1 SAT,SUN" // 05:00:00 Uhr Samstag + Sonntag, Dezember und Januar
then
if(now.plusDays(31).getDayOfYear < 38) //1. Dezember + 31 Tage = 1. Januar = 1. Tag... (1. Dezember - 6. Januar = 38 Tage)
Xmas.sendCommand(OFF)
end
Code: Alles auswählen
// Schaltet die Weihnachtsbeleuchtung (Aussen) vom 01. Dezember bis 6. Januar
rule "Xmas-Beleuchtung (Aussen) EIN 01.12-06.01"
when
Time cron "0 00 06 ? 12,1 MON,TUE,WED,THU,FRI" or // 06:00:00 Uhr Montag-Freitag, November, Dezember und Januar
Time cron "0 00 06 ? 12,1 SAT,SUN" or // 06:00:00 Uhr Samstag + Sonntag, November, Dezember und Januar
Time cron "0 30 16 ? 12,1 MON,TUE,WED,THU,FRI" or // 16:30:00 Uhr Montag-Freitag, November, Dezember und Januar
Time cron "0 00 16 ? 12,1 SAT,SUN" // 16:00:00 Uhr Samstag + Sonntag, November, Dezember und Januar
then
if(now.plusDays(31).getDayOfYear < 38) //01. Dezember + 31 Tage = 1. Januar = 1. Tag... (01.Dezember - 6. Januar = 38 Tage)
Xmas_Aussen.sendCommand(ON)
end
rule "Xmas-Beleuchtung (Aussen) AUS 01.12-06.01"
when
Time cron "0 30 07 ? 12,1 MON,TUE,WED,THU,FRI" or // 07:30:00 Uhr Montag-Freitag, November, Dezember und Januar
Time cron "0 00 08 ? 12,1 SAT,SUN" or // 08:00:00 Uhr Samstag + Sonntag, November, Dezember und Januar
Time cron "0 30 23 ? 12,1 MON,TUE,WED,THU,FRI" or // 23:30:00 Uhr Montag-Freitag, November, Dezember und Januar
Time cron "0 30 23 ? 12,1 SAT,SUN" or // 23:30:00 Uhr Samstag + Sonntag, November, Dezember und Januar
Time cron "0 30 23 6 1 ?" // 23:30:00 Uhr 06.01. letzter Schaltpunkt AUS
then
if(now.plusDays(31).getDayOfYear < 38) //01. Dezember + 31 Tage = 1. Januar = 1. Tag... (01.Dezember - 6. Januar = 38 Tage)
Xmas_Aussen.sendCommand(OFF)
end
//
//
// Schaltet die Weihnachtsbeleuchtung (Innen) vom 28. November bis 6. Januar
rule "Xmas-Beleuchtung (Innen) EIN 01.12-06.01"
when
Time cron "0 00 06 ? 12,1 MON,TUE,WED,THU,FRI" or // 06:00:00 Uhr Montag-Freitag, Dezember und Januar
Time cron "0 30 15 ? 12,1 MON,TUE,WED,THU,FRI" or // 15:30:00 Uhr Montag-Freitag, Dezember und Januar
Time cron "0 00 08 ? 12,1 SAT,SUN" or // 08:00:00 Uhr Samstag + Sonntag, Dezember und Januar
Time cron "0 03 15 ? 12,1 SAT,SUN" // 15:30:00 Uhr Samstag + Sonntag, Dezember und Januar
then
if(now.plusDays(31).getDayOfYear < 38) //01. Dezember + 31 Tage = 1. Januar = 1. Tag... (01.Dezember - 6. Januar = 38 Tage)
Xmas.sendCommand(ON)
end
rule "Xmas-Beleuchtung (Innen) AUS 01.12-06.01"
when
Time cron "0 30 07 ? 12,1 MON,TUE,WED,THU,FRI" or // 07:30:00 Uhr Montag-Freitag, Dezember und Januar
Time cron "0 30 23 ? 12,1 MON,TUE,WED,THU,FRI" or // 23:30:00 Uhr Montag-Freitag, Dezember und Januar
Time cron "0 30 09 ? 12,1 SAT,SUN" or // 09:30:00 Uhr Samstag + Sonntag, Dezember und Januar
Time cron "0 30 23 ? 12,1 SAT,SUN" // 23:30:00 Uhr Samstag + Sonntag, Dezember und Januar
then
if(now.plusDays(31).getDayOfYear < 38) //01. Dezember + 31 Tage = 1. Januar = 1. Tag... (01.Dezember - 6. Januar = 38 Tage)
Xmas.sendCommand(OFF)
end
//
//
// Schaltet die Weihnachtsbeleuchtung (Kids) vom 28. November bis 6. Januar
rule "Xmas-Beleuchtung (Kids) EIN 01.12-06.01"
when
Time cron "0 30 06 ? 12,1 MON,TUE,WED,THU,FRI" or // 06:30:00 Uhr Montag-Freitag, Dezember und Januar
Time cron "0 30 15 ? 12,1 MON,TUE,WED,THU,FRI" or // 15:30:00 Uhr Montag-Freitag, Dezember und Januar
Time cron "0 30 07 ? 12,1 SAT,SUN" or // 07:30:00 Uhr Samstag + Sonntag, Dezember und Januar
Time cron "0 00 16 ? 12,1 SAT,SUN" // 16:00:00 Uhr Samstag + Sonntag, Dezember und Januar
then
if(now.plusDays(31).getDayOfYear < 38) //01. Dezember + 31 Tage = 1. Januar = 1. Tag... (01.Dezember - 6. Januar = 38 Tage)
Xmas_Kids.sendCommand(ON)
end
rule "Xmas-Beleuchtung (Kids) AUS 01.12-06.01"
when
Time cron "0 30 07 ? 12,1 MON,TUE,WED,THU,FRI" or // 07:30:00 Uhr Montag-Freitag, Dezember und Januar
Time cron "0 00 22 ? 12,1 MON,TUE,WED,THU,FRI" or // 22:00:00 Uhr Montag-Freitag, Dezember und Januar
Time cron "0 00 08 ? 12,1 SAT,SUN" or // 08:00:00 Uhr Samstag + Sonntag, Dezember und Januar
Time cron "0 00 22 ? 12,1 SAT,SUN" // 22:00:00 Uhr Samstag + Sonntag, Dezember und Januar
then
if(now.plusDays(31).getDayOfYear < 38) //01. Dezember + 31 Tage = 1. Januar = 1. Tag... (01.Dezember - 6. Januar = 38 Tage)
Xmas_Kids.sendCommand(OFF)
end
Code: Alles auswählen
var Integer intStAdvent = 0
rule "Berechnung nach Mitternacht"
when
Time cron "5 0 0 * * ?" or
System started
then
val firstAdvent = LocalDate.of(now.getYear,12,25).minusDays(LocalDate.of(now.getYear,12,25).getDayOfWeek.getValue + 21)
intStAdvent = firstAdvent.getDayOfYear
logInfo("holiday","Der erste Advent ist am {}", firstAdvent)
end
rule "Weihnachtslicht ein"
when
Time cron "0 0 6 * * ?" or // morgens 6 Uhr
Time cron "0 30 16 * * ?" // nachmittags 16:30 Uhr
then
if (now.getDayOfYear < 7 || now.getDayOfYear > intStAdvent) {
logDebug("x-mas","Weihnachtsbeleuchtung ein.")
NOutBalkonSteckdose.sendCommand(ON)
}
end
rule "Weihnachtslicht aus"
when
Time cron "0 0 9 * * ?" or // morgens 9 Uhr
Time cron "0 30 22 * * ?" // abends 22:30 Uhr
then
if (now.getDayOfYear < 7 || now.getDayOfYear > intStAdvent) {
logDebug("x-mas","Weihnachtsbeleuchtung aus.")
NOutBalkonSteckdose.sendCommand(OFF)
}
end
Code: Alles auswählen
023-11-30 00:00:05.821 [INFO ] [rg.openhab.core.model.script.holiday] - Der erste Advent ist am 2023-12-03
Code: Alles auswählen
if (now.getDayOfYear < 7 || now.getMonthValue == 12) {
Code: Alles auswählen
if (now.getDayOfYear < 7 || now.getDayOfYear > intStAdvent - 7) {