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

318 lines
14 KiB
Python
Raw Normal View History

2025-09-25 10:50:39 +08:00
from homeassistant.const import Platform, UnitOfTemperature, UnitOfTime, PERCENTAGE, PRECISION_HALVES
from homeassistant.components.sensor import SensorStateClass, SensorDeviceClass
from homeassistant.components.binary_sensor import BinarySensorDeviceClass
from homeassistant.components.switch import SwitchDeviceClass
DEVICE_MAPPING = {
"default": {
"rationale": ["off", "on"],
"queries": [{}],
"centralized": [
"freezing_mode", "intelligent_mode", "energy_saving_mode", "holiday_mode",
"moisturize_mode", "preservation_mode", "acme_freezing_mode", "variable_mode",
"storage_power", "left_flexzone_power", "right_flexzone_power", "freezing_power",
"function_zone_power", "storage_temperature", "freezing_temperature",
"left_flexzone_temperature", "right_flexzone_temperature"
],
"entities": {
Platform.SWITCH: {
"freezing_mode": {
"device_class": SwitchDeviceClass.SWITCH,
},
"intelligent_mode": {
"device_class": SwitchDeviceClass.SWITCH,
},
"energy_saving_mode": {
"device_class": SwitchDeviceClass.SWITCH,
},
"holiday_mode": {
"device_class": SwitchDeviceClass.SWITCH,
},
"moisturize_mode": {
"device_class": SwitchDeviceClass.SWITCH,
},
"preservation_mode": {
"device_class": SwitchDeviceClass.SWITCH,
},
"acme_freezing_mode": {
"device_class": SwitchDeviceClass.SWITCH,
},
"storage_power": {
"device_class": SwitchDeviceClass.SWITCH,
},
"left_flexzone_power": {
"device_class": SwitchDeviceClass.SWITCH,
},
"right_flexzone_power": {
"device_class": SwitchDeviceClass.SWITCH,
},
"freezing_power": {
"device_class": SwitchDeviceClass.SWITCH,
},
"function_zone_power": {
"device_class": SwitchDeviceClass.SWITCH,
},
"cross_peak_electricity": {
"device_class": SwitchDeviceClass.SWITCH,
},
"all_refrigeration_power": {
"device_class": SwitchDeviceClass.SWITCH,
},
"remove_dew_power": {
"device_class": SwitchDeviceClass.SWITCH,
},
"humidify_power": {
"device_class": SwitchDeviceClass.SWITCH,
},
"unfreeze_power": {
"device_class": SwitchDeviceClass.SWITCH,
},
"floodlight_power": {
"device_class": SwitchDeviceClass.SWITCH,
},
"radar_mode_power": {
"device_class": SwitchDeviceClass.SWITCH,
},
"milk_mode_power": {
"device_class": SwitchDeviceClass.SWITCH,
},
"icea_mode_power": {
"device_class": SwitchDeviceClass.SWITCH,
},
"plasma_aseptic_mode_power": {
"device_class": SwitchDeviceClass.SWITCH,
},
"acquire_icea_mode_power": {
"device_class": SwitchDeviceClass.SWITCH,
},
"brash_icea_mode_power": {
"device_class": SwitchDeviceClass.SWITCH,
},
"acquire_water_mode_power": {
"device_class": SwitchDeviceClass.SWITCH,
},
"freezing_ice_machine_power": {
"device_class": SwitchDeviceClass.SWITCH,
},
"microcrystal_fresh": {
"device_class": SwitchDeviceClass.SWITCH,
},
"dry_zone": {
"device_class": SwitchDeviceClass.SWITCH,
},
"electronic_smell": {
"device_class": SwitchDeviceClass.SWITCH,
},
"eradicate_pesticide_residue": {
"device_class": SwitchDeviceClass.SWITCH,
},
"performance_mode": {
"device_class": SwitchDeviceClass.SWITCH,
},
"ice_mouth_power": {
"device_class": SwitchDeviceClass.SWITCH,
}
},
Platform.BINARY_SENSOR: {
"storage_door_state": {
"device_class": BinarySensorDeviceClass.DOOR,
},
"freezer_door_state": {
"device_class": BinarySensorDeviceClass.DOOR,
},
"flexzone_door_state": {
"device_class": BinarySensorDeviceClass.DOOR,
},
"storage_ice_home_door_state": {
"device_class": BinarySensorDeviceClass.DOOR,
},
"bar_door_state": {
"device_class": BinarySensorDeviceClass.DOOR,
},
"is_error": {
"device_class": BinarySensorDeviceClass.PROBLEM,
}
},
Platform.CLIMATE: {
"storage_zone": {
"power": "storage_power",
"hvac_modes": {
"off": {"storage_power": "off"},
"heat": {"storage_power": "on"}
},
"target_temperature": "storage_temperature",
"current_temperature": "refrigeration_real_temperature",
"min_temp": -10,
"max_temp": 10,
"temperature_unit": UnitOfTemperature.CELSIUS,
"precision": PRECISION_HALVES,
},
"freezing_zone": {
"power": "freezing_power",
"hvac_modes": {
"off": {"freezing_power": "off"},
"heat": {"freezing_power": "on"}
},
"target_temperature": "freezing_temperature",
"current_temperature": "freezing_real_temperature",
"min_temp": -30,
"max_temp": -10,
"temperature_unit": UnitOfTemperature.CELSIUS,
"precision": PRECISION_HALVES,
},
"left_flexzone": {
"power": "left_flexzone_power",
"hvac_modes": {
"off": {"left_flexzone_power": "off"},
"heat": {"left_flexzone_power": "on"}
},
"target_temperature": "left_flexzone_temperature",
"current_temperature": "left_variable_real_temperature",
"min_temp": -30,
"max_temp": 10,
"temperature_unit": UnitOfTemperature.CELSIUS,
"precision": PRECISION_HALVES,
},
"right_flexzone": {
"power": "right_flexzone_power",
"hvac_modes": {
"off": {"right_flexzone_power": "off"},
"heat": {"right_flexzone_power": "on"}
},
"target_temperature": "right_flexzone_temperature",
"current_temperature": "right_variable_real_temperature",
"min_temp": -30,
"max_temp": 10,
"temperature_unit": UnitOfTemperature.CELSIUS,
"precision": PRECISION_HALVES,
}
},
Platform.SELECT: {
"variable_mode": {
"options": {
"none_mode": {"variable_mode": "none_mode"},
"freezing": {"variable_mode": "freezing"},
"refrigeration": {"variable_mode": "refrigeration"},
"wine": {"variable_mode": "wine"},
"vegetable": {"variable_mode": "vegetable"}
}
},
"icea_bar_function_switch": {
"options": {
"default": {"icea_bar_function_switch": "default"},
"ice": {"icea_bar_function_switch": "ice"},
"water": {"icea_bar_function_switch": "water"},
"off": {"icea_bar_function_switch": "off"}
}
},
"food_site": {
"options": {
"left_freezing_room": {"food_site": "left_freezing_room"},
"right_freezing_room": {"food_site": "right_freezing_room"},
"storage_room": {"food_site": "storage_room"},
"function_zone": {"food_site": "function_zone"}
}
},
"temperature_unit": {
"options": {
"celsius": {"temperature_unit": "celsius"},
"fahrenheit": {"temperature_unit": "fahrenheit"}
}
}
},
Platform.SENSOR: {
"storage_temperature": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"freezing_temperature": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"left_flexzone_temperature": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"right_flexzone_temperature": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"refrigeration_real_temperature": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"freezing_real_temperature": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"left_variable_real_temperature": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"right_variable_real_temperature": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"interval_room_humidity_level": {
"device_class": SensorDeviceClass.HUMIDITY,
"unit_of_measurement": PERCENTAGE,
"state_class": SensorStateClass.MEASUREMENT
},
"normal_zone_level": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"function_zone_level": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"freeze_fahrenheit_level": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"refrigeration_fahrenheit_level": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"leach_expire_day": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.DAYS,
"state_class": SensorStateClass.MEASUREMENT
},
"power_consumption_low": {
"device_class": SensorDeviceClass.POWER,
"unit_of_measurement": "W",
"state_class": SensorStateClass.MEASUREMENT
},
"power_consumption_high": {
"device_class": SensorDeviceClass.POWER,
"unit_of_measurement": "W",
"state_class": SensorStateClass.MEASUREMENT
},
"fast_cold_minute": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"fast_freeze_minute": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"version": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
}
}
}
}
}