custom device types for the CoopBoss hardware version 3

Prepping for submission to SmartThings.  Removed extra comments.

Submitting to public store for approval

Updated for new SmartThings interface

Release Candidate for CoopBoss H3V9

save

Update to fix invalid temperature reporting and added maxCurrentNE methods and attributes.

Made changes to defalutState:true to state "default" on smart tiles that had only one default state.  This was causing the Android version of the app to crash.

Updated comments

Added test for null values that were causing errors during join process

Fixed log errors during join process by testing for null values before init process.

Update fingerprint with Manufacturer data

SmartApps for CoopBoss hardware version 3

Updated Icons.

1

Updates to Prep for RC

Clean up

save
This commit is contained in:
John Rucker
2015-08-14 09:54:21 -05:00
committed by Donald Kirker
parent 810f3645d9
commit dd99a024c2
3 changed files with 1002 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
/**
* Door Jammed Notification
*
* 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 Jammed Notification",
namespace: "JohnRucker",
author: "John.Rucker@Solar-current.com",
description: "Sends a SmartThings notification and text messages when your CoopBoss detects a door jam.",
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 state changes") {
paragraph "Send a SmartThings notification when the coop's door jammed and did not close."
input "doorSensor", "capability.doorControl", title: "Select CoopBoss", required: true, multiple: false
input("recipients", "contact", title: "Recipients", description: "Send notifications to") {
input "phone", "phone", title: "Phone number?", required: 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) {
if (evt.value == "jammed"){
def msg = "WARNING ${doorSensor.displayName} door is jammed and did not close!"
log.debug "WARNING ${doorSensor.displayName} door is jammed and did not close, texting $phone"
if (location.contactBookEnabled) {
sendNotificationToContacts(msg, recipients)
}
else {
sendPush(msg)
if (phone) {
sendSms(phone, msg)
}
}
}
}

View File

@@ -0,0 +1,141 @@
/**
* 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)
//}
}