1 Commits

Author SHA1 Message Date
sususweet
f99019bdca feat: support more devices. 2025-09-24 23:31:31 +08:00
15 changed files with 2169 additions and 8 deletions

View File

@@ -17,13 +17,28 @@
## 目前支持的设备类型
- T0xAC 空调
- T0xB3 消毒碗柜
- T0xB8 智能扫地机器人
- T0xCE 新风机
- T0xCF 中央空调暖家
- T0xD9 复式洗衣机
- T0xDB 滚筒洗衣机
- T0xDC 干衣机
- T0xE1 洗碗机
- T0xEA 电饭锅
- T0xED 软水机
- T0xFD 加湿器
欢迎合作开发添加更多设备支持。
合作开发方法:添加本插件后,找到未能正确识别的设备,点击对应设备`传感器`分类下的`连通性`
![img.png](img.png)
展开下面的`属性`卡片把里面这些字段复制给我或随issue提交等待适配就可以了。
![img_1.png](img_1.png)
## 实体映射
映射文件位于`device_mapping`下, 每个大的品类一个映射文件,目前支持映射的实体类型如下:

View File

@@ -53,7 +53,8 @@ PLATFORMS: list[Platform] = [
Platform.CLIMATE,
Platform.SELECT,
Platform.WATER_HEATER,
Platform.FAN
Platform.FAN,
Platform.HUMIDIFIER
]

View File

@@ -0,0 +1,199 @@
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
},
"version": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
}
}
}
}
}

View File

@@ -0,0 +1,187 @@
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": [
"power", "mode_state", "fan_set", "room_temp_value", "humidity_set"
],
"entities": {
Platform.SWITCH: {
"lock_state": {
"device_class": SwitchDeviceClass.SWITCH,
},
"esp_state": {
"device_class": SwitchDeviceClass.SWITCH,
},
"passby_enable": {
"device_class": SwitchDeviceClass.SWITCH,
},
"preheat_enable": {
"device_class": SwitchDeviceClass.SWITCH,
},
"remain_able": {
"device_class": SwitchDeviceClass.SWITCH,
},
"hcho_check_enable": {
"device_class": SwitchDeviceClass.SWITCH,
},
"co2_check_enable": {
"device_class": SwitchDeviceClass.SWITCH,
},
"function_set_link": {
"device_class": SwitchDeviceClass.SWITCH,
},
"function_set_sleep": {
"device_class": SwitchDeviceClass.SWITCH,
},
"function_set_energy_save": {
"device_class": SwitchDeviceClass.SWITCH,
},
"function_set_prheat": {
"device_class": SwitchDeviceClass.SWITCH,
},
"function_set_ultimate": {
"device_class": SwitchDeviceClass.SWITCH,
},
"clean_net_clean_flg": {
"device_class": SwitchDeviceClass.SWITCH,
},
"change_net_change_flg": {
"device_class": SwitchDeviceClass.SWITCH,
},
"condensation_state": {
"device_class": SwitchDeviceClass.SWITCH,
},
"humidity_state": {
"device_class": SwitchDeviceClass.SWITCH,
},
"preheat_state": {
"device_class": SwitchDeviceClass.SWITCH,
},
"esp_enable": {
"device_class": SwitchDeviceClass.SWITCH,
},
"pm25_check_enable": {
"device_class": SwitchDeviceClass.SWITCH,
},
"timer_state": {
"device_class": SwitchDeviceClass.SWITCH,
},
"power": {
"device_class": SwitchDeviceClass.SWITCH,
},
"freeze_state": {
"device_class": SwitchDeviceClass.SWITCH,
},
"humidity_check_enable": {
"device_class": SwitchDeviceClass.SWITCH,
}
},
Platform.SELECT: {
"mode_state": {
"options": {
"passby": {"mode_state": "passby"},
"auto": {"mode_state": "auto"},
"manual": {"mode_state": "manual"},
"sleep": {"mode_state": "sleep"},
"energy_save": {"mode_state": "energy_save"},
"ultimate": {"mode_state": "ultimate"}
}
},
"fan_set": {
"options": {
"off": {"fan_set": "0"},
"low": {"fan_set": "1"},
"medium": {"fan_set": "2"},
"high": {"fan_set": "3"},
"auto": {"fan_set": "4"}
}
}
},
Platform.SENSOR: {
"room_temp_value": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"clean_net_used_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.HOURS,
"state_class": SensorStateClass.MEASUREMENT
},
"change_net_used_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.HOURS,
"state_class": SensorStateClass.MEASUREMENT
},
"tvoc_value": {
"device_class": SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS,
"unit_of_measurement": "mg/m³",
"state_class": SensorStateClass.MEASUREMENT
},
"change_set_real_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.HOURS,
"state_class": SensorStateClass.MEASUREMENT
},
"clean_set_real_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.HOURS,
"state_class": SensorStateClass.MEASUREMENT
},
"error_code": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"humidity_set": {
"device_class": SensorDeviceClass.HUMIDITY,
"unit_of_measurement": "%",
"state_class": SensorStateClass.MEASUREMENT
},
"room_aqi_value": {
"device_class": SensorDeviceClass.AQI,
"state_class": SensorStateClass.MEASUREMENT
},
"change_net_set_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.HOURS,
"state_class": SensorStateClass.MEASUREMENT
},
"clean_net_set_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.HOURS,
"state_class": SensorStateClass.MEASUREMENT
},
"humidity_value": {
"device_class": SensorDeviceClass.HUMIDITY,
"unit_of_measurement": "%",
"state_class": SensorStateClass.MEASUREMENT
},
"hcho_value": {
"device_class": SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS,
"unit_of_measurement": "mg/m³",
"state_class": SensorStateClass.MEASUREMENT
},
"pm25_value": {
"device_class": SensorDeviceClass.PM25,
"unit_of_measurement": "µg/m³",
"state_class": SensorStateClass.MEASUREMENT
},
"co2_value": {
"device_class": SensorDeviceClass.CO2,
"unit_of_measurement": "ppm",
"state_class": SensorStateClass.MEASUREMENT
},
"machine_type": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
}
}
}
}
}

View File

@@ -0,0 +1,168 @@
from homeassistant.const import Platform, UnitOfTemperature, 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_state", "run_mode", "temp_set", "heat_enable", "cool_enable"
],
"entities": {
Platform.CLIMATE: {
"thermostat": {
"power": "power_state",
"hvac_modes": {
"off": {"power_state": "off"},
"heat": {"power_state": "on", "run_mode": "heat", "heat_enable": "on"},
"cool": {"power_state": "on", "run_mode": "cool", "cool_enable": "on"},
"auto": {"power_state": "on", "run_mode": "auto", "heat_enable": "on", "cool_enable": "on"}
},
"target_temperature": "temp_set",
"current_temperature": "cur_temp",
"min_temp": 5,
"max_temp": 70,
"temperature_unit": UnitOfTemperature.CELSIUS,
"precision": PRECISION_HALVES,
}
},
Platform.SWITCH: {
"freeze_state": {
"device_class": SwitchDeviceClass.SWITCH,
},
"power_state": {
"device_class": SwitchDeviceClass.SWITCH,
},
"heat_enable": {
"device_class": SwitchDeviceClass.SWITCH,
},
"cool_enable": {
"device_class": SwitchDeviceClass.SWITCH,
},
"silence_set_state": {
"device_class": SwitchDeviceClass.SWITCH,
},
"time_set_state": {
"device_class": SwitchDeviceClass.SWITCH,
},
"silence_state": {
"device_class": SwitchDeviceClass.SWITCH,
},
"holiday_state": {
"device_class": SwitchDeviceClass.SWITCH,
},
"holiday_set_state": {
"device_class": SwitchDeviceClass.SWITCH,
},
"holiday_on_state": {
"device_class": SwitchDeviceClass.SWITCH,
},
"room_temp_ctrl": {
"device_class": SwitchDeviceClass.SWITCH,
},
"room_temp_set": {
"device_class": SwitchDeviceClass.SWITCH,
},
"comp_state": {
"device_class": SwitchDeviceClass.SWITCH,
},
"day_time_state": {
"device_class": SwitchDeviceClass.SWITCH,
},
"week_time_state": {
"device_class": SwitchDeviceClass.SWITCH,
},
"warn_state": {
"device_class": SwitchDeviceClass.SWITCH,
},
"defrost_state": {
"device_class": SwitchDeviceClass.SWITCH,
},
"pre_heat": {
"device_class": SwitchDeviceClass.SWITCH,
}
},
Platform.SELECT: {
"run_mode": {
"options": {
"heat": {"run_mode": "heat"},
"cool": {"run_mode": "cool"},
"auto": {"run_mode": "auto"},
"fan": {"run_mode": "fan"},
"dry": {"run_mode": "dry"}
}
},
"temp_type": {
"options": {
"water_temperature": {"temp_type": "water_temperature"},
"room_temperature": {"temp_type": "room_temperature"},
"outdoor_temperature": {"temp_type": "outdoor_temperature"}
}
}
},
Platform.SENSOR: {
"cur_temp": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"error_code": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"heat_max_set_temp": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"heat_min_set_temp": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"cool_max_set_temp": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"cool_min_set_temp": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"auto_max_set_temp": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"auto_min_set_temp": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"preheat_on_set_temp": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"preheat_max_set_temp": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"preheat_min_set_temp": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"temp_set": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
}
}
}
}
}

