mirror of
https://github.com/mtan93/SmartThingsPublic.git
synced 2026-03-08 05:31:56 +00:00
made a few adjustments to api interfacing; added root url configurability through api; uncommented previously commented device capabilities after discussion with SmartThings that the apparent disfunctionality is an ST IDE quirk, not an ST system quirk
This commit is contained in:
@@ -28,32 +28,32 @@ import groovy.json.JsonSlurper
|
|||||||
|
|
||||||
preferences {
|
preferences {
|
||||||
section("Choose which devices to monitor...") {
|
section("Choose which devices to monitor...") {
|
||||||
//input "accelerometers", "capability.accelerationSensor", title: "Accelerometers", multiple: true, required: false
|
input "accelerometers", "capability.accelerationSensor", title: "Accelerometers", multiple: true, required: false
|
||||||
input "alarms", "capability.alarm", title: "Alarms", multiple: true, required: false
|
input "alarms", "capability.alarm", title: "Alarms", multiple: true, required: false
|
||||||
//input "batteries", "capability.battery", title: "Batteries", multiple: true, required: false
|
input "batteries", "capability.battery", title: "Batteries", multiple: true, required: false
|
||||||
//input "beacons", "capability.beacon", title: "Beacons", multiple: true, required: false
|
input "beacons", "capability.beacon", title: "Beacons", multiple: true, required: false
|
||||||
//input "buttons", "capability.button", title: "Buttons", multiple: true, required: false
|
input "buttons", "capability.button", title: "Buttons", multiple: true, required: false
|
||||||
//input "cos", "capability.carbonMonoxideDetector", title: "Carbon Monoxide Detectors", multiple: true, required: false
|
input "cos", "capability.carbonMonoxideDetector", title: "Carbon Monoxide Detectors", multiple: true, required: false
|
||||||
//input "colors", "capability.colorControl", title: "Color Controllers", multiple: true, required: false
|
input "colors", "capability.colorControl", title: "Color Controllers", multiple: true, required: false
|
||||||
input "contacts", "capability.contactSensor", title: "Contact Sensors", multiple: true, required: false
|
input "contacts", "capability.contactSensor", title: "Contact Sensors", multiple: true, required: false
|
||||||
//input "doorsControllers", "capability.doorControl", title: "Door Controllers", multiple: true, required: false
|
input "doorsControllers", "capability.doorControl", title: "Door Controllers", multiple: true, required: false
|
||||||
//input "energyMeters", "capability.energyMeter", title: "Energy Meters", multiple: true, required: false
|
input "energyMeters", "capability.energyMeter", title: "Energy Meters", multiple: true, required: false
|
||||||
//input "illuminances", "capability.illuminanceMeasurement", title: "Illuminance Meters", multiple: true, required: false
|
input "illuminances", "capability.illuminanceMeasurement", title: "Illuminance Meters", multiple: true, required: false
|
||||||
input "locks", "capability.lock", title: "Locks", multiple: true, required: false
|
input "locks", "capability.lock", title: "Locks", multiple: true, required: false
|
||||||
input "motions", "capability.motionSensor", title: "Motion Sensors", multiple: true, required: false
|
input "motions", "capability.motionSensor", title: "Motion Sensors", multiple: true, required: false
|
||||||
//input "musicPlayers", "capability.musicPlayer", title: "Music Players", multiple: true, required: false
|
input "musicPlayers", "capability.musicPlayer", title: "Music Players", multiple: true, required: false
|
||||||
//input "powerMeters", "capability.powerMeter", title: "Power Meters", multiple: true, required: false
|
input "powerMeters", "capability.powerMeter", title: "Power Meters", multiple: true, required: false
|
||||||
input "presences", "capability.presenceSensor", title: "Presence Sensors", multiple: true, required: false
|
input "presences", "capability.presenceSensor", title: "Presence Sensors", multiple: true, required: false
|
||||||
input "humidities", "capability.relativeHumidityMeasurement", title: "Humidity Meters", multiple: true, required: false
|
input "humidities", "capability.relativeHumidityMeasurement", title: "Humidity Meters", multiple: true, required: false
|
||||||
//input "relaySwitches", "capability.relaySwitch", title: "Relay Switches", multiple: true, required: false
|
input "relaySwitches", "capability.relaySwitch", title: "Relay Switches", multiple: true, required: false
|
||||||
//input "sleepSensors", "capability.sleepSensor", title: "Sleep Sensors", multiple: true, required: false
|
input "sleepSensors", "capability.sleepSensor", title: "Sleep Sensors", multiple: true, required: false
|
||||||
//input "smokeDetectors", "capability.smokeDetector", title: "Smoke Detectors", multiple: true, required: false
|
input "smokeDetectors", "capability.smokeDetector", title: "Smoke Detectors", multiple: true, required: false
|
||||||
//input "peds", "capability.stepSensor", title: "Pedometers", multiple: true, required: false
|
input "peds", "capability.stepSensor", title: "Pedometers", multiple: true, required: false
|
||||||
input "switches", "capability.switch", title: "Switches", multiple: true, required: false
|
input "switches", "capability.switch", title: "Switches", multiple: true, required: false
|
||||||
input "switchLevels", "capability.switchLevel", title: "Switch Levels", multiple: true, required: false
|
input "switchLevels", "capability.switchLevel", title: "Switch Levels", multiple: true, required: false
|
||||||
input "temperatures", "capability.temperatureMeasurement", title: "Temperature Sensors", multiple: true, required: false
|
input "temperatures", "capability.temperatureMeasurement", title: "Temperature Sensors", multiple: true, required: false
|
||||||
input "thermostats", "capability.thermostat", title: "Thermostats", multiple: true, required: false
|
input "thermostats", "capability.thermostat", title: "Thermostats", multiple: true, required: false
|
||||||
//input "valves", "capability.valve", title: "Valves", multiple: true, required: false
|
input "valves", "capability.valve", title: "Valves", multiple: true, required: false
|
||||||
input "waterSensors", "capability.waterSensor", title: "Water Sensors", multiple: true, required: false
|
input "waterSensors", "capability.waterSensor", title: "Water Sensors", multiple: true, required: false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -74,77 +74,77 @@ mappings {
|
|||||||
}
|
}
|
||||||
|
|
||||||
def subscribeToEvents() {
|
def subscribeToEvents() {
|
||||||
/*if (accelerometers != null) {
|
if (accelerometers != null) {
|
||||||
subscribe(accelerometers, "acceleration", genericHandler)
|
subscribe(accelerometers, "acceleration", genericHandler)
|
||||||
}*/
|
}
|
||||||
if (alarms != null) {
|
if (alarms != null) {
|
||||||
subscribe(alarms, "alarm", genericHandler)
|
subscribe(alarms, "alarm", genericHandler)
|
||||||
}
|
}
|
||||||
/*if (batteries != null) {
|
if (batteries != null) {
|
||||||
subscribe(batteries, "battery", genericHandler)
|
subscribe(batteries, "battery", genericHandler)
|
||||||
}*/
|
}
|
||||||
/*if (beacons != null) {
|
if (beacons != null) {
|
||||||
subscribe(beacons, "presence", genericHandler)
|
subscribe(beacons, "presence", genericHandler)
|
||||||
}*/
|
}
|
||||||
/*
|
|
||||||
if (buttons != null) {
|
if (buttons != null) {
|
||||||
subscribe(buttons, "button", genericHandler)
|
subscribe(buttons, "button", genericHandler)
|
||||||
}*/
|
}
|
||||||
/*if (cos != null) {
|
if (cos != null) {
|
||||||
subscribe(cos, "carbonMonoxide", genericHandler)
|
subscribe(cos, "carbonMonoxide", genericHandler)
|
||||||
}*/
|
}
|
||||||
/*if (colors != null) {
|
if (colors != null) {
|
||||||
subscribe(colors, "hue", genericHandler)
|
subscribe(colors, "hue", genericHandler)
|
||||||
subscribe(colors, "saturation", genericHandler)
|
subscribe(colors, "saturation", genericHandler)
|
||||||
subscribe(colors, "color", genericHandler)
|
subscribe(colors, "color", genericHandler)
|
||||||
}*/
|
}
|
||||||
if (contacts != null) {
|
if (contacts != null) {
|
||||||
subscribe(contacts, "contact", genericHandler)
|
subscribe(contacts, "contact", genericHandler)
|
||||||
}
|
}
|
||||||
/*if (doorsControllers != null) {
|
if (doorsControllers != null) {
|
||||||
subscribe(doorsControllers, "door", genericHandler)
|
subscribe(doorsControllers, "door", genericHandler)
|
||||||
}*/
|
}
|
||||||
/*if (energyMeters != null) {
|
if (energyMeters != null) {
|
||||||
subscribe(energyMeters, "energy", genericHandler)
|
subscribe(energyMeters, "energy", genericHandler)
|
||||||
}*/
|
}
|
||||||
/*if (illuminances != null) {
|
if (illuminances != null) {
|
||||||
subscribe(illuminances, "illuminance", genericHandler)
|
subscribe(illuminances, "illuminance", genericHandler)
|
||||||
}*/
|
}
|
||||||
if (locks != null) {
|
if (locks != null) {
|
||||||
subscribe(locks, "lock", genericHandler)
|
subscribe(locks, "lock", genericHandler)
|
||||||
}
|
}
|
||||||
if (motions != null) {
|
if (motions != null) {
|
||||||
subscribe(motions, "motion", genericHandler)
|
subscribe(motions, "motion", genericHandler)
|
||||||
}
|
}
|
||||||
/*if (musicPlayers != null) {
|
if (musicPlayers != null) {
|
||||||
subscribe(musicPlayers, "status", genericHandler)
|
subscribe(musicPlayers, "status", genericHandler)
|
||||||
subscribe(musicPlayers, "level", genericHandler)
|
subscribe(musicPlayers, "level", genericHandler)
|
||||||
subscribe(musicPlayers, "trackDescription", genericHandler)
|
subscribe(musicPlayers, "trackDescription", genericHandler)
|
||||||
subscribe(musicPlayers, "trackData", genericHandler)
|
subscribe(musicPlayers, "trackData", genericHandler)
|
||||||
subscribe(musicPlayers, "mute", genericHandler)
|
subscribe(musicPlayers, "mute", genericHandler)
|
||||||
}*/
|
}
|
||||||
/*if (powerMeters != null) {
|
if (powerMeters != null) {
|
||||||
subscribe(powerMeters, "power", genericHandler)
|
subscribe(powerMeters, "power", genericHandler)
|
||||||
}*/
|
}
|
||||||
if (presences != null) {
|
if (presences != null) {
|
||||||
subscribe(presences, "presence", genericHandler)
|
subscribe(presences, "presence", genericHandler)
|
||||||
}
|
}
|
||||||
if (humidities != null) {
|
if (humidities != null) {
|
||||||
subscribe(humidities, "humidity", genericHandler)
|
subscribe(humidities, "humidity", genericHandler)
|
||||||
}
|
}
|
||||||
/*if (relaySwitches != null) {
|
if (relaySwitches != null) {
|
||||||
subscribe(relaySwitches, "switch", genericHandler)
|
subscribe(relaySwitches, "switch", genericHandler)
|
||||||
}*/
|
}
|
||||||
/*if (sleepSensors != null) {
|
if (sleepSensors != null) {
|
||||||
subscribe(sleepSensors, "sleeping", genericHandler)
|
subscribe(sleepSensors, "sleeping", genericHandler)
|
||||||
}*/
|
}
|
||||||
/*if (smokeDetectors != null) {
|
if (smokeDetectors != null) {
|
||||||
subscribe(smokeDetectors, "smoke", genericHandler)
|
subscribe(smokeDetectors, "smoke", genericHandler)
|
||||||
}*/
|
}
|
||||||
/*if (peds != null) {
|
if (peds != null) {
|
||||||
subscribe(peds, "steps", genericHandler)
|
subscribe(peds, "steps", genericHandler)
|
||||||
subscribe(peds, "goal", genericHandler)
|
subscribe(peds, "goal", genericHandler)
|
||||||
}*/
|
}
|
||||||
if (switches != null) {
|
if (switches != null) {
|
||||||
subscribe(switches, "switch", genericHandler)
|
subscribe(switches, "switch", genericHandler)
|
||||||
}
|
}
|
||||||
@@ -163,9 +163,9 @@ def subscribeToEvents() {
|
|||||||
subscribe(thermostats, "thermostatFanMode", genericHandler)
|
subscribe(thermostats, "thermostatFanMode", genericHandler)
|
||||||
subscribe(thermostats, "thermostatOperatingState", genericHandler)
|
subscribe(thermostats, "thermostatOperatingState", genericHandler)
|
||||||
}
|
}
|
||||||
/*if (valves != null) {
|
if (valves != null) {
|
||||||
subscribe(valves, "contact", genericHandler)
|
subscribe(valves, "contact", genericHandler)
|
||||||
}*/
|
}
|
||||||
if (waterSensors != null) {
|
if (waterSensors != null) {
|
||||||
subscribe(waterSensors, "water", genericHandler)
|
subscribe(waterSensors, "water", genericHandler)
|
||||||
}
|
}
|
||||||
@@ -177,6 +177,7 @@ def getAccessKey() {
|
|||||||
httpError(404, "Access Key Not Found")
|
httpError(404, "Access Key Not Found")
|
||||||
} else {
|
} else {
|
||||||
[
|
[
|
||||||
|
grokerRootUrl: state.grokerRootUrl,
|
||||||
accessKey: state.accessKey
|
accessKey: state.accessKey
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -212,6 +213,12 @@ def setBucketKey() {
|
|||||||
def setAccessKey() {
|
def setAccessKey() {
|
||||||
log.trace "set access key"
|
log.trace "set access key"
|
||||||
def newAccessKey = request.JSON?.accessKey
|
def newAccessKey = request.JSON?.accessKey
|
||||||
|
def newGrokerRootUrl = request.JSON?.grokerRootUrl
|
||||||
|
|
||||||
|
if (newGrokerRootUrl && newGrokerRootUrl != state.grokerRootUrl) {
|
||||||
|
state.grokerRootUrl = "$newGrokerRootUrl"
|
||||||
|
state.isBucketCreated = false
|
||||||
|
}
|
||||||
|
|
||||||
if (newAccessKey && newAccessKey != state.accessKey) {
|
if (newAccessKey && newAccessKey != state.accessKey) {
|
||||||
state.accessKey = "$newAccessKey"
|
state.accessKey = "$newAccessKey"
|
||||||
@@ -224,6 +231,7 @@ def installed() {
|
|||||||
subscribeToEvents()
|
subscribeToEvents()
|
||||||
|
|
||||||
state.isBucketCreated = false
|
state.isBucketCreated = false
|
||||||
|
state.grookerRootUrl = "https://groker.initialstate.com"
|
||||||
}
|
}
|
||||||
|
|
||||||
def updated() {
|
def updated() {
|
||||||
@@ -248,10 +256,11 @@ def createBucket() {
|
|||||||
def bucketCreateBody = new JsonSlurper().parseText("{\"bucketKey\": \"$bucketKey\", \"bucketName\": \"$bucketName\"}")
|
def bucketCreateBody = new JsonSlurper().parseText("{\"bucketKey\": \"$bucketKey\", \"bucketName\": \"$bucketName\"}")
|
||||||
|
|
||||||
def bucketCreatePost = [
|
def bucketCreatePost = [
|
||||||
uri: 'https://groker.initialstate.com/api/buckets',
|
uri: '${state.grokerRootUrl}/api/buckets',
|
||||||
headers: [
|
headers: [
|
||||||
"Content-Type": "application/json",
|
"Content-Type": "application/json",
|
||||||
"X-IS-AccessKey": accessKey
|
"X-IS-AccessKey": accessKey,
|
||||||
|
"Accept-Version": "0.0.1"
|
||||||
],
|
],
|
||||||
body: bucketCreateBody
|
body: bucketCreateBody
|
||||||
]
|
]
|
||||||
@@ -288,11 +297,12 @@ def eventHandler(name, value) {
|
|||||||
|
|
||||||
def eventBody = new JsonSlurper().parseText("[{\"key\": \"$name\", \"value\": \"$value\"}]")
|
def eventBody = new JsonSlurper().parseText("[{\"key\": \"$name\", \"value\": \"$value\"}]")
|
||||||
def eventPost = [
|
def eventPost = [
|
||||||
uri: 'https://groker.initialstate.com/api/events',
|
uri: '${state.grokerRootUrl}/api/events',
|
||||||
headers: [
|
headers: [
|
||||||
"Content-Type": "application/json",
|
"Content-Type": "application/json",
|
||||||
"X-IS-BucketKey": "${state.bucketKey}",
|
"X-IS-BucketKey": "${state.bucketKey}",
|
||||||
"X-IS-AccessKey": "${state.accessKey}"
|
"X-IS-AccessKey": "${state.accessKey}",
|
||||||
|
"Accept-Version": "0.0.2"
|
||||||
],
|
],
|
||||||
body: eventBody
|
body: eventBody
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user