Add Tailwind integration (#105926)

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
This commit is contained in:
Franck Nijhof 2023-12-18 08:42:53 +01:00 committed by GitHub
parent 6acbbec839
commit d50b79ba84
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 758 additions and 0 deletions

View file

@ -0,0 +1,39 @@
"""Data update coordinator for Tailwind."""
from datetime import timedelta
from gotailwind import Tailwind, TailwindDeviceStatus, TailwindError
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_HOST, CONF_TOKEN
from homeassistant.core import HomeAssistant
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from .const import DOMAIN, LOGGER
class TailwindDataUpdateCoordinator(DataUpdateCoordinator[TailwindDeviceStatus]):
"""Class to manage fetching Tailwind data."""
config_entry: ConfigEntry
def __init__(self, hass: HomeAssistant, entry: ConfigEntry) -> None:
"""Initialize the coordinator."""
self.tailwind = Tailwind(
host=entry.data[CONF_HOST],
token=entry.data[CONF_TOKEN],
session=async_get_clientsession(hass),
)
super().__init__(
hass,
LOGGER,
name=f"{DOMAIN}_{entry.data[CONF_HOST]}",
update_interval=timedelta(seconds=5),
)
async def _async_update_data(self) -> TailwindDeviceStatus:
"""Fetch data from the Tailwind device."""
try:
return await self.tailwind.status()
except TailwindError as err:
raise UpdateFailed(err) from err