Compare commits

..

10 Commits

Author SHA1 Message Date
0b345e082b Bump version 2023-07-01 16:38:24 +02:00
0fec369746 Fix setting fan mode #84 2023-07-01 15:10:52 +02:00
3ed335d356 Add lock 2023-07-01 14:24:04 +02:00
269a521435 Add more translation keys for ap #72 2023-07-01 01:45:32 +02:00
3c747f9602 Add script to check missing translations 2023-07-01 01:44:23 +02:00
0cd4db0839 Fix missing value for number entities 2023-06-30 20:09:55 +02:00
e33a609d40 Update docs 2023-06-30 19:40:30 +02:00
97637ef244 Add light entity for lights 2023-06-30 19:36:36 +02:00
1d83162f7d Update issue templates 2023-06-29 22:29:10 +02:00
60ed8b4ec1 Read out version 2023-06-29 22:23:45 +02:00
37 changed files with 1096 additions and 348 deletions

View File

@ -25,12 +25,15 @@ If applicable, add screenshots to help explain your problem.
**Environment (please complete the following information):**
- Home Assistant Version: [e.g. `2023.6.1`]
- hOn Integration Version [e.g. `0.8.1`, can be found in HACS]
- hOn Integration Version [e.g. `0.8.1`, can be found in HACS or device log]
- pyhOn Version [e.g. `0.13.1`, can be found in device log]
**Additional context**
Add any other context about the problem here.
**Home Assistant Logs**
Check `System` -> `Logs` if you can find any logs related to this integration and post it here.
**Device Log**
Post your device info here (if available)
1. Enable the "Show Device Info" button
@ -39,7 +42,7 @@ _This button can be found in the diagnostic section of your device or in the ent
3. Open home assistant notifications and copy the message (Crtl+A, Ctrl+C)
**Data Archive**
For further analysis, please add your appliance data archive here.
For further analysis, please add your appliance data archive here (if available)
Navigate to `Settings` -> `Device & Services` -> `Haier hOn` -> _your device_ and press the _Create Data Archive_ button.
Then open notifications to download the data zip archive.
To attach the file:

View File

@ -26,7 +26,7 @@ _This button can be found in the diagnostic section of your device or in the ent
Add any other context or screenshots about the feature request here.
**Data Archive**
For further analysis, please add your appliance data archive here.
For further analysis, please add your appliance data archive here (if available)
Navigate to `Settings` -> `Device & Services` -> `Haier hOn` -> _your device_ and press the _Create Data Archive_ button.
Then open notifications to download the data zip archive.
To attach the file:

View File

@ -180,8 +180,7 @@ For every device exists a button under diagnostics which can be used to log all
| Aroma Time Off | `thermometer` | `number` | `settings.aromaTimeOff` |
| Aroma Time On | `thermometer` | `number` | `settings.aromaTimeOn` |
| Diffuser Level | | `select` | `settings.aromaStatus` |
| Light status | `lightbulb` | `number` | `settings.lightStatus` |
| Lock Status | | `switch` | `lockStatus` |
| Light status | | `light` | `settings.lightStatus` |
| Mode | `run` | `select` | `settings.machMode` |
| Pollen Level | | `number` | `settings.pollenLevel` |
| Touch Tone | | `switch` | `touchToneStatus` |
@ -192,15 +191,16 @@ For every device exists a button under diagnostics which can be used to log all
| CO Level | | `sensor` | `coLevel` |
| Error | `math-log` | `sensor` | `errors` |
| Humidity | | `sensor` | `humidityIndoor` |
| Lock Status | | `lock` | `lockStatus` |
| Main Filter Status | | `sensor` | `mainFilterStatus` |
| On | `power-cycle` | `binary_sensor` | `attributes.parameters.onOffStatus` |
| PM 10 | | `sensor` | `pm10ValueIndoor` |
| PM 2.5 | | `sensor` | `pm2p5ValueIndoor` |
| Pre Filter Status | | `sensor` | `preFilterStatus` |
| Temperature | | `sensor` | `temp` |
| Total Work Time | | `sensor` | `totalWorkTime` |
| VOC | | `sensor` | `vocValueIndoor` |
| Wind Speed | | `sensor` | `windSpeed` |
| pm10 | | `sensor` | `pm10ValueIndoor` |
| pm2p5 | | `sensor` | `pm2p5ValueIndoor` |
### Dish Washer
#### Controls
@ -258,7 +258,7 @@ For every device exists a button under diagnostics which can be used to log all
| Filter Cleaning Status | | `sensor` | `filterCleaningStatus` |
| Last Work Time | `clock-start` | `sensor` | `lastWorkTime` |
| Light Status | `lightbulb` | `sensor` | `lightStatus` |
| Light status | `lightbulb` | `number` | `startProgram.lightStatus` |
| Light status | | `light` | `startProgram.lightStatus` |
| Mach Mode | | `sensor` | `machMode` |
| On / Off Status | `lightbulb` | `sensor` | `onOffStatus` |
| Quick Delay Time Status | | `sensor` | `quickDelayTimeStatus` |
@ -294,8 +294,8 @@ For every device exists a button under diagnostics which can be used to log all
#### Controls
| Name | Icon | Entity | Key |
| --- | --- | --- | --- |
| Oven | `toaster-oven` | `switch` | `startProgram` / `stopProgram` |
| Oven | `thermometer` | `climate` | `settings.tempSel` |
| Oven | `toaster-oven` | `switch` | `startProgram` / `stopProgram` |
#### Configs
| Name | Icon | Entity | Key |
| --- | --- | --- | --- |
@ -391,7 +391,7 @@ For every device exists a button under diagnostics which can be used to log all
#### Controls
| Name | Icon | Entity | Key |
| --- | --- | --- | --- |
| Light | `lightbulb` | `switch` | `lightStatus` |
| Light | | `light` | `settings.lightStatus` |
| Sabbath Mode | `palm-tree` | `switch` | `sabbathStatus` |
| Wine Cellar | `thermometer` | `climate` | `settings.tempSel` |
| Wine Cellar | `thermometer` | `climate` | `settings.tempSelZ2` |

View File

