Home Assistant Unofficial Reference 2024.12.1
model.py
Go to the documentation of this file.
1 """Define Hunter Douglas data models."""
2 
3 from __future__ import annotations
4 
5 from dataclasses import dataclass
6 from typing import TYPE_CHECKING
7 
8 from aiopvapi.helpers.aiorequest import AioRequest
9 from aiopvapi.hub import Hub
10 from aiopvapi.resources.room import Room
11 from aiopvapi.resources.scene import Scene
12 from aiopvapi.resources.shade import BaseShade
13 
14 from homeassistant.config_entries import ConfigEntry
15 
16 if TYPE_CHECKING:
17  from .coordinator import PowerviewShadeUpdateCoordinator
18 
19 type PowerviewConfigEntry = ConfigEntry[PowerviewEntryData]
20 
21 
22 @dataclass(slots=True)
24  """Define class for main domain information."""
25 
26  api: AioRequest
27  room_data: dict[str, Room]
28  scene_data: dict[str, Scene]
29  shade_data: dict[str, BaseShade]
30  coordinator: PowerviewShadeUpdateCoordinator
31  device_info: PowerviewDeviceInfo
32 
33 
34 @dataclass(slots=True)
36  """Define class for device information."""
37 
38  name: str
39  mac_address: str
40  serial_number: str
41  firmware: str | None
42  model: str
43  hub_address: str
44 
45 
46 @dataclass(slots=True)
48  """Define class to hold the Powerview Hub API data."""
49 
50  hub: Hub
51  pv_request: AioRequest
52  device_info: PowerviewDeviceInfo