mirror of
https://github.com/home-assistant/core.git
synced 2025-07-13 00:07:10 +00:00
Add option to set language of openweathermap sensor, and handle updating errors (#8046)
* Add option to set language of openweathermap sensor messages * handle error updating openweathermap sensor
This commit is contained in:
parent
844c8149d7
commit
18f81d7824
@ -23,6 +23,7 @@ _LOGGER = logging.getLogger(__name__)
|
||||
|
||||
CONF_ATTRIBUTION = "Data provided by OpenWeatherMap"
|
||||
CONF_FORECAST = 'forecast'
|
||||
CONF_LANGUAGE = 'language'
|
||||
|
||||
DEFAULT_NAME = 'OWM'
|
||||
|
||||
@ -45,7 +46,8 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
||||
vol.Optional(CONF_MONITORED_CONDITIONS, default=[]):
|
||||
vol.All(cv.ensure_list, [vol.In(SENSOR_TYPES)]),
|
||||
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
|
||||
vol.Optional(CONF_FORECAST, default=False): cv.boolean
|
||||
vol.Optional(CONF_FORECAST, default=False): cv.boolean,
|
||||
vol.Optional(CONF_LANGUAGE, default=None): cv.string,
|
||||
})
|
||||
|
||||
|
||||
@ -61,8 +63,11 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
|
||||
|
||||
name = config.get(CONF_NAME)
|
||||
forecast = config.get(CONF_FORECAST)
|
||||
language = config.get(CONF_LANGUAGE)
|
||||
if isinstance(language, str):
|
||||
language = language.lower()[:2]
|
||||
|
||||
owm = OWM(config.get(CONF_API_KEY))
|
||||
owm = OWM(API_key=config.get(CONF_API_KEY), language=language)
|
||||
|
||||
if not owm:
|
||||
_LOGGER.error("Unable to connect to OpenWeatherMap")
|
||||
@ -178,7 +183,10 @@ class WeatherData(object):
|
||||
@Throttle(MIN_TIME_BETWEEN_UPDATES)
|
||||
def update(self):
|
||||
"""Get the latest data from OpenWeatherMap."""
|
||||
obs = self.owm.weather_at_coords(self.latitude, self.longitude)
|
||||
try:
|
||||
obs = self.owm.weather_at_coords(self.latitude, self.longitude)
|
||||
except TypeError:
|
||||
obs = None
|
||||
if obs is None:
|
||||
_LOGGER.warning("Failed to fetch data from OpenWeatherMap")
|
||||
return
|
||||
@ -186,6 +194,9 @@ class WeatherData(object):
|
||||
self.data = obs.get_weather()
|
||||
|
||||
if self.forecast == 1:
|
||||
obs = self.owm.three_hours_forecast_at_coords(
|
||||
self.latitude, self.longitude)
|
||||
self.fc_data = obs.get_forecast()
|
||||
try:
|
||||
obs = self.owm.three_hours_forecast_at_coords(
|
||||
self.latitude, self.longitude)
|
||||
self.fc_data = obs.get_forecast()
|
||||
except TypeError:
|
||||
_LOGGER.warning("Failed to fetch forecast from OpenWeatherMap")
|
||||
|
Loading…
x
Reference in New Issue
Block a user