diff --git a/examples/load_groups/dump_load_groups.py b/examples/load_groups/dump_load_groups.py index 97108d1..35340e0 100644 --- a/examples/load_groups/dump_load_groups.py +++ b/examples/load_groups/dump_load_groups.py @@ -26,7 +26,7 @@ async def main() -> None: # Print out the id, name, and members of each load group async for load_group in vantage.load_groups: print( - f"[{load_group.id}] '{load_group.name}' loads={load_group.load_ids} level={load_group.level}%" + f"[{load_group.id}] '{load_group.name}' loads={load_group.load_table} level={load_group.level}%" ) diff --git a/src/aiovantage/controllers/blind_groups.py b/src/aiovantage/controllers/blind_groups.py index 7fe44a8..3744b6d 100644 --- a/src/aiovantage/controllers/blind_groups.py +++ b/src/aiovantage/controllers/blind_groups.py @@ -23,7 +23,7 @@ def blinds(self, vid: int) -> QuerySet[BlindBase]: if isinstance(blind_group, BlindGroup): def _filter1(blind: BlindBase) -> bool: - return blind.id in blind_group.blind_ids + return blind.id in blind_group.blind_table return self._vantage.blinds.filter(_filter1) diff --git a/src/aiovantage/controllers/load_groups.py b/src/aiovantage/controllers/load_groups.py index 8656a95..67aa006 100644 --- a/src/aiovantage/controllers/load_groups.py +++ b/src/aiovantage/controllers/load_groups.py @@ -47,4 +47,4 @@ def loads(self, vid: int) -> QuerySet[Load]: """Return a queryset of all loads in this load group.""" load_group = self[vid] - return self._vantage.loads.filter(lambda load: load.id in load_group.load_ids) + return self._vantage.loads.filter(lambda load: load.id in load_group.load_table) diff --git a/src/aiovantage/objects/blind_base.py b/src/aiovantage/objects/blind_base.py index 11ea7ff..c9631b3 100644 --- a/src/aiovantage/objects/blind_base.py +++ b/src/aiovantage/objects/blind_base.py @@ -10,7 +10,7 @@ class BlindBase(SystemObject): """Blind base class.""" - orientation: str | None = field( + shade_orientation: str | None = field( default=None, metadata={ "name": "ShadeOrientation", @@ -18,7 +18,7 @@ class BlindBase(SystemObject): }, ) - type: str | None = field( + shade_type: str | None = field( default=None, metadata={ "name": "ShadeType", diff --git a/src/aiovantage/objects/blind_group.py b/src/aiovantage/objects/blind_group.py index 30e1786..7722c74 100644 --- a/src/aiovantage/objects/blind_group.py +++ b/src/aiovantage/objects/blind_group.py @@ -10,7 +10,7 @@ class BlindGroup(BlindGroupBase, LocationObject): """BlindGroup object.""" - blind_ids: list[int] = field( + blind_table: list[int] = field( default_factory=list, metadata={ "name": "Blind", diff --git a/src/aiovantage/objects/button.py b/src/aiovantage/objects/button.py index e30d9b6..e48dd62 100644 --- a/src/aiovantage/objects/button.py +++ b/src/aiovantage/objects/button.py @@ -16,19 +16,19 @@ class Button(SystemObject): } ) - down_id: int = field( + down: int = field( metadata={ "name": "Down", } ) - up_id: int = field( + up: int = field( metadata={ "name": "Up", } ) - hold_id: int = field( + hold: int = field( metadata={ "name": "Hold", } diff --git a/src/aiovantage/objects/load.py b/src/aiovantage/objects/load.py index c3d079e..ae68bf0 100644 --- a/src/aiovantage/objects/load.py +++ b/src/aiovantage/objects/load.py @@ -22,7 +22,7 @@ class Load(LocationObject): } ) - power_profile_id: int = field( + power_profile: int = field( metadata={ "name": "PowerProfile", } diff --git a/src/aiovantage/objects/load_group.py b/src/aiovantage/objects/load_group.py index a729ff6..da9dc04 100644 --- a/src/aiovantage/objects/load_group.py +++ b/src/aiovantage/objects/load_group.py @@ -9,7 +9,7 @@ class LoadGroup(LocationObject): """LoadGroup object.""" - load_ids: list[int] = field( + load_table: list[int] = field( default_factory=list, metadata={ "name": "Load", diff --git a/src/aiovantage/objects/location_object.py b/src/aiovantage/objects/location_object.py index 6175264..e9aeaac 100644 --- a/src/aiovantage/objects/location_object.py +++ b/src/aiovantage/objects/location_object.py @@ -10,7 +10,7 @@ class LocationObject(SystemObject): """Base class for system objects in an area.""" # Some objects in firmware 2.x do not have an area_id - area_id: int | None = field( + area: int | None = field( default=None, metadata={ "name": "Area", diff --git a/src/aiovantage/objects/station_object.py b/src/aiovantage/objects/station_object.py index c1ddf11..e6e43db 100644 --- a/src/aiovantage/objects/station_object.py +++ b/src/aiovantage/objects/station_object.py @@ -15,7 +15,7 @@ class StationObject(LocationObject): } ) - bus_id: int = field( + bus: int = field( metadata={ "name": "Bus", } diff --git a/src/aiovantage/objects/system_object.py b/src/aiovantage/objects/system_object.py index 8ff0572..f668cd7 100644 --- a/src/aiovantage/objects/system_object.py +++ b/src/aiovantage/objects/system_object.py @@ -9,14 +9,14 @@ class SystemObject: """Base class for all objects.""" - id: int = field( + vid: int = field( metadata={ "name": "VID", "type": "Attribute", } ) - master_id: int = field( + master: int = field( metadata={ "name": "Master", "type": "Attribute", @@ -51,13 +51,23 @@ class SystemObject: ) # Not available in 2.x firmware - display_name: str | None = field( + dname: str | None = field( default=None, metadata={ "name": "DName", }, ) + @property + def id(self) -> int: + """Return the ID of the object.""" + return self.vid + + @property + def display_name(self) -> str: + """Return the display name of the object.""" + return self.dname or self.name + @classmethod def vantage_type(cls) -> str: """Return the Vantage type for this object."""