--- /dev/null
+/**
+ * CoopBoss Door Status to color
+ *
+ * Copyright 2015 John Rucker
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License
+ * for the specific language governing permissions and limitations under the License.
+ *
+ */
+
+definition(
+ name: "Door State to Color Light (Hue Bulb)",
+ namespace: "JohnRucker",
+ author: "John Rucker",
+ description: "Change the color of your Hue bulbs based on your coop's door status.",
+ category: "My Apps",
+ iconUrl: "http://coopboss.com/images/SmartThingsIcons/coopbossLogo.png",
+ iconX2Url: "http://coopboss.com/images/SmartThingsIcons/coopbossLogo2x.png",
+ iconX3Url: "http://coopboss.com/images/SmartThingsIcons/coopbossLogo3x.png")
+
+
+preferences {
+ section("When the door opens/closese...") {
+ paragraph "Sets a Hue bulb or bulbs to a color based on your coop's door status:\r unknown = white\r open = blue\r opening = purple\r closed = green\r closing = pink\r jammed = red\r forced close = orange."
+ input "doorSensor", "capability.doorControl", title: "Select CoopBoss", required: true, multiple: false
+ input "bulbs", "capability.colorControl", title: "pick a bulb", required: true, multiple: true
+ }
+}
+
+def installed() {
+ log.debug "Installed with settings: ${settings}"
+ initialize()
+}
+
+def updated() {
+ log.debug "Updated with settings: ${settings}"
+ unsubscribe()
+ initialize()
+}
+
+def initialize() {
+ subscribe(doorSensor, "doorState", coopDoorStateHandler)
+}
+
+def coopDoorStateHandler(evt) {
+ log.debug "${evt.descriptionText}, $evt.value"
+ def color = "White"
+ def hueColor = 100
+ def saturation = 100
+ Map hClr = [:]
+ hClr.hex = "#FFFFFF"
+
+ switch(evt.value) {
+ case "open":
+ color = "Blue"
+ break;
+ case "opening":
+ color = "Purple"
+ break;
+ case "closed":
+ color = "Green"
+ break;
+ case "closing":
+ color = "Pink"
+ break;
+ case "jammed":
+ color = "Red"
+ break;
+ case "forced close":
+ color = "Orange"
+ break;
+ case "unknown":
+ color = "White"
+ break;
+ }
+
+ switch(color) {
+ case "White":
+ hueColor = 52
+ saturation = 19
+ break;
+ case "Daylight":
+ hueColor = 53
+ saturation = 91
+ break;
+ case "Soft White":
+ hueColor = 23
+ saturation = 56
+ break;
+ case "Warm White":
+ hueColor = 20
+ saturation = 80 //83
+ break;
+ case "Blue":
+ hueColor = 70
+ hClr.hex = "#0000FF"
+ break;
+ case "Green":
+ hueColor = 39
+ hClr.hex = "#00FF00"
+ break;
+ case "Yellow":
+ hueColor = 25
+ hClr.hex = "#FFFF00"
+ break;
+ case "Orange":
+ hueColor = 10
+ hClr.hex = "#FF6000"
+ break;
+ case "Purple":
+ hueColor = 75
+ hClr.hex = "#BF7FBF"
+ break;
+ case "Pink":
+ hueColor = 83
+ hClr.hex = "#FF5F5F"
+ break;
+ case "Red":
+ hueColor = 100
+ hClr.hex = "#FF0000"
+ break;
+ }
+
+ //bulbs*.on()
+ bulbs*.setHue(hueColor)
+ bulbs*.setSaturation(saturation)
+ bulbs*.setColor(hClr)
+
+ //bulbs.each{
+ //it.on() // Turn the bulb on when open (this method does not come directly from the colorControl capability)
+ //it.setLevel(100) // Make sure the light brightness is 100%
+ //it.setHue(hueColor)
+ //it.setSaturation(saturation)
+ //}
+}
\ No newline at end of file