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(
sunrise = s['sunrise']
sunset = s['sunset']
- if dt.date == now.date and not said_temp:
- blurb = f'{day.get_text()}: The current outside tempterature is {current_temp}. ' + txt.get_text()
+ 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
else:
blurb = f'{day.get_text()}: {txt.get_text()}'