mirror of
https://github.com/mtan93/SmartThingsPublic.git
synced 2026-03-28 21:04:16 +00:00
Compare commits
3 Commits
MSA-1231-1
...
MSA-1248-1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
956f8a0b37 | ||
|
|
77f880af6e | ||
|
|
1c4386a67b |
@@ -0,0 +1,68 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2015 SmartThings
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
metadata {
|
||||||
|
definition (name: "Window Shade Capability", namespace: "capabilities", author: "SmartThings") {
|
||||||
|
capability "Window Shade"
|
||||||
|
}
|
||||||
|
|
||||||
|
// simulator metadata
|
||||||
|
simulator {
|
||||||
|
// status messages
|
||||||
|
status "closing": "windowShade:closing"
|
||||||
|
status "close": "windowShade:close"
|
||||||
|
status "open": "windowShade:open"
|
||||||
|
status "opening": "windowShade:opening"
|
||||||
|
status "partially open": "windowShade:partially open"
|
||||||
|
status "unknown": "windowShade:unknown"
|
||||||
|
|
||||||
|
// reply messages
|
||||||
|
reply "closing": "windowShade:closing"
|
||||||
|
reply "close": "windowShade:close"
|
||||||
|
reply "open": "windowShade:open"
|
||||||
|
reply "opening": "windowShade:opening"
|
||||||
|
reply "partially open": "windowShade:partially open"
|
||||||
|
reply "unknown": "windowShade:unknown"
|
||||||
|
}
|
||||||
|
|
||||||
|
// UI tile definitions
|
||||||
|
tiles {
|
||||||
|
standardTile("windowShade", "device.windowShade", width: 2, height: 2, canChangeIcon: true) {
|
||||||
|
state "close", label: '${name}', action: "windowShade.close", backgroundColor: "#000000", nextState: "opening"
|
||||||
|
state "closing", label: '${name}', action: "windowShade.close", backgroundColor: "#00039a", nextState: "closed"
|
||||||
|
state "open", label: '${name}', action: "windowShade.open", backgroundColor: "#ffffff", nextState: "closing"
|
||||||
|
state "opening", label: '${name}', action: "windowShade.open", backgroundColor: "#ffedc2", nextState: "open"
|
||||||
|
state "partially open", label: '${name}', action: "windowShade.partially open", backgroundColor: "#0a5eff"
|
||||||
|
state "unknown", label: '${name}', action: "windowShade.unknown", backgroundColor: "#ffa500"
|
||||||
|
}
|
||||||
|
main "windowShade"
|
||||||
|
details "windowShade"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
def parse(String description) {
|
||||||
|
def pair = description.split(":")
|
||||||
|
createEvent(name: pair[0].trim(), value: pair[1].trim())
|
||||||
|
}
|
||||||
|
|
||||||
|
def open() {
|
||||||
|
'open'
|
||||||
|
}
|
||||||
|
|
||||||
|
def close() {
|
||||||
|
'close'
|
||||||
|
}
|
||||||
|
|
||||||
|
def presetPosition() {
|
||||||
|
'partially open'
|
||||||
|
}
|
||||||
@@ -332,8 +332,7 @@ private addChildBulb(dni, hueType, name, hub, update=false, device = null) {
|
|||||||
|
|
||||||
if (deviceType) {
|
if (deviceType) {
|
||||||
return addChildDevice("smartthings", deviceType, dni, hub, ["label": name])
|
return addChildDevice("smartthings", deviceType, dni, hub, ["label": name])
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
log.warn "Device type $hueType not supported"
|
log.warn "Device type $hueType not supported"
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
@@ -349,8 +348,10 @@ def addBulbs() {
|
|||||||
newHueBulb = bulbs.find { (app.id + "/" + it.value.id) == dni }
|
newHueBulb = bulbs.find { (app.id + "/" + it.value.id) == dni }
|
||||||
if (newHueBulb != null) {
|
if (newHueBulb != null) {
|
||||||
d = addChildBulb(dni, newHueBulb?.value?.type, newHueBulb?.value?.name, newHueBulb?.value?.hub)
|
d = addChildBulb(dni, newHueBulb?.value?.type, newHueBulb?.value?.name, newHueBulb?.value?.hub)
|
||||||
log.debug "created ${d.displayName} with id $dni"
|
if (d) {
|
||||||
d.refresh()
|
log.debug "created ${d.displayName} with id $dni"
|
||||||
|
d.refresh()
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
log.debug "$dni in not longer paired to the Hue Bridge or ID changed"
|
log.debug "$dni in not longer paired to the Hue Bridge or ID changed"
|
||||||
}
|
}
|
||||||
@@ -358,7 +359,7 @@ def addBulbs() {
|
|||||||
//backwards compatable
|
//backwards compatable
|
||||||
newHueBulb = bulbs.find { (app.id + "/" + it.id) == dni }
|
newHueBulb = bulbs.find { (app.id + "/" + it.id) == dni }
|
||||||
d = addChildBulb(dni, "Extended Color Light", newHueBulb?.value?.name, newHueBulb?.value?.hub)
|
d = addChildBulb(dni, "Extended Color Light", newHueBulb?.value?.name, newHueBulb?.value?.hub)
|
||||||
d.refresh()
|
d?.refresh()
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.debug "found ${d.displayName} with id $dni already exists, type: '$d.typeName'"
|
log.debug "found ${d.displayName} with id $dni already exists, type: '$d.typeName'"
|
||||||
|
|||||||
Reference in New Issue
Block a user