diff --git a/homeassistant/components/electrolux/__init__.py b/homeassistant/components/electrolux/__init__.py index a7a4aed9cd2..3fba3b61294 100644 --- a/homeassistant/components/electrolux/__init__.py +++ b/homeassistant/components/electrolux/__init__.py @@ -39,6 +39,7 @@ from .coordinator import ( _LOGGER: logging.Logger = logging.getLogger(__name__) PLATFORMS = [ + Platform.BINARY_SENSOR, Platform.SENSOR, ] diff --git a/homeassistant/components/electrolux/binary_sensor.py b/homeassistant/components/electrolux/binary_sensor.py new file mode 100644 index 00000000000..e63a2ed7dca --- /dev/null +++ b/homeassistant/components/electrolux/binary_sensor.py @@ -0,0 +1,443 @@ +"""Binary sensor entity for Electrolux Integration.""" + +from collections.abc import Callable +from dataclasses import dataclass +import logging +from typing import TYPE_CHECKING, Any, TypeVar + +from electrolux_group_developer_sdk.client.appliances.ac_appliance import ACAppliance +from electrolux_group_developer_sdk.client.appliances.ap_appliance import APAppliance +from electrolux_group_developer_sdk.client.appliances.appliance_data import ( + ApplianceData, +) +from electrolux_group_developer_sdk.client.appliances.cr_appliance import CRAppliance +from electrolux_group_developer_sdk.client.appliances.dam_ac_appliance import ( + DAMACAppliance, +) +from electrolux_group_developer_sdk.client.appliances.dh_appliance import DHAppliance +from electrolux_group_developer_sdk.client.appliances.dw_appliance import DWAppliance +from electrolux_group_developer_sdk.client.appliances.hb_appliance import HBAppliance +from electrolux_group_developer_sdk.client.appliances.hd_appliance import HDAppliance +from electrolux_group_developer_sdk.client.appliances.ov_appliance import OVAppliance +from electrolux_group_developer_sdk.client.appliances.rvc_appliance import RVCAppliance +from electrolux_group_developer_sdk.client.appliances.so_appliance import SOAppliance +from electrolux_group_developer_sdk.client.appliances.td_appliance import TDAppliance +from electrolux_group_developer_sdk.client.appliances.wd_appliance import WDAppliance +from electrolux_group_developer_sdk.client.appliances.wm_appliance import WMAppliance +from electrolux_group_developer_sdk.feature_constants import ( + DOOR_STATE, + DRAWER_STATUS, + HOOD_AUTO_SWITCH_OFF_EVENT, + HOOD_FILTER_CHARC_ENABLE, + UI_LOCK_MODE, + ZONE_HOB_POT_DETECTED, +) + +from homeassistant.components.binary_sensor import ( + BinarySensorDeviceClass, + BinarySensorEntity, + BinarySensorEntityDescription, +) +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback + +from .coordinator import ElectroluxConfigEntry, ElectroluxDataUpdateCoordinator +from .entity import ElectroluxBaseEntity +from .entity_helper import async_setup_entities_helper +from .util import convert_to_snake_case + +_LOGGER = logging.getLogger(__name__) + +T = TypeVar("T", bound=ApplianceData) + + +@dataclass(frozen=True, kw_only=True) +class ElectroluxBinarySensorDescription[T = ApplianceData]( + BinarySensorEntityDescription +): + """Custom binary sensor description for Electrolux sensors.""" + + exists_fn: Callable[[T], bool] = lambda appliance: True + value_fn: Callable[[T], Any] + mapping: dict[Any, bool] | None = None + + +@dataclass(frozen=True, kw_only=True) +class ElectroluxSubmoduleBinarySensorDescription[T = ApplianceData]( + BinarySensorEntityDescription +): + """Custom binary sensor description for Electrolux appliance submodule sensors.""" + + exists_fn: Callable[[T, str], bool] = lambda appliance, submodule: True + value_fn: Callable[[T, str], Any] + mapping: dict[Any, bool] | None = None + + +def _connection_state_value_fn(appliance: ApplianceData): + if TYPE_CHECKING: + assert appliance.state + + return appliance.state.connectionState + + +GENERAL_ELECTROLUX_SENSORS: tuple[ElectroluxBinarySensorDescription, ...] = ( + ElectroluxBinarySensorDescription( + key="connection_state", + translation_key="connection_state", + device_class=BinarySensorDeviceClass.CONNECTIVITY, + value_fn=_connection_state_value_fn, + mapping={"connected": True, "disconnected": False}, + ), +) + +HOB_ELECTROLUX_SENSORS: tuple[ElectroluxBinarySensorDescription[HBAppliance], ...] = ( + ElectroluxBinarySensorDescription( + key="ui_lock_mode", + translation_key="ui_lock_mode", + exists_fn=lambda appliance: appliance.is_feature_supported(UI_LOCK_MODE), + value_fn=lambda appliance: appliance.get_current_ui_lock_mode(), + mapping={True: False, False: True}, + ), +) + +HOB_ZONE_ELECTROLUX_SENSORS: tuple[ + ElectroluxSubmoduleBinarySensorDescription[HBAppliance], ... +] = ( + ElectroluxSubmoduleBinarySensorDescription[HBAppliance]( + key="pot_detected", + translation_key="pot_detected", + value_fn=lambda appliance, hob_zone: ( + appliance.get_current_zone_hob_pot_detected(hob_zone) + ), + exists_fn=lambda appliance, hob_zone: appliance.is_hob_zone_feature_supported( + hob_zone, ZONE_HOB_POT_DETECTED + ), + ), +) + +HOOD_ELECTROLUX_SENSORS: tuple[ElectroluxBinarySensorDescription[HDAppliance], ...] = ( + ElectroluxBinarySensorDescription( + key="drawer_status", + translation_key="drawer_status", + exists_fn=lambda appliance: appliance.is_feature_supported(DRAWER_STATUS), + value_fn=lambda appliance: appliance.get_current_drawer_status(), + ), + ElectroluxBinarySensorDescription( + key="hood_auto_switch_off_event", + translation_key="hood_auto_switch_off_event", + exists_fn=lambda appliance: appliance.is_feature_supported( + HOOD_AUTO_SWITCH_OFF_EVENT + ), + value_fn=lambda appliance: appliance.get_current_hood_auto_switch_off_event(), + ), + ElectroluxBinarySensorDescription( + key="hood_filter_charcoal_enabled", + translation_key="hood_filter_charcoal_enabled", + exists_fn=lambda appliance: appliance.is_feature_supported( + HOOD_FILTER_CHARC_ENABLE + ), + value_fn=lambda appliance: appliance.get_current_hood_filter_charc_enable(), + mapping={"on": True, "off": False}, + ), +) + +CARE_ELECTROLUX_SENSORS: tuple[ + ElectroluxBinarySensorDescription[ + DWAppliance | TDAppliance | WDAppliance | WMAppliance + ], + ..., +] = ( + ElectroluxBinarySensorDescription( + key="door_state", + translation_key="door_state", + device_class=BinarySensorDeviceClass.DOOR, + exists_fn=lambda appliance: appliance.is_feature_supported(DOOR_STATE), + value_fn=lambda appliance: appliance.get_current_door_state(), + mapping={"closed": False, "open": True}, + ), + ElectroluxBinarySensorDescription( + key="ui_lock_mode", + translation_key="ui_lock_mode", + exists_fn=lambda appliance: appliance.is_feature_supported(UI_LOCK_MODE), + value_fn=lambda appliance: appliance.get_current_ui_lock_mode(), + mapping={True: False, False: True}, + ), +) + +OVEN_ELECTROLUX_SENSORS: tuple[ElectroluxBinarySensorDescription[OVAppliance], ...] = ( + ElectroluxBinarySensorDescription( + key="door_state", + translation_key="door_state", + device_class=BinarySensorDeviceClass.DOOR, + exists_fn=lambda appliance: appliance.is_feature_supported(DOOR_STATE), + value_fn=lambda appliance: appliance.get_current_door_state(), + mapping={"closed": False, "open": True}, + ), +) + +STRUCTURED_OVEN_CAVITY_ELECTROLUX_SENSORS: tuple[ + ElectroluxSubmoduleBinarySensorDescription[SOAppliance], ... +] = ( + ElectroluxSubmoduleBinarySensorDescription[SOAppliance]( + key="door_state", + translation_key="door_state", + device_class=BinarySensorDeviceClass.DOOR, + exists_fn=lambda appliance, cavity: appliance.is_cavity_feature_supported( + cavity, DOOR_STATE + ), + value_fn=lambda appliance, cavity: appliance.get_current_cavity_door_state( + cavity + ), + mapping={"closed": False, "open": True}, + ), +) + +REFRIGERATOR_GENERIC_ELECTROLUX_SENSORS: tuple[ + ElectroluxBinarySensorDescription[CRAppliance], ... +] = ( + ElectroluxBinarySensorDescription( + key="ui_lock_mode", + translation_key="ui_lock_mode", + exists_fn=lambda appliance: appliance.is_feature_supported(UI_LOCK_MODE), + value_fn=lambda appliance: appliance.get_current_ui_lock_mode(), + mapping={True: False, False: True}, + ), +) + +FREEZER_FRIDGE_ICE_MAKER_EXTRA_CAVITY_ELECTROLUX_SENSORS: tuple[ + ElectroluxSubmoduleBinarySensorDescription[CRAppliance], ... +] = ( + ElectroluxSubmoduleBinarySensorDescription( + key="door_state", + translation_key="door_state", + device_class=BinarySensorDeviceClass.DOOR, + exists_fn=lambda appliance, cavity: appliance.is_cavity_feature_supported( + cavity, DOOR_STATE + ), + value_fn=lambda appliance, cavity: appliance.get_current_cavity_door_state( + cavity + ), + mapping={"closed": False, "open": True}, + ), +) + + +def build_entities_for_appliance( + appliance_data: ApplianceData, + coordinators: dict[str, ElectroluxDataUpdateCoordinator], +) -> list[ElectroluxBaseEntity]: + """Return all entities for a single appliance.""" + appliance = appliance_data.appliance + coordinator = coordinators[appliance.applianceId] + entities: list[ElectroluxBaseEntity] = [] + + if isinstance( + appliance_data, + ( + ACAppliance, + APAppliance, + CRAppliance, + DAMACAppliance, + DHAppliance, + DWAppliance, + HBAppliance, + HDAppliance, + OVAppliance, + RVCAppliance, + SOAppliance, + TDAppliance, + WDAppliance, + WMAppliance, + ), + ): + entities.extend( + ElectroluxSensor(appliance_data, coordinator, description) + for description in GENERAL_ELECTROLUX_SENSORS + ) + + if isinstance(appliance_data, HBAppliance): + entities.extend( + ElectroluxSensor(appliance_data, coordinator, description) + for description in HOB_ELECTROLUX_SENSORS + if description.exists_fn(appliance_data) + ) + + entities.extend( + ElectroluxSubmoduleSensor( + appliance_data, coordinator, hob_zone, description + ) + for hob_zone in appliance_data.get_available_hob_zone() + for description in HOB_ZONE_ELECTROLUX_SENSORS + if description.exists_fn(appliance_data, hob_zone) + ) + + if isinstance(appliance_data, HDAppliance): + entities.extend( + ElectroluxSensor(appliance_data, coordinator, description) + for description in HOOD_ELECTROLUX_SENSORS + if description.exists_fn(appliance_data) + ) + + if isinstance(appliance_data, (DWAppliance, TDAppliance, WDAppliance, WMAppliance)): + entities.extend( + ElectroluxSensor(appliance_data, coordinator, description) + for description in CARE_ELECTROLUX_SENSORS + if description.exists_fn(appliance_data) + ) + + if isinstance(appliance_data, OVAppliance): + entities.extend( + ElectroluxSensor(appliance_data, coordinator, description) + for description in OVEN_ELECTROLUX_SENSORS + if description.exists_fn(appliance_data) + ) + + if isinstance(appliance_data, SOAppliance): + entities.extend( + ElectroluxSubmoduleSensor(appliance_data, coordinator, cavity, description) + for description in STRUCTURED_OVEN_CAVITY_ELECTROLUX_SENSORS + for cavity in appliance_data.get_supported_cavities() + if description.exists_fn(appliance_data, cavity) + ) + + if isinstance(appliance_data, CRAppliance): + entities.extend( + ElectroluxSensor(appliance_data, coordinator, description) + for description in REFRIGERATOR_GENERIC_ELECTROLUX_SENSORS + if description.exists_fn(appliance_data) + ) + + entities.extend( + ElectroluxSubmoduleSensor(appliance_data, coordinator, cavity, description) + for description in FREEZER_FRIDGE_ICE_MAKER_EXTRA_CAVITY_ELECTROLUX_SENSORS + for cavity in appliance_data.get_supported_cavities() + if description.exists_fn(appliance_data, cavity) + ) + + return entities + + +async def async_setup_entry( + hass: HomeAssistant, + entry: ElectroluxConfigEntry, + async_add_entities: AddConfigEntryEntitiesCallback, +) -> None: + """Set binary sensor for Electrolux Integration.""" + await async_setup_entities_helper( + hass, entry, async_add_entities, build_entities_for_appliance + ) + + +class ElectroluxSensor(ElectroluxBaseEntity[T], BinarySensorEntity): + """Representation of a generic binary sensor for Electrolux appliances.""" + + entity_description: ElectroluxBinarySensorDescription[T] + + def __init__( + self, + appliance_data: T, + coordinator: ElectroluxDataUpdateCoordinator, + description: ElectroluxBinarySensorDescription[T], + ) -> None: + """Initialize the binary sensor.""" + super().__init__(appliance_data, coordinator, description.key) + self.entity_description = description + + def _update_attr_state(self) -> bool: + new_value = self._get_value() + if self._attr_is_on != new_value: + self._attr_is_on = new_value + return True + return False + + def _get_value(self) -> bool | None: + description = self.entity_description + entity_key = description.key + value = description.value_fn(self._appliance_data) + if isinstance(value, str): + value = convert_to_snake_case(value) + + if description.mapping is not None: + return _map_to_known_value(description.mapping, entity_key, value) + + if not isinstance(value, bool): + _LOGGER.warning( + "A non-bool value was detected for a binary sensor of the Electrolux integration. " + "Please report it for the integration, and include the following information: " + 'entity key="%s", reported value="%s"', + entity_key, + value, + ) + return None + return value + + +class ElectroluxSubmoduleSensor(ElectroluxBaseEntity[T], BinarySensorEntity): + """Representation of a generic binary sensor for appliance submodules.""" + + entity_description: ElectroluxSubmoduleBinarySensorDescription[T] + + def __init__( + self, + appliance_data: T, + coordinator: ElectroluxDataUpdateCoordinator, + cavity: str, + description: ElectroluxSubmoduleBinarySensorDescription[T], + ) -> None: + """Initialize the sensor.""" + entity_key = f"{convert_to_snake_case(cavity)}_{description.key}" + translation_key = ( + f"{convert_to_snake_case(cavity)}_{description.translation_key}" + ) + super().__init__(appliance_data, coordinator, entity_key) + + self._cavity = cavity + self.entity_description = description + self._attr_translation_key = translation_key + + def _update_attr_state(self) -> bool: + new_value = self._get_value() + if self._attr_is_on != new_value: + self._attr_is_on = new_value + return True + return False + + def _get_value(self) -> Any: + description = self.entity_description + entity_key = f"{convert_to_snake_case(self._cavity)}_{description.key}" + value = description.value_fn(self._appliance_data, self._cavity) + if isinstance(value, str): + value = convert_to_snake_case(value) + + if description.mapping is not None: + return _map_to_known_value(description.mapping, entity_key, value) + + if not isinstance(value, bool): + _LOGGER.warning( + "A non-bool value was detected for a binary sensor of the Electrolux integration. " + "Please report it for the integration, and include the following information: " + 'entity key="%s", reported value="%s"', + entity_key, + value, + ) + return None + return value + + +_valid_type = str | float | int + + +def _map_to_known_value( + mapping: dict[_valid_type, bool], entity_key: str, value: _valid_type +) -> bool | None: + """Map to boolean based on mapping; log warn message if value is not found in mapping.""" + if value not in mapping: + _LOGGER.warning( + "An unknown value %s was reported for a binary sensor of the Electrolux integration. " + "Please report it for the integration, and include the following information: " + 'entity key="%s", reported value="%s"', + value, + entity_key, + value, + ) + return mapping.get(value) diff --git a/homeassistant/components/electrolux/icons.json b/homeassistant/components/electrolux/icons.json index 60613ab8bda..3c1fc6d8514 100644 --- a/homeassistant/components/electrolux/icons.json +++ b/homeassistant/components/electrolux/icons.json @@ -1,5 +1,13 @@ { "entity": { + "binary_sensor": { + "drawer_status": { + "default": "mdi:file-cabinet" + }, + "hood_auto_switch_off_event": { + "default": "mdi:power-sleep" + } + }, "sensor": { "appliance_state": { "default": "mdi:information-outline" diff --git a/homeassistant/components/electrolux/sensor.py b/homeassistant/components/electrolux/sensor.py index 9d92063ffa7..12fd641560d 100644 --- a/homeassistant/components/electrolux/sensor.py +++ b/homeassistant/components/electrolux/sensor.py @@ -35,6 +35,7 @@ from homeassistant.util.unit_conversion import TemperatureConverter from .coordinator import ElectroluxConfigEntry, ElectroluxDataUpdateCoordinator from .entity import ElectroluxBaseEntity from .entity_helper import async_setup_entities_helper +from .util import convert_to_snake_case _LOGGER = logging.getLogger(__name__) @@ -193,7 +194,7 @@ class ElectroluxSensor(ElectroluxBaseEntity[ApplianceData], SensorEntity): snake_case_options = [ snake_case_option for option in options - if (snake_case_option := _convert_to_snake_case(option)) + if (snake_case_option := convert_to_snake_case(option)) in description.known_values ] @@ -205,7 +206,7 @@ class ElectroluxSensor(ElectroluxBaseEntity[ApplianceData], SensorEntity): def _update_attr_state(self) -> bool: new_value = self._get_value() if isinstance(new_value, str): - new_value = _convert_to_snake_case(new_value) + new_value = convert_to_snake_case(new_value) if self.entity_description.known_values: new_value = _map_to_known_value( @@ -261,18 +262,6 @@ class ElectroluxTemperatureSensor(ElectroluxSensor): ) -def _convert_to_snake_case(x: str) -> str: - """Converts a string to snake case.""" - lower_case = x.lower() - return "".join([_convert_char_to_snake_case(char) for char in lower_case]) - - -def _convert_char_to_snake_case(char: str) -> str: - if char.isspace(): - return "_" - return char - - def _map_to_known_value( known_values: set[str], entity_key: str, value: str ) -> str | None: diff --git a/homeassistant/components/electrolux/strings.json b/homeassistant/components/electrolux/strings.json index 381bfffdcd3..576d6c95134 100644 --- a/homeassistant/components/electrolux/strings.json +++ b/homeassistant/components/electrolux/strings.json @@ -25,6 +25,65 @@ } }, "entity": { + "binary_sensor": { + "bottomoven_door_state": { + "name": "Lower door state" + }, + "connection_state": { + "name": "Connection state" + }, + "door_state": { + "name": "Door state" + }, + "drawer_status": { + "name": "Drawer status" + }, + "extracavity_door_state": { + "name": "Extra cavity door" + }, + "freezer_door_state": { + "name": "Freezer door" + }, + "fridge_door_state": { + "name": "Fridge door" + }, + "hobzone1_pot_detected": { + "name": "Zone 1 pot detected" + }, + "hobzone2_pot_detected": { + "name": "Zone 2 pot detected" + }, + "hobzone3_pot_detected": { + "name": "Zone 3 pot detected" + }, + "hobzone4_pot_detected": { + "name": "Zone 4 pot detected" + }, + "hobzone5_pot_detected": { + "name": "Zone 5 pot detected" + }, + "hobzone6_pot_detected": { + "name": "Zone 6 pot detected" + }, + "hobzone7_pot_detected": { + "name": "Zone 7 pot detected" + }, + "hobzone8_pot_detected": { + "name": "Zone 8 pot detected" + }, + "hood_auto_switch_off_event": { + "name": "Auto switch off event" + }, + "hood_filter_charcoal_enabled": { + "name": "Charcoal filter" + }, + "ui_lock_mode": { + "name": "UI lock mode" + }, + "upperoven_door_state": { + "name": "Upper door state" + } + }, "sensor": { "appliance_state": { "name": "Appliance state", diff --git a/homeassistant/components/electrolux/util.py b/homeassistant/components/electrolux/util.py new file mode 100644 index 00000000000..aeb7bd925fd --- /dev/null +++ b/homeassistant/components/electrolux/util.py @@ -0,0 +1,13 @@ +"""Utility functions used by the Electrolux integration.""" + + +def convert_to_snake_case(x: str) -> str: + """Converts a string to snake case.""" + lower_case = x.lower() + return "".join([_convert_char_to_snake_case(char) for char in lower_case]) + + +def _convert_char_to_snake_case(char: str) -> str: + if char.isspace(): + return "_" + return char diff --git a/tests/components/electrolux/__init__.py b/tests/components/electrolux/__init__.py index 0f691869591..efcdc65ee50 100644 --- a/tests/components/electrolux/__init__.py +++ b/tests/components/electrolux/__init__.py @@ -11,7 +11,15 @@ from homeassistant.core import HomeAssistant from tests.common import MockConfigEntry, load_fixture -APPLIANCE_FIXTURES = ["fenix_oven", "pux_oven"] +APPLIANCE_FIXTURES = [ + "fenix_oven", + "pux_oven", + "peacock_hob", + "tumble_dryer", + "supex_structured_oven", + "ayran_fridge", + "hood", +] async def setup_integration( diff --git a/tests/components/electrolux/fixtures/appliance_details/ayran_fridge.json b/tests/components/electrolux/fixtures/appliance_details/ayran_fridge.json new file mode 100644 index 00000000000..c2ed1c8a72c --- /dev/null +++ b/tests/components/electrolux/fixtures/appliance_details/ayran_fridge.json @@ -0,0 +1,331 @@ +{ + "applianceInfo": { + "serialNumber": "20220412", + "pnc": "999011403", + "brand": "AEG", + "deviceType": "FREESTANDING_BOTTOM_FREEZER", + "model": "RCB732E9MX", + "variant": "UNDEFINED", + "colour": "GREY" + }, + "capabilities": { + "alerts": { + "access": "read", + "type": "alert", + "values": { + "AIR_SENSOR_BROKEN": {}, + "AIR_SENSOR_OPEN_CIRCUIT": {}, + "AIR_SENSOR_SHORT_CIRCUIT": {}, + "COMMUNICATION_ALARM": {}, + "DRINK_CHILL_EXPIRED": {}, + "HUMIDITY_SENSOR_BROKEN": {}, + "HUMIDITY_SENSOR_OPEN_CIRCUIT": {}, + "HUMIDITY_SENSOR_SHORT_CIRCUIT": {}, + "POWER_FAILURE_ALARM": {} + } + }, + "applianceMainBoardSwVersion": { + "access": "read", + "type": "string" + }, + "applianceMode": { + "access": "read", + "type": "string", + "values": { + "DEMO": {}, + "DIAGNOSTIC": {}, + "NORMAL": {}, + "SERVICE": {} + } + }, + "applianceUiSwVersion": { + "access": "read", + "type": "string" + }, + "compressorState": { + "access": "read", + "type": "string", + "values": { + "OFF": {}, + "ON": {} + } + }, + "coolingValveState": { + "access": "read", + "type": "string" + }, + "defrostRoutineState": { + "access": "read", + "type": "string", + "values": { + "DRIP": {}, + "HEATER_ON": {}, + "POST_COOLING": {}, + "PRE_COOLING": {}, + "PRE_SOFT": {}, + "PULL_DOWN": {}, + "WAIT": {} + } + }, + "energySavingMode": { + "access": "readwrite", + "type": "string", + "values": { + "OFF": {}, + "ON": {} + } + }, + "fSPN_CRConnectionLost": { + "access": "constant", + "default": 1, + "type": "int" + }, + "freezer": { + "alerts": { + "access": "read", + "type": "alert", + "values": { + "AIR_SENSOR_BROKEN": {}, + "AIR_SENSOR_OPEN_CIRCUIT": {}, + "AIR_SENSOR_SHORT_CIRCUIT": {}, + "DEFROST_SENSOR_BROKEN": {}, + "DEFROST_SENSOR_OPEN_CIRCUIT": {}, + "DEFROST_SENSOR_SHORT_CIRCUIT": {}, + "DOOR_ALARM": {}, + "TEMPERATURE_ALARM": {} + } + }, + "applianceState": { + "access": "read", + "type": "string", + "values": { + "ALARM": {}, + "DELAYED_START": {}, + "END_OF_CYCLE": {}, + "IDLE": {}, + "OFF": {}, + "PAUSED": {}, + "READY_TO_START": {}, + "RUNNING": {} + } + }, + "doorState": { + "access": "read", + "type": "string", + "values": { + "CLOSED": {}, + "OPEN": {} + } + }, + "fanState": { + "access": "read", + "type": "string", + "values": { + "OFF": {}, + "ON": {} + } + }, + "fastMode": { + "access": "readwrite", + "type": "string", + "values": { + "OFF": {}, + "ON": {} + } + }, + "fastModeTimeToEnd": { + "access": "readwrite", + "type": "number" + }, + "sensorTemperatureC": { + "access": "read", + "type": "temperature" + }, + "sensorTemperatureF": { + "access": "read", + "type": "temperature" + }, + "targetTemperatureC": { + "access": "readwrite", + "default": -18, + "max": -16, + "min": -24, + "step": 2, + "type": "temperature" + } + }, + "fridge": { + "alerts": { + "access": "read", + "type": "alert", + "values": { + "AIR_SENSOR_BROKEN": {}, + "AIR_SENSOR_OPEN_CIRCUIT": {}, + "AIR_SENSOR_SHORT_CIRCUIT": {}, + "DEFROST_SENSOR_BROKEN": {}, + "DEFROST_SENSOR_OPEN_CIRCUIT": {}, + "DEFROST_SENSOR_SHORT_CIRCUIT": {}, + "DOOR_ALARM": {}, + "TEMPERATURE_ALARM": {} + } + }, + "applianceState": { + "access": "read", + "type": "string", + "values": { + "ALARM": {}, + "DELAYED_START": {}, + "END_OF_CYCLE": {}, + "IDLE": {}, + "OFF": {}, + "PAUSED": {}, + "READY_TO_START": {}, + "RUNNING": {} + } + }, + "doorState": { + "access": "read", + "type": "string", + "values": { + "CLOSED": {}, + "OPEN": {} + } + }, + "fanState": { + "access": "read", + "type": "string", + "values": { + "OFF": {}, + "ON": {} + } + }, + "fastMode": { + "access": "readwrite", + "type": "string", + "values": { + "OFF": {}, + "ON": {} + } + }, + "fastModeTimeToEnd": { + "access": "readwrite", + "type": "number" + }, + "sensorTemperatureC": { + "access": "read", + "type": "temperature" + }, + "sensorTemperatureF": { + "access": "read", + "type": "temperature" + }, + "targetTemperatureC": { + "access": "readwrite", + "default": 4, + "max": 8, + "min": 1, + "step": 1, + "type": "temperature" + } + }, + "networkInterface": { + "command": { + "access": "write", + "type": "string", + "values": { + "APPLIANCE_AUTHORIZE": {}, + "START": {}, + "USER_AUTHORIZE": {}, + "USER_NOT_AUTHORIZE": {} + } + }, + "linkQualityIndicator": { + "access": "read", + "type": "string", + "values": { + "EXCELLENT": {}, + "GOOD": {}, + "POOR": {}, + "UNDEFINED": {}, + "VERY_GOOD": {}, + "VERY_POOR": {} + } + }, + "niuSwUpdateCurrentDescription": { + "access": "read", + "type": "string" + }, + "otaState": { + "access": "read", + "type": "string", + "values": { + "DESCRIPTION_AVAILABLE": {}, + "DESCRIPTION_DOWNLOADING": {}, + "DESCRIPTION_READY": {}, + "FW_DOWNLOADING": {}, + "FW_DOWNLOAD_START": {}, + "FW_SIGNATURE_CHECK": {}, + "FW_UPDATE_IN_PROGRESS": {}, + "IDLE": {}, + "READY_TO_UPDATE": {}, + "UPDATE_ABORT": {}, + "UPDATE_CHECK": {}, + "UPDATE_ERROR": {}, + "UPDATE_OK": {}, + "WAITINGFORAUTHORIZATION": {} + } + }, + "startUpCommand": { + "access": "write", + "type": "string", + "values": { + "UNINSTALL": {} + } + }, + "swAncAndRevision": { + "access": "read", + "type": "string" + }, + "swVersion": { + "access": "read", + "type": "string" + } + }, + "reminderTime": { + "access": "readwrite", + "default": 1800, + "max": 1800, + "min": 300, + "step": 300, + "type": "number", + "values": { + "0": {}, + "-1": {} + } + }, + "sabbathMode": { + "access": "readwrite", + "type": "string", + "values": { + "OFF": {}, + "ON": {} + } + }, + "uiLockMode": { + "access": "readwrite", + "type": "boolean", + "values": { + "OFF": {}, + "ON": {} + } + }, + "vacationHolidayMode": { + "access": "readwrite", + "type": "string", + "values": { + "OFF": {}, + "ON": {} + } + } + } +} diff --git a/tests/components/electrolux/fixtures/appliance_details/hood.json b/tests/components/electrolux/fixtures/appliance_details/hood.json new file mode 100644 index 00000000000..1e494ded06b --- /dev/null +++ b/tests/components/electrolux/fixtures/appliance_details/hood.json @@ -0,0 +1,389 @@ +{ + "applianceInfo": { + "serialNumber": "99010299", + "pnc": "999008105", + "brand": "AEG", + "deviceType": "CEILING HOODS", + "model": "DDC8271W", + "variant": "SLIMWHGLASS8000", + "colour": "WHITE" + }, + "capabilities": { + "alerts": { + "access": "read", + "type": "alert", + "values": { + "ABNORMAL_TEMPERATURE_FAIL_H253": {}, + "BRUSHLESS_MOTOR_CONTROL_BOARD_ALARMS_H103": {}, + "CHUI_BOARD_NTC_OUT_OF_RANGE_ALARM_H210": {}, + "COMM_ALARM_CHC_CHUI_H125": {}, + "COMM_ALARM_CHPE_CHUI_H348": {}, + "COMM_ALARM_CHUI_CHC_H201": {}, + "COMM_ALARM_CHUI_CPE_H202": {}, + "COMM_FAIL_CHC_HOOD_MOTOR_CONTROL_H101": {}, + "COOLING_DOWN_WARNING_H252": {}, + "HUMIDITY_TEMPERATURE_SENSOR_OUT_OF_RANGE_ALARM_H351": {}, + "MISSING_CONFIGURATION_ALARM_CHPE_H354": {}, + "MISSING_CONFIG_ALARM_H135": {}, + "STUCK_KEY_ALARM_H218": {}, + "SW_COMPAT_ALARM_H127": {}, + "TVOC_ALARM_H346": {}, + "TVOC_HUMIDITY_TEMPERATURE_I2C_ALARM_H350": {}, + "TVOC_R_MOX_OUT_OF_RANGE_ALARM_H349": {}, + "WRONG_CONFIG_CHECKSUM_PHE_ALARM_H341": {}, + "WRONG_CONFIG_CRC_ALARM_H133": {}, + "WRONG_CRC_ON_CONFIG_ALARM_CHPE_H347": {}, + "WRONG_CRC_ON_CONFIG_ALARM_CHUI_H204": {}, + "WRONG_SW_COMPAT_ALARM_CHUI_H205": {} + } + }, + "applianceLocalTimeOffset": { + "access": "read", + "type": "number" + }, + "applianceMode": { + "access": "read", + "type": "string", + "values": { + "DEMO": {}, + "DIAGNOSTIC": {}, + "NORMAL": {} + } + }, + "applianceState": { + "access": "read", + "triggers": [ + { + "action": { + "hoodFilterCharcEnable": { + "access": "readwrite" + } + }, + "condition": { + "operand_1": { + "operand_1": "value", + "operand_2": "OFF", + "operator": "eq" + }, + "operand_2": { + "operand_1": "value", + "operand_2": "IDLE", + "operator": "eq" + }, + "operator": "or" + } + }, + { + "action": { + "hoodFilterCharcEnable": { + "access": "read" + } + }, + "condition": { + "operand_1": "value", + "operand_2": "RUNNING", + "operator": "eq" + } + }, + { + "action": { + "humanCentricLightEventSettings": { + "access": "readwrite" + } + }, + "condition": { + "operand_1": { + "operand_1": "value", + "operand_2": "OFF", + "operator": "eq" + }, + "operand_2": { + "operand_1": "value", + "operand_2": "IDLE", + "operator": "eq" + }, + "operator": "or" + } + }, + { + "action": { + "humanCentricLightEventSettings": { + "access": "read" + } + }, + "condition": { + "operand_1": "value", + "operand_2": "RUNNING", + "operator": "eq" + } + } + ], + "type": "string", + "values": { + "IDLE": {}, + "OFF": {}, + "RUNNING": {} + } + }, + "autosenseEnabledDisable": { + "access": "readwrite", + "type": "boolean" + }, + "charcoalFilterReminderThreshold": { + "access": "constant", + "default": 9600, + "type": "int" + }, + "greaseFilterReminderThreshold": { + "access": "constant", + "default": 2400, + "type": "int" + }, + "hoodAutoSwitchOffEvent": { + "access": "read", + "type": "boolean" + }, + "hoodAutosenseControl": { + "access": "readwrite", + "type": "boolean" + }, + "hoodCharcFilterTimer": { + "access": "read", + "type": "number" + }, + "hoodFanLevel": { + "access": "readwrite", + "triggers": [ + { + "action": { + "targetDuration": { + "access": "readwrite" + } + }, + "condition": { + "operand_1": { + "operand_1": "value", + "operand_2": "BREEZE", + "operator": "ge" + }, + "operand_2": { + "operand_1": "value", + "operand_2": "STEP_3", + "operator": "le" + }, + "operator": "and" + } + }, + { + "action": { + "targetDuration": { + "access": "read" + } + }, + "condition": { + "operand_1": { + "operand_1": "value", + "operand_2": "BREEZE", + "operator": "lt" + }, + "operand_2": { + "operand_1": "value", + "operand_2": "STEP_3", + "operator": "gt" + }, + "operator": "or" + } + } + ], + "type": "string", + "values": { + "BOOST": {}, + "BREEZE": {}, + "OFF": {}, + "STEP_1": {}, + "STEP_2": {}, + "STEP_3": {} + } + }, + "hoodFilterCharcEnable": { + "access": "readwrite", + "type": "string", + "values": { + "OFF": {}, + "ON": {} + } + }, + "hoodFilterCharcIndication": { + "access": "readwrite", + "type": "boolean", + "values": { + "FALSE": {}, + "TRUE": {} + } + }, + "hoodFilterGreaseIndication": { + "access": "readwrite", + "type": "string", + "values": { + "FALSE": {}, + "TRUE": {} + } + }, + "hoodGreaseFilterTimer": { + "access": "read", + "type": "number" + }, + "humanCentricLightEventSettings": { + "access": "readwrite", + "type": "humanCentLightEnableSettings" + }, + "humanCentricLightEventSettings/event": { + "access": "readwrite", + "type": "complex", + "values": {} + }, + "humanCentricLightEventSettings/number": { + "access": "read", + "type": "int", + "values": {} + }, + "lightColorTemperature": { + "access": "readwrite", + "max": 100, + "min": 0, + "step": 1, + "type": "number", + "values": { + "NOT_AVAILABLE": {} + } + }, + "lightIntensity": { + "access": "readwrite", + "max": 100, + "min": 0, + "step": 1, + "type": "number", + "values": { + "NOT_AVAILABLE": {} + } + }, + "localTimeAutomaticMode": { + "access": "read", + "default": "AUTOMATIC", + "type": "string", + "values": { + "AUTOMATIC": {} + } + }, + "maxTimerDuration": { + "access": "constant", + "default": 60, + "type": "number" + }, + "networkInterface": { + "autoLocalTimeOffset": { + "access": "read", + "max": 50400, + "min": -43200, + "step": 60, + "type": "number" + }, + "command": { + "access": "write", + "type": "string", + "values": { + "ABORT": {}, + "APPLIANCE_AUTHORIZE": {}, + "DOWNLOAD": {}, + "START": {}, + "USER_AUTHORIZE": {}, + "USER_NOT_AUTHORIZE": {} + } + }, + "linkQualityIndicator": { + "access": "read", + "type": "string", + "values": { + "EXCELLENT": {}, + "GOOD": {}, + "POOR": {}, + "UNDEFINED": {}, + "VERY_GOOD": {}, + "VERY_POOR": {} + } + }, + "niuSwUpdateCurrentDescription": { + "access": "read", + "type": "string" + }, + "otaState": { + "access": "read", + "type": "string", + "values": { + "DESCRIPTION_AVAILABLE": {}, + "DESCRIPTION_DOWNLOADING": {}, + "DESCRIPTION_READY": {}, + "FW_DOWNLOADING": {}, + "FW_DOWNLOAD_START": {}, + "FW_SIGNATURE_CHECK": {}, + "FW_UPDATE_IN_PROGRESS": {}, + "IDLE": {}, + "READY_TO_UPDATE": {}, + "UPDATE_ABORT": {}, + "UPDATE_CHECK": {}, + "UPDATE_ERROR": {}, + "UPDATE_OK": {}, + "WAITINGFORAUTHORIZATION": {} + } + }, + "startUpCommand": { + "access": "write", + "type": "string", + "values": { + "UNINSTALL": {} + } + }, + "swAncAndRevision": { + "access": "read", + "type": "string" + }, + "swVersion": { + "access": "read", + "type": "string" + }, + "timeZoneDatabaseName": { + "access": "readwrite", + "type": "string" + } + }, + "remoteControl": { + "access": "read", + "type": "string", + "values": { + "DISABLED": {}, + "ENABLED": {}, + "NOT_SAFETY_RELEVANT_ENABLED": {}, + "TEMPORARY_LOCKED": {} + } + }, + "soundVolume": { + "access": "readwrite", + "type": "number", + "values": { + "0": {}, + "1": {} + } + }, + "targetDuration": { + "access": "readwrite", + "max": 36000, + "min": 0, + "step": 60, + "type": "number" + }, + "timeToEnd": { + "access": "read", + "type": "number" + } + } +} diff --git a/tests/components/electrolux/fixtures/appliance_details/peacock_hob.json b/tests/components/electrolux/fixtures/appliance_details/peacock_hob.json new file mode 100644 index 00000000000..a0e1817763c --- /dev/null +++ b/tests/components/electrolux/fixtures/appliance_details/peacock_hob.json @@ -0,0 +1,672 @@ +{ + "applianceInfo": { + "serialNumber": "99907833", + "pnc": "999008120", + "brand": "AEG", + "deviceType": "BUILT IN HOB", + "model": "TU84CF43CB", + "variant": "N/A", + "colour": "BLACK" + }, + "capabilities": { + "alerts": { + "access": "read", + "type": "alert", + "values": { + "CKG_ZONE_FAIL_E601": {}, + "CKG_ZONE_FAIL_E602": {}, + "CKG_ZONE_FAIL_E603": {}, + "CKG_ZONE_FAIL_E604": {}, + "CKG_ZONE_FAIL_E605": {}, + "CKG_ZONE_FAIL_E606": {}, + "CKG_ZONE_FAIL_E611": {}, + "CKG_ZONE_FAIL_E612": {}, + "CKG_ZONE_FAIL_E613": {}, + "CKG_ZONE_FAIL_E614": {}, + "CKG_ZONE_FAIL_E615": {}, + "CKG_ZONE_FAIL_E616": {}, + "CKG_ZONE_FAIL_E621": {}, + "CKG_ZONE_FAIL_E622": {}, + "CKG_ZONE_FAIL_E623": {}, + "CKG_ZONE_FAIL_E624": {}, + "CKG_ZONE_FAIL_E625": {}, + "CKG_ZONE_FAIL_E626": {}, + "CKG_ZONE_FAIL_E651": {}, + "CKG_ZONE_FAIL_E652": {}, + "CKG_ZONE_FAIL_E653": {}, + "CKG_ZONE_FAIL_E654": {}, + "CKG_ZONE_FAIL_E655": {}, + "CKG_ZONE_FAIL_E656": {}, + "CKG_ZONE_FAN_FAIL_E701": {}, + "CKG_ZONE_FAN_FAIL_E702": {}, + "CKG_ZONE_FAN_FAIL_E703": {}, + "CKG_ZONE_FAN_FAIL_E704": {}, + "CKG_ZONE_FAN_FAIL_E705": {}, + "CKG_ZONE_FAN_FAIL_E706": {}, + "CKG_ZONE_FAN_FAIL_E711": {}, + "CKG_ZONE_FAN_FAIL_E712": {}, + "CKG_ZONE_FAN_FAIL_E713": {}, + "CKG_ZONE_FAN_FAIL_E714": {}, + "CKG_ZONE_FAN_FAIL_E715": {}, + "CKG_ZONE_FAN_FAIL_E716": {}, + "CKG_ZONE_SW_ERROR_E011": {}, + "CKG_ZONE_SW_ERROR_E012": {}, + "CKG_ZONE_SW_ERROR_E013": {}, + "CKG_ZONE_SW_ERROR_E014": {}, + "CKG_ZONE_SW_ERROR_E015": {}, + "CKG_ZONE_SW_ERROR_E016": {}, + "CKG_ZONE_TEMP_SENS_FAIL_E401": {}, + "CKG_ZONE_TEMP_SENS_FAIL_E402": {}, + "CKG_ZONE_TEMP_SENS_FAIL_E403": {}, + "CKG_ZONE_TEMP_SENS_FAIL_E404": {}, + "CKG_ZONE_TEMP_SENS_FAIL_E405": {}, + "CKG_ZONE_TEMP_SENS_FAIL_E406": {}, + "CKG_ZONE_TEMP_SENS_FAIL_E411": {}, + "CKG_ZONE_TEMP_SENS_FAIL_E412": {}, + "CKG_ZONE_TEMP_SENS_FAIL_E413": {}, + "CKG_ZONE_TEMP_SENS_FAIL_E414": {}, + "CKG_ZONE_TEMP_SENS_FAIL_E415": {}, + "CKG_ZONE_TEMP_SENS_FAIL_E416": {}, + "CKG_ZONE_TEMP_SENS_FAIL_E431": {}, + "CKG_ZONE_TEMP_SENS_FAIL_E432": {}, + "CKG_ZONE_TEMP_SENS_FAIL_E433": {}, + "CKG_ZONE_TEMP_SENS_FAIL_E434": {}, + "CKG_ZONE_TEMP_SENS_FAIL_E435": {}, + "CKG_ZONE_TEMP_SENS_FAIL_E436": {}, + "CKG_ZONE_TEMP_SENS_FAIL_E441": {}, + "CKG_ZONE_TEMP_SENS_FAIL_E442": {}, + "CKG_ZONE_TEMP_SENS_FAIL_E443": {}, + "CKG_ZONE_TEMP_SENS_FAIL_E444": {}, + "CKG_ZONE_TEMP_SENS_FAIL_E445": {}, + "CKG_ZONE_TEMP_SENS_FAIL_E446": {}, + "CKG_ZONE_TEMP_TOO_HIGH_E421": {}, + "CKG_ZONE_TEMP_TOO_HIGH_E422": {}, + "CKG_ZONE_TEMP_TOO_HIGH_E423": {}, + "CKG_ZONE_TEMP_TOO_HIGH_E424": {}, + "CKG_ZONE_TEMP_TOO_HIGH_E425": {}, + "CKG_ZONE_TEMP_TOO_HIGH_E426": {}, + "DATA_CRC_ERROR_E661": {}, + "DATA_CRC_ERROR_E662": {}, + "DATA_CRC_ERROR_E663": {}, + "DISPLAY_ELECTRONIC_FAIL_E061": {}, + "DISPLAY_ELECTRONIC_FAIL_E081": {}, + "DISPLAY_ELECTRONIC_FAIL_E091": {}, + "DISPLAY_ELECTRONIC_FAIL_E0C1": {}, + "DISPLAY_NOT_PROPER_WORK_E9F1": {}, + "DISPLAY_TEMP_TOO_HIGH_E0A1": {}, + "HOOD_FAIL_E518": {}, + "HOOD_FAIL_E527": {}, + "HOOD_FAIL_E528": {}, + "HOOD_FAIL_E8B1": {}, + "HOOD_MC_BOARD_ALARM_E537": {}, + "HOOD_SW_FAIL_E517": {}, + "HUI_PIXIE_COMM_ALARM_E8B7": {}, + "INTERNAL_COMM_FAIL_E821": {}, + "INTERNAL_COMM_FAIL_E822": {}, + "INTERNAL_COMM_FAIL_E823": {}, + "INTERNAL_COMM_FAIL_E824": {}, + "INTERNAL_COMM_FAIL_E825": {}, + "INTERNAL_COMM_FAIL_E826": {}, + "INTERNAL_COMM_FAIL_E831": {}, + "INTERNAL_COMM_FAIL_E841": {}, + "INTERNAL_COMM_FAIL_E851": {}, + "INTERNAL_COMM_FAIL_E861": {}, + "INTERNAL_COMM_FAIL_E871": {}, + "KEY_ERROR_FMEA_E9D1": {}, + "KNOB_ERROR_E951": {}, + "MAINS_CONNECTION_ERROR_E311": {}, + "MAINS_CONNECTION_ERROR_E312": {}, + "MAINS_CONNECTION_ERROR_E313": {}, + "MAINS_CONNECTION_ERROR_E314": {}, + "MAINS_CONNECTION_ERROR_E315": {}, + "MAINS_CONNECTION_ERROR_E316": {}, + "MAINS_RELAY_FAIL_E641": {}, + "MAINS_RELAY_FAIL_E642": {}, + "MAINS_RELAY_FAIL_E643": {}, + "MAINS_RELAY_FAIL_E644": {}, + "MAINS_RELAY_FAIL_E645": {}, + "MAINS_RELAY_FAIL_E646": {}, + "MAINS_VOLTAGE_TOO_LOW_E321": {}, + "MAINS_VOLTAGE_TOO_LOW_E322": {}, + "MAINS_VOLTAGE_TOO_LOW_E323": {}, + "MAINS_VOLTAGE_TOO_LOW_E324": {}, + "MAINS_VOLTAGE_TOO_LOW_E325": {}, + "MAINS_VOLTAGE_TOO_LOW_E326": {}, + "SENSEBOIL_FAIL_E272": {}, + "SENSEBOIL_FAIL_E282": {}, + "SENSEBOIL_FAIL_E8A2": {}, + "SW_ERROR_E021": {}, + "SW_ERROR_E031": {}, + "SW_ERROR_E041": {}, + "SW_ERROR_E051": {}, + "TOUCH_NOT_PROPER_WORK_E911": {}, + "TOUCH_NOT_PROPER_WORK_E921": {}, + "TOUCH_NOT_PROPER_WORK_E931": {}, + "TOUCH_NOT_PROPER_WORK_E941": {}, + "TOUCH_NOT_PROPER_WORK_E961": {}, + "TOUCH_NOT_PROPER_WORK_E971": {}, + "TOUCH_NOT_PROPER_WORK_E981": {}, + "TOUCH_NOT_PROPER_WORK_E991": {}, + "TOUCH_NOT_PROPER_WORK_E9A1": {}, + "TOUCH_NOT_PROPER_WORK_E9B1": {}, + "TOUCH_NOT_PROPER_WORK_E9C1": {}, + "WI-FI_FAIL_E141": {}, + "WI-FI_FAIL_E181": {}, + "ZONE_ILLUMINATION_FAIL_E201": {}, + "ZONE_ILLUMINATION_FAIL_E211": {}, + "ZONE_ILLUMINATION_FAIL_E221": {}, + "ZONE_ILLUMINATION_FAIL_E231": {}, + "ZONE_ILLUMINATION_FAIL_E241": {} + } + }, + "applianceMode": { + "access": "read", + "type": "string", + "values": { + "DEMO": {}, + "DIAGNOSTIC": {}, + "NORMAL": {}, + "SERVICE": {} + } + }, + "applianceState": { + "access": "read", + "type": "string", + "values": { + "ALARM": {}, + "IDLE": {}, + "OFF": {}, + "PAUSED": {}, + "RUNNING": {} + } + }, + "childLock": { + "access": "readwrite", + "triggers": [ + { + "action": { + "$self": { + "access": "read" + } + }, + "condition": { + "operand_1": "value", + "operand_2": "ENABLED", + "operator": "eq" + } + }, + { + "action": { + "$self": { + "access": "readwrite" + } + }, + "condition": { + "operand_1": "value", + "operand_2": "DISABLED", + "operator": "eq" + } + } + ], + "type": "boolean", + "values": { + "DISABLED": {}, + "ENABLED": {} + } + }, + "cpv": { + "access": "read", + "type": "string" + }, + "hobHood": { + "hobToHoodFanSpeed": { + "access": "readwrite", + "type": "string", + "values": { + "BOOST": {}, + "BREEZE": {}, + "DRYING_CYCLE": {}, + "OFF": {}, + "STEP_1": {}, + "STEP_2": {}, + "STEP_3": {} + } + }, + "hobToHoodMode": { + "access": "readwrite", + "type": "string", + "values": { + "H1": {}, + "H2": {}, + "H3": {}, + "H4": {} + } + }, + "hobToHoodState": { + "access": "readwrite", + "type": "string", + "values": { + "AUTOMATIC": {}, + "AUTO_SUSPEND": { + "disabled": true + }, + "MANUAL": {} + } + }, + "hoodDryingCycle": { + "access": "readwrite", + "type": "string", + "values": { + "KEY_ERROR": { + "disabled": true + } + } + }, + "hoodFilterCharcIndication": { + "access": "readwrite", + "type": "boolean", + "values": { + "FALSE": {}, + "TRUE": {} + } + }, + "hoodFilterGreaseIndication": { + "access": "readwrite", + "type": "boolean", + "values": { + "FALSE": {}, + "TRUE": {} + } + }, + "targetDuration": { + "access": "readwrite", + "default": 0, + "max": 5940, + "min": 0, + "step": 60, + "type": "number" + }, + "timeToEnd": { + "access": "read", + "type": "number" + }, + "windowNotification": { + "access": "read", + "type": "string", + "values": { + "NONE": {}, + "OPENING_REQUIRED": {} + } + } + }, + "hobZone1": { + "heatingQualitativeLevel": { + "access": "read", + "default": 0, + "max": 9, + "min": 0, + "step": 1, + "type": "number", + "values": { + "POWER_LEVEL_P": {} + } + }, + "hobCoil": { + "access": "read", + "type": "number" + }, + "hobMaxPowerLevel": { + "access": "read", + "type": "number" + }, + "hobPotDetected": { + "access": "read", + "type": "string", + "values": { + "NO_POT_IDLE": {}, + "NO_POT_RUNNING": {}, + "POT_IDLE": {}, + "POT_RUNNING": {} + } + }, + "residualHeatState": { + "access": "read", + "type": "string", + "values": { + "HIGH": {}, + "LOW": {}, + "MIDDLE": {}, + "NO": {} + } + }, + "runningTime": { + "access": "read", + "default": 0, + "type": "number" + } + }, + "hobZone2": { + "heatingQualitativeLevel": { + "access": "read", + "default": 0, + "max": 9, + "min": 0, + "step": 1, + "type": "number", + "values": { + "POWER_LEVEL_P": {} + } + }, + "hobCoil": { + "access": "read", + "type": "number" + }, + "hobMaxPowerLevel": { + "access": "read", + "type": "number" + }, + "hobPotDetected": { + "access": "read", + "type": "string", + "values": { + "NO_POT_IDLE": {}, + "NO_POT_RUNNING": {}, + "POT_IDLE": {}, + "POT_RUNNING": {} + } + }, + "residualHeatState": { + "access": "read", + "type": "string", + "values": { + "HIGH": {}, + "LOW": {}, + "MIDDLE": {}, + "NO": {} + } + }, + "runningTime": { + "access": "read", + "default": 0, + "type": "number" + } + }, + "hobZone3": { + "heatingQualitativeLevel": { + "access": "read", + "default": 0, + "max": 9, + "min": 0, + "step": 1, + "type": "number", + "values": { + "POWER_LEVEL_P": {} + } + }, + "hobCoil": { + "access": "read", + "type": "number" + }, + "hobMaxPowerLevel": { + "access": "read", + "type": "number" + }, + "hobPotDetected": { + "access": "read", + "type": "string", + "values": { + "NO_POT_IDLE": {}, + "NO_POT_RUNNING": {}, + "POT_IDLE": {}, + "POT_RUNNING": {} + } + }, + "residualHeatState": { + "access": "read", + "type": "string", + "values": { + "HIGH": {}, + "LOW": {}, + "MIDDLE": {}, + "NO": {} + } + }, + "runningTime": { + "access": "read", + "default": 0, + "type": "number" + } + }, + "hobZone4": { + "heatingQualitativeLevel": { + "access": "read", + "default": 0, + "max": 9, + "min": 0, + "step": 1, + "type": "number", + "values": { + "POWER_LEVEL_P": {} + } + }, + "hobCoil": { + "access": "read", + "type": "number" + }, + "hobMaxPowerLevel": { + "access": "read", + "type": "number" + }, + "hobPotDetected": { + "access": "read", + "type": "string", + "values": { + "NO_POT_IDLE": {}, + "NO_POT_RUNNING": {}, + "POT_IDLE": {}, + "POT_RUNNING": {} + } + }, + "residualHeatState": { + "access": "read", + "type": "string", + "values": { + "HIGH": {}, + "LOW": {}, + "MIDDLE": {}, + "NO": {} + } + }, + "runningTime": { + "access": "read", + "default": 0, + "type": "number" + } + }, + "hobZone7": { + "heatingQualitativeLevel": { + "access": "read", + "default": 0, + "max": 9, + "min": 0, + "step": 1, + "type": "number", + "values": { + "POWER_LEVEL_ASSISTED": {}, + "POWER_LEVEL_MELTING": {}, + "POWER_LEVEL_P": {} + } + }, + "hobCoil": { + "access": "read", + "type": "number" + }, + "hobMaxPowerLevel": { + "access": "read", + "type": "number" + }, + "hobPotDetected": { + "access": "read", + "type": "string", + "values": { + "NO_POT_IDLE": {}, + "NO_POT_RUNNING": {}, + "POT_IDLE": {}, + "POT_RUNNING": {} + } + }, + "residualHeatState": { + "access": "read", + "type": "string", + "values": { + "HIGH": {}, + "LOW": {}, + "MIDDLE": {}, + "NO": {} + } + }, + "runningTime": { + "access": "read", + "default": 0, + "type": "number" + } + }, + "keyModel": { + "access": "constant", + "default": "285_145_030", + "type": "string" + }, + "networkInterface": { + "command": { + "access": "write", + "type": "string", + "values": { + "APPLIANCE_AUTHORIZE": {}, + "START": {}, + "USER_AUTHORIZE": {}, + "USER_NOT_AUTHORIZE": {} + } + }, + "linkQualityIndicator": { + "access": "read", + "type": "string", + "values": { + "EXCELLENT": {}, + "GOOD": {}, + "POOR": {}, + "UNDEFINED": {}, + "VERY_GOOD": {}, + "VERY_POOR": {} + } + }, + "niuSwUpdateCurrentDescription": { + "access": "read", + "type": "string" + }, + "oTA3CurrentVersion": { + "access": "read", + "type": "string" + }, + "oTA3LastResult": { + "access": "read", + "type": "string", + "values": { + "BKP_BUNDLE_CRC_ERROR": {}, + "BKP_BUNDLE_INCOMPATIBLE": {}, + "BKP_BUNDLE_MALFORMED": {}, + "BKP_BUNDLE_MISSING": {}, + "BKP_BUNDLE_PROG_ATTEMPS_OVERRUN": {}, + "ERROR_APPLIANCE_ABORTED": {}, + "ERROR_BACKUP_RESTORED": {}, + "ERROR_TIMEOUT_FINALIZATION": {}, + "ERROR_TIMEOUT_GENERIC": {}, + "ERROR_TIMEOUT_MACHINE_READY_WAIT": {}, + "ERROR_TIMEOUT_PROGRAMMING": {}, + "ERROR_TIMEOUT_SYSTEM_READY_WAIT": {}, + "NEW_BUNDLE_CRC_ERROR": {}, + "NEW_BUNDLE_INCOMPATIBLE": {}, + "NEW_BUNDLE_MALFORMED": {}, + "NEW_BUNDLE_MISSING": {}, + "NEW_BUNDLE_PROG_ATTEMPS_OVERRUN": {}, + "NONE": {}, + "PROGRAMMING_EB_NOT_IN_BOOT": {}, + "PROGRAMMING_EXECUTION": {}, + "SUCCESS": {} + } + }, + "oTA3State": { + "access": "read", + "type": "string", + "values": { + "DOWNLOAD": {}, + "FINALIZATION": {}, + "IDLE": {}, + "PROGRAMMING": {}, + "SYSTEM_READY": {}, + "UNKNOWN": {}, + "UNSUPPORTED": {}, + "UPDATE_CHECK": {}, + "WAIT_MACHINE_READY": {}, + "WAIT_USER_AUTH": {} + } + }, + "oTA3TargetVersion": { + "access": "read", + "type": "string" + }, + "otaState": { + "access": "read", + "type": "string", + "values": { + "DESCRIPTION_AVAILABLE": {}, + "DESCRIPTION_DOWNLOADING": {}, + "DESCRIPTION_READY": {}, + "FW_DOWNLOADING": {}, + "FW_DOWNLOAD_START": {}, + "FW_SIGNATURE_CHECK": {}, + "FW_UPDATE_IN_PROGRESS": {}, + "IDLE": {}, + "READY_TO_UPDATE": {}, + "UPDATE_ABORT": {}, + "UPDATE_CHECK": {}, + "UPDATE_ERROR": {}, + "UPDATE_OK": {}, + "WAITINGFORAUTHORIZATION": {} + } + }, + "startUpCommand": { + "access": "write", + "type": "string", + "values": { + "UNINSTALL": {} + } + }, + "swAncAndRevision": { + "access": "read", + "type": "string" + }, + "swVersion": { + "access": "read", + "type": "string" + } + }, + "remoteControl": { + "access": "read", + "type": "string", + "values": { + "DISABLED": {}, + "ENABLED": {}, + "NOT_SAFETY_RELEVANT_ENABLED": {}, + "TEMPORARY_LOCKED": {} + } + }, + "uiLockMode": { + "access": "read", + "type": "boolean", + "values": { + "OFF": {}, + "ON": {} + } + } + } +} diff --git a/tests/components/electrolux/fixtures/appliance_details/supex_structured_oven.json b/tests/components/electrolux/fixtures/appliance_details/supex_structured_oven.json new file mode 100644 index 00000000000..f7a8b48ab78 --- /dev/null +++ b/tests/components/electrolux/fixtures/appliance_details/supex_structured_oven.json @@ -0,0 +1,3015 @@ +{ + "applianceInfo": { + "serialNumber": "27032025", + "pnc": "944035064", + "brand": "AEG", + "deviceType": "BUILT-IN OVEN", + "model": "NBP9S831AB", + "variant": "PROFISTEAM_1", + "colour": "BLACK" + }, + "capabilities": { + "alerts": { + "access": "read", + "type": "alert", + "values": { + "AD_CONVERTER_REFERENCE_ALARM": {}, + "BACKLIGHT_ALARM": {}, + "BOARD_TEMPERATURE_ALARM": {}, + "COMMUNICATION_ALARM_BETWEEN_TWO_CONTROLLERS": {}, + "COMMUNICATION_ALARM_OUI_OC": {}, + "CONFIGURATION_CHECKSUM_ALARM": {}, + "CONFIGURATION_COHERENT_ALARM": {}, + "CONFIGURATION_COMPATIBILITY_ALARM": {}, + "COOKING_FAN_CONFIG_ALARM": {}, + "DATA_FLASH_ALARM_UI": {}, + "DOOR_LOCK_ACTUATOR": {}, + "DOOR_LOCK_CONFIGURATION_ALARM": {}, + "DOOR_LOCK_SENSOR_ALARM": {}, + "DOOR_SWITCH_SENSOR_ALARM": {}, + "ELECTRONIC_CLIXON_ALARM": {}, + "FIX_SENSOR_DETECTION_ALARM": {}, + "FOOD_PROBE_COMMUNICATION_ALARM": {}, + "FOOD_PROBE_CONFIGURATION_ALARM": {}, + "FUNCTION_SELECTOR_NOT_CONNECTED": {}, + "HMI-TOUCH_BOARD_FMEA_ALARM": {}, + "HMI-TOUCH_BOARD_SERIAL_COMMUNICATION_ALARM": {}, + "HOB_OVEN_COMMUNICATION_ALARM": {}, + "HOB_OVEN_POWER_MANAGEMENT_ALARM": {}, + "HUMIDITY_SENSOR_OUT_OF_RANGE_ALARM": {}, + "INTERNAL_ERROR": {}, + "LIB_FMEA_ALARM_ROTARY_GRAB": {}, + "MACS_COMMNUNICATION_ERROR": {}, + "MEAT_PROBE_OUT_OF_RANGE_ALARM": {}, + "NETVM_COMMUNICATION_ALARM": {}, + "NIUX_COMMUNICATION_ALARM": {}, + "NIUX_ONBOARDING_FAILED_ALARM": {}, + "NTC_OUT_OF_RANGE_ALARM": {}, + "OTA_FAILURE": {}, + "PERIPHERAL_INIT_ALARM_ROTARY_SERIAL_COMMUNICATION_ALARM": {}, + "PERIPHERAL_RUNTIME_ALARM_ROTARY_BIT_ENCODER_ALARM": {}, + "POWER_ALARM": {}, + "PT500_OUT_OF_RANGE_ALARM": {}, + "PT500_STEAM_OUT_OF_RANGE_ALARM": {}, + "PTO_COMMUNICATION_ALARM_OUI_PTO": {}, + "PTO_CONFIGURATION_CHECKSUM_ALARM": {}, + "PTO_KEY_ALARM": {}, + "PTO_LIB_FMEA_ALARM": {}, + "PYR_HOB_ALARM": {}, + "ROTARY_TOUCH_ALARM": {}, + "RTC_ALARM": {}, + "RTC_OUT_OF_RANGE_ALARM": {}, + "SMART_ADC_ERROR": {}, + "SMART_AD_CALIBRATION_RUNNING_ERROR": {}, + "SMART_COMMUNICATION_ALARM_OUI_SC": {}, + "SMART_ERROR_UNKNOWN": {}, + "SMART_HIGH_START_TEMPERATURE": {}, + "SMART_INVALID_CONFIGURATION_ERROR": {}, + "SMART_NO_START_TEMPERATURE": {}, + "SMART_READ_FLASH_ERROR": {}, + "SOFTWARE_COMPATIBILITY_CODE_ALARM": {}, + "STEAM_MAGNETRON_NTC": {}, + "TOO_HIGH_TEMPERATURE_ALARM": {}, + "TOUCHSCREEN_DRIVER_ALARM": {}, + "TOUCH_KEY_1_ALARM": {}, + "TOUCH_KEY_ALARM": {}, + "TRIAC_ALARM": {}, + "UNKNOWN_STATE_ERROR": {}, + "USB_CAMERA_DISCONNECTED_ALARM": {}, + "WATER_LEVEL_SENSOR_IN_STEAMER_OUT_OF_RANGE_ALARM": {}, + "WATER_LEVEL_SENSOR_IN_STEAM_TANK_DRAWER_OUT_OF_RANGE_ALARM": {}, + "WIFI_SIGNAL_MISS_ALARM": {} + } + }, + "applianceLocalTimeOffset": { + "access": "readwrite", + "type": "number" + }, + "applianceState": { + "access": "read", + "type": "string", + "values": { + "ALARM": {}, + "OFF": {}, + "RUNNING": {} + } + }, + "applianceUiConfigVersion": { + "access": "read", + "type": "string" + }, + "autoLocalTimeOffset": { + "access": "read", + "max": 50400, + "min": -43200, + "step": 60, + "type": "number" + }, + "childLock": { + "access": "readwrite", + "type": "boolean", + "values": { + "DISABLED": {}, + "ENABLED": {} + } + }, + "cleaningReminder": { + "access": "read", + "type": "boolean", + "values": { + "OFF": {}, + "ON": {} + } + }, + "clockStyle": { + "access": "readwrite", + "type": "string", + "values": { + "ANALOG": {}, + "DIGITAL": {}, + "NOT_SELECTED": {} + } + }, + "cpv": { + "access": "read", + "type": "string" + }, + "descalingReminderState": { + "access": "read", + "type": "boolean", + "values": { + "ACTIVE_BLOCKING": {}, + "ACTIVE_NOT_BLOCKING": {}, + "NOT_ACTIVE": {} + } + }, + "displayLight": { + "access": "readwrite", + "type": "string", + "values": { + "DISPLAY_LIGHT_1": {}, + "DISPLAY_LIGHT_2": {}, + "DISPLAY_LIGHT_3": {}, + "DISPLAY_LIGHT_4": {}, + "DISPLAY_LIGHT_5": {} + } + }, + "favoriteNickname": { + "access": "write", + "type": "map" + }, + "favoriteOrder": { + "access": "readwrite", + "type": "array" + }, + "favoriteOrder/array": { + "access": "readwrite", + "type": "complex", + "values": {} + }, + "favoriteOrder/number": { + "access": "read", + "type": "int", + "values": {} + }, + "favoriteStatus": { + "access": "read", + "type": "array" + }, + "favoriteStatus/number": { + "access": "read", + "type": "int", + "values": {} + }, + "favoriteStatus/status": { + "access": "read", + "type": "complex", + "values": {} + }, + "keyModel": { + "access": "constant", + "default": "SPX_AO8TK1C_V_AP_PS1_FP_SV_AFP_A++", + "type": "string" + }, + "keySoundTone": { + "access": "readwrite", + "type": "string", + "values": { + "BEEP": {}, + "CLICK": {}, + "NONE": {} + } + }, + "language": { + "access": "readwrite", + "type": "string", + "values": { + "ALBANIAN": {}, + "ARABIC": {}, + "AUSTRALIAN_LANGUAGES": {}, + "BRAZILIAN_PORTUGUES": {}, + "BULGARIAN": {}, + "CROATIAN": {}, + "CZECH": {}, + "DANISH": {}, + "DUTCH": {}, + "ENGLISH": {}, + "ESTONIAN": {}, + "FINNISH": {}, + "FRENCH": {}, + "GERMAN": {}, + "GREEK": {}, + "HEBREW": {}, + "HUNGARIAN": {}, + "INDONESIAN": {}, + "ITALIAN": {}, + "JAPANESE": {}, + "KOREAN": {}, + "LATVIAN": {}, + "LITHUANIAN": {}, + "LUXEMBOURGISH": {}, + "MACEDONIAN": {}, + "MALAY": {}, + "NORWEGIAN": {}, + "POLISH": {}, + "PORTUGUESE": {}, + "ROMANIAN": {}, + "RUSSIAN": {}, + "SERBIAN": {}, + "SIMPLIFIED_CHINESE": {}, + "SLOVAK": {}, + "SLOVENIAN": {}, + "SPANISH": {}, + "SWEDISH": {}, + "SWISS": {}, + "THAI": {}, + "TRADITIONAL_CHINESE": {}, + "TURKISH": {}, + "UKRANIAN": {}, + "VIETNAMESE": {} + } + }, + "localTimeAutomaticMode": { + "access": "readwrite", + "type": "string", + "values": { + "AUTOMATIC": {}, + "MANUAL": {} + } + }, + "messageQueueSync/activeMessageIndex": { + "access": "read", + "type": "number" + }, + "messageQueueSync/messageBehaviour": { + "access": "read", + "type": "string", + "values": { + "BLOCKING_OVEN_PROCESS": {}, + "BLOCKING_PHASE_TRANSITION": {}, + "INVALID": {}, + "NOT_BLOCKING": {} + } + }, + "messageQueueSync/messageQueueId": { + "access": "read", + "type": "number" + }, + "messageQueueSync/messageQueueType": { + "access": "read", + "type": "string", + "values": { + "AUXILARY": {}, + "INITIAL": {}, + "INVALID": {}, + "OVEN_PROCESS": {}, + "OVEN_PROCESS_QUEUE_INIT": {}, + "OVEN_PROCESS_QUEUE_MAIN": {}, + "OVEN_PROCESS_QUEUE_STEP": {}, + "PHASE_QUEUE": {} + } + }, + "networkInterface": { + "autoLocalTimeOffset": { + "access": "read", + "max": 50400, + "min": -43200, + "step": 60, + "type": "number" + }, + "command": { + "access": "write", + "type": "string", + "values": { + "ABORT": {}, + "APPLIANCE_AUTHORIZE": {}, + "DOWNLOAD": {}, + "START": {}, + "USER_AUTHORIZE": {}, + "USER_NOT_AUTHORIZE": {} + } + }, + "linkQualityIndicator": { + "access": "read", + "type": "string", + "values": { + "EXCELLENT": {}, + "GOOD": {}, + "POOR": {}, + "UNDEFINED": {}, + "VERY_GOOD": {}, + "VERY_POOR": {} + } + }, + "niuSwUpdateCurrentDescription": { + "access": "read", + "type": "string" + }, + "oTA3CurrentVersion": { + "access": "read", + "type": "string" + }, + "oTA3LastResult": { + "access": "read", + "type": "string", + "values": { + "BKP_BUNDLE_CRC_ERROR": {}, + "BKP_BUNDLE_INCOMPATIBLE": {}, + "BKP_BUNDLE_MALFORMED": {}, + "BKP_BUNDLE_MISSING": {}, + "BKP_BUNDLE_PROG_ATTEMPS_OVERRUN": {}, + "ERROR_APPLIANCE_ABORTED": {}, + "ERROR_BACKUP_RESTORED": {}, + "ERROR_TIMEOUT_FINALIZATION": {}, + "ERROR_TIMEOUT_GENERIC": {}, + "ERROR_TIMEOUT_MACHINE_READY_WAIT": {}, + "ERROR_TIMEOUT_PROGRAMMING": {}, + "ERROR_TIMEOUT_SYSTEM_READY_WAIT": {}, + "NEW_BUNDLE_CRC_ERROR": {}, + "NEW_BUNDLE_INCOMPATIBLE": {}, + "NEW_BUNDLE_MALFORMED": {}, + "NEW_BUNDLE_MISSING": {}, + "NEW_BUNDLE_PROG_ATTEMPS_OVERRUN": {}, + "NONE": {}, + "PROGRAMMING_EB_NOT_IN_BOOT": {}, + "PROGRAMMING_EXECUTION": {}, + "SUCCESS": {} + } + }, + "oTA3State": { + "access": "read", + "type": "string", + "values": { + "DOWNLOAD": {}, + "FINALIZATION": {}, + "IDLE": {}, + "PROGRAMMING": {}, + "SYSTEM_READY": {}, + "UNKNOWN": {}, + "UNSUPPORTED": {}, + "UPDATE_CHECK": {}, + "WAIT_MACHINE_READY": {}, + "WAIT_USER_AUTH": {} + } + }, + "oTA3TargetVersion": { + "access": "read", + "type": "string" + }, + "otaState": { + "access": "read", + "type": "string", + "values": { + "DESCRIPTION_AVAILABLE": {}, + "DESCRIPTION_DOWNLOADING": {}, + "DESCRIPTION_READY": {}, + "FW_DOWNLOADING": {}, + "FW_DOWNLOAD_START": {}, + "FW_SIGNATURE_CHECK": {}, + "FW_UPDATE_IN_PROGRESS": {}, + "IDLE": {}, + "READY_TO_UPDATE": {}, + "UPDATE_ABORT": {}, + "UPDATE_CHECK": {}, + "UPDATE_ERROR": {}, + "UPDATE_OK": {}, + "WAITINGFORAUTHORIZATION": {} + } + }, + "startUpCommand": { + "access": "write", + "type": "string", + "values": { + "UNINSTALL": {} + } + }, + "swAncAndRevision": { + "access": "read", + "type": "string" + }, + "swVersion": { + "access": "read", + "type": "string" + }, + "timeZoneDatabaseName": { + "access": "readwrite", + "type": "string" + } + }, + "remoteControl": { + "access": "read", + "type": "string", + "values": { + "DISABLED": {}, + "ENABLED": {}, + "NOT_SAFETY_RELEVANT_ENABLED": {}, + "TEMPORARY_LOCKED": {} + } + }, + "soundVolume": { + "access": "readwrite", + "type": "number", + "values": { + "1": {}, + "2": {}, + "3": {}, + "4": {} + } + }, + "temperatureRepresentation": { + "access": "read", + "type": "string", + "values": { + "CELSIUS": {}, + "DESCRIPTIVE": {}, + "FAHRENHEIT": {}, + "KELVIN": {} + } + }, + "upperOven": { + "applianceState": { + "access": "read", + "type": "string", + "values": { + "ALARM": {}, + "DELAYED_START": {}, + "END_OF_CYCLE": {}, + "IDLE": {}, + "OFF": {}, + "PAUSED": {}, + "READY_TO_START": {}, + "RUNNING": {} + } + }, + "cavityLight": { + "access": "readwrite", + "type": "boolean", + "values": { + "OFF": {}, + "ON": {} + } + }, + "displayFoodProbeTemperatureC": { + "access": "read", + "type": "temperature" + }, + "displayFoodProbeTemperatureF": { + "access": "read", + "type": "temperature" + }, + "displayTemperatureC": { + "access": "read", + "type": "temperature" + }, + "displayTemperatureF": { + "access": "read", + "type": "temperature" + }, + "doorState": { + "access": "read", + "type": "string", + "values": { + "CLOSED": {}, + "OPEN": {} + } + }, + "executeCommand": { + "access": "write", + "type": "string", + "values": { + "START": {}, + "STOPRESET": {} + } + }, + "fastHeatUpFeature": { + "access": "readwrite", + "type": "string", + "values": { + "DISABLED": {}, + "ECO": {}, + "ENABLED": {} + } + }, + "favorite": { + "access": "readwrite", + "properties": { + "haconListItemId": { + "access": "read", + "isIndexId": true, + "mandatory": true, + "type": "number" + }, + "program": { + "mandatory": true, + "reference": "program" + }, + "targetDuration": { + "mandatory": false, + "reference": "targetDuration" + }, + "targetFoodProbeTemperatureC": { + "mandatory": false, + "reference": "targetFoodProbeTemperatureC" + }, + "targetTemperatureC": { + "mandatory": false, + "reference": "targetTemperatureC" + } + }, + "type": "hacon" + }, + "foodProbeInsertionState": { + "access": "read", + "type": "string", + "values": { + "INSERTED": {}, + "NOT_INSERTED": {} + } + }, + "hideExecuteCommand": { + "access": "constant", + "default": 0, + "triggers": [ + { + "action": { + "upperOven/executeCommand": { + "disabled": false + } + }, + "condition": { + "operand_1": "value", + "operand_2": 0, + "operator": "eq" + } + }, + { + "action": { + "upperOven/executeCommand": { + "disabled": true + } + }, + "condition": { + "operand_1": "value", + "operand_2": 1, + "operator": "eq" + } + } + ], + "type": "int" + }, + "messageQueueSync": { + "access": "read", + "type": "container" + }, + "preheatComplete": { + "access": "read", + "type": "string", + "values": { + "OFF": {}, + "PRE_HEAT_COMPLETED": {}, + "PRE_HEAT_RUNNING": {}, + "RE_HEAT_COMPLETED": {}, + "RE_HEAT_RUNNING": {} + } + }, + "processPhase": { + "access": "read", + "type": "string", + "values": { + "FAST_HEAT_UP": {}, + "HEAT_AND_HOLD": {}, + "NONE": {}, + "NORMAL_HEATING": {}, + "TIME_EXTENSION": {} + } + }, + "program": { + "access": "readwrite", + "type": "string", + "values": { + "BAKE": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetFoodProbeTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 99, + "min": 30, + "step": 1, + "type": "temperature" + }, + "upperOven/targetFoodProbeTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 210.2, + "min": 86, + "step": 1, + "type": "temperature" + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 150, + "disabled": false, + "max": 230, + "min": 80, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 302, + "disabled": false, + "max": 446, + "min": 176, + "step": 5, + "type": "temperature" + } + }, + "BAKE_BROIL": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetFoodProbeTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 99, + "min": 30, + "step": 1, + "type": "temperature" + }, + "upperOven/targetFoodProbeTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 210.2, + "min": 86, + "step": 1, + "type": "temperature" + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 200, + "disabled": false, + "max": 230, + "min": 30, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 392, + "disabled": false, + "max": 446, + "min": 86, + "step": 5, + "type": "temperature" + } + }, + "BAKE_BROIL_FAN": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetFoodProbeTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 99, + "min": 30, + "step": 1, + "type": "temperature" + }, + "upperOven/targetFoodProbeTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 210.2, + "min": 86, + "step": 1, + "type": "temperature" + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 220, + "disabled": false, + "max": 230, + "min": 80, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 428, + "disabled": false, + "max": 446, + "min": 176, + "step": 5, + "type": "temperature" + } + }, + "BAKE_TRUE_FAN": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetFoodProbeTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 99, + "min": 30, + "step": 1, + "type": "temperature" + }, + "upperOven/targetFoodProbeTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 210.2, + "min": 86, + "step": 1, + "type": "temperature" + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 200, + "disabled": false, + "max": 230, + "min": 80, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 392, + "disabled": false, + "max": 446, + "min": 176, + "step": 5, + "type": "temperature" + } + }, + "BROIL": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetFoodProbeTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 99, + "min": 30, + "step": 1, + "type": "temperature" + }, + "upperOven/targetFoodProbeTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 210.2, + "min": 86, + "step": 1, + "type": "temperature" + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 230, + "disabled": false, + "max": 230, + "min": 80, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 446, + "disabled": false, + "max": 446, + "min": 176, + "step": 5, + "type": "temperature" + } + }, + "BROIL_FAN": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetFoodProbeTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 99, + "min": 30, + "step": 1, + "type": "temperature" + }, + "upperOven/targetFoodProbeTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 210.2, + "min": 86, + "step": 1, + "type": "temperature" + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 180, + "disabled": false, + "max": 230, + "min": 80, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 356, + "disabled": false, + "max": 446, + "min": 176, + "step": 5, + "type": "temperature" + } + }, + "FULL_STEAM": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetFoodProbeTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 99, + "min": 30, + "step": 1, + "type": "temperature" + }, + "upperOven/targetFoodProbeTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 210.2, + "min": 86, + "step": 1, + "type": "temperature" + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 90, + "disabled": false, + "max": 100, + "min": 50, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 194, + "disabled": false, + "max": 212, + "min": 122, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_AIRFRY": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 1200, + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 200, + "disabled": false, + "max": 230, + "min": 70, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 392, + "disabled": false, + "max": 446, + "min": 158, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_AIRFRY_PLUS": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 5 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 1800, + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 200, + "disabled": false, + "max": 230, + "min": 170, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 392, + "disabled": false, + "max": 446, + "min": 338, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_BAKE_BREAD": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 2700, + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 180, + "disabled": false, + "max": 230, + "min": 150, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 356, + "disabled": false, + "max": 446, + "min": 302, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_BAKE_CAKE_MULTIPLE": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 1800, + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 150, + "disabled": false, + "max": 230, + "min": 100, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 302, + "disabled": false, + "max": 446, + "min": 212, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_BAKE_CAKE_SINGLE": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 3000, + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 180, + "disabled": false, + "max": 230, + "min": 100, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 356, + "disabled": false, + "max": 446, + "min": 212, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_BAKE_QUICHE_AND_PIZZA": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 1800, + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 210, + "disabled": false, + "max": 230, + "min": 150, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 410, + "disabled": false, + "max": 446, + "min": 302, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_BAKE_READY_TO_BAKE": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 2700, + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 180, + "disabled": false, + "max": 230, + "min": 150, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 356, + "disabled": false, + "max": 446, + "min": 302, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_DEFROST_BREAD_AND_BAKERY": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 1200, + "disabled": false, + "max": 5400, + "min": 0, + "step": 60 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 40, + "disabled": false, + "max": 50, + "min": 30, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 104, + "disabled": false, + "max": 122, + "min": 86, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_DEFROST_FRUIT_AND_VEGETABLES": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 900, + "disabled": false, + "max": 7200, + "min": 0, + "step": 60 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 40, + "disabled": false, + "max": 50, + "min": 30, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 104, + "disabled": false, + "max": 122, + "min": 86, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_DEFROST_MEAT_FISH_POULTRY": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 1800, + "disabled": false, + "max": 10800, + "min": 0, + "step": 60 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 40, + "disabled": false, + "max": 50, + "min": 30, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 104, + "disabled": false, + "max": 122, + "min": 86, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_DEHYDRATE": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 5400, + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 75, + "min": 30, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 167, + "min": 86, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_DOUGH_PROVE": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 1800, + "disabled": false, + "max": 3600, + "min": 0, + "step": 60 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 35, + "disabled": false, + "max": 35, + "min": 35, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 95, + "disabled": false, + "max": 95, + "min": 95, + "type": "temperature" + } + }, + "GUIDED_GRILL_THICK": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 1800, + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetFoodProbeTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 99, + "min": 30, + "step": 1, + "type": "temperature" + }, + "upperOven/targetFoodProbeTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 210.2, + "min": 86, + "step": 1, + "type": "temperature" + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 200, + "disabled": false, + "max": 230, + "min": 150, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 392, + "disabled": false, + "max": 446, + "min": 302, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_GRILL_THIN": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 1800, + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 230, + "disabled": false, + "max": 230, + "min": 150, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 446, + "disabled": false, + "max": 446, + "min": 302, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_KEEP_WARM": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 1800, + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 80, + "disabled": false, + "max": 100, + "min": 60, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 176, + "disabled": false, + "max": 212, + "min": 140, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_PLATE_WARM": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 1800, + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 70, + "disabled": false, + "max": 80, + "min": 50, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 158, + "disabled": false, + "max": 176, + "min": 122, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_PRESERVE": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 4800, + "disabled": false, + "max": 21600, + "min": 0, + "step": 60 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 130, + "disabled": false, + "max": 180, + "min": 80, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 266, + "disabled": false, + "max": 356, + "min": 176, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_REFRESH": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 900, + "disabled": false, + "max": 3600, + "min": 0, + "step": 60 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 130, + "disabled": false, + "max": 130, + "min": 100, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 266, + "disabled": false, + "max": 266, + "min": 212, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_REHEAT_CRISP": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 900, + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetFoodProbeTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 99, + "min": 30, + "step": 1, + "type": "temperature" + }, + "upperOven/targetFoodProbeTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 210.2, + "min": 86, + "step": 1, + "type": "temperature" + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 160, + "disabled": false, + "max": 200, + "min": 135, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 320, + "disabled": false, + "max": 392, + "min": 275, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_REHEAT_MOIST": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 900, + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetFoodProbeTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 99, + "min": 30, + "step": 1, + "type": "temperature" + }, + "upperOven/targetFoodProbeTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 210.2, + "min": 86, + "step": 1, + "type": "temperature" + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 110, + "disabled": false, + "max": 130, + "min": 80, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 230, + "disabled": false, + "max": 266, + "min": 176, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_ROAST_MEAT_MEDIUM": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 2700, + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetFoodProbeTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 99, + "min": 30, + "step": 1, + "type": "temperature" + }, + "upperOven/targetFoodProbeTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 210.2, + "min": 86, + "step": 1, + "type": "temperature" + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 180, + "disabled": false, + "max": 230, + "min": 110, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 356, + "disabled": false, + "max": 446, + "min": 230, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_ROAST_MEAT_WELL_DONE": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 3600, + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetFoodProbeTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 99, + "min": 30, + "step": 1, + "type": "temperature" + }, + "upperOven/targetFoodProbeTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 210.2, + "min": 86, + "step": 1, + "type": "temperature" + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 170, + "disabled": false, + "max": 230, + "min": 130, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 338, + "disabled": false, + "max": 446, + "min": 266, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_ROAST_VEGETABLES": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 2400, + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 180, + "disabled": false, + "max": 230, + "min": 110, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 356, + "disabled": false, + "max": 446, + "min": 230, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_SLOW_COOK": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 5400, + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetFoodProbeTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 99, + "min": 30, + "step": 1, + "type": "temperature" + }, + "upperOven/targetFoodProbeTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 210.2, + "min": 86, + "step": 1, + "type": "temperature" + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 90, + "disabled": false, + "max": 140, + "min": 80, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 194, + "disabled": false, + "max": 284, + "min": 176, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_SOUS_VIDE": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 3600, + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 95, + "min": 50, + "step": 1, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 203, + "min": 122, + "step": 1, + "type": "temperature" + } + }, + "GUIDED_STANDARD_COOKING_FROZEN": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 1800, + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 180, + "disabled": false, + "max": 230, + "min": 30, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 356, + "disabled": false, + "max": 446, + "min": 86, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_STANDARD_FRESH_MULTIPLE": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 1800, + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetFoodProbeTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 99, + "min": 30, + "step": 1, + "type": "temperature" + }, + "upperOven/targetFoodProbeTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 210.2, + "min": 86, + "step": 1, + "type": "temperature" + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 160, + "disabled": false, + "max": 230, + "min": 30, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 320, + "disabled": false, + "max": 446, + "min": 86, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_STANDARD_FRESH_SINGLE": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 1800, + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetFoodProbeTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 99, + "min": 30, + "step": 1, + "type": "temperature" + }, + "upperOven/targetFoodProbeTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 210.2, + "min": 86, + "step": 1, + "type": "temperature" + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 180, + "disabled": false, + "max": 230, + "min": 30, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 356, + "disabled": false, + "max": 446, + "min": 86, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_STEAM": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 1800, + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 90, + "disabled": false, + "max": 100, + "min": 50, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 194, + "disabled": false, + "max": 212, + "min": 122, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_STEW_CLOSED_CONTAINER": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 9000, + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetFoodProbeTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 99, + "min": 30, + "step": 1, + "type": "temperature" + }, + "upperOven/targetFoodProbeTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 210.2, + "min": 86, + "step": 1, + "type": "temperature" + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 230, + "min": 95, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 284, + "disabled": false, + "max": 446, + "min": 203, + "step": 5, + "type": "temperature" + } + }, + "GUIDED_STEW_OPEN_CONTAINER": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetFoodProbeTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 99, + "min": 30, + "step": 1, + "type": "temperature" + }, + "upperOven/targetFoodProbeTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 210.2, + "min": 86, + "step": 1, + "type": "temperature" + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 120, + "disabled": false, + "max": 180, + "min": 95, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 248, + "disabled": false, + "max": 356, + "min": 203, + "step": 5, + "type": "temperature" + } + }, + "MOIST_FAN_BAKING": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 160, + "disabled": false, + "max": 230, + "min": 90, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 320, + "disabled": false, + "max": 446, + "min": 194, + "step": 5, + "type": "temperature" + } + }, + "STEAMIFY": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetFoodProbeTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 99, + "min": 30, + "step": 1, + "type": "temperature" + }, + "upperOven/targetFoodProbeTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 210.2, + "min": 86, + "step": 1, + "type": "temperature" + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 180, + "disabled": false, + "max": 230, + "min": 50, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 356, + "disabled": false, + "max": 446, + "min": 122, + "step": 5, + "type": "temperature" + } + }, + "STEAM_CLEAN_DESCALE": { + "upperOven/hideExecuteCommand": { + "access": "read", + "default": 1, + "disabled": true + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 8008, + "disabled": false, + "max": 8008, + "min": 8008, + "step": 0 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 60, + "min": 60, + "step": 0, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 140, + "min": 140, + "step": 0, + "type": "temperature" + } + }, + "STEAM_CLEAN_INTENSE": { + "upperOven/hideExecuteCommand": { + "access": "read", + "default": 1, + "disabled": true + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 4500, + "disabled": false, + "max": 4500, + "min": 4500, + "step": 0 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 70, + "disabled": false, + "max": 70, + "min": 70, + "step": 0, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 158, + "disabled": false, + "max": 158, + "min": 158, + "step": 0, + "type": "temperature" + } + }, + "STEAM_CLEAN_LIGHT": { + "upperOven/hideExecuteCommand": { + "access": "read", + "default": 1, + "disabled": true + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 1800, + "disabled": false, + "max": 1800, + "min": 1800, + "step": 0 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 70, + "disabled": false, + "max": 70, + "min": 70, + "step": 0, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 158, + "disabled": false, + "max": 158, + "min": 158, + "step": 0, + "type": "temperature" + } + }, + "STEAM_HIGH": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetFoodProbeTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 99, + "min": 30, + "step": 1, + "type": "temperature" + }, + "upperOven/targetFoodProbeTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 210.2, + "min": 86, + "step": 1, + "type": "temperature" + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 90, + "disabled": false, + "max": 130, + "min": 50, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 194, + "disabled": false, + "max": 266, + "min": 122, + "step": 5, + "type": "temperature" + } + }, + "STEAM_LOW": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetFoodProbeTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 99, + "min": 30, + "step": 1, + "type": "temperature" + }, + "upperOven/targetFoodProbeTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 210.2, + "min": 86, + "step": 1, + "type": "temperature" + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 180, + "disabled": false, + "max": 230, + "min": 50, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 356, + "disabled": false, + "max": 446, + "min": 122, + "step": 5, + "type": "temperature" + } + }, + "STEAM_MEDIUM": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 0, + "disabled": true + }, + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetFoodProbeTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 99, + "min": 30, + "step": 1, + "type": "temperature" + }, + "upperOven/targetFoodProbeTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 210.2, + "min": 86, + "step": 1, + "type": "temperature" + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 170, + "disabled": false, + "max": 200, + "min": 50, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 338, + "disabled": false, + "max": 392, + "min": 122, + "step": 5, + "type": "temperature" + } + }, + "STEAM_SYSTEM_CLEAN_DRY": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 1, + "disabled": true + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 1200, + "disabled": false, + "max": 1200, + "min": 1200, + "step": 0 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 150, + "disabled": false, + "max": 150, + "min": 150, + "step": 0, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 302, + "disabled": false, + "max": 302, + "min": 302, + "step": 0, + "type": "temperature" + } + }, + "STEAM_SYSTEM_CLEAN_RINSE": { + "upperOven/hideExecuteCommand": { + "access": "readwrite", + "default": 1, + "disabled": true + }, + "upperOven/targetDuration": { + "access": "readwrite", + "default": 1902, + "disabled": false, + "max": 1902, + "min": 1902, + "step": 0 + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 60, + "min": 60, + "step": 0, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 140, + "min": 140, + "step": 0, + "type": "temperature" + } + }, + "TRUE_FAN": { + "upperOven/startTime": { + "access": "readwrite", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetDuration": { + "access": "write", + "disabled": false, + "max": 86340, + "min": 0, + "step": 60 + }, + "upperOven/targetFoodProbeTemperatureC": { + "access": "readwrite", + "default": 60, + "disabled": false, + "max": 99, + "min": 30, + "step": 1, + "type": "temperature" + }, + "upperOven/targetFoodProbeTemperatureF": { + "access": "readwrite", + "default": 140, + "disabled": false, + "max": 210.2, + "min": 86, + "step": 1, + "type": "temperature" + }, + "upperOven/targetTemperatureC": { + "access": "readwrite", + "default": 150, + "disabled": false, + "max": 230, + "min": 30, + "step": 5, + "type": "temperature" + }, + "upperOven/targetTemperatureF": { + "access": "readwrite", + "default": 302, + "disabled": false, + "max": 446, + "min": 86, + "step": 5, + "type": "temperature" + } + } + } + }, + "reminderTime": { + "access": "readwrite", + "max": 86340, + "min": 0, + "step": 60, + "type": "number" + }, + "runningTime": { + "access": "read", + "default": 0, + "type": "number" + }, + "startTime": { + "access": "readwrite", + "type": "number" + }, + "targetDuration": { + "access": "readwrite", + "max": 86340, + "min": 0, + "step": 60, + "type": "number" + }, + "targetDurationEndAction": { + "access": "readwrite", + "type": "string", + "values": { + "END_ACTION_JUST_SHOW_TEMP": {}, + "END_ACTION_NONE": {}, + "END_ACTION_SILENT_NOTIFICATION": {}, + "END_ACTION_SOUND_ALARM": {}, + "END_ACTION_SOUND_ALARM_STOP_COOKING": {}, + "END_ACTION_SOUND_ALARM_WARM_HOLD": {}, + "END_ACTION_START_COOKING": {}, + "END_ACTION_STOP_COOKING": {} + } + }, + "targetFoodProbeTemperatureC": { + "access": "readwrite", + "type": "temperature" + }, + "targetFoodProbeTemperatureEndAction": { + "access": "readwrite", + "type": "string", + "values": { + "END_ACTION_JUST_SHOW_TEMP": {}, + "END_ACTION_NONE": {}, + "END_ACTION_SILENT_NOTIFICATION": {}, + "END_ACTION_SOUND_ALARM": {}, + "END_ACTION_SOUND_ALARM_STOP_COOKING": {}, + "END_ACTION_SOUND_ALARM_WARM_HOLD": {}, + "END_ACTION_START_COOKING": {}, + "END_ACTION_STOP_COOKING": {} + } + }, + "targetFoodProbeTemperatureF": { + "access": "readwrite", + "type": "temperature" + }, + "targetTemperatureC": { + "access": "readwrite", + "type": "temperature" + }, + "targetTemperatureF": { + "access": "readwrite", + "type": "temperature" + }, + "timeToEnd": { + "access": "read", + "type": "number" + }, + "waterTankLevel": { + "access": "read", + "type": "string", + "values": { + "ALMOST_EMPTY": {}, + "ALMOST_FULL": {}, + "EMPTY": {}, + "FULL": {}, + "OK": {}, + "UNKNOWN": {} + } + }, + "waterTrayInsertionState": { + "access": "read", + "type": "string", + "values": { + "INSERTED": {}, + "NOT_INSERTED": {} + } + } + }, + "waterHardness": { + "access": "readwrite", + "type": "string", + "values": { + "HARD": {}, + "MEDIUM": {}, + "SOFT": {}, + "STEP_4": {} + } + } + } +} diff --git a/tests/components/electrolux/fixtures/appliance_details/tumble_dryer.json b/tests/components/electrolux/fixtures/appliance_details/tumble_dryer.json new file mode 100644 index 00000000000..27b6635a1af --- /dev/null +++ b/tests/components/electrolux/fixtures/appliance_details/tumble_dryer.json @@ -0,0 +1,1406 @@ +{ + "applianceInfo": { + "serialNumber": "74852244", + "pnc": "999120000", + "brand": "ELECTROLUX", + "deviceType": "TUMBLE_DRYER", + "model": "EW9H778P9", + "variant": "PERFECTCARE900", + "colour": "WHITE" + }, + "capabilities": { + "alerts": { + "access": "read", + "type": "alert", + "values": { + "CHECK_DOOR": {}, + "CHECK_DRAIN_FILTER": {}, + "CHECK_INLET_TAP": {}, + "DETERGENT_OVERDOSING": {}, + "DOOR": {}, + "EMPTY_WATER_CONTAINER": {}, + "MACHINE_RESTART": {}, + "POWER_FAILURE": {}, + "STEAM_TANK_EMPTY": {}, + "STEAM_TANK_FULL": {}, + "TOP_UP_SALT": {}, + "UNBALANCED_LAUNDRY": {}, + "UNSTABLE_SUPPLY_VOLTAGE": {}, + "WATER_CONTAINER": {}, + "WATER_LEAK": {} + } + }, + "applianceCareAndMaintenance0": { + "access": "readwrite", + "type": "careMaintenance" + }, + "applianceCareAndMaintenance0/maint1_ID": { + "access": "readwrite", + "type": "int", + "values": {} + }, + "applianceCareAndMaintenance0/maint1_mng_by_cloud": { + "access": "readwrite", + "type": "boolean", + "values": {} + }, + "applianceCareAndMaintenance0/maint1_occured": { + "access": "readwrite", + "type": "boolean", + "values": {} + }, + "applianceCareAndMaintenance0/maint1_spare": { + "access": "readwrite", + "type": "int", + "values": {} + }, + "applianceCareAndMaintenance0/maint1_threshold": { + "access": "readwrite", + "type": "int", + "values": {} + }, + "applianceCareAndMaintenance0/maint2_ID": { + "access": "readwrite", + "type": "int", + "values": {} + }, + "applianceCareAndMaintenance0/maint2_mng_by_cloud": { + "access": "readwrite", + "type": "boolean", + "values": {} + }, + "applianceCareAndMaintenance0/maint2_occured": { + "access": "readwrite", + "type": "boolean", + "values": {} + }, + "applianceCareAndMaintenance0/maint2_spare": { + "access": "readwrite", + "type": "int", + "values": {} + }, + "applianceCareAndMaintenance0/maint2_threshold": { + "access": "readwrite", + "type": "int", + "values": {} + }, + "applianceCareAndMaintenance0/maint3_ID": { + "access": "readwrite", + "type": "int", + "values": {} + }, + "applianceCareAndMaintenance0/maint3_mng_by_cloud": { + "access": "readwrite", + "type": "boolean", + "values": {} + }, + "applianceCareAndMaintenance0/maint3_occured": { + "access": "readwrite", + "type": "boolean", + "values": {} + }, + "applianceCareAndMaintenance0/maint3_spare": { + "access": "readwrite", + "type": "int", + "values": {} + }, + "applianceCareAndMaintenance0/maint3_threshold": { + "access": "readwrite", + "type": "int", + "values": {} + }, + "applianceCareAndMaintenance0/maint4_ID": { + "access": "readwrite", + "type": "int", + "values": {} + }, + "applianceCareAndMaintenance0/maint4_mng_by_cloud": { + "access": "readwrite", + "type": "boolean", + "values": {} + }, + "applianceCareAndMaintenance0/maint4_occured": { + "access": "readwrite", + "type": "boolean", + "values": {} + }, + "applianceCareAndMaintenance0/maint4_spare": { + "access": "readwrite", + "type": "int", + "values": {} + }, + "applianceCareAndMaintenance0/maint4_threshold": { + "access": "readwrite", + "type": "int", + "values": {} + }, + "applianceCareAndMaintenance0/maint5_ID": { + "access": "readwrite", + "type": "int", + "values": {} + }, + "applianceCareAndMaintenance0/maint5_mng_by_cloud": { + "access": "readwrite", + "type": "boolean", + "values": {} + }, + "applianceCareAndMaintenance0/maint5_occured": { + "access": "readwrite", + "type": "boolean", + "values": {} + }, + "applianceCareAndMaintenance0/maint5_spare": { + "access": "readwrite", + "type": "int", + "values": {} + }, + "applianceCareAndMaintenance0/maint5_threshold": { + "access": "readwrite", + "type": "int", + "values": {} + }, + "applianceMode": { + "access": "read", + "type": "string", + "values": { + "DEMO": {}, + "DIAGNOSTIC": {}, + "NORMAL": {}, + "SERVICE": {} + } + }, + "applianceState": { + "access": "read", + "triggers": [ + { + "action": { + "executeCommand": { + "access": "write", + "values": { + "PAUSE": {} + } + }, + "userSelections/programUID": { + "access": "read" + } + }, + "condition": { + "operand_1": "value", + "operand_2": "RUNNING", + "operator": "eq" + } + }, + { + "action": { + "executeCommand": { + "access": "write", + "values": { + "RESUME": {}, + "STOPRESET": {} + } + }, + "userSelections/programUID": { + "access": "read" + } + }, + "condition": { + "operand_1": "value", + "operand_2": "PAUSED", + "operator": "eq" + } + }, + { + "action": { + "executeCommand": { + "access": "write", + "values": { + "PAUSE": {} + } + }, + "userSelections/programUID": { + "access": "read" + } + }, + "condition": { + "operand_1": "value", + "operand_2": "DELAYED_START", + "operator": "eq" + } + }, + { + "action": { + "startTime": { + "access": "default" + } + }, + "condition": { + "operand_1": "value", + "operand_2": "READY_TO_START", + "operator": "eq" + } + }, + { + "action": { + "startTime": { + "access": "read" + } + }, + "condition": { + "operand_1": "value", + "operand_2": "END_OF_CYCLE", + "operator": "eq" + } + }, + { + "action": { + "startTime": { + "access": "read" + } + }, + "condition": { + "operand_1": { + "operand_1": "value", + "operand_2": "DELAYED_START", + "operator": "eq" + }, + "operand_2": { + "operand_1": "value", + "operand_2": "RUNNING", + "operator": "eq" + }, + "operator": "or" + } + }, + { + "action": { + "startTime": { + "access": "read" + } + }, + "condition": { + "operand_1": { + "operand_1": "value", + "operand_2": "PAUSED", + "operator": "eq" + }, + "operand_2": { + "operand_1": "startTime", + "operand_2": "INVALID_OR_NOT_SET_TIME", + "operator": "eq" + }, + "operator": "and" + } + }, + { + "action": { + "startTime": { + "access": "default" + } + }, + "condition": { + "operand_1": { + "operand_1": "value", + "operand_2": "PAUSED", + "operator": "eq" + }, + "operand_2": { + "operand_1": "startTime", + "operand_2": "INVALID_OR_NOT_SET_TIME", + "operator": "ne" + }, + "operator": "and" + } + }, + { + "action": { + "executeCommand": { + "access": "write", + "values": { + "OFF": {}, + "STOPRESET": {} + } + } + }, + "condition": { + "operand_1": "value", + "operand_2": "END_OF_CYCLE", + "operator": "eq" + } + }, + { + "action": { + "executeCommand": { + "access": "write", + "values": { + "OFF": {}, + "START": {} + } + }, + "userSelections/programUID": { + "access": "readwrite" + } + }, + "condition": { + "operand_1": "value", + "operand_2": "READY_TO_START", + "operator": "eq" + } + }, + { + "action": { + "executeCommand": { + "access": "write", + "values": { + "OFF": {}, + "START": {} + } + }, + "userSelections/programUID": { + "access": "readwrite" + } + }, + "condition": { + "operand_1": "value", + "operand_2": "IDLE", + "operator": "eq" + } + }, + { + "action": { + "endOfCycleSound": { + "access": "read" + }, + "waterHardness": { + "access": "read" + } + }, + "condition": { + "operand_1": { + "operand_1": "value", + "operand_2": "RUNNING", + "operator": "eq" + }, + "operand_2": { + "operand_1": "value", + "operand_2": "DELAYED_START", + "operator": "eq" + }, + "operator": "or" + } + }, + { + "action": { + "endOfCycleSound": { + "access": "default" + }, + "waterHardness": { + "access": "default" + } + }, + "condition": { + "operand_1": { + "operand_1": "value", + "operand_2": "READY_TO_START", + "operator": "eq" + }, + "operand_2": { + "operand_1": "value", + "operand_2": "IDLE", + "operator": "eq" + }, + "operator": "or" + } + }, + { + "action": { + "endOfCycleSound": { + "access": "read" + }, + "waterHardness": { + "access": "read" + } + }, + "condition": { + "operand_1": { + "operand_1": "value", + "operand_2": "PAUSED", + "operator": "eq" + }, + "operand_2": { + "operand_1": "value", + "operand_2": "END_OF_CYCLE", + "operator": "eq" + }, + "operator": "or" + } + } + ], + "type": "string", + "values": { + "ALARM": {}, + "DELAYED_START": {}, + "END_OF_CYCLE": {}, + "IDLE": {}, + "OFF": {}, + "PAUSED": {}, + "READY_TO_START": {}, + "RUNNING": {} + } + }, + "applianceTotalWorkingTime": { + "access": "read", + "type": "number" + }, + "cyclePhase": { + "access": "read", + "triggers": [ + { + "action": { + "executeCommand": { + "access": "write", + "values": { + "STOPRESET": {} + } + } + }, + "condition": { + "operand_1": "value", + "operand_2": "ANTICREASE", + "operator": "eq" + } + } + ], + "type": "string", + "values": { + "ANTICREASE": {}, + "COOL": {}, + "CYCLE_PHASE_HIDDEN": { + "disabled": true + }, + "DRY": {}, + "UNAVAILABLE": {} + } + }, + "doorState": { + "access": "read", + "type": "string", + "values": { + "CLOSED": {}, + "OPEN": {} + } + }, + "dryingNominalLoadWeight": { + "access": "read", + "max": 20000, + "min": 0, + "type": "number", + "values": { + "NOT_AVAILABLE": { + "disabled": true + } + } + }, + "dummy_for_empty_cycle": { + "access": "constant", + "type": "enum", + "values": { + "0": { + "disabled": true + } + } + }, + "endOfCycleSound": { + "access": "readwrite", + "type": "string", + "values": { + "NO_SOUND": {}, + "SHORT_SOUND": {} + } + }, + "executeCommand": { + "access": "write", + "type": "string", + "values": { + "OFF": {}, + "ON": {}, + "PAUSE": {}, + "RESUME": {}, + "START": {}, + "STOPRESET": {} + } + }, + "fCPN_TDAlert": { + "access": "constant", + "default": 1, + "type": "int" + }, + "fCPN_TDEndOfCycle": { + "access": "constant", + "default": 1, + "type": "int" + }, + "fCPN_TDMaintenances": { + "access": "constant", + "default": 1, + "type": "int" + }, + "miscellaneous": { + "access": "readwrite", + "type": "complex" + }, + "networkInterface": { + "command": { + "access": "write", + "type": "string", + "values": { + "APPLIANCE_AUTHORIZE": {}, + "START": {}, + "USER_AUTHORIZE": {}, + "USER_NOT_AUTHORIZE": {} + } + }, + "linkQualityIndicator": { + "access": "read", + "type": "string", + "values": { + "EXCELLENT": {}, + "GOOD": {}, + "POOR": {}, + "UNDEFINED": {}, + "VERY_GOOD": {}, + "VERY_POOR": {} + } + }, + "niuSwUpdateCurrentDescription": { + "access": "read", + "type": "string" + }, + "otaState": { + "access": "read", + "type": "string", + "values": { + "DESCRIPTION_AVAILABLE": {}, + "DESCRIPTION_DOWNLOADING": {}, + "DESCRIPTION_READY": {}, + "FW_DOWNLOADING": {}, + "FW_DOWNLOAD_START": {}, + "FW_SIGNATURE_CHECK": {}, + "FW_UPDATE_IN_PROGRESS": {}, + "IDLE": {}, + "READY_TO_UPDATE": {}, + "UPDATE_ABORT": {}, + "UPDATE_CHECK": {}, + "UPDATE_ERROR": {}, + "UPDATE_OK": {}, + "WAITINGFORAUTHORIZATION": {} + } + }, + "startUpCommand": { + "access": "write", + "type": "string", + "values": { + "UNINSTALL": {} + } + }, + "swAncAndRevision": { + "access": "read", + "type": "string" + }, + "swVersion": { + "access": "read", + "type": "string" + } + }, + "remoteControl": { + "access": "read", + "triggers": [ + { + "action": { + "executeCommand": { + "disabled": false + } + }, + "condition": { + "operand_1": "value", + "operand_2": "ENABLED", + "operator": "eq" + } + }, + { + "action": { + "executeCommand": { + "disabled": true + } + }, + "condition": { + "operand_1": { + "operand_1": "value", + "operand_2": "NOT_SAFETY_RELEVANT_ENABLED", + "operator": "eq" + }, + "operand_2": { + "operand_1": "value", + "operand_2": "DISABLED", + "operator": "eq" + }, + "operator": "or" + } + } + ], + "type": "string", + "values": { + "DISABLED": {}, + "ENABLED": {}, + "NOT_SAFETY_RELEVANT_ENABLED": {}, + "TEMPORARY_LOCKED": {} + } + }, + "saveAppFavorite": { + "access": "write", + "type": "string", + "values": { + "FAVORITE_1": {} + } + }, + "startTime": { + "access": "readwrite", + "max": 72000, + "min": 0, + "step": 1800, + "triggers": [ + { + "action": { + "$self": { + "access": "read" + } + }, + "condition": { + "operand_1": { + "operand_1": "value", + "operand_2": "INVALID_OR_NOT_SET_TIME", + "operator": "eq" + }, + "operand_2": { + "operand_1": "applianceState", + "operand_2": "PAUSED", + "operator": "eq" + }, + "operator": "and" + } + } + ], + "type": "number", + "values": { + "INVALID_OR_NOT_SET_TIME": { + "disabled": true + } + } + }, + "timeToEnd": { + "access": "read", + "type": "number" + }, + "timeToNotify": { + "access": "constant", + "default": 600, + "type": "int" + }, + "totalCycleCounter": { + "access": "read", + "type": "number" + }, + "uiLockMode": { + "access": "readwrite", + "type": "boolean" + }, + "userSelections": { + "access": "readwrite", + "type": "complex" + }, + "userSelections/antiCreaseValue": { + "access": "readwrite", + "default": 30, + "max": 150, + "min": 30, + "step": 30, + "type": "number" + }, + "userSelections/dryingTime": { + "access": "readwrite", + "default": 0, + "max": 120, + "min": 0, + "step": 10, + "triggers": [ + { + "action": { + "userSelections/humidityTarget": { + "default": "UNDEFINED" + }, + "userSelections/reversePlus": { + "access": "read" + }, + "userSelections/tDEconomy_Eco": { + "access": "read", + "default": true, + "disabled": true + }, + "userSelections/tDEconomy_Night": { + "access": "read", + "default": false, + "disabled": true + } + }, + "condition": { + "operand_1": "value", + "operand_2": 0, + "operator": "ne" + } + }, + { + "action": { + "userSelections/reversePlus": { + "access": "default" + }, + "userSelections/tDEconomy_Eco": { + "access": "default", + "disabled": true + }, + "userSelections/tDEconomy_Night": { + "access": "default", + "disabled": false + } + }, + "condition": { + "operand_1": "value", + "operand_2": 0, + "operator": "eq" + } + } + ], + "type": "number" + }, + "userSelections/drynessValue": { + "access": "readwrite", + "type": "string", + "values": { + "MAXIMUM": {}, + "MEDIUM": {}, + "MINIMUM": {}, + "UNDEFINED": { + "disabled": true + } + } + }, + "userSelections/humidityTarget": { + "access": "readwrite", + "triggers": [ + { + "action": { + "userSelections/dryingTime": { + "default": 0 + } + }, + "condition": { + "operand_1": "value", + "operand_2": "UNDEFINED", + "operator": "ne" + } + }, + { + "action": { + "userSelections/tDEconomy_Night": { + "default": false + } + }, + "condition": { + "operand_1": "value", + "operand_2": "IRON", + "operator": "eq" + } + } + ], + "type": "string", + "values": { + "CUPBOARD": {}, + "EXTRA": {}, + "IRON": {}, + "UNDEFINED": { + "disabled": true + } + } + }, + "userSelections/programUID": { + "access": "readwrite", + "type": "string", + "values": { + "BED_LINEN_PLUS_PR_BEDDINGPLUS": { + "startTime": { + "access": "readwrite", + "disabled": false, + "max": 72000, + "min": 0, + "step": 1800, + "values": { + "INVALID_OR_NOT_SET_TIME": { + "disabled": true + } + } + }, + "userSelections/antiCreaseValue": { + "access": "readwrite", + "default": 30, + "disabled": false, + "max": 150, + "min": 30, + "step": 30 + }, + "userSelections/humidityTarget": { + "access": "readwrite", + "default": "CUPBOARD", + "disabled": false, + "values": { + "CUPBOARD": {}, + "EXTRA": {}, + "IRON": {}, + "UNDEFINED": { + "disabled": true + } + } + }, + "userSelections/reversePlus": { + "access": "read", + "default": true, + "disabled": false + } + }, + "COTTON_PR_COTTONS": { + "startTime": { + "access": "readwrite", + "disabled": false, + "max": 72000, + "min": 0, + "step": 1800, + "values": { + "INVALID_OR_NOT_SET_TIME": { + "disabled": true + } + } + }, + "userSelections/antiCreaseValue": { + "access": "readwrite", + "default": 30, + "disabled": false, + "max": 150, + "min": 30, + "step": 30 + }, + "userSelections/dryingTime": { + "access": "readwrite", + "default": 0, + "disabled": false, + "max": 120, + "min": 0, + "step": 10 + }, + "userSelections/humidityTarget": { + "access": "readwrite", + "default": "CUPBOARD", + "disabled": false, + "values": { + "CUPBOARD": {}, + "EXTRA": {}, + "IRON": {}, + "UNDEFINED": { + "disabled": true + } + } + }, + "userSelections/reversePlus": { + "access": "readwrite", + "default": false, + "disabled": false + }, + "userSelections/tDEconomy_Night": { + "access": "readwrite", + "default": false, + "disabled": false + } + }, + "COTTON_PR_ENERGYSAVER": { + "startTime": { + "access": "readwrite", + "disabled": false, + "max": 72000, + "min": 0, + "step": 1800, + "values": { + "INVALID_OR_NOT_SET_TIME": { + "disabled": true + } + } + }, + "userSelections/antiCreaseValue": { + "access": "readwrite", + "default": 30, + "disabled": false, + "max": 150, + "min": 30, + "step": 30 + }, + "userSelections/humidityTarget": { + "access": "readwrite", + "default": "CUPBOARD", + "disabled": false, + "values": { + "CUPBOARD": {} + } + }, + "userSelections/tDEconomy_Eco": { + "access": "read", + "default": true, + "disabled": true + } + }, + "DRY_CLEANING_PR_REFRESH": { + "startTime": { + "access": "readwrite", + "disabled": false, + "max": 72000, + "min": 0, + "step": 1800, + "values": { + "INVALID_OR_NOT_SET_TIME": { + "disabled": true + } + } + }, + "userSelections/antiCreaseValue": { + "access": "readwrite", + "default": 30, + "disabled": false, + "max": 150, + "min": 30, + "step": 30 + } + }, + "DUVET_PR_DUVET": { + "startTime": { + "access": "readwrite", + "disabled": false, + "max": 72000, + "min": 0, + "step": 1800, + "values": { + "INVALID_OR_NOT_SET_TIME": { + "disabled": true + } + } + }, + "userSelections/humidityTarget": { + "access": "readwrite", + "default": "CUPBOARD", + "disabled": false, + "values": { + "CUPBOARD": {} + } + } + }, + "EXTRA_DELICATE_PR_DELICATES": { + "startTime": { + "access": "readwrite", + "disabled": false, + "max": 72000, + "min": 0, + "step": 1800, + "values": { + "INVALID_OR_NOT_SET_TIME": { + "disabled": true + } + } + }, + "userSelections/antiCreaseValue": { + "access": "readwrite", + "default": 30, + "disabled": false, + "max": 150, + "min": 30, + "step": 30 + }, + "userSelections/humidityTarget": { + "access": "readwrite", + "default": "CUPBOARD", + "disabled": false, + "values": { + "CUPBOARD": {} + } + } + }, + "JEANS_PR_DENIM": { + "startTime": { + "access": "readwrite", + "disabled": false, + "max": 72000, + "min": 0, + "step": 1800, + "values": { + "INVALID_OR_NOT_SET_TIME": { + "disabled": true + } + } + }, + "userSelections/antiCreaseValue": { + "access": "readwrite", + "default": 30, + "disabled": false, + "max": 150, + "min": 30, + "step": 30 + }, + "userSelections/humidityTarget": { + "access": "readwrite", + "default": "CUPBOARD", + "disabled": false, + "values": { + "CUPBOARD": {}, + "EXTRA": {} + } + }, + "userSelections/reversePlus": { + "access": "read", + "default": true, + "disabled": false + } + }, + "MACHINE_SETTINGS_HIDDEN_TEST": { + "disabled": true, + "dummy_for_empty_cycle": { + "access": "readwrite", + "default": 0, + "disabled": true, + "values": { + "0": { + "disabled": true + } + } + } + }, + "OUTD_PROOF_PR_OUTDOOR": { + "startTime": { + "access": "readwrite", + "disabled": false, + "max": 72000, + "min": 0, + "step": 1800, + "values": { + "INVALID_OR_NOT_SET_TIME": { + "disabled": true + } + } + }, + "userSelections/humidityTarget": { + "access": "readwrite", + "default": "CUPBOARD", + "disabled": false, + "values": { + "CUPBOARD": {} + } + } + }, + "SILK_DRY_PR_SILK": { + "startTime": { + "access": "readwrite", + "disabled": false, + "max": 72000, + "min": 0, + "step": 1800, + "values": { + "INVALID_OR_NOT_SET_TIME": { + "disabled": true + } + } + }, + "userSelections/antiCreaseValue": { + "access": "readwrite", + "default": 30, + "disabled": false, + "max": 150, + "min": 30, + "step": 30 + }, + "userSelections/humidityTarget": { + "access": "readwrite", + "default": "CUPBOARD", + "disabled": false, + "values": { + "CUPBOARD": {} + } + } + }, + "SPORTS_PR_SPORT": { + "startTime": { + "access": "readwrite", + "disabled": false, + "max": 72000, + "min": 0, + "step": 1800, + "values": { + "INVALID_OR_NOT_SET_TIME": { + "disabled": true + } + } + }, + "userSelections/antiCreaseValue": { + "access": "readwrite", + "default": 30, + "disabled": false, + "max": 150, + "min": 30, + "step": 30 + }, + "userSelections/humidityTarget": { + "access": "readwrite", + "default": "CUPBOARD", + "disabled": false, + "values": { + "CUPBOARD": {} + } + } + }, + "SYNTHETIC_PR_SYNTHETICS": { + "startTime": { + "access": "readwrite", + "disabled": false, + "max": 72000, + "min": 0, + "step": 1800, + "values": { + "INVALID_OR_NOT_SET_TIME": { + "disabled": true + } + } + }, + "userSelections/antiCreaseValue": { + "access": "readwrite", + "default": 30, + "disabled": false, + "max": 150, + "min": 30, + "step": 30 + }, + "userSelections/dryingTime": { + "access": "readwrite", + "default": 0, + "disabled": false, + "max": 120, + "min": 0, + "step": 10 + }, + "userSelections/humidityTarget": { + "access": "readwrite", + "default": "CUPBOARD", + "disabled": false, + "values": { + "CUPBOARD": {}, + "EXTRA": {}, + "IRON": {}, + "UNDEFINED": { + "disabled": true + } + } + }, + "userSelections/reversePlus": { + "access": "readwrite", + "default": false, + "disabled": false + }, + "userSelections/tDEconomy_Night": { + "access": "readwrite", + "default": false, + "disabled": false + } + }, + "TIMEDRY_PR_DRYINGRACK": { + "startTime": { + "access": "readwrite", + "disabled": false, + "max": 72000, + "min": 0, + "step": 1800, + "values": { + "INVALID_OR_NOT_SET_TIME": { + "disabled": true + } + } + }, + "userSelections/dryingTime": { + "access": "readwrite", + "default": 10, + "disabled": false, + "max": 120, + "min": 10, + "step": 10 + } + }, + "UNIVERSAL_PR_MIXEDPLUSNOTXL": { + "startTime": { + "access": "readwrite", + "disabled": false, + "max": 72000, + "min": 0, + "step": 1800, + "values": { + "INVALID_OR_NOT_SET_TIME": { + "disabled": true + } + } + }, + "userSelections/antiCreaseValue": { + "access": "readwrite", + "default": 30, + "disabled": false, + "max": 150, + "min": 30, + "step": 30 + }, + "userSelections/dryingTime": { + "access": "readwrite", + "default": 0, + "disabled": false, + "max": 120, + "min": 0, + "step": 10 + }, + "userSelections/humidityTarget": { + "access": "readwrite", + "default": "CUPBOARD", + "disabled": false, + "values": { + "CUPBOARD": {}, + "EXTRA": {}, + "UNDEFINED": { + "disabled": true + } + } + }, + "userSelections/reversePlus": { + "access": "read", + "default": true, + "disabled": false + } + }, + "WOOL_GOLD_PR_WOOL": { + "startTime": { + "access": "readwrite", + "disabled": false, + "max": 72000, + "min": 0, + "step": 1800, + "values": { + "INVALID_OR_NOT_SET_TIME": { + "disabled": true + } + } + }, + "userSelections/drynessValue": { + "access": "readwrite", + "default": "MEDIUM", + "disabled": false, + "values": { + "MAXIMUM": {}, + "MEDIUM": {}, + "MINIMUM": {} + } + } + } + } + }, + "userSelections/programsOrder": { + "items": [ + "MACHINE_SETTINGS_HIDDEN_TEST", + "COTTON_PR_COTTONS", + "UNIVERSAL_PR_MIXEDPLUSNOTXL", + "BED_LINEN_PLUS_PR_BEDDINGPLUS", + "COTTON_PR_ENERGYSAVER", + "DRY_CLEANING_PR_REFRESH", + "TIMEDRY_PR_DRYINGRACK", + "SPORTS_PR_SPORT", + "SILK_DRY_PR_SILK", + "SYNTHETIC_PR_SYNTHETICS", + "WOOL_GOLD_PR_WOOL", + "EXTRA_DELICATE_PR_DELICATES", + "OUTD_PROOF_PR_OUTDOOR", + "JEANS_PR_DENIM", + "DUVET_PR_DUVET" + ] + }, + "userSelections/reversePlus": { + "access": "readwrite", + "default": false, + "triggers": [ + { + "action": { + "userSelections/tDEconomy_Eco": { + "default": "$default" + }, + "userSelections/tDEconomy_Night": { + "default": "$default" + } + }, + "condition": { + "operand_1": "value", + "operand_2": true, + "operator": "eq" + } + } + ], + "type": "boolean" + }, + "userSelections/tDEconomy_Eco": { + "access": "readwrite", + "type": "boolean" + }, + "userSelections/tDEconomy_Night": { + "access": "readwrite", + "triggers": [ + { + "action": { + "userSelections/reversePlus": { + "default": false + }, + "userSelections/tDEconomy_Eco": { + "default": false + } + }, + "condition": { + "operand_1": "value", + "operand_2": true, + "operator": "eq" + } + }, + { + "action": { + "userSelections/tDEconomy_Eco": { + "default": true + } + }, + "condition": { + "operand_1": "value", + "operand_2": false, + "operator": "eq" + } + } + ], + "type": "boolean" + }, + "waterHardness": { + "access": "readwrite", + "type": "string", + "values": { + "HARD": {}, + "MEDIUM": {}, + "SOFT": {} + } + } + } +} diff --git a/tests/components/electrolux/fixtures/appliance_states/ayran_fridge.json b/tests/components/electrolux/fixtures/appliance_states/ayran_fridge.json new file mode 100644 index 00000000000..e0f814ef23c --- /dev/null +++ b/tests/components/electrolux/fixtures/appliance_states/ayran_fridge.json @@ -0,0 +1,56 @@ +{ + "applianceId": "999011403_00:20220412-443E07022463", + "connectionState": "disconnected", + "status": "enabled", + "properties": { + "reported": { + "applianceInfo": { + "applianceType": "CR", + "capabilityHash": "bf87e5b776236bf693664d892f1eeebef672df3ab1d0a56e7479ec1ece8932c4" + }, + "fridge": { + "applianceState": "RUNNING", + "fanState": "ON", + "doorState": "CLOSED", + "targetTemperatureF": 39.2, + "targetTemperatureC": 4, + "fastMode": "OFF", + "alerts": [] + }, + "applianceUiSwVersion": "v4.0.4", + "uiLockMode": false, + "cpv": "00", + "vacationHolidayMode": "OFF", + "applianceMode": "NORMAL", + "applianceMainBoardSwVersion": "v39.00.00", + "coolingValveState": "1", + "alerts": [ + { + "severity": "WARNING", + "acknowledgeStatus": "NOT_NEEDED", + "code": "AIR_SENSOR_BROKEN", + "applianceCode": "6" + } + ], + "networkInterface": { + "linkQualityIndicator": "VERY_GOOD", + "otaState": "IDLE", + "swVersion": "v1.9.2_hacl", + "niuSwUpdateCurrentDescription": "A16323312A-S00006975A", + "swAncAndRevision": "S00006975A" + }, + "freezer": { + "fastMode": "OFF", + "applianceState": "RUNNING", + "fanState": "OFF", + "doorState": "CLOSED", + "targetTemperatureF": -0.3999999999999986, + "targetTemperatureC": -18, + "alerts": [] + }, + "reminderTime": -1, + "connectivityState": "disconnected", + "energySavingMode": "OFF" + } + } +} diff --git a/tests/components/electrolux/fixtures/appliance_states/hood.json b/tests/components/electrolux/fixtures/appliance_states/hood.json new file mode 100644 index 00000000000..26f7e194254 --- /dev/null +++ b/tests/components/electrolux/fixtures/appliance_states/hood.json @@ -0,0 +1,88 @@ +{ + "applianceId": "999008105_00:99010299-443E074B7A6E", + "connectionState": "connected", + "status": "enabled", + "properties": { + "reported": { + "applianceInfo": { + "applianceType": "HD", + "capabilityHash": "5ac0f7e099cfaa217c694cb69edd604d94c31892c11f183049e10d1eebc91a1f" + }, + "hoodCharcFilterTimer": 457200, + "hoodFilterCharcEnable": "ON", + "humanCentricLightEventState": "OFF", + "hoodFanLevel": "OFF", + "tvocFilterTime": 918000, + "remoteControl": "ENABLED", + "cpv": "00", + "humanCentricLightEventSettings": { + "0": { + "lightIntensityPrc": 62, + "startTimeMinutes": 5, + "lightColorPrc": 100, + "startTimeHour": 10 + }, + "1": { + "lightIntensityPrc": 100, + "startTimeMinutes": 20, + "lightColorPrc": 40, + "startTimeHour": 10 + }, + "2": { + "lightIntensityPrc": 100, + "startTimeMinutes": 35, + "lightColorPrc": 100, + "startTimeHour": 10 + }, + "3": { + "lightIntensityPrc": 50, + "startTimeMinutes": 0, + "lightColorPrc": 30, + "startTimeHour": 11 + }, + "4": { + "lightIntensityPrc": 70, + "startTimeMinutes": 0, + "lightColorPrc": 70, + "startTimeHour": 13 + }, + "5": { + "lightIntensityPrc": 69, + "startTimeMinutes": 30, + "lightColorPrc": 40, + "startTimeHour": 13 + }, + "6": { + "lightIntensityPrc": 50, + "startTimeMinutes": 0, + "lightColorPrc": 69, + "startTimeHour": 14 + } + }, + "applianceState": "IDLE", + "applianceMode": "NORMAL", + "applianceLocalTimeOffset": 7200, + "hoodGreaseFilterTimer": 424800, + "lightIntensity": 0, + "localTimeAutomaticMode": "AUTOMATIC", + "alerts": [], + "lightColorTemperature": 0, + "soundVolume": 0, + "hoodFilterCharcIndication": false, + "networkInterface": { + "swVersion": "v4.0.0S_argo", + "otaState": "IDLE", + "autoLocalTimeOffset": 7200, + "niuSwUpdateCurrentDescription": "A23642205A-S00008458A", + "timeZoneDatabaseName": "Europe/Stockholm", + "swAncAndRevision": "S00008458A", + "linkQualityIndicator": "EXCELLENT" + }, + "targetDuration": 0, + "hoodFilterGreaseIndication": "TRUE", + "connectivityState": "connected", + "hoodAutoSwitchOffEvent": false, + "timeToEnd": 0 + } + } +} diff --git a/tests/components/electrolux/fixtures/appliance_states/peacock_hob.json b/tests/components/electrolux/fixtures/appliance_states/peacock_hob.json new file mode 100644 index 00000000000..94fac2d8aed --- /dev/null +++ b/tests/components/electrolux/fixtures/appliance_states/peacock_hob.json @@ -0,0 +1,65 @@ +{ + "applianceId": "999008120_00:99907833-443E073D986E", + "connectionState": "connected", + "status": "enabled", + "properties": { + "reported": { + "oTA3TargetVersion": "S000412012A\u0000", + "applianceInfo": { + "capabilityHash": "6e7da5a7b8b39c99b9b08dd5b2e0f834885fc473832414e05ef3d31da0a5440d", + "applianceType": "HB" + }, + "oTA3CurrentVersion": "S0004120121\u0000", + "remoteControl": "NOT_SAFETY_RELEVANT_ENABLED", + "oTA3State": "IDLE", + "cpv": "00", + "applianceState": "OFF", + "hobHood": { + "hoodDryingCycle": "OFF", + "hobToHoodState": "MANUAL", + "hoodFilterCharcIndication": false, + "hobToHoodFanSpeed": "OFF", + "windowNotification": "OPENING_REQUIRED", + "hobToHoodMode": "H3", + "hoodFilterGreaseIndication": false + }, + "alerts": [], + "oTA3LastResult": "NONE", + "networkInterface": { + "swVersion": "v4.8.06rc2_argo", + "otaState": "IDLE", + "autoLocalTimeOffset": 7200, + "niuSwUpdateCurrentDescription": "A24559615A-S00031110B", + "timeZoneDatabaseName": "Europe/Stockholm", + "swAncAndRevision": "S00031110B", + "linkQualityIndicator": "VERY_GOOD", + "oTA3TargetVersion": "S000412012A\u0000", + "oTA3LastResult": "NONE", + "oTA3CurrentVersion": "S0004120121\u0000", + "oTA3State": "IDLE" + }, + "childLock": false, + "hobZone2": { + "residualHeatState": "NO", + "heatingQualitativeLevel": 0, + "hobPotDetected": "NO_POT_IDLE" + }, + "hobZone1": { + "residualHeatState": "NO", + "heatingQualitativeLevel": 0, + "hobPotDetected": "NO_POT_IDLE" + }, + "hobZone4": { + "residualHeatState": "NO", + "heatingQualitativeLevel": 0, + "hobPotDetected": "NO_POT_IDLE" + }, + "hobZone3": { + "residualHeatState": "NO", + "heatingQualitativeLevel": 0, + "hobPotDetected": "NO_POT_IDLE" + }, + "connectivityState": "connected" + } + } +} diff --git a/tests/components/electrolux/fixtures/appliance_states/supex_structured_oven.json b/tests/components/electrolux/fixtures/appliance_states/supex_structured_oven.json new file mode 100644 index 00000000000..47ffae313a5 --- /dev/null +++ b/tests/components/electrolux/fixtures/appliance_states/supex_structured_oven.json @@ -0,0 +1,87 @@ +{ + "applianceId": "944035064_00:27032025-443E073D97B2", + "connectionState": "connected", + "status": "enabled", + "properties": { + "reported": { + "cleaningReminder": true, + "displayLight": "DISPLAY_LIGHT_3", + "temperatureRepresentation": "CELSIUS", + "remoteControl": "ENABLED", + "language": "ENGLISH", + "clockStyle": "NOT_SELECTED", + "localTimeAutomaticMode": "MANUAL", + "soundVolume": 2, + "keySoundTone": "CLICK", + "upperOven": { + "applianceState": "READY_TO_START", + "doorState": "CLOSED", + "targetTemperatureF": 356, + "targetTemperatureC": 180, + "runningTime": -2147483648, + "program": "STEAMIFY", + "executeCommand": "STOPRESET", + "targetMicrowavePower": 0, + "waterTankLevel": "OK", + "foodProbeInsertionState": "NOT_INSERTED", + "cavityLight": false, + "targetDuration": 0, + "startTime": -2147483648, + "waterTrayInsertionState": "INSERTED", + "reminderTime": -2147483648, + "fastHeatUpFeature": "DISABLED", + "messageQueueSync": { + "activeMessageIndex": 0, + "messageBehaviour": "INVALID", + "messageQueueId": 0, + "messageQueueType": "INVALID" + }, + "favoriteSelect": "255", + "processPhase": "NONE", + "displayTemperatureC": 30, + "displayTemperatureF": 86, + "displayFoodProbeTemperatureC": null, + "displayFoodProbeTemperatureF": null, + "timeToEnd": 3599 + }, + "waterHardness": "STEP_4", + "oTA3TargetVersion": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "applianceInfo": { + "applianceType": "SO", + "capabilityHash": "4d0d5929a62cb8772f346348875e59bd758a3a88e247f39fc1c607e258cbbc00" + }, + "oTA3CurrentVersion": "S0005330604\u0000", + "applianceUiConfigVersion": "Oven_C000000062_0.0.31", + "cpv": "03", + "oTA3State": "IDLE", + "applianceState": "OFF", + "applianceLocalTimeOffset": -417172230, + "favoriteSelect": "255", + "alerts": [], + "oTA3LastResult": "NONE", + "fastHeatUpFeature": "DISABLED", + "networkInterface": { + "swVersion": "v4.6.06_argo", + "otaState": "IDLE", + "autoLocalTimeOffset": 7200, + "niuSwUpdateCurrentDescription": "A24559613B-S00031107A", + "timeZoneDatabaseName": "Europe/Stockholm", + "swAncAndRevision": "S00031107A", + "linkQualityIndicator": "VERY_GOOD", + "oTA3TargetVersion": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "oTA3LastResult": "NONE", + "oTA3CurrentVersion": "S0005330604\u0000", + "oTA3State": "IDLE" + }, + "childLock": false, + "descalingReminderState": false, + "connectivityState": "connected", + "messageQueueSync": { + "activeMessageIndex": 0, + "messageBehaviour": "INVALID", + "messageQueueId": 0, + "messageQueueType": "INVALID" + } + } + } +} diff --git a/tests/components/electrolux/fixtures/appliance_states/tumble_dryer.json b/tests/components/electrolux/fixtures/appliance_states/tumble_dryer.json new file mode 100644 index 00000000000..ef1fc54911a --- /dev/null +++ b/tests/components/electrolux/fixtures/appliance_states/tumble_dryer.json @@ -0,0 +1,54 @@ +{ + "applianceId": "999120000_00:74852244-443E0704101F", + "connectionState": "disconnected", + "status": "enabled", + "properties": { + "reported": { + "waterHardness": "MEDIUM", + "applianceInfo": { + "applianceType": "TD", + "capabilityHash": "e3f20b48d86da2cc3f492406af903a7597349e7d5777c09612efadfcac84ab9d" + }, + "timeToEnd": 2040, + "doorState": "OPEN", + "miscellaneous": {}, + "applianceUiSwVersion": "UDA1MC07", + "uiLockMode": false, + "applianceTotalWorkingTime": 0, + "remoteControl": "NOT_SAFETY_RELEVANT_ENABLED", + "cpv": "00", + "language": "ENGLISH", + "applianceState": "OFF", + "dryingNominalLoadWeight": 65535, + "applianceMode": "NORMAL", + "applianceMainBoardSwVersion": "TRB40034", + "totalCycleCounter": 0, + "measuredLoadWeight": 65535, + "alerts": [], + "cyclePhase": "UNAVAILABLE", + "networkInterface": { + "otaState": "IDLE", + "swVersion": "v5.4.0", + "linkQualityIndicator": "VERY_GOOD", + "niuSwUpdateCurrentDescription": "A07491702B-S00006963A", + "swAncAndRevision": "S00006963A" + }, + "endOfCycleSound": "NO_SOUND", + "startTime": -1, + "userSelections": { + "reversePlus": false, + "tDEconomy_Eco": true, + "humidityTarget": "CUPBOARD", + "refresh": false, + "drynessValue": "MINIMUM", + "programUID": "SILK_DRY_PR_SILK", + "antiCreaseValue": 120, + "tDEconomy_Night": false, + "dryingTime": 0, + "tDEconomy_Quick": false, + "steamValue": "STEAM_OFF" + }, + "connectivityState": "disconnected" + } + } +} diff --git a/tests/components/electrolux/fixtures/appliances/ayran_fridge.json b/tests/components/electrolux/fixtures/appliances/ayran_fridge.json new file mode 100644 index 00000000000..411515c038e --- /dev/null +++ b/tests/components/electrolux/fixtures/appliances/ayran_fridge.json @@ -0,0 +1,6 @@ +{ + "applianceId": "999011403_00:20220412-443E07022463", + "applianceName": "Ayran", + "applianceType": "CR", + "created": "2025-03-06T10:00:57.477+00:00" +} diff --git a/tests/components/electrolux/fixtures/appliances/hood.json b/tests/components/electrolux/fixtures/appliances/hood.json new file mode 100644 index 00000000000..abb20a9d966 --- /dev/null +++ b/tests/components/electrolux/fixtures/appliances/hood.json @@ -0,0 +1,6 @@ +{ + "applianceId": "999008105_00:99010299-443E074B7A6E", + "applianceName": "Ceiling Hood", + "applianceType": "HD", + "created": "2024-11-14T03:27:20.672+00:00" +} diff --git a/tests/components/electrolux/fixtures/appliances/peacock_hob.json b/tests/components/electrolux/fixtures/appliances/peacock_hob.json new file mode 100644 index 00000000000..34faf5f0862 --- /dev/null +++ b/tests/components/electrolux/fixtures/appliances/peacock_hob.json @@ -0,0 +1,6 @@ +{ + "applianceId": "999008120_00:99907833-443E073D986E", + "applianceName": "Peacock hob", + "applianceType": "HB", + "created": "2025-08-12T07:29:55.249+00:00" +} diff --git a/tests/components/electrolux/fixtures/appliances/supex_structured_oven.json b/tests/components/electrolux/fixtures/appliances/supex_structured_oven.json new file mode 100644 index 00000000000..883cdc2171b --- /dev/null +++ b/tests/components/electrolux/fixtures/appliances/supex_structured_oven.json @@ -0,0 +1,6 @@ +{ + "applianceId": "944035064_00:27032025-443E073D97B2", + "applianceName": "Supex oven", + "applianceType": "SO", + "created": "2026-03-23T08:14:42.975+00:00" +} diff --git a/tests/components/electrolux/fixtures/appliances/tumble_dryer.json b/tests/components/electrolux/fixtures/appliances/tumble_dryer.json new file mode 100644 index 00000000000..dca93292e89 --- /dev/null +++ b/tests/components/electrolux/fixtures/appliances/tumble_dryer.json @@ -0,0 +1,6 @@ +{ + "applianceId": "999120000_00:74852244-443E0704101F", + "applianceName": "Dryer", + "applianceType": "TD", + "created": "2025-12-10T15:14:32.043+00:00" +} diff --git a/tests/components/electrolux/snapshots/test_binary_sensor.ambr b/tests/components/electrolux/snapshots/test_binary_sensor.ambr new file mode 100644 index 00000000000..088a6c49b6c --- /dev/null +++ b/tests/components/electrolux/snapshots/test_binary_sensor.ambr @@ -0,0 +1,1114 @@ +# serializer version: 1 +# name: test_binary_sensor[binary_sensor.ayran_connection_state-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.ayran_connection_state', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Connection state', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Connection state', + 'platform': 'electrolux', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'connection_state', + 'unique_id': '999011403_00:20220412-443E07022463_connection_state', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensor[binary_sensor.ayran_connection_state-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'connectivity', + 'friendly_name': 'Ayran Connection state', + }), + 'context': , + 'entity_id': 'binary_sensor.ayran_connection_state', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'off', + }) +# --- +# name: test_binary_sensor[binary_sensor.ayran_freezer_door-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.ayran_freezer_door', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Freezer door', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Freezer door', + 'platform': 'electrolux', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'freezer_door_state', + 'unique_id': '999011403_00:20220412-443E07022463_freezer_door_state', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensor[binary_sensor.ayran_freezer_door-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'door', + 'friendly_name': 'Ayran Freezer door', + }), + 'context': , + 'entity_id': 'binary_sensor.ayran_freezer_door', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'off', + }) +# --- +# name: test_binary_sensor[binary_sensor.ayran_fridge_door-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.ayran_fridge_door', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Fridge door', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Fridge door', + 'platform': 'electrolux', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'fridge_door_state', + 'unique_id': '999011403_00:20220412-443E07022463_fridge_door_state', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensor[binary_sensor.ayran_fridge_door-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'door', + 'friendly_name': 'Ayran Fridge door', + }), + 'context': , + 'entity_id': 'binary_sensor.ayran_fridge_door', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'off', + }) +# --- +# name: test_binary_sensor[binary_sensor.ayran_ui_lock_mode-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.ayran_ui_lock_mode', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'UI lock mode', + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'UI lock mode', + 'platform': 'electrolux', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'ui_lock_mode', + 'unique_id': '999011403_00:20220412-443E07022463_ui_lock_mode', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensor[binary_sensor.ayran_ui_lock_mode-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Ayran UI lock mode', + }), + 'context': , + 'entity_id': 'binary_sensor.ayran_ui_lock_mode', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'on', + }) +# --- +# name: test_binary_sensor[binary_sensor.ceiling_hood_auto_switch_off_event-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.ceiling_hood_auto_switch_off_event', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Auto switch off event', + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Auto switch off event', + 'platform': 'electrolux', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'hood_auto_switch_off_event', + 'unique_id': '999008105_00:99010299-443E074B7A6E_hood_auto_switch_off_event', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensor[binary_sensor.ceiling_hood_auto_switch_off_event-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Ceiling Hood Auto switch off event', + }), + 'context': , + 'entity_id': 'binary_sensor.ceiling_hood_auto_switch_off_event', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'off', + }) +# --- +# name: test_binary_sensor[binary_sensor.ceiling_hood_charcoal_filter-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.ceiling_hood_charcoal_filter', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Charcoal filter', + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Charcoal filter', + 'platform': 'electrolux', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'hood_filter_charcoal_enabled', + 'unique_id': '999008105_00:99010299-443E074B7A6E_hood_filter_charcoal_enabled', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensor[binary_sensor.ceiling_hood_charcoal_filter-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Ceiling Hood Charcoal filter', + }), + 'context': , + 'entity_id': 'binary_sensor.ceiling_hood_charcoal_filter', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'on', + }) +# --- +# name: test_binary_sensor[binary_sensor.ceiling_hood_connection_state-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.ceiling_hood_connection_state', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Connection state', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Connection state', + 'platform': 'electrolux', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'connection_state', + 'unique_id': '999008105_00:99010299-443E074B7A6E_connection_state', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensor[binary_sensor.ceiling_hood_connection_state-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'connectivity', + 'friendly_name': 'Ceiling Hood Connection state', + }), + 'context': , + 'entity_id': 'binary_sensor.ceiling_hood_connection_state', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'on', + }) +# --- +# name: test_binary_sensor[binary_sensor.dryer_connection_state-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.dryer_connection_state', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Connection state', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Connection state', + 'platform': 'electrolux', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'connection_state', + 'unique_id': '999120000_00:74852244-443E0704101F_connection_state', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensor[binary_sensor.dryer_connection_state-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'connectivity', + 'friendly_name': 'Dryer Connection state', + }), + 'context': , + 'entity_id': 'binary_sensor.dryer_connection_state', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'off', + }) +# --- +# name: test_binary_sensor[binary_sensor.dryer_door_state-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.dryer_door_state', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Door state', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Door state', + 'platform': 'electrolux', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'door_state', + 'unique_id': '999120000_00:74852244-443E0704101F_door_state', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensor[binary_sensor.dryer_door_state-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'door', + 'friendly_name': 'Dryer Door state', + }), + 'context': , + 'entity_id': 'binary_sensor.dryer_door_state', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'on', + }) +# --- +# name: test_binary_sensor[binary_sensor.dryer_ui_lock_mode-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.dryer_ui_lock_mode', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'UI lock mode', + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'UI lock mode', + 'platform': 'electrolux', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'ui_lock_mode', + 'unique_id': '999120000_00:74852244-443E0704101F_ui_lock_mode', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensor[binary_sensor.dryer_ui_lock_mode-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Dryer UI lock mode', + }), + 'context': , + 'entity_id': 'binary_sensor.dryer_ui_lock_mode', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'on', + }) +# --- +# name: test_binary_sensor[binary_sensor.fenix_connection_state-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.fenix_connection_state', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Connection state', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Connection state', + 'platform': 'electrolux', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'connection_state', + 'unique_id': '900412569_00:43319382-443E0748CCD4_connection_state', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensor[binary_sensor.fenix_connection_state-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'connectivity', + 'friendly_name': 'Fenix Connection state', + }), + 'context': , + 'entity_id': 'binary_sensor.fenix_connection_state', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'on', + }) +# --- +# name: test_binary_sensor[binary_sensor.fenix_door_state-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.fenix_door_state', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Door state', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Door state', + 'platform': 'electrolux', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'door_state', + 'unique_id': '900412569_00:43319382-443E0748CCD4_door_state', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensor[binary_sensor.fenix_door_state-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'door', + 'friendly_name': 'Fenix Door state', + }), + 'context': , + 'entity_id': 'binary_sensor.fenix_door_state', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'off', + }) +# --- +# name: test_binary_sensor[binary_sensor.peacock_hob_connection_state-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.peacock_hob_connection_state', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Connection state', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Connection state', + 'platform': 'electrolux', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'connection_state', + 'unique_id': '999008120_00:99907833-443E073D986E_connection_state', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensor[binary_sensor.peacock_hob_connection_state-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'connectivity', + 'friendly_name': 'Peacock hob Connection state', + }), + 'context': , + 'entity_id': 'binary_sensor.peacock_hob_connection_state', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'on', + }) +# --- +# name: test_binary_sensor[binary_sensor.peacock_hob_ui_lock_mode-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.peacock_hob_ui_lock_mode', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'UI lock mode', + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'UI lock mode', + 'platform': 'electrolux', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'ui_lock_mode', + 'unique_id': '999008120_00:99907833-443E073D986E_ui_lock_mode', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensor[binary_sensor.peacock_hob_ui_lock_mode-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Peacock hob UI lock mode', + }), + 'context': , + 'entity_id': 'binary_sensor.peacock_hob_ui_lock_mode', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_binary_sensor[binary_sensor.peacock_hob_zone_1_pot_detected-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.peacock_hob_zone_1_pot_detected', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Zone 1 pot detected', + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Zone 1 pot detected', + 'platform': 'electrolux', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'hobzone1_pot_detected', + 'unique_id': '999008120_00:99907833-443E073D986E_hobzone1_pot_detected', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensor[binary_sensor.peacock_hob_zone_1_pot_detected-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Peacock hob Zone 1 pot detected', + }), + 'context': , + 'entity_id': 'binary_sensor.peacock_hob_zone_1_pot_detected', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_binary_sensor[binary_sensor.peacock_hob_zone_2_pot_detected-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.peacock_hob_zone_2_pot_detected', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Zone 2 pot detected', + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Zone 2 pot detected', + 'platform': 'electrolux', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'hobzone2_pot_detected', + 'unique_id': '999008120_00:99907833-443E073D986E_hobzone2_pot_detected', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensor[binary_sensor.peacock_hob_zone_2_pot_detected-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Peacock hob Zone 2 pot detected', + }), + 'context': , + 'entity_id': 'binary_sensor.peacock_hob_zone_2_pot_detected', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_binary_sensor[binary_sensor.peacock_hob_zone_3_pot_detected-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.peacock_hob_zone_3_pot_detected', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Zone 3 pot detected', + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Zone 3 pot detected', + 'platform': 'electrolux', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'hobzone3_pot_detected', + 'unique_id': '999008120_00:99907833-443E073D986E_hobzone3_pot_detected', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensor[binary_sensor.peacock_hob_zone_3_pot_detected-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Peacock hob Zone 3 pot detected', + }), + 'context': , + 'entity_id': 'binary_sensor.peacock_hob_zone_3_pot_detected', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_binary_sensor[binary_sensor.peacock_hob_zone_4_pot_detected-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.peacock_hob_zone_4_pot_detected', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Zone 4 pot detected', + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Zone 4 pot detected', + 'platform': 'electrolux', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'hobzone4_pot_detected', + 'unique_id': '999008120_00:99907833-443E073D986E_hobzone4_pot_detected', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensor[binary_sensor.peacock_hob_zone_4_pot_detected-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Peacock hob Zone 4 pot detected', + }), + 'context': , + 'entity_id': 'binary_sensor.peacock_hob_zone_4_pot_detected', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_binary_sensor[binary_sensor.pux_pizza_oven_connection_state-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.pux_pizza_oven_connection_state', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Connection state', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Connection state', + 'platform': 'electrolux', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'connection_state', + 'unique_id': '949288049_00:11112225-443E076A37D6_connection_state', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensor[binary_sensor.pux_pizza_oven_connection_state-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'connectivity', + 'friendly_name': 'PUX pizza oven Connection state', + }), + 'context': , + 'entity_id': 'binary_sensor.pux_pizza_oven_connection_state', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'on', + }) +# --- +# name: test_binary_sensor[binary_sensor.pux_pizza_oven_door_state-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.pux_pizza_oven_door_state', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Door state', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Door state', + 'platform': 'electrolux', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'door_state', + 'unique_id': '949288049_00:11112225-443E076A37D6_door_state', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensor[binary_sensor.pux_pizza_oven_door_state-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'door', + 'friendly_name': 'PUX pizza oven Door state', + }), + 'context': , + 'entity_id': 'binary_sensor.pux_pizza_oven_door_state', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'off', + }) +# --- +# name: test_binary_sensor[binary_sensor.supex_oven_connection_state-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.supex_oven_connection_state', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Connection state', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Connection state', + 'platform': 'electrolux', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'connection_state', + 'unique_id': '944035064_00:27032025-443E073D97B2_connection_state', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensor[binary_sensor.supex_oven_connection_state-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'connectivity', + 'friendly_name': 'Supex oven Connection state', + }), + 'context': , + 'entity_id': 'binary_sensor.supex_oven_connection_state', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'on', + }) +# --- +# name: test_binary_sensor[binary_sensor.supex_oven_upper_door_state-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.supex_oven_upper_door_state', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Upper door state', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Upper door state', + 'platform': 'electrolux', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'upperoven_door_state', + 'unique_id': '944035064_00:27032025-443E073D97B2_upperoven_door_state', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensor[binary_sensor.supex_oven_upper_door_state-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'door', + 'friendly_name': 'Supex oven Upper door state', + }), + 'context': , + 'entity_id': 'binary_sensor.supex_oven_upper_door_state', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'off', + }) +# --- diff --git a/tests/components/electrolux/snapshots/test_init.ambr b/tests/components/electrolux/snapshots/test_init.ambr index a39c5e3bd32..9e815eb7649 100644 --- a/tests/components/electrolux/snapshots/test_init.ambr +++ b/tests/components/electrolux/snapshots/test_init.ambr @@ -1,4 +1,35 @@ # serializer version: 1 +# name: test_all_appliances[ayran_fridge] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'config_entries_subentries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'electrolux', + '999011403_00:20220412-443E07022463', + ), + }), + 'labels': set({ + }), + 'manufacturer': 'AEG', + 'model': 'RCB732E9MX', + 'model_id': None, + 'name': 'Ayran', + 'name_by_user': None, + 'primary_config_entry': , + 'serial_number': '20220412', + 'sw_version': None, + 'via_device_id': None, + }) +# --- # name: test_all_appliances[fenix_oven] DeviceRegistryEntrySnapshot({ 'area_id': None, @@ -30,6 +61,68 @@ 'via_device_id': None, }) # --- +# name: test_all_appliances[hood] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'config_entries_subentries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'electrolux', + '999008105_00:99010299-443E074B7A6E', + ), + }), + 'labels': set({ + }), + 'manufacturer': 'AEG', + 'model': 'DDC8271W', + 'model_id': None, + 'name': 'Ceiling Hood', + 'name_by_user': None, + 'primary_config_entry': , + 'serial_number': '99010299', + 'sw_version': None, + 'via_device_id': None, + }) +# --- +# name: test_all_appliances[peacock_hob] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'config_entries_subentries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'electrolux', + '999008120_00:99907833-443E073D986E', + ), + }), + 'labels': set({ + }), + 'manufacturer': 'AEG', + 'model': 'TU84CF43CB', + 'model_id': None, + 'name': 'Peacock hob', + 'name_by_user': None, + 'primary_config_entry': , + 'serial_number': '99907833', + 'sw_version': None, + 'via_device_id': None, + }) +# --- # name: test_all_appliances[pux_oven] DeviceRegistryEntrySnapshot({ 'area_id': None, @@ -61,3 +154,65 @@ 'via_device_id': None, }) # --- +# name: test_all_appliances[supex_structured_oven] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'config_entries_subentries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'electrolux', + '944035064_00:27032025-443E073D97B2', + ), + }), + 'labels': set({ + }), + 'manufacturer': 'AEG', + 'model': 'NBP9S831AB', + 'model_id': None, + 'name': 'Supex oven', + 'name_by_user': None, + 'primary_config_entry': , + 'serial_number': '27032025', + 'sw_version': None, + 'via_device_id': None, + }) +# --- +# name: test_all_appliances[tumble_dryer] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'config_entries_subentries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'electrolux', + '999120000_00:74852244-443E0704101F', + ), + }), + 'labels': set({ + }), + 'manufacturer': 'ELECTROLUX', + 'model': 'EW9H778P9', + 'model_id': None, + 'name': 'Dryer', + 'name_by_user': None, + 'primary_config_entry': , + 'serial_number': '74852244', + 'sw_version': None, + 'via_device_id': None, + }) +# --- diff --git a/tests/components/electrolux/test_binary_sensor.py b/tests/components/electrolux/test_binary_sensor.py new file mode 100644 index 00000000000..025fc0e23a4 --- /dev/null +++ b/tests/components/electrolux/test_binary_sensor.py @@ -0,0 +1,36 @@ +"""Binary sensor tests of Electrolux integration.""" + +from collections.abc import Generator +from unittest.mock import patch + +import pytest +from syrupy.assertion import SnapshotAssertion + +from homeassistant.const import Platform +from homeassistant.core import HomeAssistant +from homeassistant.helpers import entity_registry as er + +from . import setup_integration + +from tests.common import MockConfigEntry, snapshot_platform + + +@pytest.fixture(autouse=True) +def override_platforms() -> Generator[None]: + """Override PLATFORMS.""" + with patch( + "homeassistant.components.electrolux.PLATFORMS", [Platform.BINARY_SENSOR] + ): + yield + + +@pytest.mark.usefixtures("appliances") +async def test_binary_sensor( + hass: HomeAssistant, + entity_registry: er.EntityRegistry, + snapshot: SnapshotAssertion, + mock_config_entry: MockConfigEntry, +) -> None: + """Test states of the sensor.""" + await setup_integration(hass, mock_config_entry) + await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)