forked from HomeAssistant/midea-meiju-codec
feat: add device support for T0xB2
This commit is contained in:
183
custom_components/midea_auto_cloud/device_mapping/T0xB2.py
Normal file
183
custom_components/midea_auto_cloud/device_mapping/T0xB2.py
Normal file
@@ -0,0 +1,183 @@
|
|||||||
|
from homeassistant.const import Platform, UnitOfTemperature, UnitOfTime
|
||||||
|
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": [
|
||||||
|
"work_status", "work_mode", "lock", "furnace_light",
|
||||||
|
"dissipate_heat", "pre_heat", "door_open", "lack_water"
|
||||||
|
],
|
||||||
|
"entities": {
|
||||||
|
Platform.BINARY_SENSOR: {
|
||||||
|
"lock": {
|
||||||
|
"device_class": BinarySensorDeviceClass.LOCK,
|
||||||
|
},
|
||||||
|
"furnace_light": {
|
||||||
|
"device_class": BinarySensorDeviceClass.LIGHT,
|
||||||
|
},
|
||||||
|
"dissipate_heat": {
|
||||||
|
"device_class": BinarySensorDeviceClass.RUNNING,
|
||||||
|
},
|
||||||
|
"pre_heat": {
|
||||||
|
"device_class": BinarySensorDeviceClass.RUNNING,
|
||||||
|
},
|
||||||
|
"door_open": {
|
||||||
|
"device_class": BinarySensorDeviceClass.DOOR,
|
||||||
|
},
|
||||||
|
"lack_water": {
|
||||||
|
"device_class": BinarySensorDeviceClass.PROBLEM,
|
||||||
|
},
|
||||||
|
"high_temperature_work": {
|
||||||
|
"device_class": BinarySensorDeviceClass.RUNNING,
|
||||||
|
},
|
||||||
|
"lack_box": {
|
||||||
|
"device_class": BinarySensorDeviceClass.PROBLEM,
|
||||||
|
},
|
||||||
|
"clean_sink_ponding": {
|
||||||
|
"device_class": BinarySensorDeviceClass.RUNNING,
|
||||||
|
},
|
||||||
|
"clean_scale": {
|
||||||
|
"device_class": BinarySensorDeviceClass.RUNNING,
|
||||||
|
},
|
||||||
|
"flip_side": {
|
||||||
|
"device_class": BinarySensorDeviceClass.RUNNING,
|
||||||
|
},
|
||||||
|
"reaction": {
|
||||||
|
"device_class": BinarySensorDeviceClass.RUNNING,
|
||||||
|
},
|
||||||
|
"ramadan": {
|
||||||
|
"device_class": BinarySensorDeviceClass.RUNNING,
|
||||||
|
},
|
||||||
|
"change_water": {
|
||||||
|
"device_class": BinarySensorDeviceClass.RUNNING,
|
||||||
|
},
|
||||||
|
"execute": {
|
||||||
|
"device_class": BinarySensorDeviceClass.RUNNING,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
Platform.SELECT: {
|
||||||
|
"work_status": {
|
||||||
|
"options": {
|
||||||
|
"standby": {"work_status": "standby"},
|
||||||
|
"working": {"work_status": "working"},
|
||||||
|
"pause": {"work_status": "pause"},
|
||||||
|
"finish": {"work_status": "finish"},
|
||||||
|
"error": {"work_status": "error"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"work_mode": {
|
||||||
|
"options": {
|
||||||
|
"off": {"work_mode": "0"},
|
||||||
|
"steam": {"work_mode": "1"},
|
||||||
|
"cook": {"work_mode": "2"},
|
||||||
|
"fry": {"work_mode": "3"},
|
||||||
|
"bake": {"work_mode": "4"},
|
||||||
|
"roast": {"work_mode": "5"},
|
||||||
|
"stew": {"work_mode": "6"},
|
||||||
|
"soup": {"work_mode": "7"},
|
||||||
|
"rice": {"work_mode": "8"},
|
||||||
|
"porridge": {"work_mode": "9"},
|
||||||
|
"yogurt": {"work_mode": "10"},
|
||||||
|
"ferment": {"work_mode": "11"},
|
||||||
|
"defrost": {"work_mode": "12"},
|
||||||
|
"keep_warm": {"work_mode": "13"},
|
||||||
|
"clean": {"work_mode": "14"},
|
||||||
|
"custom": {"work_mode": "ff"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
Platform.SENSOR: {
|
||||||
|
"work_hour": {
|
||||||
|
"device_class": SensorDeviceClass.DURATION,
|
||||||
|
"unit_of_measurement": UnitOfTime.HOURS,
|
||||||
|
"state_class": SensorStateClass.MEASUREMENT
|
||||||
|
},
|
||||||
|
"work_minute": {
|
||||||
|
"device_class": SensorDeviceClass.DURATION,
|
||||||
|
"unit_of_measurement": UnitOfTime.MINUTES,
|
||||||
|
"state_class": SensorStateClass.MEASUREMENT
|
||||||
|
},
|
||||||
|
"work_second": {
|
||||||
|
"device_class": SensorDeviceClass.DURATION,
|
||||||
|
"unit_of_measurement": UnitOfTime.SECONDS,
|
||||||
|
"state_class": SensorStateClass.MEASUREMENT
|
||||||
|
},
|
||||||
|
"cur_temperature_above": {
|
||||||
|
"device_class": SensorDeviceClass.TEMPERATURE,
|
||||||
|
"unit_of_measurement": UnitOfTemperature.CELSIUS,
|
||||||
|
"state_class": SensorStateClass.MEASUREMENT
|
||||||
|
},
|
||||||
|
"cur_temperature_underside": {
|
||||||
|
"device_class": SensorDeviceClass.TEMPERATURE,
|
||||||
|
"unit_of_measurement": UnitOfTemperature.CELSIUS,
|
||||||
|
"state_class": SensorStateClass.MEASUREMENT
|
||||||
|
},
|
||||||
|
"temperature": {
|
||||||
|
"device_class": SensorDeviceClass.TEMPERATURE,
|
||||||
|
"unit_of_measurement": UnitOfTemperature.CELSIUS,
|
||||||
|
"state_class": SensorStateClass.MEASUREMENT
|
||||||
|
},
|
||||||
|
"weight": {
|
||||||
|
"device_class": SensorDeviceClass.WEIGHT,
|
||||||
|
"unit_of_measurement": "g",
|
||||||
|
"state_class": SensorStateClass.MEASUREMENT
|
||||||
|
},
|
||||||
|
"people_number": {
|
||||||
|
"device_class": SensorDeviceClass.NONE,
|
||||||
|
"state_class": SensorStateClass.MEASUREMENT
|
||||||
|
},
|
||||||
|
"steam_quantity": {
|
||||||
|
"device_class": SensorDeviceClass.NONE,
|
||||||
|
"state_class": SensorStateClass.MEASUREMENT
|
||||||
|
},
|
||||||
|
"totalstep": {
|
||||||
|
"device_class": SensorDeviceClass.NONE,
|
||||||
|
"state_class": SensorStateClass.MEASUREMENT
|
||||||
|
},
|
||||||
|
"stepnum": {
|
||||||
|
"device_class": SensorDeviceClass.NONE,
|
||||||
|
"state_class": SensorStateClass.MEASUREMENT
|
||||||
|
},
|
||||||
|
"hour_set": {
|
||||||
|
"device_class": SensorDeviceClass.DURATION,
|
||||||
|
"unit_of_measurement": UnitOfTime.HOURS,
|
||||||
|
"state_class": SensorStateClass.MEASUREMENT
|
||||||
|
},
|
||||||
|
"minute_set": {
|
||||||
|
"device_class": SensorDeviceClass.DURATION,
|
||||||
|
"unit_of_measurement": UnitOfTime.MINUTES,
|
||||||
|
"state_class": SensorStateClass.MEASUREMENT
|
||||||
|
},
|
||||||
|
"second_set": {
|
||||||
|
"device_class": SensorDeviceClass.DURATION,
|
||||||
|
"unit_of_measurement": UnitOfTime.SECONDS,
|
||||||
|
"state_class": SensorStateClass.MEASUREMENT
|
||||||
|
},
|
||||||
|
"ota": {
|
||||||
|
"device_class": SensorDeviceClass.NONE,
|
||||||
|
"state_class": SensorStateClass.MEASUREMENT
|
||||||
|
},
|
||||||
|
"error_code": {
|
||||||
|
"device_class": SensorDeviceClass.NONE,
|
||||||
|
"state_class": SensorStateClass.MEASUREMENT
|
||||||
|
},
|
||||||
|
"version": {
|
||||||
|
"device_class": SensorDeviceClass.NONE,
|
||||||
|
"state_class": SensorStateClass.MEASUREMENT
|
||||||
|
},
|
||||||
|
"cbs_version": {
|
||||||
|
"device_class": SensorDeviceClass.NONE,
|
||||||
|
"state_class": SensorStateClass.MEASUREMENT
|
||||||
|
},
|
||||||
|
"cloudmenuid": {
|
||||||
|
"device_class": SensorDeviceClass.NONE,
|
||||||
|
"state_class": SensorStateClass.MEASUREMENT
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -294,9 +294,6 @@
|
|||||||
"work_mode": {
|
"work_mode": {
|
||||||
"name": "Work Mode"
|
"name": "Work Mode"
|
||||||
},
|
},
|
||||||
"work_status": {
|
|
||||||
"name": "Work Status"
|
|
||||||
},
|
|
||||||
"func_select": {
|
"func_select": {
|
||||||
"name": "Func Select"
|
"name": "Func Select"
|
||||||
},
|
},
|
||||||
@@ -308,6 +305,9 @@
|
|||||||
},
|
},
|
||||||
"water_quality": {
|
"water_quality": {
|
||||||
"name": "Water Quality"
|
"name": "Water Quality"
|
||||||
|
},
|
||||||
|
"work_status": {
|
||||||
|
"name": "Work Status"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sensor": {
|
"sensor": {
|
||||||
@@ -958,6 +958,54 @@
|
|||||||
},
|
},
|
||||||
"waterday_lowbyte": {
|
"waterday_lowbyte": {
|
||||||
"name": "Waterday Lowbyte"
|
"name": "Waterday Lowbyte"
|
||||||
|
},
|
||||||
|
"work_hour": {
|
||||||
|
"name": "Work Hour"
|
||||||
|
},
|
||||||
|
"work_minute": {
|
||||||
|
"name": "Work Minute"
|
||||||
|
},
|
||||||
|
"work_second": {
|
||||||
|
"name": "Work Second"
|
||||||
|
},
|
||||||
|
"cur_temperature_above": {
|
||||||
|
"name": "Current Temperature Above"
|
||||||
|
},
|
||||||
|
"cur_temperature_underside": {
|
||||||
|
"name": "Current Temperature Underside"
|
||||||
|
},
|
||||||
|
"weight": {
|
||||||
|
"name": "Weight"
|
||||||
|
},
|
||||||
|
"people_number": {
|
||||||
|
"name": "People Number"
|
||||||
|
},
|
||||||
|
"steam_quantity": {
|
||||||
|
"name": "Steam Quantity"
|
||||||
|
},
|
||||||
|
"totalstep": {
|
||||||
|
"name": "Total Step"
|
||||||
|
},
|
||||||
|
"stepnum": {
|
||||||
|
"name": "Step Number"
|
||||||
|
},
|
||||||
|
"hour_set": {
|
||||||
|
"name": "Hour Set"
|
||||||
|
},
|
||||||
|
"minute_set": {
|
||||||
|
"name": "Minute Set"
|
||||||
|
},
|
||||||
|
"second_set": {
|
||||||
|
"name": "Second Set"
|
||||||
|
},
|
||||||
|
"ota": {
|
||||||
|
"name": "OTA"
|
||||||
|
},
|
||||||
|
"cbs_version": {
|
||||||
|
"name": "CBS Version"
|
||||||
|
},
|
||||||
|
"cloudmenuid": {
|
||||||
|
"name": "Cloud Menu ID"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"binary_sensor": {
|
"binary_sensor": {
|
||||||
@@ -1047,6 +1095,51 @@
|
|||||||
},
|
},
|
||||||
"sensor_error": {
|
"sensor_error": {
|
||||||
"name": "Sensor Error"
|
"name": "Sensor Error"
|
||||||
|
},
|
||||||
|
"lock": {
|
||||||
|
"name": "Lock"
|
||||||
|
},
|
||||||
|
"furnace_light": {
|
||||||
|
"name": "Furnace Light"
|
||||||
|
},
|
||||||
|
"dissipate_heat": {
|
||||||
|
"name": "Dissipate Heat"
|
||||||
|
},
|
||||||
|
"pre_heat": {
|
||||||
|
"name": "Pre Heat"
|
||||||
|
},
|
||||||
|
"door_open": {
|
||||||
|
"name": "Door Open"
|
||||||
|
},
|
||||||
|
"lack_water": {
|
||||||
|
"name": "Lack Water"
|
||||||
|
},
|
||||||
|
"high_temperature_work": {
|
||||||
|
"name": "High Temperature Work"
|
||||||
|
},
|
||||||
|
"lack_box": {
|
||||||
|
"name": "Lack Box"
|
||||||
|
},
|
||||||
|
"clean_sink_ponding": {
|
||||||
|
"name": "Clean Sink Ponding"
|
||||||
|
},
|
||||||
|
"clean_scale": {
|
||||||
|
"name": "Clean Scale"
|
||||||
|
},
|
||||||
|
"flip_side": {
|
||||||
|
"name": "Flip Side"
|
||||||
|
},
|
||||||
|
"reaction": {
|
||||||
|
"name": "Reaction"
|
||||||
|
},
|
||||||
|
"ramadan": {
|
||||||
|
"name": "Ramadan"
|
||||||
|
},
|
||||||
|
"change_water": {
|
||||||
|
"name": "Change Water"
|
||||||
|
},
|
||||||
|
"execute": {
|
||||||
|
"name": "Execute"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"climate": {
|
"climate": {
|
||||||
|
@@ -200,6 +200,51 @@
|
|||||||
},
|
},
|
||||||
"sensor_error": {
|
"sensor_error": {
|
||||||
"name": "传感器错误"
|
"name": "传感器错误"
|
||||||
|
},
|
||||||
|
"lock": {
|
||||||
|
"name": "锁定"
|
||||||
|
},
|
||||||
|
"furnace_light": {
|
||||||
|
"name": "炉灯"
|
||||||
|
},
|
||||||
|
"dissipate_heat": {
|
||||||
|
"name": "散热"
|
||||||
|
},
|
||||||
|
"pre_heat": {
|
||||||
|
"name": "预热"
|
||||||
|
},
|
||||||
|
"door_open": {
|
||||||
|
"name": "门开启"
|
||||||
|
},
|
||||||
|
"lack_water": {
|
||||||
|
"name": "缺水"
|
||||||
|
},
|
||||||
|
"high_temperature_work": {
|
||||||
|
"name": "高温工作"
|
||||||
|
},
|
||||||
|
"lack_box": {
|
||||||
|
"name": "缺盒"
|
||||||
|
},
|
||||||
|
"clean_sink_ponding": {
|
||||||
|
"name": "清洁水槽积水"
|
||||||
|
},
|
||||||
|
"clean_scale": {
|
||||||
|
"name": "清洁水垢"
|
||||||
|
},
|
||||||
|
"flip_side": {
|
||||||
|
"name": "翻面"
|
||||||
|
},
|
||||||
|
"reaction": {
|
||||||
|
"name": "反应"
|
||||||
|
},
|
||||||
|
"ramadan": {
|
||||||
|
"name": "斋月"
|
||||||
|
},
|
||||||
|
"change_water": {
|
||||||
|
"name": "换水"
|
||||||
|
},
|
||||||
|
"execute": {
|
||||||
|
"name": "执行"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"climate": {
|
"climate": {
|
||||||
@@ -408,9 +453,6 @@
|
|||||||
"work_mode": {
|
"work_mode": {
|
||||||
"name": "工作模式"
|
"name": "工作模式"
|
||||||
},
|
},
|
||||||
"work_status": {
|
|
||||||
"name": "工作状态"
|
|
||||||
},
|
|
||||||
"func_select": {
|
"func_select": {
|
||||||
"name": "功能选择"
|
"name": "功能选择"
|
||||||
},
|
},
|
||||||
@@ -422,6 +464,9 @@
|
|||||||
},
|
},
|
||||||
"water_quality": {
|
"water_quality": {
|
||||||
"name": "水质"
|
"name": "水质"
|
||||||
|
},
|
||||||
|
"work_status": {
|
||||||
|
"name": "工作状态"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sensor": {
|
"sensor": {
|
||||||
@@ -1075,6 +1120,54 @@
|
|||||||
},
|
},
|
||||||
"waterday_lowbyte": {
|
"waterday_lowbyte": {
|
||||||
"name": "日用水低字节"
|
"name": "日用水低字节"
|
||||||
|
},
|
||||||
|
"work_hour": {
|
||||||
|
"name": "工作小时"
|
||||||
|
},
|
||||||
|
"work_minute": {
|
||||||
|
"name": "工作分钟"
|
||||||
|
},
|
||||||
|
"work_second": {
|
||||||
|
"name": "工作秒"
|
||||||
|
},
|
||||||
|
"cur_temperature_above": {
|
||||||
|
"name": "当前温度(上)"
|
||||||
|
},
|
||||||
|
"cur_temperature_underside": {
|
||||||
|
"name": "当前温度(下)"
|
||||||
|
},
|
||||||
|
"weight": {
|
||||||
|
"name": "重量"
|
||||||
|
},
|
||||||
|
"people_number": {
|
||||||
|
"name": "人数"
|
||||||
|
},
|
||||||
|
"steam_quantity": {
|
||||||
|
"name": "蒸汽量"
|
||||||
|
},
|
||||||
|
"totalstep": {
|
||||||
|
"name": "总步数"
|
||||||
|
},
|
||||||
|
"stepnum": {
|
||||||
|
"name": "步数"
|
||||||
|
},
|
||||||
|
"hour_set": {
|
||||||
|
"name": "设置小时"
|
||||||
|
},
|
||||||
|
"minute_set": {
|
||||||
|
"name": "设置分钟"
|
||||||
|
},
|
||||||
|
"second_set": {
|
||||||
|
"name": "设置秒"
|
||||||
|
},
|
||||||
|
"ota": {
|
||||||
|
"name": "OTA"
|
||||||
|
},
|
||||||
|
"cbs_version": {
|
||||||
|
"name": "CBS版本"
|
||||||
|
},
|
||||||
|
"cloudmenuid": {
|
||||||
|
"name": "云菜单ID"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"switch": {
|
"switch": {
|
||||||
|
Reference in New Issue
Block a user