mirror of
https://github.com/mtan93/SmartThingsPublic.git
synced 2026-03-20 05:10:51 +00:00
Compare commits
9 Commits
PROD_2017.
...
MSA-1914-1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
026cffddfe | ||
|
|
03a79b8bb5 | ||
|
|
d91fc1c9d1 | ||
|
|
db7288f245 | ||
|
|
b59d979fbf | ||
|
|
f445ffc67c | ||
|
|
5b39a9f840 | ||
|
|
e5739fd425 | ||
|
|
6448a5bc7c |
48
devicetypes/jaffala/nest-protect.src/nest-protect.groovy
Normal file
48
devicetypes/jaffala/nest-protect.src/nest-protect.groovy
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
/**
|
||||||
|
* Nest Protect
|
||||||
|
*
|
||||||
|
* Copyright 2017 nick@nickhbailey.com
|
||||||
|
*
|
||||||
|
* 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: "Nest Protect", namespace: "jaffala", author: "nick@nickhbailey.com") {
|
||||||
|
capability "Battery"
|
||||||
|
capability "Carbon Monoxide Detector"
|
||||||
|
capability "Polling"
|
||||||
|
capability "Smoke Detector"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
simulator {
|
||||||
|
// TODO: define status and reply messages here
|
||||||
|
}
|
||||||
|
|
||||||
|
tiles {
|
||||||
|
// TODO: define your main and details tiles here
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// parse events into attributes
|
||||||
|
def parse(String description) {
|
||||||
|
log.debug "Parsing '${description}'"
|
||||||
|
// TODO: handle 'battery' attribute
|
||||||
|
// TODO: handle 'carbonMonoxide' attribute
|
||||||
|
// TODO: handle 'smoke' attribute
|
||||||
|
// TODO: handle 'carbonMonoxide' attribute
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// handle commands
|
||||||
|
def poll() {
|
||||||
|
log.debug "Executing 'poll'"
|
||||||
|
// TODO: handle 'poll' command
|
||||||
|
}
|
||||||
@@ -28,6 +28,7 @@ metadata {
|
|||||||
command "enrollResponse"
|
command "enrollResponse"
|
||||||
|
|
||||||
fingerprint inClusters: "0000, 0001, 0003, 0020, 0402, 0B05", outClusters: "0003, 0006, 0008, 0019", manufacturer: "OSRAM", model: "LIGHTIFY Dimming Switch", deviceJoinName: "OSRAM LIGHTIFY Dimming Switch"
|
fingerprint inClusters: "0000, 0001, 0003, 0020, 0402, 0B05", outClusters: "0003, 0006, 0008, 0019", manufacturer: "OSRAM", model: "LIGHTIFY Dimming Switch", deviceJoinName: "OSRAM LIGHTIFY Dimming Switch"
|
||||||
|
fingerprint inClusters: "0000, 0001, 0003, 0020, 0402, 0B05", outClusters: "0003, 0006, 0008, 0019", manufacturer: "CentraLite", model: "3130", deviceJoinName: "Centralite Zigbee Smart Switch"
|
||||||
//fingerprint inClusters: "0000, 0001, 0003, 0020, 0500", outClusters: "0003,0019", manufacturer: "CentraLite", model: "3455-L", deviceJoinName: "Iris Care Pendant"
|
//fingerprint inClusters: "0000, 0001, 0003, 0020, 0500", outClusters: "0003,0019", manufacturer: "CentraLite", model: "3455-L", deviceJoinName: "Iris Care Pendant"
|
||||||
fingerprint inClusters: "0000, 0001, 0003, 0007, 0020, 0402, 0B05", outClusters: "0003, 0006, 0019", manufacturer: "CentraLite", model: "3460-L", deviceJoinName: "Iris Smart Button"
|
fingerprint inClusters: "0000, 0001, 0003, 0007, 0020, 0402, 0B05", outClusters: "0003, 0006, 0019", manufacturer: "CentraLite", model: "3460-L", deviceJoinName: "Iris Smart Button"
|
||||||
fingerprint inClusters: "0000, 0001, 0003, 0007, 0020, 0B05", outClusters: "0003, 0006, 0019", manufacturer: "CentraLite", model:"3450-L", deviceJoinName: "Iris KeyFob"
|
fingerprint inClusters: "0000, 0001, 0003, 0007, 0020, 0B05", outClusters: "0003, 0006, 0019", manufacturer: "CentraLite", model:"3450-L", deviceJoinName: "Iris KeyFob"
|
||||||
@@ -251,12 +252,19 @@ def initialize() {
|
|||||||
if ((device.getDataValue("manufacturer") == "OSRAM") && (device.getDataValue("model") == "LIGHTIFY Dimming Switch")) {
|
if ((device.getDataValue("manufacturer") == "OSRAM") && (device.getDataValue("model") == "LIGHTIFY Dimming Switch")) {
|
||||||
sendEvent(name: "numberOfButtons", value: 2)
|
sendEvent(name: "numberOfButtons", value: 2)
|
||||||
}
|
}
|
||||||
else if ((device.getDataValue("manufacturer") == "CentraLite") &&
|
else if (device.getDataValue("manufacturer") == "CentraLite") {
|
||||||
((device.getDataValue("model") == "3455-L") || (device.getDataValue("model") == "3460-L"))) {
|
if (device.getDataValue("model") == "3130") {
|
||||||
sendEvent(name: "numberOfButtons", value: 1)
|
sendEvent(name: "numberOfButtons", value: 2)
|
||||||
}
|
}
|
||||||
else if ((device.getDataValue("manufacturer") == "CentraLite") && (device.getDataValue("model") == "3450-L")) {
|
else if ((device.getDataValue("model") == "3455-L") || (device.getDataValue("model") == "3460-L")) {
|
||||||
sendEvent(name: "numberOfButtons", value: 4)
|
sendEvent(name: "numberOfButtons", value: 1)
|
||||||
|
}
|
||||||
|
else if (device.getDataValue("model") == "3450-L") {
|
||||||
|
sendEvent(name: "numberOfButtons", value: 4)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sendEvent(name: "numberOfButtons", value: 4) //default case. can be changed later.
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
//default. can be changed
|
//default. can be changed
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ def getCallbackUrl() { return "${getServerUrl()}/oauth/callback" }
|
|||||||
def apiURL(path = '/') { return "https://api.lifx.com/v1${path}" }
|
def apiURL(path = '/') { return "https://api.lifx.com/v1${path}" }
|
||||||
def getSecretKey() { return appSettings.secretKey }
|
def getSecretKey() { return appSettings.secretKey }
|
||||||
def getClientId() { return appSettings.clientId }
|
def getClientId() { return appSettings.clientId }
|
||||||
|
private getVendorName() { "LIFX" }
|
||||||
|
|
||||||
def authPage() {
|
def authPage() {
|
||||||
log.debug "authPage test1"
|
log.debug "authPage test1"
|
||||||
@@ -76,6 +77,7 @@ def authPage() {
|
|||||||
return dynamicPage(name:"Credentials", title:"", nextPage:"", install:true, uninstall: true) {
|
return dynamicPage(name:"Credentials", title:"", nextPage:"", install:true, uninstall: true) {
|
||||||
section("Select your location") {
|
section("Select your location") {
|
||||||
input "selectedLocationId", "enum", required:true, title:"Select location ({{count}} found)", messageArgs: [count: count], multiple:false, options:options, submitOnChange: true
|
input "selectedLocationId", "enum", required:true, title:"Select location ({{count}} found)", messageArgs: [count: count], multiple:false, options:options, submitOnChange: true
|
||||||
|
paragraph "Devices will be added automatically from your ${vendorName} account. To add or delete devices please use the Official ${vendorName} App."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user