"""Devices configuration for Midea Lan."""

from typing import Any

from homeassistant.components.binary_sensor import BinarySensorDeviceClass
from homeassistant.components.sensor import SensorDeviceClass, SensorStateClass
from homeassistant.const import (
    MAJOR_VERSION,
    MINOR_VERSION,
    PERCENTAGE,
    REVOLUTIONS_PER_MINUTE,
    Platform,
    UnitOfElectricCurrent,
    UnitOfElectricPotential,
    UnitOfEnergy,
    UnitOfFrequency,
    UnitOfPower,
    UnitOfTemperature,
    UnitOfTime,
    UnitOfVolume,
)

# HA 2026.7 added UnitOfDensity/UnitOfRatio, and HA 2026.8 started deprecating
# CONCENTRATION_MICROGRAMS_PER_CUBIC_METER / CONCENTRATION_PARTS_PER_MILLION in favor of
# them (scheduled for removal in HA 2027.8). Both old and new names resolve to the
# identical runtime string ("μg/m³" / "ppm"), so this is purely cosmetic. This
# integration's floor is HA 2024.4.1, where UnitOfDensity/UnitOfRatio do not exist yet,
# so branch on the HA version like the rest of this codebase does for newer HA APIs (see
# other MAJOR_VERSION/MINOR_VERSION usages, e.g. midea_entity.py).
if (MAJOR_VERSION, MINOR_VERSION) >= (2026, 7):
    from homeassistant.const import (  # pylint: disable=E0611
        UnitOfDensity,
        UnitOfRatio,
    )

    CONCENTRATION_MICROGRAMS_PER_CUBIC_METER = UnitOfDensity.MICROGRAMS_PER_CUBIC_METER
    CONCENTRATION_PARTS_PER_MILLION = UnitOfRatio.PARTS_PER_MILLION
else:
    from homeassistant.const import (  # type: ignore[no-redef]
        CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
        CONCENTRATION_PARTS_PER_MILLION,
    )
from midealan.devices.a1 import DeviceAttributes as A1Attributes
from midealan.devices.ac import DeviceAttributes as ACAttributes
from midealan.devices.ad import DeviceAttributes as ADAttributes
from midealan.devices.b0 import DeviceAttributes as B0Attributes
from midealan.devices.b1 import DeviceAttributes as B1Attributes
from midealan.devices.b3 import DeviceAttributes as B3Attributes
from midealan.devices.b4 import DeviceAttributes as B4Attributes
from midealan.devices.b6 import DeviceAttributes as B6Attributes
from midealan.devices.bf import DeviceAttributes as BFAttributes
from midealan.devices.c2 import DeviceAttributes as C2Attributes
from midealan.devices.c3 import DeviceAttributes as C3Attributes
from midealan.devices.ca import DeviceAttributes as CAAttributes
from midealan.devices.cc import DeviceAttributes as CCAttributes
from midealan.devices.cd import DeviceAttributes as CDAttributes
from midealan.devices.ce import DeviceAttributes as CEAttributes
from midealan.devices.cf import DeviceAttributes as CFAttributes
from midealan.devices.da import DeviceAttributes as DAAttributes
from midealan.devices.db import DeviceAttributes as DBAttributes
from midealan.devices.dc import DeviceAttributes as DCAttributes
from midealan.devices.e1 import DeviceAttributes as E1Attributes
from midealan.devices.e2 import DeviceAttributes as E2Attributes
from midealan.devices.e3 import DeviceAttributes as E3Attributes
from midealan.devices.e6 import DeviceAttributes as E6Attributes
from midealan.devices.e8 import DeviceAttributes as E8Attributes
from midealan.devices.ea import DeviceAttributes as EAAttributes
from midealan.devices.ec import DeviceAttributes as ECAttributes
from midealan.devices.ed import DeviceAttributes as EDAttributes
from midealan.devices.fa import DeviceAttributes as FAAttributes
from midealan.devices.fb import DeviceAttributes as FBAttributes
from midealan.devices.fc import DeviceAttributes as FCAttributes
from midealan.devices.fd import DeviceAttributes as FDAttributes
from midealan.devices.x26 import DeviceAttributes as X26Attributes
from midealan.devices.x34 import DeviceAttributes as X34Attributes
from midealan.devices.x40 import DeviceAttributes as X40Attributes

FRESH_AIR_EXHAUST = "fresh_air_exhaust"
FRESH_AIR_EXHAUST_MODE = "fresh_air_exhaust_mode"
FRESH_AIR_EXHAUST_POWER = "fresh_air_exhaust_power"
FRESH_AIR_EXHAUST_SPEED = "fresh_air_exhaust_speed"

"""
Entity Naming Rule:

1. `name` used in web UI enable/disable extra sensor/control setting
2. entity `_attr_name` exist will ignore `translation_key`
3. no `_attr_name` and no `translation_key` will try `device_class`
4. refer to `midea_entity.py` comments for translation order

- for entity translation:
    - 1. set "translation_key"
    - 2. add translation to `translations/{language}.json`
"""

MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = {
    0x13: {
        "name": "Light",
        "entities": {
            "light": {
                "type": Platform.LIGHT,
                "icon": "mdi:lightbulb",
                "default": True,
            },
        },
    },
    0x26: {
        "name": "Bathroom Master",
        "entities": {
            X26Attributes.current_temperature: {
                "type": Platform.SENSOR,
                "name": "Current Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            X26Attributes.current_humidity: {
                "type": Platform.SENSOR,
                "name": "Current Humidity",
                "device_class": SensorDeviceClass.HUMIDITY,
                "unit": PERCENTAGE,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            X26Attributes.current_radar: {
                "type": Platform.BINARY_SENSOR,
                "name": "Occupancy Status",
                "device_class": BinarySensorDeviceClass.MOTION,
            },
            X26Attributes.main_light: {
                "type": Platform.SWITCH,
                "translation_key": "main_light",
                "name": "Main Light",
                "icon": "mdi:lightbulb",
            },
            X26Attributes.night_light: {
                "type": Platform.SWITCH,
                "translation_key": "night_light",
                "name": "Night Light",
                "icon": "mdi:lightbulb",
            },
            X26Attributes.mode: {
                "type": Platform.SELECT,
                "translation_key": "mode",
                "name": "Mode",
                "options": "preset_modes",
                "icon": "mdi:fan",
            },
            X26Attributes.direction: {
                "type": Platform.SELECT,
                "translation_key": "direction",
                "name": "Direction",
                "options": "directions",
                "icon": "mdi:arrow-split-vertical",
            },
        },
    },
    0x34: {
        "name": "Sink Dishwasher",
        "entities": {
            X34Attributes.door: {
                "type": Platform.BINARY_SENSOR,
                "name": "Door",
                "icon": "mdi:box-shadow",
                "device_class": BinarySensorDeviceClass.DOOR,
            },
            X34Attributes.rinse_aid: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "rinse_aid",
                "name": "Rinse Aid Shortage",
                "icon": "mdi:bottle-tonic",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            X34Attributes.salt: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "salt",
                "name": "Salt Shortage",
                "icon": "mdi:drag",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            X34Attributes.humidity: {
                "type": Platform.SENSOR,
                "name": "Humidity",
                "device_class": SensorDeviceClass.HUMIDITY,
                "unit": PERCENTAGE,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            X34Attributes.progress: {
                "type": Platform.SENSOR,
                "translation_key": "progress",
                "name": "Progress",
                "icon": "mdi:rotate-360",
            },
            X34Attributes.status: {
                "type": Platform.SENSOR,
                "translation_key": "status",
                "name": "Status",
                "icon": "mdi:information",
            },
            X34Attributes.storage_remaining: {
                "type": Platform.SENSOR,
                "translation_key": "storage_remaining",
                "name": "Storage Remaining",
                "icon": "mdi:progress-clock",
                "unit": UnitOfTime.HOURS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            X34Attributes.temperature: {
                "type": Platform.SENSOR,
                "name": "Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            X34Attributes.time_remaining: {
                "type": Platform.SENSOR,
                "translation_key": "time_remaining",
                "name": "Time Remaining",
                "icon": "mdi:progress-clock",
                "unit": UnitOfTime.MINUTES,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            X34Attributes.child_lock: {
                "type": Platform.LOCK,
                "translation_key": "child_lock",
                "name": "Child Lock",
            },
            X34Attributes.power: {
                "type": Platform.SWITCH,
                "translation_key": "power",
                "name": "Power",
                "icon": "mdi:power",
            },
            X34Attributes.storage: {
                "type": Platform.SWITCH,
                "translation_key": "storage",
                "name": "Storage",
                "icon": "mdi:repeat-variant",
            },
            X34Attributes.mode: {
                "type": Platform.SENSOR,
                "translation_key": "mode",
                "name": "Working Mode",
                "icon": "mdi:dishwasher",
            },
            X34Attributes.error_code: {
                "type": Platform.SENSOR,
                "translation_key": "error_code",
                "name": "Error Code",
                "icon": "mdi:alert-box",
            },
            X34Attributes.softwater: {
                "type": Platform.SENSOR,
                "translation_key": "softwater",
                "name": "Softwater Level",
                "icon": "mdi:shaker-outline",
            },
            X34Attributes.bright: {
                "type": Platform.SENSOR,
                "translation_key": "bright",
                "name": "Bright Level",
                "icon": "mdi:star-four-points",
            },
        },
    },
    0x40: {
        "name": "Integrated Ceiling Fan",
        "entities": {
            "fan": {
                "type": Platform.FAN,
                "icon": "mdi:fan",
                "default": True,
            },
            X40Attributes.current_temperature: {
                "type": Platform.SENSOR,
                "name": "Current Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            X40Attributes.light: {
                "type": Platform.SWITCH,
                "translation_key": "light",
                "name": "Light",
                "icon": "mdi:lightbulb",
            },
            X40Attributes.ventilation: {
                "type": Platform.SWITCH,
                "translation_key": "ventilation",
                "name": "Ventilation",
                "icon": "mdi:air-filter",
            },
            X40Attributes.smelly_sensor: {
                "type": Platform.SWITCH,
                "translation_key": "smelly_sensor",
                "name": "Smelly Sensor",
                "icon": "mdi:scent",
            },
            X40Attributes.direction: {
                "type": Platform.SELECT,
                "translation_key": "direction",
                "name": "Direction",
                "options": "directions",
                "icon": "mdi:arrow-split-vertical",
            },
        },
    },
    0xA1: {
        "name": "Dehumidifier",
        "entities": {
            "humidifier": {
                "type": Platform.HUMIDIFIER,
                "icon": "mdi:air-humidifier",
                "default": True,
            },
            A1Attributes.child_lock: {
                "type": Platform.LOCK,
                "translation_key": "child_lock",
                "name": "Child Lock",
            },
            A1Attributes.anion: {
                "type": Platform.SWITCH,
                "translation_key": "anion",
                "name": "Anion",
                "icon": "mdi:vanish",
            },
            A1Attributes.prompt_tone: {
                "type": Platform.SWITCH,
                "translation_key": "prompt_tone",
                "name": "Prompt Tone",
                "icon": "mdi:bell",
            },
            A1Attributes.power: {
                "type": Platform.SWITCH,
                "translation_key": "power",
                "name": "Power",
                "icon": "mdi:power",
            },
            A1Attributes.swing: {
                "type": Platform.SWITCH,
                "translation_key": "swing",
                "name": "Swing",
                "icon": "mdi:pan-horizontal",
            },
            A1Attributes.pump: {
                "type": Platform.SWITCH,
                "translation_key": "water_pump",
                "name": "Water Pump",
                "icon": "mdi:water-pump",
            },
            A1Attributes.fan_speed: {
                "type": Platform.SELECT,
                "translation_key": "fan_speed",
                "name": "Fan Speed",
                "options": "fan_speeds",
                "icon": "mdi:fan",
            },
            A1Attributes.water_level_set: {
                "type": Platform.SELECT,
                "translation_key": "water_level_set",
                "name": "Water Level Setting",
                "options": "water_level_sets",
                "icon": "mdi:cup-water",
            },
            A1Attributes.current_humidity: {
                "type": Platform.SENSOR,
                "name": "Current Humidity",
                "device_class": SensorDeviceClass.HUMIDITY,
                "unit": PERCENTAGE,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            A1Attributes.current_temperature: {
                "type": Platform.SENSOR,
                "name": "Current Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            A1Attributes.tank: {
                "type": Platform.SENSOR,
                "translation_key": "tank",
                "name": "Tank",
                "icon": "mdi:cup-water",
                "unit": PERCENTAGE,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            A1Attributes.tank_full: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "tank_full",
                "name": "Tank status",
                "icon": "mdi:alert-circle",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            A1Attributes.filter_cleaning_reminder: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "filter_cleaning_reminder",
                "name": "Filter Cleaning Reminder",
                "icon": "mdi:alert-circle",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
        },
    },
    0xAC: {
        "name": "Air Conditioner",
        "entities": {
            "climate": {
                "type": Platform.CLIMATE,
                "translation_key": "climate_key",
                "icon": "mdi:air-conditioner",
                "default": True,
            },
            "fresh_air": {
                "type": Platform.FAN,
                "translation_key": "fresh_air",
                "name": "Fresh Air",
                "icon": "mdi:fan",
            },
            ACAttributes.fresh_air_mode: {
                "type": Platform.SELECT,
                "required_attribute": ACAttributes.fresh_air_mode,
                "translation_key": "fresh_air_mode",
                "name": "Fresh Air Speed",
                "icon": "mdi:fan-chevron-up",
                "options": "fresh_air_fan_speeds",
            },
            FRESH_AIR_EXHAUST: {
                "type": Platform.FAN,
                "translation_key": "fresh_air_exhaust",
                "name": "Fresh Air Exhaust",
                "icon": "mdi:fan-reverse",
                "required_attribute": FRESH_AIR_EXHAUST_POWER,
            },
            FRESH_AIR_EXHAUST_MODE: {
                "type": Platform.SELECT,
                "translation_key": "fresh_air_exhaust_mode",
                "name": "Fresh Air Exhaust Speed",
                "icon": "mdi:fan-chevron-down",
                "options": "fresh_air_exhaust_fan_speeds",
                "required_attribute": FRESH_AIR_EXHAUST_POWER,
            },
            ACAttributes.aux_heating: {
                "type": Platform.SWITCH,
                "translation_key": "aux_heating",
                "name": "Aux Heating",
                "icon": "mdi:heat-wave",
            },
            ACAttributes.boost_mode: {
                "type": Platform.SWITCH,
                "translation_key": "boost_mode",
                "name": "Boost Mode",
                "icon": "mdi:turbine",
            },
            ACAttributes.breezeless: {
                "type": Platform.SWITCH,
                "translation_key": "breezeless",
                "name": "Breezeless",
                "icon": "mdi:tailwind",
            },
            ACAttributes.comfort_mode: {
                "type": Platform.SWITCH,
                "translation_key": "comfort_mode",
                "name": "Comfort Mode",
                "icon": "mdi:alpha-c-circle",
            },
            ACAttributes.dry: {
                "type": Platform.SWITCH,
                "translation_key": "dry",
                "name": "Dry",
                "icon": "mdi:air-filter",
            },
            ACAttributes.eco_mode: {
                "type": Platform.SWITCH,
                "translation_key": "eco_mode",
                "name": "ECO Mode",
                "icon": "mdi:leaf-circle",
            },
            ACAttributes.frost_protect: {
                "type": Platform.SWITCH,
                "translation_key": "frost_protect",
                "name": "Frost Protect",
                "icon": "mdi:snowflake-alert",
            },
            ACAttributes.indirect_wind: {
                "type": Platform.SWITCH,
                "translation_key": "indirect_wind",
                "name": "Indirect Wind",
                "icon": "mdi:tailwind",
            },
            ACAttributes.natural_wind: {
                "type": Platform.SWITCH,
                "translation_key": "natural_wind",
                "name": "Natural Wind",
                "icon": "mdi:tailwind",
            },
            ACAttributes.prompt_tone: {
                "type": Platform.SWITCH,
                "translation_key": "prompt_tone",
                "name": "Prompt Tone",
                "icon": "mdi:bell",
            },
            ACAttributes.power: {
                "type": Platform.SWITCH,
                "translation_key": "power",
                "name": "Power",
                "icon": "mdi:power",
            },
            ACAttributes.screen_display: {
                "type": Platform.SWITCH,
                "translation_key": "screen_display",
                "name": "Screen Display",
                "icon": "mdi:television-ambient-light",
            },
            ACAttributes.screen_display_alternate: {
                "type": Platform.SWITCH,
                "translation_key": "screen_display_alternate",
                "name": "Screen Display Alternate",
                "icon": "mdi:television-ambient-light",
            },
            ACAttributes.sleep_mode: {
                "type": Platform.SWITCH,
                "translation_key": "sleep_mode",
                "name": "Sleep Mode",
                "icon": "mdi:power-sleep",
            },
            ACAttributes.out_silent: {
                "type": Platform.SWITCH,
                "translation_key": "out_silent",
                "name": "Outdoor Silent Mode",
                "icon": "mdi:hvac-off",
            },
            ACAttributes.smart_eye: {
                "type": Platform.SWITCH,
                "translation_key": "smart_eye",
                "name": "Smart Eye",
                "icon": "mdi:eye",
            },
            ACAttributes.swing_horizontal: {
                "type": Platform.SWITCH,
                "translation_key": "swing_horizontal",
                "name": "Swing Horizontal",
                "icon": "mdi:arrow-split-vertical",
            },
            ACAttributes.swing_vertical: {
                "type": Platform.SWITCH,
                "translation_key": "swing_vertical",
                "name": "Swing Vertical",
                "icon": "mdi:arrow-split-horizontal",
            },
            ACAttributes.anion: {
                "type": Platform.SWITCH,
                "translation_key": "anion",
                "name": "Anion",
                "icon": "mdi:vanish",
            },
            ACAttributes.sound: {
                "type": Platform.SWITCH,
                "translation_key": "sound",
                "name": "Sound",
                "icon": "mdi:volume-high",
            },
            ACAttributes.self_clean: {
                "type": Platform.SWITCH,
                "translation_key": "self_clean",
                "name": "Self Clean",
                "icon": "mdi:air-filter",
            },
            ACAttributes.full_dust: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "full_dust",
                "name": "Full of Dust",
                "icon": "mdi:alert-circle",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            ACAttributes.indoor_humidity: {
                "type": Platform.SENSOR,
                "translation_key": "indoor_humidity",
                "name": "Indoor Humidity",
                "device_class": SensorDeviceClass.HUMIDITY,
                "unit": PERCENTAGE,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ACAttributes.indoor_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "indoor_temperature",
                "name": "Indoor Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ACAttributes.outdoor_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "outdoor_temperature",
                "name": "Outdoor Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ACAttributes.total_energy_consumption: {
                "type": Platform.SENSOR,
                "translation_key": "total_energy_consumption",
                "name": "Total Energy Consumption",
                "device_class": SensorDeviceClass.ENERGY,
                "unit": UnitOfEnergy.KILO_WATT_HOUR,
                "state_class": SensorStateClass.TOTAL_INCREASING,
            },
            ACAttributes.current_energy_consumption: {
                "type": Platform.SENSOR,
                "translation_key": "current_energy_consumption",
                "name": "Current Energy Consumption",
                "device_class": SensorDeviceClass.ENERGY,
                "unit": UnitOfEnergy.KILO_WATT_HOUR,
                "state_class": SensorStateClass.TOTAL_INCREASING,
            },
            ACAttributes.realtime_power: {
                "type": Platform.SENSOR,
                "translation_key": "realtime_power",
                "name": "Realtime Power",
                "device_class": SensorDeviceClass.POWER,
                "unit": UnitOfPower.WATT,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ACAttributes.pmv: {
                "type": Platform.SENSOR,
                "translation_key": "pmv",
                "name": "PMV",
                "icon": "mdi:thermometer-lines",
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ACAttributes.error_code: {
                "type": Platform.SENSOR,
                "translation_key": "error_code",
                "name": "Error Code",
                "icon": "mdi:alert-box",
            },
            # group 1: compressor and refrigerant circuit
            ACAttributes.compressor_frequency: {
                "type": Platform.SENSOR,
                "required_attribute": ACAttributes.compressor_frequency,
                "translation_key": "compressor_frequency",
                "name": "Compressor Frequency",
                "device_class": SensorDeviceClass.FREQUENCY,
                "unit": UnitOfFrequency.HERTZ,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ACAttributes.target_compressor_frequency: {
                "type": Platform.SENSOR,
                "required_attribute": ACAttributes.target_compressor_frequency,
                "translation_key": "target_compressor_frequency",
                "name": "Target Compressor Frequency",
                "device_class": SensorDeviceClass.FREQUENCY,
                "unit": UnitOfFrequency.HERTZ,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ACAttributes.compressor_current: {
                "type": Platform.SENSOR,
                "required_attribute": ACAttributes.compressor_current,
                "translation_key": "compressor_current",
                "name": "Compressor Current",
                "device_class": SensorDeviceClass.CURRENT,
                "unit": UnitOfElectricCurrent.AMPERE,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ACAttributes.compressor_voltage: {
                "type": Platform.SENSOR,
                "required_attribute": ACAttributes.compressor_voltage,
                "translation_key": "compressor_voltage",
                "name": "Compressor Voltage",
                "device_class": SensorDeviceClass.VOLTAGE,
                "unit": UnitOfElectricPotential.VOLT,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ACAttributes.indoor_ambient_temperature: {
                "type": Platform.SENSOR,
                "required_attribute": ACAttributes.indoor_ambient_temperature,
                "translation_key": "indoor_ambient_temperature",
                "name": "Indoor Coil Temperature (T1)",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ACAttributes.indoor_coil_temperature: {
                "type": Platform.SENSOR,
                "required_attribute": ACAttributes.indoor_coil_temperature,
                "translation_key": "indoor_coil_temperature",
                "name": "Evaporator Temperature (T2)",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ACAttributes.outdoor_coil_temperature: {
                "type": Platform.SENSOR,
                "required_attribute": ACAttributes.outdoor_coil_temperature,
                "translation_key": "outdoor_coil_temperature",
                "name": "Condenser Temperature (T3)",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ACAttributes.outdoor_ambient_temperature: {
                "type": Platform.SENSOR,
                "required_attribute": ACAttributes.outdoor_ambient_temperature,
                "translation_key": "outdoor_ambient_temperature",
                "name": "Outdoor Ambient Temperature (T4)",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ACAttributes.discharge_pipe_temperature: {
                "type": Platform.SENSOR,
                "required_attribute": ACAttributes.discharge_pipe_temperature,
                "translation_key": "discharge_pipe_temperature",
                "name": "Discharge Pipe Temperature (TP)",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            # group 2: indoor fan and condensate pump
            ACAttributes.indoor_fan_speed: {
                "type": Platform.SENSOR,
                "required_attribute": ACAttributes.indoor_fan_speed,
                "translation_key": "indoor_fan_speed",
                "name": "Indoor Fan Speed",
                "icon": "mdi:fan",
                "unit": REVOLUTIONS_PER_MINUTE,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ACAttributes.target_indoor_fan_speed: {
                "type": Platform.SENSOR,
                "required_attribute": ACAttributes.target_indoor_fan_speed,
                "translation_key": "target_indoor_fan_speed",
                "name": "Target Indoor Fan Speed",
                "icon": "mdi:fan-clock",
                "unit": REVOLUTIONS_PER_MINUTE,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ACAttributes.water_pump_running: {
                "type": Platform.BINARY_SENSOR,
                "required_attribute": ACAttributes.water_pump_running,
                "translation_key": "water_pump_running",
                "name": "Water Pump Running",
                "icon": "mdi:water-pump",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            # group 7: real time compressor power
            ACAttributes.compressor_power: {
                "type": Platform.SENSOR,
                "required_attribute": ACAttributes.compressor_power,
                "translation_key": "compressor_power",
                "name": "Compressor Power",
                "device_class": SensorDeviceClass.POWER,
                "unit": UnitOfPower.WATT,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ACAttributes.wind_lr_angle: {
                "type": Platform.SELECT,
                "translation_key": "wind_lr_angle",
                "name": "Airflow Horizontal",
                "options": "wind_lr_angles",
                "icon": "mdi:pan-horizontal",
            },
            ACAttributes.wind_ud_angle: {
                "type": Platform.SELECT,
                "translation_key": "wind_ud_angle",
                "name": "Airflow Vertical",
                "options": "wind_ud_angles",
                "icon": "mdi:pan-vertical",
            },
            ACAttributes.rate_select: {
                "type": Platform.SELECT,
                "translation_key": "rate_select",
                "name": "Power Rate Limit",
                "options": "rate_selects",
                "icon": "mdi:lightning-bolt-circle",
            },
            ACAttributes.fan_speed: {
                "type": Platform.NUMBER,
                "translation_key": "fan_speed_percent",
                "name": "Fan Speed Percent",
                "icon": "mdi:fan",
                "max": 100,
                "min": 1,
                "step": 1,
            },
        },
    },
    0xAD: {
        "name": "Air Detector",
        "entities": {
            ADAttributes.temperature: {
                "type": Platform.SENSOR,
                "name": "Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ADAttributes.humidity: {
                "type": Platform.SENSOR,
                "name": "Humidity",
                "device_class": SensorDeviceClass.HUMIDITY,
                "unit": PERCENTAGE,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ADAttributes.temperature_raw: {
                "type": Platform.SENSOR,
                "name": "Temperature Raw",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ADAttributes.humidity_raw: {
                "type": Platform.SENSOR,
                "name": "Humidity Raw",
                "device_class": SensorDeviceClass.HUMIDITY,
                "unit": PERCENTAGE,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ADAttributes.temperature_compensate: {
                "type": Platform.SENSOR,
                "name": "Temperature Compensate",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ADAttributes.humidity_compensate: {
                "type": Platform.SENSOR,
                "name": "Humidity Compensate",
                "device_class": SensorDeviceClass.HUMIDITY,
                "unit": PERCENTAGE,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ADAttributes.tvoc: {
                "type": Platform.SENSOR,
                "name": "Tvoc",
                "icon": "mdi:heat-wave",
                "device_class": SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS,
                "unit": CONCENTRATION_PARTS_PER_MILLION,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ADAttributes.co2: {
                "type": Platform.SENSOR,
                "name": "Carbon Dioxide",
                "device_class": SensorDeviceClass.CO2,
                "unit": CONCENTRATION_PARTS_PER_MILLION,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ADAttributes.pm25: {
                "type": Platform.SENSOR,
                "name": "PM 2.5",
                "device_class": SensorDeviceClass.PM25,
                "unit": CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ADAttributes.hcho: {
                "type": Platform.SENSOR,
                "name": "Methanal",
                "icon": "mdi:molecule",
                "device_class": SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS,
                "unit": CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ADAttributes.presets_function: {
                "type": Platform.BINARY_SENSOR,
                "name": "Presets Function",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            ADAttributes.fall_asleep_status: {
                "type": Platform.BINARY_SENSOR,
                "name": "Asleep Status",
                "icon": "mdi:sleep",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            ADAttributes.screen_extinction_timeout: {
                "type": Platform.SENSOR,
                "name": "Screen Extinction Timeout",
                "unit": UnitOfTime.MINUTES,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ADAttributes.portable_sense: {
                "type": Platform.BINARY_SENSOR,
                "name": "Portable Sense",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            ADAttributes.night_mode: {
                "type": Platform.BINARY_SENSOR,
                "name": "Night Mode",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            ADAttributes.screen_status: {
                "type": Platform.BINARY_SENSOR,
                "name": "Screen Status",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            ADAttributes.led_status: {
                "type": Platform.BINARY_SENSOR,
                "name": "Ambient Lighting Status",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            ADAttributes.arofene_link: {
                "type": Platform.BINARY_SENSOR,
                "name": "Methanal Status",
                "device_class": BinarySensorDeviceClass.PLUG,
            },
            ADAttributes.header_exist: {
                "type": Platform.BINARY_SENSOR,
                "name": "Header Status",
                "device_class": BinarySensorDeviceClass.PLUG,
            },
            ADAttributes.radar_exist: {
                "type": Platform.BINARY_SENSOR,
                "name": "Radar Status",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            ADAttributes.header_led_status: {
                "type": Platform.BINARY_SENSOR,
                "name": "Breathing Light",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
        },
    },
    0xB0: {
        "name": "Microwave Oven",
        "entities": {
            B0Attributes.door: {
                "type": Platform.BINARY_SENSOR,
                "name": "Door",
                "icon": "mdi:box-shadow",
                "device_class": BinarySensorDeviceClass.DOOR,
            },
            # Deliberately NO device_class here. BinarySensorDeviceClass.LOCK
            # defines on = UNLOCKED, but this attribute is True when the child
            # lock is ENGAGED, so that device class would display it inverted.
            B0Attributes.child_lock: {
                "type": Platform.BINARY_SENSOR,
                "name": "Child Lock",
                "icon": "mdi:lock",
            },
            B0Attributes.tank_ejected: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "tank_ejected",
                "name": "Tank Ejected",
                "icon": "mdi:cup-water",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            B0Attributes.water_change_reminder: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "water_change_reminder",
                "name": "Water Change Reminder",
                "icon": "mdi:cup-water",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            B0Attributes.water_shortage: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "water_shortage",
                "name": "Water Shortage",
                "icon": "mdi:cup-water",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            B0Attributes.current_temperature: {
                "type": Platform.SENSOR,
                "name": "Current Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            B0Attributes.status: {
                "type": Platform.SENSOR,
                "translation_key": "status",
                "name": "Status",
                "icon": "mdi:information",
            },
            B0Attributes.mode: {
                "type": Platform.SENSOR,
                "name": "Mode",
                "icon": "mdi:chef-hat",
            },
            B0Attributes.fire_power: {
                "type": Platform.SENSOR,
                "name": "Fire Power",
                "icon": "mdi:fire",
            },
            B0Attributes.time_remaining: {
                "type": Platform.SENSOR,
                "translation_key": "time_remaining",
                "name": "Time Remaining",
                "icon": "mdi:progress-clock",
                "unit": UnitOfTime.SECONDS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
        },
    },
    0xB1: {
        "name": "Electric Oven",
        "entities": {
            B1Attributes.door: {
                "type": Platform.BINARY_SENSOR,
                "name": "Door",
                "icon": "mdi:box-shadow",
                "device_class": BinarySensorDeviceClass.DOOR,
            },
            B1Attributes.tank_ejected: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "tank_ejected",
                "name": "Tank ejected",
                "icon": "mdi:cup-water",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            B1Attributes.water_change_reminder: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "water_change_reminder",
                "name": "Water Change Reminder",
                "icon": "mdi:cup-water",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            B1Attributes.water_shortage: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "water_shortage",
                "name": "Water Shortage",
                "icon": "mdi:cup-water",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            B1Attributes.current_temperature: {
                "type": Platform.SENSOR,
                "name": "Current Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            B1Attributes.status: {
                "type": Platform.SENSOR,
                "translation_key": "status",
                "name": "Status",
                "icon": "mdi:information",
            },
            B1Attributes.time_remaining: {
                "type": Platform.SENSOR,
                "translation_key": "time_remaining",
                "name": "Time Remaining",
                "icon": "mdi:progress-clock",
                "unit": UnitOfTime.SECONDS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
        },
    },
    0xB3: {
        "name": "Dish Sterilizer",
        "entities": {
            B3Attributes.top_compartment_door: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "top_compartment_door",
                "name": "Top Compartment Door",
                "icon": "mdi:box-shadow",
                "device_class": BinarySensorDeviceClass.DOOR,
            },
            B3Attributes.top_compartment_preheating: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "top_compartment_preheating",
                "name": "Top Compartment Preheating",
                "icon": "mdi:heat-wave",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            B3Attributes.top_compartment_cooling: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "top_compartment_cooling",
                "name": "Top Compartment Cooling",
                "icon": "mdi:snowflake-variant",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            B3Attributes.middle_compartment_door: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "middle_compartment_door",
                "name": "Middle Compartment Door",
                "icon": "mdi:box-shadow",
                "device_class": BinarySensorDeviceClass.DOOR,
            },
            B3Attributes.middle_compartment_preheating: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "middle_compartment_preheating",
                "name": "Middle Compartment Preheating",
                "icon": "mdi:heat-wave",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            B3Attributes.middle_compartment_cooling: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "middle_compartment_cooling",
                "name": "Middle Compartment Cooling",
                "icon": "mdi:snowflake-variant",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            B3Attributes.bottom_compartment_door: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "bottom_compartment_door",
                "name": "Bottom Compartment Door",
                "icon": "mdi:box-shadow",
                "device_class": BinarySensorDeviceClass.DOOR,
            },
            B3Attributes.bottom_compartment_preheating: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "bottom_compartment_preheating",
                "name": "Bottom Compartment Preheating",
                "icon": "mdi:heat-wave",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            B3Attributes.bottom_compartment_cooling: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "bottom_compartment_cooling",
                "name": "Bottom Compartment Cooling",
                "icon": "mdi:snowflake-variant",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            B3Attributes.top_compartment_status: {
                "type": Platform.SENSOR,
                "translation_key": "top_compartment_status",
                "name": "Top Compartment Status",
                "icon": "mdi:information",
            },
            B3Attributes.top_compartment_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "top_compartment_temperature",
                "name": "Top Compartment Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            B3Attributes.top_compartment_remaining: {
                "type": Platform.SENSOR,
                "translation_key": "top_compartment_remaining",
                "name": "Top Compartment Remaining",
                "unit": UnitOfTime.SECONDS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            B3Attributes.middle_compartment_status: {
                "type": Platform.SENSOR,
                "translation_key": "middle_compartment_status",
                "name": "Middle Compartment Status",
                "icon": "mdi:information",
            },
            B3Attributes.middle_compartment_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "middle_compartment_temperature",
                "name": "Middle Compartment Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            B3Attributes.middle_compartment_remaining: {
                "type": Platform.SENSOR,
                "translation_key": "middle_compartment_remaining",
                "name": "Middle Compartment Remaining",
                "unit": UnitOfTime.SECONDS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            B3Attributes.bottom_compartment_status: {
                "type": Platform.SENSOR,
                "translation_key": "bottom_compartment_status",
                "name": "Bottom Compartment Status",
                "icon": "mdi:information",
            },
            B3Attributes.bottom_compartment_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "bottom_compartment_temperature",
                "name": "Bottom Compartment Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            B3Attributes.bottom_compartment_remaining: {
                "type": Platform.SENSOR,
                "translation_key": "bottom_compartment_remaining",
                "name": "Bottom Compartment Remaining",
                "unit": UnitOfTime.SECONDS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
        },
    },
    0xB4: {
        "name": "Toaster",
        "entities": {
            B4Attributes.door: {
                "type": Platform.BINARY_SENSOR,
                "name": "Door",
                "icon": "mdi:box-shadow",
                "device_class": BinarySensorDeviceClass.DOOR,
            },
            B4Attributes.tank_ejected: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "tank_ejected",
                "name": "Tank ejected",
                "icon": "mdi:cup-water",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            B4Attributes.water_change_reminder: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "water_change_reminder",
                "name": "Water Change Reminder",
                "icon": "mdi:cup-water",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            B4Attributes.water_shortage: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "water_shortage",
                "name": "Water Shortage",
                "icon": "mdi:cup-water",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            B4Attributes.current_temperature: {
                "type": Platform.SENSOR,
                "name": "Current Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            B4Attributes.status: {
                "type": Platform.SENSOR,
                "translation_key": "status",
                "name": "Status",
                "icon": "mdi:information",
            },
            B4Attributes.time_remaining: {
                "type": Platform.SENSOR,
                "translation_key": "time_remaining",
                "name": "Time Remaining",
                "icon": "mdi:progress-clock",
                "unit": UnitOfTime.SECONDS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
        },
    },
    0xB6: {
        "name": "Range Hood",
        "entities": {
            "fan": {
                "type": Platform.FAN,
                "icon": "mdi:fan",
                "default": True,
            },
            B6Attributes.light: {
                "type": Platform.SWITCH,
                "translation_key": "light",
                "name": "Light",
                "icon": "mdi:lightbulb",
            },
            B6Attributes.power: {
                "type": Platform.SWITCH,
                "translation_key": "power",
                "name": "Power",
                "icon": "mdi:power",
            },
            B6Attributes.cleaning_reminder: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "cleaning_reminder",
                "name": "Cleaning Reminder",
                "icon": "mdi:alert-circle",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            B6Attributes.oilcup_full: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "oilcup_full",
                "name": "Oil-cup Full",
                "icon": "mdi:cup",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            B6Attributes.fan_level: {
                "type": Platform.SENSOR,
                "translation_key": "fan_level",
                "name": "Fan level",
                "icon": "mdi:fan",
                "state_class": SensorStateClass.MEASUREMENT,
            },
        },
    },
    0xBF: {
        "name": "Microwave Steam Oven",
        "entities": {
            BFAttributes.tank_ejected: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "tank_ejected",
                "name": "Tank ejected",
                "icon": "mdi:cup-water",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            BFAttributes.water_change_reminder: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "water_change_reminder",
                "name": "Water Change Reminder",
                "icon": "mdi:cup-water",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            BFAttributes.door: {
                "type": Platform.BINARY_SENSOR,
                "name": "Door",
                "icon": "mdi:box-shadow",
                "device_class": BinarySensorDeviceClass.DOOR,
            },
            BFAttributes.water_shortage: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "water_shortage",
                "name": "Water Shortage",
                "icon": "mdi:cup-water",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            BFAttributes.current_temperature: {
                "type": Platform.SENSOR,
                "name": "Current Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            BFAttributes.status: {
                "type": Platform.SENSOR,
                "translation_key": "status",
                "name": "Status",
                "icon": "mdi:information",
            },
            BFAttributes.time_remaining: {
                "type": Platform.SENSOR,
                "translation_key": "time_remaining",
                "name": "Time Remaining",
                "icon": "mdi:progress-clock",
                "unit": UnitOfTime.SECONDS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
        },
    },
    0xC2: {
        "name": "Toilet",
        "entities": {
            C2Attributes.power: {
                "type": Platform.SWITCH,
                "translation_key": "power",
                "name": "Power",
                "icon": "mdi:power",
            },
            C2Attributes.sensor_light: {
                "type": Platform.SWITCH,
                "translation_key": "sensor_light",
                "name": "Sensor Light",
                "icon": "mdi:lightbulb",
            },
            C2Attributes.foam_shield: {
                "type": Platform.SWITCH,
                "translation_key": "foam_shield",
                "name": "Foam Shield",
                "icon": "mdi:chart-bubble",
            },
            C2Attributes.child_lock: {
                "type": Platform.LOCK,
                "translation_key": "child_lock",
                "name": "Child Lock",
            },
            C2Attributes.seat_status: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "seat_status",
                "name": "Seat Status",
                "icon": "mdi:seat-legroom-normal",
            },
            C2Attributes.lid_status: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "lid_status",
                "name": "Lid Status",
                "icon": "mdi:toilet",
            },
            C2Attributes.light_status: {
                "type": Platform.BINARY_SENSOR,
                "name": "Light Status",
                "icon": "mdi:lightbulb",
                "device_class": BinarySensorDeviceClass.LIGHT,
            },
            C2Attributes.water_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "water_temperature",
                "name": "Water Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            C2Attributes.seat_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "seat_temperature",
                "name": "Seat Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            C2Attributes.filter_life: {
                "type": Platform.SENSOR,
                "translation_key": "filter_life",
                "name": "Filter Life",
                "icon": "mdi:toilet",
                "unit": PERCENTAGE,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            C2Attributes.dry_level: {
                "type": Platform.NUMBER,
                "translation_key": "dry_level",
                "name": "Dry Level",
                "icon": "mdi:fire",
                "max": "max_dry_level",
                "min": 0,
                "step": 1,
            },
            C2Attributes.water_temp_level: {
                "type": Platform.NUMBER,
                "translation_key": "water_temp_level",
                "name": "Water Temperature Level",
                "icon": "mdi:fire",
                "max": "max_water_temp_level",
                "min": 0,
                "step": 1,
            },
            C2Attributes.seat_temp_level: {
                "type": Platform.NUMBER,
                "translation_key": "seat_temp_level",
                "name": "Seat Temperature Level",
                "icon": "mdi:fire",
                "max": "max_seat_temp_level",
                "min": 0,
                "step": 1,
            },
        },
    },
    0xC3: {
        "name": "Heat Pump Wi-Fi Controller",
        "entities": {
            "climate_zone1": {
                "type": Platform.CLIMATE,
                "translation_key": "climate_zone1",
                "name": "Zone1 Thermostat",
                "icon": "mdi:air-conditioner",
                "zone": 0,
                "default": True,
            },
            "climate_zone2": {
                "type": Platform.CLIMATE,
                "translation_key": "climate_zone2",
                "name": "Zone2 Thermostat",
                "icon": "mdi:air-conditioner",
                "zone": 1,
                "default": False,
            },
            "water_heater": {
                "type": Platform.WATER_HEATER,
                "translation_key": "domestic_hot_water",
                "name": "Domestic hot water",
                "icon": "mdi:heat-pump",
                "default": True,
            },
            C3Attributes.disinfect: {
                "type": Platform.SWITCH,
                "translation_key": "disinfect",
                "name": "Disinfect",
                "icon": "mdi:water-plus-outline",
            },
            C3Attributes.dhw_power: {
                "type": Platform.SWITCH,
                "translation_key": "dhw_power",
                "name": "DHW Power",
                "icon": "mdi:power",
            },
            C3Attributes.eco_mode: {
                "type": Platform.SWITCH,
                "translation_key": "eco_mode",
                "name": "ECO Mode",
                "icon": "mdi:leaf-circle",
            },
            C3Attributes.fast_dhw: {
                "type": Platform.SWITCH,
                "translation_key": "fast_dhw",
                "name": "Fast DHW",
                "icon": "mdi:rotate-orbit",
            },
            C3Attributes.silent_mode: {
                "type": Platform.SWITCH,
                "translation_key": "silent_mode",
                "name": "Silent Mode",
                "icon": "mdi:fan-remove",
            },
            C3Attributes.silent_level: {
                "type": Platform.SELECT,
                "translation_key": "silent_level",
                "name": "Silent Level",
                "icon": "mdi:fan-remove",
                "options": "silent_modes",
            },
            C3Attributes.tbh: {
                "type": Platform.SWITCH,
                "translation_key": "tbh",
                "name": "TBH",
                "icon": "mdi:water-boiler",
            },
            C3Attributes.zone1_curve: {
                "type": Platform.SWITCH,
                "translation_key": "zone1_curve",
                "name": "Zone1 Curve",
                "icon": "mdi:chart-bell-curve-cumulative",
            },
            C3Attributes.zone2_curve: {
                "type": Platform.SWITCH,
                "translation_key": "zone2_curve",
                "name": "Zone2 Curve",
                "icon": "mdi:chart-bell-curve-cumulative",
            },
            C3Attributes.zone1_power: {
                "type": Platform.SWITCH,
                "translation_key": "zone1_power",
                "name": "Zone1 Power",
                "icon": "mdi:power",
            },
            C3Attributes.zone2_power: {
                "type": Platform.SWITCH,
                "translation_key": "zone2_power",
                "name": "Zone2 Power",
                "icon": "mdi:power",
            },
            C3Attributes.zone1_water_temp_mode: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "zone1_water_temp_mode",
                "name": "Zone1 Water-temperature Mode",
                "icon": "mdi:coolant-temperature",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            C3Attributes.zone2_water_temp_mode: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "zone2_water_temp_mode",
                "name": "Zone2 Water-temperature Mode",
                "icon": "mdi:coolant-temperature",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            C3Attributes.zone1_room_temp_mode: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "zone1_room_temp_mode",
                "name": "Zone1 Room-temperature Mode",
                "icon": "mdi:home-thermometer-outline",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            C3Attributes.zone2_room_temp_mode: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "zone2_room_temp_mode",
                "name": "Zone2 Room-temperature Mode",
                "icon": "mdi:home-thermometer-outline",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            C3Attributes.error_code: {
                "type": Platform.SENSOR,
                "translation_key": "error_code",
                "name": "Error Code",
                "icon": "mdi:alpha-e-circle",
            },
            C3Attributes.tank_actual_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "tank_actual_temperature",
                "name": "Tank Actual Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            C3Attributes.status_dhw: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "status_dhw",
                "name": "DHW status",
                "icon": "mdi:heat-pump",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            C3Attributes.status_tbh: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "status_tbh",
                "name": "TBH status",
                "icon": "mdi:water-boiler",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            C3Attributes.status_ibh: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "status_ibh",
                "name": "IBH status",
                "icon": "mdi:coolant-temperature",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            C3Attributes.status_heating: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "status_heating",
                "name": "Heating status",
                "icon": "mdi:heat-pump",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            C3Attributes.total_energy_consumption: {
                "type": Platform.SENSOR,
                "translation_key": "total_energy_consumption",
                "name": "Total energy consumption",
                "device_class": SensorDeviceClass.ENERGY,
                "unit": UnitOfEnergy.KILO_WATT_HOUR,
                "state_class": SensorStateClass.TOTAL_INCREASING,
            },
            C3Attributes.total_produced_energy: {
                "type": Platform.SENSOR,
                "translation_key": "total_produced_energy",
                "name": "Total produced energy",
                "device_class": SensorDeviceClass.ENERGY,
                "unit": UnitOfEnergy.KILO_WATT_HOUR,
                "state_class": SensorStateClass.TOTAL_INCREASING,
            },
            C3Attributes.outdoor_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "outdoor_temperature",
                "name": "Outdoor Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            C3Attributes.temp_tw_in: {
                "type": Platform.SENSOR,
                "name": "Water Inlet Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            C3Attributes.temp_tw_out: {
                "type": Platform.SENSOR,
                "name": "Water Outlet Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            C3Attributes.instant_power0: {
                "type": Platform.SENSOR,
                "name": "Current Power",
                "device_class": SensorDeviceClass.POWER,
                "unit": UnitOfPower.WATT,
                "state_class": SensorStateClass.MEASUREMENT,
            },
        },
    },
    0xCA: {
        "name": "Refrigerator",
        "entities": {
            CAAttributes.bar_door: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "bar_door",
                "name": "Bar Door",
                "icon": "mdi:door",
                "device_class": BinarySensorDeviceClass.DOOR,
            },
            CAAttributes.bar_door_overtime: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "bar_door_overtime",
                "name": "Bar Door Overtime",
                "icon": "mdi:alert-circle",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            CAAttributes.flex_zone_door: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "flex_zone_door",
                "name": "Flex Door",
                "icon": "mdi:door",
                "device_class": BinarySensorDeviceClass.DOOR,
            },
            CAAttributes.flex_zone_door_overtime: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "flex_zone_door_overtime",
                "name": "Flex Zone Door",
                "icon": "mdi:alert-circle",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            CAAttributes.freezer_door: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "freezer_door",
                "name": "Freezer Door",
                "icon": "mdi:door",
                "device_class": BinarySensorDeviceClass.DOOR,
            },
            CAAttributes.freezer_door_overtime: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "freezer_door_overtime",
                "name": "Freezer Door Overtime",
                "icon": "mdi:alert-circle",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            CAAttributes.refrigerator_door: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "refrigerator_door",
                "name": "Refrigerator Door",
                "icon": "mdi:door",
                "device_class": BinarySensorDeviceClass.DOOR,
            },
            CAAttributes.refrigerator_door_overtime: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "refrigerator_door_overtime",
                "name": "Refrigerator Door Overtime",
                "icon": "mdi:alert-circle",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            CAAttributes.flex_zone_actual_temp: {
                "type": Platform.SENSOR,
                "translation_key": "flex_zone_actual_temp",
                "name": "Flex Zone Actual Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            CAAttributes.flex_zone_setting_temp: {
                "type": Platform.SENSOR,
                "translation_key": "flex_zone_setting_temp",
                "name": "Flex Zone Setting Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            CAAttributes.freezer_actual_temp: {
                "type": Platform.SENSOR,
                "translation_key": "freezer_actual_temp",
                "name": "Freezer Actual Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            CAAttributes.freezer_setting_temp: {
                "type": Platform.SENSOR,
                "translation_key": "freezer_setting_temp",
                "name": "Freezer Setting Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            CAAttributes.energy_consumption: {
                "type": Platform.SENSOR,
                "translation_key": "energy_consumption",
                "name": "Energy Consumption",
                "device_class": SensorDeviceClass.ENERGY,
                "unit": UnitOfEnergy.KILO_WATT_HOUR,
                "state_class": SensorStateClass.TOTAL_INCREASING,
            },
            CAAttributes.refrigerator_actual_temp: {
                "type": Platform.SENSOR,
                "translation_key": "refrigerator_actual_temp",
                "name": "Refrigerator Actual Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            CAAttributes.refrigerator_setting_temp: {
                "type": Platform.SENSOR,
                "translation_key": "refrigerator_setting_temp",
                "name": "Refrigerator Setting Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            CAAttributes.right_flex_zone_actual_temp: {
                "type": Platform.SENSOR,
                "translation_key": "right_flex_zone_actual_temp",
                "name": "Right Flex Zone Actual Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            CAAttributes.right_flex_zone_setting_temp: {
                "type": Platform.SENSOR,
                "translation_key": "right_flex_zone_setting_temp",
                "name": "Right Flex Zone Setting Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            CAAttributes.microcrystal_fresh: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "microcrystal_fresh",
                "name": "Microcrystal Fresh",
                "icon": "mdi:origin",
            },
            CAAttributes.electronic_smell: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "electronic_smell",
                "name": "Deodorizing sterilizing",
                "icon": "mdi:air-filter",
            },
            CAAttributes.humidity: {
                "type": Platform.SENSOR,
                "translation_key": "humidity",
                "name": "Humidity",
                "icon": "mdi:water-opacity",
            },
            CAAttributes.variable_mode: {
                "type": Platform.SENSOR,
                "translation_key": "variable_mode",
                "name": "Variable Mode",
                "icon": "mdi:nut",
            },
        },
    },
    0xCC: {
        "name": "MDV Wi-Fi Controller",
        "entities": {
            "climate": {
                "type": Platform.CLIMATE,
                "icon": "mdi:air-conditioner",
                "default": True,
            },
            CCAttributes.aux_heating: {
                "type": Platform.SWITCH,
                "translation_key": "aux_heating",
                "name": "Aux Heating",
                "icon": "mdi:heat-wave",
            },
            CCAttributes.eco_mode: {
                "type": Platform.SWITCH,
                "translation_key": "eco_mode",
                "name": "ECO Mode",
                "icon": "mdi:leaf-circle",
            },
            CCAttributes.night_light: {
                "type": Platform.SWITCH,
                "translation_key": "night_light",
                "name": "Night Light",
                "icon": "mdi:lightbulb",
            },
            CCAttributes.power: {
                "type": Platform.SWITCH,
                "translation_key": "power",
                "name": "Power",
                "icon": "mdi:power",
            },
            CCAttributes.sleep_mode: {
                "type": Platform.SWITCH,
                "translation_key": "sleep_mode",
                "name": "Sleep Mode",
                "icon": "mdi:power-sleep",
            },
            CCAttributes.swing: {
                "type": Platform.SWITCH,
                "translation_key": "swing",
                "name": "Swing",
                "icon": "mdi:arrow-split-horizontal",
            },
            CCAttributes.indoor_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "indoor_temperature",
                "name": "Indoor Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
        },
    },
    0xCD: {
        "name": "Heat Pump Water Heater",
        "entities": {
            "water_heater": {
                "type": Platform.WATER_HEATER,
                "icon": "mdi:water-boiler",
                "default": True,
            },
            CDAttributes.compressor_status: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "compressor_status",
                "name": "Compressor Status",
                "icon": "mdi:drag",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            CDAttributes.compressor_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "compressor_temperature",
                "name": "Compressor Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            CDAttributes.condenser_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "condenser_temperature",
                "name": "Condenser Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            CDAttributes.outdoor_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "outdoor_temperature",
                "name": "Outdoor Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            CDAttributes.water_level: {
                "type": Platform.SENSOR,
                "translation_key": "water_level",
                "name": "Water Level",
                "icon": "mdi:cup-water",
            },
            CDAttributes.disinfection_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "disinfection_temperature",
                "name": "Disinfection Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            CDAttributes.elec_heat: {
                "type": Platform.SENSOR,
                "translation_key": "elec_heat",
                "name": "Electric Heat",
                "icon": "mdi:heat-wave",
            },
            CDAttributes.top_elec_heat: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "top_elec_heat",
                "name": "Top Electric Heat",
                "icon": "mdi:heat-wave",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            CDAttributes.bottom_elec_heat: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "bottom_elec_heat",
                "name": "Bottom Electric Heat",
                "icon": "mdi:heat-wave",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            CDAttributes.water_pump: {
                "type": Platform.SENSOR,
                "translation_key": "water_pump",
                "name": "Water Pump",
                "icon": "mdi:water-pump",
            },
            CDAttributes.four_way: {
                "type": Platform.SENSOR,
                "translation_key": "four_way",
                "name": "Four Way Valve",
                "icon": "mdi:pipe-valve",
            },
            CDAttributes.back_water: {
                "type": Platform.SENSOR,
                "translation_key": "back_water",
                "name": "Back Water",
                "icon": "mdi:water",
            },
            CDAttributes.sterilize: {
                "type": Platform.SENSOR,
                "translation_key": "sterilize",
                "name": "Sterilize",
                "icon": "mdi:bacteria",
            },
            CDAttributes.top_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "top_temperature",
                "name": "Top Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            CDAttributes.bottom_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "bottom_temperature",
                "name": "Bottom Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            CDAttributes.wind: {
                "type": Platform.SENSOR,
                "translation_key": "wind",
                "name": "Wind",
                "icon": "mdi:weather-windy",
            },
            CDAttributes.smart_grid: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "smart_grid",
                "name": "Smart Grid",
                "icon": "mdi:transmission-tower",
            },
            CDAttributes.multi_terminal: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "multi_terminal",
                "name": "Multi Terminal",
                "icon": "mdi:tablet-cellphone",
            },
            CDAttributes.mute_effect: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "mute_effect",
                "name": "Mute Effect",
                "icon": "mdi:volume-off",
            },
            CDAttributes.mute_status: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "mute_status",
                "name": "Mute Status",
                "icon": "mdi:volume-mute",
            },
            CDAttributes.error_code: {
                "type": Platform.SENSOR,
                "translation_key": "error_code",
                "name": "Error Code",
                "icon": "mdi:alert-circle-outline",
            },
            CDAttributes.typeinfo: {
                "type": Platform.SENSOR,
                "translation_key": "typeinfo",
                "name": "Type Info",
                "icon": "mdi:information-outline",
            },
            CDAttributes.eco: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "eco",
                "name": "ECO",
                "icon": "mdi:leaf",
            },
            CDAttributes.maintenance_reminder: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "maintenance_reminder",
                "name": "Maintenance Reminder",
                "icon": "mdi:wrench-clock",
            },
            CDAttributes.maintain_warn: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "maintain_warn",
                "name": "Maintenance Warning",
                "icon": "mdi:wrench-clock",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            CDAttributes.order1_effect: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "order1_effect",
                "name": "Schedule 1 Active",
                "icon": "mdi:calendar-check",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            CDAttributes.order2_effect: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "order2_effect",
                "name": "Schedule 2 Active",
                "icon": "mdi:calendar-check",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            CDAttributes.max_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "max_temperature",
                "name": "Maximum Target Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
                "icon": "mdi:thermometer-high",
            },
            CDAttributes.vacation_mode: {
                "type": Platform.SWITCH,
                "translation_key": "vacation_mode",
                "name": "Vacation Mode",
                "icon": "mdi:beach",
            },
            CDAttributes.vacation_days: {
                "type": Platform.NUMBER,
                "translation_key": "vacation_days",
                "name": "Vacation Days",
                "max": 360,
                "min": 1,
                "step": 1,
                "icon": "mdi:calendar-range",
            },
            CDAttributes.vacation_start_year: {
                "type": Platform.SENSOR,
                "translation_key": "vacation_start_year",
                "name": "Vacation Start Year",
                "icon": "mdi:calendar-start",
            },
            CDAttributes.vacation_start_month: {
                "type": Platform.SENSOR,
                "translation_key": "vacation_start_month",
                "name": "Vacation Start Month",
                "icon": "mdi:calendar-start",
            },
            CDAttributes.vacation_start_day: {
                "type": Platform.SENSOR,
                "translation_key": "vacation_start_day",
                "name": "Vacation Start Day",
                "icon": "mdi:calendar-start",
            },
            CDAttributes.auto_sterilize_week: {
                "type": Platform.SENSOR,
                "translation_key": "auto_sterilize_week",
                "name": "Auto Sterilize Week",
                "icon": "mdi:calendar-week",
            },
            CDAttributes.auto_sterilize_hour: {
                "type": Platform.SENSOR,
                "translation_key": "auto_sterilize_hour",
                "name": "Auto Sterilize Hour",
                "icon": "mdi:clock-outline",
            },
            CDAttributes.auto_sterilize_minute: {
                "type": Platform.SENSOR,
                "translation_key": "auto_sterilize_minute",
                "name": "Auto Sterilize Minute",
                "icon": "mdi:clock-outline",
            },
            CDAttributes.power: {
                "type": Platform.SWITCH,
                "translation_key": "power",
                "name": "Power",
                "icon": "mdi:power",
            },
        },
    },
    0xCE: {
        "name": "Fresh Air Appliance",
        "entities": {
            "fan": {
                "type": Platform.FAN,
                "icon": "mdi:fan",
                "default": True,
            },
            CEAttributes.filter_cleaning_reminder: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "filter_cleaning_reminder",
                "name": "Filter Cleaning Reminder",
                "icon": "mdi:alert-circle",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            CEAttributes.filter_change_reminder: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "filter_change_reminder",
                "name": "Filter Change Reminder",
                "icon": "mdi:alert-circle",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            CEAttributes.current_humidity: {
                "type": Platform.SENSOR,
                "name": "Current Humidity",
                "device_class": SensorDeviceClass.HUMIDITY,
                "unit": PERCENTAGE,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            CEAttributes.current_temperature: {
                "type": Platform.SENSOR,
                "name": "Current Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            CEAttributes.co2: {
                "type": Platform.SENSOR,
                "name": "Carbon Dioxide",
                "device_class": SensorDeviceClass.CO2,
                "unit": CONCENTRATION_PARTS_PER_MILLION,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            CEAttributes.hcho: {
                "type": Platform.SENSOR,
                "translation_key": "hcho",
                "name": "Methanal",
                "icon": "mdi:molecule",
                "unit": CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            CEAttributes.pm25: {
                "type": Platform.SENSOR,
                "name": "PM 2.5",
                "device_class": SensorDeviceClass.PM25,
                "unit": CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            CEAttributes.child_lock: {
                "type": Platform.LOCK,
                "translation_key": "child_lock",
                "name": "Child Lock",
            },
            CEAttributes.aux_heating: {
                "type": Platform.SWITCH,
                "translation_key": "aux_heating",
                "name": "Aux Heating",
                "icon": "mdi:heat-wave",
            },
            CEAttributes.eco_mode: {
                "type": Platform.SWITCH,
                "translation_key": "eco_mode",
                "name": "ECO Mode",
                "icon": "mdi:leaf-circle",
            },
            CEAttributes.link_to_ac: {
                "type": Platform.SWITCH,
                "translation_key": "link_to_ac",
                "name": "Link to AC",
                "icon": "mdi:link",
            },
            CEAttributes.power: {
                "type": Platform.SWITCH,
                "translation_key": "power",
                "name": "Power",
                "icon": "mdi:power",
            },
            CEAttributes.powerful_purify: {
                "type": Platform.SWITCH,
                "translation_key": "powerful_purify",
                "name": "Powerful Purification",
                "icon": "mdi:turbine",
            },
            CEAttributes.sleep_mode: {
                "type": Platform.SWITCH,
                "translation_key": "sleep_mode",
                "name": "Sleep Mode",
                "icon": "mdi:power-sleep",
            },
        },
    },
    0xCF: {
        "name": "Heat Pump",
        "entities": {
            "climate": {
                "type": Platform.CLIMATE,
                "icon": "mdi:air-conditioner",
                "default": True,
            },
            CFAttributes.aux_heating: {
                "type": Platform.SWITCH,
                "translation_key": "aux_heating",
                "name": "Aux Heating",
                "icon": "mdi:heat-wave",
            },
            CFAttributes.power: {
                "type": Platform.SWITCH,
                "translation_key": "power",
                "name": "Power",
                "icon": "mdi:power",
            },
            CFAttributes.current_temperature: {
                "type": Platform.SENSOR,
                "name": "Current Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
        },
    },
    0xDA: {
        "name": "Top Load Washer",
        "entities": {
            DAAttributes.time_remaining: {
                "type": Platform.SENSOR,
                "translation_key": "time_remaining",
                "name": "Time Remaining",
                "icon": "mdi:progress-clock",
                "unit": UnitOfTime.MINUTES,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            DAAttributes.wash_time: {
                "type": Platform.SENSOR,
                "translation_key": "wash_time",
                "name": "Wash time",
                "icon": "mdi:progress-clock",
                "unit": UnitOfTime.MINUTES,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            DAAttributes.soak_time: {
                "type": Platform.SENSOR,
                "translation_key": "soak_time",
                "name": "Soak time",
                "icon": "mdi:progress-clock",
                "unit": UnitOfTime.MINUTES,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            DAAttributes.dehydration_time: {
                "type": Platform.SENSOR,
                "translation_key": "dehydration_time",
                "name": "Dehydration time",
                "icon": "mdi:progress-clock",
                "unit": UnitOfTime.MINUTES,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            DAAttributes.dehydration_speed: {
                "type": Platform.SENSOR,
                "translation_key": "dehydration_speed",
                "name": "Dehydration speed",
                "icon": "mdi:speedometer",
            },
            DAAttributes.error_code: {
                "type": Platform.SENSOR,
                "translation_key": "error_code",
                "name": "Error code",
                "icon": "mdi:washing-machine-alert",
            },
            DAAttributes.rinse_count: {
                "type": Platform.SENSOR,
                "translation_key": "rinse_count",
                "name": "Rinse count",
                "icon": "mdi:water-sync",
            },
            DAAttributes.rinse_level: {
                "type": Platform.SENSOR,
                "translation_key": "rinse_level",
                "name": "Rinse level",
                "icon": "mdi:hydraulic-oil-level",
            },
            DAAttributes.wash_level: {
                "type": Platform.SENSOR,
                "translation_key": "wash_level",
                "name": "Wash level",
                "icon": "mdi:hydraulic-oil-level",
            },
            DAAttributes.wash_strength: {
                "type": Platform.SENSOR,
                "translation_key": "wash_strength",
                "name": "Wash strength",
                "icon": "mdi:network-strength-4-cog",
            },
            DAAttributes.softener: {
                "type": Platform.SENSOR,
                "translation_key": "softener",
                "name": "Softener",
                "icon": "mdi:tshirt-crew",
            },
            DAAttributes.detergent: {
                "type": Platform.SENSOR,
                "translation_key": "detergent",
                "name": "Detergent",
                "icon": "mdi:spray-bottle",
            },
            DAAttributes.program: {
                "type": Platform.SENSOR,
                "translation_key": "program",
                "name": "Program",
                "icon": "mdi:progress-wrench",
            },
            DAAttributes.progress: {
                "type": Platform.SENSOR,
                "translation_key": "progress",
                "name": "Progress",
                "icon": "mdi:rotate-360",
            },
            DAAttributes.power: {
                "type": Platform.SWITCH,
                "translation_key": "power",
                "name": "Power",
                "icon": "mdi:power",
            },
            DAAttributes.start: {
                "type": Platform.SWITCH,
                "translation_key": "start",
                "name": "Start",
                "icon": "mdi:motion-play-outline",
            },
        },
    },
    0xDB: {
        "name": "Front Load Washer",
        "entities": {
            DBAttributes.time_remaining: {
                "type": Platform.SENSOR,
                "translation_key": "time_remaining",
                "name": "Time Remaining",
                "icon": "mdi:progress-clock",
                "unit": UnitOfTime.MINUTES,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            DBAttributes.progress: {
                "type": Platform.SENSOR,
                "translation_key": "progress",
                "name": "Progress",
                "icon": "mdi:rotate-360",
            },
            DBAttributes.power: {
                "type": Platform.SWITCH,
                "translation_key": "power",
                "name": "Power",
                "icon": "mdi:power",
            },
            DBAttributes.start: {
                "type": Platform.SWITCH,
                "translation_key": "start",
                "name": "Start",
                "icon": "mdi:motion-play-outline",
            },
            DBAttributes.status: {
                "type": Platform.SENSOR,
                "translation_key": "status",
                "name": "Status",
                "icon": "mdi:auto-mode",
            },
            DBAttributes.mode: {
                "type": Platform.SENSOR,
                "translation_key": "mode",
                "name": "Mode",
                "icon": "mdi:auto-mode",
            },
            DBAttributes.dehydration_speed: {
                "type": Platform.SENSOR,
                "translation_key": "dehydration_speed",
                "name": "Dehydration Speed",
                "icon": "mdi:speedometer",
            },
            DBAttributes.water_level: {
                "type": Platform.SENSOR,
                "translation_key": "water_level",
                "name": "Water Level",
                "icon": "mdi:cup-water",
            },
            DBAttributes.program: {
                "type": Platform.SENSOR,
                "translation_key": "program",
                "name": "Program",
                "icon": "mdi:washing-machine",
            },
            DBAttributes.temperature: {
                "type": Platform.SENSOR,
                "translation_key": "temperature",
                "name": "Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            DBAttributes.detergent: {
                "type": Platform.SENSOR,
                "translation_key": "detergent",
                "name": "Detergent",
                "icon": "mdi:water",
            },
            DBAttributes.softener: {
                "type": Platform.SENSOR,
                "translation_key": "softener",
                "name": "Softener",
                "icon": "mdi:water-outline",
            },
            DBAttributes.wash_time: {
                "type": Platform.SENSOR,
                "translation_key": "wash_time",
                "name": "Wash Time",
                "icon": "mdi:dishwasher",
            },
            DBAttributes.dehydration_time: {
                "type": Platform.SENSOR,
                "translation_key": "dehydration_time",
                "name": "Dehydration Time",
                "icon": "mdi:dishwasher",
            },
            DBAttributes.wash_time_value: {
                "type": Platform.SENSOR,
                "translation_key": "wash_time_value",
                "name": "Wash Time Value",
                "icon": "mdi:progress-clock",
                "unit": UnitOfTime.MINUTES,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            DBAttributes.dehydration_time_value: {
                "type": Platform.SENSOR,
                "translation_key": "dehydration_time_value",
                "name": "Dehydration Time Value",
                "icon": "mdi:progress-clock",
                "unit": UnitOfTime.MINUTES,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            DBAttributes.stains: {
                "type": Platform.SENSOR,
                "translation_key": "stains",
                "name": "Stains",
                "icon": "mdi:water-outline",
            },
            DBAttributes.dirty_degree: {
                "type": Platform.SENSOR,
                "translation_key": "dirty_degree",
                "name": "Dirty_degree",
                "icon": "mdi:water-outline",
            },
        },
    },
    0xDC: {
        "name": "Clothes Dryer",
        "entities": {
            DCAttributes.time_remaining: {
                "type": Platform.SENSOR,
                "translation_key": "time_remaining",
                "name": "Time Remaining",
                "icon": "mdi:progress-clock",
                "unit": UnitOfTime.MINUTES,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            DCAttributes.progress: {
                "type": Platform.SENSOR,
                "translation_key": "progress",
                "name": "Progress",
                "icon": "mdi:rotate-360",
            },
            DCAttributes.power: {
                "type": Platform.SWITCH,
                "translation_key": "power",
                "name": "Power",
                "icon": "mdi:power",
            },
            DCAttributes.start: {
                "type": Platform.SWITCH,
                "translation_key": "start",
                "name": "Start",
                "icon": "mdi:motion-play-outline",
            },
            DCAttributes.status: {
                "type": Platform.SENSOR,
                "translation_key": "status",
                "name": "Status",
                "icon": "mdi:auto-mode",
            },
            DCAttributes.program: {
                "type": Platform.SENSOR,
                "translation_key": "program",
                "name": "Program",
                "icon": "mdi:washing-machine",
            },
            DCAttributes.dry_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "dry_temperature",
                "name": "Dry Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            DCAttributes.intensity: {
                "type": Platform.SENSOR,
                "translation_key": "intensity",
                "name": "Intensity",
                "icon": "mdi:waves-arrow-up",
            },
            DCAttributes.dryness_level: {
                "type": Platform.SENSOR,
                "translation_key": "dryness_level",
                "name": "Dryness Level",
                "icon": "mdi:spirit-level",
            },
            DCAttributes.error_code: {
                "type": Platform.SENSOR,
                "translation_key": "error_code",
                "name": "Error Code",
                "icon": "mdi:code-block-tags",
            },
            DCAttributes.door_warn: {
                "type": Platform.SENSOR,
                "translation_key": "door_warn",
                "name": "Door Warn",
                "icon": "mdi:alert-box",
            },
            DCAttributes.ai_switch: {
                "type": Platform.SENSOR,
                "translation_key": "ai_switch",
                "name": "AI Switch",
                "icon": "mdi:toggle-switch",
            },
            DCAttributes.material: {
                "type": Platform.SENSOR,
                "translation_key": "material",
                "name": "Material",
                "icon": "mdi:material-design",
            },
            DCAttributes.water_box: {
                "type": Platform.SENSOR,
                "translation_key": "water_box",
                "name": "Water Box",
                "icon": "mdi:cup-water",
            },
        },
    },
    0xE1: {
        "name": "Dishwasher",
        "entities": {
            E1Attributes.door: {
                "type": Platform.BINARY_SENSOR,
                "name": "Door",
                "icon": "mdi:box-shadow",
                "device_class": BinarySensorDeviceClass.DOOR,
            },
            E1Attributes.rinse_aid: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "rinse_aid",
                "name": "Rinse Aid Shortage",
                "icon": "mdi:bottle-tonic",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            E1Attributes.salt: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "salt",
                "name": "Salt Shortage",
                "icon": "mdi:drag",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            E1Attributes.humidity: {
                "type": Platform.SENSOR,
                "name": "Humidity",
                "device_class": SensorDeviceClass.HUMIDITY,
                "unit": PERCENTAGE,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            E1Attributes.progress: {
                "type": Platform.SENSOR,
                "translation_key": "progress",
                "name": "Progress",
                "icon": "mdi:rotate-360",
            },
            E1Attributes.status: {
                "type": Platform.SENSOR,
                "translation_key": "status",
                "name": "Status",
                "icon": "mdi:information",
            },
            E1Attributes.storage_remaining: {
                "type": Platform.SENSOR,
                "translation_key": "storage_remaining",
                "name": "Storage Remaining",
                "icon": "mdi:progress-clock",
                "unit": UnitOfTime.HOURS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            E1Attributes.temperature: {
                "type": Platform.SENSOR,
                "name": "Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            E1Attributes.time_remaining: {
                "type": Platform.SENSOR,
                "translation_key": "time_remaining",
                "name": "Time Remaining",
                "icon": "mdi:progress-clock",
                "unit": UnitOfTime.MINUTES,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            E1Attributes.child_lock: {
                "type": Platform.LOCK,
                "translation_key": "child_lock",
                "name": "Child Lock",
            },
            E1Attributes.power: {
                "type": Platform.SWITCH,
                "translation_key": "power",
                "name": "Power",
                "icon": "mdi:power",
            },
            E1Attributes.storage: {
                "type": Platform.SWITCH,
                "translation_key": "storage",
                "name": "Storage",
                "icon": "mdi:repeat-variant",
            },
            "start": {
                "type": Platform.BUTTON,
                "translation_key": "start",
                "name": "Start",
                "icon": "mdi:play",
                "set_message": "e1_start",
                "available_power_attribute": E1Attributes.power,
                "models": ["7600024L"],
                "default": True,
            },
            E1Attributes.mode: {
                "type": Platform.SENSOR,
                "translation_key": "mode",
                "name": "Working Mode",
                "icon": "mdi:dishwasher",
            },
            "mode_select": {
                "type": Platform.SELECT,
                "attribute": E1Attributes.mode,
                "translation_key": "wash_mode",
                "name": "Wash Mode",
                "options_dict": "modes",
                "options_codes_by_model": {
                    "7600024L": [13, 4, 8, 6, 2, 11, 10],
                },
                "set_message": "e1_work_mode",
                "available_power_attribute": E1Attributes.power,
                "icon": "mdi:dishwasher",
                "default": True,
            },
            "estimated_energy_consumption": {
                "type": Platform.SENSOR,
                "translation_key": "estimated_energy_consumption",
                "name": "Estimated Energy Consumption",
                "icon": "mdi:lightning-bolt",
                "device_class": SensorDeviceClass.ENERGY,
                "unit": UnitOfEnergy.KILO_WATT_HOUR,
                "state_class": SensorStateClass.TOTAL_INCREASING,
                "estimate": {
                    "kind": "energy",
                    "values": {
                        "Germ": 0.765,
                        "ECO Wash": 0.99,
                        "Strong Wash": 1.28,
                        "Hour Wash": 0.91,
                        "Soak Wash": 0.02,
                        "Self Clean": 1.524,
                        "Fruit Wash": 1.625,
                    },
                },
                "models": ["7600024L"],
                "default": True,
            },
            "estimated_water_consumption": {
                "type": Platform.SENSOR,
                "translation_key": "estimated_water_consumption",
                "name": "Estimated Water Consumption",
                "icon": "mdi:water",
                "device_class": SensorDeviceClass.WATER,
                "unit": UnitOfVolume.LITERS,
                "state_class": SensorStateClass.TOTAL_INCREASING,
                "estimate": {
                    "kind": "water",
                    "values": {
                        "Germ": 9.9,
                        "ECO Wash": 10.4,
                        "Strong Wash": 13.9,
                        "Hour Wash": 10.4,
                        "Soak Wash": 3.4,
                        "Self Clean": 10.3,
                        "Fruit Wash": 13.3,
                    },
                },
                "models": ["7600024L"],
                "default": True,
            },
            E1Attributes.error_code: {
                "type": Platform.SENSOR,
                "translation_key": "error_code",
                "name": "Error Code",
                "icon": "mdi:alert-box",
            },
            E1Attributes.softwater: {
                "type": Platform.SENSOR,
                "translation_key": "softwater",
                "name": "Softwater Level",
                "icon": "mdi:shaker-outline",
            },
            E1Attributes.bright: {
                "type": Platform.SENSOR,
                "translation_key": "bright",
                "name": "Bright Level",
                "icon": "mdi:star-four-points",
            },
        },
    },
    0xE2: {
        "name": "Electric Water Heater",
        "entities": {
            "water_heater": {
                "type": Platform.WATER_HEATER,
                "icon": "mdi:meter-electric-outline",
                "default": True,
            },
            E2Attributes.heating: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "heating",
                "name": "Heating",
                "icon": "mdi:heat-wave",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            E2Attributes.keep_warm: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "keep_warm",
                "name": "Keep Warm",
                "icon": "mdi:menu",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            E2Attributes.protection: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "protection",
                "name": "Protection",
                "icon": "mdi:shield-check",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            E2Attributes.current_temperature: {
                "type": Platform.SENSOR,
                "name": "Current Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            E2Attributes.heating_time_remaining: {
                "type": Platform.SENSOR,
                "translation_key": "heating_time_remaining",
                "name": "Heating Time Remaining",
                "icon": "mdi:progress-clock",
                "unit": UnitOfTime.MINUTES,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            E2Attributes.heating_power: {
                "type": Platform.SENSOR,
                "translation_key": "heating_power",
                "name": "Heating Power",
                "device_class": SensorDeviceClass.POWER,
                "unit": UnitOfPower.WATT,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            E2Attributes.water_consumption: {
                "type": Platform.SENSOR,
                "translation_key": "water_consumption",
                "name": "Water Consumption",
                "icon": "mdi:water",
                "unit": UnitOfVolume.LITERS,
                "state_class": SensorStateClass.TOTAL_INCREASING,
            },
            E2Attributes.power: {
                "type": Platform.SWITCH,
                "translation_key": "power",
                "name": "Power",
                "icon": "mdi:power",
            },
            E2Attributes.variable_heating: {
                "type": Platform.SWITCH,
                "translation_key": "variable_heating",
                "name": "Variable Heating",
                "icon": "mdi:waves",
            },
            E2Attributes.whole_tank_heating: {
                "type": Platform.SWITCH,
                "translation_key": "whole_tank_heating",
                "name": "Whole Tank Heating",
                "icon": "mdi:restore",
            },
            E2Attributes.sterilization: {
                "type": Platform.SWITCH,
                "translation_key": "sterilization",
                "name": "Sterilization",
                "icon": "mdi:bacteria",
            },
            E2Attributes.memory: {
                "type": Platform.SWITCH,
                "translation_key": "memory",
                "name": "Memo U",
                "icon": "mdi:brain",
            },
        },
    },
    0xE3: {
        "name": "Gas Water Heater",
        "entities": {
            "water_heater": {
                "type": Platform.WATER_HEATER,
                "icon": "mdi:meter-gas",
                "default": True,
            },
            E3Attributes.burning_state: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "burning_state",
                "name": "Burning State",
                "icon": "mdi:fire",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            E3Attributes.protection: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "protection",
                "name": "Protection",
                "icon": "mdi:shield-check",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            E3Attributes.current_temperature: {
                "type": Platform.SENSOR,
                "name": "Current Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            E3Attributes.power: {
                "type": Platform.SWITCH,
                "translation_key": "power",
                "name": "Power",
                "icon": "mdi:power",
            },
            E3Attributes.smart_volume: {
                "type": Platform.SWITCH,
                "translation_key": "smart_volume",
                "name": "Smart Volume",
                "icon": "mdi:recycle",
            },
            E3Attributes.zero_cold_water: {
                "type": Platform.SWITCH,
                "translation_key": "zero_cold_water",
                "name": "Zero Cold Water",
                "icon": "mdi:restore",
            },
            E3Attributes.zero_cold_pulse: {
                "type": Platform.SWITCH,
                "translation_key": "zero_cold_pulse",
                "name": "Zero Cold Water (Pulse)",
                "icon": "mdi:restore-alert",
            },
        },
    },
    0xE6: {
        "name": "Gas Boilers",
        "entities": {
            "water_heater_heating": {
                "type": Platform.WATER_HEATER,
                "translation_key": "heating",
                "name": "Heating",
                "icon": "mdi:meter-gas",
                "use": 0,
                "default": True,
            },
            "water_heater_bathing": {
                "type": Platform.WATER_HEATER,
                "translation_key": "bathing",
                "name": "Bathing",
                "icon": "mdi:meter-gas",
                "use": 1,
                "default": True,
            },
            E6Attributes.heating_working: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "heating_working",
                "name": "Heating Working Status",
                "icon": "mdi:fire",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            E6Attributes.bathing_working: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "bathing_working",
                "name": "Bathing Working Status",
                "icon": "mdi:fire",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            E6Attributes.heating_leaving_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "heating_leaving_temperature",
                "name": "Heating Leaving Water Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            E6Attributes.bathing_leaving_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "bathing_leaving_temperature",
                "name": "Bathing Leaving Water Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            E6Attributes.main_power: {
                "type": Platform.SWITCH,
                "translation_key": "main_power",
                "name": "Main Power",
                "icon": "mdi:power",
            },
            E6Attributes.heating_power: {
                "type": Platform.SWITCH,
                "translation_key": "heating_power",
                "name": "Heating Power",
                "icon": "mdi:heating-coil",
            },
            E6Attributes.cold_water_single: {
                "type": Platform.SWITCH,
                "translation_key": "cold_water_single",
                "name": "Cold Water Single",
                "icon": "mdi:water",
            },
            E6Attributes.cold_water_dot: {
                "type": Platform.SWITCH,
                "translation_key": "cold_water_dot",
                "name": "Cold Water Dot",
                "icon": "mdi:water-outline",
            },
            E6Attributes.heating_modes: {
                "type": Platform.SELECT,
                "translation_key": "mode",
                "options": "heating_modes",
                "name": "Heating Modes",
                "icon": "mdi:auto-mode",
            },
        },
    },
    0xE8: {
        "name": "Electric Slow Cooker",
        "entities": {
            E8Attributes.finished: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "finished",
                "name": "Finished",
            },
            E8Attributes.water_shortage: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "water_shortage",
                "name": "Water Shortage",
                "icon": "mdi:drag",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            E8Attributes.status: {
                "type": Platform.SENSOR,
                "translation_key": "status",
                "name": "Status",
                "icon": "mdi:information",
            },
            E8Attributes.time_remaining: {
                "type": Platform.SENSOR,
                "translation_key": "time_remaining",
                "name": "Time Remaining",
                "icon": "mdi:progress-clock",
                "unit": UnitOfTime.SECONDS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            E8Attributes.keep_warm_remaining: {
                "type": Platform.SENSOR,
                "translation_key": "keep_warm_remaining",
                "name": "Keep Warm Remaining",
                "icon": "mdi:progress-clock",
                "unit": UnitOfTime.SECONDS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            E8Attributes.working_time: {
                "type": Platform.SENSOR,
                "translation_key": "working_time",
                "name": "Working Time",
                "icon": "mdi:progress-clock",
                "unit": UnitOfTime.SECONDS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            E8Attributes.target_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "target_temperature",
                "name": "Target Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            E8Attributes.current_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "current_temperature",
                "name": "Current Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
        },
    },
    0xEA: {
        "name": "Electric Rice Cooker",
        "entities": {
            EAAttributes.cooking: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "cooking",
                "name": "Cooking",
                "icon": "mdi:fire",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            EAAttributes.keep_warm: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "keep_warm",
                "name": "Keep Warm",
                "icon": "mdi:menu",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            EAAttributes.bottom_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "bottom_temperature",
                "name": "Bottom Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            EAAttributes.keep_warm_time: {
                "type": Platform.SENSOR,
                "translation_key": "keep_warm_time",
                "name": "Keep Warm Time",
                "icon": "mdi:progress-clock",
                "unit": UnitOfTime.MINUTES,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            EAAttributes.mode: {
                "type": Platform.SENSOR,
                "translation_key": "mode",
                "name": "Mode",
                "icon": "mdi:orbit",
            },
            EAAttributes.progress: {
                "type": Platform.SENSOR,
                "translation_key": "progress",
                "name": "Progress",
                "icon": "mdi:rotate-360",
            },
            EAAttributes.time_remaining: {
                "type": Platform.SENSOR,
                "translation_key": "time_remaining",
                "name": "Time Remaining",
                "icon": "mdi:progress-clock",
                "unit": UnitOfTime.MINUTES,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            EAAttributes.top_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "top_temperature",
                "name": "Top Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
        },
    },
    0xEC: {
        "name": "Electric Pressure Cooker",
        "entities": {
            ECAttributes.cooking: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "cooking",
                "name": "Cooking",
                "icon": "mdi:fire",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            ECAttributes.with_pressure: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "with_pressure",
                "name": "With Pressure",
                "icon": "mdi:information",
                "device_class": BinarySensorDeviceClass.RUNNING,
            },
            ECAttributes.bottom_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "bottom_temperature",
                "name": "Bottom Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ECAttributes.keep_warm_time: {
                "type": Platform.SENSOR,
                "translation_key": "keep_warm_time",
                "name": "Keep Warm Time",
                "icon": "mdi:progress-clock",
                "unit": UnitOfTime.MINUTES,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ECAttributes.mode: {
                "type": Platform.SENSOR,
                "translation_key": "mode",
                "name": "Mode",
                "icon": "mdi:orbit",
            },
            ECAttributes.progress: {
                "type": Platform.SENSOR,
                "translation_key": "progress",
                "name": "Progress",
                "icon": "mdi:rotate-360",
            },
            ECAttributes.time_remaining: {
                "type": Platform.SENSOR,
                "translation_key": "time_remaining",
                "name": "Time Remaining",
                "icon": "mdi:progress-clock",
                "unit": UnitOfTime.MINUTES,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            ECAttributes.top_temperature: {
                "type": Platform.SENSOR,
                "translation_key": "top_temperature",
                "name": "Top Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
        },
    },
    0xED: {
        "name": "Water Drinking Appliance",
        "entities": {
            EDAttributes.child_lock: {
                "type": Platform.LOCK,
                "translation_key": "child_lock",
                "name": "Child Lock",
            },
            EDAttributes.power: {
                "type": Platform.SWITCH,
                "translation_key": "power",
                "name": "Power",
                "icon": "mdi:power",
            },
            EDAttributes.filter1: {
                "type": Platform.SENSOR,
                "translation_key": "filter1_days",
                "name": "Filter1 Available Days",
                "icon": "mdi:air-filter",
                "unit": UnitOfTime.DAYS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            EDAttributes.filter2: {
                "type": Platform.SENSOR,
                "translation_key": "filter2_days",
                "name": "Filter2 Available Days",
                "icon": "mdi:air-filter",
                "unit": UnitOfTime.DAYS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            EDAttributes.filter3: {
                "type": Platform.SENSOR,
                "translation_key": "filter3_days",
                "name": "Filter3 Available Days",
                "icon": "mdi:air-filter",
                "unit": UnitOfTime.DAYS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            EDAttributes.life1: {
                "type": Platform.SENSOR,
                "translation_key": "filter1_life",
                "name": "Filter1 Life Level",
                "icon": "mdi:percent",
                "unit": PERCENTAGE,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            EDAttributes.life2: {
                "type": Platform.SENSOR,
                "translation_key": "filter2_life",
                "name": "Filter2 Life Level",
                "icon": "mdi:percent",
                "unit": PERCENTAGE,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            EDAttributes.life3: {
                "type": Platform.SENSOR,
                "translation_key": "filter3_life",
                "name": "Filter3 Life Level",
                "icon": "mdi:percent",
                "unit": PERCENTAGE,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            EDAttributes.in_tds: {
                "type": Platform.SENSOR,
                "translation_key": "in_tds",
                "name": "In TDS",
                "icon": "mdi:water",
                "unit": CONCENTRATION_PARTS_PER_MILLION,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            EDAttributes.out_tds: {
                "type": Platform.SENSOR,
                "translation_key": "out_tds",
                "name": "Out TDS",
                "icon": "mdi:water-plus",
                "unit": CONCENTRATION_PARTS_PER_MILLION,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            EDAttributes.water_consumption: {
                "type": Platform.SENSOR,
                "translation_key": "water_consumption",
                "name": "Water Consumption",
                "icon": "mdi:water-pump",
                "unit": UnitOfVolume.LITERS,
                "state_class": SensorStateClass.TOTAL_INCREASING,
            },
            # Soft water machine (water softener) entities
            EDAttributes.soften: {
                "type": Platform.SWITCH,
                "translation_key": "soften",
                "name": "Softening",
                "icon": "mdi:water-outline",
            },
            EDAttributes.cl_sterilization: {
                "type": Platform.SWITCH,
                "translation_key": "cl_sterilization",
                "name": "CL Sterilization",
                "icon": "mdi:bacteria",
            },
            EDAttributes.leak_water_protection: {
                "type": Platform.SWITCH,
                "translation_key": "leak_water_protection",
                "name": "Leak Water Protection",
                "icon": "mdi:water-alert",
            },
            EDAttributes.water_way: {
                "type": Platform.SWITCH,
                "translation_key": "water_way",
                "name": "Water Way",
                "icon": "mdi:pipe",
            },
            EDAttributes.regeneration: {
                "type": Platform.SWITCH,
                "translation_key": "regeneration",
                "name": "Regeneration",
                "icon": "mdi:refresh",
            },
            EDAttributes.velocity: {
                "type": Platform.SENSOR,
                "translation_key": "velocity",
                "name": "Velocity",
                "icon": "mdi:speedometer",
                "state_class": SensorStateClass.MEASUREMENT,
            },
            EDAttributes.soft_available: {
                "type": Platform.SENSOR,
                "translation_key": "soft_available",
                "name": "Soft Water Available",
                "icon": "mdi:water-check",
                "unit": UnitOfVolume.LITERS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            EDAttributes.left_salt: {
                "type": Platform.SENSOR,
                "translation_key": "left_salt",
                "name": "Left Salt",
                "icon": "mdi:shaker",
                "unit": PERCENTAGE,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            EDAttributes.remaining_days: {
                "type": Platform.SENSOR,
                "translation_key": "remaining_days",
                "name": "Remaining Days",
                "icon": "mdi:calendar-clock",
                "unit": UnitOfTime.DAYS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            EDAttributes.water_hardness: {
                "type": Platform.NUMBER,
                "translation_key": "water_hardness",
                "name": "Water Hardness",
                "icon": "mdi:water",
                "min": 0,
                "max": 65535,
                "step": 1,
            },
            EDAttributes.flushing_days: {
                "type": Platform.NUMBER,
                "translation_key": "flushing_days",
                "name": "Flushing Days",
                "icon": "mdi:water",
                "unit": UnitOfTime.DAYS,
                "min": 0,
                "max": 99,
                "step": 1,
            },
            EDAttributes.timing_regeneration_hour: {
                "type": Platform.TIME,
                "translation_key": "timing_regeneration",
                "name": "Timing Regeneration",
                "icon": "mdi:clock-outline",
            },
            EDAttributes.regeneration_left_seconds: {
                "type": Platform.SENSOR,
                "translation_key": "regeneration_left_seconds",
                "name": "Regeneration Left Seconds",
                "icon": "mdi:timer",
                "unit": UnitOfTime.SECONDS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            EDAttributes.use_days: {
                "type": Platform.SENSOR,
                "translation_key": "use_days",
                "name": "Use Days",
                "icon": "mdi:calendar",
                "unit": UnitOfTime.DAYS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            EDAttributes.salt_setting: {
                "type": Platform.SENSOR,
                "translation_key": "salt_setting",
                "name": "Salt Setting",
                "icon": "mdi:shaker-outline",
                "state_class": SensorStateClass.MEASUREMENT,
            },
            EDAttributes.water_consumption_big: {
                "type": Platform.SENSOR,
                "translation_key": "water_consumption_big",
                "name": "Water Consumption",
                "icon": "mdi:water-pump",
                "unit": UnitOfVolume.LITERS,
                "state_class": SensorStateClass.TOTAL_INCREASING,
                "suggested_display_precision": 2,
            },
            EDAttributes.water_consumption_average: {
                "type": Platform.SENSOR,
                "translation_key": "water_consumption_average",
                "name": "Water Consumption Average",
                "icon": "mdi:water",
                "unit": UnitOfVolume.LITERS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            EDAttributes.leak_water_protection_value: {
                "type": Platform.NUMBER,
                "translation_key": "leak_water_protection_value",
                "name": "Leak Water Protection Value",
                "icon": "mdi:water-alert-outline",
                "unit": UnitOfVolume.LITERS,
                "min": 0,
                "max": 2550,
                "step": 50,
            },
            EDAttributes.leak_water: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "leak_water",
                "name": "Leak Water",
                "icon": "mdi:water-alert",
                "device_class": BinarySensorDeviceClass.PROBLEM,
            },
            EDAttributes.rsj_stand_by: {
                "type": Platform.BINARY_SENSOR,
                "translation_key": "rsj_stand_by",
                "name": "Stand By",
                "icon": "mdi:power-standby",
            },
            EDAttributes.error: {
                "type": Platform.SENSOR,
                "translation_key": "error",
                "name": "Error",
                "icon": "mdi:alert-circle",
                "device_class": SensorDeviceClass.ENUM,
                # Soft water machine (deviceKind=9/10, subtype 703) error codes
                # Source: weex.js error dictionary "a"
                "options": {
                    0: "no_error",
                    1: "e1_position_not_found",
                    2: "e2_photo_sensor_no_signal",
                    3: "e3_motor_not_running",
                    4: "e4_wrong_position",
                    225: "e1_motor_fault",
                    229: "e5_communication_fault",
                    230: "e6_salt_sensor_fault",
                    231: "e7_chlorine_sterilization_fault",
                },
            },
        },
    },
    0xFA: {
        "name": "Fan",
        "entities": {
            "fan": {
                "type": Platform.FAN,
                "icon": "mdi:fan",
                "default": True,
            },
            FAAttributes.oscillation_mode: {
                "type": Platform.SELECT,
                "translation_key": "oscillation_mode",
                "name": "Oscillation Mode",
                "options": "oscillation_modes",
                "icon": "mdi:swap-horizontal-variant",
            },
            FAAttributes.oscillation_angle: {
                "type": Platform.SELECT,
                "translation_key": "oscillation_angle",
                "name": "Oscillation Angle",
                "options": "oscillation_angles",
                "icon": "mdi:pan-horizontal",
            },
            FAAttributes.tilting_angle: {
                "type": Platform.SELECT,
                "translation_key": "tilting_angle",
                "name": "Tilting Angle",
                "options": "tilting_angles",
                "icon": "mdi:pan-vertical",
            },
            FAAttributes.child_lock: {
                "type": Platform.LOCK,
                "translation_key": "child_lock",
                "name": "Child Lock",
            },
            FAAttributes.oscillate: {
                "type": Platform.SWITCH,
                "translation_key": "oscillate",
                "name": "Oscillate",
                "icon": "mdi:swap-horizontal-bold",
            },
            FAAttributes.power: {
                "type": Platform.SWITCH,
                "translation_key": "power",
                "name": "Power",
                "icon": "mdi:power",
            },
        },
    },
    0xFB: {
        "name": "Electric Heater",
        "entities": {
            "climate": {
                "type": Platform.CLIMATE,
                "icon": "mdi:air-conditioner",
                "default": True,
            },
            FBAttributes.child_lock: {
                "type": Platform.LOCK,
                "translation_key": "child_lock",
                "name": "Child Lock",
            },
            FBAttributes.heating_level: {
                "type": Platform.NUMBER,
                "translation_key": "heating_level",
                "name": "Heating Level",
                "icon": "mdi:fire",
                "max": 10,
                "min": 1,
                "step": 1,
            },
            FBAttributes.power: {
                "type": Platform.SWITCH,
                "translation_key": "power",
                "name": "Power",
                "icon": "mdi:power",
            },
            FBAttributes.current_temperature: {
                "type": Platform.SENSOR,
                "name": "Current Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
        },
    },
    0xFC: {
        "name": "Air Purifier",
        "entities": {
            FCAttributes.child_lock: {
                "type": Platform.LOCK,
                "translation_key": "child_lock",
                "name": "Child Lock",
            },
            FCAttributes.anion: {
                "type": Platform.SWITCH,
                "translation_key": "anion",
                "name": "Anion",
                "icon": "mdi:vanish",
            },
            FCAttributes.prompt_tone: {
                "type": Platform.SWITCH,
                "translation_key": "prompt_tone",
                "name": "Prompt Tone",
                "icon": "mdi:bell",
            },
            FCAttributes.power: {
                "type": Platform.SWITCH,
                "translation_key": "power",
                "name": "Power",
                "icon": "mdi:power",
            },
            FCAttributes.standby: {
                "type": Platform.SWITCH,
                "translation_key": "standby",
                "name": "Standby",
                "icon": "mdi:smoke-detector-variant",
            },
            FCAttributes.detect_mode: {
                "type": Platform.SELECT,
                "translation_key": "detect_mode",
                "name": "Detect Mode",
                "options": "detect_modes",
                "icon": "mdi:smoke-detector-variant",
            },
            FCAttributes.mode: {
                "type": Platform.SELECT,
                "translation_key": "mode",
                "name": "Mode",
                "options": "modes",
                "icon": "mdi:rotate-360",
            },
            FCAttributes.fan_speed: {
                "type": Platform.SELECT,
                "translation_key": "fan_speed",
                "name": "Fan Speed",
                "options": "fan_speeds",
                "icon": "mdi:fan",
            },
            FCAttributes.screen_display: {
                "type": Platform.SELECT,
                "translation_key": "screen_display",
                "name": "Screen Display",
                "options": "screen_displays",
                "icon": "mdi:television-ambient-light",
            },
            FCAttributes.pm25: {
                "type": Platform.SENSOR,
                "name": "PM 2.5",
                "device_class": SensorDeviceClass.PM25,
                "unit": CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            FCAttributes.tvoc: {
                "type": Platform.SENSOR,
                "translation_key": "tvoc",
                "name": "TVOC",
                "icon": "mdi:heat-wave",
                "unit": CONCENTRATION_PARTS_PER_MILLION,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            FCAttributes.hcho: {
                "type": Platform.SENSOR,
                "translation_key": "hcho",
                "name": "Methanal",
                "icon": "mdi:molecule",
                "unit": CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            FCAttributes.filter1_life: {
                "type": Platform.SENSOR,
                "translation_key": "filter1_life",
                "name": "Filter1 Life Level",
                "icon": "mdi:air-filter",
                "unit": PERCENTAGE,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            FCAttributes.filter2_life: {
                "type": Platform.SENSOR,
                "translation_key": "filter2_life",
                "name": "Filter2 Life Level",
                "icon": "mdi:air-filter",
                "unit": PERCENTAGE,
                "state_class": SensorStateClass.MEASUREMENT,
            },
        },
    },
    0xFD: {
        "name": "Humidifier",
        "entities": {
            Platform.HUMIDIFIER: {
                "type": Platform.HUMIDIFIER,
                "icon": "mdi:air-humidifier",
                "default": True,
            },
            FDAttributes.disinfect: {
                "type": Platform.SWITCH,
                "translation_key": "disinfect",
                "name": "Disinfect",
                "icon": "mdi:water-plus-outline",
            },
            FDAttributes.prompt_tone: {
                "type": Platform.SWITCH,
                "translation_key": "prompt_tone",
                "name": "Prompt Tone",
                "icon": "mdi:bell",
            },
            FDAttributes.power: {
                "type": Platform.SWITCH,
                "translation_key": "power",
                "name": "Power",
                "icon": "mdi:power",
            },
            FDAttributes.fan_speed: {
                "type": Platform.SELECT,
                "translation_key": "fan_speed",
                "name": "Fan Speed",
                "options": "fan_speeds",
                "icon": "mdi:fan",
            },
            FDAttributes.screen_display: {
                "type": Platform.SELECT,
                "translation_key": "screen_display",
                "name": "Screen Display",
                "options": "screen_displays",
                "icon": "mdi:television-ambient-light",
            },
            FDAttributes.current_humidity: {
                "type": Platform.SENSOR,
                "name": "Current Humidity",
                "device_class": SensorDeviceClass.HUMIDITY,
                "unit": PERCENTAGE,
                "state_class": SensorStateClass.MEASUREMENT,
            },
            FDAttributes.current_temperature: {
                "type": Platform.SENSOR,
                "name": "Current Temperature",
                "device_class": SensorDeviceClass.TEMPERATURE,
                "unit": UnitOfTemperature.CELSIUS,
                "state_class": SensorStateClass.MEASUREMENT,
            },
        },
    },
}
