Compare commits

...

7 Commits

Author SHA1 Message Date
6e9981c9ab Add climate entity for oven 2023-05-28 17:38:56 +02:00
cb660fa9e0 Add climate entites for fridge #41 2023-05-28 07:50:59 +02:00
a8762367ed Refactor hon entities 2023-05-28 00:30:40 +02:00
696dc136eb Refactor entry setup 2023-05-25 01:30:33 +02:00
e9d1bb2056 Refactor get coordinator 2023-05-25 00:52:54 +02:00
9518031f24 Fix problematic char in translation keys 2023-05-22 01:12:51 +02:00
bf1a6e8fe2 Improve fridge support #41 2023-05-21 20:52:27 +02:00
34 changed files with 3095 additions and 811 deletions

View File

@ -72,6 +72,7 @@ Support has been confirmed for these models, but many more will work. Please add
- Haier HWO60SM2F3XH
- Haier XIB 3B2SFS-80
- Haier XIB 6B2D3FB
- Candy BCTDH7A1TE
- Candy CIS633SCTTWIFI
- Candy CSOE C10DE-80
- Candy ROE H9A3TCEX-S
@ -83,6 +84,7 @@ Support has been confirmed for these models, but many more will work. Please add
- Hoover HFB 6B2S3FX
- Hoover HLE C10DCE-80
- Hoover HSOT3161WG
- Hoover HW 68AMC/1-80
- Hoover HWPD 69AMBC/1-S
- Hoover HWPS4954DAMR-11
- Hoover NDE H10A2TCE-80
@ -154,18 +156,18 @@ For every device exists a hidden button which can be used to log all infos of yo
#### Controls
| Name | Icon | Entity | Key |
| --- | --- | --- | --- |
| 10° Heating | `heat-wave` | `switch` | `settings.10degreeHeatingStatus` |
| 10° Heating | `heat-wave` | `switch` | `10degreeHeatingStatus` |
| Air Conditioner | `air-conditioner` | `climate` | `settings` |
| Echo | `account-voice` | `switch` | `settings.echoStatus` |
| Eco Mode | | `switch` | `settings.ecoMode` |
| Echo | `account-voice` | `switch` | `echoStatus` |
| Eco Mode | | `switch` | `ecoMode` |
| Eco Pilot | `run` | `select` | `settings.humanSensingStatus` |
| Health Mode | `medication-outline` | `switch` | `settings.healthMode` |
| Mute | `volume-off` | `switch` | `settings.muteStatus` |
| Rapid Mode | `run-fast` | `switch` | `settings.rapidMode` |
| Screen Display | `monitor-small` | `switch` | `settings.screenDisplayStatus` |
| Self Cleaning | `air-filter` | `switch` | `settings.selfCleaningStatus` |
| Self Cleaning 56 | `air-filter` | `switch` | `settings.selfCleaning56Status` |
| Silent Sleep | `bed` | `switch` | `settings.silentSleepStatus` |
| Health Mode | `medication-outline` | `switch` | `healthMode` |
| Mute | `volume-off` | `switch` | `muteStatus` |
| Rapid Mode | `run-fast` | `switch` | `rapidMode` |
| Screen Display | `monitor-small` | `switch` | `screenDisplayStatus` |
| Self Cleaning | `air-filter` | `switch` | `selfCleaningStatus` |
| Self Cleaning 56 | `air-filter` | `switch` | `selfCleaning56Status` |
| Silent Sleep | `bed` | `switch` | `silentSleepStatus` |
| Target Temperature | `thermometer` | `number` | `settings.tempSel` |
#### Sensors
| Name | Icon | Entity | Key |
@ -186,7 +188,7 @@ For every device exists a hidden button which can be used to log all infos of yo
#### Controls
| Name | Icon | Entity | Key |
| --- | --- | --- | --- |
| Buzzer Disabled | `volume-off` | `switch` | `settings.buzzerDisabled` |
| Buzzer Disabled | `volume-off` | `switch` | `buzzerDisabled` |
| Dish Washer | `dishwasher` | `switch` | `startProgram` / `stopProgram` |
#### Configs
| Name | Icon | Entity | Key |
@ -249,6 +251,7 @@ For every device exists a hidden button which can be used to log all infos of yo
| Name | Icon | Entity | Key |
| --- | --- | --- | --- |
| Oven | `toaster-oven` | `switch` | `startProgram` / `stopProgram` |
| Oven | `thermometer` | `climate` | `settings.tempSel` |
#### Configs
| Name | Icon | Entity | Key |
| --- | --- | --- | --- |
@ -271,21 +274,28 @@ For every device exists a hidden button which can be used to log all infos of yo
#### Controls
| Name | Icon | Entity | Key |
| --- | --- | --- | --- |
| Auto-Set Mode | `thermometer-auto` | `switch` | `settings.intelligenceMode` |
| Auto-Set Mode | `thermometer-auto` | `switch` | `intelligenceMode` |
| Freezer | `snowflake-thermometer` | `climate` | `settings.tempSelZ2` |
| Freezer Temperature | `thermometer` | `number` | `settings.tempSelZ2` |
| Fridge | `thermometer` | `climate` | `settings.tempSelZ1` |
| Fridge Temperature | `thermometer` | `number` | `settings.tempSelZ1` |
| Super Cool | `snowflake` | `switch` | `settings.quickModeZ2` |
| Super Freeze | `snowflake-variant` | `switch` | `settings.quickModeZ1` |
| Holiday Mode | `palm-tree` | `switch` | `holidayMode` |
| Program Start | `play` | `button` | `startProgram` |
| Program Stop | `stop` | `button` | `stopProgram` |
| Super Cool | `snowflake` | `switch` | `quickModeZ2` |
| Super Freeze | `snowflake-variant` | `switch` | `quickModeZ1` |
#### Configs
| Name | Icon | Entity | Key |
| --- | --- | --- | --- |
| Program | | `select` | `startProgram.program` |
| Zone | `radiobox-marked` | `select` | `startProgram.zone` |
#### Sensors
| Name | Icon | Entity | Key |
| --- | --- | --- | --- |
| Auto-Set Mode | `thermometer-auto` | `binary_sensor` | `intelligenceMode` |
| Door Status Freezer | `fridge-top` | `binary_sensor` | `doorStatusZ1` |
| Door Status Fridge | `fridge-bottom` | `binary_sensor` | `door2StatusZ1` |
| Error | `math-log` | `sensor` | `errors` |
| Holiday Mode | `palm-tree` | `binary_sensor` | `holidayMode` |
| Room Humidity | `water-percent` | `sensor` | `humidityEnv` |
| Room Temperature | `home-thermometer-outline` | `sensor` | `tempEnv` |

View File