View File

@@ -0,0 +1,186 @@
from homeassistant.const import Platform, UnitOfElectricPotential, 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": [0, 1],
"calculate": {
"get": [
{
"lvalue": "[remaining_time]",
"rvalue": "[db_remain_time]"
}
],
"set": {
}
},
"entities": {
Platform.SWITCH: {
"db_power": {
"device_class": SwitchDeviceClass.SWITCH,
},
"db_clean_notification": {
"device_class": SwitchDeviceClass.SWITCH,
},
"db_softener_needed": {
"device_class": SwitchDeviceClass.SWITCH,
},
"db_detergent_needed": {
"device_class": SwitchDeviceClass.SWITCH,
},
"db_nightly_wash": {
"device_class": SwitchDeviceClass.SWITCH,
},
"db_baby_lock": {
"device_class": SwitchDeviceClass.SWITCH,
},
"db_light": {
"device_class": SwitchDeviceClass.SWITCH,
},
"db_steam_wash": {
"device_class": SwitchDeviceClass.SWITCH,
},
"db_fast_clean_wash": {
"device_class": SwitchDeviceClass.SWITCH,
},
"db_wash_dry_link": {
"device_class": SwitchDeviceClass.SWITCH,
}
},
Platform.SELECT: {
"db_running_status": {
"options": {
"stop": {"db_running_status": "stop"},
"start": {"db_running_status": "start"},
"pause": {"db_running_status": "pause"},
"finish": {"db_running_status": "finish"},
"error": {"db_running_status": "error"}
}
},
"db_program": {
"options": {
"fast_wash_30": {"db_program": "fast_wash_30"},
"normal_wash": {"db_program": "normal_wash"},
"heavy_wash": {"db_program": "heavy_wash"},
"delicate_wash": {"db_program": "delicate_wash"},
"quick_wash": {"db_program": "quick_wash"},
"eco_wash": {"db_program": "eco_wash"}
}
},
"db_water_level": {
"options": {
"low": {"db_water_level": "1"},
"medium": {"db_water_level": "2"},
"high": {"db_water_level": "3"},
"extra_high": {"db_water_level": "4"}
}
},
"db_temperature": {
"options": {
"cold": {"db_temperature": "1"},
"warm": {"db_temperature": "2"},
"hot": {"db_temperature": "3"},
"extra_hot": {"db_temperature": "4"}
}
},
"dehydration_speed": {
"options": {
"low": {"dehydration_speed": "1"},
"medium": {"dehydration_speed": "2"},
"high": {"dehydration_speed": "3"},
"extra_high": {"dehydration_speed": "4"}
}
},
"db_detergent": {
"options": {
"none": {"db_detergent": "1"},
"little": {"db_detergent": "2"},
"normal": {"db_detergent": "3"},
"more": {"db_detergent": "4"}
}
},
"db_softener": {
"options": {
"none": {"db_softener": "1"},
"little": {"db_softener": "2"},
"normal": {"db_softener": "3"},
"more": {"db_softener": "4"}
}
},
"db_position": {
"options": {
"position_1": {"db_position": "1"},
"position_2": {"db_position": "2"},
"position_3": {"db_position": "3"}
}
},
"db_location": {
"options": {
"location_1": {"db_location": "1"},
"location_2": {"db_location": "2"},
"location_3": {"db_location": "3"}
}
}
},
Platform.SENSOR: {
"db_remain_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"db_progress": {
"device_class": SensorDeviceClass.BATTERY,
"unit_of_measurement": "%",
"state_class": SensorStateClass.MEASUREMENT
},
"db_error_code": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"db_set_dewater_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"db_set_wash_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"db_device_software_version": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"db_rinse_count": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"db_wash_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"db_appointment_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"db_appointment": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"db_dehydration_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"db_cycle_memory": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
}
}
}
}
}

View File

