Compare commits

..

1 Commits

Author SHA1 Message Date
KV 30b3cb6827 MSA-1651: smart app for siren 2016-12-11 13:27:09 -08:00
2 changed files with 120 additions and 48 deletions
@@ -0,0 +1,80 @@
/**
* Siren DH
*
* Copyright 2016 KV
*
* 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: "Siren DH", namespace: "edison", author: "KV", oauth: true) {
capability "Audio Notification"
capability "Door Control"
capability "Motion Sensor"
}
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 'door' attribute
// TODO: handle 'motion' attribute
}
// handle commands
def playText() {
log.debug "Executing 'playText'"
// TODO: handle 'playText' command
}
def playTextAndResume() {
log.debug "Executing 'playTextAndResume'"
// TODO: handle 'playTextAndResume' command
}
def playTextAndRestore() {
log.debug "Executing 'playTextAndRestore'"
// TODO: handle 'playTextAndRestore' command
}
def playTrack() {
log.debug "Executing 'playTrack'"
// TODO: handle 'playTrack' command
}
def playTrackAndResume() {
log.debug "Executing 'playTrackAndResume'"
// TODO: handle 'playTrackAndResume' command
}
def playTrackAndRestore() {
log.debug "Executing 'playTrackAndRestore'"
// TODO: handle 'playTrackAndRestore' command
}
def open() {
log.debug "Executing 'open'"
// TODO: handle 'open' command
}
def close() {
log.debug "Executing 'close'"
// TODO: handle 'close' command
}
@@ -16,15 +16,12 @@
* *
* Date: 2013-04-30 * Date: 2013-04-30
*/ */
// for the UI
metadata { metadata {
// Automatically generated. Make future change here.
definition (name: "SmartWeather Station Tile", namespace: "smartthings", author: "SmartThings") { definition (name: "SmartWeather Station Tile", namespace: "smartthings", author: "SmartThings") {
capability "Illuminance Measurement" capability "Illuminance Measurement"
capability "Temperature Measurement" capability "Temperature Measurement"
capability "Relative Humidity Measurement" capability "Relative Humidity Measurement"
capability "Sensor" capability "Sensor"
capability "Polling"
attribute "localSunrise", "string" attribute "localSunrise", "string"
attribute "localSunset", "string" attribute "localSunset", "string"
@@ -217,7 +214,7 @@ def poll() {
send(name: "localSunrise", value: localSunrise, descriptionText: "Sunrise today is at $localSunrise") send(name: "localSunrise", value: localSunrise, descriptionText: "Sunrise today is at $localSunrise")
send(name: "localSunset", value: localSunset, descriptionText: "Sunset today at is $localSunset") send(name: "localSunset", value: localSunset, descriptionText: "Sunset today at is $localSunset")
send(name: "illuminance", value: estimateLux(obs.solarradiation, sunriseDate, sunsetDate, weatherIcon) as Integer) send(name: "illuminance", value: estimateLux(sunriseDate, sunsetDate, weatherIcon))
// Forecast // Forecast
def f = get("forecast") def f = get("forecast")
@@ -308,12 +305,8 @@ private send(map) {
sendEvent(map) sendEvent(map)
} }
private estimateLux(solarradiation, sunriseDate, sunsetDate, weatherIcon) { private estimateLux(sunriseDate, sunsetDate, weatherIcon) {
def lux = 0 def lux = 0
if (solarradiation != '--') {
lux = solarradiation.toDouble() / 0.0079
} else {
def now = new Date().time def now = new Date().time
if (now > sunriseDate.time && now < sunsetDate.time) { if (now > sunriseDate.time && now < sunsetDate.time) {
//day //day
@@ -355,7 +348,6 @@ private estimateLux(solarradiation, sunriseDate, sunsetDate, weatherIcon) {
//could do calculations for dusk/dawn too //could do calculations for dusk/dawn too
lux = 10 lux = 10
} }
}
lux lux
} }