diff --git a/homeassistant/components/sensor/yr.py b/homeassistant/components/sensor/yr.py index 16ae98f9141b1d6a42d7f7c6c99238d4829fd72d..f081be1a2f13a99ec4eada812cb2222e3dea9dd3 100644 --- a/homeassistant/components/sensor/yr.py +++ b/homeassistant/components/sensor/yr.py @@ -66,9 +66,8 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ }) -@asyncio.coroutine -def async_setup_platform(hass, config, async_add_entities, - discovery_info=None): +async def async_setup_platform(hass, config, async_add_entities, + discovery_info=None): """Set up the Yr.no sensor.""" elevation = config.get(CONF_ELEVATION, hass.config.elevation or 0) forecast = config.get(CONF_FORECAST) @@ -93,7 +92,7 @@ def async_setup_platform(hass, config, async_add_entities, weather = YrData(hass, coordinates, forecast, dev) async_track_utc_time_change(hass, weather.updating_devices, minute=31) - yield from weather.fetching_data() + await weather.fetching_data() class YrSensor(Entity): @@ -156,8 +155,7 @@ class YrData: self.data = {} self.hass = hass - @asyncio.coroutine - def fetching_data(self, *_): + async def fetching_data(self, *_): """Get the latest data from yr.no.""" import xmltodict @@ -169,12 +167,12 @@ class YrData: try: websession = async_get_clientsession(self.hass) with async_timeout.timeout(10, loop=self.hass.loop): - resp = yield from websession.get( + resp = await websession.get( self._url, params=self._urlparams) if resp.status != 200: try_again('{} returned {}'.format(resp.url, resp.status)) return - text = yield from resp.text() + text = await resp.text() except (asyncio.TimeoutError, aiohttp.ClientError) as err: try_again(err) @@ -186,11 +184,10 @@ class YrData: try_again(err) return - yield from self.updating_devices() + await self.updating_devices() async_call_later(self.hass, 60*60, self.fetching_data) - @asyncio.coroutine - def updating_devices(self, *_): + async def updating_devices(self, *_): """Find the current data from self.data.""" if not self.data: return @@ -256,4 +253,4 @@ class YrData: tasks.append(dev.async_update_ha_state()) if tasks: - yield from asyncio.wait(tasks, loop=self.hass.loop) + await asyncio.wait(tasks, loop=self.hass.loop)