From b81ef0e007430b26c3cc7e1fd86204f5b8ad8fd6 Mon Sep 17 00:00:00 2001 From: sususweet Date: Wed, 1 Oct 2025 18:32:47 +0800 Subject: [PATCH] feat: add control for newwind device. Fix #5. --- .../midea_auto_cloud/device_mapping/T0xAC.py | 58 +-- .../midea_auto_cloud/translations/en.json | 379 +++++++++--------- .../translations/zh-Hans.json | 3 + 3 files changed, 228 insertions(+), 212 deletions(-) diff --git a/custom_components/midea_auto_cloud/device_mapping/T0xAC.py b/custom_components/midea_auto_cloud/device_mapping/T0xAC.py index 94be76d..f7f59ec 100644 --- a/custom_components/midea_auto_cloud/device_mapping/T0xAC.py +++ b/custom_components/midea_auto_cloud/device_mapping/T0xAC.py @@ -11,38 +11,42 @@ DEVICE_MAPPING = { "entities": { Platform.FAN: { "fan": { - "power": "power", + "power": "new_wind_machine", "speeds": [ - {"wind_speed_real": 20}, - {"wind_speed_real": 40}, - {"wind_speed_real": 60}, - {"wind_speed_real": 80}, - {"wind_speed_real": 100}, + {"fresh_air_fan_speed": 20}, + {"fresh_air_fan_speed": 40}, + {"fresh_air_fan_speed": 60}, + {"fresh_air_fan_speed": 80}, + {"fresh_air_fan_speed": 100}, ], "preset_modes": { - "heat": { - "mode": "heat" + "heat_exchange": { + "fresh_air_mode": 1, + "wind_strength": 0 }, - "cool": { - "mode": "cool" + "smooth_in": { + "fresh_air_mode": 2, + "wind_strength": 0 + }, + "rough_in": { + "fresh_air_mode": 2, + "wind_strength": 1 + }, + "smooth_out": { + "fresh_air_mode": 3, + "wind_strength": 0 + }, + "rough_out": { + "fresh_air_mode": 3, + "wind_strength": 1 }, "auto": { - "mode": "auto" + "fresh_air_mode": 4, + "wind_strength": 0 }, - "dry": { - "mode": "dry" - }, - "fan": { - "mode": "fan" - }, - "standby": { - "mode": "standby" - }, - "dryconstant": { - "mode": "dryconstant" - }, - "dryauto": { - "mode": "dryauto" + "innercycle": { + "fresh_air_mode": 5, + "wind_strength": 0 }, } } @@ -95,6 +99,10 @@ DEVICE_MAPPING = { } }, Platform.SWITCH: { + "fresh_air_remove_odor": { + "device_class": SwitchDeviceClass.SWITCH, + "rationale": [0, 1], + }, "dry": { "device_class": SwitchDeviceClass.SWITCH, }, diff --git a/custom_components/midea_auto_cloud/translations/en.json b/custom_components/midea_auto_cloud/translations/en.json index 6954746..453c366 100644 --- a/custom_components/midea_auto_cloud/translations/en.json +++ b/custom_components/midea_auto_cloud/translations/en.json @@ -122,6 +122,195 @@ } }, "entity": { + "binary_sensor": { + "air_status": { + "name": "Air Running" + }, + "bar_door_state": { + "name": "Bar Door State" + }, + "bottom_hot": { + "name": "Bottom Hot" + }, + "bright_lack": { + "name": "Brightness Lack" + }, + "carpet_switch": { + "name": "Carpet Switch" + }, + "chlorine_sterilization_error": { + "name": "Chlorine Sterilization Error" + }, + "diy_flag": { + "name": "DIY Flag" + }, + "diy_main_wash": { + "name": "DIY Main Wash" + }, + "diy_piao_wash": { + "name": "DIY Rinse" + }, + "diy_times": { + "name": "DIY Times" + }, + "flank_hot": { + "name": "Flank Hot" + }, + "flexzone_door_state": { + "name": "Flexzone Door State" + }, + "freezer_door_state": { + "name": "Freezer Door State" + }, + "have_reserve_task": { + "name": "Have Reserve Task" + }, + "is_error": { + "name": "Is Error" + }, + "maintenance_remind": { + "name": "Maintenance Remind" + }, + "rtc_error": { + "name": "RTC Error" + }, + "softwater_lack": { + "name": "Soft Water Lack" + }, + "storage_door_state": { + "name": "Storage Door State" + }, + "storage_ice_home_door_state": { + "name": "Storage Ice Home Door State" + }, + "top_hot": { + "name": "Top Hot" + }, + "wash_stage": { + "name": "Washing Stage" + }, + "water_lack": { + "name": "Water Lack" + }, + "communication_error": { + "name": "Communication Error" + }, + "door_status": { + "name": "Door Status" + }, + "ele_exception": { + "name": "Ele Exception" + }, + "elec_warning": { + "name": "Elec Warning" + }, + "limit_error": { + "name": "Limit Error" + }, + "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" + }, + "power": { + "name": "Power" + }, + "humidify": { + "name": "Humidify" + }, + "swing": { + "name": "Swing" + }, + "anion": { + "name": "Anion" + }, + "display_on_off": { + "name": "Display On/Off" + }, + "dust_reset": { + "name": "Dust Reset" + }, + "temp_wind_switch": { + "name": "Temp Wind Switch" + }, + "filter_reset": { + "name": "Filter Reset" + }, + "heat_status": { + "name": "Heat Status" + }, + "standby_status": { + "name": "Standby Status" + } + }, + "climate": { + "freezing_zone": { + "name": "Freezing Zone" + }, + "left_flexzone": { + "name": "Left Flexzone" + }, + "right_flexzone": { + "name": "Right Flexzone" + }, + "storage_zone": { + "name": "Storage Zone" + }, + "thermostat": { + "name": "Thermostat" + }, + "water_heater": { + "name": "Water Heater" + } + }, + "humidifier": { + "humidifier": { + "name": "Humidifier" + } + }, "select": { "add_rinse": { "name": "Add Rinse" @@ -1149,193 +1338,6 @@ "name": "Current Fault Code" } }, - "binary_sensor": { - "air_status": { - "name": "Air Running" - }, - "bar_door_state": { - "name": "Bar Door State" - }, - "bottom_hot": { - "name": "Bottom Hot" - }, - "bright_lack": { - "name": "Brightness Lack" - }, - "carpet_switch": { - "name": "Carpet Switch" - }, - "chlorine_sterilization_error": { - "name": "Chlorine Sterilization Error" - }, - "diy_flag": { - "name": "DIY Flag" - }, - "diy_main_wash": { - "name": "DIY Main Wash" - }, - "diy_piao_wash": { - "name": "DIY Rinse" - }, - "diy_times": { - "name": "DIY Times" - }, - "flank_hot": { - "name": "Flank Hot" - }, - "flexzone_door_state": { - "name": "Flexzone Door State" - }, - "freezer_door_state": { - "name": "Freezer Door State" - }, - "have_reserve_task": { - "name": "Have Reserve Task" - }, - "is_error": { - "name": "Is Error" - }, - "maintenance_remind": { - "name": "Maintenance Remind" - }, - "rtc_error": { - "name": "RTC Error" - }, - "softwater_lack": { - "name": "Soft Water Lack" - }, - "storage_door_state": { - "name": "Storage Door State" - }, - "storage_ice_home_door_state": { - "name": "Storage Ice Home Door State" - }, - "top_hot": { - "name": "Top Hot" - }, - "wash_stage": { - "name": "Washing Stage" - }, - "water_lack": { - "name": "Water Lack" - }, - "communication_error": { - "name": "Communication Error" - }, - "door_status": { - "name": "Door Status" - }, - "ele_exception": { - "name": "Ele Exception" - }, - "elec_warning": { - "name": "Elec Warning" - }, - "limit_error": { - "name": "Limit Error" - }, - "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" - }, - "power": { - "name": "Power" - }, - "humidify": { - "name": "Humidify" - }, - "swing": { - "name": "Swing" - }, - "anion": { - "name": "Anion" - }, - "display_on_off": { - "name": "Display On/Off" - }, - "dust_reset": { - "name": "Dust Reset" - }, - "temp_wind_switch": { - "name": "Temp Wind Switch" - }, - "filter_reset": { - "name": "Filter Reset" - }, - "heat_status": { - "name": "Heat Status" - }, - "standby_status": { - "name": "Standby Status" - } - }, - "climate": { - "freezing_zone": { - "name": "Freezing Zone" - }, - "left_flexzone": { - "name": "Left Flexzone" - }, - "right_flexzone": { - "name": "Right Flexzone" - }, - "storage_zone": { - "name": "Storage Zone" - }, - "thermostat": { - "name": "Thermostat" - }, - "water_heater": { - "name": "Water Heater" - } - }, - "humidifier": { - "humidifier": { "name": "Humidifier" } - }, "switch": { "add_water_flag": { "name": "Add Water Flag" @@ -1706,6 +1708,9 @@ "freeze_state": { "name": "Freeze State" }, + "fresh_air_remove_odor": { + "name": "Fresh Air Remove Odor" + }, "fresh_anion_switch": { "name": "Fresh Anion Switch" }, diff --git a/custom_components/midea_auto_cloud/translations/zh-Hans.json b/custom_components/midea_auto_cloud/translations/zh-Hans.json index c9379f2..ca2b79f 100644 --- a/custom_components/midea_auto_cloud/translations/zh-Hans.json +++ b/custom_components/midea_auto_cloud/translations/zh-Hans.json @@ -1711,6 +1711,9 @@ "freeze_state": { "name": "防冻状态" }, + "fresh_air_remove_odor": { + "name": "新风除菌" + }, "fresh_anion_switch": { "name": "负离子开关" },