WUndergroundPlugin not working?

Posted on
Wed Mar 08, 2017 12:58 pm
aldera offline
User avatar
Posts: 188
Joined: Aug 30, 2016
Location: Michigan, USA

WUndergroundPlugin not working?

Hello,

I installed your plugin and every 15 minutes I get the following error: Weather: Unable to compile forecast email message due to missing data. Will keep trying. I turned on debugging and below is what shows up in the log every 15 minutes:

Mar 8, 2017, 1:29:25 PM
WUnderground Debug refreshWeatherData() method called.
WUnderground Debug config.json defaults:
WUnderground Debug dailyCallCounter: 51
WUnderground Debug dailyCallDay: 2017-03-08
WUnderground Debug dailyCallLimitReached: False
WUnderground Debug callDay() method called.
WUnderground Debug callDay: 2017-03-08
WUnderground Debug dailyCallLimitReached: False
WUnderground Debug Is todays_date: 2017-03-08 greater than dailyCallDay: 2017-03-08?
WUnderground Debug Today is not a new day.
WUnderground Debug Has the call limit been reached?
WUnderground Debug The daily call limit has not been reached.
WUnderground Debug Parse weather data for device: Weather
WUnderground Debug getWeatherData() method called.
WUnderground Debug URL prepared for API call: http://api.wunderground.com/api/xxxxxxx ... 49417.json
WUnderground Debug Getting weather data for location: 49417
WUnderground Debug [Weather download: 01.250486 seconds]
WUnderground Debug Adding weather data for 49417 to Master Weather Dictionary.
WUnderground Debug 448 callsLeft = (500 - 52)
WUnderground Debug parseWeatherData() method called.
WUnderground Debug temp_f: floatEverything() method called.
WUnderground Debug temp_f: fixCorruptedData() method called.
WUnderground Debug temp_c: floatEverything() method called.
WUnderground Debug temp_c: fixCorruptedData() method called.
WUnderground Debug tempF (S): uiTemperatureFormat() method called.
WUnderground Debug itemListTemperatureFormat() method called.
WUnderground Debug Returning value unchanged.
WUnderground Debug Day/Night Icon: partlycloudy
WUnderground Debug All Day Icon: partlycloudy
WUnderground Debug fixPressureSymbol() method called.
WUnderground Debug Solar Radiation: floatEverything() method called.
WUnderground Debug windDIR: fixWind() method called.
WUnderground Debug windDegrees: fixCorruptedData() method called.
WUnderground Debug relativeHumidity: fixCorruptedData() method called.
WUnderground Debug relativeHumidity: floatEverything() method called.
WUnderground Debug relativeHumidity: uiPercentageFormat() method called.
WUnderground Debug Error: list index out of range (Line 1525)
WUnderground Debug Data not available for this location.
WUnderground Debug dewpointF (S): fixCorruptedData() method called.
WUnderground Debug dewpointF (S): floatEverything() method called.
WUnderground Debug dewpointF (S): uiTemperatureFormat() method called.
WUnderground Debug feelsLikeF (S): fixCorruptedData() method called.
WUnderground Debug feelsLikeF (S): floatEverything() method called.
WUnderground Debug feelsLikeF (S): uiTemperatureFormat() method called.
WUnderground Debug heatIndexF (S): fixCorruptedData() method called.
WUnderground Debug heatIndexF (S): floatEverything() method called.
WUnderground Debug heatIndexF (S): uiTemperatureFormat() method called.
WUnderground Debug precipToday (S): fixCorruptedData() method called.
WUnderground Debug precipToday (S): floatEverything() method called.
WUnderground Debug precipToday (S): uiRainFormat() method called.
WUnderground Debug precipOneHour (S): fixCorruptedData() method called.
WUnderground Debug precipOneHour (S): floatEverything() method called.
WUnderground Debug precipOneHour (S): uiRainFormat() method called.
WUnderground Debug pressure (S): fixCorruptedData() method called.
WUnderground Debug pressure (S): floatEverything() method called.
WUnderground Debug visibility (S): fixCorruptedData() method called.
WUnderground Debug visibility (S): floatEverything() method called.
WUnderground Debug windChillF (S): fixCorruptedData() method called.
WUnderground Debug windChillF (S): floatEverything() method called.
WUnderground Debug windChillF (S): uiTemperatureFormat() method called.
WUnderground Debug windGust (S): fixCorruptedData() method called.
WUnderground Debug windGust (S): floatEverything() method called.
WUnderground Debug wind_gust (S): uiWindFormat() method called.
WUnderground Debug wind_gust: floatEverything() method called.
WUnderground Debug windSpeed (S): fixCorruptedData() method called.
WUnderground Debug windSpeed (S): floatEverything() method called.
WUnderground Debug wind_speed (S): uiWindFormat() method called.
WUnderground Debug parseAlerts() method called.
WUnderground Debug [(u'WND', u'High Wind Warning', u'...High Wind Warning remains in effect until 7 PM EST this\nevening...\n\nHazardous weather...\n\n * damaging wind gusts to around 65 mph expected.\n\n * Strongest winds expected through 500 PM. \n\n * Sustained winds of 30 to 40 mph. \n\nImpacts...\n\n * widespread power outages expected today. \n\n * Power outages may last into Thursday.\n\n * High profile vehicles will need to exercise caution on north to\n south orientated roadways.\n\n * Tree branches and limbs will come down today with full trees\n toppled as well. \n\nPrecautionary/preparedness actions...\n\n * a High Wind Warning means a hazardous high wind event is \n expected or occurring. Sustained wind speeds of at least 40 \n mph or gusts of 58 mph or more can lead to property damage.', u'7:00 PM EST on March 08, 2017')]
WUnderground Debug Error: 'attribution' (Line 1354)
WUnderground Debug parseWeatherForecast() method called.
WUnderground Debug foreHighF (S): floatEverything() method called.
WUnderground Debug foreHighF (S): uiTemperatureFormat() method called.
WUnderground Debug foreLowF (S): floatEverything() method called.
WUnderground Debug foreLowF (S): uiTemperatureFormat() method called.
WUnderground Debug forePop (S): floatEverything() method called.
WUnderground Debug forePop (S): uiPercentageFormat() method called.
WUnderground Debug foreHumidity (S): floatEverything() method called.
WUnderground Debug ForeHumidity (S): uiPercentageFormat() method called.
WUnderground Debug foreWindMPH (S): floatEverything() method called.
WUnderground Debug foreHighF (S): floatEverything() method called.
WUnderground Debug foreHighF (S): uiTemperatureFormat() method called.
WUnderground Debug foreLowF (S): floatEverything() method called.
WUnderground Debug foreLowF (S): uiTemperatureFormat() method called.
WUnderground Debug forePop (S): floatEverything() method called.
WUnderground Debug forePop (S): uiPercentageFormat() method called.
WUnderground Debug foreHumidity (S): floatEverything() method called.
WUnderground Debug ForeHumidity (S): uiPercentageFormat() method called.
WUnderground Debug foreWindMPH (S): floatEverything() method called.
WUnderground Debug foreHighF (S): floatEverything() method called.
WUnderground Debug foreHighF (S): uiTemperatureFormat() method called.
WUnderground Debug foreLowF (S): floatEverything() method called.
WUnderground Debug foreLowF (S): uiTemperatureFormat() method called.
WUnderground Debug forePop (S): floatEverything() method called.
WUnderground Debug forePop (S): uiPercentageFormat() method called.
WUnderground Debug foreHumidity (S): floatEverything() method called.
WUnderground Debug ForeHumidity (S): uiPercentageFormat() method called.
WUnderground Debug foreWindMPH (S): floatEverything() method called.
WUnderground Debug foreHighF (S): floatEverything() method called.
WUnderground Debug foreHighF (S): uiTemperatureFormat() method called.
WUnderground Debug foreLowF (S): floatEverything() method called.
WUnderground Debug foreLowF (S): uiTemperatureFormat() method called.
WUnderground Debug forePop (S): floatEverything() method called.
WUnderground Debug forePop (S): uiPercentageFormat() method called.
WUnderground Debug foreHumidity (S): floatEverything() method called.
WUnderground Debug ForeHumidity (S): uiPercentageFormat() method called.
WUnderground Debug foreWindMPH (S): floatEverything() method called.
WUnderground Debug emailForecast() method called.
WUnderground Debug sendMailHighF: floatEverything() method called.
WUnderground Debug sendMailLowF: floatEverything() method called.
WUnderground Debug sendMailMaxHumidity: floatEverything() method called.
WUnderground Debug sendMailQPF: floatEverything() method called.
WUnderground Debug sendMailRecordHighF: floatEverything() method called.
WUnderground Debug sendMailRecordLowF: floatEverything() method called.
WUnderground Status Weather: Unable to compile forecast email message due to missing data. Will keep trying.
WUnderground Debug Error: list index out of range Line 543
WUnderground Debug Locations Polled: [u'49417']
Weather Underground cycle complete.
WUnderground Debug Plugin settings saved successfully.
WUnderground Debug [Plugin execution time: 01.581976 seconds]


