Fix Fetching Data example (#403)

This commit is contained in:
Franck Nijhof 2020-02-07 23:48:14 +01:00 committed by GitHub
parent f38d749f22
commit 1649c2d4d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -28,9 +28,10 @@ This API will have a single method to fetch data for all the entities that you h
Home Assistant provides a DataUpdateCoordinator class to help you manage this as efficiently as possible. Home Assistant provides a DataUpdateCoordinator class to help you manage this as efficiently as possible.
```python ```python
from datetime import timedelta
import logging import logging
from homeassistant.helpers import debounce, entity from homeassistant.helpers import entity
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from .const import DOMAIN from .const import DOMAIN
@ -39,10 +40,10 @@ _LOGGER = logging.getLogger(__name__)
async def async_setup_entry(hass, entry, async_add_entities): async def async_setup_entry(hass, entry, async_add_entities):
# assuming API object stored here by __init__.py # assuming API object stored here by __init__.py
api = hass.data[DOMAIN][entry.entry_id] api = hass.data[DOMAIN][entry.entry_id]
async def async_update_data(): async def async_update_data():
"""Fetch data from API endpoint. """Fetch data from API endpoint.
This is the place to pre-process the data to lookup tables This is the place to pre-process the data to lookup tables
so entities can quickly look up their data. so entities can quickly look up their data.
""" """
@ -77,7 +78,7 @@ class MyEntity(entity.Entity):
@property @property
def is_on(self): def is_on(self):
"""Return entity state. """Return entity state.
Example to show how we fetch data from coordinator. Example to show how we fetch data from coordinator.
""" """
self.coordinator.data[self.idx]['state'] self.coordinator.data[self.idx]['state']
@ -90,7 +91,7 @@ class MyEntity(entity.Entity):
@property @property
def available(self): def available(self):
"""Return if entity is available.""" """Return if entity is available."""
return not self.coordinator.failed_last_update return self.coordinator.last_update_success
async def async_added_to_hass(self): async def async_added_to_hass(self):
"""When entity is added to hass.""" """When entity is added to hass."""