Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.openhab.core.library.types.*
- import org.openhab.core.persistence.*
- import org.openhab.model.script.actions.*
- import org.java.math.*
- import org.joda.time.*
- import org.openhab.core.types.*
- import org.openhab.core.items.*
- import org.openhab.core.library.items.*
- import java.util.Set
- var Timer ShutterDelayTimerKitchen_East = null
- var Timer ShutterOverrideTimerKitchen_East = null
- //shading positions
- var Number ShadingKitchenEastPosition = 65
- var Number ShadingKitchenSouth_L_Position = 70
- var Number ShadingKitchenSouth_R_Position = 65
- //closing positions
- var Number ClosedKitchenEastPosition = 85
- var Number ClosedKitchen_South_L_Position = 85
- var Number ClosedKitchen_South_R_Position = 85
- //two click positions
- var Number TwoClickKitchenEastPosition = 60
- var Number TwoClickKitchen_South_L_Position = 65
- var Number TwoClickKitchen_South_R_Position = 60
- var boolean ShutterOverrideEast = false
- //shading
- rule "calculate temperature difference between sun and shadow temp"
- when
- Item TemperatureSun changed or
- Item TemperatureShadow changed
- then
- val Number tempSun = TemperatureSun.state as DecimalType
- val Number tempShadow = TemperatureShadow.state as DecimalType
- var Number tempDiff = 0
- tempDiff = (tempSun-tempShadow)
- Shading_tempDiff_Proxy.postUpdate(tempDiff)
- end
- rule "shading kitchen east"
- when
- Item Shading_tempDiff_Proxy received update
- then
- if (Night_Proxy.state==OFF && ((Sun_Az.state > 80 && Sun_Az.state < 140) && (Sun_El.state > 10 && Sun_El.state < 40)) ) {
- if (Shading_Shutter_Proxy.state==ON) {
- if (!ShutterOverrideEast) {
- if (Shading_tempDiff_Proxy.state >= 15) {
- if (ShutterDelayTimerKitchen_East!=null) {
- ShutterDelayTimerKitchen_East.cancel
- ShutterDelayTimerKitchen_East = null
- logInfo("FILE", "Shutter Delay Timer East reset because sunshine was detected, but timer was active")
- }
- FibFGR222_Kitchen_East.sendCommand(ShadingKitchenEastPosition)
- logInfo("FILE", "shading kitchen east active, shutters are down")
- }
- if (Shading_tempDiff_Proxy.state <= 14) {
- logInfo("FILE", "shading kitchen east temporary terminated, starting 30 min timer")
- ShutterDelayTimerKitchen_East = createTimer(now.plusMinutes(30)) [|
- if (FibFGR222_Kitchen_East.state != UP) {
- FibFGR222_Kitchen_East.sendCommand(UP)
- logInfo("FILE", "ShutterDelayTimer_East has expired, shutters are up")
- }
- ]
- }
- }
- else if (ShutterOverrideEast) {
- logInfo("FILE", "shading kitchen east overridden, starting 3 hour timer")
- ShutterOverrideTimerKitchen_East = createTimer(now.plusMinutes(180)) [|
- logInfo("FILE", "ShutterOverrideTimer_East has expired, override set to false")
- ShutterOverrideEast=false
- ]
- }
- }
- }
- else
- logInfo("FILE", "shading kitchen east permanently deactivated, it's night or activation conditions not met")
- end
- rule "shading off"
- when
- Item Shading_Shutter_Proxy changed from ON to OFF
- then
- if (ShutterOverrideTimerKitchen_East!=null) {
- ShutterOverrideTimerKitchen_East.cancel
- ShutterOverrideTimerKitchen_East = null
- logInfo("FILE", "manual Shutter Override Timer East reset while switching OFF")
- }
- FibFGR222_Kitchen_East.sendCommand(UP)
- FibFGR222_Kitchen_South_L.sendCommand(UP)
- FibFGR222_Kitchen_South_R.sendCommand(UP)
- logInfo("FILE", "shading switched to off, timers cancelled")
- end
- rule "shading on"
- when
- Item Shading_Shutter_Proxy changed from OFF to ON
- then
- if (ShutterDelayTimerKitchen_East!=null) {
- ShutterDelayTimerKitchen_East.cancel
- ShutterDelayTimerKitchen_East = null
- logInfo("FILE", "manual Shutter Delay Timer East reset while switching ON")
- }
- ShutterOverrideEast=false
- logInfo("FILE", "shading switched to on, timers cancelled")
- end
- rule "shutter kitchen auto close"
- when Item Twilight_Proxy changed to ON or
- Time cron "0 0 20 * * ?"
- then
- if (now.getHourOfDay() <= 20 && !ShutterOverrideEast) {
- FibFGR222_Kitchen_East.sendCommand(ClosedKitchenEastPosition)
- FibFGR222_Kitchen_South_L.sendCommand(ClosedKitchen_South_L_Position)
- FibFGR222_Kitchen_South_R.sendCommand(ClosedKitchen_South_R_Position)
- logInfo("FILE", "shutters kitchen auto closed")
- }
- end
- rule "shutter kitchen auto open"
- when Item Day_Proxy changed to ON or
- Time cron "0 0 9 * * ?"
- then
- if (now.getHourOfDay() >= 9 && !ShutterOverrideEast) {
- FibFGR222_Kitchen_East.sendCommand(UP)
- FibFGR222_Kitchen_South_L.sendCommand(UP)
- FibFGR222_Kitchen_South_R.sendCommand(UP)
- logInfo("FILE", "shutters kitchen auto opened")
- }
- end
- rule "set override flag"
- when
- Item FibFGR222_Kitchen_East_Manual_UP_1x received update ON or
- Item FibFGR222_Kitchen_East_Manual_DOWN_1x received update ON or
- then
- ShutterOverrideEast = true
- logInfo("FILE", "shading kitchen override flag set")
- end
- rule "override flag reset"
- when
- Time cron "0 0 0 ? * *"
- then
- ShutterOverrideEast=false
- logInfo("FILE", "shading kitchen override flag reset")
- end
- //scenes east
- rule "scene kitchen all shutters up"
- when
- Item FibFGR222_Kitchen_East_Manual_UP_2x received update ON or
- Item FibFGR222_Kitchen_South_L_Manual_UP_2x received update ON or
- Item FibFGR222_Kitchen_South_R_Manual_UP_2x received update ON
- then {
- FibFGR222_Kitchen_East.sendCommand(UP)
- FibFGR222_Kitchen_South_L.sendCommand(UP)
- FibFGR222_Kitchen_South_R.sendCommand(UP)
- }
- end
- rule "scene kitchen all shutters to two click positions"
- when
- Item FibFGR222_Kitchen_East_Manual_DOWN_2x received update ON or
- Item FibFGR222_Kitchen_South_L_Manual_DOWN_2x received update ON or
- Item FibFGR222_Kitchen_South_R_Manual_DOWN_2x received update ON
- then {
- FibFGR222_Kitchen_East.sendCommand(TwoClickKitchenEastPosition)
- FibFGR222_Kitchen_South_L.sendCommand(TwoClickKitchen_South_L_Position)
- FibFGR222_Kitchen_South_R.sendCommand(TwoClickKitchen_South_R_Position)
- }
- end
Add Comment
Please, Sign In to add comment