@ -1,8 +1,6 @@
import logging
from dataclasses import dataclass
from pyhon import Hon
from homeassistant.components.binary_sensor import (
BinarySensorEntityDescription,
BinarySensorDeviceClass,
@ -10,8 +8,9 @@ from homeassistant.components.binary_sensor import (
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import callback
from .const import DOMAIN
from .hon import HonCoordinator, HonEntity, unique_entities
from .hon import HonEntity, unique_entities
_LOGGER = logging.getLogger(__name__)
@ -250,37 +249,20 @@ BINARY_SENSORS["WD"] = unique_entities(BINARY_SENSORS["WM"], BINARY_SENSORS["TD"
async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None:
hon: Hon = hass.data[DOMAIN][entry.unique_id]
coordinators = hass.data[DOMAIN]["coordinators"]
appliances = []
for device in hon.appliances:
if device.unique_id in coordinators:
coordinator = hass.data[DOMAIN]["coordinators"][device.unique_id]
else:
coordinator = HonCoordinator(hass, device)
hass.data[DOMAIN]["coordinators"][device.unique_id] = coordinator
await coordinator.async_config_entry_first_refresh()
if descriptions := BINARY_SENSORS.get(device.appliance_type):
for description in descriptions:
if not device.get(description.key):
continue
appliances.append(
HonBinarySensorEntity(hass, coordinator, entry, device, description)
)
async_add_entities(appliances)
entities = []
for device in hass.data[DOMAIN][entry.unique_id].appliances:
for description in BINARY_SENSORS.get(device.appliance_type, []):
if not device.get(description.key):
continue
entity = HonBinarySensorEntity(hass, entry, device, description)
await entity.coordinator.async_config_entry_first_refresh()
entities.append(entity)
async_add_entities(entities)
class HonBinarySensorEntity(HonEntity, BinarySensorEntity):
entity_description: HonBinarySensorEntityDescription
def __init__(self, hass, coordinator, entry, device, description) -> None:
super().__init__(hass, entry, coordinator, device)
self.entity_description = description
self._attr_unique_id = f"{super().unique_id}{description.key}"
@property
def is_on(self) -> bool:
return (

View File

@ -1,16 +1,14 @@
import logging
import pkg_resources
from homeassistant.components import persistent_notification
from homeassistant.components.button import ButtonEntityDescription, ButtonEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import EntityCategory
from pyhon import Hon
from pyhon.appliance import HonAppliance
from .const import DOMAIN
from .hon import HonCoordinator, HonEntity
from .hon import HonEntity
_LOGGER = logging.getLogger(__name__)
@ -23,41 +21,39 @@ BUTTONS: dict[str, tuple[ButtonEntityDescription, ...]] = {
translation_key="induction_hob",
),
),
"REF": (
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",
),
),
}
async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None:
hon: Hon = hass.data[DOMAIN][entry.unique_id]
coordinators = hass.data[DOMAIN]["coordinators"]
appliances = []
for device in hon.appliances:
if device.unique_id in coordinators:
coordinator = hass.data[DOMAIN]["coordinators"][device.unique_id]
else:
coordinator = HonCoordinator(hass, device)
hass.data[DOMAIN]["coordinators"][device.unique_id] = coordinator
await coordinator.async_config_entry_first_refresh()
if descriptions := BUTTONS.get(device.appliance_type):
for description in descriptions:
if not device.commands.get(description.key):
continue
appliances.extend(
[HonButtonEntity(hass, coordinator, entry, device, description)]
)
appliances.extend([HonFeatureRequestButton(hass, coordinator, entry, device)])
async_add_entities(appliances)
entities = []
for device in hass.data[DOMAIN][entry.unique_id].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(HonFeatureRequestButton(hass, entry, device))
await entities[-1].coordinator.async_config_entry_first_refresh()
async_add_entities(entities)
class HonButtonEntity(HonEntity, ButtonEntity):
def __init__(
self, hass, coordinator, entry, device: HonAppliance, description
) -> None:
super().__init__(hass, entry, coordinator, device)
self.entity_description = description
self._attr_unique_id = f"{super().unique_id}{description.key}"
entity_description: ButtonEntityDescription
async def async_press(self) -> None:
await self._device.commands[self.entity_description.key].send()
@ -73,8 +69,8 @@ class HonButtonEntity(HonEntity, ButtonEntity):
class HonFeatureRequestButton(HonEntity, ButtonEntity):
def __init__(self, hass, coordinator, entry, device: HonAppliance) -> None:
super().__init__(hass, entry, coordinator, device)
def __init__(self, hass, entry, device: HonAppliance) -> None:
super().__init__(hass, entry, device)
self._attr_unique_id = f"{super().unique_id}_log_device_info"
self._attr_icon = "mdi:information"

View File

@ -1,6 +1,6 @@
import logging
from dataclasses import dataclass
from pyhon import Hon
from pyhon.appliance import HonAppliance
from homeassistant.components.climate import (
@ -19,59 +19,87 @@ from homeassistant.components.climate.const import (
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
ATTR_TEMPERATURE,
PRECISION_WHOLE,
TEMP_CELSIUS,
)
from homeassistant.core import callback
from .const import HON_HVAC_MODE, HON_FAN, HON_HVAC_PROGRAM, DOMAIN
from .hon import HonEntity, HonCoordinator
from .hon import HonEntity
_LOGGER = logging.getLogger(__name__)
@dataclass
class HonACClimateEntityDescription(ClimateEntityDescription):
pass
@dataclass
class HonClimateEntityDescription(ClimateEntityDescription):
mode: HVACMode = "auto"
CLIMATES = {
"AC": (
ClimateEntityDescription(
HonACClimateEntityDescription(
key="settings",
name="Air Conditioner",
icon="mdi:air-conditioner",
translation_key="air_conditioner",
),
),
"REF": (
HonClimateEntityDescription(
key="settings.tempSelZ1",
mode=HVACMode.COOL,
name="Fridge",
icon="mdi:thermometer",
translation_key="fridge",
),
HonClimateEntityDescription(
key="settings.tempSelZ2",
mode=HVACMode.COOL,
name="Freezer",
icon="mdi:snowflake-thermometer",
translation_key="freezer",
),
),
"OV": (
HonClimateEntityDescription(
key="settings.tempSel",
mode=HVACMode.HEAT,
name="Oven",
icon="mdi:thermometer",
translation_key="oven",
),
),
}
async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None:
hon: Hon = hass.data[DOMAIN][entry.unique_id]
coordinators = hass.data[DOMAIN]["coordinators"]
appliances = []
for device in hon.appliances:
if device.unique_id in coordinators:
coordinator = hass.data[DOMAIN]["coordinators"][device.unique_id]
else:
coordinator = HonCoordinator(hass, device)
hass.data[DOMAIN]["coordinators"][device.unique_id] = coordinator
await coordinator.async_config_entry_first_refresh()
if descriptions := CLIMATES.get(device.appliance_type):
for description in descriptions:
entities = []
for device in hass.data[DOMAIN][entry.unique_id].appliances:
for description in CLIMATES.get(device.appliance_type, []):
if isinstance(description, HonACClimateEntityDescription):
if description.key not in list(device.commands):
continue
appliances.append(
HonClimateEntity(hass, coordinator, entry, device, description)
)
async_add_entities(appliances)
entity = HonACClimateEntity(hass, entry, device, description)
elif isinstance(description, HonClimateEntityDescription):
if description.key not in device.available_settings:
continue
entity = HonClimateEntity(hass, entry, device, description)
else:
continue
await entity.coordinator.async_config_entry_first_refresh()
entities.append(entity)
async_add_entities(entities)
class HonClimateEntity(HonEntity, ClimateEntity):
def __init__(
self, hass, coordinator, entry, device: HonAppliance, description
) -> None:
super().__init__(hass, entry, coordinator, device)
self.entity_description = description
self._attr_unique_id = f"{super().unique_id}climate"
class HonACClimateEntity(HonEntity, ClimateEntity):
def __init__(self, hass, entry, device: HonAppliance, description) -> None:
super().__init__(hass, entry, device, description)
self._attr_temperature_unit = TEMP_CELSIUS
self._attr_target_temperature_step = PRECISION_WHOLE
self._attr_target_temperature_step = device.settings["settings.tempSel"].step
self._attr_max_temp = device.settings["settings.tempSel"].max
self._attr_min_temp = device.settings["settings.tempSel"].min
@ -95,6 +123,13 @@ class HonClimateEntity(HonEntity, ClimateEntity):
self._handle_coordinator_update(update=False)
@property
def hvac_mode(self) -> HVACMode | str | None:
if self._device.get("onOffStatus") == "0":
return HVACMode.OFF
else:
return HON_HVAC_MODE[self._device.get("machMode")]
async def async_set_hvac_mode(self, hvac_mode):
if hvac_mode == HVACMode.OFF:
await self._device.commands["stopProgram"].send()
@ -144,7 +179,7 @@ class HonClimateEntity(HonEntity, ClimateEntity):
if self._device.get("onOffStatus") == "0":
self._attr_hvac_mode = HVACMode.OFF
else:
self._attr_hvac_mode = HON_HVAC_MODE[self._device.get("machMode") or "0"]
self._attr_hvac_mode = HON_HVAC_MODE[self._device.get("machMode")]
self._attr_fan_mode = HON_FAN[self._device.get("windSpeed")]
@ -160,3 +195,111 @@ class HonClimateEntity(HonEntity, ClimateEntity):
self._attr_swing_mode = SWING_OFF
if update:
self.async_write_ha_state()
class HonClimateEntity(HonEntity, ClimateEntity):
entity_description = HonClimateEntityDescription
def __init__(self, hass, entry, device: HonAppliance, description) -> None:
super().__init__(hass, entry, device, description)
self._attr_temperature_unit = TEMP_CELSIUS
self._set_temperature_bound()
self._attr_supported_features = (
ClimateEntityFeature.TARGET_TEMPERATURE | ClimateEntityFeature.PRESET_MODE
)
self._attr_hvac_modes = [description.mode]
if device.get("onOffStatus"):
self._attr_hvac_modes += [HVACMode.OFF]
modes = []
else:
modes = ["no_mode"]
for mode, data in device.commands["startProgram"].categories.items():
if mode not in data.parameters["program"].values:
continue
if zone := data.parameters.get("zone"):
if self.entity_description.name.lower() in zone.values:
modes.append(mode)
else:
modes.append(mode)
self._attr_preset_modes = modes
self._handle_coordinator_update(update=False)
@property
def target_temperature(self) -> int | None:
"""Return the temperature we try to reach."""
return int(self._device.get(self.entity_description.key))
@property
def current_temperature(self) -> int | None:
"""Return the current temperature."""
temp_key = self.entity_description.key.split(".")[-1].replace("Sel", "")
return int(self._device.get(temp_key))
async def async_set_temperature(self, **kwargs):
if (temperature := kwargs.get(ATTR_TEMPERATURE)) is None:
return False
self._device.settings[self.entity_description.key].value = str(int(temperature))
await self._device.commands["settings"].send()
self.async_write_ha_state()
@property
def hvac_mode(self) -> HVACMode | str | None:
if self._device.get("onOffStatus") == "0":
return HVACMode.OFF
else:
return self.entity_description.mode
async def async_set_hvac_mode(self, hvac_mode):
if len(self.hvac_modes) <= 1:
return
if hvac_mode == HVACMode.OFF:
await self._device.commands["stopProgram"].send()
else:
await self._device.commands["startProgram"].send()
self._attr_hvac_mode = hvac_mode
self.async_write_ha_state()
@property
def preset_mode(self) -> str | None:
"""Return the current Preset for this channel."""
if self._device.get("onOffStatus") is not None:
return self._device.get("programName", "")
else:
return self._device.get(
f"mode{self.entity_description.key[-2:]}", "no_mode"
)
async def async_set_preset_mode(self, preset_mode: str) -> None:
"""Set the new preset mode."""
command = "stopProgram" if preset_mode == "no_mode" else "startProgram"
if program := self._device.settings.get(f"{command}.program"):
program.value = preset_mode
if zone := self._device.settings.get(f"{command}.zone"):
zone.value = self.entity_description.name.lower()
self._device.sync_command(command, "settings")
self._set_temperature_bound()
await self.coordinator.async_refresh()
await self._device.commands[command].send()
self._attr_preset_mode = preset_mode
self.async_write_ha_state()
def _set_temperature_bound(self):
self._attr_target_temperature_step = self._device.settings[
self.entity_description.key
].step
self._attr_max_temp = self._device.settings[self.entity_description.key].max
self._attr_min_temp = self._device.settings[self.entity_description.key].min
@callback
def _handle_coordinator_update(self, update=True) -> None:
self._attr_target_temperature = self.target_temperature
self._attr_current_temperature = self.current_temperature
self._attr_hvac_mode = self.hvac_mode
self._attr_preset_mode = self.preset_mode
if update:
self.async_write_ha_state()

View File

@ -1,9 +1,9 @@
import logging
import voluptuous as vol
from homeassistant import config_entries
from homeassistant.const import CONF_EMAIL, CONF_PASSWORD
from .const import DOMAIN
_LOGGER = logging.getLogger(__name__)

View File

@ -180,6 +180,13 @@ AC_HUMAN_SENSE = {
"2": "AC.PROGRAM_DETAIL.FOLLOW_TOUCH",
}
REF_ZONES = {
"fridge": "REF.ZONES.FRIDGE",
"freezer": "REF.ZONES.FREEZER",
"vtroom1": "REF.ZONES.MY_ZONE_1",
"fridge_freezer": ["REF.ZONES.FRIDGE", " & ", "REF.ZONES.FREEZER"],
}
PROGRAMS_TD = [
"active_dry",
"allergy_care",

View File

@ -1,11 +1,11 @@
import logging
from datetime import timedelta
from pyhon.appliance import HonAppliance
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
from pyhon.appliance import HonAppliance
from .const import DOMAIN
_LOGGER = logging.getLogger(__name__)
@ -14,7 +14,8 @@ _LOGGER = logging.getLogger(__name__)
class HonEntity(CoordinatorEntity):
_attr_has_entity_name = True
def __init__(self, hass, entry, coordinator, device: HonAppliance) -> None:
def __init__(self, hass, entry, device: HonAppliance, description=None) -> None:
coordinator = get_coordinator(hass, device)
super().__init__(coordinator)
self._hon = hass.data[DOMAIN][entry.unique_id]
@ -22,7 +23,11 @@ class HonEntity(CoordinatorEntity):
self._coordinator = coordinator
self._device = device
self._attr_unique_id = self._device.unique_id
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
@property
def device_info(self):
@ -59,3 +64,13 @@ def unique_entities(base_entities, new_entities):
if entity.key not in existing_entities:
result.append(entity)
return tuple(result)
def get_coordinator(hass, appliance):
coordinators = hass.data[DOMAIN]["coordinators"]
if appliance.unique_id in coordinators:
coordinator = hass.data[DOMAIN]["coordinators"][appliance.unique_id]
else:
coordinator = HonCoordinator(hass, appliance)
hass.data[DOMAIN]["coordinators"][appliance.unique_id] = coordinator
return coordinator

View File

@ -1,11 +1,15 @@
{
"domain": "hon",
"name": "Haier hOn",
"codeowners": ["@Andre0512"],
"codeowners": [
"@Andre0512"
],
"config_flow": true,
"documentation": "https://github.com/Andre0512/hon/",
"iot_class": "cloud_polling",
"issue_tracker": "https://github.com/Andre0512/hon/issues",
"requirements": ["pyhOn==0.10.10"],
"version": "0.8.0-beta.5"
"requirements": [
"pyhOn==0.11.3"
],
"version": "0.8.0-beta.7"
}

View File

@ -1,5 +1,7 @@
from __future__ import annotations
from dataclasses import dataclass
from homeassistant.components.number import (
NumberEntity,
NumberEntityDescription,
@ -7,144 +9,136 @@ from homeassistant.components.number import (
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import UnitOfTime, UnitOfTemperature
from homeassistant.core import callback
from homeassistant.helpers.entity import EntityCategory
from pyhon import Hon
from pyhon.parameter.base import HonParameter
from pyhon.parameter.fixed import HonParameterFixed
from homeassistant.helpers.entity import EntityCategory, Entity
from pyhon.parameter.range import HonParameterRange
from .const import DOMAIN
from .hon import HonEntity, HonCoordinator, unique_entities
from .hon import HonEntity, unique_entities
@dataclass
class HonConfigNumberEntityDescription(NumberEntityDescription):
entity_category: EntityCategory = EntityCategory.CONFIG
@dataclass
class HonNumberEntityDescription(NumberEntityDescription):
pass
NUMBERS: dict[str, tuple[NumberEntityDescription, ...]] = {
"WM": (
NumberEntityDescription(
HonConfigNumberEntityDescription(
key="startProgram.delayTime",
name="Delay Time",
icon="mdi:timer-plus",
entity_category=EntityCategory.CONFIG,
native_unit_of_measurement=UnitOfTime.MINUTES,
translation_key="delay_time",
),
NumberEntityDescription(
HonConfigNumberEntityDescription(
key="startProgram.rinseIterations",
name="Rinse Iterations",
icon="mdi:rotate-right",
entity_category=EntityCategory.CONFIG,
translation_key="rinse_iterations",
),
NumberEntityDescription(
HonConfigNumberEntityDescription(
key="startProgram.mainWashTime",
name="Main Wash Time",
icon="mdi:clock-start",
entity_category=EntityCategory.CONFIG,
native_unit_of_measurement=UnitOfTime.MINUTES,
translation_key="wash_time",
),
NumberEntityDescription(
HonConfigNumberEntityDescription(
key="startProgram.steamLevel",
name="Steam Level",
icon="mdi:weather-dust",
entity_category=EntityCategory.CONFIG,
translation_key="steam_level",
),
NumberEntityDescription(
HonConfigNumberEntityDescription(
key="startProgram.waterHard",
name="Water hard",
icon="mdi:water",
entity_category=EntityCategory.CONFIG,
translation_key="water_hard",
),
NumberEntityDescription(
HonConfigNumberEntityDescription(
key="startProgram.lang",
name="lang",
entity_category=EntityCategory.CONFIG,
),
),
"TD": (
NumberEntityDescription(
HonConfigNumberEntityDescription(
key="startProgram.delayTime",
name="Delay time",
icon="mdi:timer-plus",
entity_category=EntityCategory.CONFIG,
native_unit_of_measurement=UnitOfTime.MINUTES,
translation_key="delay_time",
),
NumberEntityDescription(
HonConfigNumberEntityDescription(
key="startProgram.tempLevel",
name="Temperature level",
entity_category=EntityCategory.CONFIG,
icon="mdi:thermometer",
translation_key="tumbledryertemplevel",
),
NumberEntityDescription(
HonConfigNumberEntityDescription(
key="startProgram.dryTime",
name="Dry Time",
entity_category=EntityCategory.CONFIG,
translation_key="dry_time",
),
),
"OV": (
NumberEntityDescription(
HonConfigNumberEntityDescription(
key="startProgram.delayTime",
name="Delay time",
icon="mdi:timer-plus",
entity_category=EntityCategory.CONFIG,
native_unit_of_measurement=UnitOfTime.MINUTES,
translation_key="delay_time",
),
NumberEntityDescription(
HonConfigNumberEntityDescription(
key="startProgram.tempSel",
name="Target Temperature",
entity_category=EntityCategory.CONFIG,
icon="mdi:thermometer",
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
translation_key="target_temperature",
),
NumberEntityDescription(
HonConfigNumberEntityDescription(
key="startProgram.prTime",
name="Program Duration",
entity_category=EntityCategory.CONFIG,
icon="mdi:timelapse",
native_unit_of_measurement=UnitOfTime.MINUTES,
translation_key="program_duration",
),
),
"IH": (
NumberEntityDescription(
HonConfigNumberEntityDescription(
key="startProgram.temp",
name="Temperature",
entity_category=EntityCategory.CONFIG,
icon="mdi:thermometer",
translation_key="temperature",
),
NumberEntityDescription(
HonConfigNumberEntityDescription(
key="startProgram.powerManagement",
name="Power Management",
entity_category=EntityCategory.CONFIG,
icon="mdi:timelapse",
translation_key="power_management",
),
),
"DW": (
NumberEntityDescription(
HonConfigNumberEntityDescription(
key="startProgram.delayTime",
name="Delay time",
icon="mdi:timer-plus",
entity_category=EntityCategory.CONFIG,
native_unit_of_measurement=UnitOfTime.MINUTES,
translation_key="delay_time",
),
NumberEntityDescription(
HonConfigNumberEntityDescription(
key="startProgram.waterHard",
name="Water hard",
icon="mdi:water",
entity_category=EntityCategory.CONFIG,
translation_key="water_hard",
),
),
"AC": (
NumberEntityDescription(
HonNumberEntityDescription(
key="settings.tempSel",
name="Target Temperature",
icon="mdi:thermometer",
@ -153,14 +147,14 @@ NUMBERS: dict[str, tuple[NumberEntityDescription, ...]] = {
),
),
"REF": (
NumberEntityDescription(
HonNumberEntityDescription(
key="settings.tempSelZ1",
name="Fridge Temperature",
icon="mdi:thermometer",
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
translation_key="fridge_temp_sel",
),
NumberEntityDescription(
HonNumberEntityDescription(
key="settings.tempSelZ2",
name="Freezer Temperature",
icon="mdi:thermometer",
@ -174,36 +168,29 @@ NUMBERS["WD"] = unique_entities(NUMBERS["WM"], NUMBERS["TD"])
async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None:
hon: Hon = hass.data[DOMAIN][entry.unique_id]
coordinators = hass.data[DOMAIN]["coordinators"]
appliances = []
for device in hon.appliances:
if device.unique_id in coordinators:
coordinator = hass.data[DOMAIN]["coordinators"][device.unique_id]
else:
coordinator = HonCoordinator(hass, device)
hass.data[DOMAIN]["coordinators"][device.unique_id] = coordinator
await coordinator.async_config_entry_first_refresh()
if descriptions := NUMBERS.get(device.appliance_type):
for description in descriptions:
if description.key not in device.available_settings:
continue
appliances.extend(
[HonNumberEntity(hass, coordinator, entry, device, description)]
)
async_add_entities(appliances)
entities = []
for device in hass.data[DOMAIN][entry.unique_id].appliances:
for description in NUMBERS.get(device.appliance_type, []):
if description.key not in device.available_settings:
continue
if isinstance(description, HonNumberEntityDescription):
entity = HonNumberEntity(hass, entry, device, description)
elif isinstance(description, HonConfigNumberEntityDescription):
entity = HonConfigNumberEntity(hass, entry, device, description)
else:
continue
await entity.coordinator.async_config_entry_first_refresh()
entities.append(entity)
async_add_entities(entities)
class HonNumberEntity(HonEntity, NumberEntity):
def __init__(self, hass, coordinator, entry, device, description) -> None:
super().__init__(hass, entry, coordinator, device)
entity_description: HonNumberEntityDescription
def __init__(self, hass, entry, device, description) -> None:
super().__init__(hass, entry, device, description)
self._data = device.settings[description.key]
self.entity_description = description
self._attr_unique_id = f"{super().unique_id}{description.key}"
if isinstance(self._data, HonParameterRange):
self._attr_native_max_value = self._data.max
self._attr_native_min_value = self._data.min
@ -215,12 +202,10 @@ class HonNumberEntity(HonEntity, NumberEntity):
async def async_set_native_value(self, value: float) -> None:
setting = self._device.settings[self.entity_description.key]
if not (
isinstance(setting, HonParameter) or isinstance(setting, HonParameterFixed)
):
if isinstance(setting, HonParameterRange):
setting.value = value
if "settings." in self.entity_description.key:
await self._device.commands["settings"].send()
command = self.entity_description.key.split(".")[0]
await self._device.commands[command].send()
await self.coordinator.async_refresh()
@callback
@ -236,12 +221,23 @@ class HonNumberEntity(HonEntity, NumberEntity):
@property
def available(self) -> bool:
"""Return True if entity is available."""
if self.entity_category == EntityCategory.CONFIG:
return super().available
else:
return (
super().available
and self._device.get("remoteCtrValid", "1") == "1"
and self._device.get("attributes.lastConnEvent.category")
!= "DISCONNECTED"
)
return (
super().available
and self._device.get("remoteCtrValid", "1") == "1"
and self._device.get("attributes.lastConnEvent.category") != "DISCONNECTED"
)
class HonConfigNumberEntity(HonNumberEntity):
entity_description: HonConfigNumberEntityDescription
async def async_set_native_value(self, value: str) -> None:
setting = self._device.settings[self.entity_description.key]
if isinstance(setting, HonParameterRange):
setting.value = value
await self.coordinator.async_refresh()
@property
def available(self) -> bool:
"""Return True if entity is available."""
return super(NumberEntity, self).available

View File

@ -1,116 +1,116 @@
from __future__ import annotations
import logging
from pyhon import Hon
from pyhon.appliance import HonAppliance
from pyhon.parameter.fixed import HonParameterFixed
from dataclasses import dataclass
from homeassistant.components.select import SelectEntity, SelectEntityDescription
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import UnitOfTemperature, UnitOfTime, REVOLUTIONS_PER_MINUTE
from homeassistant.core import callback
from homeassistant.helpers.entity import EntityCategory
from homeassistant.helpers.entity import EntityCategory, Entity
from pyhon.appliance import HonAppliance
from pyhon.parameter.fixed import HonParameterFixed
from .const import DOMAIN
from .hon import HonEntity, HonCoordinator, unique_entities
from .hon import HonEntity, unique_entities
_LOGGER = logging.getLogger(__name__)
@dataclass
class HonSelectEntityDescription(SelectEntityDescription):
pass
@dataclass
class HonConfigSelectEntityDescription(SelectEntityDescription):
entity_category: EntityCategory = EntityCategory.CONFIG
SELECTS = {
"WM": (
SelectEntityDescription(
HonConfigSelectEntityDescription(
key="startProgram.spinSpeed",
name="Spin speed",
entity_category=EntityCategory.CONFIG,
icon="mdi:numeric",
unit_of_measurement=REVOLUTIONS_PER_MINUTE,
translation_key="spin_speed",
),
SelectEntityDescription(
HonConfigSelectEntityDescription(
key="startProgram.temp",
name="Temperature",
entity_category=EntityCategory.CONFIG,
icon="mdi:thermometer",
unit_of_measurement=UnitOfTemperature.CELSIUS,
translation_key="temperature",
),
SelectEntityDescription(
HonConfigSelectEntityDescription(
key="startProgram.program",
name="Program",
entity_category=EntityCategory.CONFIG,
translation_key="programs_wm",
),
),
"TD": (
SelectEntityDescription(
HonConfigSelectEntityDescription(
key="startProgram.program",
name="Program",
entity_category=EntityCategory.CONFIG,
translation_key="programs_td",
),
SelectEntityDescription(
HonConfigSelectEntityDescription(
key="startProgram.dryTimeMM",
name="Dry Time",
entity_category=EntityCategory.CONFIG,
icon="mdi:timer",
unit_of_measurement=UnitOfTime.MINUTES,
translation_key="dry_time",
),
SelectEntityDescription(
HonConfigSelectEntityDescription(
key="startProgram.dryLevel",
name="Dry level",
entity_category=EntityCategory.CONFIG,
icon="mdi:hair-dryer",
translation_key="dry_levels",
),
),
"OV": (
SelectEntityDescription(
HonConfigSelectEntityDescription(
key="startProgram.program",
name="Program",
entity_category=EntityCategory.CONFIG,
translation_key="programs_ov",
),
),
"IH": (
SelectEntityDescription(
HonConfigSelectEntityDescription(
key="startProgram.program",
name="Program",
entity_category=EntityCategory.CONFIG,
translation_key="programs_ih",
),
),
"DW": (
SelectEntityDescription(
HonConfigSelectEntityDescription(
key="startProgram.program",
name="Program",
entity_category=EntityCategory.CONFIG,
translation_key="programs_dw",
),
SelectEntityDescription(
HonConfigSelectEntityDescription(
key="startProgram.temp",
name="Temperature",
entity_category=EntityCategory.CONFIG,
icon="mdi:thermometer",
unit_of_measurement=UnitOfTemperature.CELSIUS,
translation_key="temperature",
),
SelectEntityDescription(
HonConfigSelectEntityDescription(
key="startProgram.remainingTime",
name="Remaining Time",
entity_category=EntityCategory.CONFIG,
icon="mdi:timer",
unit_of_measurement=UnitOfTime.MINUTES,
translation_key="remaining_time",
),
),
"AC": (
SelectEntityDescription(
HonSelectEntityDescription(
key="startProgram.program",
name="Program",
translation_key="programs_ac",
),
SelectEntityDescription(
HonSelectEntityDescription(
key="settings.humanSensingStatus",
name="Eco Pilot",
icon="mdi:run",
@ -118,12 +118,17 @@ SELECTS = {
),
),
"REF": (
SelectEntityDescription(
HonConfigSelectEntityDescription(
key="startProgram.program",
name="Program",
entity_category=EntityCategory.CONFIG,
translation_key="programs_ref",
),
HonConfigSelectEntityDescription(
key="startProgram.zone",
name="Zone",
icon="mdi:radiobox-marked",
translation_key="ref_zones",
),
),
}
@ -131,35 +136,27 @@ SELECTS["WD"] = unique_entities(SELECTS["WM"], SELECTS["TD"])
async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None:
hon: Hon = hass.data[DOMAIN][entry.unique_id]
coordinators = hass.data[DOMAIN]["coordinators"]
appliances = []
for device in hon.appliances:
if device.unique_id in coordinators:
coordinator = hass.data[DOMAIN]["coordinators"][device.unique_id]
else:
coordinator = HonCoordinator(hass, device)
hass.data[DOMAIN]["coordinators"][device.unique_id] = coordinator
await coordinator.async_config_entry_first_refresh()
if descriptions := SELECTS.get(device.appliance_type):
for description in descriptions:
if description.key not in device.available_settings:
continue
appliances.extend(
[HonSelectEntity(hass, coordinator, entry, device, description)]
)
async_add_entities(appliances)
entities = []
for device in hass.data[DOMAIN][entry.unique_id].appliances:
for description in SELECTS.get(device.appliance_type, []):
if description.key not in device.available_settings:
continue
if isinstance(description, HonSelectEntityDescription):
entity = HonSelectEntity(hass, entry, device, description)
elif isinstance(description, HonConfigSelectEntityDescription):
entity = HonConfigSelectEntity(hass, entry, device, description)
else:
continue
await entity.coordinator.async_config_entry_first_refresh()
entities.append(entity)
async_add_entities(entities)
class HonSelectEntity(HonEntity, SelectEntity):
def __init__(
self, hass, coordinator, entry, device: HonAppliance, description
) -> None:
super().__init__(hass, entry, coordinator, device)
entity_description: HonSelectEntityDescription
self.entity_description = description
self._attr_unique_id = f"{super().unique_id}{description.key}"
def __init__(self, hass, entry, device: HonAppliance, description) -> None:
super().__init__(hass, entry, device, description)
if not (setting := self._device.settings.get(description.key)):
self._attr_options: list[str] = []
@ -177,10 +174,8 @@ class HonSelectEntity(HonEntity, SelectEntity):
async def async_select_option(self, option: str) -> None:
self._device.settings[self.entity_description.key].value = option
if "settings." in self.entity_description.key:
await self._device.commands["settings"].send()
elif self._device.appliance_type in ["AC"]:
await self._device.commands["startProgram"].send()
command = self.entity_description.key.split(".")[0]
await self._device.commands[command].send()
await self.coordinator.async_refresh()
@callback
@ -199,12 +194,21 @@ class HonSelectEntity(HonEntity, SelectEntity):
@property
def available(self) -> bool:
"""Return True if entity is available."""
if self.entity_category == EntityCategory.CONFIG:
return super().available
else:
return (
super().available
and self._device.get("remoteCtrValid", "1") == "1"
and self._device.get("attributes.lastConnEvent.category")
!= "DISCONNECTED"
)
return (
super().available
and self._device.get("remoteCtrValid", "1") == "1"
and self._device.get("attributes.lastConnEvent.category") != "DISCONNECTED"
)
class HonConfigSelectEntity(HonSelectEntity):
entity_description: HonConfigSelectEntityDescription
async def async_select_option(self, option: str) -> None:
self._device.settings[self.entity_description.key].value = option
await self.coordinator.async_refresh()
@property
def available(self) -> bool:
"""Return True if entity is available."""
return super(SelectEntity, self).available

View File

@ -1,6 +1,5 @@
import logging
from pyhon import Hon
from dataclasses import dataclass
from homeassistant.components.sensor import (
SensorEntity,
@ -24,14 +23,24 @@ from homeassistant.helpers.entity import EntityCategory
from homeassistant.helpers.typing import StateType
from . import const
from .const import DOMAIN
from .hon import HonCoordinator, HonEntity, unique_entities
from .hon import HonEntity, unique_entities
_LOGGER = logging.getLogger(__name__)
@dataclass
class HonConfigSensorEntityDescription(SensorEntityDescription):
entity_category: EntityCategory = EntityCategory.CONFIG
@dataclass
class HonSensorEntityDescription(SensorEntityDescription):
pass
SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
"WM": (
SensorEntityDescription(
HonSensorEntityDescription(
key="prPhase",
name="Program Phase",
icon="mdi:washing-machine",
@ -39,7 +48,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
translation_key="program_phases_wm",
options=list(const.WASHING_PR_PHASE),
),
SensorEntityDescription(
HonSensorEntityDescription(
key="totalElectricityUsed",
name="Total Power",
device_class=SensorDeviceClass.ENERGY,
@ -47,7 +56,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
translation_key="energy_total",
),
SensorEntityDescription(
HonSensorEntityDescription(
key="totalWaterUsed",
name="Total Water",
device_class=SensorDeviceClass.WATER,
@ -55,14 +64,14 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
native_unit_of_measurement=UnitOfVolume.LITERS,
translation_key="water_total",
),
SensorEntityDescription(
HonSensorEntityDescription(
key="totalWashCycle",
name="Total Wash Cycle",
state_class=SensorStateClass.TOTAL_INCREASING,
icon="mdi:counter",
translation_key="cycles_total",
),
SensorEntityDescription(
HonSensorEntityDescription(
key="currentElectricityUsed",
name="Current Electricity Used",
state_class=SensorStateClass.MEASUREMENT,
@ -71,23 +80,22 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
icon="mdi:lightning-bolt",
translation_key="energy_current",
),
SensorEntityDescription(
HonSensorEntityDescription(
key="currentWaterUsed",
name="Current Water Used",
state_class=SensorStateClass.MEASUREMENT,
icon="mdi:water",
translation_key="water_current",
),
SensorEntityDescription(
HonConfigSensorEntityDescription(
key="startProgram.weight",
name="Suggested weight",
state_class=SensorStateClass.MEASUREMENT,
entity_category=EntityCategory.CONFIG,
native_unit_of_measurement=UnitOfMass.KILOGRAMS,
icon="mdi:weight-kilogram",
translation_key="suggested_load",
),
SensorEntityDescription(
HonSensorEntityDescription(
key="machMode",
name="Machine Status",
icon="mdi:information",
@ -95,10 +103,10 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
translation_key="washing_modes",
options=list(const.MACH_MODE),
),
SensorEntityDescription(
HonSensorEntityDescription(
key="errors", name="Error", icon="mdi:math-log", translation_key="errors"
),
SensorEntityDescription(
HonSensorEntityDescription(
key="remainingTimeMM",
name="Remaining Time",
icon="mdi:timer",
@ -106,7 +114,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
native_unit_of_measurement=UnitOfTime.MINUTES,
translation_key="remaining_time",
),
SensorEntityDescription(
HonSensorEntityDescription(
key="spinSpeed",
name="Spin Speed",
icon="mdi:speedometer",
@ -114,53 +122,48 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
native_unit_of_measurement=REVOLUTIONS_PER_MINUTE,
translation_key="spin_speed",
),
SensorEntityDescription(
HonConfigSensorEntityDescription(
key="startProgram.energyLabel",
name="Energy Label",
icon="mdi:lightning-bolt-circle",
state_class=SensorStateClass.MEASUREMENT,
entity_category=EntityCategory.CONFIG,
translation_key="energy_label",
),
SensorEntityDescription(
HonConfigSensorEntityDescription(
key="startProgram.liquidDetergentDose",
name="Liquid Detergent Dose",
icon="mdi:cup-water",
entity_category=EntityCategory.CONFIG,
translation_key="det_liquid",
),
SensorEntityDescription(
HonConfigSensorEntityDescription(
key="startProgram.powderDetergentDose",
name="Powder Detergent Dose",
icon="mdi:cup",
entity_category=EntityCategory.CONFIG,
translation_key="det_dust",
),
SensorEntityDescription(
HonConfigSensorEntityDescription(
key="startProgram.remainingTime",
name="Remaining Time",
icon="mdi:timer",
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=UnitOfTime.MINUTES,
entity_category=EntityCategory.CONFIG,
translation_key="remaining_time",
),
SensorEntityDescription(
HonSensorEntityDescription(
key="dirtyLevel",
name="Dirt level",
icon="mdi:liquid-spot",
translation_key="dirt_level",
),
SensorEntityDescription(
HonConfigSensorEntityDescription(
key="startProgram.suggestedLoadW",
name="Suggested Load",
icon="mdi:weight-kilogram",
entity_category=EntityCategory.CONFIG,
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=UnitOfMass.KILOGRAMS,
translation_key="suggested_load",
),
SensorEntityDescription(
HonSensorEntityDescription(
key="temp",
name="Current Temperature",
icon="mdi:thermometer",
@ -170,7 +173,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
),
),
"TD": (
SensorEntityDescription(
HonSensorEntityDescription(
key="machMode",
name="Machine Status",
icon="mdi:information",
@ -178,10 +181,10 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
translation_key="washing_modes",
options=list(const.MACH_MODE),
),
SensorEntityDescription(
HonSensorEntityDescription(
key="errors", name="Error", icon="mdi:math-log", translation_key="errors"
),
SensorEntityDescription(
HonSensorEntityDescription(
key="remainingTimeMM",
name="Remaining Time",
icon="mdi:timer",
@ -189,7 +192,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
native_unit_of_measurement=UnitOfTime.MINUTES,
translation_key="remaining_time",
),
SensorEntityDescription(
HonSensorEntityDescription(
key="delayTime",
name="Start Time",
icon="mdi:clock-start",
@ -197,7 +200,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
native_unit_of_measurement=UnitOfTime.MINUTES,
translation_key="delay_time",
),
SensorEntityDescription(
HonSensorEntityDescription(
key="programName",
name="Program",
icon="mdi:tumble-dryer",
@ -205,7 +208,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
translation_key="programs_td",
options=const.PROGRAMS_TD,
),
SensorEntityDescription(
HonSensorEntityDescription(
key="prPhase",
name="Program Phase",
icon="mdi:washing-machine",
@ -213,7 +216,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
translation_key="program_phases_td",
options=list(const.TUMBLE_DRYER_PR_PHASE),
),
SensorEntityDescription(
HonSensorEntityDescription(
key="dryLevel",
name="Dry level",
icon="mdi:hair-dryer",
@ -221,58 +224,54 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
translation_key="dry_levels",
options=list(const.TUMBLE_DRYER_DRY_LEVEL),
),
SensorEntityDescription(
HonSensorEntityDescription(
key="tempLevel",
name="Temperature level",
icon="mdi:thermometer",
translation_key="tumbledryertemplevel",
),
SensorEntityDescription(
HonConfigSensorEntityDescription(
key="startProgram.suggestedLoadD",
name="Suggested Load",
icon="mdi:weight-kilogram",
entity_category=EntityCategory.CONFIG,
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=UnitOfMass.KILOGRAMS,
translation_key="suggested_load",
),
SensorEntityDescription(
HonConfigSensorEntityDescription(
key="startProgram.energyLabel",
name="Energy Label",
icon="mdi:lightning-bolt-circle",
state_class=SensorStateClass.MEASUREMENT,
entity_category=EntityCategory.CONFIG,
translation_key="energy_label",
),
SensorEntityDescription(
HonConfigSensorEntityDescription(
key="startProgram.steamLevel",
name="Steam level",
icon="mdi:smoke",
entity_category=EntityCategory.CONFIG,
translation_key="steam_level",
),
SensorEntityDescription(
HonSensorEntityDescription(
key="steamLevel",
name="Steam level",
icon="mdi:smoke",
translation_key="steam_level",
),
SensorEntityDescription(
HonConfigSensorEntityDescription(
key="steamType",
name="Steam Type",
icon="mdi:weather-dust",
entity_category=EntityCategory.CONFIG,
),
),
"OV": (
SensorEntityDescription(
HonSensorEntityDescription(
key="remainingTimeMM",
name="Remaining Time",
icon="mdi:timer",
native_unit_of_measurement=UnitOfTime.MINUTES,
translation_key="remaining_time",
),
SensorEntityDescription(
HonSensorEntityDescription(
key="delayTime",
name="Start Time",
icon="mdi:clock-start",
@ -280,13 +279,13 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
native_unit_of_measurement=UnitOfTime.MINUTES,
translation_key="delay_time",
),
SensorEntityDescription(
HonSensorEntityDescription(
key="temp",
name="Temperature",
icon="mdi:thermometer",
translation_key="temperature",
),
SensorEntityDescription(
HonSensorEntityDescription(
key="tempSel",
name="Temperature Selected",
icon="mdi:thermometer",
@ -294,14 +293,14 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
),
),
"IH": (
SensorEntityDescription(
HonSensorEntityDescription(
key="remainingTimeMM",
name="Remaining Time",
icon="mdi:timer",
native_unit_of_measurement=UnitOfTime.MINUTES,
translation_key="remaining_time",
),
SensorEntityDescription(
HonSensorEntityDescription(
key="temp",
name="Temperature",
icon="mdi:thermometer",
@ -309,10 +308,10 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
translation_key="temperature",
),
SensorEntityDescription(
HonSensorEntityDescription(
key="errors", name="Error", icon="mdi:math-log", translation_key="errors"
),
SensorEntityDescription(
HonSensorEntityDescription(
key="power",
name="Power",
icon="mdi:lightning-bolt",
@ -321,57 +320,51 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
),
),
"DW": (
SensorEntityDescription(
HonConfigSensorEntityDescription(
key="startProgram.ecoIndex",
name="Eco Index",
icon="mdi:sprout",
state_class=SensorStateClass.MEASUREMENT,
entity_category=EntityCategory.CONFIG,
),
SensorEntityDescription(
HonConfigSensorEntityDescription(
key="startProgram.waterEfficiency",
name="Water Efficiency",
icon="mdi:water",
state_class=SensorStateClass.MEASUREMENT,
entity_category=EntityCategory.CONFIG,
translation_key="water_efficiency",
),
SensorEntityDescription(
HonConfigSensorEntityDescription(
key="startProgram.waterSaving",
name="Water Saving",
icon="mdi:water-percent",
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=PERCENTAGE,
entity_category=EntityCategory.CONFIG,
translation_key="water_saving",
),
SensorEntityDescription(
HonConfigSensorEntityDescription(
key="startProgram.temp",
name="Temperature",
icon="mdi:thermometer",
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
entity_category=EntityCategory.CONFIG,
translation_key="temperature",
),
SensorEntityDescription(
HonConfigSensorEntityDescription(
key="startProgram.energyLabel",
name="Energy Label",
icon="mdi:lightning-bolt-circle",
state_class=SensorStateClass.MEASUREMENT,
entity_category=EntityCategory.CONFIG,
translation_key="energy_label",
),
SensorEntityDescription(
HonConfigSensorEntityDescription(
key="startProgram.remainingTime",
name="Time",
icon="mdi:timer",
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=UnitOfTime.MINUTES,
entity_category=EntityCategory.CONFIG,
translation_key="duration",
),
SensorEntityDescription(
HonSensorEntityDescription(
key="machMode",
name="Machine Status",
icon="mdi:information",
@ -379,10 +372,10 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
translation_key="washing_modes",
options=list(const.MACH_MODE),
),
SensorEntityDescription(
HonSensorEntityDescription(
key="errors", name="Error", icon="mdi:math-log", translation_key="errors"
),
SensorEntityDescription(
HonSensorEntityDescription(
key="remainingTimeMM",
name="Remaining Time",
icon="mdi:timer",
@ -390,7 +383,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
native_unit_of_measurement=UnitOfTime.MINUTES,
translation_key="remaining_time",
),
SensorEntityDescription(
HonSensorEntityDescription(
key="prPhase",
name="Program Phase",
icon="mdi:washing-machine",
@ -400,7 +393,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
),
),
"AC": (
SensorEntityDescription(
HonSensorEntityDescription(
key="tempAirOutdoor",
name="Air Temperature Outdoor",
icon="mdi:thermometer",
@ -408,7 +401,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
device_class=SensorDeviceClass.TEMPERATURE,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
),
SensorEntityDescription(
HonSensorEntityDescription(
key="tempCoilerIndoor",
name="Coiler Temperature Indoor",
icon="mdi:thermometer",
@ -416,7 +409,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
device_class=SensorDeviceClass.TEMPERATURE,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
),
SensorEntityDescription(
HonSensorEntityDescription(
key="tempCoilerOutdoor",
name="Coiler Temperature Outside",
icon="mdi:thermometer",
@ -424,7 +417,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
device_class=SensorDeviceClass.TEMPERATURE,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
),
SensorEntityDescription(
HonSensorEntityDescription(
key="tempDefrostOutdoor",
name="Defrost Temperature Outdoor",
icon="mdi:thermometer",
@ -432,7 +425,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
device_class=SensorDeviceClass.TEMPERATURE,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
),
SensorEntityDescription(
HonSensorEntityDescription(
key="tempInAirOutdoor",
name="In Air Temperature Outdoor",
icon="mdi:thermometer",
@ -440,7 +433,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
device_class=SensorDeviceClass.TEMPERATURE,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
),
SensorEntityDescription(
HonSensorEntityDescription(
key="tempIndoor",
name="Indoor Temperature",
icon="mdi:thermometer",
@ -448,7 +441,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
device_class=SensorDeviceClass.TEMPERATURE,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
),
SensorEntityDescription(
HonSensorEntityDescription(
key="tempOutdoor",
name="Outdoor Temperature",
icon="mdi:thermometer",
@ -456,7 +449,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
device_class=SensorDeviceClass.TEMPERATURE,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
),
SensorEntityDescription(
HonSensorEntityDescription(
key="tempSel",
name="Selected Temperature",
icon="mdi:thermometer",
@ -466,7 +459,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
),
),
"REF": (
SensorEntityDescription(
HonSensorEntityDescription(
key="humidityEnv",
name="Room Humidity",
icon="mdi:water-percent",
@ -475,7 +468,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
state_class=SensorStateClass.MEASUREMENT,
translation_key="humidity",
),
SensorEntityDescription(
HonSensorEntityDescription(
key="tempEnv",
name="Room Temperature",
icon="mdi:home-thermometer-outline",
@ -484,7 +477,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
translation_key="room_temperature",
),
SensorEntityDescription(
HonSensorEntityDescription(
key="tempZ1",
name="Temperature Fridge",
icon="mdi:thermometer",
@ -493,7 +486,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
translation_key="fridge_temp",
),
SensorEntityDescription(
HonSensorEntityDescription(
key="tempZ2",
name="Temperature Freezer",
icon="mdi:snowflake-thermometer",
@ -502,49 +495,36 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
translation_key="freezer_temp",
),
HonSensorEntityDescription(
key="errors", name="Error", icon="mdi:math-log", translation_key="errors"
),
),
}
SENSORS["WD"] = unique_entities(SENSORS["WM"], SENSORS["TD"])
async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None:
hon: Hon = hass.data[DOMAIN][entry.unique_id]
coordinators = hass.data[DOMAIN]["coordinators"]
appliances = []
for device in hon.appliances:
if device.unique_id in coordinators:
coordinator = hass.data[DOMAIN]["coordinators"][device.unique_id]
else:
coordinator = HonCoordinator(hass, device)
hass.data[DOMAIN]["coordinators"][device.unique_id] = coordinator
await coordinator.async_config_entry_first_refresh()
if descriptions := SENSORS.get(device.appliance_type):
for description in descriptions:
if not device.get(description.key) and not device.settings.get(
description.key
):
entities = []
for device in hass.data[DOMAIN][entry.unique_id].appliances:
for description in SENSORS.get(device.appliance_type, []):
if isinstance(description, HonSensorEntityDescription):
if not device.get(description.key):
continue
appliances.extend(
[HonSensorEntity(hass, coordinator, entry, device, description)]
)
entity = HonSensorEntity(hass, entry, device, description)
elif isinstance(description, HonConfigSensorEntityDescription):
if description.key not in device.available_settings:
continue
entity = HonConfigSensorEntity(hass, entry, device, description)
else:
continue
await entity.coordinator.async_config_entry_first_refresh()
entities.append(entity)
async_add_entities(appliances)
async_add_entities(entities)
class HonSensorEntity(HonEntity, SensorEntity):
def __init__(self, hass, coordinator, entry, device, description) -> None:
super().__init__(hass, entry, coordinator, device)
self.entity_description = description
self._attr_unique_id = f"{super().unique_id}{description.key}"
@property
def native_value(self) -> StateType:
value = self._device.get(self.entity_description.key, "")
if not value and self.entity_description.state_class is not None:
return 0
return value
entity_description: HonSensorEntityDescription
@callback
def _handle_coordinator_update(self):
@ -553,3 +533,21 @@ class HonSensorEntity(HonEntity, SensorEntity):
self._attr_native_value = 0
self._attr_native_value = value
self.async_write_ha_state()
class HonConfigSensorEntity(HonEntity, SensorEntity):
entity_description: HonConfigSensorEntityDescription
@callback
def _handle_coordinator_update(self):
value = self._device.settings.get(self.entity_description.key, None)
if self.entity_description.state_class is not None:
if value and value.value:
self._attr_native_value = (
float(value.value) if "." in str(value.value) else int(value.value)
)
else:
self._attr_native_value = 0
else:
self._attr_native_value = value.value
self.async_write_ha_state()

View File

@ -2,16 +2,15 @@ import logging
from dataclasses import dataclass
from typing import Any
from pyhon import Hon
from pyhon.appliance import HonAppliance
from pyhon.parameter.range import HonParameterRange
from homeassistant.components.switch import SwitchEntityDescription, SwitchEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import EntityCategory
from homeassistant.core import callback
from pyhon.parameter.base import HonParameter
from pyhon.parameter.range import HonParameterRange
from .const import DOMAIN
from .hon import HonCoordinator, HonEntity, unique_entities
from .hon import HonEntity, unique_entities
_LOGGER = logging.getLogger(__name__)
@ -20,19 +19,27 @@ _LOGGER = logging.getLogger(__name__)
class HonSwitchEntityDescriptionMixin:
turn_on_key: str = ""
turn_off_key: str = ""
status_key: str = ""
@dataclass
class HonSwitchEntityDescription(
class HonControlSwitchEntityDescription(
HonSwitchEntityDescriptionMixin, SwitchEntityDescription
):
pass
class HonSwitchEntityDescription(SwitchEntityDescription):
pass
@dataclass
class HonConfigSwitchEntityDescription(SwitchEntityDescription):
entity_category: EntityCategory = EntityCategory.CONFIG
SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = {
"WM": (
HonSwitchEntityDescription(
HonControlSwitchEntityDescription(
key="active",
name="Washing Machine",
icon="mdi:washing-machine",
@ -40,7 +47,7 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = {
turn_off_key="stopProgram",
translation_key="washing_machine",
),
HonSwitchEntityDescription(
HonControlSwitchEntityDescription(
key="pause",
name="Pause Washing Machine",
icon="mdi:pause",
@ -48,79 +55,69 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = {
turn_off_key="resumeProgram",
translation_key="pause",
),
HonSwitchEntityDescription(
HonConfigSwitchEntityDescription(
key="startProgram.delayStatus",
name="Delay Status",
icon="mdi:timer-check",
entity_category=EntityCategory.CONFIG,
translation_key="delay_time",
),
HonSwitchEntityDescription(
HonConfigSwitchEntityDescription(
key="startProgram.haier_SoakPrewashSelection",
name="Soak Prewash Selection",
icon="mdi:tshirt-crew",
entity_category=EntityCategory.CONFIG,
translation_key="prewash",
),
HonSwitchEntityDescription(
HonConfigSwitchEntityDescription(
key="startProgram.permanentPressStatus",
name="Keep Fresh",
entity_category=EntityCategory.CONFIG,
icon="mdi:refresh-circle",
translation_key="keep_fresh",
),
HonSwitchEntityDescription(
HonConfigSwitchEntityDescription(
key="startProgram.autoSoftenerStatus",
name="Auto Dose Softener",
entity_category=EntityCategory.CONFIG,
icon="mdi:teddy-bear",
translation_key="auto_dose_softener",
),
HonSwitchEntityDescription(
HonConfigSwitchEntityDescription(
key="startProgram.autoDetergentStatus",
name="Auto Dose Detergent",
entity_category=EntityCategory.CONFIG,
icon="mdi:cup",
translation_key="auto_dose_detergent",
),
HonSwitchEntityDescription(
HonConfigSwitchEntityDescription(
key="startProgram.acquaplus",
name="Acqua Plus",
entity_category=EntityCategory.CONFIG,
icon="mdi:water-plus",
translation_key="acqua_plus",
),
HonSwitchEntityDescription(
HonConfigSwitchEntityDescription(
key="startProgram.extraRinse1",
name="Extra Rinse 1",
entity_category=EntityCategory.CONFIG,
icon="mdi:numeric-1-box-multiple-outline",
translation_key="extra_rinse_1",
),
HonSwitchEntityDescription(
HonConfigSwitchEntityDescription(
key="startProgram.extraRinse2",
name="Extra Rinse 2",
entity_category=EntityCategory.CONFIG,
icon="mdi:numeric-2-box-multiple-outline",
translation_key="extra_rinse_2",
),
HonSwitchEntityDescription(
HonConfigSwitchEntityDescription(
key="startProgram.extraRinse3",
name="Extra Rinse 3",
entity_category=EntityCategory.CONFIG,
icon="mdi:numeric-3-box-multiple-outline",
translation_key="extra_rinse_3",
),
HonSwitchEntityDescription(
HonConfigSwitchEntityDescription(
key="startProgram.goodNight",
name="Good Night",
icon="mdi:weather-night",
entity_category=EntityCategory.CONFIG,
translation_key="good_night",
),
),
"TD": (
HonSwitchEntityDescription(
HonControlSwitchEntityDescription(
key="active",
name="Tumble Dryer",
icon="mdi:tumble-dryer",
@ -128,7 +125,7 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = {
turn_off_key="stopProgram",
translation_key="tumble_dryer",
),
HonSwitchEntityDescription(
HonControlSwitchEntityDescription(
key="pause",
name="Pause Tumble Dryer",
icon="mdi:pause",
@ -136,29 +133,26 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = {
turn_off_key="resumeProgram",
translation_key="pause",
),
HonSwitchEntityDescription(
HonConfigSwitchEntityDescription(
key="startProgram.sterilizationStatus",
name="Sterilization",
icon="mdi:clock-start",
entity_category=EntityCategory.CONFIG,
),
HonSwitchEntityDescription(
HonConfigSwitchEntityDescription(
key="startProgram.antiCreaseTime",
name="Anti-Crease",
entity_category=EntityCategory.CONFIG,
icon="mdi:timer",
translation_key="anti_crease",
),
HonSwitchEntityDescription(
HonConfigSwitchEntityDescription(
key="startProgram.anticrease",
name="Anti-Crease",
entity_category=EntityCategory.CONFIG,
icon="mdi:timer",
translation_key="anti_crease",
),
),
"OV": (
HonSwitchEntityDescription(
HonControlSwitchEntityDescription(
key="active",
name="Oven",
icon="mdi:toaster-oven",
@ -166,16 +160,15 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = {
turn_off_key="stopProgram",
translation_key="oven",
),
HonSwitchEntityDescription(
HonConfigSwitchEntityDescription(
key="startProgram.preheatStatus",
name="Preheat",
icon="mdi:thermometer-chevron-up",
entity_category=EntityCategory.CONFIG,
translation_key="preheat",
),
),
"WD": (
HonSwitchEntityDescription(
HonControlSwitchEntityDescription(
key="active",
name="Washer Dryer",
icon="mdi:washing-machine",
@ -183,7 +176,7 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = {
turn_off_key="stopProgram",
translation_key="washer_dryer",
),
HonSwitchEntityDescription(
HonControlSwitchEntityDescription(
key="pause",
name="Pause Washer Dryer",
icon="mdi:pause",
@ -193,7 +186,7 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = {
),
),
"DW": (
HonSwitchEntityDescription(
HonControlSwitchEntityDescription(
key="active",
name="Dish Washer",
icon="mdi:dishwasher",
@ -201,50 +194,44 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = {
turn_off_key="stopProgram",
translation_key="dish_washer",
),
HonSwitchEntityDescription(
HonConfigSwitchEntityDescription(
key="startProgram.extraDry",
name="Extra Dry",
icon="mdi:hair-dryer",
entity_category=EntityCategory.CONFIG,
translation_key="extra_dry",
),
HonSwitchEntityDescription(
HonConfigSwitchEntityDescription(
key="startProgram.halfLoad",
name="Half Load",
icon="mdi:fraction-one-half",
entity_category=EntityCategory.CONFIG,
translation_key="half_load",
),
HonSwitchEntityDescription(
HonConfigSwitchEntityDescription(
key="startProgram.openDoor",
name="Open Door",
icon="mdi:door-open",
entity_category=EntityCategory.CONFIG,
translation_key="open_door",
),
HonSwitchEntityDescription(
HonConfigSwitchEntityDescription(
key="startProgram.threeInOne",
name="Three in One",
icon="mdi:numeric-3-box-outline",
entity_category=EntityCategory.CONFIG,
translation_key="three_in_one",
),
HonSwitchEntityDescription(
HonConfigSwitchEntityDescription(
key="startProgram.ecoExpress",
name="Eco Express",
icon="mdi:sprout",
entity_category=EntityCategory.CONFIG,
translation_key="eco",
),
HonSwitchEntityDescription(
HonConfigSwitchEntityDescription(
key="startProgram.addDish",
name="Add Dish",
icon="mdi:silverware-fork-knife",
entity_category=EntityCategory.CONFIG,
translation_key="add_dish",
),
HonSwitchEntityDescription(
key="settings.buzzerDisabled",
key="buzzerDisabled",
name="Buzzer Disabled",
icon="mdi:volume-off",
translation_key="buzzer",
@ -252,65 +239,57 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = {
),
"AC": (
HonSwitchEntityDescription(
key="settings.10degreeHeatingStatus",
status_key="10degreeHeatingStatus",
key="10degreeHeatingStatus",
name="10° Heating",
icon="mdi:heat-wave",
translation_key="10_degree_heating",
),
HonSwitchEntityDescription(
key="settings.echoStatus",
status_key="echoStatus",
key="echoStatus",
name="Echo",
icon="mdi:account-voice",
),
HonSwitchEntityDescription(
key="settings.ecoMode",
key="ecoMode",
name="Eco Mode",
translation_key="eco_mode",
),
HonSwitchEntityDescription(
key="settings.healthMode",
status_key="healthMode",
key="healthMode",
name="Health Mode",
icon="mdi:medication-outline",
),
HonSwitchEntityDescription(
key="settings.muteStatus",
status_key="muteStatus",
key="muteStatus",
name="Mute",
icon="mdi:volume-off",
translation_key="mute_mode",
),
HonSwitchEntityDescription(
key="settings.rapidMode",
status_key="rapidMode",
key="rapidMode",
name="Rapid Mode",
icon="mdi:run-fast",
translation_key="rapid_mode",
),
HonSwitchEntityDescription(
key="settings.screenDisplayStatus",
status_key="screenDisplayStatus",
key="screenDisplayStatus",
name="Screen Display",
icon="mdi:monitor-small",
),
HonSwitchEntityDescription(
key="settings.selfCleaning56Status",
key="selfCleaning56Status",
name="Self Cleaning 56",
icon="mdi:air-filter",
translation_key="self_clean_56",
),
HonSwitchEntityDescription(
key="settings.selfCleaningStatus",
status_key="selfCleaningStatus",
key="selfCleaningStatus",
name="Self Cleaning",
icon="mdi:air-filter",
translation_key="self_clean",
),
HonSwitchEntityDescription(
key="settings.silentSleepStatus",
status_key="silentSleepStatus",
key="silentSleepStatus",
name="Silent Sleep",
icon="mdi:bed",
translation_key="silent_mode",
@ -318,23 +297,29 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = {
),
"REF": (
HonSwitchEntityDescription(
key="settings.intelligenceMode",
key="intelligenceMode",
name="Auto-Set Mode",
icon="mdi:thermometer-auto",
translation_key="auto_set",
),
HonSwitchEntityDescription(
key="settings.quickModeZ1",
key="quickModeZ1",
name="Super Freeze",
icon="mdi:snowflake-variant",
translation_key="super_freeze",
),
HonSwitchEntityDescription(
key="settings.quickModeZ2",
key="quickModeZ2",
name="Super Cool",
icon="mdi:snowflake",
translation_key="super_cool",
),
HonSwitchEntityDescription(
key="holidayMode",
name="Holiday Mode",
icon="mdi:palm-tree",
translation_key="holiday_mode",
),
),
}
@ -343,117 +328,133 @@ SWITCHES["WD"] = unique_entities(SWITCHES["WD"], SWITCHES["TD"])
async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None:
hon: Hon = hass.data[DOMAIN][entry.unique_id]
coordinators = hass.data[DOMAIN]["coordinators"]
appliances = []
for device in hon.appliances:
if device.unique_id in coordinators:
coordinator = hass.data[DOMAIN]["coordinators"][device.unique_id]
else:
coordinator = HonCoordinator(hass, device)
hass.data[DOMAIN]["coordinators"][device.unique_id] = coordinator
await coordinator.async_config_entry_first_refresh()
entities = []
for device in hass.data[DOMAIN][entry.unique_id].appliances:
for description in SWITCHES.get(device.appliance_type, []):
if isinstance(description, HonConfigSwitchEntityDescription):
if description.key not in device.available_settings:
continue
entity = HonConfigSwitchEntity(hass, entry, device, description)
elif isinstance(description, HonControlSwitchEntityDescription):
if not (
device.get(description.key) is not None
or description.turn_on_key in list(device.commands)
or description.turn_off_key in list(device.commands)
):
continue
entity = HonControlSwitchEntity(hass, entry, device, description)
elif isinstance(description, HonSwitchEntityDescription):
if (
f"settings.{description.key}" not in device.available_settings
or not device.get(description.key)
):
continue
entity = HonSwitchEntity(hass, entry, device, description)
else:
continue
await entity.coordinator.async_config_entry_first_refresh()
entities.append(entity)
if descriptions := SWITCHES.get(device.appliance_type):
for description in descriptions:
if description.entity_category == EntityCategory.CONFIG:
if description.key not in device.available_settings:
continue
else:
if not any(
[
device.get(description.key) is not None,
description.turn_on_key in list(device.commands),
description.turn_off_key in list(device.commands),
]
):
continue
appliances.extend(
[HonSwitchEntity(hass, coordinator, entry, device, description)]
)
async_add_entities(appliances)
async_add_entities(entities)
class HonSwitchEntity(HonEntity, SwitchEntity):
entity_description: HonSwitchEntityDescription
def __init__(
self,
hass,
coordinator,
entry,
device: HonAppliance,
description: HonSwitchEntityDescription,
) -> None:
super().__init__(hass, entry, coordinator, device)
self.entity_description = description
self._attr_unique_id = f"{super().unique_id}{description.key}"
@property
def is_on(self) -> bool | None:
"""Return True if entity is on."""
if self.entity_category == EntityCategory.CONFIG:
setting = self._device.settings[self.entity_description.key]
return (
setting.value == "1"
or hasattr(setting, "min")
and setting.value != setting.min
)
elif self.entity_description.status_key:
return self._device.get(self.entity_description.status_key, "0") == "1"
return self._device.get(self.entity_description.key, False)
return self._device.get(self.entity_description.key, "0") == "1"
async def async_turn_on(self, **kwargs: Any) -> None:
if (
self.entity_category == EntityCategory.CONFIG
or "settings." in self.entity_description.key
):
setting = self._device.settings[self.entity_description.key]
setting.value = (
setting.max if isinstance(setting, HonParameterRange) else "1"
)
self.async_write_ha_state()
if "settings." in self.entity_description.key:
await self._device.commands["settings"].send()
await self.coordinator.async_refresh()
else:
await self._device.commands[self.entity_description.turn_on_key].send()
setting = self._device.settings[f"settings.{self.entity_description.key}"]
if type(setting) == HonParameter:
return
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()
async def async_turn_off(self, **kwargs: Any) -> None:
if (
self.entity_category == EntityCategory.CONFIG
or "settings." in self.entity_description.key
):
setting = self._device.settings[self.entity_description.key]
setting.value = (
setting.min if isinstance(setting, HonParameterRange) else "0"
)
self.async_write_ha_state()
if "settings." in self.entity_description.key:
await self._device.commands["settings"].send()
await self.coordinator.async_refresh()
else:
await self._device.commands[self.entity_description.turn_off_key].send()
setting = self._device.settings[f"settings.{self.entity_description.key}"]
if type(setting) == HonParameter:
return
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()
@property
def available(self) -> bool:
"""Return True if entity is available."""
if self.entity_category == EntityCategory.CONFIG:
return super().available
else:
return (
super().available
and self._device.get("remoteCtrValid", "1") == "1"
and self._device.get("attributes.lastConnEvent.category")
!= "DISCONNECTED"
)
return (
super().available
and self._device.get("remoteCtrValid", "1") == "1"
and self._device.get("attributes.lastConnEvent.category") != "DISCONNECTED"
)
@callback
def _handle_coordinator_update(self):
if not self.entity_description.status_key:
return
value = self._device.get(self.entity_description.status_key, "0")
value = self._device.get(self.entity_description.key, "0")
self._attr_state = value == "1"
self.async_write_ha_state()
class HonControlSwitchEntity(HonEntity, SwitchEntity):
entity_description: HonControlSwitchEntityDescription
@property
def is_on(self) -> bool | None:
"""Return True if entity is on."""
return self._device.get(self.entity_description.key, False)
async def async_turn_on(self, **kwargs: Any) -> None:
await self._device.commands[self.entity_description.turn_on_key].send()
async def async_turn_off(self, **kwargs: Any) -> None:
await self._device.commands[self.entity_description.turn_off_key].send()
@property
def available(self) -> bool:
"""Return True if entity is available."""
return (
super().available
and self._device.get("remoteCtrValid", "1") == "1"
and self._device.get("attributes.lastConnEvent.category") != "DISCONNECTED"
)
class HonConfigSwitchEntity(HonEntity, SwitchEntity):
entity_description: HonConfigSwitchEntityDescription
@property
def is_on(self) -> bool | None:
"""Return True if entity is on."""
setting = self._device.settings[self.entity_description.key]
return (
setting.value != setting.min
if hasattr(setting, "min")
else setting.value == "1"
)
async def async_turn_on(self, **kwargs: Any) -> None:
setting = self._device.settings[self.entity_description.key]
if type(setting) == HonParameter:
return
setting.value = setting.max if isinstance(setting, HonParameterRange) else "1"
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.async_write_ha_state()
await self.coordinator.async_refresh()
@callback
def _handle_coordinator_update(self):
value = self._device.settings.get(self.entity_description.key, "0")
self._attr_state = value == "1"
self.async_write_ha_state()

View File

@ -225,7 +225,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rychlý 20",
"hqd_quick_30": "Rychlý 30",
"hqd_quick_dry": "Rychlé sušení",
"hqd_quick_dry": "Rychlé sušení 30",
"hqd_quilt": "Deky",
"hqd_refresh": "Osvěžení",
"hqd_school_uniform": "Školní uniformy",
@ -409,6 +409,11 @@
"silent": "Noc",
"silent_care": "Silent Care",
"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í",
"special_pw_prz": "speciální",
"steam": "Parní 75 °C",
@ -465,19 +470,20 @@
"programs_ov": {
"state": {
"bakery": "Těstoviny a pečivo",
"bakery_steam": "Chléb pečený v páře",
"bakery_steam": "Pára v troubě",
"bottom_heating": "Spodní ohřev",
"bottom_heating_fan": "Spodní ohřev + ventilátor",
"bread": "Chléb",
"bread_steam": "Pečivo pečené v páře",
"bread_steam": "Chléb pečený v páře",
"combi": "Combi",
"convection_fan": "Statický + ventilátor",
"convection_fan_turnspit": "Konvekce + ventilátor + rožeň",
"conventional": "Statický",
"conventional_turnspit": "Konvekční + rožeň",
"conventional_turnspit": "Konvekce + rožeň",
"defrost": "Rozmrazování",
"descaling": "Odstraňování vodního kamene",
"fish": "Ryby",
"fish_steam": "Ryby připravované v páře",
"fish_steam": "Ryby v páře",
"grill_cata": "Gril",
"grill_fan_cata": "Ventilátor grilu",
"grill_fan_pyro": "Gril + ventilátor",
@ -487,13 +493,13 @@
"iot_h20_clean": "h2O clean",
"leavening": "Kynutí",
"low_temp_cooking": "Příprava při nízkých teplotách",
"low_temp_cooking_fish": "Příprava ryb při nízkých teplotách",
"low_temp_cooking_fish_steam": "Příprava ryb v páře při nízkých teplotách",
"low_temp_cooking_meat": "Příprava masa při nízkých teplotách",
"low_temp_cooking_meat_steam": "Příprava masa v páře při nízkých teplotách",
"low_temp_cooking_fish": "Příprava při nízkých teplotách ryby",
"low_temp_cooking_fish_steam": "Příprava při nízkých teplotách ryby v páře",
"low_temp_cooking_meat": "Příprava při nízkých teplotách maso",
"low_temp_cooking_meat_steam": "Příprava při nízkých teplotách - dušené maso",
"low_temp_cooking_steam": "Příprava v páře při nízkých teplotách",
"meat": "Maso",
"meat_steam": "Maso připravované v páře",
"meat_steam": "Maso v páře",
"multi_level": "Víceúrovňové",
"paella": "Paella",
"pasta_and_bakery": "Těstoviny a pečivo",
@ -501,7 +507,7 @@
"pyrolysis": "Pyrolýza",
"pyrolysis_plus": "Pyrolýza +",
"red_meat": "Tmavé maso",
"red_meat_steam": "Červené maso připravované v páře",
"red_meat_steam": "Červené maso vařené v páře",
"regenerate": "Regenerace",
"soft_plus": "Soft +",
"super_grill": "Super gril",
@ -511,9 +517,9 @@
"vegetables": "Zelenina",
"vegetables_cata": "Zelenina",
"vegetables_pyro": "Zelenina",
"water_discharge": "Odtok vody",
"water_discharge": "Vypouštění vody",
"white_meat": "Bílé maso",
"white_meat_steam": "Bílé maso připravované v páře"
"white_meat_steam": "Bílé maso vařené v páře"
},
"name": "Program"
},
@ -570,7 +576,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rychlý 20",
"hqd_quick_30": "Rychlý 30",
"hqd_quick_dry": "Rychlé sušení",
"hqd_quick_dry": "Rychlé sušení 30",
"hqd_quilt": "Deky",
"hqd_refresh": "Osvěžení",
"hqd_school_uniform": "Školní uniformy",
@ -1050,6 +1056,15 @@
},
"remaining_time": {
"name": "Zbývající čas"
},
"ref_zones": {
"state": {
"fridge": "Chladnička",
"freezer": "Mraznička",
"vtroom1": "My Zone",
"fridge_freezer": "Chladnička & Mraznička"
},
"name": "Zóna"
}
},
"switch": {
@ -1093,7 +1108,7 @@
"name": "Trouba"
},
"prewash": {
"name": "Předpírka\r\r\r\r\r\r\n"
"name": "Předpírka\r\r\r\r\r\r\r\n"
},
"pause": {
"name": "Pozastavit"
@ -1157,6 +1172,9 @@
},
"super_freeze": {
"name": "Super Freeze"
},
"refrigerator": {
"name": "Chladnička"
}
},
"binary_sensor": {
@ -1227,7 +1245,7 @@
"name": "Zapnout"
},
"prewash": {
"name": "Předpírka\r\r\r\r\r\r\n"
"name": "Předpírka\r\r\r\r\r\r\r\n"
},
"acqua_plus": {
"name": "Aquaplus"
@ -1301,11 +1319,105 @@
"button": {
"induction_hob": {
"name": "Indukční varná deska"
},
"start_program": {
"name": "Program Zahájení"
},
"stop_program": {
"name": "Program Zastavit"
}
},
"climate": {
"air_conditioner": {
"name": "Klimatizační jednotka"
},
"fridge": {
"name": "Chladnička",
"state_attributes": {
"preset_mode": {
"name": "Režimy chladničky",
"state": {
"auto_set": "Automatické nastavení",
"super_cool": "Super Cool",
"holiday": "Holiday",
"no_mode": "Není vybrán žádný režim"
}
}
}
},
"freezer": {
"name": "Mraznička",
"state_attributes": {
"preset_mode": {
"name": "Režimy mrazničky",
"state": {
"auto_set": "Automatické nastavení",
"super_freeze": "Super Freeze",
"no_mode": "Není vybrán žádný režim"
}
}
}
},
"oven": {
"name": "Trouba",
"state_attributes": {
"preset_mode": {
"name": "Programy",
"state": {
"bakery": "Těstoviny a pečivo",
"bakery_steam": "Pára v troubě",
"bottom_heating": "Spodní ohřev",
"bottom_heating_fan": "Spodní ohřev + ventilátor",
"bread": "Chléb",
"bread_steam": "Chléb pečený v páře",
"combi": "Combi",
"convection_fan": "Statický + ventilátor",
"convection_fan_turnspit": "Konvekce + ventilátor + rožeň",
"conventional": "Statický",
"conventional_turnspit": "Konvekce + rožeň",
"defrost": "Rozmrazování",
"descaling": "Odstraňování vodního kamene",
"fish": "Ryby",
"fish_steam": "Ryby v páře",
"grill_cata": "Gril",
"grill_fan_cata": "Ventilátor grilu",
"grill_fan_pyro": "Gril + ventilátor",
"grill_pyro": "Gril",
"h20_clean": "H2O-Clean",
"iot_bread": "Chléb",
"iot_h20_clean": "h2O clean",
"leavening": "Kynutí",
"low_temp_cooking": "Příprava při nízkých teplotách",
"low_temp_cooking_fish": "Příprava při nízkých teplotách ryby",
"low_temp_cooking_fish_steam": "Příprava při nízkých teplotách ryby v páře",
"low_temp_cooking_meat": "Příprava při nízkých teplotách maso",
"low_temp_cooking_meat_steam": "Příprava při nízkých teplotách - dušené maso",
"low_temp_cooking_steam": "Příprava v páře při nízkých teplotách",
"meat": "Maso",
"meat_steam": "Maso v páře",
"multi_level": "Víceúrovňové",
"paella": "Paella",
"pasta_and_bakery": "Těstoviny a pečivo",
"pizza": "Pizza",
"pyrolysis": "Pyrolýza",
"pyrolysis_plus": "Pyrolýza +",
"red_meat": "Tmavé maso",
"red_meat_steam": "Červené maso vařené v páře",
"regenerate": "Regenerace",
"soft_plus": "Soft +",
"super_grill": "Super gril",
"tailor_bake": "Tailor bake",
"tailor_bake_cata": "Tailor Bake",
"tailor_bake_pyro": "Tailor Bake",
"vegetables": "Zelenina",
"vegetables_cata": "Zelenina",
"vegetables_pyro": "Zelenina",
"water_discharge": "Vypouštění vody",
"white_meat": "Bílé maso",
"white_meat_steam": "Bílé maso vařené v páře"
}
}
}
}
}
},

View File

@ -225,7 +225,7 @@
"hqd_precious_cure": "Precious Cure",
"hqd_quick_20": "Schnell 20",
"hqd_quick_30": "Schnell 30",
"hqd_quick_dry": "Schnell trocken",
"hqd_quick_dry": "Schnell trocken 30",
"hqd_quilt": "Steppdecken",
"hqd_refresh": "Auffrischen",
"hqd_school_uniform": "Schuluniform",
@ -409,6 +409,11 @@
"silent": "Nacht",
"silent_care": "Silent Care",
"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",
"special_pw_prz": "spezial",
"steam": "Dampf 75 °C",
@ -465,11 +470,12 @@
"programs_ov": {
"state": {
"bakery": "Teigwaren und Brot",
"bakery_steam": "Mit Dampf gebackenes Brot",
"bakery_steam": "Dampf im Backofen",
"bottom_heating": "Unterhitze",
"bottom_heating_fan": "Unterhitze + Umluft",
"bread": "Brot",
"bread_steam": "Mit Dampf gebackenes Gebäck",
"bread_steam": "Mit Dampf gebackenes Brot",
"combi": "Combi",
"convection_fan": "Umluft",
"convection_fan_turnspit": "Heißluft + Drehspieß",
"conventional": "Ober-Unterhitze",
@ -477,7 +483,7 @@
"defrost": "Auftauen",
"descaling": "Entkalkung",
"fish": "Fisch",
"fish_steam": "Dampfgegarter Fisch",
"fish_steam": "Gedünsteter Fisch",
"grill_cata": "Grill",
"grill_fan_cata": "Grill Umluft",
"grill_fan_pyro": "Grill + Umluft",
@ -488,12 +494,12 @@
"leavening": "Aufgehen",
"low_temp_cooking": "Garen bei niedriger Temperatur",
"low_temp_cooking_fish": "Garen bei niedriger Temperatur - Fisch",
"low_temp_cooking_fish_steam": "Dampfgaren bei niedriger Temperatur - Fisch",
"low_temp_cooking_fish_steam": "Niedertemperaturgaren - Gedünsteter Fisch",
"low_temp_cooking_meat": "Garen bei niedriger Temperatur - Fleisch",
"low_temp_cooking_meat_steam": "Niedertemperatur-Dampfgaren - Fleisch",
"low_temp_cooking_meat_steam": "Niedertemperaturgaren - Gedämpftes Fleisch",
"low_temp_cooking_steam": "Niedertemperatur-Dampfgaren",
"meat": "Fleisch",
"meat_steam": "Dampfgegartes Fleisch",
"meat_steam": "Fleisch Dampf",
"multi_level": "Multi-Level",
"paella": "Paella",
"pasta_and_bakery": "Teigwaren und Brot",
@ -501,8 +507,8 @@
"pyrolysis": "Pyrolyse",
"pyrolysis_plus": "Pyrolyse +",
"red_meat": "Rotes Fleisch",
"red_meat_steam": "Dampfgegartes rotes Fleisch",
"regenerate": "Regeneration",
"red_meat_steam": "Gedünstetes rotes Fleisch",
"regenerate": "Regenerieren",
"soft_plus": "Soft+",
"super_grill": "Super Grill",
"tailor_bake": "Tailor bake",
@ -513,7 +519,7 @@
"vegetables_pyro": "Gemüse",
"water_discharge": "Wasserabfluss",
"white_meat": "Weißes Fleisch",
"white_meat_steam": "Dampfgegartes weißes Fleisch"
"white_meat_steam": "Gedämpftes weißes Fleisch"
},
"name": "Programm"
},
@ -570,7 +576,7 @@
"hqd_precious_cure": "Precious Cure",
"hqd_quick_20": "Schnell 20",
"hqd_quick_30": "Schnell 30",
"hqd_quick_dry": "Schnell trocken",
"hqd_quick_dry": "Schnell trocken 30",
"hqd_quilt": "Steppdecken",
"hqd_refresh": "Auffrischen",
"hqd_school_uniform": "Schuluniform",
@ -1050,6 +1056,15 @@
},
"remaining_time": {
"name": "Verbleibende Zeit"
},
"ref_zones": {
"state": {
"fridge": "Kühlschrank",
"freezer": "Gefrierschrank",
"vtroom1": "My Zone",
"fridge_freezer": "Kühlschrank & Gefrierschrank"
},
"name": "Zone"
}
},
"switch": {
@ -1157,6 +1172,9 @@
},
"super_freeze": {
"name": "Super Freeze"
},
"refrigerator": {
"name": "Kühlschrank"
}
},
"binary_sensor": {
@ -1301,11 +1319,105 @@
"button": {
"induction_hob": {
"name": "Induktionskochfeld"
},
"start_program": {
"name": "Programm Start"
},
"stop_program": {
"name": "Programm Stopp"
}
},
"climate": {
"air_conditioner": {
"name": "Klimaanlage"
},
"fridge": {
"name": "Kühlschrank",
"state_attributes": {
"preset_mode": {
"name": "Kühlschrank-Modi",
"state": {
"auto_set": "Auto-Set",
"super_cool": "Super Cool",
"holiday": "Holiday",
"no_mode": "Kein Modus ausgewählt"
}
}
}
},
"freezer": {
"name": "Gefrierschrank",
"state_attributes": {
"preset_mode": {
"name": "Gefrierschrank-Modi",
"state": {
"auto_set": "Auto-Set",
"super_freeze": "Super Freeze",
"no_mode": "Kein Modus ausgewählt"
}
}
}
},
"oven": {
"name": "Ofen",
"state_attributes": {
"preset_mode": {
"name": "Programme",
"state": {
"bakery": "Teigwaren und Brot",
"bakery_steam": "Dampf im Backofen",
"bottom_heating": "Unterhitze",
"bottom_heating_fan": "Unterhitze + Umluft",
"bread": "Brot",
"bread_steam": "Mit Dampf gebackenes Brot",
"combi": "Combi",
"convection_fan": "Umluft",
"convection_fan_turnspit": "Heißluft + Drehspieß",
"conventional": "Ober-Unterhitze",
"conventional_turnspit": "Ober-&Unterhitze + Bratspieß",
"defrost": "Auftauen",
"descaling": "Entkalkung",
"fish": "Fisch",
"fish_steam": "Gedünsteter Fisch",
"grill_cata": "Grill",
"grill_fan_cata": "Grill Umluft",
"grill_fan_pyro": "Grill + Umluft",
"grill_pyro": "Grill",
"h20_clean": "H2O-Clean",
"iot_bread": "Brot",
"iot_h20_clean": "h2O clean",
"leavening": "Aufgehen",
"low_temp_cooking": "Garen bei niedriger Temperatur",
"low_temp_cooking_fish": "Garen bei niedriger Temperatur - Fisch",
"low_temp_cooking_fish_steam": "Niedertemperaturgaren - Gedünsteter Fisch",
"low_temp_cooking_meat": "Garen bei niedriger Temperatur - Fleisch",
"low_temp_cooking_meat_steam": "Niedertemperaturgaren - Gedämpftes Fleisch",
"low_temp_cooking_steam": "Niedertemperatur-Dampfgaren",
"meat": "Fleisch",
"meat_steam": "Fleisch Dampf",
"multi_level": "Multi-Level",
"paella": "Paella",
"pasta_and_bakery": "Teigwaren und Brot",
"pizza": "Pizza",
"pyrolysis": "Pyrolyse",
"pyrolysis_plus": "Pyrolyse +",
"red_meat": "Rotes Fleisch",
"red_meat_steam": "Gedünstetes rotes Fleisch",
"regenerate": "Regenerieren",
"soft_plus": "Soft+",
"super_grill": "Super Grill",
"tailor_bake": "Tailor bake",
"tailor_bake_cata": "Tailor Bake",
"tailor_bake_pyro": "Tailor Bake",
"vegetables": "Gemüse",
"vegetables_cata": "Gemüse",
"vegetables_pyro": "Gemüse",
"water_discharge": "Wasserabfluss",
"white_meat": "Weißes Fleisch",
"white_meat_steam": "Gedämpftes weißes Fleisch"
}
}
}
}
}
},

View File

@ -225,7 +225,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Γρήγορα 20",
"hqd_quick_30": "Γρήγορα 30",
"hqd_quick_dry": "Γρήγορο στέγνωμα",
"hqd_quick_dry": "Γρήγορο στέγνωμα 30",
"hqd_quilt": "Παπλώματα",
"hqd_refresh": "Φρεσκάρισμα",
"hqd_school_uniform": "Σχολική στολή",
@ -409,6 +409,11 @@
"silent": "Νύχτα",
"silent_care": "Silent Care",
"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_pw_prz": "σπεσιαλ",
"steam": "ατμος 75°C",
@ -465,11 +470,12 @@
"programs_ov": {
"state": {
"bakery": "Ζυμαρικά και αρτοποιήματα",
"bakery_steam": "Ψωμί ατμού",
"bakery_steam": "Ατμός φούρνου",
"bottom_heating": "Κάτω στοιχείο",
"bottom_heating_fan": "Κάτω στοιχείο + ανεμιστήρας",
"bread": "Ψωμί",
"bread_steam": "Αρτοσκευάσματα ατμού",
"bread_steam": "Ψωμί ατμού",
"combi": "Combi",
"convection_fan": "Θερμοσ αερασ",
"convection_fan_turnspit": "Θερμός αέρας + Ανεμιστήρας + Σούβλα",
"conventional": "Ανω - κατω θερμανση",
@ -477,7 +483,7 @@
"defrost": "Απόψυξη",
"descaling": "Αφαλάτωση",
"fish": "Ψάρια",
"fish_steam": "Ψάρι στον ατμό",
"fish_steam": "Ψάρια στον ατμό",
"grill_cata": "Γκριλ",
"grill_fan_cata": "Ανεμιστήρας γκριλ",
"grill_fan_pyro": "Γκριλ + ανεμιστήρας",
@ -488,9 +494,9 @@
"leavening": "Ζυμωση",
"low_temp_cooking": "Μαγείρεμα σε χαμηλή θερμοκρασία",
"low_temp_cooking_fish": "Μαγείρεμα σε χαμηλή θερμοκρασία - Ψάρι",
"low_temp_cooking_fish_steam": "Μαγείρεμα με ατμό σε χαμηλή θερμοκρασία - Ψάρι",
"low_temp_cooking_fish_steam": "Μαγείρεμα σε χαμηλή θερμοκρασία - Ψάρια στον ατμό",
"low_temp_cooking_meat": "Μαγείρεμα σε χαμηλή θερμοκρασία - Κρέας",
"low_temp_cooking_meat_steam": "Μαγείρεμα με ατμό σε χαμηλή θερμοκρασία - Κρέας",
"low_temp_cooking_meat_steam": "Μαγείρεμα σε χαμηλή θερμοκρασία - Κρέας στον ατμό",
"low_temp_cooking_steam": "Μαγείρεμα με ατμό σε χαμηλή θερμοκρασία",
"meat": "Κρέας",
"meat_steam": "Κρέας στον ατμό",
@ -511,7 +517,7 @@
"vegetables": "Λαχανικά",
"vegetables_cata": "Λαχανικά",
"vegetables_pyro": "Λαχανικά",
"water_discharge": "Αποστράγγιση νερού",
"water_discharge": "Απόρριψη νερού",
"white_meat": "Λευκό κρέας",
"white_meat_steam": "Λευκό κρέας στον ατμό"
},
@ -570,7 +576,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Γρήγορα 20",
"hqd_quick_30": "Γρήγορα 30",
"hqd_quick_dry": "Γρήγορο στέγνωμα",
"hqd_quick_dry": "Γρήγορο στέγνωμα 30",
"hqd_quilt": "Παπλώματα",
"hqd_refresh": "Φρεσκάρισμα",
"hqd_school_uniform": "Σχολική στολή",
@ -1050,6 +1056,15 @@
},
"remaining_time": {
"name": "Χρόνος που απομένει"
},
"ref_zones": {
"state": {
"fridge": "Ψυγείο",
"freezer": "Καταψύκτης",
"vtroom1": "My Zone",
"fridge_freezer": "Ψυγείο & Καταψύκτης"
},
"name": "Ζώνη"
}
},
"switch": {
@ -1157,6 +1172,9 @@
},
"super_freeze": {
"name": "Super Freeze"
},
"refrigerator": {
"name": "Ψυγείο"
}
},
"binary_sensor": {
@ -1206,7 +1224,7 @@
"name": "Τηγάνι"
},
"remote_control": {
"name": "Τηλεχειριστήριο"
"name": "Daljinsko upravljanje"
},
"rinse_aid": {
"name": "Επίπεδο λαμπρυντικού"
@ -1301,11 +1319,105 @@
"button": {
"induction_hob": {
"name": "Επαγωγική εστία"
},
"start_program": {
"name": "Πρόγραμμα Εκκίνηση"
},
"stop_program": {
"name": "Πρόγραμμα Διακοπή"
}
},
"climate": {
"air_conditioner": {
"name": "Κλιματιστικό"
},
"fridge": {
"name": "Ψυγείο",
"state_attributes": {
"preset_mode": {
"name": "Λειτουργίες ψυγείου",
"state": {
"auto_set": "Αυτόματη ρύθμιση",
"super_cool": "Super Cool",
"holiday": "Holiday",
"no_mode": "Δεν επιλέχθηκε λειτουργία"
}
}
}
},
"freezer": {
"name": "Καταψύκτης",
"state_attributes": {
"preset_mode": {
"name": "Λειτουργίες κατάψυξης",
"state": {
"auto_set": "Αυτόματη ρύθμιση",
"super_freeze": "Super Freeze",
"no_mode": "Δεν επιλέχθηκε λειτουργία"
}
}
}
},
"oven": {
"name": "Φούρνος",
"state_attributes": {
"preset_mode": {
"name": "Προγράμματα",
"state": {
"bakery": "Ζυμαρικά και αρτοποιήματα",
"bakery_steam": "Ατμός φούρνου",
"bottom_heating": "Κάτω στοιχείο",
"bottom_heating_fan": "Κάτω στοιχείο + ανεμιστήρας",
"bread": "Ψωμί",
"bread_steam": "Ψωμί ατμού",
"combi": "Combi",
"convection_fan": "Θερμοσ αερασ",
"convection_fan_turnspit": "Θερμός αέρας + Ανεμιστήρας + Σούβλα",
"conventional": "Ανω - κατω θερμανση",
"conventional_turnspit": "Θερμός αέρας + Σούβλα",
"defrost": "Απόψυξη",
"descaling": "Αφαλάτωση",
"fish": "Ψάρια",
"fish_steam": "Ψάρια στον ατμό",
"grill_cata": "Γκριλ",
"grill_fan_cata": "Ανεμιστήρας γκριλ",
"grill_fan_pyro": "Γκριλ + ανεμιστήρας",
"grill_pyro": "Γκριλ",
"h20_clean": "H2O-Clean",
"iot_bread": "Ψωμί",
"iot_h20_clean": "h2O clean",
"leavening": "Ζυμωση",
"low_temp_cooking": "Μαγείρεμα σε χαμηλή θερμοκρασία",
"low_temp_cooking_fish": "Μαγείρεμα σε χαμηλή θερμοκρασία - Ψάρι",
"low_temp_cooking_fish_steam": "Μαγείρεμα σε χαμηλή θερμοκρασία - Ψάρια στον ατμό",
"low_temp_cooking_meat": "Μαγείρεμα σε χαμηλή θερμοκρασία - Κρέας",
"low_temp_cooking_meat_steam": "Μαγείρεμα σε χαμηλή θερμοκρασία - Κρέας στον ατμό",
"low_temp_cooking_steam": "Μαγείρεμα με ατμό σε χαμηλή θερμοκρασία",
"meat": "Κρέας",
"meat_steam": "Κρέας στον ατμό",
"multi_level": "Πολλαπλων Επιπεδων",
"paella": "Paella",
"pasta_and_bakery": "Ζυμαρικά και αρτοποιήματα",
"pizza": "Pizza",
"pyrolysis": "Πυρόλυση",
"pyrolysis_plus": "Πυρόλυση +",
"red_meat": "Κόκκινο κρέας",
"red_meat_steam": "Κόκκινο κρέας στον ατμό",
"regenerate": "Αναζωογόνηση",
"soft_plus": "Μαλακό +",
"super_grill": "Σούπερ γκριλ",
"tailor_bake": "Tailor bake",
"tailor_bake_cata": "Tailor Bake",
"tailor_bake_pyro": "Tailor Bake",
"vegetables": "Λαχανικά",
"vegetables_cata": "Λαχανικά",
"vegetables_pyro": "Λαχανικά",
"water_discharge": "Απόρριψη νερού",
"white_meat": "Λευκό κρέας",
"white_meat_steam": "Λευκό κρέας στον ατμό"
}
}
}
}
}
},

View File

@ -263,7 +263,7 @@
"hqd_bed_sheets": "Bed Sheets",
"hqd_bulky": "Bulky Items",
"hqd_casual": "Casual",
"hqd_cold_wind_30": "Cool Breeze 30 minutes",
"hqd_cold_wind_30": "Cool Breeze 30m",
"hqd_cold_wind_timing": "Cool Breeze ",
"hqd_cotton": "Cotton",
"hqd_curtain": "Curtains",
@ -282,9 +282,9 @@
"hqd_night_dry": "Overnight drying",
"hqd_outdoor": "Outdoor",
"hqd_precious_cure": "Precious Cure",
"hqd_quick_20": "Quick 20",
"hqd_quick_30": "Quick 30",
"hqd_quick_dry": "Quick dry",
"hqd_quick_20": "Quick 20m",
"hqd_quick_30": "Quick 30m",
"hqd_quick_dry": "Quick dry (30 min)",
"hqd_quilt": "Quilts",
"hqd_refresh": "Refresh",
"hqd_school_uniform": "School Uniform",
@ -322,7 +322,7 @@
"iot_dry_lingerie": "Lingerie",
"iot_dry_mixed": "Mixed",
"iot_dry_playsuits": "Playsuits",
"iot_dry_rapid_30": "Rapid 30",
"iot_dry_rapid_30": "Rapid 30m",
"iot_dry_rapid_59": "Rapid 59'",
"iot_dry_refresh": "Refresh",
"iot_dry_regenerates_waterproof": "Regenerates Waterproof",
@ -485,6 +485,9 @@
},
"super_freeze": {
"name": "Super Freeze"
},
"refrigerator": {
"name": "Refrigerator"
}
},
"select": {
@ -508,9 +511,9 @@
"59_min": "Rapid 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Auto Hygiene",
"auto_plus": "AutoPlus",
"auto_rapid": "Auto Rapid",
"auto_plus_soil": "Auto Plus Soil",
"auto_rapid_soil": "Auto rapid Soil",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Auto Universal 50 - 60°C",
@ -554,7 +557,7 @@
"iot_eco_bldc": "Eco 45°C",
"iot_eco_synch": "Eco 45°C",
"iot_extra_hygiene": "Extra Hygiene",
"iot_fairy_quick_cycle": "Fairy Short",
"iot_fairy_quick_cycle": "Fairy Quick",
"iot_happy_hour": "Happy Hour",
"iot_jar_quick_cycle": "Jar Quick",
"iot_party": "Party",
@ -593,7 +596,10 @@
"silent_care": "Silent Care",
"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",
"special_pw_prz": "Special",
"steam": "Steam 75°C",
@ -650,21 +656,21 @@
},
"programs_ov": {
"state": {
"bakery": "Pasta and Pastries",
"bakery_steam": "Steam-baked bread",
"bakery": "Pasta and Bakery",
"bakery_steam": "Steam oven",
"bottom_heating": "Bottom Heating",
"bottom_heating_fan": "Bottom Heating + Fan",
"bread": "Bread",
"bread_steam": "Steam-baked pastries",
"bread_steam": "Steam baked bread",
"combi": "Combi",
"convection_fan": "Convection + Fan",
"convection_fan_turnspit": "Convection + Fan + Turnspit",
"conventional": "Conventional",
"conventional_turnspit": "Convection + Turnspit",
"defrost": "Defrost",
"defrost": "Defrosting",
"descaling": "Descaling",
"fish": "Fish",
"fish_steam": "Steam-cooked fish",
"fish_steam": "Steamed fish",
"grill_cata": "Grill",
"grill_fan_cata": "Grill fan",
"grill_fan_pyro": "Grill + Fan",
@ -673,16 +679,15 @@
"iot_bread": "Bread",
"iot_h20_clean": "h2O clean",
"leavening": "Leavening",
"light_fan": "Light Fan",
"light_fan\n": "Light Fan",
"low_temp_cooking": "Low Temperature Cooking",
"low_temp_cooking_fish": "Low Temperature Cooking - Fish",
"low_temp_cooking_fish_steam": "Low Temperature Steam Cooking - Fish",
"low_temp_cooking_fish_steam": "Low Temperature Cooking - Steamed fish",
"low_temp_cooking_meat": "Low Temperature Cooking - Meat",
"low_temp_cooking_meat_steam": "Low Temperature Steam Cooking - Meat",
"low_temp_cooking_meat_steam": "Low Temperature Cooking - Steamed meat",
"low_temp_cooking_steam": "Low Temperature Steam Cooking",
"meat": "Meat",
"meat_steam": "Steam-cooked meat",
"meat_steam": "Steamed meat",
"multi_level": "Multi-Level",
"paella": "Paella",
"pasta_and_bakery": "Pasta and Bakery",
@ -690,8 +695,8 @@
"pyrolysis": "Pyrolysis",
"pyrolysis_plus": "Pyrolysis +",
"red_meat": "Red Meat",
"red_meat_steam": "Steam-cooked red meat",
"regenerate": "Regeneration",
"red_meat_steam": "Steamed red meat",
"regenerate": "Regenerate",
"soft_plus": "Soft+",
"super_grill": "Super Grill",
"tailor_bake": "Tailor bake",
@ -700,9 +705,9 @@
"vegetables": "Vegetables",
"vegetables_cata": "Vegetables",
"vegetables_pyro": "Vegetables",
"water_discharge": "Water Drain",
"water_discharge": "Water Discharge",
"white_meat": "White Meat",
"white_meat_steam": "Steam-cooked white meat"
"white_meat_steam": "Steamed white meat"
},
"name": "Program"
},
@ -738,7 +743,7 @@
"hqd_bed_sheets": "Bed Sheets",
"hqd_bulky": "Bulky Items",
"hqd_casual": "Casual",
"hqd_cold_wind_30": "Cool Breeze 30 minutes",
"hqd_cold_wind_30": "Cool Breeze 30m",
"hqd_cold_wind_timing": "Cool Breeze ",
"hqd_cotton": "Cotton",
"hqd_curtain": "Curtains",
@ -757,9 +762,9 @@
"hqd_night_dry": "Overnight drying",
"hqd_outdoor": "Outdoor",
"hqd_precious_cure": "Precious Cure",
"hqd_quick_20": "Quick 20",
"hqd_quick_30": "Quick 30",
"hqd_quick_dry": "Quick dry",
"hqd_quick_20": "Quick 20m",
"hqd_quick_30": "Quick 30m",
"hqd_quick_dry": "Quick dry (30 min)",
"hqd_quilt": "Quilts",
"hqd_refresh": "Refresh",
"hqd_school_uniform": "School Uniform",
@ -797,7 +802,7 @@
"iot_dry_lingerie": "Lingerie",
"iot_dry_mixed": "Mixed",
"iot_dry_playsuits": "Playsuits",
"iot_dry_rapid_30": "Rapid 30",
"iot_dry_rapid_30": "Rapid 30m",
"iot_dry_rapid_59": "Rapid 59'",
"iot_dry_refresh": "Refresh",
"iot_dry_regenerates_waterproof": "Regenerates Waterproof",
@ -856,7 +861,7 @@
"all_in_one_59": "All in One 59'",
"all_in_one_59_steam": "Active Wash + Steam",
"autocare": "Autocare",
"autoclean": "Drum Cleaning",
"autoclean": "Drum cleaning and descaling ",
"baby_60": "All Baby 60°C",
"care_14": "Rapid Care 14'",
"care_30": "Rapid Care 30'",
@ -1225,6 +1230,15 @@
},
"remaining_time": {
"name": "Time remaining"
},
"ref_zones": {
"state": {
"fridge": "Fridge",
"freezer": "Freezer",
"vtroom1": "My Zone",
"fridge_freezer": "Fridge & Freezer"
},
"name": "Zone"
}
},
"binary_sensor": {
@ -1369,11 +1383,106 @@
"button": {
"induction_hob": {
"name": "Induction Hob"
},
"start_program": {
"name": "Program Start"
},
"stop_program": {
"name": "Program Stop"
}
},
"climate": {
"air_conditioner": {
"name": "Air conditioner"
},
"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": {
"bakery": "Pasta and Bakery",
"bakery_steam": "Steam oven",
"bottom_heating": "Bottom Heating",
"bottom_heating_fan": "Bottom Heating + Fan",
"bread": "Bread",
"bread_steam": "Steam baked bread",
"combi": "Combi",
"convection_fan": "Convection + Fan",
"convection_fan_turnspit": "Convection + Fan + Turnspit",
"conventional": "Conventional",
"conventional_turnspit": "Convection + Turnspit",
"defrost": "Defrosting",
"descaling": "Descaling",
"fish": "Fish",
"fish_steam": "Steamed fish",
"grill_cata": "Grill",
"grill_fan_cata": "Grill fan",
"grill_fan_pyro": "Grill + Fan",
"grill_pyro": "Grill",
"h20_clean": "H2O-Clean",
"iot_bread": "Bread",
"iot_h20_clean": "h2O clean",
"leavening": "Leavening",
"light_fan\n": "Light Fan",
"low_temp_cooking": "Low Temperature Cooking",
"low_temp_cooking_fish": "Low Temperature Cooking - Fish",
"low_temp_cooking_fish_steam": "Low Temperature Cooking - Steamed fish",
"low_temp_cooking_meat": "Low Temperature Cooking - Meat",
"low_temp_cooking_meat_steam": "Low Temperature Cooking - Steamed meat",
"low_temp_cooking_steam": "Low Temperature Steam Cooking",
"meat": "Meat",
"meat_steam": "Steamed meat",
"multi_level": "Multi-Level",
"paella": "Paella",
"pasta_and_bakery": "Pasta and Bakery",
"pizza": "Pizza",
"pyrolysis": "Pyrolysis",
"pyrolysis_plus": "Pyrolysis +",
"red_meat": "Red Meat",
"red_meat_steam": "Steamed red meat",
"regenerate": "Regenerate",
"soft_plus": "Soft+",
"super_grill": "Super Grill",
"tailor_bake": "Tailor bake",
"tailor_bake_cata": "Tailor Bake",
"tailor_bake_pyro": "Tailor Bake",
"vegetables": "Vegetables",
"vegetables_cata": "Vegetables",
"vegetables_pyro": "Vegetables",
"water_discharge": "Water Discharge",
"white_meat": "White Meat",
"white_meat_steam": "Steamed white meat"
}
}
}
}
}
}

View File

@ -225,7 +225,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rápido 20",
"hqd_quick_30": "Rápido 30",
"hqd_quick_dry": "Secado rápido",
"hqd_quick_dry": "Secado rápido 30",
"hqd_quilt": "Colchas",
"hqd_refresh": "Refrescar",
"hqd_school_uniform": "Uniformes escolares",
@ -409,6 +409,11 @@
"silent": "Noche",
"silent_care": "Silent Care",
"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",
"special_pw_prz": "Especial",
"steam": "Vapor 75 °C",
@ -465,15 +470,16 @@
"programs_ov": {
"state": {
"bakery": "Pasta y Panadería",
"bakery_steam": "Pan al vapor",
"bakery_steam": "Oven steam",
"bottom_heating": "Calentamiento Inferior",
"bottom_heating_fan": "Calentamiento Inferior + Ventilador",
"bread": "Pan",
"bread_steam": "Bollería al vapor",
"bread_steam": "Pan al vapor",
"combi": "Combi",
"convection_fan": "Convección + Ventilador",
"convection_fan_turnspit": "Convección + Ventilador + Rustepollos",
"convection_fan_turnspit": "Asador giratorio convencional ventilada",
"conventional": "Convección",
"conventional_turnspit": "Convección + Rustepollos",
"conventional_turnspit": "Asador giratorio convencional",
"defrost": "Descongelación",
"descaling": "Descalcificación",
"fish": "Pescado",
@ -487,13 +493,13 @@
"iot_h20_clean": "h2O clean",
"leavening": "Fermentación",
"low_temp_cooking": "Cocción a baja temperatura",
"low_temp_cooking_fish": "Cocción a baja temperatura - Pescado",
"low_temp_cooking_fish_steam": "Cocción al vapor a baja temperatura - Pescado",
"low_temp_cooking_meat": "Cocción a baja temperatura - Carne",
"low_temp_cooking_meat_steam": "Cocción al vapor a baja temperatura - Carne",
"low_temp_cooking_steam": "Cocción al vapor a baja temperatura",
"low_temp_cooking_fish": "Cocción a baja temperatura Pescado",
"low_temp_cooking_fish_steam": "Cocción a baja temperatura Pescado",
"low_temp_cooking_meat": "Cocción a baja temperatura Carne",
"low_temp_cooking_meat_steam": "Cocción a baja temperatura Carne al vapor",
"low_temp_cooking_steam": "Cocción a baja temperatura al vapor",
"meat": "Carne",
"meat_steam": "Carne al vapor",
"meat_steam": "Meat steam",
"multi_level": "Múltiples niveles",
"paella": "Paella",
"pasta_and_bakery": "Pasta y Panadería",
@ -502,7 +508,7 @@
"pyrolysis_plus": "Pirólisis +",
"red_meat": "Carne roja",
"red_meat_steam": "Carne roja al vapor",
"regenerate": "Regeneración",
"regenerate": "Regenerar",
"soft_plus": "Soft+",
"super_grill": "Super Grill",
"tailor_bake": "Tailor bake",
@ -511,7 +517,7 @@
"vegetables": "Verduras",
"vegetables_cata": "Verduras",
"vegetables_pyro": "Verdura",
"water_discharge": "Drenaje del agua",
"water_discharge": "Descarga de agua",
"white_meat": "Carne blanca",
"white_meat_steam": "Carne blanca al vapor"
},
@ -570,7 +576,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rápido 20",
"hqd_quick_30": "Rápido 30",
"hqd_quick_dry": "Secado rápido",
"hqd_quick_dry": "Secado rápido 30",
"hqd_quilt": "Colchas",
"hqd_refresh": "Refrescar",
"hqd_school_uniform": "Uniformes escolares",
@ -1050,6 +1056,15 @@
},
"remaining_time": {
"name": "Tiempo restante"
},
"ref_zones": {
"state": {
"fridge": "Frigorífico",
"freezer": "Congelador",
"vtroom1": "My Zone",
"fridge_freezer": "Frigorífico & Congelador"
},
"name": "Zona"
}
},
"switch": {
@ -1157,6 +1172,9 @@
},
"super_freeze": {
"name": "Super Freeze"
},
"refrigerator": {
"name": "Frigorífico"
}
},
"binary_sensor": {
@ -1206,7 +1224,7 @@
"name": "Sartén"
},
"remote_control": {
"name": "Control remoto"
"name": "Τηλεχειριστήριο"
},
"rinse_aid": {
"name": "Nivel del agente de enjuague"
@ -1301,11 +1319,105 @@
"button": {
"induction_hob": {
"name": "Placa de inducción"
},
"start_program": {
"name": "Programa Inicio"
},
"stop_program": {
"name": "Programa Detener"
}
},
"climate": {
"air_conditioner": {
"name": "Aire acondicionado"
},
"fridge": {
"name": "Frigorífico",
"state_attributes": {
"preset_mode": {
"name": "Modos de frigorífico",
"state": {
"auto_set": "Auto-Set",
"super_cool": "Super Cool",
"holiday": "Holiday",
"no_mode": "No se ha seleccionado ningún modo"
}
}
}
},
"freezer": {
"name": "Congelador",
"state_attributes": {
"preset_mode": {
"name": "Modos congelador",
"state": {
"auto_set": "Auto-Set",
"super_freeze": "Super Freeze",
"no_mode": "No se ha seleccionado ningún modo"
}
}
}
},
"oven": {
"name": "Horno",
"state_attributes": {
"preset_mode": {
"name": "Programas",
"state": {
"bakery": "Pasta y Panadería",
"bakery_steam": "Oven steam",
"bottom_heating": "Calentamiento Inferior",
"bottom_heating_fan": "Calentamiento Inferior + Ventilador",
"bread": "Pan",
"bread_steam": "Pan al vapor",
"combi": "Combi",
"convection_fan": "Convección + Ventilador",
"convection_fan_turnspit": "Asador giratorio convencional ventilada",
"conventional": "Convección",
"conventional_turnspit": "Asador giratorio convencional",
"defrost": "Descongelación",
"descaling": "Descalcificación",
"fish": "Pescado",
"fish_steam": "Pescado al vapor",
"grill_cata": "Grill",
"grill_fan_cata": "Grill y ventilador",
"grill_fan_pyro": "Grill + Ventilador",
"grill_pyro": "Grill",
"h20_clean": "H2O-Clean",
"iot_bread": "Pan",
"iot_h20_clean": "h2O clean",
"leavening": "Fermentación",
"low_temp_cooking": "Cocción a baja temperatura",
"low_temp_cooking_fish": "Cocción a baja temperatura Pescado",
"low_temp_cooking_fish_steam": "Cocción a baja temperatura Pescado",
"low_temp_cooking_meat": "Cocción a baja temperatura Carne",
"low_temp_cooking_meat_steam": "Cocción a baja temperatura Carne al vapor",
"low_temp_cooking_steam": "Cocción a baja temperatura al vapor",
"meat": "Carne",
"meat_steam": "Meat steam",
"multi_level": "Múltiples niveles",
"paella": "Paella",
"pasta_and_bakery": "Pasta y Panadería",
"pizza": "Pizza",
"pyrolysis": "Pirólisis",
"pyrolysis_plus": "Pirólisis +",
"red_meat": "Carne roja",
"red_meat_steam": "Carne roja al vapor",
"regenerate": "Regenerar",
"soft_plus": "Soft+",
"super_grill": "Super Grill",
"tailor_bake": "Tailor bake",
"tailor_bake_cata": "Tailor Bake",
"tailor_bake_pyro": "Tailor Bake",
"vegetables": "Verduras",
"vegetables_cata": "Verduras",
"vegetables_pyro": "Verdura",
"water_discharge": "Descarga de agua",
"white_meat": "Carne blanca",
"white_meat_steam": "Carne blanca al vapor"
}
}
}
}
}
},

View File

@ -225,7 +225,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rapide 20",
"hqd_quick_30": "Rapide 30",
"hqd_quick_dry": "Séchage rapide",
"hqd_quick_dry": "Séchage rapide 30",
"hqd_quilt": "Couvertures",
"hqd_refresh": "Rafraîchissement",
"hqd_school_uniform": "Uniforme scolaire",
@ -409,6 +409,11 @@
"silent": "Nuit",
"silent_care": "Silent Care",
"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",
"special_pw_prz": "spécial",
"steam": "Vapeur 75 °C",
@ -465,19 +470,20 @@
"programs_ov": {
"state": {
"bakery": "Pâtes et pains",
"bakery_steam": "Pain cuit à la vapeur",
"bakery_steam": "Four à vapeur",
"bottom_heating": "Sole",
"bottom_heating_fan": "Sole brassée",
"bread": "Pain",
"bread_steam": "Pâtisseries cuites à la vapeur",
"bread_steam": "Pain àla vapeur",
"combi": "Combi",
"convection_fan": "Chaleur tournante",
"convection_fan_turnspit": "Convection + Ventilateur + Tournebroche",
"convection_fan_turnspit": "Tournebrocheà convection ventilée",
"conventional": "Convection naturelle",
"conventional_turnspit": "Convection + Tournebroche",
"conventional_turnspit": "Tournebroche conventionnel",
"defrost": "Décongélation",
"descaling": "Détartrage",
"fish": "Poisson",
"fish_steam": "Poisson cuit à la vapeur",
"fish_steam": "Poisson à la vapeur",
"grill_cata": "Gril",
"grill_fan_cata": "Turbogril",
"grill_fan_pyro": "Turbogril",
@ -487,13 +493,13 @@
"iot_h20_clean": "h2O clean",
"leavening": "Étuve",
"low_temp_cooking": "Cuisson à basse température",
"low_temp_cooking_fish": "Cuisson à basse température - Poisson",
"low_temp_cooking_fish_steam": "Cuisson à la vapeur à basse température - Poisson",
"low_temp_cooking_meat": "Cuisson à basse température - Viande",
"low_temp_cooking_meat_steam": "Cuisson à la vapeur à basse température - Viande",
"low_temp_cooking_steam": "Cuisson à la vapeur à basse température",
"low_temp_cooking_fish": "Cuisson à basse température Poisson",
"low_temp_cooking_fish_steam": "Cuisson à basse température Poisson à la vapeur",
"low_temp_cooking_meat": "Cuisson à basse température Viande",
"low_temp_cooking_meat_steam": "Cuisson à basse température Viande à la vapeur",
"low_temp_cooking_steam": "Cuisson à basse température à la vapeur",
"meat": "Viande",
"meat_steam": "Viande cuite à la vapeur",
"meat_steam": "Viande à la vapeur",
"multi_level": "Chaleur pulsée",
"paella": "Paella",
"pasta_and_bakery": "Pâtes et pains",
@ -501,8 +507,8 @@
"pyrolysis": "Pyrolyse",
"pyrolysis_plus": "Pyrolyse +",
"red_meat": "Viande rouge",
"red_meat_steam": "Viande rouge cuite à la vapeur",
"regenerate": "Régénération",
"red_meat_steam": "Viande rouge à la vapeur",
"regenerate": "Régénérer",
"soft_plus": "Soft+",
"super_grill": "Super Gril",
"tailor_bake": "Tailor bake",
@ -511,9 +517,9 @@
"vegetables": "Légumes",
"vegetables_cata": "Légumes",
"vegetables_pyro": "Légumes",
"water_discharge": "Vidange de leau",
"water_discharge": "Décharge d'eau",
"white_meat": "Viande blanche",
"white_meat_steam": "Viande blanche cuite à la vapeur"
"white_meat_steam": "Viande blanche à la vapeur"
},
"name": "Programme"
},
@ -570,7 +576,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rapide 20",
"hqd_quick_30": "Rapide 30",
"hqd_quick_dry": "Séchage rapide",
"hqd_quick_dry": "Séchage rapide 30",
"hqd_quilt": "Couvertures",
"hqd_refresh": "Rafraîchissement",
"hqd_school_uniform": "Uniforme scolaire",
@ -1050,6 +1056,15 @@
},
"remaining_time": {
"name": "Temps restant"
},
"ref_zones": {
"state": {
"fridge": "Réfrigérateur",
"freezer": "Congélateur",
"vtroom1": "My Zone",
"fridge_freezer": "Réfrigérateur & Congélateur"
},
"name": "Zone"
}
},
"switch": {
@ -1157,6 +1172,9 @@
},
"super_freeze": {
"name": "Super Freeze"
},
"refrigerator": {
"name": "Réfrigérateur"
}
},
"binary_sensor": {
@ -1301,11 +1319,105 @@
"button": {
"induction_hob": {
"name": "Table de cuisson à induction"
},
"start_program": {
"name": "Programme Démarrer"
},
"stop_program": {
"name": "Programme Arrêter"
}
},
"climate": {
"air_conditioner": {
"name": "Climatiseur"
},
"fridge": {
"name": "Réfrigérateur",
"state_attributes": {
"preset_mode": {
"name": "Modes réfrigérateur",
"state": {
"auto_set": "Réglage automatique",
"super_cool": "Super Cool",
"holiday": "Holiday",
"no_mode": "Aucun mode sélectionné"
}
}
}
},
"freezer": {
"name": "Congélateur",
"state_attributes": {
"preset_mode": {
"name": "Modes congélateur",
"state": {
"auto_set": "Réglage automatique",
"super_freeze": "Super Freeze",
"no_mode": "Aucun mode sélectionné"
}
}
}
},
"oven": {
"name": "Four",
"state_attributes": {
"preset_mode": {
"name": "Programmes",
"state": {
"bakery": "Pâtes et pains",
"bakery_steam": "Four à vapeur",
"bottom_heating": "Sole",
"bottom_heating_fan": "Sole brassée",
"bread": "Pain",
"bread_steam": "Pain àla vapeur",
"combi": "Combi",
"convection_fan": "Chaleur tournante",
"convection_fan_turnspit": "Tournebrocheà convection ventilée",
"conventional": "Convection naturelle",
"conventional_turnspit": "Tournebroche conventionnel",
"defrost": "Décongélation",
"descaling": "Détartrage",
"fish": "Poisson",
"fish_steam": "Poisson à la vapeur",
"grill_cata": "Gril",
"grill_fan_cata": "Turbogril",
"grill_fan_pyro": "Turbogril",
"grill_pyro": "Gril",
"h20_clean": "H2O-Clean",
"iot_bread": "Pain",
"iot_h20_clean": "h2O clean",
"leavening": "Étuve",
"low_temp_cooking": "Cuisson à basse température",
"low_temp_cooking_fish": "Cuisson à basse température Poisson",
"low_temp_cooking_fish_steam": "Cuisson à basse température Poisson à la vapeur",
"low_temp_cooking_meat": "Cuisson à basse température Viande",
"low_temp_cooking_meat_steam": "Cuisson à basse température Viande à la vapeur",
"low_temp_cooking_steam": "Cuisson à basse température à la vapeur",
"meat": "Viande",
"meat_steam": "Viande à la vapeur",
"multi_level": "Chaleur pulsée",
"paella": "Paella",
"pasta_and_bakery": "Pâtes et pains",
"pizza": "Pizza",
"pyrolysis": "Pyrolyse",
"pyrolysis_plus": "Pyrolyse +",
"red_meat": "Viande rouge",
"red_meat_steam": "Viande rouge à la vapeur",
"regenerate": "Régénérer",
"soft_plus": "Soft+",
"super_grill": "Super Gril",
"tailor_bake": "Tailor bake",
"tailor_bake_cata": "Tailor Bake",
"tailor_bake_pyro": "Tailor Bake",
"vegetables": "Légumes",
"vegetables_cata": "Légumes",
"vegetables_pyro": "Légumes",
"water_discharge": "Décharge d'eau",
"white_meat": "Viande blanche",
"white_meat_steam": "Viande blanche à la vapeur"
}
}
}
}
}
},

View File

@ -211,7 +211,8 @@
"iot_fairy_quick_cycle": "Fairy Quick",
"iot_jar_quick_cycle": "Jar Quick",
"iot_yes_quick_cycle": "Yes Quick",
"smart_ai": "Smart AI"
"smart_ai": "Smart AI",
"smart_ai_soil": "Smart AI"
},
"name": "Program"
},
@ -503,6 +504,15 @@
},
"remaining_time": {
"name": "זמן שנותר"
},
"ref_zones": {
"state": {
"fridge": "Fridge",
"freezer": "Freezer",
"vtroom1": "My Zone",
"fridge_freezer": "Fridge & Freezer"
},
"name": "Zone"
}
},
"switch": {
@ -610,6 +620,9 @@
},
"super_freeze": {
"name": "Super Freeze"
},
"refrigerator": {
"name": "Refrigerator"
}
},
"binary_sensor": {
@ -754,11 +767,57 @@
"button": {
"induction_hob": {
"name": "Induction Hob"
},
"start_program": {
"name": "Program Start"
},
"stop_program": {
"name": "Program Stop"
}
},
"climate": {
"air_conditioner": {
"name": "Air conditioner"
},
"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"
}
}
}
}
}
},

View File

@ -225,7 +225,7 @@
"hqd_precious_cure": "Precious Cure",
"hqd_quick_20": "Brzo 20",
"hqd_quick_30": "Brzo 30",
"hqd_quick_dry": "Brzo sušenje",
"hqd_quick_dry": "Brzo sušenje 30",
"hqd_quilt": "Popluni",
"hqd_refresh": "Protiv neugodnih mirisa",
"hqd_school_uniform": "Školska uniforma",
@ -409,6 +409,11 @@
"silent": "Noć",
"silent_care": "Silent Care",
"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",
"special_pw_prz": "Posebno",
"steam": "Steam (Para) 75 °C",
@ -465,11 +470,12 @@
"programs_ov": {
"state": {
"bakery": "Tjestenina i tijesta",
"bakery_steam": "Kruh pečen na pari",
"bakery_steam": "Para u pećnici",
"bottom_heating": "Donji grijač",
"bottom_heating_fan": "Donji grijač + Ventilator",
"bread": "Kruh",
"bread_steam": "Peciva pečena na pari",
"bread_steam": "Kruh pečen na pari",
"combi": "Combi",
"convection_fan": "Konvekcija + Ventilator",
"convection_fan_turnspit": "Konvekcija + ventilator + ražanj",
"conventional": "Konvekcijska",
@ -477,7 +483,7 @@
"defrost": "Odmrzavanje",
"descaling": "Uklanjanje kamenca",
"fish": "Riba",
"fish_steam": "Riba kuhana na pari",
"fish_steam": "Riba na pari",
"grill_cata": "Pečenje",
"grill_fan_cata": "Ventilator za pečenje",
"grill_fan_pyro": "Grijač + ventilator",
@ -488,12 +494,12 @@
"leavening": "Dizanje tijesta",
"low_temp_cooking": "Kuhanje na niskoj temperaturi",
"low_temp_cooking_fish": "Kuhanje na niskoj temperaturi - riba",
"low_temp_cooking_fish_steam": "Kuhanje na pari i na niskoj temperaturi - riba",
"low_temp_cooking_fish_steam": "Kuhanje na niskoj temperaturi - riba na pari",
"low_temp_cooking_meat": "Kuhanje na niskoj temperaturi - meso",
"low_temp_cooking_meat_steam": "Kuhanje na pari i na niskoj temperaturi - meso",
"low_temp_cooking_meat_steam": "Kuhanje na niskoj temperaturi - meso na pari",
"low_temp_cooking_steam": "Kuhanje na pari i na niskoj temperaturi",
"meat": "Meso",
"meat_steam": "Meso kuhano na pari",
"meat_steam": "Meso na pari",
"multi_level": "Više razina",
"paella": "Paella",
"pasta_and_bakery": "Tjestenina i tijesta",
@ -501,7 +507,7 @@
"pyrolysis": "Piroliza",
"pyrolysis_plus": "Piroliza +",
"red_meat": "Crveno meso",
"red_meat_steam": "Crveno meso kuhano na pari",
"red_meat_steam": "Kuhano crveno meso",
"regenerate": "Regeneracija",
"soft_plus": "Mekano+",
"super_grill": "Super roštilj",
@ -511,9 +517,9 @@
"vegetables": "Povrće",
"vegetables_cata": "Povrće",
"vegetables_pyro": "Povrće",
"water_discharge": "Odvod vode",
"water_discharge": "Ispuštanje vode",
"white_meat": "Bijelo meso",
"white_meat_steam": "Bijelo meso kuhano na pari"
"white_meat_steam": "Kuhano bijelo meso na pari"
},
"name": "Program"
},
@ -570,7 +576,7 @@
"hqd_precious_cure": "Precious Cure",
"hqd_quick_20": "Brzo 20",
"hqd_quick_30": "Brzo 30",
"hqd_quick_dry": "Brzo sušenje",
"hqd_quick_dry": "Brzo sušenje 30",
"hqd_quilt": "Popluni",
"hqd_refresh": "Protiv neugodnih mirisa",
"hqd_school_uniform": "Školska uniforma",
@ -1050,6 +1056,15 @@
},
"remaining_time": {
"name": "Preostalo vrijeme"
},
"ref_zones": {
"state": {
"fridge": "Hladnjak",
"freezer": "Zamrzivač",
"vtroom1": "My Zone",
"fridge_freezer": "Hladnjak & Zamrzivač"
},
"name": "Zona"
}
},
"switch": {
@ -1157,6 +1172,9 @@
},
"super_freeze": {
"name": "Super Freeze"
},
"refrigerator": {
"name": "Hladnjak"
}
},
"binary_sensor": {
@ -1206,7 +1224,7 @@
"name": "Tava"
},
"remote_control": {
"name": "Upravljanje na daljinu"
"name": "Daljinski upravljač"
},
"rinse_aid": {
"name": "Razina sredstva za ispiranje"
@ -1301,11 +1319,105 @@
"button": {
"induction_hob": {
"name": "Indukcijska ploča za kuhanje"
},
"start_program": {
"name": "Program Početak"
},
"stop_program": {
"name": "Program Zaustavi"
}
},
"climate": {
"air_conditioner": {
"name": "Klimatizacijski uređaj"
},
"fridge": {
"name": "Hladnjak",
"state_attributes": {
"preset_mode": {
"name": "Načini rada za hladnjak",
"state": {
"auto_set": "Automatsko postavljanje",
"super_cool": "Super Cool",
"holiday": "Holiday",
"no_mode": "Nije odabran način rada"
}
}
}
},
"freezer": {
"name": "Zamrzivač",
"state_attributes": {
"preset_mode": {
"name": "Načini rada za zamrzavanje",
"state": {
"auto_set": "Automatsko postavljanje",
"super_freeze": "Super Freeze",
"no_mode": "Nije odabran način rada"
}
}
}
},
"oven": {
"name": "Pećnica",
"state_attributes": {
"preset_mode": {
"name": "Programi",
"state": {
"bakery": "Tjestenina i tijesta",
"bakery_steam": "Para u pećnici",
"bottom_heating": "Donji grijač",
"bottom_heating_fan": "Donji grijač + Ventilator",
"bread": "Kruh",
"bread_steam": "Kruh pečen na pari",
"combi": "Combi",
"convection_fan": "Konvekcija + Ventilator",
"convection_fan_turnspit": "Konvekcija + ventilator + ražanj",
"conventional": "Konvekcijska",
"conventional_turnspit": "Konvekcija + ražanj",
"defrost": "Odmrzavanje",
"descaling": "Uklanjanje kamenca",
"fish": "Riba",
"fish_steam": "Riba na pari",
"grill_cata": "Pečenje",
"grill_fan_cata": "Ventilator za pečenje",
"grill_fan_pyro": "Grijač + ventilator",
"grill_pyro": "Grijač",
"h20_clean": "H2O-Clean",
"iot_bread": "Kruh",
"iot_h20_clean": "h2O clean",
"leavening": "Dizanje tijesta",
"low_temp_cooking": "Kuhanje na niskoj temperaturi",
"low_temp_cooking_fish": "Kuhanje na niskoj temperaturi - riba",
"low_temp_cooking_fish_steam": "Kuhanje na niskoj temperaturi - riba na pari",
"low_temp_cooking_meat": "Kuhanje na niskoj temperaturi - meso",
"low_temp_cooking_meat_steam": "Kuhanje na niskoj temperaturi - meso na pari",
"low_temp_cooking_steam": "Kuhanje na pari i na niskoj temperaturi",
"meat": "Meso",
"meat_steam": "Meso na pari",
"multi_level": "Više razina",
"paella": "Paella",
"pasta_and_bakery": "Tjestenina i tijesta",
"pizza": "Pizza",
"pyrolysis": "Piroliza",
"pyrolysis_plus": "Piroliza +",
"red_meat": "Crveno meso",
"red_meat_steam": "Kuhano crveno meso",
"regenerate": "Regeneracija",
"soft_plus": "Mekano+",
"super_grill": "Super roštilj",
"tailor_bake": "Tailor bake",
"tailor_bake_cata": "Tailor Bake",
"tailor_bake_pyro": "Tailor Bake",
"vegetables": "Povrće",
"vegetables_cata": "Povrće",
"vegetables_pyro": "Povrće",
"water_discharge": "Ispuštanje vode",
"white_meat": "Bijelo meso",
"white_meat_steam": "Kuhano bijelo meso na pari"
}
}
}
}
}
},

View File

@ -256,7 +256,7 @@
"hqd_bed_sheets": "Lenzuola",
"hqd_bulky": "Vestiti voluminosi",
"hqd_casual": "Casual",
"hqd_cold_wind_30": "Brezza rinfrescante 30 minuti",
"hqd_cold_wind_30": "Brezza rinfrescante 30m",
"hqd_cold_wind_timing": "Brezza rinfrescante",
"hqd_cotton": "Cotone",
"hqd_curtain": "Tende",
@ -270,14 +270,14 @@
"hqd_i_refresh_pro": "I-Refresh Pro",
"hqd_jacket": "Giacche",
"hqd_jeans": "Jeans",
"hqd_luxury": "Vestiti preziosi",
"hqd_luxury": "Capi Pregiati",
"hqd_mix": "Misti",
"hqd_night_dry": "Asciugatura notturna",
"hqd_outdoor": "Outdoor",
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rapido 20",
"hqd_quick_30": "Rapido 30",
"hqd_quick_dry": "Asciugatura veloce",
"hqd_quick_20": "Rapido 20m",
"hqd_quick_30": "Rapido 30m",
"hqd_quick_dry": "Asciugatura veloce (30 min)",
"hqd_quilt": "Trapunte",
"hqd_refresh": "Refresh",
"hqd_school_uniform": "Uniforme scolastica",
@ -291,7 +291,7 @@
"hqd_underwear": "Intimo",
"hqd_warm_up": "Riscaldamento",
"hqd_wool": "Lana",
"hqd_working_suit": "Completo da lavoro",
"hqd_working_suit": "Abbigliamento da lavoro",
"hygiene": "Igiene",
"iot_checkup": "Check-Up",
"iot_dry_anti_mites": "Anti-Acari",
@ -315,7 +315,7 @@
"iot_dry_lingerie": "Lingerie",
"iot_dry_mixed": "Misti",
"iot_dry_playsuits": "Tutine",
"iot_dry_rapid_30": "Rapido 30",
"iot_dry_rapid_30": "Rapido 30m",
"iot_dry_rapid_59": "Rapido 59'.",
"iot_dry_refresh": "Rinfresca",
"iot_dry_regenerates_waterproof": "Rigenera Tessuti Impermeabili",
@ -461,6 +461,11 @@
"silent": "Notte",
"silent_care": "Silent Care",
"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": "Speciale",
"special_pw_prz": "Speciale",
"steam": "Vapore 75°C",
@ -517,19 +522,20 @@
"programs_ov": {
"state": {
"bakery": "Pasta e Pasticceria",
"bakery_steam": "Pane a vapore",
"bakery_steam": "Vapore da forno",
"bottom_heating": "Resistenza Inferiore",
"bottom_heating_fan": "Resistenza Inferiore Ventilata",
"bread": "Pane",
"bread_steam": "Pasticceria a vapore",
"bread_steam": "Pane al vapore",
"combi": "Combi",
"convection_fan": "Cottura Ventilata",
"convection_fan_turnspit": "Girarrosto + statico ventilato",
"convection_fan_turnspit": "Girarrosto a convenzione ventilata",
"conventional": "Statico",
"conventional_turnspit": "Girarrosto + statico",
"conventional_turnspit": "Girarrosto a convenzione",
"defrost": "Decongelamento",
"descaling": "Disincrostazione",
"descaling": "Decalcificazione",
"fish": "Pesce",
"fish_steam": "Pesce a vapore",
"fish_steam": "Pesce al vapore",
"grill_cata": "Grill",
"grill_fan_cata": "Grill fan",
"grill_fan_pyro": "Grill Ventilato",
@ -539,13 +545,13 @@
"iot_h20_clean": "h2O clean",
"leavening": "Lievitazione",
"low_temp_cooking": "Cottura a bassa temperatura",
"low_temp_cooking_fish": "Cottura a bassa temperatura del pesce",
"low_temp_cooking_fish_steam": "Cottura a bassa temperatura del pesce a vapore",
"low_temp_cooking_meat": "Cottura a bassa temperatura della carne",
"low_temp_cooking_meat_steam": "Cottura a vapore a bassa temperatura di carne",
"low_temp_cooking_steam": "Cottura a vapore a bassa temperatura",
"low_temp_cooking_fish": "Cottura a bassa temperatura Pesce",
"low_temp_cooking_fish_steam": "Cottura a bassa temperatura Pesce al vapore",
"low_temp_cooking_meat": "Cottura a bassa temperatura Carne",
"low_temp_cooking_meat_steam": "Cottura a bassa temperatura Carne al vapore",
"low_temp_cooking_steam": "Cottura a bassa temperatura al vapore",
"meat": "Carne",
"meat_steam": "Carne a vapore",
"meat_steam": "Carne al vapore",
"multi_level": "Cottura Multilivello",
"paella": "Paella",
"pasta_and_bakery": "Pasta e Pasticceria",
@ -553,8 +559,8 @@
"pyrolysis": "Pirolisi",
"pyrolysis_plus": "Pirolisi +",
"red_meat": "Carne rossa",
"red_meat_steam": "Carne rossa a vapore",
"regenerate": "Rigenerazione",
"red_meat_steam": "Carne rossa al vapore",
"regenerate": "Rigenerare",
"soft_plus": "Soft+",
"super_grill": "Supergriglia",
"tailor_bake": "Tailor bake",
@ -563,9 +569,9 @@
"vegetables": "Verdure",
"vegetables_cata": "Verdure",
"vegetables_pyro": "Verdure",
"water_discharge": "Scarico d'acqua",
"white_meat": "Carne bianca",
"white_meat_steam": "Carne bianca a vapore"
"water_discharge": "Scarico dell'acqua",
"white_meat": "Carne Bianca",
"white_meat_steam": "Carne bianca al vapore"
},
"name": "Programma"
},
@ -601,7 +607,7 @@
"hqd_bed_sheets": "Lenzuola",
"hqd_bulky": "Vestiti voluminosi",
"hqd_casual": "Casual",
"hqd_cold_wind_30": "Brezza rinfrescante 30 minuti",
"hqd_cold_wind_30": "Brezza rinfrescante 30m",
"hqd_cold_wind_timing": "Brezza rinfrescante",
"hqd_cotton": "Cotone",
"hqd_curtain": "Tende",
@ -615,14 +621,14 @@
"hqd_i_refresh_pro": "I-Refresh Pro",
"hqd_jacket": "Giacche",
"hqd_jeans": "Jeans",
"hqd_luxury": "Vestiti preziosi",
"hqd_luxury": "Capi Pregiati",
"hqd_mix": "Misti",
"hqd_night_dry": "Asciugatura notturna",
"hqd_outdoor": "Outdoor",
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rapido 20",
"hqd_quick_30": "Rapido 30",
"hqd_quick_dry": "Asciugatura veloce",
"hqd_quick_20": "Rapido 20m",
"hqd_quick_30": "Rapido 30m",
"hqd_quick_dry": "Asciugatura veloce (30 min)",
"hqd_quilt": "Trapunte",
"hqd_refresh": "Refresh",
"hqd_school_uniform": "Uniforme scolastica",
@ -636,7 +642,7 @@
"hqd_underwear": "Intimo",
"hqd_warm_up": "Riscaldamento",
"hqd_wool": "Lana",
"hqd_working_suit": "Completo da lavoro",
"hqd_working_suit": "Abbigliamento da lavoro",
"hygiene": "Igiene",
"iot_checkup": "Check-Up",
"iot_dry_anti_mites": "Anti-Acari",
@ -660,7 +666,7 @@
"iot_dry_lingerie": "Lingerie",
"iot_dry_mixed": "Misti",
"iot_dry_playsuits": "Tutine",
"iot_dry_rapid_30": "Rapido 30",
"iot_dry_rapid_30": "Rapido 30m",
"iot_dry_rapid_59": "Rapido 59'.",
"iot_dry_refresh": "Rinfresca",
"iot_dry_regenerates_waterproof": "Rigenera Tessuti Impermeabili",
@ -1102,6 +1108,15 @@
},
"remaining_time": {
"name": "Tempo rimanente"
},
"ref_zones": {
"state": {
"fridge": "Frigorifero",
"freezer": "Congelatore",
"vtroom1": "My Zone",
"fridge_freezer": "Frigorifero & Congelatore"
},
"name": "Zona"
}
},
"switch": {
@ -1209,6 +1224,9 @@
},
"super_freeze": {
"name": "Super Freeze"
},
"refrigerator": {
"name": "Frigo"
}
},
"binary_sensor": {
@ -1258,7 +1276,7 @@
"name": "Pentola"
},
"remote_control": {
"name": "Controllo remoto"
"name": "远程控制"
},
"rinse_aid": {
"name": "Livello Brillantante"
@ -1353,11 +1371,105 @@
"button": {
"induction_hob": {
"name": "Piano cottura a induzione"
},
"start_program": {
"name": "Programma Inizia"
},
"stop_program": {
"name": "Programma Stop"
}
},
"climate": {
"air_conditioner": {
"name": "Condizionatore"
},
"fridge": {
"name": "Frigorifero",
"state_attributes": {
"preset_mode": {
"name": "Modalità del frigorifero",
"state": {
"auto_set": "Impostazione automatica",
"super_cool": "Super Cool",
"holiday": "Holiday",
"no_mode": "Nessuna modalità selezionata"
}
}
}
},
"freezer": {
"name": "Congelatore",
"state_attributes": {
"preset_mode": {
"name": "Modalità del congelatore",
"state": {
"auto_set": "Impostazione automatica",
"super_freeze": "Super Freeze",
"no_mode": "Nessuna modalità selezionata"
}
}
}
},
"oven": {
"name": "Forno",
"state_attributes": {
"preset_mode": {
"name": "Programmi",
"state": {
"bakery": "Pasta e Pasticceria",
"bakery_steam": "Vapore da forno",
"bottom_heating": "Resistenza Inferiore",
"bottom_heating_fan": "Resistenza Inferiore Ventilata",
"bread": "Pane",
"bread_steam": "Pane al vapore",
"combi": "Combi",
"convection_fan": "Cottura Ventilata",
"convection_fan_turnspit": "Girarrosto a convenzione ventilata",
"conventional": "Statico",
"conventional_turnspit": "Girarrosto a convenzione",
"defrost": "Decongelamento",
"descaling": "Decalcificazione",
"fish": "Pesce",
"fish_steam": "Pesce al vapore",
"grill_cata": "Grill",
"grill_fan_cata": "Grill fan",
"grill_fan_pyro": "Grill Ventilato",
"grill_pyro": "Grill",
"h20_clean": "H2O-Clean",
"iot_bread": "Pane",
"iot_h20_clean": "h2O clean",
"leavening": "Lievitazione",
"low_temp_cooking": "Cottura a bassa temperatura",
"low_temp_cooking_fish": "Cottura a bassa temperatura Pesce",
"low_temp_cooking_fish_steam": "Cottura a bassa temperatura Pesce al vapore",
"low_temp_cooking_meat": "Cottura a bassa temperatura Carne",
"low_temp_cooking_meat_steam": "Cottura a bassa temperatura Carne al vapore",
"low_temp_cooking_steam": "Cottura a bassa temperatura al vapore",
"meat": "Carne",
"meat_steam": "Carne al vapore",
"multi_level": "Cottura Multilivello",
"paella": "Paella",
"pasta_and_bakery": "Pasta e Pasticceria",
"pizza": "Pizza",
"pyrolysis": "Pirolisi",
"pyrolysis_plus": "Pirolisi +",
"red_meat": "Carne rossa",
"red_meat_steam": "Carne rossa al vapore",
"regenerate": "Rigenerare",
"soft_plus": "Soft+",
"super_grill": "Supergriglia",
"tailor_bake": "Tailor bake",
"tailor_bake_cata": "Tailor Bake",
"tailor_bake_pyro": "Tailor Bake",
"vegetables": "Verdure",
"vegetables_cata": "Verdure",
"vegetables_pyro": "Verdure",
"water_discharge": "Scarico dell'acqua",
"white_meat": "Carne Bianca",
"white_meat_steam": "Carne bianca al vapore"
}
}
}
}
}
}

View File

@ -225,7 +225,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Quick 20",
"hqd_quick_30": "Quick 30",
"hqd_quick_dry": "Quick dry",
"hqd_quick_dry": "Quick dry 30",
"hqd_quilt": "Quilts",
"hqd_refresh": "Opfrissen",
"hqd_school_uniform": "Schooluniform",
@ -409,6 +409,11 @@
"silent": "Nacht",
"silent_care": "Silent Care",
"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",
"special_pw_prz": "speciaal",
"steam": "Stoom 75°C",
@ -465,11 +470,12 @@
"programs_ov": {
"state": {
"bakery": "Pasta en bakkersproducten",
"bakery_steam": "Stoomgebakken brood",
"bakery_steam": "Oven stomen",
"bottom_heating": "Bodemverwarming",
"bottom_heating_fan": "Bodemverwarming + Ventilator",
"bread": "Brood",
"bread_steam": "Stoomgebakken pasteien",
"bread_steam": "Stoomgebakken brood",
"combi": "Combi",
"convection_fan": "Met ventilator",
"convection_fan_turnspit": "Convectie + ventilator + draaispit",
"conventional": "Conventioneel",
@ -488,12 +494,12 @@
"leavening": "Gisting",
"low_temp_cooking": "Bereiding op lage temperatuur",
"low_temp_cooking_fish": "Bereiding op lage temperatuur Vis",
"low_temp_cooking_fish_steam": "Stomen bij lage temperatuur Vis",
"low_temp_cooking_fish_steam": "Bereiding op lage temperatuur Gestoomde vis",
"low_temp_cooking_meat": "Bereiding op lage temperatuur Vlees",
"low_temp_cooking_meat_steam": "Stomen bij lage temperatuur Vlees",
"low_temp_cooking_meat_steam": "Bereiding op lage temperatuur Gestoomd vlees",
"low_temp_cooking_steam": "Stomen bij lage temperatuur",
"meat": "Vlees",
"meat_steam": "Gestoomd vlees",
"meat_steam": "Vlees stomen",
"multi_level": "Multi-level",
"paella": "Paella",
"pasta_and_bakery": "Pasta en bakkersproducten",
@ -502,7 +508,7 @@
"pyrolysis_plus": "Pyrolyse +",
"red_meat": "Rood vlees",
"red_meat_steam": "Gestoomd rood vlees",
"regenerate": "Regeneratie",
"regenerate": "Regenereren",
"soft_plus": "Soft+",
"super_grill": "Super grill",
"tailor_bake": "Tailor bake",
@ -511,7 +517,7 @@
"vegetables": "Groenten",
"vegetables_cata": "Groenten",
"vegetables_pyro": "Groenten",
"water_discharge": "Waterafvoer",
"water_discharge": "Afvoer van water",
"white_meat": "Wit vlees",
"white_meat_steam": "Gestoomd wit vlees"
},
@ -570,7 +576,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Quick 20",
"hqd_quick_30": "Quick 30",
"hqd_quick_dry": "Quick dry",
"hqd_quick_dry": "Quick dry 30",
"hqd_quilt": "Quilts",
"hqd_refresh": "Opfrissen",
"hqd_school_uniform": "Schooluniform",
@ -1050,6 +1056,15 @@
},
"remaining_time": {
"name": "Resterende tijd"
},
"ref_zones": {
"state": {
"fridge": "Koelkast",
"freezer": "Vriezer",
"vtroom1": "My Zone",
"fridge_freezer": "Koelkast & Vriezer"
},
"name": "Zone"
}
},
"switch": {
@ -1157,6 +1172,9 @@
},
"super_freeze": {
"name": "Super Freeze"
},
"refrigerator": {
"name": "Koelkast"
}
},
"binary_sensor": {
@ -1301,11 +1319,105 @@
"button": {
"induction_hob": {
"name": "Inductiekookplaat"
},
"start_program": {
"name": "Programma Start"
},
"stop_program": {
"name": "Programma Stoppen"
}
},
"climate": {
"air_conditioner": {
"name": "Airconditioner"
},
"fridge": {
"name": "Koelkast",
"state_attributes": {
"preset_mode": {
"name": "Koelkastmodi",
"state": {
"auto_set": "Automatisch instellen",
"super_cool": "Super Cool",
"holiday": "Holiday",
"no_mode": "Geen modus geselecteerd"
}
}
}
},
"freezer": {
"name": "Vriezer",
"state_attributes": {
"preset_mode": {
"name": "Vriezermodi",
"state": {
"auto_set": "Automatisch instellen",
"super_freeze": "Super Freeze",
"no_mode": "Geen modus geselecteerd"
}
}
}
},
"oven": {
"name": "Oven",
"state_attributes": {
"preset_mode": {
"name": "Programma's",
"state": {
"bakery": "Pasta en bakkersproducten",
"bakery_steam": "Oven stomen",
"bottom_heating": "Bodemverwarming",
"bottom_heating_fan": "Bodemverwarming + Ventilator",
"bread": "Brood",
"bread_steam": "Stoomgebakken brood",
"combi": "Combi",
"convection_fan": "Met ventilator",
"convection_fan_turnspit": "Convectie + ventilator + draaispit",
"conventional": "Conventioneel",
"conventional_turnspit": "Convectie + draaispit",
"defrost": "Ontdooien",
"descaling": "Ontkalken",
"fish": "Vis",
"fish_steam": "Gestoomde vis",
"grill_cata": "Grill",
"grill_fan_cata": "Grill + ventilator",
"grill_fan_pyro": "Grill + ventilator",
"grill_pyro": "Grill",
"h20_clean": "H2O-Clean",
"iot_bread": "Brood",
"iot_h20_clean": "h2O clean",
"leavening": "Gisting",
"low_temp_cooking": "Bereiding op lage temperatuur",
"low_temp_cooking_fish": "Bereiding op lage temperatuur Vis",
"low_temp_cooking_fish_steam": "Bereiding op lage temperatuur Gestoomde vis",
"low_temp_cooking_meat": "Bereiding op lage temperatuur Vlees",
"low_temp_cooking_meat_steam": "Bereiding op lage temperatuur Gestoomd vlees",
"low_temp_cooking_steam": "Stomen bij lage temperatuur",
"meat": "Vlees",
"meat_steam": "Vlees stomen",
"multi_level": "Multi-level",
"paella": "Paella",
"pasta_and_bakery": "Pasta en bakkersproducten",
"pizza": "Pizza",
"pyrolysis": "Pyrolyse",
"pyrolysis_plus": "Pyrolyse +",
"red_meat": "Rood vlees",
"red_meat_steam": "Gestoomd rood vlees",
"regenerate": "Regenereren",
"soft_plus": "Soft+",
"super_grill": "Super grill",
"tailor_bake": "Tailor bake",
"tailor_bake_cata": "Tailor Bake",
"tailor_bake_pyro": "Tailor Bake",
"vegetables": "Groenten",
"vegetables_cata": "Groenten",
"vegetables_pyro": "Groenten",
"water_discharge": "Afvoer van water",
"white_meat": "Wit vlees",
"white_meat_steam": "Gestoomd wit vlees"
}
}
}
}
}
},

View File

@ -225,7 +225,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Szybkie 20",
"hqd_quick_30": "Szybkie 30",
"hqd_quick_dry": "Szybkoschnące",
"hqd_quick_dry": "Szybkoschnące 30",
"hqd_quilt": "Kołdry",
"hqd_refresh": "Odświeżanie",
"hqd_school_uniform": "Mundurek szkolny",
@ -409,6 +409,11 @@
"silent": "Nocny",
"silent_care": "Silent Care",
"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",
"special_pw_prz": "specjalne",
"steam": "Para 75°C",
@ -465,11 +470,12 @@
"programs_ov": {
"state": {
"bakery": "Makaron i Piekarnia",
"bakery_steam": "Chleb pieczony na parze",
"bakery_steam": "Para z piekarnika",
"bottom_heating": "Grzanie dolne",
"bottom_heating_fan": "Grzanie Dolne + Termoobieg",
"bread": "Chleb",
"bread_steam": "Ciasteczka pieczone na parze",
"bread_steam": "Chleb pieczony na parze",
"combi": "Kombi",
"convection_fan": "Termoobieg",
"convection_fan_turnspit": "Termoobieg + Fan + Rożen",
"conventional": "Konwencjonalny",
@ -477,7 +483,7 @@
"defrost": "Rozmrażanie",
"descaling": "Odkamienianie",
"fish": "Ryby",
"fish_steam": "Ryba gotowana na parze",
"fish_steam": "Ryba na parze",
"grill_cata": "Grill",
"grill_fan_cata": "Grill + termoobieg",
"grill_fan_pyro": "Grill + termoobieg",
@ -488,12 +494,12 @@
"leavening": "Zaczyn",
"low_temp_cooking": "Pieczenie w niskiej temperaturze",
"low_temp_cooking_fish": "Pieczenie w niskiej temperaturze - ryby",
"low_temp_cooking_fish_steam": "Gotowanie na parze w niskiej temperaturze ryby",
"low_temp_cooking_fish_steam": "Gotowanie w niskiej temperaturze - ryba gotowana na parze",
"low_temp_cooking_meat": "Pieczenie w niskiej temperaturze - mięso",
"low_temp_cooking_meat_steam": "Gotowanie na parze w niskiej temperaturze — mięso",
"low_temp_cooking_meat_steam": "Gotowanie w niskiej temperaturze — mięso gotowane na parze",
"low_temp_cooking_steam": "Gotowanie na parze w niskiej temperaturze",
"meat": "Mięso",
"meat_steam": "Mięso gotowane na parze",
"meat_steam": "Mięso na parze",
"multi_level": "Wielopoziomowo",
"paella": "Paella",
"pasta_and_bakery": "Makaron i Piekarnia",
@ -501,8 +507,8 @@
"pyrolysis": "Pyroliza",
"pyrolysis_plus": "Pyroliza +",
"red_meat": "Czerwone mięso",
"red_meat_steam": "Czerwone mięso gotowane na parze",
"regenerate": "Regeneracja",
"red_meat_steam": "Czerwone mięso na parze",
"regenerate": "Podgrzewanie",
"soft_plus": "Soft+",
"super_grill": "Super Grill",
"tailor_bake": "Tailor bake",
@ -511,7 +517,7 @@
"vegetables": "Warzywa",
"vegetables_cata": "Warzywa",
"vegetables_pyro": "Warzywa",
"water_discharge": "Odpływ wody",
"water_discharge": "Odprowadzanie wody",
"white_meat": "Białe mięso",
"white_meat_steam": "Białe mięso gotowane na parze"
},
@ -570,7 +576,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Szybkie 20",
"hqd_quick_30": "Szybkie 30",
"hqd_quick_dry": "Szybkoschnące",
"hqd_quick_dry": "Szybkoschnące 30",
"hqd_quilt": "Kołdry",
"hqd_refresh": "Odświeżanie",
"hqd_school_uniform": "Mundurek szkolny",
@ -1050,6 +1056,15 @@
},
"remaining_time": {
"name": "Pozostały czas"
},
"ref_zones": {
"state": {
"fridge": "Lodówka",
"freezer": "Zamrażarka",
"vtroom1": "My Zone",
"fridge_freezer": "Lodówka & Zamrażarka"
},
"name": "Strefa"
}
},
"switch": {
@ -1157,6 +1172,9 @@
},
"super_freeze": {
"name": "Super Freeze"
},
"refrigerator": {
"name": "Lodówka"
}
},
"binary_sensor": {
@ -1301,11 +1319,105 @@
"button": {
"induction_hob": {
"name": "Płyta indukcyjna"
},
"start_program": {
"name": "Program Początek"
},
"stop_program": {
"name": "Program Zatrzymaj"
}
},
"climate": {
"air_conditioner": {
"name": "Klimatyzator"
},
"fridge": {
"name": "Lodówka",
"state_attributes": {
"preset_mode": {
"name": "Tryby pracy lodówki",
"state": {
"auto_set": "Ustawianie automatyczne",
"super_cool": "Super Cool",
"holiday": "Holiday",
"no_mode": "Nie wybrano żadnego trybu"
}
}
}
},
"freezer": {
"name": "Zamrażarka",
"state_attributes": {
"preset_mode": {
"name": "Tryby pracy zamrażarki",
"state": {
"auto_set": "Ustawianie automatyczne",
"super_freeze": "Super Freeze",
"no_mode": "Nie wybrano żadnego trybu"
}
}
}
},
"oven": {
"name": "Piekarnik",
"state_attributes": {
"preset_mode": {
"name": "Programy",
"state": {
"bakery": "Makaron i Piekarnia",
"bakery_steam": "Para z piekarnika",
"bottom_heating": "Grzanie dolne",
"bottom_heating_fan": "Grzanie Dolne + Termoobieg",
"bread": "Chleb",
"bread_steam": "Chleb pieczony na parze",
"combi": "Kombi",
"convection_fan": "Termoobieg",
"convection_fan_turnspit": "Termoobieg + Fan + Rożen",
"conventional": "Konwencjonalny",
"conventional_turnspit": "Statyczny + Rożen",
"defrost": "Rozmrażanie",
"descaling": "Odkamienianie",
"fish": "Ryby",
"fish_steam": "Ryba na parze",
"grill_cata": "Grill",
"grill_fan_cata": "Grill + termoobieg",
"grill_fan_pyro": "Grill + termoobieg",
"grill_pyro": "Grill",
"h20_clean": "H2O-Clean",
"iot_bread": "Chleb",
"iot_h20_clean": "h2O clean",
"leavening": "Zaczyn",
"low_temp_cooking": "Pieczenie w niskiej temperaturze",
"low_temp_cooking_fish": "Pieczenie w niskiej temperaturze - ryby",
"low_temp_cooking_fish_steam": "Gotowanie w niskiej temperaturze - ryba gotowana na parze",
"low_temp_cooking_meat": "Pieczenie w niskiej temperaturze - mięso",
"low_temp_cooking_meat_steam": "Gotowanie w niskiej temperaturze — mięso gotowane na parze",
"low_temp_cooking_steam": "Gotowanie na parze w niskiej temperaturze",
"meat": "Mięso",
"meat_steam": "Mięso na parze",
"multi_level": "Wielopoziomowo",
"paella": "Paella",
"pasta_and_bakery": "Makaron i Piekarnia",
"pizza": "Pizza",
"pyrolysis": "Pyroliza",
"pyrolysis_plus": "Pyroliza +",
"red_meat": "Czerwone mięso",
"red_meat_steam": "Czerwone mięso na parze",
"regenerate": "Podgrzewanie",
"soft_plus": "Soft+",
"super_grill": "Super Grill",
"tailor_bake": "Tailor bake",
"tailor_bake_cata": "Tailor bake",
"tailor_bake_pyro": "Tailor bake",
"vegetables": "Warzywa",
"vegetables_cata": "Warzywa",
"vegetables_pyro": "Warzywa",
"water_discharge": "Odprowadzanie wody",
"white_meat": "Białe mięso",
"white_meat_steam": "Białe mięso gotowane na parze"
}
}
}
}
}
},

View File

@ -225,7 +225,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rápido 20",
"hqd_quick_30": "Rápido 30",
"hqd_quick_dry": "Secagem rápida",
"hqd_quick_dry": "Secagem rápida 30",
"hqd_quilt": "Colchas",
"hqd_refresh": "Refrescar",
"hqd_school_uniform": "Farda da escola",
@ -409,6 +409,11 @@
"silent": "Noite",
"silent_care": "Silent Care",
"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",
"special_pw_prz": "especial",
"steam": "Vapor 75 °C",
@ -465,19 +470,20 @@
"programs_ov": {
"state": {
"bakery": "Massas e bolos",
"bakery_steam": "Pão cozido a vapor",
"bakery_steam": "Vapor do forno",
"bottom_heating": "Aquecimento inferior",
"bottom_heating_fan": "Aquecimento Inferior + Ventilação",
"bread": "Pão",
"bread_steam": "Pastelaria cozida a vapor",
"bread_steam": "Pão no vapor",
"combi": "Combi",
"convection_fan": "Convecção + Ventilador",
"convection_fan_turnspit": "Convecção + Ventilador + Espeto giratório",
"convection_fan_turnspit": "Espeto com convecção ventilada",
"conventional": "Estático",
"conventional_turnspit": "Convecção + Espeto giratório",
"conventional_turnspit": "Espeto convencional",
"defrost": "Descongelar",
"descaling": "Descalcificação",
"fish": "Peixe",
"fish_steam": "Peixe cozinhado a vapor",
"fish_steam": "Peixe no vapor",
"grill_cata": "Grelhar",
"grill_fan_cata": "Grelhar com ventilação",
"grill_fan_pyro": "Grelhar + Ventilação",
@ -486,23 +492,23 @@
"iot_bread": "Pão",
"iot_h20_clean": "h2O clean",
"leavening": "Levedação",
"low_temp_cooking": "Cozinhar a baixa temperatura",
"low_temp_cooking_fish": "Cozinhar carne a baixa temperatura - Peixe",
"low_temp_cooking_fish_steam": "Cozedura a vapor a baixa temperatura - Peixe",
"low_temp_cooking_meat": "Cozinhar carne a baixa temperatura - Carne",
"low_temp_cooking_meat_steam": "Cozedura a vapor a baixa temperatura - Carne",
"low_temp_cooking_steam": "Cozedura a vapor a baixa temperatura",
"low_temp_cooking": "Cozimento em baixa temperatura",
"low_temp_cooking_fish": "Cozimento em baixa temperatura Peixe",
"low_temp_cooking_fish_steam": "Cozimento em baixa temperatura Peixe a vapor",
"low_temp_cooking_meat": "Cozimento em baixa temperatura Carne",
"low_temp_cooking_meat_steam": "Cozimento em baixa temperatura Carne no vapor",
"low_temp_cooking_steam": "Cozimento em baixa temperatura no vapor",
"meat": "Carne",
"meat_steam": "Carne cozinhada a vapor",
"meat_steam": "Vapor de carne",
"multi_level": "Multinível",
"paella": "Paella",
"pasta_and_bakery": "Massas e bolos",
"pizza": "Pizza",
"pyrolysis": "Pirólise",
"pyrolysis_plus": "Pirólise +",
"red_meat": "Carne vermelha",
"red_meat_steam": "Carne vermelha cozinhada a vapor",
"regenerate": "Regeneração",
"red_meat": "Carne Vermelha",
"red_meat_steam": "Carne Vermelha no vapor",
"regenerate": "Regenerar",
"soft_plus": "Soft+",
"super_grill": "Super Grelhador",
"tailor_bake": "Tailor bake",
@ -511,9 +517,9 @@
"vegetables": "Vegetais",
"vegetables_cata": "Legumes",
"vegetables_pyro": "Legumes",
"water_discharge": "Drenagem de água",
"white_meat": "Carne branca",
"white_meat_steam": "Carne branca cozinhada a vapor"
"water_discharge": "Descarga d'água",
"white_meat": "Carne Branca",
"white_meat_steam": "Carne Branca no vapor"
},
"name": "Programa"
},
@ -570,7 +576,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rápido 20",
"hqd_quick_30": "Rápido 30",
"hqd_quick_dry": "Secagem rápida",
"hqd_quick_dry": "Secagem rápida 30",
"hqd_quilt": "Colchas",
"hqd_refresh": "Refrescar",
"hqd_school_uniform": "Farda da escola",
@ -1050,6 +1056,15 @@
},
"remaining_time": {
"name": "Tempo restante"
},
"ref_zones": {
"state": {
"fridge": "Frigorífico",
"freezer": "Congelador",
"vtroom1": "My Zone",
"fridge_freezer": "Frigorífico & Congelador"
},
"name": "Zona"
}
},
"switch": {
@ -1157,6 +1172,9 @@
},
"super_freeze": {
"name": "Super Freeze"
},
"refrigerator": {
"name": "Frigorífico"
}
},
"binary_sensor": {
@ -1301,11 +1319,105 @@
"button": {
"induction_hob": {
"name": "Placa de indução"
},
"start_program": {
"name": "Programa Início"
},
"stop_program": {
"name": "Programa Parar"
}
},
"climate": {
"air_conditioner": {
"name": "Ar Condicionado"
},
"fridge": {
"name": "Frigorífico",
"state_attributes": {
"preset_mode": {
"name": "Modos do frigorífico",
"state": {
"auto_set": "Ajuste automático",
"super_cool": "Super Cool",
"holiday": "Holiday",
"no_mode": "Nenhum modo selecionado"
}
}
}
},
"freezer": {
"name": "Congelador",
"state_attributes": {
"preset_mode": {
"name": "Modos do congelador",
"state": {
"auto_set": "Ajuste automático",
"super_freeze": "Super Freeze",
"no_mode": "Nenhum modo selecionado"
}
}
}
},
"oven": {
"name": "Forno",
"state_attributes": {
"preset_mode": {
"name": "Programas",
"state": {
"bakery": "Massas e bolos",
"bakery_steam": "Vapor do forno",
"bottom_heating": "Aquecimento inferior",
"bottom_heating_fan": "Aquecimento Inferior + Ventilação",
"bread": "Pão",
"bread_steam": "Pão no vapor",
"combi": "Combi",
"convection_fan": "Convecção + Ventilador",
"convection_fan_turnspit": "Espeto com convecção ventilada",
"conventional": "Estático",
"conventional_turnspit": "Espeto convencional",
"defrost": "Descongelar",
"descaling": "Descalcificação",
"fish": "Peixe",
"fish_steam": "Peixe no vapor",
"grill_cata": "Grelhar",
"grill_fan_cata": "Grelhar com ventilação",
"grill_fan_pyro": "Grelhar + Ventilação",
"grill_pyro": "Grelhar",
"h20_clean": "H2O-Clean",
"iot_bread": "Pão",
"iot_h20_clean": "h2O clean",
"leavening": "Levedação",
"low_temp_cooking": "Cozimento em baixa temperatura",
"low_temp_cooking_fish": "Cozimento em baixa temperatura Peixe",
"low_temp_cooking_fish_steam": "Cozimento em baixa temperatura Peixe a vapor",
"low_temp_cooking_meat": "Cozimento em baixa temperatura Carne",
"low_temp_cooking_meat_steam": "Cozimento em baixa temperatura Carne no vapor",
"low_temp_cooking_steam": "Cozimento em baixa temperatura no vapor",
"meat": "Carne",
"meat_steam": "Vapor de carne",
"multi_level": "Multinível",
"paella": "Paella",
"pasta_and_bakery": "Massas e bolos",
"pizza": "Pizza",
"pyrolysis": "Pirólise",
"pyrolysis_plus": "Pirólise +",
"red_meat": "Carne Vermelha",
"red_meat_steam": "Carne Vermelha no vapor",
"regenerate": "Regenerar",
"soft_plus": "Soft+",
"super_grill": "Super Grelhador",
"tailor_bake": "Tailor bake",
"tailor_bake_cata": "Tailor Bake",
"tailor_bake_pyro": "Tailor Bake",
"vegetables": "Vegetais",
"vegetables_cata": "Legumes",
"vegetables_pyro": "Legumes",
"water_discharge": "Descarga d'água",
"white_meat": "Carne Branca",
"white_meat_steam": "Carne Branca no vapor"
}
}
}
}
}
},

View File

@ -225,7 +225,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rapid 20",
"hqd_quick_30": "Rapid 30",
"hqd_quick_dry": "Uscare rapidă",
"hqd_quick_dry": "Uscare rapidă 30",
"hqd_quilt": "Pilote",
"hqd_refresh": "Reîmprospătare",
"hqd_school_uniform": "Uniformă școlară",
@ -409,6 +409,11 @@
"silent": "Noapte",
"silent_care": "Silent Care",
"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",
"special_pw_prz": "special",
"steam": "Abur 75 °C",
@ -464,12 +469,13 @@
},
"programs_ov": {
"state": {
"bakery": "Paste și patiserie",
"bakery_steam": "Pâine gătită la abur",
"bakery": "Paste și produse de patiserie",
"bakery_steam": "În cuptor la abur",
"bottom_heating": "Încălzire de jos",
"bottom_heating_fan": "Încălzire De Jos + Ventilație",
"bread": "Pâine",
"bread_steam": "Produse de patiserie gătite la abur",
"bread_steam": "Pâine gătită la abur",
"combi": "Combi",
"convection_fan": "Convecție și ventilație",
"convection_fan_turnspit": "Convecție + Ventilator + Rotisor",
"conventional": "Convențional",
@ -488,9 +494,9 @@
"leavening": "Dospire",
"low_temp_cooking": "Gătire la temperatură scăzută",
"low_temp_cooking_fish": "Gătire la temperatură scăzută - Pește",
"low_temp_cooking_fish_steam": "Gătitul cu abur la temperatură scăzută - Pește",
"low_temp_cooking_fish_steam": "Gătitul la temperaturi scăzute - Pește gătit la abur",
"low_temp_cooking_meat": "Gătire la temperatură scăzută - Carne",
"low_temp_cooking_meat_steam": "Gătitul la abur la temperatură scăzută - carne",
"low_temp_cooking_meat_steam": "Gătitul la temperaturi scăzute - Carne gătită la abur",
"low_temp_cooking_steam": "Gătitul la abur la temperaturi scăzute",
"meat": "Carne",
"meat_steam": "Carne gătită la abur",
@ -511,7 +517,7 @@
"vegetables": "Legume",
"vegetables_cata": "Legume",
"vegetables_pyro": "Legume",
"water_discharge": "Scurgerea apei",
"water_discharge": "Evacuare apă",
"white_meat": "Carne albă",
"white_meat_steam": "Carne albă gătită la abur"
},
@ -570,7 +576,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rapid 20",
"hqd_quick_30": "Rapid 30",
"hqd_quick_dry": "Uscare rapidă",
"hqd_quick_dry": "Uscare rapidă 30",
"hqd_quilt": "Pilote",
"hqd_refresh": "Reîmprospătare",
"hqd_school_uniform": "Uniformă școlară",
@ -1050,6 +1056,15 @@
},
"remaining_time": {
"name": "Timp rămas"
},
"ref_zones": {
"state": {
"fridge": "Frigider",
"freezer": "Congelator",
"vtroom1": "My Zone",
"fridge_freezer": "Frigider & Congelator"
},
"name": "Zonă"
}
},
"switch": {
@ -1157,6 +1172,9 @@
},
"super_freeze": {
"name": "Super Freeze"
},
"refrigerator": {
"name": "Frigider"
}
},
"binary_sensor": {
@ -1301,11 +1319,105 @@
"button": {
"induction_hob": {
"name": "Plita cu inducție"
},
"start_program": {
"name": "Program Pornire"
},
"stop_program": {
"name": "Program Oprire"
}
},
"climate": {
"air_conditioner": {
"name": "Aer condiționat"
},
"fridge": {
"name": "Frigider",
"state_attributes": {
"preset_mode": {
"name": "Moduri frigider",
"state": {
"auto_set": "Setare automată",
"super_cool": "Super Cool",
"holiday": "Holiday",
"no_mode": "Niciun mod selectat"
}
}
}
},
"freezer": {
"name": "Congelator",
"state_attributes": {
"preset_mode": {
"name": "Moduri de congelare",
"state": {
"auto_set": "Setare automată",
"super_freeze": "Super Freeze",
"no_mode": "Niciun mod selectat"
}
}
}
},
"oven": {
"name": "Cuptor",
"state_attributes": {
"preset_mode": {
"name": "Programe",
"state": {
"bakery": "Paste și produse de patiserie",
"bakery_steam": "În cuptor la abur",
"bottom_heating": "Încălzire de jos",
"bottom_heating_fan": "Încălzire De Jos + Ventilație",
"bread": "Pâine",
"bread_steam": "Pâine gătită la abur",
"combi": "Combi",
"convection_fan": "Convecție și ventilație",
"convection_fan_turnspit": "Convecție + Ventilator + Rotisor",
"conventional": "Convențional",
"conventional_turnspit": "Convecție + Rotisor",
"defrost": "Decongelare",
"descaling": "Îndepărtarea calcarului",
"fish": "Pește",
"fish_steam": "Pește gătit la abur",
"grill_cata": "Gril",
"grill_fan_cata": "Grill + Ventilație",
"grill_fan_pyro": "Grill + Ventilație",
"grill_pyro": "Grill",
"h20_clean": "H2O-Clean",
"iot_bread": "Pâine",
"iot_h20_clean": "h2O clean",
"leavening": "Dospire",
"low_temp_cooking": "Gătire la temperatură scăzută",
"low_temp_cooking_fish": "Gătire la temperatură scăzută - Pește",
"low_temp_cooking_fish_steam": "Gătitul la temperaturi scăzute - Pește gătit la abur",
"low_temp_cooking_meat": "Gătire la temperatură scăzută - Carne",
"low_temp_cooking_meat_steam": "Gătitul la temperaturi scăzute - Carne gătită la abur",
"low_temp_cooking_steam": "Gătitul la abur la temperaturi scăzute",
"meat": "Carne",
"meat_steam": "Carne gătită la abur",
"multi_level": "Multi-Nivel",
"paella": "Paella",
"pasta_and_bakery": "Paste și patiserie",
"pizza": "Pizza",
"pyrolysis": "Piroliză",
"pyrolysis_plus": "Piroliză+",
"red_meat": "Carne roșie",
"red_meat_steam": "Carne roșie gătită la abur",
"regenerate": "Regenerare",
"soft_plus": "Soft+",
"super_grill": "Super Grill",
"tailor_bake": "Tailor bake",
"tailor_bake_cata": "Tailor Bake",
"tailor_bake_pyro": "Tailor Bake",
"vegetables": "Legume",
"vegetables_cata": "Legume",
"vegetables_pyro": "Legume",
"water_discharge": "Evacuare apă",
"white_meat": "Carne albă",
"white_meat_steam": "Carne albă gătită la abur"
}
}
}
}
}
},

View File

@ -225,7 +225,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Быстрая 20",
"hqd_quick_30": "Быстрая 30",
"hqd_quick_dry": "Быстрая сушка",
"hqd_quick_dry": "Быстрая сушка 30",
"hqd_quilt": "Стеганые одеяла",
"hqd_refresh": "Освежение",
"hqd_school_uniform": "Школьная форма",
@ -409,6 +409,11 @@
"silent": "Ночь",
"silent_care": "Silent Care",
"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_pw_prz": "специальные",
"steam": "пар 75°C",
@ -465,11 +470,12 @@
"programs_ov": {
"state": {
"bakery": "Паста и выпечка",
"bakery_steam": "Хлеб, испеченный на пару",
"bakery_steam": "Пар в духовом шкафу",
"bottom_heating": "Нижний элемент",
"bottom_heating_fan": "Нижний элемент + вентилятор",
"bread": "Хлеб",
"bread_steam": "Выпечка, приготовленная на пару",
"bread_steam": "Хлеб, испеченный на пару",
"combi": "Combi",
"convection_fan": "Верхний и нижний нагрев с вентилятором",
"convection_fan_turnspit": "Обыкновенная духовка + вентилятор + вертел",
"conventional": "Верхний и нижний нагрев",
@ -477,7 +483,7 @@
"defrost": "Размораживание",
"descaling": "Удаление накипи",
"fish": "Рыба",
"fish_steam": "Рыба, приготовленная на пару",
"fish_steam": "Рыба на пару",
"grill_cata": "Гриль",
"grill_fan_cata": "Гриль с вентилятором",
"grill_fan_pyro": "Гриль + вентилятор",
@ -488,12 +494,12 @@
"leavening": "Заквашивание",
"low_temp_cooking": "Приготовление при низкой температуре",
"low_temp_cooking_fish": "Приготовление при низкой температуре - Рыба",
"low_temp_cooking_fish_steam": "Приготовление при низкой температуре на пару - Рыба",
"low_temp_cooking_fish_steam": "Приготовление при низкой температуре - Рыба на пару",
"low_temp_cooking_meat": "Приготовление при низкой температуре - Мясо",
"low_temp_cooking_meat_steam": "Приготовление при низкой температуре на пару - Мясо",
"low_temp_cooking_meat_steam": "Приготовление при низкой температуре - Мясо на пару",
"low_temp_cooking_steam": "Приготовление при низкой температуре на пару",
"meat": "Мясо",
"meat_steam": "Мясо, приготовленное на пару",
"meat_steam": "Мясо на пару",
"multi_level": "Многоуровневое приготовление",
"paella": "Paella",
"pasta_and_bakery": "Паста и выпечка",
@ -501,7 +507,7 @@
"pyrolysis": "Пиролиз",
"pyrolysis_plus": "Пиролиз +",
"red_meat": "Красное мясо",
"red_meat_steam": "Красное мясо, приготовленное на пару",
"red_meat_steam": "Красное мясо на пару",
"regenerate": "Регенерация",
"soft_plus": "Soft+",
"super_grill": "Супер-гриль",
@ -511,9 +517,9 @@
"vegetables": "Овощи",
"vegetables_cata": "Овощи",
"vegetables_pyro": "Овощи",
"water_discharge": "Водоотвод",
"water_discharge": "Слив воды",
"white_meat": "Белое мясо",
"white_meat_steam": "Белое мясо, приготовленное на пару"
"white_meat_steam": "Белое мясо на пару"
},
"name": "Программа"
},
@ -570,7 +576,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Быстрая 20",
"hqd_quick_30": "Быстрая 30",
"hqd_quick_dry": "Быстрая сушка",
"hqd_quick_dry": "Быстрая сушка 30",
"hqd_quilt": "Стеганые одеяла",
"hqd_refresh": "Освежение",
"hqd_school_uniform": "Школьная форма",
@ -1050,6 +1056,15 @@
},
"remaining_time": {
"name": "Оставшееся время"
},
"ref_zones": {
"state": {
"fridge": "Холодильник",
"freezer": "Морозильник",
"vtroom1": "My Zone",
"fridge_freezer": "Холодильник & Морозильник"
},
"name": "Зона"
}
},
"switch": {
@ -1157,6 +1172,9 @@
},
"super_freeze": {
"name": "Super Freeze"
},
"refrigerator": {
"name": "Холодильник"
}
},
"binary_sensor": {
@ -1301,11 +1319,105 @@
"button": {
"induction_hob": {
"name": "Индукционная варочная панель"
},
"start_program": {
"name": "Программа Начать"
},
"stop_program": {
"name": "Программа Стоп"
}
},
"climate": {
"air_conditioner": {
"name": "Кондиционер воздуха"
},
"fridge": {
"name": "Холодильник",
"state_attributes": {
"preset_mode": {
"name": "Режимы холодильника",
"state": {
"auto_set": "Автоматическая установка",
"super_cool": "Super Cool",
"holiday": "Holiday",
"no_mode": "Режим не выбран"
}
}
}
},
"freezer": {
"name": "Морозильник",
"state_attributes": {
"preset_mode": {
"name": "Режимы морозильного отделения",
"state": {
"auto_set": "Автоматическая установка",
"super_freeze": "Super Freeze",
"no_mode": "Режим не выбран"
}
}
}
},
"oven": {
"name": "Духовой шкаф",
"state_attributes": {
"preset_mode": {
"name": "Программы",
"state": {
"bakery": "Паста и выпечка",
"bakery_steam": "Пар в духовом шкафу",
"bottom_heating": "Нижний элемент",
"bottom_heating_fan": "Нижний элемент + вентилятор",
"bread": "Хлеб",
"bread_steam": "Хлеб, испеченный на пару",
"combi": "Combi",
"convection_fan": "Верхний и нижний нагрев с вентилятором",
"convection_fan_turnspit": "Обыкновенная духовка + вентилятор + вертел",
"conventional": "Верхний и нижний нагрев",
"conventional_turnspit": "Обыкновенная духовка + вентилятор",
"defrost": "Размораживание",
"descaling": "Удаление накипи",
"fish": "Рыба",
"fish_steam": "Рыба на пару",
"grill_cata": "Гриль",
"grill_fan_cata": "Гриль с вентилятором",
"grill_fan_pyro": "Гриль + вентилятор",
"grill_pyro": "Гриль",
"h20_clean": "H2O-Clean",
"iot_bread": "Хлеб",
"iot_h20_clean": "h2O clean",
"leavening": "Заквашивание",
"low_temp_cooking": "Приготовление при низкой температуре",
"low_temp_cooking_fish": "Приготовление при низкой температуре - Рыба",
"low_temp_cooking_fish_steam": "Приготовление при низкой температуре - Рыба на пару",
"low_temp_cooking_meat": "Приготовление при низкой температуре - Мясо",
"low_temp_cooking_meat_steam": "Приготовление при низкой температуре - Мясо на пару",
"low_temp_cooking_steam": "Приготовление при низкой температуре на пару",
"meat": "Мясо",
"meat_steam": "Мясо на пару",
"multi_level": "Многоуровневое приготовление",
"paella": "Paella",
"pasta_and_bakery": "Паста и выпечка",
"pizza": "Pizza",
"pyrolysis": "Пиролиз",
"pyrolysis_plus": "Пиролиз +",
"red_meat": "Красное мясо",
"red_meat_steam": "Красное мясо на пару",
"regenerate": "Регенерация",
"soft_plus": "Soft+",
"super_grill": "Супер-гриль",
"tailor_bake": "Tailor bake",
"tailor_bake_cata": "Tailor Bake",
"tailor_bake_pyro": "Tailor Bake",
"vegetables": "Овощи",
"vegetables_cata": "Овощи",
"vegetables_pyro": "Овощи",
"water_discharge": "Слив воды",
"white_meat": "Белое мясо",
"white_meat_steam": "Белое мясо на пару"
}
}
}
}
}
},

View File

@ -225,7 +225,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rýchle 20",
"hqd_quick_30": "Rýchle 30",
"hqd_quick_dry": "Rýchle sušenie",
"hqd_quick_dry": "Rýchle sušenie 30",
"hqd_quilt": "Prikrývky",
"hqd_refresh": "Osvieženie",
"hqd_school_uniform": "Školská uniforma",
@ -409,6 +409,11 @@
"silent": "Noc",
"silent_care": "Silent Care",
"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",
"special_pw_prz": "špeciál",
"steam": "Para 75 °C",
@ -465,11 +470,12 @@
"programs_ov": {
"state": {
"bakery": "Cestoviny a pečenie",
"bakery_steam": "Chlieb pečený v pare",
"bakery_steam": "Parná rúra",
"bottom_heating": "Spodný ohrev",
"bottom_heating_fan": "Spodný ohrev + Ventilátor",
"bread": "Chlieb",
"bread_steam": "Pečivo pečené v pare",
"bread_steam": "Chlieb pečený v pare",
"combi": "Combi",
"convection_fan": "Statický + ventilátor",
"convection_fan_turnspit": "Statické + ventilátor + otočný ražeň",
"conventional": "Statický",
@ -477,7 +483,7 @@
"defrost": "Rozmraziť",
"descaling": "Odstránenie vodného kameňa",
"fish": "Ryby",
"fish_steam": "Ryby varené v pare",
"fish_steam": "Ryby pripravené v pare",
"grill_cata": "Gril",
"grill_fan_cata": "Gril + ventilátor",
"grill_fan_pyro": "Gril + ventilátor",
@ -488,12 +494,12 @@
"leavening": "Kysnutie",
"low_temp_cooking": "Varenie pri nízkych teplotách",
"low_temp_cooking_fish": "Varenie pri nízkych teplotách Ryby",
"low_temp_cooking_fish_steam": "Varenie pri nízkych teplotách v pare Ryby",
"low_temp_cooking_fish_steam": "Varenie pri nízkych teplotách ryby pripravené v pare",
"low_temp_cooking_meat": "Varenie pri nízkych teplotách Mäso",
"low_temp_cooking_meat_steam": "Varenie pri nízkych teplotách v pare",
"low_temp_cooking_meat_steam": "Varenie pri nízkych teplotách - mäso dusené v pare",
"low_temp_cooking_steam": "Varenie pri nízkych teplotách v pare",
"meat": "Mäso",
"meat_steam": "Mäso uvarené v pare",
"meat_steam": "Mäso v pare",
"multi_level": "Viacúrovňové",
"paella": "Paella",
"pasta_and_bakery": "Cestoviny a pečenie",
@ -501,8 +507,8 @@
"pyrolysis": "Pyrolýza",
"pyrolysis_plus": "Pyrolýza +",
"red_meat": "Červené mäso",
"red_meat_steam": "Červené mäso varené v pare",
"regenerate": "Regenerácia",
"red_meat_steam": "Červené mäso dusené v pare",
"regenerate": "Regenerovať",
"soft_plus": "Soft+",
"super_grill": "Super Gril",
"tailor_bake": "Tailor bake",
@ -511,9 +517,9 @@
"vegetables": "Zelenina",
"vegetables_cata": "Zelenina",
"vegetables_pyro": "Zelenina",
"water_discharge": "Odtok vody",
"water_discharge": "Vypúšťanie vody",
"white_meat": "Biele mäso",
"white_meat_steam": "Biele mäso varené v pare"
"white_meat_steam": "Biele mäso pripravené v pare"
},
"name": "Program"
},
@ -570,7 +576,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rýchle 20",
"hqd_quick_30": "Rýchle 30",
"hqd_quick_dry": "Rýchle sušenie",
"hqd_quick_dry": "Rýchle sušenie 30",
"hqd_quilt": "Prikrývky",
"hqd_refresh": "Osvieženie",
"hqd_school_uniform": "Školská uniforma",
@ -1050,6 +1056,15 @@
},
"remaining_time": {
"name": "Zostávajúci čas"
},
"ref_zones": {
"state": {
"fridge": "Chladnička",
"freezer": "Mraznička",
"vtroom1": "My Zone",
"fridge_freezer": "Chladnička & Mraznička"
},
"name": "Zóna"
}
},
"switch": {
@ -1157,6 +1172,9 @@
},
"super_freeze": {
"name": "Super Freeze"
},
"refrigerator": {
"name": "Chladnička"
}
},
"binary_sensor": {
@ -1206,7 +1224,7 @@
"name": "Panvica"
},
"remote_control": {
"name": "Diaľkové ovládanie"
"name": "Daljinsko upravljanje"
},
"rinse_aid": {
"name": "Úroveň prostriedku na oplachovanie"
@ -1301,11 +1319,105 @@
"button": {
"induction_hob": {
"name": "Indukčná varná doska"
},
"start_program": {
"name": "Program Začiatok"
},
"stop_program": {
"name": "Program Zastaviť"
}
},
"climate": {
"air_conditioner": {
"name": "Klimatizácia"
},
"fridge": {
"name": "Chladnička",
"state_attributes": {
"preset_mode": {
"name": "Režimy chladničky",
"state": {
"auto_set": "Automatické nastavenie",
"super_cool": "Super Cool",
"holiday": "Holiday",
"no_mode": "Nie je vybraný žiadny režim"
}
}
}
},
"freezer": {
"name": "Mraznička",
"state_attributes": {
"preset_mode": {
"name": "Režimy mrazničky",
"state": {
"auto_set": "Automatické nastavenie",
"super_freeze": "Super Freeze",
"no_mode": "Nie je vybraný žiadny režim"
}
}
}
},
"oven": {
"name": "Rúra na pečenie",
"state_attributes": {
"preset_mode": {
"name": "Programy",
"state": {
"bakery": "Cestoviny a pečenie",
"bakery_steam": "Parná rúra",
"bottom_heating": "Spodný ohrev",
"bottom_heating_fan": "Spodný ohrev + Ventilátor",
"bread": "Chlieb",
"bread_steam": "Chlieb pečený v pare",
"combi": "Combi",
"convection_fan": "Statický + ventilátor",
"convection_fan_turnspit": "Statické + ventilátor + otočný ražeň",
"conventional": "Statický",
"conventional_turnspit": "Statické + otočný ražeň",
"defrost": "Rozmraziť",
"descaling": "Odstránenie vodného kameňa",
"fish": "Ryby",
"fish_steam": "Ryby pripravené v pare",
"grill_cata": "Gril",
"grill_fan_cata": "Gril + ventilátor",
"grill_fan_pyro": "Gril + ventilátor",
"grill_pyro": "Gril",
"h20_clean": "H2O-Clean",
"iot_bread": "Chlieb",
"iot_h20_clean": "h2O clean",
"leavening": "Kysnutie",
"low_temp_cooking": "Varenie pri nízkych teplotách",
"low_temp_cooking_fish": "Varenie pri nízkych teplotách Ryby",
"low_temp_cooking_fish_steam": "Varenie pri nízkych teplotách ryby pripravené v pare",
"low_temp_cooking_meat": "Varenie pri nízkych teplotách Mäso",
"low_temp_cooking_meat_steam": "Varenie pri nízkych teplotách - mäso dusené v pare",
"low_temp_cooking_steam": "Varenie pri nízkych teplotách v pare",
"meat": "Mäso",
"meat_steam": "Mäso v pare",
"multi_level": "Viacúrovňové",
"paella": "Paella",
"pasta_and_bakery": "Cestoviny a pečenie",
"pizza": "Pizza",
"pyrolysis": "Pyrolýza",
"pyrolysis_plus": "Pyrolýza +",
"red_meat": "Červené mäso",
"red_meat_steam": "Červené mäso dusené v pare",
"regenerate": "Regenerovať",
"soft_plus": "Soft+",
"super_grill": "Super Gril",
"tailor_bake": "Tailor bake",
"tailor_bake_cata": "Tailor Bake",
"tailor_bake_pyro": "Tailor Bake",
"vegetables": "Zelenina",
"vegetables_cata": "Zelenina",
"vegetables_pyro": "Zelenina",
"water_discharge": "Vypúšťanie vody",
"white_meat": "Biele mäso",
"white_meat_steam": "Biele mäso pripravené v pare"
}
}
}
}
}
},

View File

@ -225,7 +225,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Hitro 20",
"hqd_quick_30": "Hitro 30",
"hqd_quick_dry": "Hitro sušenje",
"hqd_quick_dry": "Hitro sušenje 30",
"hqd_quilt": "Posteljna pregrinjala",
"hqd_refresh": "Osvežitev",
"hqd_school_uniform": "Šolska uniforma",
@ -409,6 +409,11 @@
"silent": "Noč",
"silent_care": "Silent Care",
"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",
"special_pw_prz": "Posebno",
"steam": "Para 75 °C",
@ -465,11 +470,12 @@
"programs_ov": {
"state": {
"bakery": "Testenine in pekovski izdelki",
"bakery_steam": "V sopari pečen kruh",
"bakery_steam": "Parna pečica",
"bottom_heating": "Spodnji grelnik",
"bottom_heating_fan": "Spodnji grelnik + Ventilator",
"bread": "Kruh",
"bread_steam": "V sopari pečeno pecivo",
"bread_steam": "V sopari pečen kruh",
"combi": "Kombinirano",
"convection_fan": "Konvekcija + ventilator",
"convection_fan_turnspit": "Konvekcija + ventilator + raženj",
"conventional": "Konvenkcijsko",
@ -486,14 +492,14 @@
"iot_bread": "Kruh",
"iot_h20_clean": "h2O clean",
"leavening": "Vzhajanje",
"low_temp_cooking": "Priprava pri nizki temperaturi",
"low_temp_cooking_fish": "Priprava pri nizki temperaturi ribe",
"low_temp_cooking_fish_steam": "Soparjenje pri nizki temperaturi ribe",
"low_temp_cooking_meat": "Priprava pri nizki temperaturi meso",
"low_temp_cooking_meat_steam": "Soparjenje pri nizki temperaturi meso",
"low_temp_cooking": "Kuhanje pri nizki temperaturi",
"low_temp_cooking_fish": "Kuhanje pri nizki temperaturi ribe",
"low_temp_cooking_fish_steam": "Kuhanje pri nizki temperaturi soparjene ribe",
"low_temp_cooking_meat": "Kuhanje pri nizki temperaturi meso",
"low_temp_cooking_meat_steam": "Kuhanje pri nizki temperaturi soparjeno meso",
"low_temp_cooking_steam": "Soparjenje pri nizki temperaturi",
"meat": "Meso",
"meat_steam": "Soparjeno meso",
"meat_steam": "Soparjenje mesa",
"multi_level": "Na več nivojih",
"paella": "Paella",
"pasta_and_bakery": "Testenine in pekovski izdelki",
@ -502,7 +508,7 @@
"pyrolysis_plus": "Piroliza +",
"red_meat": "Rdeče meso",
"red_meat_steam": "Soparjeno rdeče meso",
"regenerate": "Obnavljanje",
"regenerate": "Regeneracija",
"soft_plus": "Soft+",
"super_grill": "Super Grill",
"tailor_bake": "Tailor bake",
@ -511,7 +517,7 @@
"vegetables": "Zelenjava",
"vegetables_cata": "Zelenjava",
"vegetables_pyro": "Zelenjava",
"water_discharge": "Odtok za vodo",
"water_discharge": "Izpust vode",
"white_meat": "Belo meso",
"white_meat_steam": "Soparjeno belo meso"
},
@ -570,7 +576,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Hitro 20",
"hqd_quick_30": "Hitro 30",
"hqd_quick_dry": "Hitro sušenje",
"hqd_quick_dry": "Hitro sušenje 30",
"hqd_quilt": "Posteljna pregrinjala",
"hqd_refresh": "Osvežitev",
"hqd_school_uniform": "Šolska uniforma",
@ -1050,6 +1056,15 @@
},
"remaining_time": {
"name": "Time remaining"
},
"ref_zones": {
"state": {
"fridge": "Hladilnik",
"freezer": "Zamrzovalnik",
"vtroom1": "My Zone",
"fridge_freezer": "Hladilnik & Zamrzovalnik"
},
"name": "Cona"
}
},
"switch": {
@ -1157,6 +1172,9 @@
},
"super_freeze": {
"name": "Super Freeze"
},
"refrigerator": {
"name": "Hladilnik"
}
},
"binary_sensor": {
@ -1206,7 +1224,7 @@
"name": "Posoda"
},
"remote_control": {
"name": "Daljinsko upravljanje"
"name": "Diaľkové ovládanie"
},
"rinse_aid": {
"name": "Nivo sredstva za sijaj"
@ -1301,11 +1319,105 @@
"button": {
"induction_hob": {
"name": "Indukcijska kuhalna plošča"
},
"start_program": {
"name": "Program Start"
},
"stop_program": {
"name": "Program Stop"
}
},
"climate": {
"air_conditioner": {
"name": "Klimatska naprava"
},
"fridge": {
"name": "Hladilnik",
"state_attributes": {
"preset_mode": {
"name": "Načini hladilnika",
"state": {
"auto_set": "Samodejna nastavitev",
"super_cool": "Super Cool",
"holiday": "Holiday",
"no_mode": "Izbran ni noben način"
}
}
}
},
"freezer": {
"name": "Zamrzovalnik",
"state_attributes": {
"preset_mode": {
"name": "Načini zamrzovalnika",
"state": {
"auto_set": "Samodejna nastavitev",
"super_freeze": "Super Freeze",
"no_mode": "Izbran ni noben način"
}
}
}
},
"oven": {
"name": "Pečica",
"state_attributes": {
"preset_mode": {
"name": "Programi",
"state": {
"bakery": "Testenine in pekovski izdelki",
"bakery_steam": "Parna pečica",
"bottom_heating": "Spodnji grelnik",
"bottom_heating_fan": "Spodnji grelnik + Ventilator",
"bread": "Kruh",
"bread_steam": "V sopari pečen kruh",
"combi": "Kombinirano",
"convection_fan": "Konvekcija + ventilator",
"convection_fan_turnspit": "Konvekcija + ventilator + raženj",
"conventional": "Konvenkcijsko",
"conventional_turnspit": "Konvekcija + raženj",
"defrost": "Odmrzovanje",
"descaling": "Odstranjevanje vodnega kamna",
"fish": "Ribe",
"fish_steam": "Soparjene ribe",
"grill_cata": "Žar",
"grill_fan_cata": "Žar in ventilator",
"grill_fan_pyro": "Žar + ventilator",
"grill_pyro": "Žar",
"h20_clean": "H2O-Clean",
"iot_bread": "Kruh",
"iot_h20_clean": "h2O clean",
"leavening": "Vzhajanje",
"low_temp_cooking": "Kuhanje pri nizki temperaturi",
"low_temp_cooking_fish": "Kuhanje pri nizki temperaturi ribe",
"low_temp_cooking_fish_steam": "Kuhanje pri nizki temperaturi soparjene ribe",
"low_temp_cooking_meat": "Kuhanje pri nizki temperaturi meso",
"low_temp_cooking_meat_steam": "Kuhanje pri nizki temperaturi soparjeno meso",
"low_temp_cooking_steam": "Soparjenje pri nizki temperaturi",
"meat": "Meso",
"meat_steam": "Soparjenje mesa",
"multi_level": "Na več nivojih",
"paella": "Paella",
"pasta_and_bakery": "Testenine in pekovski izdelki",
"pizza": "Pizza",
"pyrolysis": "Piroliza",
"pyrolysis_plus": "Piroliza +",
"red_meat": "Rdeče meso",
"red_meat_steam": "Soparjeno rdeče meso",
"regenerate": "Regeneracija",
"soft_plus": "Soft+",
"super_grill": "Super Grill",
"tailor_bake": "Tailor bake",
"tailor_bake_cata": "Tailor Bake",
"tailor_bake_pyro": "Tailor Bake",
"vegetables": "Zelenjava",
"vegetables_cata": "Zelenjava",
"vegetables_pyro": "Zelenjava",
"water_discharge": "Izpust vode",
"white_meat": "Belo meso",
"white_meat_steam": "Soparjeno belo meso"
}
}
}
}
}
},

View File

@ -225,7 +225,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Brzo 20",
"hqd_quick_30": "Brzo 30",
"hqd_quick_dry": "Brzo sušenje",
"hqd_quick_dry": "Brzo sušenje 30",
"hqd_quilt": "Jorgani",
"hqd_refresh": "Osvežavanje",
"hqd_school_uniform": "Školska uniforma",
@ -409,6 +409,11 @@
"silent": "Noć",
"silent_care": "Silent Care",
"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",
"special_pw_prz": "posebno",
"steam": "Para 75°C",
@ -465,11 +470,12 @@
"programs_ov": {
"state": {
"bakery": "Testenine i pecivo",
"bakery_steam": "Hleb pečen na pari",
"bakery_steam": "Priprema na pari u rerni",
"bottom_heating": "Donje grejanje",
"bottom_heating_fan": "Donje grejanje + Ventilator",
"bread": "Hleb",
"bread_steam": "Peciva pečena na pari",
"bread_steam": "Hleb pečen na pari",
"combi": "Kombinovani",
"convection_fan": "Konvekcija + ventilator",
"convection_fan_turnspit": "Konvekcija + ventilator + ražanj",
"conventional": "Konvekcija",
@ -477,7 +483,7 @@
"defrost": "Odmrzavanje",
"descaling": "Uklanjanje kamenca",
"fish": "Riba",
"fish_steam": "Riba kuvana na pari",
"fish_steam": "Riba na pari",
"grill_cata": "Roštilj",
"grill_fan_cata": "Roštilj sa ventilatorom",
"grill_fan_pyro": "Gril + ventilator",
@ -488,12 +494,12 @@
"leavening": "Narastanje",
"low_temp_cooking": "Kuvanje na niskoj temperaturi",
"low_temp_cooking_fish": "Kuvanje na niskoj temperaturi riba",
"low_temp_cooking_fish_steam": "Kuvanje na pari na niskoj temperaturi riba",
"low_temp_cooking_fish_steam": "Kuvanje na niskoj temperaturi riba na pari",
"low_temp_cooking_meat": "Kuvanje na niskoj temperaturi meso",
"low_temp_cooking_meat_steam": "Kuvanje na pari na niskoj temperaturi meso",
"low_temp_cooking_meat_steam": "Kuvanje na niskoj temperaturi meso na pari",
"low_temp_cooking_steam": "Kuvanje na pari na niskoj temperaturi",
"meat": "Meso",
"meat_steam": "Meso kuvano na pari",
"meat_steam": "Priprema mesa na pari",
"multi_level": "Više nivoa",
"paella": "Paella",
"pasta_and_bakery": "Testenine i pecivo",
@ -501,7 +507,7 @@
"pyrolysis": "Piroliza",
"pyrolysis_plus": "Piroliza +",
"red_meat": "Crveno meso",
"red_meat_steam": "Crveno meso kuvano na pari",
"red_meat_steam": "Crveno meso na pari",
"regenerate": "Regeneracija",
"soft_plus": "Meko+",
"super_grill": "Super gril",
@ -511,9 +517,9 @@
"vegetables": "Povrće",
"vegetables_cata": "Povrće",
"vegetables_pyro": "Povrće",
"water_discharge": "Odvod vode",
"water_discharge": "Ispuštanje vode",
"white_meat": "Belo meso",
"white_meat_steam": "Belo meso kuvano na pari"
"white_meat_steam": "Belo meso na pari"
},
"name": "Program"
},
@ -570,7 +576,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Brzo 20",
"hqd_quick_30": "Brzo 30",
"hqd_quick_dry": "Brzo sušenje",
"hqd_quick_dry": "Brzo sušenje 30",
"hqd_quilt": "Jorgani",
"hqd_refresh": "Osvežavanje",
"hqd_school_uniform": "Školska uniforma",
@ -1050,6 +1056,15 @@
},
"remaining_time": {
"name": "Preostalo vreme"
},
"ref_zones": {
"state": {
"fridge": "Frižider",
"freezer": "Zamrzivač",
"vtroom1": "My Zone",
"fridge_freezer": "Frižider & Zamrzivač"
},
"name": "Zona"
}
},
"switch": {
@ -1157,6 +1172,9 @@
},
"super_freeze": {
"name": "Super Freeze"
},
"refrigerator": {
"name": "Frižider"
}
},
"binary_sensor": {
@ -1206,7 +1224,7 @@
"name": "Tiganj"
},
"remote_control": {
"name": "Daljinsko upravljanje"
"name": "Upravljanje na daljinu"
},
"rinse_aid": {
"name": "Nivo sredstva za ispiranje"
@ -1301,11 +1319,105 @@
"button": {
"induction_hob": {
"name": "Indukciona ploča"
},
"start_program": {
"name": "Program Pokretanje"
},
"stop_program": {
"name": "Program Zaustavi"
}
},
"climate": {
"air_conditioner": {
"name": "Klima uređaj"
},
"fridge": {
"name": "Frižider",
"state_attributes": {
"preset_mode": {
"name": "Režimi frižidera",
"state": {
"auto_set": "Automatsko podešavanje",
"super_cool": "Super Cool",
"holiday": "Holiday",
"no_mode": "Nije izabran nijedan režim"
}
}
}
},
"freezer": {
"name": "Zamrzivač",
"state_attributes": {
"preset_mode": {
"name": "Režimi zamrzivača",
"state": {
"auto_set": "Automatsko podešavanje",
"super_freeze": "Super Freeze",
"no_mode": "Nije izabran nijedan režim"
}
}
}
},
"oven": {
"name": "Rerna",
"state_attributes": {
"preset_mode": {
"name": "Programi",
"state": {
"bakery": "Testenine i pecivo",
"bakery_steam": "Priprema na pari u rerni",
"bottom_heating": "Donje grejanje",
"bottom_heating_fan": "Donje grejanje + Ventilator",
"bread": "Hleb",
"bread_steam": "Hleb pečen na pari",
"combi": "Kombinovani",
"convection_fan": "Konvekcija + ventilator",
"convection_fan_turnspit": "Konvekcija + ventilator + ražanj",
"conventional": "Konvekcija",
"conventional_turnspit": "Konvekcija + ražanj",
"defrost": "Odmrzavanje",
"descaling": "Uklanjanje kamenca",
"fish": "Riba",
"fish_steam": "Riba na pari",
"grill_cata": "Roštilj",
"grill_fan_cata": "Roštilj sa ventilatorom",
"grill_fan_pyro": "Gril + ventilator",
"grill_pyro": "Gril",
"h20_clean": "H2O-Clean",
"iot_bread": "Hleb",
"iot_h20_clean": "h2O clean",
"leavening": "Narastanje",
"low_temp_cooking": "Kuvanje na niskoj temperaturi",
"low_temp_cooking_fish": "Kuvanje na niskoj temperaturi riba",
"low_temp_cooking_fish_steam": "Kuvanje na niskoj temperaturi riba na pari",
"low_temp_cooking_meat": "Kuvanje na niskoj temperaturi meso",
"low_temp_cooking_meat_steam": "Kuvanje na niskoj temperaturi meso na pari",
"low_temp_cooking_steam": "Kuvanje na pari na niskoj temperaturi",
"meat": "Meso",
"meat_steam": "Priprema mesa na pari",
"multi_level": "Više nivoa",
"paella": "Paella",
"pasta_and_bakery": "Testenine i pecivo",
"pizza": "Pizza",
"pyrolysis": "Piroliza",
"pyrolysis_plus": "Piroliza +",
"red_meat": "Crveno meso",
"red_meat_steam": "Crveno meso na pari",
"regenerate": "Regeneracija",
"soft_plus": "Meko+",
"super_grill": "Super gril",
"tailor_bake": "Tailor bake",
"tailor_bake_cata": "Tailor Bake",
"tailor_bake_pyro": "Tailor Bake",
"vegetables": "Povrće",
"vegetables_cata": "Povrće",
"vegetables_pyro": "Povrće",
"water_discharge": "Ispuštanje vode",
"white_meat": "Belo meso",
"white_meat_steam": "Belo meso na pari"
}
}
}
}
}
},

View File

@ -225,7 +225,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Hızlı 20",
"hqd_quick_30": "Hızlı 30",
"hqd_quick_dry": "Hızlı kurutma",
"hqd_quick_dry": "Hızlı kurutma 30",
"hqd_quilt": "Yorganlar",
"hqd_refresh": "Yenileme",
"hqd_school_uniform": "Okul üniforması",
@ -409,6 +409,11 @@
"silent": "Gece",
"silent_care": "Silent Care",
"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",
"special_pw_prz": "özel",
"steam": "Buhar 75°C",
@ -465,11 +470,12 @@
"programs_ov": {
"state": {
"bakery": "Makarna ve Ekmek",
"bakery_steam": "Buharda pişmiş ekmek",
"bakery_steam": "Fırın buharı",
"bottom_heating": "Alt ısıtıcı",
"bottom_heating_fan": "Alt ısıtıcı + Fan",
"bread": "Ekmek",
"bread_steam": "Buharda pişmiş hamur işleri",
"bread_steam": "Buharda pişmiş ekmek",
"combi": "Kombi",
"convection_fan": "Fan desteklı",
"convection_fan_turnspit": "Konveksiyon + Fan + Şiş Çevirme",
"conventional": "Statık",
@ -477,7 +483,7 @@
"defrost": "Buz çözme",
"descaling": "Kireç çözme",
"fish": "Balık",
"fish_steam": "Buharda pişmiş balık",
"fish_steam": "Balık buğulama",
"grill_cata": "Izgara",
"grill_fan_cata": "Izgara fan",
"grill_fan_pyro": "Izgara + Fan",
@ -488,12 +494,12 @@
"leavening": "Mayalama",
"low_temp_cooking": "Düşük Sıcaklıkta Pişirme",
"low_temp_cooking_fish": "Düşük Sıcaklıkta Pişirme - Balık",
"low_temp_cooking_fish_steam": "Düşük Sıcaklıkta Buharda Pişirme - Balık",
"low_temp_cooking_fish_steam": "Düşük Isıda Pişirme - Balık buğulama",
"low_temp_cooking_meat": "Düşük Sıcaklıkta Pişirme - Et",
"low_temp_cooking_meat_steam": "Düşük Sıcaklıkta Buharda Pişirme - Et",
"low_temp_cooking_meat_steam": "Düşük Isıda Pişirme - Buharda et",
"low_temp_cooking_steam": "Düşük Sıcaklıkta Buharda Pişirme",
"meat": "Et",
"meat_steam": "Buharda pişmiş et",
"meat_steam": "Et buharı",
"multi_level": "Çok Seviyeli",
"paella": "Paella",
"pasta_and_bakery": "Makarna ve Ekmek",
@ -501,8 +507,8 @@
"pyrolysis": "Piroliz",
"pyrolysis_plus": "Piroliz +",
"red_meat": "Kırmızı Et",
"red_meat_steam": "Buharda pişmiş kırmızı et",
"regenerate": "Yenileme",
"red_meat_steam": "Buharda kırmızı et",
"regenerate": "Yeniden oluştur",
"soft_plus": "Yumuşak+",
"super_grill": "Süper Izgara",
"tailor_bake": "Tailor bake",
@ -511,9 +517,9 @@
"vegetables": "Sebzeler",
"vegetables_cata": "Sebzeler",
"vegetables_pyro": "Sebzeler",
"water_discharge": "Su Drenajı",
"water_discharge": "Su Tahliyesi",
"white_meat": "Beyaz Et",
"white_meat_steam": "Buharda pişmiş beyaz et"
"white_meat_steam": "Buharda beyaz et"
},
"name": "Program"
},
@ -570,7 +576,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Hızlı 20",
"hqd_quick_30": "Hızlı 30",
"hqd_quick_dry": "Hızlı kurutma",
"hqd_quick_dry": "Hızlı kurutma 30",
"hqd_quilt": "Yorganlar",
"hqd_refresh": "Yenileme",
"hqd_school_uniform": "Okul üniforması",
@ -1050,6 +1056,15 @@
},
"remaining_time": {
"name": "Kalan süre"
},
"ref_zones": {
"state": {
"fridge": "Buzdolabı",
"freezer": "Dondurucu",
"vtroom1": "My Zone",
"fridge_freezer": "Buzdolabı & Dondurucu"
},
"name": "Ocak gözü"
}
},
"switch": {
@ -1157,6 +1172,9 @@
},
"super_freeze": {
"name": "Super Freeze"
},
"refrigerator": {
"name": "Buzdolabı"
}
},
"binary_sensor": {
@ -1301,11 +1319,105 @@
"button": {
"induction_hob": {
"name": "İndüksiyonlu Ocak"
},
"start_program": {
"name": "Program Başlangıç"
},
"stop_program": {
"name": "Program Durdur"
}
},
"climate": {
"air_conditioner": {
"name": "Klima"
},
"fridge": {
"name": "Buzdolabı",
"state_attributes": {
"preset_mode": {
"name": "Buzdolabı modları",
"state": {
"auto_set": "Otomatik Ayarla",
"super_cool": "Super Cool",
"holiday": "Holiday",
"no_mode": "Hiç mod seçilmedi"
}
}
}
},
"freezer": {
"name": "Dondurucu",
"state_attributes": {
"preset_mode": {
"name": "Dondurucu modları",
"state": {
"auto_set": "Otomatik Ayarla",
"super_freeze": "Super Freeze",
"no_mode": "Hiç mod seçilmedi"
}
}
}
},
"oven": {
"name": "Fırın",
"state_attributes": {
"preset_mode": {
"name": "Programlar",
"state": {
"bakery": "Makarna ve Ekmek",
"bakery_steam": "Fırın buharı",
"bottom_heating": "Alt ısıtıcı",
"bottom_heating_fan": "Alt ısıtıcı + Fan",
"bread": "Ekmek",
"bread_steam": "Buharda pişmiş ekmek",
"combi": "Kombi",
"convection_fan": "Fan desteklı",
"convection_fan_turnspit": "Konveksiyon + Fan + Şiş Çevirme",
"conventional": "Statık",
"conventional_turnspit": "Konveksiyon + Şiş Çevirme",
"defrost": "Buz çözme",
"descaling": "Kireç çözme",
"fish": "Balık",
"fish_steam": "Balık buğulama",
"grill_cata": "Izgara",
"grill_fan_cata": "Izgara fan",
"grill_fan_pyro": "Izgara + Fan",
"grill_pyro": "Izgara",
"h20_clean": "H2O-Clean",
"iot_bread": "Ekmek",
"iot_h20_clean": "h2O clean",
"leavening": "Mayalama",
"low_temp_cooking": "Düşük Sıcaklıkta Pişirme",
"low_temp_cooking_fish": "Düşük Sıcaklıkta Pişirme - Balık",
"low_temp_cooking_fish_steam": "Düşük Isıda Pişirme - Balık buğulama",
"low_temp_cooking_meat": "Düşük Sıcaklıkta Pişirme - Et",
"low_temp_cooking_meat_steam": "Düşük Isıda Pişirme - Buharda et",
"low_temp_cooking_steam": "Düşük Sıcaklıkta Buharda Pişirme",
"meat": "Et",
"meat_steam": "Et buharı",
"multi_level": "Çok Seviyeli",
"paella": "Paella",
"pasta_and_bakery": "Makarna ve Ekmek",
"pizza": "Pizza",
"pyrolysis": "Piroliz",
"pyrolysis_plus": "Piroliz +",
"red_meat": "Kırmızı Et",
"red_meat_steam": "Buharda kırmızı et",
"regenerate": "Yeniden oluştur",
"soft_plus": "Yumuşak+",
"super_grill": "Süper Izgara",
"tailor_bake": "Tailor bake",
"tailor_bake_cata": "Tailor Bake",
"tailor_bake_pyro": "Tailor Bake",
"vegetables": "Sebzeler",
"vegetables_cata": "Sebzeler",
"vegetables_pyro": "Sebzeler",
"water_discharge": "Su Tahliyesi",
"white_meat": "Beyaz Et",
"white_meat_steam": "Buharda beyaz et"
}
}
}
}
}
},

View File

@ -409,6 +409,11 @@
"silent": "夜间",
"silent_care": "Silent Care",
"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_pw_prz": "特殊",
"steam": "蒸汽洗75°C",
@ -465,11 +470,12 @@
"programs_ov": {
"state": {
"bakery": "意大利面和烘焙食品",
"bakery_steam": "蒸烤的面包",
"bakery_steam": "烤炉蒸汽",
"bottom_heating": "底部加热 ",
"bottom_heating_fan": "底部加热 + 风扇",
"bread": "面包",
"bread_steam": "蒸烤的甜点",
"bread_steam": "蒸烤的面包",
"combi": "Combi",
"convection_fan": "对流 + 风扇",
"convection_fan_turnspit": "对流 + 风扇 + 烤叉",
"conventional": "对流",
@ -477,7 +483,7 @@
"defrost": "解冻",
"descaling": "除垢",
"fish": "鱼",
"fish_steam": "蒸煮的鱼",
"fish_steam": "蒸鱼",
"grill_cata": "烤架",
"grill_fan_cata": "烤架风扇",
"grill_fan_pyro": "烤架 + 风扇",
@ -488,12 +494,12 @@
"leavening": "发酵",
"low_temp_cooking": "低温烹饪",
"low_temp_cooking_fish": "低温烹饪 - 鱼类",
"low_temp_cooking_fish_steam": "低温蒸汽烹饪 - 鱼",
"low_temp_cooking_fish_steam": "低温烹饪 - 鱼",
"low_temp_cooking_meat": "低温烹饪 - 肉类",
"low_temp_cooking_meat_steam": "低温蒸汽烹饪 - 肉",
"low_temp_cooking_meat_steam": "低温烹饪 - 肉",
"low_temp_cooking_steam": "低温蒸汽烹饪",
"meat": "肉",
"meat_steam": "蒸煮的肉",
"meat_steam": "肉类蒸汽",
"multi_level": "多层",
"paella": "Paella",
"pasta_and_bakery": "意大利面和烘焙食品",
@ -501,8 +507,8 @@
"pyrolysis": "热解",
"pyrolysis_plus": "热解 +",
"red_meat": "红肉",
"red_meat_steam": "蒸煮的红肉",
"regenerate": "再",
"red_meat_steam": "蒸红肉",
"regenerate": "再加热",
"soft_plus": "软+",
"super_grill": "超级烤架",
"tailor_bake": "Tailor bake",
@ -513,7 +519,7 @@
"vegetables_pyro": "蔬菜",
"water_discharge": "排水",
"white_meat": "白肉",
"white_meat_steam": "蒸煮的白肉"
"white_meat_steam": "蒸白肉"
},
"name": "程序"
},
@ -1050,6 +1056,15 @@
},
"remaining_time": {
"name": "剩余时间"
},
"ref_zones": {
"state": {
"fridge": "冰箱",
"freezer": "冷藏箱",
"vtroom1": "My Zone",
"fridge_freezer": "冰箱 & 冷藏箱"
},
"name": "区域"
}
},
"switch": {
@ -1157,6 +1172,9 @@
},
"super_freeze": {
"name": "Super Freeze"
},
"refrigerator": {
"name": "冰箱"
}
},
"binary_sensor": {
@ -1206,7 +1224,7 @@
"name": "烤盘"
},
"remote_control": {
"name": "远程控制"
"name": "Control remoto"
},
"rinse_aid": {
"name": "漂洗助剂液位"
@ -1301,11 +1319,105 @@
"button": {
"induction_hob": {
"name": "电磁炉"
},
"start_program": {
"name": "程序 开始"
},
"stop_program": {
"name": "程序 停止"
}
},
"climate": {
"air_conditioner": {
"name": "空调"
},
"fridge": {
"name": "冰箱",
"state_attributes": {
"preset_mode": {
"name": "冰箱模式",
"state": {
"auto_set": "自动设置",
"super_cool": "Super Cool",
"holiday": "Holiday",
"no_mode": "未选择模式"
}
}
}
},
"freezer": {
"name": "冷藏箱",
"state_attributes": {
"preset_mode": {
"name": "冷藏室模式",
"state": {
"auto_set": "自动设置",
"super_freeze": "Super Freeze",
"no_mode": "未选择模式"
}
}
}
},
"oven": {
"name": "烤炉",
"state_attributes": {
"preset_mode": {
"name": "程序",
"state": {
"bakery": "意大利面和烘焙食品",
"bakery_steam": "烤炉蒸汽",
"bottom_heating": "底部加热 ",
"bottom_heating_fan": "底部加热 + 风扇",
"bread": "面包",
"bread_steam": "蒸烤的面包",
"combi": "Combi",
"convection_fan": "对流 + 风扇",
"convection_fan_turnspit": "对流 + 风扇 + 烤叉",
"conventional": "对流",
"conventional_turnspit": "对流 + 烤叉",
"defrost": "解冻",
"descaling": "除垢",
"fish": "鱼",
"fish_steam": "蒸鱼",
"grill_cata": "烤架",
"grill_fan_cata": "烤架风扇",
"grill_fan_pyro": "烤架 + 风扇",
"grill_pyro": "烤架",
"h20_clean": "H2O-Clean",
"iot_bread": "面包",
"iot_h20_clean": "h2O clean",
"leavening": "发酵",
"low_temp_cooking": "低温烹饪",
"low_temp_cooking_fish": "低温烹饪 - 鱼类",
"low_temp_cooking_fish_steam": "低温烹饪 - 蒸鱼",
"low_temp_cooking_meat": "低温烹饪 - 肉类",
"low_temp_cooking_meat_steam": "低温烹饪 - 蒸肉",
"low_temp_cooking_steam": "低温蒸汽烹饪",
"meat": "肉",
"meat_steam": "肉类蒸汽",
"multi_level": "多层",
"paella": "Paella",
"pasta_and_bakery": "意大利面和烘焙食品",
"pizza": "Pizza",
"pyrolysis": "热解",
"pyrolysis_plus": "热解 +",
"red_meat": "红肉",
"red_meat_steam": "蒸红肉",
"regenerate": "再加热",
"soft_plus": "软+",
"super_grill": "超级烤架",
"tailor_bake": "Tailor bake",
"tailor_bake_cata": "Tailor Bake",
"tailor_bake_pyro": "Tailor Bake",
"vegetables": "蔬菜",
"vegetables_cata": "蔬菜",
"vegetables_pyro": "蔬菜",
"water_discharge": "排水",
"white_meat": "白肉",
"white_meat_steam": "蒸白肉"
}
}
}
}
}
},

View File

@ -61,6 +61,7 @@ Support has been confirmed for these models, but many more will work. Please add
- Haier HWO60SM2F3XH
- Haier XIB 3B2SFS-80
- Haier XIB 6B2D3FB
- Candy BCTDH7A1TE
- Candy CIS633SCTTWIFI
- Candy CSOE C10DE-80
- Candy ROE H9A3TCEX-S
@ -72,6 +73,7 @@ Support has been confirmed for these models, but many more will work. Please add
- Hoover HFB 6B2S3FX
- Hoover HLE C10DCE-80
- Hoover HSOT3161WG
- Hoover HW 68AMC/1-80
- Hoover HWPD 69AMBC/1-S
- Hoover HWPS4954DAMR-11
- Hoover NDE H10A2TCE-80

View File

@ -26,6 +26,7 @@ SELECT = {
"dry_levels": const.TUMBLE_DRYER_DRY_LEVEL,
"eco_pilot": const.AC_HUMAN_SENSE,
"fan_mode": const.AC_FAN_MODE,
"ref_zones": const.REF_ZONES,
}
PROGRAMS = {
@ -43,6 +44,36 @@ PROGRAMS = {
},
}
CLIMATE = {
"fridge": {
"preset_mode": {
"name": "REF_CMD&CTRL.MODE_SELECTION_DRAWER_FRIDGE.FRIDGE_MODE_TITLE",
"state": {
"auto_set": "REF_CMD&CTRL.MODALITIES.ECO",
"super_cool": "REF_CMD&CTRL.MODALITIES.SUPER_COOL",
"holiday": "REF_CMD&CTRL.MODALITIES.BACK_FROM_HOLIDAY",
"no_mode": "REF_CMD&CTRL.MODALITIES.NO_MODE_SELECTED",
},
}
},
"freezer": {
"preset_mode": {
"name": "REF_CMD&CTRL.MODE_SELECTION_DRAWER_FREEZER.FREEZER_MODE_TITLE",
"state": {
"auto_set": "REF_CMD&CTRL.MODALITIES.ECO",
"super_freeze": "REF_CMD&CTRL.MODALITIES.SHOCK_FREEZE",
"no_mode": "REF_CMD&CTRL.MODALITIES.NO_MODE_SELECTED",
},
}
},
"oven": {
"preset_mode": {
"name": "OV.TABS.PROGRAMS_TITLE",
"state": "PROGRAMS.OV",
}
},
}
NAMES = {
"switch": {
"anti_crease": "HDRY_CMD&CTRL.PROGRAM_CYCLE_DETAIL.ANTICREASE_TITLE",
@ -85,6 +116,7 @@ NAMES = {
"auto_set": "REF_CMD&CTRL.MODALITIES.ECO",
"super_cool": "REF_CMD&CTRL.MODALITIES.SUPER_COOL",
"super_freeze": "REF_CMD&CTRL.MODALITIES.SUPER_FREEZE",
"refrigerator": "REF.NAME",
},
"binary_sensor": {
"door_lock": "WASHING_CMD&CTRL.CHECK_UP_RESULTS.DOOR_LOCK",
@ -116,6 +148,8 @@ NAMES = {
},
"button": {
"induction_hob": "GLOBALS.APPLIANCES_NAME.IH",
"start_program": ["WC.SET_PROGRAM.PROGRAM", "GLOBALS.GENERAL.START_ON"],
"stop_program": ["WC.SET_PROGRAM.PROGRAM", "GLOBALS.GENERAL.STOP"],
},
"select": {
"dry_levels": "WASHING_CMD&CTRL.DRAWER_CYCLE_DRYING.TAB_LEVEL",
@ -129,6 +163,7 @@ NAMES = {
"programs_wm": "WC.SET_PROGRAM.PROGRAM",
"eco_pilot": "AC.PROGRAM_DETAIL.ECO_PILOT",
"remaining_time": "ENROLLMENT_COMMON.GENERAL.REMAINING_TIME",
"ref_zones": "IH.COMMON.COIL",
},
"sensor": {
"dry_levels": "WASHING_CMD&CTRL.DRAWER_CYCLE_DRYING.TAB_LEVEL",
@ -192,7 +227,12 @@ NAMES = {
"freezer_temp_sel": ["OV.COMMON.GOAL_TEMPERATURE", "REF.ZONES.FREEZER"],
"fridge_temp_sel": ["OV.COMMON.GOAL_TEMPERATURE", "REF.ZONES.FRIDGE"],
},
"climate": {"air_conditioner": "GLOBALS.APPLIANCES_NAME.AC"},
"climate": {
"air_conditioner": "GLOBALS.APPLIANCES_NAME.AC",
"fridge": "REF.ZONES.FRIDGE",
"freezer": "REF.ZONES.FREEZER",
"oven": "GLOBALS.APPLIANCES_NAME.OV",
},
}
@ -293,6 +333,19 @@ def main():
for name, key in data.items():
select = old.setdefault("entity", {}).setdefault(entity, {})
select.setdefault(name, {})["name"] = load_key(key, original, fallback)
for name, modes in CLIMATE.items():
climate = old.setdefault("entity", {}).setdefault("climate", {})
attr = climate.setdefault(name, {}).setdefault("state_attributes", {})
for mode, data in modes.items():
mode_name = load_key(data["name"], original, fallback)
attr.setdefault(mode, {})["name"] = mode_name
if isinstance(data["state"], dict):
for state, key in data["state"].items():
mode_state = load_key(key, original, fallback)
attr[mode].setdefault("state", {})[state] = mode_state
else:
attr[mode]["state"] = load_keys(data["state"], original)
translate_login(old, original, fallback)
save_json(base_path / f"{language}.json", old)

View File

@ -14,7 +14,11 @@ from custom_components.hon.climate import CLIMATES
from custom_components.hon.number import NUMBERS
from custom_components.hon.select import SELECTS
from custom_components.hon.sensor import SENSORS
from custom_components.hon.switch import SWITCHES, HonSwitchEntityDescription
from custom_components.hon.switch import (
SWITCHES,
HonControlSwitchEntityDescription,
HonSwitchEntityDescription,
)
APPLIANCES = {
"AC": "Air conditioner",
@ -50,11 +54,7 @@ result = {}
for entity_type, appliances in entities.items():
for appliance, data in appliances.items():
for entity in data:
if (
isinstance(entity, HonSwitchEntityDescription)
and entity.entity_category != "config"
and "settings." not in entity.key
):
if isinstance(entity, HonControlSwitchEntityDescription):
key = f"{entity.turn_on_key}` / `{entity.turn_off_key}"
else:
key = entity.key
@ -62,7 +62,8 @@ for entity_type, appliances in entities.items():
category = (
"control"
if entity.key.startswith("settings")
or hasattr(entity, "turn_on_key")
or isinstance(entity, HonSwitchEntityDescription)
or isinstance(entity, HonControlSwitchEntityDescription)
or entity_type in ["button", "climate"]
else "sensor"
)