I x'ed out the API key in the url created above but the actual url created does create a json file that has all the weather data listed. I attached a copy of the json file and a picture of the configuration screen. Can you see what might be the problem based on this info? Thanks
Attachments
api_call.txt
(81.06 KiB) Downloaded 165 times
config.jpg
config.jpg (178.1 KiB) Viewed 2605 times

Posted on
Wed Mar 08, 2017 3:06 pm
DaveL17 offline
User avatar
Posts: 6744
Joined: Aug 20, 2013
Location: Chicago, IL, USA

Re: WUndergroundPlugin not working?

Yeah, sorry about that. Here's what's going on.

The Weather Underground API is supposed to send a standard set of fields but it doesn't always do that. This is a known issue with the API that Weather Underground has acknowledged, and WU has said that they will get to it "eventually". Sometimes, the error is short lived, and the plugin can recover on a future cycle. However, it seems that when WU doesn't recover very quickly, these messages can become a nuisance. So in the short run, you can ignore the messages or turn off the forecast email feature.

In the intermediate term, I think I'm going to change the plugin so that if the returned forecast data are invalid, the plugin won't try again until the following day. In the longer-term, I'm probably going to refactor that part of the code to "ignore" missing fields and just return whatever subset of data that WU has provided.

To be clear, we've only seen this issue with the forecast data. It appears that the other components of the API are unaffected.

I'm sorry that I can't do more about it, but I've only a few tools to work with for this particular problem.

p.s. Looks like you all are getting the windy weather that we're getting on the left side of the lake. :D

I came here to drink milk and kick ass....and I've just finished my milk.

[My Plugins] - [My Forums]

Posted on
Wed Mar 08, 2017 4:55 pm
DaveL17 offline
User avatar
Posts: 6744
Joined: Aug 20, 2013
Location: Chicago, IL, USA

Re: WUndergroundPlugin not working?

I've posted a new release that pushes the next attempt to email the forecast to the following day.

I came here to drink milk and kick ass....and I've just finished my milk.

[My Plugins] - [My Forums]

Posted on
Wed Mar 08, 2017 6:19 pm
aldera offline
User avatar
Posts: 188
Joined: Aug 30, 2016
Location: Michigan, USA

Re: WUndergroundPlugin not working?

Okay. No problem. Doesn't sound like you have a whole lot of control over their returned data format. I'll shut off the forecast.

Thanks.

Page 1 of 1

Who is online

Users browsing this forum: No registered users and 3 guests

cron