Source code for aiohomeconnect.model.appliance

"""Provide appliance models for the Home Connect API."""

from __future__ import annotations

from dataclasses import dataclass, field
from enum import StrEnum

from mashumaro import field_options
from mashumaro.mixins.json import DataClassJSONMixin

from aiohomeconnect.const import LOGGER


[docs] class ApplianceType(StrEnum): """Represent an appliance type.""" @classmethod def _missing_(cls, value: object) -> ApplianceType: """Return UNKNOWN or mapped ones for missing keys.""" LOGGER.debug("Unknown appliance type: %s", value) return cls.UNKNOWN UNKNOWN = "unknown" AIR_CONDITIONER = "AirConditioner" CLEANING_ROBOT = "CleaningRobot" COFFEE_MAKER = "CoffeeMaker" COOK_PROCESSOR = "CookProcessor" DISHWASHER = "Dishwasher" DRYER = "Dryer" FREEZER = "Freezer" FRIDGE_FREEZER = "FridgeFreezer" HOB = "Hob" HOOD = "Hood" MICROWAVE = "Microwave" OVEN = "Oven" REFRIGERATOR = "Refrigerator" WARMING_DRAWER = "WarmingDrawer" WASHER = "Washer" WASHER_DRYER = "WasherDryer" WINE_COOLER = "WineCooler"
[docs] @dataclass class HomeAppliance(DataClassJSONMixin): """Represent HomeAppliance.""" ha_id: str = field(metadata=field_options(alias="haId")) name: str type: ApplianceType brand: str vib: str e_number: str = field(metadata=field_options(alias="enumber")) connected: bool
[docs] @dataclass class ArrayOfHomeAppliances(DataClassJSONMixin): """Object containing an array of home appliances.""" homeappliances: list[HomeAppliance]