Files
HomeAssistantVS/custom_components/midea_ac_lan/midea_devices.py
T

5771 lines
234 KiB
Python

"""Devices configuration for Midea Lan."""
from typing import Any
from homeassistant.components.binary_sensor import BinarySensorDeviceClass
from homeassistant.components.number import NumberDeviceClass
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,
UnitOfPressure,
UnitOfTemperature,
UnitOfTime,
UnitOfVolume,
UnitOfVolumeFlowRate,
)
from homeassistant.helpers.entity import EntityCategory
# 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 WORK_MODE_MAP as BF_WORK_MODE_MAP
from midealan.devices.bf import DeviceAttributes as BFAttributes
from midealan.devices.bf import FirePower as BFFirePower
from midealan.devices.c1 import DeviceAttributes as C1Attributes
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"
ED_TEA_BAR_SUBTYPES = [395]
ED_TEA_BAR_MODELS = ["63000622"]
ED_TEA_BAR_DEVICES = [(ED_TEA_BAR_MODELS[0], ED_TEA_BAR_SUBTYPES[0])]
ED_SOFT_WATER_SUBTYPES = [703]
BF_WORK_MODES = list(BF_WORK_MODE_MAP)
BF_FIRE_POWERS = list(BFFirePower.__members__)
BF_TEMPERATURES = list(range(251))
# C3 outdoor-unit telemetry attributes. Referenced by string so the entity
# table still imports on a midea-lan release that predates the parser support;
# the matching sensors carry a required_attribute guard and are skipped there.
C3_COMP_RUN_FREQ = "comp_run_freq"
C3_FAN_SPEED = "fan_speed"
C3_UNIT_MODE_RUN = "unit_mode_run"
C3_ODU_TARGET_FRE = "odu_target_fre"
C3_ODU_VOLTAGE = "odu_voltage"
C3_ODU_COMP_CURRENT = "odu_comp_current"
C3_EXV_CURRENT = "exv_current"
C3_FG_CAPACITY_NEED = "fg_capacity_need"
C3_PRESSURE_HIGH = "pressure_high"
C3_PRESSURE_LOW = "pressure_low"
C3_TEMP_T1 = "temp_t1"
C3_TEMP_T2 = "temp_t2"
C3_TEMP_T2B = "temp_t2b"
C3_TEMP_T3 = "temp_t3"
C3_TEMP_TP = "temp_tp"
C3_TEMP_TH = "temp_th"
C3_TEMP_TF = "temp_tf"
"""
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.degerming: {
"type": Platform.SWITCH,
"translation_key": "degerming",
"name": "Degerming",
"icon": "mdi:bacteria-outline",
},
ACAttributes.ieco: {
"type": Platform.SWITCH,
"translation_key": "ieco",
"name": "iECO",
"icon": "mdi:leaf",
},
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,
},
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,
},
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,
},
B1Attributes.mode: {
"type": Platform.SENSOR,
"translation_key": "mode",
"name": "Mode",
"icon": "mdi:chef-hat",
},
B1Attributes.target_temperature: {
"type": Platform.SENSOR,
"translation_key": "target_temperature",
"name": "Target Temperature",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"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,
},
},
},
0xB8: {
"name": "Robot Vacuum",
"entities": {
"work_status": {
"type": Platform.SENSOR,
"name": "Work Status",
"icon": "mdi:robot-vacuum",
},
"function_type": {
"type": Platform.SENSOR,
"name": "Function Type",
"icon": "mdi:function",
},
"control_type": {
"type": Platform.SENSOR,
"name": "Control Type",
"icon": "mdi:remote",
},
"area": {
"type": Platform.SENSOR,
"name": "Cleaned Area",
"icon": "mdi:floor-plan",
"state_class": SensorStateClass.MEASUREMENT,
},
"battery_percent": {
"type": Platform.SENSOR,
"name": "Battery",
"device_class": SensorDeviceClass.BATTERY,
"unit": PERCENTAGE,
"state_class": SensorStateClass.MEASUREMENT,
},
"work_time": {
"type": Platform.SENSOR,
"name": "Work Time",
"icon": "mdi:timer-outline",
"unit": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT,
},
"mop": {
"type": Platform.SENSOR,
"name": "Mop State",
"icon": "mdi:water",
},
"speed": {
"type": Platform.SENSOR,
"name": "Speed",
"icon": "mdi:speedometer",
},
"error_type": {
"type": Platform.SENSOR,
"name": "Error Type",
"icon": "mdi:alert-circle",
},
"error_desc": {
"type": Platform.SENSOR,
"name": "Error Description",
"icon": "mdi:alert",
},
"disturb_start_time": {
"type": Platform.SENSOR,
"name": "Do Not Disturb Start Time",
"icon": "mdi:weather-night",
"required_attribute": "disturb_start_time",
},
"disturb_end_time": {
"type": Platform.SENSOR,
"name": "Do Not Disturb End Time",
"icon": "mdi:weather-sunny",
"required_attribute": "disturb_end_time",
},
"side_brush_rest_time": {
"type": Platform.SENSOR,
"name": "Side Brush Remaining Time",
"icon": "mdi:broom",
"state_class": SensorStateClass.MEASUREMENT,
"required_attribute": "side_brush_rest_time",
},
"side_brush_life_time": {
"type": Platform.SENSOR,
"name": "Side Brush Life Time",
"icon": "mdi:broom",
"state_class": SensorStateClass.MEASUREMENT,
"required_attribute": "side_brush_life_time",
},
"filter_net_rest_time": {
"type": Platform.SENSOR,
"name": "Filter Remaining Time",
"icon": "mdi:air-filter",
"state_class": SensorStateClass.MEASUREMENT,
"required_attribute": "filter_net_rest_time",
},
"filter_net_life_time": {
"type": Platform.SENSOR,
"name": "Filter Life Time",
"icon": "mdi:air-filter",
"state_class": SensorStateClass.MEASUREMENT,
"required_attribute": "filter_net_life_time",
},
"roll_brush_rest_time": {
"type": Platform.SENSOR,
"name": "Roll Brush Remaining Time",
"icon": "mdi:brush",
"state_class": SensorStateClass.MEASUREMENT,
"required_attribute": "roll_brush_rest_time",
},
"roll_brush_life_time": {
"type": Platform.SENSOR,
"name": "Roll Brush Life Time",
"icon": "mdi:brush",
"state_class": SensorStateClass.MEASUREMENT,
"required_attribute": "roll_brush_life_time",
},
"have_reserve_task": {
"type": Platform.BINARY_SENSOR,
"name": "Reserve Task",
"icon": "mdi:calendar-clock",
},
"uv_switch": {
"type": Platform.BINARY_SENSOR,
"name": "UV Light",
"icon": "mdi:lightbulb-on-outline",
},
"wifi_switch": {
"type": Platform.BINARY_SENSOR,
"name": "Wi-Fi Light",
"icon": "mdi:wifi",
},
"voice_switch": {
"type": Platform.BINARY_SENSOR,
"name": "Voice Prompt",
"icon": "mdi:volume-high",
},
"command_source": {
"type": Platform.BINARY_SENSOR,
"name": "Command Source",
"icon": "mdi:flash",
},
"device_error": {
"type": Platform.BINARY_SENSOR,
"name": "Device Error",
"icon": "mdi:alert-circle",
"device_class": BinarySensorDeviceClass.PROBLEM,
},
"carpet_switch": {
"type": Platform.BINARY_SENSOR,
"name": "Carpet Detection",
"icon": "mdi:rug",
},
"board_communication_error": {
"type": Platform.BINARY_SENSOR,
"name": "Board Communication Error",
"icon": "mdi:alert-circle",
"device_class": BinarySensorDeviceClass.PROBLEM,
},
"laser_sensor_shelter": {
"type": Platform.BINARY_SENSOR,
"name": "Laser Sensor Shelter",
"icon": "mdi:alert-circle",
"device_class": BinarySensorDeviceClass.PROBLEM,
},
"laser_sensor_error": {
"type": Platform.BINARY_SENSOR,
"name": "Laser Sensor Error",
"icon": "mdi:alert-circle",
"device_class": BinarySensorDeviceClass.PROBLEM,
},
"disturb_switch": {
"type": Platform.BINARY_SENSOR,
"name": "Do Not Disturb",
"icon": "mdi:minus-circle",
"required_attribute": "disturb_switch",
},
"clean_mode": {
"type": Platform.SELECT,
"name": "Clean Mode",
"options": "clean_modes",
"icon": "mdi:robot-vacuum",
},
"fan_level": {
"type": Platform.SELECT,
"name": "Fan Level",
"options": "fan_levels",
"icon": "mdi:fan",
},
"water_level": {
"type": Platform.SELECT,
"name": "Water Level",
"options": "water_levels",
"icon": "mdi:water",
},
"speak_level": {
"type": Platform.SELECT,
"name": "Speak Level",
"options": "speak_levels",
"icon": "mdi:volume-high",
"required_attribute": "speak_level",
},
"move_direction": {
"type": Platform.SELECT,
"name": "Move Direction",
"options": "move_directions",
"icon": "mdi:arrow-decision",
},
"work_status_control": {
"type": Platform.SELECT,
"name": "Work Status Control",
"attribute": "work_status",
"options": "work_status_controls",
"icon": "mdi:robot-vacuum",
},
"voice_volume": {
"type": Platform.NUMBER,
"name": "Voice Volume",
"icon": "mdi:volume-high",
"min": 0,
"max": 100,
"step": 1,
"unit": PERCENTAGE,
},
},
},
0xBF: {
"name": "Microwave Steam Oven",
"entities": {
# - Switches (controls) -
BFAttributes.power: {
"type": Platform.SWITCH,
"translation_key": "power",
"name": "Power",
"icon": "mdi:power",
},
BFAttributes.child_lock: {
"type": Platform.SWITCH,
"translation_key": "child_lock",
"name": "Child Lock",
"icon": "mdi:lock",
},
BFAttributes.furnace_light: {
"type": Platform.SWITCH,
"translation_key": "furnace_light",
"name": "Furnace Light",
"icon": "mdi:lightbulb",
},
BFAttributes.hot_wind: {
"type": Platform.SWITCH,
"translation_key": "hot_wind",
"name": "Hot Wind",
"icon": "mdi:fan",
},
BFAttributes.ramadan: {
"type": Platform.SWITCH,
"translation_key": "ramadan",
"name": "Ramadan",
"icon": "mdi:star-crescent",
},
BFAttributes.turntable: {
"type": Platform.SWITCH,
"translation_key": "turntable",
"name": "Turntable",
"icon": "mdi:rotate-3d-variant",
},
"work_mode_select": {
"type": Platform.SELECT,
"attribute": BFAttributes.work_mode,
"translation_key": "work_mode",
"name": "Work Mode",
"icon": "mdi:pot-steam",
"options": BF_WORK_MODES,
},
"fire_power_select": {
"type": Platform.SELECT,
"attribute": BFAttributes.fire_power,
"translation_key": "fire_power",
"name": "Fire Power",
"icon": "mdi:fire",
"options": BF_FIRE_POWERS,
},
"temperature_select": {
"type": Platform.SELECT,
"attribute": BFAttributes.temperature,
"translation_key": "temperature",
"name": "Target Temperature",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"options": BF_TEMPERATURES,
"option_type": "int",
},
BFAttributes.pre_heat: {
"type": Platform.BINARY_SENSOR,
"translation_key": "pre_heat",
"name": "Pre Heat",
"icon": "mdi:fire",
},
# Binary sensors (status)
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,
"translation_key": "door",
"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.error: {
"type": Platform.BINARY_SENSOR,
"translation_key": "error_code",
"name": "Error Code",
"icon": "mdi:alert",
"device_class": BinarySensorDeviceClass.PROBLEM,
},
BFAttributes.flip_side: {
"type": Platform.BINARY_SENSOR,
"translation_key": "flip_side",
"name": "Flip Side",
"icon": "mdi:flip-horizontal",
"device_class": BinarySensorDeviceClass.RUNNING,
},
BFAttributes.reaction: {
"type": Platform.BINARY_SENSOR,
"translation_key": "reaction",
"name": "Reaction",
"icon": "mdi:bell-alert",
"device_class": BinarySensorDeviceClass.RUNNING,
},
BFAttributes.high_temperature_lock: {
"type": Platform.BINARY_SENSOR,
"translation_key": "high_temperature_lock",
"name": "High Temperature Lock",
"icon": "mdi:lock-alert",
"device_class": BinarySensorDeviceClass.LOCK,
},
BFAttributes.high_temperature_work: {
"type": Platform.BINARY_SENSOR,
"translation_key": "high_temperature_work",
"name": "High Temperature Work",
"icon": "mdi:thermometer-alert",
"device_class": BinarySensorDeviceClass.RUNNING,
},
BFAttributes.high_temperature: {
"type": Platform.BINARY_SENSOR,
"translation_key": "high_temperature",
"name": "High Temperature",
"icon": "mdi:thermometer",
"device_class": BinarySensorDeviceClass.HEAT,
},
BFAttributes.probe_mode: {
"type": Platform.BINARY_SENSOR,
"translation_key": "probe_mode",
"name": "Probe Mode",
"icon": "mdi:thermometer-probe",
},
BFAttributes.probe: {
"type": Platform.BINARY_SENSOR,
"translation_key": "probe",
"name": "Probe",
"icon": "mdi:thermometer-probe",
},
BFAttributes.clean_scale: {
"type": Platform.BINARY_SENSOR,
"translation_key": "clean_scale",
"name": "Clean Scale",
"icon": "mdi:shimmer",
"device_class": BinarySensorDeviceClass.RUNNING,
},
BFAttributes.clean_sink_ponding: {
"type": Platform.BINARY_SENSOR,
"translation_key": "clean_sink_ponding",
"name": "Clean Sink Ponding",
"icon": "mdi:water-alert",
"device_class": BinarySensorDeviceClass.PROBLEM,
},
BFAttributes.dissipate_heat: {
"type": Platform.BINARY_SENSOR,
"translation_key": "dissipate_heat",
"name": "Dissipate Heat",
"icon": "mdi:fan",
"device_class": BinarySensorDeviceClass.RUNNING,
},
# - Sensors (status/measurements) -
BFAttributes.status: {
"type": Platform.SENSOR,
"translation_key": "bf_status",
"name": "Status",
"icon": "mdi:information",
},
BFAttributes.work_mode: {
"type": Platform.SENSOR,
"translation_key": "work_mode",
"name": "Work Mode",
"icon": "mdi:pot-steam",
},
BFAttributes.fire_power: {
"type": Platform.SENSOR,
"translation_key": "fire_power",
"name": "Fire Power",
"icon": "mdi:fire",
},
BFAttributes.current_temperature: {
"type": Platform.SENSOR,
"translation_key": "current_temperature",
"name": "Current Temperature",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
BFAttributes.temperature: {
"type": Platform.SENSOR,
"translation_key": "temperature",
"name": "Target Temperature",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
BFAttributes.temperature_above: {
"type": Platform.SENSOR,
"translation_key": "temperature_above",
"name": "Temperature Above",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
BFAttributes.temperature_underside: {
"type": Platform.SENSOR,
"translation_key": "temperature_underside",
"name": "Temperature Underside",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
BFAttributes.cur_temperature_above: {
"type": Platform.SENSOR,
"translation_key": "cur_temperature_above",
"name": "Current Temperature Above",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
BFAttributes.cur_temperature_underside: {
"type": Platform.SENSOR,
"translation_key": "cur_temperature_underside",
"name": "Current Temperature Underside",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
BFAttributes.probe_temperature: {
"type": Platform.SENSOR,
"translation_key": "probe_temperature",
"name": "Probe Temperature",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
BFAttributes.cur_probe_temperature: {
"type": Platform.SENSOR,
"translation_key": "cur_probe_temperature",
"name": "Current Probe Temperature",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
BFAttributes.time_remaining: {
"type": Platform.SENSOR,
"translation_key": "time_remaining",
"name": "Time Remaining",
"icon": "mdi:progress-clock",
"unit": UnitOfTime.SECONDS,
"state_class": SensorStateClass.MEASUREMENT,
"timer": "down",
},
BFAttributes.steam_quantity: {
"type": Platform.SENSOR,
"translation_key": "steam_quantity",
"name": "Steam Quantity",
"icon": "mdi:water",
},
BFAttributes.weight: {
"type": Platform.SENSOR,
"translation_key": "weight",
"name": "Weight",
"icon": "mdi:scale",
"unit": "g",
"state_class": SensorStateClass.MEASUREMENT,
},
BFAttributes.people_number: {
"type": Platform.SENSOR,
"translation_key": "people_number",
"name": "People Number",
"icon": "mdi:account-group",
},
BFAttributes.totalstep: {
"type": Platform.SENSOR,
"translation_key": "totalstep",
"name": "Total Steps",
"icon": "mdi:format-list-numbered",
},
BFAttributes.stepnum: {
"type": Platform.SENSOR,
"translation_key": "stepnum",
"name": "Current Step",
"icon": "mdi:format-list-numbered",
},
BFAttributes.cloudmenuid: {
"type": Platform.SENSOR,
"translation_key": "cloudmenuid",
"name": "Cloud Menu ID",
"icon": "mdi:menu",
},
BFAttributes.execute: {
"type": Platform.SENSOR,
"translation_key": "execute_status",
"name": "Execute Status",
"icon": "mdi:check-circle",
},
},
},
0xC1: {
"name": "Electric Wall-hung Boiler",
"entities": {
"climate": {
"type": Platform.CLIMATE,
"icon": "mdi:radiator",
"default": True,
},
C1Attributes.power: {
"type": Platform.SWITCH,
"translation_key": "power",
"name": "Power",
"icon": "mdi:power",
"default": True,
},
C1Attributes.heating_target_temperature: {
"type": Platform.NUMBER,
"translation_key": "heating_target_temperature",
"name": "Heating Target Temperature",
"icon": "mdi:thermometer-lines",
"device_class": NumberDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"min": 30,
"max": 60,
"step": "temperature_step",
"default": True,
},
C1Attributes.heating_mode: {
"type": Platform.SELECT,
"translation_key": "heating_mode",
"name": "Heating Mode",
"icon": "mdi:radiator",
"options": "heating_modes",
"default": True,
},
C1Attributes.status: {
"type": Platform.SENSOR,
"translation_key": "status",
"name": "Status",
"icon": "mdi:radiator",
},
C1Attributes.error_code: {
"type": Platform.SENSOR,
"translation_key": "error_code",
"name": "Error Code",
"icon": "mdi:alert-circle",
},
C1Attributes.three_way_mode: {
"type": Platform.SENSOR,
"translation_key": "three_way_mode",
"name": "Three-way Mode",
"icon": "mdi:valve",
},
C1Attributes.heating_unit_type: {
"type": Platform.SENSOR,
"translation_key": "heating_unit_type",
"name": "Heating Unit Type",
"icon": "mdi:heating-coil",
},
C1Attributes.return_temperature: {
"type": Platform.SENSOR,
"translation_key": "return_temperature",
"name": "Return Temperature",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C1Attributes.current_temperature: {
"type": Platform.SENSOR,
"name": "Current Temperature",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C1Attributes.heating_temperature: {
"type": Platform.SENSOR,
"translation_key": "heating_temperature",
"name": "Heating Temperature",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C1Attributes.heating_gap_temperature: {
"type": Platform.SENSOR,
"translation_key": "heating_gap_temperature",
"name": "Heating Gap Temperature",
"icon": "mdi:thermometer-lines",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C1Attributes.user_mode_target_temperature: {
"type": Platform.SENSOR,
"translation_key": "user_mode_target_temperature",
"name": "User Mode Target Temperature",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C1Attributes.activity_mode_target_temperature: {
"type": Platform.SENSOR,
"translation_key": "activity_mode_target_temperature",
"name": "Activity Mode Target Temperature",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C1Attributes.sleep_mode_target_temperature: {
"type": Platform.SENSOR,
"translation_key": "sleep_mode_target_temperature",
"name": "Sleep Mode Target Temperature",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C1Attributes.last_time: {
"type": Platform.SENSOR,
"translation_key": "last_time",
"name": "Last Time",
"icon": "mdi:timer-outline",
"unit": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT,
},
C1Attributes.flow_volume: {
"type": Platform.SENSOR,
"translation_key": "flow_volume",
"name": "Flow Rate",
"icon": "mdi:water",
"device_class": SensorDeviceClass.VOLUME_FLOW_RATE,
"unit": UnitOfVolumeFlowRate.LITERS_PER_MINUTE,
"state_class": SensorStateClass.MEASUREMENT,
},
C1Attributes.standby: {
"type": Platform.BINARY_SENSOR,
"translation_key": "standby",
"name": "Standby",
"icon": "mdi:power-standby",
"device_class": BinarySensorDeviceClass.RUNNING,
},
C1Attributes.heating: {
"type": Platform.BINARY_SENSOR,
"translation_key": "heating",
"name": "Heating",
"icon": "mdi:heat-wave",
"device_class": BinarySensorDeviceClass.RUNNING,
},
C1Attributes.warm_power: {
"type": Platform.BINARY_SENSOR,
"translation_key": "warm_power",
"name": "Warm Power",
"icon": "mdi:radiator",
"device_class": BinarySensorDeviceClass.RUNNING,
},
C1Attributes.cold_power: {
"type": Platform.BINARY_SENSOR,
"translation_key": "cold_power",
"name": "Cold Power",
"icon": "mdi:snowflake",
"device_class": BinarySensorDeviceClass.RUNNING,
},
C1Attributes.sleep_power: {
"type": Platform.BINARY_SENSOR,
"translation_key": "sleep_power",
"name": "Sleep Power",
"icon": "mdi:sleep",
"device_class": BinarySensorDeviceClass.RUNNING,
},
C1Attributes.pump_on: {
"type": Platform.BINARY_SENSOR,
"translation_key": "pump_on",
"name": "Pump On",
"icon": "mdi:pump",
"device_class": BinarySensorDeviceClass.RUNNING,
},
C1Attributes.fault: {
"type": Platform.BINARY_SENSOR,
"translation_key": "fault",
"name": "Fault",
"icon": "mdi:alert",
"device_class": BinarySensorDeviceClass.PROBLEM,
},
},
},
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": "dhw_disinfect",
"name": "DHW - 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",
"default": False,
},
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,
"translation_key": "temp_tw_in",
"name": "Water Inlet Temperature",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C3Attributes.temp_tw_out: {
"type": Platform.SENSOR,
"translation_key": "temp_tw_out",
"name": "Water Outlet Temperature",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
# ---- Newly exposed C3 attributes (device capability + telemetry) ----
C3Attributes.holiday_on: {
"type": Platform.SWITCH,
"translation_key": "holiday_on",
"name": "Holiday Mode",
"icon": "mdi:palm-tree",
},
C3Attributes.status_cool: {
"type": Platform.BINARY_SENSOR,
"translation_key": "status_cool",
"name": "Cooling status",
"icon": "mdi:snowflake",
"device_class": BinarySensorDeviceClass.RUNNING,
},
C3Attributes.eco_function_state: {
"type": Platform.BINARY_SENSOR,
"translation_key": "eco_function_state",
"name": "ECO Function",
"icon": "mdi:leaf",
"device_class": BinarySensorDeviceClass.RUNNING,
},
C3Attributes.eco_timer_state: {
"type": Platform.BINARY_SENSOR,
"translation_key": "eco_timer_state",
"name": "ECO Timer",
"icon": "mdi:leaf-clock",
"device_class": BinarySensorDeviceClass.RUNNING,
},
C3Attributes.heat: {
"type": Platform.BINARY_SENSOR,
"translation_key": "heat_capability",
"name": "Heat Capability",
"icon": "mdi:fire",
},
C3Attributes.cool: {
"type": Platform.BINARY_SENSOR,
"translation_key": "cool_capability",
"name": "Cool Capability",
"icon": "mdi:snowflake",
},
C3Attributes.dhw: {
"type": Platform.BINARY_SENSOR,
"translation_key": "dhw_capability",
"name": "DHW Capability",
"icon": "mdi:water-boiler",
},
C3Attributes.double_zone: {
"type": Platform.BINARY_SENSOR,
"translation_key": "double_zone",
"name": "Double Zone Enabled",
"icon": "mdi:home-floor-2",
},
C3Attributes.room_thermal_support: {
"type": Platform.BINARY_SENSOR,
"translation_key": "room_thermal_support",
"name": "Room Thermostat Support",
"icon": "mdi:thermostat",
},
C3Attributes.room_thermal_state: {
"type": Platform.BINARY_SENSOR,
"translation_key": "room_thermal_state",
"name": "Room Thermostat State",
"icon": "mdi:thermostat",
"device_class": BinarySensorDeviceClass.RUNNING,
},
C3Attributes.time_set: {
"type": Platform.BINARY_SENSOR,
"translation_key": "time_set",
"name": "Time Set",
"icon": "mdi:clock-check",
},
C3Attributes.disinfect_run: {
"type": Platform.BINARY_SENSOR,
"translation_key": "disinfect_run",
"name": "Disinfect Running",
"icon": "mdi:water-plus",
"device_class": BinarySensorDeviceClass.RUNNING,
},
C3Attributes.remote_onoff: {
"type": Platform.BINARY_SENSOR,
"translation_key": "remote_onoff",
"name": "Remote On/Off",
"icon": "mdi:remote",
},
C3Attributes.tbh_control: {
"type": Platform.BINARY_SENSOR,
"translation_key": "tbh_control",
"name": "TBH Control",
"icon": "mdi:water-boiler",
},
C3Attributes.sys_energy_ana_en: {
"type": Platform.BINARY_SENSOR,
"translation_key": "sys_energy_ana_en",
"name": "System Energy Analysis Enabled",
"icon": "mdi:chart-line",
},
C3Attributes.hmi_energy_ana_set_en: {
"type": Platform.BINARY_SENSOR,
"translation_key": "hmi_energy_ana_set_en",
"name": "HMI Energy Analysis Set Enabled",
"icon": "mdi:chart-line",
},
# NOTE: comp_run_freq, fan_speed, unit_mode_run, temp_t1, temp_t2,
# temp_t2b and temp_t3 are provided by upstream's required_attribute
# -guarded telemetry block further below (from midea_ac_lan main),
# which also fixes unit_mode_run's options (int-keyed, matching the
# library's actual int return type) - do not re-add direct
# C3Attributes references for them here.
C3Attributes.temp_t4: {
"type": Platform.SENSOR,
"translation_key": "temp_t4",
"name": "Outdoor Ambient Temperature (T4)",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C3Attributes.temp_t5: {
"type": Platform.SENSOR,
"translation_key": "temp_t5",
"name": "Water Tank Temperature (T5)",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C3Attributes.temp_ta: {
"type": Platform.SENSOR,
"translation_key": "temp_ta",
"name": "Room Ambient Temperature (Ta)",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
# NOTE: temp_tp and temp_th also come from upstream's guarded block.
C3Attributes.temp_tw2: {
"type": Platform.SENSOR,
"translation_key": "temp_tw2",
"name": "Zone 2 Outlet Water Temperature (Tw2)",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C3Attributes.temp_tb_t1: {
"type": Platform.SENSOR,
"translation_key": "temp_tb_t1",
"name": "Buffer Tank Upper Temperature (Tbt1)",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C3Attributes.temp_tb_t2: {
"type": Platform.SENSOR,
"translation_key": "temp_tb_t2",
"name": "Buffer Tank Lower Temperature (Tbt2)",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C3Attributes.temp_tsolar: {
"type": Platform.SENSOR,
"translation_key": "temp_tsolar",
"name": "Solar Temperature (Tsolar)",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
# NOTE: pressure_high and pressure_low also come from upstream's
# guarded block.
# midea-lan attribute name has an upstream typo (water_flower)
C3Attributes.water_flower: {
"type": Platform.SENSOR,
"translation_key": "water_flow",
"name": "Water Flow Rate",
"icon": "mdi:water-pump",
"device_class": SensorDeviceClass.VOLUME_FLOW_RATE,
# parser scales to m3/h (raw/100); verified against wired HMI
"unit": UnitOfVolumeFlowRate.CUBIC_METERS_PER_HOUR,
"state_class": SensorStateClass.MEASUREMENT,
},
C3Attributes.water_pressure: {
"type": Platform.SENSOR,
"translation_key": "water_pressure",
"name": "Water Pressure",
"device_class": SensorDeviceClass.PRESSURE,
"unit": UnitOfPressure.KPA,
"state_class": SensorStateClass.MEASUREMENT,
},
# NOTE: exv_current (translation_key "exv_current" upstream, was
# "exv_opening") and odu_voltage also come from upstream's guarded
# block.
C3Attributes.dc_current: {
"type": Platform.SENSOR,
"translation_key": "dc_current",
"name": "DC Current",
"device_class": SensorDeviceClass.CURRENT,
"unit": UnitOfElectricCurrent.AMPERE,
"state_class": SensorStateClass.MEASUREMENT,
},
C3Attributes.dc_bus_voltage: {
"type": Platform.SENSOR,
"translation_key": "dc_bus_voltage",
"name": "DC Bus Voltage",
"device_class": SensorDeviceClass.VOLTAGE,
"unit": UnitOfElectricPotential.VOLT,
"state_class": SensorStateClass.MEASUREMENT,
},
# NOTE: instant_power (kW, /100 scaled) never made it into
# midea-lan; main exposes the same two raw bytes unscaled as
# current_unit_capacity. Surfaced as a raw diagnostic until a
# future lib PR adds the /100 scaling.
C3Attributes.current_unit_capacity: {
"type": Platform.SENSOR,
"translation_key": "current_unit_capacity",
"name": "Current Unit Capacity (raw)",
"icon": "mdi:heat-wave",
"entity_category": EntityCategory.DIAGNOSTIC,
"state_class": SensorStateClass.MEASUREMENT,
},
C3Attributes.instant_power0: {
"type": Platform.SENSOR,
"translation_key": "instant_power0",
"name": "Power Consumption",
"device_class": SensorDeviceClass.POWER,
# midea-lan returns the raw 16-bit value in watts (unscaled)
"unit": UnitOfPower.WATT,
"state_class": SensorStateClass.MEASUREMENT,
},
C3Attributes.instant_renew_power0: {
"type": Platform.SENSOR,
"translation_key": "instant_renew_power0",
"name": "Renewable Heating Capacity",
"device_class": SensorDeviceClass.POWER,
"unit": UnitOfPower.WATT,
"state_class": SensorStateClass.MEASUREMENT,
},
# instant_cop (thermal capacity / electrical draw) is not computed
# by midea-lan yet - deferred until a future lib PR adds it.
# --- Pump / valve statuses (LOAD_OUTPUT bitmap, X10 byte[33]) ---
C3Attributes.pump_i_running: {
"type": Platform.BINARY_SENSOR,
"translation_key": "pump_i_running",
"name": "Pump Interior (Pump_I)",
"icon": "mdi:pump",
"device_class": BinarySensorDeviceClass.RUNNING,
},
C3Attributes.pump_o_running: {
"type": Platform.BINARY_SENSOR,
"translation_key": "pump_o_running",
"name": "Pump Outdoor (Pump_O)",
"icon": "mdi:pump",
"device_class": BinarySensorDeviceClass.RUNNING,
},
C3Attributes.pump_d_running: {
"type": Platform.BINARY_SENSOR,
"translation_key": "pump_d_running",
"name": "Pump D (Pump_D)",
"icon": "mdi:pump",
"device_class": BinarySensorDeviceClass.RUNNING,
},
C3Attributes.pump_c_running: {
"type": Platform.BINARY_SENSOR,
"translation_key": "pump_c_running",
"name": "Pump C - Zone 2 (Pump_C, reg129 BIT8)",
"icon": "mdi:pump",
"device_class": BinarySensorDeviceClass.RUNNING,
},
C3Attributes.pump_s_running: {
"type": Platform.BINARY_SENSOR,
"translation_key": "pump_s_running",
"name": "Pump S - Solar (Pump_S, reg129 BIT11)",
"icon": "mdi:pump",
"device_class": BinarySensorDeviceClass.RUNNING,
"entity_category": EntityCategory.DIAGNOSTIC,
"entity_registry_enabled_default": False,
},
C3Attributes.sv1_open: {
"type": Platform.BINARY_SENSOR,
"translation_key": "sv1_open",
"name": "3-way Valve DHW (SV1)",
"icon": "mdi:valve",
"device_class": BinarySensorDeviceClass.OPENING,
},
C3Attributes.sv2_open: {
"type": Platform.BINARY_SENSOR,
"translation_key": "sv2_open",
"name": "Heating Valve (SV2)",
"icon": "mdi:valve",
"device_class": BinarySensorDeviceClass.OPENING,
},
C3Attributes.load_output_tbh: {
"type": Platform.BINARY_SENSOR,
"translation_key": "load_output_tbh",
"name": "Tank Backup Heater (TBH)",
"icon": "mdi:radiator",
"device_class": BinarySensorDeviceClass.RUNNING,
},
C3Attributes.ibh1_on: {
"type": Platform.BINARY_SENSOR,
"translation_key": "ibh1_on",
"name": "Electric Heater IBH1",
"icon": "mdi:radiator",
"device_class": BinarySensorDeviceClass.RUNNING,
},
C3Attributes.ibh2_on: {
"type": Platform.BINARY_SENSOR,
"translation_key": "ibh2_on",
"name": "Electric Heater IBH2",
"icon": "mdi:radiator",
"device_class": BinarySensorDeviceClass.RUNNING,
},
C3Attributes.sv3_open: {
"type": Platform.BINARY_SENSOR,
"translation_key": "sv3_open",
"name": "3-way Valve SV3",
"icon": "mdi:valve",
"device_class": BinarySensorDeviceClass.OPENING,
"entity_category": EntityCategory.DIAGNOSTIC,
"entity_registry_enabled_default": False,
},
C3Attributes.crankcase_heater_on: {
"type": Platform.BINARY_SENSOR,
"translation_key": "crankcase_heater_on",
"name": "Crankcase Heater",
"icon": "mdi:heating-coil",
"device_class": BinarySensorDeviceClass.RUNNING,
"entity_category": EntityCategory.DIAGNOSTIC,
"entity_registry_enabled_default": False,
},
C3Attributes.alarm_on: {
"type": Platform.BINARY_SENSOR,
"translation_key": "alarm_on",
"name": "Alarm (Reg 129 BIT12)",
"icon": "mdi:alert",
"device_class": BinarySensorDeviceClass.PROBLEM,
"entity_category": EntityCategory.DIAGNOSTIC,
"entity_registry_enabled_default": False,
},
C3Attributes.aux_heat_on: {
"type": Platform.BINARY_SENSOR,
"translation_key": "aux_heat_on",
"name": "Auxiliary Heat Source",
"icon": "mdi:fire",
"device_class": BinarySensorDeviceClass.RUNNING,
"entity_category": EntityCategory.DIAGNOSTIC,
"entity_registry_enabled_default": False,
},
# ---- New (Aug-18): compressor telemetry ----
C3Attributes.compressor_on: {
"type": Platform.BINARY_SENSOR,
"translation_key": "compressor_on",
"name": "Compressor Running",
"icon": "mdi:engine",
"device_class": BinarySensorDeviceClass.RUNNING,
},
# compressor_status_raw superseded by the verified compressor_on
# binary sensor above; no raw diagnostic needed.
# raw_b31, water_circuit_active (b31 bit6) and unit_demand (b31
# bit5) were this PR's own unverified guesses at the run-state
# byte. midea-lan#83 decoded that byte against the Modbus doc and
# real hardware instead, replacing it with named, verified flags
# (cool_run, heat_run, dhw_run, fact_req_solar_on,
# fact_req_ther_cool_on, fact_req_ther_heat_on, edge_version_type).
# None of those guesses survived, so nothing to alias here; the
# verified flags can be added as their own entities in a follow-up.
# raw_b65 has no Modbus register match and was dropped from the
# library entirely (midea-lan#46 discussion) - no replacement.
# odu_comp_current is provided by upstream's required_attribute
# -guarded telemetry block below.
C3Attributes.room_rel_hum: {
"type": Platform.SENSOR,
"translation_key": "room_rel_hum",
"name": "Room Relative Humidity",
"device_class": SensorDeviceClass.HUMIDITY,
"unit": PERCENTAGE,
"state_class": SensorStateClass.MEASUREMENT,
},
C3Attributes.comp_total_run_time: {
"type": Platform.SENSOR,
"translation_key": "comp_total_run_time",
"name": "Compressor Total Run Time",
"icon": "mdi:timer-outline",
"device_class": SensorDeviceClass.DURATION,
"unit": UnitOfTime.HOURS,
"state_class": SensorStateClass.TOTAL_INCREASING,
},
C3Attributes.error_code_description: {
"type": Platform.SENSOR,
"translation_key": "error_code_description",
"name": "Error Description",
"icon": "mdi:alert-circle-outline",
},
# renamed upstream in midea-lan#81 (HMI serial, not Wi-Fi module's)
C3Attributes.hmi_sn_code: {
"type": Platform.SENSOR,
"translation_key": "hmi_sn_code",
"name": "HMI Serial",
"icon": "mdi:identifier",
},
# --- Additional low-level diagnostic sensors ---
C3Attributes.hydbox_subtype: {
"type": Platform.SENSOR,
"translation_key": "hydbox_subtype",
"name": "Hydrobox Subtype",
"icon": "mdi:identifier",
},
C3Attributes.hydrobox_capacity: {
"type": Platform.SENSOR,
"translation_key": "hydrobox_capacity",
"name": "Hydrobox Capacity",
"icon": "mdi:heat-pump-outline",
},
# IDU / ODU firmware versions - parsed from X10 telemetry
# bytes 94/95 (verified against wired HMI: V14 / V64).
# SW version strings including build date (parsed from X10 tail).
C3Attributes.idu_software_version_str: {
"type": Platform.SENSOR,
"translation_key": "idu_software_version_str",
"name": "IDU Software Version (with date)",
"icon": "mdi:chip",
},
C3Attributes.odu_software_version_str: {
"type": Platform.SENSOR,
"translation_key": "odu_software_version_str",
"name": "ODU Software Version (with date)",
"icon": "mdi:chip",
},
C3Attributes.machine_type: {
"type": Platform.SENSOR,
"translation_key": "machine_type",
"name": "Machine Type",
"icon": "mdi:identifier",
},
C3Attributes.odu_model: {
"type": Platform.SENSOR,
"translation_key": "odu_model",
"name": "Outdoor Unit Model",
"icon": "mdi:identifier",
},
# odu_target_fre is provided by upstream's required_attribute
# -guarded telemetry block below.
# Outdoor-unit runtime telemetry. Parsed by midea-lan since the
# MSG_TYPE_UP_UNITPARA / X10 UnitPara work; older library releases
# omit these keys, so each carries a required_attribute guard.
C3_COMP_RUN_FREQ: {
"type": Platform.SENSOR,
"required_attribute": C3_COMP_RUN_FREQ,
"translation_key": "comp_run_freq",
"name": "Compressor Frequency",
"device_class": SensorDeviceClass.FREQUENCY,
"unit": UnitOfFrequency.HERTZ,
"state_class": SensorStateClass.MEASUREMENT,
},
# fg_capacity_need and temp_tf are provided by upstream's
# required_attribute-guarded telemetry block below.
C3_FAN_SPEED: {
"type": Platform.SENSOR,
"required_attribute": C3_FAN_SPEED,
"translation_key": "outdoor_fan_speed",
"name": "Outdoor Fan Speed",
"icon": "mdi:fan",
"unit": REVOLUTIONS_PER_MINUTE,
"state_class": SensorStateClass.MEASUREMENT,
},
C3_UNIT_MODE_RUN: {
"type": Platform.SENSOR,
"required_attribute": C3_UNIT_MODE_RUN,
"translation_key": "unit_mode_run",
"name": "Unit Run Mode",
"icon": "mdi:heat-pump",
"device_class": SensorDeviceClass.ENUM,
# Values from the C3 lua unitTable (T_0000_C3_171H120F_2023062601).
"options": {0: "off", 1: "auto", 2: "cool", 3: "heat", 5: "dhw"},
},
C3_ODU_TARGET_FRE: {
"type": Platform.SENSOR,
"required_attribute": C3_ODU_TARGET_FRE,
"translation_key": "odu_target_fre",
"name": "Target Compressor Frequency",
"device_class": SensorDeviceClass.FREQUENCY,
"unit": UnitOfFrequency.HERTZ,
"state_class": SensorStateClass.MEASUREMENT,
},
C3_ODU_VOLTAGE: {
"type": Platform.SENSOR,
"required_attribute": C3_ODU_VOLTAGE,
"translation_key": "odu_voltage",
"name": "Outdoor Unit Voltage",
"device_class": SensorDeviceClass.VOLTAGE,
"unit": UnitOfElectricPotential.VOLT,
"state_class": SensorStateClass.MEASUREMENT,
},
C3_ODU_COMP_CURRENT: {
"type": Platform.SENSOR,
"required_attribute": C3_ODU_COMP_CURRENT,
"translation_key": "odu_comp_current",
"name": "Compressor Current",
"device_class": SensorDeviceClass.CURRENT,
"unit": UnitOfElectricCurrent.AMPERE,
"state_class": SensorStateClass.MEASUREMENT,
},
C3_EXV_CURRENT: {
"type": Platform.SENSOR,
"required_attribute": C3_EXV_CURRENT,
"translation_key": "exv_current",
"name": "Electronic Expansion Valve Opening",
"icon": "mdi:valve",
"unit": "steps",
"state_class": SensorStateClass.MEASUREMENT,
},
C3_FG_CAPACITY_NEED: {
"type": Platform.SENSOR,
"required_attribute": C3_FG_CAPACITY_NEED,
"translation_key": "fg_capacity_need",
"name": "Capacity Demand",
"icon": "mdi:gauge",
"state_class": SensorStateClass.MEASUREMENT,
},
C3_PRESSURE_HIGH: {
"type": Platform.SENSOR,
"required_attribute": C3_PRESSURE_HIGH,
"translation_key": "pressure_high",
"name": "Refrigerant Pressure (High Side)",
"device_class": SensorDeviceClass.PRESSURE,
"unit": UnitOfPressure.KPA,
"state_class": SensorStateClass.MEASUREMENT,
},
C3_PRESSURE_LOW: {
"type": Platform.SENSOR,
"required_attribute": C3_PRESSURE_LOW,
"translation_key": "pressure_low",
"name": "Refrigerant Pressure (Low Side)",
"device_class": SensorDeviceClass.PRESSURE,
"unit": UnitOfPressure.KPA,
"state_class": SensorStateClass.MEASUREMENT,
},
C3_TEMP_T1: {
"type": Platform.SENSOR,
"required_attribute": C3_TEMP_T1,
"translation_key": "temp_t1",
"name": "Temperature Sensor T1",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C3_TEMP_T2: {
"type": Platform.SENSOR,
"required_attribute": C3_TEMP_T2,
"translation_key": "temp_t2",
"name": "Plate Heat Exchanger Temperature (T2)",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C3_TEMP_T2B: {
"type": Platform.SENSOR,
"required_attribute": C3_TEMP_T2B,
"translation_key": "temp_t2b",
"name": "Plate Heat Exchanger Outlet Temperature (T2B)",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C3_TEMP_T3: {
"type": Platform.SENSOR,
"required_attribute": C3_TEMP_T3,
"translation_key": "temp_t3",
"name": "Outdoor Coil Temperature (T3)",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C3_TEMP_TP: {
"type": Platform.SENSOR,
"required_attribute": C3_TEMP_TP,
"translation_key": "temp_tp",
"name": "Discharge Pipe Temperature (TP)",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C3_TEMP_TH: {
"type": Platform.SENSOR,
"required_attribute": C3_TEMP_TH,
"translation_key": "temp_th",
"name": "Suction Temperature (TH)",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C3_TEMP_TF: {
"type": Platform.SENSOR,
"required_attribute": C3_TEMP_TF,
"translation_key": "temp_tf",
"name": "Power Module Temperature (TF)",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C3Attributes.t5s: {
"type": Platform.SENSOR,
"translation_key": "t5s",
"name": "Tank Setpoint (T5s)",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C3Attributes.tas: {
"type": Platform.SENSOR,
"translation_key": "tas",
"name": "Room Ambient Setpoint (Tas)",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C3Attributes.idu_t1s1: {
"type": Platform.SENSOR,
"translation_key": "idu_t1s1",
"name": "Indoor Unit T1 Setpoint 1",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C3Attributes.idu_t1s2: {
"type": Platform.SENSOR,
"translation_key": "idu_t1s2",
"name": "Indoor Unit T1 Setpoint 2",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C3Attributes.zone1_temp_set: {
"type": Platform.SENSOR,
"translation_key": "zone1_temp_set",
"name": "Zone 1 Temperature Setpoint (echo)",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C3Attributes.zone2_temp_set: {
"type": Platform.SENSOR,
"translation_key": "zone2_temp_set",
"name": "Zone 2 Temperature Setpoint (echo)",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
C3Attributes.disinfect_set_weekday: {
"type": Platform.SENSOR,
"translation_key": "disinfect_set_weekday",
"name": "Disinfect Scheduled Weekday",
"icon": "mdi:calendar-week",
},
C3Attributes.disinfect_start_hour: {
"type": Platform.SENSOR,
"translation_key": "disinfect_start_hour",
"name": "DHW - Disinfect Start Hour",
"icon": "mdi:clock-outline",
},
C3Attributes.disinfect_start_minutes: {
"type": Platform.SENSOR,
"translation_key": "disinfect_start_minutes",
"name": "DHW - Disinfect Start Minute",
"icon": "mdi:clock-outline",
},
},
},
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.disinfect: {
"type": Platform.SWITCH,
"translation_key": "disinfect",
"name": "Disinfect",
"icon": "mdi:bacteria",
"required_attribute": CDAttributes.disinfect,
},
"schedule_mode": {
"type": Platform.NUMBER,
"translation_key": "schedule_mode",
"name": "Schedule Mode",
"min": 0,
"max": 2,
"step": 1,
"icon": "mdi:calendar-clock",
"required_attribute": "schedule_mode",
},
"max_temperature_upper_limit": {
"type": Platform.SENSOR,
"translation_key": "max_temperature_upper_limit",
"name": "Maximum Temperature Upper Limit",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
"required_attribute": "max_temperature_upper_limit",
},
"max_temperature_lower_limit": {
"type": Platform.SENSOR,
"translation_key": "max_temperature_lower_limit",
"name": "Maximum Temperature Lower Limit",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
"required_attribute": "max_temperature_lower_limit",
},
"disinfection_temperature_upper_limit": {
"type": Platform.SENSOR,
"translation_key": "disinfection_temperature_upper_limit",
"name": "Disinfection Temperature Upper Limit",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
"required_attribute": "disinfection_temperature_upper_limit",
},
"disinfection_temperature_lower_limit": {
"type": Platform.SENSOR,
"translation_key": "disinfection_temperature_lower_limit",
"name": "Disinfection Temperature Lower Limit",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
"required_attribute": "disinfection_temperature_lower_limit",
},
"dr_enable": {
"type": Platform.BINARY_SENSOR,
"translation_key": "dr_enable",
"name": "Demand Response",
"icon": "mdi:transmission-tower-import",
"required_attribute": "dr_enable",
},
"dr_option": {
"type": Platform.SENSOR,
"translation_key": "dr_option",
"name": "Demand Response Option",
"icon": "mdi:transmission-tower-import",
"required_attribute": "dr_option",
},
"electric_rod_exception": {
"type": Platform.BINARY_SENSOR,
"translation_key": "electric_rod_exception",
"name": "Electric Heater Fault",
"icon": "mdi:heating-coil",
"device_class": BinarySensorDeviceClass.PROBLEM,
"required_attribute": "electric_rod_exception",
},
"remaining_hot_water_max": {
"type": Platform.SENSOR,
"translation_key": "remaining_hot_water_max",
"name": "Maximum Remaining Hot Water",
"icon": "mdi:water-thermometer-outline",
"required_attribute": "remaining_hot_water_max",
},
"force_e_heating_status": {
"type": Platform.SENSOR,
"translation_key": "force_e_heating_status",
"name": "Forced Electric Heating Status",
"icon": "mdi:heating-coil",
"required_attribute": "force_e_heating_status",
},
"ac_heater_priority": {
"type": Platform.BINARY_SENSOR,
"translation_key": "ac_heater_priority",
"name": "Heat Pump Priority",
"icon": "mdi:heat-pump-outline",
"required_attribute": "ac_heater_priority",
},
"high_temp_reminder": {
"type": Platform.BINARY_SENSOR,
"translation_key": "high_temp_reminder",
"name": "High Temperature Reminder",
"icon": "mdi:thermometer-alert",
"required_attribute": "high_temp_reminder",
},
"new_version_water_heater": {
"type": Platform.BINARY_SENSOR,
"translation_key": "new_version_water_heater",
"name": "Extended Water Heater Protocol",
"icon": "mdi:chip",
"required_attribute": "new_version_water_heater",
},
"holiday_max": {
"type": Platform.SENSOR,
"translation_key": "holiday_max",
"name": "Maximum Holiday Duration",
"unit": UnitOfTime.DAYS,
"icon": "mdi:calendar-range",
"required_attribute": "holiday_max",
},
"holiday_min": {
"type": Platform.SENSOR,
"translation_key": "holiday_min",
"name": "Minimum Holiday Duration",
"unit": UnitOfTime.DAYS,
"icon": "mdi:calendar-range",
"required_attribute": "holiday_min",
},
"timer_step_gap": {
"type": Platform.SENSOR,
"translation_key": "timer_step_gap",
"name": "Timer Step",
"unit": UnitOfTime.MINUTES,
"icon": "mdi:timer-cog-outline",
"required_attribute": "timer_step_gap",
},
"heat_recovery_status": {
"type": Platform.BINARY_SENSOR,
"translation_key": "heat_recovery_status",
"name": "Heat Recovery",
"icon": "mdi:heat-wave",
"required_attribute": "heat_recovery_status",
},
"holiday_mode": {
"type": Platform.BINARY_SENSOR,
"translation_key": "holiday_mode",
"name": "Holiday Mode",
"icon": "mdi:beach",
"required_attribute": "holiday_mode",
},
"hybrid_motion_mode": {
"type": Platform.BINARY_SENSOR,
"translation_key": "hybrid_motion_mode",
"name": "Hybrid Motion Mode",
"icon": "mdi:heat-pump-outline",
"required_attribute": "hybrid_motion_mode",
},
"support_boost_mode": {
"type": Platform.BINARY_SENSOR,
"translation_key": "support_boost_mode",
"name": "Boost Mode Support",
"icon": "mdi:rocket-launch-outline",
"required_attribute": "support_boost_mode",
},
"support_silent_mode": {
"type": Platform.BINARY_SENSOR,
"translation_key": "support_silent_mode",
"name": "Silent Mode Support",
"icon": "mdi:volume-mute",
"required_attribute": "support_silent_mode",
},
"support_remaining_hot_water": {
"type": Platform.BINARY_SENSOR,
"translation_key": "support_remaining_hot_water",
"name": "Remaining Hot Water Support",
"icon": "mdi:water-thermometer-outline",
"required_attribute": "support_remaining_hot_water",
},
"support_electric_mode": {
"type": Platform.BINARY_SENSOR,
"translation_key": "support_electric_mode",
"name": "Electric Mode Support",
"icon": "mdi:heating-coil",
"required_attribute": "support_electric_mode",
},
"support_auto_disinfect": {
"type": Platform.BINARY_SENSOR,
"translation_key": "support_auto_disinfect",
"name": "Automatic Disinfection Support",
"icon": "mdi:bacteria-outline",
"required_attribute": "support_auto_disinfect",
},
"support_force_e_heating": {
"type": Platform.BINARY_SENSOR,
"translation_key": "support_force_e_heating",
"name": "Forced Electric Heating Support",
"icon": "mdi:heating-coil",
"required_attribute": "support_force_e_heating",
},
"support_tou": {
"type": Platform.BINARY_SENSOR,
"translation_key": "support_tou",
"name": "Time-of-use Support",
"icon": "mdi:calendar-clock",
"required_attribute": "support_tou",
},
"support_ac_heater_priority": {
"type": Platform.BINARY_SENSOR,
"translation_key": "support_ac_heater_priority",
"name": "Heat Pump Priority Support",
"icon": "mdi:heat-pump-outline",
"required_attribute": "support_ac_heater_priority",
},
"support_heat_recovery": {
"type": Platform.BINARY_SENSOR,
"translation_key": "support_heat_recovery",
"name": "Heat Recovery Support",
"icon": "mdi:heat-wave",
"required_attribute": "support_heat_recovery",
},
"support_heat_pump_mode": {
"type": Platform.BINARY_SENSOR,
"translation_key": "support_heat_pump_mode",
"name": "Heat Pump Mode Support",
"icon": "mdi:heat-pump-outline",
"required_attribute": "support_heat_pump_mode",
},
"support_smart_mode": {
"type": Platform.BINARY_SENSOR,
"translation_key": "support_smart_mode",
"name": "Smart Mode Support",
"icon": "mdi:brain",
"required_attribute": "support_smart_mode",
},
"support_negative_temperature": {
"type": Platform.BINARY_SENSOR,
"translation_key": "support_negative_temperature",
"name": "Negative Temperature Support",
"icon": "mdi:snowflake-thermometer",
"required_attribute": "support_negative_temperature",
},
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.NUMBER,
"translation_key": "disinfection_temperature",
"name": "Disinfection Temperature",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"min": 60,
"max": 70,
"step": 1,
"icon": "mdi:thermometer-alert",
},
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.SWITCH,
"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.NUMBER,
"translation_key": "max_temperature",
"name": "Maximum Target Temperature",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"min": 35,
"max": 70,
"step": 1,
"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.top_temp: {
"type": Platform.SENSOR,
"translation_key": "top_temperature",
"name": "Top 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",
"excluded_devices": ED_TEA_BAR_DEVICES,
},
EDAttributes.power: {
"type": Platform.SWITCH,
"translation_key": "power",
"name": "Power",
"icon": "mdi:power",
"excluded_devices": ED_TEA_BAR_DEVICES,
},
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,
},
EDAttributes.current_temperature: {
"type": Platform.SENSOR,
"translation_key": "current_temperature",
"name": "Current Temperature",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
"default": True,
"required_attribute": EDAttributes.current_temperature,
"subtypes": ED_TEA_BAR_SUBTYPES,
"models": ED_TEA_BAR_MODELS,
},
EDAttributes.target_temperature: {
"type": Platform.SENSOR,
"translation_key": "target_temperature",
"name": "Target Temperature",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
"default": True,
"required_attribute": EDAttributes.target_temperature,
"subtypes": ED_TEA_BAR_SUBTYPES,
"models": ED_TEA_BAR_MODELS,
},
EDAttributes.heating: {
"type": Platform.BINARY_SENSOR,
"translation_key": "heating",
"name": "Heating",
"icon": "mdi:kettle-steam",
"device_class": BinarySensorDeviceClass.RUNNING,
"default": True,
"required_attribute": EDAttributes.heating,
"subtypes": ED_TEA_BAR_SUBTYPES,
"models": ED_TEA_BAR_MODELS,
},
EDAttributes.dispensing: {
"type": Platform.BINARY_SENSOR,
"translation_key": "dispensing",
"name": "Dispensing Water",
"icon": "mdi:water-pump",
"device_class": BinarySensorDeviceClass.RUNNING,
"default": True,
"required_attribute": EDAttributes.dispensing,
"subtypes": ED_TEA_BAR_SUBTYPES,
"models": ED_TEA_BAR_MODELS,
},
EDAttributes.lack_water: {
"type": Platform.BINARY_SENSOR,
"translation_key": "lack_water",
"name": "Lack Water",
"icon": "mdi:water-alert",
"device_class": BinarySensorDeviceClass.PROBLEM,
"default": True,
"required_attribute": EDAttributes.lack_water,
"subtypes": ED_TEA_BAR_SUBTYPES,
"models": ED_TEA_BAR_MODELS,
},
EDAttributes.standby: {
"type": Platform.BINARY_SENSOR,
"translation_key": "standby",
"name": "Standby",
"icon": "mdi:power-standby",
"default": True,
"required_attribute": EDAttributes.standby,
"subtypes": ED_TEA_BAR_SUBTYPES,
"models": ED_TEA_BAR_MODELS,
},
EDAttributes.hot_water_dispensing: {
"type": Platform.BINARY_SENSOR,
"translation_key": "hot_water_dispensing",
"name": "Hot Water Dispensing",
"icon": "mdi:water-thermometer",
"device_class": BinarySensorDeviceClass.RUNNING,
"default": True,
"required_attribute": EDAttributes.hot_water_dispensing,
"subtypes": ED_TEA_BAR_SUBTYPES,
"models": ED_TEA_BAR_MODELS,
},
EDAttributes.fault: {
"type": Platform.BINARY_SENSOR,
"translation_key": "fault",
"name": "Fault",
"icon": "mdi:alert-circle",
"device_class": BinarySensorDeviceClass.PROBLEM,
"default": True,
"required_attribute": EDAttributes.fault,
"subtypes": ED_TEA_BAR_SUBTYPES,
"models": ED_TEA_BAR_MODELS,
},
EDAttributes.fault_code: {
"type": Platform.SENSOR,
"translation_key": "fault_code",
"name": "Fault Code",
"icon": "mdi:alert-circle-outline",
"default": True,
"required_attribute": EDAttributes.fault_code,
"subtypes": ED_TEA_BAR_SUBTYPES,
"models": ED_TEA_BAR_MODELS,
},
EDAttributes.boil_temperature: {
"type": Platform.NUMBER,
"translation_key": "boil_temperature",
"name": "Boil Target Temperature",
"icon": "mdi:kettle-steam",
"device_class": NumberDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"min": 40,
"max": 100,
"step": 1,
"default": False,
"required_attribute": EDAttributes.boil_temperature,
"subtypes": ED_TEA_BAR_SUBTYPES,
"models": ED_TEA_BAR_MODELS,
"removed": True,
},
EDAttributes.boiling: {
"type": Platform.SWITCH,
"translation_key": "boiling",
"name": "Boil Water",
"icon": "mdi:kettle-steam",
"default": False,
"required_attribute": EDAttributes.boiling,
"subtypes": ED_TEA_BAR_SUBTYPES,
"models": ED_TEA_BAR_MODELS,
"removed": True,
},
EDAttributes.keep_warm: {
"type": Platform.SWITCH,
"translation_key": "keep_warm",
"name": "Keep Warm",
"icon": "mdi:kettle-steam-outline",
"default": True,
"required_attribute": EDAttributes.keep_warm,
"subtypes": ED_TEA_BAR_SUBTYPES,
"models": ED_TEA_BAR_MODELS,
},
EDAttributes.cooling: {
"type": Platform.SWITCH,
"translation_key": "tea_bar_cooling",
"name": "Tea Bar Cooling",
"icon": "mdi:snowflake",
"default": True,
"required_attribute": EDAttributes.cooling,
"subtypes": ED_TEA_BAR_SUBTYPES,
"models": ED_TEA_BAR_MODELS,
},
EDAttributes.sleep: {
"type": Platform.SWITCH,
"translation_key": "screen_off",
"name": "Screen Off",
"icon": "mdi:monitor-off",
"subtypes": ED_TEA_BAR_SUBTYPES,
"models": ED_TEA_BAR_MODELS,
"removed": True,
},
EDAttributes.screen_display: {
"type": Platform.SWITCH,
"translation_key": "screen_display",
"name": "Screen Display",
"icon": "mdi:monitor",
"default": True,
"required_attribute": EDAttributes.screen_display,
"subtypes": ED_TEA_BAR_SUBTYPES,
"models": ED_TEA_BAR_MODELS,
},
EDAttributes.keep_warm_time: {
"type": Platform.NUMBER,
"translation_key": "keep_warm_time",
"name": "Keep Warm Time",
"icon": "mdi:timer-outline",
"device_class": NumberDeviceClass.DURATION,
"unit": UnitOfTime.HOURS,
"min": 1,
"max": 12,
"step": 0.5,
"default": True,
"required_attribute": EDAttributes.keep_warm_time,
"subtypes": ED_TEA_BAR_SUBTYPES,
"models": ED_TEA_BAR_MODELS,
},
EDAttributes.keep_warm_remaining: {
"type": Platform.SENSOR,
"translation_key": "keep_warm_remaining",
"name": "Keep Warm Remaining",
"icon": "mdi:progress-clock",
"device_class": SensorDeviceClass.DURATION,
"unit": UnitOfTime.HOURS,
"suggested_unit": UnitOfTime.HOURS,
"state_class": SensorStateClass.MEASUREMENT,
"suggested_display_precision": 6,
"duration_from_minutes": True,
"default": True,
"required_attribute": EDAttributes.keep_warm_remaining,
"subtypes": ED_TEA_BAR_SUBTYPES,
"models": ED_TEA_BAR_MODELS,
},
"boil": {
"type": Platform.BUTTON,
"subtypes": ED_TEA_BAR_SUBTYPES,
"models": ED_TEA_BAR_MODELS,
"removed": True,
},
"tea_bar": {
"type": Platform.SWITCH,
"translation_key": "tea_bar_boil",
"name": "Boil Water Switch",
"icon": "mdi:kettle-steam",
"default": True,
"subtypes": ED_TEA_BAR_SUBTYPES,
"models": ED_TEA_BAR_MODELS,
},
"tea_bar_child_lock": {
"type": Platform.SWITCH,
"translation_key": "tea_bar_child_lock",
"name": "Tea Bar Child Lock",
"icon": "mdi:lock",
"default": True,
"required_attribute": EDAttributes.child_lock,
"subtypes": ED_TEA_BAR_SUBTYPES,
"models": ED_TEA_BAR_MODELS,
},
"tea_bar_temperature": {
"type": Platform.CLIMATE,
# This is the appliance's primary Home/HA control. Leaving
# the entity name unset exposes the device name instead of
# the redundant "Tea Bar Boil Water".
"name": None,
"icon": "mdi:kettle-steam",
"default": True,
"subtypes": ED_TEA_BAR_SUBTYPES,
"models": ED_TEA_BAR_MODELS,
},
# Soft water machine (water softener) entities
EDAttributes.soften: {
"type": Platform.SWITCH,
"translation_key": "soften",
"name": "Softening",
"icon": "mdi:water-outline",
"subtypes": ED_SOFT_WATER_SUBTYPES,
},
EDAttributes.cl_sterilization: {
"type": Platform.SWITCH,
"translation_key": "cl_sterilization",
"name": "CL Sterilization",
"icon": "mdi:bacteria",
"subtypes": ED_SOFT_WATER_SUBTYPES,
},
EDAttributes.leak_water_protection: {
"type": Platform.SWITCH,
"translation_key": "leak_water_protection",
"name": "Leak Water Protection",
"icon": "mdi:water-alert",
"subtypes": ED_SOFT_WATER_SUBTYPES,
},
EDAttributes.water_way: {
"type": Platform.SWITCH,
"translation_key": "water_way",
"name": "Water Way",
"icon": "mdi:pipe",
"subtypes": ED_SOFT_WATER_SUBTYPES,
},
EDAttributes.regeneration: {
"type": Platform.SWITCH,
"translation_key": "regeneration",
"name": "Regeneration",
"icon": "mdi:refresh",
"subtypes": ED_SOFT_WATER_SUBTYPES,
},
EDAttributes.velocity: {
"type": Platform.SENSOR,
"translation_key": "velocity",
"name": "Velocity",
"icon": "mdi:speedometer",
"state_class": SensorStateClass.MEASUREMENT,
"subtypes": ED_SOFT_WATER_SUBTYPES,
},
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,
"subtypes": ED_SOFT_WATER_SUBTYPES,
},
EDAttributes.left_salt: {
"type": Platform.SENSOR,
"translation_key": "left_salt",
"name": "Left Salt",
"icon": "mdi:shaker",
"unit": PERCENTAGE,
"state_class": SensorStateClass.MEASUREMENT,
"subtypes": ED_SOFT_WATER_SUBTYPES,
},
EDAttributes.remaining_days: {
"type": Platform.SENSOR,
"translation_key": "remaining_days",
"name": "Remaining Days",
"icon": "mdi:calendar-clock",
"unit": UnitOfTime.DAYS,
"state_class": SensorStateClass.MEASUREMENT,
"subtypes": ED_SOFT_WATER_SUBTYPES,
},
EDAttributes.water_hardness: {
"type": Platform.NUMBER,
"translation_key": "water_hardness",
"name": "Water Hardness",
"icon": "mdi:water",
"min": 0,
"max": 65535,
"step": 1,
"subtypes": ED_SOFT_WATER_SUBTYPES,
},
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,
"subtypes": ED_SOFT_WATER_SUBTYPES,
},
EDAttributes.timing_regeneration_hour: {
"type": Platform.TIME,
"translation_key": "timing_regeneration",
"name": "Timing Regeneration",
"icon": "mdi:clock-outline",
"subtypes": ED_SOFT_WATER_SUBTYPES,
},
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,
"subtypes": ED_SOFT_WATER_SUBTYPES,
},
EDAttributes.use_days: {
"type": Platform.SENSOR,
"translation_key": "use_days",
"name": "Use Days",
"icon": "mdi:calendar",
"unit": UnitOfTime.DAYS,
"state_class": SensorStateClass.MEASUREMENT,
"subtypes": ED_SOFT_WATER_SUBTYPES,
},
EDAttributes.salt_setting: {
"type": Platform.SENSOR,
"translation_key": "salt_setting",
"name": "Salt Setting",
"icon": "mdi:shaker-outline",
"state_class": SensorStateClass.MEASUREMENT,
"subtypes": ED_SOFT_WATER_SUBTYPES,
},
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,
"subtypes": ED_SOFT_WATER_SUBTYPES,
},
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,
"subtypes": ED_SOFT_WATER_SUBTYPES,
},
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,
"subtypes": ED_SOFT_WATER_SUBTYPES,
},
EDAttributes.leak_water: {
"type": Platform.BINARY_SENSOR,
"translation_key": "leak_water",
"name": "Leak Water",
"icon": "mdi:water-alert",
"device_class": BinarySensorDeviceClass.PROBLEM,
"subtypes": ED_SOFT_WATER_SUBTYPES,
},
EDAttributes.rsj_stand_by: {
"type": Platform.BINARY_SENSOR,
"translation_key": "rsj_stand_by",
"name": "Stand By",
"icon": "mdi:power-standby",
"subtypes": ED_SOFT_WATER_SUBTYPES,
},
EDAttributes.error: {
"type": Platform.SENSOR,
"translation_key": "error",
"name": "Error",
"icon": "mdi:alert-circle",
"device_class": SensorDeviceClass.ENUM,
"subtypes": ED_SOFT_WATER_SUBTYPES,
# 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",
},
},
# Water purifier attributes for FF body
EDAttributes.life4: {
"type": Platform.SENSOR,
"translation_key": "filter4_life",
"name": "Filter4 Life Level",
"icon": "mdi:percent",
"unit": PERCENTAGE,
"state_class": SensorStateClass.MEASUREMENT,
},
EDAttributes.life5: {
"type": Platform.SENSOR,
"translation_key": "filter5_life",
"name": "Filter5 Life Level",
"icon": "mdi:percent",
"unit": PERCENTAGE,
"state_class": SensorStateClass.MEASUREMENT,
},
EDAttributes.maxlife1: {
"type": Platform.SENSOR,
"translation_key": "filter1_maxlife",
"name": "Filter1 Lifetime Limit",
"icon": "mdi:air-filter",
"unit": UnitOfTime.MONTHS,
"state_class": SensorStateClass.MEASUREMENT,
},
EDAttributes.maxlife2: {
"type": Platform.SENSOR,
"translation_key": "filter2_maxlife",
"name": "Filter2 Lifetime Limit",
"icon": "mdi:air-filter",
"unit": UnitOfTime.MONTHS,
"state_class": SensorStateClass.MEASUREMENT,
},
EDAttributes.maxlife3: {
"type": Platform.SENSOR,
"translation_key": "filter3_maxlife",
"name": "Filter3 Lifetime Limit",
"icon": "mdi:air-filter",
"unit": UnitOfTime.MONTHS,
"state_class": SensorStateClass.MEASUREMENT,
},
EDAttributes.maxlife4: {
"type": Platform.SENSOR,
"translation_key": "filter4_maxlife",
"name": "Filter4 Lifetime Limit",
"icon": "mdi:air-filter",
"unit": UnitOfTime.MONTHS,
"state_class": SensorStateClass.MEASUREMENT,
},
EDAttributes.maxlife5: {
"type": Platform.SENSOR,
"translation_key": "filter5_maxlife",
"name": "Filter5 Lifetime Limit",
"icon": "mdi:air-filter",
"unit": UnitOfTime.MONTHS,
"state_class": SensorStateClass.MEASUREMENT,
},
EDAttributes.hot_pot_temperature: {
"type": Platform.SENSOR,
"translation_key": "hot_pot_temperature",
"name": "Hot Pot Temperature",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
EDAttributes.water_kind: {
"type": Platform.SENSOR,
"translation_key": "water_kind",
"name": "Water Kind",
"icon": "mdi:water",
"device_class": SensorDeviceClass.ENUM,
"options": {
0: "idle",
2: "warm",
3: "cold",
},
},
EDAttributes.heat_start: {
"type": Platform.SENSOR,
"translation_key": "heat_start",
"name": "Heat Start",
"icon": "mdi:kettle-steam",
"device_class": SensorDeviceClass.ENUM,
"options": {
1: "heating",
2: "keep_warm",
},
},
EDAttributes.ice_gall_status: {
"type": Platform.SENSOR,
"translation_key": "ice_gall_status",
"name": "Ice Gall Status",
"icon": "mdi:snowflake",
"state_class": SensorStateClass.MEASUREMENT,
},
EDAttributes.filter: {
"type": Platform.BINARY_SENSOR,
"translation_key": "filter_status",
"name": "Filter Alarm",
"icon": "mdi:air-filter",
"device_class": BinarySensorDeviceClass.PROBLEM,
},
EDAttributes.standby_status: {
"type": Platform.BINARY_SENSOR,
"translation_key": "standby_status",
"name": "Standby Status",
"icon": "mdi:power-standby",
},
EDAttributes.out_water: {
"type": Platform.BINARY_SENSOR,
"translation_key": "out_water",
"name": "Out Water",
"icon": "mdi:water-pump",
"device_class": BinarySensorDeviceClass.RUNNING,
},
EDAttributes.out_hot_water: {
"type": Platform.BINARY_SENSOR,
"translation_key": "out_hot_water",
"name": "Out Hot Water",
"icon": "mdi:water-thermometer",
"device_class": BinarySensorDeviceClass.RUNNING,
},
EDAttributes.backflow: {
"type": Platform.BINARY_SENSOR,
"translation_key": "backflow",
"name": "Backflow",
"icon": "mdi:water-sync",
"device_class": BinarySensorDeviceClass.RUNNING,
},
EDAttributes.sleep_status: {
"type": Platform.BINARY_SENSOR,
"translation_key": "sleep_status",
"name": "Sleep Status",
"icon": "mdi:sleep",
},
EDAttributes.wash: {
"type": Platform.SWITCH,
"translation_key": "wash",
"name": "Filter Wash",
"icon": "mdi:washing-machine",
},
EDAttributes.antifreeze: {
"type": Platform.SWITCH,
"translation_key": "antifreeze",
"name": "Antifreeze",
"icon": "mdi:snowflake-melt",
},
},
},
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",
},
FAAttributes.humidify: {
"type": Platform.SWITCH,
"translation_key": "humidify",
"name": "Humidify",
"icon": "mdi:water-percent",
},
FAAttributes.waterions: {
"type": Platform.SWITCH,
"translation_key": "waterions",
"name": "Water Ions",
"icon": "mdi:atom-variant",
},
FAAttributes.anion: {
"type": Platform.SWITCH,
"translation_key": "anion",
"name": "Anion",
"icon": "mdi:atom",
},
FAAttributes.anophelifuge: {
"type": Platform.SWITCH,
"translation_key": "anophelifuge",
"name": "Anti-Mosquito",
"icon": "mdi:mosquito-off",
},
FAAttributes.display_on_off: {
"type": Platform.SWITCH,
"translation_key": "display_on_off",
"name": "Display",
"icon": "mdi:television",
},
FAAttributes.auto_power_off: {
"type": Platform.SWITCH,
"translation_key": "auto_power_off",
"name": "Auto Power Off",
"icon": "mdi:timer-off",
},
FAAttributes.body_feeling_scan: {
"type": Platform.SWITCH,
"translation_key": "body_feeling_scan",
"name": "Body Feeling Scan",
"icon": "mdi:motion-sensor",
},
FAAttributes.humidity: {
"type": Platform.SENSOR,
"translation_key": "humidity",
"name": "Humidity",
"device_class": SensorDeviceClass.HUMIDITY,
"unit": PERCENTAGE,
"state_class": SensorStateClass.MEASUREMENT,
},
FAAttributes.target_temperature: {
"type": Platform.SENSOR,
"translation_key": "target_temperature",
"name": "Target Temperature",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
FAAttributes.humidify_feedback: {
"type": Platform.SENSOR,
"translation_key": "humidify_feedback",
"name": "Humidity Feedback",
"device_class": SensorDeviceClass.HUMIDITY,
"unit": PERCENTAGE,
"state_class": SensorStateClass.MEASUREMENT,
},
FAAttributes.temperature_feedback: {
"type": Platform.SENSOR,
"translation_key": "temperature_feedback",
"name": "Temperature Feedback",
"device_class": SensorDeviceClass.TEMPERATURE,
"unit": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT,
},
FAAttributes.humidify_mode: {
"type": Platform.SENSOR,
"translation_key": "humidify_mode",
"name": "Humidify Mode",
"icon": "mdi:water-percent",
},
FAAttributes.error_code: {
"type": Platform.SENSOR,
"translation_key": "error_code",
"name": "Error Code",
"icon": "mdi:alert-circle",
},
},
},
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,
},
},
},
}