From 3619b06af182e18e8847cec4563a9062387c7718 Mon Sep 17 00:00:00 2001 From: sususweet Date: Sat, 20 Dec 2025 00:15:18 +0800 Subject: [PATCH] feat: add device mapping for 000K86JB. Fix #72. --- custom_components/midea_auto_cloud/climate.py | 2 +- .../midea_auto_cloud/device_mapping/T0xAC.py | 4 +- .../midea_auto_cloud/device_mapping/T0xCC.py | 97 +++++++++++++++++++ .../midea_auto_cloud/translations/en.json | 9 ++ .../translations/zh-Hans.json | 9 ++ 5 files changed, 118 insertions(+), 3 deletions(-) diff --git a/custom_components/midea_auto_cloud/climate.py b/custom_components/midea_auto_cloud/climate.py index 2c01711..6c9c8a7 100644 --- a/custom_components/midea_auto_cloud/climate.py +++ b/custom_components/midea_auto_cloud/climate.py @@ -337,7 +337,7 @@ class MideaClimateEntity(MideaEntity, ClimateEntity): new_status = self._key_preset_modes.get(preset_mode) await self.async_set_attributes(new_status) - async def async_set_hvac_mode(self, hvac_mode: str): + async def async_set_hvac_mode(self, hvac_mode: HVACMode): if self._is_central_ac: run_mode = self._key_hvac_modes.get(hvac_mode) await self.coordinator.async_send_central_ac_control(run_mode) diff --git a/custom_components/midea_auto_cloud/device_mapping/T0xAC.py b/custom_components/midea_auto_cloud/device_mapping/T0xAC.py index ae10e76..7f995f6 100644 --- a/custom_components/midea_auto_cloud/device_mapping/T0xAC.py +++ b/custom_components/midea_auto_cloud/device_mapping/T0xAC.py @@ -275,7 +275,7 @@ DEVICE_MAPPING = { }, Platform.NUMBER: { "manul_humi_value": { - "device_class": NumberDeviceClass.HUMIDITY, + "device_class": SensorDeviceClass.HUMIDITY, "min": 40, "max": 70, "step": 1, @@ -283,7 +283,7 @@ DEVICE_MAPPING = { "mode": "slider" }, "auto_purifier_on_pm": { - "device_class": NumberDeviceClass.PM25, + "device_class": SensorDeviceClass.PM25, "min": 75, "max": 180, "step": 1, diff --git a/custom_components/midea_auto_cloud/device_mapping/T0xCC.py b/custom_components/midea_auto_cloud/device_mapping/T0xCC.py index ddcf053..4490985 100644 --- a/custom_components/midea_auto_cloud/device_mapping/T0xCC.py +++ b/custom_components/midea_auto_cloud/device_mapping/T0xCC.py @@ -215,5 +215,102 @@ DEVICE_MAPPING = { } } } + }, + "000K86JB": { + "rationale": ["off", "on"], + "queries": [{}, {"query_type": "run_status"}], + "centralized": [], + "entities": { + Platform.CLIMATE: { + "thermostat": { + "power": "power", + "hvac_modes": { + "off": {"power": "off"}, + "heat": {"power": "on", "mode": "heat"}, + "cool": {"power": "on", "mode": "cool"}, + "dry": {"power": "on", "mode": "dry"}, + "fan_only": {"power": "on", "mode": "fan"} + }, + "fan_modes": { + "power": {"wind_speed": "power"}, + "super_high": {"wind_speed": "super_high"}, + "high": {"wind_speed": "high"}, + "middle": {"wind_speed": "middle"}, + "low": {"wind_speed": "low"}, + "micron": {"wind_speed": "micron"}, + "sleep": {"wind_speed": "sleep"}, + "auto": {"wind_speed": "auto"} + }, + "target_temperature": "temperature", + "current_temperature": "indoor_temperature", + "pre_mode": "mode", + "min_temp": 17, + "max_temp": 30, + "temperature_unit": UnitOfTemperature.CELSIUS, + "precision": PRECISION_HALVES, + } + }, + Platform.SWITCH: { + "eco": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "lock": { + "device_class": SwitchDeviceClass.SWITCH, + "attribute": "wirectrl_child_lock", + "rationale": ["wirectrl_child_unlocked", "wirectrl_child_locked"] + }, + "light": { + "device_class": SwitchDeviceClass.SWITCH, + "attribute": "digit_display_switch" + }, + "sleep": { + "device_class": SwitchDeviceClass.SWITCH, + "attribute": "sleep_switch" + }, + }, + Platform.SENSOR: { + "mode": { + "device_class": SensorDeviceClass.ENUM, + }, + "room_temperature": { + "device_class": SensorDeviceClass.TEMPERATURE, + "unit_of_measurement": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT, + "attribute": "indoor_temperature" + } + }, + Platform.SELECT: { + "ptc": { + "options": { + "on": {"ptc_setting": "ptc_setting_on", "eco":"off"}, + "off": {"ptc_setting": "ptc_setting_off"}, + }, + }, + "ud_swing_angle": { + "options": { + "swing_ud_no_site": {"wind_swing_ud_site": "swing_ud_no_site"}, + "swing_ud_site_1": {"wind_swing_ud_site": "swing_ud_site_1"}, + "swing_ud_site_2": {"wind_swing_ud_site": "swing_ud_site_2"}, + "swing_ud_site_3": {"wind_swing_ud_site": "swing_ud_site_3"}, + "swing_ud_site_4": {"wind_swing_ud_site": "swing_ud_site_4"}, + "swing_ud_site_5": {"wind_swing_ud_site": "swing_ud_site_5"}, + "swing_ud_site_6": {"wind_swing_ud_site": "swing_ud_site_6"}, + }, + "attribute": "wind_swing_ud_site" + }, + "lr_swing_angle": { + "options": { + "swing_lr_no_site": {"wind_swing_lr_site": "swing_lr_no_site"}, + "swing_lr_site_1": {"wind_swing_lr_site": "swing_lr_site_1"}, + "swing_lr_site_2": {"wind_swing_lr_site": "swing_lr_site_2"}, + "swing_lr_site_3": {"wind_swing_lr_site": "swing_lr_site_3"}, + "swing_lr_site_4": {"wind_swing_lr_site": "swing_lr_site_4"}, + "swing_lr_site_5": {"wind_swing_lr_site": "swing_lr_site_5"}, + "swing_lr_site_6": {"wind_swing_lr_site": "swing_lr_site_6"}, + }, + "attribute": "wind_swing_lr_site" + } + } + } } } diff --git a/custom_components/midea_auto_cloud/translations/en.json b/custom_components/midea_auto_cloud/translations/en.json index f236431..a49f28e 100644 --- a/custom_components/midea_auto_cloud/translations/en.json +++ b/custom_components/midea_auto_cloud/translations/en.json @@ -388,6 +388,12 @@ } }, "select": { + "ud_swing_angle": { + "name": "UD Swing Angle" + }, + "lr_swing_angle": { + "name": "LR Swing Angle" + }, "follow_body_sense": { "name": "Follow Body Sense" }, @@ -1612,6 +1618,9 @@ "ud_swing_angle": { "name": "UD Swing Angle" }, + "lr_swing_angle": { + "name": "LR Swing Angle" + }, "lr_diy_down_percent": { "name": "LR DIY Down Percent" }, diff --git a/custom_components/midea_auto_cloud/translations/zh-Hans.json b/custom_components/midea_auto_cloud/translations/zh-Hans.json index 8c323f3..d171923 100644 --- a/custom_components/midea_auto_cloud/translations/zh-Hans.json +++ b/custom_components/midea_auto_cloud/translations/zh-Hans.json @@ -388,6 +388,12 @@ } }, "select": { + "ud_swing_angle": { + "name": "上下摆风角度" + }, + "lr_swing_angle": { + "name": "左右摆风角度" + }, "follow_body_sense": { "name": "随身感" }, @@ -1707,6 +1713,9 @@ "ud_swing_angle": { "name": "上下摆风角度" }, + "lr_swing_angle": { + "name": "左右摆风角度" + }, "lr_diy_down_percent": { "name": "左右自定义下百分比" },