Update auto-humidity-vent.groovy
[smartapps.git] / official / turn-on-only-if-i-arrive-after-sunset.groovy
1 /**
2  *  Turn On Only If I Arrive After Sunset
3  *
4  *  Author: Danny De Leo
5  */
6 definition(
7     name: "Turn On Only If I Arrive After Sunset",
8     namespace: "smartthings",
9     author: "SmartThings",
10     description: "Turn something on only if you arrive after sunset and back off anytime you leave.",
11     category: "Convenience",
12     iconUrl: "https://s3.amazonaws.com/smartapp-icons/Meta/light_presence-outlet.png",
13     iconX2Url: "https://s3.amazonaws.com/smartapp-icons/Meta/light_presence-outlet@2x.png"
14 )
15
16 preferences {
17         section("When I arrive and leave..."){
18                 input "presence1", "capability.presenceSensor", title: "Who?", multiple: true
19         }
20         section("Turn on/off a light..."){
21                 input "switch1", "capability.switch", multiple: true
22         }
23 }
24
25 def installed()
26 {
27         subscribe(presence1, "presence", presenceHandler)
28 }
29
30 def updated()
31 {
32         unsubscribe()
33         subscribe(presence1, "presence", presenceHandler)
34 }
35
36 def presenceHandler(evt)
37 {
38         def now = new Date()
39         def sunTime = getSunriseAndSunset();
40     
41         log.debug "nowTime: $now"
42         log.debug "riseTime: $sunTime.sunrise"
43         log.debug "setTime: $sunTime.sunset"
44         log.debug "presenceHandler $evt.name: $evt.value"
45     
46         def current = presence1.currentValue("presence")
47         log.debug current
48         def presenceValue = presence1.find{it.currentPresence == "present"}
49         log.debug presenceValue
50         if(presenceValue) {
51                 switch1.on()
52                 log.debug "Welcome home at night!"
53         }
54     else if(presenceValue) {
55         log.debug "Welcome home at daytime!"
56     }
57         else {
58                 switch1.off()
59                 log.debug "Everyone's away."
60         }
61 }
62