@@ -0,0 +1,399 @@
from homeassistant.const import Platform, UnitOfElectricPotential, 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": [0, 1],
"calculate": {
"get": [
{
"lvalue": "[remaining_time]",
"rvalue": "[remain_time]"
}
],
"set": {
}
},
"entities": {
Platform.SWITCH: {
"power": {
"device_class": SwitchDeviceClass.SWITCH,
},
"softener_lack": {
"device_class": SwitchDeviceClass.SWITCH,
},
"detergent_lack": {
"device_class": SwitchDeviceClass.SWITCH,
},
"door_opened": {
"device_class": SwitchDeviceClass.SWITCH,
},
"bucket_water_overheating": {
"device_class": SwitchDeviceClass.SWITCH,
},
"memory": {
"device_class": SwitchDeviceClass.SWITCH,
},
"appointment": {
"device_class": SwitchDeviceClass.SWITCH,
},
"spray_wash": {
"device_class": SwitchDeviceClass.SWITCH,
},
"old_speedy": {
"device_class": SwitchDeviceClass.SWITCH,
},
"nightly": {
"device_class": SwitchDeviceClass.SWITCH,
},
"down_light": {
"device_class": SwitchDeviceClass.SWITCH,
},
"easy_ironing": {
"device_class": SwitchDeviceClass.SWITCH,
},
"super_clean_wash": {
"device_class": SwitchDeviceClass.SWITCH,
},
"intelligent_wash": {
"device_class": SwitchDeviceClass.SWITCH,
},
"strong_wash": {
"device_class": SwitchDeviceClass.SWITCH,
},
"silent": {
"device_class": SwitchDeviceClass.SWITCH,
},
"speedy": {
"device_class": SwitchDeviceClass.SWITCH,
},
"lock": {
"device_class": SwitchDeviceClass.SWITCH,
},
"flocks_switcher": {
"device_class": SwitchDeviceClass.SWITCH,
},
"fresh_anion_switch": {
"device_class": SwitchDeviceClass.SWITCH,
},
"dry_weighing_already": {
"device_class": SwitchDeviceClass.SWITCH,
},
"keep_fresh_status": {
"device_class": SwitchDeviceClass.SWITCH,
},
"drying_tunnel_overheating": {
"device_class": SwitchDeviceClass.SWITCH,
},
"fast_clean_wash": {
"device_class": SwitchDeviceClass.SWITCH,
},
"steam_wash": {
"device_class": SwitchDeviceClass.SWITCH,
},
"beforehand_wash": {
"device_class": SwitchDeviceClass.SWITCH,
},
"ai_flag": {
"device_class": SwitchDeviceClass.SWITCH,
},
"water_plus": {
"device_class": SwitchDeviceClass.SWITCH,
},
"soak": {
"device_class": SwitchDeviceClass.SWITCH,
},
"ultraviolet_lamp": {
"device_class": SwitchDeviceClass.SWITCH,
},
"eye_wash": {
"device_class": SwitchDeviceClass.SWITCH,
},
"microbubble": {
"device_class": SwitchDeviceClass.SWITCH,
},
"wind_dispel": {
"device_class": SwitchDeviceClass.SWITCH,
},
"cycle_memory": {
"device_class": SwitchDeviceClass.SWITCH,
}
},
Platform.SELECT: {
"running_status": {
"options": {
"standby": {"running_status": "standby"},
"running": {"running_status": "running"},
"pause": {"running_status": "pause"},
"finish": {"running_status": "finish"},
"error": {"running_status": "error"}
}
},
"db_dehydration_speed": {
"options": {
"low": {"db_dehydration_speed": "1"},
"medium": {"db_dehydration_speed": "2"},
"high": {"db_dehydration_speed": "3"},
"extra_high": {"db_dehydration_speed": "4"}
}
},
"mode": {
"options": {
"normal": {"mode": "normal"},
"eco": {"mode": "eco"},
"quick": {"mode": "quick"},
"heavy": {"mode": "heavy"},
"delicate": {"mode": "delicate"}
}
},
"water_level": {
"options": {
"low": {"water_level": "low"},
"medium": {"water_level": "medium"},
"high": {"water_level": "high"},
"extra_high": {"water_level": "extra_high"}
}
},
"program": {
"options": {
"ssp": {"program": "ssp"},
"cotton": {"program": "cotton"},
"synthetic": {"program": "synthetic"},
"wool": {"program": "wool"},
"delicate": {"program": "delicate"},
"quick": {"program": "quick"}
}
},
"temperature": {
"options": {
"cold": {"temperature": "cold"},
"warm": {"temperature": "warm"},
"hot": {"temperature": "hot"},
"extra_hot": {"temperature": "extra_hot"}
}
},
"detergent_density": {
"options": {
"low": {"detergent_density": "low"},
"medium": {"detergent_density": "medium"},
"high": {"detergent_density": "high"},
"extra_high": {"detergent_density": "extra_high"}
}
},
"softener_density": {
"options": {
"low": {"softener_density": "low"},
"medium": {"softener_density": "medium"},
"high": {"softener_density": "high"},
"extra_high": {"softener_density": "extra_high"}
}
},
"detergent": {
"options": {
"none": {"detergent": "none"},
"little": {"detergent": "little"},
"normal": {"detergent": "normal"},
"more": {"detergent": "more"}
}
},
"softener": {
"options": {
"none": {"softener": "none"},
"little": {"softener": "little"},
"normal": {"softener": "normal"},
"more": {"softener": "more"}
}
},
"season": {
"options": {
"spring": {"season": "spring"},
"summer": {"season": "summer"},
"autumn": {"season": "autumn"},
"winter": {"season": "winter"}
}
},
"disinfectant": {
"options": {
"none": {"disinfectant": "none"},
"light": {"disinfectant": "light"},
"medium": {"disinfectant": "medium"},
"strong": {"disinfectant": "strong"}
}
},
"dirty_degree": {
"options": {
"light": {"dirty_degree": "light"},
"medium": {"dirty_degree": "medium"},
"heavy": {"dirty_degree": "heavy"},
"extra_heavy": {"dirty_degree": "extra_heavy"}
}
},
"stains": {
"options": {
"none": {"stains": "none"},
"light": {"stains": "light"},
"medium": {"stains": "medium"},
"heavy": {"stains": "heavy"}
}
},
"add_rinse": {
"options": {
"none": {"add_rinse": "none"},
"one": {"add_rinse": "one"},
"two": {"add_rinse": "two"},
"three": {"add_rinse": "three"}
}
},
"soak_count": {
"options": {
"none": {"soak_count": "none"},
"one": {"soak_count": "one"},
"two": {"soak_count": "two"},
"three": {"soak_count": "three"}
}
}
},
Platform.SENSOR: {
"wash_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"appointment_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"remain_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"dryer": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"remote_control_flag": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"progress": {
"device_class": SensorDeviceClass.BATTERY,
"unit_of_measurement": "%",
"state_class": SensorStateClass.MEASUREMENT
},
"cloud_cycle_low": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"cloud_cycle_high": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"cloud_cycle_jiepai1": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"cloud_cycle_jiepai2": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"cloud_cycle_jiepai3": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"cloud_cycle_jiepai4": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"cloud_cycle_jiepai_time1": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"dehydration_time_value": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"cloud_cycle_jiepai_time3": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"cloud_cycle_jiepai_time4": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"customize_machine_cycle": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"detergent_global": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"softener_global": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"detergent_density_global": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"softener_density_global": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"fresh_air_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"flocks_remind_period": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"device_software_version": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"expert_step": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"error_code": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"flocks_wash_count": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"active_oxygen": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"dehydration_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"cloud_cycle_jiepai_time2": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"wash_time_value": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
}
}
}
}
}

View File

@@ -0,0 +1,153 @@
from homeassistant.const import Platform, 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": [
"power", "ai_switch", "light", "appointment", "prevent_wrinkle_switch",
"steam_switch", "damp_dry_signal", "eco_dry_switch", "bucket_clean_switch",
"water_box", "baby_lock", "remind_sound", "steam", "prevent_wrinkle",
"material", "sterilize", "dryness_level", "dry_temp", "intensity", "program"
],
"entities": {
Platform.SWITCH: {
"ai_switch": {
"device_class": SwitchDeviceClass.SWITCH,
},
"light": {
"device_class": SwitchDeviceClass.SWITCH,
},
"appointment": {
"device_class": SwitchDeviceClass.SWITCH,
},
"prevent_wrinkle_switch": {
"device_class": SwitchDeviceClass.SWITCH,
},
"steam_switch": {
"device_class": SwitchDeviceClass.SWITCH,
},
"damp_dry_signal": {
"device_class": SwitchDeviceClass.SWITCH,
},
"eco_dry_switch": {
"device_class": SwitchDeviceClass.SWITCH,
},
"bucket_clean_switch": {
"device_class": SwitchDeviceClass.SWITCH,
},
"water_box": {
"device_class": SwitchDeviceClass.SWITCH,
},
"baby_lock": {
"device_class": SwitchDeviceClass.SWITCH,
},
"remind_sound": {
"device_class": SwitchDeviceClass.SWITCH,
},
"steam": {
"device_class": SwitchDeviceClass.SWITCH,
},
"power": {
"device_class": SwitchDeviceClass.SWITCH,
}
},
Platform.BINARY_SENSOR: {
"door_warn": {
"device_class": BinarySensorDeviceClass.PROBLEM,
}
},
Platform.SELECT: {
"prevent_wrinkle": {
"options": {
"off": {"prevent_wrinkle": "0"},
"low": {"prevent_wrinkle": "1"},
"medium": {"prevent_wrinkle": "2"},
"high": {"prevent_wrinkle": "3"}
}
},
"material": {
"options": {
"cotton": {"material": "0"},
"synthetic": {"material": "1"},
"wool": {"material": "2"},
"delicate": {"material": "3"},
"mixed": {"material": "4"}
}
},
"sterilize": {
"options": {
"off": {"sterilize": "0"},
"on": {"sterilize": "1"}
}
},
"dryness_level": {
"options": {
"extra_dry": {"dryness_level": "0"},
"dry": {"dryness_level": "1"},
"normal": {"dryness_level": "2"},
"damp": {"dryness_level": "3"}
}
},
"dry_temp": {
"options": {
"low": {"dry_temp": "0"},
"medium": {"dry_temp": "1"},
"high": {"dry_temp": "2"},
"extra_high": {"dry_temp": "3"}
}
},
"intensity": {
"options": {
"low": {"intensity": "0"},
"medium": {"intensity": "1"},
"high": {"intensity": "2"}
}
},
"program": {
"options": {
"mixed_wash": {"program": "mixed_wash"},
"cotton": {"program": "cotton"},
"synthetic": {"program": "synthetic"},
"wool": {"program": "wool"},
"delicate": {"program": "delicate"},
"quick": {"program": "quick"},
"eco": {"program": "eco"}
}
}
},
Platform.SENSOR: {
"appointment_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"remain_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"progress": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"version": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"error_code": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"dry_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
}
}
}
}
}

