ich bin nun auf Openhab 3 umgestiegen und habe in meinen Rules mehrfach die JodaTime verwendet.
Wie kann ich das am einfachsten umstellen?
Hier ein paar Rules, wo ich es umstellen müsste:
Code: Alles auswählen
if (now.getHourOfDay() <= 19 && now.getHourOfDay() >= 8) {
createTimer(now.plusSeconds(3), [ |
echo_dot_schlafzimmer_TTS_Volume.sendCommand(60)
echo_dot_schlafzimmer_TTS.sendCommand('Test')
])
createTimer(now.plusSeconds(3), [ |
echo_dot_schlafzimmer_TTS_Volume.sendCommand(30)
])
}
}
end
Code: Alles auswählen
rule "Weihnachtsbeleuchtung Ende November bis Anfang Januar"
when
Item ws_daemmerung changed
then
if((now.getDayOfYear > now.withDate(now.getYear,11,26).getDayOfYear || now.getDayOfYear < 8)) {
if(ws_daemmerung.state == OPEN) {
au_terrasse_st.sendCommand(ON)
au_eingang_st.sendCommand(ON)
createTimer(now.plusSeconds(10), [ |
var DecimalType hue = new DecimalType(43)
var PercentType sat = new PercentType(76)
var PercentType bright = new PercentType(70)
var HSBType light = new HSBType(hue,sat,bright)
au_garten_color.sendCommand(light.toString)
au_vorgarten_color.sendCommand(light.toString)
])
} else {
au_eingang_st.sendCommand(OFF)
au_terrasse_st.sendCommand(OFF)
}
}
end
Code: Alles auswählen
rule "Jalousie Abendverschattung inkl Lüftungsstufe"
when
Time cron "0 45 22 24-30 APR ?" or // vom 24. - 30. April
Time cron "0 45 22 * MAY-AUG ?" or // vom 1. Mai bis 31. August
Time cron "0 45 22 1-15 SEP ?" or // vom 1. bis 15. September
Time cron "0 45 21 16-30 SEP ?" or // vom 16. bis 30. September
Time cron "0 45 21 * JAN-MAR,OCT-DEC ?" or // vom 1. Oktober bis 31. März
Time cron "0 45 21 1-23 APR ?" // vom 1. bis 23. April
then
eg_wohnzimmer_rechts_rol.sendCommand(100)
gEGOGRolladen.members.forEach[r|
val cKontakt = gEGOGMagnetkontakte.members.filter[c|c.name.split("_").get(1) == r.name.split("_").get(1)].head
r.sendCommand(
if(cKontakt.state == CLOSED) 100 else 80
)
]
end
Code: Alles auswählen
rule "Pollenwarnung NRW Sascha"
when
Time cron "30 10 6,13,20 * * ?" // fixe Zeiten 06:10:30, 13:10:30, 20:10:30
// die Zeiten sind willkürlich gewählt...
then
gPollen.members.filter[i|i.name.split("_").get(2) == "0"].forEach[p|
var String strMessage = "Achtung! Pollenflugvorhersage für "
var String strSorte = p.name.split("_").get(1)
strMessage = strMessage + strSorte + ": "
gPollen.members.filter[j|j.name.split("_").get(1) == strSorte && j.state.toString != "-1" && j.state.toString != "0"].sortBy[name].forEach[q|
// gPollen.members.filter[j|j.name.split("_").get(1) == strSorte && j.state.toString != "-1"].sortBy[name].forEach[q|
if(strMessage.endsWith(" Pollenflug"))
strMessage = strMessage + "; "
switch (q.name.split("_").get(2)) {
case "0" : strMessage = strMessage + "Heute "
case "1" : strMessage = strMessage + "Morgen "
case "2" : strMessage = strMessage + "Übermorgen "
}
switch (q.state.toString) {
case "0" : strMessage = strMessage + "kein"
case "0-1" : strMessage = strMessage + "kein bis niedriger"
case "1" : strMessage = strMessage + "niedriger"
case "1-2" : strMessage = strMessage + "niedriger bis mittlerer"
case "2" : strMessage = strMessage + "mittlerer"
case "2-3" : strMessage = strMessage + "mittlerer bis starker"
case "3" : strMessage = strMessage + "starker"
}
strMessage = strMessage + " Pollenflug"
]
strMessage = strMessage + "."
if(strMessage.endsWith(" Pollenflug.")) // diese Zeile gegebenenfalls auskommentieren
sendBroadcastNotification(strMessage)
// else {
// strMessage = "Achtung! Pollenflugvorhersage für "+strSorte+": Kein Pollenflug."
// sendBroadcastNotification(strMessage)
// }
]
end
Code: Alles auswählen
rule "Regendauer berechnen"
when
Item ws_regen changed
then
var Number nDuration = 0
if(ws_regen.state == CLOSED) {
if(RegenOffTime != null)
nDuration = ((now.millis - RegenOffTime)/1000).intValue
val Number nMin = (nDuration/60).intValue
val Number nSec = nDuration - nMin * 60
logInfo("timeRegen","Es hat {} Minute(n) und {} Sekunde(n) geregnet",nMin,nSec)
ws_Regendauer.postUpdate(nMin.toString+":"+nSec.toString)
} else {
RegenOffTime = now.millis
}
end
Sascha