diff --git a/custom_components/midea_ac_lan/__init__.py b/custom_components/midea_ac_lan/__init__.py index abcce474..72e5e54c 100644 --- a/custom_components/midea_ac_lan/__init__.py +++ b/custom_components/midea_ac_lan/__init__.py @@ -14,6 +14,7 @@ from typing import Any, cast import homeassistant.helpers.config_validation as cv import homeassistant.helpers.device_registry as dr +import homeassistant.helpers.entity_registry as er import voluptuous as vol from homeassistant.config_entries import ConfigEntry from homeassistant.const import ( @@ -46,6 +47,7 @@ from .const import ( DEVICES, DOMAIN, EXTRA_SWITCH, + supports_device, ) from .midea_devices import MIDEA_DEVICES @@ -74,6 +76,34 @@ def _device_store(hass: HomeAssistant) -> dict[int, MideaDevice]: ) +def _remove_unsupported_entities( + hass: HomeAssistant, + device: MideaDevice, +) -> None: + """Remove stale entities that do not apply to this model and subtype.""" + registry = er.async_get(hass) + entities = cast( + "dict[str, dict[str, Any]]", + MIDEA_DEVICES[device.device_type]["entities"], + ) + for entity_key, config in entities.items(): + if supports_device(device.model, device.subtype, config): + continue + unique_id = f"{DOMAIN}.{device.device_id}_{entity_key}" + entity_domain = cast("str", config["type"].value) + entity_id = registry.async_get_entity_id( + entity_domain, + DOMAIN, + unique_id, + ) + if entity_id is None: + legacy_entity_id = f"{entity_domain}.{device.device_id}_{entity_key}" + if registry.async_get(legacy_entity_id) is not None: + entity_id = legacy_entity_id + if entity_id is not None: + registry.async_remove(entity_id) + + async def update_listener(hass: HomeAssistant, config_entry: ConfigEntry) -> None: """Option flow signal update. @@ -271,6 +301,7 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> b device.open() _device_store(hass)[device_id] = device try: + _remove_unsupported_entities(hass, device) # Forward the setup of an entry to all platforms await hass.config_entries.async_forward_entry_setups( config_entry, diff --git a/custom_components/midea_ac_lan/binary_sensor.py b/custom_components/midea_ac_lan/binary_sensor.py index 3eb83148..de8ab41c 100644 --- a/custom_components/midea_ac_lan/binary_sensor.py +++ b/custom_components/midea_ac_lan/binary_sensor.py @@ -11,7 +11,7 @@ from homeassistant.const import CONF_DEVICE_ID, CONF_SENSORS, Platform from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback -from .const import DEVICES, DOMAIN +from .const import DEVICES, DOMAIN, supports_device from .midea_devices import MIDEA_DEVICES from .midea_entity import MideaEntity @@ -30,7 +30,11 @@ async def async_setup_entry( "dict", MIDEA_DEVICES[device.device_type]["entities"], ).items(): - if config["type"] != Platform.BINARY_SENSOR or entity_key not in extra_sensors: + if ( + config["type"] != Platform.BINARY_SENSOR + or not supports_device(device.model, device.subtype, config) + or (not config.get("default") and entity_key not in extra_sensors) + ): continue required_attribute = config.get("required_attribute") if ( diff --git a/custom_components/midea_ac_lan/climate.py b/custom_components/midea_ac_lan/climate.py index b97454d5..d275bda9 100644 --- a/custom_components/midea_ac_lan/climate.py +++ b/custom_components/midea_ac_lan/climate.py @@ -2,7 +2,7 @@ import json import logging -from typing import Any, ClassVar, cast +from typing import Any, ClassVar, cast, override from homeassistant.components.climate import ( ATTR_HVAC_MODE, @@ -23,6 +23,7 @@ from homeassistant.components.climate import ( SWING_VERTICAL, ClimateEntity, ClimateEntityFeature, + HVACAction, HVACMode, ) from homeassistant.config_entries import ConfigEntry @@ -49,10 +50,12 @@ from midealan.devices.cc import DeviceAttributes as CCAttributes from midealan.devices.cc import MideaCCDevice from midealan.devices.cf import DeviceAttributes as CFAttributes from midealan.devices.cf import MideaCFDevice +from midealan.devices.ed import DeviceAttributes as EDAttributes +from midealan.devices.ed import MideaEDDevice from midealan.devices.fb import DeviceAttributes as FBAttributes from midealan.devices.fb import MideaFBDevice -from .const import DEVICES, DOMAIN, FanSpeed +from .const import DEVICES, DOMAIN, FanSpeed, supports_device from .midea_devices import MIDEA_DEVICES from .midea_entity import MideaEntity @@ -81,13 +84,16 @@ async def async_setup_entry( | MideaCFClimate | MideaC3Climate | MideaFBClimate + | MideaEDTeaBarClimate ] = [] for entity_key, config in cast( "dict", MIDEA_DEVICES[device.device_type]["entities"], ).items(): - if config["type"] == Platform.CLIMATE and ( - config.get("default") or entity_key in extra_switches + if ( + config["type"] == Platform.CLIMATE + and supports_device(device.model, device.subtype, config) + and (config.get("default") or entity_key in extra_switches) ): if device.device_type == DeviceType.AC: # add config_entry args to fix indoor_humidity error bug @@ -100,6 +106,8 @@ async def async_setup_entry( devs.append(MideaC3Climate(device, entity_key, config["zone"])) elif device.device_type == DeviceType.FB: devs.append(MideaFBClimate(device, entity_key)) + elif device.device_type == DeviceType.ED: + devs.append(MideaEDTeaBarClimate(device, entity_key)) async_add_entities(devs) @@ -258,6 +266,115 @@ class MideaClimate(MideaEntity, ClimateEntity): self.schedule_update_if_running() +class MideaEDTeaBarClimate(MideaEntity, ClimateEntity): + """On/off heater and temperature control for the subtype-395 tea bar.""" + + _enable_turn_on_off_backwards_compatibility = False + _device: MideaEDDevice + _attr_hvac_modes: ClassVar[list[HVACMode]] = [HVACMode.OFF, HVACMode.HEAT] + _attr_max_temp = 100 + _attr_min_temp = 40 + _attr_target_temperature_step = PRECISION_WHOLE + _attr_temperature_unit = UnitOfTemperature.CELSIUS + + @property + def supported_features(self) -> ClimateEntityFeature: + """Expose the official boil toggle and direct target control.""" + features = ClimateEntityFeature.TARGET_TEMPERATURE + if (MAJOR_VERSION, MINOR_VERSION) >= (2024, 2): + features |= ClimateEntityFeature.TURN_OFF | ClimateEntityFeature.TURN_ON + return features + + @property + def hvac_mode(self) -> HVACMode: + """Report heat only while the automatic fill-and-boil cycle is active.""" + active = bool( + self._device.get_attribute(EDAttributes.boiling) + or self._device.get_attribute(EDAttributes.dispensing), + ) + return HVACMode.HEAT if active else HVACMode.OFF + + @property + def hvac_action(self) -> HVACAction: + """Distinguish idle from the automatic fill-and-boil cycle.""" + active = bool( + self._device.get_attribute(EDAttributes.boiling) + or self._device.get_attribute(EDAttributes.dispensing), + ) + return HVACAction.HEATING if active else HVACAction.OFF + + @property + def current_temperature(self) -> float | None: + """Current kettle temperature.""" + return cast( + "float | None", + self._device.get_attribute(EDAttributes.current_temperature), + ) + + @property + def target_temperature(self) -> float | None: + """Selected boil target temperature.""" + return cast( + "float | None", + self._device.get_attribute(EDAttributes.target_temperature), + ) + + @property + def extra_state_attributes(self) -> dict[str, Any]: + """Expose only tea-bar states backed by the official protocol.""" + return { + str(EDAttributes.heating): self._device.get_attribute( + EDAttributes.heating, + ), + str(EDAttributes.dispensing): self._device.get_attribute( + EDAttributes.dispensing, + ), + str(EDAttributes.keep_warm_remaining): self._device.get_attribute( + EDAttributes.keep_warm_remaining, + ), + } + + def set_temperature(self, **kwargs: Any) -> None: # ruff:ignore[any-type] + """Start boiling with the official selected-temperature command.""" + if ATTR_TEMPERATURE not in kwargs: + return + self._device.set_attribute( + EDAttributes.boil_temperature, + float(kwargs[ATTR_TEMPERATURE]), + ) + + @override + def set_hvac_mode(self, hvac_mode: HVACMode) -> None: + """Use the official normal-boil command for heat and stop for off.""" + if hvac_mode == HVACMode.HEAT: + self.turn_on() + elif hvac_mode == HVACMode.OFF: + self.turn_off() + else: + _LOGGER.warning("Ignoring unsupported tea bar HVAC mode: %s", hvac_mode) + + @override + def turn_on(self) -> None: + """Start the official automatic fill-and-boil-to-100 cycle.""" + self._device.set_attribute(EDAttributes.boiling, True) + + @override + def turn_off(self) -> None: + """Stop the active cycle with the official heat-start off command.""" + self._device.set_attribute(EDAttributes.boiling, False) + + def update_state(self, status: Any) -> None: # ruff:ignore[any-type, unused-method-argument] + """Schedule a Home Assistant state update.""" + if not self.hass: + _LOGGER.warning( + "Climate update_state skipped for %s [%s]: HASS is None", + self.name, + type(self), + ) + return + self.schedule_update_if_running() + + class MideaACClimate(MideaClimate): """Midea AC Climate Entries.""" @@ -288,7 +405,7 @@ class MideaACClimate(MideaClimate): self._customize_swing: bool | None = None self._customize_hvac_modes: list[HVACMode] | None = None self._customize_preset_modes: list[str] | None = None - self._parse_capability_customize(config_entry) + self._customize_fan_modes: list[str] | None = None self._fan_speeds: dict[str, int] = { FAN_SILENT: 20, FAN_LOW: 40, @@ -318,6 +435,7 @@ class MideaACClimate(MideaClimate): "sensors" in config_entry.options and "indoor_humidity" in config_entry.options["sensors"] ) + self._parse_capability_customize(config_entry) def _parse_capability_customize(self, config_entry: ConfigEntry) -> None: """Parse the swing / hvac_modes customize overrides (highest priority). @@ -366,6 +484,16 @@ class MideaACClimate(MideaClimate): wanted_p.insert(0, PRESET_NONE) # honor even an empty / none-only list (user wants no presets) self._customize_preset_modes = wanted_p + fan_modes_override = params.get("fan_modes") + if isinstance(fan_modes_override, list): + valid_fans = list(self._fan_speeds.keys()) + wanted_f: list[str] = [] + for name in fan_modes_override: + fan = str(name) + if fan in valid_fans and fan not in wanted_f: + wanted_f.append(fan) + if wanted_f: + self._customize_fan_modes = wanted_f def _capability_swing(self) -> bool: """Whether swing is available (customize > B5 capability > default). @@ -497,20 +625,26 @@ class MideaACClimate(MideaClimate): """Midea AC Climate fan mode.""" fan_speed = cast("int", self._device.get_attribute(ACAttributes.fan_speed)) if fan_speed > FanSpeed.AUTO: - return str(FAN_AUTO) - if fan_speed > FanSpeed.FULL_SPEED: - return str(FAN_FULL_SPEED) - if fan_speed > FanSpeed.HIGH: - return str(FAN_HIGH) - if fan_speed > FanSpeed.MEDIUM: - return str(FAN_MEDIUM) - if fan_speed > FanSpeed.LOW: - return str(FAN_LOW) - return str(FAN_SILENT) + current_mode = str(FAN_AUTO) + elif fan_speed > FanSpeed.FULL_SPEED: + current_mode = str(FAN_FULL_SPEED) + elif fan_speed > FanSpeed.HIGH: + current_mode = str(FAN_HIGH) + elif fan_speed > FanSpeed.MEDIUM: + current_mode = str(FAN_MEDIUM) + elif fan_speed > FanSpeed.LOW: + current_mode = str(FAN_LOW) + else: + current_mode = str(FAN_SILENT) + + valid_modes = self.fan_modes + if valid_modes and current_mode not in valid_modes: + return str(FAN_AUTO) if str(FAN_AUTO) in valid_modes else valid_modes[0] + return current_mode @property def fan_modes(self) -> list[str] | None: - """fan_modes: B5 capabilities > default full set. + """fan_modes: customize > B5 capabilities > default full set. Read dynamically so capabilities decoded after the first refresh are reflected (they are not yet available when the entity is created). @@ -521,6 +655,8 @@ class MideaACClimate(MideaClimate): ``fan_custom`` to ``full`` alone collapsed the list to ``["full"]`` on such units (issue #904); short-circuit to the full set instead. """ + if self._customize_fan_modes is not None: + return self._customize_fan_modes caps = getattr(self._device, "capabilities", {}) if not caps: return list(self._fan_speeds.keys()) diff --git a/custom_components/midea_ac_lan/config_flow.py b/custom_components/midea_ac_lan/config_flow.py index c8322ee4..c0b51c1a 100644 --- a/custom_components/midea_ac_lan/config_flow.py +++ b/custom_components/midea_ac_lan/config_flow.py @@ -79,7 +79,7 @@ from .const import ( DOMAIN, EXTRA_CONTROL, EXTRA_SENSOR, - supports_model, + supports_device, ) from .midea_devices import MIDEA_DEVICES @@ -956,8 +956,9 @@ class MideaLanOptionsFlowHandler(OptionsFlow): "dict", MIDEA_DEVICES[cast("int", self._device_type)]["entities"], ).items(): - if not supports_model( + if not supports_device( self._config_entry.data.get(CONF_MODEL), + self._config_entry.data.get(CONF_SUBTYPE, 0), attribute_config, ): continue diff --git a/custom_components/midea_ac_lan/const.py b/custom_components/midea_ac_lan/const.py index 2299e296..89c5c511 100644 --- a/custom_components/midea_ac_lan/const.py +++ b/custom_components/midea_ac_lan/const.py @@ -50,6 +50,39 @@ def supports_model(model: object, config: dict[str, Any]) -> bool: return not models or str(model) in cast("list[str]", models) +def supports_device( + model: object, + subtype: object, + config: dict[str, Any], +) -> bool: + """Return if the entity config applies to the device model and subtype. + + Returns + ------- + True if the entity supports the device model and subtype. + + """ + if config.get("removed"): + return False + normalized_subtype = int(cast("int", subtype)) + excluded_devices = cast( + "list[tuple[str, int]]", + config.get("excluded_devices", []), + ) + if (str(model), normalized_subtype) in excluded_devices: + return False + excluded_subtypes = config.get("excluded_subtypes") + if excluded_subtypes and normalized_subtype in cast( + "list[int]", + excluded_subtypes, + ): + return False + subtypes = config.get("subtypes") + return supports_model(model, config) and ( + not subtypes or normalized_subtype in cast("list[int]", subtypes) + ) + + class FanSpeed(IntEnum): """FanSpeed reference values.""" diff --git a/custom_components/midea_ac_lan/lock.py b/custom_components/midea_ac_lan/lock.py index 49518ff1..4b7d0883 100644 --- a/custom_components/midea_ac_lan/lock.py +++ b/custom_components/midea_ac_lan/lock.py @@ -8,7 +8,7 @@ from homeassistant.const import CONF_DEVICE_ID, CONF_SWITCHES, Platform from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback -from .const import DEVICES, DOMAIN +from .const import DEVICES, DOMAIN, supports_device from .midea_devices import MIDEA_DEVICES from .midea_entity import MideaEntity @@ -27,7 +27,20 @@ async def async_setup_entry( "dict", MIDEA_DEVICES[device.device_type]["entities"], ).items(): - if config["type"] == Platform.LOCK and entity_key in extra_switches: + default_subtypes = config.get("default_subtypes", []) + default_models = config.get("default_models", []) + is_model_default = int(device.subtype) in default_subtypes and ( + not default_models or str(device.model) in default_models + ) + if ( + config["type"] == Platform.LOCK + and supports_device(device.model, device.subtype, config) + and ( + config.get("default") + or is_model_default + or entity_key in extra_switches + ) + ): dev = MideaLock(device, entity_key) locks.append(dev) async_add_entities(locks) diff --git a/custom_components/midea_ac_lan/manifest.json b/custom_components/midea_ac_lan/manifest.json index 091fe3ee..1e11eba9 100644 --- a/custom_components/midea_ac_lan/manifest.json +++ b/custom_components/midea_ac_lan/manifest.json @@ -3,8 +3,6 @@ "name": "Midea AC LAN", "codeowners": [ "@wuwentao", - "@rokam", - "@chemelli74", "@caibinqing" ], "config_flow": true, @@ -17,7 +15,7 @@ "midealan" ], "requirements": [ - "midea-lan==2026.8.0" + "midea-lan==2026.9.0" ], - "version": "2026.8.0" -} \ No newline at end of file + "version": "2026.9.0" +} diff --git a/custom_components/midea_ac_lan/midea_devices.py b/custom_components/midea_ac_lan/midea_devices.py index 3940f45d..5d52fb3b 100644 --- a/custom_components/midea_ac_lan/midea_devices.py +++ b/custom_components/midea_ac_lan/midea_devices.py @@ -3,6 +3,7 @@ from typing import Any from homeassistant.components.binary_sensor import BinarySensorDeviceClass +from homeassistant.components.number import NumberDeviceClass from homeassistant.components.sensor import SensorDeviceClass, SensorStateClass from homeassistant.const import ( MAJOR_VERSION, @@ -15,6 +16,7 @@ from homeassistant.const import ( UnitOfEnergy, UnitOfFrequency, UnitOfPower, + UnitOfPressure, UnitOfTemperature, UnitOfTime, UnitOfVolume, @@ -48,7 +50,9 @@ from midealan.devices.b1 import DeviceAttributes as B1Attributes from midealan.devices.b3 import DeviceAttributes as B3Attributes from midealan.devices.b4 import DeviceAttributes as B4Attributes from midealan.devices.b6 import DeviceAttributes as B6Attributes +from midealan.devices.bf import WORK_MODE_MAP as BF_WORK_MODE_MAP from midealan.devices.bf import DeviceAttributes as BFAttributes +from midealan.devices.bf import FirePower as BFFirePower from midealan.devices.c2 import DeviceAttributes as C2Attributes from midealan.devices.c3 import DeviceAttributes as C3Attributes from midealan.devices.ca import DeviceAttributes as CAAttributes @@ -79,6 +83,34 @@ FRESH_AIR_EXHAUST = "fresh_air_exhaust" FRESH_AIR_EXHAUST_MODE = "fresh_air_exhaust_mode" FRESH_AIR_EXHAUST_POWER = "fresh_air_exhaust_power" FRESH_AIR_EXHAUST_SPEED = "fresh_air_exhaust_speed" +ED_TEA_BAR_SUBTYPES = [395] +ED_TEA_BAR_MODELS = ["63000622"] +ED_TEA_BAR_DEVICES = [(ED_TEA_BAR_MODELS[0], ED_TEA_BAR_SUBTYPES[0])] +ED_SOFT_WATER_SUBTYPES = [703] +BF_WORK_MODES = list(BF_WORK_MODE_MAP) +BF_FIRE_POWERS = list(BFFirePower.__members__) +BF_TEMPERATURES = list(range(251)) + +# C3 outdoor-unit telemetry attributes. Referenced by string so the entity +# table still imports on a midea-lan release that predates the parser support; +# the matching sensors carry a required_attribute guard and are skipped there. +C3_COMP_RUN_FREQ = "comp_run_freq" +C3_FAN_SPEED = "fan_speed" +C3_UNIT_MODE_RUN = "unit_mode_run" +C3_ODU_TARGET_FRE = "odu_target_fre" +C3_ODU_VOLTAGE = "odu_voltage" +C3_ODU_COMP_CURRENT = "odu_comp_current" +C3_EXV_CURRENT = "exv_current" +C3_FG_CAPACITY_NEED = "fg_capacity_need" +C3_PRESSURE_HIGH = "pressure_high" +C3_PRESSURE_LOW = "pressure_low" +C3_TEMP_T1 = "temp_t1" +C3_TEMP_T2 = "temp_t2" +C3_TEMP_T2B = "temp_t2b" +C3_TEMP_T3 = "temp_t3" +C3_TEMP_TP = "temp_tp" +C3_TEMP_TH = "temp_th" +C3_TEMP_TF = "temp_tf" """ Entity Naming Rule: @@ -563,6 +595,12 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { "name": "Self Clean", "icon": "mdi:air-filter", }, + ACAttributes.ieco: { + "type": Platform.SWITCH, + "translation_key": "ieco", + "name": "iECO", + "icon": "mdi:leaf", + }, ACAttributes.full_dust: { "type": Platform.BINARY_SENSOR, "translation_key": "full_dust", @@ -1270,6 +1308,76 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { 0xBF: { "name": "Microwave Steam Oven", "entities": { + # - Switches (controls) - + BFAttributes.power: { + "type": Platform.SWITCH, + "translation_key": "power", + "name": "Power", + "icon": "mdi:power", + }, + BFAttributes.child_lock: { + "type": Platform.SWITCH, + "translation_key": "child_lock", + "name": "Child Lock", + "icon": "mdi:lock", + }, + BFAttributes.furnace_light: { + "type": Platform.SWITCH, + "translation_key": "furnace_light", + "name": "Furnace Light", + "icon": "mdi:lightbulb", + }, + BFAttributes.hot_wind: { + "type": Platform.SWITCH, + "translation_key": "hot_wind", + "name": "Hot Wind", + "icon": "mdi:fan", + }, + BFAttributes.ramadan: { + "type": Platform.SWITCH, + "translation_key": "ramadan", + "name": "Ramadan", + "icon": "mdi:star-crescent", + }, + BFAttributes.turntable: { + "type": Platform.SWITCH, + "translation_key": "turntable", + "name": "Turntable", + "icon": "mdi:rotate-3d-variant", + }, + "work_mode_select": { + "type": Platform.SELECT, + "attribute": BFAttributes.work_mode, + "translation_key": "work_mode", + "name": "Work Mode", + "icon": "mdi:pot-steam", + "options": BF_WORK_MODES, + }, + "fire_power_select": { + "type": Platform.SELECT, + "attribute": BFAttributes.fire_power, + "translation_key": "fire_power", + "name": "Fire Power", + "icon": "mdi:fire", + "options": BF_FIRE_POWERS, + }, + "temperature_select": { + "type": Platform.SELECT, + "attribute": BFAttributes.temperature, + "translation_key": "temperature", + "name": "Target Temperature", + "device_class": SensorDeviceClass.TEMPERATURE, + "unit": UnitOfTemperature.CELSIUS, + "options": BF_TEMPERATURES, + "option_type": "int", + }, + BFAttributes.pre_heat: { + "type": Platform.BINARY_SENSOR, + "translation_key": "pre_heat", + "name": "Pre Heat", + "icon": "mdi:fire", + }, + # Binary sensors (status) BFAttributes.tank_ejected: { "type": Platform.BINARY_SENSOR, "translation_key": "tank_ejected", @@ -1286,6 +1394,7 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { }, BFAttributes.door: { "type": Platform.BINARY_SENSOR, + "translation_key": "door", "name": "Door", "icon": "mdi:box-shadow", "device_class": BinarySensorDeviceClass.DOOR, @@ -1297,18 +1406,163 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { "icon": "mdi:cup-water", "device_class": BinarySensorDeviceClass.PROBLEM, }, + BFAttributes.error: { + "type": Platform.BINARY_SENSOR, + "translation_key": "error_code", + "name": "Error Code", + "icon": "mdi:alert", + "device_class": BinarySensorDeviceClass.PROBLEM, + }, + BFAttributes.flip_side: { + "type": Platform.BINARY_SENSOR, + "translation_key": "flip_side", + "name": "Flip Side", + "icon": "mdi:flip-horizontal", + "device_class": BinarySensorDeviceClass.RUNNING, + }, + BFAttributes.reaction: { + "type": Platform.BINARY_SENSOR, + "translation_key": "reaction", + "name": "Reaction", + "icon": "mdi:bell-alert", + "device_class": BinarySensorDeviceClass.RUNNING, + }, + BFAttributes.high_temperature_lock: { + "type": Platform.BINARY_SENSOR, + "translation_key": "high_temperature_lock", + "name": "High Temperature Lock", + "icon": "mdi:lock-alert", + "device_class": BinarySensorDeviceClass.LOCK, + }, + BFAttributes.high_temperature_work: { + "type": Platform.BINARY_SENSOR, + "translation_key": "high_temperature_work", + "name": "High Temperature Work", + "icon": "mdi:thermometer-alert", + "device_class": BinarySensorDeviceClass.RUNNING, + }, + BFAttributes.high_temperature: { + "type": Platform.BINARY_SENSOR, + "translation_key": "high_temperature", + "name": "High Temperature", + "icon": "mdi:thermometer", + "device_class": BinarySensorDeviceClass.HEAT, + }, + BFAttributes.probe_mode: { + "type": Platform.BINARY_SENSOR, + "translation_key": "probe_mode", + "name": "Probe Mode", + "icon": "mdi:thermometer-probe", + }, + BFAttributes.probe: { + "type": Platform.BINARY_SENSOR, + "translation_key": "probe", + "name": "Probe", + "icon": "mdi:thermometer-probe", + }, + BFAttributes.clean_scale: { + "type": Platform.BINARY_SENSOR, + "translation_key": "clean_scale", + "name": "Clean Scale", + "icon": "mdi:shimmer", + "device_class": BinarySensorDeviceClass.RUNNING, + }, + BFAttributes.clean_sink_ponding: { + "type": Platform.BINARY_SENSOR, + "translation_key": "clean_sink_ponding", + "name": "Clean Sink Ponding", + "icon": "mdi:water-alert", + "device_class": BinarySensorDeviceClass.PROBLEM, + }, + BFAttributes.dissipate_heat: { + "type": Platform.BINARY_SENSOR, + "translation_key": "dissipate_heat", + "name": "Dissipate Heat", + "icon": "mdi:fan", + "device_class": BinarySensorDeviceClass.RUNNING, + }, + # - Sensors (status/measurements) - + BFAttributes.status: { + "type": Platform.SENSOR, + "translation_key": "bf_status", + "name": "Status", + "icon": "mdi:information", + }, + BFAttributes.work_mode: { + "type": Platform.SENSOR, + "translation_key": "work_mode", + "name": "Work Mode", + "icon": "mdi:pot-steam", + }, + BFAttributes.fire_power: { + "type": Platform.SENSOR, + "translation_key": "fire_power", + "name": "Fire Power", + "icon": "mdi:fire", + }, BFAttributes.current_temperature: { "type": Platform.SENSOR, + "translation_key": "current_temperature", "name": "Current Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": UnitOfTemperature.CELSIUS, "state_class": SensorStateClass.MEASUREMENT, }, - BFAttributes.status: { + BFAttributes.temperature: { "type": Platform.SENSOR, - "translation_key": "status", - "name": "Status", - "icon": "mdi:information", + "translation_key": "temperature", + "name": "Target Temperature", + "device_class": SensorDeviceClass.TEMPERATURE, + "unit": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT, + }, + BFAttributes.temperature_above: { + "type": Platform.SENSOR, + "translation_key": "temperature_above", + "name": "Temperature Above", + "device_class": SensorDeviceClass.TEMPERATURE, + "unit": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT, + }, + BFAttributes.temperature_underside: { + "type": Platform.SENSOR, + "translation_key": "temperature_underside", + "name": "Temperature Underside", + "device_class": SensorDeviceClass.TEMPERATURE, + "unit": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT, + }, + BFAttributes.cur_temperature_above: { + "type": Platform.SENSOR, + "translation_key": "cur_temperature_above", + "name": "Current Temperature Above", + "device_class": SensorDeviceClass.TEMPERATURE, + "unit": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT, + }, + BFAttributes.cur_temperature_underside: { + "type": Platform.SENSOR, + "translation_key": "cur_temperature_underside", + "name": "Current Temperature Underside", + "device_class": SensorDeviceClass.TEMPERATURE, + "unit": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT, + }, + BFAttributes.probe_temperature: { + "type": Platform.SENSOR, + "translation_key": "probe_temperature", + "name": "Probe Temperature", + "device_class": SensorDeviceClass.TEMPERATURE, + "unit": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT, + }, + BFAttributes.cur_probe_temperature: { + "type": Platform.SENSOR, + "translation_key": "cur_probe_temperature", + "name": "Current Probe Temperature", + "device_class": SensorDeviceClass.TEMPERATURE, + "unit": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT, }, BFAttributes.time_remaining: { "type": Platform.SENSOR, @@ -1317,6 +1571,51 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { "icon": "mdi:progress-clock", "unit": UnitOfTime.SECONDS, "state_class": SensorStateClass.MEASUREMENT, + "timer": "down", + }, + BFAttributes.steam_quantity: { + "type": Platform.SENSOR, + "translation_key": "steam_quantity", + "name": "Steam Quantity", + "icon": "mdi:water", + }, + BFAttributes.weight: { + "type": Platform.SENSOR, + "translation_key": "weight", + "name": "Weight", + "icon": "mdi:scale", + "unit": "g", + "state_class": SensorStateClass.MEASUREMENT, + }, + BFAttributes.people_number: { + "type": Platform.SENSOR, + "translation_key": "people_number", + "name": "People Number", + "icon": "mdi:account-group", + }, + BFAttributes.totalstep: { + "type": Platform.SENSOR, + "translation_key": "totalstep", + "name": "Total Steps", + "icon": "mdi:format-list-numbered", + }, + BFAttributes.stepnum: { + "type": Platform.SENSOR, + "translation_key": "stepnum", + "name": "Current Step", + "icon": "mdi:format-list-numbered", + }, + BFAttributes.cloudmenuid: { + "type": Platform.SENSOR, + "translation_key": "cloudmenuid", + "name": "Cloud Menu ID", + "icon": "mdi:menu", + }, + BFAttributes.execute: { + "type": Platform.SENSOR, + "translation_key": "execute_status", + "name": "Execute Status", + "icon": "mdi:check-circle", }, }, }, @@ -1625,6 +1924,162 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { "unit": UnitOfPower.WATT, "state_class": SensorStateClass.MEASUREMENT, }, + # Outdoor-unit runtime telemetry. Parsed by midea-lan since the + # MSG_TYPE_UP_UNITPARA / X10 UnitPara work; older library releases + # omit these keys, so each carries a required_attribute guard. + C3_COMP_RUN_FREQ: { + "type": Platform.SENSOR, + "required_attribute": C3_COMP_RUN_FREQ, + "translation_key": "comp_run_freq", + "name": "Compressor Frequency", + "device_class": SensorDeviceClass.FREQUENCY, + "unit": UnitOfFrequency.HERTZ, + "state_class": SensorStateClass.MEASUREMENT, + }, + C3_FAN_SPEED: { + "type": Platform.SENSOR, + "required_attribute": C3_FAN_SPEED, + "translation_key": "outdoor_fan_speed", + "name": "Outdoor Fan Speed", + "icon": "mdi:fan", + "unit": REVOLUTIONS_PER_MINUTE, + "state_class": SensorStateClass.MEASUREMENT, + }, + C3_UNIT_MODE_RUN: { + "type": Platform.SENSOR, + "required_attribute": C3_UNIT_MODE_RUN, + "translation_key": "unit_mode_run", + "name": "Unit Run Mode", + "icon": "mdi:heat-pump", + "device_class": SensorDeviceClass.ENUM, + # Values from the C3 lua unitTable (T_0000_C3_171H120F_2023062601). + "options": {0: "off", 1: "auto", 2: "cool", 3: "heat", 5: "dhw"}, + }, + C3_ODU_TARGET_FRE: { + "type": Platform.SENSOR, + "required_attribute": C3_ODU_TARGET_FRE, + "translation_key": "odu_target_fre", + "name": "Target Compressor Frequency", + "device_class": SensorDeviceClass.FREQUENCY, + "unit": UnitOfFrequency.HERTZ, + "state_class": SensorStateClass.MEASUREMENT, + }, + C3_ODU_VOLTAGE: { + "type": Platform.SENSOR, + "required_attribute": C3_ODU_VOLTAGE, + "translation_key": "odu_voltage", + "name": "Outdoor Unit Voltage", + "device_class": SensorDeviceClass.VOLTAGE, + "unit": UnitOfElectricPotential.VOLT, + "state_class": SensorStateClass.MEASUREMENT, + }, + C3_ODU_COMP_CURRENT: { + "type": Platform.SENSOR, + "required_attribute": C3_ODU_COMP_CURRENT, + "translation_key": "odu_comp_current", + "name": "Compressor Current", + "device_class": SensorDeviceClass.CURRENT, + "unit": UnitOfElectricCurrent.AMPERE, + "state_class": SensorStateClass.MEASUREMENT, + }, + C3_EXV_CURRENT: { + "type": Platform.SENSOR, + "required_attribute": C3_EXV_CURRENT, + "translation_key": "exv_current", + "name": "Electronic Expansion Valve Opening", + "icon": "mdi:valve", + "unit": "steps", + "state_class": SensorStateClass.MEASUREMENT, + }, + C3_FG_CAPACITY_NEED: { + "type": Platform.SENSOR, + "required_attribute": C3_FG_CAPACITY_NEED, + "translation_key": "fg_capacity_need", + "name": "Capacity Demand", + "icon": "mdi:gauge", + "state_class": SensorStateClass.MEASUREMENT, + }, + C3_PRESSURE_HIGH: { + "type": Platform.SENSOR, + "required_attribute": C3_PRESSURE_HIGH, + "translation_key": "pressure_high", + "name": "Refrigerant Pressure (High Side)", + "device_class": SensorDeviceClass.PRESSURE, + "unit": UnitOfPressure.KPA, + "state_class": SensorStateClass.MEASUREMENT, + }, + C3_PRESSURE_LOW: { + "type": Platform.SENSOR, + "required_attribute": C3_PRESSURE_LOW, + "translation_key": "pressure_low", + "name": "Refrigerant Pressure (Low Side)", + "device_class": SensorDeviceClass.PRESSURE, + "unit": UnitOfPressure.KPA, + "state_class": SensorStateClass.MEASUREMENT, + }, + C3_TEMP_T1: { + "type": Platform.SENSOR, + "required_attribute": C3_TEMP_T1, + "translation_key": "temp_t1", + "name": "Temperature Sensor T1", + "device_class": SensorDeviceClass.TEMPERATURE, + "unit": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT, + }, + C3_TEMP_T2: { + "type": Platform.SENSOR, + "required_attribute": C3_TEMP_T2, + "translation_key": "temp_t2", + "name": "Plate Heat Exchanger Temperature (T2)", + "device_class": SensorDeviceClass.TEMPERATURE, + "unit": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT, + }, + C3_TEMP_T2B: { + "type": Platform.SENSOR, + "required_attribute": C3_TEMP_T2B, + "translation_key": "temp_t2b", + "name": "Plate Heat Exchanger Outlet Temperature (T2B)", + "device_class": SensorDeviceClass.TEMPERATURE, + "unit": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT, + }, + C3_TEMP_T3: { + "type": Platform.SENSOR, + "required_attribute": C3_TEMP_T3, + "translation_key": "temp_t3", + "name": "Outdoor Coil Temperature (T3)", + "device_class": SensorDeviceClass.TEMPERATURE, + "unit": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT, + }, + C3_TEMP_TP: { + "type": Platform.SENSOR, + "required_attribute": C3_TEMP_TP, + "translation_key": "temp_tp", + "name": "Discharge Pipe Temperature (TP)", + "device_class": SensorDeviceClass.TEMPERATURE, + "unit": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT, + }, + C3_TEMP_TH: { + "type": Platform.SENSOR, + "required_attribute": C3_TEMP_TH, + "translation_key": "temp_th", + "name": "Suction Temperature (TH)", + "device_class": SensorDeviceClass.TEMPERATURE, + "unit": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT, + }, + C3_TEMP_TF: { + "type": Platform.SENSOR, + "required_attribute": C3_TEMP_TF, + "translation_key": "temp_tf", + "name": "Power Module Temperature (TF)", + "device_class": SensorDeviceClass.TEMPERATURE, + "unit": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT, + }, }, }, 0xCA: { @@ -1846,6 +2301,245 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { "icon": "mdi:water-boiler", "default": True, }, + CDAttributes.disinfect: { + "type": Platform.SWITCH, + "translation_key": "disinfect", + "name": "Disinfect", + "icon": "mdi:bacteria", + "required_attribute": CDAttributes.disinfect, + }, + "schedule_mode": { + "type": Platform.NUMBER, + "translation_key": "schedule_mode", + "name": "Schedule Mode", + "min": 0, + "max": 2, + "step": 1, + "icon": "mdi:calendar-clock", + "required_attribute": "schedule_mode", + }, + "max_temperature_upper_limit": { + "type": Platform.SENSOR, + "translation_key": "max_temperature_upper_limit", + "name": "Maximum Temperature Upper Limit", + "device_class": SensorDeviceClass.TEMPERATURE, + "unit": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT, + "required_attribute": "max_temperature_upper_limit", + }, + "max_temperature_lower_limit": { + "type": Platform.SENSOR, + "translation_key": "max_temperature_lower_limit", + "name": "Maximum Temperature Lower Limit", + "device_class": SensorDeviceClass.TEMPERATURE, + "unit": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT, + "required_attribute": "max_temperature_lower_limit", + }, + "disinfection_temperature_upper_limit": { + "type": Platform.SENSOR, + "translation_key": "disinfection_temperature_upper_limit", + "name": "Disinfection Temperature Upper Limit", + "device_class": SensorDeviceClass.TEMPERATURE, + "unit": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT, + "required_attribute": "disinfection_temperature_upper_limit", + }, + "disinfection_temperature_lower_limit": { + "type": Platform.SENSOR, + "translation_key": "disinfection_temperature_lower_limit", + "name": "Disinfection Temperature Lower Limit", + "device_class": SensorDeviceClass.TEMPERATURE, + "unit": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT, + "required_attribute": "disinfection_temperature_lower_limit", + }, + "dr_enable": { + "type": Platform.BINARY_SENSOR, + "translation_key": "dr_enable", + "name": "Demand Response", + "icon": "mdi:transmission-tower-import", + "required_attribute": "dr_enable", + }, + "dr_option": { + "type": Platform.SENSOR, + "translation_key": "dr_option", + "name": "Demand Response Option", + "icon": "mdi:transmission-tower-import", + "required_attribute": "dr_option", + }, + "electric_rod_exception": { + "type": Platform.BINARY_SENSOR, + "translation_key": "electric_rod_exception", + "name": "Electric Heater Fault", + "icon": "mdi:heating-coil", + "device_class": BinarySensorDeviceClass.PROBLEM, + "required_attribute": "electric_rod_exception", + }, + "remaining_hot_water_max": { + "type": Platform.SENSOR, + "translation_key": "remaining_hot_water_max", + "name": "Maximum Remaining Hot Water", + "icon": "mdi:water-thermometer-outline", + "required_attribute": "remaining_hot_water_max", + }, + "force_e_heating_status": { + "type": Platform.SENSOR, + "translation_key": "force_e_heating_status", + "name": "Forced Electric Heating Status", + "icon": "mdi:heating-coil", + "required_attribute": "force_e_heating_status", + }, + "ac_heater_priority": { + "type": Platform.BINARY_SENSOR, + "translation_key": "ac_heater_priority", + "name": "Heat Pump Priority", + "icon": "mdi:heat-pump-outline", + "required_attribute": "ac_heater_priority", + }, + "high_temp_reminder": { + "type": Platform.BINARY_SENSOR, + "translation_key": "high_temp_reminder", + "name": "High Temperature Reminder", + "icon": "mdi:thermometer-alert", + "required_attribute": "high_temp_reminder", + }, + "new_version_water_heater": { + "type": Platform.BINARY_SENSOR, + "translation_key": "new_version_water_heater", + "name": "Extended Water Heater Protocol", + "icon": "mdi:chip", + "required_attribute": "new_version_water_heater", + }, + "holiday_max": { + "type": Platform.SENSOR, + "translation_key": "holiday_max", + "name": "Maximum Holiday Duration", + "unit": UnitOfTime.DAYS, + "icon": "mdi:calendar-range", + "required_attribute": "holiday_max", + }, + "holiday_min": { + "type": Platform.SENSOR, + "translation_key": "holiday_min", + "name": "Minimum Holiday Duration", + "unit": UnitOfTime.DAYS, + "icon": "mdi:calendar-range", + "required_attribute": "holiday_min", + }, + "timer_step_gap": { + "type": Platform.SENSOR, + "translation_key": "timer_step_gap", + "name": "Timer Step", + "unit": UnitOfTime.MINUTES, + "icon": "mdi:timer-cog-outline", + "required_attribute": "timer_step_gap", + }, + "heat_recovery_status": { + "type": Platform.BINARY_SENSOR, + "translation_key": "heat_recovery_status", + "name": "Heat Recovery", + "icon": "mdi:heat-wave", + "required_attribute": "heat_recovery_status", + }, + "holiday_mode": { + "type": Platform.BINARY_SENSOR, + "translation_key": "holiday_mode", + "name": "Holiday Mode", + "icon": "mdi:beach", + "required_attribute": "holiday_mode", + }, + "hybrid_motion_mode": { + "type": Platform.BINARY_SENSOR, + "translation_key": "hybrid_motion_mode", + "name": "Hybrid Motion Mode", + "icon": "mdi:heat-pump-outline", + "required_attribute": "hybrid_motion_mode", + }, + "support_boost_mode": { + "type": Platform.BINARY_SENSOR, + "translation_key": "support_boost_mode", + "name": "Boost Mode Support", + "icon": "mdi:rocket-launch-outline", + "required_attribute": "support_boost_mode", + }, + "support_silent_mode": { + "type": Platform.BINARY_SENSOR, + "translation_key": "support_silent_mode", + "name": "Silent Mode Support", + "icon": "mdi:volume-mute", + "required_attribute": "support_silent_mode", + }, + "support_remaining_hot_water": { + "type": Platform.BINARY_SENSOR, + "translation_key": "support_remaining_hot_water", + "name": "Remaining Hot Water Support", + "icon": "mdi:water-thermometer-outline", + "required_attribute": "support_remaining_hot_water", + }, + "support_electric_mode": { + "type": Platform.BINARY_SENSOR, + "translation_key": "support_electric_mode", + "name": "Electric Mode Support", + "icon": "mdi:heating-coil", + "required_attribute": "support_electric_mode", + }, + "support_auto_disinfect": { + "type": Platform.BINARY_SENSOR, + "translation_key": "support_auto_disinfect", + "name": "Automatic Disinfection Support", + "icon": "mdi:bacteria-outline", + "required_attribute": "support_auto_disinfect", + }, + "support_force_e_heating": { + "type": Platform.BINARY_SENSOR, + "translation_key": "support_force_e_heating", + "name": "Forced Electric Heating Support", + "icon": "mdi:heating-coil", + "required_attribute": "support_force_e_heating", + }, + "support_tou": { + "type": Platform.BINARY_SENSOR, + "translation_key": "support_tou", + "name": "Time-of-use Support", + "icon": "mdi:calendar-clock", + "required_attribute": "support_tou", + }, + "support_ac_heater_priority": { + "type": Platform.BINARY_SENSOR, + "translation_key": "support_ac_heater_priority", + "name": "Heat Pump Priority Support", + "icon": "mdi:heat-pump-outline", + "required_attribute": "support_ac_heater_priority", + }, + "support_heat_recovery": { + "type": Platform.BINARY_SENSOR, + "translation_key": "support_heat_recovery", + "name": "Heat Recovery Support", + "icon": "mdi:heat-wave", + "required_attribute": "support_heat_recovery", + }, + "support_heat_pump_mode": { + "type": Platform.BINARY_SENSOR, + "translation_key": "support_heat_pump_mode", + "name": "Heat Pump Mode Support", + "icon": "mdi:heat-pump-outline", + "required_attribute": "support_heat_pump_mode", + }, + "support_smart_mode": { + "type": Platform.BINARY_SENSOR, + "translation_key": "support_smart_mode", + "name": "Smart Mode Support", + "icon": "mdi:brain", + "required_attribute": "support_smart_mode", + }, + "support_negative_temperature": { + "type": Platform.BINARY_SENSOR, + "translation_key": "support_negative_temperature", + "name": "Negative Temperature Support", + "icon": "mdi:snowflake-thermometer", + "required_attribute": "support_negative_temperature", + }, CDAttributes.compressor_status: { "type": Platform.BINARY_SENSOR, "translation_key": "compressor_status", @@ -1884,12 +2578,15 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { "icon": "mdi:cup-water", }, CDAttributes.disinfection_temperature: { - "type": Platform.SENSOR, + "type": Platform.NUMBER, "translation_key": "disinfection_temperature", "name": "Disinfection Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": UnitOfTemperature.CELSIUS, - "state_class": SensorStateClass.MEASUREMENT, + "min": 60, + "max": 70, + "step": 1, + "icon": "mdi:thermometer-alert", }, CDAttributes.elec_heat: { "type": Platform.SENSOR, @@ -2000,7 +2697,7 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { "icon": "mdi:leaf", }, CDAttributes.maintenance_reminder: { - "type": Platform.BINARY_SENSOR, + "type": Platform.SWITCH, "translation_key": "maintenance_reminder", "name": "Maintenance Reminder", "icon": "mdi:wrench-clock", @@ -2027,12 +2724,14 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { "device_class": BinarySensorDeviceClass.RUNNING, }, CDAttributes.max_temperature: { - "type": Platform.SENSOR, + "type": Platform.NUMBER, "translation_key": "max_temperature", "name": "Maximum Target Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": UnitOfTemperature.CELSIUS, - "state_class": SensorStateClass.MEASUREMENT, + "min": 35, + "max": 70, + "step": 1, "icon": "mdi:thermometer-high", }, CDAttributes.vacation_mode: { @@ -3150,12 +3849,14 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { "type": Platform.LOCK, "translation_key": "child_lock", "name": "Child Lock", + "excluded_devices": ED_TEA_BAR_DEVICES, }, EDAttributes.power: { "type": Platform.SWITCH, "translation_key": "power", "name": "Power", "icon": "mdi:power", + "excluded_devices": ED_TEA_BAR_DEVICES, }, EDAttributes.filter1: { "type": Platform.SENSOR, @@ -3229,36 +3930,273 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { "unit": UnitOfVolume.LITERS, "state_class": SensorStateClass.TOTAL_INCREASING, }, + EDAttributes.current_temperature: { + "type": Platform.SENSOR, + "translation_key": "current_temperature", + "name": "Current Temperature", + "device_class": SensorDeviceClass.TEMPERATURE, + "unit": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT, + "default": True, + "required_attribute": EDAttributes.current_temperature, + "subtypes": ED_TEA_BAR_SUBTYPES, + "models": ED_TEA_BAR_MODELS, + }, + EDAttributes.target_temperature: { + "type": Platform.SENSOR, + "translation_key": "target_temperature", + "name": "Target Temperature", + "device_class": SensorDeviceClass.TEMPERATURE, + "unit": UnitOfTemperature.CELSIUS, + "state_class": SensorStateClass.MEASUREMENT, + "default": True, + "required_attribute": EDAttributes.target_temperature, + "subtypes": ED_TEA_BAR_SUBTYPES, + "models": ED_TEA_BAR_MODELS, + }, + EDAttributes.heating: { + "type": Platform.BINARY_SENSOR, + "translation_key": "heating", + "name": "Heating", + "icon": "mdi:kettle-steam", + "device_class": BinarySensorDeviceClass.RUNNING, + "default": True, + "required_attribute": EDAttributes.heating, + "subtypes": ED_TEA_BAR_SUBTYPES, + "models": ED_TEA_BAR_MODELS, + }, + EDAttributes.dispensing: { + "type": Platform.BINARY_SENSOR, + "translation_key": "dispensing", + "name": "Dispensing Water", + "icon": "mdi:water-pump", + "device_class": BinarySensorDeviceClass.RUNNING, + "default": True, + "required_attribute": EDAttributes.dispensing, + "subtypes": ED_TEA_BAR_SUBTYPES, + "models": ED_TEA_BAR_MODELS, + }, + EDAttributes.lack_water: { + "type": Platform.BINARY_SENSOR, + "translation_key": "lack_water", + "name": "Lack Water", + "icon": "mdi:water-alert", + "device_class": BinarySensorDeviceClass.PROBLEM, + "default": True, + "required_attribute": EDAttributes.lack_water, + "subtypes": ED_TEA_BAR_SUBTYPES, + "models": ED_TEA_BAR_MODELS, + }, + EDAttributes.standby: { + "type": Platform.BINARY_SENSOR, + "translation_key": "standby", + "name": "Standby", + "icon": "mdi:power-standby", + "default": True, + "required_attribute": EDAttributes.standby, + "subtypes": ED_TEA_BAR_SUBTYPES, + "models": ED_TEA_BAR_MODELS, + }, + EDAttributes.hot_water_dispensing: { + "type": Platform.BINARY_SENSOR, + "translation_key": "hot_water_dispensing", + "name": "Hot Water Dispensing", + "icon": "mdi:water-thermometer", + "device_class": BinarySensorDeviceClass.RUNNING, + "default": True, + "required_attribute": EDAttributes.hot_water_dispensing, + "subtypes": ED_TEA_BAR_SUBTYPES, + "models": ED_TEA_BAR_MODELS, + }, + EDAttributes.fault: { + "type": Platform.BINARY_SENSOR, + "translation_key": "fault", + "name": "Fault", + "icon": "mdi:alert-circle", + "device_class": BinarySensorDeviceClass.PROBLEM, + "default": True, + "required_attribute": EDAttributes.fault, + "subtypes": ED_TEA_BAR_SUBTYPES, + "models": ED_TEA_BAR_MODELS, + }, + EDAttributes.fault_code: { + "type": Platform.SENSOR, + "translation_key": "fault_code", + "name": "Fault Code", + "icon": "mdi:alert-circle-outline", + "default": True, + "required_attribute": EDAttributes.fault_code, + "subtypes": ED_TEA_BAR_SUBTYPES, + "models": ED_TEA_BAR_MODELS, + }, + EDAttributes.boil_temperature: { + "type": Platform.NUMBER, + "translation_key": "boil_temperature", + "name": "Boil Target Temperature", + "icon": "mdi:kettle-steam", + "device_class": NumberDeviceClass.TEMPERATURE, + "unit": UnitOfTemperature.CELSIUS, + "min": 40, + "max": 100, + "step": 1, + "default": False, + "required_attribute": EDAttributes.boil_temperature, + "subtypes": ED_TEA_BAR_SUBTYPES, + "models": ED_TEA_BAR_MODELS, + "removed": True, + }, + EDAttributes.boiling: { + "type": Platform.SWITCH, + "translation_key": "boiling", + "name": "Boil Water", + "icon": "mdi:kettle-steam", + "default": False, + "required_attribute": EDAttributes.boiling, + "subtypes": ED_TEA_BAR_SUBTYPES, + "models": ED_TEA_BAR_MODELS, + "removed": True, + }, + EDAttributes.keep_warm: { + "type": Platform.SWITCH, + "translation_key": "keep_warm", + "name": "Keep Warm", + "icon": "mdi:kettle-steam-outline", + "default": True, + "required_attribute": EDAttributes.keep_warm, + "subtypes": ED_TEA_BAR_SUBTYPES, + "models": ED_TEA_BAR_MODELS, + }, + EDAttributes.cooling: { + "type": Platform.SWITCH, + "translation_key": "tea_bar_cooling", + "name": "Tea Bar Cooling", + "icon": "mdi:snowflake", + "default": True, + "required_attribute": EDAttributes.cooling, + "subtypes": ED_TEA_BAR_SUBTYPES, + "models": ED_TEA_BAR_MODELS, + }, + EDAttributes.sleep: { + "type": Platform.SWITCH, + "translation_key": "screen_off", + "name": "Screen Off", + "icon": "mdi:monitor-off", + "subtypes": ED_TEA_BAR_SUBTYPES, + "models": ED_TEA_BAR_MODELS, + "removed": True, + }, + EDAttributes.screen_display: { + "type": Platform.SWITCH, + "translation_key": "screen_display", + "name": "Screen Display", + "icon": "mdi:monitor", + "default": True, + "required_attribute": EDAttributes.screen_display, + "subtypes": ED_TEA_BAR_SUBTYPES, + "models": ED_TEA_BAR_MODELS, + }, + EDAttributes.keep_warm_time: { + "type": Platform.NUMBER, + "translation_key": "keep_warm_time", + "name": "Keep Warm Time", + "icon": "mdi:timer-outline", + "device_class": NumberDeviceClass.DURATION, + "unit": UnitOfTime.HOURS, + "min": 1, + "max": 12, + "step": 0.5, + "default": True, + "required_attribute": EDAttributes.keep_warm_time, + "subtypes": ED_TEA_BAR_SUBTYPES, + "models": ED_TEA_BAR_MODELS, + }, + EDAttributes.keep_warm_remaining: { + "type": Platform.SENSOR, + "translation_key": "keep_warm_remaining", + "name": "Keep Warm Remaining", + "icon": "mdi:progress-clock", + "device_class": SensorDeviceClass.DURATION, + "unit": UnitOfTime.HOURS, + "suggested_unit": UnitOfTime.HOURS, + "state_class": SensorStateClass.MEASUREMENT, + "suggested_display_precision": 6, + "duration_from_minutes": True, + "default": True, + "required_attribute": EDAttributes.keep_warm_remaining, + "subtypes": ED_TEA_BAR_SUBTYPES, + "models": ED_TEA_BAR_MODELS, + }, + "boil": { + "type": Platform.BUTTON, + "subtypes": ED_TEA_BAR_SUBTYPES, + "models": ED_TEA_BAR_MODELS, + "removed": True, + }, + "tea_bar": { + "type": Platform.SWITCH, + "translation_key": "tea_bar_boil", + "name": "Boil Water Switch", + "icon": "mdi:kettle-steam", + "default": True, + "subtypes": ED_TEA_BAR_SUBTYPES, + "models": ED_TEA_BAR_MODELS, + }, + "tea_bar_child_lock": { + "type": Platform.SWITCH, + "translation_key": "tea_bar_child_lock", + "name": "Tea Bar Child Lock", + "icon": "mdi:lock", + "default": True, + "required_attribute": EDAttributes.child_lock, + "subtypes": ED_TEA_BAR_SUBTYPES, + "models": ED_TEA_BAR_MODELS, + }, + "tea_bar_temperature": { + "type": Platform.CLIMATE, + # This is the appliance's primary Home/HA control. Leaving + # the entity name unset exposes the device name instead of + # the redundant "Tea Bar Boil Water". + "name": None, + "icon": "mdi:kettle-steam", + "default": True, + "subtypes": ED_TEA_BAR_SUBTYPES, + "models": ED_TEA_BAR_MODELS, + }, # Soft water machine (water softener) entities EDAttributes.soften: { "type": Platform.SWITCH, "translation_key": "soften", "name": "Softening", "icon": "mdi:water-outline", + "subtypes": ED_SOFT_WATER_SUBTYPES, }, EDAttributes.cl_sterilization: { "type": Platform.SWITCH, "translation_key": "cl_sterilization", "name": "CL Sterilization", "icon": "mdi:bacteria", + "subtypes": ED_SOFT_WATER_SUBTYPES, }, EDAttributes.leak_water_protection: { "type": Platform.SWITCH, "translation_key": "leak_water_protection", "name": "Leak Water Protection", "icon": "mdi:water-alert", + "subtypes": ED_SOFT_WATER_SUBTYPES, }, EDAttributes.water_way: { "type": Platform.SWITCH, "translation_key": "water_way", "name": "Water Way", "icon": "mdi:pipe", + "subtypes": ED_SOFT_WATER_SUBTYPES, }, EDAttributes.regeneration: { "type": Platform.SWITCH, "translation_key": "regeneration", "name": "Regeneration", "icon": "mdi:refresh", + "subtypes": ED_SOFT_WATER_SUBTYPES, }, EDAttributes.velocity: { "type": Platform.SENSOR, @@ -3266,6 +4204,7 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { "name": "Velocity", "icon": "mdi:speedometer", "state_class": SensorStateClass.MEASUREMENT, + "subtypes": ED_SOFT_WATER_SUBTYPES, }, EDAttributes.soft_available: { "type": Platform.SENSOR, @@ -3274,6 +4213,7 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { "icon": "mdi:water-check", "unit": UnitOfVolume.LITERS, "state_class": SensorStateClass.MEASUREMENT, + "subtypes": ED_SOFT_WATER_SUBTYPES, }, EDAttributes.left_salt: { "type": Platform.SENSOR, @@ -3282,6 +4222,7 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { "icon": "mdi:shaker", "unit": PERCENTAGE, "state_class": SensorStateClass.MEASUREMENT, + "subtypes": ED_SOFT_WATER_SUBTYPES, }, EDAttributes.remaining_days: { "type": Platform.SENSOR, @@ -3290,6 +4231,7 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { "icon": "mdi:calendar-clock", "unit": UnitOfTime.DAYS, "state_class": SensorStateClass.MEASUREMENT, + "subtypes": ED_SOFT_WATER_SUBTYPES, }, EDAttributes.water_hardness: { "type": Platform.NUMBER, @@ -3299,6 +4241,7 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { "min": 0, "max": 65535, "step": 1, + "subtypes": ED_SOFT_WATER_SUBTYPES, }, EDAttributes.flushing_days: { "type": Platform.NUMBER, @@ -3309,12 +4252,14 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { "min": 0, "max": 99, "step": 1, + "subtypes": ED_SOFT_WATER_SUBTYPES, }, EDAttributes.timing_regeneration_hour: { "type": Platform.TIME, "translation_key": "timing_regeneration", "name": "Timing Regeneration", "icon": "mdi:clock-outline", + "subtypes": ED_SOFT_WATER_SUBTYPES, }, EDAttributes.regeneration_left_seconds: { "type": Platform.SENSOR, @@ -3323,6 +4268,7 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { "icon": "mdi:timer", "unit": UnitOfTime.SECONDS, "state_class": SensorStateClass.MEASUREMENT, + "subtypes": ED_SOFT_WATER_SUBTYPES, }, EDAttributes.use_days: { "type": Platform.SENSOR, @@ -3331,6 +4277,7 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { "icon": "mdi:calendar", "unit": UnitOfTime.DAYS, "state_class": SensorStateClass.MEASUREMENT, + "subtypes": ED_SOFT_WATER_SUBTYPES, }, EDAttributes.salt_setting: { "type": Platform.SENSOR, @@ -3338,6 +4285,7 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { "name": "Salt Setting", "icon": "mdi:shaker-outline", "state_class": SensorStateClass.MEASUREMENT, + "subtypes": ED_SOFT_WATER_SUBTYPES, }, EDAttributes.water_consumption_big: { "type": Platform.SENSOR, @@ -3347,6 +4295,7 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { "unit": UnitOfVolume.LITERS, "state_class": SensorStateClass.TOTAL_INCREASING, "suggested_display_precision": 2, + "subtypes": ED_SOFT_WATER_SUBTYPES, }, EDAttributes.water_consumption_average: { "type": Platform.SENSOR, @@ -3355,6 +4304,7 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { "icon": "mdi:water", "unit": UnitOfVolume.LITERS, "state_class": SensorStateClass.MEASUREMENT, + "subtypes": ED_SOFT_WATER_SUBTYPES, }, EDAttributes.leak_water_protection_value: { "type": Platform.NUMBER, @@ -3365,6 +4315,7 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { "min": 0, "max": 2550, "step": 50, + "subtypes": ED_SOFT_WATER_SUBTYPES, }, EDAttributes.leak_water: { "type": Platform.BINARY_SENSOR, @@ -3372,12 +4323,14 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { "name": "Leak Water", "icon": "mdi:water-alert", "device_class": BinarySensorDeviceClass.PROBLEM, + "subtypes": ED_SOFT_WATER_SUBTYPES, }, EDAttributes.rsj_stand_by: { "type": Platform.BINARY_SENSOR, "translation_key": "rsj_stand_by", "name": "Stand By", "icon": "mdi:power-standby", + "subtypes": ED_SOFT_WATER_SUBTYPES, }, EDAttributes.error: { "type": Platform.SENSOR, @@ -3385,6 +4338,7 @@ MIDEA_DEVICES: dict[int, dict[str, dict[str, Any] | str]] = { "name": "Error", "icon": "mdi:alert-circle", "device_class": SensorDeviceClass.ENUM, + "subtypes": ED_SOFT_WATER_SUBTYPES, # Soft water machine (deviceKind=9/10, subtype 703) error codes # Source: weex.js error dictionary "a" "options": { diff --git a/custom_components/midea_ac_lan/number.py b/custom_components/midea_ac_lan/number.py index 839ed330..af9eb006 100644 --- a/custom_components/midea_ac_lan/number.py +++ b/custom_components/midea_ac_lan/number.py @@ -2,14 +2,14 @@ from typing import Any, cast -from homeassistant.components.number import NumberEntity +from homeassistant.components.number import NumberDeviceClass, NumberEntity from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_DEVICE_ID, CONF_SWITCHES, Platform from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback from midealan.device import MideaDevice -from .const import DEVICES, DOMAIN +from .const import DEVICES, DOMAIN, supports_device from .midea_devices import MIDEA_DEVICES from .midea_entity import MideaEntity @@ -28,9 +28,19 @@ async def async_setup_entry( "dict", MIDEA_DEVICES[device.device_type]["entities"], ).items(): - if config["type"] == Platform.NUMBER and entity_key in extra_switches: - dev = MideaNumber(device, entity_key) - numbers.append(dev) + if ( + config["type"] != Platform.NUMBER + or not supports_device(device.model, device.subtype, config) + or (not config.get("default") and entity_key not in extra_switches) + ): + continue + required_attribute = config.get("required_attribute") + if ( + required_attribute is not None + and required_attribute not in device.attributes + ): + continue + numbers.append(MideaNumber(device, entity_key)) async_add_entities(numbers) @@ -43,6 +53,10 @@ class MideaNumber(MideaEntity, NumberEntity): self._max_value = self._config.get("max") self._min_value = self._config.get("min") self._step_value = self._config.get("step") + self._attr_device_class: NumberDeviceClass | None = self._config.get( + "device_class", + ) + self._attr_native_unit_of_measurement = self._config.get("unit") def _resolve_bound(self, bound: Any) -> float: # ruff:ignore[any-type] """Resolve a min/max/step config value to a concrete number. diff --git a/custom_components/midea_ac_lan/select.py b/custom_components/midea_ac_lan/select.py index 10331e03..d8823328 100644 --- a/custom_components/midea_ac_lan/select.py +++ b/custom_components/midea_ac_lan/select.py @@ -70,12 +70,19 @@ class MideaSelect(MideaEntity, SelectEntity): if codes: return [options[code] for code in codes if code in options] return list(options.values()) + if isinstance(self._options_name, list): + return [str(option) for option in self._options_name] return cast("list", getattr(self._device, self._options_name)) @property def current_option(self) -> str | None: """Currently selected option.""" - option = cast("str | None", self._device.get_attribute(self._attribute_key)) + value = self._device.get_attribute(self._attribute_key) + if value is None: + return None + option = ( + str(value) if isinstance(self._options_name, list) else cast("str", value) + ) return option if option in self.options else None @property @@ -91,7 +98,10 @@ class MideaSelect(MideaEntity, SelectEntity): if self._config.get("set_message") == "e1_work_mode": self._select_e1_work_mode(option) return - self._device.set_attribute(self._attribute_key, option) + value: Any = option + if self._config.get("option_type") == "int": + value = int(option) + self._device.set_attribute(self._attribute_key, value) def _get_options_dict(self) -> dict[int, str]: """Return option dict from the backing midea-lan device. diff --git a/custom_components/midea_ac_lan/sensor.py b/custom_components/midea_ac_lan/sensor.py index daa14152..243df565 100644 --- a/custom_components/midea_ac_lan/sensor.py +++ b/custom_components/midea_ac_lan/sensor.py @@ -1,5 +1,8 @@ """Sensor for Midea Lan.""" +import math +import time +from datetime import timedelta from typing import Any, cast from homeassistant.components.sensor import ( @@ -9,13 +12,14 @@ from homeassistant.components.sensor import ( ) from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_DEVICE_ID, CONF_SENSORS, Platform -from homeassistant.core import HomeAssistant +from homeassistant.core import HomeAssistant, callback from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.event import async_track_time_interval from homeassistant.helpers.restore_state import RestoreEntity from homeassistant.helpers.typing import StateType from midealan.device import MideaDevice -from .const import DEVICES, DOMAIN, supports_model +from .const import DEVICES, DOMAIN, supports_device from .midea_devices import MIDEA_DEVICES from .midea_entity import MideaEntity @@ -36,7 +40,7 @@ async def async_setup_entry( ).items(): if ( config["type"] != Platform.SENSOR - or not supports_model(device.model, config) + or not supports_device(device.model, device.subtype, config) or (not config.get("default") and entity_key not in extra_sensors) ): continue @@ -46,17 +50,27 @@ async def async_setup_entry( and required_attribute not in device.attributes ): continue - sensor = ( - MideaEstimatedUsageSensor(device, entity_key) - if config.get("estimate") - else MideaSensor(device, entity_key) - ) + if config.get("estimate"): + sensor = MideaEstimatedUsageSensor(device, entity_key) + elif config.get("duration_from_minutes"): + sensor = MideaMinuteDurationSensor(device, entity_key) + else: + sensor = MideaSensor(device, entity_key) sensors.append(sensor) async_add_entities(sensors) class MideaSensor(MideaEntity, SensorEntity): - """Represent a Midea sensor.""" + """Represent a Midea sensor.""" + + def __init__(self, device: MideaDevice, entity_key: str) -> None: + """Initialize Midea sensor.""" + super().__init__(device, entity_key) + # Timer configuration: "down" for countdown, "up" for countup + self._timer = self._config.get("timer") + self._timer_base_value: int | None = None + self._timer_last_update: float | None = None + self._timer_listener = None @property def native_value(self) -> StateType: @@ -68,6 +82,20 @@ class MideaSensor(MideaEntity, SensorEntity): # For an enum sensor an unmapped value is not a valid state, so # report it as unknown (None) instead of leaking the raw int. return cast("StateType", options.get(value)) + + # Timer mode: calculate elapsed time + if self._timer and isinstance(value, int): + now = time.time() + if self._timer_last_update is not None: + elapsed = int(now - self._timer_last_update) + if self._timer == "down": + # Countdown: value decreases by elapsed seconds + return cast("StateType", max(0, value - elapsed)) + if self._timer == "up": + # Countup: value increases by elapsed seconds + return cast("StateType", value + elapsed) + return cast("StateType", value) + return cast("StateType", value) @property @@ -98,6 +126,11 @@ class MideaSensor(MideaEntity, SensorEntity): """Suggested number of decimal digits for display.""" return cast("int | None", self._config.get("suggested_display_precision")) + @property + def suggested_unit_of_measurement(self) -> str | None: + """Preferred display unit for device-class conversion.""" + return cast("str | None", self._config.get("suggested_unit")) + @property def capability_attributes(self) -> dict[str, Any] | None: """Capability attributes of the sensor.""" @@ -105,6 +138,74 @@ class MideaSensor(MideaEntity, SensorEntity): return {"options": self.options} return {"state_class": self.state_class} if self.state_class else {} + async def async_added_to_hass(self) -> None: + """Subscribe to device updates and start timer tracking.""" + await super().async_added_to_hass() + # Start timer tracking if configured + if self._timer: + value = self._device.get_attribute(self._entity_key) + if isinstance(value, int): + self._timer_base_value = value + self._timer_last_update = time.time() + # Register 1-second interval update + self._timer_listener = async_track_time_interval( + self.hass, + self._async_timer_update, + timedelta(seconds=1), + ) + + async def async_will_remove_from_hass(self) -> None: + """Unsubscribe from device updates and stop timer tracking.""" + await super().async_will_remove_from_hass() + if self._timer_listener: + self._timer_listener() + self._timer_listener = None + + @callback + def update_state(self, status: Any) -> None: # ruff:ignore[any-type] + """Update entity state.""" + if self._timer and self._entity_key in status: + value = self._device.get_attribute(self._entity_key) + if isinstance(value, int): + self._timer_base_value = value + self._timer_last_update = time.time() + super().update_state(status) + + @callback + def _async_timer_update(self, _now: Any) -> None: # ruff:ignore[any-type] + """Update timer state every second.""" + self.schedule_update_ha_state() + + +class MideaMinuteDurationSensor(MideaSensor): + """Present a whole-minute appliance duration as hours and minutes.""" + + _HOUR_PRECISION = 6 + + @property + def native_value(self) -> StateType: + """Convert source minutes to hours for HA's duration formatter.""" + raw_value = self._device.get_attribute(self._entity_key) + if raw_value is None: + return None + minutes = max(0, int(cast("int", raw_value))) + if minutes == 0: + return 0 + + # HA's duration formatter decomposes decimal hours with floor(). Round + # upward below the appliance's one-minute resolution so values such as + # 61 minutes cannot render as 1 hour 0 minutes through float truncation. + scale = 10**self._HOUR_PRECISION + return math.ceil((minutes / 60) * scale) / scale + + @property + def extra_state_attributes(self) -> dict[str, int]: + """Keep the exact appliance value available for automations.""" + raw_value = self._device.get_attribute(self._entity_key) + return { + "remaining_minutes": max(0, int(cast("int", raw_value or 0))), + } + class MideaEstimatedUsageSensor(MideaSensor, RestoreEntity): """Represent estimated dishwasher usage accumulated per run. diff --git a/custom_components/midea_ac_lan/switch.py b/custom_components/midea_ac_lan/switch.py index 7ca8c8f5..a91dff57 100644 --- a/custom_components/midea_ac_lan/switch.py +++ b/custom_components/midea_ac_lan/switch.py @@ -7,8 +7,11 @@ from homeassistant.const import CONF_DEVICE_ID, CONF_SWITCHES, Platform from homeassistant.core import HomeAssistant from homeassistant.helpers.entity import ToggleEntity from homeassistant.helpers.entity_platform import AddEntitiesCallback +from midealan.device import DeviceType +from midealan.devices.ed import DeviceAttributes as EDAttributes +from midealan.devices.ed import MideaEDDevice -from .const import DEVICES, DOMAIN +from .const import DEVICES, DOMAIN, supports_device from .midea_devices import MIDEA_DEVICES from .midea_entity import MideaEntity @@ -27,9 +30,25 @@ async def async_setup_entry( "dict", MIDEA_DEVICES[device.device_type]["entities"], ).items(): - if config["type"] == Platform.SWITCH and entity_key in extra_switches: + if ( + config["type"] != Platform.SWITCH + or not supports_device(device.model, device.subtype, config) + or (not config.get("default") and entity_key not in extra_switches) + ): + continue + required_attribute = config.get("required_attribute") + if ( + required_attribute is not None + and required_attribute not in device.attributes + ): + continue + if device.device_type == DeviceType.ED and entity_key == "tea_bar": + dev = MideaEDTeaBarBoilSwitch(device, entity_key) + elif device.device_type == DeviceType.ED and entity_key == "tea_bar_child_lock": + dev = MideaEDTeaBarChildLockSwitch(device, entity_key) + else: dev = MideaSwitch(device, entity_key) - switches.append(dev) + switches.append(dev) async_add_entities(switches) @@ -48,3 +67,44 @@ class MideaSwitch(MideaEntity, ToggleEntity): def turn_off(self, **kwargs: Any) -> None: # ruff:ignore[any-type, unused-method-argument] """Turn off switch.""" self._device.set_attribute(attr=self._entity_key, value=False) + + +class MideaEDTeaBarBoilSwitch(MideaSwitch): + """Accessible one-control switch for a subtype-395 tea bar.""" + + _device: MideaEDDevice + + @property + def is_on(self) -> bool: + """Whether the automatic fill-and-boil cycle is active.""" + return bool( + self._device.get_attribute(EDAttributes.boiling) + or self._device.get_attribute(EDAttributes.dispensing), + ) + + def turn_on(self, **kwargs: Any) -> None: # ruff:ignore[any-type, unused-method-argument] + """Start the appliance's normal automatic fill-and-boil cycle.""" + self._device.set_attribute(EDAttributes.boiling, True) + + def turn_off(self, **kwargs: Any) -> None: # ruff:ignore[any-type, unused-method-argument] + """Stop the active boil cycle.""" + self._device.set_attribute(EDAttributes.boiling, False) + + +class MideaEDTeaBarChildLockSwitch(MideaSwitch): + """Expose the tea-bar child lock with on/off switch semantics.""" + + _device: MideaEDDevice + + @property + def is_on(self) -> bool: + """Whether the appliance child lock is enabled.""" + return bool(self._device.get_attribute(EDAttributes.child_lock)) + + def turn_on(self, **kwargs: Any) -> None: # ruff:ignore[any-type, unused-method-argument] + """Enable the child lock using the official model command.""" + self._device.set_attribute(EDAttributes.child_lock, True) + + def turn_off(self, **kwargs: Any) -> None: # ruff:ignore[any-type, unused-method-argument] + """Disable the child lock using the official model command.""" + self._device.set_attribute(EDAttributes.child_lock, False) diff --git a/custom_components/midea_ac_lan/translations/de.json b/custom_components/midea_ac_lan/translations/de.json index 8ca9758e..65bb5214 100644 --- a/custom_components/midea_ac_lan/translations/de.json +++ b/custom_components/midea_ac_lan/translations/de.json @@ -84,6 +84,12 @@ "burning_state": { "name": "Brenner-Status" }, + "clean_scale": { + "name": "Entkalken" + }, + "clean_sink_ponding": { + "name": "Wasseransammlung im Spülbecken" + }, "cleaning_reminder": { "name": "Reinigungs-Erinnerung" }, @@ -93,6 +99,12 @@ "cooking": { "name": "Kochen" }, + "dissipate_heat": { + "name": "Wärme abführen" + }, + "door": { + "name": "Tür" + }, "error_code": { "name": "Fehlercode" }, @@ -111,6 +123,9 @@ "flex_zone_door_overtime": { "name": "Flexzonen-Tür" }, + "flip_side": { + "name": "Wenden" + }, "freezer_door": { "name": "Gefrierfachtür" }, @@ -123,9 +138,25 @@ "heating": { "name": "Heizen" }, + "dispensing": { + "name": "Wasserentnahme" + }, + "lack_water": { "name": "Wassermangel" }, + "standby": { "name": "Bereitschaft" }, + "hot_water_dispensing": { "name": "Heißwasserausgabe" }, + "fault": { "name": "Störung" }, "heating_working": { "name": "Heizen Arbeitsstatus" }, + "high_temperature": { + "name": "Hohe Temperatur" + }, + "high_temperature_lock": { + "name": "Hochtemperatursperre" + }, + "high_temperature_work": { + "name": "Hochtemperaturbetrieb" + }, "keep_warm": { "name": "Warmhalten" }, @@ -162,9 +193,24 @@ "oilcup_full": { "name": "Ölbehälter voll" }, + "ota": { + "name": "OTA" + }, + "pre_heat": { + "name": "Vorheizen" + }, + "probe": { + "name": "Fühler" + }, + "probe_mode": { + "name": "Fühlermodus" + }, "protection": { "name": "Schutz" }, + "reaction": { + "name": "Reaktion" + }, "refrigerator_door": { "name": "Kühlschranktür" }, @@ -192,6 +238,66 @@ "maintenance_reminder": { "name": "Wartungserinnerung" }, + "dr_enable": { + "name": "Nachfrageantwort" + }, + "electric_rod_exception": { + "name": "Fehler des elektrischen Heizstabs" + }, + "ac_heater_priority": { + "name": "Wärmepumpen-Priorität" + }, + "high_temp_reminder": { + "name": "Hinweis auf hohe Temperatur" + }, + "new_version_water_heater": { + "name": "Erweitertes Warmwasserbereiter-Protokoll" + }, + "heat_recovery_status": { + "name": "Wärmerückgewinnung" + }, + "holiday_mode": { + "name": "Urlaubsmodus" + }, + "hybrid_motion_mode": { + "name": "Hybrid-Bewegungsmodus" + }, + "support_boost_mode": { + "name": "Boost-Modus-Unterstützung" + }, + "support_silent_mode": { + "name": "Unterstützung für den Silent-Modus" + }, + "support_remaining_hot_water": { + "name": "Unterstützung für verbleibendes Warmwasser" + }, + "support_electric_mode": { + "name": "Unterstützung für den Elektromodus" + }, + "support_auto_disinfect": { + "name": "Unterstützung für automatische Desinfektion" + }, + "support_force_e_heating": { + "name": "Unterstützung für erzwungene elektrische Heizung" + }, + "support_tou": { + "name": "Unterstützung für Zeitnutzung" + }, + "support_ac_heater_priority": { + "name": "Unterstützung für Wärmepumpen-Priorität" + }, + "support_heat_recovery": { + "name": "Unterstützung für Wärmerückgewinnung" + }, + "support_heat_pump_mode": { + "name": "Unterstützung für Wärmepumpenmodus" + }, + "support_smart_mode": { + "name": "Unterstützung für den Smart-Modus" + }, + "support_negative_temperature": { + "name": "Unterstützung für negative Temperaturen" + }, "maintain_warn": { "name": "Wartungswarnung" }, @@ -314,6 +420,15 @@ "vacation_days": { "name": "Urlaubstage" }, + "max_temperature": { + "name": "Maximale Zieltemperatur" + }, + "disinfection_temperature": { + "name": "Desinfektionstemperatur" + }, + "schedule_mode": { + "name": "Planungsmodus" + }, "leak_water_protection_value": { "name": "Leckschutzwert" }, @@ -322,6 +437,12 @@ }, "water_hardness": { "name": "Wasserhärte" + }, + "boil_temperature": { + "name": "Zieltemperatur zum Kochen" + }, + "keep_warm_time": { + "name": "Warmhaltezeit" } }, "select": { @@ -412,6 +533,25 @@ "bathing_leaving_temperature": { "name": "Bathing Leaving Water Temperature" }, + "bf_status": { + "name": "Status", + "state": { + "save_power": "Stromsparen", + "standby": "Bereitschaft", + "work": "Arbeiten", + "work_finish": "Beendet", + "order": "Verzögerung", + "pause": "Pausiert", + "pause_c": "Pausiert C", + "three": "Drei", + "wait_to_start": "Warten auf Start", + "self_inspection": "Selbsttest", + "query_version": "Version abfragen", + "demo": "Demo", + "after_checking": "Nach Prüfung", + "unknown": "Unbekannt" + } + }, "bottom_compartment_remaining": { "name": "Bottom Compartment Remaining" }, @@ -427,12 +567,27 @@ "bright": { "name": "Helligkeitsstufe" }, + "cbs_version": { + "name": "CBS-Version" + }, + "cloudmenuid": { + "name": "Cloud-Menü-ID" + }, "compressor_temperature": { "name": "Kompressor-Temperatur" }, "condenser_temperature": { "name": "Kondensator-Temperature" }, + "cur_probe_temperature": { + "name": "Aktuelle Fühlertemperatur" + }, + "cur_temperature_above": { + "name": "Aktuelle obere Temperatur" + }, + "cur_temperature_underside": { + "name": "Aktuelle untere Temperatur" + }, "current_energy_consumption": { "name": "Aktueller Energieverbrauch" }, @@ -510,6 +665,15 @@ "estimated_water_consumption": { "name": "Geschätzter Wasserverbrauch" }, + "execute_status": { + "name": "Ausführungsstatus", + "state": { + "ok": "OK", + "status_nonsupport": "Status nicht unterstützt", + "function_nonsupport": "Funktion nicht unterstützt", + "param_range_error": "Parameterbereichsfehler" + } + }, "fan_level": { "name": "Lüfterstufe" }, @@ -534,6 +698,23 @@ "filter3_life": { "name": "Filter3 Lebensdauer Stufe" }, + "fire_power": { + "name": "Heizleistung", + "state": { + "fire_power_0": "Stufe 0", + "fire_power_1": "Stufe 1", + "fire_power_2": "Stufe 2", + "fire_power_3": "Stufe 3", + "fire_power_4": "Stufe 4", + "fire_power_5": "Stufe 5", + "fire_power_6": "Stufe 6", + "fire_power_7": "Stufe 7", + "fire_power_8": "Stufe 8", + "fire_power_9": "Stufe 9", + "fire_power_10": "Stufe 10", + "unknown": "Unbekannt" + } + }, "flex_zone_actual_temp": { "name": "Flex Zone Actual Temperature" }, @@ -570,6 +751,7 @@ "keep_warm_remaining": { "name": "Keep Warm Remaining" }, + "fault_code": { "name": "Fehlercode" }, "keep_warm_time": { "name": "Keep Warm Time" }, @@ -585,6 +767,9 @@ "middle_compartment_temperature": { "name": "Middle Compartment Temperature" }, + "minute_set": { + "name": "Minute einstellen" + }, "mode": { "name": "Mode" }, @@ -594,6 +779,70 @@ "outdoor_temperature": { "name": "Außentemperatur" }, + "comp_run_freq": { + "name": "Verdichterfrequenz" + }, + "outdoor_fan_speed": { + "name": "Lüfterdrehzahl des Außengeräts" + }, + "unit_mode_run": { + "name": "Betriebsmodus des Geräts", + "state": { + "off": "Aus", + "auto": "Auto", + "cool": "Kühlen", + "heat": "Heizen", + "dhw": "Warmwasser" + } + }, + "odu_target_fre": { + "name": "Ziel-Verdichterfrequenz" + }, + "odu_voltage": { + "name": "Spannung des Außengeräts" + }, + "odu_comp_current": { + "name": "Verdichterstrom" + }, + "exv_current": { + "name": "Öffnung des elektronischen Expansionsventils" + }, + "fg_capacity_need": { + "name": "Leistungsbedarf" + }, + "pressure_high": { + "name": "Kältemitteldruck (Hochdruckseite)" + }, + "pressure_low": { + "name": "Kältemitteldruck (Niederdruckseite)" + }, + "temp_t1": { + "name": "Temperatursensor T1" + }, + "temp_t2": { + "name": "Plattenwärmetauscher-Temperatur (T2)" + }, + "temp_t2b": { + "name": "Austrittstemperatur des Plattenwärmetauschers (T2B)" + }, + "temp_t3": { + "name": "Außenspulentemperatur (T3)" + }, + "temp_tp": { + "name": "Druckrohrtemperatur (TP)" + }, + "temp_th": { + "name": "Ansaugtemperatur (TH)" + }, + "temp_tf": { + "name": "Leistungsmodul-Temperatur (TF)" + }, + "people_number": { + "name": "Personenanzahl" + }, + "probe_temperature": { + "name": "Fühlertemperatur" + }, "program": { "name": "Program" }, @@ -636,6 +885,9 @@ "seat_temperature": { "name": "Seat Temperature" }, + "second_set": { + "name": "Sekunde einstellen" + }, "soak_time": { "name": "soak time" }, @@ -651,6 +903,12 @@ "status": { "name": "Status" }, + "steam_quantity": { + "name": "Dampfmenge" + }, + "stepnum": { + "name": "Aktueller Schritt" + }, "storage_remaining": { "name": "Storage Remaining" }, @@ -663,6 +921,12 @@ "target_temperature": { "name": "Temperaturziel" }, + "temperature_above": { + "name": "Obere Temperatur" + }, + "temperature_underside": { + "name": "Untere Temperatur" + }, "time_remaining": { "name": "Verbleibende Zeit" }, @@ -684,6 +948,9 @@ "total_produced_energy": { "name": "Gesamte produzierte Energie" }, + "totalstep": { + "name": "Gesamtschritte" + }, "tvoc": { "name": "TVOC" }, @@ -741,6 +1008,36 @@ "max_temperature": { "name": "Maximales Temperaturziel" }, + "max_temperature_upper_limit": { + "name": "Obere Grenze der maximalen Temperatur" + }, + "max_temperature_lower_limit": { + "name": "Untere Grenze der maximalen Temperatur" + }, + "disinfection_temperature_upper_limit": { + "name": "Obere Grenze der Desinfektionstemperatur" + }, + "disinfection_temperature_lower_limit": { + "name": "Untere Grenze der Desinfektionstemperatur" + }, + "dr_option": { + "name": "Nachfrageantwort-Option" + }, + "remaining_hot_water_max": { + "name": "Maximal verbleibendes Warmwasser" + }, + "force_e_heating_status": { + "name": "Status der erzwungenen elektrischen Heizung" + }, + "holiday_max": { + "name": "Maximale Urlaubsdauer" + }, + "holiday_min": { + "name": "Minimale Urlaubsdauer" + }, + "timer_step_gap": { + "name": "Timer-Schritt" + }, "vacation_start_year": { "name": "Urlaubsbeginn Jahr" }, @@ -759,6 +1056,121 @@ "auto_sterilize_minute": { "name": "Auto-Sterilisieren Minute" }, + "weight": { + "name": "Gewicht" + }, + "work_mode": { + "name": "Arbeitsmodus", + "state": { + "microwave": "Mikrowelle", + "microwave_1": "Mikrowelle 1", + "microwave_2": "Mikrowelle 2", + "microwave_3": "Mikrowelle 3", + "microwave_4": "Mikrowelle 4", + "microwave_5": "Mikrowelle 5", + "microwave_steam_above_tube": "Mikrowelle Dampf Ober Heizstab", + "microwave_double_tube": "Mikrowelle Doppel Heizstab", + "microwave_hot_wind_tube_fan": "Mikrowelle Heißluft Heizstab Lüfter", + "microwave_underside_tube_hot_wind_tube_fan": "Mikrowelle Unter Heizstab Heißluft Lüfter", + "microwave_double_tube_hot_wind_tube_fan": "Mikrowelle Doppel Heizstab Heißluft Lüfter", + "microwave_steam": "Mikrowelle Dampf", + "microwave_steam_1": "Mikrowelle Dampf 1", + "unfreeze": "Auftauen", + "unfreeze_1": "Auftauen 1", + "unfreeze_2": "Auftauen 2", + "unfreeze_3": "Auftauen 3", + "unfreeze_t": "Auftauen T", + "microwave_above_tube": "Mikrowelle Ober Heizstab", + "microwave_above_tube_1": "Mikrowelle Ober Heizstab 1", + "microwave_above_tube_2": "Mikrowelle Ober Heizstab 2", + "microwave_above_tube_fan": "Mikrowelle Ober Heizstab Lüfter", + "fast_unfreeze": "Schnell Auftauen", + "fresh_unfreeze": "Frisch Auftauen", + "microwave_zymosis": "Mikrowelle Gärung", + "pure_steam": "Rein Dampf", + "pure_steam_1": "Rein Dampf 1", + "pure_steam_2": "Rein Dampf 2", + "pure_steam_3": "Rein Dampf 3", + "pure_steam_4": "Rein Dampf 4", + "pure_steam_5": "Rein Dampf 5", + "pure_steam_6": "Rein Dampf 6", + "pure_steam_7": "Rein Dampf 7", + "pure_steam_8": "Rein Dampf 8", + "pure_steam_9": "Rein Dampf 9", + "steam_above_tube": "Dampf Ober Heizstab", + "steam_underside_tube": "Dampf Unter Heizstab", + "steam_double_tube": "Dampf Doppel Heizstab", + "steam_hot_wind_tube_fan": "Dampf Heißluft Heizstab Lüfter", + "steam_hot_wind_tube_fan_1": "Dampf Heißluft Heizstab Lüfter 1", + "steam_hot_wind_tube_fan_2": "Dampf Heißluft Heizstab Lüfter 2", + "steam_hot_wind_tube": "Dampf Heißluft Heizstab", + "steam_double_tube_fan": "Dampf Doppel Heizstab Lüfter", + "steam_above_inside_outside_tube_fan": "Dampf Ober Innen Außen Heizstab Lüfter", + "steam_above_inside_tube_fan": "Dampf Ober Innen Heizstab Lüfter", + "above_tube": "Ober Heizstab", + "underside_tube": "Unter Heizstab", + "double_tube": "Doppel Heizstab", + "hot_wind_tube_fan": "Heißluft Heizstab Lüfter", + "pure_preheat": "Rein Vorheizen", + "above_tube_hot_wind_tube_fan": "Ober Heizstab Heißluft Lüfter", + "underside_tube_hot_wind_tube_fan": "Unter Heizstab Heißluft Lüfter", + "zymosis": "Gärung", + "double_tube_hot_wind_tube_fan": "Doppel Heizstab Heißluft Lüfter", + "above_tube_revolve": "Ober Heizstab Drehend", + "underside_tube_revolve": "Unter Heizstab Drehend", + "double_tube_revolve": "Doppel Heizstab Drehend", + "hot_wind_tube_fan_revolve": "Heißluft Heizstab Lüfter Drehend", + "warm": "Warmhalten", + "double_tube_fan": "Doppel Heizstab Lüfter", + "double_tube_fan_1": "Doppel Heizstab Lüfter 1", + "double_tube_fan_2": "Doppel Heizstab Lüfter 2", + "double_tube_fan_3": "Doppel Heizstab Lüfter 3", + "above_inside_tube_revolve": "Ober Innen Heizstab Drehend", + "above_inside_tube_fan": "Ober Innen Heizstab Lüfter", + "above_inside_outside_tube_revolve": "Ober Innen Außen Heizstab Drehend", + "above_inside_outside_tube_fan": "Ober Innen Außen Heizstab Lüfter", + "above_inside_underside_tube": "Ober Innen Unter Heizstab", + "above_inside_underside_tube_1": "Ober Innen Unter Heizstab 1", + "above_inside_underside_tube_fan": "Ober Innen Unter Heizstab Lüfter", + "above_inside_underside_tube_fan_1": "Ober Innen Unter Heizstab Lüfter 1", + "above_inside_tube": "Ober Innen Heizstab", + "above_inside_outside_tube": "Ober Innen Außen Heizstab", + "underside_tube_fan": "Unter Heizstab Lüfter", + "above_tube_fan": "Ober Heizstab Lüfter", + "above_tube_fan_1": "Ober Heizstab Lüfter 1", + "above_tube_fan_2": "Ober Heizstab Lüfter 2", + "scale_clean": "Entkalkung", + "clean": "Reinigen", + "remove_odor": "Geruch entfernen", + "remove_odor_2": "Geruch entfernen 2", + "high_temperature_clean": "Hohe Temperatur Reinigen", + "dining_utensils_clean": "Geschirr Reinigen", + "auto_menu": "Automatikmenü", + "eco": "Eco", + "above_tube_1": "Ober Heizstab 1", + "above_tube_2": "Ober Heizstab 2", + "above_tube_3": "Ober Heizstab 3", + "underside_tube_1": "Unter Heizstab 1", + "underside_tube_2": "Unter Heizstab 2", + "double_tube_1": "Doppel Heizstab 1", + "double_tube_2": "Doppel Heizstab 2", + "double_tube_3": "Doppel Heizstab 3", + "double_tube_4": "Doppel Heizstab 4", + "double_tube_5": "Doppel Heizstab 5", + "double_tube_6": "Doppel Heizstab 6", + "hot_wind_tube_fan_1": "Heißluft Heizstab Lüfter 1", + "hot_wind_tube_fan_2": "Heißluft Heizstab Lüfter 2", + "hot_wind_tube_fan_3": "Heißluft Heizstab Lüfter 3", + "hot_wind_tube_fan_4": "Heißluft Heizstab Lüfter 4", + "hot_wind_tube_fan_5": "Heißluft Heizstab Lüfter 5", + "double_tube_hot_wind_tube_fan_1": "Doppel Heizstab Heißluft Lüfter 1", + "double_tube_hot_wind_tube_fan_2": "Doppel Heizstab Heißluft Lüfter 2", + "double_tube_hot_wind_tube_fan_3": "Doppel Heizstab Heißluft Lüfter 3", + "double_tube_hot_wind_tube_fan_4": "Doppel Heizstab Heißluft Lüfter 4", + "double_tube_hot_wind_tube_fan_5": "Doppel Heizstab Heißluft Lüfter 5", + "unknown": "Unbekannt" + } + }, "working_time": { "name": "Working Time" }, @@ -836,6 +1248,9 @@ "disinfect": { "name": "Desinfizieren" }, + "maintenance_reminder": { + "name": "Wartungserinnerung" + }, "vacation_mode": { "name": "Urlaubsmodus" }, @@ -863,9 +1278,18 @@ "frost_protect": { "name": "Frostschutz" }, + "furnace_light": { + "name": "Ofenlicht" + }, "heating_power": { "name": "Heizleistung" }, + "hot_wind": { + "name": "Heißluft" + }, + "ramadan": { + "name": "Ramadan-Modus" + }, "indirect_wind": { "name": "Indirekter Wind" }, @@ -905,6 +1329,9 @@ "regeneration": { "name": "Regeneration" }, + "turntable": { + "name": "Drehteller" + }, "water_pump": { "name": "Wasserpumpe" }, @@ -965,6 +1392,9 @@ "self_clean": { "name": "Selbstreinigung" }, + "ieco": { + "name": "iECO" + }, "sound": { "name": "Ton" }, @@ -997,6 +1427,24 @@ }, "zone2_power": { "name": "Zone2 Power" + }, + "boiling": { + "name": "Wasser kochen" + }, + "tea_bar_boil": { + "name": "Wasserkocher-Schalter" + }, + "tea_bar_child_lock": { + "name": "Kindersicherung" + }, + "keep_warm": { + "name": "Warmhalten" + }, + "tea_bar_cooling": { + "name": "Kühlung" + }, + "screen_off": { + "name": "Bildschirm aus" } }, "water_heater": { diff --git a/custom_components/midea_ac_lan/translations/en.json b/custom_components/midea_ac_lan/translations/en.json index 5dac0e67..84faa50c 100644 --- a/custom_components/midea_ac_lan/translations/en.json +++ b/custom_components/midea_ac_lan/translations/en.json @@ -84,6 +84,12 @@ "burning_state": { "name": "Burning State" }, + "clean_scale": { + "name": "Descaling" + }, + "clean_sink_ponding": { + "name": "Sink Ponding" + }, "cleaning_reminder": { "name": "Cleaning Reminder" }, @@ -93,6 +99,12 @@ "cooking": { "name": "Cooking" }, + "dissipate_heat": { + "name": "Heat Dissipation" + }, + "door": { + "name": "Door" + }, "error_code": { "name": "Error Code" }, @@ -111,6 +123,9 @@ "flex_zone_door_overtime": { "name": "Flex Zone Door" }, + "flip_side": { + "name": "Flip Side" + }, "freezer_door": { "name": "Freezer Door" }, @@ -123,9 +138,33 @@ "heating": { "name": "Heating" }, + "dispensing": { + "name": "Dispensing Water" + }, + "lack_water": { + "name": "Lack Water" + }, + "standby": { + "name": "Standby" + }, + "hot_water_dispensing": { + "name": "Hot Water Dispensing" + }, + "fault": { + "name": "Fault" + }, "heating_working": { "name": "Heating Working Status" }, + "high_temperature": { + "name": "High Temperature" + }, + "high_temperature_lock": { + "name": "High Temperature Lock" + }, + "high_temperature_work": { + "name": "High Temperature Work" + }, "keep_warm": { "name": "Keep Warm" }, @@ -144,6 +183,18 @@ "middle_compartment_preheating": { "name": "Middle Compartment Preheating" }, + "pre_heat": { + "name": "Pre Heat" + }, + "probe": { + "name": "Probe" + }, + "probe_mode": { + "name": "Probe Mode" + }, + "reaction": { + "name": "Reaction" + }, "top_elec_heat": { "name": "Top Electric Heat" }, @@ -192,6 +243,28 @@ "maintenance_reminder": { "name": "Maintenance Reminder" }, + "dr_enable": { "name": "Demand Response" }, + "electric_rod_exception": { "name": "Electric Heater Fault" }, + "ac_heater_priority": { "name": "Heat Pump Priority" }, + "high_temp_reminder": { "name": "High Temperature Reminder" }, + "new_version_water_heater": { "name": "Extended Water Heater Protocol" }, + "heat_recovery_status": { "name": "Heat Recovery" }, + "holiday_mode": { "name": "Holiday Mode" }, + "hybrid_motion_mode": { "name": "Hybrid Motion Mode" }, + "support_boost_mode": { "name": "Boost Mode Support" }, + "support_silent_mode": { "name": "Silent Mode Support" }, + "support_remaining_hot_water": { "name": "Remaining Hot Water Support" }, + "support_electric_mode": { "name": "Electric Mode Support" }, + "support_auto_disinfect": { "name": "Automatic Disinfection Support" }, + "support_force_e_heating": { "name": "Forced Electric Heating Support" }, + "support_tou": { "name": "Time-of-use Support" }, + "support_ac_heater_priority": { "name": "Heat Pump Priority Support" }, + "support_heat_recovery": { "name": "Heat Recovery Support" }, + "support_heat_pump_mode": { "name": "Heat Pump Mode Support" }, + "support_smart_mode": { "name": "Smart Mode Support" }, + "support_negative_temperature": { + "name": "Negative Temperature Support" + }, "maintain_warn": { "name": "Maintenance Warning" }, @@ -314,6 +387,9 @@ "vacation_days": { "name": "Vacation Days" }, + "max_temperature": { "name": "Maximum Target Temperature" }, + "disinfection_temperature": { "name": "Disinfection Temperature" }, + "schedule_mode": { "name": "Schedule Mode" }, "leak_water_protection_value": { "name": "Leak Water Protection Value" }, @@ -322,6 +398,12 @@ }, "water_hardness": { "name": "Water Hardness" + }, + "boil_temperature": { + "name": "Boil Target Temperature" + }, + "keep_warm_time": { + "name": "Keep Warm Time" } }, "select": { @@ -412,6 +494,25 @@ "bathing_leaving_temperature": { "name": "Bathing Leaving Water Temperature" }, + "bf_status": { + "name": "Status", + "state": { + "save_power": "Save Power", + "standby": "Standby", + "work": "Working", + "work_finish": "Finished", + "order": "Delay", + "pause": "Paused", + "pause_c": "Paused C", + "three": "Three", + "wait_to_start": "Wait to Start", + "self_inspection": "Self Inspection", + "query_version": "Query Version", + "demo": "Demo", + "after_checking": "After Checking", + "unknown": "Unknown" + } + }, "bottom_compartment_remaining": { "name": "Bottom Compartment Remaining" }, @@ -427,12 +528,24 @@ "bright": { "name": "Bright Level" }, + "cloudmenuid": { + "name": "Cloud Menu ID" + }, "compressor_temperature": { "name": "Compressor Temperature" }, "condenser_temperature": { "name": "Condenser Temperature" }, + "cur_probe_temperature": { + "name": "Current Probe Temperature" + }, + "cur_temperature_above": { + "name": "Current Temperature Above" + }, + "cur_temperature_underside": { + "name": "Current Temperature Underside" + }, "current_energy_consumption": { "name": "Current Energy Consumption" }, @@ -448,9 +561,62 @@ "dehydration_time_value": { "name": "Dehydration time value" }, + "execute_status": { + "name": "Execute Status", + "state": { + "ok": "OK", + "status_nonsupport": "Status Not Supported", + "function_nonsupport": "Function Not Supported", + "param_range_error": "Parameter Range Error" + } + }, + "fire_power": { + "name": "Fire Power", + "state": { + "fire_power_0": "Level 0", + "fire_power_1": "Level 1", + "fire_power_2": "Level 2", + "fire_power_3": "Level 3", + "fire_power_4": "Level 4", + "fire_power_5": "Level 5", + "fire_power_6": "Level 6", + "fire_power_7": "Level 7", + "fire_power_8": "Level 8", + "fire_power_9": "Level 9", + "fire_power_10": "Level 10", + "unknown": "Unknown" + } + }, + "minute_set": { + "name": "Minute Set" + }, + "people_number": { + "name": "People Number" + }, + "probe_temperature": { + "name": "Probe Temperature" + }, + "second_set": { + "name": "Second Set" + }, + "steam_quantity": { + "name": "Steam Quantity" + }, + "stepnum": { + "name": "Current Step" + }, "temperature": { "name": "Temperature" }, + "temperature_above": { + "name": "Temperature Above" + }, + "temperature_underside": { + "name": "Temperature Underside" + }, + "totalstep": { + "name": "Total Steps" + }, "wash_time_value": { "name": "Wash time value" }, @@ -570,6 +736,9 @@ "keep_warm_remaining": { "name": "Keep Warm Remaining" }, + "fault_code": { + "name": "Fault Code" + }, "keep_warm_time": { "name": "Keep Warm Time" }, @@ -594,6 +763,64 @@ "outdoor_temperature": { "name": "Outdoor Temperature" }, + "comp_run_freq": { + "name": "Compressor Frequency" + }, + "outdoor_fan_speed": { + "name": "Outdoor Fan Speed" + }, + "unit_mode_run": { + "name": "Unit Run Mode", + "state": { + "off": "Off", + "auto": "Auto", + "cool": "Cool", + "heat": "Heat", + "dhw": "DHW" + } + }, + "odu_target_fre": { + "name": "Target Compressor Frequency" + }, + "odu_voltage": { + "name": "Outdoor Unit Voltage" + }, + "odu_comp_current": { + "name": "Compressor Current" + }, + "exv_current": { + "name": "Electronic Expansion Valve Opening" + }, + "fg_capacity_need": { + "name": "Capacity Demand" + }, + "pressure_high": { + "name": "Refrigerant Pressure (High Side)" + }, + "pressure_low": { + "name": "Refrigerant Pressure (Low Side)" + }, + "temp_t1": { + "name": "Temperature Sensor T1" + }, + "temp_t2": { + "name": "Plate Heat Exchanger Temperature (T2)" + }, + "temp_t2b": { + "name": "Plate Heat Exchanger Outlet Temperature (T2B)" + }, + "temp_t3": { + "name": "Outdoor Coil Temperature (T3)" + }, + "temp_tp": { + "name": "Discharge Pipe Temperature (TP)" + }, + "temp_th": { + "name": "Suction Temperature (TH)" + }, + "temp_tf": { + "name": "Power Module Temperature (TF)" + }, "program": { "name": "Program" }, @@ -711,6 +938,9 @@ "water_level": { "name": "Water Level" }, + "weight": { + "name": "Weight" + }, "wind": { "name": "Wind" }, @@ -741,6 +971,24 @@ "max_temperature": { "name": "Maximum Target Temperature" }, + "max_temperature_upper_limit": { + "name": "Maximum Temperature Upper Limit" + }, + "max_temperature_lower_limit": { + "name": "Maximum Temperature Lower Limit" + }, + "disinfection_temperature_upper_limit": { + "name": "Disinfection Temperature Upper Limit" + }, + "disinfection_temperature_lower_limit": { + "name": "Disinfection Temperature Lower Limit" + }, + "dr_option": { "name": "Demand Response Option" }, + "remaining_hot_water_max": { "name": "Maximum Remaining Hot Water" }, + "force_e_heating_status": { "name": "Forced Electric Heating Status" }, + "holiday_max": { "name": "Maximum Holiday Duration" }, + "holiday_min": { "name": "Minimum Holiday Duration" }, + "timer_step_gap": { "name": "Timer Step" }, "vacation_start_year": { "name": "Vacation Start Year" }, @@ -759,6 +1007,118 @@ "auto_sterilize_minute": { "name": "Auto Sterilize Minute" }, + "work_mode": { + "name": "Work Mode", + "state": { + "microwave": "Microwave", + "microwave_1": "Microwave 1", + "microwave_2": "Microwave 2", + "microwave_3": "Microwave 3", + "microwave_4": "Microwave 4", + "microwave_5": "Microwave 5", + "microwave_steam_above_tube": "Microwave Steam Above Tube", + "microwave_double_tube": "Microwave Double Tube", + "microwave_hot_wind_tube_fan": "Microwave Hot Wind Tube Fan", + "microwave_underside_tube_hot_wind_tube_fan": "Microwave Underside Tube Hot Wind Fan", + "microwave_double_tube_hot_wind_tube_fan": "Microwave Double Tube Hot Wind Fan", + "microwave_steam": "Microwave Steam", + "microwave_steam_1": "Microwave Steam 1", + "unfreeze": "Unfreeze", + "unfreeze_1": "Unfreeze 1", + "unfreeze_2": "Unfreeze 2", + "unfreeze_3": "Unfreeze 3", + "unfreeze_t": "Unfreeze T", + "microwave_above_tube": "Microwave Above Tube", + "microwave_above_tube_1": "Microwave Above Tube 1", + "microwave_above_tube_2": "Microwave Above Tube 2", + "microwave_above_tube_fan": "Microwave Above Tube Fan", + "fast_unfreeze": "Fast Unfreeze", + "fresh_unfreeze": "Fresh Unfreeze", + "microwave_zymosis": "Microwave Fermentation", + "pure_steam": "Pure Steam", + "pure_steam_1": "Pure Steam 1", + "pure_steam_2": "Pure Steam 2", + "pure_steam_3": "Pure Steam 3", + "pure_steam_4": "Pure Steam 4", + "pure_steam_5": "Pure Steam 5", + "pure_steam_6": "Pure Steam 6", + "pure_steam_7": "Pure Steam 7", + "pure_steam_8": "Pure Steam 8", + "pure_steam_9": "Pure Steam 9", + "steam_above_tube": "Steam Above Tube", + "steam_underside_tube": "Steam Underside Tube", + "steam_double_tube": "Steam Double Tube", + "steam_hot_wind_tube_fan": "Steam Hot Wind Tube Fan", + "steam_hot_wind_tube_fan_1": "Steam Hot Wind Tube Fan 1", + "steam_hot_wind_tube_fan_2": "Steam Hot Wind Tube Fan 2", + "steam_hot_wind_tube": "Steam Hot Wind Tube", + "steam_double_tube_fan": "Steam Double Tube Fan", + "steam_above_inside_outside_tube_fan": "Steam Above Inside Outside Tube Fan", + "steam_above_inside_tube_fan": "Steam Above Inside Tube Fan", + "above_tube": "Above Tube", + "underside_tube": "Underside Tube", + "double_tube": "Double Tube", + "hot_wind_tube_fan": "Hot Wind Tube Fan", + "pure_preheat": "Pure Preheat", + "above_tube_hot_wind_tube_fan": "Above Tube Hot Wind Fan", + "underside_tube_hot_wind_tube_fan": "Underside Tube Hot Wind Fan", + "zymosis": "Fermentation", + "double_tube_hot_wind_tube_fan": "Double Tube Hot Wind Fan", + "above_tube_revolve": "Above Tube Revolve", + "underside_tube_revolve": "Underside Tube Revolve", + "double_tube_revolve": "Double Tube Revolve", + "hot_wind_tube_fan_revolve": "Hot Wind Tube Fan Revolve", + "warm": "Keep Warm", + "double_tube_fan": "Double Tube Fan", + "double_tube_fan_1": "Double Tube Fan 1", + "double_tube_fan_2": "Double Tube Fan 2", + "double_tube_fan_3": "Double Tube Fan 3", + "above_inside_tube_revolve": "Above Inside Tube Revolve", + "above_inside_tube_fan": "Above Inside Tube Fan", + "above_inside_outside_tube_revolve": "Above Inside Outside Tube Revolve", + "above_inside_outside_tube_fan": "Above Inside Outside Tube Fan", + "above_inside_underside_tube": "Above Inside Underside Tube", + "above_inside_underside_tube_1": "Above Inside Underside Tube 1", + "above_inside_underside_tube_fan": "Above Inside Underside Tube Fan", + "above_inside_underside_tube_fan_1": "Above Inside Underside Tube Fan 1", + "above_inside_tube": "Above Inside Tube", + "above_inside_outside_tube": "Above Inside Outside Tube", + "underside_tube_fan": "Underside Tube Fan", + "above_tube_fan": "Above Tube Fan", + "above_tube_fan_1": "Above Tube Fan 1", + "above_tube_fan_2": "Above Tube Fan 2", + "scale_clean": "Descaling", + "clean": "Clean", + "remove_odor": "Remove Odor", + "remove_odor_2": "Remove Odor 2", + "high_temperature_clean": "High Temperature Clean", + "dining_utensils_clean": "Dining Utensils Clean", + "auto_menu": "Auto Menu", + "eco": "Eco", + "above_tube_1": "Above Tube 1", + "above_tube_2": "Above Tube 2", + "above_tube_3": "Above Tube 3", + "underside_tube_1": "Underside Tube 1", + "underside_tube_2": "Underside Tube 2", + "double_tube_1": "Double Tube 1", + "double_tube_2": "Double Tube 2", + "double_tube_3": "Double Tube 3", + "double_tube_4": "Double Tube 4", + "double_tube_5": "Double Tube 5", + "double_tube_6": "Double Tube 6", + "hot_wind_tube_fan_1": "Hot Wind Tube Fan 1", + "hot_wind_tube_fan_2": "Hot Wind Tube Fan 2", + "hot_wind_tube_fan_3": "Hot Wind Tube Fan 3", + "hot_wind_tube_fan_4": "Hot Wind Tube Fan 4", + "hot_wind_tube_fan_5": "Hot Wind Tube Fan 5", + "double_tube_hot_wind_tube_fan_1": "Double Tube Hot Wind Fan 1", + "double_tube_hot_wind_tube_fan_2": "Double Tube Hot Wind Fan 2", + "double_tube_hot_wind_tube_fan_3": "Double Tube Hot Wind Fan 3", + "double_tube_hot_wind_tube_fan_4": "Double Tube Hot Wind Fan 4", + "double_tube_hot_wind_tube_fan_5": "Double Tube Hot Wind Fan 5", + "unknown": "Unknown" + } + }, "working_time": { "name": "Working Time" }, @@ -836,6 +1196,19 @@ "disinfect": { "name": "Disinfect" }, + "furnace_light": { + "name": "Furnace Light" + }, + "hot_wind": { + "name": "Hot Wind" + }, + "ramadan": { + "name": "Ramadan" + }, + "turntable": { + "name": "Turntable" + }, + "maintenance_reminder": { "name": "Maintenance Reminder" }, "vacation_mode": { "name": "Vacation Mode" }, @@ -965,6 +1338,9 @@ "self_clean": { "name": "Self Clean" }, + "ieco": { + "name": "iECO" + }, "sound": { "name": "Sound" }, @@ -997,6 +1373,24 @@ }, "zone2_power": { "name": "Zone2 Power" + }, + "boiling": { + "name": "Boil Water" + }, + "tea_bar_boil": { + "name": "Boil Water Switch" + }, + "tea_bar_child_lock": { + "name": "Child Lock" + }, + "keep_warm": { + "name": "Keep Warm" + }, + "tea_bar_cooling": { + "name": "Tea Bar Cooling" + }, + "screen_off": { + "name": "Screen Off" } }, "water_heater": { diff --git a/custom_components/midea_ac_lan/translations/es.json b/custom_components/midea_ac_lan/translations/es.json index f526d260..5230237f 100644 --- a/custom_components/midea_ac_lan/translations/es.json +++ b/custom_components/midea_ac_lan/translations/es.json @@ -84,6 +84,12 @@ "burning_state": { "name": "Estado de combustión" }, + "clean_scale": { + "name": "Desincrustar" + }, + "clean_sink_ponding": { + "name": "Acumulación de agua en el fregadero" + }, "cleaning_reminder": { "name": "Recordatorio de limpieza" }, @@ -93,6 +99,12 @@ "cooking": { "name": "Cocinando" }, + "dissipate_heat": { + "name": "Disipar calor" + }, + "door": { + "name": "Puerta" + }, "error_code": { "name": "Código de error" }, @@ -111,6 +123,9 @@ "flex_zone_door_overtime": { "name": "Puerta de zona flexible abierta demasiado tiempo" }, + "flip_side": { + "name": "Voltear" + }, "freezer_door": { "name": "Puerta del congelador" }, @@ -123,9 +138,25 @@ "heating": { "name": "Calentando" }, + "dispensing": { + "name": "Dispensando agua" + }, + "lack_water": { "name": "Falta de agua" }, + "standby": { "name": "En espera" }, + "hot_water_dispensing": { "name": "Dispensando agua caliente" }, + "fault": { "name": "Avería" }, "heating_working": { "name": "Estado de funcionamiento de calefacción" }, + "high_temperature": { + "name": "Alta temperatura" + }, + "high_temperature_lock": { + "name": "Bloqueo de alta temperatura" + }, + "high_temperature_work": { + "name": "Trabajo de alta temperatura" + }, "keep_warm": { "name": "Mantener caliente" }, @@ -162,9 +193,24 @@ "oilcup_full": { "name": "Depósito de aceite lleno" }, + "ota": { + "name": "OTA" + }, + "pre_heat": { + "name": "Precalentar" + }, + "probe": { + "name": "Sonda" + }, + "probe_mode": { + "name": "Modo sonda" + }, "protection": { "name": "Protección" }, + "reaction": { + "name": "Reacción" + }, "refrigerator_door": { "name": "Puerta del frigorífico" }, @@ -192,6 +238,66 @@ "maintenance_reminder": { "name": "Recordatorio de mantenimiento" }, + "dr_enable": { + "name": "Respuesta a la demanda" + }, + "electric_rod_exception": { + "name": "Fallo del calentador eléctrico" + }, + "ac_heater_priority": { + "name": "Prioridad de la bomba de calor" + }, + "high_temp_reminder": { + "name": "Recordatorio de alta temperatura" + }, + "new_version_water_heater": { + "name": "Protocolo ampliado del calentador de agua" + }, + "heat_recovery_status": { + "name": "Recuperación de calor" + }, + "holiday_mode": { + "name": "Modo vacaciones" + }, + "hybrid_motion_mode": { + "name": "Modo de movimiento híbrido" + }, + "support_boost_mode": { + "name": "Compatibilidad con modo Boost" + }, + "support_silent_mode": { + "name": "Compatibilidad con modo silencioso" + }, + "support_remaining_hot_water": { + "name": "Compatibilidad con agua caliente restante" + }, + "support_electric_mode": { + "name": "Compatibilidad con modo eléctrico" + }, + "support_auto_disinfect": { + "name": "Compatibilidad con desinfección automática" + }, + "support_force_e_heating": { + "name": "Compatibilidad con calentamiento eléctrico forzado" + }, + "support_tou": { + "name": "Compatibilidad con tarifa horaria" + }, + "support_ac_heater_priority": { + "name": "Compatibilidad con prioridad de la bomba de calor" + }, + "support_heat_recovery": { + "name": "Compatibilidad con recuperación de calor" + }, + "support_heat_pump_mode": { + "name": "Compatibilidad con modo bomba de calor" + }, + "support_smart_mode": { + "name": "Compatibilidad con modo inteligente" + }, + "support_negative_temperature": { + "name": "Compatibilidad con temperaturas negativas" + }, "maintain_warn": { "name": "Advertencia de mantenimiento" }, @@ -314,6 +420,15 @@ "vacation_days": { "name": "Días de vacaciones" }, + "max_temperature": { + "name": "Temperatura objetivo máxima" + }, + "disinfection_temperature": { + "name": "Temperatura de desinfección" + }, + "schedule_mode": { + "name": "Modo de programación" + }, "leak_water_protection_value": { "name": "Valor de protección contra fugas" }, @@ -322,6 +437,12 @@ }, "water_hardness": { "name": "Dureza del agua" + }, + "boil_temperature": { + "name": "Temperatura objetivo de ebullición" + }, + "keep_warm_time": { + "name": "Tiempo de conservación" } }, "select": { @@ -412,6 +533,25 @@ "bathing_leaving_temperature": { "name": "Temperatura de salida del agua de baño" }, + "bf_status": { + "name": "Estado", + "state": { + "save_power": "Ahorro de energía", + "standby": "En espera", + "work": "Trabajando", + "work_finish": "Terminado", + "order": "Retraso", + "pause": "Pausado", + "pause_c": "Pausado C", + "three": "Tres", + "wait_to_start": "Esperando inicio", + "self_inspection": "Autoinspección", + "query_version": "Consultar versión", + "demo": "Demo", + "after_checking": "Después de revisión", + "unknown": "Desconocido" + } + }, "bottom_compartment_remaining": { "name": "Tiempo restante compartimento inferior" }, @@ -427,12 +567,27 @@ "bright": { "name": "Nivel de brillo" }, + "cbs_version": { + "name": "Versión CBS" + }, + "cloudmenuid": { + "name": "ID de menú en la nube" + }, "compressor_temperature": { "name": "Temperatura del compresor" }, "condenser_temperature": { "name": "Temperatura del condensador" }, + "cur_probe_temperature": { + "name": "Temperatura actual de la sonda" + }, + "cur_temperature_above": { + "name": "Temperatura superior actual" + }, + "cur_temperature_underside": { + "name": "Temperatura inferior actual" + }, "current_energy_consumption": { "name": "Consumo de energía actual" }, @@ -448,9 +603,62 @@ "dehydration_time_value": { "name": "Valor del tiempo de centrifugado" }, + "execute_status": { + "name": "Estado de ejecución", + "state": { + "ok": "OK", + "status_nonsupport": "Estado no soportado", + "function_nonsupport": "Función no soportada", + "param_range_error": "Error de rango de parámetro" + } + }, + "fire_power": { + "name": "Potencia de fuego", + "state": { + "fire_power_0": "Nivel 0", + "fire_power_1": "Nivel 1", + "fire_power_2": "Nivel 2", + "fire_power_3": "Nivel 3", + "fire_power_4": "Nivel 4", + "fire_power_5": "Nivel 5", + "fire_power_6": "Nivel 6", + "fire_power_7": "Nivel 7", + "fire_power_8": "Nivel 8", + "fire_power_9": "Nivel 9", + "fire_power_10": "Nivel 10", + "unknown": "Desconocido" + } + }, + "minute_set": { + "name": "Ajustar minuto" + }, + "people_number": { + "name": "Número de personas" + }, + "probe_temperature": { + "name": "Temperatura de la sonda" + }, + "second_set": { + "name": "Ajustar segundo" + }, + "steam_quantity": { + "name": "Cantidad de vapor" + }, + "stepnum": { + "name": "Paso actual" + }, "temperature": { "name": "Temperatura" }, + "temperature_above": { + "name": "Temperatura superior" + }, + "temperature_underside": { + "name": "Temperatura inferior" + }, + "totalstep": { + "name": "Pasos totales" + }, "wash_time_value": { "name": "Valor del tiempo de lavado" }, @@ -570,6 +778,7 @@ "keep_warm_remaining": { "name": "Tiempo restante de mantener caliente" }, + "fault_code": { "name": "Código de avería" }, "keep_warm_time": { "name": "Tiempo de mantener caliente" }, @@ -594,6 +803,64 @@ "outdoor_temperature": { "name": "Temperatura exterior" }, + "comp_run_freq": { + "name": "Frecuencia del compresor" + }, + "outdoor_fan_speed": { + "name": "Velocidad del ventilador exterior" + }, + "unit_mode_run": { + "name": "Modo de funcionamiento de la unidad", + "state": { + "off": "Apagado", + "auto": "Auto", + "cool": "Refrigeración", + "heat": "Calefacción", + "dhw": "ACS" + } + }, + "odu_target_fre": { + "name": "Frecuencia objetivo del compresor" + }, + "odu_voltage": { + "name": "Voltaje de la unidad exterior" + }, + "odu_comp_current": { + "name": "Corriente del compresor" + }, + "exv_current": { + "name": "Apertura de la válvula de expansión electrónica" + }, + "fg_capacity_need": { + "name": "Demanda de capacidad" + }, + "pressure_high": { + "name": "Presión del refrigerante (lado alta)" + }, + "pressure_low": { + "name": "Presión del refrigerante (lado baja)" + }, + "temp_t1": { + "name": "Sensor de temperatura T1" + }, + "temp_t2": { + "name": "Temperatura del intercambiador de placas (T2)" + }, + "temp_t2b": { + "name": "Temperatura de salida del intercambiador de placas (T2B)" + }, + "temp_t3": { + "name": "Temperatura de la batería exterior (T3)" + }, + "temp_tp": { + "name": "Temperatura de la tubería de descarga (TP)" + }, + "temp_th": { + "name": "Temperatura de succión (TH)" + }, + "temp_tf": { + "name": "Temperatura del módulo de potencia (TF)" + }, "program": { "name": "Programa" }, @@ -741,6 +1008,36 @@ "max_temperature": { "name": "Temperatura objetivo máxima" }, + "max_temperature_upper_limit": { + "name": "Límite superior de la temperatura máxima" + }, + "max_temperature_lower_limit": { + "name": "Límite inferior de la temperatura máxima" + }, + "disinfection_temperature_upper_limit": { + "name": "Límite superior de la temperatura de desinfección" + }, + "disinfection_temperature_lower_limit": { + "name": "Límite inferior de la temperatura de desinfección" + }, + "dr_option": { + "name": "Opción de respuesta a la demanda" + }, + "remaining_hot_water_max": { + "name": "Agua caliente restante máxima" + }, + "force_e_heating_status": { + "name": "Estado del calentamiento eléctrico forzado" + }, + "holiday_max": { + "name": "Duración máxima de vacaciones" + }, + "holiday_min": { + "name": "Duración mínima de vacaciones" + }, + "timer_step_gap": { + "name": "Paso del temporizador" + }, "vacation_start_year": { "name": "Año de inicio de vacaciones" }, @@ -759,6 +1056,121 @@ "auto_sterilize_minute": { "name": "Minuto de esterilización automática" }, + "weight": { + "name": "Peso" + }, + "work_mode": { + "name": "Modo de trabajo", + "state": { + "microwave": "Microondas", + "microwave_1": "Microondas 1", + "microwave_2": "Microondas 2", + "microwave_3": "Microondas 3", + "microwave_4": "Microondas 4", + "microwave_5": "Microondas 5", + "microwave_steam_above_tube": "Microondas Vapor Superior Tubo", + "microwave_double_tube": "Microondas Doble Tubo", + "microwave_hot_wind_tube_fan": "Microondas Aire caliente Tubo Ventilador", + "microwave_underside_tube_hot_wind_tube_fan": "Microondas Inferior Tubo Aire caliente Ventilador", + "microwave_double_tube_hot_wind_tube_fan": "Microondas Doble Tubo Aire caliente Ventilador", + "microwave_steam": "Microondas Vapor", + "microwave_steam_1": "Microondas Vapor 1", + "unfreeze": "Descongelar", + "unfreeze_1": "Descongelar 1", + "unfreeze_2": "Descongelar 2", + "unfreeze_3": "Descongelar 3", + "unfreeze_t": "Descongelar T", + "microwave_above_tube": "Microondas Superior Tubo", + "microwave_above_tube_1": "Microondas Superior Tubo 1", + "microwave_above_tube_2": "Microondas Superior Tubo 2", + "microwave_above_tube_fan": "Microondas Superior Tubo Ventilador", + "fast_unfreeze": "Rápido Descongelar", + "fresh_unfreeze": "Fresco Descongelar", + "microwave_zymosis": "Microondas Fermentación", + "pure_steam": "Puro Vapor", + "pure_steam_1": "Puro Vapor 1", + "pure_steam_2": "Puro Vapor 2", + "pure_steam_3": "Puro Vapor 3", + "pure_steam_4": "Puro Vapor 4", + "pure_steam_5": "Puro Vapor 5", + "pure_steam_6": "Puro Vapor 6", + "pure_steam_7": "Puro Vapor 7", + "pure_steam_8": "Puro Vapor 8", + "pure_steam_9": "Puro Vapor 9", + "steam_above_tube": "Vapor Superior Tubo", + "steam_underside_tube": "Vapor Inferior Tubo", + "steam_double_tube": "Vapor Doble Tubo", + "steam_hot_wind_tube_fan": "Vapor Aire caliente Tubo Ventilador", + "steam_hot_wind_tube_fan_1": "Vapor Aire caliente Tubo Ventilador 1", + "steam_hot_wind_tube_fan_2": "Vapor Aire caliente Tubo Ventilador 2", + "steam_hot_wind_tube": "Vapor Aire caliente Tubo", + "steam_double_tube_fan": "Vapor Doble Tubo Ventilador", + "steam_above_inside_outside_tube_fan": "Vapor Superior Interior Exterior Tubo Ventilador", + "steam_above_inside_tube_fan": "Vapor Superior Interior Tubo Ventilador", + "above_tube": "Superior Tubo", + "underside_tube": "Inferior Tubo", + "double_tube": "Doble Tubo", + "hot_wind_tube_fan": "Aire caliente Tubo Ventilador", + "pure_preheat": "Puro Precalentar", + "above_tube_hot_wind_tube_fan": "Superior Tubo Aire caliente Ventilador", + "underside_tube_hot_wind_tube_fan": "Inferior Tubo Aire caliente Ventilador", + "zymosis": "Fermentación", + "double_tube_hot_wind_tube_fan": "Doble Tubo Aire caliente Ventilador", + "above_tube_revolve": "Superior Tubo Giratorio", + "underside_tube_revolve": "Inferior Tubo Giratorio", + "double_tube_revolve": "Doble Tubo Giratorio", + "hot_wind_tube_fan_revolve": "Aire caliente Tubo Ventilador Giratorio", + "warm": "Mantener caliente", + "double_tube_fan": "Doble Tubo Ventilador", + "double_tube_fan_1": "Doble Tubo Ventilador 1", + "double_tube_fan_2": "Doble Tubo Ventilador 2", + "double_tube_fan_3": "Doble Tubo Ventilador 3", + "above_inside_tube_revolve": "Superior Interior Tubo Giratorio", + "above_inside_tube_fan": "Superior Interior Tubo Ventilador", + "above_inside_outside_tube_revolve": "Superior Interior Exterior Tubo Giratorio", + "above_inside_outside_tube_fan": "Superior Interior Exterior Tubo Ventilador", + "above_inside_underside_tube": "Superior Interior Inferior Tubo", + "above_inside_underside_tube_1": "Superior Interior Inferior Tubo 1", + "above_inside_underside_tube_fan": "Superior Interior Inferior Tubo Ventilador", + "above_inside_underside_tube_fan_1": "Superior Interior Inferior Tubo Ventilador 1", + "above_inside_tube": "Superior Interior Tubo", + "above_inside_outside_tube": "Superior Interior Exterior Tubo", + "underside_tube_fan": "Inferior Tubo Ventilador", + "above_tube_fan": "Superior Tubo Ventilador", + "above_tube_fan_1": "Superior Tubo Ventilador 1", + "above_tube_fan_2": "Superior Tubo Ventilador 2", + "scale_clean": "Desincrustación", + "clean": "Limpiar", + "remove_odor": "Eliminar olor", + "remove_odor_2": "Eliminar olor 2", + "high_temperature_clean": "Alta temperatura Limpiar", + "dining_utensils_clean": "Cubiertos Limpiar", + "auto_menu": "Menú automático", + "eco": "Eco", + "above_tube_1": "Superior Tubo 1", + "above_tube_2": "Superior Tubo 2", + "above_tube_3": "Superior Tubo 3", + "underside_tube_1": "Inferior Tubo 1", + "underside_tube_2": "Inferior Tubo 2", + "double_tube_1": "Doble Tubo 1", + "double_tube_2": "Doble Tubo 2", + "double_tube_3": "Doble Tubo 3", + "double_tube_4": "Doble Tubo 4", + "double_tube_5": "Doble Tubo 5", + "double_tube_6": "Doble Tubo 6", + "hot_wind_tube_fan_1": "Aire caliente Tubo Ventilador 1", + "hot_wind_tube_fan_2": "Aire caliente Tubo Ventilador 2", + "hot_wind_tube_fan_3": "Aire caliente Tubo Ventilador 3", + "hot_wind_tube_fan_4": "Aire caliente Tubo Ventilador 4", + "hot_wind_tube_fan_5": "Aire caliente Tubo Ventilador 5", + "double_tube_hot_wind_tube_fan_1": "Doble Tubo Aire caliente Ventilador 1", + "double_tube_hot_wind_tube_fan_2": "Doble Tubo Aire caliente Ventilador 2", + "double_tube_hot_wind_tube_fan_3": "Doble Tubo Aire caliente Ventilador 3", + "double_tube_hot_wind_tube_fan_4": "Doble Tubo Aire caliente Ventilador 4", + "double_tube_hot_wind_tube_fan_5": "Doble Tubo Aire caliente Ventilador 5", + "unknown": "Desconocido" + } + }, "working_time": { "name": "Tiempo de funcionamiento" }, @@ -836,6 +1248,9 @@ "disinfect": { "name": "Desinfectar" }, + "maintenance_reminder": { + "name": "Recordatorio de mantenimiento" + }, "vacation_mode": { "name": "Modo vacaciones" }, @@ -863,9 +1278,18 @@ "frost_protect": { "name": "Protección contra heladas" }, + "furnace_light": { + "name": "Luz del horno" + }, "heating_power": { "name": "Potencia de calefacción" }, + "hot_wind": { + "name": "Aire caliente" + }, + "ramadan": { + "name": "Modo Ramadán" + }, "indirect_wind": { "name": "Viento indirecto" }, @@ -905,6 +1329,9 @@ "regeneration": { "name": "Regeneración" }, + "turntable": { + "name": "Plato giratorio" + }, "water_pump": { "name": "Bomba de agua" }, @@ -965,6 +1392,9 @@ "self_clean": { "name": "Self Clean" }, + "ieco": { + "name": "iECO" + }, "sound": { "name": "Sound" }, @@ -997,6 +1427,24 @@ }, "zone2_power": { "name": "Potencia Zona 2" + }, + "boiling": { + "name": "Hervir agua" + }, + "tea_bar_boil": { + "name": "Interruptor para hervir agua" + }, + "tea_bar_child_lock": { + "name": "Bloqueo infantil" + }, + "keep_warm": { + "name": "Mantener caliente" + }, + "tea_bar_cooling": { + "name": "Refrigeración" + }, + "screen_off": { + "name": "Pantalla apagada" } }, "water_heater": { diff --git a/custom_components/midea_ac_lan/translations/fr.json b/custom_components/midea_ac_lan/translations/fr.json index 48eafd03..d0eed5f0 100644 --- a/custom_components/midea_ac_lan/translations/fr.json +++ b/custom_components/midea_ac_lan/translations/fr.json @@ -84,6 +84,12 @@ "burning_state": { "name": "Burning State" }, + "clean_scale": { + "name": "Détartrage" + }, + "clean_sink_ponding": { + "name": "Accumulation d'eau dans l'évier" + }, "cleaning_reminder": { "name": "Cleaning Reminder" }, @@ -93,6 +99,12 @@ "cooking": { "name": "Cooking" }, + "dissipate_heat": { + "name": "Dissipation de chaleur" + }, + "door": { + "name": "Porte" + }, "error_code": { "name": "Code d'erreur" }, @@ -111,6 +123,9 @@ "flex_zone_door_overtime": { "name": "Flex Zone Door" }, + "flip_side": { + "name": "Retourner" + }, "freezer_door": { "name": "Freezer Door" }, @@ -123,9 +138,25 @@ "heating": { "name": "Heating" }, + "dispensing": { + "name": "Distribution d’eau" + }, + "lack_water": { "name": "Manque d’eau" }, + "standby": { "name": "Veille" }, + "hot_water_dispensing": { "name": "Distribution d’eau chaude" }, + "fault": { "name": "Défaut" }, "heating_working": { "name": "Heating Working Status" }, + "high_temperature": { + "name": "Haute température" + }, + "high_temperature_lock": { + "name": "Verrouillage haute température" + }, + "high_temperature_work": { + "name": "Fonctionnement haute température" + }, "keep_warm": { "name": "Keep Warm" }, @@ -162,9 +193,24 @@ "oilcup_full": { "name": "Oil-cup Full" }, + "ota": { + "name": "OTA" + }, + "pre_heat": { + "name": "Préchauffage" + }, + "probe": { + "name": "Sonde" + }, + "probe_mode": { + "name": "Mode sonde" + }, "protection": { "name": "Protection" }, + "reaction": { + "name": "Réaction" + }, "refrigerator_door": { "name": "Refrigerator Door" }, @@ -192,6 +238,66 @@ "maintenance_reminder": { "name": "Rappel d'entretien" }, + "dr_enable": { + "name": "Réponse à la demande" + }, + "electric_rod_exception": { + "name": "Défaut du chauffage électrique" + }, + "ac_heater_priority": { + "name": "Priorité pompe à chaleur" + }, + "high_temp_reminder": { + "name": "Rappel de température élevée" + }, + "new_version_water_heater": { + "name": "Protocole étendu du chauffe-eau" + }, + "heat_recovery_status": { + "name": "Récupération de chaleur" + }, + "holiday_mode": { + "name": "Mode vacances" + }, + "hybrid_motion_mode": { + "name": "Mode de mouvement hybride" + }, + "support_boost_mode": { + "name": "Prise en charge du mode Boost" + }, + "support_silent_mode": { + "name": "Prise en charge du mode silencieux" + }, + "support_remaining_hot_water": { + "name": "Prise en charge de l'eau chaude restante" + }, + "support_electric_mode": { + "name": "Prise en charge du mode électrique" + }, + "support_auto_disinfect": { + "name": "Prise en charge de la désinfection automatique" + }, + "support_force_e_heating": { + "name": "Prise en charge du chauffage électrique forcé" + }, + "support_tou": { + "name": "Prise en charge de l'utilisation selon l'heure" + }, + "support_ac_heater_priority": { + "name": "Prise en charge de la priorité pompe à chaleur" + }, + "support_heat_recovery": { + "name": "Prise en charge de la récupération de chaleur" + }, + "support_heat_pump_mode": { + "name": "Prise en charge du mode pompe à chaleur" + }, + "support_smart_mode": { + "name": "Prise en charge du mode intelligent" + }, + "support_negative_temperature": { + "name": "Prise en charge des températures négatives" + }, "maintain_warn": { "name": "Avertissement d'entretien" }, @@ -314,6 +420,15 @@ "vacation_days": { "name": "Jours de vacances" }, + "max_temperature": { + "name": "Température cible maximale" + }, + "disinfection_temperature": { + "name": "Température de désinfection" + }, + "schedule_mode": { + "name": "Mode de programmation" + }, "leak_water_protection_value": { "name": "Valeur de protection contre les fuites" }, @@ -322,6 +437,12 @@ }, "water_hardness": { "name": "Dureté de l'eau" + }, + "boil_temperature": { + "name": "Température cible d’ébullition" + }, + "keep_warm_time": { + "name": "Durée de maintien au chaud" } }, "select": { @@ -412,6 +533,25 @@ "bathing_leaving_temperature": { "name": "Bathing Leaving Water Temperature" }, + "bf_status": { + "name": "État", + "state": { + "save_power": "Économie d'énergie", + "standby": "Veille", + "work": "En cours", + "work_finish": "Terminé", + "order": "Retard", + "pause": "En pause", + "pause_c": "En pause C", + "three": "Trois", + "wait_to_start": "En attente de démarrage", + "self_inspection": "Auto-inspection", + "query_version": "Consultation version", + "demo": "Démo", + "after_checking": "Après vérification", + "unknown": "Inconnu" + } + }, "bottom_compartment_remaining": { "name": "Bottom Compartment Remaining" }, @@ -427,12 +567,27 @@ "bright": { "name": "Bright Level" }, + "cbs_version": { + "name": "Version CBS" + }, + "cloudmenuid": { + "name": "ID du menu cloud" + }, "compressor_temperature": { "name": "Compressor Temperature" }, "condenser_temperature": { "name": "Condenser Temperature" }, + "cur_probe_temperature": { + "name": "Température actuelle de la sonde" + }, + "cur_temperature_above": { + "name": "Température supérieure actuelle" + }, + "cur_temperature_underside": { + "name": "Température inférieure actuelle" + }, "current_energy_consumption": { "name": "Current Energy Consumption" }, @@ -510,6 +665,15 @@ "estimated_water_consumption": { "name": "Consommation d'eau estimée" }, + "execute_status": { + "name": "Statut d'exécution", + "state": { + "ok": "OK", + "status_nonsupport": "Statut non pris en charge", + "function_nonsupport": "Fonction non prise en charge", + "param_range_error": "Erreur de plage de paramètre" + } + }, "fan_level": { "name": "Fan level" }, @@ -534,6 +698,23 @@ "filter3_life": { "name": "Filter3 Life Level" }, + "fire_power": { + "name": "Puissance de chauffe", + "state": { + "fire_power_0": "Niveau 0", + "fire_power_1": "Niveau 1", + "fire_power_2": "Niveau 2", + "fire_power_3": "Niveau 3", + "fire_power_4": "Niveau 4", + "fire_power_5": "Niveau 5", + "fire_power_6": "Niveau 6", + "fire_power_7": "Niveau 7", + "fire_power_8": "Niveau 8", + "fire_power_9": "Niveau 9", + "fire_power_10": "Niveau 10", + "unknown": "Inconnu" + } + }, "flex_zone_actual_temp": { "name": "Flex Zone Actual Temperature" }, @@ -570,6 +751,7 @@ "keep_warm_remaining": { "name": "Keep Warm Remaining" }, + "fault_code": { "name": "Code défaut" }, "keep_warm_time": { "name": "Keep Warm Time" }, @@ -585,6 +767,9 @@ "middle_compartment_temperature": { "name": "Middle Compartment Temperature" }, + "minute_set": { + "name": "Régler les minutes" + }, "mode": { "name": "Mode" }, @@ -594,6 +779,70 @@ "outdoor_temperature": { "name": "Outdoor Temperature" }, + "comp_run_freq": { + "name": "Fréquence du compresseur" + }, + "outdoor_fan_speed": { + "name": "Vitesse du ventilateur extérieur" + }, + "unit_mode_run": { + "name": "Mode de fonctionnement de l'unité", + "state": { + "off": "Arrêt", + "auto": "Auto", + "cool": "Refroidissement", + "heat": "Chauffage", + "dhw": "ECS" + } + }, + "odu_target_fre": { + "name": "Fréquence cible du compresseur" + }, + "odu_voltage": { + "name": "Tension de l'unité extérieure" + }, + "odu_comp_current": { + "name": "Courant du compresseur" + }, + "exv_current": { + "name": "Ouverture du détendeur électronique" + }, + "fg_capacity_need": { + "name": "Demande de capacité" + }, + "pressure_high": { + "name": "Pression du réfrigérant (côté haute pression)" + }, + "pressure_low": { + "name": "Pression du réfrigérant (côté basse pression)" + }, + "temp_t1": { + "name": "Capteur de température T1" + }, + "temp_t2": { + "name": "Température de l'échangeur à plaques (T2)" + }, + "temp_t2b": { + "name": "Température de sortie de l'échangeur à plaques (T2B)" + }, + "temp_t3": { + "name": "Température de la batterie extérieure (T3)" + }, + "temp_tp": { + "name": "Température du tuyau de refoulement (TP)" + }, + "temp_th": { + "name": "Température d'aspiration (TH)" + }, + "temp_tf": { + "name": "Température du module de puissance (TF)" + }, + "people_number": { + "name": "Nombre de personnes" + }, + "probe_temperature": { + "name": "Température de la sonde" + }, "program": { "name": "Program" }, @@ -636,6 +885,9 @@ "seat_temperature": { "name": "Seat Temperature" }, + "second_set": { + "name": "Régler les secondes" + }, "soak_time": { "name": "soak time" }, @@ -651,6 +903,12 @@ "status": { "name": "Status" }, + "steam_quantity": { + "name": "Quantité de vapeur" + }, + "stepnum": { + "name": "Étape actuelle" + }, "storage_remaining": { "name": "Storage Remaining" }, @@ -663,6 +921,12 @@ "target_temperature": { "name": "Target Temperature" }, + "temperature_above": { + "name": "Température supérieure" + }, + "temperature_underside": { + "name": "Température inférieure" + }, "time_remaining": { "name": "Time Remaining" }, @@ -684,6 +948,9 @@ "total_produced_energy": { "name": "Total produced energy" }, + "totalstep": { + "name": "Étapes totales" + }, "tvoc": { "name": "TVOC" }, @@ -741,6 +1008,36 @@ "max_temperature": { "name": "Température cible maximale" }, + "max_temperature_upper_limit": { + "name": "Limite supérieure de température maximale" + }, + "max_temperature_lower_limit": { + "name": "Limite inférieure de température maximale" + }, + "disinfection_temperature_upper_limit": { + "name": "Limite supérieure de température de désinfection" + }, + "disinfection_temperature_lower_limit": { + "name": "Limite inférieure de température de désinfection" + }, + "dr_option": { + "name": "Option de réponse à la demande" + }, + "remaining_hot_water_max": { + "name": "Quantité maximale d'eau chaude restante" + }, + "force_e_heating_status": { + "name": "État du chauffage électrique forcé" + }, + "holiday_max": { + "name": "Durée maximale des vacances" + }, + "holiday_min": { + "name": "Durée minimale des vacances" + }, + "timer_step_gap": { + "name": "Pas de minuterie" + }, "vacation_start_year": { "name": "Année de début des vacances" }, @@ -759,6 +1056,121 @@ "auto_sterilize_minute": { "name": "Minute de stérilisation automatique" }, + "weight": { + "name": "Poids" + }, + "work_mode": { + "name": "Mode de fonctionnement", + "state": { + "microwave": "Micro-ondes", + "microwave_1": "Micro-ondes 1", + "microwave_2": "Micro-ondes 2", + "microwave_3": "Micro-ondes 3", + "microwave_4": "Micro-ondes 4", + "microwave_5": "Micro-ondes 5", + "microwave_steam_above_tube": "Micro-ondes Vapeur Supérieur Tube", + "microwave_double_tube": "Micro-ondes Double Tube", + "microwave_hot_wind_tube_fan": "Micro-ondes Air chaud Tube Ventilateur", + "microwave_underside_tube_hot_wind_tube_fan": "Micro-ondes Inférieur Tube Air chaud Ventilateur", + "microwave_double_tube_hot_wind_tube_fan": "Micro-ondes Double Tube Air chaud Ventilateur", + "microwave_steam": "Micro-ondes Vapeur", + "microwave_steam_1": "Micro-ondes Vapeur 1", + "unfreeze": "Décongélation", + "unfreeze_1": "Décongélation 1", + "unfreeze_2": "Décongélation 2", + "unfreeze_3": "Décongélation 3", + "unfreeze_t": "Décongélation T", + "microwave_above_tube": "Micro-ondes Supérieur Tube", + "microwave_above_tube_1": "Micro-ondes Supérieur Tube 1", + "microwave_above_tube_2": "Micro-ondes Supérieur Tube 2", + "microwave_above_tube_fan": "Micro-ondes Supérieur Tube Ventilateur", + "fast_unfreeze": "Rapide Décongélation", + "fresh_unfreeze": "Frais Décongélation", + "microwave_zymosis": "Micro-ondes Fermentation", + "pure_steam": "Pur Vapeur", + "pure_steam_1": "Pur Vapeur 1", + "pure_steam_2": "Pur Vapeur 2", + "pure_steam_3": "Pur Vapeur 3", + "pure_steam_4": "Pur Vapeur 4", + "pure_steam_5": "Pur Vapeur 5", + "pure_steam_6": "Pur Vapeur 6", + "pure_steam_7": "Pur Vapeur 7", + "pure_steam_8": "Pur Vapeur 8", + "pure_steam_9": "Pur Vapeur 9", + "steam_above_tube": "Vapeur Supérieur Tube", + "steam_underside_tube": "Vapeur Inférieur Tube", + "steam_double_tube": "Vapeur Double Tube", + "steam_hot_wind_tube_fan": "Vapeur Air chaud Tube Ventilateur", + "steam_hot_wind_tube_fan_1": "Vapeur Air chaud Tube Ventilateur 1", + "steam_hot_wind_tube_fan_2": "Vapeur Air chaud Tube Ventilateur 2", + "steam_hot_wind_tube": "Vapeur Air chaud Tube", + "steam_double_tube_fan": "Vapeur Double Tube Ventilateur", + "steam_above_inside_outside_tube_fan": "Vapeur Supérieur Intérieur Extérieur Tube Ventilateur", + "steam_above_inside_tube_fan": "Vapeur Supérieur Intérieur Tube Ventilateur", + "above_tube": "Supérieur Tube", + "underside_tube": "Inférieur Tube", + "double_tube": "Double Tube", + "hot_wind_tube_fan": "Air chaud Tube Ventilateur", + "pure_preheat": "Pur Préchauffage", + "above_tube_hot_wind_tube_fan": "Supérieur Tube Air chaud Ventilateur", + "underside_tube_hot_wind_tube_fan": "Inférieur Tube Air chaud Ventilateur", + "zymosis": "Fermentation", + "double_tube_hot_wind_tube_fan": "Double Tube Air chaud Ventilateur", + "above_tube_revolve": "Supérieur Tube Rotatif", + "underside_tube_revolve": "Inférieur Tube Rotatif", + "double_tube_revolve": "Double Tube Rotatif", + "hot_wind_tube_fan_revolve": "Air chaud Tube Ventilateur Rotatif", + "warm": "Maintien au chaud", + "double_tube_fan": "Double Tube Ventilateur", + "double_tube_fan_1": "Double Tube Ventilateur 1", + "double_tube_fan_2": "Double Tube Ventilateur 2", + "double_tube_fan_3": "Double Tube Ventilateur 3", + "above_inside_tube_revolve": "Supérieur Intérieur Tube Rotatif", + "above_inside_tube_fan": "Supérieur Intérieur Tube Ventilateur", + "above_inside_outside_tube_revolve": "Supérieur Intérieur Extérieur Tube Rotatif", + "above_inside_outside_tube_fan": "Supérieur Intérieur Extérieur Tube Ventilateur", + "above_inside_underside_tube": "Supérieur Intérieur Inférieur Tube", + "above_inside_underside_tube_1": "Supérieur Intérieur Inférieur Tube 1", + "above_inside_underside_tube_fan": "Supérieur Intérieur Inférieur Tube Ventilateur", + "above_inside_underside_tube_fan_1": "Supérieur Intérieur Inférieur Tube Ventilateur 1", + "above_inside_tube": "Supérieur Intérieur Tube", + "above_inside_outside_tube": "Supérieur Intérieur Extérieur Tube", + "underside_tube_fan": "Inférieur Tube Ventilateur", + "above_tube_fan": "Supérieur Tube Ventilateur", + "above_tube_fan_1": "Supérieur Tube Ventilateur 1", + "above_tube_fan_2": "Supérieur Tube Ventilateur 2", + "scale_clean": "Détartrage", + "clean": "Nettoyage", + "remove_odor": "Éliminer les odeurs", + "remove_odor_2": "Éliminer les odeurs 2", + "high_temperature_clean": "Haute température Nettoyage", + "dining_utensils_clean": "Ustensiles Nettoyage", + "auto_menu": "Menu automatique", + "eco": "Éco", + "above_tube_1": "Supérieur Tube 1", + "above_tube_2": "Supérieur Tube 2", + "above_tube_3": "Supérieur Tube 3", + "underside_tube_1": "Inférieur Tube 1", + "underside_tube_2": "Inférieur Tube 2", + "double_tube_1": "Double Tube 1", + "double_tube_2": "Double Tube 2", + "double_tube_3": "Double Tube 3", + "double_tube_4": "Double Tube 4", + "double_tube_5": "Double Tube 5", + "double_tube_6": "Double Tube 6", + "hot_wind_tube_fan_1": "Air chaud Tube Ventilateur 1", + "hot_wind_tube_fan_2": "Air chaud Tube Ventilateur 2", + "hot_wind_tube_fan_3": "Air chaud Tube Ventilateur 3", + "hot_wind_tube_fan_4": "Air chaud Tube Ventilateur 4", + "hot_wind_tube_fan_5": "Air chaud Tube Ventilateur 5", + "double_tube_hot_wind_tube_fan_1": "Double Tube Air chaud Ventilateur 1", + "double_tube_hot_wind_tube_fan_2": "Double Tube Air chaud Ventilateur 2", + "double_tube_hot_wind_tube_fan_3": "Double Tube Air chaud Ventilateur 3", + "double_tube_hot_wind_tube_fan_4": "Double Tube Air chaud Ventilateur 4", + "double_tube_hot_wind_tube_fan_5": "Double Tube Air chaud Ventilateur 5", + "unknown": "Inconnu" + } + }, "working_time": { "name": "Working Time" }, @@ -836,6 +1248,9 @@ "disinfect": { "name": "Disinfect" }, + "maintenance_reminder": { + "name": "Rappel d'entretien" + }, "vacation_mode": { "name": "Mode vacances" }, @@ -863,9 +1278,15 @@ "frost_protect": { "name": "Frost Protect" }, + "furnace_light": { + "name": "Lumière du four" + }, "heating_power": { "name": "Heating Power" }, + "hot_wind": { + "name": "Air chaud" + }, "indirect_wind": { "name": "Indirect Wind" }, @@ -905,6 +1326,9 @@ "regeneration": { "name": "Régénération" }, + "turntable": { + "name": "Plateau tournant" + }, "water_pump": { "name": "Pompe à eau" }, @@ -965,6 +1389,9 @@ "self_clean": { "name": "Auto-nettoyage" }, + "ieco": { + "name": "iECO" + }, "sound": { "name": "Son" }, @@ -997,6 +1424,24 @@ }, "zone2_power": { "name": "Zone2 Power" + }, + "boiling": { + "name": "Faire bouillir l’eau" + }, + "tea_bar_boil": { + "name": "Interrupteur d’ébullition" + }, + "tea_bar_child_lock": { + "name": "Child Lock" + }, + "keep_warm": { + "name": "Maintien au chaud" + }, + "tea_bar_cooling": { + "name": "Refroidissement" + }, + "screen_off": { + "name": "Écran éteint" } }, "water_heater": { diff --git a/custom_components/midea_ac_lan/translations/hu.json b/custom_components/midea_ac_lan/translations/hu.json index a3c701df..32f83a5c 100644 --- a/custom_components/midea_ac_lan/translations/hu.json +++ b/custom_components/midea_ac_lan/translations/hu.json @@ -84,6 +84,12 @@ "burning_state": { "name": "Burning State" }, + "clean_scale": { + "name": "Vízkőmentesítés" + }, + "clean_sink_ponding": { + "name": "Vízgyűjtő medence" + }, "cleaning_reminder": { "name": "Cleaning Reminder" }, @@ -93,6 +99,12 @@ "cooking": { "name": "Cooking" }, + "dissipate_heat": { + "name": "Hőelvezetés" + }, + "door": { + "name": "Ajtó" + }, "error_code": { "name": "Hibakód" }, @@ -111,6 +123,9 @@ "flex_zone_door_overtime": { "name": "Flex Zone Door" }, + "flip_side": { + "name": "Megfordítás" + }, "freezer_door": { "name": "Freezer Door" }, @@ -123,9 +138,25 @@ "heating": { "name": "Heating" }, + "dispensing": { + "name": "Vízadagolás" + }, + "lack_water": { "name": "Vízhiány" }, + "standby": { "name": "Készenlét" }, + "hot_water_dispensing": { "name": "Forróvíz-adagolás" }, + "fault": { "name": "Hiba" }, "heating_working": { "name": "Heating Working Status" }, + "high_temperature": { + "name": "Magas hőmérséklet" + }, + "high_temperature_lock": { + "name": "Magas hőmérséklet zárolás" + }, + "high_temperature_work": { + "name": "Magas hőmérséklet üzemmód" + }, "keep_warm": { "name": "Keep Warm" }, @@ -162,9 +193,24 @@ "oilcup_full": { "name": "Oil-cup Full" }, + "ota": { + "name": "OTA" + }, + "pre_heat": { + "name": "Előmelegítés" + }, + "probe": { + "name": "Mérőpálca" + }, + "probe_mode": { + "name": "Mérőpálca mód" + }, "protection": { "name": "Protection" }, + "reaction": { + "name": "Reakció" + }, "refrigerator_door": { "name": "Refrigerator Door" }, @@ -192,6 +238,66 @@ "maintenance_reminder": { "name": "Karbantartási emlékeztető" }, + "dr_enable": { + "name": "Igényválasz" + }, + "electric_rod_exception": { + "name": "Elektromos fűtőszál hibája" + }, + "ac_heater_priority": { + "name": "Hőszivattyú elsőbbség" + }, + "high_temp_reminder": { + "name": "Magas hőmérséklet emlékeztető" + }, + "new_version_water_heater": { + "name": "Bővített vízmelegítő protokoll" + }, + "heat_recovery_status": { + "name": "Hővisszanyerés" + }, + "holiday_mode": { + "name": "Nyaralási mód" + }, + "hybrid_motion_mode": { + "name": "Hibrid mozgás mód" + }, + "support_boost_mode": { + "name": "Boost mód támogatása" + }, + "support_silent_mode": { + "name": "Csendes mód támogatása" + }, + "support_remaining_hot_water": { + "name": "Maradék melegvíz támogatása" + }, + "support_electric_mode": { + "name": "Elektromos mód támogatása" + }, + "support_auto_disinfect": { + "name": "Automatikus fertőtlenítés támogatása" + }, + "support_force_e_heating": { + "name": "Kényszerített elektromos fűtés támogatása" + }, + "support_tou": { + "name": "Időalapú használat támogatása" + }, + "support_ac_heater_priority": { + "name": "Hőszivattyú elsőbbség támogatása" + }, + "support_heat_recovery": { + "name": "Hővisszanyerés támogatása" + }, + "support_heat_pump_mode": { + "name": "Hőszivattyú mód támogatása" + }, + "support_smart_mode": { + "name": "Intelligens mód támogatása" + }, + "support_negative_temperature": { + "name": "Negatív hőmérséklet támogatása" + }, "maintain_warn": { "name": "Karbantartási figyelmeztetés" }, @@ -314,6 +420,15 @@ "vacation_days": { "name": "Vakáció napok" }, + "max_temperature": { + "name": "Maximális cél hőmérséklet" + }, + "disinfection_temperature": { + "name": "Fertőtlenítési hőmérséklet" + }, + "schedule_mode": { + "name": "Ütemezési mód" + }, "leak_water_protection_value": { "name": "Vízszivárgás védelem értéke" }, @@ -322,6 +437,12 @@ }, "water_hardness": { "name": "Víz keménység" + }, + "boil_temperature": { + "name": "Forralási célhőmérséklet" + }, + "keep_warm_time": { + "name": "Melegen tartási idő" } }, "select": { @@ -412,6 +533,25 @@ "bathing_leaving_temperature": { "name": "Bathing Leaving Water Temperature" }, + "bf_status": { + "name": "Állapot", + "state": { + "save_power": "Energiatakarékos", + "standby": "Készenlét", + "work": "Működik", + "work_finish": "Befejezett", + "order": "Késleltetés", + "pause": "Szünet", + "pause_c": "Szünet C", + "three": "Három", + "wait_to_start": "Várakozás indításra", + "self_inspection": "Önellenőrzés", + "query_version": "Verzió lekérdezés", + "demo": "Demó", + "after_checking": "Ellenőrzés után", + "unknown": "Ismeretlen" + } + }, "bottom_compartment_remaining": { "name": "Bottom Compartment Remaining" }, @@ -427,12 +567,27 @@ "bright": { "name": "Bright Level" }, + "cbs_version": { + "name": "CBS verzió" + }, + "cloudmenuid": { + "name": "Felhő menü ID" + }, "compressor_temperature": { "name": "Compressor Temperature" }, "condenser_temperature": { "name": "Condenser Temperature" }, + "cur_probe_temperature": { + "name": "Jelenlegi mérőpálca hőmérséklet" + }, + "cur_temperature_above": { + "name": "Jelenlegi felső hőmérséklet" + }, + "cur_temperature_underside": { + "name": "Jelenlegi alsó hőmérséklet" + }, "current_energy_consumption": { "name": "Current Energy Consumption" }, @@ -510,6 +665,15 @@ "estimated_water_consumption": { "name": "Becsült vízfogyasztás" }, + "execute_status": { + "name": "Végrehajtási állapot", + "state": { + "ok": "OK", + "status_nonsupport": "Állapot nem támogatott", + "function_nonsupport": "Funkció nem támogatott", + "param_range_error": "Paramétertartomány hiba" + } + }, "fan_level": { "name": "Fan level" }, @@ -534,6 +698,23 @@ "filter3_life": { "name": "Filter3 Life Level" }, + "fire_power": { + "name": "Tűzereje", + "state": { + "fire_power_0": "Szint 0", + "fire_power_1": "Szint 1", + "fire_power_2": "Szint 2", + "fire_power_3": "Szint 3", + "fire_power_4": "Szint 4", + "fire_power_5": "Szint 5", + "fire_power_6": "Szint 6", + "fire_power_7": "Szint 7", + "fire_power_8": "Szint 8", + "fire_power_9": "Szint 9", + "fire_power_10": "Szint 10", + "unknown": "Ismeretlen" + } + }, "flex_zone_actual_temp": { "name": "Flex Zone Actual Temperature" }, @@ -570,6 +751,7 @@ "keep_warm_remaining": { "name": "Keep Warm Remaining" }, + "fault_code": { "name": "Hibakód" }, "keep_warm_time": { "name": "Keep Warm Time" }, @@ -585,6 +767,9 @@ "middle_compartment_temperature": { "name": "Middle Compartment Temperature" }, + "minute_set": { + "name": "Perc beállítása" + }, "mode": { "name": "Mode" }, @@ -594,6 +779,70 @@ "outdoor_temperature": { "name": "Outdoor Temperature" }, + "comp_run_freq": { + "name": "Kompresszor frekvenciája" + }, + "outdoor_fan_speed": { + "name": "Kültéri ventilátor fordulatszáma" + }, + "unit_mode_run": { + "name": "Egység üzemmódja", + "state": { + "off": "Ki", + "auto": "Automatikus", + "cool": "Hűtés", + "heat": "Fűtés", + "dhw": "HMV" + } + }, + "odu_target_fre": { + "name": "Cél kompresszorfrekvencia" + }, + "odu_voltage": { + "name": "Kültéri egység feszültsége" + }, + "odu_comp_current": { + "name": "Kompresszor áramerőssége" + }, + "exv_current": { + "name": "Elektronikus expanziós szelep nyitása" + }, + "fg_capacity_need": { + "name": "Kapacitásigény" + }, + "pressure_high": { + "name": "Hűtőközeg nyomása (magas oldal)" + }, + "pressure_low": { + "name": "Hűtőközeg nyomása (alacsony oldal)" + }, + "temp_t1": { + "name": "T1 hőmérséklet-érzékelő" + }, + "temp_t2": { + "name": "Lemezes hőcserélő hőmérséklete (T2)" + }, + "temp_t2b": { + "name": "Lemezes hőcserélő kimeneti hőmérséklete (T2B)" + }, + "temp_t3": { + "name": "Kültéri hőcserélő hőmérséklete (T3)" + }, + "temp_tp": { + "name": "Nyomócső hőmérséklete (TP)" + }, + "temp_th": { + "name": "Szívási hőmérséklet (TH)" + }, + "temp_tf": { + "name": "Teljesítménymodul hőmérséklete (TF)" + }, + "people_number": { + "name": "Személyek száma" + }, + "probe_temperature": { + "name": "Mérőpálca hőmérséklet" + }, "program": { "name": "Program" }, @@ -636,6 +885,9 @@ "seat_temperature": { "name": "Seat Temperature" }, + "second_set": { + "name": "Másodperc beállítása" + }, "soak_time": { "name": "soak time" }, @@ -651,6 +903,12 @@ "status": { "name": "Status" }, + "steam_quantity": { + "name": "Gőz mennyisége" + }, + "stepnum": { + "name": "Jelenlegi lépés" + }, "storage_remaining": { "name": "Storage Remaining" }, @@ -663,6 +921,12 @@ "target_temperature": { "name": "Target Temperature" }, + "temperature_above": { + "name": "Felső hőmérséklet" + }, + "temperature_underside": { + "name": "Alsó hőmérséklet" + }, "time_remaining": { "name": "Time Remaining" }, @@ -684,6 +948,9 @@ "total_produced_energy": { "name": "Total produced energy" }, + "totalstep": { + "name": "Összes lépés" + }, "tvoc": { "name": "TVOC" }, @@ -741,6 +1008,36 @@ "max_temperature": { "name": "Maximális cél hőmérséklet" }, + "max_temperature_upper_limit": { + "name": "Maximális hőmérséklet felső határa" + }, + "max_temperature_lower_limit": { + "name": "Maximális hőmérséklet alsó határa" + }, + "disinfection_temperature_upper_limit": { + "name": "Fertőtlenítési hőmérséklet felső határa" + }, + "disinfection_temperature_lower_limit": { + "name": "Fertőtlenítési hőmérséklet alsó határa" + }, + "dr_option": { + "name": "Igényválasz opció" + }, + "remaining_hot_water_max": { + "name": "Maximális maradék melegvíz" + }, + "force_e_heating_status": { + "name": "Kényszerített elektromos fűtés állapota" + }, + "holiday_max": { + "name": "Maximális nyaralási időtartam" + }, + "holiday_min": { + "name": "Minimális nyaralási időtartam" + }, + "timer_step_gap": { + "name": "Időzítő lépés" + }, "vacation_start_year": { "name": "Vakáció kezdő év" }, @@ -759,6 +1056,121 @@ "auto_sterilize_minute": { "name": "Automatikus sterilizálás perc" }, + "weight": { + "name": "Súly" + }, + "work_mode": { + "name": "Munkamód", + "state": { + "microwave": "Mikrohullám", + "microwave_1": "Mikrohullám 1", + "microwave_2": "Mikrohullám 2", + "microwave_3": "Mikrohullám 3", + "microwave_4": "Mikrohullám 4", + "microwave_5": "Mikrohullám 5", + "microwave_steam_above_tube": "Mikrohullám Gőz Felső Cső", + "microwave_double_tube": "Mikrohullám Dupla Cső", + "microwave_hot_wind_tube_fan": "Mikrohullám Forró levegő Cső Ventilátor", + "microwave_underside_tube_hot_wind_tube_fan": "Mikrohullám Alsó Cső Forró levegő Ventilátor", + "microwave_double_tube_hot_wind_tube_fan": "Mikrohullám Dupla Cső Forró levegő Ventilátor", + "microwave_steam": "Mikrohullám Gőz", + "microwave_steam_1": "Mikrohullám Gőz 1", + "unfreeze": "Kiolvasztás", + "unfreeze_1": "Kiolvasztás 1", + "unfreeze_2": "Kiolvasztás 2", + "unfreeze_3": "Kiolvasztás 3", + "unfreeze_t": "Kiolvasztás T", + "microwave_above_tube": "Mikrohullám Felső Cső", + "microwave_above_tube_1": "Mikrohullám Felső Cső 1", + "microwave_above_tube_2": "Mikrohullám Felső Cső 2", + "microwave_above_tube_fan": "Mikrohullám Felső Cső Ventilátor", + "fast_unfreeze": "Gyors Kiolvasztás", + "fresh_unfreeze": "Friss Kiolvasztás", + "microwave_zymosis": "Mikrohullám Erjesztés", + "pure_steam": "Tiszta Gőz", + "pure_steam_1": "Tiszta Gőz 1", + "pure_steam_2": "Tiszta Gőz 2", + "pure_steam_3": "Tiszta Gőz 3", + "pure_steam_4": "Tiszta Gőz 4", + "pure_steam_5": "Tiszta Gőz 5", + "pure_steam_6": "Tiszta Gőz 6", + "pure_steam_7": "Tiszta Gőz 7", + "pure_steam_8": "Tiszta Gőz 8", + "pure_steam_9": "Tiszta Gőz 9", + "steam_above_tube": "Gőz Felső Cső", + "steam_underside_tube": "Gőz Alsó Cső", + "steam_double_tube": "Gőz Dupla Cső", + "steam_hot_wind_tube_fan": "Gőz Forró levegő Cső Ventilátor", + "steam_hot_wind_tube_fan_1": "Gőz Forró levegő Cső Ventilátor 1", + "steam_hot_wind_tube_fan_2": "Gőz Forró levegő Cső Ventilátor 2", + "steam_hot_wind_tube": "Gőz Forró levegő Cső", + "steam_double_tube_fan": "Gőz Dupla Cső Ventilátor", + "steam_above_inside_outside_tube_fan": "Gőz Felső Belső Külső Cső Ventilátor", + "steam_above_inside_tube_fan": "Gőz Felső Belső Cső Ventilátor", + "above_tube": "Felső Cső", + "underside_tube": "Alsó Cső", + "double_tube": "Dupla Cső", + "hot_wind_tube_fan": "Forró levegő Cső Ventilátor", + "pure_preheat": "Tiszta Előmelegítés", + "above_tube_hot_wind_tube_fan": "Felső Cső Forró levegő Ventilátor", + "underside_tube_hot_wind_tube_fan": "Alsó Cső Forró levegő Ventilátor", + "zymosis": "Erjesztés", + "double_tube_hot_wind_tube_fan": "Dupla Cső Forró levegő Ventilátor", + "above_tube_revolve": "Felső Cső Forgó", + "underside_tube_revolve": "Alsó Cső Forgó", + "double_tube_revolve": "Dupla Cső Forgó", + "hot_wind_tube_fan_revolve": "Forró levegő Cső Ventilátor Forgó", + "warm": "Melegen tartás", + "double_tube_fan": "Dupla Cső Ventilátor", + "double_tube_fan_1": "Dupla Cső Ventilátor 1", + "double_tube_fan_2": "Dupla Cső Ventilátor 2", + "double_tube_fan_3": "Dupla Cső Ventilátor 3", + "above_inside_tube_revolve": "Felső Belső Cső Forgó", + "above_inside_tube_fan": "Felső Belső Cső Ventilátor", + "above_inside_outside_tube_revolve": "Felső Belső Külső Cső Forgó", + "above_inside_outside_tube_fan": "Felső Belső Külső Cső Ventilátor", + "above_inside_underside_tube": "Felső Belső Alsó Cső", + "above_inside_underside_tube_1": "Felső Belső Alsó Cső 1", + "above_inside_underside_tube_fan": "Felső Belső Alsó Cső Ventilátor", + "above_inside_underside_tube_fan_1": "Felső Belső Alsó Cső Ventilátor 1", + "above_inside_tube": "Felső Belső Cső", + "above_inside_outside_tube": "Felső Belső Külső Cső", + "underside_tube_fan": "Alsó Cső Ventilátor", + "above_tube_fan": "Felső Cső Ventilátor", + "above_tube_fan_1": "Felső Cső Ventilátor 1", + "above_tube_fan_2": "Felső Cső Ventilátor 2", + "scale_clean": "Vízkőmentesítés", + "clean": "Tisztítás", + "remove_odor": "Szageltávolítás", + "remove_odor_2": "Szageltávolítás 2", + "high_temperature_clean": "Magas hőmérséklet Tisztítás", + "dining_utensils_clean": "Étkészlet Tisztítás", + "auto_menu": "Automata menü", + "eco": "Eco", + "above_tube_1": "Felső Cső 1", + "above_tube_2": "Felső Cső 2", + "above_tube_3": "Felső Cső 3", + "underside_tube_1": "Alsó Cső 1", + "underside_tube_2": "Alsó Cső 2", + "double_tube_1": "Dupla Cső 1", + "double_tube_2": "Dupla Cső 2", + "double_tube_3": "Dupla Cső 3", + "double_tube_4": "Dupla Cső 4", + "double_tube_5": "Dupla Cső 5", + "double_tube_6": "Dupla Cső 6", + "hot_wind_tube_fan_1": "Forró levegő Cső Ventilátor 1", + "hot_wind_tube_fan_2": "Forró levegő Cső Ventilátor 2", + "hot_wind_tube_fan_3": "Forró levegő Cső Ventilátor 3", + "hot_wind_tube_fan_4": "Forró levegő Cső Ventilátor 4", + "hot_wind_tube_fan_5": "Forró levegő Cső Ventilátor 5", + "double_tube_hot_wind_tube_fan_1": "Dupla Cső Forró levegő Ventilátor 1", + "double_tube_hot_wind_tube_fan_2": "Dupla Cső Forró levegő Ventilátor 2", + "double_tube_hot_wind_tube_fan_3": "Dupla Cső Forró levegő Ventilátor 3", + "double_tube_hot_wind_tube_fan_4": "Dupla Cső Forró levegő Ventilátor 4", + "double_tube_hot_wind_tube_fan_5": "Dupla Cső Forró levegő Ventilátor 5", + "unknown": "Ismeretlen" + } + }, "working_time": { "name": "Working Time" }, @@ -836,6 +1248,9 @@ "disinfect": { "name": "Disinfect" }, + "maintenance_reminder": { + "name": "Karbantartási emlékeztető" + }, "vacation_mode": { "name": "Vakáció mód" }, @@ -863,9 +1278,15 @@ "frost_protect": { "name": "Frost Protect" }, + "furnace_light": { + "name": "Kemence fény" + }, "heating_power": { "name": "Heating Power" }, + "hot_wind": { + "name": "Forró levegő" + }, "indirect_wind": { "name": "Indirect Wind" }, @@ -905,6 +1326,9 @@ "regeneration": { "name": "Regenerálás" }, + "turntable": { + "name": "Forgótálca" + }, "water_pump": { "name": "Vízszivattyú" }, @@ -965,6 +1389,9 @@ "self_clean": { "name": "Self Clean" }, + "ieco": { + "name": "iECO" + }, "sound": { "name": "Sound" }, @@ -997,6 +1424,24 @@ }, "zone2_power": { "name": "Zone2 Power" + }, + "boiling": { + "name": "Vízforralás" + }, + "tea_bar_boil": { + "name": "Vízforraló kapcsoló" + }, + "tea_bar_child_lock": { + "name": "Child Lock" + }, + "keep_warm": { + "name": "Melegen tartás" + }, + "tea_bar_cooling": { + "name": "Hűtés" + }, + "screen_off": { + "name": "Kijelző kikapcsolása" } }, "water_heater": { diff --git a/custom_components/midea_ac_lan/translations/it.json b/custom_components/midea_ac_lan/translations/it.json index f0ed5ad7..88bd50f7 100644 --- a/custom_components/midea_ac_lan/translations/it.json +++ b/custom_components/midea_ac_lan/translations/it.json @@ -84,6 +84,12 @@ "burning_state": { "name": "Stato di Combustione" }, + "clean_scale": { + "name": "Decalcificazione" + }, + "clean_sink_ponding": { + "name": "Ristagno acqua" + }, "cleaning_reminder": { "name": "Promemoria Pulizia" }, @@ -93,6 +99,12 @@ "cooking": { "name": "Cottura" }, + "dissipate_heat": { + "name": "Dissipazione calore" + }, + "door": { + "name": "Porta" + }, "error_code": { "name": "Codice Errore" }, @@ -111,6 +123,9 @@ "flex_zone_door_overtime": { "name": "Porta Zona Flex Aperta Troppo a Lungo" }, + "flip_side": { + "name": "Girare" + }, "freezer_door": { "name": "Porta Freezer" }, @@ -123,9 +138,25 @@ "heating": { "name": "Riscaldamento" }, + "dispensing": { + "name": "Erogazione acqua" + }, + "lack_water": { "name": "Mancanza acqua" }, + "standby": { "name": "Standby" }, + "hot_water_dispensing": { "name": "Erogazione acqua calda" }, + "fault": { "name": "Guasto" }, "heating_working": { "name": "Stato Funzionamento Riscaldamento" }, + "high_temperature": { + "name": "Alta temperatura" + }, + "high_temperature_lock": { + "name": "Blocco alta temperatura" + }, + "high_temperature_work": { + "name": "Funzionamento alta temperatura" + }, "keep_warm": { "name": "Mantenimento Caldo" }, @@ -144,6 +175,18 @@ "middle_compartment_preheating": { "name": "Preriscaldamento Scomparto Centrale" }, + "pre_heat": { + "name": "Preriscaldamento" + }, + "probe": { + "name": "Sonda" + }, + "probe_mode": { + "name": "Modalità sonda" + }, + "reaction": { + "name": "Reazione" + }, "top_elec_heat": { "name": "Riscaldamento Elettrico Superiore" }, @@ -192,6 +235,32 @@ "maintenance_reminder": { "name": "Promemoria Manutenzione" }, + "dr_enable": { "name": "Demand Response" }, + "electric_rod_exception": { "name": "Guasto Resistenza Elettrica" }, + "ac_heater_priority": { "name": "Priorità Pompa di Calore" }, + "high_temp_reminder": { "name": "Promemoria Temperatura Elevata" }, + "new_version_water_heater": { "name": "Protocollo Scaldacqua Esteso" }, + "heat_recovery_status": { "name": "Recupero di Calore" }, + "holiday_mode": { "name": "Modalità Vacanza" }, + "hybrid_motion_mode": { "name": "Modalità Ibrida Dinamica" }, + "support_boost_mode": { "name": "Supporto Modalità Boost" }, + "support_silent_mode": { "name": "Supporto Modalità Silenziosa" }, + "support_remaining_hot_water": { "name": "Supporto Acqua Calda Residua" }, + "support_electric_mode": { "name": "Supporto Modalità Elettrica" }, + "support_auto_disinfect": { "name": "Supporto Disinfezione Automatica" }, + "support_force_e_heating": { + "name": "Supporto Riscaldamento Elettrico Forzato" + }, + "support_tou": { "name": "Supporto Fasce Orarie" }, + "support_ac_heater_priority": { + "name": "Supporto Priorità Pompa di Calore" + }, + "support_heat_recovery": { "name": "Supporto Recupero di Calore" }, + "support_heat_pump_mode": { "name": "Supporto Modalità Pompa di Calore" }, + "support_smart_mode": { "name": "Supporto Modalità Smart" }, + "support_negative_temperature": { + "name": "Supporto Temperature Negative" + }, "maintain_warn": { "name": "Avviso Manutenzione" }, @@ -314,6 +383,9 @@ "vacation_days": { "name": "Giorni Vacanza" }, + "max_temperature": { "name": "Temperatura Obiettivo Massima" }, + "disinfection_temperature": { "name": "Temperatura Disinfezione" }, + "schedule_mode": { "name": "Modalità Programmazione" }, "leak_water_protection_value": { "name": "Valore Protezione Perdita Acqua" }, @@ -322,6 +394,12 @@ }, "water_hardness": { "name": "Durezza Acqua" + }, + "boil_temperature": { + "name": "Temperatura obiettivo di ebollizione" + }, + "keep_warm_time": { + "name": "Durata mantenimento in caldo" } }, "select": { @@ -412,6 +490,25 @@ "bathing_leaving_temperature": { "name": "Temperatura Acqua in Uscita Bagno" }, + "bf_status": { + "name": "Stato", + "state": { + "save_power": "Risparmio energia", + "standby": "Standby", + "work": "In funzione", + "work_finish": "Completato", + "order": "Programmato", + "pause": "In pausa", + "pause_c": "In pausa C", + "three": "Tre", + "wait_to_start": "In attesa di avvio", + "self_inspection": "Autodiagnosi", + "query_version": "Consulta versione", + "demo": "Demo", + "after_checking": "Dopo verifica", + "unknown": "Sconosciuto" + } + }, "bottom_compartment_remaining": { "name": "Tempo Rimanente Scomparto Inferiore" }, @@ -427,12 +524,24 @@ "bright": { "name": "Livello Luminosità" }, + "cloudmenuid": { + "name": "ID menu cloud" + }, "compressor_temperature": { "name": "Temperatura Compressore" }, "condenser_temperature": { "name": "Temperatura Condensatore" }, + "cur_probe_temperature": { + "name": "Temperatura sonda attuale" + }, + "cur_temperature_above": { + "name": "Temperatura superiore attuale" + }, + "cur_temperature_underside": { + "name": "Temperatura inferiore attuale" + }, "current_energy_consumption": { "name": "Consumo Energetico Attuale" }, @@ -448,9 +557,56 @@ "dehydration_time_value": { "name": "Valore Tempo Centrifuga" }, + "execute_status": { + "name": "Stato esecuzione", + "state": { + "ok": "OK", + "status_nonsupport": "Stato non supportato", + "function_nonsupport": "Funzione non supportata", + "param_range_error": "Errore range parametri" + } + }, + "fire_power": { + "name": "Potenza", + "state": { + "fire_power_0": "Livello 0", + "fire_power_1": "Livello 1", + "fire_power_2": "Livello 2", + "fire_power_3": "Livello 3", + "fire_power_4": "Livello 4", + "fire_power_5": "Livello 5", + "fire_power_6": "Livello 6", + "fire_power_7": "Livello 7", + "fire_power_8": "Livello 8", + "fire_power_9": "Livello 9", + "fire_power_10": "Livello 10", + "unknown": "Sconosciuto" + } + }, + "people_number": { + "name": "Numero persone" + }, + "probe_temperature": { + "name": "Temperatura sonda" + }, + "steam_quantity": { + "name": "Quantità vapore" + }, + "stepnum": { + "name": "Passo corrente" + }, "temperature": { "name": "Temperatura" }, + "temperature_above": { + "name": "Temperatura superiore" + }, + "temperature_underside": { + "name": "Temperatura inferiore" + }, + "totalstep": { + "name": "Passi totali" + }, "wash_time_value": { "name": "Valore Tempo Lavaggio" }, @@ -570,6 +726,7 @@ "keep_warm_remaining": { "name": "Tempo Rimanente Mantenimento Caldo" }, + "fault_code": { "name": "Codice guasto" }, "keep_warm_time": { "name": "Tempo Mantenimento Caldo" }, @@ -594,6 +751,64 @@ "outdoor_temperature": { "name": "Temperatura Esterna" }, + "comp_run_freq": { + "name": "Compressor Frequency" + }, + "outdoor_fan_speed": { + "name": "Outdoor Fan Speed" + }, + "unit_mode_run": { + "name": "Unit Run Mode", + "state": { + "off": "Off", + "auto": "Auto", + "cool": "Cool", + "heat": "Heat", + "dhw": "DHW" + } + }, + "odu_target_fre": { + "name": "Target Compressor Frequency" + }, + "odu_voltage": { + "name": "Outdoor Unit Voltage" + }, + "odu_comp_current": { + "name": "Compressor Current" + }, + "exv_current": { + "name": "Electronic Expansion Valve Opening" + }, + "fg_capacity_need": { + "name": "Capacity Demand" + }, + "pressure_high": { + "name": "Refrigerant Pressure (High Side)" + }, + "pressure_low": { + "name": "Refrigerant Pressure (Low Side)" + }, + "temp_t1": { + "name": "Temperature Sensor T1" + }, + "temp_t2": { + "name": "Plate Heat Exchanger Temperature (T2)" + }, + "temp_t2b": { + "name": "Plate Heat Exchanger Outlet Temperature (T2B)" + }, + "temp_t3": { + "name": "Outdoor Coil Temperature (T3)" + }, + "temp_tp": { + "name": "Discharge Pipe Temperature (TP)" + }, + "temp_th": { + "name": "Suction Temperature (TH)" + }, + "temp_tf": { + "name": "Power Module Temperature (TF)" + }, "program": { "name": "Programma" }, @@ -711,6 +926,9 @@ "water_level": { "name": "Livello Acqua" }, + "weight": { + "name": "Peso" + }, "wind": { "name": "Vento" }, @@ -741,6 +959,26 @@ "max_temperature": { "name": "Temperatura Obiettivo Massima" }, + "max_temperature_upper_limit": { + "name": "Limite Superiore Temperatura Massima" + }, + "max_temperature_lower_limit": { + "name": "Limite Inferiore Temperatura Massima" + }, + "disinfection_temperature_upper_limit": { + "name": "Limite Superiore Temperatura Disinfezione" + }, + "disinfection_temperature_lower_limit": { + "name": "Limite Inferiore Temperatura Disinfezione" + }, + "dr_option": { "name": "Opzione Demand Response" }, + "remaining_hot_water_max": { "name": "Acqua Calda Residua Massima" }, + "force_e_heating_status": { + "name": "Stato Riscaldamento Elettrico Forzato" + }, + "holiday_max": { "name": "Durata Massima Vacanza" }, + "holiday_min": { "name": "Durata Minima Vacanza" }, + "timer_step_gap": { "name": "Intervallo Timer" }, "vacation_start_year": { "name": "Anno Inizio Vacanza" }, @@ -759,6 +997,118 @@ "auto_sterilize_minute": { "name": "Minuto Sterilizzazione Automatica" }, + "work_mode": { + "name": "Modalità cottura", + "state": { + "microwave": "Microonde", + "microwave_1": "Microonde 1", + "microwave_2": "Microonde 2", + "microwave_3": "Microonde 3", + "microwave_4": "Microonde 4", + "microwave_5": "Microonde 5", + "microwave_steam_above_tube": "Microonde Vapore Superiore Resistenza", + "microwave_double_tube": "Microonde Doppia Resistenza", + "microwave_hot_wind_tube_fan": "Microonde Aria calda Resistenza Ventilatore", + "microwave_underside_tube_hot_wind_tube_fan": "Microonde Inferiore Resistenza Aria calda Ventilatore", + "microwave_double_tube_hot_wind_tube_fan": "Microonde Doppia Resistenza Aria calda Ventilatore", + "microwave_steam": "Microonde Vapore", + "microwave_steam_1": "Microonde Vapore 1", + "unfreeze": "Scongelamento", + "unfreeze_1": "Scongelamento 1", + "unfreeze_2": "Scongelamento 2", + "unfreeze_3": "Scongelamento 3", + "unfreeze_t": "Scongelamento T", + "microwave_above_tube": "Microonde Superiore Resistenza", + "microwave_above_tube_1": "Microonde Superiore Resistenza 1", + "microwave_above_tube_2": "Microonde Superiore Resistenza 2", + "microwave_above_tube_fan": "Microonde Superiore Resistenza Ventilatore", + "fast_unfreeze": "Veloce Scongelamento", + "fresh_unfreeze": "Fresco Scongelamento", + "microwave_zymosis": "Microonde Fermentazione", + "pure_steam": "Puro Vapore", + "pure_steam_1": "Puro Vapore 1", + "pure_steam_2": "Puro Vapore 2", + "pure_steam_3": "Puro Vapore 3", + "pure_steam_4": "Puro Vapore 4", + "pure_steam_5": "Puro Vapore 5", + "pure_steam_6": "Puro Vapore 6", + "pure_steam_7": "Puro Vapore 7", + "pure_steam_8": "Puro Vapore 8", + "pure_steam_9": "Puro Vapore 9", + "steam_above_tube": "Vapore Superiore Resistenza", + "steam_underside_tube": "Vapore Inferiore Resistenza", + "steam_double_tube": "Vapore Doppia Resistenza", + "steam_hot_wind_tube_fan": "Vapore Aria calda Resistenza Ventilatore", + "steam_hot_wind_tube_fan_1": "Vapore Aria calda Resistenza Ventilatore 1", + "steam_hot_wind_tube_fan_2": "Vapore Aria calda Resistenza Ventilatore 2", + "steam_hot_wind_tube": "Vapore Aria calda Resistenza", + "steam_double_tube_fan": "Vapore Doppia Resistenza Ventilatore", + "steam_above_inside_outside_tube_fan": "Vapore Superiore Interno Esterno Resistenza Ventilatore", + "steam_above_inside_tube_fan": "Vapore Superiore Interno Resistenza Ventilatore", + "above_tube": "Superiore Resistenza", + "underside_tube": "Inferiore Resistenza", + "double_tube": "Doppia Resistenza", + "hot_wind_tube_fan": "Aria calda Resistenza Ventilatore", + "pure_preheat": "Puro Preriscaldamento", + "above_tube_hot_wind_tube_fan": "Superiore Resistenza Aria calda Ventilatore", + "underside_tube_hot_wind_tube_fan": "Inferiore Resistenza Aria calda Ventilatore", + "zymosis": "Fermentazione", + "double_tube_hot_wind_tube_fan": "Doppia Resistenza Aria calda Ventilatore", + "above_tube_revolve": "Superiore Resistenza Rotante", + "underside_tube_revolve": "Inferiore Resistenza Rotante", + "double_tube_revolve": "Doppia Resistenza Rotante", + "hot_wind_tube_fan_revolve": "Aria calda Resistenza Ventilatore Rotante", + "warm": "Mantieni caldo", + "double_tube_fan": "Doppia Resistenza Ventilatore", + "double_tube_fan_1": "Doppia Resistenza Ventilatore 1", + "double_tube_fan_2": "Doppia Resistenza Ventilatore 2", + "double_tube_fan_3": "Doppia Resistenza Ventilatore 3", + "above_inside_tube_revolve": "Superiore Interno Resistenza Rotante", + "above_inside_tube_fan": "Superiore Interno Resistenza Ventilatore", + "above_inside_outside_tube_revolve": "Superiore Interno Esterno Resistenza Rotante", + "above_inside_outside_tube_fan": "Superiore Interno Esterno Resistenza Ventilatore", + "above_inside_underside_tube": "Superiore Interno Inferiore Resistenza", + "above_inside_underside_tube_1": "Superiore Interno Inferiore Resistenza 1", + "above_inside_underside_tube_fan": "Superiore Interno Inferiore Resistenza Ventilatore", + "above_inside_underside_tube_fan_1": "Superiore Interno Inferiore Resistenza Ventilatore 1", + "above_inside_tube": "Superiore Interno Resistenza", + "above_inside_outside_tube": "Superiore Interno Esterno Resistenza", + "underside_tube_fan": "Inferiore Resistenza Ventilatore", + "above_tube_fan": "Superiore Resistenza Ventilatore", + "above_tube_fan_1": "Superiore Resistenza Ventilatore 1", + "above_tube_fan_2": "Superiore Resistenza Ventilatore 2", + "scale_clean": "Decalcificazione", + "clean": "Pulizia", + "remove_odor": "Rimozione odori", + "remove_odor_2": "Rimozione odori 2", + "high_temperature_clean": "Alta temperatura Pulizia", + "dining_utensils_clean": "Stoviglie Pulizia", + "auto_menu": "Menu automatico", + "eco": "Eco", + "above_tube_1": "Superiore Resistenza 1", + "above_tube_2": "Superiore Resistenza 2", + "above_tube_3": "Superiore Resistenza 3", + "underside_tube_1": "Inferiore Resistenza 1", + "underside_tube_2": "Inferiore Resistenza 2", + "double_tube_1": "Doppia Resistenza 1", + "double_tube_2": "Doppia Resistenza 2", + "double_tube_3": "Doppia Resistenza 3", + "double_tube_4": "Doppia Resistenza 4", + "double_tube_5": "Doppia Resistenza 5", + "double_tube_6": "Doppia Resistenza 6", + "hot_wind_tube_fan_1": "Aria calda Resistenza Ventilatore 1", + "hot_wind_tube_fan_2": "Aria calda Resistenza Ventilatore 2", + "hot_wind_tube_fan_3": "Aria calda Resistenza Ventilatore 3", + "hot_wind_tube_fan_4": "Aria calda Resistenza Ventilatore 4", + "hot_wind_tube_fan_5": "Aria calda Resistenza Ventilatore 5", + "double_tube_hot_wind_tube_fan_1": "Doppia Resistenza Aria calda Ventilatore 1", + "double_tube_hot_wind_tube_fan_2": "Doppia Resistenza Aria calda Ventilatore 2", + "double_tube_hot_wind_tube_fan_3": "Doppia Resistenza Aria calda Ventilatore 3", + "double_tube_hot_wind_tube_fan_4": "Doppia Resistenza Aria calda Ventilatore 4", + "double_tube_hot_wind_tube_fan_5": "Doppia Resistenza Aria calda Ventilatore 5", + "unknown": "Sconosciuto" + } + }, "working_time": { "name": "Tempo di Lavoro" }, @@ -836,6 +1186,16 @@ "disinfect": { "name": "Disinfezione" }, + "furnace_light": { + "name": "Luce forno" + }, + "hot_wind": { + "name": "Aria calda" + }, + "turntable": { + "name": "Piatto rotante" + }, + "maintenance_reminder": { "name": "Promemoria Manutenzione" }, "vacation_mode": { "name": "Modalità Vacanza" }, @@ -965,6 +1325,9 @@ "self_clean": { "name": "Autopulizia" }, + "ieco": { + "name": "iECO" + }, "sound": { "name": "Suono" }, @@ -997,6 +1360,24 @@ }, "zone2_power": { "name": "Potenza Zona2" + }, + "boiling": { + "name": "Bollire l’acqua" + }, + "tea_bar_boil": { + "name": "Interruttore bollitura" + }, + "tea_bar_child_lock": { + "name": "Blocco Bambini" + }, + "keep_warm": { + "name": "Mantenimento in caldo" + }, + "tea_bar_cooling": { + "name": "Raffreddamento" + }, + "screen_off": { + "name": "Spegnimento schermo" } }, "water_heater": { diff --git a/custom_components/midea_ac_lan/translations/ru.json b/custom_components/midea_ac_lan/translations/ru.json index 13c5f194..f2e95585 100644 --- a/custom_components/midea_ac_lan/translations/ru.json +++ b/custom_components/midea_ac_lan/translations/ru.json @@ -84,6 +84,12 @@ "burning_state": { "name": "Burning State" }, + "clean_scale": { + "name": "Очистка от накипи" + }, + "clean_sink_ponding": { + "name": "Скопление воды в раковине" + }, "cleaning_reminder": { "name": "Требуется очистка" }, @@ -93,6 +99,12 @@ "cooking": { "name": "Приготовление" }, + "dissipate_heat": { + "name": "Отвод тепла" + }, + "door": { + "name": "Дверца" + }, "error_code": { "name": "Код ошибки" }, @@ -111,6 +123,9 @@ "flex_zone_door_overtime": { "name": "Flex Zone Door" }, + "flip_side": { + "name": "Перевернуть" + }, "freezer_door": { "name": "Freezer Door" }, @@ -123,9 +138,25 @@ "heating": { "name": "Нагрев" }, + "dispensing": { + "name": "Подача воды" + }, + "lack_water": { "name": "Недостаток воды" }, + "standby": { "name": "Ожидание" }, + "hot_water_dispensing": { "name": "Подача горячей воды" }, + "fault": { "name": "Неисправность" }, "heating_working": { "name": "Heating Working Status" }, + "high_temperature": { + "name": "Высокая температура" + }, + "high_temperature_lock": { + "name": "Блокировка высокой температуры" + }, + "high_temperature_work": { + "name": "Работа при высокой температуре" + }, "keep_warm": { "name": "Поддержание температуры" }, @@ -162,9 +193,24 @@ "oilcup_full": { "name": "Oil-cup Full" }, + "ota": { + "name": "OTA" + }, + "pre_heat": { + "name": "Предварительный нагрев" + }, + "probe": { + "name": "Щуп" + }, + "probe_mode": { + "name": "Режим щупа" + }, "protection": { "name": "Защита" }, + "reaction": { + "name": "Реакция" + }, "refrigerator_door": { "name": "Refrigerator Door" }, @@ -192,6 +238,66 @@ "maintenance_reminder": { "name": "Напоминание об обслуживании" }, + "dr_enable": { + "name": "Отклик на спрос" + }, + "electric_rod_exception": { + "name": "Неисправность электрического нагревателя" + }, + "ac_heater_priority": { + "name": "Приоритет теплового насоса" + }, + "high_temp_reminder": { + "name": "Напоминание о высокой температуре" + }, + "new_version_water_heater": { + "name": "Расширенный протокол водонагревателя" + }, + "heat_recovery_status": { + "name": "Рекуперация тепла" + }, + "holiday_mode": { + "name": "Режим отпуска" + }, + "hybrid_motion_mode": { + "name": "Гибридный режим движения" + }, + "support_boost_mode": { + "name": "Поддержка режима Boost" + }, + "support_silent_mode": { + "name": "Поддержка тихого режима" + }, + "support_remaining_hot_water": { + "name": "Поддержка остатка горячей воды" + }, + "support_electric_mode": { + "name": "Поддержка электрического режима" + }, + "support_auto_disinfect": { + "name": "Поддержка автоматической дезинфекции" + }, + "support_force_e_heating": { + "name": "Поддержка принудительного электрического нагрева" + }, + "support_tou": { + "name": "Поддержка тарифов по времени" + }, + "support_ac_heater_priority": { + "name": "Поддержка приоритета теплового насоса" + }, + "support_heat_recovery": { + "name": "Поддержка рекуперации тепла" + }, + "support_heat_pump_mode": { + "name": "Поддержка режима теплового насоса" + }, + "support_smart_mode": { + "name": "Поддержка интеллектуального режима" + }, + "support_negative_temperature": { + "name": "Поддержка отрицательных температур" + }, "maintain_warn": { "name": "Предупреждение об обслуживании" }, @@ -314,6 +420,15 @@ "vacation_days": { "name": "Дни отпуска" }, + "max_temperature": { + "name": "Максимальная целевая температура" + }, + "disinfection_temperature": { + "name": "Температура дезинфекции" + }, + "schedule_mode": { + "name": "Режим расписания" + }, "leak_water_protection_value": { "name": "Значение защиты от протечек" }, @@ -322,6 +437,12 @@ }, "water_hardness": { "name": "Жёсткость воды" + }, + "boil_temperature": { + "name": "Целевая температура кипячения" + }, + "keep_warm_time": { + "name": "Время поддержания тепла" } }, "select": { @@ -412,6 +533,25 @@ "bathing_leaving_temperature": { "name": "Bathing Leaving Water Temperature" }, + "bf_status": { + "name": "Статус", + "state": { + "save_power": "Энергосбережение", + "standby": "Ожидание", + "work": "Работает", + "work_finish": "Завершено", + "order": "Задержка", + "pause": "Пауза", + "pause_c": "Пауза C", + "three": "Три", + "wait_to_start": "Ожидание запуска", + "self_inspection": "Самодиагностика", + "query_version": "Запрос версии", + "demo": "Демо", + "after_checking": "После проверки", + "unknown": "Неизвестно" + } + }, "bottom_compartment_remaining": { "name": "Bottom Compartment Remaining" }, @@ -427,12 +567,27 @@ "bright": { "name": "Bright Level" }, + "cbs_version": { + "name": "Версия CBS" + }, + "cloudmenuid": { + "name": "ID облачного меню" + }, "compressor_temperature": { "name": "Compressor Temperature" }, "condenser_temperature": { "name": "Condenser Temperature" }, + "cur_probe_temperature": { + "name": "Текущая температура щупа" + }, + "cur_temperature_above": { + "name": "Текущая верхняя температура" + }, + "cur_temperature_underside": { + "name": "Текущая нижняя температура" + }, "current_energy_consumption": { "name": "Current Energy Consumption" }, @@ -448,9 +603,62 @@ "dehydration_time_value": { "name": "Dehydration time value" }, + "execute_status": { + "name": "Статус выполнения", + "state": { + "ok": "OK", + "status_nonsupport": "Статус не поддерживается", + "function_nonsupport": "Функция не поддерживается", + "param_range_error": "Ошибка диапазона параметров" + } + }, + "fire_power": { + "name": "Мощность нагрева", + "state": { + "fire_power_0": "Уровень 0", + "fire_power_1": "Уровень 1", + "fire_power_2": "Уровень 2", + "fire_power_3": "Уровень 3", + "fire_power_4": "Уровень 4", + "fire_power_5": "Уровень 5", + "fire_power_6": "Уровень 6", + "fire_power_7": "Уровень 7", + "fire_power_8": "Уровень 8", + "fire_power_9": "Уровень 9", + "fire_power_10": "Уровень 10", + "unknown": "Неизвестно" + } + }, + "minute_set": { + "name": "Установка минуты" + }, + "people_number": { + "name": "Количество человек" + }, + "probe_temperature": { + "name": "Температура щупа" + }, + "second_set": { + "name": "Установка секунды" + }, + "steam_quantity": { + "name": "Количество пара" + }, + "stepnum": { + "name": "Текущий шаг" + }, "temperature": { "name": "Температура" }, + "temperature_above": { + "name": "Верхняя температура" + }, + "temperature_underside": { + "name": "Нижняя температура" + }, + "totalstep": { + "name": "Всего шагов" + }, "wash_time_value": { "name": "Wash time value" }, @@ -570,6 +778,7 @@ "keep_warm_remaining": { "name": "Keep Warm Remaining" }, + "fault_code": { "name": "Код неисправности" }, "keep_warm_time": { "name": "Keep Warm Time" }, @@ -594,6 +803,64 @@ "outdoor_temperature": { "name": "Outdoor Temperature" }, + "comp_run_freq": { + "name": "Compressor Frequency" + }, + "outdoor_fan_speed": { + "name": "Outdoor Fan Speed" + }, + "unit_mode_run": { + "name": "Unit Run Mode", + "state": { + "off": "Off", + "auto": "Auto", + "cool": "Cool", + "heat": "Heat", + "dhw": "DHW" + } + }, + "odu_target_fre": { + "name": "Target Compressor Frequency" + }, + "odu_voltage": { + "name": "Outdoor Unit Voltage" + }, + "odu_comp_current": { + "name": "Compressor Current" + }, + "exv_current": { + "name": "Electronic Expansion Valve Opening" + }, + "fg_capacity_need": { + "name": "Capacity Demand" + }, + "pressure_high": { + "name": "Refrigerant Pressure (High Side)" + }, + "pressure_low": { + "name": "Refrigerant Pressure (Low Side)" + }, + "temp_t1": { + "name": "Temperature Sensor T1" + }, + "temp_t2": { + "name": "Plate Heat Exchanger Temperature (T2)" + }, + "temp_t2b": { + "name": "Plate Heat Exchanger Outlet Temperature (T2B)" + }, + "temp_t3": { + "name": "Outdoor Coil Temperature (T3)" + }, + "temp_tp": { + "name": "Discharge Pipe Temperature (TP)" + }, + "temp_th": { + "name": "Suction Temperature (TH)" + }, + "temp_tf": { + "name": "Power Module Temperature (TF)" + }, "program": { "name": "Программа" }, @@ -741,6 +1008,36 @@ "max_temperature": { "name": "Максимальная целевая температура" }, + "max_temperature_upper_limit": { + "name": "Верхний предел максимальной температуры" + }, + "max_temperature_lower_limit": { + "name": "Нижний предел максимальной температуры" + }, + "disinfection_temperature_upper_limit": { + "name": "Верхний предел температуры дезинфекции" + }, + "disinfection_temperature_lower_limit": { + "name": "Нижний предел температуры дезинфекции" + }, + "dr_option": { + "name": "Параметр отклика на спрос" + }, + "remaining_hot_water_max": { + "name": "Максимальный остаток горячей воды" + }, + "force_e_heating_status": { + "name": "Статус принудительного электрического нагрева" + }, + "holiday_max": { + "name": "Максимальная длительность отпуска" + }, + "holiday_min": { + "name": "Минимальная длительность отпуска" + }, + "timer_step_gap": { + "name": "Шаг таймера" + }, "vacation_start_year": { "name": "Год начала отпуска" }, @@ -759,6 +1056,121 @@ "auto_sterilize_minute": { "name": "Минута автостерилизации" }, + "weight": { + "name": "Вес" + }, + "work_mode": { + "name": "Рабочий режим", + "state": { + "microwave": "Микроволны", + "microwave_1": "Микроволны 1", + "microwave_2": "Микроволны 2", + "microwave_3": "Микроволны 3", + "microwave_4": "Микроволны 4", + "microwave_5": "Микроволны 5", + "microwave_steam_above_tube": "Микроволны Пар Верхний Тэн", + "microwave_double_tube": "Микроволны Двойной Тэн", + "microwave_hot_wind_tube_fan": "Микроволны Горячий воздух Тэн Вентилятор", + "microwave_underside_tube_hot_wind_tube_fan": "Микроволны Нижний Тэн Горячий воздух Вентилятор", + "microwave_double_tube_hot_wind_tube_fan": "Микроволны Двойной Тэн Горячий воздух Вентилятор", + "microwave_steam": "Микроволны Пар", + "microwave_steam_1": "Микроволны Пар 1", + "unfreeze": "Разморозка", + "unfreeze_1": "Разморозка 1", + "unfreeze_2": "Разморозка 2", + "unfreeze_3": "Разморозка 3", + "unfreeze_t": "Разморозка T", + "microwave_above_tube": "Микроволны Верхний Тэн", + "microwave_above_tube_1": "Микроволны Верхний Тэн 1", + "microwave_above_tube_2": "Микроволны Верхний Тэн 2", + "microwave_above_tube_fan": "Микроволны Верхний Тэн Вентилятор", + "fast_unfreeze": "Быстрая разморозка", + "fresh_unfreeze": "Свежая разморозка", + "microwave_zymosis": "Микроволны Брожение", + "pure_steam": "Чистый Пар", + "pure_steam_1": "Чистый Пар 1", + "pure_steam_2": "Чистый Пар 2", + "pure_steam_3": "Чистый Пар 3", + "pure_steam_4": "Чистый Пар 4", + "pure_steam_5": "Чистый Пар 5", + "pure_steam_6": "Чистый Пар 6", + "pure_steam_7": "Чистый Пар 7", + "pure_steam_8": "Чистый Пар 8", + "pure_steam_9": "Чистый Пар 9", + "steam_above_tube": "Пар Верхний Тэн", + "steam_underside_tube": "Пар Нижний Тэн", + "steam_double_tube": "Пар Двойной Тэн", + "steam_hot_wind_tube_fan": "Пар Горячий воздух Тэн Вентилятор", + "steam_hot_wind_tube_fan_1": "Пар Горячий воздух Тэн Вентилятор 1", + "steam_hot_wind_tube_fan_2": "Пар Горячий воздух Тэн Вентилятор 2", + "steam_hot_wind_tube": "Пар Горячий воздух Тэн", + "steam_double_tube_fan": "Пар Двойной Тэн Вентилятор", + "steam_above_inside_outside_tube_fan": "Пар Верхний Внутренний Внешний Тэн Вентилятор", + "steam_above_inside_tube_fan": "Пар Верхний Внутренний Тэн Вентилятор", + "above_tube": "Верхний Тэн", + "underside_tube": "Нижний Тэн", + "double_tube": "Двойной Тэн", + "hot_wind_tube_fan": "Горячий воздух Тэн Вентилятор", + "pure_preheat": "Чистый Преднагрев", + "above_tube_hot_wind_tube_fan": "Верхний Тэн Горячий воздух Вентилятор", + "underside_tube_hot_wind_tube_fan": "Нижний Тэн Горячий воздух Вентилятор", + "zymosis": "Брожение", + "double_tube_hot_wind_tube_fan": "Двойной Тэн Горячий воздух Вентилятор", + "above_tube_revolve": "Верхний Тэн Вращение", + "underside_tube_revolve": "Нижний Тэн Вращение", + "double_tube_revolve": "Двойной Тэн Вращение", + "hot_wind_tube_fan_revolve": "Горячий воздух Тэн Вентилятор Вращение", + "warm": "Подогрев", + "double_tube_fan": "Двойной Тэн Вентилятор", + "double_tube_fan_1": "Двойной Тэн Вентилятор 1", + "double_tube_fan_2": "Двойной Тэн Вентилятор 2", + "double_tube_fan_3": "Двойной Тэн Вентилятор 3", + "above_inside_tube_revolve": "Верхний Внутренний Тэн Вращение", + "above_inside_tube_fan": "Верхний Внутренний Тэн Вентилятор", + "above_inside_outside_tube_revolve": "Верхний Внутренний Внешний Тэн Вращение", + "above_inside_outside_tube_fan": "Верхний Внутренний Внешний Тэн Вентилятор", + "above_inside_underside_tube": "Верхний Внутренний Нижний Тэн", + "above_inside_underside_tube_1": "Верхний Внутренний Нижний Тэн 1", + "above_inside_underside_tube_fan": "Верхний Внутренний Нижний Тэн Вентилятор", + "above_inside_underside_tube_fan_1": "Верхний Внутренний Нижний Тэн Вентилятор 1", + "above_inside_tube": "Верхний Внутренний Тэн", + "above_inside_outside_tube": "Верхний Внутренний Внешний Тэн", + "underside_tube_fan": "Нижний Тэн Вентилятор", + "above_tube_fan": "Верхний Тэн Вентилятор", + "above_tube_fan_1": "Верхний Тэн Вентилятор 1", + "above_tube_fan_2": "Верхний Тэн Вентилятор 2", + "scale_clean": "Удаление накипи", + "clean": "Очистка", + "remove_odor": "Удаление запаха", + "remove_odor_2": "Удаление запаха 2", + "high_temperature_clean": "Высокая температура Очистка", + "dining_utensils_clean": "Столовые приборы Очистка", + "auto_menu": "Автоменю", + "eco": "Эко", + "above_tube_1": "Верхний Тэн 1", + "above_tube_2": "Верхний Тэн 2", + "above_tube_3": "Верхний Тэн 3", + "underside_tube_1": "Нижний Тэн 1", + "underside_tube_2": "Нижний Тэн 2", + "double_tube_1": "Двойной Тэн 1", + "double_tube_2": "Двойной Тэн 2", + "double_tube_3": "Двойной Тэн 3", + "double_tube_4": "Двойной Тэн 4", + "double_tube_5": "Двойной Тэн 5", + "double_tube_6": "Двойной Тэн 6", + "hot_wind_tube_fan_1": "Горячий воздух Тэн Вентилятор 1", + "hot_wind_tube_fan_2": "Горячий воздух Тэн Вентилятор 2", + "hot_wind_tube_fan_3": "Горячий воздух Тэн Вентилятор 3", + "hot_wind_tube_fan_4": "Горячий воздух Тэн Вентилятор 4", + "hot_wind_tube_fan_5": "Горячий воздух Тэн Вентилятор 5", + "double_tube_hot_wind_tube_fan_1": "Двойной Тэн Горячий воздух Вентилятор 1", + "double_tube_hot_wind_tube_fan_2": "Двойной Тэн Горячий воздух Вентилятор 2", + "double_tube_hot_wind_tube_fan_3": "Двойной Тэн Горячий воздух Вентилятор 3", + "double_tube_hot_wind_tube_fan_4": "Двойной Тэн Горячий воздух Вентилятор 4", + "double_tube_hot_wind_tube_fan_5": "Двойной Тэн Горячий воздух Вентилятор 5", + "unknown": "Неизвестно" + } + }, "working_time": { "name": "Время работы" }, @@ -836,6 +1248,9 @@ "disinfect": { "name": "Дезинфекция" }, + "maintenance_reminder": { + "name": "Напоминание об обслуживании" + }, "vacation_mode": { "name": "Режим отпуска" }, @@ -863,9 +1278,15 @@ "frost_protect": { "name": "Защита от замерзания" }, + "furnace_light": { + "name": "Свет духовки" + }, "heating_power": { "name": "Нагреватель" }, + "hot_wind": { + "name": "Горячий воздух" + }, "indirect_wind": { "name": "Indirect Wind" }, @@ -905,6 +1326,9 @@ "regeneration": { "name": "Регенерация" }, + "turntable": { + "name": "Вращающийся поднос" + }, "water_pump": { "name": "Водяной насос" }, @@ -965,6 +1389,9 @@ "self_clean": { "name": "Self Clean" }, + "ieco": { + "name": "iECO" + }, "sound": { "name": "Sound" }, @@ -997,6 +1424,24 @@ }, "zone2_power": { "name": "Zone2 Power" + }, + "boiling": { + "name": "Кипячение воды" + }, + "tea_bar_boil": { + "name": "Выключатель кипячения" + }, + "tea_bar_child_lock": { + "name": "Блокировка" + }, + "keep_warm": { + "name": "Поддержание тепла" + }, + "tea_bar_cooling": { + "name": "Охлаждение" + }, + "screen_off": { + "name": "Выключение экрана" } }, "water_heater": { diff --git a/custom_components/midea_ac_lan/translations/sk.json b/custom_components/midea_ac_lan/translations/sk.json index deea85f8..1764eaef 100644 --- a/custom_components/midea_ac_lan/translations/sk.json +++ b/custom_components/midea_ac_lan/translations/sk.json @@ -84,6 +84,12 @@ "burning_state": { "name": "Burning State" }, + "clean_scale": { + "name": "Odstraňovanie vodného kameňa" + }, + "clean_sink_ponding": { + "name": "Nahromadenie vody v umývadle" + }, "cleaning_reminder": { "name": "Cleaning Reminder" }, @@ -93,6 +99,12 @@ "cooking": { "name": "Cooking" }, + "dissipate_heat": { + "name": "Odvod tepla" + }, + "door": { + "name": "Dvere" + }, "error_code": { "name": "Kód chyby" }, @@ -111,6 +123,9 @@ "flex_zone_door_overtime": { "name": "Flex Zone Door" }, + "flip_side": { + "name": "Otočiť" + }, "freezer_door": { "name": "Freezer Door" }, @@ -123,9 +138,25 @@ "heating": { "name": "Heating" }, + "dispensing": { + "name": "Výdaj vody" + }, + "lack_water": { "name": "Nedostatok vody" }, + "standby": { "name": "Pohotovostný režim" }, + "hot_water_dispensing": { "name": "Výdaj horúcej vody" }, + "fault": { "name": "Porucha" }, "heating_working": { "name": "Heating Working Status" }, + "high_temperature": { + "name": "Vysoká teplota" + }, + "high_temperature_lock": { + "name": "Zámok vysokej teploty" + }, + "high_temperature_work": { + "name": "Práca pri vysokej teplote" + }, "keep_warm": { "name": "Keep Warm" }, @@ -162,9 +193,24 @@ "oilcup_full": { "name": "Oil-cup Full" }, + "ota": { + "name": "OTA" + }, + "pre_heat": { + "name": "Predohrev" + }, + "probe": { + "name": "Teplotná sonda" + }, + "probe_mode": { + "name": "Režim sondy" + }, "protection": { "name": "Protection" }, + "reaction": { + "name": "Reakcia" + }, "refrigerator_door": { "name": "Refrigerator Door" }, @@ -192,6 +238,66 @@ "maintenance_reminder": { "name": "Pripomienka údržby" }, + "dr_enable": { + "name": "Odozva na dopyt" + }, + "electric_rod_exception": { + "name": "Porucha elektrického výhrevného telesa" + }, + "ac_heater_priority": { + "name": "Priorita tepelného čerpadla" + }, + "high_temp_reminder": { + "name": "Pripomienka vysokej teploty" + }, + "new_version_water_heater": { + "name": "Rozšírený protokol ohrievača vody" + }, + "heat_recovery_status": { + "name": "Rekuperácia tepla" + }, + "holiday_mode": { + "name": "Režim dovolenky" + }, + "hybrid_motion_mode": { + "name": "Hybridný pohybový režim" + }, + "support_boost_mode": { + "name": "Podpora režimu Boost" + }, + "support_silent_mode": { + "name": "Podpora tichého režimu" + }, + "support_remaining_hot_water": { + "name": "Podpora zvyšnej teplej vody" + }, + "support_electric_mode": { + "name": "Podpora elektrického režimu" + }, + "support_auto_disinfect": { + "name": "Podpora automatickej dezinfekcie" + }, + "support_force_e_heating": { + "name": "Podpora núteného elektrického ohrevu" + }, + "support_tou": { + "name": "Podpora časového používania" + }, + "support_ac_heater_priority": { + "name": "Podpora priority tepelného čerpadla" + }, + "support_heat_recovery": { + "name": "Podpora rekuperácie tepla" + }, + "support_heat_pump_mode": { + "name": "Podpora režimu tepelného čerpadla" + }, + "support_smart_mode": { + "name": "Podpora inteligentného režimu" + }, + "support_negative_temperature": { + "name": "Podpora záporných teplôt" + }, "maintain_warn": { "name": "Upozornenie na údržbu" }, @@ -314,6 +420,15 @@ "vacation_days": { "name": "Dni dovolenky" }, + "max_temperature": { + "name": "Maximálna cieľová teplota" + }, + "disinfection_temperature": { + "name": "Teplota dezinfekcie" + }, + "schedule_mode": { + "name": "Režim plánovania" + }, "leak_water_protection_value": { "name": "Hodnota ochrany proti úniku vody" }, @@ -322,6 +437,12 @@ }, "water_hardness": { "name": "Tvrdosť vody" + }, + "boil_temperature": { + "name": "Cieľová teplota varenia" + }, + "keep_warm_time": { + "name": "Čas udržiavania teploty" } }, "select": { @@ -412,6 +533,25 @@ "bathing_leaving_temperature": { "name": "Bathing Leaving Water Temperature" }, + "bf_status": { + "name": "Stav", + "state": { + "save_power": "Úspora energie", + "standby": "Pohotovostný režim", + "work": "Pracuje", + "work_finish": "Dokončené", + "order": "Oneskorenie", + "pause": "Pozastavené", + "pause_c": "Pozastavené C", + "three": "Tri", + "wait_to_start": "Čakanie na spustenie", + "self_inspection": "Kontrola", + "query_version": "Verzia", + "demo": "Demo", + "after_checking": "Po kontrole", + "unknown": "Neznáme" + } + }, "bottom_compartment_remaining": { "name": "Bottom Compartment Remaining" }, @@ -427,12 +567,27 @@ "bright": { "name": "Bright Level" }, + "cbs_version": { + "name": "Verzia CBS" + }, + "cloudmenuid": { + "name": "ID cloudového menu" + }, "compressor_temperature": { "name": "Compressor Temperature" }, "condenser_temperature": { "name": "Condenser Temperature" }, + "cur_probe_temperature": { + "name": "Aktuálna teplota sondy" + }, + "cur_temperature_above": { + "name": "Aktuálna horná teplota" + }, + "cur_temperature_underside": { + "name": "Aktuálna dolná teplota" + }, "current_energy_consumption": { "name": "Current Energy Consumption" }, @@ -510,6 +665,15 @@ "estimated_water_consumption": { "name": "Odhadovaná spotreba vody" }, + "execute_status": { + "name": "Stav vykonania", + "state": { + "ok": "OK", + "status_nonsupport": "Stav nepodporovaný", + "function_nonsupport": "Funkcia nepodporovaná", + "param_range_error": "Chyba rozsahu parametra" + } + }, "fan_level": { "name": "Fan level" }, @@ -534,6 +698,23 @@ "filter3_life": { "name": "Filter3 Life Level" }, + "fire_power": { + "name": "Ohrev", + "state": { + "fire_power_0": "Úroveň 0", + "fire_power_1": "Úroveň 1", + "fire_power_2": "Úroveň 2", + "fire_power_3": "Úroveň 3", + "fire_power_4": "Úroveň 4", + "fire_power_5": "Úroveň 5", + "fire_power_6": "Úroveň 6", + "fire_power_7": "Úroveň 7", + "fire_power_8": "Úroveň 8", + "fire_power_9": "Úroveň 9", + "fire_power_10": "Úroveň 10", + "unknown": "Neznáme" + } + }, "flex_zone_actual_temp": { "name": "Flex Zone Actual Temperature" }, @@ -570,6 +751,7 @@ "keep_warm_remaining": { "name": "Keep Warm Remaining" }, + "fault_code": { "name": "Kód poruchy" }, "keep_warm_time": { "name": "Keep Warm Time" }, @@ -585,6 +767,9 @@ "middle_compartment_temperature": { "name": "Middle Compartment Temperature" }, + "minute_set": { + "name": "Nastavenie minúty" + }, "mode": { "name": "Mode" }, @@ -594,6 +779,70 @@ "outdoor_temperature": { "name": "Outdoor Temperature" }, + "comp_run_freq": { + "name": "Frekvencia kompresora" + }, + "outdoor_fan_speed": { + "name": "Rýchlosť vonkajšieho ventilátora" + }, + "unit_mode_run": { + "name": "Prevádzkový režim jednotky", + "state": { + "off": "Vypnuté", + "auto": "Auto", + "cool": "Chladenie", + "heat": "Kúrenie", + "dhw": "TÚV" + } + }, + "odu_target_fre": { + "name": "Cieľová frekvencia kompresora" + }, + "odu_voltage": { + "name": "Napätie vonkajšej jednotky" + }, + "odu_comp_current": { + "name": "Prúd kompresora" + }, + "exv_current": { + "name": "Otvorenie elektronického expanzného ventilu" + }, + "fg_capacity_need": { + "name": "Požiadavka na výkon" + }, + "pressure_high": { + "name": "Tlak chladiva (vysokotlaková strana)" + }, + "pressure_low": { + "name": "Tlak chladiva (nízkotlaková strana)" + }, + "temp_t1": { + "name": "Snímač teploty T1" + }, + "temp_t2": { + "name": "Teplota doskového výmenníka tepla (T2)" + }, + "temp_t2b": { + "name": "Výstupná teplota doskového výmenníka tepla (T2B)" + }, + "temp_t3": { + "name": "Teplota vonkajšieho výmenníka (T3)" + }, + "temp_tp": { + "name": "Teplota výtlačného potrubia (TP)" + }, + "temp_th": { + "name": "Teplota sania (TH)" + }, + "temp_tf": { + "name": "Teplota výkonovej elektroniky (TF)" + }, + "people_number": { + "name": "Počet osôb" + }, + "probe_temperature": { + "name": "Teplota sondy" + }, "program": { "name": "Program" }, @@ -636,6 +885,9 @@ "seat_temperature": { "name": "Seat Temperature" }, + "second_set": { + "name": "Nastavenie sekundy" + }, "soak_time": { "name": "soak time" }, @@ -651,6 +903,12 @@ "status": { "name": "Status" }, + "steam_quantity": { + "name": "Množstvo pary" + }, + "stepnum": { + "name": "Aktuálny krok" + }, "storage_remaining": { "name": "Storage Remaining" }, @@ -663,6 +921,12 @@ "target_temperature": { "name": "Target Temperature" }, + "temperature_above": { + "name": "Horná teplota" + }, + "temperature_underside": { + "name": "Dolná teplota" + }, "time_remaining": { "name": "Time Remaining" }, @@ -684,6 +948,9 @@ "total_produced_energy": { "name": "Total produced energy" }, + "totalstep": { + "name": "Celkový počet krokov" + }, "tvoc": { "name": "TVOC" }, @@ -741,6 +1008,36 @@ "max_temperature": { "name": "Maximálna cieľová teplota" }, + "max_temperature_upper_limit": { + "name": "Horná hranica maximálnej teploty" + }, + "max_temperature_lower_limit": { + "name": "Dolná hranica maximálnej teploty" + }, + "disinfection_temperature_upper_limit": { + "name": "Horná hranica teploty dezinfekcie" + }, + "disinfection_temperature_lower_limit": { + "name": "Dolná hranica teploty dezinfekcie" + }, + "dr_option": { + "name": "Možnosť odozvy na dopyt" + }, + "remaining_hot_water_max": { + "name": "Maximálne zostávajúca teplá voda" + }, + "force_e_heating_status": { + "name": "Stav núteného elektrického ohrevu" + }, + "holiday_max": { + "name": "Maximálna dĺžka dovolenky" + }, + "holiday_min": { + "name": "Minimálna dĺžka dovolenky" + }, + "timer_step_gap": { + "name": "Krok časovača" + }, "vacation_start_year": { "name": "Rok začiatku dovolenky" }, @@ -759,6 +1056,121 @@ "auto_sterilize_minute": { "name": "Minúta automatickej sterilizácie" }, + "weight": { + "name": "Hmotnosť" + }, + "work_mode": { + "name": "Pracovný režim", + "state": { + "microwave": "Mikrovlnka", + "microwave_1": "Mikrovlnka 1", + "microwave_2": "Mikrovlnka 2", + "microwave_3": "Mikrovlnka 3", + "microwave_4": "Mikrovlnka 4", + "microwave_5": "Mikrovlnka 5", + "microwave_steam_above_tube": "Mikrovlnka Para Horný Trubica", + "microwave_double_tube": "Mikrovlnka Dvojitý Trubica", + "microwave_hot_wind_tube_fan": "Mikrovlnka Horúci vzduch Trubica Ventilátor", + "microwave_underside_tube_hot_wind_tube_fan": "Mikrovlnka Dolný Trubica Horúci vzduch Ventilátor", + "microwave_double_tube_hot_wind_tube_fan": "Mikrovlnka Dvojitý Trubica Horúci vzduch Ventilátor", + "microwave_steam": "Mikrovlnka Para", + "microwave_steam_1": "Mikrovlnka Para 1", + "unfreeze": "Odmrazovanie", + "unfreeze_1": "Odmrazovanie 1", + "unfreeze_2": "Odmrazovanie 2", + "unfreeze_3": "Odmrazovanie 3", + "unfreeze_t": "Odmrazovanie T", + "microwave_above_tube": "Mikrovlnka Horný Trubica", + "microwave_above_tube_1": "Mikrovlnka Horný Trubica 1", + "microwave_above_tube_2": "Mikrovlnka Horný Trubica 2", + "microwave_above_tube_fan": "Mikrovlnka Horný Trubica Ventilátor", + "fast_unfreeze": "Rýchly Odmrazovanie", + "fresh_unfreeze": "Čerstvý Odmrazovanie", + "microwave_zymosis": "Mikrovlnka Kvasenie", + "pure_steam": "Čistý Para", + "pure_steam_1": "Čistý Para 1", + "pure_steam_2": "Čistý Para 2", + "pure_steam_3": "Čistý Para 3", + "pure_steam_4": "Čistý Para 4", + "pure_steam_5": "Čistý Para 5", + "pure_steam_6": "Čistý Para 6", + "pure_steam_7": "Čistý Para 7", + "pure_steam_8": "Čistý Para 8", + "pure_steam_9": "Čistý Para 9", + "steam_above_tube": "Para Horný Trubica", + "steam_underside_tube": "Para Dolný Trubica", + "steam_double_tube": "Para Dvojitý Trubica", + "steam_hot_wind_tube_fan": "Para Horúci vzduch Trubica Ventilátor", + "steam_hot_wind_tube_fan_1": "Para Horúci vzduch Trubica Ventilátor 1", + "steam_hot_wind_tube_fan_2": "Para Horúci vzduch Trubica Ventilátor 2", + "steam_hot_wind_tube": "Para Horúci vzduch Trubica", + "steam_double_tube_fan": "Para Dvojitý Trubica Ventilátor", + "steam_above_inside_outside_tube_fan": "Para Horný Vnútorný Vonkajší Trubica Ventilátor", + "steam_above_inside_tube_fan": "Para Horný Vnútorný Trubica Ventilátor", + "above_tube": "Horný Trubica", + "underside_tube": "Dolný Trubica", + "double_tube": "Dvojitý Trubica", + "hot_wind_tube_fan": "Horúci vzduch Trubica Ventilátor", + "pure_preheat": "Čistý Predhrievanie", + "above_tube_hot_wind_tube_fan": "Horný Trubica Horúci vzduch Ventilátor", + "underside_tube_hot_wind_tube_fan": "Dolný Trubica Horúci vzduch Ventilátor", + "zymosis": "Kvasenie", + "double_tube_hot_wind_tube_fan": "Dvojitý Trubica Horúci vzduch Ventilátor", + "above_tube_revolve": "Horný Trubica Otáčavý", + "underside_tube_revolve": "Dolný Trubica Otáčavý", + "double_tube_revolve": "Dvojitý Trubica Otáčavý", + "hot_wind_tube_fan_revolve": "Horúci vzduch Trubica Ventilátor Otáčavý", + "warm": "Udržiavanie tepla", + "double_tube_fan": "Dvojitý Trubica Ventilátor", + "double_tube_fan_1": "Dvojitý Trubica Ventilátor 1", + "double_tube_fan_2": "Dvojitý Trubica Ventilátor 2", + "double_tube_fan_3": "Dvojitý Trubica Ventilátor 3", + "above_inside_tube_revolve": "Horný Vnútorný Trubica Otáčavý", + "above_inside_tube_fan": "Horný Vnútorný Trubica Ventilátor", + "above_inside_outside_tube_revolve": "Horný Vnútorný Vonkajší Trubica Otáčavý", + "above_inside_outside_tube_fan": "Horný Vnútorný Vonkajší Trubica Ventilátor", + "above_inside_underside_tube": "Horný Vnútorný Dolný Trubica", + "above_inside_underside_tube_1": "Horný Vnútorný Dolný Trubica 1", + "above_inside_underside_tube_fan": "Horný Vnútorný Dolný Trubica Ventilátor", + "above_inside_underside_tube_fan_1": "Horný Vnútorný Dolný Trubica Ventilátor 1", + "above_inside_tube": "Horný Vnútorný Trubica", + "above_inside_outside_tube": "Horný Vnútorný Vonkajší Trubica", + "underside_tube_fan": "Dolný Trubica Ventilátor", + "above_tube_fan": "Horný Trubica Ventilátor", + "above_tube_fan_1": "Horný Trubica Ventilátor 1", + "above_tube_fan_2": "Horný Trubica Ventilátor 2", + "scale_clean": "Odvápňovanie", + "clean": "Čistenie", + "remove_odor": "Odstránenie zápachu", + "remove_odor_2": "Odstránenie zápachu 2", + "high_temperature_clean": "Vysoká teplota Čistenie", + "dining_utensils_clean": "Príbory Čistenie", + "auto_menu": "Automatické menu", + "eco": "Eco", + "above_tube_1": "Horný Trubica 1", + "above_tube_2": "Horný Trubica 2", + "above_tube_3": "Horný Trubica 3", + "underside_tube_1": "Dolný Trubica 1", + "underside_tube_2": "Dolný Trubica 2", + "double_tube_1": "Dvojitý Trubica 1", + "double_tube_2": "Dvojitý Trubica 2", + "double_tube_3": "Dvojitý Trubica 3", + "double_tube_4": "Dvojitý Trubica 4", + "double_tube_5": "Dvojitý Trubica 5", + "double_tube_6": "Dvojitý Trubica 6", + "hot_wind_tube_fan_1": "Horúci vzduch Trubica Ventilátor 1", + "hot_wind_tube_fan_2": "Horúci vzduch Trubica Ventilátor 2", + "hot_wind_tube_fan_3": "Horúci vzduch Trubica Ventilátor 3", + "hot_wind_tube_fan_4": "Horúci vzduch Trubica Ventilátor 4", + "hot_wind_tube_fan_5": "Horúci vzduch Trubica Ventilátor 5", + "double_tube_hot_wind_tube_fan_1": "Dvojitý Trubica Horúci vzduch Ventilátor 1", + "double_tube_hot_wind_tube_fan_2": "Dvojitý Trubica Horúci vzduch Ventilátor 2", + "double_tube_hot_wind_tube_fan_3": "Dvojitý Trubica Horúci vzduch Ventilátor 3", + "double_tube_hot_wind_tube_fan_4": "Dvojitý Trubica Horúci vzduch Ventilátor 4", + "double_tube_hot_wind_tube_fan_5": "Dvojitý Trubica Horúci vzduch Ventilátor 5", + "unknown": "Neznáme" + } + }, "working_time": { "name": "Working Time" }, @@ -836,6 +1248,9 @@ "disinfect": { "name": "Disinfect" }, + "maintenance_reminder": { + "name": "Pripomienka údržby" + }, "vacation_mode": { "name": "Režim dovolenky" }, @@ -863,9 +1278,18 @@ "frost_protect": { "name": "Frost Protect" }, + "furnace_light": { + "name": "Svetlo rúry" + }, "heating_power": { "name": "Heating Power" }, + "hot_wind": { + "name": "Horúci vzduch" + }, + "ramadan": { + "name": "Ramadánsky režim" + }, "indirect_wind": { "name": "Indirect Wind" }, @@ -905,6 +1329,9 @@ "regeneration": { "name": "Regenerácia" }, + "turntable": { + "name": "Otočný tanier" + }, "water_pump": { "name": "Vodné čerpadlo" }, @@ -965,6 +1392,9 @@ "self_clean": { "name": "Self Clean" }, + "ieco": { + "name": "iECO" + }, "sound": { "name": "Sound" }, @@ -997,6 +1427,24 @@ }, "zone2_power": { "name": "Zone2 Power" + }, + "boiling": { + "name": "Varenie vody" + }, + "tea_bar_boil": { + "name": "Spínač varenia vody" + }, + "tea_bar_child_lock": { + "name": "Detský zámok" + }, + "keep_warm": { + "name": "Udržiavanie teploty" + }, + "tea_bar_cooling": { + "name": "Chladenie" + }, + "screen_off": { + "name": "Vypnutie obrazovky" } }, "water_heater": { diff --git a/custom_components/midea_ac_lan/translations/zh-Hans.json b/custom_components/midea_ac_lan/translations/zh-Hans.json index 85d0cefd..a2463495 100644 --- a/custom_components/midea_ac_lan/translations/zh-Hans.json +++ b/custom_components/midea_ac_lan/translations/zh-Hans.json @@ -84,6 +84,12 @@ "burning_state": { "name": "燃烧状态" }, + "clean_scale": { + "name": "除垢" + }, + "clean_sink_ponding": { + "name": "水槽积水" + }, "cleaning_reminder": { "name": "清洁提示" }, @@ -93,6 +99,12 @@ "cooking": { "name": "烹饪中" }, + "dissipate_heat": { + "name": "散热" + }, + "door": { + "name": "门" + }, "error_code": { "name": "错误代码" }, @@ -111,6 +123,9 @@ "flex_zone_door_overtime": { "name": "变温区门超时" }, + "flip_side": { + "name": "翻面提醒" + }, "freezer_door": { "name": "冷冻室门状态" }, @@ -123,9 +138,33 @@ "heating": { "name": "加热" }, + "dispensing": { + "name": "正在取水" + }, + "lack_water": { + "name": "缺水" + }, + "standby": { + "name": "待机" + }, + "hot_water_dispensing": { + "name": "正在输出热水" + }, + "fault": { + "name": "设备故障" + }, "heating_working": { "name": "取暖工作状态" }, + "high_temperature": { + "name": "高温" + }, + "high_temperature_lock": { + "name": "高温锁" + }, + "high_temperature_work": { + "name": "高温工作" + }, "keep_warm": { "name": "保温" }, @@ -162,9 +201,21 @@ "oilcup_full": { "name": "油杯满提示" }, + "pre_heat": { + "name": "预热" + }, + "probe": { + "name": "探针" + }, + "probe_mode": { + "name": "探针模式" + }, "protection": { "name": "安全防护" }, + "reaction": { + "name": "反应" + }, "refrigerator_door": { "name": "冷藏室门状态" }, @@ -192,6 +243,66 @@ "maintenance_reminder": { "name": "维护提醒" }, + "dr_enable": { + "name": "需求响应" + }, + "electric_rod_exception": { + "name": "电加热故障" + }, + "ac_heater_priority": { + "name": "热泵优先" + }, + "high_temp_reminder": { + "name": "高温提醒" + }, + "new_version_water_heater": { + "name": "扩展热水器协议" + }, + "heat_recovery_status": { + "name": "热回收" + }, + "holiday_mode": { + "name": "假日模式" + }, + "hybrid_motion_mode": { + "name": "混合运动模式" + }, + "support_boost_mode": { + "name": "Boost 模式支持" + }, + "support_silent_mode": { + "name": "静音模式支持" + }, + "support_remaining_hot_water": { + "name": "剩余热水支持" + }, + "support_electric_mode": { + "name": "电加热模式支持" + }, + "support_auto_disinfect": { + "name": "自动消毒支持" + }, + "support_force_e_heating": { + "name": "强制电加热支持" + }, + "support_tou": { + "name": "分时电价支持" + }, + "support_ac_heater_priority": { + "name": "热泵优先支持" + }, + "support_heat_recovery": { + "name": "热回收支持" + }, + "support_heat_pump_mode": { + "name": "热泵模式支持" + }, + "support_smart_mode": { + "name": "智能模式支持" + }, + "support_negative_temperature": { + "name": "负温支持" + }, "maintain_warn": { "name": "维护警告" }, @@ -314,6 +425,15 @@ "vacation_days": { "name": "假期天数" }, + "max_temperature": { + "name": "最高目标温度" + }, + "disinfection_temperature": { + "name": "消毒温度" + }, + "schedule_mode": { + "name": "计划模式" + }, "leak_water_protection_value": { "name": "漏水保护阈值" }, @@ -322,6 +442,12 @@ }, "water_hardness": { "name": "进水硬度" + }, + "boil_temperature": { + "name": "烧水目标温度" + }, + "keep_warm_time": { + "name": "保温时间" } }, "select": { @@ -412,6 +538,25 @@ "bathing_leaving_temperature": { "name": "淋浴出水温度" }, + "bf_status": { + "name": "状态", + "state": { + "save_power": "省电", + "standby": "待机", + "work": "工作中", + "work_finish": "已完成", + "order": "预约", + "pause": "暂停", + "pause_c": "暂停 C", + "three": "三", + "wait_to_start": "等待启动", + "self_inspection": "自检", + "query_version": "查询版本", + "demo": "演示", + "after_checking": "检查后", + "unknown": "未知" + } + }, "bottom_compartment_remaining": { "name": "下层剩余时间" }, @@ -427,12 +572,24 @@ "bright": { "name": "亮碟剂档位" }, + "cloudmenuid": { + "name": "云菜单 ID" + }, "compressor_temperature": { "name": "压缩机温度" }, "condenser_temperature": { "name": "冷凝器温度" }, + "cur_probe_temperature": { + "name": "当前探针温度" + }, + "cur_temperature_above": { + "name": "当前上管温度" + }, + "cur_temperature_underside": { + "name": "当前下管温度" + }, "current_energy_consumption": { "name": "当前能耗" }, @@ -448,9 +605,62 @@ "dehydration_time_value": { "name": "脱水时间值" }, + "execute_status": { + "name": "执行状态", + "state": { + "ok": "正常", + "status_nonsupport": "不支持该状态", + "function_nonsupport": "不支持该功能", + "param_range_error": "参数范围错误" + } + }, + "fire_power": { + "name": "火力", + "state": { + "fire_power_0": "0 档", + "fire_power_1": "1 档", + "fire_power_2": "2 档", + "fire_power_3": "3 档", + "fire_power_4": "4 档", + "fire_power_5": "5 档", + "fire_power_6": "6 档", + "fire_power_7": "7 档", + "fire_power_8": "8 档", + "fire_power_9": "9 档", + "fire_power_10": "10 档", + "unknown": "未知" + } + }, + "minute_set": { + "name": "分钟设置" + }, + "people_number": { + "name": "人数" + }, + "probe_temperature": { + "name": "探针温度" + }, + "second_set": { + "name": "秒钟设置" + }, + "steam_quantity": { + "name": "蒸汽量" + }, + "stepnum": { + "name": "当前步数" + }, "temperature": { "name": "目标温度" }, + "temperature_above": { + "name": "上管温度" + }, + "temperature_underside": { + "name": "下管温度" + }, + "totalstep": { + "name": "总步数" + }, "wash_time_value": { "name": "洗涤时间值" }, @@ -570,6 +780,9 @@ "keep_warm_remaining": { "name": "保温剩余时间" }, + "fault_code": { + "name": "故障代码" + }, "keep_warm_time": { "name": "保温时间" }, @@ -594,6 +807,64 @@ "outdoor_temperature": { "name": "室外温度" }, + "comp_run_freq": { + "name": "Compressor Frequency" + }, + "outdoor_fan_speed": { + "name": "Outdoor Fan Speed" + }, + "unit_mode_run": { + "name": "Unit Run Mode", + "state": { + "off": "Off", + "auto": "Auto", + "cool": "Cool", + "heat": "Heat", + "dhw": "DHW" + } + }, + "odu_target_fre": { + "name": "Target Compressor Frequency" + }, + "odu_voltage": { + "name": "Outdoor Unit Voltage" + }, + "odu_comp_current": { + "name": "Compressor Current" + }, + "exv_current": { + "name": "Electronic Expansion Valve Opening" + }, + "fg_capacity_need": { + "name": "Capacity Demand" + }, + "pressure_high": { + "name": "Refrigerant Pressure (High Side)" + }, + "pressure_low": { + "name": "Refrigerant Pressure (Low Side)" + }, + "temp_t1": { + "name": "Temperature Sensor T1" + }, + "temp_t2": { + "name": "Plate Heat Exchanger Temperature (T2)" + }, + "temp_t2b": { + "name": "Plate Heat Exchanger Outlet Temperature (T2B)" + }, + "temp_t3": { + "name": "Outdoor Coil Temperature (T3)" + }, + "temp_tp": { + "name": "Discharge Pipe Temperature (TP)" + }, + "temp_th": { + "name": "Suction Temperature (TH)" + }, + "temp_tf": { + "name": "Power Module Temperature (TF)" + }, "program": { "name": "程序" }, @@ -741,6 +1012,36 @@ "max_temperature": { "name": "最高目标温度" }, + "max_temperature_upper_limit": { + "name": "最高温度上限" + }, + "max_temperature_lower_limit": { + "name": "最高温度下限" + }, + "disinfection_temperature_upper_limit": { + "name": "消毒温度上限" + }, + "disinfection_temperature_lower_limit": { + "name": "消毒温度下限" + }, + "dr_option": { + "name": "需求响应选项" + }, + "remaining_hot_water_max": { + "name": "最大剩余热水" + }, + "force_e_heating_status": { + "name": "强制电加热状态" + }, + "holiday_max": { + "name": "假日最大时长" + }, + "holiday_min": { + "name": "假日最小时长" + }, + "timer_step_gap": { + "name": "定时步长" + }, "vacation_start_year": { "name": "假期开始年" }, @@ -759,6 +1060,121 @@ "auto_sterilize_minute": { "name": "自动杀菌分钟" }, + "weight": { + "name": "重量" + }, + "work_mode": { + "name": "工作模式", + "state": { + "microwave": "微波", + "microwave_1": "微波 1", + "microwave_2": "微波 2", + "microwave_3": "微波 3", + "microwave_4": "微波 4", + "microwave_5": "微波 5", + "microwave_steam_above_tube": "微波蒸汽上管", + "microwave_double_tube": "微波双管", + "microwave_hot_wind_tube_fan": "微波热风管风扇", + "microwave_underside_tube_hot_wind_tube_fan": "微波下管热风风扇", + "microwave_double_tube_hot_wind_tube_fan": "微波双管热风风扇", + "microwave_steam": "微波蒸汽", + "microwave_steam_1": "微波蒸汽 1", + "unfreeze": "解冻", + "unfreeze_1": "解冻 1", + "unfreeze_2": "解冻 2", + "unfreeze_3": "解冻 3", + "unfreeze_t": "解冻 T", + "microwave_above_tube": "微波上管", + "microwave_above_tube_1": "微波上管 1", + "microwave_above_tube_2": "微波上管 2", + "microwave_above_tube_fan": "微波上管风扇", + "fast_unfreeze": "快速解冻", + "fresh_unfreeze": "生鲜解冻", + "microwave_zymosis": "微波发酵", + "pure_steam": "纯蒸", + "pure_steam_1": "纯蒸 1", + "pure_steam_2": "纯蒸 2", + "pure_steam_3": "纯蒸 3", + "pure_steam_4": "纯蒸 4", + "pure_steam_5": "纯蒸 5", + "pure_steam_6": "纯蒸 6", + "pure_steam_7": "纯蒸 7", + "pure_steam_8": "纯蒸 8", + "pure_steam_9": "纯蒸 9", + "steam_above_tube": "蒸汽上管", + "steam_underside_tube": "蒸汽下管", + "steam_double_tube": "蒸汽双管", + "steam_hot_wind_tube_fan": "蒸汽热风管风扇", + "steam_hot_wind_tube_fan_1": "蒸汽热风管风扇 1", + "steam_hot_wind_tube_fan_2": "蒸汽热风管风扇 2", + "steam_hot_wind_tube": "蒸汽热风管", + "steam_double_tube_fan": "蒸汽双管风扇", + "steam_above_inside_outside_tube_fan": "蒸汽上内外管风扇", + "steam_above_inside_tube_fan": "蒸汽上内管风扇", + "above_tube": "上管", + "underside_tube": "下管", + "double_tube": "双管", + "hot_wind_tube_fan": "热风管风扇", + "pure_preheat": "纯预热", + "above_tube_hot_wind_tube_fan": "上管热风风扇", + "underside_tube_hot_wind_tube_fan": "下管热风风扇", + "zymosis": "发酵", + "double_tube_hot_wind_tube_fan": "双管热风风扇", + "above_tube_revolve": "上管旋转", + "underside_tube_revolve": "下管旋转", + "double_tube_revolve": "双管旋转", + "hot_wind_tube_fan_revolve": "热风管风扇旋转", + "warm": "保温", + "double_tube_fan": "双管风扇", + "double_tube_fan_1": "双管风扇 1", + "double_tube_fan_2": "双管风扇 2", + "double_tube_fan_3": "双管风扇 3", + "above_inside_tube_revolve": "上内管旋转", + "above_inside_tube_fan": "上内管风扇", + "above_inside_outside_tube_revolve": "上内外管旋转", + "above_inside_outside_tube_fan": "上内外管风扇", + "above_inside_underside_tube": "上内下管", + "above_inside_underside_tube_1": "上内下管 1", + "above_inside_underside_tube_fan": "上内下管风扇", + "above_inside_underside_tube_fan_1": "上内下管风扇 1", + "above_inside_tube": "上内管", + "above_inside_outside_tube": "上内外管", + "underside_tube_fan": "下管风扇", + "above_tube_fan": "上管风扇", + "above_tube_fan_1": "上管风扇 1", + "above_tube_fan_2": "上管风扇 2", + "scale_clean": "除垢", + "clean": "清洁", + "remove_odor": "除味", + "remove_odor_2": "除味 2", + "high_temperature_clean": "高温清洁", + "dining_utensils_clean": "餐具清洁", + "auto_menu": "自动菜单", + "eco": "节能", + "above_tube_1": "上管 1", + "above_tube_2": "上管 2", + "above_tube_3": "上管 3", + "underside_tube_1": "下管 1", + "underside_tube_2": "下管 2", + "double_tube_1": "双管 1", + "double_tube_2": "双管 2", + "double_tube_3": "双管 3", + "double_tube_4": "双管 4", + "double_tube_5": "双管 5", + "double_tube_6": "双管 6", + "hot_wind_tube_fan_1": "热风管风扇 1", + "hot_wind_tube_fan_2": "热风管风扇 2", + "hot_wind_tube_fan_3": "热风管风扇 3", + "hot_wind_tube_fan_4": "热风管风扇 4", + "hot_wind_tube_fan_5": "热风管风扇 5", + "double_tube_hot_wind_tube_fan_1": "双管热风风扇 1", + "double_tube_hot_wind_tube_fan_2": "双管热风风扇 2", + "double_tube_hot_wind_tube_fan_3": "双管热风风扇 3", + "double_tube_hot_wind_tube_fan_4": "双管热风风扇 4", + "double_tube_hot_wind_tube_fan_5": "双管热风风扇 5", + "unknown": "未知" + } + }, "working_time": { "name": "工作时间" }, @@ -836,6 +1252,9 @@ "disinfect": { "name": "消毒" }, + "maintenance_reminder": { + "name": "维护提醒" + }, "vacation_mode": { "name": "假期模式" }, @@ -863,9 +1282,18 @@ "frost_protect": { "name": "防霜冻" }, + "furnace_light": { + "name": "炉灯" + }, "heating_power": { "name": "加热" }, + "hot_wind": { + "name": "热风" + }, + "ramadan": { + "name": "斋月模式" + }, "indirect_wind": { "name": "防直吹" }, @@ -905,6 +1333,9 @@ "regeneration": { "name": "再生" }, + "turntable": { + "name": "转盘" + }, "water_pump": { "name": "水泵" }, @@ -965,6 +1396,9 @@ "self_clean": { "name": "Self Clean" }, + "ieco": { + "name": "iECO 节能" + }, "sound": { "name": "Sound" }, @@ -997,6 +1431,24 @@ }, "zone2_power": { "name": "区域2恒温器开关" + }, + "boiling": { + "name": "烧水" + }, + "tea_bar_boil": { + "name": "烧水开关" + }, + "tea_bar_child_lock": { + "name": "童锁" + }, + "keep_warm": { + "name": "保温" + }, + "tea_bar_cooling": { + "name": "制冷" + }, + "screen_off": { + "name": "熄屏" } }, "water_heater": { diff --git a/custom_components/midea_ac_lan/water_heater.py b/custom_components/midea_ac_lan/water_heater.py index 0dc766fd..57f54a1b 100644 --- a/custom_components/midea_ac_lan/water_heater.py +++ b/custom_components/midea_ac_lan/water_heater.py @@ -33,7 +33,7 @@ from midealan.devices.e3 import MideaE3Device from midealan.devices.e6 import DeviceAttributes as E6Attributes from midealan.devices.e6 import MideaE6Device -from .const import DEVICES, DOMAIN +from .const import DEVICES, DOMAIN, supports_device from .midea_devices import MIDEA_DEVICES from .midea_entity import MideaEntity @@ -65,8 +65,10 @@ async def async_setup_entry( "dict", MIDEA_DEVICES[device.device_type]["entities"], ).items(): - if config["type"] == Platform.WATER_HEATER and ( - config.get("default") or entity_key in extra_switches + if ( + config["type"] == Platform.WATER_HEATER + and supports_device(device.model, device.subtype, config) + and (config.get("default") or entity_key in extra_switches) ): if device.device_type == DeviceType.E2: devs.append(MideaE2WaterHeater(device, entity_key)) @@ -471,6 +473,7 @@ class MideaCDWaterHeater(MideaWaterHeater): """Midea CD Water Heater supported features.""" return ( WaterHeaterEntityFeature.TARGET_TEMPERATURE + | WaterHeaterEntityFeature.ON_OFF | WaterHeaterEntityFeature.OPERATION_MODE ) diff --git a/zigbee2mqtt/state.json b/zigbee2mqtt/state.json index 213418ac..08b5f03d 100644 --- a/zigbee2mqtt/state.json +++ b/zigbee2mqtt/state.json @@ -4,10 +4,10 @@ "state": "ON", "led_brightness": 100, "countdown_to_turn_off": 0, - "voltage": 120.8, + "voltage": 120.2, "countdown_to_turn_on": 0, "ac_frequency": 60, - "power_factor": 0.11, + "power_factor": 0.14, "update": { "state": "idle", "installed_version": 268513381, @@ -22,15 +22,15 @@ }, "0xffffb40e0607af27": { "state": "ON", - "voltage": 120.2, + "voltage": 117.9, "ac_frequency": 60, "led_brightness": 100, "countdown_to_turn_off": 0, "countdown_to_turn_on": 0, - "power": 2, - "current": 0.09, - "energy": 37.6, - "power_factor": 0.2, + "power": 267.4, + "current": 2.5, + "energy": 37.69, + "power_factor": 0.9, "update": { "state": "idle", "installed_version": 268513381, @@ -45,10 +45,10 @@ "state": "ON", "led_brightness": 100, "countdown_to_turn_off": 0, - "voltage": 120.2, + "voltage": 120, "countdown_to_turn_on": 0, - "energy": 73.89, - "power_factor": 0.3, + "energy": 73.91, + "power_factor": 0.2, "ac_frequency": 60, "update": { "state": "idle", @@ -74,13 +74,13 @@ "led_brightness": 100, "countdown_to_turn_off": 0, "countdown_to_turn_on": 0, - "voltage": 122.2, + "voltage": 121.3, "state": "ON", "ac_frequency": 60, - "energy": 150.58, - "power": 0.8, - "current": 0.05, - "power_factor": 0.38, + "energy": 150.62, + "power": 104.2, + "current": 0.95, + "power_factor": 0.94, "update": { "state": "idle", "installed_version": 268513381, @@ -95,13 +95,13 @@ "led_brightness": 100, "countdown_to_turn_off": 0, "countdown_to_turn_on": 0, - "voltage": 120.3, - "energy": 71.68, + "voltage": 118.5, + "energy": 71.7, "state": "ON", - "power": 31.8, - "current": 0.35, + "power": 53, + "current": 0.66, "ac_frequency": 60, - "power_factor": 0.73, + "power_factor": 0.67, "update": { "state": "idle", "installed_version": 268513381, @@ -114,7 +114,7 @@ }, "0xffffb40e060895b3": { "state": "ON", - "voltage": 120.3, + "voltage": 120.1, "ac_frequency": 60, "energy": 10.11, "current": 0.01,