Compare commits

...

1 Commits

Author SHA1 Message Date
Brian Steere
559bc31194 Update weather station tile
Now with actual lux calculation when solar radiation data is available. Also includes refresh/polling capabilities
2016-12-19 11:32:25 -06:00

View File

@@ -16,12 +16,15 @@
* *
* 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"
@@ -214,7 +217,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(sunriseDate, sunsetDate, weatherIcon)) send(name: "illuminance", value: estimateLux(obs.solarradiation, sunriseDate, sunsetDate, weatherIcon) as Integer)
// Forecast // Forecast
def f = get("forecast") def f = get("forecast")
@@ -305,8 +308,12 @@ private send(map) {
sendEvent(map) sendEvent(map)
} }
private estimateLux(sunriseDate, sunsetDate, weatherIcon) { private estimateLux(solarradiation, 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
@@ -348,6 +355,7 @@ private estimateLux(sunriseDate, sunsetDate, weatherIcon) {
//could do calculations for dusk/dawn too //could do calculations for dusk/dawn too
lux = 10 lux = 10
} }
}
lux lux
} }