Source code for aiohomeconnect.model.setting

"""Provide setting 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 GetSetting(DataClassJSONMixin): """Specific setting of the home appliance.""" key: SettingKey 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: SettingConstraints | None = None
[docs] @dataclass class SettingConstraints(DataClassJSONMixin): """Represent SettingConstraints.""" 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 ArrayOfSettings(DataClassJSONMixin): """List of settings of the home appliance.""" settings: list[GetSetting]
[docs] @dataclass class PutSetting(DataClassJSONMixin): """Specific setting of the home appliance.""" key: SettingKey value: Any
[docs] @dataclass class PutSettings(DataClassJSONMixin): """List of settings of the home appliance.""" data: list[PutSetting]
[docs] class SettingKey(StrEnum): """Represent a setting key.""" @classmethod def _missing_(cls, value: object) -> SettingKey: """Return UNKNOWN for missing keys.""" LOGGER.debug("Unknown setting key: %s", value) return cls.UNKNOWN UNKNOWN = "unknown" BSH_COMMON_POWER_STATE = "BSH.Common.Setting.PowerState" BSH_COMMON_TEMPERATURE_UNIT = "BSH.Common.Setting.TemperatureUnit" BSH_COMMON_LIQUID_VOLUME_UNIT = "BSH.Common.Setting.LiquidVolumeUnit" BSH_COMMON_CHILD_LOCK = "BSH.Common.Setting.ChildLock" BSH_COMMON_ALARM_CLOCK = "BSH.Common.Setting.AlarmClock" BSH_COMMON_AMBIENT_LIGHT_ENABLED = "BSH.Common.Setting.AmbientLightEnabled" BSH_COMMON_AMBIENT_LIGHT_BRIGHTNESS = "BSH.Common.Setting.AmbientLightBrightness" BSH_COMMON_AMBIENT_LIGHT_COLOR = "BSH.Common.Setting.AmbientLightColor" BSH_COMMON_AMBIENT_LIGHT_CUSTOM_COLOR = "BSH.Common.Setting.AmbientLightCustomColor" CONSUMER_PRODUCTS_COFFEE_MAKER_CUP_WARMER = ( "ConsumerProducts.CoffeeMaker.Setting.CupWarmer" ) CONSUMER_PRODUCTS_CLEANING_ROBOT_CURRENT_MAP = ( "ConsumerProducts.CleaningRobot.Setting.CurrentMap" ) CONSUMER_PRODUCTS_CLEANING_ROBOT_NAME_OF_MAP_1 = ( "ConsumerProducts.CleaningRobot.Setting.NameOfMap1" ) CONSUMER_PRODUCTS_CLEANING_ROBOT_NAME_OF_MAP_2 = ( "ConsumerProducts.CleaningRobot.Setting.NameOfMap2" ) CONSUMER_PRODUCTS_CLEANING_ROBOT_NAME_OF_MAP_3 = ( "ConsumerProducts.CleaningRobot.Setting.NameOfMap3" ) CONSUMER_PRODUCTS_CLEANING_ROBOT_NAME_OF_MAP_4 = ( "ConsumerProducts.CleaningRobot.Setting.NameOfMap4" ) CONSUMER_PRODUCTS_CLEANING_ROBOT_NAME_OF_MAP_5 = ( "ConsumerProducts.CleaningRobot.Setting.NameOfMap5" ) COOKING_COMMON_LIGHTING = "Cooking.Common.Setting.Lighting" COOKING_COMMON_LIGHTING_BRIGHTNESS = "Cooking.Common.Setting.LightingBrightness" COOKING_HOOD_COLOR_TEMPERATURE_PERCENT = ( "Cooking.Hood.Setting.ColorTemperaturePercent" ) COOKING_HOOD_COLOR_TEMPERATURE = "Cooking.Hood.Setting.ColorTemperature" COOKING_OVEN_SABBATH_MODE = "Cooking.Oven.Setting.SabbathMode" LAUNDRY_CARE_WASHER_I_DOS_1_BASE_LEVEL = "LaundryCare.Washer.Setting.IDos1BaseLevel" LAUNDRY_CARE_WASHER_I_DOS_2_BASE_LEVEL = "LaundryCare.Washer.Setting.IDos2BaseLevel" REFRIGERATION_COMMON_BOTTLE_COOLER_SETPOINT_TEMPERATURE = ( "Refrigeration.Common.Setting.BottleCooler.SetpointTemperature" ) REFRIGERATION_COMMON_CHILLER_LEFT_SETPOINT_TEMPERATURE = ( "Refrigeration.Common.Setting.ChillerLeft.SetpointTemperature" ) REFRIGERATION_COMMON_CHILLER_COMMON_SETPOINT_TEMPERATURE = ( "Refrigeration.Common.Setting.ChillerCommon.SetpointTemperature" ) REFRIGERATION_COMMON_CHILLER_RIGHT_SETPOINT_TEMPERATURE = ( "Refrigeration.Common.Setting.ChillerRight.SetpointTemperature" ) REFRIGERATION_COMMON_DISPENSER_ENABLED = ( "Refrigeration.Common.Setting.Dispenser.Enabled" ) REFRIGERATION_COMMON_DOOR_ASSISTANT_FRIDGE = ( "Refrigeration.Common.Setting.Door.AssistantFridge" ) REFRIGERATION_COMMON_DOOR_ASSISTANT_FREEZER = ( "Refrigeration.Common.Setting.Door.AssistantFreezer" ) REFRIGERATION_COMMON_DOOR_ASSISTANT_FORCE_FRIDGE = ( "Refrigeration.Common.Setting.Door.AssistantForceFridge" ) REFRIGERATION_COMMON_DOOR_ASSISTANT_FORCE_FREEZER = ( "Refrigeration.Common.Setting.Door.AssistantForceFreezer" ) REFRIGERATION_COMMON_DOOR_ASSISTANT_TIMEOUT_FRIDGE = ( "Refrigeration.Common.Setting.Door.AssistantTimeoutFridge" ) REFRIGERATION_COMMON_DOOR_ASSISTANT_TIMEOUT_FREEZER = ( "Refrigeration.Common.Setting.Door.AssistantTimeoutFreezer" ) REFRIGERATION_COMMON_DOOR_ASSISTANT_TRIGGER_FRIDGE = ( "Refrigeration.Common.Setting.Door.AssistantTriggerFridge" ) REFRIGERATION_COMMON_DOOR_ASSISTANT_TRIGGER_FREEZER = ( "Refrigeration.Common.Setting.Door.AssistantTriggerFreezer" ) REFRIGERATION_COMMON_ECO_MODE = "Refrigeration.Common.Setting.EcoMode" REFRIGERATION_COMMON_FRESH_MODE = "Refrigeration.Common.Setting.FreshMode" REFRIGERATION_COMMON_LIGHT_EXTERNAL_BRIGHTNESS = ( "Refrigeration.Common.Setting.Light.External.Brightness" ) REFRIGERATION_COMMON_LIGHT_INTERNAL_BRIGHTNESS = ( "Refrigeration.Common.Setting.Light.Internal.Brightness" ) REFRIGERATION_COMMON_LIGHT_EXTERNAL_POWER = ( "Refrigeration.Common.Setting.Light.External.Power" ) REFRIGERATION_COMMON_LIGHT_INTERNAL_POWER = ( "Refrigeration.Common.Setting.Light.Internal.Power" ) REFRIGERATION_COMMON_SABBATH_MODE = "Refrigeration.Common.Setting.SabbathMode" REFRIGERATION_COMMON_VACATION_MODE = "Refrigeration.Common.Setting.VacationMode" REFRIGERATION_COMMON_WINE_COMPARTMENT_SETPOINT_TEMPERATURE = ( "Refrigeration.Common.Setting.WineCompartment.SetpointTemperature" ) REFRIGERATION_COMMON_WINE_COMPARTMENT_2_SETPOINT_TEMPERATURE = ( "Refrigeration.Common.Setting.WineCompartment2.SetpointTemperature" ) REFRIGERATION_COMMON_WINE_COMPARTMENT_3_SETPOINT_TEMPERATURE = ( "Refrigeration.Common.Setting.WineCompartment3.SetpointTemperature" ) REFRIGERATION_FRIDGE_FREEZER_SETPOINT_TEMPERATURE_REFRIGERATOR = ( "Refrigeration.FridgeFreezer.Setting.SetpointTemperatureRefrigerator" ) REFRIGERATION_FRIDGE_FREEZER_SETPOINT_TEMPERATURE_FREEZER = ( "Refrigeration.FridgeFreezer.Setting.SetpointTemperatureFreezer" ) REFRIGERATION_FRIDGE_FREEZER_SUPER_MODE_REFRIGERATOR = ( "Refrigeration.FridgeFreezer.Setting.SuperModeRefrigerator" ) REFRIGERATION_FRIDGE_FREEZER_SUPER_MODE_FREEZER = ( "Refrigeration.FridgeFreezer.Setting.SuperModeFreezer" )