getWeatherFeature() API **BROKEN**?


(Barry) #1

I sent the following to SmartThings support this morning:

Something changed recently in the getWeatherFeature() API call. This used to work:

Map weatherData = getWeatherFeature( "forecast/conditions" )

But it now throws an error:

error java.lang.UnsupportedOperationException: The forecast/conditions feature is not enabled @ line ###

However, it is apparently not that the feature is not supported, just that some code is improperly preventing the VALID FORMAT for requesting multiple parts of weather from Weather Underground (“xxx/yyy” is proper syntax). This verified because the following DOES work:

    Map weatherData = getWeatherFeature( "conditions" )
    Map forecastData = getWeatherFeature( "forecast" )

This change will break most, if not ALL, apps that are using advanced features of the Weather Underground API – specifically requesting multiple weather features in a single call (done for efficiency and to ensure that all the data is for the same instant in time).

This should be fixed with the UTMOST URGENCY!!!

N.B. I suspect this is a result of an attempt to block API requests for history data, because SmartThings’ license with Weather Underground apparently doesn’t cover this. However, the implementation apparently does not consider that it is valid to request multiple weather features from the API using the syntax “feature1/feature2/feature3”.


#2

+1 for getting it fixed ASAP. Irrigation scheduler not working.


(Brad) #3

We are working on a fix, I’ll keep this thread posted.


(Brad) #4

A fix for this was released. We don’t see errors related to this any longer but please test and report back if you experience otherwise. :slight_smile:


(Stan) #5

@Brad_ST,
Thanks for the quick fix!! I was having the same issue with getWeatherFeature(“yesterday”, zipcode). Now its working again.

Anyone have suggestions on how modify your code so that if the API breaks again (I think this is the 2nd, maybe 3rd time in last four years) that the smart app will keep on running?


(Micheal ) #6

I changed my code not to use combined parameters (tide and astronomy instead of tide/astronomy).


(Barry) #7

Brad -

Can you please confirm which of the Weather Underground features are being blocked, and which are allowed/supported?

Thanks!


(Brad) #8

I take no credit for the fix, merely a messenger.

In regards to the features, I believe only “history” is being blocked with the rest supported though I admittedly have not worked on this integration or the WU API at all.


#9

It looks like “yesterday” is also blocked. Josiah at ST told me to contact WU…!


(Barry) #10

Odd - ‘yesterday’ just worked for me (6:00PM EDT).

‘yesterday’ and ‘history’ are part of the most expensive package that WU offers (CUMULUS package). My understanding is that SmartThings has never paid for these, but they would work for the first 500 or so calls by users each day, and then they would return an error.

I don’t know what CUMULUS package costs, but I sure wish we had ‘yesterday’ reliably.

FWIW, I created a work-around with the Spruce team to get yesterday’s rainfall by capturing total rainfall at 11:57pm every night, before the counters get reset. Not perfect, but it works pretty well.

If you need voices behind requesting ST providing us access to ‘yesterday’, count me (and the Spruce team). But understand that we’re not requesting something that is free…

And yes, there are free sources, but alas they aren’t integrated with ST nor necessarily with the hundreds of thousands of personal weather stations - part of the reason I use prefer the WunderGround APIs is because I can use the data from my own weather station to measure temps, rainfall and even how light it is outside.


#11

Thanks. “Yesterday” is working today for now- maybe the number of API calls exceeded the free allotment by all ST users in 24 hrs?

I like the idea of harvesting a midnight today count for tomorrow’s yesterday- if yesterday remains flaky in future, maybe I’ll use your approach.