From 40ba24c32a5fb1863979a50b5c5b9e287f5ca9f6 Mon Sep 17 00:00:00 2001 From: sususweet Date: Thu, 25 Sep 2025 10:50:39 +0800 Subject: [PATCH] feat: support more devices. --- README.md | 2 + custom_components/midea_auto_cloud/climate.py | 21 +- .../midea_auto_cloud/device_mapping/T0xCA.py | 317 ++++++++++++++++++ .../midea_auto_cloud/device_mapping/T0xE3.py | 183 ++++++++++ .../device_mapping/example.py | 3 +- .../midea_auto_cloud/midea_entity.py | 6 +- custom_components/midea_auto_cloud/sensor.py | 24 +- .../midea_auto_cloud/translations/en.json | 114 ++++++- .../translations/zh-Hans.json | 114 ++++++- 9 files changed, 774 insertions(+), 10 deletions(-) create mode 100644 custom_components/midea_auto_cloud/device_mapping/T0xCA.py create mode 100644 custom_components/midea_auto_cloud/device_mapping/T0xE3.py diff --git a/README.md b/README.md index 3aafb53..4fa04c4 100644 --- a/README.md +++ b/README.md @@ -19,12 +19,14 @@ - T0xAC 空调 - T0xB3 消毒碗柜 - T0xB8 智能扫地机器人 +- T0xCA 对开门冰箱 - T0xCE 新风机 - T0xCF 中央空调暖家 - T0xD9 复式洗衣机 - T0xDB 滚筒洗衣机 - T0xDC 干衣机 - T0xE1 洗碗机 +- T0xE3 恒温式燃气热水器 - T0xEA 电饭锅 - T0xED 软水机 - T0xFD 加湿器 diff --git a/custom_components/midea_auto_cloud/climate.py b/custom_components/midea_auto_cloud/climate.py index 94a8fa2..058ed28 100644 --- a/custom_components/midea_auto_cloud/climate.py +++ b/custom_components/midea_auto_cloud/climate.py @@ -100,7 +100,13 @@ class MideaClimateEntity(MideaEntity, ClimateEntity): @property def current_temperature(self): - return self.device_attributes.get(self._key_current_temperature) + temp = self.device_attributes.get(self._key_current_temperature) + if temp is not None: + try: + return float(temp) + except (ValueError, TypeError): + return None + return None @property def target_temperature(self): @@ -108,10 +114,19 @@ class MideaClimateEntity(MideaEntity, ClimateEntity): temp_int = self.device_attributes.get(self._key_target_temperature[0]) tem_dec = self.device_attributes.get(self._key_target_temperature[1]) if temp_int is not None and tem_dec is not None: - return temp_int + tem_dec + try: + return float(temp_int) + float(tem_dec) + except (ValueError, TypeError): + return None return None else: - return self.device_attributes.get(self._key_target_temperature) + temp = self.device_attributes.get(self._key_target_temperature) + if temp is not None: + try: + return float(temp) + except (ValueError, TypeError): + return None + return None @property def min_temp(self): diff --git a/custom_components/midea_auto_cloud/device_mapping/T0xCA.py b/custom_components/midea_auto_cloud/device_mapping/T0xCA.py new file mode 100644 index 0000000..e946e43 --- /dev/null +++ b/custom_components/midea_auto_cloud/device_mapping/T0xCA.py @@ -0,0 +1,317 @@ +from homeassistant.const import Platform, UnitOfTemperature, UnitOfTime, PERCENTAGE, PRECISION_HALVES +from homeassistant.components.sensor import SensorStateClass, SensorDeviceClass +from homeassistant.components.binary_sensor import BinarySensorDeviceClass +from homeassistant.components.switch import SwitchDeviceClass + +DEVICE_MAPPING = { + "default": { + "rationale": ["off", "on"], + "queries": [{}], + "centralized": [ + "freezing_mode", "intelligent_mode", "energy_saving_mode", "holiday_mode", + "moisturize_mode", "preservation_mode", "acme_freezing_mode", "variable_mode", + "storage_power", "left_flexzone_power", "right_flexzone_power", "freezing_power", + "function_zone_power", "storage_temperature", "freezing_temperature", + "left_flexzone_temperature", "right_flexzone_temperature" + ], + "entities": { + Platform.SWITCH: { + "freezing_mode": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "intelligent_mode": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "energy_saving_mode": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "holiday_mode": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "moisturize_mode": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "preservation_mode": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "acme_freezing_mode": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "storage_power": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "left_flexzone_power": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "right_flexzone_power": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "freezing_power": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "function_zone_power": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "cross_peak_electricity": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "all_refrigeration_power": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "remove_dew_power": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "humidify_power": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "unfreeze_power": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "floodlight_power": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "radar_mode_power": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "milk_mode_power": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "icea_mode_power": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "plasma_aseptic_mode_power": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "acquire_icea_mode_power": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "brash_icea_mode_power": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "acquire_water_mode_power": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "freezing_ice_machine_power": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "microcrystal_fresh": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "dry_zone": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "electronic_smell": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "eradicate_pesticide_residue": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "performance_mode": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "ice_mouth_power": { + "device_class": SwitchDeviceClass.SWITCH, + } + }, + Platform.BINARY_SENSOR: { + "storage_door_state": { + "device_class": BinarySensorDeviceClass.DOOR, + }, + "freezer_door_state": { + "device_class": BinarySensorDeviceClass.DOOR, + }, + "flexzone_door_state": { + "device_class": BinarySensorDeviceClass.DOOR, + }, + "storage_ice_home_door_state": { + "device_class": BinarySensorDeviceClass.DOOR, + }, + "bar_door_state": { + "device_class": BinarySensorDeviceClass.DOOR, + }, + "is_error": { + "device_class": BinarySensorDeviceClass.PROBLEM, + } + }, + Platform.CLIMATE: { + "storage_zone": { + "power": "storage_power", + "hvac_modes": { + "off": {"storage_power": "off"}, + "heat": {"storage_power": "on"} + }, + "target_temperature": "storage_temperature", + "current_temperature": "refrigeration_real_temperature", + "min_temp": -10, + "max_temp": 10, + "temperature_unit": UnitOfTemperature.CELSIUS, + "precision": PRECISION_HALVES, + }, + "freezing_zone": { + "power": "freezing_power", + "hvac_modes": { + "off": {"freezing_power": "off"}, + "heat": {"freezing_power": "on"} + }, + "target_temperature": "freezing_temperature", + "current_temperature": "freezing_real_temperature", + "min_temp": -30, + "max_temp": -10, + "temperature_unit": UnitOfTemperature.CELSIUS, + "precision": PRECISION_HALVES, + }, + "left_flexzone": { + "power": "left_flexzone_power", + "hvac_modes": { + "off": {"left_flexzone_power": "off"}, + "heat": {"left_flexzone_power": "on"} + }, + "target_temperature": "left_flexzone_temperature", + "current_temperature": "left_variable_real_temperature", + "min_temp": -30, + "max_temp": 10, + "temperature_unit": UnitOfTemperature.CELSIUS, + "precision": PRECISION_HALVES, + }, + "right_flexzone": { + "power": "right_flexzone_power", + "hvac_modes": { + "off": {"right_flexzone_power": "off"}, + "heat": {"right_flexzone_power": "on"} + }, + "target_temperature": "right_flexzone_temperature", + "current_temperature": "right_variable_real_temperature", + "min_temp": -30, + "max_temp": 10, + "temperature_unit": UnitOfTemperature.CELSIUS, + "precision": PRECISION_HALVES, + } + }, + Platform.SELECT: { + "variable_mode": { + "options": { + "none_mode": {"variable_mode": "none_mode"}, + "freezing": {"variable_mode": "freezing"}, + "refrigeration": {"variable_mode": "refrigeration"}, + "wine": {"variable_mode": "wine"}, + "vegetable": {"variable_mode": "vegetable"} + } + }, + "icea_bar_function_switch": { + "options": { + "default": {"icea_bar_function_switch": "default"}, + "ice": {"icea_bar_function_switch": "ice"}, + "water": {"icea_bar_function_switch": "water"}, + "off": {"icea_bar_function_switch": "off"} + } + }, + "food_site": { + "options": { + "left_freezing_room": {"food_site": "left_freezing_room"}, + "right_freezing_room": {"food_site": "right_freezing_room"}, + "storage_room": {"food_site": "storage_room"}, + "function_zone": {"food_site": "function_zone"} + } + }, + "temperature_unit": { + "options": { + "celsius": {"temperature_unit": "celsius"}, + "fahrenheit": {"temperature_unit": "fahrenheit"} + } + } + }, + Platform.SENSOR: { + "storage_temperature": { + "device_class": SensorDeviceClass.TEMPERATURE, + "unit_of_measurement": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT + }, + "freezing_temperature": { + "device_class": SensorDeviceClass.TEMPERATURE, + "unit_of_measurement": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT + }, + "left_flexzone_temperature": { + "device_class": SensorDeviceClass.TEMPERATURE, + "unit_of_measurement": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT + }, + "right_flexzone_temperature": { + "device_class": SensorDeviceClass.TEMPERATURE, + "unit_of_measurement": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT + }, + "refrigeration_real_temperature": { + "device_class": SensorDeviceClass.TEMPERATURE, + "unit_of_measurement": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT + }, + "freezing_real_temperature": { + "device_class": SensorDeviceClass.TEMPERATURE, + "unit_of_measurement": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT + }, + "left_variable_real_temperature": { + "device_class": SensorDeviceClass.TEMPERATURE, + "unit_of_measurement": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT + }, + "right_variable_real_temperature": { + "device_class": SensorDeviceClass.TEMPERATURE, + "unit_of_measurement": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT + }, + "interval_room_humidity_level": { + "device_class": SensorDeviceClass.HUMIDITY, + "unit_of_measurement": PERCENTAGE, + "state_class": SensorStateClass.MEASUREMENT + }, + "normal_zone_level": { + "device_class": SensorDeviceClass.ENUM, + "state_class": SensorStateClass.MEASUREMENT + }, + "function_zone_level": { + "device_class": SensorDeviceClass.ENUM, + "state_class": SensorStateClass.MEASUREMENT + }, + "freeze_fahrenheit_level": { + "device_class": SensorDeviceClass.ENUM, + "state_class": SensorStateClass.MEASUREMENT + }, + "refrigeration_fahrenheit_level": { + "device_class": SensorDeviceClass.ENUM, + "state_class": SensorStateClass.MEASUREMENT + }, + "leach_expire_day": { + "device_class": SensorDeviceClass.DURATION, + "unit_of_measurement": UnitOfTime.DAYS, + "state_class": SensorStateClass.MEASUREMENT + }, + "power_consumption_low": { + "device_class": SensorDeviceClass.POWER, + "unit_of_measurement": "W", + "state_class": SensorStateClass.MEASUREMENT + }, + "power_consumption_high": { + "device_class": SensorDeviceClass.POWER, + "unit_of_measurement": "W", + "state_class": SensorStateClass.MEASUREMENT + }, + "fast_cold_minute": { + "device_class": SensorDeviceClass.DURATION, + "unit_of_measurement": UnitOfTime.MINUTES, + "state_class": SensorStateClass.MEASUREMENT + }, + "fast_freeze_minute": { + "device_class": SensorDeviceClass.DURATION, + "unit_of_measurement": UnitOfTime.MINUTES, + "state_class": SensorStateClass.MEASUREMENT + }, + "version": { + "device_class": SensorDeviceClass.ENUM, + "state_class": SensorStateClass.MEASUREMENT + } + } + } + } +} diff --git a/custom_components/midea_auto_cloud/device_mapping/T0xE3.py b/custom_components/midea_auto_cloud/device_mapping/T0xE3.py new file mode 100644 index 0000000..65967c7 --- /dev/null +++ b/custom_components/midea_auto_cloud/device_mapping/T0xE3.py @@ -0,0 +1,183 @@ +from homeassistant.const import Platform, UnitOfTemperature, UnitOfVolume, UnitOfTime, PERCENTAGE, PRECISION_HALVES +from homeassistant.components.sensor import SensorStateClass, SensorDeviceClass +from homeassistant.components.binary_sensor import BinarySensorDeviceClass +from homeassistant.components.switch import SwitchDeviceClass + +DEVICE_MAPPING = { + "default": { + "rationale": ["off", "on"], + "queries": [{}], + "centralized": [ + "power", "bubble", "cold_water", "bathtub", "safe", "cold_water_dot", + "change_litre_switch", "cold_water_ai", "cold_water_pressure", + "person_mode_one", "person_mode_two", "person_mode_three", "gesture_function", + "mode", "power_level", "type_machine", "capacity", "temperature" + ], + "entities": { + Platform.SWITCH: { + "bubble": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "cold_water": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "bathtub": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "safe": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "cold_water_dot": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "change_litre_switch": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "cold_water_ai": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "cold_water_pressure": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "person_mode_one": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "person_mode_two": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "person_mode_three": { + "device_class": SwitchDeviceClass.SWITCH, + }, + "gesture_function": { + "device_class": SwitchDeviceClass.SWITCH, + } + }, + Platform.CLIMATE: { + "water_heater": { + "power": "power", + "hvac_modes": { + "off": {"power": "off"}, + "heat": {"power": "on", "mode": "shower"} + }, + "target_temperature": "temperature", + "current_temperature": "out_water_tem", + "min_temp": 20, + "max_temp": 60, + "temperature_unit": UnitOfTemperature.CELSIUS, + "precision": PRECISION_HALVES, + } + }, + Platform.SELECT: { + "mode": { + "options": { + "shower": {"mode": "shower"}, + "bath": {"mode": "bath"}, + "mixed": {"mode": "mixed"}, + "eco": {"mode": "eco"} + } + }, + "power_level": { + "options": { + "low": {"power_level": "0"}, + "medium": {"power_level": "1"}, + "high": {"power_level": "2"}, + "max": {"power_level": "3"} + } + }, + "type_machine": { + "options": { + "standard": {"type_machine": "20"}, + "premium": {"type_machine": "21"}, + "deluxe": {"type_machine": "22"} + } + }, + "capacity": { + "options": { + "small": {"capacity": "1"}, + "medium": {"capacity": "2"}, + "large": {"capacity": "3"} + } + }, + "gesture_function_type": { + "options": { + "none": {"gesture_function_type": "0"}, + "wave": {"gesture_function_type": "1"}, + "touch": {"gesture_function_type": "2"}, + "proximity": {"gesture_function_type": "3"} + } + } + }, + Platform.SENSOR: { + "out_water_tem": { + "device_class": SensorDeviceClass.TEMPERATURE, + "unit_of_measurement": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT + }, + "water_volume": { + "device_class": SensorDeviceClass.VOLUME, + "unit_of_measurement": UnitOfVolume.LITERS, + "state_class": SensorStateClass.MEASUREMENT + }, + "zero_cold_tem": { + "device_class": SensorDeviceClass.TEMPERATURE, + "unit_of_measurement": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT + }, + "bath_out_volume": { + "device_class": SensorDeviceClass.VOLUME, + "unit_of_measurement": UnitOfVolume.LITERS, + "state_class": SensorStateClass.MEASUREMENT + }, + "return_water_tem": { + "device_class": SensorDeviceClass.TEMPERATURE, + "unit_of_measurement": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT + }, + "change_litre": { + "device_class": SensorDeviceClass.VOLUME, + "unit_of_measurement": UnitOfVolume.LITERS, + "state_class": SensorStateClass.MEASUREMENT + }, + "bathtub_water_level": { + "device_class": SensorDeviceClass.VOLUME, + "unit_of_measurement": UnitOfVolume.LITERS, + "state_class": SensorStateClass.MEASUREMENT + }, + "temperature": { + "device_class": SensorDeviceClass.TEMPERATURE, + "unit_of_measurement": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT + }, + "gas_lift_percent": { + "device_class": SensorDeviceClass.POWER_FACTOR, + "unit_of_measurement": PERCENTAGE, + "state_class": SensorStateClass.MEASUREMENT + }, + "person_tem_one": { + "device_class": SensorDeviceClass.TEMPERATURE, + "unit_of_measurement": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT + }, + "person_tem_two": { + "device_class": SensorDeviceClass.TEMPERATURE, + "unit_of_measurement": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT + }, + "person_tem_three": { + "device_class": SensorDeviceClass.TEMPERATURE, + "unit_of_measurement": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT + }, + "in_water_tem": { + "device_class": SensorDeviceClass.TEMPERATURE, + "unit_of_measurement": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT + }, + "error_code": { + "device_class": SensorDeviceClass.ENUM, + "state_class": SensorStateClass.MEASUREMENT + } + } + } + } +} diff --git a/custom_components/midea_auto_cloud/device_mapping/example.py b/custom_components/midea_auto_cloud/device_mapping/example.py index 01e2043..02f956d 100644 --- a/custom_components/midea_auto_cloud/device_mapping/example.py +++ b/custom_components/midea_auto_cloud/device_mapping/example.py @@ -1,6 +1,5 @@ -from homeassistant.const import Platform, UnitOfTemperature +from homeassistant.const import Platform, UnitOfTemperature, PRECISION_HALVES from homeassistant.components.sensor import SensorStateClass, SensorDeviceClass -from homeassistant.components.climate.const import PRECISION_HALVES from homeassistant.components.binary_sensor import BinarySensorDeviceClass from homeassistant.components.switch import SwitchDeviceClass diff --git a/custom_components/midea_auto_cloud/midea_entity.py b/custom_components/midea_auto_cloud/midea_entity.py index 6ec05ce..dd4a2ea 100644 --- a/custom_components/midea_auto_cloud/midea_entity.py +++ b/custom_components/midea_auto_cloud/midea_entity.py @@ -124,8 +124,10 @@ class MideaEntity(CoordinatorEntity[MideaDataUpdateCoordinator], Entity): @property def available(self) -> bool: """Return if entity is available.""" - MideaLogger.debug(f"available available={self.coordinator.data} ") - return self.coordinator.data.available + if self.coordinator.data: + return self.coordinator.data.available + else: + return False async def _publish_command(self) -> None: """Publish commands to the device.""" diff --git a/custom_components/midea_auto_cloud/sensor.py b/custom_components/midea_auto_cloud/sensor.py index 8cbf568..e539bb6 100644 --- a/custom_components/midea_auto_cloud/sensor.py +++ b/custom_components/midea_auto_cloud/sensor.py @@ -66,4 +66,26 @@ class MideaSensorEntity(MideaEntity, SensorEntity): @property def native_value(self): """Return the native value of the sensor.""" - return self.device_attributes.get(self._entity_key) + value = self.device_attributes.get(self._entity_key) + + # Handle invalid string values + if isinstance(value, str) and value.lower() in ['invalid', 'none', 'null', '']: + return None + + # Try to convert to number if it's a string that looks like a number + if isinstance(value, str): + try: + # Try integer first + if '.' not in value: + return int(value) + # Then float + return float(value) + except (ValueError, TypeError): + # If conversion fails, return None for numeric sensors + # or return the original string for enum sensors + device_class = self._config.get("device_class") + if device_class and "enum" not in device_class.lower(): + return None + return value + + return value diff --git a/custom_components/midea_auto_cloud/translations/en.json b/custom_components/midea_auto_cloud/translations/en.json index e60c0a8..85b4797 100644 --- a/custom_components/midea_auto_cloud/translations/en.json +++ b/custom_components/midea_auto_cloud/translations/en.json @@ -508,7 +508,119 @@ "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" } + "add_water_flag": { "name": "Add Water Flag" }, + "bubble": { "name": "Bubble" }, + "cold_water": { "name": "Cold Water" }, + "bathtub": { "name": "Bathtub" }, + "safe": { "name": "Safe" }, + "cold_water_dot": { "name": "Cold Water Dot" }, + "change_litre_switch": { "name": "Change Litre Switch" }, + "cold_water_ai": { "name": "Cold Water AI" }, + "cold_water_pressure": { "name": "Cold Water Pressure" }, + "person_mode_one": { "name": "Person Mode One" }, + "person_mode_two": { "name": "Person Mode Two" }, + "person_mode_three": { "name": "Person Mode Three" }, + "gesture_function": { "name": "Gesture Function" } + }, + "climate": { + "water_heater": { "name": "Water Heater" } + }, + "select": { + "mode": { "name": "Mode" }, + "power_level": { "name": "Power Level" }, + "type_machine": { "name": "Type Machine" }, + "capacity": { "name": "Capacity" }, + "gesture_function_type": { "name": "Gesture Function Type" } + }, + "sensor": { + "out_water_tem": { "name": "Out Water Temperature" }, + "water_volume": { "name": "Water Volume" }, + "zero_cold_tem": { "name": "Zero Cold Temperature" }, + "bath_out_volume": { "name": "Bath Out Volume" }, + "return_water_tem": { "name": "Return Water Temperature" }, + "change_litre": { "name": "Change Litre" }, + "bathtub_water_level": { "name": "Bathtub Water Level" }, + "temperature": { "name": "Temperature" }, + "gas_lift_percent": { "name": "Gas Lift Percent" }, + "person_tem_one": { "name": "Person Temperature One" }, + "person_tem_two": { "name": "Person Temperature Two" }, + "person_tem_three": { "name": "Person Temperature Three" }, + "in_water_tem": { "name": "In Water Temperature" }, + "error_code": { "name": "Error Code" }, + "version": { "name": "Version" }, + "freezing_mode": { "name": "Freezing Mode" }, + "intelligent_mode": { "name": "Intelligent Mode" }, + "energy_saving_mode": { "name": "Energy Saving Mode" }, + "holiday_mode": { "name": "Holiday Mode" }, + "moisturize_mode": { "name": "Moisturize Mode" }, + "preservation_mode": { "name": "Preservation Mode" }, + "acme_freezing_mode": { "name": "Acme Freezing Mode" }, + "storage_power": { "name": "Storage Power" }, + "left_flexzone_power": { "name": "Left Flexzone Power" }, + "right_flexzone_power": { "name": "Right Flexzone Power" }, + "freezing_power": { "name": "Freezing Power" }, + "function_zone_power": { "name": "Function Zone Power" }, + "cross_peak_electricity": { "name": "Cross Peak Electricity" }, + "all_refrigeration_power": { "name": "All Refrigeration Power" }, + "remove_dew_power": { "name": "Remove Dew Power" }, + "humidify_power": { "name": "Humidify Power" }, + "unfreeze_power": { "name": "Unfreeze Power" }, + "floodlight_power": { "name": "Floodlight Power" }, + "radar_mode_power": { "name": "Radar Mode Power" }, + "milk_mode_power": { "name": "Milk Mode Power" }, + "icea_mode_power": { "name": "Icea Mode Power" }, + "plasma_aseptic_mode_power": { "name": "Plasma Aseptic Mode Power" }, + "acquire_icea_mode_power": { "name": "Acquire Icea Mode Power" }, + "brash_icea_mode_power": { "name": "Brash Icea Mode Power" }, + "acquire_water_mode_power": { "name": "Acquire Water Mode Power" }, + "freezing_ice_machine_power": { "name": "Freezing Ice Machine Power" }, + "microcrystal_fresh": { "name": "Microcrystal Fresh" }, + "dry_zone": { "name": "Dry Zone" }, + "electronic_smell": { "name": "Electronic Smell" }, + "eradicate_pesticide_residue": { "name": "Eradicate Pesticide Residue" }, + "performance_mode": { "name": "Performance Mode" }, + "ice_mouth_power": { "name": "Ice Mouth Power" } + }, + "binary_sensor": { + "storage_door_state": { "name": "Storage Door State" }, + "freezer_door_state": { "name": "Freezer Door State" }, + "flexzone_door_state": { "name": "Flexzone Door State" }, + "storage_ice_home_door_state": { "name": "Storage Ice Home Door State" }, + "bar_door_state": { "name": "Bar Door State" }, + "is_error": { "name": "Is Error" } + }, + "climate": { + "storage_zone": { "name": "Storage Zone" }, + "freezing_zone": { "name": "Freezing Zone" }, + "left_flexzone": { "name": "Left Flexzone" }, + "right_flexzone": { "name": "Right Flexzone" } + }, + "select": { + "variable_mode": { "name": "Variable Mode" }, + "icea_bar_function_switch": { "name": "Icea Bar Function Switch" }, + "food_site": { "name": "Food Site" }, + "temperature_unit": { "name": "Temperature Unit" } + }, + "sensor": { + "storage_temperature": { "name": "Storage Temperature" }, + "freezing_temperature": { "name": "Freezing Temperature" }, + "left_flexzone_temperature": { "name": "Left Flexzone Temperature" }, + "right_flexzone_temperature": { "name": "Right Flexzone Temperature" }, + "refrigeration_real_temperature": { "name": "Refrigeration Real Temperature" }, + "freezing_real_temperature": { "name": "Freezing Real Temperature" }, + "left_variable_real_temperature": { "name": "Left Variable Real Temperature" }, + "right_variable_real_temperature": { "name": "Right Variable Real Temperature" }, + "interval_room_humidity_level": { "name": "Interval Room Humidity Level" }, + "normal_zone_level": { "name": "Normal Zone Level" }, + "function_zone_level": { "name": "Function Zone Level" }, + "freeze_fahrenheit_level": { "name": "Freeze Fahrenheit Level" }, + "refrigeration_fahrenheit_level": { "name": "Refrigeration Fahrenheit Level" }, + "leach_expire_day": { "name": "Leach Expire Day" }, + "power_consumption_low": { "name": "Power Consumption Low" }, + "power_consumption_high": { "name": "Power Consumption High" }, + "fast_cold_minute": { "name": "Fast Cold Minute" }, + "fast_freeze_minute": { "name": "Fast Freeze Minute" }, + "version": { "name": "Version" } } } } \ 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 0c69168..53d07c5 100644 --- a/custom_components/midea_auto_cloud/translations/zh-Hans.json +++ b/custom_components/midea_auto_cloud/translations/zh-Hans.json @@ -508,7 +508,119 @@ "display_on_off": { "name": "显示开关" }, "netions_on_off": { "name": "负离子开关" }, "airdry_on_off": { "name": "风干开关" }, - "add_water_flag": { "name": "加水标志" } + "add_water_flag": { "name": "加水标志" }, + "bubble": { "name": "气泡" }, + "cold_water": { "name": "冷水" }, + "bathtub": { "name": "浴缸" }, + "safe": { "name": "安全" }, + "cold_water_dot": { "name": "冷水点" }, + "change_litre_switch": { "name": "换水开关" }, + "cold_water_ai": { "name": "冷水AI" }, + "cold_water_pressure": { "name": "冷水压力" }, + "person_mode_one": { "name": "个人模式一" }, + "person_mode_two": { "name": "个人模式二" }, + "person_mode_three": { "name": "个人模式三" }, + "gesture_function": { "name": "手势功能" } + }, + "climate": { + "water_heater": { "name": "热水器" } + }, + "select": { + "mode": { "name": "模式" }, + "power_level": { "name": "功率等级" }, + "type_machine": { "name": "机器类型" }, + "capacity": { "name": "容量" }, + "gesture_function_type": { "name": "手势功能类型" } + }, + "sensor": { + "out_water_tem": { "name": "出水温度" }, + "water_volume": { "name": "水量" }, + "zero_cold_tem": { "name": "零冷水温度" }, + "bath_out_volume": { "name": "浴缸出水量" }, + "return_water_tem": { "name": "回水温度" }, + "change_litre": { "name": "换水量" }, + "bathtub_water_level": { "name": "浴缸水位" }, + "temperature": { "name": "温度" }, + "gas_lift_percent": { "name": "燃气提升百分比" }, + "person_tem_one": { "name": "个人温度一" }, + "person_tem_two": { "name": "个人温度二" }, + "person_tem_three": { "name": "个人温度三" }, + "in_water_tem": { "name": "进水温度" }, + "error_code": { "name": "错误代码" }, + "version": { "name": "版本" }, + "freezing_mode": { "name": "冷冻模式" }, + "intelligent_mode": { "name": "智能模式" }, + "energy_saving_mode": { "name": "节能模式" }, + "holiday_mode": { "name": "假日模式" }, + "moisturize_mode": { "name": "保湿模式" }, + "preservation_mode": { "name": "保鲜模式" }, + "acme_freezing_mode": { "name": "极速冷冻模式" }, + "storage_power": { "name": "冷藏电源" }, + "left_flexzone_power": { "name": "左变温区电源" }, + "right_flexzone_power": { "name": "右变温区电源" }, + "freezing_power": { "name": "冷冻电源" }, + "function_zone_power": { "name": "功能区电源" }, + "cross_peak_electricity": { "name": "错峰用电" }, + "all_refrigeration_power": { "name": "全制冷电源" }, + "remove_dew_power": { "name": "除露电源" }, + "humidify_power": { "name": "加湿电源" }, + "unfreeze_power": { "name": "解冻电源" }, + "floodlight_power": { "name": "照明电源" }, + "radar_mode_power": { "name": "雷达模式电源" }, + "milk_mode_power": { "name": "牛奶模式电源" }, + "icea_mode_power": { "name": "制冰模式电源" }, + "plasma_aseptic_mode_power": { "name": "等离子杀菌模式电源" }, + "acquire_icea_mode_power": { "name": "取冰模式电源" }, + "brash_icea_mode_power": { "name": "碎冰模式电源" }, + "acquire_water_mode_power": { "name": "取水模式电源" }, + "freezing_ice_machine_power": { "name": "冷冻制冰机电源" }, + "microcrystal_fresh": { "name": "微晶保鲜" }, + "dry_zone": { "name": "干燥区" }, + "electronic_smell": { "name": "电子除味" }, + "eradicate_pesticide_residue": { "name": "去除农药残留" }, + "performance_mode": { "name": "性能模式" }, + "ice_mouth_power": { "name": "出冰口电源" } + }, + "binary_sensor": { + "storage_door_state": { "name": "冷藏门状态" }, + "freezer_door_state": { "name": "冷冻门状态" }, + "flexzone_door_state": { "name": "变温区门状态" }, + "storage_ice_home_door_state": { "name": "冷藏制冰室门状态" }, + "bar_door_state": { "name": "吧台门状态" }, + "is_error": { "name": "是否错误" } + }, + "climate": { + "storage_zone": { "name": "冷藏区" }, + "freezing_zone": { "name": "冷冻区" }, + "left_flexzone": { "name": "左变温区" }, + "right_flexzone": { "name": "右变温区" } + }, + "select": { + "variable_mode": { "name": "变温模式" }, + "icea_bar_function_switch": { "name": "制冰吧台功能开关" }, + "food_site": { "name": "食物位置" }, + "temperature_unit": { "name": "温度单位" } + }, + "sensor": { + "storage_temperature": { "name": "冷藏温度" }, + "freezing_temperature": { "name": "冷冻温度" }, + "left_flexzone_temperature": { "name": "左变温区温度" }, + "right_flexzone_temperature": { "name": "右变温区温度" }, + "refrigeration_real_temperature": { "name": "冷藏实际温度" }, + "freezing_real_temperature": { "name": "冷冻实际温度" }, + "left_variable_real_temperature": { "name": "左变温实际温度" }, + "right_variable_real_temperature": { "name": "右变温实际温度" }, + "interval_room_humidity_level": { "name": "间室湿度等级" }, + "normal_zone_level": { "name": "普通区等级" }, + "function_zone_level": { "name": "功能区等级" }, + "freeze_fahrenheit_level": { "name": "冷冻华氏等级" }, + "refrigeration_fahrenheit_level": { "name": "冷藏华氏等级" }, + "leach_expire_day": { "name": "沥干过期天数" }, + "power_consumption_low": { "name": "低功耗" }, + "power_consumption_high": { "name": "高功耗" }, + "fast_cold_minute": { "name": "快速制冷分钟" }, + "fast_freeze_minute": { "name": "快速冷冻分钟" }, + "version": { "name": "版本" } } } }