diff --git a/README.md b/README.md index 95cab8d..62cff86 100644 --- a/README.md +++ b/README.md @@ -251,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 | | --- | --- | --- | --- | diff --git a/custom_components/hon/climate.py b/custom_components/hon/climate.py index 9691633..d8d6f99 100644 --- a/custom_components/hon/climate.py +++ b/custom_components/hon/climate.py @@ -1,6 +1,8 @@ import logging from dataclasses import dataclass +from pyhon.appliance import HonAppliance + from homeassistant.components.climate import ( ClimateEntity, ClimateEntityDescription, @@ -17,13 +19,9 @@ 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 pyhon import helper -from pyhon.appliance import HonAppliance - from .const import HON_HVAC_MODE, HON_FAN, HON_HVAC_PROGRAM, DOMAIN from .hon import HonEntity @@ -36,8 +34,8 @@ class HonACClimateEntityDescription(ClimateEntityDescription): @dataclass -class HonREFClimateEntityDescription(ClimateEntityDescription): - pass +class HonClimateEntityDescription(ClimateEntityDescription): + mode: HVACMode = "auto" CLIMATES = { @@ -50,19 +48,30 @@ CLIMATES = { ), ), "REF": ( - HonREFClimateEntityDescription( + HonClimateEntityDescription( key="settings.tempSelZ1", + mode=HVACMode.COOL, name="Fridge", icon="mdi:thermometer", translation_key="fridge", ), - HonREFClimateEntityDescription( + 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", + ), + ), } @@ -74,10 +83,10 @@ async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> Non if description.key not in list(device.commands): continue entity = HonACClimateEntity(hass, entry, device, description) - elif isinstance(description, HonREFClimateEntityDescription): + elif isinstance(description, HonClimateEntityDescription): if description.key not in device.available_settings: continue - entity = HonREFClimateEntity(hass, entry, device, description) + entity = HonClimateEntity(hass, entry, device, description) else: continue await entity.coordinator.async_config_entry_first_refresh() @@ -90,7 +99,7 @@ class HonACClimateEntity(HonEntity, ClimateEntity): 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 @@ -114,11 +123,14 @@ class HonACClimateEntity(HonEntity, ClimateEntity): self._handle_coordinator_update(update=False) - async def async_set_hvac_mode(self, hvac_mode): + @property + def hvac_mode(self) -> HVACMode | str | None: if self._device.get("onOffStatus") == "0": - self._attr_hvac_mode = HVACMode.OFF + return HVACMode.OFF else: - self._attr_hvac_mode = HON_HVAC_MODE[self._device.get("machMode")] + 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() else: @@ -185,29 +197,38 @@ class HonACClimateEntity(HonEntity, ClimateEntity): self.async_write_ha_state() -class HonREFClimateEntity(HonEntity, ClimateEntity): +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._attr_target_temperature_step = PRECISION_WHOLE - self._attr_max_temp = device.settings[description.key].max - self._attr_min_temp = device.settings[description.key].min + self._set_temperature_bound() - self._attr_hvac_modes = [HVACMode.COOL] self._attr_supported_features = ( ClimateEntityFeature.TARGET_TEMPERATURE | ClimateEntityFeature.PRESET_MODE ) - self._handle_coordinator_update(update=False) + self._attr_hvac_modes = [description.mode] + if device.get("onOffStatus"): + self._attr_hvac_modes += [HVACMode.OFF] + modes = [] + else: + modes = ["no_mode"] - 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.""" @@ -226,35 +247,59 @@ class HonREFClimateEntity(HonEntity, ClimateEntity): 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.""" - return self._device.get(f"mode{self.entity_description.key[-2:]}", "no_mode") + 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.""" - if preset_mode == "no_mode": - self._device.sync_command("stopProgram", "settings") - await self.coordinator.async_refresh() - await self._device.commands["stopProgram"].send() - else: - self._device.settings["startProgram.program"].value = preset_mode - self._device.settings[ - "startProgram.zone" - ].value = self.entity_description.name.lower() - self._device.sync_command("startProgram", "settings") - await self.coordinator.async_refresh() - await self._device.commands["startProgram"].send() + 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 = int( - float(self._device.get(self.entity_description.key)) - ) - temp_key = self.entity_description.key.split(".")[-1].replace("Sel", "") - self._attr_current_temperature = int(self._device.get(temp_key)) - - self._attr_hvac_mode = HVACMode.COOL + 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() diff --git a/custom_components/hon/manifest.json b/custom_components/hon/manifest.json index ead2196..23f62da 100644 --- a/custom_components/hon/manifest.json +++ b/custom_components/hon/manifest.json @@ -9,7 +9,7 @@ "iot_class": "cloud_polling", "issue_tracker": "https://github.com/Andre0512/hon/issues", "requirements": [ - "pyhOn==0.11.2" + "pyhOn==0.11.3" ], - "version": "0.8.0-beta.6" + "version": "0.8.0-beta.7" } diff --git a/custom_components/hon/translations/cs.json b/custom_components/hon/translations/cs.json index a1bffee..8fba491 100644 --- a/custom_components/hon/translations/cs.json +++ b/custom_components/hon/translations/cs.json @@ -1357,6 +1357,67 @@ } } } + }, + "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" + } + } + } } } }, diff --git a/custom_components/hon/translations/de.json b/custom_components/hon/translations/de.json index 8384518..766ad3b 100644 --- a/custom_components/hon/translations/de.json +++ b/custom_components/hon/translations/de.json @@ -1357,6 +1357,67 @@ } } } + }, + "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" + } + } + } } } }, diff --git a/custom_components/hon/translations/el.json b/custom_components/hon/translations/el.json index 679e40f..9b6ae68 100644 --- a/custom_components/hon/translations/el.json +++ b/custom_components/hon/translations/el.json @@ -1357,6 +1357,67 @@ } } } + }, + "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": "Λευκό κρέας στον ατμό" + } + } + } } } }, diff --git a/custom_components/hon/translations/en.json b/custom_components/hon/translations/en.json index 9e73857..40d3135 100644 --- a/custom_components/hon/translations/en.json +++ b/custom_components/hon/translations/en.json @@ -1421,6 +1421,68 @@ } } } + }, + "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" + } + } + } } } } diff --git a/custom_components/hon/translations/es.json b/custom_components/hon/translations/es.json index 3fd9436..1627934 100644 --- a/custom_components/hon/translations/es.json +++ b/custom_components/hon/translations/es.json @@ -1357,6 +1357,67 @@ } } } + }, + "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" + } + } + } } } }, diff --git a/custom_components/hon/translations/fr.json b/custom_components/hon/translations/fr.json index e9a6d70..295e444 100644 --- a/custom_components/hon/translations/fr.json +++ b/custom_components/hon/translations/fr.json @@ -1357,6 +1357,67 @@ } } } + }, + "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" + } + } + } } } }, diff --git a/custom_components/hon/translations/he.json b/custom_components/hon/translations/he.json index 57754e5..482e079 100644 --- a/custom_components/hon/translations/he.json +++ b/custom_components/hon/translations/he.json @@ -805,6 +805,19 @@ } } } + }, + "oven": { + "name": "Oven", + "state_attributes": { + "preset_mode": { + "name": "Programs", + "state": { + "iot_h20_clean": "h2O clean", + "pizza": "Pizza", + "tailor_bake": "Tailor bake" + } + } + } } } }, diff --git a/custom_components/hon/translations/hr.json b/custom_components/hon/translations/hr.json index 21f0ee6..c8fb4bb 100644 --- a/custom_components/hon/translations/hr.json +++ b/custom_components/hon/translations/hr.json @@ -1357,6 +1357,67 @@ } } } + }, + "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" + } + } + } } } }, diff --git a/custom_components/hon/translations/it.json b/custom_components/hon/translations/it.json index 566185a..de21a0a 100644 --- a/custom_components/hon/translations/it.json +++ b/custom_components/hon/translations/it.json @@ -1409,6 +1409,67 @@ } } } + }, + "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" + } + } + } } } } diff --git a/custom_components/hon/translations/nl.json b/custom_components/hon/translations/nl.json index 4da4450..8ebc602 100644 --- a/custom_components/hon/translations/nl.json +++ b/custom_components/hon/translations/nl.json @@ -1357,6 +1357,67 @@ } } } + }, + "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" + } + } + } } } }, diff --git a/custom_components/hon/translations/pl.json b/custom_components/hon/translations/pl.json index d567c16..907c3dc 100644 --- a/custom_components/hon/translations/pl.json +++ b/custom_components/hon/translations/pl.json @@ -1357,6 +1357,67 @@ } } } + }, + "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" + } + } + } } } }, diff --git a/custom_components/hon/translations/pt.json b/custom_components/hon/translations/pt.json index c0194a8..e551803 100644 --- a/custom_components/hon/translations/pt.json +++ b/custom_components/hon/translations/pt.json @@ -1357,6 +1357,67 @@ } } } + }, + "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" + } + } + } } } }, diff --git a/custom_components/hon/translations/ro.json b/custom_components/hon/translations/ro.json index 2013abf..4973c91 100644 --- a/custom_components/hon/translations/ro.json +++ b/custom_components/hon/translations/ro.json @@ -1357,6 +1357,67 @@ } } } + }, + "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" + } + } + } } } }, diff --git a/custom_components/hon/translations/ru.json b/custom_components/hon/translations/ru.json index 9a9b6e0..7ea0195 100644 --- a/custom_components/hon/translations/ru.json +++ b/custom_components/hon/translations/ru.json @@ -1357,6 +1357,67 @@ } } } + }, + "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": "Белое мясо на пару" + } + } + } } } }, diff --git a/custom_components/hon/translations/sk.json b/custom_components/hon/translations/sk.json index d5c98b3..b94883c 100644 --- a/custom_components/hon/translations/sk.json +++ b/custom_components/hon/translations/sk.json @@ -1357,6 +1357,67 @@ } } } + }, + "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" + } + } + } } } }, diff --git a/custom_components/hon/translations/sl.json b/custom_components/hon/translations/sl.json index d8837bf..fde0ce7 100644 --- a/custom_components/hon/translations/sl.json +++ b/custom_components/hon/translations/sl.json @@ -1357,6 +1357,67 @@ } } } + }, + "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" + } + } + } } } }, diff --git a/custom_components/hon/translations/sr.json b/custom_components/hon/translations/sr.json index c33a825..09670fc 100644 --- a/custom_components/hon/translations/sr.json +++ b/custom_components/hon/translations/sr.json @@ -1357,6 +1357,67 @@ } } } + }, + "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" + } + } + } } } }, diff --git a/custom_components/hon/translations/tr.json b/custom_components/hon/translations/tr.json index 62e9eff..32dcbfa 100644 --- a/custom_components/hon/translations/tr.json +++ b/custom_components/hon/translations/tr.json @@ -1357,6 +1357,67 @@ } } } + }, + "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" + } + } + } } } }, diff --git a/custom_components/hon/translations/zh.json b/custom_components/hon/translations/zh.json index 4dd374e..90069c9 100644 --- a/custom_components/hon/translations/zh.json +++ b/custom_components/hon/translations/zh.json @@ -1357,6 +1357,67 @@ } } } + }, + "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": "蒸白肉" + } + } + } } } }, diff --git a/scripts/generate_translation.py b/scripts/generate_translation.py index c437420..6a57d05 100755 --- a/scripts/generate_translation.py +++ b/scripts/generate_translation.py @@ -66,6 +66,12 @@ CLIMATE = { }, } }, + "oven": { + "preset_mode": { + "name": "OV.TABS.PROGRAMS_TITLE", + "state": "PROGRAMS.OV", + } + }, } NAMES = { @@ -225,6 +231,7 @@ NAMES = { "air_conditioner": "GLOBALS.APPLIANCES_NAME.AC", "fridge": "REF.ZONES.FRIDGE", "freezer": "REF.ZONES.FREEZER", + "oven": "GLOBALS.APPLIANCES_NAME.OV", }, } @@ -332,9 +339,13 @@ def main(): for mode, data in modes.items(): mode_name = load_key(data["name"], original, fallback) attr.setdefault(mode, {})["name"] = mode_name - for state, key in data["state"].items(): - mode_state = load_key(key, original, fallback) - attr[mode].setdefault("state", {})[state] = mode_state + 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)