From b1bf76f2926f4825997cc6a4445db7b9a2cfe414 Mon Sep 17 00:00:00 2001 From: sususweet Date: Wed, 24 Sep 2025 20:56:04 +0800 Subject: [PATCH] feat: refactor code to add more devices. --- .../midea_auto_cloud/config_flow.py | 2 +- .../midea_auto_cloud/device_mapping/T0xAC.py | 2 - .../midea_auto_cloud/device_mapping/T0xB8.py | 151 +++++++++++- .../midea_auto_cloud/device_mapping/T0xE1.py | 6 - .../midea_auto_cloud/device_mapping/T0xED.py | 227 +++++++++++++++++- .../midea_auto_cloud/midea_entity.py | 7 +- .../midea_auto_cloud/translations/en.json | 136 +++++++++++ .../translations/zh-Hans.json | 136 +++++++++++ 8 files changed, 647 insertions(+), 20 deletions(-) diff --git a/custom_components/midea_auto_cloud/config_flow.py b/custom_components/midea_auto_cloud/config_flow.py index c18ea26..d3a9e0c 100644 --- a/custom_components/midea_auto_cloud/config_flow.py +++ b/custom_components/midea_auto_cloud/config_flow.py @@ -60,7 +60,7 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): data_schema=vol.Schema({ vol.Required(CONF_ACCOUNT): str, vol.Required(CONF_PASSWORD): str, - vol.Required(CONF_SERVER, default=1): vol.In(CONF_SERVERS) + vol.Required(CONF_SERVER, default=2): vol.In(CONF_SERVERS) }), errors=errors, ) diff --git a/custom_components/midea_auto_cloud/device_mapping/T0xAC.py b/custom_components/midea_auto_cloud/device_mapping/T0xAC.py index 2c83b96..68c29d9 100644 --- a/custom_components/midea_auto_cloud/device_mapping/T0xAC.py +++ b/custom_components/midea_auto_cloud/device_mapping/T0xAC.py @@ -15,7 +15,6 @@ DEVICE_MAPPING = { "entities": { Platform.CLIMATE: { "thermostat": { - "name": "Thermostat", "power": "power", "hvac_modes": { "off": {"power": "off"}, @@ -96,7 +95,6 @@ DEVICE_MAPPING = { "entities": { Platform.CLIMATE: { "thermostat": { - "name": "Thermostat", "power": "power", "hvac_modes": { "off": {"power": "off"}, diff --git a/custom_components/midea_auto_cloud/device_mapping/T0xB8.py b/custom_components/midea_auto_cloud/device_mapping/T0xB8.py index 1bb334e..7a63e3a 100644 --- a/custom_components/midea_auto_cloud/device_mapping/T0xB8.py +++ b/custom_components/midea_auto_cloud/device_mapping/T0xB8.py @@ -1,6 +1,6 @@ -from homeassistant.const import Platform, UnitOfTemperature, PRECISION_HALVES +from homeassistant.const import Platform, UnitOfTemperature, PRECISION_HALVES, UnitOfTime, UnitOfArea, UnitOfVolume from homeassistant.components.sensor import SensorStateClass, SensorDeviceClass -# from homeassistant.components.binary_sensor import BinarySensorDeviceClass +from homeassistant.components.binary_sensor import BinarySensorDeviceClass from homeassistant.components.switch import SwitchDeviceClass DEVICE_MAPPING = { @@ -9,8 +9,151 @@ DEVICE_MAPPING = { "queries": [{}], "centralized": [], "entities": { - Platform.SWITCH: {}, - Platform.SENSOR: {} + Platform.SELECT: { + "fan_level": { + "options": { + "low": {"fan_level": "low"}, + "medium": {"fan_level": "medium"}, + "high": {"fan_level": "high"}, + "auto": {"fan_level": "auto"} + } + }, + "work_mode": { + "options": { + "none": {"work_mode": "none"}, + "auto": {"work_mode": "auto"}, + "spot": {"work_mode": "spot"}, + "edge": {"work_mode": "edge"}, + "single_room": {"work_mode": "single_room"}, + "custom": {"work_mode": "custom"} + } + }, + "work_status": { + "options": { + "idle": {"work_status": "idle"}, + "cleaning": {"work_status": "cleaning"}, + "returning": {"work_status": "returning"}, + "docked": {"work_status": "docked"}, + "on_base": {"work_status": "on_base"}, + "charging": {"work_status": "charging"}, + "error": {"work_status": "error"} + } + }, + "move_direction": { + "options": { + "none": {"move_direction": "none"}, + "forward": {"move_direction": "forward"}, + "backward": {"move_direction": "backward"}, + "left": {"move_direction": "left"}, + "right": {"move_direction": "right"} + } + }, + "query_type": { + "options": { + "work": {"query_type": "work"}, + "status": {"query_type": "status"}, + "battery": {"query_type": "battery"}, + "error": {"query_type": "error"} + } + }, + "sub_work_status": { + "options": { + "idle": {"sub_work_status": "idle"}, + "cleaning": {"sub_work_status": "cleaning"}, + "charging": {"sub_work_status": "charging"}, + "charge_finish": {"sub_work_status": "charge_finish"}, + "error": {"sub_work_status": "error"} + } + }, + "water_level": { + "options": { + "low": {"water_level": "low"}, + "normal": {"water_level": "normal"}, + "high": {"water_level": "high"} + } + }, + "mop_status": { + "options": { + "normal": {"mop_status": "normal"}, + "lack_water": {"mop_status": "lack_water"}, + "full_water": {"mop_status": "full_water"} + } + }, + "error_type": { + "options": { + "no_error": {"error_type": "no_error"}, + "can_fix": {"error_type": "can_fix"}, + "need_help": {"error_type": "need_help"} + } + }, + "control_type": { + "options": { + "none": {"control_type": "none"}, + "app": {"control_type": "app"}, + "remote": {"control_type": "remote"}, + "auto": {"control_type": "auto"} + } + } + }, + Platform.BINARY_SENSOR: { + "carpet_switch": { + "device_class": BinarySensorDeviceClass.RUNNING, + }, + "have_reserve_task": { + "device_class": BinarySensorDeviceClass.RUNNING, + } + }, + Platform.SENSOR: { + "dust_count": { + "device_class": SensorDeviceClass.ENUM, + "state_class": SensorStateClass.MEASUREMENT + }, + "area": { + "device_class": SensorDeviceClass.AREA, + "unit_of_measurement": UnitOfArea.SQUARE_METERS, + "state_class": SensorStateClass.MEASUREMENT + }, + "voice_level": { + "device_class": SensorDeviceClass.BATTERY, + "unit_of_measurement": "%", + "state_class": SensorStateClass.MEASUREMENT + }, + "switch_status": { + "device_class": SensorDeviceClass.ENUM, + "state_class": SensorStateClass.MEASUREMENT + }, + "water_station_status": { + "device_class": SensorDeviceClass.ENUM, + "state_class": SensorStateClass.MEASUREMENT + }, + "work_time": { + "device_class": SensorDeviceClass.DURATION, + "unit_of_measurement": UnitOfTime.MINUTES, + "state_class": SensorStateClass.MEASUREMENT + }, + "battery_percent": { + "device_class": SensorDeviceClass.BATTERY, + "unit_of_measurement": "%", + "state_class": SensorStateClass.MEASUREMENT + }, + "planner_status": { + "device_class": SensorDeviceClass.ENUM, + "state_class": SensorStateClass.MEASUREMENT + }, + "sweep_then_mop_mode_progress": { + "device_class": SensorDeviceClass.BATTERY, + "unit_of_measurement": "%", + "state_class": SensorStateClass.MEASUREMENT + }, + "error_desc": { + "device_class": SensorDeviceClass.ENUM, + "state_class": SensorStateClass.MEASUREMENT + }, + "station_error_desc": { + "device_class": SensorDeviceClass.ENUM, + "state_class": SensorStateClass.MEASUREMENT + } + } } } } diff --git a/custom_components/midea_auto_cloud/device_mapping/T0xE1.py b/custom_components/midea_auto_cloud/device_mapping/T0xE1.py index 964d836..58a0224 100644 --- a/custom_components/midea_auto_cloud/device_mapping/T0xE1.py +++ b/custom_components/midea_auto_cloud/device_mapping/T0xE1.py @@ -68,37 +68,31 @@ DEVICE_MAPPING = { }, Platform.SENSOR: { "bright": { - "name": "亮度", "device_class": SensorDeviceClass.ILLUMINANCE, "unit_of_measurement": "lx", "state_class": SensorStateClass.MEASUREMENT }, "temperature": { - "name": "温度", "device_class": SensorDeviceClass.TEMPERATURE, "unit_of_measurement": UnitOfTemperature.CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, "softwater": { - "name": "软水", "device_class": SensorDeviceClass.TEMPERATURE, "unit_of_measurement": UnitOfTemperature.CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, "left_time": { - "name": "剩余时间", "device_class": SensorDeviceClass.DURATION, "unit_of_measurement": UnitOfTime.HOURS, "state_class": SensorStateClass.MEASUREMENT }, "air_set_hour": { - "name": "空调设置时间", "device_class": SensorDeviceClass.DURATION, "unit_of_measurement": UnitOfTime.HOURS, "state_class": SensorStateClass.MEASUREMENT }, "air_left_hour": { - "name": "空调剩余时间", "device_class": SensorDeviceClass.DURATION, "unit_of_measurement": UnitOfTime.HOURS, "state_class": SensorStateClass.MEASUREMENT diff --git a/custom_components/midea_auto_cloud/device_mapping/T0xED.py b/custom_components/midea_auto_cloud/device_mapping/T0xED.py index 1bb334e..87cc1ad 100644 --- a/custom_components/midea_auto_cloud/device_mapping/T0xED.py +++ b/custom_components/midea_auto_cloud/device_mapping/T0xED.py @@ -1,6 +1,6 @@ -from homeassistant.const import Platform, UnitOfTemperature, PRECISION_HALVES +from homeassistant.const import Platform, UnitOfTemperature, PRECISION_HALVES, UnitOfTime, UnitOfElectricPotential, UnitOfVolume, UnitOfMass from homeassistant.components.sensor import SensorStateClass, SensorDeviceClass -# from homeassistant.components.binary_sensor import BinarySensorDeviceClass +from homeassistant.components.binary_sensor import BinarySensorDeviceClass from homeassistant.components.switch import SwitchDeviceClass DEVICE_MAPPING = { @@ -9,8 +9,227 @@ DEVICE_MAPPING = { "queries": [{}], "centralized": [], "entities": { - Platform.SWITCH: {}, - Platform.SENSOR: {} + Platform.SWITCH: { + "holiday_mode": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "water_way": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "soften": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "leak_water_protection": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "cl_sterilization": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "micro_leak": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "low_salt": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "no_salt": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "low_battery": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "salt_level_sensor_error": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "flowmeter_error": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "leak_water": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "micro_leak_protection": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "maintenance_reminder_switch": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "rsj_stand_by": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "regeneration": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "pre_regeneration": { + "device_class": SwitchDeviceClass.SWITCH, + } + }, + Platform.BINARY_SENSOR: { + "maintenance_remind": { + "device_class": BinarySensorDeviceClass.PROBLEM, + }, + "chlorine_sterilization_error": { + "device_class": BinarySensorDeviceClass.PROBLEM, + }, + "rtc_error": { + "device_class": BinarySensorDeviceClass.PROBLEM, + } + }, + Platform.SENSOR: { + "micro_leak_protection_value": { + "device_class": SensorDeviceClass.PRESSURE, + "state_class": SensorStateClass.MEASUREMENT + }, + "regeneration_current_stages": { + "device_class": SensorDeviceClass.ENUM, + "state_class": SensorStateClass.MEASUREMENT + }, + "water_hardness": { + "device_class": SensorDeviceClass.WATER, + "state_class": SensorStateClass.MEASUREMENT + }, + "timing_regeneration_hour": { + "device_class": SensorDeviceClass.DURATION, + "unit_of_measurement": UnitOfTime.HOURS, + "state_class": SensorStateClass.MEASUREMENT + }, + "real_time_setting_hour": { + "device_class": SensorDeviceClass.DURATION, + "unit_of_measurement": UnitOfTime.HOURS, + "state_class": SensorStateClass.MEASUREMENT + }, + "timing_regeneration_min": { + "device_class": SensorDeviceClass.DURATION, + "unit_of_measurement": UnitOfTime.MINUTES, + "state_class": SensorStateClass.MEASUREMENT + }, + "regeneration_left_seconds": { + "device_class": SensorDeviceClass.DURATION, + "unit_of_measurement": UnitOfTime.SECONDS, + "state_class": SensorStateClass.MEASUREMENT + }, + "maintenance_reminder_setting": { + "device_class": SensorDeviceClass.ENUM, + "state_class": SensorStateClass.MEASUREMENT + }, + "mixed_water_gear": { + "device_class": SensorDeviceClass.ENUM, + "state_class": SensorStateClass.MEASUREMENT + }, + "use_days": { + "device_class": SensorDeviceClass.DURATION, + "unit_of_measurement": UnitOfTime.DAYS, + "state_class": SensorStateClass.MEASUREMENT + }, + "days_since_last_regeneration": { + "device_class": SensorDeviceClass.DURATION, + "unit_of_measurement": UnitOfTime.DAYS, + "state_class": SensorStateClass.MEASUREMENT + }, + "velocity": { + "device_class": SensorDeviceClass.SPEED, + "state_class": SensorStateClass.MEASUREMENT + }, + "supply_voltage": { + "device_class": SensorDeviceClass.VOLTAGE, + "unit_of_measurement": UnitOfElectricPotential.VOLT, + "state_class": SensorStateClass.MEASUREMENT + }, + "left_salt": { + "device_class": SensorDeviceClass.WEIGHT, + "unit_of_measurement": UnitOfMass.KILOGRAMS, + "state_class": SensorStateClass.MEASUREMENT + }, + "pre_regeneration_days": { + "device_class": SensorDeviceClass.DURATION, + "unit_of_measurement": UnitOfTime.DAYS, + "state_class": SensorStateClass.MEASUREMENT + }, + "flushing_days": { + "device_class": SensorDeviceClass.DURATION, + "unit_of_measurement": UnitOfTime.DAYS, + "state_class": SensorStateClass.MEASUREMENT + }, + "salt_setting": { + "device_class": SensorDeviceClass.ENUM, + "state_class": SensorStateClass.MEASUREMENT + }, + "regeneration_count": { + "device_class": SensorDeviceClass.ENUM, + "state_class": SensorStateClass.MEASUREMENT + }, + "battery_voltage": { + "device_class": SensorDeviceClass.VOLTAGE, + "unit_of_measurement": UnitOfElectricPotential.VOLT, + "state_class": SensorStateClass.MEASUREMENT + }, + "error": { + "device_class": SensorDeviceClass.ENUM, + "state_class": SensorStateClass.MEASUREMENT + }, + "days_since_last_two_regeneration": { + "device_class": SensorDeviceClass.DURATION, + "unit_of_measurement": UnitOfTime.DAYS, + "state_class": SensorStateClass.MEASUREMENT + }, + "remind_maintenance_days": { + "device_class": SensorDeviceClass.DURATION, + "unit_of_measurement": UnitOfTime.DAYS, + "state_class": SensorStateClass.MEASUREMENT + }, + "real_date_setting_year": { + "device_class": SensorDeviceClass.ENUM, + "state_class": SensorStateClass.MEASUREMENT + }, + "real_date_setting_month": { + "device_class": SensorDeviceClass.ENUM, + "state_class": SensorStateClass.MEASUREMENT + }, + "real_date_setting_day": { + "device_class": SensorDeviceClass.ENUM, + "state_class": SensorStateClass.MEASUREMENT + }, + "category": { + "device_class": SensorDeviceClass.ENUM, + "state_class": SensorStateClass.MEASUREMENT + }, + "real_time_setting_min": { + "device_class": SensorDeviceClass.DURATION, + "unit_of_measurement": UnitOfTime.MINUTES, + "state_class": SensorStateClass.MEASUREMENT + }, + "regeneration_stages": { + "device_class": SensorDeviceClass.ENUM, + "state_class": SensorStateClass.MEASUREMENT + }, + "soft_available_big": { + "device_class": SensorDeviceClass.VOLUME, + "unit_of_measurement": UnitOfVolume.LITERS, + "state_class": SensorStateClass.MEASUREMENT + }, + "water_consumption_big": { + "device_class": SensorDeviceClass.VOLUME, + "unit_of_measurement": UnitOfVolume.LITERS, + "state_class": SensorStateClass.MEASUREMENT + }, + "water_consumption_today": { + "device_class": SensorDeviceClass.VOLUME, + "unit_of_measurement": UnitOfVolume.LITERS, + "state_class": SensorStateClass.MEASUREMENT + }, + "water_consumption_average": { + "device_class": SensorDeviceClass.VOLUME, + "unit_of_measurement": UnitOfVolume.LITERS, + "state_class": SensorStateClass.MEASUREMENT + }, + "salt_alarm_threshold": { + "device_class": SensorDeviceClass.WEIGHT, + "unit_of_measurement": UnitOfMass.KILOGRAMS, + "state_class": SensorStateClass.MEASUREMENT + }, + "leak_water_protection_value": { + "device_class": SensorDeviceClass.PRESSURE, + "state_class": SensorStateClass.MEASUREMENT + } + } } } } diff --git a/custom_components/midea_auto_cloud/midea_entity.py b/custom_components/midea_auto_cloud/midea_entity.py index 3314baa..6ec05ce 100644 --- a/custom_components/midea_auto_cloud/midea_entity.py +++ b/custom_components/midea_auto_cloud/midea_entity.py @@ -73,10 +73,11 @@ class MideaEntity(CoordinatorEntity[MideaDataUpdateCoordinator], Entity): self._attr_device_class = self._config.get("device_class") self._attr_state_class = self._config.get("state_class") self._attr_icon = self._config.get("icon") + # Prefer translated name; allow explicit override via config.name + self._attr_translation_key = self._config.get("translation_key") or self._entity_key name_cfg = self._config.get("name") - if name_cfg is None: - name_cfg = self._entity_key.replace("_", " ").title() - self._attr_name = f"{name_cfg}" + if name_cfg is not None: + self._attr_name = f"{name_cfg}" self.entity_id = self._attr_unique_id # Register device updates for HA state refresh try: diff --git a/custom_components/midea_auto_cloud/translations/en.json b/custom_components/midea_auto_cloud/translations/en.json index cf9ba81..50b092c 100644 --- a/custom_components/midea_auto_cloud/translations/en.json +++ b/custom_components/midea_auto_cloud/translations/en.json @@ -102,5 +102,141 @@ } } } + }, + "entity": { + "select": { + "work_status": { + "name": "Work Status" + }, + "fan_level": { "name": "Fan Level" }, + "work_mode": { "name": "Work Mode" }, + "move_direction": { "name": "Move Direction" }, + "query_type": { "name": "Query Type" }, + "sub_work_status": { "name": "Sub Work Status" }, + "water_level": { "name": "Water Level" }, + "mop_status": { "name": "Mop Status" }, + "error_type": { "name": "Error Type" }, + "control_type": { "name": "Control Type" }, + "mode": { "name": "Mode" }, + "rice_type": { "name": "Rice Type" } + }, + "sensor": { + "bright": { "name": "Brightness" }, + "temperature": { "name": "Temperature" }, + "softwater": { "name": "Soft Water Temp" }, + "left_time": { "name": "Remaining Time" }, + "air_set_hour": { "name": "AC Set Time" }, + "air_left_hour": { "name": "AC Remaining Time" }, + "micro_leak_protection_value": { "name": "Micro Leak Protection Value" }, + "regeneration_current_stages": { "name": "Regeneration Current Stages" }, + "water_hardness": { "name": "Water Hardness" }, + "timing_regeneration_hour": { "name": "Timing Regeneration Hour" }, + "real_time_setting_hour": { "name": "Real Time Setting Hour" }, + "timing_regeneration_min": { "name": "Timing Regeneration Min" }, + "regeneration_left_seconds": { "name": "Regeneration Left Seconds" }, + "maintenance_reminder_setting": { "name": "Maintenance Reminder Setting" }, + "mixed_water_gear": { "name": "Mixed Water Gear" }, + "use_days": { "name": "Use Days" }, + "days_since_last_regeneration": { "name": "Days Since Last Regeneration" }, + "velocity": { "name": "Velocity" }, + "supply_voltage": { "name": "Supply Voltage" }, + "left_salt": { "name": "Left Salt" }, + "pre_regeneration_days": { "name": "Pre Regeneration Days" }, + "flushing_days": { "name": "Flushing Days" }, + "salt_setting": { "name": "Salt Setting" }, + "e_version": { "name": "E Version" }, + "regeneration_count": { "name": "Regeneration Count" }, + "battery_voltage": { "name": "Battery Voltage" }, + "error": { "name": "Error" }, + "days_since_last_two_regeneration": { "name": "Days Since Last Two Regeneration" }, + "remind_maintenance_days": { "name": "Remind Maintenance Days" }, + "real_date_setting_year": { "name": "Real Date Setting Year" }, + "real_date_setting_month": { "name": "Real Date Setting Month" }, + "real_date_setting_day": { "name": "Real Date Setting Day" }, + "category": { "name": "Category" }, + "real_time_setting_min": { "name": "Real Time Setting Min" }, + "regeneration_stages": { "name": "Regeneration Stages" }, + "v_version": { "name": "V Version" }, + "k_version": { "name": "K Version" }, + "w_version": { "name": "W Version" }, + "soft_available_big": { "name": "Soft Available Big" }, + "water_consumption_big": { "name": "Water Consumption Big" }, + "water_consumption_today": { "name": "Water Consumption Today" }, + "water_consumption_average": { "name": "Water Consumption Average" }, + "salt_alarm_threshold": { "name": "Salt Alarm Threshold" }, + "leak_water_protection_value": { "name": "Leak Water Protection Value" }, + "sn8": { "name": "SN8" }, + "version": { "name": "Version" }, + "dust_count": { "name": "Dust Count" }, + "area": { "name": "Area" }, + "voice_level": { "name": "Voice Level" }, + "switch_status": { "name": "Switch Status" }, + "water_station_status": { "name": "Water Station Status" }, + "work_time": { "name": "Work Time" }, + "battery_percent": { "name": "Battery Percent" }, + "planner_status": { "name": "Planner Status" }, + "sweep_then_mop_mode_progress": { "name": "Sweep Then Mop Mode Progress" }, + "error_desc": { "name": "Error Description" }, + "station_error_desc": { "name": "Station Error Description" }, + "work_stage": { "name": "Work Stage" }, + "voltage": { "name": "Voltage" }, + "top_temperature": { "name": "Top Temperature" }, + "bottom_temperature": { "name": "Bottom Temperature" }, + "remaining_time": { "name": "Remaining Time" }, + "warming_time": { "name": "Warming Time" }, + "delay_time": { "name": "Delay Time" }, + "indoor_temperature": { "name": "Indoor Temperature" }, + "outdoor_temperature": { "name": "Outdoor Temperature" } + }, + "binary_sensor": { + "air_status": { "name": "Air Running" }, + "water_lack": { "name": "Water Lack" }, + "softwater_lack": { "name": "Soft Water Lack" }, + "wash_stage": { "name": "Washing Stage" }, + "bright_lack": { "name": "Brightness Lack" }, + "diy_flag": { "name": "DIY Flag" }, + "diy_main_wash": { "name": "DIY Main Wash" }, + "diy_piao_wash": { "name": "DIY Rinse" }, + "diy_times": { "name": "DIY Times" }, + "maintenance_remind": { "name": "Maintenance Remind" }, + "chlorine_sterilization_error": { "name": "Chlorine Sterilization Error" }, + "rtc_error": { "name": "RTC Error" }, + "carpet_switch": { "name": "Carpet Switch" }, + "have_reserve_task": { "name": "Have Reserve Task" }, + "top_hot": { "name": "Top Hot" }, + "flank_hot": { "name": "Flank Hot" }, + "bottom_hot": { "name": "Bottom Hot" } + }, + "climate": { + "thermostat": { "name": "Thermostat" } + }, + "switch": { + "airswitch": { "name": "AC Switch" }, + "waterswitch": { "name": "Water Switch" }, + "uvswitch": { "name": "UV Switch" }, + "doorswitch": { "name": "Door Switch" }, + "dryswitch": { "name": "Dry Switch" }, + "dry_step_switch": { "name": "Dry Step Switch" }, + "holiday_mode": { "name": "Holiday Mode" }, + "water_way": { "name": "Water Way" }, + "soften": { "name": "Soften" }, + "leak_water_protection": { "name": "Leak Water Protection" }, + "cl_sterilization": { "name": "Chlorine Sterilization" }, + "micro_leak": { "name": "Micro Leak" }, + "low_salt": { "name": "Low Salt" }, + "no_salt": { "name": "No Salt" }, + "low_battery": { "name": "Low Battery" }, + "salt_level_sensor_error": { "name": "Salt Level Sensor Error" }, + "flowmeter_error": { "name": "Flowmeter Error" }, + "leak_water": { "name": "Leak Water" }, + "micro_leak_protection": { "name": "Micro Leak Protection" }, + "maintenance_reminder_switch": { "name": "Maintenance Reminder Switch" }, + "rsj_stand_by": { "name": "RSJ Stand By" }, + "regeneration": { "name": "Regeneration" }, + "pre_regeneration": { "name": "Pre Regeneration" }, + "dry": { "name": "Dry" }, + "prevent_straight_wind": { "name": "Prevent Straight Wind" }, + "aux_heat": { "name": "Aux Heat" } + } } } \ No newline at end of file diff --git a/custom_components/midea_auto_cloud/translations/zh-Hans.json b/custom_components/midea_auto_cloud/translations/zh-Hans.json index 6d839d3..ac7af27 100644 --- a/custom_components/midea_auto_cloud/translations/zh-Hans.json +++ b/custom_components/midea_auto_cloud/translations/zh-Hans.json @@ -102,5 +102,141 @@ } } } + }, + "entity": { + "select": { + "work_status": { + "name": "工作状态" + }, + "fan_level": { "name": "风扇档位" }, + "work_mode": { "name": "工作模式" }, + "move_direction": { "name": "移动方向" }, + "query_type": { "name": "查询类型" }, + "sub_work_status": { "name": "子工作状态" }, + "water_level": { "name": "水位" }, + "mop_status": { "name": "拖地状态" }, + "error_type": { "name": "错误类型" }, + "control_type": { "name": "控制类型" }, + "mode": { "name": "模式" }, + "rice_type": { "name": "米种类型" } + }, + "sensor": { + "bright": { "name": "亮度" }, + "temperature": { "name": "温度" }, + "softwater": { "name": "软水温度" }, + "left_time": { "name": "剩余时间" }, + "air_set_hour": { "name": "空调设置时间" }, + "air_left_hour": { "name": "空调剩余时间" }, + "micro_leak_protection_value": { "name": "微漏保护值" }, + "regeneration_current_stages": { "name": "再生当前阶段" }, + "water_hardness": { "name": "水质硬度" }, + "timing_regeneration_hour": { "name": "定时再生小时" }, + "real_time_setting_hour": { "name": "实时设置小时" }, + "timing_regeneration_min": { "name": "定时再生分钟" }, + "regeneration_left_seconds": { "name": "再生剩余秒数" }, + "maintenance_reminder_setting": { "name": "维护提醒设置" }, + "mixed_water_gear": { "name": "混合水档位" }, + "use_days": { "name": "使用天数" }, + "days_since_last_regeneration": { "name": "距离上次再生天数" }, + "velocity": { "name": "流速" }, + "supply_voltage": { "name": "供电电压" }, + "left_salt": { "name": "剩余盐量" }, + "pre_regeneration_days": { "name": "预再生天数" }, + "flushing_days": { "name": "冲洗天数" }, + "salt_setting": { "name": "盐设置" }, + "e_version": { "name": "E 版本" }, + "regeneration_count": { "name": "再生次数" }, + "battery_voltage": { "name": "电池电压" }, + "error": { "name": "错误" }, + "days_since_last_two_regeneration": { "name": "距离上次两次再生天数" }, + "remind_maintenance_days": { "name": "提醒维护天数" }, + "real_date_setting_year": { "name": "实际日期设置年" }, + "real_date_setting_month": { "name": "实际日期设置月" }, + "real_date_setting_day": { "name": "实际日期设置日" }, + "category": { "name": "类别" }, + "real_time_setting_min": { "name": "实时设置分钟" }, + "regeneration_stages": { "name": "再生阶段" }, + "v_version": { "name": "V 版本" }, + "k_version": { "name": "K 版本" }, + "w_version": { "name": "W 版本" }, + "soft_available_big": { "name": "软水可用量" }, + "water_consumption_big": { "name": "用水量" }, + "water_consumption_today": { "name": "今日用水量" }, + "water_consumption_average": { "name": "平均用水量" }, + "salt_alarm_threshold": { "name": "盐报警阈值" }, + "leak_water_protection_value": { "name": "漏水保护值" }, + "sn8": { "name": "SN8" }, + "version": { "name": "版本" }, + "dust_count": { "name": "灰尘计数" }, + "area": { "name": "面积" }, + "voice_level": { "name": "语音音量" }, + "switch_status": { "name": "开关状态" }, + "water_station_status": { "name": "水站状态" }, + "work_time": { "name": "工作时间" }, + "battery_percent": { "name": "电池百分比" }, + "planner_status": { "name": "规划器状态" }, + "sweep_then_mop_mode_progress": { "name": "先扫后拖模式进度" }, + "error_desc": { "name": "错误描述" }, + "station_error_desc": { "name": "基站错误描述" }, + "work_stage": { "name": "工作阶段" }, + "voltage": { "name": "电压" }, + "top_temperature": { "name": "上盖温度" }, + "bottom_temperature": { "name": "底部温度" }, + "remaining_time": { "name": "剩余时间" }, + "warming_time": { "name": "保温时间" }, + "delay_time": { "name": "预约时间" }, + "indoor_temperature": { "name": "室内温度" }, + "outdoor_temperature": { "name": "室外温度" } + }, + "binary_sensor": { + "air_status": { "name": "空气运行" }, + "water_lack": { "name": "缺水" }, + "softwater_lack": { "name": "软水不足" }, + "wash_stage": { "name": "洗涤阶段" }, + "bright_lack": { "name": "亮光不足" }, + "diy_flag": { "name": "自定义标记" }, + "diy_main_wash": { "name": "自定义主洗" }, + "diy_piao_wash": { "name": "自定义漂洗" }, + "diy_times": { "name": "自定义次数" }, + "maintenance_remind": { "name": "维护提醒" }, + "chlorine_sterilization_error": { "name": "氯气杀菌错误" }, + "rtc_error": { "name": "RTC 错误" }, + "carpet_switch": { "name": "地毯开关" }, + "have_reserve_task": { "name": "有预约任务" }, + "top_hot": { "name": "上盖加热" }, + "flank_hot": { "name": "侧壁加热" }, + "bottom_hot": { "name": "底部加热" } + }, + "climate": { + "thermostat": { "name": "温控器" } + }, + "switch": { + "airswitch": { "name": "空调开关" }, + "waterswitch": { "name": "热水开关" }, + "uvswitch": { "name": "UV 开关" }, + "doorswitch": { "name": "门锁开关" }, + "dryswitch": { "name": "烘干开关" }, + "dry_step_switch": { "name": "烘干分步开关" }, + "holiday_mode": { "name": "假日模式" }, + "water_way": { "name": "水路" }, + "soften": { "name": "软化" }, + "leak_water_protection": { "name": "漏水保护" }, + "cl_sterilization": { "name": "氯气杀菌" }, + "micro_leak": { "name": "微漏" }, + "low_salt": { "name": "低盐" }, + "no_salt": { "name": "无盐" }, + "low_battery": { "name": "低电量" }, + "salt_level_sensor_error": { "name": "盐位传感器错误" }, + "flowmeter_error": { "name": "流量计错误" }, + "leak_water": { "name": "漏水" }, + "micro_leak_protection": { "name": "微漏保护" }, + "maintenance_reminder_switch": { "name": "维护提醒开关" }, + "rsj_stand_by": { "name": "RSJ 待机" }, + "regeneration": { "name": "再生" }, + "pre_regeneration": { "name": "预再生" }, + "dry": { "name": "干燥" }, + "prevent_straight_wind": { "name": "防直吹" }, + "aux_heat": { "name": "电辅热" } + } } }