View File

@@ -0,0 +1,158 @@
from homeassistant.const import Platform, UnitOfTemperature, UnitOfTime, PERCENTAGE
from homeassistant.components.sensor import SensorStateClass, SensorDeviceClass
from homeassistant.components.binary_sensor import BinarySensorDeviceClass
from homeassistant.components.switch import SwitchDeviceClass
from homeassistant.components.humidifier import HumidifierDeviceClass
DEVICE_MAPPING = {
"default": {
"rationale": ["off", "on"],
"queries": [{}],
"centralized": [
"power", "disinfect_on_off", "netions_on_off", "airdry_on_off",
"wind_gear", "wind_speed", "light_color", "bright_led",
"humidity_mode", "tank_status", "humidity", "cur_humidity"
],
"entities": {
Platform.SWITCH: {
"disinfect_on_off": {
"device_class": SwitchDeviceClass.SWITCH,
},
"netions_on_off": {
"device_class": SwitchDeviceClass.SWITCH,
},
"airdry_on_off": {
"device_class": SwitchDeviceClass.SWITCH,
},
"power": {
"device_class": SwitchDeviceClass.SWITCH,
},
"buzzer": {
"device_class": SwitchDeviceClass.SWITCH,
},
"power_on_timer": {
"device_class": SwitchDeviceClass.SWITCH,
},
"power_off_timer": {
"device_class": SwitchDeviceClass.SWITCH,
},
"display_on_off": {
"device_class": SwitchDeviceClass.SWITCH,
}
},
Platform.BINARY_SENSOR: {
"add_water_flag": {
"device_class": BinarySensorDeviceClass.PROBLEM,
}
},
Platform.HUMIDIFIER: {
"humidifier": {
"device_class": HumidifierDeviceClass.HUMIDIFIER,
"power": "power",
"target_humidity": "humidity",
"current_humidity": "cur_humidity",
"min_humidity": 30,
"max_humidity": 80,
"mode": "humidity_mode",
"modes": {
"manual": {"humidity_mode": "manual"},
"auto": {"humidity_mode": "auto"},
"sleep": {"humidity_mode": "sleep"},
"baby": {"humidity_mode": "baby"}
}
}
},
Platform.SELECT: {
"wind_gear": {
"options": {
"low": {"wind_gear": "low"},
"medium": {"wind_gear": "medium"},
"high": {"wind_gear": "high"},
"auto": {"wind_gear": "auto"},
"invalid": {"wind_gear": "invalid"}
}
},
"wind_speed": {
"options": {
"low": {"wind_speed": "low"},
"medium": {"wind_speed": "medium"},
"high": {"wind_speed": "high"},
"auto": {"wind_speed": "auto"}
}
},
"light_color": {
"options": {
"warm": {"light_color": "warm"},
"cool": {"light_color": "cool"},
"white": {"light_color": "white"},
"blue": {"light_color": "blue"},
"green": {"light_color": "green"},
"red": {"light_color": "red"},
"off": {"light_color": "off"}
}
},
"bright_led": {
"options": {
"light": {"bright_led": "light"},
"dim": {"bright_led": "dim"},
"off": {"bright_led": "off"}
}
},
"tank_status": {
"options": {
"normal": {"tank_status": "0"},
"low": {"tank_status": "1"},
"empty": {"tank_status": "2"},
"error": {"tank_status": "3"}
}
}
},
Platform.SENSOR: {
"running_percent": {
"device_class": SensorDeviceClass.POWER_FACTOR,
"unit_of_measurement": PERCENTAGE,
"state_class": SensorStateClass.MEASUREMENT
},
"error_code": {
"device_class": SensorDeviceClass.ENUM,
"state_class": SensorStateClass.MEASUREMENT
},
"cur_temperature": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"sensor_battery": {
"device_class": SensorDeviceClass.BATTERY,
"unit_of_measurement": PERCENTAGE,
"state_class": SensorStateClass.MEASUREMENT
},
"sensor_humidify": {
"device_class": SensorDeviceClass.HUMIDITY,
"unit_of_measurement": PERCENTAGE,
"state_class": SensorStateClass.MEASUREMENT
},
"sensor_temperature": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"air_dry_left_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"time_on": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
},
"time_off": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.MINUTES,
"state_class": SensorStateClass.MEASUREMENT
}
}
}
}
}

View File

