Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 14 additions & 13 deletions homeassistant/components/iqvia/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""Support for IQVIA."""
import asyncio
from datetime import timedelta
from functools import partial

from pyiqvia import Client
from pyiqvia.errors import IQVIAError
Expand Down Expand Up @@ -77,7 +78,7 @@ async def async_get_data_from_api(api_coro):
LOGGER,
name=f"{entry.data[CONF_ZIP_CODE]} {sensor_type}",
update_interval=DEFAULT_SCAN_INTERVAL,
update_method=lambda coro=api_coro: async_get_data_from_api(coro),
update_method=partial(async_get_data_from_api, api_coro),
)
init_data_update_tasks.append(coordinator.async_refresh())

Expand Down Expand Up @@ -151,22 +152,22 @@ def unit_of_measurement(self):
"""Return the unit the value is expressed in."""
return "index"

@callback
def _handle_coordinator_update(self) -> None:
"""Handle updated data from the coordinator."""
self.update_from_latest_data()
self.async_write_ha_state()

async def async_added_to_hass(self):
"""Register callbacks."""

@callback
def update():
"""Update the state."""
self.update_from_latest_data()
self.async_write_ha_state()

self.async_on_remove(self.coordinator.async_add_listener(update))
await super().async_added_to_hass()

if self._type == TYPE_ALLERGY_FORECAST:
outlook_coordinator = self.hass.data[DOMAIN][DATA_COORDINATOR][
self._entry.entry_id
][TYPE_ALLERGY_OUTLOOK]
self.async_on_remove(outlook_coordinator.async_add_listener(update))
self.async_on_remove(
self.hass.data[DOMAIN][DATA_COORDINATOR][self._entry.entry_id][
TYPE_ALLERGY_OUTLOOK
].async_add_listener(self._handle_coordinator_update)
)

self.update_from_latest_data()

Expand Down