[RELEASE: A better weather device handler]


This is a custom device handler that allows you to get weather related info from more than just your hub location. It also works with webCore. You can build pistons based on the attributes in the handler. Smartthings and webCore can get this information for the hub location, but is more difficult to get info for locations away from your hub. Thus the reason I built this. I used the smart weather tile device handler as a spring board to get me started and it went from there. Thank You TAKISSD !
I am a person that would rather use point and click than try to hash away at syntax to get information that I want. Most of what is available from digital weather undergrouind is here as an attribute.

Here’s a screenshot of the device in Smartthings

Here is a piston getting moon rise and set based on GPS locations from webCore presence sensor.

You can use zip ode, state/city ie Tx/Dallas, Geo locations to get weather.

It is available on GitHub:

Using a web request to get a time, and using that time to run a piston

here are a couple more piston examples

this one sends sms message every day with the current conditions, forecast and any weather alerts at a specified time based on webcore presence sensor latitude,longitude cooirdinates

this one will not run on its own, it needs to be called from another piston or use manually for testing. again using webCore Presence sensor coordinates


What I doing wrong. My text returns empty device list. Thanks.


What did you name your weather device that you installed with the custom device handler I posted


Ahh, nevermind. You named it weather test right? If so, In that expression where it is setting the variable (line 27), change all the devices from ‘a better weather’ to ‘ Weather test’


Thank you. That fixed it. So how do I get weather reports texted for the other locations I created?

Does this piston automatically send the report based on where I am?


You would change loc1() to loc2() and then repeat the process from there down in the piston and the same for loc3()


No. It can though. You can have location 1 follow you by using a piston to make it do that.

It is only set up to have location 1 follow you if you use the piston idea.
I have a piston that changes location 1 weather info depending on where you phone is. However it uses the webcore presence to get geo locations and changes location 1 until you are home, then switches back to what you have Setup now. I can share if you want That changes the location 1 to wherever your phone is. Then you can run the piston you are working on to send messages based on location 1


You need to change the ‘presence Kim’ part to whatever you named your webcore presence sensor


I am trying to get this handler working for me, as I do like the parameters I can pull. The issue i have is it doesn’t like any Canadian location out of the larger centres. I can get the weather from Calgary, but not my airport. I have tried the town name, the lat/long as well as the airport code, Any thoughts?


What is your zip. And cut providence name


T8S 1S2 airport code is CYPE Peace River, AB
55.25 -117.25
The only one that kind of works is CYPE, but if I go to 1 of the other locals, it won’t come back properly, The screen shows CYPE and 'Home" but shows the temp for the other local


Put your lat/long in like this.



55.25,-117.25 is for new fish creek. Is that correct?


Here’s how I have it setup right now

Click on the gear in upper right corner to make adjustments to this screen as needed

This is what is showing in the main screen