forked from HomeAssistant/midea-meiju-codec
184 lines
7.8 KiB
Python
184 lines
7.8 KiB
Python
![]() |
from homeassistant.const import Platform, UnitOfTemperature, UnitOfVolume, 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": [
|
||
|
"power", "bubble", "cold_water", "bathtub", "safe", "cold_water_dot",
|
||
|
"change_litre_switch", "cold_water_ai", "cold_water_pressure",
|
||
|
"person_mode_one", "person_mode_two", "person_mode_three", "gesture_function",
|
||
|
"mode", "power_level", "type_machine", "capacity", "temperature"
|
||
|
],
|
||
|
"entities": {
|
||
|
Platform.SWITCH: {
|
||
|
"bubble": {
|
||
|
"device_class": SwitchDeviceClass.SWITCH,
|
||
|
},
|
||
|
"cold_water": {
|
||
|
"device_class": SwitchDeviceClass.SWITCH,
|
||
|
},
|
||
|
"bathtub": {
|
||
|
"device_class": SwitchDeviceClass.SWITCH,
|
||
|
},
|
||
|
"safe": {
|
||
|
"device_class": SwitchDeviceClass.SWITCH,
|
||
|
},
|
||
|
"cold_water_dot": {
|
||
|
"device_class": SwitchDeviceClass.SWITCH,
|
||
|
},
|
||
|
"change_litre_switch": {
|
||
|
"device_class": SwitchDeviceClass.SWITCH,
|
||
|
},
|
||
|
"cold_water_ai": {
|
||
|
"device_class": SwitchDeviceClass.SWITCH,
|
||
|
},
|
||
|
"cold_water_pressure": {
|
||
|
"device_class": SwitchDeviceClass.SWITCH,
|
||
|
},
|
||
|
"person_mode_one": {
|
||
|
"device_class": SwitchDeviceClass.SWITCH,
|
||
|
},
|
||
|
"person_mode_two": {
|
||
|
"device_class": SwitchDeviceClass.SWITCH,
|
||
|
},
|
||
|
"person_mode_three": {
|
||
|
"device_class": SwitchDeviceClass.SWITCH,
|
||
|
},
|
||
|
"gesture_function": {
|
||
|
"device_class": SwitchDeviceClass.SWITCH,
|
||
|
}
|
||
|
},
|
||
|
Platform.CLIMATE: {
|
||
|
"water_heater": {
|
||
|
"power": "power",
|
||
|
"hvac_modes": {
|
||
|
"off": {"power": "off"},
|
||
|
"heat": {"power": "on", "mode": "shower"}
|
||
|
},
|
||
|
"target_temperature": "temperature",
|
||
|
"current_temperature": "out_water_tem",
|
||
|
"min_temp": 20,
|
||
|
"max_temp": 60,
|
||
|
"temperature_unit": UnitOfTemperature.CELSIUS,
|
||
|
"precision": PRECISION_HALVES,
|
||
|
}
|
||
|
},
|
||
|
Platform.SELECT: {
|
||
|
"mode": {
|
||
|
"options": {
|
||
|
"shower": {"mode": "shower"},
|
||
|
"bath": {"mode": "bath"},
|
||
|
"mixed": {"mode": "mixed"},
|
||
|
"eco": {"mode": "eco"}
|
||
|
}
|
||
|
},
|
||
|
"power_level": {
|
||
|
"options": {
|
||
|
"low": {"power_level": "0"},
|
||
|
"medium": {"power_level": "1"},
|
||
|
"high": {"power_level": "2"},
|
||
|
"max": {"power_level": "3"}
|
||
|
}
|
||
|
},
|
||
|
"type_machine": {
|
||
|
"options": {
|
||
|
"standard": {"type_machine": "20"},
|
||
|
"premium": {"type_machine": "21"},
|
||
|
"deluxe": {"type_machine": "22"}
|
||
|
}
|
||
|
},
|
||
|
"capacity": {
|
||
|
"options": {
|
||
|
"small": {"capacity": "1"},
|
||
|
"medium": {"capacity": "2"},
|
||
|
"large": {"capacity": "3"}
|
||
|
}
|
||
|
},
|
||
|
"gesture_function_type": {
|
||
|
"options": {
|
||
|
"none": {"gesture_function_type": "0"},
|
||
|
"wave": {"gesture_function_type": "1"},
|
||
|
"touch": {"gesture_function_type": "2"},
|
||
|
"proximity": {"gesture_function_type": "3"}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
Platform.SENSOR: {
|
||
|
"out_water_tem": {
|
||
|
"device_class": SensorDeviceClass.TEMPERATURE,
|
||
|
"unit_of_measurement": UnitOfTemperature.CELSIUS,
|
||
|
"state_class": SensorStateClass.MEASUREMENT
|
||
|
},
|
||
|
"water_volume": {
|
||
|
"device_class": SensorDeviceClass.VOLUME,
|
||
|
"unit_of_measurement": UnitOfVolume.LITERS,
|
||
|
"state_class": SensorStateClass.MEASUREMENT
|
||
|
},
|
||
|
"zero_cold_tem": {
|
||
|
"device_class": SensorDeviceClass.TEMPERATURE,
|
||
|
"unit_of_measurement": UnitOfTemperature.CELSIUS,
|
||
|
"state_class": SensorStateClass.MEASUREMENT
|
||
|
},
|
||
|
"bath_out_volume": {
|
||
|
"device_class": SensorDeviceClass.VOLUME,
|
||
|
"unit_of_measurement": UnitOfVolume.LITERS,
|
||
|
"state_class": SensorStateClass.MEASUREMENT
|
||
|
},
|
||
|
"return_water_tem": {
|
||
|
"device_class": SensorDeviceClass.TEMPERATURE,
|
||
|
"unit_of_measurement": UnitOfTemperature.CELSIUS,
|
||
|
"state_class": SensorStateClass.MEASUREMENT
|
||
|
},
|
||
|
"change_litre": {
|
||
|
"device_class": SensorDeviceClass.VOLUME,
|
||
|
"unit_of_measurement": UnitOfVolume.LITERS,
|
||
|
"state_class": SensorStateClass.MEASUREMENT
|
||
|
},
|
||
|
"bathtub_water_level": {
|
||
|
"device_class": SensorDeviceClass.VOLUME,
|
||
|
"unit_of_measurement": UnitOfVolume.LITERS,
|
||
|
"state_class": SensorStateClass.MEASUREMENT
|
||
|
},
|
||
|
"temperature": {
|
||
|
"device_class": SensorDeviceClass.TEMPERATURE,
|
||
|
"unit_of_measurement": UnitOfTemperature.CELSIUS,
|
||
|
"state_class": SensorStateClass.MEASUREMENT
|
||
|
},
|
||
|
"gas_lift_percent": {
|
||
|
"device_class": SensorDeviceClass.POWER_FACTOR,
|
||
|
"unit_of_measurement": PERCENTAGE,
|
||
|
"state_class": SensorStateClass.MEASUREMENT
|
||
|
},
|
||
|
"person_tem_one": {
|
||
|
"device_class": SensorDeviceClass.TEMPERATURE,
|
||
|
"unit_of_measurement": UnitOfTemperature.CELSIUS,
|
||
|
"state_class": SensorStateClass.MEASUREMENT
|
||
|
},
|
||
|
"person_tem_two": {
|
||
|
"device_class": SensorDeviceClass.TEMPERATURE,
|
||
|
"unit_of_measurement": UnitOfTemperature.CELSIUS,
|
||
|
"state_class": SensorStateClass.MEASUREMENT
|
||
|
},
|
||
|
"person_tem_three": {
|
||
|
"device_class": SensorDeviceClass.TEMPERATURE,
|
||
|
"unit_of_measurement": UnitOfTemperature.CELSIUS,
|
||
|
"state_class": SensorStateClass.MEASUREMENT
|
||
|
},
|
||
|
"in_water_tem": {
|
||
|
"device_class": SensorDeviceClass.TEMPERATURE,
|
||
|
"unit_of_measurement": UnitOfTemperature.CELSIUS,
|
||
|
"state_class": SensorStateClass.MEASUREMENT
|
||
|
},
|
||
|
"error_code": {
|
||
|
"device_class": SensorDeviceClass.ENUM,
|
||
|
"state_class": SensorStateClass.MEASUREMENT
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|