Hi community,
I will switch over from OH 2.5.11 to 3.0.0 but because many important systems in my house are fully automated via OH I fear if something wents wrong I have no time to fixe it cause my wife will kill me.
Iāve read the documentations and I think most of my rules will work without problems.
But I have four rules (three are quite similar) that ned to be changed because of joda/java time and I canāt find a solution in this forum yet. So I need your help.
Thanks a lot!
Here is code 1:
var Timer verdunklungs_wz_timer_zwei = null
var Timer verdunklungstimer_wz_ende = null
var Timer verdunklungstimer_wz_start = null
rule "Ende der Verdunklung im WZ unter der Woche - prĆ¼fen"
when
Time cron "0 0/1 * * * ?"
then
var verdunklungsendeATStunde_WZ = (VerdunklungsEndeATZeitStunde_WZ.state as DecimalType).intValue
var verdunklungsendeATMinute_WZ = (VerdunklungsEndeATZeitMinute_WZ.state as DecimalType).intValue
if ((((now.getHourOfDay.intValue == verdunklungsendeATStunde_WZ) && (now.getMinuteOfHour.intValue >= verdunklungsendeATMinute_WZ)) || (now.getHourOfDay.intValue > verdunklungsendeATStunde_WZ))
&& (now.getDayOfWeek == 1 || now.getDayOfWeek == 2 || now.getDayOfWeek == 3 || now.getDayOfWeek == 4 || now.getDayOfWeek == 5) && (Komplett_Verdunkelung_WZ.state==ON)
&& (now.getHourOfDay() >= 1 && now.getHourOfDay() <= 11) && (Zeitsteuerung_Ende_WZ.state==ON)) {
Komplett_Verdunkelung_WZ.sendCommand(OFF)
}
end
rule "Ende der Verdunklung im WZ unter der Woche - Aenderung der Konfiguration"
when
Item VerdunklungsEndeATZeitStunde_WZ received update or
Item VerdunklungsEndeATZeitMinute_WZ received update
then
var verdunklungsendeATStunde_WZ = VerdunklungsEndeATZeitStunde_WZ.state as DecimalType
var verdunklungsendeATMinute_WZ = VerdunklungsEndeATZeitMinute_WZ.state as DecimalType
var String verdunklungsendeatText_WZ = ''
if (verdunklungsendeATStunde_WZ.intValue < 10) verdunklungsendeatText_WZ = '0'
verdunklungsendeatText_WZ = verdunklungsendeatText_WZ + verdunklungsendeATStunde_WZ.intValue + ':'
if (verdunklungsendeATMinute_WZ.intValue < 10) verdunklungsendeatText_WZ = verdunklungsendeatText_WZ + '0'
verdunklungsendeatText_WZ = verdunklungsendeatText_WZ + verdunklungsendeATMinute_WZ.intValue
postUpdate(verdunklungsendeATZeitMessage_WZ, verdunklungsendeatText_WZ)
end
rule "Ende der Verdunklung im WZ am Wochenende - prĆ¼fen"
when
Time cron "0 0/1 * * * ?"
then
var verdunklungsendeWEStunde_WZ = (VerdunklungsEndeWEZeitStunde_WZ.state as DecimalType).intValue
var verdunklungsendeWEMinute_WZ = (VerdunklungsEndeWEZeitMinute_WZ.state as DecimalType).intValue
if ((((now.getHourOfDay.intValue == verdunklungsendeWEStunde_WZ) && (now.getMinuteOfHour.intValue >= verdunklungsendeWEMinute_WZ)) || (now.getHourOfDay.intValue > verdunklungsendeWEStunde_WZ))
&& (now.getDayOfWeek == 6 || now.getDayOfWeek == 7) && (Komplett_Verdunkelung_WZ.state==ON)
&& (now.getHourOfDay() >= 1 && now.getHourOfDay() <= 11) && (Zeitsteuerung_Ende_WZ.state==ON)) {
Komplett_Verdunkelung_WZ.sendCommand(OFF)
}
end
rule "Ende der Verdunklung im WZ am Wochenende - Aenderung der Konfiguration"
when
Item VerdunklungsEndeWEZeitStunde_WZ received update or
Item VerdunklungsEndeWEZeitMinute_WZ received update
then
var verdunklungsendeWEStunde_WZ = VerdunklungsEndeWEZeitStunde_WZ.state as DecimalType
var verdunklungsendeWEMinute_WZ = VerdunklungsEndeWEZeitMinute_WZ.state as DecimalType
var String verdunklungsendeweText_WZ = ''
if (verdunklungsendeWEStunde_WZ.intValue < 10) verdunklungsendeweText_WZ = '0'
verdunklungsendeweText_WZ = verdunklungsendeweText_WZ + verdunklungsendeWEStunde_WZ.intValue + ':'
if (verdunklungsendeWEMinute_WZ.intValue < 10) verdunklungsendeweText_WZ = verdunklungsendeweText_WZ + '0'
verdunklungsendeweText_WZ = verdunklungsendeweText_WZ + verdunklungsendeWEMinute_WZ.intValue
postUpdate(verdunklungsendeWEZeitMessage_WZ, verdunklungsendeweText_WZ)
end
rule "Start der Verdunklung im WZ unter der Woche - prĆ¼fen"
when
Time cron "0 0/1 * * * ?"
then
var verdunklungsStartATStunde_WZ = (VerdunklungsStartATZeitStunde_WZ.state as DecimalType).intValue
var verdunklungsStartATMinute_WZ = (VerdunklungsStartATZeitMinute_WZ.state as DecimalType).intValue
if ((((now.getHourOfDay.intValue == verdunklungsStartATStunde_WZ) && (now.getMinuteOfHour.intValue >= verdunklungsStartATMinute_WZ)) || (now.getHourOfDay.intValue > verdunklungsStartATStunde_WZ))
&& (now.getDayOfWeek == 1 || now.getDayOfWeek == 2 || now.getDayOfWeek == 3 || now.getDayOfWeek == 4 || now.getDayOfWeek == 5) && (Komplett_Verdunkelung_WZ.state==OFF)
&& (now.getHourOfDay() >= 13 && now.getHourOfDay() <= 23) && (Zeitsteuerung_Start_WZ.state==ON)) {
Komplett_Verdunkelung_WZ.sendCommand(ON)
}
end
rule "Start der Verdunklung im WZ unter der Woche - Aenderung der Konfiguration"
when
Item VerdunklungsStartATZeitStunde_WZ received update or
Item VerdunklungsStartATZeitMinute_WZ received update
then
var verdunklungsStartATStunde_WZ = VerdunklungsStartATZeitStunde_WZ.state as DecimalType
var verdunklungsStartATMinute_WZ = VerdunklungsStartATZeitMinute_WZ.state as DecimalType
var String verdunklungsStartatText_WZ = ''
if (verdunklungsStartATStunde_WZ.intValue < 10) verdunklungsStartatText_WZ = '0'
verdunklungsStartatText_WZ = verdunklungsStartatText_WZ + verdunklungsStartATStunde_WZ.intValue + ':'
if (verdunklungsStartATMinute_WZ.intValue < 10) verdunklungsStartatText_WZ = verdunklungsStartatText_WZ + '0'
verdunklungsStartatText_WZ = verdunklungsStartatText_WZ + verdunklungsStartATMinute_WZ.intValue
postUpdate(verdunklungsstartATZeitMessage_WZ, verdunklungsStartatText_WZ)
end
rule "Start der Verdunklung im WZ am Wochenende - prĆ¼fen"
when
Time cron "0 0/1 * * * ?"
then
var verdunklungsStartWEStunde_WZ = (VerdunklungsStartWEZeitStunde_WZ.state as DecimalType).intValue
var verdunklungsStartWEMinute_WZ = (VerdunklungsStartWEZeitMinute_WZ.state as DecimalType).intValue
if ((((now.getHourOfDay.intValue == verdunklungsStartWEStunde_WZ) && (now.getMinuteOfHour.intValue >= verdunklungsStartWEMinute_WZ)) || (now.getHourOfDay.intValue > verdunklungsStartWEStunde_WZ))
&& (now.getDayOfWeek == 6 || now.getDayOfWeek == 7) && (Komplett_Verdunkelung_WZ.state==OFF) && (now.getHourOfDay() >= 13 && now.getHourOfDay() <= 23) && (Zeitsteuerung_Start_WZ.state==ON)) {
Komplett_Verdunkelung_WZ.sendCommand(ON)
}
end
rule "Start der Verdunklung im WZ am Wochenende - Aenderung der Konfiguration"
when
Item VerdunklungsStartWEZeitStunde_WZ received update or
Item VerdunklungsStartWEZeitMinute_WZ received update
then
var verdunklungsStartWEStunde_WZ = VerdunklungsStartWEZeitStunde_WZ.state as DecimalType
var verdunklungsStartWEMinute_WZ = VerdunklungsStartWEZeitMinute_WZ.state as DecimalType
var String verdunklungsStartweText_WZ = ''
if (verdunklungsStartWEStunde_WZ.intValue < 10) verdunklungsStartweText_WZ = '0'
verdunklungsStartweText_WZ = verdunklungsStartweText_WZ + verdunklungsStartWEStunde_WZ.intValue + ':'
if (verdunklungsStartWEMinute_WZ.intValue < 10) verdunklungsStartweText_WZ = verdunklungsStartweText_WZ + '0'
verdunklungsStartweText_WZ = verdunklungsStartweText_WZ + verdunklungsStartWEMinute_WZ.intValue
postUpdate(verdunklungsstartWEZeitMessage_WZ, verdunklungsStartweText_WZ)
end
rule "Start der Verdunklung im WZ am Wochenende - Zeit wird im laufenden Betrieb umgestellt"
when
Item VerdunklungsStartWEZeitStunde_WZ received update or
Item VerdunklungsStartWEZeitMinute_WZ received update
then
var verdunklungsStartWEStunde_WZ = (VerdunklungsStartWEZeitStunde_WZ.state as DecimalType).intValue
var verdunklungsStartWEMinute_WZ = (VerdunklungsStartWEZeitMinute_WZ.state as DecimalType).intValue
if ((((now.getHourOfDay.intValue == verdunklungsStartWEStunde_WZ) && (now.getMinuteOfHour.intValue < verdunklungsStartWEMinute_WZ)) || (now.getHourOfDay.intValue < verdunklungsStartWEStunde_WZ))
&& (now.getDayOfWeek == 6 || now.getDayOfWeek == 7) && (Komplett_Verdunkelung_WZ.state==ON) && (now.getHourOfDay() >= 13 && now.getHourOfDay() <= 23) && (verdunklungs_wz_timer_zwei === null) && (Zeitsteuerung_Start_WZ.state==ON)) {
logInfo ("RULE", "verdunklungs_wzsaenderungstimer startet")
verdunklungs_wz_timer_zwei = createTimer(now.plusMinutes(1), [|
verdunklungs_wz_timer_zwei = null
Komplett_Verdunkelung_WZ.sendCommand(OFF)
])
}
end
rule "Start der Verdunklung im WZ unter der Woche - Zeit wird im laufenden Betrieb umgestellt"
when
Item VerdunklungsStartATZeitStunde_WZ received update or
Item VerdunklungsStartATZeitMinute_WZ received update
then
var verdunklungsStartATStunde_WZ = (VerdunklungsStartATZeitStunde_WZ.state as DecimalType).intValue
var verdunklungsStartATMinute_WZ = (VerdunklungsStartATZeitMinute_WZ.state as DecimalType).intValue
if ((((now.getHourOfDay.intValue == verdunklungsStartATStunde_WZ) && (now.getMinuteOfHour.intValue < verdunklungsStartATMinute_WZ)) || (now.getHourOfDay.intValue < verdunklungsStartATStunde_WZ))
&& (now.getDayOfWeek == 1 || now.getDayOfWeek == 2 || now.getDayOfWeek == 3 || now.getDayOfWeek == 4 || now.getDayOfWeek == 5) && (Komplett_Verdunkelung_WZ.state==ON)
&& (now.getHourOfDay() >= 13 && now.getHourOfDay() <= 23) && (verdunklungs_wz_timer_zwei === null) && (Zeitsteuerung_Start_WZ.state==ON)) {
logInfo ("RULE", "verdunklungs_wzsaenderungstimer startet")
verdunklungs_wz_timer_zwei = createTimer(now.plusMinutes(1), [|
verdunklungs_wz_timer_zwei = null
Komplett_Verdunkelung_WZ.sendCommand(OFF)
])
}
end
rule "Ende der Verdunklung im WZ Ć¼ber Helligkeit"
when
Time cron "0 0/1 * * * ?"
then
if((Wetterstation_Helligkeit.state > Verdunkelungsende_WZ_Helligkeit.state) && (Komplett_Verdunkelung_WZ.state==ON) && (now.getHourOfDay() <= 12) && (Zeitsteuerung_Ende_WZ.state==OFF) && (verdunklungstimer_wz_ende === null)) {
logInfo ("RULE", "Verdunklungsendtimer WZ startet")
verdunklungstimer_wz_ende = createTimer(now.plusMinutes(5), [|
verdunklungstimer_wz_ende = null
Komplett_Verdunkelung_WZ.sendCommand(OFF)
])
}
end
rule "Verdunklungstimer aus falls in einer Minuten die Helligkeit wieder steigt"
when
Item Wetterstation_Helligkeit changed or
Item Verdunkelungsende_WZ_Helligkeit changed
then
if ((verdunklungstimer_wz_ende !== null) && (Wetterstation_Helligkeit.state <= Verdunkelungsende_WZ_Helligkeit.state)) {
logInfo ("RULE", "Verdunklungsendtimer WZ vorzeitig aus")
verdunklungstimer_wz_ende.cancel
verdunklungstimer_wz_ende = null
}
end
rule "Start der Verdunklung im WZ Ć¼ber Helligkeit"
when
Time cron "0 0/1 * * * ?"
then
if((Wetterstation_Helligkeit.state <= Verdunkelungsstart_WZ_Helligkeit.state) && (Komplett_Verdunkelung_WZ.state==OFF) && (now.getHourOfDay() >= 15) && (Zeitsteuerung_Start_WZ.state==OFF) && (verdunklungstimer_wz_start === null)) {
logInfo ("RULE", "Verdunklungsstarttimer WZ startet")
verdunklungstimer_wz_start = createTimer(now.plusMinutes(5), [|
verdunklungstimer_wz_start = null
Komplett_Verdunkelung_WZ.sendCommand(ON)
])
}
end
rule "Verdunklungstimer aus falls in einer Minuten die Helligkeit wieder sinkt"
when
Item Wetterstation_Helligkeit changed or
Item Verdunkelungsstart_WZ_Helligkeit changed
then
if ((verdunklungstimer_wz_start !== null) && (Wetterstation_Helligkeit.state > Verdunkelungsstart_WZ_Helligkeit.state)) {
logInfo ("RULE", "Verdunklungsstarttimer WZ vorzeitig aus")
verdunklungstimer_wz_start.cancel
verdunklungstimer_wz_start = null
}
end
Here is code 2:
rule "Umrechnung Regenmenge Number"
when
Item Wetterstation_Regenmenge received update
then
Insgesamt_Regenmenge.sendCommand(Wetterstation_Regenmenge.state as Number)
end
rule "Regenmenge letzte Stunde"
when
Time cron "0 0/1 * 1/1 * ? *"
then
if (Insgesamt_Regenmenge.deltaSince(now.minusHours(1)) != null && Insgesamt_Regenmenge.deltaSince(now.minusHours(1)) < 0.00) {
postUpdate(Regenmenge_H, 0.00)
}
else if (Insgesamt_Regenmenge.deltaSince(now.minusHours(1)) != null && Insgesamt_Regenmenge.deltaSince(now.minusHours(1)) >= 0.00) {
Regenmenge_H.postUpdate(Insgesamt_Regenmenge.deltaSince(now.minusHours(1)), 'rrd4j')
}
end
rule "Regenmenge letzte 24 Stunden"
when
Time cron "0 0/1 * 1/1 * ? *"
then
if (Insgesamt_Regenmenge.deltaSince(now.minusDays(1)) != null && Insgesamt_Regenmenge.deltaSince(now.minusDays(1)) < 0.00) {
postUpdate(Regenmenge_D, 0.00)
}
else if (Insgesamt_Regenmenge.deltaSince(now.minusDays(1)) != null && Insgesamt_Regenmenge.deltaSince(now.minusDays(1)) >= 0.00) {
Regenmenge_D.postUpdate(Insgesamt_Regenmenge.deltaSince(now.minusDays(1)), 'rrd4j')
}
end
rule "Regenmenge heute"
when
Time cron "0 0/1 * 1/1 * ? *"
then
if (Insgesamt_Regenmenge.deltaSince(now.withTimeAtStartOfDay) != null && Insgesamt_Regenmenge.deltaSince(now.withTimeAtStartOfDay) < 0.00) {
postUpdate(Regenmenge_T, 0.00)
}
else if (Insgesamt_Regenmenge.deltaSince(now.withTimeAtStartOfDay) != null && Insgesamt_Regenmenge.deltaSince(now.withTimeAtStartOfDay) >= 0.00) {
Regenmenge_T.postUpdate(Insgesamt_Regenmenge.deltaSince(now.withTimeAtStartOfDay), 'rrd4j')
}
end
rule "Regenmenge gestern"
when
Time cron "0 0/1 * 1/1 * ? *"
then
if (Insgesamt_Regenmenge.deltaSince(now.withTimeAtStartOfDay.minusDays(1)) != null && Insgesamt_Regenmenge.deltaSince(now.withTimeAtStartOfDay.minusDays(1)) < 0.00 && Insgesamt_Regenmenge.deltaSince(now.withTimeAtStartOfDay) != null && Insgesamt_Regenmenge.deltaSince(now.withTimeAtStartOfDay) < 0.00) {
postUpdate(Regenmenge_Y, 0.00)
}
else if (Insgesamt_Regenmenge.deltaSince(now.withTimeAtStartOfDay.minusDays(1)) != null && Insgesamt_Regenmenge.deltaSince(now.withTimeAtStartOfDay.minusDays(1)) >= 0.00 && Insgesamt_Regenmenge.deltaSince(now.withTimeAtStartOfDay) != null && Insgesamt_Regenmenge.deltaSince(now.withTimeAtStartOfDay) >= 0.00) {
Regenmenge_Y.postUpdate(Insgesamt_Regenmenge.deltaSince(now.withTimeAtStartOfDay.minusDays(1), 'rrd4j') - Insgesamt_Regenmenge.deltaSince(now.withTimeAtStartOfDay, "rrd4j"))
}
else if (Insgesamt_Regenmenge.deltaSince(now.withTimeAtStartOfDay.minusDays(1)) == null || Insgesamt_Regenmenge.deltaSince(now.withTimeAtStartOfDay) == null) {
postUpdate(Regenmenge_Y, 0.00)
}
else if ((Insgesamt_Regenmenge.deltaSince(now.withTimeAtStartOfDay.minusDays(1)) - Insgesamt_Regenmenge.deltaSince(now.withTimeAtStartOfDay)) == null || (Insgesamt_Regenmenge.deltaSince(now.withTimeAtStartOfDay.minusDays(1)) - Insgesamt_Regenmenge.deltaSince(now.withTimeAtStartOfDay)) < 0.00) {
postUpdate(Regenmenge_Y, 0.00)
}
end
rule "Regenmenge letzte 7 Tage"
when
Time cron "0 0/1 * 1/1 * ? *"
then
if (Insgesamt_Regenmenge.deltaSince(now.minusDays(7)) != null && Insgesamt_Regenmenge.deltaSince(now.minusDays(7)) < 0.00) {
postUpdate(Regenmenge_W, 0.00)
}
else if (Insgesamt_Regenmenge.deltaSince(now.minusDays(7)) != null && Insgesamt_Regenmenge.deltaSince(now.minusDays(7)) >= 0.00) {
Regenmenge_W.postUpdate(Insgesamt_Regenmenge.deltaSince(now.minusDays(7)), 'rrd4j')
}
end
rule "Regenmenge gestern nicht null"
when
Item Regenmenge_Y received update
then
if (Regenmenge_Y.state < 0.00) {
postUpdate(Regenmenge_Y, 0.00)
}
end
Here is code 3:
var Timer heizung_timer_zwei = null
rule "Start der Heizung unter der Woche - prĆ¼fen"
when
Time cron "0 0/1 * * * ?"
then
var heizungsStartATStunde = (HeizungsStartATZeitStunde.state as DecimalType).intValue
var heizungsStartATMinute = (HeizungsStartATZeitMinute.state as DecimalType).intValue
if ((((now.getHourOfDay.intValue == heizungsStartATStunde) && (now.getMinuteOfHour.intValue >= heizungsStartATMinute)) || (now.getHourOfDay.intValue > heizungsStartATStunde))
&& (now.getDayOfWeek == 1 || now.getDayOfWeek == 2 || now.getDayOfWeek == 3 || now.getDayOfWeek == 4 || now.getDayOfWeek == 5) && (Heizung_Tagesbetrieb.state==OFF)
&& (now.getHourOfDay() >= 1 && now.getHourOfDay() <= 11)) {
Heizung_Tagesbetrieb.sendCommand(ON)
}
end
rule "Start der Heizung unter der Woche - Aenderung der Konfiguration"
when
Item HeizungsStartATZeitStunde received update or
Item HeizungsStartATZeitMinute received update
then
var heizungsStartATStunde = HeizungsStartATZeitStunde.state as DecimalType
var heizungsStartATMinute = HeizungsStartATZeitMinute.state as DecimalType
var String heizungsstartatText = ''
if (heizungsStartATStunde.intValue < 10) heizungsstartatText = '0'
heizungsstartatText = heizungsstartatText + heizungsStartATStunde.intValue + ':'
if (heizungsStartATMinute.intValue < 10) heizungsstartatText = heizungsstartatText + '0'
heizungsstartatText = heizungsstartatText + heizungsStartATMinute.intValue
postUpdate(heizungsstartatZeitMessage, heizungsstartatText)
end
rule "Start der Heizung am Wochenende - prĆ¼fen"
when
Time cron "0 0/1 * * * ?"
then
var heizungsStartWEStunde = (HeizungsStartWEZeitStunde.state as DecimalType).intValue
var heizungsStartWEMinute = (HeizungsStartWEZeitMinute.state as DecimalType).intValue
if ((((now.getHourOfDay.intValue == heizungsStartWEStunde) && (now.getMinuteOfHour.intValue >= heizungsStartWEMinute)) || (now.getHourOfDay.intValue > heizungsStartWEStunde))
&& (now.getDayOfWeek == 6 || now.getDayOfWeek == 7) && (Heizung_Tagesbetrieb.state==OFF)
&& (now.getHourOfDay() >= 1 && now.getHourOfDay() <= 11)) {
Heizung_Tagesbetrieb.sendCommand(ON)
}
end
rule "Start der Heizung am Wochenende - Aenderung der Konfiguration"
when
Item HeizungsStartWEZeitStunde received update or
Item HeizungsStartWEZeitMinute received update
then
var heizungsStartWEStunde = HeizungsStartWEZeitStunde.state as DecimalType
var heizungsStartWEMinute = HeizungsStartWEZeitMinute.state as DecimalType
var String heizungsstartweText = ''
if (heizungsStartWEStunde.intValue < 10) heizungsstartweText = '0'
heizungsstartweText = heizungsstartweText + heizungsStartWEStunde.intValue + ':'
if (heizungsStartWEMinute.intValue < 10) heizungsstartweText = heizungsstartweText + '0'
heizungsstartweText = heizungsstartweText + heizungsStartWEMinute.intValue
postUpdate(heizungsstartweZeitMessage, heizungsstartweText)
end
rule "Ende der Heizung unter der Woche - prĆ¼fen"
when
Time cron "0 0/1 * * * ?"
then
var heizungsEndeATStunde = (HeizungsEndeATZeitStunde.state as DecimalType).intValue
var heizungsEndeATMinute = (HeizungsEndeATZeitMinute.state as DecimalType).intValue
if ((((now.getHourOfDay.intValue == heizungsEndeATStunde) && (now.getMinuteOfHour.intValue >= heizungsEndeATMinute)) || (now.getHourOfDay.intValue > heizungsEndeATStunde))
&& (now.getDayOfWeek == 1 || now.getDayOfWeek == 2 || now.getDayOfWeek == 3 || now.getDayOfWeek == 4 || now.getDayOfWeek == 5) && (Heizung_Tagesbetrieb.state==ON)
&& (now.getHourOfDay() >= 13 && now.getHourOfDay() <= 23)) {
Heizung_Tagesbetrieb.sendCommand(OFF)
}
end
rule "Ende der Heizung unter der Woche - Aenderung der Konfiguration"
when
Item HeizungsEndeATZeitStunde received update or
Item HeizungsEndeATZeitMinute received update
then
var heizungsEndeATStunde = HeizungsEndeATZeitStunde.state as DecimalType
var heizungsEndeATMinute = HeizungsEndeATZeitMinute.state as DecimalType
var String heizungsEndeatText = ''
if (heizungsEndeATStunde.intValue < 10) heizungsEndeatText = '0'
heizungsEndeatText = heizungsEndeatText + heizungsEndeATStunde.intValue + ':'
if (heizungsEndeATMinute.intValue < 10) heizungsEndeatText = heizungsEndeatText + '0'
heizungsEndeatText = heizungsEndeatText + heizungsEndeATMinute.intValue
postUpdate(heizungsEndeatZeitMessage, heizungsEndeatText)
end
rule "Ende der Heizung am Wochenende - prĆ¼fen"
when
Time cron "0 0/1 * * * ?"
then
var heizungsEndeWEStunde = (HeizungsEndeWEZeitStunde.state as DecimalType).intValue
var heizungsEndeWEMinute = (HeizungsEndeWEZeitMinute.state as DecimalType).intValue
if ((((now.getHourOfDay.intValue == heizungsEndeWEStunde) && (now.getMinuteOfHour.intValue >= heizungsEndeWEMinute)) || (now.getHourOfDay.intValue > heizungsEndeWEStunde))
&& (now.getDayOfWeek == 6 || now.getDayOfWeek == 7) && (Heizung_Tagesbetrieb.state==ON) && (now.getHourOfDay() >= 13 && now.getHourOfDay() <= 23)) {
Heizung_Tagesbetrieb.sendCommand(OFF)
}
end
rule "Ende der Heizung am Wochenende - Aenderung der Konfiguration"
when
Item HeizungsEndeWEZeitStunde received update or
Item HeizungsEndeWEZeitMinute received update
then
var heizungsEndeWEStunde = HeizungsEndeWEZeitStunde.state as DecimalType
var heizungsEndeWEMinute = HeizungsEndeWEZeitMinute.state as DecimalType
var String heizungsEndeweText = ''
if (heizungsEndeWEStunde.intValue < 10) heizungsEndeweText = '0'
heizungsEndeweText = heizungsEndeweText + heizungsEndeWEStunde.intValue + ':'
if (heizungsEndeWEMinute.intValue < 10) heizungsEndeweText = heizungsEndeweText + '0'
heizungsEndeweText = heizungsEndeweText + heizungsEndeWEMinute.intValue
postUpdate(heizungsEndeweZeitMessage, heizungsEndeweText)
end
rule "Ende der Heizung am Wochenende - Zeit wird im laufenden Betrieb umgestellt"
when
Item HeizungsEndeWEZeitStunde received update or
Item HeizungsEndeWEZeitMinute received update
then
var heizungsEndeWEStunde = (HeizungsEndeWEZeitStunde.state as DecimalType).intValue
var heizungsEndeWEMinute = (HeizungsEndeWEZeitMinute.state as DecimalType).intValue
if ((((now.getHourOfDay.intValue == heizungsEndeWEStunde) && (now.getMinuteOfHour.intValue < heizungsEndeWEMinute)) || (now.getHourOfDay.intValue < heizungsEndeWEStunde))
&& (now.getDayOfWeek == 6 || now.getDayOfWeek == 7) && (Heizung_Tagesbetrieb.state==OFF) && (now.getHourOfDay() >= 13 && now.getHourOfDay() <= 23) && (heizung_timer_zwei === null)) {
logInfo ("RULE", "Heizungsaenderungstimer startet")
heizung_timer_zwei = createTimer(now.plusMinutes(1), [|
heizung_timer_zwei = null
Heizung_Tagesbetrieb.sendCommand(ON)
])
}
end
rule "Ende der Heizung unter der Woche - Zeit wird im laufenden Betrieb umgestellt"
when
Item HeizungsEndeATZeitStunde received update or
Item HeizungsEndeATZeitMinute received update
then
var heizungsEndeATStunde = (HeizungsEndeATZeitStunde.state as DecimalType).intValue
var heizungsEndeATMinute = (HeizungsEndeATZeitMinute.state as DecimalType).intValue
if ((((now.getHourOfDay.intValue == heizungsEndeATStunde) && (now.getMinuteOfHour.intValue < heizungsEndeATMinute)) || (now.getHourOfDay.intValue < heizungsEndeATStunde))
&& (now.getDayOfWeek == 1 || now.getDayOfWeek == 2 || now.getDayOfWeek == 3 || now.getDayOfWeek == 4 || now.getDayOfWeek == 5) && (Heizung_Tagesbetrieb.state==OFF)
&& (now.getHourOfDay() >= 13 && now.getHourOfDay() <= 23) && (heizung_timer_zwei === null)) {
logInfo ("RULE", "Heizungsaenderungstimer startet")
heizung_timer_zwei = createTimer(now.plusMinutes(1), [|
heizung_timer_zwei = null
Heizung_Tagesbetrieb.sendCommand(ON)
])
}
end
And sorry for those changes made in my topic post, I forgot how to post a code.