mirror of
https://github.com/sususweet/midea-meiju-codec.git
synced 2025-09-27 18:22:41 +00:00
196 lines
8.8 KiB
Python
196 lines
8.8 KiB
Python
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": [
|
|
"upstair_work_status", "downstair_work_status", "middlestair_work_status",
|
|
"upstair_mode", "downstair_mode", "middlestair_mode",
|
|
"upstair_temp", "downstair_temp", "middlestair_temp"
|
|
],
|
|
"entities": {
|
|
Platform.BINARY_SENSOR: {
|
|
"door_middlestair": {
|
|
"device_class": BinarySensorDeviceClass.DOOR,
|
|
},
|
|
"door_upstair": {
|
|
"device_class": BinarySensorDeviceClass.DOOR,
|
|
},
|
|
"door_downstair": {
|
|
"device_class": BinarySensorDeviceClass.DOOR,
|
|
},
|
|
"downstair_ispreheat": {
|
|
"device_class": BinarySensorDeviceClass.RUNNING,
|
|
},
|
|
"upstair_ispreheat": {
|
|
"device_class": BinarySensorDeviceClass.RUNNING,
|
|
},
|
|
"downstair_iscooling": {
|
|
"device_class": BinarySensorDeviceClass.RUNNING,
|
|
},
|
|
"upstair_iscooling": {
|
|
"device_class": BinarySensorDeviceClass.RUNNING,
|
|
},
|
|
"middlestair_ispreheat": {
|
|
"device_class": BinarySensorDeviceClass.RUNNING,
|
|
},
|
|
"middlestair_iscooling": {
|
|
"device_class": BinarySensorDeviceClass.RUNNING,
|
|
},
|
|
"lock": {
|
|
"device_class": BinarySensorDeviceClass.LOCK,
|
|
},
|
|
"is_error": {
|
|
"device_class": BinarySensorDeviceClass.PROBLEM,
|
|
},
|
|
"uv_disinfect": {
|
|
"device_class": BinarySensorDeviceClass.RUNNING,
|
|
}
|
|
},
|
|
Platform.SELECT: {
|
|
"upstair_work_status": {
|
|
"options": {
|
|
"power_off": {"upstair_work_status": "power_off"},
|
|
"power_on": {"upstair_work_status": "power_on"},
|
|
"working": {"upstair_work_status": "working"},
|
|
"pause": {"upstair_work_status": "pause"},
|
|
"finish": {"upstair_work_status": "finish"},
|
|
"error": {"upstair_work_status": "error"}
|
|
}
|
|
},
|
|
"downstair_work_status": {
|
|
"options": {
|
|
"power_off": {"downstair_work_status": "power_off"},
|
|
"power_on": {"downstair_work_status": "power_on"},
|
|
"working": {"downstair_work_status": "working"},
|
|
"pause": {"downstair_work_status": "pause"},
|
|
"finish": {"downstair_work_status": "finish"},
|
|
"error": {"downstair_work_status": "error"}
|
|
}
|
|
},
|
|
"middlestair_work_status": {
|
|
"options": {
|
|
"power_off": {"middlestair_work_status": "power_off"},
|
|
"power_on": {"middlestair_work_status": "power_on"},
|
|
"working": {"middlestair_work_status": "working"},
|
|
"pause": {"middlestair_work_status": "pause"},
|
|
"finish": {"middlestair_work_status": "finish"},
|
|
"error": {"middlestair_work_status": "error"}
|
|
}
|
|
},
|
|
"upstair_mode": {
|
|
"options": {
|
|
"off": {"upstair_mode": "0"},
|
|
"bake": {"upstair_mode": "1"},
|
|
"roast": {"upstair_mode": "2"},
|
|
"grill": {"upstair_mode": "3"},
|
|
"convection": {"upstair_mode": "4"},
|
|
"defrost": {"upstair_mode": "5"}
|
|
}
|
|
},
|
|
"downstair_mode": {
|
|
"options": {
|
|
"off": {"downstair_mode": "0"},
|
|
"bake": {"downstair_mode": "1"},
|
|
"roast": {"downstair_mode": "2"},
|
|
"grill": {"downstair_mode": "3"},
|
|
"convection": {"downstair_mode": "4"},
|
|
"defrost": {"downstair_mode": "5"}
|
|
}
|
|
},
|
|
"middlestair_mode": {
|
|
"options": {
|
|
"off": {"middlestair_mode": "0"},
|
|
"bake": {"middlestair_mode": "1"},
|
|
"roast": {"middlestair_mode": "2"},
|
|
"grill": {"middlestair_mode": "3"},
|
|
"convection": {"middlestair_mode": "4"},
|
|
"defrost": {"middlestair_mode": "5"}
|
|
}
|
|
}
|
|
},
|
|
Platform.SENSOR: {
|
|
"upstair_temp": {
|
|
"device_class": SensorDeviceClass.TEMPERATURE,
|
|
"unit_of_measurement": UnitOfTemperature.CELSIUS,
|
|
"state_class": SensorStateClass.MEASUREMENT
|
|
},
|
|
"downstair_temp": {
|
|
"device_class": SensorDeviceClass.TEMPERATURE,
|
|
"unit_of_measurement": UnitOfTemperature.CELSIUS,
|
|
"state_class": SensorStateClass.MEASUREMENT
|
|
},
|
|
"middlestair_temp": {
|
|
"device_class": SensorDeviceClass.TEMPERATURE,
|
|
"unit_of_measurement": UnitOfTemperature.CELSIUS,
|
|
"state_class": SensorStateClass.MEASUREMENT
|
|
},
|
|
"upstair_hour": {
|
|
"device_class": SensorDeviceClass.DURATION,
|
|
"unit_of_measurement": UnitOfTime.HOURS,
|
|
"state_class": SensorStateClass.MEASUREMENT
|
|
},
|
|
"upstair_min": {
|
|
"device_class": SensorDeviceClass.DURATION,
|
|
"unit_of_measurement": UnitOfTime.MINUTES,
|
|
"state_class": SensorStateClass.MEASUREMENT
|
|
},
|
|
"upstair_sec": {
|
|
"device_class": SensorDeviceClass.DURATION,
|
|
"unit_of_measurement": UnitOfTime.SECONDS,
|
|
"state_class": SensorStateClass.MEASUREMENT
|
|
},
|
|
"middlestair_hour": {
|
|
"device_class": SensorDeviceClass.DURATION,
|
|
"unit_of_measurement": UnitOfTime.HOURS,
|
|
"state_class": SensorStateClass.MEASUREMENT
|
|
},
|
|
"middlestair_min": {
|
|
"device_class": SensorDeviceClass.DURATION,
|
|
"unit_of_measurement": UnitOfTime.MINUTES,
|
|
"state_class": SensorStateClass.MEASUREMENT
|
|
},
|
|
"middlestair_sec": {
|
|
"device_class": SensorDeviceClass.DURATION,
|
|
"unit_of_measurement": UnitOfTime.SECONDS,
|
|
"state_class": SensorStateClass.MEASUREMENT
|
|
},
|
|
"downstair_hour": {
|
|
"device_class": SensorDeviceClass.DURATION,
|
|
"unit_of_measurement": UnitOfTime.HOURS,
|
|
"state_class": SensorStateClass.MEASUREMENT
|
|
},
|
|
"downstair_min": {
|
|
"device_class": SensorDeviceClass.DURATION,
|
|
"unit_of_measurement": UnitOfTime.MINUTES,
|
|
"state_class": SensorStateClass.MEASUREMENT
|
|
},
|
|
"downstair_sec": {
|
|
"device_class": SensorDeviceClass.DURATION,
|
|
"unit_of_measurement": UnitOfTime.SECONDS,
|
|
"state_class": SensorStateClass.MEASUREMENT
|
|
},
|
|
"order_hour": {
|
|
"device_class": SensorDeviceClass.DURATION,
|
|
"unit_of_measurement": UnitOfTime.HOURS,
|
|
"state_class": SensorStateClass.MEASUREMENT
|
|
},
|
|
"order_min": {
|
|
"device_class": SensorDeviceClass.DURATION,
|
|
"unit_of_measurement": UnitOfTime.MINUTES,
|
|
"state_class": SensorStateClass.MEASUREMENT
|
|
},
|
|
"order_sec": {
|
|
"device_class": SensorDeviceClass.DURATION,
|
|
"unit_of_measurement": UnitOfTime.SECONDS,
|
|
"state_class": SensorStateClass.MEASUREMENT
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|