mirror of
https://github.com/Andre0512/hon.git
synced 2026-07-03 23:05:28 +02:00
Merge branch 'main' into main
This commit is contained in:
@@ -1,11 +1,13 @@
|
||||
import logging
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
import voluptuous as vol # type: ignore[import-untyped]
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import CONF_EMAIL, CONF_PASSWORD
|
||||
from homeassistant.helpers import config_validation as cv, aiohttp_client
|
||||
from homeassistant.helpers.typing import HomeAssistantType
|
||||
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
|
||||
from pyhon import Hon
|
||||
|
||||
from .const import DOMAIN, PLATFORMS, MOBILE_ID, CONF_REFRESH_TOKEN
|
||||
@@ -29,23 +31,27 @@ async def async_setup_entry(hass: HomeAssistantType, entry: ConfigEntry) -> bool
|
||||
session = aiohttp_client.async_get_clientsession(hass)
|
||||
if (config_dir := hass.config.config_dir) is None:
|
||||
raise ValueError("Missing Config Dir")
|
||||
kwargs = {
|
||||
"email": entry.data[CONF_EMAIL],
|
||||
"password": entry.data[CONF_PASSWORD],
|
||||
"mobile_id": MOBILE_ID,
|
||||
"session": session,
|
||||
"test_data_path": Path(config_dir),
|
||||
}
|
||||
if refresh_token := entry.data.get(CONF_REFRESH_TOKEN):
|
||||
kwargs["refresh_token"] = refresh_token
|
||||
hon = await Hon(**kwargs).create()
|
||||
hass.data.setdefault(DOMAIN, {})
|
||||
hass.data[DOMAIN][entry.unique_id] = hon
|
||||
hon = await Hon(
|
||||
email=entry.data[CONF_EMAIL],
|
||||
password=entry.data[CONF_PASSWORD],
|
||||
mobile_id=MOBILE_ID,
|
||||
session=session,
|
||||
test_data_path=Path(config_dir),
|
||||
refresh_token=entry.data.get(CONF_REFRESH_TOKEN, ""),
|
||||
).create()
|
||||
|
||||
# Save the new refresh token
|
||||
hass.config_entries.async_update_entry(
|
||||
entry, data={**entry.data, CONF_REFRESH_TOKEN: hon.api.auth.refresh_token}
|
||||
)
|
||||
hass.data[DOMAIN]["coordinators"] = {}
|
||||
|
||||
coordinator: DataUpdateCoordinator[dict[str, Any]] = DataUpdateCoordinator(
|
||||
hass, _LOGGER, name=DOMAIN
|
||||
)
|
||||
hon.subscribe_updates(coordinator.async_set_updated_data)
|
||||
|
||||
hass.data.setdefault(DOMAIN, {})
|
||||
hass.data[DOMAIN][entry.unique_id] = {"hon": hon, "coordinator": coordinator}
|
||||
|
||||
for platform in PLATFORMS:
|
||||
hass.async_create_task(
|
||||
@@ -55,7 +61,7 @@ async def async_setup_entry(hass: HomeAssistantType, entry: ConfigEntry) -> bool
|
||||
|
||||
|
||||
async def async_unload_entry(hass: HomeAssistantType, entry: ConfigEntry) -> bool:
|
||||
refresh_token = hass.data[DOMAIN][entry.unique_id].api.auth.refresh_token
|
||||
refresh_token = hass.data[DOMAIN][entry.unique_id]["hon"].api.auth.refresh_token
|
||||
|
||||
hass.config_entries.async_update_entry(
|
||||
entry, data={**entry.data, CONF_REFRESH_TOKEN: refresh_token}
|
||||
|
||||
@@ -12,7 +12,8 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
from homeassistant.helpers.typing import HomeAssistantType
|
||||
|
||||
from .const import DOMAIN
|
||||
from .hon import HonEntity, unique_entities
|
||||
from .entity import HonEntity
|
||||
from .util import unique_entities
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
@@ -294,6 +295,32 @@ BINARY_SENSORS: dict[str, tuple[HonBinarySensorEntityDescription, ...]] = {
|
||||
translation_key="power-state",
|
||||
),
|
||||
),
|
||||
"FRE": (
|
||||
HonBinarySensorEntityDescription(
|
||||
key="quickModeZ1",
|
||||
name="Super Cool",
|
||||
icon="mdi:snowflake",
|
||||
device_class=BinarySensorDeviceClass.RUNNING,
|
||||
on_value=1,
|
||||
translation_key="super_cool",
|
||||
),
|
||||
HonBinarySensorEntityDescription(
|
||||
key="quickModeZ2",
|
||||
name="Super Freeze",
|
||||
icon="mdi:snowflake-variant",
|
||||
device_class=BinarySensorDeviceClass.RUNNING,
|
||||
on_value=1,
|
||||
translation_key="super_freeze",
|
||||
),
|
||||
HonBinarySensorEntityDescription(
|
||||
key="doorStatusZ2",
|
||||
name="Door Status",
|
||||
icon="mdi:fridge",
|
||||
device_class=BinarySensorDeviceClass.DOOR,
|
||||
on_value=1,
|
||||
translation_key="door_open",
|
||||
),
|
||||
),
|
||||
}
|
||||
|
||||
BINARY_SENSORS["WD"] = unique_entities(BINARY_SENSORS["WM"], BINARY_SENSORS["TD"])
|
||||
@@ -303,12 +330,11 @@ async def async_setup_entry(
|
||||
hass: HomeAssistantType, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
|
||||
) -> None:
|
||||
entities = []
|
||||
for device in hass.data[DOMAIN][entry.unique_id].appliances:
|
||||
for device in hass.data[DOMAIN][entry.unique_id]["hon"].appliances:
|
||||
for description in BINARY_SENSORS.get(device.appliance_type, []):
|
||||
if device.get(description.key) is None:
|
||||
continue
|
||||
entity = HonBinarySensorEntity(hass, entry, device, description)
|
||||
await entity.coordinator.async_config_entry_first_refresh()
|
||||
entities.append(entity)
|
||||
async_add_entities(entities)
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ from homeassistant.helpers.typing import HomeAssistantType
|
||||
from pyhon.appliance import HonAppliance
|
||||
|
||||
from .const import DOMAIN
|
||||
from .hon import HonEntity
|
||||
from .entity import HonEntity
|
||||
from .typedefs import HonButtonType
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
@@ -38,6 +38,20 @@ BUTTONS: dict[str, tuple[ButtonEntityDescription, ...]] = {
|
||||
translation_key="stop_program",
|
||||
),
|
||||
),
|
||||
"FRE": (
|
||||
ButtonEntityDescription(
|
||||
key="startProgram",
|
||||
name="Program Start",
|
||||
icon="mdi:play",
|
||||
translation_key="start_program",
|
||||
),
|
||||
ButtonEntityDescription(
|
||||
key="stopProgram",
|
||||
name="Program Stop",
|
||||
icon="mdi:stop",
|
||||
translation_key="stop_program",
|
||||
),
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
@@ -45,16 +59,14 @@ async def async_setup_entry(
|
||||
hass: HomeAssistantType, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
|
||||
) -> None:
|
||||
entities: list[HonButtonType] = []
|
||||
for device in hass.data[DOMAIN][entry.unique_id].appliances:
|
||||
for device in hass.data[DOMAIN][entry.unique_id]["hon"].appliances:
|
||||
for description in BUTTONS.get(device.appliance_type, []):
|
||||
if not device.commands.get(description.key):
|
||||
continue
|
||||
entity = HonButtonEntity(hass, entry, device, description)
|
||||
await entity.coordinator.async_config_entry_first_refresh()
|
||||
entities.append(entity)
|
||||
entities.append(HonDeviceInfo(hass, entry, device))
|
||||
entities.append(HonDataArchive(hass, entry, device))
|
||||
await entities[-1].coordinator.async_config_entry_first_refresh()
|
||||
async_add_entities(entities)
|
||||
|
||||
|
||||
@@ -70,7 +82,7 @@ class HonButtonEntity(HonEntity, ButtonEntity):
|
||||
return (
|
||||
super().available
|
||||
and int(self._device.get("remoteCtrValid", "1")) == 1
|
||||
and self._device.get("attributes.lastConnEvent.category") != "DISCONNECTED"
|
||||
and self._device.connection
|
||||
)
|
||||
|
||||
|
||||
@@ -84,19 +96,14 @@ class HonDeviceInfo(HonEntity, ButtonEntity):
|
||||
self._attr_icon = "mdi:information"
|
||||
self._attr_name = "Show Device Info"
|
||||
self._attr_entity_category = EntityCategory.DIAGNOSTIC
|
||||
if "beta" not in self.coordinator.info.hon_version:
|
||||
self._attr_entity_registry_enabled_default = False
|
||||
self._attr_entity_registry_enabled_default = False
|
||||
|
||||
async def async_press(self) -> None:
|
||||
versions = "versions:\n"
|
||||
versions += f" hon: {self.coordinator.info.hon_version}\n"
|
||||
versions += f" pyhOn: {self.coordinator.info.pyhon_version}\n"
|
||||
info = f"{self._device.diagnose}{versions}"
|
||||
title = f"{self._device.nick_name} Device Info"
|
||||
persistent_notification.create(
|
||||
self._hass, f"````\n```\n{info}\n```\n````", title
|
||||
self._hass, f"````\n```\n{self._device.diagnose}\n```\n````", title
|
||||
)
|
||||
_LOGGER.info(info.replace(" ", "\u200B "))
|
||||
_LOGGER.info(self._device.diagnose.replace(" ", "\u200B "))
|
||||
|
||||
|
||||
class HonDataArchive(HonEntity, ButtonEntity):
|
||||
@@ -109,8 +116,7 @@ class HonDataArchive(HonEntity, ButtonEntity):
|
||||
self._attr_icon = "mdi:archive-arrow-down"
|
||||
self._attr_name = "Create Data Archive"
|
||||
self._attr_entity_category = EntityCategory.DIAGNOSTIC
|
||||
if "beta" not in self.coordinator.info.hon_version:
|
||||
self._attr_entity_registry_enabled_default = False
|
||||
self._attr_entity_registry_enabled_default = False
|
||||
|
||||
async def async_press(self) -> None:
|
||||
if (config_dir := self._hass.config.config_dir) is None:
|
||||
|
||||
@@ -26,7 +26,7 @@ from pyhon.appliance import HonAppliance
|
||||
from pyhon.parameter.range import HonParameterRange
|
||||
|
||||
from .const import HON_HVAC_MODE, HON_FAN, DOMAIN, HON_HVAC_PROGRAM
|
||||
from .hon import HonEntity
|
||||
from .entity import HonEntity
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
@@ -108,7 +108,7 @@ async def async_setup_entry(
|
||||
) -> None:
|
||||
entities = []
|
||||
entity: HonClimateEntity | HonACClimateEntity
|
||||
for device in hass.data[DOMAIN][entry.unique_id].appliances:
|
||||
for device in hass.data[DOMAIN][entry.unique_id]["hon"].appliances:
|
||||
for description in CLIMATES.get(device.appliance_type, []):
|
||||
if isinstance(description, HonACClimateEntityDescription):
|
||||
if description.key not in list(device.commands):
|
||||
@@ -120,13 +120,13 @@ async def async_setup_entry(
|
||||
entity = HonClimateEntity(hass, entry, device, description)
|
||||
else:
|
||||
continue # type: ignore[unreachable]
|
||||
await entity.coordinator.async_config_entry_first_refresh()
|
||||
entities.append(entity)
|
||||
async_add_entities(entities)
|
||||
|
||||
|
||||
class HonACClimateEntity(HonEntity, ClimateEntity):
|
||||
entity_description: HonACClimateEntityDescription
|
||||
_enable_turn_on_off_backwards_compatibility = False
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
@@ -153,7 +153,9 @@ class HonACClimateEntity(HonEntity, ClimateEntity):
|
||||
SWING_BOTH,
|
||||
]
|
||||
self._attr_supported_features = (
|
||||
ClimateEntityFeature.TARGET_TEMPERATURE
|
||||
ClimateEntityFeature.TURN_ON
|
||||
| ClimateEntityFeature.TURN_OFF
|
||||
| ClimateEntityFeature.TARGET_TEMPERATURE
|
||||
| ClimateEntityFeature.FAN_MODE
|
||||
| ClimateEntityFeature.SWING_MODE
|
||||
| ClimateEntityFeature.PRESET_MODE
|
||||
@@ -210,6 +212,14 @@ class HonACClimateEntity(HonEntity, ClimateEntity):
|
||||
await self._device.commands["settings"].send()
|
||||
self.async_write_ha_state()
|
||||
|
||||
async def async_turn_on(self, **kwargs: Any) -> None:
|
||||
await self._device.commands["startProgram"].send()
|
||||
self._device.sync_command("startProgram", "settings")
|
||||
|
||||
async def async_turn_off(self, **kwargs: Any) -> None:
|
||||
await self._device.commands["stopProgram"].send()
|
||||
self._device.sync_command("stopProgram", "settings")
|
||||
|
||||
@property
|
||||
def preset_mode(self) -> str | None:
|
||||
"""Return the current Preset for this channel."""
|
||||
@@ -222,7 +232,7 @@ class HonACClimateEntity(HonEntity, ClimateEntity):
|
||||
self._device.sync_command("startProgram", "settings")
|
||||
self._set_temperature_bound()
|
||||
self._handle_coordinator_update(update=False)
|
||||
await self.coordinator.async_refresh()
|
||||
self.coordinator.async_set_updated_data({})
|
||||
self._attr_preset_mode = preset_mode
|
||||
await self._device.commands["startProgram"].send()
|
||||
self.async_write_ha_state()
|
||||
@@ -285,6 +295,7 @@ class HonACClimateEntity(HonEntity, ClimateEntity):
|
||||
|
||||
class HonClimateEntity(HonEntity, ClimateEntity):
|
||||
entity_description: HonClimateEntityDescription
|
||||
_enable_turn_on_off_backwards_compatibility = False
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
@@ -295,11 +306,16 @@ class HonClimateEntity(HonEntity, ClimateEntity):
|
||||
) -> None:
|
||||
super().__init__(hass, entry, device, description)
|
||||
|
||||
self._attr_supported_features = (
|
||||
ClimateEntityFeature.TURN_ON | ClimateEntityFeature.TARGET_TEMPERATURE
|
||||
)
|
||||
|
||||
self._attr_temperature_unit = UnitOfTemperature.CELSIUS
|
||||
self._set_temperature_bound()
|
||||
|
||||
self._attr_hvac_modes = [description.mode]
|
||||
if "stopProgram" in device.commands:
|
||||
self._attr_supported_features |= ClimateEntityFeature.TURN_OFF
|
||||
self._attr_hvac_modes += [HVACMode.OFF]
|
||||
modes = []
|
||||
else:
|
||||
@@ -317,13 +333,8 @@ class HonClimateEntity(HonEntity, ClimateEntity):
|
||||
modes.append(mode)
|
||||
|
||||
if modes:
|
||||
self._attr_supported_features = (
|
||||
ClimateEntityFeature.TARGET_TEMPERATURE
|
||||
| ClimateEntityFeature.PRESET_MODE
|
||||
)
|
||||
self._attr_supported_features |= ClimateEntityFeature.PRESET_MODE
|
||||
self._attr_preset_modes = modes
|
||||
else:
|
||||
self._attr_supported_features = ClimateEntityFeature.TARGET_TEMPERATURE
|
||||
|
||||
self._handle_coordinator_update(update=False)
|
||||
|
||||
@@ -362,6 +373,14 @@ class HonClimateEntity(HonEntity, ClimateEntity):
|
||||
self._attr_hvac_mode = hvac_mode
|
||||
self.async_write_ha_state()
|
||||
|
||||
async def async_turn_on(self) -> None:
|
||||
"""Set the HVAC State to on."""
|
||||
await self._device.commands["startProgram"].send()
|
||||
|
||||
async def async_turn_off(self) -> None:
|
||||
"""Set the HVAC State to off."""
|
||||
await self._device.commands["stopProgram"].send()
|
||||
|
||||
@property
|
||||
def preset_mode(self) -> str | None:
|
||||
"""Return the current Preset for this channel."""
|
||||
@@ -389,7 +408,7 @@ class HonClimateEntity(HonEntity, ClimateEntity):
|
||||
self._device.sync_command(command, "settings")
|
||||
self._set_temperature_bound()
|
||||
self._attr_preset_mode = preset_mode
|
||||
await self.coordinator.async_refresh()
|
||||
self.coordinator.async_set_updated_data({})
|
||||
await self._device.commands[command].send()
|
||||
self.async_write_ha_state()
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@ from homeassistant.components.climate import (
|
||||
)
|
||||
|
||||
DOMAIN: str = "hon"
|
||||
UPDATE_INTERVAL: int = 60
|
||||
MOBILE_ID: str = "homassistant"
|
||||
CONF_REFRESH_TOKEN = "refresh_token"
|
||||
|
||||
@@ -29,6 +28,7 @@ APPLIANCES: dict[str, str] = {
|
||||
"AP": "Air Purifier",
|
||||
"AS": "Air Scanner",
|
||||
"DW": "Dish Washer",
|
||||
"FRE": "Freezer",
|
||||
"HO": "Hood",
|
||||
"IH": "Induction Hob",
|
||||
"MW": "Microwave",
|
||||
@@ -70,16 +70,23 @@ HON_FAN: dict[int, str] = {
|
||||
|
||||
# These languages are official supported by hOn
|
||||
LANGUAGES: list[str] = [
|
||||
"ar", # Arabic
|
||||
"bg", # Bulgarian
|
||||
"cs", # Czech
|
||||
"da", # Danish
|
||||
"de", # German
|
||||
"el", # Greek
|
||||
"en", # English
|
||||
"es", # Spanish
|
||||
"fi", # Finnish
|
||||
"fr", # French
|
||||
"he", # Hebrew
|
||||
"hr", # Croatian
|
||||
"hu", # Hungarian
|
||||
"it", # Italian
|
||||
"nb", # Norwegian
|
||||
"nl", # Dutch
|
||||
"nr", # Southern Ndebele
|
||||
"pl", # Polish
|
||||
"pt", # Portuguese
|
||||
"ro", # Romanian
|
||||
@@ -87,7 +94,9 @@ LANGUAGES: list[str] = [
|
||||
"sk", # Slovak
|
||||
"sl", # Slovenian
|
||||
"sr", # Serbian
|
||||
"sv", # Swedish
|
||||
"tr", # Turkish
|
||||
"uk", # Ukrainian
|
||||
"zh", # Chinese
|
||||
]
|
||||
|
||||
@@ -100,6 +109,7 @@ WASHING_PR_PHASE: dict[int, str] = {
|
||||
5: "rinse",
|
||||
6: "rinse",
|
||||
7: "drying",
|
||||
8: "drying",
|
||||
9: "steam",
|
||||
10: "ready",
|
||||
11: "spin",
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
from typing import Optional, Any
|
||||
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.core import callback
|
||||
from homeassistant.helpers.entity import DeviceInfo
|
||||
from homeassistant.helpers.typing import HomeAssistantType
|
||||
from homeassistant.helpers.update_coordinator import (
|
||||
CoordinatorEntity,
|
||||
)
|
||||
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
|
||||
from pyhon.appliance import HonAppliance
|
||||
|
||||
from .const import DOMAIN
|
||||
from .typedefs import HonEntityDescription
|
||||
|
||||
|
||||
class HonEntity(CoordinatorEntity[DataUpdateCoordinator[dict[str, Any]]]):
|
||||
_attr_has_entity_name = True
|
||||
_attr_should_poll = False
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
hass: HomeAssistantType,
|
||||
entry: ConfigEntry,
|
||||
device: HonAppliance,
|
||||
description: Optional[HonEntityDescription] = None,
|
||||
) -> None:
|
||||
self.coordinator = hass.data[DOMAIN][entry.unique_id]["coordinator"]
|
||||
super().__init__(self.coordinator)
|
||||
self._hon = hass.data[DOMAIN][entry.unique_id]["hon"]
|
||||
self._hass = hass
|
||||
self._device: HonAppliance = device
|
||||
|
||||
if description is not None:
|
||||
self.entity_description = description
|
||||
self._attr_unique_id = f"{self._device.unique_id}{description.key}"
|
||||
else:
|
||||
self._attr_unique_id = self._device.unique_id
|
||||
self._handle_coordinator_update(update=False)
|
||||
|
||||
@property
|
||||
def device_info(self) -> DeviceInfo:
|
||||
return DeviceInfo(
|
||||
identifiers={(DOMAIN, self._device.unique_id)},
|
||||
manufacturer=self._device.get("brand", "").capitalize(),
|
||||
name=self._device.nick_name,
|
||||
model=self._device.model_name,
|
||||
sw_version=self._device.get("fwVersion", ""),
|
||||
hw_version=f"{self._device.appliance_type}{self._device.model_id}",
|
||||
serial_number=self._device.get("serialNumber", ""),
|
||||
)
|
||||
|
||||
@callback
|
||||
def _handle_coordinator_update(self, update: bool = True) -> None:
|
||||
if update:
|
||||
self.async_write_ha_state()
|
||||
@@ -19,7 +19,7 @@ from pyhon.appliance import HonAppliance
|
||||
from pyhon.parameter.range import HonParameterRange
|
||||
|
||||
from .const import DOMAIN
|
||||
from .hon import HonEntity
|
||||
from .entity import HonEntity
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
@@ -39,7 +39,7 @@ async def async_setup_entry(
|
||||
hass: HomeAssistantType, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
|
||||
) -> None:
|
||||
entities = []
|
||||
for device in hass.data[DOMAIN][entry.unique_id].appliances:
|
||||
for device in hass.data[DOMAIN][entry.unique_id]["hon"].appliances:
|
||||
for description in FANS.get(device.appliance_type, []):
|
||||
if (
|
||||
description.key not in device.available_settings
|
||||
@@ -47,7 +47,6 @@ async def async_setup_entry(
|
||||
):
|
||||
continue
|
||||
entity = HonFanEntity(hass, entry, device, description)
|
||||
await entity.coordinator.async_config_entry_first_refresh()
|
||||
entities.append(entity)
|
||||
async_add_entities(entities)
|
||||
|
||||
|
||||
@@ -1,141 +0,0 @@
|
||||
import json
|
||||
import logging
|
||||
from contextlib import suppress
|
||||
from datetime import timedelta
|
||||
from pathlib import Path
|
||||
from typing import Optional, Any
|
||||
|
||||
import pkg_resources # type: ignore[import, unused-ignore]
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.core import callback
|
||||
from homeassistant.helpers.entity import DeviceInfo
|
||||
from homeassistant.helpers.typing import HomeAssistantType
|
||||
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
||||
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
|
||||
from pyhon.appliance import HonAppliance
|
||||
|
||||
from .const import DOMAIN, UPDATE_INTERVAL
|
||||
from .typedefs import HonEntityDescription, HonOptionEntityDescription, T
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class HonInfo:
|
||||
def __init__(self) -> None:
|
||||
self._manifest: dict[str, Any] = self._get_manifest()
|
||||
self._hon_version: str = self._manifest.get("version", "")
|
||||
self._pyhon_version: str = pkg_resources.get_distribution("pyhon").version
|
||||
|
||||
@staticmethod
|
||||
def _get_manifest() -> dict[str, Any]:
|
||||
manifest = Path(__file__).parent / "manifest.json"
|
||||
with open(manifest, "r", encoding="utf-8") as file:
|
||||
result: dict[str, Any] = json.loads(file.read())
|
||||
return result
|
||||
|
||||
@property
|
||||
def manifest(self) -> dict[str, Any]:
|
||||
return self._manifest
|
||||
|
||||
@property
|
||||
def hon_version(self) -> str:
|
||||
return self._hon_version
|
||||
|
||||
@property
|
||||
def pyhon_version(self) -> str:
|
||||
return self._pyhon_version
|
||||
|
||||
|
||||
class HonCoordinator(DataUpdateCoordinator[None]):
|
||||
def __init__(self, hass: HomeAssistantType, device: HonAppliance):
|
||||
"""Initialize my coordinator."""
|
||||
super().__init__(
|
||||
hass,
|
||||
_LOGGER,
|
||||
name=device.unique_id,
|
||||
update_interval=timedelta(seconds=UPDATE_INTERVAL),
|
||||
)
|
||||
self._device = device
|
||||
self._info = HonInfo()
|
||||
|
||||
async def _async_update_data(self) -> None:
|
||||
return await self._device.update()
|
||||
|
||||
@property
|
||||
def info(self) -> HonInfo:
|
||||
return self._info
|
||||
|
||||
|
||||
class HonEntity(CoordinatorEntity[HonCoordinator]):
|
||||
_attr_has_entity_name = True
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
hass: HomeAssistantType,
|
||||
entry: ConfigEntry,
|
||||
device: HonAppliance,
|
||||
description: Optional[HonEntityDescription] = None,
|
||||
) -> None:
|
||||
coordinator = get_coordinator(hass, device)
|
||||
super().__init__(coordinator)
|
||||
|
||||
self._hon = hass.data[DOMAIN][entry.unique_id]
|
||||
self._hass = hass
|
||||
self._coordinator = coordinator
|
||||
self._device: HonAppliance = device
|
||||
|
||||
if description is not None:
|
||||
self.entity_description = description
|
||||
self._attr_unique_id = f"{self._device.unique_id}{description.key}"
|
||||
else:
|
||||
self._attr_unique_id = self._device.unique_id
|
||||
self._handle_coordinator_update(update=False)
|
||||
|
||||
@property
|
||||
def device_info(self) -> DeviceInfo:
|
||||
return DeviceInfo(
|
||||
identifiers={(DOMAIN, self._device.unique_id)},
|
||||
manufacturer=self._device.get("brand", ""),
|
||||
name=self._device.nick_name,
|
||||
model=self._device.model_name,
|
||||
sw_version=self._device.get("fwVersion", ""),
|
||||
)
|
||||
|
||||
@callback
|
||||
def _handle_coordinator_update(self, update: bool = True) -> None:
|
||||
if update:
|
||||
self.async_write_ha_state()
|
||||
|
||||
|
||||
def unique_entities(
|
||||
base_entities: tuple[T, ...],
|
||||
new_entities: tuple[T, ...],
|
||||
) -> tuple[T, ...]:
|
||||
result = list(base_entities)
|
||||
existing_entities = [entity.key for entity in base_entities]
|
||||
entity: HonEntityDescription
|
||||
for entity in new_entities:
|
||||
if entity.key not in existing_entities:
|
||||
result.append(entity)
|
||||
return tuple(result)
|
||||
|
||||
|
||||
def get_coordinator(hass: HomeAssistantType, appliance: HonAppliance) -> HonCoordinator:
|
||||
coordinators = hass.data[DOMAIN]["coordinators"]
|
||||
if appliance.unique_id in coordinators:
|
||||
coordinator: HonCoordinator = hass.data[DOMAIN]["coordinators"][
|
||||
appliance.unique_id
|
||||
]
|
||||
else:
|
||||
coordinator = HonCoordinator(hass, appliance)
|
||||
hass.data[DOMAIN]["coordinators"][appliance.unique_id] = coordinator
|
||||
return coordinator
|
||||
|
||||
|
||||
def get_readable(
|
||||
description: HonOptionEntityDescription, value: float | str
|
||||
) -> float | str:
|
||||
if description.option_list is not None:
|
||||
with suppress(ValueError):
|
||||
return description.option_list.get(int(value), value)
|
||||
return value
|
||||
@@ -15,7 +15,7 @@ from pyhon.appliance import HonAppliance
|
||||
from pyhon.parameter.range import HonParameterRange
|
||||
|
||||
from .const import DOMAIN
|
||||
from .hon import HonEntity
|
||||
from .entity import HonEntity
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
@@ -42,6 +42,13 @@ LIGHTS: dict[str, tuple[LightEntityDescription, ...]] = {
|
||||
translation_key="light",
|
||||
),
|
||||
),
|
||||
"DW": (
|
||||
LightEntityDescription(
|
||||
key="settings.lightStatus",
|
||||
name="Light status",
|
||||
translation_key="light",
|
||||
),
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
@@ -49,7 +56,7 @@ async def async_setup_entry(
|
||||
hass: HomeAssistantType, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
|
||||
) -> None:
|
||||
entities = []
|
||||
for device in hass.data[DOMAIN][entry.unique_id].appliances:
|
||||
for device in hass.data[DOMAIN][entry.unique_id]["hon"].appliances:
|
||||
for description in LIGHTS.get(device.appliance_type, []):
|
||||
if (
|
||||
description.key not in device.available_settings
|
||||
@@ -57,7 +64,6 @@ async def async_setup_entry(
|
||||
):
|
||||
continue
|
||||
entity = HonLightEntity(hass, entry, device, description)
|
||||
await entity.coordinator.async_config_entry_first_refresh()
|
||||
entities.append(entity)
|
||||
async_add_entities(entities)
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ from pyhon.parameter.base import HonParameter
|
||||
from pyhon.parameter.range import HonParameterRange
|
||||
|
||||
from .const import DOMAIN
|
||||
from .hon import HonEntity
|
||||
from .entity import HonEntity
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
@@ -29,7 +29,7 @@ async def async_setup_entry(
|
||||
hass: HomeAssistantType, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
|
||||
) -> None:
|
||||
entities = []
|
||||
for device in hass.data[DOMAIN][entry.unique_id].appliances:
|
||||
for device in hass.data[DOMAIN][entry.unique_id]["hon"].appliances:
|
||||
for description in LOCKS.get(device.appliance_type, []):
|
||||
if (
|
||||
f"settings.{description.key}" not in device.available_settings
|
||||
@@ -37,7 +37,6 @@ async def async_setup_entry(
|
||||
):
|
||||
continue
|
||||
entity = HonLockEntity(hass, entry, device, description)
|
||||
await entity.coordinator.async_config_entry_first_refresh()
|
||||
entities.append(entity)
|
||||
|
||||
async_add_entities(entities)
|
||||
@@ -59,7 +58,7 @@ class HonLockEntity(HonEntity, LockEntity):
|
||||
setting.value = setting.max if isinstance(setting, HonParameterRange) else 1
|
||||
self.async_write_ha_state()
|
||||
await self._device.commands["settings"].send()
|
||||
await self.coordinator.async_refresh()
|
||||
self.coordinator.async_set_updated_data({})
|
||||
|
||||
async def async_unlock(self, **kwargs: Any) -> None:
|
||||
"""Unlock method."""
|
||||
@@ -69,7 +68,7 @@ class HonLockEntity(HonEntity, LockEntity):
|
||||
setting.value = setting.min if isinstance(setting, HonParameterRange) else 0
|
||||
self.async_write_ha_state()
|
||||
await self._device.commands["settings"].send()
|
||||
await self.coordinator.async_refresh()
|
||||
self.coordinator.async_set_updated_data({})
|
||||
|
||||
@property
|
||||
def available(self) -> bool:
|
||||
@@ -77,7 +76,7 @@ class HonLockEntity(HonEntity, LockEntity):
|
||||
return (
|
||||
super().available
|
||||
and int(self._device.get("remoteCtrValid", 1)) == 1
|
||||
and self._device.get("attributes.lastConnEvent.category") != "DISCONNECTED"
|
||||
and self._device.connection
|
||||
)
|
||||
|
||||
@callback
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
],
|
||||
"config_flow": true,
|
||||
"documentation": "https://github.com/Andre0512/hon/",
|
||||
"iot_class": "cloud_polling",
|
||||
"iot_class": "cloud_push",
|
||||
"issue_tracker": "https://github.com/Andre0512/hon/issues",
|
||||
"requirements": [
|
||||
"pyhOn==0.16.0"
|
||||
"pyhOn==0.17.5"
|
||||
],
|
||||
"version": "0.13.0"
|
||||
"version": "0.14.0"
|
||||
}
|
||||
|
||||
@@ -17,7 +17,8 @@ from pyhon.appliance import HonAppliance
|
||||
from pyhon.parameter.range import HonParameterRange
|
||||
|
||||
from .const import DOMAIN
|
||||
from .hon import HonEntity, unique_entities
|
||||
from .entity import HonEntity
|
||||
from .util import unique_entities
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
@@ -140,6 +141,12 @@ NUMBERS: dict[str, tuple[NumberEntityDescription, ...]] = {
|
||||
icon="mdi:water",
|
||||
translation_key="water_hard",
|
||||
),
|
||||
HonNumberEntityDescription(
|
||||
key="settings.waterHard",
|
||||
name="Water hard",
|
||||
icon="mdi:water",
|
||||
translation_key="water_hard",
|
||||
),
|
||||
),
|
||||
"AC": (
|
||||
HonNumberEntityDescription(
|
||||
@@ -216,7 +223,7 @@ async def async_setup_entry(
|
||||
) -> None:
|
||||
entities = []
|
||||
entity: HonNumberEntity | HonConfigNumberEntity
|
||||
for device in hass.data[DOMAIN][entry.unique_id].appliances:
|
||||
for device in hass.data[DOMAIN][entry.unique_id]["hon"].appliances:
|
||||
for description in NUMBERS.get(device.appliance_type, []):
|
||||
if description.key not in device.available_settings:
|
||||
continue
|
||||
@@ -226,7 +233,6 @@ async def async_setup_entry(
|
||||
entity = HonConfigNumberEntity(hass, entry, device, description)
|
||||
else:
|
||||
continue
|
||||
await entity.coordinator.async_config_entry_first_refresh()
|
||||
entities.append(entity)
|
||||
async_add_entities(entities)
|
||||
|
||||
@@ -267,7 +273,7 @@ class HonNumberEntity(HonEntity, NumberEntity):
|
||||
await self._device.commands[command].send()
|
||||
if command != "settings":
|
||||
self._device.sync_command(command, "settings")
|
||||
await self.coordinator.async_refresh()
|
||||
self.coordinator.async_set_updated_data({})
|
||||
|
||||
@callback
|
||||
def _handle_coordinator_update(self, update: bool = True) -> None:
|
||||
@@ -286,7 +292,7 @@ class HonNumberEntity(HonEntity, NumberEntity):
|
||||
return (
|
||||
super().available
|
||||
and int(self._device.get("remoteCtrValid", 1)) == 1
|
||||
and self._device.get("attributes.lastConnEvent.category") != "DISCONNECTED"
|
||||
and self._device.connection
|
||||
)
|
||||
|
||||
|
||||
@@ -310,7 +316,7 @@ class HonConfigNumberEntity(HonEntity, NumberEntity):
|
||||
|
||||
@property
|
||||
def native_value(self) -> float | None:
|
||||
if value := self._device.settings[self.entity_description.key].value:
|
||||
if (value := self._device.settings[self.entity_description.key].value) != "":
|
||||
return float(value)
|
||||
return None
|
||||
|
||||
@@ -318,7 +324,7 @@ class HonConfigNumberEntity(HonEntity, NumberEntity):
|
||||
setting = self._device.settings[self.entity_description.key]
|
||||
if isinstance(setting, HonParameterRange):
|
||||
setting.value = value
|
||||
await self.coordinator.async_refresh()
|
||||
self.coordinator.async_set_updated_data({})
|
||||
|
||||
@property
|
||||
def available(self) -> bool:
|
||||
|
||||
@@ -13,7 +13,8 @@ from homeassistant.helpers.typing import HomeAssistantType
|
||||
|
||||
from . import const
|
||||
from .const import DOMAIN
|
||||
from .hon import HonEntity, unique_entities, get_readable
|
||||
from .entity import HonEntity
|
||||
from .util import unique_entities, get_readable
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
@@ -201,6 +202,26 @@ SELECTS: dict[str, tuple[SelectEntityDescription, ...]] = {
|
||||
icon="mdi:information",
|
||||
option_list=const.WH_MACH_MODE,
|
||||
translation_key="mach_modes_wh",
|
||||
),
|
||||
),
|
||||
"FRE": (
|
||||
HonConfigSelectEntityDescription(
|
||||
key="startProgram.program",
|
||||
name="Program",
|
||||
translation_key="programs_ref",
|
||||
),
|
||||
HonConfigSelectEntityDescription(
|
||||
key="startProgram.zone",
|
||||
name="Zone",
|
||||
icon="mdi:radiobox-marked",
|
||||
translation_key="ref_zones",
|
||||
),
|
||||
HonSelectEntityDescription(
|
||||
key="settings.tempSelZ3",
|
||||
name="Temperature",
|
||||
icon="mdi:thermometer",
|
||||
unit_of_measurement=UnitOfTemperature.CELSIUS,
|
||||
translation_key="temperature",
|
||||
),
|
||||
),
|
||||
}
|
||||
@@ -213,7 +234,7 @@ async def async_setup_entry(
|
||||
) -> None:
|
||||
entities = []
|
||||
entity: HonSelectEntity | HonConfigSelectEntity
|
||||
for device in hass.data[DOMAIN][entry.unique_id].appliances:
|
||||
for device in hass.data[DOMAIN][entry.unique_id]["hon"].appliances:
|
||||
for description in SELECTS.get(device.appliance_type, []):
|
||||
if description.key not in device.available_settings:
|
||||
continue
|
||||
@@ -223,7 +244,6 @@ async def async_setup_entry(
|
||||
entity = HonConfigSelectEntity(hass, entry, device, description)
|
||||
else:
|
||||
continue
|
||||
await entity.coordinator.async_config_entry_first_refresh()
|
||||
entities.append(entity)
|
||||
async_add_entities(entities)
|
||||
|
||||
@@ -262,7 +282,7 @@ class HonConfigSelectEntity(HonEntity, SelectEntity):
|
||||
async def async_select_option(self, option: str) -> None:
|
||||
setting = self._device.settings[self.entity_description.key]
|
||||
setting.value = self._option_to_number(option, setting.values)
|
||||
await self.coordinator.async_refresh()
|
||||
self.coordinator.async_set_updated_data({})
|
||||
|
||||
@callback
|
||||
def _handle_coordinator_update(self, update: bool = True) -> None:
|
||||
@@ -320,7 +340,7 @@ class HonSelectEntity(HonEntity, SelectEntity):
|
||||
await self._device.commands[command].send()
|
||||
if command != "settings":
|
||||
self._device.sync_command(command, "settings")
|
||||
await self.coordinator.async_refresh()
|
||||
self.coordinator.async_set_updated_data({})
|
||||
|
||||
@property
|
||||
def available(self) -> bool:
|
||||
@@ -328,7 +348,7 @@ class HonSelectEntity(HonEntity, SelectEntity):
|
||||
return (
|
||||
super().available
|
||||
and int(self._device.get("remoteCtrValid", 1)) == 1
|
||||
and self._device.get("attributes.lastConnEvent.category") != "DISCONNECTED"
|
||||
and self._device.connection
|
||||
)
|
||||
|
||||
@callback
|
||||
|
||||
@@ -18,7 +18,6 @@ from homeassistant.const import (
|
||||
UnitOfEnergy,
|
||||
UnitOfVolume,
|
||||
UnitOfMass,
|
||||
UnitOfPower,
|
||||
UnitOfTime,
|
||||
UnitOfTemperature,
|
||||
)
|
||||
@@ -29,7 +28,8 @@ from homeassistant.helpers.typing import HomeAssistantType
|
||||
|
||||
from . import const
|
||||
from .const import DOMAIN
|
||||
from .hon import HonEntity, unique_entities, get_readable
|
||||
from .entity import HonEntity
|
||||
from .util import unique_entities, get_readable
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
@@ -83,7 +83,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
|
||||
name="Current Electricity Used",
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
device_class=SensorDeviceClass.POWER,
|
||||
native_unit_of_measurement=UnitOfPower.KILO_WATT,
|
||||
native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
|
||||
icon="mdi:lightning-bolt",
|
||||
translation_key="energy_current",
|
||||
),
|
||||
@@ -837,6 +837,29 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
|
||||
name="Heating Status",
|
||||
),
|
||||
),
|
||||
"FRE": (
|
||||
HonSensorEntityDescription(
|
||||
key="tempEnv",
|
||||
name="Room Temperature",
|
||||
icon="mdi:home-thermometer-outline",
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
device_class=SensorDeviceClass.TEMPERATURE,
|
||||
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
|
||||
translation_key="room_temperature",
|
||||
),
|
||||
HonSensorEntityDescription(
|
||||
key="tempSelZ3",
|
||||
name="Temperature",
|
||||
icon="mdi:snowflake-thermometer",
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
device_class=SensorDeviceClass.TEMPERATURE,
|
||||
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
|
||||
translation_key="temperature",
|
||||
),
|
||||
HonSensorEntityDescription(
|
||||
key="errors", name="Error", icon="mdi:math-log", translation_key="errors"
|
||||
),
|
||||
),
|
||||
}
|
||||
SENSORS["WD"] = unique_entities(SENSORS["WM"], SENSORS["TD"])
|
||||
|
||||
@@ -846,7 +869,7 @@ async def async_setup_entry(
|
||||
) -> None:
|
||||
entities = []
|
||||
entity: HonSensorEntity | HonConfigSensorEntity
|
||||
for device in hass.data[DOMAIN][entry.unique_id].appliances:
|
||||
for device in hass.data[DOMAIN][entry.unique_id]["hon"].appliances:
|
||||
for description in SENSORS.get(device.appliance_type, []):
|
||||
if isinstance(description, HonSensorEntityDescription):
|
||||
if device.get(description.key) is None:
|
||||
@@ -858,7 +881,6 @@ async def async_setup_entry(
|
||||
entity = HonConfigSensorEntity(hass, entry, device, description)
|
||||
else:
|
||||
continue
|
||||
await entity.coordinator.async_config_entry_first_refresh()
|
||||
entities.append(entity)
|
||||
|
||||
async_add_entities(entities)
|
||||
|
||||
@@ -13,7 +13,8 @@ from pyhon.parameter.base import HonParameter
|
||||
from pyhon.parameter.range import HonParameterRange
|
||||
|
||||
from .const import DOMAIN
|
||||
from .hon import HonEntity, unique_entities
|
||||
from .entity import HonEntity
|
||||
from .util import unique_entities
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
@@ -273,6 +274,12 @@ SWITCHES: dict[str, tuple[SwitchEntityDescription, ...]] = {
|
||||
icon="mdi:volume-off",
|
||||
translation_key="buzzer",
|
||||
),
|
||||
HonConfigSwitchEntityDescription(
|
||||
key="startProgram.tabStatus",
|
||||
name="Tab Status",
|
||||
icon="mdi:silverware-clean",
|
||||
# translation_key="buzzer",
|
||||
),
|
||||
),
|
||||
"AC": (
|
||||
HonSwitchEntityDescription(
|
||||
@@ -393,6 +400,20 @@ SWITCHES: dict[str, tuple[SwitchEntityDescription, ...]] = {
|
||||
to_sync=True,
|
||||
),
|
||||
),
|
||||
"FRE": (
|
||||
HonSwitchEntityDescription(
|
||||
key="quickModeZ2",
|
||||
name="Super Freeze",
|
||||
icon="mdi:snowflake-variant",
|
||||
translation_key="super_freeze",
|
||||
),
|
||||
HonSwitchEntityDescription(
|
||||
key="quickModeZ1",
|
||||
name="Super Cool",
|
||||
icon="mdi:snowflake",
|
||||
translation_key="super_cool",
|
||||
),
|
||||
),
|
||||
}
|
||||
|
||||
SWITCHES["WD"] = unique_entities(SWITCHES["WD"], SWITCHES["WM"])
|
||||
@@ -404,7 +425,7 @@ async def async_setup_entry(
|
||||
) -> None:
|
||||
entities = []
|
||||
entity: HonConfigSwitchEntity | HonControlSwitchEntity | HonSwitchEntity
|
||||
for device in hass.data[DOMAIN][entry.unique_id].appliances:
|
||||
for device in hass.data[DOMAIN][entry.unique_id]["hon"].appliances:
|
||||
for description in SWITCHES.get(device.appliance_type, []):
|
||||
if isinstance(description, HonConfigSwitchEntityDescription):
|
||||
if description.key not in device.available_settings:
|
||||
@@ -424,7 +445,6 @@ async def async_setup_entry(
|
||||
entity = HonSwitchEntity(hass, entry, device, description)
|
||||
else:
|
||||
continue
|
||||
await entity.coordinator.async_config_entry_first_refresh()
|
||||
entities.append(entity)
|
||||
|
||||
async_add_entities(entities)
|
||||
@@ -445,7 +465,7 @@ class HonSwitchEntity(HonEntity, SwitchEntity):
|
||||
setting.value = setting.max if isinstance(setting, HonParameterRange) else 1
|
||||
self.async_write_ha_state()
|
||||
await self._device.commands["settings"].send()
|
||||
await self.coordinator.async_refresh()
|
||||
self.coordinator.async_set_updated_data({})
|
||||
|
||||
async def async_turn_off(self, **kwargs: Any) -> None:
|
||||
setting = self._device.settings[f"settings.{self.entity_description.key}"]
|
||||
@@ -454,7 +474,7 @@ class HonSwitchEntity(HonEntity, SwitchEntity):
|
||||
setting.value = setting.min if isinstance(setting, HonParameterRange) else 0
|
||||
self.async_write_ha_state()
|
||||
await self._device.commands["settings"].send()
|
||||
await self.coordinator.async_refresh()
|
||||
self.coordinator.async_set_updated_data({})
|
||||
|
||||
@property
|
||||
def available(self) -> bool:
|
||||
@@ -490,7 +510,8 @@ class HonControlSwitchEntity(HonEntity, SwitchEntity):
|
||||
async def async_turn_on(self, **kwargs: Any) -> None:
|
||||
desc = self.entity_description
|
||||
self._device.sync_command(desc.turn_on_key, "settings", desc.to_sync)
|
||||
await self.coordinator.async_refresh()
|
||||
//await self.coordinator.async_refresh()
|
||||
self.coordinator.async_set_updated_data({})
|
||||
command = self._device.commands[desc.turn_on_key]
|
||||
await command.send(desc.only_mandatory_parameters)
|
||||
self._device.attributes[desc.key] = desc.on_value
|
||||
@@ -499,7 +520,8 @@ class HonControlSwitchEntity(HonEntity, SwitchEntity):
|
||||
async def async_turn_off(self, **kwargs: Any) -> None:
|
||||
desc = self.entity_description
|
||||
self._device.sync_command(desc.turn_off_key, "settings", desc.to_sync)
|
||||
await self.coordinator.async_refresh()
|
||||
//await self.coordinator.async_refresh()
|
||||
self.coordinator.async_set_updated_data({})
|
||||
command = self._device.commands[desc.turn_off_key]
|
||||
await command.send(desc.only_mandatory_parameters)
|
||||
self._device.attributes[desc.key] = desc.off_value
|
||||
@@ -511,7 +533,7 @@ class HonControlSwitchEntity(HonEntity, SwitchEntity):
|
||||
return (
|
||||
super().available
|
||||
and int(self._device.get("remoteCtrValid", 1)) == 1
|
||||
and self._device.get("attributes.lastConnEvent.category") != "DISCONNECTED"
|
||||
and self._device.connection
|
||||
)
|
||||
|
||||
@property
|
||||
@@ -545,16 +567,16 @@ class HonConfigSwitchEntity(HonEntity, SwitchEntity):
|
||||
if type(setting) == HonParameter:
|
||||
return
|
||||
setting.value = setting.max if isinstance(setting, HonParameterRange) else "1"
|
||||
self.coordinator.async_set_updated_data({})
|
||||
self.async_write_ha_state()
|
||||
await self.coordinator.async_refresh()
|
||||
|
||||
async def async_turn_off(self, **kwargs: Any) -> None:
|
||||
setting = self._device.settings[self.entity_description.key]
|
||||
if type(setting) == HonParameter:
|
||||
return
|
||||
setting.value = setting.min if isinstance(setting, HonParameterRange) else "0"
|
||||
self.coordinator.async_set_updated_data({})
|
||||
self.async_write_ha_state()
|
||||
await self.coordinator.async_refresh()
|
||||
|
||||
@callback
|
||||
def _handle_coordinator_update(self, update: bool = True) -> None:
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -194,6 +194,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "speciální",
|
||||
@@ -346,6 +347,7 @@
|
||||
"hqd_delicate": "Jemné",
|
||||
"hqd_diaper": "Pleny",
|
||||
"hqd_duvet": "Prošívaná bunda ze syntetických vláken",
|
||||
"hqd_eco": "Eco",
|
||||
"hqd_feather": "Prošívaná bunda z přírodních vláken",
|
||||
"hqd_hot_wind_timing": "Dětská zavinovačka",
|
||||
"hqd_hygienic": "Dezinfekce",
|
||||
@@ -787,6 +789,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Není vybrán žádný režim",
|
||||
"quick_cool": "QUICK COOL",
|
||||
"quick_set": "Quick Set",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
@@ -1099,6 +1102,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "speciální",
|
||||
@@ -1251,6 +1255,7 @@
|
||||
"hqd_delicate": "Jemné",
|
||||
"hqd_diaper": "Pleny",
|
||||
"hqd_duvet": "Prošívaná bunda ze syntetických vláken",
|
||||
"hqd_eco": "Eco",
|
||||
"hqd_feather": "Prošívaná bunda z přírodních vláken",
|
||||
"hqd_hot_wind_timing": "Dětská zavinovačka",
|
||||
"hqd_hygienic": "Dezinfekce",
|
||||
@@ -1692,6 +1697,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Není vybrán žádný režim",
|
||||
"quick_cool": "QUICK COOL",
|
||||
"quick_set": "Quick Set",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -194,6 +194,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "spezial",
|
||||
@@ -346,6 +347,7 @@
|
||||
"hqd_delicate": "Feinwäsche",
|
||||
"hqd_diaper": "Windeln",
|
||||
"hqd_duvet": "Steppjacke aus synthetischer Faser",
|
||||
"hqd_eco": "Eco",
|
||||
"hqd_feather": "Steppjacke aus Naturfaser",
|
||||
"hqd_hot_wind_timing": "Superschon",
|
||||
"hqd_hygienic": "Desinfektion",
|
||||
@@ -787,6 +789,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Kein Modus ausgewählt",
|
||||
"quick_cool": "SCHNELLKÜHLUNG",
|
||||
"quick_set": "Schnelle Einstellung",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
@@ -1099,6 +1102,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "spezial",
|
||||
@@ -1251,6 +1255,7 @@
|
||||
"hqd_delicate": "Feinwäsche",
|
||||
"hqd_diaper": "Windeln",
|
||||
"hqd_duvet": "Steppjacke aus synthetischer Faser",
|
||||
"hqd_eco": "Eco",
|
||||
"hqd_feather": "Steppjacke aus Naturfaser",
|
||||
"hqd_hot_wind_timing": "Superschon",
|
||||
"hqd_hygienic": "Desinfektion",
|
||||
@@ -1692,6 +1697,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Kein Modus ausgewählt",
|
||||
"quick_cool": "SCHNELLKÜHLUNG",
|
||||
"quick_set": "Schnelle Einstellung",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
|
||||
@@ -194,6 +194,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "σπεσιαλ",
|
||||
@@ -346,6 +347,7 @@
|
||||
"hqd_delicate": "Ευαίσθητα",
|
||||
"hqd_diaper": "Πάνες",
|
||||
"hqd_duvet": "Καπιτονέ τζάκετ (μπουφάν) από συνθετικές ίνες",
|
||||
"hqd_eco": "Οικολογικό",
|
||||
"hqd_feather": "Καπιτονέ τζάκετ (μπουφάν) από φυσικές ίνες",
|
||||
"hqd_hot_wind_timing": "Ζεστή Αγκαλιά",
|
||||
"hqd_hygienic": "Υγιεινή",
|
||||
@@ -787,6 +789,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Δεν επιλέχθηκε λειτουργία",
|
||||
"quick_cool": "ΓΡΗΓΟΡΗ ΨΥΞΗ",
|
||||
"quick_set": "Γρήγορη ρύθμιση",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
@@ -1099,6 +1102,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "σπεσιαλ",
|
||||
@@ -1251,6 +1255,7 @@
|
||||
"hqd_delicate": "Ευαίσθητα",
|
||||
"hqd_diaper": "Πάνες",
|
||||
"hqd_duvet": "Καπιτονέ τζάκετ (μπουφάν) από συνθετικές ίνες",
|
||||
"hqd_eco": "Οικολογικό",
|
||||
"hqd_feather": "Καπιτονέ τζάκετ (μπουφάν) από φυσικές ίνες",
|
||||
"hqd_hot_wind_timing": "Ζεστή Αγκαλιά",
|
||||
"hqd_hygienic": "Υγιεινή",
|
||||
@@ -1692,6 +1697,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Δεν επιλέχθηκε λειτουργία",
|
||||
"quick_cool": "ΓΡΗΓΟΡΗ ΨΥΞΗ",
|
||||
"quick_set": "Γρήγορη ρύθμιση",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
|
||||
@@ -84,10 +84,14 @@
|
||||
"iot_auto": "Auto",
|
||||
"iot_cool": "Cool",
|
||||
"iot_dry": "Dry",
|
||||
"iot_dry_summer": "Dry summer",
|
||||
"iot_dry_winter": "Dry winter",
|
||||
"iot_fan": "Fan",
|
||||
"iot_heat": "Heat",
|
||||
"iot_humid_summer": "Humid summer",
|
||||
"iot_nano_aqua": "Nano Aqua",
|
||||
"iot_purify": "Self-purify",
|
||||
"iot_rainy_winter": "Rainy winter",
|
||||
"iot_self_clean": "Self-clean",
|
||||
"iot_self_clean_56": "Steri-Clean 56°C",
|
||||
"iot_simple_start": "Start now",
|
||||
@@ -96,7 +100,8 @@
|
||||
"iot_uv_and_cool": "UV + Cold",
|
||||
"iot_uv_and_dry": "UV + Dehumidifier",
|
||||
"iot_uv_and_fan": "UV + Fan",
|
||||
"iot_uv_and_heat": "UV + Heat"
|
||||
"iot_uv_and_heat": "UV + Heat",
|
||||
"iot_warm_spring": "Warm spring"
|
||||
},
|
||||
"name": "Program"
|
||||
},
|
||||
@@ -362,7 +367,7 @@
|
||||
"hqd_delicate": "Delicates",
|
||||
"hqd_diaper": "Diapers",
|
||||
"hqd_duvet": "Synthetic fibre quilted jacket",
|
||||
"hqd_eco": "HQD ECO",
|
||||
"hqd_eco": "Eco",
|
||||
"hqd_feather": "Natural fibre quilted jacket",
|
||||
"hqd_hot_wind_timing": "Warm Embrace",
|
||||
"hqd_hygienic": "Hygienising",
|
||||
@@ -505,6 +510,7 @@
|
||||
"delicati_59_steam": "Delicate 59' + Steam",
|
||||
"drain_spin": "Drain + Spin",
|
||||
"easy_iron": "Easy Iron 39'",
|
||||
"easy_iron_pro": "Easy Iron 39'",
|
||||
"eco_40_60_new_energy_label": "Eco 40-60",
|
||||
"extra_care": "Extra Care",
|
||||
"fitness": "Fitness Care",
|
||||
@@ -771,6 +777,7 @@
|
||||
"sport_plus_29": "Sport Plus 29\"",
|
||||
"sport_plus_39": "Sport Plus 39'",
|
||||
"steam_39": "Steam 39'",
|
||||
"steam_care": "Steam Care Pro",
|
||||
"steam_care_pro": "Steam Care Pro",
|
||||
"steam_care_pro_cotton": "Steam Care Pro - Cottons",
|
||||
"steam_care_pro_delicates": "Steam Care Pro - Delicates 16'",
|
||||
@@ -1010,10 +1017,14 @@
|
||||
"iot_auto": "Auto",
|
||||
"iot_cool": "Cool",
|
||||
"iot_dry": "Dry",
|
||||
"iot_dry_summer": "Dry summer",
|
||||
"iot_dry_winter": "Dry winter",
|
||||
"iot_fan": "Fan",
|
||||
"iot_heat": "Heat",
|
||||
"iot_humid_summer": "Humid summer",
|
||||
"iot_nano_aqua": "Nano Aqua",
|
||||
"iot_purify": "Self-purify",
|
||||
"iot_rainy_winter": "Rainy winter",
|
||||
"iot_self_clean": "Self-clean",
|
||||
"iot_self_clean_56": "Steri-Clean 56°C",
|
||||
"iot_simple_start": "Start now",
|
||||
@@ -1022,7 +1033,8 @@
|
||||
"iot_uv_and_cool": "UV + Cold",
|
||||
"iot_uv_and_dry": "UV + Dehumidifier",
|
||||
"iot_uv_and_fan": "UV + Fan",
|
||||
"iot_uv_and_heat": "UV + Heat"
|
||||
"iot_uv_and_heat": "UV + Heat",
|
||||
"iot_warm_spring": "Warm spring"
|
||||
},
|
||||
"name": "Program"
|
||||
},
|
||||
@@ -1288,7 +1300,7 @@
|
||||
"hqd_delicate": "Delicates",
|
||||
"hqd_diaper": "Diapers",
|
||||
"hqd_duvet": "Synthetic fibre quilted jacket",
|
||||
"hqd_eco": "HQD ECO",
|
||||
"hqd_eco": "Eco",
|
||||
"hqd_feather": "Natural fibre quilted jacket",
|
||||
"hqd_hot_wind_timing": "Warm Embrace",
|
||||
"hqd_hygienic": "Hygienising",
|
||||
@@ -1431,6 +1443,7 @@
|
||||
"delicati_59_steam": "Delicate 59' + Steam",
|
||||
"drain_spin": "Drain + Spin",
|
||||
"easy_iron": "Easy Iron 39'",
|
||||
"easy_iron_pro": "Easy Iron 39'",
|
||||
"eco_40_60_new_energy_label": "Eco 40-60",
|
||||
"extra_care": "Extra Care",
|
||||
"fitness": "Fitness Care",
|
||||
@@ -1697,6 +1710,7 @@
|
||||
"sport_plus_29": "Sport Plus 29\"",
|
||||
"sport_plus_39": "Sport Plus 39'",
|
||||
"steam_39": "Steam 39'",
|
||||
"steam_care": "Steam Care Pro",
|
||||
"steam_care_pro": "Steam Care Pro",
|
||||
"steam_care_pro_cotton": "Steam Care Pro - Cottons",
|
||||
"steam_care_pro_delicates": "Steam Care Pro - Delicates 16'",
|
||||
@@ -2145,10 +2159,14 @@
|
||||
"iot_auto": "Auto",
|
||||
"iot_cool": "Cool",
|
||||
"iot_dry": "Dry",
|
||||
"iot_dry_summer": "Dry summer",
|
||||
"iot_dry_winter": "Dry winter",
|
||||
"iot_fan": "Fan",
|
||||
"iot_heat": "Heat",
|
||||
"iot_humid_summer": "Humid summer",
|
||||
"iot_nano_aqua": "Nano Aqua",
|
||||
"iot_purify": "Self-purify",
|
||||
"iot_rainy_winter": "Rainy winter",
|
||||
"iot_self_clean": "Self-clean",
|
||||
"iot_self_clean_56": "Steri-Clean 56°C",
|
||||
"iot_simple_start": "Start now",
|
||||
@@ -2157,7 +2175,8 @@
|
||||
"iot_uv_and_cool": "UV + Cold",
|
||||
"iot_uv_and_dry": "UV + Dehumidifier",
|
||||
"iot_uv_and_fan": "UV + Fan",
|
||||
"iot_uv_and_heat": "UV + Heat"
|
||||
"iot_uv_and_heat": "UV + Heat",
|
||||
"iot_warm_spring": "Warm spring"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -194,6 +194,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "Especial",
|
||||
@@ -346,6 +347,7 @@
|
||||
"hqd_delicate": "Ropa delicada",
|
||||
"hqd_diaper": "Pañales",
|
||||
"hqd_duvet": "Chaqueta acolchada de fibras sintéticas",
|
||||
"hqd_eco": "Eco",
|
||||
"hqd_feather": "Chaqueta acolchada de fibras naturales",
|
||||
"hqd_hot_wind_timing": "Abrazo cálido",
|
||||
"hqd_hygienic": "Higienizar",
|
||||
@@ -787,6 +789,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "No se ha seleccionado ningún modo",
|
||||
"quick_cool": "QUICK COOL",
|
||||
"quick_set": "Ajuste rápido",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
@@ -1099,6 +1102,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "Especial",
|
||||
@@ -1251,6 +1255,7 @@
|
||||
"hqd_delicate": "Ropa delicada",
|
||||
"hqd_diaper": "Pañales",
|
||||
"hqd_duvet": "Chaqueta acolchada de fibras sintéticas",
|
||||
"hqd_eco": "Eco",
|
||||
"hqd_feather": "Chaqueta acolchada de fibras naturales",
|
||||
"hqd_hot_wind_timing": "Abrazo cálido",
|
||||
"hqd_hygienic": "Higienizar",
|
||||
@@ -1692,6 +1697,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "No se ha seleccionado ningún modo",
|
||||
"quick_cool": "QUICK COOL",
|
||||
"quick_set": "Ajuste rápido",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -194,6 +194,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "spécial",
|
||||
@@ -346,6 +347,7 @@
|
||||
"hqd_delicate": "Délicats",
|
||||
"hqd_diaper": "Couches",
|
||||
"hqd_duvet": "Veste matelassée en fibre synthétique",
|
||||
"hqd_eco": "Éco",
|
||||
"hqd_feather": "Veste matelassée en fibre naturelle",
|
||||
"hqd_hot_wind_timing": "Chauffage délicat",
|
||||
"hqd_hygienic": "Hygiénisation",
|
||||
@@ -787,6 +789,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Aucun mode sélectionné",
|
||||
"quick_cool": "QUICK COOL",
|
||||
"quick_set": "Configuration rapide",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
@@ -1099,6 +1102,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "spécial",
|
||||
@@ -1251,6 +1255,7 @@
|
||||
"hqd_delicate": "Délicats",
|
||||
"hqd_diaper": "Couches",
|
||||
"hqd_duvet": "Veste matelassée en fibre synthétique",
|
||||
"hqd_eco": "Éco",
|
||||
"hqd_feather": "Veste matelassée en fibre naturelle",
|
||||
"hqd_hot_wind_timing": "Chauffage délicat",
|
||||
"hqd_hygienic": "Hygiénisation",
|
||||
@@ -1692,6 +1697,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Aucun mode sélectionné",
|
||||
"quick_cool": "QUICK COOL",
|
||||
"quick_set": "Configuration rapide",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
|
||||
@@ -194,6 +194,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "Posebno",
|
||||
@@ -346,6 +347,7 @@
|
||||
"hqd_delicate": "Osjetljivo rublje",
|
||||
"hqd_diaper": "Pelene",
|
||||
"hqd_duvet": "Prošivena jakna od sintetičkih vlakana",
|
||||
"hqd_eco": "Ekološki",
|
||||
"hqd_feather": "Prošivena jakna od prirodnih vlakana",
|
||||
"hqd_hot_wind_timing": "Zagrijavanje",
|
||||
"hqd_hygienic": "Higijenizacija",
|
||||
@@ -787,6 +789,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Nije odabran način rada",
|
||||
"quick_cool": "BRZO HLAĐENJE",
|
||||
"quick_set": "Brzo postavljanje",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
@@ -1099,6 +1102,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "Posebno",
|
||||
@@ -1251,6 +1255,7 @@
|
||||
"hqd_delicate": "Osjetljivo rublje",
|
||||
"hqd_diaper": "Pelene",
|
||||
"hqd_duvet": "Prošivena jakna od sintetičkih vlakana",
|
||||
"hqd_eco": "Ekološki",
|
||||
"hqd_feather": "Prošivena jakna od prirodnih vlakana",
|
||||
"hqd_hot_wind_timing": "Zagrijavanje",
|
||||
"hqd_hygienic": "Higijenizacija",
|
||||
@@ -1692,6 +1697,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Nije odabran način rada",
|
||||
"quick_cool": "BRZO HLAĐENJE",
|
||||
"quick_set": "Brzo postavljanje",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
|
||||
@@ -0,0 +1,736 @@
|
||||
{
|
||||
"entity": {
|
||||
"sensor": {
|
||||
"washing_modes": {
|
||||
"state": {
|
||||
"ready": "Ready",
|
||||
"running": "Program running",
|
||||
"pause": "Pause",
|
||||
"scheduled": "Scheduled",
|
||||
"error": "Error",
|
||||
"test": "Test",
|
||||
"ending": "Stopping cycle…"
|
||||
}
|
||||
},
|
||||
"mach_modes_ac": {
|
||||
"state": {
|
||||
"auto": "Auto",
|
||||
"cool": "Cool",
|
||||
"dry": "Dry",
|
||||
"heat": "Heat",
|
||||
"fan": "Fan"
|
||||
}
|
||||
},
|
||||
"program_phases_wm": {
|
||||
"state": {
|
||||
"ready": "Ready",
|
||||
"spin": "Spin",
|
||||
"rinse": "Rinse",
|
||||
"drying": "Drying",
|
||||
"steam": "Steam",
|
||||
"weighting": "Weighing",
|
||||
"scheduled": "Scheduled",
|
||||
"tumbling": "Keep Fresh",
|
||||
"refresh": "Refresh",
|
||||
"heating": "Heating",
|
||||
"washing": "Wash"
|
||||
},
|
||||
"name": "Phase"
|
||||
},
|
||||
"program_phases_td": {
|
||||
"state": {
|
||||
"ready": "Ready",
|
||||
"heat_stroke": "Drying",
|
||||
"drying": "Drying",
|
||||
"cooldown": "Cooldown",
|
||||
"unknown": "unknown",
|
||||
"tumbling": "Keep Fresh"
|
||||
},
|
||||
"name": "Phase"
|
||||
},
|
||||
"program_phases_dw": {
|
||||
"state": {
|
||||
"ready": "Ready",
|
||||
"prewash": "Prewash",
|
||||
"washing": "Wash",
|
||||
"rinse": "Rinse",
|
||||
"drying": "Drying",
|
||||
"hot_rinse": "Hot rinse"
|
||||
},
|
||||
"name": "Phase"
|
||||
},
|
||||
"dry_levels": {
|
||||
"state": {
|
||||
"no_dry": "No drying",
|
||||
"iron_dry": "Iron dry",
|
||||
"no_dry_iron": "Hang",
|
||||
"cupboard_dry": "Cupboard",
|
||||
"extra_dry": "Extra dry",
|
||||
"ready_to_wear": "Ready to wear"
|
||||
},
|
||||
"name": "Drying level"
|
||||
},
|
||||
"dirt_level": {
|
||||
"state": {
|
||||
"little": "Little",
|
||||
"normal": "Normal",
|
||||
"very": "Very",
|
||||
"unknown": "unknown"
|
||||
},
|
||||
"name": "Dirt level"
|
||||
},
|
||||
"steam_level": {
|
||||
"state": {
|
||||
"no_steam": "No steam",
|
||||
"cotton": "Cotton",
|
||||
"delicate": "Delicate",
|
||||
"synthetic": "Synthetic"
|
||||
},
|
||||
"name": "Steam Level"
|
||||
},
|
||||
"humidity_level": {
|
||||
"state": {
|
||||
"low": "Low",
|
||||
"mid": "Medium",
|
||||
"high": "High"
|
||||
},
|
||||
"name": "Humidity level"
|
||||
},
|
||||
"programs_ac": {
|
||||
"state": {},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_dw": {
|
||||
"state": {},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_ih": {
|
||||
"state": {},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_ov": {
|
||||
"state": {},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_td": {
|
||||
"state": {},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_wm": {
|
||||
"state": {},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_ref": {
|
||||
"state": {},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_wc": {
|
||||
"state": {}
|
||||
},
|
||||
"dry_time": {
|
||||
"name": "Drying time"
|
||||
},
|
||||
"power": {
|
||||
"name": "Power level"
|
||||
},
|
||||
"remaining_time": {
|
||||
"name": "Time remaining"
|
||||
},
|
||||
"temperature": {
|
||||
"name": "Temperature"
|
||||
},
|
||||
"water_efficiency": {
|
||||
"name": "Water efficiency"
|
||||
},
|
||||
"water_saving": {
|
||||
"name": "Water savings"
|
||||
},
|
||||
"duration": {
|
||||
"name": "Duration"
|
||||
},
|
||||
"target_temperature": {
|
||||
"name": "Target temperature"
|
||||
},
|
||||
"spin_speed": {
|
||||
"name": "Spin"
|
||||
},
|
||||
"delay_time": {
|
||||
"name": "Delay Start"
|
||||
},
|
||||
"suggested_load": {
|
||||
"name": "Load capacity"
|
||||
},
|
||||
"energy_label": {
|
||||
"name": "Energy efficiency"
|
||||
},
|
||||
"det_dust": {
|
||||
"name": "Powder detergent"
|
||||
},
|
||||
"det_liquid": {
|
||||
"name": "Liquid detergent"
|
||||
},
|
||||
"errors": {
|
||||
"name": "Error"
|
||||
},
|
||||
"programs": {
|
||||
"name": "Current program"
|
||||
},
|
||||
"room_temperature": {
|
||||
"name": "Room temperature"
|
||||
},
|
||||
"humidity": {
|
||||
"name": "Humidity"
|
||||
},
|
||||
"cycles_total": {
|
||||
"name": "Cycles Total"
|
||||
},
|
||||
"energy_total": {
|
||||
"name": "Energy Consumption Total"
|
||||
},
|
||||
"water_total": {
|
||||
"name": "Water efficiency Total"
|
||||
},
|
||||
"energy_current": {
|
||||
"name": "Energy Consumption Current"
|
||||
},
|
||||
"water_current": {
|
||||
"name": "Water efficiency Current"
|
||||
},
|
||||
"freezer_temp": {
|
||||
"name": "Freezer temperature"
|
||||
},
|
||||
"fridge_temp": {
|
||||
"name": "Fridge temperature"
|
||||
},
|
||||
"voc": {
|
||||
"name": "Gas (VOC)"
|
||||
},
|
||||
"filter_cleaning": {
|
||||
"name": "Filter cleaning"
|
||||
},
|
||||
"filter_life": {
|
||||
"name": "Filter life"
|
||||
},
|
||||
"air_quality": {
|
||||
"name": "Air Quality"
|
||||
},
|
||||
"fan_speed": {
|
||||
"name": "Fan speed"
|
||||
}
|
||||
},
|
||||
"select": {
|
||||
"dry_levels": {
|
||||
"state": {
|
||||
"no_dry": "No drying",
|
||||
"iron_dry": "Iron dry",
|
||||
"no_dry_iron": "Hang",
|
||||
"cupboard_dry": "Cupboard",
|
||||
"extra_dry": "Extra dry",
|
||||
"ready_to_wear": "Ready to wear"
|
||||
},
|
||||
"name": "Drying level"
|
||||
},
|
||||
"eco_pilot": {
|
||||
"state": {
|
||||
"touch_off": "Off",
|
||||
"avoid_touch": "Avoid touch",
|
||||
"follow_touch": "Follow",
|
||||
"unknown": "unknown"
|
||||
},
|
||||
"name": "Eco pilot"
|
||||
},
|
||||
"fan_mode": {
|
||||
"state": {
|
||||
"high": "High",
|
||||
"mid": "Medium",
|
||||
"low": "Low",
|
||||
"auto": "Auto"
|
||||
}
|
||||
},
|
||||
"ref_zones": {
|
||||
"state": {
|
||||
"fridge": "Fridge",
|
||||
"freezer": "Freezer",
|
||||
"vtroom1": "My Zone",
|
||||
"fridge_freezer": "Fridge & Freezer"
|
||||
},
|
||||
"name": "Zone"
|
||||
},
|
||||
"steam_level": {
|
||||
"state": {
|
||||
"no_steam": "No steam",
|
||||
"cotton": "Cotton",
|
||||
"delicate": "Delicate",
|
||||
"synthetic": "Synthetic"
|
||||
},
|
||||
"name": "Steam Level"
|
||||
},
|
||||
"mode": {
|
||||
"state": {
|
||||
"standby": "Standby",
|
||||
"sleep": "Sleep",
|
||||
"auto": "Auto",
|
||||
"allergens": "Allergens",
|
||||
"max": "Max"
|
||||
},
|
||||
"name": "Mode"
|
||||
},
|
||||
"diffuser": {
|
||||
"state": {
|
||||
"off": "Off",
|
||||
"soft": "Soft",
|
||||
"mid": "Mid",
|
||||
"h_biotics": "H-BIOTICS",
|
||||
"custom": "Customise"
|
||||
},
|
||||
"name": "Diffuser"
|
||||
},
|
||||
"dirt_level": {
|
||||
"state": {
|
||||
"little": "Little",
|
||||
"normal": "Normal",
|
||||
"very": "Very",
|
||||
"unknown": "unknown"
|
||||
},
|
||||
"name": "Dirt level"
|
||||
},
|
||||
"stain_type": {
|
||||
"state": {
|
||||
"baby_food": "Baby food",
|
||||
"bean_paste": "Bean soup",
|
||||
"blood": "Blood",
|
||||
"blueberry": "Blueberry",
|
||||
"blue_ink": "Blue ink",
|
||||
"butter": "Butter",
|
||||
"chili_oil": "Chili oil",
|
||||
"chili_sauce": "Chili sauce",
|
||||
"chocolate": "Chocolate",
|
||||
"coffe": "Coffee",
|
||||
"coffee": "Coffee",
|
||||
"color_pencil": "Pencil",
|
||||
"cooking_oil": "Cooking oil",
|
||||
"curry": "Curry",
|
||||
"deodorant": "Deodorant",
|
||||
"egg": "Egg",
|
||||
"fruit": "Fruit",
|
||||
"glue": "Glue",
|
||||
"grass": "Grass",
|
||||
"ice_cream": "Ice cream",
|
||||
"ketchup": "Ketchup",
|
||||
"lip_gloss": "Lip gloss",
|
||||
"mayonnaise": "Mayonnaise",
|
||||
"mech_grease": "Mech grease",
|
||||
"milk": "Milk",
|
||||
"milk_tea": "Milk tea",
|
||||
"oil": "Oil",
|
||||
"oil_pastel": "Oil pastel",
|
||||
"perfume": "Perfume",
|
||||
"rust": "Rust",
|
||||
"shoe_cream": "Shoe cream",
|
||||
"soil": "Soil",
|
||||
"soy_sauce": "Soy sauce",
|
||||
"sweat": "Sweat",
|
||||
"tea": "Tea",
|
||||
"wine": "Wine",
|
||||
"unknown": "unknown"
|
||||
},
|
||||
"name": "Stain level"
|
||||
},
|
||||
"fan_horizontal": {
|
||||
"state": {
|
||||
"position_1": "Fixed - Position 1",
|
||||
"position_2": "Fixed - Position 2",
|
||||
"position_3": "Fixed - Position 3",
|
||||
"position_4": "Fixed - Position 4",
|
||||
"position_5": "Fixed - Position 5",
|
||||
"swing": "Swing"
|
||||
},
|
||||
"name": "Fan direction Horizontal"
|
||||
},
|
||||
"fan_vertical": {
|
||||
"state": {
|
||||
"position_1": "Fixed - Position 1",
|
||||
"position_2": "Fixed - Position 2",
|
||||
"position_3": "Fixed - Position 3",
|
||||
"position_4": "Fixed - Position 4",
|
||||
"position_5": "Fixed - Position 5",
|
||||
"swing": "Swing"
|
||||
},
|
||||
"name": "Fan direction Vertical"
|
||||
},
|
||||
"programs_ac": {
|
||||
"state": {},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_dw": {
|
||||
"state": {},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_ih": {
|
||||
"state": {},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_ov": {
|
||||
"state": {},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_td": {
|
||||
"state": {},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_wm": {
|
||||
"state": {},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_ref": {
|
||||
"state": {},
|
||||
"name": "Program"
|
||||
},
|
||||
"dry_time": {
|
||||
"name": "Drying time"
|
||||
},
|
||||
"spin_speed": {
|
||||
"name": "Spin"
|
||||
},
|
||||
"temperature": {
|
||||
"name": "Temperature"
|
||||
},
|
||||
"remaining_time": {
|
||||
"name": "Time remaining"
|
||||
}
|
||||
},
|
||||
"switch": {
|
||||
"anti_crease": {
|
||||
"name": "Anticrease"
|
||||
},
|
||||
"add_dish": {
|
||||
"name": "Add dishes"
|
||||
},
|
||||
"eco_express": {
|
||||
"name": "Eco"
|
||||
},
|
||||
"extra_dry": {
|
||||
"name": "Extra dry"
|
||||
},
|
||||
"half_load": {
|
||||
"name": "Half load"
|
||||
},
|
||||
"open_door": {
|
||||
"name": "Open door"
|
||||
},
|
||||
"three_in_one": {
|
||||
"name": "3 in 1"
|
||||
},
|
||||
"preheat": {
|
||||
"name": "Preheat"
|
||||
},
|
||||
"dish_washer": {
|
||||
"name": "Dish washer"
|
||||
},
|
||||
"tumble_dryer": {
|
||||
"name": "Tumble dryer"
|
||||
},
|
||||
"washing_machine": {
|
||||
"name": "Washing machine"
|
||||
},
|
||||
"washer_dryer": {
|
||||
"name": "Washer dryer"
|
||||
},
|
||||
"oven": {
|
||||
"name": "Oven"
|
||||
},
|
||||
"prewash": {
|
||||
"name": "Pre-wash"
|
||||
},
|
||||
"pause": {
|
||||
"name": "Pause"
|
||||
},
|
||||
"keep_fresh": {
|
||||
"name": "Keep Fresh"
|
||||
},
|
||||
"delay_time": {
|
||||
"name": "Delay Start"
|
||||
},
|
||||
"rapid_mode": {
|
||||
"name": "Rapid mode"
|
||||
},
|
||||
"eco_mode": {
|
||||
"name": "ECO mode"
|
||||
},
|
||||
"10_degree_heating": {
|
||||
"name": "10°C Heating function"
|
||||
},
|
||||
"self_clean": {
|
||||
"name": "Self-clean"
|
||||
},
|
||||
"self_clean_56": {
|
||||
"name": "Steri-Clean 56°C"
|
||||
},
|
||||
"silent_mode": {
|
||||
"name": "Silent mode"
|
||||
},
|
||||
"night_mode": {
|
||||
"name": "Night mode"
|
||||
},
|
||||
"extra_rinse_1": {
|
||||
"name": "+1 Rinse"
|
||||
},
|
||||
"extra_rinse_2": {
|
||||
"name": "+2 Rinses"
|
||||
},
|
||||
"extra_rinse_3": {
|
||||
"name": "+3 Rinses"
|
||||
},
|
||||
"acqua_plus": {
|
||||
"name": "Acquaplus"
|
||||
},
|
||||
"auto_dose_softener": {
|
||||
"name": "Autodose Softener"
|
||||
},
|
||||
"auto_dose_detergent": {
|
||||
"name": "Autodose Detergent"
|
||||
},
|
||||
"good_night": {
|
||||
"name": "Good Night"
|
||||
},
|
||||
"auto_set": {
|
||||
"name": "Auto-Set"
|
||||
},
|
||||
"super_cool": {
|
||||
"name": "Super Cool"
|
||||
},
|
||||
"super_freeze": {
|
||||
"name": "Super Freeze"
|
||||
},
|
||||
"refrigerator": {
|
||||
"name": "Refrigerator"
|
||||
},
|
||||
"touch_tone": {
|
||||
"name": "Touch tone volume"
|
||||
},
|
||||
"hygiene": {
|
||||
"name": "Hygiene plus"
|
||||
},
|
||||
"hood": {
|
||||
"name": "Hood"
|
||||
}
|
||||
},
|
||||
"binary_sensor": {
|
||||
"door_lock": {
|
||||
"name": "Door lock"
|
||||
},
|
||||
"extra_rinse_1": {
|
||||
"name": "+1 Rinse"
|
||||
},
|
||||
"extra_rinse_2": {
|
||||
"name": "+2 Rinses"
|
||||
},
|
||||
"extra_rinse_3": {
|
||||
"name": "+3 Rinses"
|
||||
},
|
||||
"good_night": {
|
||||
"name": "Good Night"
|
||||
},
|
||||
"anti_crease": {
|
||||
"name": "Anticrease"
|
||||
},
|
||||
"acqua_plus": {
|
||||
"name": "Acquaplus"
|
||||
},
|
||||
"spin_speed": {
|
||||
"name": "Spin"
|
||||
},
|
||||
"still_hot": {
|
||||
"name": "Still hot"
|
||||
},
|
||||
"pan_status": {
|
||||
"name": "Pan"
|
||||
},
|
||||
"remote_control": {
|
||||
"name": "Remote control"
|
||||
},
|
||||
"rinse_aid": {
|
||||
"name": "Rinse Aid level"
|
||||
},
|
||||
"salt_level": {
|
||||
"name": "Salt level"
|
||||
},
|
||||
"door_open": {
|
||||
"name": "Door open"
|
||||
},
|
||||
"connection": {
|
||||
"name": "Appliance connection"
|
||||
},
|
||||
"child_lock": {
|
||||
"name": "Child Lock"
|
||||
},
|
||||
"on": {
|
||||
"name": "On"
|
||||
},
|
||||
"prewash": {
|
||||
"name": "Pre-wash"
|
||||
},
|
||||
"buzzer": {
|
||||
"name": "Cycle end chime"
|
||||
},
|
||||
"holiday_mode": {
|
||||
"name": "Holiday Mode"
|
||||
},
|
||||
"auto_set": {
|
||||
"name": "Auto-Set"
|
||||
},
|
||||
"super_cool": {
|
||||
"name": "Super Cool"
|
||||
},
|
||||
"super_freeze": {
|
||||
"name": "Super Freeze"
|
||||
},
|
||||
"freezer_door": {
|
||||
"name": "Door open Freezer"
|
||||
},
|
||||
"fridge_door": {
|
||||
"name": "Door open Fridge"
|
||||
},
|
||||
"filter_replacement": {
|
||||
"name": "Filter replacement"
|
||||
}
|
||||
},
|
||||
"button": {
|
||||
"induction_hob": {
|
||||
"name": "Induction Hob"
|
||||
},
|
||||
"start_program": {
|
||||
"name": "Program Start"
|
||||
},
|
||||
"stop_program": {
|
||||
"name": "Program Stop"
|
||||
}
|
||||
},
|
||||
"number": {
|
||||
"power_management": {
|
||||
"name": "Power management"
|
||||
},
|
||||
"temperature": {
|
||||
"name": "Temperature"
|
||||
},
|
||||
"delay_time": {
|
||||
"name": "Delay Start"
|
||||
},
|
||||
"water_hard": {
|
||||
"name": "Water hardness"
|
||||
},
|
||||
"program_duration": {
|
||||
"name": "Program duration"
|
||||
},
|
||||
"target_temperature": {
|
||||
"name": "Target temperature"
|
||||
},
|
||||
"rinse_iterations": {
|
||||
"name": "Number of rinses"
|
||||
},
|
||||
"wash_time": {
|
||||
"name": "Washing intensity"
|
||||
},
|
||||
"dry_time": {
|
||||
"name": "Drying time"
|
||||
},
|
||||
"freezer_temp_sel": {
|
||||
"name": "Target temperature Freezer"
|
||||
},
|
||||
"fridge_temp_sel": {
|
||||
"name": "Target temperature Fridge"
|
||||
},
|
||||
"my_zone_temp_sel": {
|
||||
"name": "Target temperature My Zone"
|
||||
},
|
||||
"pollen_level": {
|
||||
"name": "Pollen level"
|
||||
},
|
||||
"aroma_time_on": {
|
||||
"name": "Diffuser (ON)"
|
||||
},
|
||||
"aroma_time_off": {
|
||||
"name": "Diffuser (OFF)"
|
||||
}
|
||||
},
|
||||
"climate": {
|
||||
"air_conditioner": {
|
||||
"name": "Air conditioner",
|
||||
"state_attributes": {
|
||||
"preset_mode": {
|
||||
"name": "Programs",
|
||||
"state": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"fridge": {
|
||||
"name": "Fridge",
|
||||
"state_attributes": {
|
||||
"preset_mode": {
|
||||
"name": "Fridge modes",
|
||||
"state": {
|
||||
"auto_set": "Auto-Set",
|
||||
"super_cool": "Super Cool",
|
||||
"holiday": "Holiday",
|
||||
"no_mode": "No mode selected"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"freezer": {
|
||||
"name": "Freezer",
|
||||
"state_attributes": {
|
||||
"preset_mode": {
|
||||
"name": "Freezer modes",
|
||||
"state": {
|
||||
"auto_set": "Auto-Set",
|
||||
"super_freeze": "Super Freeze",
|
||||
"no_mode": "No mode selected"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"oven": {
|
||||
"name": "Oven",
|
||||
"state_attributes": {
|
||||
"preset_mode": {
|
||||
"name": "Programs",
|
||||
"state": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"my_zone": {
|
||||
"name": "My Zone"
|
||||
},
|
||||
"wine": {
|
||||
"state_attributes": {
|
||||
"preset_mode": {
|
||||
"name": "Wine Cellar",
|
||||
"state": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"fan": {
|
||||
"air_extraction": {
|
||||
"name": "Air extraction"
|
||||
}
|
||||
},
|
||||
"light": {
|
||||
"light": {
|
||||
"name": "Light"
|
||||
}
|
||||
}
|
||||
},
|
||||
"config": {
|
||||
"step": {
|
||||
"user": {
|
||||
"description": "Do the login",
|
||||
"data": {
|
||||
"email": "Email",
|
||||
"password": "Password"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -348,6 +348,7 @@
|
||||
"hqd_delicate": "Delicati",
|
||||
"hqd_diaper": "Pannolini",
|
||||
"hqd_duvet": "Piumini sintetici",
|
||||
"hqd_eco": "Eco",
|
||||
"hqd_feather": "Piumini fibra naturale",
|
||||
"hqd_hot_wind_timing": "Caldo abbraccio",
|
||||
"hqd_hygienic": "Igienizzante",
|
||||
@@ -488,6 +489,7 @@
|
||||
"delicati_59_steam": "Delicati 59' + Vapore",
|
||||
"drain_spin": "Scarico e Centrifuga",
|
||||
"easy_iron": "Stiro Facile 39'",
|
||||
"easy_iron_pro": "Stiro Facile 39'",
|
||||
"eco_40_60_new_energy_label": "Eco 40-60",
|
||||
"extra_care": "Extra Care",
|
||||
"fitness": "Fitness Care",
|
||||
@@ -752,6 +754,7 @@
|
||||
"sport_plus_29": "Sport Plus 29\"",
|
||||
"sport_plus_39": "Sport Plus 39'",
|
||||
"steam_39": "Vapore 39'",
|
||||
"steam_care": "Steam Care Pro",
|
||||
"steam_care_pro": "Steam Care Pro",
|
||||
"steam_care_pro_cotton": "Steam Care Pro - Cotone",
|
||||
"steam_care_pro_delicates": "Steam Care Pro - Delicati 16'",
|
||||
@@ -789,6 +792,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Nessuna modalità selezionata",
|
||||
"quick_cool": "QUICK COOL",
|
||||
"quick_set": "Quick Set",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode": "SMART MODE",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
@@ -1261,6 +1265,7 @@
|
||||
"hqd_delicate": "Delicati",
|
||||
"hqd_diaper": "Pannolini",
|
||||
"hqd_duvet": "Piumini sintetici",
|
||||
"hqd_eco": "Eco",
|
||||
"hqd_feather": "Piumini fibra naturale",
|
||||
"hqd_hot_wind_timing": "Caldo abbraccio",
|
||||
"hqd_hygienic": "Igienizzante",
|
||||
@@ -1401,6 +1406,7 @@
|
||||
"delicati_59_steam": "Delicati 59' + Vapore",
|
||||
"drain_spin": "Scarico e Centrifuga",
|
||||
"easy_iron": "Stiro Facile 39'",
|
||||
"easy_iron_pro": "Stiro Facile 39'",
|
||||
"eco_40_60_new_energy_label": "Eco 40-60",
|
||||
"extra_care": "Extra Care",
|
||||
"fitness": "Fitness Care",
|
||||
@@ -1665,6 +1671,7 @@
|
||||
"sport_plus_29": "Sport Plus 29\"",
|
||||
"sport_plus_39": "Sport Plus 39'",
|
||||
"steam_39": "Vapore 39'",
|
||||
"steam_care": "Steam Care Pro",
|
||||
"steam_care_pro": "Steam Care Pro",
|
||||
"steam_care_pro_cotton": "Steam Care Pro - Cotone",
|
||||
"steam_care_pro_delicates": "Steam Care Pro - Delicati 16'",
|
||||
@@ -1702,6 +1709,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Nessuna modalità selezionata",
|
||||
"quick_cool": "QUICK COOL",
|
||||
"quick_set": "Quick Set",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode": "SMART MODE",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -194,6 +194,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "speciaal",
|
||||
@@ -346,6 +347,7 @@
|
||||
"hqd_delicate": "Fijne was",
|
||||
"hqd_diaper": "Luiers",
|
||||
"hqd_duvet": "Gewatteerde jas met synthetische vezels",
|
||||
"hqd_eco": "Eco",
|
||||
"hqd_feather": "Gewatteerde jas met natuurlijke vezels",
|
||||
"hqd_hot_wind_timing": "Warme Knuffel",
|
||||
"hqd_hygienic": "Ontsmetten",
|
||||
@@ -787,6 +789,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Geen modus geselecteerd",
|
||||
"quick_cool": "QUICK KOEL",
|
||||
"quick_set": "Snel instellen",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
@@ -1099,6 +1102,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "speciaal",
|
||||
@@ -1251,6 +1255,7 @@
|
||||
"hqd_delicate": "Fijne was",
|
||||
"hqd_diaper": "Luiers",
|
||||
"hqd_duvet": "Gewatteerde jas met synthetische vezels",
|
||||
"hqd_eco": "Eco",
|
||||
"hqd_feather": "Gewatteerde jas met natuurlijke vezels",
|
||||
"hqd_hot_wind_timing": "Warme Knuffel",
|
||||
"hqd_hygienic": "Ontsmetten",
|
||||
@@ -1692,6 +1697,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Geen modus geselecteerd",
|
||||
"quick_cool": "QUICK KOEL",
|
||||
"quick_set": "Snel instellen",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
|
||||
@@ -0,0 +1,854 @@
|
||||
{
|
||||
"entity": {
|
||||
"sensor": {
|
||||
"washing_modes": {
|
||||
"state": {
|
||||
"ready": "Ready",
|
||||
"running": "Program running",
|
||||
"pause": "Pause",
|
||||
"scheduled": "Scheduled",
|
||||
"error": "Error",
|
||||
"test": "Test",
|
||||
"ending": "Stopping cycle…"
|
||||
}
|
||||
},
|
||||
"mach_modes_ac": {
|
||||
"state": {
|
||||
"auto": "Auto",
|
||||
"cool": "Cool",
|
||||
"dry": "Dry",
|
||||
"heat": "Heat",
|
||||
"fan": "Fan"
|
||||
}
|
||||
},
|
||||
"program_phases_wm": {
|
||||
"state": {
|
||||
"ready": "Ready",
|
||||
"spin": "Spin",
|
||||
"rinse": "Rinse",
|
||||
"drying": "Drying",
|
||||
"steam": "Steam",
|
||||
"weighting": "Weighing",
|
||||
"scheduled": "Scheduled",
|
||||
"tumbling": "Keep Fresh",
|
||||
"refresh": "Refresh",
|
||||
"heating": "Heating",
|
||||
"washing": "Wash"
|
||||
},
|
||||
"name": "Phase"
|
||||
},
|
||||
"program_phases_td": {
|
||||
"state": {
|
||||
"ready": "Ready",
|
||||
"heat_stroke": "Drying",
|
||||
"drying": "Drying",
|
||||
"cooldown": "Cooldown",
|
||||
"unknown": "unknown",
|
||||
"tumbling": "Keep Fresh"
|
||||
},
|
||||
"name": "Phase"
|
||||
},
|
||||
"program_phases_dw": {
|
||||
"state": {
|
||||
"ready": "Ready",
|
||||
"prewash": "Prewash",
|
||||
"washing": "Wash",
|
||||
"rinse": "Rinse",
|
||||
"drying": "Drying",
|
||||
"hot_rinse": "Hot rinse"
|
||||
},
|
||||
"name": "Phase"
|
||||
},
|
||||
"dry_levels": {
|
||||
"state": {
|
||||
"no_dry": "No drying",
|
||||
"iron_dry": "Iron dry",
|
||||
"no_dry_iron": "Hang",
|
||||
"cupboard_dry": "Cupboard",
|
||||
"extra_dry": "Extra dry",
|
||||
"ready_to_wear": "Ready to wear"
|
||||
},
|
||||
"name": "Drying level"
|
||||
},
|
||||
"dirt_level": {
|
||||
"state": {
|
||||
"little": "Little",
|
||||
"normal": "Normal",
|
||||
"very": "Very",
|
||||
"unknown": "unknown"
|
||||
},
|
||||
"name": "Dirt level"
|
||||
},
|
||||
"steam_level": {
|
||||
"state": {
|
||||
"no_steam": "No steam",
|
||||
"cotton": "Cotton",
|
||||
"delicate": "Delicate",
|
||||
"synthetic": "Synthetic"
|
||||
},
|
||||
"name": "Steam Level"
|
||||
},
|
||||
"humidity_level": {
|
||||
"state": {
|
||||
"low": "Low",
|
||||
"mid": "Medium",
|
||||
"high": "High"
|
||||
},
|
||||
"name": "Humidity level"
|
||||
},
|
||||
"programs_ac": {
|
||||
"state": {},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_dw": {
|
||||
"state": {
|
||||
"eco_voice": "Eco",
|
||||
"gentle_wash": "Gentle wash",
|
||||
"iot_dreft_quick_cycle": "Dreft Quick",
|
||||
"iot_fairy_quick_cycle": "Fairy Quick",
|
||||
"iot_jar_quick_cycle": "Jar Quick",
|
||||
"iot_yes_quick_cycle": "Yes Quick",
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"zone_wash": "Flex Zone Wash"
|
||||
},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_ih": {
|
||||
"state": {
|
||||
"iot_special_grilled_vegetables": "Grilled vegetables"
|
||||
},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_ov": {
|
||||
"state": {
|
||||
"iot_h20_clean": "h2O clean",
|
||||
"pizza": "Pizza",
|
||||
"tailor_bake": "Tailor bake"
|
||||
},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_td": {
|
||||
"state": {
|
||||
"genius": "Genius",
|
||||
"hqd_bath_towel": "Bath towel",
|
||||
"hqd_bulky": "Bulky",
|
||||
"hqd_cold_wind_30": "Cold wind 30 minutes",
|
||||
"hqd_cold_wind_timing": "Cold wind",
|
||||
"hqd_luxury": "Luxury",
|
||||
"hqd_night_dry": "Night dry",
|
||||
"hqd_refresh": "Refresh",
|
||||
"hqd_warm_up": "Warm up",
|
||||
"hqd_working_suit": "Working suit"
|
||||
},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_wm": {
|
||||
"state": {
|
||||
"allergy_care_pro": "Allergy Care Pro",
|
||||
"iot_allergy_care_pro": "Allergy Care Pro",
|
||||
"iot_wash_ariel_clean_cycle": "Ariel Ultimate Clean",
|
||||
"iot_wash_ariel_cold_cycle": "Ariel Cold Clean",
|
||||
"iot_wash_ariel_fresh_cycle": "Ariel Fresh Clean",
|
||||
"iot_wash_dash_clean_cycle": "Dash Ultimate Clean",
|
||||
"iot_wash_dash_cold_cycle": "Dash Cold Clean",
|
||||
"iot_wash_dash_fresh_cycle": "Dash Fresh Clean",
|
||||
"night_wash": "Night Wash",
|
||||
"silent_night": "Night Wash",
|
||||
"steam_care_pro": "Steam Care Pro",
|
||||
"steam_care_pro_cotton": "Steam Care Pro",
|
||||
"tailored_resistant_cotton": "Tailored Resistant Cotton",
|
||||
"tailored_synthetic_and_coloured": "Tailored Synthetic Colored",
|
||||
"ultra_fresh": "Ultra Fresh"
|
||||
},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_ref": {
|
||||
"state": {
|
||||
"chiller": "Quick cool",
|
||||
"cold_drinks": "Soft chill",
|
||||
"cool_drink": "Cool Drink",
|
||||
"fruits": "Fruit",
|
||||
"fruit_and_veg": "Fruit & Veg",
|
||||
"keep_fresh": "0°C Fresh",
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
"tea": "Cold Drinks",
|
||||
"vegetables": "Vegetable",
|
||||
"zero_fresh": "0°C Fresh"
|
||||
},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_wc": {
|
||||
"state": {}
|
||||
},
|
||||
"dry_time": {
|
||||
"name": "Drying time"
|
||||
},
|
||||
"power": {
|
||||
"name": "Power level"
|
||||
},
|
||||
"remaining_time": {
|
||||
"name": "Time remaining"
|
||||
},
|
||||
"temperature": {
|
||||
"name": "Temperature"
|
||||
},
|
||||
"water_efficiency": {
|
||||
"name": "Water efficiency"
|
||||
},
|
||||
"water_saving": {
|
||||
"name": "Water savings"
|
||||
},
|
||||
"duration": {
|
||||
"name": "Duration"
|
||||
},
|
||||
"target_temperature": {
|
||||
"name": "Target temperature"
|
||||
},
|
||||
"spin_speed": {
|
||||
"name": "Spin"
|
||||
},
|
||||
"delay_time": {
|
||||
"name": "Delay Start"
|
||||
},
|
||||
"suggested_load": {
|
||||
"name": "Load capacity"
|
||||
},
|
||||
"energy_label": {
|
||||
"name": "Energy efficiency"
|
||||
},
|
||||
"det_dust": {
|
||||
"name": "Powder detergent"
|
||||
},
|
||||
"det_liquid": {
|
||||
"name": "Liquid detergent"
|
||||
},
|
||||
"errors": {
|
||||
"name": "Error"
|
||||
},
|
||||
"programs": {
|
||||
"name": "Current program"
|
||||
},
|
||||
"room_temperature": {
|
||||
"name": "Room temperature"
|
||||
},
|
||||
"humidity": {
|
||||
"name": "Humidity"
|
||||
},
|
||||
"cycles_total": {
|
||||
"name": "Cycles Total"
|
||||
},
|
||||
"energy_total": {
|
||||
"name": "Energy Consumption Total"
|
||||
},
|
||||
"water_total": {
|
||||
"name": "Water efficiency Total"
|
||||
},
|
||||
"energy_current": {
|
||||
"name": "Energy Consumption Current"
|
||||
},
|
||||
"water_current": {
|
||||
"name": "Water efficiency Current"
|
||||
},
|
||||
"freezer_temp": {
|
||||
"name": "Freezer temperature"
|
||||
},
|
||||
"fridge_temp": {
|
||||
"name": "Fridge temperature"
|
||||
},
|
||||
"voc": {
|
||||
"name": "Gas (VOC)"
|
||||
},
|
||||
"filter_cleaning": {
|
||||
"name": "Filter cleaning"
|
||||
},
|
||||
"filter_life": {
|
||||
"name": "Filter life"
|
||||
},
|
||||
"air_quality": {
|
||||
"name": "Air Quality"
|
||||
},
|
||||
"fan_speed": {
|
||||
"name": "Fan speed"
|
||||
}
|
||||
},
|
||||
"select": {
|
||||
"dry_levels": {
|
||||
"state": {
|
||||
"no_dry": "No drying",
|
||||
"iron_dry": "Iron dry",
|
||||
"no_dry_iron": "Hang",
|
||||
"cupboard_dry": "Cupboard",
|
||||
"extra_dry": "Extra dry",
|
||||
"ready_to_wear": "Ready to wear"
|
||||
},
|
||||
"name": "Drying level"
|
||||
},
|
||||
"eco_pilot": {
|
||||
"state": {
|
||||
"touch_off": "Off",
|
||||
"avoid_touch": "Avoid touch",
|
||||
"follow_touch": "Follow",
|
||||
"unknown": "unknown"
|
||||
},
|
||||
"name": "Eco pilot"
|
||||
},
|
||||
"fan_mode": {
|
||||
"state": {
|
||||
"high": "High",
|
||||
"mid": "Medium",
|
||||
"low": "Low",
|
||||
"auto": "Auto"
|
||||
}
|
||||
},
|
||||
"ref_zones": {
|
||||
"state": {
|
||||
"fridge": "Fridge",
|
||||
"freezer": "Freezer",
|
||||
"vtroom1": "My Zone",
|
||||
"fridge_freezer": "Fridge & Freezer"
|
||||
},
|
||||
"name": "Zone"
|
||||
},
|
||||
"steam_level": {
|
||||
"state": {
|
||||
"no_steam": "No steam",
|
||||
"cotton": "Cotton",
|
||||
"delicate": "Delicate",
|
||||
"synthetic": "Synthetic"
|
||||
},
|
||||
"name": "Steam Level"
|
||||
},
|
||||
"mode": {
|
||||
"state": {
|
||||
"standby": "Standby",
|
||||
"sleep": "Sleep",
|
||||
"auto": "Auto",
|
||||
"allergens": "Allergens",
|
||||
"max": "Max"
|
||||
},
|
||||
"name": "Mode"
|
||||
},
|
||||
"diffuser": {
|
||||
"state": {
|
||||
"off": "Off",
|
||||
"soft": "Soft",
|
||||
"mid": "Mid",
|
||||
"h_biotics": "H-BIOTICS",
|
||||
"custom": "Customise"
|
||||
},
|
||||
"name": "Diffuser"
|
||||
},
|
||||
"dirt_level": {
|
||||
"state": {
|
||||
"little": "Little",
|
||||
"normal": "Normal",
|
||||
"very": "Very",
|
||||
"unknown": "unknown"
|
||||
},
|
||||
"name": "Dirt level"
|
||||
},
|
||||
"stain_type": {
|
||||
"state": {
|
||||
"baby_food": "Baby food",
|
||||
"bean_paste": "Bean soup",
|
||||
"blood": "Blood",
|
||||
"blueberry": "Blueberry",
|
||||
"blue_ink": "Blue ink",
|
||||
"butter": "Butter",
|
||||
"chili_oil": "Chili oil",
|
||||
"chili_sauce": "Chili sauce",
|
||||
"chocolate": "Chocolate",
|
||||
"coffe": "Coffee",
|
||||
"coffee": "Coffee",
|
||||
"color_pencil": "Pencil",
|
||||
"cooking_oil": "Cooking oil",
|
||||
"curry": "Curry",
|
||||
"deodorant": "Deodorant",
|
||||
"egg": "Egg",
|
||||
"fruit": "Fruit",
|
||||
"glue": "Glue",
|
||||
"grass": "Grass",
|
||||
"ice_cream": "Ice cream",
|
||||
"ketchup": "Ketchup",
|
||||
"lip_gloss": "Lip gloss",
|
||||
"mayonnaise": "Mayonnaise",
|
||||
"mech_grease": "Mech grease",
|
||||
"milk": "Milk",
|
||||
"milk_tea": "Milk tea",
|
||||
"oil": "Oil",
|
||||
"oil_pastel": "Oil pastel",
|
||||
"perfume": "Perfume",
|
||||
"rust": "Rust",
|
||||
"shoe_cream": "Shoe cream",
|
||||
"soil": "Soil",
|
||||
"soy_sauce": "Soy sauce",
|
||||
"sweat": "Sweat",
|
||||
"tea": "Tea",
|
||||
"wine": "Wine",
|
||||
"unknown": "unknown"
|
||||
},
|
||||
"name": "Stain level"
|
||||
},
|
||||
"fan_horizontal": {
|
||||
"state": {
|
||||
"position_1": "Fixed - Position 1",
|
||||
"position_2": "Fixed - Position 2",
|
||||
"position_3": "Fixed - Position 3",
|
||||
"position_4": "Fixed - Position 4",
|
||||
"position_5": "Fixed - Position 5",
|
||||
"swing": "Swing"
|
||||
},
|
||||
"name": "Fan direction Horizontal"
|
||||
},
|
||||
"fan_vertical": {
|
||||
"state": {
|
||||
"position_1": "Fixed - Position 1",
|
||||
"position_2": "Fixed - Position 2",
|
||||
"position_3": "Fixed - Position 3",
|
||||
"position_4": "Fixed - Position 4",
|
||||
"position_5": "Fixed - Position 5",
|
||||
"swing": "Swing"
|
||||
},
|
||||
"name": "Fan direction Vertical"
|
||||
},
|
||||
"programs_ac": {
|
||||
"state": {},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_dw": {
|
||||
"state": {
|
||||
"eco_voice": "Eco",
|
||||
"gentle_wash": "Gentle wash",
|
||||
"iot_dreft_quick_cycle": "Dreft Quick",
|
||||
"iot_fairy_quick_cycle": "Fairy Quick",
|
||||
"iot_jar_quick_cycle": "Jar Quick",
|
||||
"iot_yes_quick_cycle": "Yes Quick",
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"zone_wash": "Flex Zone Wash"
|
||||
},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_ih": {
|
||||
"state": {
|
||||
"iot_special_grilled_vegetables": "Grilled vegetables"
|
||||
},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_ov": {
|
||||
"state": {
|
||||
"iot_h20_clean": "h2O clean",
|
||||
"pizza": "Pizza",
|
||||
"tailor_bake": "Tailor bake"
|
||||
},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_td": {
|
||||
"state": {
|
||||
"genius": "Genius",
|
||||
"hqd_bath_towel": "Bath towel",
|
||||
"hqd_bulky": "Bulky",
|
||||
"hqd_cold_wind_30": "Cold wind 30 minutes",
|
||||
"hqd_cold_wind_timing": "Cold wind",
|
||||
"hqd_luxury": "Luxury",
|
||||
"hqd_night_dry": "Night dry",
|
||||
"hqd_refresh": "Refresh",
|
||||
"hqd_warm_up": "Warm up",
|
||||
"hqd_working_suit": "Working suit"
|
||||
},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_wm": {
|
||||
"state": {
|
||||
"allergy_care_pro": "Allergy Care Pro",
|
||||
"iot_allergy_care_pro": "Allergy Care Pro",
|
||||
"iot_wash_ariel_clean_cycle": "Ariel Ultimate Clean",
|
||||
"iot_wash_ariel_cold_cycle": "Ariel Cold Clean",
|
||||
"iot_wash_ariel_fresh_cycle": "Ariel Fresh Clean",
|
||||
"iot_wash_dash_clean_cycle": "Dash Ultimate Clean",
|
||||
"iot_wash_dash_cold_cycle": "Dash Cold Clean",
|
||||
"iot_wash_dash_fresh_cycle": "Dash Fresh Clean",
|
||||
"night_wash": "Night Wash",
|
||||
"silent_night": "Night Wash",
|
||||
"steam_care_pro": "Steam Care Pro",
|
||||
"steam_care_pro_cotton": "Steam Care Pro",
|
||||
"tailored_resistant_cotton": "Tailored Resistant Cotton",
|
||||
"tailored_synthetic_and_coloured": "Tailored Synthetic Colored",
|
||||
"ultra_fresh": "Ultra Fresh"
|
||||
},
|
||||
"name": "Program"
|
||||
},
|
||||
"programs_ref": {
|
||||
"state": {
|
||||
"chiller": "Quick cool",
|
||||
"cold_drinks": "Soft chill",
|
||||
"cool_drink": "Cool Drink",
|
||||
"fruits": "Fruit",
|
||||
"fruit_and_veg": "Fruit & Veg",
|
||||
"keep_fresh": "0°C Fresh",
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
"tea": "Cold Drinks",
|
||||
"vegetables": "Vegetable",
|
||||
"zero_fresh": "0°C Fresh"
|
||||
},
|
||||
"name": "Program"
|
||||
},
|
||||
"dry_time": {
|
||||
"name": "Drying time"
|
||||
},
|
||||
"spin_speed": {
|
||||
"name": "Spin"
|
||||
},
|
||||
"temperature": {
|
||||
"name": "Temperature"
|
||||
},
|
||||
"remaining_time": {
|
||||
"name": "Time remaining"
|
||||
}
|
||||
},
|
||||
"switch": {
|
||||
"anti_crease": {
|
||||
"name": "Anticrease"
|
||||
},
|
||||
"add_dish": {
|
||||
"name": "Add dishes"
|
||||
},
|
||||
"eco_express": {
|
||||
"name": "Eco"
|
||||
},
|
||||
"extra_dry": {
|
||||
"name": "Extra dry"
|
||||
},
|
||||
"half_load": {
|
||||
"name": "Half load"
|
||||
},
|
||||
"open_door": {
|
||||
"name": "Open door"
|
||||
},
|
||||
"three_in_one": {
|
||||
"name": "3 in 1"
|
||||
},
|
||||
"preheat": {
|
||||
"name": "Preheat"
|
||||
},
|
||||
"dish_washer": {
|
||||
"name": "Dish Washer"
|
||||
},
|
||||
"tumble_dryer": {
|
||||
"name": "Tumble dryer"
|
||||
},
|
||||
"washing_machine": {
|
||||
"name": "Washing machine"
|
||||
},
|
||||
"washer_dryer": {
|
||||
"name": "Washer dryer"
|
||||
},
|
||||
"oven": {
|
||||
"name": "Oven"
|
||||
},
|
||||
"prewash": {
|
||||
"name": "Pre-wash"
|
||||
},
|
||||
"pause": {
|
||||
"name": "Pause"
|
||||
},
|
||||
"keep_fresh": {
|
||||
"name": "Keep Fresh"
|
||||
},
|
||||
"delay_time": {
|
||||
"name": "Delay Start"
|
||||
},
|
||||
"rapid_mode": {
|
||||
"name": "Rapid mode"
|
||||
},
|
||||
"eco_mode": {
|
||||
"name": "ECO mode"
|
||||
},
|
||||
"10_degree_heating": {
|
||||
"name": "10°C Heating function"
|
||||
},
|
||||
"self_clean": {
|
||||
"name": "Self-clean"
|
||||
},
|
||||
"self_clean_56": {
|
||||
"name": "Steri-Clean 56°C"
|
||||
},
|
||||
"silent_mode": {
|
||||
"name": "Silent mode"
|
||||
},
|
||||
"night_mode": {
|
||||
"name": "Night mode"
|
||||
},
|
||||
"extra_rinse_1": {
|
||||
"name": "+1 Rinse"
|
||||
},
|
||||
"extra_rinse_2": {
|
||||
"name": "+2 Rinses"
|
||||
},
|
||||
"extra_rinse_3": {
|
||||
"name": "+3 Rinses"
|
||||
},
|
||||
"acqua_plus": {
|
||||
"name": "Acquaplus"
|
||||
},
|
||||
"auto_dose_softener": {
|
||||
"name": "Autodose Softener"
|
||||
},
|
||||
"auto_dose_detergent": {
|
||||
"name": "Autodose Detergent"
|
||||
},
|
||||
"good_night": {
|
||||
"name": "Good Night"
|
||||
},
|
||||
"auto_set": {
|
||||
"name": "Auto-Set"
|
||||
},
|
||||
"super_cool": {
|
||||
"name": "Super Cool"
|
||||
},
|
||||
"super_freeze": {
|
||||
"name": "Super Freeze"
|
||||
},
|
||||
"refrigerator": {
|
||||
"name": "Refrigerator"
|
||||
},
|
||||
"touch_tone": {
|
||||
"name": "Touch tone volume"
|
||||
},
|
||||
"hygiene": {
|
||||
"name": "Hygiene plus"
|
||||
},
|
||||
"hood": {
|
||||
"name": "Hood"
|
||||
}
|
||||
},
|
||||
"binary_sensor": {
|
||||
"door_lock": {
|
||||
"name": "Door lock"
|
||||
},
|
||||
"extra_rinse_1": {
|
||||
"name": "+1 Rinse"
|
||||
},
|
||||
"extra_rinse_2": {
|
||||
"name": "+2 Rinses"
|
||||
},
|
||||
"extra_rinse_3": {
|
||||
"name": "+3 Rinses"
|
||||
},
|
||||
"good_night": {
|
||||
"name": "Good Night"
|
||||
},
|
||||
"anti_crease": {
|
||||
"name": "Anticrease"
|
||||
},
|
||||
"acqua_plus": {
|
||||
"name": "Acquaplus"
|
||||
},
|
||||
"spin_speed": {
|
||||
"name": "Spin"
|
||||
},
|
||||
"still_hot": {
|
||||
"name": "Still hot"
|
||||
},
|
||||
"pan_status": {
|
||||
"name": "Pan"
|
||||
},
|
||||
"remote_control": {
|
||||
"name": "Remote control"
|
||||
},
|
||||
"rinse_aid": {
|
||||
"name": "Rinse Aid level"
|
||||
},
|
||||
"salt_level": {
|
||||
"name": "Salt level"
|
||||
},
|
||||
"door_open": {
|
||||
"name": "Door open"
|
||||
},
|
||||
"connection": {
|
||||
"name": "Appliance connection"
|
||||
},
|
||||
"child_lock": {
|
||||
"name": "Child Lock"
|
||||
},
|
||||
"on": {
|
||||
"name": "On"
|
||||
},
|
||||
"prewash": {
|
||||
"name": "Pre-wash"
|
||||
},
|
||||
"buzzer": {
|
||||
"name": "Cycle end chime"
|
||||
},
|
||||
"holiday_mode": {
|
||||
"name": "Holiday Mode"
|
||||
},
|
||||
"auto_set": {
|
||||
"name": "Auto-Set"
|
||||
},
|
||||
"super_cool": {
|
||||
"name": "Super Cool"
|
||||
},
|
||||
"super_freeze": {
|
||||
"name": "Super Freeze"
|
||||
},
|
||||
"freezer_door": {
|
||||
"name": "Door open Freezer"
|
||||
},
|
||||
"fridge_door": {
|
||||
"name": "Door open Fridge"
|
||||
},
|
||||
"filter_replacement": {
|
||||
"name": "Filter replacement"
|
||||
}
|
||||
},
|
||||
"button": {
|
||||
"induction_hob": {
|
||||
"name": "Induction Hob"
|
||||
},
|
||||
"start_program": {
|
||||
"name": "Program Start"
|
||||
},
|
||||
"stop_program": {
|
||||
"name": "Program Stop"
|
||||
}
|
||||
},
|
||||
"number": {
|
||||
"power_management": {
|
||||
"name": "Power management"
|
||||
},
|
||||
"temperature": {
|
||||
"name": "Temperature"
|
||||
},
|
||||
"delay_time": {
|
||||
"name": "Delay Start"
|
||||
},
|
||||
"water_hard": {
|
||||
"name": "Water hardness"
|
||||
},
|
||||
"program_duration": {
|
||||
"name": "Program duration"
|
||||
},
|
||||
"target_temperature": {
|
||||
"name": "Target temperature"
|
||||
},
|
||||
"rinse_iterations": {
|
||||
"name": "Number of rinses"
|
||||
},
|
||||
"wash_time": {
|
||||
"name": "Washing intensity"
|
||||
},
|
||||
"dry_time": {
|
||||
"name": "Drying time"
|
||||
},
|
||||
"freezer_temp_sel": {
|
||||
"name": "Target temperature Freezer"
|
||||
},
|
||||
"fridge_temp_sel": {
|
||||
"name": "Target temperature Fridge"
|
||||
},
|
||||
"my_zone_temp_sel": {
|
||||
"name": "Target temperature My Zone"
|
||||
},
|
||||
"pollen_level": {
|
||||
"name": "Pollen level"
|
||||
},
|
||||
"aroma_time_on": {
|
||||
"name": "Diffuser (ON)"
|
||||
},
|
||||
"aroma_time_off": {
|
||||
"name": "Diffuser (OFF)"
|
||||
}
|
||||
},
|
||||
"climate": {
|
||||
"air_conditioner": {
|
||||
"name": "Air conditioner",
|
||||
"state_attributes": {
|
||||
"preset_mode": {
|
||||
"name": "Programs",
|
||||
"state": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"fridge": {
|
||||
"name": "Fridge",
|
||||
"state_attributes": {
|
||||
"preset_mode": {
|
||||
"name": "Fridge modes",
|
||||
"state": {
|
||||
"auto_set": "Auto-Set",
|
||||
"super_cool": "Super Cool",
|
||||
"holiday": "Holiday",
|
||||
"no_mode": "No mode selected"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"freezer": {
|
||||
"name": "Freezer",
|
||||
"state_attributes": {
|
||||
"preset_mode": {
|
||||
"name": "Freezer modes",
|
||||
"state": {
|
||||
"auto_set": "Auto-Set",
|
||||
"super_freeze": "Super Freeze",
|
||||
"no_mode": "No mode selected"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"oven": {
|
||||
"name": "Oven",
|
||||
"state_attributes": {
|
||||
"preset_mode": {
|
||||
"name": "Programs",
|
||||
"state": {
|
||||
"iot_h20_clean": "h2O clean",
|
||||
"pizza": "Pizza",
|
||||
"tailor_bake": "Tailor bake"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"my_zone": {
|
||||
"name": "My Zone"
|
||||
},
|
||||
"wine": {
|
||||
"state_attributes": {
|
||||
"preset_mode": {
|
||||
"name": "Wine Cellar",
|
||||
"state": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"fan": {
|
||||
"air_extraction": {
|
||||
"name": "Air extraction"
|
||||
}
|
||||
},
|
||||
"light": {
|
||||
"light": {
|
||||
"name": "Light"
|
||||
}
|
||||
}
|
||||
},
|
||||
"config": {
|
||||
"step": {
|
||||
"user": {
|
||||
"description": "Do the login",
|
||||
"data": {
|
||||
"email": "Email",
|
||||
"password": "Password"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -194,6 +194,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "specjalne",
|
||||
@@ -346,6 +347,7 @@
|
||||
"hqd_delicate": "Delikatne",
|
||||
"hqd_diaper": "Pieluchy",
|
||||
"hqd_duvet": "Pikowana kurtka z włókna syntetycznego",
|
||||
"hqd_eco": "Eco",
|
||||
"hqd_feather": "Pikowana kurtka z naturalnego włókna",
|
||||
"hqd_hot_wind_timing": "Ciepłe objęcie",
|
||||
"hqd_hygienic": "Higienizacja",
|
||||
@@ -787,6 +789,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Nie wybrano żadnego trybu",
|
||||
"quick_cool": "QUICK COOL",
|
||||
"quick_set": "Szybki zestaw",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
@@ -1099,6 +1102,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "specjalne",
|
||||
@@ -1251,6 +1255,7 @@
|
||||
"hqd_delicate": "Delikatne",
|
||||
"hqd_diaper": "Pieluchy",
|
||||
"hqd_duvet": "Pikowana kurtka z włókna syntetycznego",
|
||||
"hqd_eco": "Eco",
|
||||
"hqd_feather": "Pikowana kurtka z naturalnego włókna",
|
||||
"hqd_hot_wind_timing": "Ciepłe objęcie",
|
||||
"hqd_hygienic": "Higienizacja",
|
||||
@@ -1692,6 +1697,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Nie wybrano żadnego trybu",
|
||||
"quick_cool": "QUICK COOL",
|
||||
"quick_set": "Szybki zestaw",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
|
||||
@@ -194,6 +194,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "especial",
|
||||
@@ -346,6 +347,7 @@
|
||||
"hqd_delicate": "Roupa delicada",
|
||||
"hqd_diaper": "Fraldas",
|
||||
"hqd_duvet": "Casaco acolchoado em fibra sintética",
|
||||
"hqd_eco": "Eco",
|
||||
"hqd_feather": "Casaco acolchoado em fibra natural",
|
||||
"hqd_hot_wind_timing": "Warm Embrace",
|
||||
"hqd_hygienic": "Higienização",
|
||||
@@ -787,6 +789,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Nenhum modo selecionado",
|
||||
"quick_cool": "QUICK COOL",
|
||||
"quick_set": "Conjunto rápido",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
@@ -1099,6 +1102,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "especial",
|
||||
@@ -1251,6 +1255,7 @@
|
||||
"hqd_delicate": "Roupa delicada",
|
||||
"hqd_diaper": "Fraldas",
|
||||
"hqd_duvet": "Casaco acolchoado em fibra sintética",
|
||||
"hqd_eco": "Eco",
|
||||
"hqd_feather": "Casaco acolchoado em fibra natural",
|
||||
"hqd_hot_wind_timing": "Warm Embrace",
|
||||
"hqd_hygienic": "Higienização",
|
||||
@@ -1692,6 +1697,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Nenhum modo selecionado",
|
||||
"quick_cool": "QUICK COOL",
|
||||
"quick_set": "Conjunto rápido",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
|
||||
@@ -194,6 +194,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "special",
|
||||
@@ -346,6 +347,7 @@
|
||||
"hqd_delicate": "Delicate",
|
||||
"hqd_diaper": "Scutece",
|
||||
"hqd_duvet": "Jachetă matlasată din fibre sintetice",
|
||||
"hqd_eco": "Eco",
|
||||
"hqd_feather": "Jachetă matlasată din fibre naturale",
|
||||
"hqd_hot_wind_timing": "Îmbrățișare caldă",
|
||||
"hqd_hygienic": "Igienizare",
|
||||
@@ -787,6 +789,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Niciun mod selectat",
|
||||
"quick_cool": "QUICK COOL",
|
||||
"quick_set": "Setare rapidă",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
@@ -1099,6 +1102,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "special",
|
||||
@@ -1251,6 +1255,7 @@
|
||||
"hqd_delicate": "Delicate",
|
||||
"hqd_diaper": "Scutece",
|
||||
"hqd_duvet": "Jachetă matlasată din fibre sintetice",
|
||||
"hqd_eco": "Eco",
|
||||
"hqd_feather": "Jachetă matlasată din fibre naturale",
|
||||
"hqd_hot_wind_timing": "Îmbrățișare caldă",
|
||||
"hqd_hygienic": "Igienizare",
|
||||
@@ -1692,6 +1697,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Niciun mod selectat",
|
||||
"quick_cool": "QUICK COOL",
|
||||
"quick_set": "Setare rapidă",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
|
||||
@@ -194,6 +194,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "специальные",
|
||||
@@ -346,6 +347,7 @@
|
||||
"hqd_delicate": "Деликатные вещи",
|
||||
"hqd_diaper": "Пеленки",
|
||||
"hqd_duvet": "Стеганая куртка из синтетического волокна",
|
||||
"hqd_eco": "Эко",
|
||||
"hqd_feather": "Стеганая куртка из натурального волокна",
|
||||
"hqd_hot_wind_timing": "Обработка теплом",
|
||||
"hqd_hygienic": "Санитарная обработка",
|
||||
@@ -787,6 +789,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Режим не выбран",
|
||||
"quick_cool": "БЫСТРОЕ ОХЛАЖДЕНИЕ",
|
||||
"quick_set": "Быстрая настройка",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
@@ -1099,6 +1102,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "специальные",
|
||||
@@ -1251,6 +1255,7 @@
|
||||
"hqd_delicate": "Деликатные вещи",
|
||||
"hqd_diaper": "Пеленки",
|
||||
"hqd_duvet": "Стеганая куртка из синтетического волокна",
|
||||
"hqd_eco": "Эко",
|
||||
"hqd_feather": "Стеганая куртка из натурального волокна",
|
||||
"hqd_hot_wind_timing": "Обработка теплом",
|
||||
"hqd_hygienic": "Санитарная обработка",
|
||||
@@ -1692,6 +1697,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Режим не выбран",
|
||||
"quick_cool": "БЫСТРОЕ ОХЛАЖДЕНИЕ",
|
||||
"quick_set": "Быстрая настройка",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
|
||||
@@ -194,6 +194,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "špeciál",
|
||||
@@ -346,6 +347,7 @@
|
||||
"hqd_delicate": "Jemné materiály",
|
||||
"hqd_diaper": "Plienky",
|
||||
"hqd_duvet": "Prešívaná vetrovka so syntetickými vláknami",
|
||||
"hqd_eco": "Eko",
|
||||
"hqd_feather": "Prešívaná vetrovka s prírodnými vláknami",
|
||||
"hqd_hot_wind_timing": "Detská zavinovačka",
|
||||
"hqd_hygienic": "Hygienizácia",
|
||||
@@ -787,6 +789,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Nie je vybraný žiadny režim",
|
||||
"quick_cool": "QUICK COOL",
|
||||
"quick_set": "Rýchle nastavenie",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
@@ -1099,6 +1102,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "špeciál",
|
||||
@@ -1251,6 +1255,7 @@
|
||||
"hqd_delicate": "Jemné materiály",
|
||||
"hqd_diaper": "Plienky",
|
||||
"hqd_duvet": "Prešívaná vetrovka so syntetickými vláknami",
|
||||
"hqd_eco": "Eko",
|
||||
"hqd_feather": "Prešívaná vetrovka s prírodnými vláknami",
|
||||
"hqd_hot_wind_timing": "Detská zavinovačka",
|
||||
"hqd_hygienic": "Hygienizácia",
|
||||
@@ -1692,6 +1697,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Nie je vybraný žiadny režim",
|
||||
"quick_cool": "QUICK COOL",
|
||||
"quick_set": "Rýchle nastavenie",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
|
||||
@@ -194,6 +194,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "posebno",
|
||||
@@ -346,6 +347,7 @@
|
||||
"hqd_delicate": "Občutljive tkanine",
|
||||
"hqd_diaper": "Plenice",
|
||||
"hqd_duvet": "Prešita jakna iz sintetičnih vlaken",
|
||||
"hqd_eco": "Varčno",
|
||||
"hqd_feather": "Prešita jakna iz naravnih vlaken",
|
||||
"hqd_hot_wind_timing": "Mehkoba",
|
||||
"hqd_hygienic": "Higienizacija",
|
||||
@@ -787,6 +789,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Izbran ni noben način",
|
||||
"quick_cool": "HITRO HLAJENJE",
|
||||
"quick_set": "Hitra nastavitev",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
@@ -1099,6 +1102,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "posebno",
|
||||
@@ -1251,6 +1255,7 @@
|
||||
"hqd_delicate": "Občutljive tkanine",
|
||||
"hqd_diaper": "Plenice",
|
||||
"hqd_duvet": "Prešita jakna iz sintetičnih vlaken",
|
||||
"hqd_eco": "Varčno",
|
||||
"hqd_feather": "Prešita jakna iz naravnih vlaken",
|
||||
"hqd_hot_wind_timing": "Mehkoba",
|
||||
"hqd_hygienic": "Higienizacija",
|
||||
@@ -1692,6 +1697,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Izbran ni noben način",
|
||||
"quick_cool": "HITRO HLAJENJE",
|
||||
"quick_set": "Hitra nastavitev",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
|
||||
@@ -194,6 +194,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "posebno",
|
||||
@@ -346,6 +347,7 @@
|
||||
"hqd_delicate": "Osetljive tkanine",
|
||||
"hqd_diaper": "Pelene",
|
||||
"hqd_duvet": "Prošivena jakna od sintetičkih vlakana",
|
||||
"hqd_eco": "Eko",
|
||||
"hqd_feather": "Prošivena jakna od prirodnih vlakana",
|
||||
"hqd_hot_wind_timing": "Topao zagrljaj",
|
||||
"hqd_hygienic": "Higijenski",
|
||||
@@ -787,6 +789,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Nije izabran nijedan režim",
|
||||
"quick_cool": "BRZO HLAĐENJE",
|
||||
"quick_set": "Brzo podešavanje",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
@@ -1099,6 +1102,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "posebno",
|
||||
@@ -1251,6 +1255,7 @@
|
||||
"hqd_delicate": "Osetljive tkanine",
|
||||
"hqd_diaper": "Pelene",
|
||||
"hqd_duvet": "Prošivena jakna od sintetičkih vlakana",
|
||||
"hqd_eco": "Eko",
|
||||
"hqd_feather": "Prošivena jakna od prirodnih vlakana",
|
||||
"hqd_hot_wind_timing": "Topao zagrljaj",
|
||||
"hqd_hygienic": "Higijenski",
|
||||
@@ -1692,6 +1697,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Nije izabran nijedan režim",
|
||||
"quick_cool": "BRZO HLAĐENJE",
|
||||
"quick_set": "Brzo podešavanje",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -194,6 +194,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "özel",
|
||||
@@ -346,6 +347,7 @@
|
||||
"hqd_delicate": "Narin Çamaşırlar",
|
||||
"hqd_diaper": "Bebek bezi",
|
||||
"hqd_duvet": "Sentetik elyaflı kapitone ceket",
|
||||
"hqd_eco": "Eko",
|
||||
"hqd_feather": "Doğal elyaflı kapitone ceket",
|
||||
"hqd_hot_wind_timing": "Sıcak Hava",
|
||||
"hqd_hygienic": "Hijyen",
|
||||
@@ -787,6 +789,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Hiç mod seçilmedi",
|
||||
"quick_cool": "HIZLI SOĞUTMA",
|
||||
"quick_set": "Hızlı Ayar",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
@@ -1099,6 +1102,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "özel",
|
||||
@@ -1251,6 +1255,7 @@
|
||||
"hqd_delicate": "Narin Çamaşırlar",
|
||||
"hqd_diaper": "Bebek bezi",
|
||||
"hqd_duvet": "Sentetik elyaflı kapitone ceket",
|
||||
"hqd_eco": "Eko",
|
||||
"hqd_feather": "Doğal elyaflı kapitone ceket",
|
||||
"hqd_hot_wind_timing": "Sıcak Hava",
|
||||
"hqd_hygienic": "Hijyen",
|
||||
@@ -1692,6 +1697,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "Hiç mod seçilmedi",
|
||||
"quick_cool": "HIZLI SOĞUTMA",
|
||||
"quick_set": "Hızlı Ayar",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -187,6 +187,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "特殊",
|
||||
@@ -339,6 +340,7 @@
|
||||
"hqd_delicate": "精致衣物",
|
||||
"hqd_diaper": "纸尿裤",
|
||||
"hqd_duvet": "合成纤维棉服",
|
||||
"hqd_eco": "节能",
|
||||
"hqd_feather": "天然纤维棉服",
|
||||
"hqd_hot_wind_timing": "衣物蓬松",
|
||||
"hqd_hygienic": "卫生保护",
|
||||
@@ -780,6 +782,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "未选择模式",
|
||||
"quick_cool": "QUICK COOL(快速冷却)",
|
||||
"quick_set": "快速设置",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
@@ -1085,6 +1088,7 @@
|
||||
"smart_ai": "Smart AI",
|
||||
"smart_ai_pro": "Smart AI Pro",
|
||||
"smart_ai_pro_soil": "Smart AI Pro",
|
||||
"smart_ai_rapid": "Smart AI Rapid",
|
||||
"smart_ai_rapid_soil": "Smart AI Rapid",
|
||||
"smart_ai_soil": "Smart AI",
|
||||
"special": "特殊",
|
||||
@@ -1237,6 +1241,7 @@
|
||||
"hqd_delicate": "精致衣物",
|
||||
"hqd_diaper": "纸尿裤",
|
||||
"hqd_duvet": "合成纤维棉服",
|
||||
"hqd_eco": "节能",
|
||||
"hqd_feather": "天然纤维棉服",
|
||||
"hqd_hot_wind_timing": "衣物蓬松",
|
||||
"hqd_hygienic": "卫生保护",
|
||||
@@ -1678,6 +1683,7 @@
|
||||
"milk_and_eggs": "Milk & Eggs",
|
||||
"no_mode_selected": "未选择模式",
|
||||
"quick_cool": "QUICK COOL(快速冷却)",
|
||||
"quick_set": "快速设置",
|
||||
"sea_food": "Ready to cook meal",
|
||||
"smart_mode_title": "Smart Mode",
|
||||
"soft_frozen": "Soft freezing",
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
import logging
|
||||
from contextlib import suppress
|
||||
|
||||
from .typedefs import HonEntityDescription, HonOptionEntityDescription, T
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def unique_entities(
|
||||
base_entities: tuple[T, ...],
|
||||
new_entities: tuple[T, ...],
|
||||
) -> tuple[T, ...]:
|
||||
result = list(base_entities)
|
||||
existing_entities = [entity.key for entity in base_entities]
|
||||
entity: HonEntityDescription
|
||||
for entity in new_entities:
|
||||
if entity.key not in existing_entities:
|
||||
result.append(entity)
|
||||
return tuple(result)
|
||||
|
||||
|
||||
def get_readable(
|
||||
description: HonOptionEntityDescription, value: float | str
|
||||
) -> float | str:
|
||||
if description.option_list is not None:
|
||||
with suppress(ValueError):
|
||||
return description.option_list.get(int(value), value)
|
||||
return value
|
||||
Reference in New Issue
Block a user