summaryrefslogtreecommitdiff
path: root/cached
diff options
context:
space:
mode:
Diffstat (limited to 'cached')
-rw-r--r--cached/weather_forecast.py28
1 files changed, 18 insertions, 10 deletions
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