Source code for aiohomeconnect.model.status
"""Provide status models for the Home Connect API."""
from __future__ import annotations
from dataclasses import dataclass, field
from enum import StrEnum
from typing import Any
from mashumaro import field_options
from mashumaro.mixins.json import DataClassJSONMixin
from aiohomeconnect.const import LOGGER
[docs]
@dataclass
class Status(DataClassJSONMixin):
"""Represent Status."""
key: StatusKey
raw_key: str = field(metadata=field_options(alias="key"))
value: Any
name: str | None = None
display_value: str | None = field(
default=None, metadata=field_options(alias="displayvalue")
)
unit: str | None = None
type: str | None = None
constraints: StatusConstraints | None = None
[docs]
@dataclass
class StatusConstraints(DataClassJSONMixin):
"""Represent StatusConstraints."""
min: int | None = None
max: int | None = None
step_size: int | None = field(
default=None, metadata=field_options(alias="stepsize")
)
allowed_values: list[str | None] | None = field(
default=None, metadata=field_options(alias="allowedvalues")
)
display_values: list[str | None] | None = field(
default=None, metadata=field_options(alias="displayvalues")
)
default: Any | None = None
access: str | None = None
[docs]
@dataclass
class ArrayOfStatus(DataClassJSONMixin):
"""List of status of the home appliance."""
status: list[Status]
[docs]
class StatusKey(StrEnum):
"""Represent a status key."""
@classmethod
def _missing_(cls, value: object) -> StatusKey:
"""Return UNKNOWN for missing keys."""
LOGGER.debug("Unknown status key: %s", value)
return cls.UNKNOWN
UNKNOWN = "unknown"
BSH_COMMON_BATTERY_CHARGING_STATE = "BSH.Common.Status.BatteryChargingState"
BSH_COMMON_BATTERY_LEVEL = "BSH.Common.Status.BatteryLevel"
BSH_COMMON_CHARGING_CONNECTION = "BSH.Common.Status.ChargingConnection"
BSH_COMMON_DOOR_STATE = "BSH.Common.Status.DoorState"
BSH_COMMON_INTERIOR_ILLUMINATION_ACTIVE = (
"BSH.Common.Status.InteriorIlluminationActive"
)
BSH_COMMON_LOCAL_CONTROL_ACTIVE = "BSH.Common.Status.LocalControlActive"
BSH_COMMON_OPERATION_STATE = "BSH.Common.Status.OperationState"
BSH_COMMON_REMOTE_CONTROL_ACTIVE = "BSH.Common.Status.RemoteControlActive"
BSH_COMMON_REMOTE_CONTROL_START_ALLOWED = (
"BSH.Common.Status.RemoteControlStartAllowed"
)
BSH_COMMON_VIDEO_CAMERA_STATE = "BSH.Common.Status.Video.CameraState"
REFRIGERATION_COMMON_DOOR_BOTTLE_COOLER = (
"Refrigeration.Common.Status.Door.BottleCooler"
)
REFRIGERATION_COMMON_DOOR_CHILLER = "Refrigeration.Common.Status.Door.Chiller"
REFRIGERATION_COMMON_DOOR_CHILLER_COMMON = (
"Refrigeration.Common.Status.Door.ChillerCommon"
)
REFRIGERATION_COMMON_DOOR_CHILLER_LEFT = (
"Refrigeration.Common.Status.Door.ChillerLeft"
)
REFRIGERATION_COMMON_DOOR_CHILLER_RIGHT = (
"Refrigeration.Common.Status.Door.ChillerRight"
)
REFRIGERATION_COMMON_DOOR_FLEX_COMPARTMENT = (
"Refrigeration.Common.Status.Door.FlexCompartment"
)
REFRIGERATION_COMMON_DOOR_FREEZER = "Refrigeration.Common.Status.Door.Freezer"
REFRIGERATION_COMMON_DOOR_REFRIGERATOR = (
"Refrigeration.Common.Status.Door.Refrigerator"
)
REFRIGERATION_COMMON_DOOR_REFRIGERATOR_2 = (
"Refrigeration.Common.Status.Door.Refrigerator2"
)
REFRIGERATION_COMMON_DOOR_REFRIGERATOR_3 = (
"Refrigeration.Common.Status.Door.Refrigerator3"
)
REFRIGERATION_COMMON_DOOR_WINE_COMPARTMENT = (
"Refrigeration.Common.Status.Door.WineCompartment"
)
CONSUMER_PRODUCTS_COFFEE_MAKER_BEVERAGE_COUNTER_COFFEE = (
"ConsumerProducts.CoffeeMaker.Status.BeverageCounterCoffee"
)
CONSUMER_PRODUCTS_COFFEE_MAKER_BEVERAGE_COUNTER_COFFEE_AND_MILK = (
"ConsumerProducts.CoffeeMaker.Status.BeverageCounterCoffeeAndMilk"
)
CONSUMER_PRODUCTS_COFFEE_MAKER_BEVERAGE_COUNTER_FROTHY_MILK = (
"ConsumerProducts.CoffeeMaker.Status.BeverageCounterFrothyMilk"
)
CONSUMER_PRODUCTS_COFFEE_MAKER_BEVERAGE_COUNTER_HOT_MILK = (
"ConsumerProducts.CoffeeMaker.Status.BeverageCounterHotMilk"
)
CONSUMER_PRODUCTS_COFFEE_MAKER_BEVERAGE_COUNTER_HOT_WATER = (
"ConsumerProducts.CoffeeMaker.Status.BeverageCounterHotWater"
)
CONSUMER_PRODUCTS_COFFEE_MAKER_BEVERAGE_COUNTER_HOT_WATER_CUPS = (
"ConsumerProducts.CoffeeMaker.Status.BeverageCounterHotWaterCups"
)
CONSUMER_PRODUCTS_COFFEE_MAKER_BEVERAGE_COUNTER_MILK = (
"ConsumerProducts.CoffeeMaker.Status.BeverageCounterMilk"
)
CONSUMER_PRODUCTS_COFFEE_MAKER_BEVERAGE_COUNTER_POWDER_COFFEE = (
"ConsumerProducts.CoffeeMaker.Status.BeverageCounterPowderCoffee"
)
CONSUMER_PRODUCTS_COFFEE_MAKER_BEVERAGE_COUNTER_RISTRETTO_ESPRESSO = (
"ConsumerProducts.CoffeeMaker.Status.BeverageCounterRistrettoEspresso"
)
CONSUMER_PRODUCTS_CLEANING_ROBOT_DUST_BOX_INSERTED = (
"ConsumerProducts.CleaningRobot.Status.DustBoxInserted"
)
CONSUMER_PRODUCTS_CLEANING_ROBOT_LAST_SELECTED_MAP = (
"ConsumerProducts.CleaningRobot.Status.LastSelectedMap"
)
CONSUMER_PRODUCTS_CLEANING_ROBOT_LIFTED = (
"ConsumerProducts.CleaningRobot.Status.Lifted"
)
CONSUMER_PRODUCTS_CLEANING_ROBOT_LOST = "ConsumerProducts.CleaningRobot.Status.Lost"
COOKING_OVEN_CURRENT_CAVITY_TEMPERATURE = (
"Cooking.Oven.Status.CurrentCavityTemperature"
)