@ -1,7 +1,6 @@
import logging
from pathlib import Path
import pkg_resources
from homeassistant.components import persistent_notification
from homeassistant.components.button import ButtonEntityDescription, ButtonEntity
from homeassistant.config_entries import ConfigEntry
@ -92,10 +91,14 @@ class HonDeviceInfo(HonEntity, ButtonEntity):
self._attr_icon = "mdi:information"
self._attr_name = "Show Device Info"
self._attr_entity_category = EntityCategory.DIAGNOSTIC
if "beta" not in self.coordinator.info.hon_version:
self._attr_entity_registry_enabled_default = False
async def async_press(self) -> None:
pyhon_version = pkg_resources.get_distribution("pyhon").version
info = f"{self._device.diagnose}pyhOnVersion: {pyhon_version}"
versions = "versions:\n"
versions += f" hon: {self.coordinator.info.hon_version}\n"
versions += f" pyhOn: {self.coordinator.info.pyhon_version}\n"
info = f"{self._device.diagnose}{versions}"
title = f"{self._device.nick_name} Device Info"
persistent_notification.create(
self._hass, f"````\n```\n{info}\n```\n````", title
@ -111,6 +114,8 @@ class HonDataArchive(HonEntity, ButtonEntity):
self._attr_icon = "mdi:archive-arrow-down"
self._attr_name = "Create Data Archive"
self._attr_entity_category = EntityCategory.DIAGNOSTIC
if "beta" not in self.coordinator.info.hon_version:
self._attr_entity_registry_enabled_default = False
async def async_press(self) -> None:
path = Path(self._hass.config.config_dir) / "www"

View File

@ -210,7 +210,7 @@ class HonACClimateEntity(HonEntity, ClimateEntity):
async def async_set_fan_mode(self, fan_mode):
mode_number = list(HON_FAN.values()).index(fan_mode)
mode = list(HON_FAN.keys())[mode_number]
self._device.settings["settings.windSpeed"].value = mode
self._device.settings["settings.windSpeed"].value = str(mode)
self._attr_fan_mode = fan_mode
await self._device.commands["settings"].send()
self.async_write_ha_state()

View File

@ -18,8 +18,28 @@ PLATFORMS = [
"binary_sensor",
"climate",
"fan",
"light",
"lock",
]
APPLIANCES = {
"AC": "Air Conditioner",
"AP": "Air Purifier",
"AS": "Air Scanner",
"DW": "Dish Washer",
"HO": "Hood",
"IH": "Induction Hob",
"MW": "Microwave",
"OV": "Oven",
"REF": "Fridge",
"RVC": "Robot Vacuum Cleaner",
"TD": "Tumble Dryer",
"WC": "Wine Cellar",
"WD": "Washer Dryer",
"WH": "Water Heater",
"WM": "Washing Machine",
}
HON_HVAC_MODE = {
0: HVACMode.AUTO,
1: HVACMode.COOL,

View File

@ -44,8 +44,9 @@ async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> Non
for device in hass.data[DOMAIN][entry.unique_id].appliances:
for description in FANS.get(device.appliance_type, []):
if isinstance(description, HonFanEntityDescription):
if description.key not in device.available_settings or device.get(
description.key.split(".")[-1] is None
if (
description.key not in device.available_settings
or device.get(description.key.split(".")[-1]) is None
):
continue
entity = HonFanEntity(hass, entry, device, description)

View File

@ -1,7 +1,10 @@
import json
import logging
from contextlib import suppress
from datetime import timedelta
from pathlib import Path
import pkg_resources
from homeassistant.core import callback
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.update_coordinator import CoordinatorEntity
@ -37,9 +40,7 @@ class HonEntity(CoordinatorEntity):
return DeviceInfo(
identifiers={(DOMAIN, self._device.unique_id)},
manufacturer=self._device.get("brand", ""),
name=self._device.nick_name
if self._device.nick_name
else self._device.model_name,
name=self._device.nick_name,
model=self._device.model_name,
sw_version=self._device.get("fwVersion", ""),
)
@ -50,6 +51,31 @@ class HonEntity(CoordinatorEntity):
self.async_write_ha_state()
class HonInfo:
def __init__(self):
self._manifest = self._get_manifest()
self._hon_version = self._manifest.get("version", "")
self._pyhon_version = pkg_resources.get_distribution("pyhon").version
@staticmethod
def _get_manifest():
manifest = Path(__file__).parent / "manifest.json"
with open(manifest, "r", encoding="utf-8") as file:
return json.loads(file.read())
@property
def manifest(self):
return self._manifest
@property
def hon_version(self):
return self._hon_version
@property
def pyhon_version(self):
return self._pyhon_version
class HonCoordinator(DataUpdateCoordinator):
def __init__(self, hass, device: HonAppliance):
"""Initialize my coordinator."""
@ -60,10 +86,15 @@ class HonCoordinator(DataUpdateCoordinator):
update_interval=timedelta(seconds=UPDATE_INTERVAL),
)
self._device = device
self._info = HonInfo()
async def _async_update_data(self):
await self._device.update()
@property
def info(self) -> HonInfo:
return self._info
def unique_entities(base_entities, new_entities):
result = list(base_entities)

View File

@ -0,0 +1,122 @@
import logging
from typing import Any
from homeassistant.components.light import (
LightEntityDescription,
LightEntity,
ColorMode,
ATTR_BRIGHTNESS,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import callback
from pyhon.appliance import HonAppliance
from pyhon.parameter.range import HonParameterRange
from .const import DOMAIN
from .hon import HonEntity
_LOGGER = logging.getLogger(__name__)
LIGHTS = {
"WC": (
LightEntityDescription(
key="settings.lightStatus",
name="Light",
translation_key="light",
),
),
"HO": (
LightEntityDescription(
key="startProgram.lightStatus",
name="Light status",
translation_key="light",
),
),
"AP": (
LightEntityDescription(
key="settings.lightStatus",
name="Light status",
translation_key="light",
),
),
}
async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None:
entities = []
for device in hass.data[DOMAIN][entry.unique_id].appliances:
for description in LIGHTS.get(device.appliance_type, []):
if (
description.key not in device.available_settings
or device.get(description.key.split(".")[-1]) is None
):
continue
entity = HonLightEntity(hass, entry, device, description)
await entity.coordinator.async_config_entry_first_refresh()
entities.append(entity)
async_add_entities(entities)
class HonLightEntity(HonEntity, LightEntity):
entity_description: LightEntityDescription
def __init__(self, hass, entry, device: HonAppliance, description) -> None:
light: HonParameterRange = device.settings.get(description.key)
self._light_range = (light.min, light.max)
self._attr_supported_color_modes: set[ColorMode] = set()
if len(light.values) == 2:
self._attr_supported_color_modes.add(ColorMode.ONOFF)
else:
self._attr_supported_color_modes.add(ColorMode.BRIGHTNESS)
self._command, self._parameter = description.key.split(".")
super().__init__(hass, entry, device, description)
self._handle_coordinator_update(update=False)
@property
def is_on(self) -> bool:
"""Return true if light is on."""
light = self._device.settings.get(self.entity_description.key)
return light.value != light.min
async def async_turn_on(self, **kwargs: Any) -> None:
"""Turn on or control the light."""
light: HonParameterRange = self._device.settings.get(
self.entity_description.key
)
if ColorMode.BRIGHTNESS in self._attr_supported_color_modes:
percent = int(100 / 255 * kwargs.get(ATTR_BRIGHTNESS, 128))
light.value = round(light.max / 100 * percent)
if light.value == light.min:
self._attr_is_on = False
self._attr_brightness = self.brightness
else:
light.value = light.max
await self._device.commands[self._command].send()
self.async_write_ha_state()
async def async_turn_off(self, **kwargs: Any) -> None:
"""Instruct the light to turn off."""
light: HonParameterRange = self._device.settings.get(
self.entity_description.key
)
light.value = light.min
await self._device.commands[self._command].send()
self.async_write_ha_state()
@property
def brightness(self) -> int | None:
"""Return the brightness of the light."""
light: HonParameterRange = self._device.settings.get(
self.entity_description.key
)
if light.value == light.min:
return None
return int(255 / light.max * light.value)
@callback
def _handle_coordinator_update(self, update=True) -> None:
self._attr_is_on = self.is_on
self._attr_brightness = self.brightness
if update:
self.async_write_ha_state()

View File

@ -0,0 +1,85 @@
import logging
from typing import Any
from homeassistant.components.lock import LockEntity, LockEntityDescription
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import callback
from pyhon.parameter.base import HonParameter
from pyhon.parameter.range import HonParameterRange
from .const import DOMAIN
from .hon import HonEntity
_LOGGER = logging.getLogger(__name__)
LOCKS: dict[str, tuple[LockEntityDescription, ...]] = {
"AP": (
LockEntityDescription(
key="lockStatus",
name="Lock Status",
translation_key="mode",
),
),
}
async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None:
entities = []
for device in hass.data[DOMAIN][entry.unique_id].appliances:
for description in LOCKS.get(device.appliance_type, []):
if (
f"settings.{description.key}" not in device.available_settings
or device.get(description.key) is None
):
continue
entity = HonLockEntity(hass, entry, device, description)
await entity.coordinator.async_config_entry_first_refresh()
entities.append(entity)
async_add_entities(entities)
class HonLockEntity(HonEntity, LockEntity):
entity_description: LockEntityDescription
@property
def is_locked(self) -> bool | None:
"""Return a boolean for the state of the lock."""
"""Return True if entity is on."""
return self._device.get(self.entity_description.key, 0) == 1
async def async_lock(self, **kwargs: Any) -> None:
"""Lock method."""
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_unlock(self, **kwargs: Any) -> None:
"""Unlock method."""
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."""
return (
super().available
and int(self._device.get("remoteCtrValid", 1)) == 1
and self._device.get("attributes.lastConnEvent.category") != "DISCONNECTED"
)
@callback
def _handle_coordinator_update(self, update=True) -> None:
value = self._device.get(self.entity_description.key, 0)
self._attr_is_locked = self.is_locked
if update:
self.async_write_ha_state()

View File

@ -9,7 +9,7 @@
"iot_class": "cloud_polling",
"issue_tracker": "https://github.com/Andre0512/hon/issues",
"requirements": [
"pyhOn==0.14.4"
"pyhOn==0.14.7"
],
"version": "0.9.0-beta.6"
"version": "0.9.0-beta.8"
}

View File

@ -162,13 +162,6 @@ NUMBERS: dict[str, tuple[NumberEntityDescription, ...]] = {
translation_key="freezer_temp_sel",
),
),
"HO": (
HonNumberEntityDescription(
key="startProgram.lightStatus",
name="Light status",
icon="mdi:lightbulb",
),
),
"AP": (
HonNumberEntityDescription(
key="settings.aromaTimeOn",
@ -182,14 +175,10 @@ NUMBERS: dict[str, tuple[NumberEntityDescription, ...]] = {
icon="mdi:thermometer",
native_unit_of_measurement=UnitOfTime.SECONDS,
),
HonNumberEntityDescription(
key="settings.lightStatus",
name="Light status",
icon="mdi:lightbulb",
),
HonNumberEntityDescription(
key="settings.pollenLevel",
name="Pollen Level",
translation_key="pollen_level",
),
),
}
@ -264,6 +253,10 @@ class HonNumberEntity(HonEntity, NumberEntity):
class HonConfigNumberEntity(HonNumberEntity):
entity_description: HonConfigNumberEntityDescription
@property
def native_value(self) -> float | None:
return self._device.settings[self.entity_description.key].value
async def async_set_native_value(self, value: str) -> None:
setting = self._device.settings[self.entity_description.key]
if isinstance(setting, HonParameterRange):

View File

@ -138,12 +138,14 @@ SELECTS = {
key="settings.aromaStatus",
name="Diffuser Level",
option_list=const.AP_DIFFUSER_LEVEL,
translation_key="diffuser",
),
HonSelectEntityDescription(
key="settings.machMode",
name="Mode",
icon="mdi:run",
option_list=const.AP_MACH_MODE,
translation_key="mode",
),
),
}

View File

@ -12,7 +12,6 @@ from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
PERCENTAGE,
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
CONCENTRATION_PARTS_PER_BILLION,
CONCENTRATION_PARTS_PER_MILLION,
)
from homeassistant.const import (
@ -719,14 +718,14 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
),
HonSensorEntityDescription(
key="pm10ValueIndoor",
name="pm10",
name="PM 10",
state_class=SensorStateClass.MEASUREMENT,
device_class=SensorDeviceClass.PM10,
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
),
HonSensorEntityDescription(
key="pm2p5ValueIndoor",
name="pm2p5",
name="PM 2.5",
state_class=SensorStateClass.MEASUREMENT,
device_class=SensorDeviceClass.PM25,
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
@ -736,7 +735,8 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
name="VOC",
state_class=SensorStateClass.MEASUREMENT,
device_class=SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS,
native_unit_of_measurement=CONCENTRATION_PARTS_PER_BILLION,
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
translation_key="voc",
),
HonSensorEntityDescription(
key="humidityIndoor",

View File

@ -329,18 +329,12 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = {
icon="mdi:palm-tree",
translation_key="holiday_mode",
),
HonSwitchEntityDescription(
key="lightStatus", name="Light", icon="mdi:lightbulb"
),
),
"AP": (
HonSwitchEntityDescription(
key="touchToneStatus",
name="Touch Tone",
),
HonSwitchEntityDescription(
key="lockStatus",
name="Lock Status",
translation_key="touch_tone",
),
),
}

View File

@ -97,7 +97,9 @@
"59_min": "Rychlý 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Aut. Hygienický",
"auto_plus": "AutoPlus",
"auto_rapid": "Aut. Rychlý",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Auto univerzální 50 -60°C",
@ -346,7 +348,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rychlý 20",
"hqd_quick_30": "Rychlý 30",
"hqd_quick_dry": "Rychlé sušení 30",
"hqd_quick_dry": "Rychlé sušení 30'",
"hqd_quilt": "Deky",
"hqd_refresh": "Osvěžení",
"hqd_school_uniform": "Školní uniformy",
@ -855,6 +857,9 @@
},
"fridge_temp": {
"name": "Teplota chladničky"
},
"voc": {
"name": "Plyn (VOC)"
}
},
"select": {
@ -922,7 +927,9 @@
"59_min": "Rychlý 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Aut. Hygienický",
"auto_plus": "AutoPlus",
"auto_rapid": "Aut. Rychlý",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Auto univerzální 50 -60°C",
@ -1171,7 +1178,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rychlý 20",
"hqd_quick_30": "Rychlý 30",
"hqd_quick_dry": "Rychlé sušení 30",
"hqd_quick_dry": "Rychlé sušení 30'",
"hqd_quilt": "Deky",
"hqd_refresh": "Osvěžení",
"hqd_school_uniform": "Školní uniformy",
@ -1599,6 +1606,12 @@
},
"remaining_time": {
"name": "Zbývající čas"
},
"diffuser": {
"name": "Difuzér"
},
"mode": {
"name": "Režim"
}
},
"switch": {
@ -1642,7 +1655,7 @@
"name": "Trouba"
},
"prewash": {
"name": "Předpírka\r\r\r\r\r\r\r\n"
"name": "Předpírka"
},
"pause": {
"name": "Pozastavit"
@ -1709,6 +1722,9 @@
},
"night_mode": {
"name": "Noční režim"
},
"touch_tone": {
"name": "Hlasitost tónu klepnutí"
}
},
"binary_sensor": {
@ -1764,7 +1780,7 @@
"name": "Zapnout"
},
"prewash": {
"name": "Předpírka\r\r\r\r\r\r\r\n"
"name": "Předpírka"
},
"buzzer": {
"name": "Zvuková signalizace konce cyklu"
@ -1838,6 +1854,9 @@
},
"fridge_temp_sel": {
"name": "Cílová teplota Chladnička"
},
"pollen_level": {
"name": "Hladina pylu"
}
},
"climate": {
@ -1978,6 +1997,11 @@
"air_extraction": {
"name": "Odsávání vzduchu"
}
},
"light": {
"light": {
"name": "Světlo"
}
}
},
"config": {

View File

@ -97,7 +97,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_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "AutoUniversal 50-60°C",
@ -346,7 +348,7 @@
"hqd_precious_cure": "Precious Cure",
"hqd_quick_20": "Schnell 20",
"hqd_quick_30": "Schnell 30",
"hqd_quick_dry": "Schnell trocken 30",
"hqd_quick_dry": "Schnell trocken 30'",
"hqd_quilt": "Steppdecken",
"hqd_refresh": "Auffrischen",
"hqd_school_uniform": "Schuluniform",
@ -855,6 +857,9 @@
},
"fridge_temp": {
"name": "Temperatur des Kühlschranks"
},
"voc": {
"name": "Gas (VOC)"
}
},
"select": {
@ -922,7 +927,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_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "AutoUniversal 50-60°C",
@ -1171,7 +1178,7 @@
"hqd_precious_cure": "Precious Cure",
"hqd_quick_20": "Schnell 20",
"hqd_quick_30": "Schnell 30",
"hqd_quick_dry": "Schnell trocken 30",
"hqd_quick_dry": "Schnell trocken 30'",
"hqd_quilt": "Steppdecken",
"hqd_refresh": "Auffrischen",
"hqd_school_uniform": "Schuluniform",
@ -1599,6 +1606,12 @@
},
"remaining_time": {
"name": "Verbleibende Zeit"
},
"diffuser": {
"name": "Luftverteiler"
},
"mode": {
"name": "Modus"
}
},
"switch": {
@ -1709,6 +1722,9 @@
},
"night_mode": {
"name": "Nachtmodus"
},
"touch_tone": {
"name": "Tastentonlautstärke"
}
},
"binary_sensor": {
@ -1838,6 +1854,9 @@
},
"fridge_temp_sel": {
"name": "Zieltemperatur Kühlschrank"
},
"pollen_level": {
"name": "Pollenkonzentration"
}
},
"climate": {
@ -1978,6 +1997,11 @@
"air_extraction": {
"name": "Dunstabzug"
}
},
"light": {
"light": {
"name": "Licht"
}
}
},
"config": {

View File

@ -97,7 +97,9 @@
"59_min": "Γρηγορο 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Αυτοματη Υγιεινη",
"auto_plus": "AutoPlus",
"auto_rapid": "Αυτοματο Γρηγορο",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "αυτοματο Universal 50 - 60°C",
@ -346,7 +348,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Γρήγορα 20",
"hqd_quick_30": "Γρήγορα 30",
"hqd_quick_dry": "Γρήγορο στέγνωμα 30",
"hqd_quick_dry": "Γρήγορο στέγνωμα 30'",
"hqd_quilt": "Παπλώματα",
"hqd_refresh": "Φρεσκάρισμα",
"hqd_school_uniform": "Σχολική στολή",
@ -855,6 +857,9 @@
},
"fridge_temp": {
"name": "Θερμοκρασία ψυγείου"
},
"voc": {
"name": "Αέριο (VOC)"
}
},
"select": {
@ -922,7 +927,9 @@
"59_min": "Γρηγορο 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Αυτοματη Υγιεινη",
"auto_plus": "AutoPlus",
"auto_rapid": "Αυτοματο Γρηγορο",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "αυτοματο Universal 50 - 60°C",
@ -1171,7 +1178,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Γρήγορα 20",
"hqd_quick_30": "Γρήγορα 30",
"hqd_quick_dry": "Γρήγορο στέγνωμα 30",
"hqd_quick_dry": "Γρήγορο στέγνωμα 30'",
"hqd_quilt": "Παπλώματα",
"hqd_refresh": "Φρεσκάρισμα",
"hqd_school_uniform": "Σχολική στολή",
@ -1599,6 +1606,12 @@
},
"remaining_time": {
"name": "Χρόνος που απομένει"
},
"diffuser": {
"name": "Διαχύτης"
},
"mode": {
"name": "Mode"
}
},
"switch": {
@ -1709,6 +1722,9 @@
},
"night_mode": {
"name": "Νυχτερινή λειτουργία"
},
"touch_tone": {
"name": "Ένταση τόνου αφής"
}
},
"binary_sensor": {
@ -1838,6 +1854,9 @@
},
"fridge_temp_sel": {
"name": "Στοχευμένη θερμοκρασία Ψυγείο"
},
"pollen_level": {
"name": "Επίπεδο γύρης"
}
},
"climate": {
@ -1978,6 +1997,11 @@
"air_extraction": {
"name": "Εξαγωγή αέρα"
}
},
"light": {
"light": {
"name": "Φως"
}
}
},
"config": {

View File

@ -360,8 +360,8 @@
"hqd_outdoor": "Outdoor",
"hqd_precious_cure": "Precious Cure",
"hqd_quick_20": "Quick 20m",
"hqd_quick_30": "Quick 30m",
"hqd_quick_dry": "Quick dry (30 min)",
"hqd_quick_30": "Quick 30'",
"hqd_quick_dry": "Quick dry 30'",
"hqd_quilt": "Quilts",
"hqd_refresh": "Refresh",
"hqd_school_uniform": "School Uniform",
@ -399,7 +399,7 @@
"iot_dry_lingerie": "Lingerie",
"iot_dry_mixed": "Mixed",
"iot_dry_playsuits": "Playsuits",
"iot_dry_rapid_30": "Rapid 30m",
"iot_dry_rapid_30": "Rapid 30'",
"iot_dry_rapid_59": "Rapid 59'",
"iot_dry_refresh": "Refresh",
"iot_dry_regenerates_waterproof": "Regenerates Waterproof",
@ -699,6 +699,7 @@
"iot_wash_wool": "Wool",
"jeans": "Jeans",
"jeans_60": "Jeans",
"jeans_60_steam": "Jeans + Steam",
"low_dry": "Low Heat Dry",
"mixed": "Mixed",
"mixed_and_colored_59": "Mixed and Colored 59'",
@ -876,6 +877,9 @@
},
"fridge_temp": {
"name": "Fridge temperature"
},
"voc": {
"name": "Gas (VOC)"
}
},
"select": {
@ -1198,8 +1202,8 @@
"hqd_outdoor": "Outdoor",
"hqd_precious_cure": "Precious Cure",
"hqd_quick_20": "Quick 20m",
"hqd_quick_30": "Quick 30m",
"hqd_quick_dry": "Quick dry (30 min)",
"hqd_quick_30": "Quick 30'",
"hqd_quick_dry": "Quick dry 30'",
"hqd_quilt": "Quilts",
"hqd_refresh": "Refresh",
"hqd_school_uniform": "School Uniform",
@ -1237,7 +1241,7 @@
"iot_dry_lingerie": "Lingerie",
"iot_dry_mixed": "Mixed",
"iot_dry_playsuits": "Playsuits",
"iot_dry_rapid_30": "Rapid 30m",
"iot_dry_rapid_30": "Rapid 30'",
"iot_dry_rapid_59": "Rapid 59'",
"iot_dry_refresh": "Refresh",
"iot_dry_regenerates_waterproof": "Regenerates Waterproof",
@ -1537,6 +1541,7 @@
"iot_wash_wool": "Wool",
"jeans": "Jeans",
"jeans_60": "Jeans",
"jeans_60_steam": "Jeans + Steam",
"low_dry": "Low Heat Dry",
"mixed": "Mixed",
"mixed_and_colored_59": "Mixed and Colored 59'",
@ -1628,6 +1633,12 @@
},
"remaining_time": {
"name": "Time remaining"
},
"diffuser": {
"name": "Diffuser"
},
"mode": {
"name": "Mode"
}
},
"switch": {
@ -1738,6 +1749,9 @@
},
"night_mode": {
"name": "Night mode"
},
"touch_tone": {
"name": "Touch tone volume"
}
},
"binary_sensor": {
@ -1867,6 +1881,9 @@
},
"fridge_temp_sel": {
"name": "Target temperature Fridge"
},
"pollen_level": {
"name": "Pollen level"
}
},
"climate": {
@ -2009,6 +2026,11 @@
"air_extraction": {
"name": "Air extraction"
}
},
"light": {
"light": {
"name": "Light"
}
}
},
"config": {

View File

@ -97,7 +97,9 @@
"59_min": "Rápido 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Auto Hygiene",
"auto_plus": "AutoPlus",
"auto_rapid": "Auto Rapid",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Auto Universal 50 - 60°C",
@ -346,7 +348,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rápido 20",
"hqd_quick_30": "Rápido 30",
"hqd_quick_dry": "Secado rápido 30",
"hqd_quick_dry": "Secado rápido 30'",
"hqd_quilt": "Colchas",
"hqd_refresh": "Refrescar",
"hqd_school_uniform": "Uniformes escolares",
@ -855,6 +857,9 @@
},
"fridge_temp": {
"name": "Temperatura del frigorífico"
},
"voc": {
"name": "Gas (COV)"
}
},
"select": {
@ -922,7 +927,9 @@
"59_min": "Rápido 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Auto Hygiene",
"auto_plus": "AutoPlus",
"auto_rapid": "Auto Rapid",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Auto Universal 50 - 60°C",
@ -1171,7 +1178,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rápido 20",
"hqd_quick_30": "Rápido 30",
"hqd_quick_dry": "Secado rápido 30",
"hqd_quick_dry": "Secado rápido 30'",
"hqd_quilt": "Colchas",
"hqd_refresh": "Refrescar",
"hqd_school_uniform": "Uniformes escolares",
@ -1599,6 +1606,12 @@
},
"remaining_time": {
"name": "Tiempo restante"
},
"diffuser": {
"name": "Difusor"
},
"mode": {
"name": "Modo"
}
},
"switch": {
@ -1709,6 +1722,9 @@
},
"night_mode": {
"name": "Modo nocturno"
},
"touch_tone": {
"name": "Volumen del tono táctil"
}
},
"binary_sensor": {
@ -1838,6 +1854,9 @@
},
"fridge_temp_sel": {
"name": "Temperatura deseada Frigorífico"
},
"pollen_level": {
"name": "Nivel de polen"
}
},
"climate": {
@ -1978,6 +1997,11 @@
"air_extraction": {
"name": "Extracción de aire"
}
},
"light": {
"light": {
"name": "Luz"
}
}
},
"config": {

View File

@ -97,7 +97,9 @@
"59_min": "Rapide 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Auto Hygiène",
"auto_plus": "AutoPlus",
"auto_rapid": "Auto Rapide",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Auto universel 50 - 60°C",
@ -346,7 +348,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rapide 20",
"hqd_quick_30": "Rapide 30",
"hqd_quick_dry": "Séchage rapide 30",
"hqd_quick_dry": "Séchage rapide 30'",
"hqd_quilt": "Couvertures",
"hqd_refresh": "Rafraîchissement",
"hqd_school_uniform": "Uniforme scolaire",
@ -372,7 +374,7 @@
"iot_dry_cotton": "Coton",
"iot_dry_cuddly_toys": "Jouets en peluche",
"iot_dry_curtains": "Rideaux",
"iot_dry_dehumidifier": "Élimination de l\\'humidité",
"iot_dry_dehumidifier": "Élimination de l'humidité",
"iot_dry_delicates": "Délicats",
"iot_dry_delicate_tablecloths": "Nappes délicates",
"iot_dry_denim_jeans": "Denim - jeans",
@ -386,7 +388,7 @@
"iot_dry_playsuits": "Combinaisons",
"iot_dry_rapid_30": "Rapid 30",
"iot_dry_rapid_59": "Rapide 59'.",
"iot_dry_refresh": "Coup d\\'éclat",
"iot_dry_refresh": "Coup d'éclat",
"iot_dry_regenerates_waterproof": "Imperméabilisant",
"iot_dry_relax_creases": "Anti-plis",
"iot_dry_shirts": "Chemises",
@ -488,7 +490,7 @@
"hqd_quick_15": "Rapide 15'",
"hqd_quick_wash_57": "Lavage rapide 57 min",
"hqd_rapid_wash_and_dry": "Lavage et séchage",
"hqd_refresh": "Coup d\\'éclat",
"hqd_refresh": "Coup d'éclat",
"hqd_rinse": "Rinçage",
"hqd_shirts": "Chemises",
"hqd_smart": "Smart A.I.",
@ -522,7 +524,7 @@
"iot_dry_cotton_dry": "Séchage du coton",
"iot_dry_cuddly_toys": "Animaux en peluche",
"iot_dry_curtains": "Rideaux",
"iot_dry_dehumidifier": "Élimination de l\\'humidité",
"iot_dry_dehumidifier": "Élimination de l'humidité",
"iot_dry_delicates_antiallergy": "Délicat - anti-allergique",
"iot_dry_delicate_tablecloths": "Nappes délicates",
"iot_dry_denim_jeans": "Denim - Jeans",
@ -855,6 +857,9 @@
},
"fridge_temp": {
"name": "Température du réfrigérateur"
},
"voc": {
"name": "COV gazeux"
}
},
"select": {
@ -922,7 +927,9 @@
"59_min": "Rapide 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Auto Hygiène",
"auto_plus": "AutoPlus",
"auto_rapid": "Auto Rapide",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Auto universel 50 - 60°C",
@ -1171,7 +1178,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rapide 20",
"hqd_quick_30": "Rapide 30",
"hqd_quick_dry": "Séchage rapide 30",
"hqd_quick_dry": "Séchage rapide 30'",
"hqd_quilt": "Couvertures",
"hqd_refresh": "Rafraîchissement",
"hqd_school_uniform": "Uniforme scolaire",
@ -1197,7 +1204,7 @@
"iot_dry_cotton": "Coton",
"iot_dry_cuddly_toys": "Jouets en peluche",
"iot_dry_curtains": "Rideaux",
"iot_dry_dehumidifier": "Élimination de l\\'humidité",
"iot_dry_dehumidifier": "Élimination de l'humidité",
"iot_dry_delicates": "Délicats",
"iot_dry_delicate_tablecloths": "Nappes délicates",
"iot_dry_denim_jeans": "Denim - jeans",
@ -1211,7 +1218,7 @@
"iot_dry_playsuits": "Combinaisons",
"iot_dry_rapid_30": "Rapid 30",
"iot_dry_rapid_59": "Rapide 59'.",
"iot_dry_refresh": "Coup d\\'éclat",
"iot_dry_refresh": "Coup d'éclat",
"iot_dry_regenerates_waterproof": "Imperméabilisant",
"iot_dry_relax_creases": "Anti-plis",
"iot_dry_shirts": "Chemises",
@ -1313,7 +1320,7 @@
"hqd_quick_15": "Rapide 15'",
"hqd_quick_wash_57": "Lavage rapide 57 min",
"hqd_rapid_wash_and_dry": "Lavage et séchage",
"hqd_refresh": "Coup d\\'éclat",
"hqd_refresh": "Coup d'éclat",
"hqd_rinse": "Rinçage",
"hqd_shirts": "Chemises",
"hqd_smart": "Smart A.I.",
@ -1347,7 +1354,7 @@
"iot_dry_cotton_dry": "Séchage du coton",
"iot_dry_cuddly_toys": "Animaux en peluche",
"iot_dry_curtains": "Rideaux",
"iot_dry_dehumidifier": "Élimination de l\\'humidité",
"iot_dry_dehumidifier": "Élimination de l'humidité",
"iot_dry_delicates_antiallergy": "Délicat - anti-allergique",
"iot_dry_delicate_tablecloths": "Nappes délicates",
"iot_dry_denim_jeans": "Denim - Jeans",
@ -1599,6 +1606,12 @@
},
"remaining_time": {
"name": "Temps restant"
},
"diffuser": {
"name": "Diffuseur"
},
"mode": {
"name": "Mode"
}
},
"switch": {
@ -1709,6 +1722,9 @@
},
"night_mode": {
"name": "Mode nuit"
},
"touch_tone": {
"name": "Volume des tonalités"
}
},
"binary_sensor": {
@ -1838,6 +1854,9 @@
},
"fridge_temp_sel": {
"name": "Température cible Réfrigérateur"
},
"pollen_level": {
"name": "Niveau de pollen"
}
},
"climate": {
@ -1978,6 +1997,11 @@
"air_extraction": {
"name": "Extraction de l'air"
}
},
"light": {
"light": {
"name": "Luminosité"
}
}
},
"config": {

View File

@ -413,6 +413,9 @@
},
"fridge_temp": {
"name": "Fridge temperature"
},
"voc": {
"name": "Gas (VOC)"
}
},
"select": {
@ -724,6 +727,12 @@
},
"remaining_time": {
"name": "זמן שנותר"
},
"diffuser": {
"name": "Diffuser"
},
"mode": {
"name": "Mode"
}
},
"switch": {
@ -834,6 +843,9 @@
},
"night_mode": {
"name": "Night mode"
},
"touch_tone": {
"name": "Touch tone volume"
}
},
"binary_sensor": {
@ -963,6 +975,9 @@
},
"fridge_temp_sel": {
"name": "Target temperature Fridge"
},
"pollen_level": {
"name": "Pollen level"
}
},
"climate": {
@ -1030,6 +1045,11 @@
"air_extraction": {
"name": "Air extraction"
}
},
"light": {
"light": {
"name": "Light"
}
}
},
"config": {

View File

@ -97,7 +97,9 @@
"59_min": "Brzi 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Automatska Higijena",
"auto_plus": "AutoPlus",
"auto_rapid": "Automatski Brzi",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Automatski univerzalni 50 - 60°C",
@ -346,7 +348,7 @@
"hqd_precious_cure": "Precious Cure",
"hqd_quick_20": "Brzo 20",
"hqd_quick_30": "Brzo 30",
"hqd_quick_dry": "Brzo sušenje 30",
"hqd_quick_dry": "Brzo sušenje 30'",
"hqd_quilt": "Popluni",
"hqd_refresh": "Protiv neugodnih mirisa",
"hqd_school_uniform": "Školska uniforma",
@ -855,6 +857,9 @@
},
"fridge_temp": {
"name": "Temperatura hladnjaka"
},
"voc": {
"name": "Plinovi (HOS-ovi)"
}
},
"select": {
@ -922,7 +927,9 @@
"59_min": "Brzi 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Automatska Higijena",
"auto_plus": "AutoPlus",
"auto_rapid": "Automatski Brzi",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Automatski univerzalni 50 - 60°C",
@ -1171,7 +1178,7 @@
"hqd_precious_cure": "Precious Cure",
"hqd_quick_20": "Brzo 20",
"hqd_quick_30": "Brzo 30",
"hqd_quick_dry": "Brzo sušenje 30",
"hqd_quick_dry": "Brzo sušenje 30'",
"hqd_quilt": "Popluni",
"hqd_refresh": "Protiv neugodnih mirisa",
"hqd_school_uniform": "Školska uniforma",
@ -1599,6 +1606,12 @@
},
"remaining_time": {
"name": "Preostalo vrijeme"
},
"diffuser": {
"name": "Raspršivač"
},
"mode": {
"name": "Mode"
}
},
"switch": {
@ -1709,6 +1722,9 @@
},
"night_mode": {
"name": "Noćni način rada"
},
"touch_tone": {
"name": "Glasnoća tona pri dodiru"
}
},
"binary_sensor": {
@ -1838,6 +1854,9 @@
},
"fridge_temp_sel": {
"name": "Ciljana temperatura Hladnjak"
},
"pollen_level": {
"name": "Razina peludi"
}
},
"climate": {
@ -1978,6 +1997,11 @@
"air_extraction": {
"name": "Odvođenje zraka"
}
},
"light": {
"light": {
"name": "Svjetlo"
}
}
},
"config": {

View File

@ -97,7 +97,9 @@
"59_min": "Rapido 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Auto Igiene",
"auto_plus": "AutoPlus",
"auto_rapid": "Auto Rapido",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Auto Universale 50 - 60°C",
@ -345,8 +347,8 @@
"hqd_outdoor": "Outdoor",
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rapido 20m",
"hqd_quick_30": "Rapido 30m",
"hqd_quick_dry": "Asciugatura veloce (30 min)",
"hqd_quick_30": "Rapido 30'",
"hqd_quick_dry": "Asciugatura veloce 30'",
"hqd_quilt": "Trapunte",
"hqd_refresh": "Refresh",
"hqd_school_uniform": "Uniforme scolastica",
@ -384,7 +386,7 @@
"iot_dry_lingerie": "Lingerie",
"iot_dry_mixed": "Misti",
"iot_dry_playsuits": "Tutine",
"iot_dry_rapid_30": "Rapido 30m",
"iot_dry_rapid_30": "Rapido 30'",
"iot_dry_rapid_59": "Rapido 59'.",
"iot_dry_refresh": "Rinfresca",
"iot_dry_regenerates_waterproof": "Rigenera Tessuti Impermeabili",
@ -860,6 +862,9 @@
},
"fridge_temp": {
"name": "Temperatura del frigorifero"
},
"voc": {
"name": "Gas (VOC)"
}
},
"select": {
@ -927,7 +932,9 @@
"59_min": "Rapido 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Auto Igiene",
"auto_plus": "AutoPlus",
"auto_rapid": "Auto Rapido",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Auto Universale 50 - 60°C",
@ -1175,8 +1182,8 @@
"hqd_outdoor": "Outdoor",
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rapido 20m",
"hqd_quick_30": "Rapido 30m",
"hqd_quick_dry": "Asciugatura veloce (30 min)",
"hqd_quick_30": "Rapido 30'",
"hqd_quick_dry": "Asciugatura veloce 30'",
"hqd_quilt": "Trapunte",
"hqd_refresh": "Refresh",
"hqd_school_uniform": "Uniforme scolastica",
@ -1214,7 +1221,7 @@
"iot_dry_lingerie": "Lingerie",
"iot_dry_mixed": "Misti",
"iot_dry_playsuits": "Tutine",
"iot_dry_rapid_30": "Rapido 30m",
"iot_dry_rapid_30": "Rapido 30'",
"iot_dry_rapid_59": "Rapido 59'.",
"iot_dry_refresh": "Rinfresca",
"iot_dry_regenerates_waterproof": "Rigenera Tessuti Impermeabili",
@ -1604,6 +1611,12 @@
},
"remaining_time": {
"name": "Tempo rimanente"
},
"diffuser": {
"name": "Diffusore"
},
"mode": {
"name": "Modalità"
}
},
"switch": {
@ -1714,6 +1727,9 @@
},
"night_mode": {
"name": "Modalità notte"
},
"touch_tone": {
"name": "Volume Tasti"
}
},
"binary_sensor": {
@ -1843,6 +1859,9 @@
},
"fridge_temp_sel": {
"name": "Temperatura target Frigorifero"
},
"pollen_level": {
"name": "Livello di polline"
}
},
"climate": {
@ -1983,6 +2002,11 @@
"air_extraction": {
"name": "Aspirazione aria"
}
},
"light": {
"light": {
"name": "Illuminazione"
}
}
},
"config": {

View File

@ -97,7 +97,9 @@
"59_min": "Snel 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Auto Hygiene",
"auto_plus": "AutoPlus",
"auto_rapid": "Auto Rapid",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Auto universeel 50 - 60°C",
@ -346,7 +348,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Quick 20",
"hqd_quick_30": "Quick 30",
"hqd_quick_dry": "Quick dry 30",
"hqd_quick_dry": "Quick dry 30'",
"hqd_quilt": "Quilts",
"hqd_refresh": "Opfrissen",
"hqd_school_uniform": "Schooluniform",
@ -855,6 +857,9 @@
},
"fridge_temp": {
"name": "Koelkasttemperatuur"
},
"voc": {
"name": "Gas (VOC)"
}
},
"select": {
@ -922,7 +927,9 @@
"59_min": "Snel 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Auto Hygiene",
"auto_plus": "AutoPlus",
"auto_rapid": "Auto Rapid",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Auto universeel 50 - 60°C",
@ -1171,7 +1178,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Quick 20",
"hqd_quick_30": "Quick 30",
"hqd_quick_dry": "Quick dry 30",
"hqd_quick_dry": "Quick dry 30'",
"hqd_quilt": "Quilts",
"hqd_refresh": "Opfrissen",
"hqd_school_uniform": "Schooluniform",
@ -1599,6 +1606,12 @@
},
"remaining_time": {
"name": "Resterende tijd"
},
"diffuser": {
"name": "Diffuser"
},
"mode": {
"name": "Modus"
}
},
"switch": {
@ -1709,6 +1722,9 @@
},
"night_mode": {
"name": "Nachtmodus"
},
"touch_tone": {
"name": "Volume van geluid bij aanraking"
}
},
"binary_sensor": {
@ -1838,6 +1854,9 @@
},
"fridge_temp_sel": {
"name": "Doeltemperatuur Koelkast"
},
"pollen_level": {
"name": "Pollenniveau"
}
},
"climate": {
@ -1978,6 +1997,11 @@
"air_extraction": {
"name": "Luchtafvoer"
}
},
"light": {
"light": {
"name": "Licht"
}
}
},
"config": {

View File

@ -97,7 +97,9 @@
"59_min": "Szybki 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Auto Hygiene",
"auto_plus": "AutoPlus",
"auto_rapid": "Auto Rapid",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Auto Universalny 50 - 60°C",
@ -346,7 +348,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Szybkie 20",
"hqd_quick_30": "Szybkie 30",
"hqd_quick_dry": "Szybkoschnące 30",
"hqd_quick_dry": "Szybkoschnące 30'",
"hqd_quilt": "Kołdry",
"hqd_refresh": "Odświeżanie",
"hqd_school_uniform": "Mundurek szkolny",
@ -855,6 +857,9 @@
},
"fridge_temp": {
"name": "Temperatura lodówki"
},
"voc": {
"name": "Gaz (VOC)"
}
},
"select": {
@ -922,7 +927,9 @@
"59_min": "Szybki 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Auto Hygiene",
"auto_plus": "AutoPlus",
"auto_rapid": "Auto Rapid",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Auto Universalny 50 - 60°C",
@ -1171,7 +1178,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Szybkie 20",
"hqd_quick_30": "Szybkie 30",
"hqd_quick_dry": "Szybkoschnące 30",
"hqd_quick_dry": "Szybkoschnące 30'",
"hqd_quilt": "Kołdry",
"hqd_refresh": "Odświeżanie",
"hqd_school_uniform": "Mundurek szkolny",
@ -1599,6 +1606,12 @@
},
"remaining_time": {
"name": "Pozostały czas"
},
"diffuser": {
"name": "Dyfuzor"
},
"mode": {
"name": "Tryb"
}
},
"switch": {
@ -1709,6 +1722,9 @@
},
"night_mode": {
"name": "Tryb nocny"
},
"touch_tone": {
"name": "Dźwięk przycisku dotykowego"
}
},
"binary_sensor": {
@ -1838,6 +1854,9 @@
},
"fridge_temp_sel": {
"name": "Temperatura docelowa Lodówka"
},
"pollen_level": {
"name": "Poziom pyłków"
}
},
"climate": {
@ -1978,6 +1997,11 @@
"air_extraction": {
"name": "Wyciąg powietrza"
}
},
"light": {
"light": {
"name": "Światło"
}
}
},
"config": {

View File

@ -97,7 +97,9 @@
"59_min": "Rápido 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Auto Hygiene",
"auto_plus": "AutoPlus",
"auto_rapid": "Auto Rapid",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Auto Universal 50 - 60°C",
@ -346,7 +348,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rápido 20",
"hqd_quick_30": "Rápido 30",
"hqd_quick_dry": "Secagem rápida 30",
"hqd_quick_dry": "Secagem rápida 30'",
"hqd_quilt": "Colchas",
"hqd_refresh": "Refrescar",
"hqd_school_uniform": "Farda da escola",
@ -855,6 +857,9 @@
},
"fridge_temp": {
"name": "Temperatura do frigorífico"
},
"voc": {
"name": "Gás (VOC)"
}
},
"select": {
@ -922,7 +927,9 @@
"59_min": "Rápido 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Auto Hygiene",
"auto_plus": "AutoPlus",
"auto_rapid": "Auto Rapid",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Auto Universal 50 - 60°C",
@ -1171,7 +1178,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rápido 20",
"hqd_quick_30": "Rápido 30",
"hqd_quick_dry": "Secagem rápida 30",
"hqd_quick_dry": "Secagem rápida 30'",
"hqd_quilt": "Colchas",
"hqd_refresh": "Refrescar",
"hqd_school_uniform": "Farda da escola",
@ -1599,6 +1606,12 @@
},
"remaining_time": {
"name": "Tempo restante"
},
"diffuser": {
"name": "Difusor"
},
"mode": {
"name": "Modo"
}
},
"switch": {
@ -1709,6 +1722,9 @@
},
"night_mode": {
"name": "Modo noturno"
},
"touch_tone": {
"name": "Volume do tom de toque"
}
},
"binary_sensor": {
@ -1838,6 +1854,9 @@
},
"fridge_temp_sel": {
"name": "Temperatura alvo Frigorífico"
},
"pollen_level": {
"name": "Nível de pólenes"
}
},
"climate": {
@ -1978,6 +1997,11 @@
"air_extraction": {
"name": "Extração de ar"
}
},
"light": {
"light": {
"name": "Luz"
}
}
},
"config": {

View File

@ -97,7 +97,9 @@
"59_min": "Rapid 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Autoigienă",
"auto_plus": "AutoPlus",
"auto_rapid": "Auto Rapid",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Auto Universal 50 - 60°C",
@ -346,7 +348,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rapid 20",
"hqd_quick_30": "Rapid 30",
"hqd_quick_dry": "Uscare rapidă 30",
"hqd_quick_dry": "Uscare rapidă 30'",
"hqd_quilt": "Pilote",
"hqd_refresh": "Reîmprospătare",
"hqd_school_uniform": "Uniformă școlară",
@ -855,6 +857,9 @@
},
"fridge_temp": {
"name": "Temperatura frigiderului"
},
"voc": {
"name": "Gaze (COV)"
}
},
"select": {
@ -922,7 +927,9 @@
"59_min": "Rapid 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Autoigienă",
"auto_plus": "AutoPlus",
"auto_rapid": "Auto Rapid",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Auto Universal 50 - 60°C",
@ -1171,7 +1178,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Rapid 20",
"hqd_quick_30": "Rapid 30",
"hqd_quick_dry": "Uscare rapidă 30",
"hqd_quick_dry": "Uscare rapidă 30'",
"hqd_quilt": "Pilote",
"hqd_refresh": "Reîmprospătare",
"hqd_school_uniform": "Uniformă școlară",
@ -1599,6 +1606,12 @@
},
"remaining_time": {
"name": "Timp rămas"
},
"diffuser": {
"name": "Difuzor"
},
"mode": {
"name": "Mode"
}
},
"switch": {
@ -1709,6 +1722,9 @@
},
"night_mode": {
"name": "Modul noapte"
},
"touch_tone": {
"name": "Volum la atingerea tastelor"
}
},
"binary_sensor": {
@ -1838,6 +1854,9 @@
},
"fridge_temp_sel": {
"name": "Temperatură vizată Frigider"
},
"pollen_level": {
"name": "Nivel polen"
}
},
"climate": {
@ -1978,6 +1997,11 @@
"air_extraction": {
"name": "Extracția aerului"
}
},
"light": {
"light": {
"name": "Lumină"
}
}
},
"config": {

View File

@ -97,7 +97,9 @@
"59_min": "Быcтрая Мойkа 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Автоочистка",
"auto_plus": "AutoPlus",
"auto_rapid": "Быстрая Автомойка",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "авто универсальная 50 - 60°C",
@ -346,7 +348,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Быстрая 20",
"hqd_quick_30": "Быстрая 30",
"hqd_quick_dry": "Быстрая сушка 30",
"hqd_quick_dry": "Быстрая сушка 30'",
"hqd_quilt": "Стеганые одеяла",
"hqd_refresh": "Освежение",
"hqd_school_uniform": "Школьная форма",
@ -855,6 +857,9 @@
},
"fridge_temp": {
"name": "Температура в холодильнике"
},
"voc": {
"name": "Газ (ЛОС)"
}
},
"select": {
@ -922,7 +927,9 @@
"59_min": "Быcтрая Мойkа 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Автоочистка",
"auto_plus": "AutoPlus",
"auto_rapid": "Быстрая Автомойка",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "авто универсальная 50 - 60°C",
@ -1171,7 +1178,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Быстрая 20",
"hqd_quick_30": "Быстрая 30",
"hqd_quick_dry": "Быстрая сушка 30",
"hqd_quick_dry": "Быстрая сушка 30'",
"hqd_quilt": "Стеганые одеяла",
"hqd_refresh": "Освежение",
"hqd_school_uniform": "Школьная форма",
@ -1599,6 +1606,12 @@
},
"remaining_time": {
"name": "Оставшееся время"
},
"diffuser": {
"name": "Распылитель"
},
"mode": {
"name": "Режим"
}
},
"switch": {
@ -1709,6 +1722,9 @@
},
"night_mode": {
"name": "Ночной режим"
},
"touch_tone": {
"name": "Громкость сенсорных кнопок"
}
},
"binary_sensor": {
@ -1838,6 +1854,9 @@
},
"fridge_temp_sel": {
"name": "Заданная температура Холодильник"
},
"pollen_level": {
"name": "Уровень пыльцы в воздухе"
}
},
"climate": {
@ -1978,6 +1997,11 @@
"air_extraction": {
"name": "Отвод воздуха"
}
},
"light": {
"light": {
"name": "Свет"
}
}
},
"config": {

View File

@ -97,7 +97,9 @@
"59_min": "Rýchly 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Automatická Hygiena",
"auto_plus": "AutoPlus",
"auto_rapid": "Auto Rapid",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Auto univerzálny 50 -60°C",
@ -346,7 +348,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 30",
"hqd_quick_dry": "Rýchle sušenie 30'",
"hqd_quilt": "Prikrývky",
"hqd_refresh": "Osvieženie",
"hqd_school_uniform": "Školská uniforma",
@ -855,6 +857,9 @@
},
"fridge_temp": {
"name": "Teplota chladničky"
},
"voc": {
"name": "Plyn (VOC)"
}
},
"select": {
@ -922,7 +927,9 @@
"59_min": "Rýchly 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Automatická Hygiena",
"auto_plus": "AutoPlus",
"auto_rapid": "Auto Rapid",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Auto univerzálny 50 -60°C",
@ -1171,7 +1178,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 30",
"hqd_quick_dry": "Rýchle sušenie 30'",
"hqd_quilt": "Prikrývky",
"hqd_refresh": "Osvieženie",
"hqd_school_uniform": "Školská uniforma",
@ -1599,6 +1606,12 @@
},
"remaining_time": {
"name": "Zostávajúci čas"
},
"diffuser": {
"name": "Difuzér"
},
"mode": {
"name": "Mode"
}
},
"switch": {
@ -1709,6 +1722,9 @@
},
"night_mode": {
"name": "Nočný režim"
},
"touch_tone": {
"name": "Hlasitosť tónu dotyku"
}
},
"binary_sensor": {
@ -1838,6 +1854,9 @@
},
"fridge_temp_sel": {
"name": "Cieľová teplota Chladnička"
},
"pollen_level": {
"name": "Úroveň peľu"
}
},
"climate": {
@ -1978,6 +1997,11 @@
"air_extraction": {
"name": "Odsávanie vzduchu"
}
},
"light": {
"light": {
"name": "Osvetlenie"
}
}
},
"config": {

View File

@ -97,7 +97,9 @@
"59_min": "Hitri progr. 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Auto Higiena",
"auto_plus": "AutoPlus",
"auto_rapid": "Avtomatsko Hitro",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Samodejno univerzalno 5060 °C",
@ -346,7 +348,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Hitro 20",
"hqd_quick_30": "Hitro 30",
"hqd_quick_dry": "Hitro sušenje 30",
"hqd_quick_dry": "Hitro sušenje 30'",
"hqd_quilt": "Posteljna pregrinjala",
"hqd_refresh": "Osvežitev",
"hqd_school_uniform": "Šolska uniforma",
@ -855,6 +857,9 @@
},
"fridge_temp": {
"name": "Temperatura hladilnika"
},
"voc": {
"name": "Lahkohlapne organske spojine (HOS)"
}
},
"select": {
@ -922,7 +927,9 @@
"59_min": "Hitri progr. 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Auto Higiena",
"auto_plus": "AutoPlus",
"auto_rapid": "Avtomatsko Hitro",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Samodejno univerzalno 5060 °C",
@ -1171,7 +1178,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Hitro 20",
"hqd_quick_30": "Hitro 30",
"hqd_quick_dry": "Hitro sušenje 30",
"hqd_quick_dry": "Hitro sušenje 30'",
"hqd_quilt": "Posteljna pregrinjala",
"hqd_refresh": "Osvežitev",
"hqd_school_uniform": "Šolska uniforma",
@ -1599,6 +1606,12 @@
},
"remaining_time": {
"name": "Time remaining"
},
"diffuser": {
"name": "Razpršilnik"
},
"mode": {
"name": "Mode"
}
},
"switch": {
@ -1709,6 +1722,9 @@
},
"night_mode": {
"name": "Nočni način"
},
"touch_tone": {
"name": "Glasnost tona dotika"
}
},
"binary_sensor": {
@ -1838,6 +1854,9 @@
},
"fridge_temp_sel": {
"name": "Ciljna temperatura Hladilnik"
},
"pollen_level": {
"name": "Raven cvetnega prahu"
}
},
"climate": {
@ -1978,6 +1997,11 @@
"air_extraction": {
"name": "Odvajanje zraka"
}
},
"light": {
"light": {
"name": "Osvetljava"
}
}
},
"config": {

View File

@ -97,7 +97,9 @@
"59_min": "Brzi 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Automatska Higijena",
"auto_plus": "AutoPlus",
"auto_rapid": "Automatski Brzi",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Automatski univerzalni 50 - 60°C",
@ -346,7 +348,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Brzo 20",
"hqd_quick_30": "Brzo 30",
"hqd_quick_dry": "Brzo sušenje 30",
"hqd_quick_dry": "Brzo sušenje 30'",
"hqd_quilt": "Jorgani",
"hqd_refresh": "Osvežavanje",
"hqd_school_uniform": "Školska uniforma",
@ -855,6 +857,9 @@
},
"fridge_temp": {
"name": "Temperatura frižidera"
},
"voc": {
"name": "Gas (VOC)"
}
},
"select": {
@ -922,7 +927,9 @@
"59_min": "Brzi 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Automatska Higijena",
"auto_plus": "AutoPlus",
"auto_rapid": "Automatski Brzi",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Automatski univerzalni 50 - 60°C",
@ -1171,7 +1178,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Brzo 20",
"hqd_quick_30": "Brzo 30",
"hqd_quick_dry": "Brzo sušenje 30",
"hqd_quick_dry": "Brzo sušenje 30'",
"hqd_quilt": "Jorgani",
"hqd_refresh": "Osvežavanje",
"hqd_school_uniform": "Školska uniforma",
@ -1599,6 +1606,12 @@
},
"remaining_time": {
"name": "Preostalo vreme"
},
"diffuser": {
"name": "Difuzor"
},
"mode": {
"name": "Mode"
}
},
"switch": {
@ -1709,6 +1722,9 @@
},
"night_mode": {
"name": "Noćni režim"
},
"touch_tone": {
"name": "Jačina tona dodira"
}
},
"binary_sensor": {
@ -1838,6 +1854,9 @@
},
"fridge_temp_sel": {
"name": "Željena temperatura Frižider"
},
"pollen_level": {
"name": "Nivo polena u vazduhu"
}
},
"climate": {
@ -1978,6 +1997,11 @@
"air_extraction": {
"name": "Usisavanje vazduha"
}
},
"light": {
"light": {
"name": "Svetlo"
}
}
},
"config": {

View File

@ -97,7 +97,9 @@
"59_min": "Hizli 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Oto. Hijyen",
"auto_plus": "AutoPlus",
"auto_rapid": "Oto. Rapid",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Universal 50-60°C",
@ -346,7 +348,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Hızlı 20",
"hqd_quick_30": "Hızlı 30",
"hqd_quick_dry": "Hızlı kurutma 30",
"hqd_quick_dry": "Hızlı kurutma 30'",
"hqd_quilt": "Yorganlar",
"hqd_refresh": "Yenileme",
"hqd_school_uniform": "Okul üniforması",
@ -855,6 +857,9 @@
},
"fridge_temp": {
"name": "Buzdolabı sıcaklığı"
},
"voc": {
"name": "Gaz (VOC)"
}
},
"select": {
@ -922,7 +927,9 @@
"59_min": "Hizli 59'",
"auto_care": "Auto Care",
"auto_care_soil": "Auto Care",
"auto_hygiene": "Oto. Hijyen",
"auto_plus": "AutoPlus",
"auto_rapid": "Oto. Rapid",
"auto_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "Universal 50-60°C",
@ -1171,7 +1178,7 @@
"hqd_precious_cure": "Precious cure",
"hqd_quick_20": "Hızlı 20",
"hqd_quick_30": "Hızlı 30",
"hqd_quick_dry": "Hızlı kurutma 30",
"hqd_quick_dry": "Hızlı kurutma 30'",
"hqd_quilt": "Yorganlar",
"hqd_refresh": "Yenileme",
"hqd_school_uniform": "Okul üniforması",
@ -1599,6 +1606,12 @@
},
"remaining_time": {
"name": "Kalan süre"
},
"diffuser": {
"name": "Difüzör"
},
"mode": {
"name": "Mode"
}
},
"switch": {
@ -1709,6 +1722,9 @@
},
"night_mode": {
"name": "Gece modu"
},
"touch_tone": {
"name": "Dokunma tonu seviyesi"
}
},
"binary_sensor": {
@ -1838,6 +1854,9 @@
},
"fridge_temp_sel": {
"name": "Hedef sıcaklık Buzdolabı"
},
"pollen_level": {
"name": "Polen seviyesi"
}
},
"climate": {
@ -1978,6 +1997,11 @@
"air_extraction": {
"name": "Hava tahliyesi"
}
},
"light": {
"light": {
"name": "Işık"
}
}
},
"config": {

View File

@ -97,7 +97,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_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "自动通用50℃-60℃",
@ -500,7 +502,7 @@
"hygiene_60": "卫生 60°",
"hygiene_plus_59": "卫生增强 59 分",
"hygiene_plus_59_min": "卫生增强 59 分",
"hygiene_pro_49_min": "Hygiene Pro 49 min",
"hygiene_pro_49_min": "49 分钟卫生专家",
"hygiene_pro_steam": "Hygiene Pro + 蒸汽",
"intensive_40": "加强 40°C",
"intensive_40_steam": "Intensive 40°C + 蒸汽",
@ -855,6 +857,9 @@
},
"fridge_temp": {
"name": "冰箱温度"
},
"voc": {
"name": "气体VOC)"
}
},
"select": {
@ -922,7 +927,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_sensor": "Auto Sensor",
"auto_sensor_soil": "Auto Sensor",
"auto_universal": "自动通用50℃-60℃",
@ -1325,7 +1332,7 @@
"hygiene_60": "卫生 60°",
"hygiene_plus_59": "卫生增强 59 分",
"hygiene_plus_59_min": "卫生增强 59 分",
"hygiene_pro_49_min": "Hygiene Pro 49 min",
"hygiene_pro_49_min": "49 分钟卫生专家",
"hygiene_pro_steam": "Hygiene Pro + 蒸汽",
"intensive_40": "加强 40°C",
"intensive_40_steam": "Intensive 40°C + 蒸汽",
@ -1599,6 +1606,12 @@
},
"remaining_time": {
"name": "剩余时间"
},
"diffuser": {
"name": "扩散器"
},
"mode": {
"name": "Mode"
}
},
"switch": {
@ -1709,6 +1722,9 @@
},
"night_mode": {
"name": "夜间模式"
},
"touch_tone": {
"name": "按键音量"
}
},
"binary_sensor": {
@ -1838,6 +1854,9 @@
},
"fridge_temp_sel": {
"name": "目标温度 冰箱"
},
"pollen_level": {
"name": "花粉水平"
}
},
"climate": {
@ -1978,6 +1997,11 @@
"air_extraction": {
"name": "抽气"
}
},
"light": {
"light": {
"name": "照明"
}
}
},
"config": {

49
scripts/check.py Executable file
View File

@ -0,0 +1,49 @@
#!/usr/bin/env python
import sys
from pathlib import Path
if __name__ == "__main__":
sys.path.insert(0, str(Path(__file__).parent.parent))
from custom_components.hon.binary_sensor import BINARY_SENSORS
from custom_components.hon.button import BUTTONS
from custom_components.hon.climate import CLIMATES
from custom_components.hon.fan import FANS
from custom_components.hon.light import LIGHTS
from custom_components.hon.lock import LOCKS
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
entities = {
"binary_sensor": BINARY_SENSORS,
"button": BUTTONS,
"climate": CLIMATES,
"fan": FANS,
"light": LIGHTS,
"lock": LOCKS,
"number": NUMBERS,
"select": SELECTS,
"sensor": SENSORS,
"switch": SWITCHES,
}
def get_missing_translation_keys():
result = {}
for entity_type, appliances in entities.items():
for appliance, data in appliances.items():
for entity in data:
if entity.translation_key:
continue
key = f"{entity_type}.{entity.key}"
result.setdefault(appliance, []).append(key)
return result
if __name__ == "__main__":
for appliance, data in sorted(get_missing_translation_keys().items()):
for key in data:
print(f"WARNING - {appliance} - Missing translation key for {key}")

View File

@ -8,48 +8,35 @@ from pathlib import Path
if __name__ == "__main__":
sys.path.insert(0, str(Path(__file__).parent.parent))
from custom_components.hon.const import APPLIANCES
from custom_components.hon.binary_sensor import BINARY_SENSORS
from custom_components.hon.button import BUTTONS
from custom_components.hon.climate import CLIMATES
from custom_components.hon.fan import FANS
from custom_components.hon.light import LIGHTS
from custom_components.hon.lock import LOCKS
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.fan import FANS
from custom_components.hon.switch import (
SWITCHES,
HonControlSwitchEntityDescription,
HonSwitchEntityDescription,
)
APPLIANCES = {
"AC": "Air Conditioner",
"AP": "Air Purifier",
"AS": "Air Scanner",
"DW": "Dish Washer",
"HO": "Hood",
"IH": "Induction Hob",
"MW": "Microwave",
"OV": "Oven",
"REF": "Fridge",
"RVC": "Robot Vacuum Cleaner",
"TD": "Tumble Dryer",
"WC": "Wine Cellar",
"WD": "Washer Dryer",
"WH": "Water Heater",
"WM": "Washing Machine",
}
ENTITY_CATEGORY_SORT = ["control", "config", "sensor"]
entities = {
"binary_sensor": BINARY_SENSORS,
"button": BUTTONS,
"climate": CLIMATES,
"fan": FANS,
"light": LIGHTS,
"lock": LOCKS,
"number": NUMBERS,
"select": SELECTS,
"sensor": SENSORS,
"switch": SWITCHES,
"climate": CLIMATES,
"fan": FANS,
}
result = {}

View File

@ -216,6 +216,7 @@ NAMES = {
"super_cool": "REF_CMD&CTRL.MODALITIES.SUPER_COOL",
"super_freeze": "REF_CMD&CTRL.MODALITIES.SUPER_FREEZE",
"refrigerator": "REF.NAME",
"touch_tone": "AP.FOOTER_MENU_MORE.TOUCH_TONE_VOLUME",
},
"binary_sensor": {
"door_lock": "WASHING_CMD&CTRL.CHECK_UP_RESULTS.DOOR_LOCK",
@ -265,6 +266,8 @@ NAMES = {
"eco_pilot": "AC.PROGRAM_DETAIL.ECO_PILOT",
"remaining_time": "ENROLLMENT_COMMON.GENERAL.REMAINING_TIME",
"ref_zones": "IH.COMMON.COIL",
"diffuser": "AP.TITLES.DIFFUSER",
"mode": "CUBE90_GLOBAL.GENERAL.MODE",
},
"sensor": {
"dry_levels": "WASHING_CMD&CTRL.DRAWER_CYCLE_DRYING.TAB_LEVEL",
@ -320,6 +323,7 @@ NAMES = {
"programs_wm": "WC.SET_PROGRAM.PROGRAM",
"programs_ac": "WC.SET_PROGRAM.PROGRAM",
"programs_ref": "WC.SET_PROGRAM.PROGRAM",
"voc": "HINTS.WHAT_POLLUTES_THE_AIR_IN_OUR_HOMES.GAS_VOC_TITLE",
},
"number": {
"power_management": "HINTS.COOKING_WITH_INDUCTION.POWER_MANAGEMENT",
@ -334,6 +338,7 @@ NAMES = {
"steam_level": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.STEAM_LEVEL",
"freezer_temp_sel": ["OV.COMMON.GOAL_TEMPERATURE", "REF.ZONES.FREEZER"],
"fridge_temp_sel": ["OV.COMMON.GOAL_TEMPERATURE", "REF.ZONES.FRIDGE"],
"pollen_level": "AP.AIR_QUALITY.POLLEN_LEVEL",
},
"climate": {
"air_conditioner": "GLOBALS.APPLIANCES_NAME.AC",
@ -342,4 +347,5 @@ NAMES = {
"oven": "GLOBALS.APPLIANCES_NAME.OV",
},
"fan": {"air_extraction": "HO.DASHBOARD.AIR_EXTRACTION_TITLE"},
"light": {"light": "WC.DASHBOARD_MENU_MORE.LIGHT"},
}