1 """Update coordinator for pyLoad Integration."""
3 from dataclasses
import dataclass
4 from datetime
import timedelta
7 from pyloadapi
import CannotConnect, InvalidAuth, ParserError, PyLoadAPI
15 from .const
import DOMAIN
17 _LOGGER = logging.getLogger(__name__)
22 @dataclass(kw_only=True)
24 """Data from pyLoad."""
33 captcha: bool |
None =
None
38 """pyLoad coordinator."""
40 config_entry: ConfigEntry
42 def __init__(self, hass: HomeAssistant, pyload: PyLoadAPI) ->
None:
43 """Initialize pyLoad coordinator."""
48 update_interval=SCAN_INTERVAL,
51 self.
versionversion: str |
None =
None
54 """Fetch data from API endpoint."""
60 free_space=await self.
pyloadpyload.free_space(),
63 except InvalidAuth
as e:
65 await self.
pyloadpyload.login()
66 except InvalidAuth
as exc:
68 translation_domain=DOMAIN,
69 translation_key=
"setup_authentication_exception",
70 translation_placeholders={CONF_USERNAME: self.
pyloadpyload.username},
74 "Unable to retrieve data due to cookie expiration"
76 except CannotConnect
as e:
78 "Unable to connect and retrieve data from pyLoad API"
80 except ParserError
as e:
81 raise UpdateFailed(
"Unable to parse data from pyLoad API")
from e
None __init__(self, HomeAssistant hass, PyLoadAPI pyload)
PyLoadData _async_update_data(self)
def get_status(hass, host, port)