Files
midea-meiju-codec/custom_components/midea_auto_cloud/device_mapping/T0xE2.py

210 lines
8.5 KiB
Python
Raw Normal View History

2025-11-19 01:48:11 +08:00
from homeassistant.const import Platform, UnitOfTemperature, UnitOfTime, PRECISION_WHOLE
2025-09-28 20:24:15 +08:00
from homeassistant.components.sensor import SensorStateClass, SensorDeviceClass
from homeassistant.components.binary_sensor import BinarySensorDeviceClass
from homeassistant.components.switch import SwitchDeviceClass
DEVICE_MAPPING = {
"default": {
"manufacturer": "美的",
"rationale": ["off", "on"],
"queries": [{}],
2025-09-30 15:15:29 +08:00
"centralized": [],
2025-09-28 20:24:15 +08:00
"entities": {
2025-11-06 22:31:08 +08:00
Platform.NUMBER: {
"water_quality": {
"min": 0,
"max": 3,
"step": 1
}
},
2025-11-03 11:38:11 +08:00
Platform.CLIMATE: {
2025-09-28 20:24:15 +08:00
"water_heater": {
"power": "power",
2025-11-03 11:38:11 +08:00
"hvac_modes": {
2025-09-28 20:24:15 +08:00
"off": {"power": "off"},
2025-11-06 22:31:08 +08:00
"heat": {"power": "on"},
2025-09-28 20:24:15 +08:00
},
"target_temperature": "temperature",
"current_temperature": "cur_temperature",
"min_temp": 30,
2025-11-19 01:48:11 +08:00
"max_temp": 80,
2025-09-28 20:24:15 +08:00
"temperature_unit": UnitOfTemperature.CELSIUS,
2025-11-19 01:48:11 +08:00
"precision": PRECISION_WHOLE,
2025-09-28 20:24:15 +08:00
}
},
Platform.SWITCH: {
2025-11-03 11:38:11 +08:00
"power": {
"device_class": SwitchDeviceClass.SWITCH,
},
2025-09-28 20:24:15 +08:00
"ti_protect": {
"device_class": SwitchDeviceClass.SWITCH,
},
"auto_off": {
"device_class": SwitchDeviceClass.SWITCH,
},
"protect": {
"device_class": SwitchDeviceClass.SWITCH,
},
"sleep": {
"device_class": SwitchDeviceClass.SWITCH,
},
"memory": {
"device_class": SwitchDeviceClass.SWITCH,
},
"safe": {
"device_class": SwitchDeviceClass.SWITCH,
},
"water_flow": {
"device_class": SwitchDeviceClass.SWITCH,
},
2025-11-19 01:48:11 +08:00
"sterilization": {
"device_class": SwitchDeviceClass.SWITCH,
2025-09-28 20:24:15 +08:00
}
},
Platform.SENSOR: {
"temperature": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"cur_temperature": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"top_temp": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"bottom_temp": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"in_temperature": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"passwater_lowbyte": {
"device_class": SensorDeviceClass.WATER,
"unit_of_measurement": "L",
2025-11-19 01:48:11 +08:00
"state_class": SensorStateClass.TOTAL
2025-09-28 20:24:15 +08:00
},
"passwater_highbyte": {
"device_class": SensorDeviceClass.WATER,
"unit_of_measurement": "L",
2025-11-19 01:48:11 +08:00
"state_class": SensorStateClass.TOTAL
2025-09-28 20:24:15 +08:00
},
"rate": {
2025-11-19 01:48:11 +08:00
"device_class": SensorDeviceClass.ENUM
2025-09-28 20:24:15 +08:00
},
"cur_rate": {
2025-11-19 01:48:11 +08:00
"device_class": SensorDeviceClass.ENUM
2025-09-28 20:24:15 +08:00
},
"sterilize_left_days": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.DAYS,
"state_class": SensorStateClass.MEASUREMENT
},
"uv_sterilize_minute": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"uv_sterilize_second": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.SECONDS,
"state_class": SensorStateClass.MEASUREMENT
},
"screen_light": {
"device_class": SensorDeviceClass.ILLUMINANCE,
"unit_of_measurement": "lx",
"state_class": SensorStateClass.MEASUREMENT
},
"morning_night_bash": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"tds_value": {
2025-11-19 01:48:11 +08:00
"device_class": SensorDeviceClass.ENUM
2025-09-28 20:24:15 +08:00
},
"heat_water_level": {
2025-11-19 01:48:11 +08:00
"device_class": SensorDeviceClass.ENUM
2025-09-28 20:24:15 +08:00
},
"flow": {
2025-11-19 01:48:11 +08:00
"device_class": SensorDeviceClass.ENUM
2025-09-28 20:24:15 +08:00
},
"end_time_hour": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.HOURS,
"state_class": SensorStateClass.MEASUREMENT
},
"end_time_minute": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"wash_temperature": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"sterilize_cycle_index": {
"device_class": SensorDeviceClass.ENUM
},
"discharge_status": {
"device_class": SensorDeviceClass.ENUM
},
"error_code": {
"device_class": SensorDeviceClass.ENUM
},
"water_system": {
"device_class": SensorDeviceClass.ENUM
},
"discharge_left_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"mg_remain": {
2025-11-19 01:48:11 +08:00
"device_class": SensorDeviceClass.ENUM
2025-09-28 20:24:15 +08:00
},
"waterday_lowbyte": {
"device_class": SensorDeviceClass.WATER,
"unit_of_measurement": "L",
2025-11-19 01:48:11 +08:00
"state_class": SensorStateClass.TOTAL
2025-09-28 20:24:15 +08:00
},
"waterday_highbyte": {
"device_class": SensorDeviceClass.WATER,
"unit_of_measurement": "L",
2025-11-19 01:48:11 +08:00
"state_class": SensorStateClass.TOTAL
2025-09-28 20:24:15 +08:00
}
},
Platform.BINARY_SENSOR: {
"door_status": {
"device_class": BinarySensorDeviceClass.DOOR,
},
"limit_error": {
"device_class": BinarySensorDeviceClass.PROBLEM,
},
"sensor_error": {
"device_class": BinarySensorDeviceClass.PROBLEM,
},
"communication_error": {
"device_class": BinarySensorDeviceClass.PROBLEM,
},
"ele_exception": {
"device_class": BinarySensorDeviceClass.PROBLEM,
},
"elec_warning": {
"device_class": BinarySensorDeviceClass.PROBLEM,
}
}
}
}
}