@@ -0,0 +1,151 @@
from homeassistant.components.humidifier import (
HumidifierEntity,
HumidifierDeviceClass
)
from homeassistant.const import Platform
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DOMAIN
from .midea_entity import MideaEntity
from . import load_device_config
async def async_setup_entry(
hass: HomeAssistant,
config_entry: ConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up humidifier entities for Midea devices."""
account_bucket = hass.data.get(DOMAIN, {}).get("accounts", {}).get(config_entry.entry_id)
if not account_bucket:
async_add_entities([])
return
device_list = account_bucket.get("device_list", {})
coordinator_map = account_bucket.get("coordinator_map", {})
devs = []
for device_id, info in device_list.items():
device_type = info.get("type")
sn8 = info.get("sn8")
config = await load_device_config(hass, device_type, sn8) or {}
entities_cfg = (config.get("entities") or {}).get(Platform.HUMIDIFIER, {})
manufacturer = config.get("manufacturer")
rationale = config.get("rationale")
coordinator = coordinator_map.get(device_id)
device = coordinator.device if coordinator else None
for entity_key, ecfg in entities_cfg.items():
devs.append(MideaHumidifierEntity(
coordinator, device, manufacturer, rationale, entity_key, ecfg
))
async_add_entities(devs)
class MideaHumidifierEntity(MideaEntity, HumidifierEntity):
"""Generic humidifier entity."""
def __init__(self, coordinator, device, manufacturer, rationale, entity_key, config):
super().__init__(
coordinator,
device.device_id,
device.device_name,
f"T0x{device.device_type:02X}",
device.sn,
device.sn8,
device.model,
entity_key,
device=device,
manufacturer=manufacturer,
rationale=rationale,
config=config,
)
self._device = device
self._manufacturer = manufacturer
self._rationale = rationale
self._entity_key = entity_key
self._config = config
@property
def device_class(self):
"""Return the device class."""
return self._config.get("device_class", HumidifierDeviceClass.HUMIDIFIER)
@property
def is_on(self):
"""Return if the humidifier is on."""
power_key = self._config.get("power")
if power_key:
value = self.device_attributes.get(power_key)
if isinstance(value, bool):
return value
return value == 1 or value == "on" or value == "true"
return False
@property
def target_humidity(self):
"""Return the target humidity."""
target_humidity_key = self._config.get("target_humidity")
if target_humidity_key:
return self.device_attributes.get(target_humidity_key, 0)
return 0
@property
def current_humidity(self):
"""Return the current humidity."""
current_humidity_key = self._config.get("current_humidity")
if current_humidity_key:
return self.device_attributes.get(current_humidity_key, 0)
return 0
@property
def min_humidity(self):
"""Return the minimum humidity."""
return self._config.get("min_humidity", 30)
@property
def max_humidity(self):
"""Return the maximum humidity."""
return self._config.get("max_humidity", 80)
@property
def mode(self):
"""Return the current mode."""
mode_key = self._config.get("mode")
if mode_key:
return self.device_attributes.get(mode_key, "manual")
return "manual"
@property
def available_modes(self):
"""Return the available modes."""
modes = self._config.get("modes", {})
return list(modes.keys())
async def async_turn_on(self, **kwargs):
"""Turn the humidifier on."""
power_key = self._config.get("power")
if power_key:
await self._device.set_attribute(power_key, True)
async def async_turn_off(self, **kwargs):
"""Turn the humidifier off."""
power_key = self._config.get("power")
if power_key:
await self._device.set_attribute(power_key, False)
async def async_set_humidity(self, humidity: int):
"""Set the target humidity."""
target_humidity_key = self._config.get("target_humidity")
if target_humidity_key:
await self._device.set_attribute(target_humidity_key, humidity)
async def async_set_mode(self, mode: str):
"""Set the mode."""
mode_key = self._config.get("mode")
modes = self._config.get("modes", {})
if mode_key and mode in modes:
mode_config = modes[mode]
for attr_key, attr_value in mode_config.items():
await self._device.set_attribute(attr_key, attr_value)

View File

@@ -7,5 +7,5 @@
"iot_class": "cloud_push",
"issue_tracker": "https://github.com/sususweet/midea-meiju-codec/issues",
"requirements": [],
"version": "v0.0.3"
"version": "v0.0.4"
}

View File

@@ -118,7 +118,50 @@
"error_type": { "name": "Error Type" },
"control_type": { "name": "Control Type" },
"mode": { "name": "Mode" },
"rice_type": { "name": "Rice Type" }
"rice_type": { "name": "Rice Type" },
"db_running_status": { "name": "DB Running Status" },
"db_program": { "name": "DB Program" },
"db_water_level": { "name": "DB Water Level" },
"db_temperature": { "name": "DB Temperature" },
"db_dehydration_speed": { "name": "DB Dehydration Speed" },
"db_detergent": { "name": "DB Detergent" },
"db_softener": { "name": "DB Softener" },
"db_position": { "name": "DB Position" },
"db_location": { "name": "DB Location" },
"running_status": { "name": "Running Status" },
"mode": { "name": "Mode" },
"program": { "name": "Program" },
"detergent_density": { "name": "Detergent Density" },
"softener_density": { "name": "Softener Density" },
"season": { "name": "Season" },
"disinfectant": { "name": "Disinfectant" },
"dirty_degree": { "name": "Dirty Degree" },
"stains": { "name": "Stains" },
"add_rinse": { "name": "Add Rinse" },
"soak_count": { "name": "Soak Count" },
"run_mode": { "name": "Run Mode" },
"temp_type": { "name": "Temp Type" },
"mode_state": { "name": "Mode State" },
"fan_set": { "name": "Fan Set" },
"upstair_work_status": { "name": "Up Stair Work Status" },
"downstair_work_status": { "name": "Down Stair Work Status" },
"middlestair_work_status": { "name": "Middle Stair Work Status" },
"upstair_mode": { "name": "Up Stair Mode" },
"downstair_mode": { "name": "Down Stair Mode" },
"middlestair_mode": { "name": "Middle Stair Mode" },
"prevent_wrinkle": { "name": "Prevent Wrinkle" },
"material": { "name": "Material" },
"sterilize": { "name": "Sterilize" },
"dryness_level": { "name": "Dryness Level" },
"dry_temp": { "name": "Dry Temperature" },
"intensity": { "name": "Intensity" },
"program": { "name": "Program" },
"wind_gear": { "name": "Wind Gear" },
"wind_speed": { "name": "Wind Speed" },
"light_color": { "name": "Light Color" },
"bright_led": { "name": "Bright LED" },
"humidity_mode": { "name": "Humidity Mode" },
"tank_status": { "name": "Tank Status" }
},
"sensor": {
"bright": { "name": "Brightness" },
@@ -186,7 +229,115 @@
"warming_time": { "name": "Warming Time" },
"delay_time": { "name": "Delay Time" },
"indoor_temperature": { "name": "Indoor Temperature" },
"outdoor_temperature": { "name": "Outdoor Temperature" }
"outdoor_temperature": { "name": "Outdoor Temperature" },
"db_remain_time": { "name": "DB Remain Time" },
"db_progress": { "name": "DB Progress" },
"db_error_code": { "name": "DB Error Code" },
"db_set_dewater_time": { "name": "DB Set Dewater Time" },
"db_set_wash_time": { "name": "DB Set Wash Time" },
"db_project_no": { "name": "DB Project No" },
"db_device_software_version": { "name": "DB Device Software Version" },
"db_rinse_count": { "name": "DB Rinse Count" },
"db_wash_time": { "name": "DB Wash Time" },
"db_appointment_time": { "name": "DB Appointment Time" },
"db_appointment": { "name": "DB Appointment" },
"db_dehydration_time": { "name": "DB Dehydration Time" },
"db_cycle_memory": { "name": "DB Cycle Memory" },
"dehydration_speed": { "name": "Dehydration Speed" },
"wash_time": { "name": "Wash Time" },
"appointment_time": { "name": "Appointment Time" },
"remain_time": { "name": "Remain Time" },
"project_no": { "name": "Project No" },
"dryer": { "name": "Dryer" },
"remote_control_flag": { "name": "Remote Control Flag" },
"progress": { "name": "Progress" },
"cloud_cycle_low": { "name": "Cloud Cycle Low" },
"cloud_cycle_high": { "name": "Cloud Cycle High" },
"cloud_cycle_jiepai1": { "name": "Cloud Cycle Jiepai1" },
"cloud_cycle_jiepai2": { "name": "Cloud Cycle Jiepai2" },
"cloud_cycle_jiepai3": { "name": "Cloud Cycle Jiepai3" },
"cloud_cycle_jiepai4": { "name": "Cloud Cycle Jiepai4" },
"cloud_cycle_jiepai_time1": { "name": "Cloud Cycle Jiepai Time1" },
"dehydration_time_value": { "name": "Dehydration Time Value" },
"cloud_cycle_jiepai_time3": { "name": "Cloud Cycle Jiepai Time3" },
"cloud_cycle_jiepai_time4": { "name": "Cloud Cycle Jiepai Time4" },
"customize_machine_cycle": { "name": "Customize Machine Cycle" },
"detergent_global": { "name": "Detergent Global" },
"softener_global": { "name": "Softener Global" },
"detergent_density_global": { "name": "Detergent Density Global" },
"softener_density_global": { "name": "Softener Density Global" },
"fresh_air_time": { "name": "Fresh Air Time" },
"flocks_remind_period": { "name": "Flocks Remind Period" },
"device_software_version": { "name": "Device Software Version" },
"expert_step": { "name": "Expert Step" },
"error_code": { "name": "Error Code" },
"flocks_wash_count": { "name": "Flocks Wash Count" },
"active_oxygen": { "name": "Active Oxygen" },
"version": { "name": "Version" },
"dehydration_time": { "name": "Dehydration Time" },
"cloud_cycle_jiepai_time2": { "name": "Cloud Cycle Jiepai Time2" },
"wash_time_value": { "name": "Wash Time Value" },
"cur_temp": { "name": "Current Temperature" },
"error_code": { "name": "Error Code" },
"heat_max_set_temp": { "name": "Heat Max Set Temp" },
"heat_min_set_temp": { "name": "Heat Min Set Temp" },
"cool_max_set_temp": { "name": "Cool Max Set Temp" },
"cool_min_set_temp": { "name": "Cool Min Set Temp" },
"auto_max_set_temp": { "name": "Auto Max Set Temp" },
"auto_min_set_temp": { "name": "Auto Min Set Temp" },
"preheat_on_set_temp": { "name": "Preheat On Set Temp" },
"preheat_max_set_temp": { "name": "Preheat Max Set Temp" },
"preheat_min_set_temp": { "name": "Preheat Min Set Temp" },
"version": { "name": "Version" },
"temp_set": { "name": "Temperature Set" },
"room_temp_value": { "name": "Room Temperature Value" },
"clean_net_used_time": { "name": "Clean Net Used Time" },
"change_net_used_time": { "name": "Change Net Used Time" },
"tvoc_value": { "name": "TVOC Value" },
"change_set_real_time": { "name": "Change Set Real Time" },
"clean_set_real_time": { "name": "Clean Set Real Time" },
"humidity_set": { "name": "Humidity Set" },
"room_aqi_value": { "name": "Room AQI Value" },
"change_net_set_time": { "name": "Change Net Set Time" },
"clean_net_set_time": { "name": "Clean Net Set Time" },
"humidity_value": { "name": "Humidity Value" },
"hcho_value": { "name": "HCHO Value" },
"pm25_value": { "name": "PM2.5 Value" },
"co2_value": { "name": "CO2 Value" },
"machine_type": { "name": "Machine Type" },
"upstair_temp": { "name": "Up Stair Temperature" },
"downstair_temp": { "name": "Down Stair Temperature" },
"middlestair_temp": { "name": "Middle Stair Temperature" },
"upstair_hour": { "name": "Up Stair Hour" },
"upstair_min": { "name": "Up Stair Min" },
"upstair_sec": { "name": "Up Stair Sec" },
"middlestair_hour": { "name": "Middle Stair Hour" },
"middlestair_min": { "name": "Middle Stair Min" },
"middlestair_sec": { "name": "Middle Stair Sec" },
"downstair_hour": { "name": "Down Stair Hour" },
"downstair_min": { "name": "Down Stair Min" },
"downstair_sec": { "name": "Down Stair Sec" },
"order_hour": { "name": "Order Hour" },
"order_min": { "name": "Order Min" },
"order_sec": { "name": "Order Sec" },
"appointment_time": { "name": "Appointment Time" },
"project_no": { "name": "Project Number" },
"remain_time": { "name": "Remain Time" },
"progress": { "name": "Progress" },
"version": { "name": "Version" },
"error_code": { "name": "Error Code" },
"dry_time": { "name": "Dry Time" },
"version": { "name": "Version" },
"time_off": { "name": "Time Off" },
"humidity": { "name": "Humidity" },
"cur_temperature": { "name": "Current Temperature" },
"cur_humidity": { "name": "Current Humidity" },
"time_on": { "name": "Time On" },
"air_dry_left_time": { "name": "Air Dry Left Time" },
"sensor_battery": { "name": "Sensor Battery" },
"running_percent": { "name": "Running Percent" },
"sensor_humidify": { "name": "Sensor Humidify" },
"sensor_temperature": { "name": "Sensor Temperature" }
},
"binary_sensor": {
"air_status": { "name": "Air Running" },
@@ -210,6 +361,9 @@
"climate": {
"thermostat": { "name": "Thermostat" }
},
"humidifier": {
"humidifier": { "name": "Humidifier" }
},
"switch": {
"airswitch": { "name": "AC Switch" },
"waterswitch": { "name": "Water Switch" },
@@ -236,7 +390,125 @@
"pre_regeneration": { "name": "Pre Regeneration" },
"dry": { "name": "Dry" },
"prevent_straight_wind": { "name": "Prevent Straight Wind" },
"aux_heat": { "name": "Aux Heat" }
"aux_heat": { "name": "Aux Heat" },
"db_power": { "name": "DB Power" },
"db_clean_notification": { "name": "DB Clean Notification" },
"db_softener_needed": { "name": "DB Softener Needed" },
"db_detergent_needed": { "name": "DB Detergent Needed" },
"db_nightly_wash": { "name": "DB Nightly Wash" },
"db_baby_lock": { "name": "DB Baby Lock" },
"db_light": { "name": "DB Light" },
"db_steam_wash": { "name": "DB Steam Wash" },
"db_fast_clean_wash": { "name": "DB Fast Clean Wash" },
"db_wash_dry_link": { "name": "DB Wash Dry Link" },
"power": { "name": "Power" },
"softener_lack": { "name": "Softener Lack" },
"detergent_lack": { "name": "Detergent Lack" },
"door_opened": { "name": "Door Opened" },
"bucket_water_overheating": { "name": "Bucket Water Overheating" },
"memory": { "name": "Memory" },
"appointment": { "name": "Appointment" },
"spray_wash": { "name": "Spray Wash" },
"old_speedy": { "name": "Old Speedy" },
"nightly": { "name": "Nightly" },
"down_light": { "name": "Down Light" },
"easy_ironing": { "name": "Easy Ironing" },
"super_clean_wash": { "name": "Super Clean Wash" },
"intelligent_wash": { "name": "Intelligent Wash" },
"strong_wash": { "name": "Strong Wash" },
"silent": { "name": "Silent" },
"speedy": { "name": "Speedy" },
"lock": { "name": "Lock" },
"flocks_switcher": { "name": "Flocks Switcher" },
"fresh_anion_switch": { "name": "Fresh Anion Switch" },
"dry_weighing_already": { "name": "Dry Weighing Already" },
"keep_fresh_status": { "name": "Keep Fresh Status" },
"drying_tunnel_overheating": { "name": "Drying Tunnel Overheating" },
"fast_clean_wash": { "name": "Fast Clean Wash" },
"steam_wash": { "name": "Steam Wash" },
"beforehand_wash": { "name": "Beforehand Wash" },
"ai_flag": { "name": "AI Flag" },
"water_plus": { "name": "Water Plus" },
"soak": { "name": "Soak" },
"ultraviolet_lamp": { "name": "Ultraviolet Lamp" },
"eye_wash": { "name": "Eye Wash" },
"microbubble": { "name": "Microbubble" },
"wind_dispel": { "name": "Wind Dispel" },
"cycle_memory": { "name": "Cycle Memory" },
"freeze_state": { "name": "Freeze State" },
"power_state": { "name": "Power State" },
"heat_enable": { "name": "Heat Enable" },
"cool_enable": { "name": "Cool Enable" },
"silence_set_state": { "name": "Silence Set State" },
"time_set_state": { "name": "Time Set State" },
"silence_state": { "name": "Silence State" },
"holiday_state": { "name": "Holiday State" },
"holiday_set_state": { "name": "Holiday Set State" },
"holiday_on_state": { "name": "Holiday On State" },
"room_temp_ctrl": { "name": "Room Temp Ctrl" },
"room_temp_set": { "name": "Room Temp Set" },
"comp_state": { "name": "Comp State" },
"day_time_state": { "name": "Day Time State" },
"week_time_state": { "name": "Week Time State" },
"warn_state": { "name": "Warn State" },
"defrost_state": { "name": "Defrost State" },
"pre_heat": { "name": "Pre Heat" },
"lock_state": { "name": "Lock State" },
"esp_state": { "name": "ESP State" },
"passby_enable": { "name": "Passby Enable" },
"preheat_enable": { "name": "Preheat Enable" },
"remain_able": { "name": "Remain Able" },
"hcho_check_enable": { "name": "HCHO Check Enable" },
"co2_check_enable": { "name": "CO2 Check Enable" },
"function_set_link": { "name": "Function Set Link" },
"function_set_sleep": { "name": "Function Set Sleep" },
"function_set_energy_save": { "name": "Function Set Energy Save" },
"function_set_prheat": { "name": "Function Set Preheat" },
"function_set_ultimate": { "name": "Function Set Ultimate" },
"clean_net_clean_flg": { "name": "Clean Net Clean Flag" },
"change_net_change_flg": { "name": "Change Net Change Flag" },
"condensation_state": { "name": "Condensation State" },
"humidity_state": { "name": "Humidity State" },
"preheat_state": { "name": "Preheat State" },
"esp_enable": { "name": "ESP Enable" },
"pm25_check_enable": { "name": "PM2.5 Check Enable" },
"timer_state": { "name": "Timer State" },
"humidity_check_enable": { "name": "Humidity Check Enable" },
"door_middlestair": { "name": "Door Middle Stair" },
"door_upstair": { "name": "Door Up Stair" },
"door_downstair": { "name": "Door Down Stair" },
"downstair_ispreheat": { "name": "Down Stair Is Preheat" },
"upstair_ispreheat": { "name": "Up Stair Is Preheat" },
"downstair_iscooling": { "name": "Down Stair Is Cooling" },
"upstair_iscooling": { "name": "Up Stair Is Cooling" },
"middlestair_ispreheat": { "name": "Middle Stair Is Preheat" },
"middlestair_iscooling": { "name": "Middle Stair Is Cooling" },
"lock": { "name": "Lock" },
"is_error": { "name": "Is Error" },
"uv_disinfect": { "name": "UV Disinfect" },
"ai_switch": { "name": "AI Switch" },
"light": { "name": "Light" },
"appointment": { "name": "Appointment" },
"prevent_wrinkle_switch": { "name": "Prevent Wrinkle Switch" },
"steam_switch": { "name": "Steam Switch" },
"damp_dry_signal": { "name": "Damp Dry Signal" },
"eco_dry_switch": { "name": "Eco Dry Switch" },
"bucket_clean_switch": { "name": "Bucket Clean Switch" },
"water_box": { "name": "Water Box" },
"baby_lock": { "name": "Baby Lock" },
"remind_sound": { "name": "Remind Sound" },
"steam": { "name": "Steam" },
"power": { "name": "Power" },
"door_warn": { "name": "Door Warning" },
"disinfect_on_off": { "name": "Disinfect On Off" },
"power_on_timer": { "name": "Power On Timer" },
"power": { "name": "Power" },
"buzzer": { "name": "Buzzer" },
"power_off_timer": { "name": "Power Off Timer" },
"display_on_off": { "name": "Display On Off" },
"netions_on_off": { "name": "Net Ions On Off" },
"airdry_on_off": { "name": "Air Dry On Off" },
"add_water_flag": { "name": "Add Water Flag" }
}
}
}

View File

@@ -118,7 +118,50 @@
"error_type": { "name": "错误类型" },
"control_type": { "name": "控制类型" },
"mode": { "name": "模式" },
"rice_type": { "name": "米种类型" }
"rice_type": { "name": "米种类型" },
"db_running_status": { "name": "运行状态" },
"db_program": { "name": "洗涤程序" },
"db_water_level": { "name": "水位" },
"db_temperature": { "name": "温度" },
"db_dehydration_speed": { "name": "脱水转速" },
"db_detergent": { "name": "洗涤剂" },
"db_softener": { "name": "柔顺剂" },
"db_position": { "name": "位置" },
"db_location": { "name": "地点" },
"running_status": { "name": "运行状态" },
"mode": { "name": "模式" },
"program": { "name": "程序" },
"detergent_density": { "name": "洗涤剂浓度" },
"softener_density": { "name": "柔顺剂浓度" },
"season": { "name": "季节" },
"disinfectant": { "name": "消毒剂" },
"dirty_degree": { "name": "脏污程度" },
"stains": { "name": "污渍" },
"add_rinse": { "name": "加漂洗" },
"soak_count": { "name": "浸泡次数" },
"run_mode": { "name": "运行模式" },
"temp_type": { "name": "温度类型" },
"mode_state": { "name": "模式状态" },
"fan_set": { "name": "风扇设置" },
"upstair_work_status": { "name": "上层工作状态" },
"downstair_work_status": { "name": "下层工作状态" },
"middlestair_work_status": { "name": "中层工作状态" },
"upstair_mode": { "name": "上层模式" },
"downstair_mode": { "name": "下层模式" },
"middlestair_mode": { "name": "中层模式" },
"prevent_wrinkle": { "name": "防皱" },
"material": { "name": "材质" },
"sterilize": { "name": "杀菌" },
"dryness_level": { "name": "干燥程度" },
"dry_temp": { "name": "烘干温度" },
"intensity": { "name": "强度" },
"program": { "name": "程序" },
"wind_gear": { "name": "风档" },
"wind_speed": { "name": "风速" },
"light_color": { "name": "灯光颜色" },
"bright_led": { "name": "亮度LED" },
"humidity_mode": { "name": "湿度模式" },
"tank_status": { "name": "水箱状态" }
},
"sensor": {
"bright": { "name": "亮度" },
@@ -186,7 +229,115 @@
"warming_time": { "name": "保温时间" },
"delay_time": { "name": "预约时间" },
"indoor_temperature": { "name": "室内温度" },
"outdoor_temperature": { "name": "室外温度" }
"outdoor_temperature": { "name": "室外温度" },
"db_remain_time": { "name": "剩余时间" },
"db_progress": { "name": "进度" },
"db_error_code": { "name": "错误代码" },
"db_set_dewater_time": { "name": "设置脱水时间" },
"db_set_wash_time": { "name": "设置洗涤时间" },
"db_project_no": { "name": "项目编号" },
"db_device_software_version": { "name": "设备软件版本" },
"db_rinse_count": { "name": "漂洗次数" },
"db_wash_time": { "name": "洗涤时间" },
"db_appointment_time": { "name": "预约时间" },
"db_appointment": { "name": "预约" },
"db_dehydration_time": { "name": "脱水时间" },
"db_cycle_memory": { "name": "循环记忆" },
"dehydration_speed": { "name": "脱水转速" },
"wash_time": { "name": "洗涤时间" },
"appointment_time": { "name": "预约时间" },
"remain_time": { "name": "剩余时间" },
"project_no": { "name": "项目编号" },
"dryer": { "name": "烘干机" },
"remote_control_flag": { "name": "遥控标志" },
"progress": { "name": "进度" },
"cloud_cycle_low": { "name": "云循环低" },
"cloud_cycle_high": { "name": "云循环高" },
"cloud_cycle_jiepai1": { "name": "云循环节拍1" },
"cloud_cycle_jiepai2": { "name": "云循环节拍2" },
"cloud_cycle_jiepai3": { "name": "云循环节拍3" },
"cloud_cycle_jiepai4": { "name": "云循环节拍4" },
"cloud_cycle_jiepai_time1": { "name": "云循环节拍时间1" },
"dehydration_time_value": { "name": "脱水时间值" },
"cloud_cycle_jiepai_time3": { "name": "云循环节拍时间3" },
"cloud_cycle_jiepai_time4": { "name": "云循环节拍时间4" },
"customize_machine_cycle": { "name": "自定义机器循环" },
"detergent_global": { "name": "洗涤剂全局" },
"softener_global": { "name": "柔顺剂全局" },
"detergent_density_global": { "name": "洗涤剂浓度全局" },
"softener_density_global": { "name": "柔顺剂浓度全局" },
"fresh_air_time": { "name": "新风时间" },
"flocks_remind_period": { "name": "毛绒提醒周期" },
"device_software_version": { "name": "设备软件版本" },
"expert_step": { "name": "专家步骤" },
"error_code": { "name": "错误代码" },
"flocks_wash_count": { "name": "毛绒洗涤次数" },
"active_oxygen": { "name": "活性氧" },
"version": { "name": "版本" },
"dehydration_time": { "name": "脱水时间" },
"cloud_cycle_jiepai_time2": { "name": "云循环节拍时间2" },
"wash_time_value": { "name": "洗涤时间值" },
"cur_temp": { "name": "当前温度" },
"error_code": { "name": "错误代码" },
"heat_max_set_temp": { "name": "制热最大设定温度" },
"heat_min_set_temp": { "name": "制热最小设定温度" },
"cool_max_set_temp": { "name": "制冷最大设定温度" },
"cool_min_set_temp": { "name": "制冷最小设定温度" },
"auto_max_set_temp": { "name": "自动最大设定温度" },
"auto_min_set_temp": { "name": "自动最小设定温度" },
"preheat_on_set_temp": { "name": "预热开启设定温度" },
"preheat_max_set_temp": { "name": "预热最大设定温度" },
"preheat_min_set_temp": { "name": "预热最小设定温度" },
"version": { "name": "版本" },
"temp_set": { "name": "设定温度" },
"room_temp_value": { "name": "室温值" },
"clean_net_used_time": { "name": "清洁网使用时间" },
"change_net_used_time": { "name": "更换网使用时间" },
"tvoc_value": { "name": "TVOC值" },
"change_set_real_time": { "name": "更换设定实际时间" },
"clean_set_real_time": { "name": "清洁设定实际时间" },
"humidity_set": { "name": "湿度设置" },
"room_aqi_value": { "name": "室内AQI值" },
"change_net_set_time": { "name": "更换网设定时间" },
"clean_net_set_time": { "name": "清洁网设定时间" },
"humidity_value": { "name": "湿度值" },
"hcho_value": { "name": "甲醛值" },
"pm25_value": { "name": "PM2.5值" },
"co2_value": { "name": "CO2值" },
"machine_type": { "name": "机器类型" },
"upstair_temp": { "name": "上层温度" },
"downstair_temp": { "name": "下层温度" },
"middlestair_temp": { "name": "中层温度" },
"upstair_hour": { "name": "上层小时" },
"upstair_min": { "name": "上层分钟" },
"upstair_sec": { "name": "上层秒" },
"middlestair_hour": { "name": "中层小时" },
"middlestair_min": { "name": "中层分钟" },
"middlestair_sec": { "name": "中层秒" },
"downstair_hour": { "name": "下层小时" },
"downstair_min": { "name": "下层分钟" },
"downstair_sec": { "name": "下层秒" },
"order_hour": { "name": "预约小时" },
"order_min": { "name": "预约分钟" },
"order_sec": { "name": "预约秒" },
"appointment_time": { "name": "预约时间" },
"project_no": { "name": "项目编号" },
"remain_time": { "name": "剩余时间" },
"progress": { "name": "进度" },
"version": { "name": "版本" },
"error_code": { "name": "错误代码" },
"dry_time": { "name": "烘干时间" },
"version": { "name": "版本" },
"time_off": { "name": "关机时间" },
"humidity": { "name": "湿度" },
"cur_temperature": { "name": "当前温度" },
"cur_humidity": { "name": "当前湿度" },
"time_on": { "name": "开机时间" },
"air_dry_left_time": { "name": "风干剩余时间" },
"sensor_battery": { "name": "传感器电池" },
"running_percent": { "name": "运行百分比" },
"sensor_humidify": { "name": "传感器湿度" },
"sensor_temperature": { "name": "传感器温度" }
},
"binary_sensor": {
"air_status": { "name": "空气运行" },
@@ -210,6 +361,9 @@
"climate": {
"thermostat": { "name": "温控器" }
},
"humidifier": {
"humidifier": { "name": "加湿器" }
},
"switch": {
"airswitch": { "name": "空调开关" },
"waterswitch": { "name": "热水开关" },
@@ -236,7 +390,125 @@
"pre_regeneration": { "name": "预再生" },
"dry": { "name": "干燥" },
"prevent_straight_wind": { "name": "防直吹" },
"aux_heat": { "name": "电辅热" }
"aux_heat": { "name": "电辅热" },
"db_power": { "name": "洗衣机电源" },
"db_clean_notification": { "name": "清洁提醒" },
"db_softener_needed": { "name": "需要柔顺剂" },
"db_detergent_needed": { "name": "需要洗涤剂" },
"db_nightly_wash": { "name": "夜间洗涤" },
"db_baby_lock": { "name": "童锁" },
"db_light": { "name": "照明" },
"db_steam_wash": { "name": "蒸汽洗涤" },
"db_fast_clean_wash": { "name": "快速清洁洗涤" },
"db_wash_dry_link": { "name": "洗烘联动" },
"power": { "name": "电源" },
"softener_lack": { "name": "柔顺剂不足" },
"detergent_lack": { "name": "洗涤剂不足" },
"door_opened": { "name": "门已打开" },
"bucket_water_overheating": { "name": "桶内水温过热" },
"memory": { "name": "记忆" },
"appointment": { "name": "预约" },
"spray_wash": { "name": "喷淋洗涤" },
"old_speedy": { "name": "老式快速" },
"nightly": { "name": "夜间" },
"down_light": { "name": "下灯" },
"easy_ironing": { "name": "易熨烫" },
"super_clean_wash": { "name": "超净洗涤" },
"intelligent_wash": { "name": "智能洗涤" },
"strong_wash": { "name": "强力洗涤" },
"silent": { "name": "静音" },
"speedy": { "name": "快速" },
"lock": { "name": "锁定" },
"flocks_switcher": { "name": "毛绒切换器" },
"fresh_anion_switch": { "name": "负离子开关" },
"dry_weighing_already": { "name": "已称重" },
"keep_fresh_status": { "name": "保持新鲜状态" },
"drying_tunnel_overheating": { "name": "烘干通道过热" },
"fast_clean_wash": { "name": "快速清洁洗涤" },
"steam_wash": { "name": "蒸汽洗涤" },
"beforehand_wash": { "name": "预洗" },
"ai_flag": { "name": "AI标志" },
"water_plus": { "name": "加水" },
"soak": { "name": "浸泡" },
"ultraviolet_lamp": { "name": "紫外线灯" },
"eye_wash": { "name": "护眼洗涤" },
"microbubble": { "name": "微气泡" },
"wind_dispel": { "name": "风干" },
"cycle_memory": { "name": "循环记忆" },
"freeze_state": { "name": "防冻状态" },
"power_state": { "name": "电源状态" },
"heat_enable": { "name": "制热启用" },
"cool_enable": { "name": "制冷启用" },
"silence_set_state": { "name": "静音设置状态" },
"time_set_state": { "name": "时间设置状态" },
"silence_state": { "name": "静音状态" },
"holiday_state": { "name": "假日状态" },
"holiday_set_state": { "name": "假日设置状态" },
"holiday_on_state": { "name": "假日开启状态" },
"room_temp_ctrl": { "name": "室温控制" },
"room_temp_set": { "name": "室温设置" },
"comp_state": { "name": "压缩机状态" },
"day_time_state": { "name": "日间状态" },
"week_time_state": { "name": "周时间状态" },
"warn_state": { "name": "警告状态" },
"defrost_state": { "name": "除霜状态" },
"pre_heat": { "name": "预热" },
"lock_state": { "name": "锁定状态" },
"esp_state": { "name": "ESP状态" },
"passby_enable": { "name": "旁通启用" },
"preheat_enable": { "name": "预热启用" },
"remain_able": { "name": "保持可用" },
"hcho_check_enable": { "name": "甲醛检测启用" },
"co2_check_enable": { "name": "CO2检测启用" },
"function_set_link": { "name": "功能设置联动" },
"function_set_sleep": { "name": "功能设置睡眠" },
"function_set_energy_save": { "name": "功能设置节能" },
"function_set_prheat": { "name": "功能设置预热" },
"function_set_ultimate": { "name": "功能设置终极" },
"clean_net_clean_flg": { "name": "清洁网清洁标志" },
"change_net_change_flg": { "name": "更换网更换标志" },
"condensation_state": { "name": "冷凝状态" },
"humidity_state": { "name": "湿度状态" },
"preheat_state": { "name": "预热状态" },
"esp_enable": { "name": "ESP启用" },
"pm25_check_enable": { "name": "PM2.5检测启用" },
"timer_state": { "name": "定时器状态" },
"humidity_check_enable": { "name": "湿度检测启用" },
"door_middlestair": { "name": "中层门" },
"door_upstair": { "name": "上层门" },
"door_downstair": { "name": "下层门" },
"downstair_ispreheat": { "name": "下层预热" },
"upstair_ispreheat": { "name": "上层预热" },
"downstair_iscooling": { "name": "下层冷却" },
"upstair_iscooling": { "name": "上层冷却" },
"middlestair_ispreheat": { "name": "中层预热" },
"middlestair_iscooling": { "name": "中层冷却" },
"lock": { "name": "锁定" },
"is_error": { "name": "错误状态" },
"uv_disinfect": { "name": "紫外线消毒" },
"ai_switch": { "name": "AI开关" },
"light": { "name": "灯光" },
"appointment": { "name": "预约" },
"prevent_wrinkle_switch": { "name": "防皱开关" },
"steam_switch": { "name": "蒸汽开关" },
"damp_dry_signal": { "name": "湿干信号" },
"eco_dry_switch": { "name": "节能烘干开关" },
"bucket_clean_switch": { "name": "桶清洁开关" },
"water_box": { "name": "水箱" },
"baby_lock": { "name": "童锁" },
"remind_sound": { "name": "提醒声音" },
"steam": { "name": "蒸汽" },
"power": { "name": "电源" },
"door_warn": { "name": "门警告" },
"disinfect_on_off": { "name": "消毒开关" },
"power_on_timer": { "name": "开机定时器" },
"power": { "name": "电源" },
"buzzer": { "name": "蜂鸣器" },
"power_off_timer": { "name": "关机定时器" },
"display_on_off": { "name": "显示开关" },
"netions_on_off": { "name": "负离子开关" },
"airdry_on_off": { "name": "风干开关" },
"add_water_flag": { "name": "加水标志" }
}
}
}

BIN
img.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

BIN
img_1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB