forked from HomeAssistant/midea-meiju-codec
feat: update device control for T0xCC and T0xAC
This commit is contained in:
214
custom_components/midea_auto_cloud/device_mapping/T0xCC.py
Normal file
214
custom_components/midea_auto_cloud/device_mapping/T0xCC.py
Normal file
@@ -0,0 +1,214 @@
|
||||
from homeassistant.const import Platform, UnitOfTemperature, PRECISION_HALVES
|
||||
from homeassistant.components.sensor import SensorStateClass, SensorDeviceClass
|
||||
from homeassistant.components.switch import SwitchDeviceClass
|
||||
|
||||
DEVICE_MAPPING = {
|
||||
"default": {
|
||||
"rationale": ["off", "on"],
|
||||
"queries": [{}, {"query_type":"run_status"}],
|
||||
"centralized": [],
|
||||
"entities": {
|
||||
Platform.CLIMATE: {
|
||||
"thermostat": {
|
||||
"power": "power",
|
||||
"hvac_modes": {
|
||||
"off": {"power": "off"},
|
||||
"heat": {"power": "on", "mode.current": "heat"},
|
||||
"cool": {"power": "on", "mode.current": "cool"},
|
||||
"dry": {"power": "on", "mode.current": "dry"},
|
||||
"fan_only": {"power": "on", "mode.current": "fan"}
|
||||
},
|
||||
"preset_modes": {
|
||||
"none": {
|
||||
"eco.status": "off",
|
||||
"strong.status": "off",
|
||||
"sterilize.status": "off",
|
||||
"selfclean.status": "off",
|
||||
"humidification.value": "0"
|
||||
},
|
||||
"eco": {"eco.status": "on"},
|
||||
"boost": {"strong.status": "on"},
|
||||
"sterilize": {"sterilize.status": "on"},
|
||||
"selfclean": {"selfclean.status": "on"},
|
||||
"humidify": {"humidification.value": "1"}
|
||||
},
|
||||
"swing_modes": {
|
||||
"off": {"swing.multiple": "false"},
|
||||
"both": {"swing.multiple": "true"},
|
||||
"horizontal": {"swing.louver_horizontal.enable": "true"},
|
||||
"vertical": {"swing.louver_vertical.enable": "true"}
|
||||
},
|
||||
"fan_modes": {
|
||||
"silent": {"wind_speed.level": 1},
|
||||
"low": {"wind_speed.level": 2},
|
||||
"medium": {"wind_speed.level": 3},
|
||||
"high": {"wind_speed.level": 4},
|
||||
"full": {"wind_speed.level": 5},
|
||||
"auto": {"wind_speed.level": 6}
|
||||
},
|
||||
"target_temperature": "temperature.current",
|
||||
"current_temperature": "temperature.room",
|
||||
"min_temp": 17,
|
||||
"max_temp": 30,
|
||||
"temperature_unit": UnitOfTemperature.CELSIUS,
|
||||
"precision": PRECISION_HALVES,
|
||||
}
|
||||
},
|
||||
Platform.SWITCH: {
|
||||
"eco": {
|
||||
"device_class": SwitchDeviceClass.SWITCH,
|
||||
"attribute": "eco.status"
|
||||
},
|
||||
"strong": {
|
||||
"device_class": SwitchDeviceClass.SWITCH,
|
||||
"attribute": "strong.status"
|
||||
},
|
||||
"selfclean": {
|
||||
"device_class": SwitchDeviceClass.SWITCH,
|
||||
"attribute": "selfclean.status"
|
||||
},
|
||||
"diagnose": {
|
||||
"device_class": SwitchDeviceClass.SWITCH,
|
||||
"attribute": "diagnose.status"
|
||||
},
|
||||
"idu_silent": {
|
||||
"device_class": SwitchDeviceClass.SWITCH,
|
||||
"attribute": "idu_silent.status"
|
||||
},
|
||||
"idu_light": {
|
||||
"device_class": SwitchDeviceClass.SWITCH,
|
||||
"attribute": "idu_light"
|
||||
},
|
||||
"idu_sleep": {
|
||||
"device_class": SwitchDeviceClass.SWITCH,
|
||||
"attribute": "idu_sleep.status"
|
||||
},
|
||||
"filter_notification": {
|
||||
"device_class": SwitchDeviceClass.SWITCH,
|
||||
"attribute": "filter_notification.status"
|
||||
}
|
||||
},
|
||||
Platform.SENSOR: {
|
||||
"room_temperature": {
|
||||
"device_class": SensorDeviceClass.TEMPERATURE,
|
||||
"unit_of_measurement": UnitOfTemperature.CELSIUS,
|
||||
"state_class": SensorStateClass.MEASUREMENT,
|
||||
"attribute": "temperature.room"
|
||||
},
|
||||
"outside_temperature": {
|
||||
"device_class": SensorDeviceClass.TEMPERATURE,
|
||||
"unit_of_measurement": UnitOfTemperature.CELSIUS,
|
||||
"state_class": SensorStateClass.MEASUREMENT,
|
||||
"attribute": "temperature.outside"
|
||||
},
|
||||
"co2_value": {
|
||||
"device_class": SensorDeviceClass.CO2,
|
||||
"unit_of_measurement": "ppm",
|
||||
"state_class": SensorStateClass.MEASUREMENT,
|
||||
"attribute": "co2.value"
|
||||
},
|
||||
"hcho_value": {
|
||||
"device_class": SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS,
|
||||
"unit_of_measurement": "μg/m³",
|
||||
"state_class": SensorStateClass.MEASUREMENT,
|
||||
"attribute": "hcho.value"
|
||||
},
|
||||
"pm25_value": {
|
||||
"device_class": SensorDeviceClass.PM25,
|
||||
"unit_of_measurement": "μg/m³",
|
||||
"state_class": SensorStateClass.MEASUREMENT,
|
||||
"attribute": "pm2_5.value"
|
||||
},
|
||||
"wind_speed_level": {
|
||||
"device_class": SensorDeviceClass.ENUM,
|
||||
"attribute": "wind_speed.level"
|
||||
},
|
||||
"timer_on_timeout": {
|
||||
"device_class": SensorDeviceClass.DURATION,
|
||||
"unit_of_measurement": "min",
|
||||
"state_class": SensorStateClass.MEASUREMENT,
|
||||
"attribute": "timer.on.timeout"
|
||||
},
|
||||
"timer_off_timeout": {
|
||||
"device_class": SensorDeviceClass.DURATION,
|
||||
"unit_of_measurement": "min",
|
||||
"state_class": SensorStateClass.MEASUREMENT,
|
||||
"attribute": "timer.off.timeout"
|
||||
},
|
||||
"selfclean_time_left": {
|
||||
"device_class": SensorDeviceClass.DURATION,
|
||||
"unit_of_measurement": "min",
|
||||
"state_class": SensorStateClass.MEASUREMENT,
|
||||
"attribute": "selfclean.time_left"
|
||||
},
|
||||
"backup_time": {
|
||||
"device_class": SensorDeviceClass.DURATION,
|
||||
"unit_of_measurement": "min",
|
||||
"state_class": SensorStateClass.MEASUREMENT,
|
||||
"attribute": "backup.time"
|
||||
},
|
||||
"cur_fault_code": {
|
||||
"device_class": SensorDeviceClass.ENUM,
|
||||
"attribute": "cur_fault.code"
|
||||
}
|
||||
},
|
||||
Platform.SELECT: {
|
||||
"mode": {
|
||||
"options": {
|
||||
"cool": {"mode.current": "cool"},
|
||||
"dry": {"mode.current": "dry"},
|
||||
"fan": {"mode.current": "fan"},
|
||||
"heat": {"mode.current": "heat"}
|
||||
},
|
||||
"attribute": "mode.current"
|
||||
},
|
||||
"ptc": {
|
||||
"options": {
|
||||
"auto": {"ptc.status": "auto"},
|
||||
"on": {"ptc.status": "on"},
|
||||
"off": {"ptc.status": "off"},
|
||||
"separate": {"ptc.status": "separate"}
|
||||
},
|
||||
"attribute": "ptc.status"
|
||||
},
|
||||
"wind_feeling_mode": {
|
||||
"options": {
|
||||
"close": {"wind_feeling.current": "close"},
|
||||
"soft": {"wind_feeling.current": "soft"}
|
||||
},
|
||||
"attribute": "wind_feeling.current"
|
||||
},
|
||||
"swing_louver": {
|
||||
"options": {
|
||||
"1": {"swing.louver1": "1"},
|
||||
"2": {"swing.louver1": "2"},
|
||||
"3": {"swing.louver1": "3"},
|
||||
"4": {"swing.louver1": "4"},
|
||||
"5": {"swing.louver1": "5"}
|
||||
},
|
||||
"attribute": "swing.louver1"
|
||||
},
|
||||
"swing_horizontal": {
|
||||
"options": {
|
||||
"1": {"swing.louver_horizontal.level": "1"},
|
||||
"2": {"swing.louver_horizontal.level": "2"},
|
||||
"3": {"swing.louver_horizontal.level": "3"},
|
||||
"4": {"swing.louver_horizontal.level": "4"},
|
||||
"5": {"swing.louver_horizontal.level": "5"}
|
||||
},
|
||||
"attribute": "swing.louver_horizontal.level"
|
||||
},
|
||||
"swing_vertical": {
|
||||
"options": {
|
||||
"1": {"swing.louver_vertical.level": "1"},
|
||||
"2": {"swing.louver_vertical.level": "2"},
|
||||
"3": {"swing.louver_vertical.level": "3"},
|
||||
"4": {"swing.louver_vertical.level": "4"},
|
||||
"5": {"swing.louver_vertical.level": "5"}
|
||||
},
|
||||
"attribute": "swing.louver_vertical.level"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user