X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=cached%2Fweather_forecast.py;fp=cached%2Fweather_forecast.py;h=a413d9f424b3c76d0839a44695310516dee2cdf4;hb=351e77c767c9084aa486eedbdc9902c635b06261;hp=6e2f5f9ca0ffcc9eae3d2c7d6615549fb222a0db;hpb=9484900f080e16f118806fe54973e69d36b043e8;p=python_utils.git diff --git a/cached/weather_forecast.py b/cached/weather_forecast.py index 6e2f5f9..a413d9f 100644 --- a/cached/weather_forecast.py +++ b/cached/weather_forecast.py @@ -59,15 +59,23 @@ class CachedDetailedWeatherForecast(object): self.forecasts = {} # Ask the raspberry pi about the outside temperature. - www = urllib.request.urlopen( - "http://10.0.0.75/~pi/outside_temp" - ) - current_temp = www.read().decode("utf-8") - current_temp = float(current_temp) - current_temp *= (9/5) - current_temp += 32.0 - current_temp = round(current_temp) - www.close() + www = None + try: + www = urllib.request.urlopen( + "http://10.0.0.75/~pi/outside_temp", + timeout=2, + ) + current_temp = www.read().decode("utf-8") + current_temp = float(current_temp) + current_temp *= (9/5) + current_temp += 32.0 + current_temp = round(current_temp) + except Exception: + logger.warning('Timed out reading 10.0.0.75/~pi/outside_temp?!') + current_temp = None + finally: + if www is not None: + www.close() # Get a weather forecast for Bellevue. www = urllib.request.urlopen( @@ -102,7 +110,7 @@ class CachedDetailedWeatherForecast(object): sunrise = s['sunrise'] sunset = s['sunset'] - if dt.date() == now.date() and not said_temp: + if dt.date() == now.date() and not said_temp and current_temp is not None: blurb = f'{day.get_text()}: The current outside tempterature is {current_temp}. ' blurb += txt.get_text() said_temp = True