Compare commits
	
		
			29 Commits
		
	
	
		
			v0.7.1
			...
			v0.8.0-bet
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| cb660fa9e0 | |||
| a8762367ed | |||
| 696dc136eb | |||
| e9d1bb2056 | |||
| 9518031f24 | |||
| bf1a6e8fe2 | |||
| 833c395c97 | |||
| d963086dbf | |||
| 29238d3d08 | |||
| a4ec3290ba | |||
| d39deba973 | |||
| fae4c4c879 | |||
| 617ea0f99a | |||
| 81676771c7 | |||
| 604cf1b3c6 | |||
| 9a65eaba77 | |||
| e777fe1ec9 | |||
| 845adc75c9 | |||
| 17d4d14ead | |||
| 593d3912af | |||
| aefe2cf88d | |||
| 146e710881 | |||
| 0afbfe997d | |||
| 6828f3e9a8 | |||
| a56d3e5f88 | |||
| 240dc85ff3 | |||
| 44794c35ca | |||
| a5c7b99569 | |||
| 6935f5f07f | 
							
								
								
									
										189
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										189
									
								
								README.md
									
									
									
									
									
								
							| @ -1,18 +1,20 @@ | |||||||
| # Haier hOn | # Haier hOn | ||||||
| [](https://hacs.xyz) | [](https://hacs.xyz) | ||||||
| [](https://github.com/Andre0512/hon/releases/latest) | [](https://github.com/Andre0512/hon/releases/latest) | ||||||
|  | [](https://github.com/Andre0512/pyhOn) | ||||||
| [](https://github.com/Andre0512/hon/blob/main/LICENSE) | [](https://github.com/Andre0512/hon/blob/main/LICENSE) | ||||||
| [](https://tooomm.github.io/github-release-stats/?username=Andre0512&repository=hon)   | [](https://tooomm.github.io/github-release-stats/?username=Andre0512&repository=hon)   | ||||||
| Home Assistant integration for Haier hOn: support for Haier/Candy/Hoover home appliances like washing machines. | Home Assistant integration for [Haier's mobile app hOn](https://hon-smarthome.com/). | ||||||
|  |  | ||||||
| ## Supported Appliances | ## Supported Appliances | ||||||
| - [Washing Machine](https://github.com/Andre0512/hon#washing-machine) | - [Washing Machine](https://github.com/Andre0512/hon#washing-machine) | ||||||
| - [Tumble Dryer](https://github.com/Andre0512/hon#tumble-dryer) | - [Tumble Dryer](https://github.com/Andre0512/hon#tumble-dryer) | ||||||
| - [Washer Dryer](https://github.com/Andre0512/hon#washer-dryer) | - [Washer Dryer](https://github.com/Andre0512/hon#washer-dryer) | ||||||
| - [Oven](https://github.com/Andre0512/hon#oven) | - [Oven](https://github.com/Andre0512/hon#oven) | ||||||
| - [Hob](https://github.com/Andre0512/hon#hob) |  | ||||||
| - [Dish Washer](https://github.com/Andre0512/hon#dish-washer) | - [Dish Washer](https://github.com/Andre0512/hon#dish-washer) | ||||||
|  | - [Hob](https://github.com/Andre0512/hon#hob) [BETA] | ||||||
| - [Air conditioner](https://github.com/Andre0512/hon#air-conditioner) [BETA] | - [Air conditioner](https://github.com/Andre0512/hon#air-conditioner) [BETA] | ||||||
|  | - [Fridge](https://github.com/Andre0512/hon#fridge) [BETA] | ||||||
|  |  | ||||||
| ## Installation | ## Installation | ||||||
| **Method 1:** [](https://my.home-assistant.io/redirect/hacs_repository/?owner=Andre0512&repository=hon&category=integration) | **Method 1:** [](https://my.home-assistant.io/redirect/hacs_repository/?owner=Andre0512&repository=hon&category=integration) | ||||||
| @ -30,17 +32,6 @@ _Restart Home Assistant_ | |||||||
| **Method 2**: Settings > Devices & Services > Add Integration > **Haier hOn**   | **Method 2**: Settings > Devices & Services > Add Integration > **Haier hOn**   | ||||||
| _If the integration is not in the list, you need to clear the browser cache._ | _If the integration is not in the list, you need to clear the browser cache._ | ||||||
|  |  | ||||||
|  |  | ||||||
| ## Supported Models |  | ||||||
| Support was confirmed for these models. If a supported model is missing, please [add it with this form](https://forms.gle/bTSD8qFotdZFytbf8). |  | ||||||
| - Haier WD90-B14TEAM5 |  | ||||||
| - Haier HD80-A3959 |  | ||||||
| - Haier HWO60SM2F3XH |  | ||||||
| - Hoover H-WASH 500 |  | ||||||
| - Candy CIS633SCTTWIFI |  | ||||||
| - Haier XIB 3B2SFS-80 |  | ||||||
| - Haier XIB 6B2D3FB |  | ||||||
|  |  | ||||||
| ## Supported Languages | ## Supported Languages | ||||||
| Translation of internal names like programs are available for all languages which are official supported by the hOn app: | Translation of internal names like programs are available for all languages which are official supported by the hOn app: | ||||||
| * 🇨🇳 Chinese | * 🇨🇳 Chinese | ||||||
| @ -63,26 +54,52 @@ Translation of internal names like programs are available for all languages whic | |||||||
| * 🇪🇸 Spanish | * 🇪🇸 Spanish | ||||||
| * 🇹🇷 Turkish | * 🇹🇷 Turkish | ||||||
|  |  | ||||||
|  | ## Examples | ||||||
|  | ### Washing Machine | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ## Supported Models | ||||||
|  | Support has been confirmed for these models, but many more will work. Please add already supported devices [with this form to complete the list](https://forms.gle/bTSD8qFotdZFytbf8). | ||||||
|  | - Haier AD105S2SM3FA | ||||||
|  | - Haier AS25PBAHRA | ||||||
|  | - Haier AS25TADHRA-2 | ||||||
|  | - Haier AS35TADHRA-2 | ||||||
|  | - Haier EG9012B19SU1JD | ||||||
|  | - Haier HD80-A3959 | ||||||
|  | - Haier HW90-B14TEAM5 | ||||||
|  | - Haier HW100-B14959U1 | ||||||
|  | - Haier HWD100-B14979 | ||||||
|  | - Haier HWO60SM2F3XH | ||||||
|  | - Haier XIB 3B2SFS-80 | ||||||
|  | - Haier XIB 6B2D3FB | ||||||
|  | - Candy BCTDH7A1TE | ||||||
|  | - Candy CIS633SCTTWIFI | ||||||
|  | - Candy CSOE C10DE-80 | ||||||
|  | - Candy ROE H9A3TCEX-S | ||||||
|  | - Candy RPW41066BWMR/1-S | ||||||
|  | - Hoover H-WASH 500 | ||||||
|  | - Hoover H-DRY 500 | ||||||
|  | - Hoover H7W4 48MBC-S | ||||||
|  | - Hoover H9A3TCBEXS-S | ||||||
|  | - Hoover HFB 6B2S3FX | ||||||
|  | - Hoover HLE C10DCE-80 | ||||||
|  | - Hoover HSOT3161WG | ||||||
|  | - Hoover HW 68AMC/1-80 | ||||||
|  | - Hoover HWPD 69AMBC/1-S | ||||||
|  | - Hoover HWPS4954DAMR-11 | ||||||
|  | - Hoover NDE H10A2TCE-80 | ||||||
|  | - Hoover NDE H9A2TSBEXS-S | ||||||
|  | - Hoover NDPHY10A2TCBEXSS | ||||||
|  |  | ||||||
| ## Contribute | ## Contribute | ||||||
| Any kind of contribution is welcome! | Any kind of contribution is welcome! | ||||||
| ### Read out device data | ### Read out device data | ||||||
| If you want to make a request for adding new appliances or additional attributes and don't want to use the command line, here is how you can read out your device data. | If you want to make a request for adding new appliances or additional attributes and don't want to use the command line, here is how you can read out your device data. | ||||||
| For every device exists a hidden button which can be used to log all info of your appliance. | For every device exists a hidden button which can be used to log all infos of your appliance. | ||||||
| 1. Enable the "Log Device Info" button   | 1. Enable the "Show Device Info" button   | ||||||
|    _This button can be found in the diagnostic section of your device or in the entity overview if "show disabled entities" is enabled._ |    _This button can be found in the diagnostic section of your device or in the entity overview if "show disabled entities" is enabled._ | ||||||
| 2. Press the button | 2. Press the button to create a notification | ||||||
| 3. Go to Settings > System > Logs, click _load full logs_ and scroll down   | 3. Open home assistant notifications and copy the message (Crtl+A, Ctrl+C) | ||||||
|    _The formatting is messy if you not load full logs_ |  | ||||||
| 4. Here you can find all data which can be read out via the api |  | ||||||
|    ```yaml |  | ||||||
|    data: |  | ||||||
|      appliance: |  | ||||||
|        applianceId: 12-34-56-78-90-ab#2022-10-25T19:47:11Z |  | ||||||
|        applianceModelId: 1569  |  | ||||||
|        ... |  | ||||||
|    ``` |  | ||||||
| 5. Copy this data and create a [new issue](https://github.com/Andre0512/hon/issues/new) with your request |  | ||||||
|  |  | ||||||
| ### Add appliances or additional attributes | ### Add appliances or additional attributes | ||||||
| 1. Install [pyhOn](https://github.com/Andre0512/pyhOn) | 1. Install [pyhOn](https://github.com/Andre0512/pyhOn) | ||||||
|    ```commandline |    ```commandline | ||||||
| @ -127,35 +144,51 @@ For every device exists a hidden button which can be used to log all info of you | |||||||
| - If you need to implement some more logic, create a pull request to the underlying library. There we collect special requirements in the `appliances` directory. | - If you need to implement some more logic, create a pull request to the underlying library. There we collect special requirements in the `appliances` directory. | ||||||
| - Use [pyhOn's translate command](https://github.com/Andre0512/pyhOn#translation) to read out the official translations | - Use [pyhOn's translate command](https://github.com/Andre0512/pyhOn#translation) to read out the official translations | ||||||
|  |  | ||||||
| ## About this Repo | ## Special Thanks | ||||||
| The existing integrations missed some features from the app I liked to have in HomeAssistant. | - to [@alexandre-leites](https://github.com/alexandre-leites), [@MiguelAngelLV](https://github.com/MiguelAngelLV) and [@drudgebg](https://github.com/drudgebg) for contributing early to this project and adding new integrations. | ||||||
| I tried to create a pull request, but in the structures of these existing repos, I find it hard to fit in my needs, so I basically rewrote everything.  | - to [gvigroux/hon](https://github.com/gvigroux/hon), [signalize/hon-app-research](https://github.com/signalize/hon-app-research) and [slegars56/hon](https://github.com/slegars56/hon) for inspiring me to do this integration and for doing pioneer work on the hOn api. | ||||||
| I moved the api related stuff into the package [pyhOn](https://github.com/Andre0512/pyhOn). | - to everyone who contributed, created an issue, gave this repo a star, and used this integration. | ||||||
|  | - to the patience of my girlfriend as I work on this integration. | ||||||
|  |  | ||||||
| ## Appliance Features | ## Appliance Features | ||||||
|  |  | ||||||
| ### Air conditioner | ### Air conditioner | ||||||
| #### Configs | #### Controls | ||||||
| | Name | Icon | Entity | Key | | | Name | Icon | Entity | Key | | ||||||
| | --- | --- | --- | --- | | | --- | --- | --- | --- | | ||||||
| | 10° Heating |  | `switch` | `startProgram.10degreeHeatingStatus` | | | 10° Heating | `heat-wave` | `switch` | `10degreeHeatingStatus` | | ||||||
| | Echo |  | `switch` | `startProgram.echoStatus` | | | Air Conditioner | `air-conditioner` | `climate` | `settings` | | ||||||
| | Eco Mode |  | `switch` | `startProgram.ecoMode` | | | Echo | `account-voice` | `switch` | `echoStatus` | | ||||||
| | Eco Pilot |  | `select` | `startProgram.humanSensingStatus` | | | Eco Mode |  | `switch` | `ecoMode` | | ||||||
| | Health Mode |  | `switch` | `startProgram.healthMode` | | | Eco Pilot | `run` | `select` | `settings.humanSensingStatus` | | ||||||
| | Mute |  | `switch` | `startProgram.muteStatus` | | | Health Mode | `medication-outline` | `switch` | `healthMode` | | ||||||
|  | | Mute | `volume-off` | `switch` | `muteStatus` | | ||||||
|  | | Rapid Mode | `run-fast` | `switch` | `rapidMode` | | ||||||
|  | | Screen Display | `monitor-small` | `switch` | `screenDisplayStatus` | | ||||||
|  | | Self Cleaning | `air-filter` | `switch` | `selfCleaningStatus` | | ||||||
|  | | Self Cleaning 56 | `air-filter` | `switch` | `selfCleaning56Status` | | ||||||
|  | | Silent Sleep | `bed` | `switch` | `silentSleepStatus` | | ||||||
|  | | Target Temperature | `thermometer` | `number` | `settings.tempSel` | | ||||||
|  | #### Sensors | ||||||
|  | | Name | Icon | Entity | Key | | ||||||
|  | | --- | --- | --- | --- | | ||||||
|  | | Air Temperature Outdoor | `thermometer` | `sensor` | `tempAirOutdoor` | | ||||||
|  | | Ch2O Cleaning |  | `binary_sensor` | `ch2oCleaningStatus` | | ||||||
|  | | Coiler Temperature Indoor | `thermometer` | `sensor` | `tempCoilerIndoor` | | ||||||
|  | | Coiler Temperature Outside | `thermometer` | `sensor` | `tempCoilerOutdoor` | | ||||||
|  | | Defrost Temperature Outdoor | `thermometer` | `sensor` | `tempDefrostOutdoor` | | ||||||
|  | | Filter Replacement |  | `binary_sensor` | `filterChangeStatusLocal` | | ||||||
|  | | In Air Temperature Outdoor | `thermometer` | `sensor` | `tempInAirOutdoor` | | ||||||
|  | | Indoor Temperature | `thermometer` | `sensor` | `tempIndoor` | | ||||||
|  | | Outdoor Temperature | `thermometer` | `sensor` | `tempOutdoor` | | ||||||
| | Program |  | `select` | `startProgram.program` | | | Program |  | `select` | `startProgram.program` | | ||||||
| | Rapid Mode |  | `switch` | `startProgram.rapidMode` | | | Selected Temperature | `thermometer` | `sensor` | `tempSel` | | ||||||
| | Screen Display |  | `switch` | `startProgram.screenDisplayStatus` | |  | ||||||
| | Self Cleaning |  | `switch` | `startProgram.selfCleaningStatus` | |  | ||||||
| | Self Cleaning 56 |  | `switch` | `startProgram.selfCleaning56Status` | |  | ||||||
| | Silent Sleep |  | `switch` | `startProgram.silentSleepStatus` | |  | ||||||
| | Target Temperature | `thermometer` | `number` | `startProgram.tempSel` | |  | ||||||
|  |  | ||||||
| ### Dish washer | ### Dish washer | ||||||
| #### Controls | #### Controls | ||||||
| | Name | Icon | Entity | Key | | | Name | Icon | Entity | Key | | ||||||
| | --- | --- | --- | --- | | | --- | --- | --- | --- | | ||||||
|  | | Buzzer Disabled | `volume-off` | `switch` | `buzzerDisabled` | | ||||||
| | Dish Washer | `dishwasher` | `switch` | `startProgram` / `stopProgram` | | | Dish Washer | `dishwasher` | `switch` | `startProgram` / `stopProgram` | | ||||||
| #### Configs | #### Configs | ||||||
| | Name | Icon | Entity | Key | | | Name | Icon | Entity | Key | | ||||||
| @ -169,6 +202,8 @@ I moved the api related stuff into the package [pyhOn](https://github.com/Andre0 | |||||||
| | Half Load | `fraction-one-half` | `switch` | `startProgram.halfLoad` | | | Half Load | `fraction-one-half` | `switch` | `startProgram.halfLoad` | | ||||||
| | Open Door | `door-open` | `switch` | `startProgram.openDoor` | | | Open Door | `door-open` | `switch` | `startProgram.openDoor` | | ||||||
| | Program |  | `select` | `startProgram.program` | | | Program |  | `select` | `startProgram.program` | | ||||||
|  | | Remaining Time | `timer` | `select` | `startProgram.remainingTime` | | ||||||
|  | | Temperature | `thermometer` | `select` | `startProgram.temp` | | ||||||
| | Temperature | `thermometer` | `sensor` | `startProgram.temp` | | | Temperature | `thermometer` | `sensor` | `startProgram.temp` | | ||||||
| | Three in One | `numeric-3-box-outline` | `switch` | `startProgram.threeInOne` | | | Three in One | `numeric-3-box-outline` | `switch` | `startProgram.threeInOne` | | ||||||
| | Time | `timer` | `sensor` | `startProgram.remainingTime` | | | Time | `timer` | `sensor` | `startProgram.remainingTime` | | ||||||
| @ -209,7 +244,6 @@ I moved the api related stuff into the package [pyhOn](https://github.com/Andre0 | |||||||
| | Pan Status | `pot-mix` | `binary_sensor` | `panStatus` | | | Pan Status | `pot-mix` | `binary_sensor` | `panStatus` | | ||||||
| | Power | `lightning-bolt` | `sensor` | `power` | | | Power | `lightning-bolt` | `sensor` | `power` | | ||||||
| | Remaining Time | `timer` | `sensor` | `remainingTimeMM` | | | Remaining Time | `timer` | `sensor` | `remainingTimeMM` | | ||||||
| | Remote Control | `remote` | `binary_sensor` | `attributes.parameters.remoteCtrValid` | |  | ||||||
| | Temperature | `thermometer` | `sensor` | `temp` | | | Temperature | `thermometer` | `sensor` | `temp` | | ||||||
|  |  | ||||||
| ### Oven | ### Oven | ||||||
| @ -231,11 +265,44 @@ I moved the api related stuff into the package [pyhOn](https://github.com/Andre0 | |||||||
| | Connection | `wifi` | `binary_sensor` | `attributes.lastConnEvent.category` | | | Connection | `wifi` | `binary_sensor` | `attributes.lastConnEvent.category` | | ||||||
| | On | `power-cycle` | `binary_sensor` | `attributes.parameters.onOffStatus` | | | On | `power-cycle` | `binary_sensor` | `attributes.parameters.onOffStatus` | | ||||||
| | Remaining Time | `timer` | `sensor` | `remainingTimeMM` | | | Remaining Time | `timer` | `sensor` | `remainingTimeMM` | | ||||||
| | Remote Control | `remote` | `binary_sensor` | `attributes.parameters.remoteCtrValid` | |  | ||||||
| | Start Time | `clock-start` | `sensor` | `delayTime` | | | Start Time | `clock-start` | `sensor` | `delayTime` | | ||||||
| | Temperature | `thermometer` | `sensor` | `temp` | | | Temperature | `thermometer` | `sensor` | `temp` | | ||||||
| | Temperature Selected | `thermometer` | `sensor` | `tempSel` | | | Temperature Selected | `thermometer` | `sensor` | `tempSel` | | ||||||
|  |  | ||||||
|  | ### Fridge | ||||||
|  | #### Controls | ||||||
|  | | Name | Icon | Entity | Key | | ||||||
|  | | --- | --- | --- | --- | | ||||||
|  | | Auto-Set Mode | `thermometer-auto` | `switch` | `intelligenceMode` | | ||||||
|  | | Freezer | `snowflake-thermometer` | `climate` | `settings.tempSelZ2` | | ||||||
|  | | Freezer Temperature | `thermometer` | `number` | `settings.tempSelZ2` | | ||||||
|  | | Fridge | `thermometer` | `climate` | `settings.tempSelZ1` | | ||||||
|  | | Fridge Temperature | `thermometer` | `number` | `settings.tempSelZ1` | | ||||||
|  | | Holiday Mode | `palm-tree` | `switch` | `holidayMode` | | ||||||
|  | | Program Start | `play` | `button` | `startProgram` | | ||||||
|  | | Program Stop | `stop` | `button` | `stopProgram` | | ||||||
|  | | Super Cool | `snowflake` | `switch` | `quickModeZ2` | | ||||||
|  | | Super Freeze | `snowflake-variant` | `switch` | `quickModeZ1` | | ||||||
|  | #### Configs | ||||||
|  | | Name | Icon | Entity | Key | | ||||||
|  | | --- | --- | --- | --- | | ||||||
|  | | Program |  | `select` | `startProgram.program` | | ||||||
|  | | Zone | `radiobox-marked` | `select` | `startProgram.zone` | | ||||||
|  | #### Sensors | ||||||
|  | | Name | Icon | Entity | Key | | ||||||
|  | | --- | --- | --- | --- | | ||||||
|  | | Auto-Set Mode | `thermometer-auto` | `binary_sensor` | `intelligenceMode` | | ||||||
|  | | Door Status Freezer | `fridge-top` | `binary_sensor` | `doorStatusZ1` | | ||||||
|  | | Door Status Fridge | `fridge-bottom` | `binary_sensor` | `door2StatusZ1` | | ||||||
|  | | Error | `math-log` | `sensor` | `errors` | | ||||||
|  | | Holiday Mode | `palm-tree` | `binary_sensor` | `holidayMode` | | ||||||
|  | | Room Humidity | `water-percent` | `sensor` | `humidityEnv` | | ||||||
|  | | Room Temperature | `home-thermometer-outline` | `sensor` | `tempEnv` | | ||||||
|  | | Super Cool | `snowflake` | `binary_sensor` | `quickModeZ2` | | ||||||
|  | | Super Freeze | `snowflake-variant` | `binary_sensor` | `quickModeZ1` | | ||||||
|  | | Temperature Freezer | `snowflake-thermometer` | `sensor` | `tempZ2` | | ||||||
|  | | Temperature Fridge | `thermometer` | `sensor` | `tempZ1` | | ||||||
|  |  | ||||||
| ### Tumble dryer | ### Tumble dryer | ||||||
| #### Controls | #### Controls | ||||||
| | Name | Icon | Entity | Key | | | Name | Icon | Entity | Key | | ||||||
| @ -286,18 +353,19 @@ I moved the api related stuff into the package [pyhOn](https://github.com/Andre0 | |||||||
| | Acqua Plus | `water-plus` | `switch` | `startProgram.acquaplus` | | | Acqua Plus | `water-plus` | `switch` | `startProgram.acquaplus` | | ||||||
| | Anti-Crease | `timer` | `switch` | `startProgram.antiCreaseTime` | | | Anti-Crease | `timer` | `switch` | `startProgram.antiCreaseTime` | | ||||||
| | Anti-Crease | `timer` | `switch` | `startProgram.anticrease` | | | Anti-Crease | `timer` | `switch` | `startProgram.anticrease` | | ||||||
| | Auto Dose | `cup` | `switch` | `startProgram.autoDetergentStatus` | | | Auto Dose Detergent | `cup` | `switch` | `startProgram.autoDetergentStatus` | | ||||||
|  | | Auto Dose Softener | `teddy-bear` | `switch` | `startProgram.autoSoftenerStatus` | | ||||||
| | Delay Status | `timer-check` | `switch` | `startProgram.delayStatus` | | | Delay Status | `timer-check` | `switch` | `startProgram.delayStatus` | | ||||||
| | Delay Time | `timer-plus` | `number` | `startProgram.delayTime` | | | Delay Time | `timer-plus` | `number` | `startProgram.delayTime` | | ||||||
| | Dry Time |  | `number` | `startProgram.dryTime` | | | Dry Time |  | `number` | `startProgram.dryTime` | | ||||||
| | Dry Time | `timer` | `select` | `startProgram.dryTimeMM` | | | Dry Time | `timer` | `select` | `startProgram.dryTimeMM` | | ||||||
| | Dry level | `hair-dryer` | `select` | `startProgram.dryLevel` | | | Dry level | `hair-dryer` | `select` | `startProgram.dryLevel` | | ||||||
| | Energy Label | `lightning-bolt-circle` | `sensor` | `startProgram.energyLabel` | | | Energy Label | `lightning-bolt-circle` | `sensor` | `startProgram.energyLabel` | | ||||||
| | Extra Rinse 1 | `numeric-1-box-multiple-outline` | `switch` | `extraRinse1` | | | Extra Rinse 1 | `numeric-1-box-multiple-outline` | `switch` | `startProgram.extraRinse1` | | ||||||
| | Extra Rinse 2 | `numeric-2-box-multiple-outline` | `switch` | `extraRinse2` | | | Extra Rinse 2 | `numeric-2-box-multiple-outline` | `switch` | `startProgram.extraRinse2` | | ||||||
| | Extra Rinse 3 | `numeric-3-box-multiple-outline` | `switch` | `extraRinse3` | | | Extra Rinse 3 | `numeric-3-box-multiple-outline` | `switch` | `startProgram.extraRinse3` | | ||||||
| | Good Night | `weather-night` | `switch` | `goodNight` | | | Good Night | `weather-night` | `switch` | `startProgram.goodNight` | | ||||||
| | Keep Fresh | `refresh-circle` | `switch` | `startProgram.autoSoftenerStatus` | | | Keep Fresh | `refresh-circle` | `switch` | `startProgram.permanentPressStatus` | | ||||||
| | Liquid Detergent Dose | `cup-water` | `sensor` | `startProgram.liquidDetergentDose` | | | Liquid Detergent Dose | `cup-water` | `sensor` | `startProgram.liquidDetergentDose` | | ||||||
| | Main Wash Time | `clock-start` | `number` | `startProgram.mainWashTime` | | | Main Wash Time | `clock-start` | `number` | `startProgram.mainWashTime` | | ||||||
| | Powder Detergent Dose | `cup` | `sensor` | `startProgram.powderDetergentDose` | | | Powder Detergent Dose | `cup` | `sensor` | `startProgram.powderDetergentDose` | | ||||||
| @ -323,6 +391,7 @@ I moved the api related stuff into the package [pyhOn](https://github.com/Andre0 | |||||||
| | Acqua Plus |  | `binary_sensor` | `acquaplus` | | | Acqua Plus |  | `binary_sensor` | `acquaplus` | | ||||||
| | Anti-Crease |  | `binary_sensor` | `anticrease` | | | Anti-Crease |  | `binary_sensor` | `anticrease` | | ||||||
| | Current Electricity Used | `lightning-bolt` | `sensor` | `currentElectricityUsed` | | | Current Electricity Used | `lightning-bolt` | `sensor` | `currentElectricityUsed` | | ||||||
|  | | Current Temperature | `thermometer` | `sensor` | `temp` | | ||||||
| | Current Water Used | `water` | `sensor` | `currentWaterUsed` | | | Current Water Used | `water` | `sensor` | `currentWaterUsed` | | ||||||
| | Dirt level | `liquid-spot` | `sensor` | `dirtyLevel` | | | Dirt level | `liquid-spot` | `sensor` | `dirtyLevel` | | ||||||
| | Door |  | `binary_sensor` | `doorStatus` | | | Door |  | `binary_sensor` | `doorStatus` | | ||||||
| @ -357,15 +426,16 @@ I moved the api related stuff into the package [pyhOn](https://github.com/Andre0 | |||||||
| | Name | Icon | Entity | Key | | | Name | Icon | Entity | Key | | ||||||
| | --- | --- | --- | --- | | | --- | --- | --- | --- | | ||||||
| | Acqua Plus | `water-plus` | `switch` | `startProgram.acquaplus` | | | Acqua Plus | `water-plus` | `switch` | `startProgram.acquaplus` | | ||||||
| | Auto Dose | `cup` | `switch` | `startProgram.autoDetergentStatus` | | | Auto Dose Detergent | `cup` | `switch` | `startProgram.autoDetergentStatus` | | ||||||
|  | | Auto Dose Softener | `teddy-bear` | `switch` | `startProgram.autoSoftenerStatus` | | ||||||
| | Delay Status | `timer-check` | `switch` | `startProgram.delayStatus` | | | Delay Status | `timer-check` | `switch` | `startProgram.delayStatus` | | ||||||
| | Delay Time | `timer-plus` | `number` | `startProgram.delayTime` | | | Delay Time | `timer-plus` | `number` | `startProgram.delayTime` | | ||||||
| | Energy Label | `lightning-bolt-circle` | `sensor` | `startProgram.energyLabel` | | | Energy Label | `lightning-bolt-circle` | `sensor` | `startProgram.energyLabel` | | ||||||
| | Extra Rinse 1 | `numeric-1-box-multiple-outline` | `switch` | `extraRinse1` | | | Extra Rinse 1 | `numeric-1-box-multiple-outline` | `switch` | `startProgram.extraRinse1` | | ||||||
| | Extra Rinse 2 | `numeric-2-box-multiple-outline` | `switch` | `extraRinse2` | | | Extra Rinse 2 | `numeric-2-box-multiple-outline` | `switch` | `startProgram.extraRinse2` | | ||||||
| | Extra Rinse 3 | `numeric-3-box-multiple-outline` | `switch` | `extraRinse3` | | | Extra Rinse 3 | `numeric-3-box-multiple-outline` | `switch` | `startProgram.extraRinse3` | | ||||||
| | Good Night | `weather-night` | `switch` | `goodNight` | | | Good Night | `weather-night` | `switch` | `startProgram.goodNight` | | ||||||
| | Keep Fresh | `refresh-circle` | `switch` | `startProgram.autoSoftenerStatus` | | | Keep Fresh | `refresh-circle` | `switch` | `startProgram.permanentPressStatus` | | ||||||
| | Liquid Detergent Dose | `cup-water` | `sensor` | `startProgram.liquidDetergentDose` | | | Liquid Detergent Dose | `cup-water` | `sensor` | `startProgram.liquidDetergentDose` | | ||||||
| | Main Wash Time | `clock-start` | `number` | `startProgram.mainWashTime` | | | Main Wash Time | `clock-start` | `number` | `startProgram.mainWashTime` | | ||||||
| | Powder Detergent Dose | `cup` | `sensor` | `startProgram.powderDetergentDose` | | | Powder Detergent Dose | `cup` | `sensor` | `startProgram.powderDetergentDose` | | ||||||
| @ -385,6 +455,7 @@ I moved the api related stuff into the package [pyhOn](https://github.com/Andre0 | |||||||
| | --- | --- | --- | --- | | | --- | --- | --- | --- | | ||||||
| | Acqua Plus |  | `binary_sensor` | `acquaplus` | | | Acqua Plus |  | `binary_sensor` | `acquaplus` | | ||||||
| | Current Electricity Used | `lightning-bolt` | `sensor` | `currentElectricityUsed` | | | Current Electricity Used | `lightning-bolt` | `sensor` | `currentElectricityUsed` | | ||||||
|  | | Current Temperature | `thermometer` | `sensor` | `temp` | | ||||||
| | Current Water Used | `water` | `sensor` | `currentWaterUsed` | | | Current Water Used | `water` | `sensor` | `currentWaterUsed` | | ||||||
| | Dirt level | `liquid-spot` | `sensor` | `dirtyLevel` | | | Dirt level | `liquid-spot` | `sensor` | `dirtyLevel` | | ||||||
| | Door |  | `binary_sensor` | `doorStatus` | | | Door |  | `binary_sensor` | `doorStatus` | | ||||||
|  | |||||||
							
								
								
									
										
											BIN
										
									
								
								assets/washing_machine.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/washing_machine.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 202 KiB | 
| @ -1,8 +1,6 @@ | |||||||
| import logging | import logging | ||||||
| from dataclasses import dataclass | from dataclasses import dataclass | ||||||
|  |  | ||||||
| from pyhon import Hon |  | ||||||
|  |  | ||||||
| from homeassistant.components.binary_sensor import ( | from homeassistant.components.binary_sensor import ( | ||||||
|     BinarySensorEntityDescription, |     BinarySensorEntityDescription, | ||||||
|     BinarySensorDeviceClass, |     BinarySensorDeviceClass, | ||||||
| @ -10,8 +8,9 @@ from homeassistant.components.binary_sensor import ( | |||||||
| ) | ) | ||||||
| from homeassistant.config_entries import ConfigEntry | from homeassistant.config_entries import ConfigEntry | ||||||
| from homeassistant.core import callback | from homeassistant.core import callback | ||||||
|  |  | ||||||
| from .const import DOMAIN | from .const import DOMAIN | ||||||
| from .hon import HonCoordinator, HonEntity, unique_entities | from .hon import HonEntity, unique_entities | ||||||
|  |  | ||||||
| _LOGGER = logging.getLogger(__name__) | _LOGGER = logging.getLogger(__name__) | ||||||
|  |  | ||||||
| @ -99,14 +98,6 @@ BINARY_SENSORS: dict[str, tuple[HonBinarySensorEntityDescription, ...]] = { | |||||||
|             icon="mdi:wifi", |             icon="mdi:wifi", | ||||||
|             translation_key="connection", |             translation_key="connection", | ||||||
|         ), |         ), | ||||||
|         HonBinarySensorEntityDescription( |  | ||||||
|             key="attributes.parameters.remoteCtrValid", |  | ||||||
|             name="Remote Control", |  | ||||||
|             device_class=BinarySensorDeviceClass.CONNECTIVITY, |  | ||||||
|             on_value="1", |  | ||||||
|             icon="mdi:remote", |  | ||||||
|             translation_key="remote_control", |  | ||||||
|         ), |  | ||||||
|         HonBinarySensorEntityDescription( |         HonBinarySensorEntityDescription( | ||||||
|             key="attributes.parameters.onOffStatus", |             key="attributes.parameters.onOffStatus", | ||||||
|             name="On", |             name="On", | ||||||
| @ -125,14 +116,6 @@ BINARY_SENSORS: dict[str, tuple[HonBinarySensorEntityDescription, ...]] = { | |||||||
|             icon="mdi:wifi", |             icon="mdi:wifi", | ||||||
|             translation_key="connection", |             translation_key="connection", | ||||||
|         ), |         ), | ||||||
|         HonBinarySensorEntityDescription( |  | ||||||
|             key="attributes.parameters.remoteCtrValid", |  | ||||||
|             name="Remote Control", |  | ||||||
|             device_class=BinarySensorDeviceClass.CONNECTIVITY, |  | ||||||
|             on_value="1", |  | ||||||
|             icon="mdi:remote", |  | ||||||
|             translation_key="remote_control", |  | ||||||
|         ), |  | ||||||
|         HonBinarySensorEntityDescription( |         HonBinarySensorEntityDescription( | ||||||
|             key="attributes.parameters.onOffStatus", |             key="attributes.parameters.onOffStatus", | ||||||
|             name="On", |             name="On", | ||||||
| @ -195,6 +178,70 @@ BINARY_SENSORS: dict[str, tuple[HonBinarySensorEntityDescription, ...]] = { | |||||||
|             translation_key="door_open", |             translation_key="door_open", | ||||||
|         ), |         ), | ||||||
|     ), |     ), | ||||||
|  |     "AC": ( | ||||||
|  |         HonBinarySensorEntityDescription( | ||||||
|  |             key="filterChangeStatusLocal", | ||||||
|  |             name="Filter Replacement", | ||||||
|  |             device_class=BinarySensorDeviceClass.PROBLEM, | ||||||
|  |             on_value="1", | ||||||
|  |             translation_key="filter_replacement", | ||||||
|  |         ), | ||||||
|  |         HonBinarySensorEntityDescription( | ||||||
|  |             key="ch2oCleaningStatus", | ||||||
|  |             name="Ch2O Cleaning", | ||||||
|  |             on_value="1", | ||||||
|  |         ), | ||||||
|  |     ), | ||||||
|  |     "REF": ( | ||||||
|  |         HonBinarySensorEntityDescription( | ||||||
|  |             key="quickModeZ2", | ||||||
|  |             name="Super Cool", | ||||||
|  |             icon="mdi:snowflake", | ||||||
|  |             device_class=BinarySensorDeviceClass.RUNNING, | ||||||
|  |             on_value="1", | ||||||
|  |             translation_key="super_cool", | ||||||
|  |         ), | ||||||
|  |         HonBinarySensorEntityDescription( | ||||||
|  |             key="quickModeZ1", | ||||||
|  |             name="Super Freeze", | ||||||
|  |             icon="mdi:snowflake-variant", | ||||||
|  |             device_class=BinarySensorDeviceClass.RUNNING, | ||||||
|  |             on_value="1", | ||||||
|  |             translation_key="super_freeze", | ||||||
|  |         ), | ||||||
|  |         HonBinarySensorEntityDescription( | ||||||
|  |             key="doorStatusZ1", | ||||||
|  |             name="Door Status Freezer", | ||||||
|  |             device_class=BinarySensorDeviceClass.DOOR, | ||||||
|  |             icon="mdi:fridge-top", | ||||||
|  |             on_value="1", | ||||||
|  |             translation_key="freezer_door", | ||||||
|  |         ), | ||||||
|  |         HonBinarySensorEntityDescription( | ||||||
|  |             key="door2StatusZ1", | ||||||
|  |             name="Door Status Fridge", | ||||||
|  |             icon="mdi:fridge-bottom", | ||||||
|  |             device_class=BinarySensorDeviceClass.DOOR, | ||||||
|  |             on_value="1", | ||||||
|  |             translation_key="fridge_door", | ||||||
|  |         ), | ||||||
|  |         HonBinarySensorEntityDescription( | ||||||
|  |             key="intelligenceMode", | ||||||
|  |             name="Auto-Set Mode", | ||||||
|  |             icon="mdi:thermometer-auto", | ||||||
|  |             device_class=BinarySensorDeviceClass.RUNNING, | ||||||
|  |             on_value="1", | ||||||
|  |             translation_key="auto_set", | ||||||
|  |         ), | ||||||
|  |         HonBinarySensorEntityDescription( | ||||||
|  |             key="holidayMode", | ||||||
|  |             name="Holiday Mode", | ||||||
|  |             icon="mdi:palm-tree", | ||||||
|  |             device_class=BinarySensorDeviceClass.RUNNING, | ||||||
|  |             on_value="1", | ||||||
|  |             translation_key="holiday_mode", | ||||||
|  |         ), | ||||||
|  |     ), | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| @ -202,39 +249,20 @@ BINARY_SENSORS["WD"] = unique_entities(BINARY_SENSORS["WM"], BINARY_SENSORS["TD" | |||||||
|  |  | ||||||
|  |  | ||||||
| async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None: | async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None: | ||||||
|     hon: Hon = hass.data[DOMAIN][entry.unique_id] |     entities = [] | ||||||
|     coordinators = hass.data[DOMAIN]["coordinators"] |     for device in hass.data[DOMAIN][entry.unique_id].appliances: | ||||||
|     appliances = [] |         for description in BINARY_SENSORS.get(device.appliance_type, []): | ||||||
|     for device in hon.appliances: |             if not device.get(description.key): | ||||||
|         if device.unique_id in coordinators: |                 continue | ||||||
|             coordinator = hass.data[DOMAIN]["coordinators"][device.unique_id] |             entity = HonBinarySensorEntity(hass, entry, device, description) | ||||||
|         else: |             await entity.coordinator.async_config_entry_first_refresh() | ||||||
|             coordinator = HonCoordinator(hass, device) |             entities.append(entity) | ||||||
|             hass.data[DOMAIN]["coordinators"][device.unique_id] = coordinator |     async_add_entities(entities) | ||||||
|         await coordinator.async_config_entry_first_refresh() |  | ||||||
|  |  | ||||||
|         if descriptions := BINARY_SENSORS.get(device.appliance_type): |  | ||||||
|             for description in descriptions: |  | ||||||
|                 if not device.get(description.key): |  | ||||||
|                     continue |  | ||||||
|                 appliances.append( |  | ||||||
|                     HonBinarySensorEntity(hass, coordinator, entry, device, description) |  | ||||||
|                 ) |  | ||||||
|  |  | ||||||
|     async_add_entities(appliances) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class HonBinarySensorEntity(HonEntity, BinarySensorEntity): | class HonBinarySensorEntity(HonEntity, BinarySensorEntity): | ||||||
|     entity_description: HonBinarySensorEntityDescription |     entity_description: HonBinarySensorEntityDescription | ||||||
|  |  | ||||||
|     def __init__(self, hass, coordinator, entry, device, description) -> None: |  | ||||||
|         super().__init__(hass, entry, coordinator, device) |  | ||||||
|  |  | ||||||
|         self._coordinator = coordinator |  | ||||||
|  |  | ||||||
|         self.entity_description = description |  | ||||||
|         self._attr_unique_id = f"{super().unique_id}{description.key}" |  | ||||||
|  |  | ||||||
|     @property |     @property | ||||||
|     def is_on(self) -> bool: |     def is_on(self) -> bool: | ||||||
|         return ( |         return ( | ||||||
|  | |||||||
| @ -1,16 +1,14 @@ | |||||||
| import logging | import logging | ||||||
| import urllib |  | ||||||
| from urllib.parse import quote |  | ||||||
|  |  | ||||||
| import pkg_resources | import pkg_resources | ||||||
|  | from homeassistant.components import persistent_notification | ||||||
| from homeassistant.components.button import ButtonEntityDescription, ButtonEntity | from homeassistant.components.button import ButtonEntityDescription, ButtonEntity | ||||||
| from homeassistant.config_entries import ConfigEntry | from homeassistant.config_entries import ConfigEntry | ||||||
| from pyhon import Hon | from homeassistant.const import EntityCategory | ||||||
| from pyhon.appliance import HonAppliance | from pyhon.appliance import HonAppliance | ||||||
|  |  | ||||||
| from homeassistant.const import EntityCategory |  | ||||||
| from .const import DOMAIN | from .const import DOMAIN | ||||||
| from .hon import HonCoordinator, HonEntity | from .hon import HonEntity | ||||||
|  |  | ||||||
| _LOGGER = logging.getLogger(__name__) | _LOGGER = logging.getLogger(__name__) | ||||||
|  |  | ||||||
| @ -23,60 +21,68 @@ BUTTONS: dict[str, tuple[ButtonEntityDescription, ...]] = { | |||||||
|             translation_key="induction_hob", |             translation_key="induction_hob", | ||||||
|         ), |         ), | ||||||
|     ), |     ), | ||||||
|  |     "REF": ( | ||||||
|  |         ButtonEntityDescription( | ||||||
|  |             key="startProgram", | ||||||
|  |             name="Program Start", | ||||||
|  |             icon="mdi:play", | ||||||
|  |             translation_key="start_program", | ||||||
|  |         ), | ||||||
|  |         ButtonEntityDescription( | ||||||
|  |             key="stopProgram", | ||||||
|  |             name="Program Stop", | ||||||
|  |             icon="mdi:stop", | ||||||
|  |             translation_key="stop_program", | ||||||
|  |         ), | ||||||
|  |     ), | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None: | async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None: | ||||||
|     hon: Hon = hass.data[DOMAIN][entry.unique_id] |     entities = [] | ||||||
|     coordinators = hass.data[DOMAIN]["coordinators"] |     for device in hass.data[DOMAIN][entry.unique_id].appliances: | ||||||
|     appliances = [] |         for description in BUTTONS.get(device.appliance_type, []): | ||||||
|     for device in hon.appliances: |             if not device.commands.get(description.key): | ||||||
|         if device.unique_id in coordinators: |                 continue | ||||||
|             coordinator = hass.data[DOMAIN]["coordinators"][device.unique_id] |             entity = HonButtonEntity(hass, entry, device, description) | ||||||
|         else: |             await entity.coordinator.async_config_entry_first_refresh() | ||||||
|             coordinator = HonCoordinator(hass, device) |             entities.append(entity) | ||||||
|             hass.data[DOMAIN]["coordinators"][device.unique_id] = coordinator |         entities.append(HonFeatureRequestButton(hass, entry, device)) | ||||||
|         await coordinator.async_config_entry_first_refresh() |         await entities[-1].coordinator.async_config_entry_first_refresh() | ||||||
|  |     async_add_entities(entities) | ||||||
|         if descriptions := BUTTONS.get(device.appliance_type): |  | ||||||
|             for description in descriptions: |  | ||||||
|                 if not device.commands.get(description.key): |  | ||||||
|                     continue |  | ||||||
|                 appliances.extend( |  | ||||||
|                     [HonButtonEntity(hass, coordinator, entry, device, description)] |  | ||||||
|                 ) |  | ||||||
|         appliances.extend([HonFeatureRequestButton(hass, coordinator, entry, device)]) |  | ||||||
|  |  | ||||||
|     async_add_entities(appliances) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class HonButtonEntity(HonEntity, ButtonEntity): | class HonButtonEntity(HonEntity, ButtonEntity): | ||||||
|     def __init__( |     entity_description: ButtonEntityDescription | ||||||
|         self, hass, coordinator, entry, device: HonAppliance, description |  | ||||||
|     ) -> None: |  | ||||||
|         super().__init__(hass, entry, coordinator, device) |  | ||||||
|  |  | ||||||
|         self._coordinator = coordinator |  | ||||||
|         self._device = device |  | ||||||
|         self.entity_description = description |  | ||||||
|         self._attr_unique_id = f"{super().unique_id}{description.key}" |  | ||||||
|  |  | ||||||
|     async def async_press(self) -> None: |     async def async_press(self) -> None: | ||||||
|         await self._device.commands[self.entity_description.key].send() |         await self._device.commands[self.entity_description.key].send() | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def available(self) -> bool: | ||||||
|  |         """Return True if entity is available.""" | ||||||
|  |         return ( | ||||||
|  |             super().available | ||||||
|  |             and self._device.get("remoteCtrValid", "1") == "1" | ||||||
|  |             and self._device.get("attributes.lastConnEvent.category") != "DISCONNECTED" | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |  | ||||||
| class HonFeatureRequestButton(HonEntity, ButtonEntity): | class HonFeatureRequestButton(HonEntity, ButtonEntity): | ||||||
|     def __init__(self, hass, coordinator, entry, device: HonAppliance) -> None: |     def __init__(self, hass, entry, device: HonAppliance) -> None: | ||||||
|         super().__init__(hass, entry, coordinator, device) |         super().__init__(hass, entry, device) | ||||||
|  |  | ||||||
|         self._device = device |  | ||||||
|         self._attr_unique_id = f"{super().unique_id}_log_device_info" |         self._attr_unique_id = f"{super().unique_id}_log_device_info" | ||||||
|         self._attr_icon = "mdi:information" |         self._attr_icon = "mdi:information" | ||||||
|         self._attr_name = "Log Device Info" |         self._attr_name = "Show Device Info" | ||||||
|         self._attr_entity_category = EntityCategory.DIAGNOSTIC |         self._attr_entity_category = EntityCategory.DIAGNOSTIC | ||||||
|         self._attr_entity_registry_enabled_default = False |         self._attr_entity_registry_enabled_default = False | ||||||
|  |  | ||||||
|     async def async_press(self) -> None: |     async def async_press(self) -> None: | ||||||
|         pyhon_version = pkg_resources.get_distribution("pyhon").version |         pyhon_version = pkg_resources.get_distribution("pyhon").version | ||||||
|         info = f"Device Info:\n{self._device.diagnose}pyhOnVersion: {pyhon_version}" |         info = f"{self._device.diagnose()}pyhOnVersion: {pyhon_version}" | ||||||
|         _LOGGER.error(info) |         title = f"{self._device.nick_name} Device Info" | ||||||
|  |         persistent_notification.create( | ||||||
|  |             self._hass, f"````\n```\n{info}\n```\n````", title | ||||||
|  |         ) | ||||||
|  |         _LOGGER.info(info.replace(" ", "\u200B ")) | ||||||
|  | |||||||
| @ -1,4 +1,5 @@ | |||||||
| import logging | import logging | ||||||
|  | from dataclasses import dataclass | ||||||
|  |  | ||||||
| from homeassistant.components.climate import ( | from homeassistant.components.climate import ( | ||||||
|     ClimateEntity, |     ClimateEntity, | ||||||
| @ -20,62 +21,84 @@ from homeassistant.const import ( | |||||||
|     TEMP_CELSIUS, |     TEMP_CELSIUS, | ||||||
| ) | ) | ||||||
| from homeassistant.core import callback | from homeassistant.core import callback | ||||||
| from pyhon import Hon | from pyhon import helper | ||||||
| from pyhon.appliance import HonAppliance | from pyhon.appliance import HonAppliance | ||||||
|  |  | ||||||
| from .const import HON_HVAC_MODE, HON_FAN, HON_HVAC_PROGRAM, DOMAIN | from .const import HON_HVAC_MODE, HON_FAN, HON_HVAC_PROGRAM, DOMAIN | ||||||
| from .hon import HonEntity, HonCoordinator | from .hon import HonEntity | ||||||
|  |  | ||||||
| _LOGGER = logging.getLogger(__name__) | _LOGGER = logging.getLogger(__name__) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @dataclass | ||||||
|  | class HonACClimateEntityDescription(ClimateEntityDescription): | ||||||
|  |     pass | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @dataclass | ||||||
|  | class HonREFClimateEntityDescription(ClimateEntityDescription): | ||||||
|  |     pass | ||||||
|  |  | ||||||
|  |  | ||||||
| CLIMATES = { | CLIMATES = { | ||||||
|     "AC": (ClimateEntityDescription(key="startProgram"),), |     "AC": ( | ||||||
|  |         HonACClimateEntityDescription( | ||||||
|  |             key="settings", | ||||||
|  |             name="Air Conditioner", | ||||||
|  |             icon="mdi:air-conditioner", | ||||||
|  |             translation_key="air_conditioner", | ||||||
|  |         ), | ||||||
|  |     ), | ||||||
|  |     "REF": ( | ||||||
|  |         HonREFClimateEntityDescription( | ||||||
|  |             key="settings.tempSelZ1", | ||||||
|  |             name="Fridge", | ||||||
|  |             icon="mdi:thermometer", | ||||||
|  |             translation_key="fridge", | ||||||
|  |         ), | ||||||
|  |         HonREFClimateEntityDescription( | ||||||
|  |             key="settings.tempSelZ2", | ||||||
|  |             name="Freezer", | ||||||
|  |             icon="mdi:snowflake-thermometer", | ||||||
|  |             translation_key="freezer", | ||||||
|  |         ), | ||||||
|  |     ), | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None: | async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None: | ||||||
|     hon: Hon = hass.data[DOMAIN][entry.unique_id] |     entities = [] | ||||||
|     coordinators = hass.data[DOMAIN]["coordinators"] |     for device in hass.data[DOMAIN][entry.unique_id].appliances: | ||||||
|     appliances = [] |         for description in CLIMATES.get(device.appliance_type, []): | ||||||
|     for device in hon.appliances: |             if isinstance(description, HonACClimateEntityDescription): | ||||||
|         if device.unique_id in coordinators: |                 if description.key not in list(device.commands): | ||||||
|             coordinator = hass.data[DOMAIN]["coordinators"][device.unique_id] |                     continue | ||||||
|         else: |                 entity = HonACClimateEntity(hass, entry, device, description) | ||||||
|             coordinator = HonCoordinator(hass, device) |             elif isinstance(description, HonREFClimateEntityDescription): | ||||||
|             hass.data[DOMAIN]["coordinators"][device.unique_id] = coordinator |  | ||||||
|         await coordinator.async_config_entry_first_refresh() |  | ||||||
|  |  | ||||||
|         if descriptions := CLIMATES.get(device.appliance_type): |  | ||||||
|             for description in descriptions: |  | ||||||
|                 if description.key not in device.available_settings: |                 if description.key not in device.available_settings: | ||||||
|                     continue |                     continue | ||||||
|                 appliances.extend( |                 entity = HonREFClimateEntity(hass, entry, device, description) | ||||||
|                     [HonClimateEntity(hass, coordinator, entry, device, description)] |             else: | ||||||
|                 ) |                 continue | ||||||
|     async_add_entities(appliances) |             await entity.coordinator.async_config_entry_first_refresh() | ||||||
|  |             entities.append(entity) | ||||||
|  |     async_add_entities(entities) | ||||||
|  |  | ||||||
|  |  | ||||||
| class HonClimateEntity(HonEntity, ClimateEntity): | class HonACClimateEntity(HonEntity, ClimateEntity): | ||||||
|     def __init__( |     def __init__(self, hass, entry, device: HonAppliance, description) -> None: | ||||||
|         self, hass, coordinator, entry, device: HonAppliance, description |         super().__init__(hass, entry, device, description) | ||||||
|     ) -> None: |  | ||||||
|         super().__init__(hass, entry, coordinator, device) |  | ||||||
|         self._coordinator = coordinator |  | ||||||
|         self._device = coordinator.device |  | ||||||
|         self.entity_description = description |  | ||||||
|         self._hass = hass |  | ||||||
|         self._attr_unique_id = f"{super().unique_id}climate" |  | ||||||
|  |  | ||||||
|         self._attr_temperature_unit = TEMP_CELSIUS |         self._attr_temperature_unit = TEMP_CELSIUS | ||||||
|         self._attr_target_temperature_step = PRECISION_WHOLE |         self._attr_target_temperature_step = PRECISION_WHOLE | ||||||
|         self._attr_max_temp = device.settings["tempSel"].max |         self._attr_max_temp = device.settings["settings.tempSel"].max | ||||||
|         self._attr_min_temp = device.settings["tempSel"].min |         self._attr_min_temp = device.settings["settings.tempSel"].min | ||||||
|  |  | ||||||
|         self._attr_hvac_modes = [HVACMode.OFF] + [ |         self._attr_hvac_modes = [HVACMode.OFF] + [ | ||||||
|             HON_HVAC_MODE[mode] for mode in device.settings["machMode"].values |             HON_HVAC_MODE[mode] for mode in device.settings["settings.machMode"].values | ||||||
|         ] |         ] | ||||||
|         self._attr_fan_modes = [FAN_OFF] + [ |         self._attr_fan_modes = [FAN_OFF] + [ | ||||||
|             HON_FAN[mode] for mode in device.settings["windSpeed"].values |             HON_FAN[mode] for mode in device.settings["settings.windSpeed"].values | ||||||
|         ] |         ] | ||||||
|         self._attr_swing_modes = [ |         self._attr_swing_modes = [ | ||||||
|             SWING_OFF, |             SWING_OFF, | ||||||
| @ -89,22 +112,34 @@ class HonClimateEntity(HonEntity, ClimateEntity): | |||||||
|             | ClimateEntityFeature.SWING_MODE |             | ClimateEntityFeature.SWING_MODE | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|  |         self._handle_coordinator_update(update=False) | ||||||
|  |  | ||||||
|     async def async_set_hvac_mode(self, hvac_mode): |     async def async_set_hvac_mode(self, hvac_mode): | ||||||
|         if hvac_mode == HVACMode.OFF: |         if self._device.get("onOffStatus") == "0": | ||||||
|             self._device.commands["stopProgram"].send() |             self._attr_hvac_mode = HVACMode.OFF | ||||||
|         else: |         else: | ||||||
|             self._device.settings["program"].value = HON_HVAC_PROGRAM[hvac_mode] |             self._attr_hvac_mode = HON_HVAC_MODE[self._device.get("machMode")] | ||||||
|             self._device.commands["startProgram"].send() |         if hvac_mode == HVACMode.OFF: | ||||||
|  |             await self._device.commands["stopProgram"].send() | ||||||
|  |         else: | ||||||
|  |             self._device.settings["startProgram.program"].value = HON_HVAC_PROGRAM[ | ||||||
|  |                 hvac_mode | ||||||
|  |             ] | ||||||
|  |             await self._device.commands["startProgram"].send() | ||||||
|         self._attr_hvac_mode = hvac_mode |         self._attr_hvac_mode = hvac_mode | ||||||
|  |         self.async_write_ha_state() | ||||||
|  |  | ||||||
|     async def async_set_fan_mode(self, fan_mode): |     async def async_set_fan_mode(self, fan_mode): | ||||||
|         mode_number = list(HON_FAN.values()).index(fan_mode) |         mode_number = list(HON_FAN.values()).index(fan_mode) | ||||||
|         self._device.settings["windSpeed"].value = list(HON_FAN.keys())[mode_number] |         self._device.settings["settings.windSpeed"].value = list(HON_FAN.keys())[ | ||||||
|         self._device.commands["startProgram"].send() |             mode_number | ||||||
|  |         ] | ||||||
|  |         await self._device.commands["settings"].send() | ||||||
|  |         self.async_write_ha_state() | ||||||
|  |  | ||||||
|     async def async_set_swing_mode(self, swing_mode): |     async def async_set_swing_mode(self, swing_mode): | ||||||
|         horizontal = self._device.settings["windDirectionHorizontal"] |         horizontal = self._device.settings["settings.windDirectionHorizontal"] | ||||||
|         vertical = self._device.settings["windDirectionVertical"] |         vertical = self._device.settings["settings.windDirectionVertical"] | ||||||
|         if swing_mode in [SWING_BOTH, SWING_HORIZONTAL]: |         if swing_mode in [SWING_BOTH, SWING_HORIZONTAL]: | ||||||
|             horizontal.value = "7" |             horizontal.value = "7" | ||||||
|         if swing_mode in [SWING_BOTH, SWING_VERTICAL]: |         if swing_mode in [SWING_BOTH, SWING_VERTICAL]: | ||||||
| @ -114,30 +149,30 @@ class HonClimateEntity(HonEntity, ClimateEntity): | |||||||
|         if swing_mode in [SWING_OFF, SWING_VERTICAL] and horizontal.value == "7": |         if swing_mode in [SWING_OFF, SWING_VERTICAL] and horizontal.value == "7": | ||||||
|             horizontal.value = "0" |             horizontal.value = "0" | ||||||
|         self._attr_swing_mode = swing_mode |         self._attr_swing_mode = swing_mode | ||||||
|         self._device.commands["startProgram"].send() |         await self._device.commands["settings"].send() | ||||||
|  |         self.async_write_ha_state() | ||||||
|  |  | ||||||
|     async def async_set_temperature(self, **kwargs): |     async def async_set_temperature(self, **kwargs): | ||||||
|         if (temperature := kwargs.get(ATTR_TEMPERATURE)) is None: |         if (temperature := kwargs.get(ATTR_TEMPERATURE)) is None: | ||||||
|             return False |             return False | ||||||
|         self._device.settings["selTemp"].value = temperature |         self._device.settings["settings.tempSel"].value = str(int(temperature)) | ||||||
|         self._device.commands["startProgram"].send() |         await self._device.commands["settings"].send() | ||||||
|  |         self.async_write_ha_state() | ||||||
|  |  | ||||||
|     @callback |     @callback | ||||||
|     def _handle_coordinator_update(self, update=True) -> None: |     def _handle_coordinator_update(self, update=True) -> None: | ||||||
|         self._attr_target_temperature = int(float(self._device.get("tempSel"))) |         self._attr_target_temperature = int(float(self._device.get("tempSel"))) | ||||||
|         self._attr_current_temperature = float(self._device.get("tempIndoor")) |         self._attr_current_temperature = float(self._device.get("tempIndoor")) | ||||||
|         self._attr_max_temp = self._device.settings["tempSel"].max |  | ||||||
|         self._attr_min_temp = self._device.settings["tempSel"].min |  | ||||||
|  |  | ||||||
|         if self._device.get("onOffStatus") == "0": |         if self._device.get("onOffStatus") == "0": | ||||||
|             self._attr_hvac_mode = HVACMode.OFF |             self._attr_hvac_mode = HVACMode.OFF | ||||||
|         else: |         else: | ||||||
|             self._attr_hvac_mode = HON_HVAC_MODE[self._device.get("machMode")] |             self._attr_hvac_mode = HON_HVAC_MODE[self._device.get("machMode")] | ||||||
|  |  | ||||||
|         self._attr_fan_mode = HON_FAN[self._device.settings["windSpeed"].value] |         self._attr_fan_mode = HON_FAN[self._device.get("windSpeed")] | ||||||
|  |  | ||||||
|         horizontal = self._device.settings["windDirectionHorizontal"] |         horizontal = self._device.get("windDirectionHorizontal") | ||||||
|         vertical = self._device.settings["windDirectionVertical"] |         vertical = self._device.get("windDirectionVertical") | ||||||
|         if horizontal == "7" and vertical == "8": |         if horizontal == "7" and vertical == "8": | ||||||
|             self._attr_swing_mode = SWING_BOTH |             self._attr_swing_mode = SWING_BOTH | ||||||
|         elif horizontal == "7": |         elif horizontal == "7": | ||||||
| @ -146,3 +181,80 @@ class HonClimateEntity(HonEntity, ClimateEntity): | |||||||
|             self._attr_swing_mode = SWING_VERTICAL |             self._attr_swing_mode = SWING_VERTICAL | ||||||
|         else: |         else: | ||||||
|             self._attr_swing_mode = SWING_OFF |             self._attr_swing_mode = SWING_OFF | ||||||
|  |         if update: | ||||||
|  |             self.async_write_ha_state() | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class HonREFClimateEntity(HonEntity, ClimateEntity): | ||||||
|  |     def __init__(self, hass, entry, device: HonAppliance, description) -> None: | ||||||
|  |         super().__init__(hass, entry, device, description) | ||||||
|  |  | ||||||
|  |         self._attr_temperature_unit = TEMP_CELSIUS | ||||||
|  |         self._attr_target_temperature_step = PRECISION_WHOLE | ||||||
|  |         self._attr_max_temp = device.settings[description.key].max | ||||||
|  |         self._attr_min_temp = device.settings[description.key].min | ||||||
|  |  | ||||||
|  |         self._attr_hvac_modes = [HVACMode.COOL] | ||||||
|  |         self._attr_supported_features = ( | ||||||
|  |             ClimateEntityFeature.TARGET_TEMPERATURE | ClimateEntityFeature.PRESET_MODE | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |         self._handle_coordinator_update(update=False) | ||||||
|  |  | ||||||
|  |         modes = ["no_mode"] | ||||||
|  |         for mode, data in device.commands["startProgram"].categories.items(): | ||||||
|  |             if zone := data.parameters.get("zone"): | ||||||
|  |                 if self.entity_description.name.lower() in zone.values: | ||||||
|  |                     modes.append(mode) | ||||||
|  |         self._attr_preset_modes = modes | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def target_temperature(self) -> int | None: | ||||||
|  |         """Return the temperature we try to reach.""" | ||||||
|  |         return int(self._device.get(self.entity_description.key)) | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def current_temperature(self) -> int | None: | ||||||
|  |         """Return the current temperature.""" | ||||||
|  |         temp_key = self.entity_description.key.split(".")[-1].replace("Sel", "") | ||||||
|  |         return int(self._device.get(temp_key)) | ||||||
|  |  | ||||||
|  |     async def async_set_temperature(self, **kwargs): | ||||||
|  |         if (temperature := kwargs.get(ATTR_TEMPERATURE)) is None: | ||||||
|  |             return False | ||||||
|  |         self._device.settings[self.entity_description.key].value = str(int(temperature)) | ||||||
|  |         await self._device.commands["settings"].send() | ||||||
|  |         self.async_write_ha_state() | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def 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") | ||||||
|  |  | ||||||
|  |     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() | ||||||
|  |         self.async_write_ha_state() | ||||||
|  |  | ||||||
|  |     @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 | ||||||
|  |         if update: | ||||||
|  |             self.async_write_ha_state() | ||||||
|  | |||||||
| @ -1,7 +1,6 @@ | |||||||
| import logging | import logging | ||||||
|  |  | ||||||
| import voluptuous as vol | import voluptuous as vol | ||||||
|  |  | ||||||
| from homeassistant import config_entries | from homeassistant import config_entries | ||||||
| from homeassistant.const import CONF_EMAIL, CONF_PASSWORD | from homeassistant.const import CONF_EMAIL, CONF_PASSWORD | ||||||
|  |  | ||||||
|  | |||||||
| @ -21,7 +21,7 @@ PLATFORMS = [ | |||||||
| HON_HVAC_MODE = { | HON_HVAC_MODE = { | ||||||
|     "0": HVACMode.AUTO, |     "0": HVACMode.AUTO, | ||||||
|     "1": HVACMode.COOL, |     "1": HVACMode.COOL, | ||||||
|     "2": HVACMode.COOL, |     "2": HVACMode.DRY, | ||||||
|     "3": HVACMode.DRY, |     "3": HVACMode.DRY, | ||||||
|     "4": HVACMode.HEAT, |     "4": HVACMode.HEAT, | ||||||
|     "5": HVACMode.FAN_ONLY, |     "5": HVACMode.FAN_ONLY, | ||||||
| @ -120,6 +120,19 @@ TUMBLE_DRYER_PR_PHASE = { | |||||||
|     "19": "WASHING_CMD&CTRL.PHASE_DRYING.TITLE", |     "19": "WASHING_CMD&CTRL.PHASE_DRYING.TITLE", | ||||||
|     "20": "WASHING_CMD&CTRL.PHASE_DRYING.TITLE", |     "20": "WASHING_CMD&CTRL.PHASE_DRYING.TITLE", | ||||||
| } | } | ||||||
|  | DIRTY_LEVEL = { | ||||||
|  |     "1": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OPTIONS_VALUES_DESCRIPTION.LITTLE", | ||||||
|  |     "2": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OPTIONS_VALUES_DESCRIPTION.NORMAL", | ||||||
|  |     "3": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OPTIONS_VALUES_DESCRIPTION.VERY", | ||||||
|  | } | ||||||
|  |  | ||||||
|  | STEAM_LEVEL = { | ||||||
|  |     "0": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OPTIONS_VALUES_DESCRIPTION.NO_STEAM", | ||||||
|  |     "1": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_FABRICS.COTTON_TITLE", | ||||||
|  |     "2": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_FABRICS.DELICATE_TITLE", | ||||||
|  |     "3": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_FABRICS.SYNTHETIC_TITLE", | ||||||
|  | } | ||||||
|  |  | ||||||
| DISHWASHER_PR_PHASE = { | DISHWASHER_PR_PHASE = { | ||||||
|     "0": "WASHING_CMD&CTRL.PHASE_READY.TITLE", |     "0": "WASHING_CMD&CTRL.PHASE_READY.TITLE", | ||||||
|     "1": "WASHING_CMD&CTRL.PHASE_PREWASH.TITLE", |     "1": "WASHING_CMD&CTRL.PHASE_PREWASH.TITLE", | ||||||
| @ -167,49 +180,12 @@ AC_HUMAN_SENSE = { | |||||||
|     "2": "AC.PROGRAM_DETAIL.FOLLOW_TOUCH", |     "2": "AC.PROGRAM_DETAIL.FOLLOW_TOUCH", | ||||||
| } | } | ||||||
|  |  | ||||||
| TUMBLE_DRYER_PROGRAMS = [ | REF_ZONES = { | ||||||
|     "hqd_baby_care" |     "fridge": "REF.ZONES.FRIDGE", | ||||||
|     "hqd_bath_towel" |     "freezer": "REF.ZONES.FREEZER", | ||||||
|     "hqd_bed_sheets" |     "vtroom1": "REF.ZONES.MY_ZONE_1", | ||||||
|     "hqd_bulky" |     "fridge_freezer": ["REF.ZONES.FRIDGE", " & ", "REF.ZONES.FREEZER"], | ||||||
|     "hqd_casual" | } | ||||||
|     "hqd_cold_wind_30" |  | ||||||
|     "hqd_cold_wind_timing" |  | ||||||
|     "hqd_cotton" |  | ||||||
|     "hqd_curtain" |  | ||||||
|     "hqd_delicate" |  | ||||||
|     "hqd_diaper" |  | ||||||
|     "hqd_duvet" |  | ||||||
|     "hqd_feather" |  | ||||||
|     "hqd_hot_wind_timing" |  | ||||||
|     "hqd_hygienic" |  | ||||||
|     "hqd_i_refresh" |  | ||||||
|     "hqd_i_refresh_pro" |  | ||||||
|     "hqd_jacket" |  | ||||||
|     "hqd_jeans" |  | ||||||
|     "hqd_luxury" |  | ||||||
|     "hqd_mix" |  | ||||||
|     "hqd_night_dry" |  | ||||||
|     "hqd_outdoor" |  | ||||||
|     "hqd_precious_cure" |  | ||||||
|     "hqd_quick_20" |  | ||||||
|     "hqd_quick_30" |  | ||||||
|     "hqd_quick_dry" |  | ||||||
|     "hqd_quilt" |  | ||||||
|     "hqd_refresh" |  | ||||||
|     "hqd_school_uniform" |  | ||||||
|     "hqd_shirt" |  | ||||||
|     "hqd_shoes" |  | ||||||
|     "hqd_silk" |  | ||||||
|     "hqd_sports" |  | ||||||
|     "hqd_synthetics" |  | ||||||
|     "hqd_timer" |  | ||||||
|     "hqd_towel" |  | ||||||
|     "hqd_underwear" |  | ||||||
|     "hqd_warm_up" |  | ||||||
|     "hqd_wool" |  | ||||||
|     "hqd_working_suit" |  | ||||||
| ] |  | ||||||
|  |  | ||||||
| PROGRAMS_TD = [ | PROGRAMS_TD = [ | ||||||
|     "active_dry", |     "active_dry", | ||||||
|  | |||||||
| @ -1,11 +1,10 @@ | |||||||
| import logging | import logging | ||||||
| from datetime import timedelta | from datetime import timedelta | ||||||
|  |  | ||||||
| from pyhon.appliance import HonAppliance |  | ||||||
|  |  | ||||||
| from homeassistant.helpers.entity import DeviceInfo | from homeassistant.helpers.entity import DeviceInfo | ||||||
| from homeassistant.helpers.update_coordinator import CoordinatorEntity | from homeassistant.helpers.update_coordinator import CoordinatorEntity | ||||||
| from homeassistant.helpers.update_coordinator import DataUpdateCoordinator | from homeassistant.helpers.update_coordinator import DataUpdateCoordinator | ||||||
|  | from pyhon.appliance import HonAppliance | ||||||
|  |  | ||||||
| from .const import DOMAIN | from .const import DOMAIN | ||||||
|  |  | ||||||
| @ -15,14 +14,20 @@ _LOGGER = logging.getLogger(__name__) | |||||||
| class HonEntity(CoordinatorEntity): | class HonEntity(CoordinatorEntity): | ||||||
|     _attr_has_entity_name = True |     _attr_has_entity_name = True | ||||||
|  |  | ||||||
|     def __init__(self, hass, entry, coordinator, device: HonAppliance) -> None: |     def __init__(self, hass, entry, device: HonAppliance, description=None) -> None: | ||||||
|  |         coordinator = get_coordinator(hass, device) | ||||||
|         super().__init__(coordinator) |         super().__init__(coordinator) | ||||||
|  |  | ||||||
|         self._hon = hass.data[DOMAIN][entry.unique_id] |         self._hon = hass.data[DOMAIN][entry.unique_id] | ||||||
|         self._hass = hass |         self._hass = hass | ||||||
|  |         self._coordinator = coordinator | ||||||
|         self._device = device |         self._device = device | ||||||
|  |  | ||||||
|         self._attr_unique_id = self._device.unique_id |         if description is not None: | ||||||
|  |             self.entity_description = description | ||||||
|  |             self._attr_unique_id = f"{self._device.unique_id}{description.key}" | ||||||
|  |         else: | ||||||
|  |             self._attr_unique_id = self._device.unique_id | ||||||
|  |  | ||||||
|     @property |     @property | ||||||
|     def device_info(self): |     def device_info(self): | ||||||
| @ -59,3 +64,13 @@ def unique_entities(base_entities, new_entities): | |||||||
|         if entity.key not in existing_entities: |         if entity.key not in existing_entities: | ||||||
|             result.append(entity) |             result.append(entity) | ||||||
|     return tuple(result) |     return tuple(result) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def get_coordinator(hass, appliance): | ||||||
|  |     coordinators = hass.data[DOMAIN]["coordinators"] | ||||||
|  |     if appliance.unique_id in coordinators: | ||||||
|  |         coordinator = hass.data[DOMAIN]["coordinators"][appliance.unique_id] | ||||||
|  |     else: | ||||||
|  |         coordinator = HonCoordinator(hass, appliance) | ||||||
|  |         hass.data[DOMAIN]["coordinators"][appliance.unique_id] = coordinator | ||||||
|  |     return coordinator | ||||||
|  | |||||||
| @ -1,11 +1,15 @@ | |||||||
| { | { | ||||||
|   "domain": "hon", |   "domain": "hon", | ||||||
|   "name": "Haier hOn", |   "name": "Haier hOn", | ||||||
|   "codeowners": ["@Andre0512"], |   "codeowners": [ | ||||||
|  |     "@Andre0512" | ||||||
|  |   ], | ||||||
|   "config_flow": true, |   "config_flow": true, | ||||||
|   "documentation": "https://github.com/Andre0512/hon/", |   "documentation": "https://github.com/Andre0512/hon/", | ||||||
|   "iot_class": "cloud_polling", |   "iot_class": "cloud_polling", | ||||||
|   "issue_tracker": "https://github.com/Andre0512/hon/issues", |   "issue_tracker": "https://github.com/Andre0512/hon/issues", | ||||||
|  "requirements": ["pyhOn==0.10.4"], |   "requirements": [ | ||||||
|   "version": "0.7.1" |     "pyhOn==0.11.2" | ||||||
|  |   ], | ||||||
|  |   "version": "0.8.0-beta.6" | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,9 +1,6 @@ | |||||||
| from __future__ import annotations | from __future__ import annotations | ||||||
|  |  | ||||||
| from pyhon import Hon | from dataclasses import dataclass | ||||||
| from pyhon.parameter.base import HonParameter |  | ||||||
| from pyhon.parameter.fixed import HonParameterFixed |  | ||||||
| from pyhon.parameter.range import HonParameterRange |  | ||||||
|  |  | ||||||
| from homeassistant.components.number import ( | from homeassistant.components.number import ( | ||||||
|     NumberEntity, |     NumberEntity, | ||||||
| @ -12,186 +9,188 @@ from homeassistant.components.number import ( | |||||||
| from homeassistant.config_entries import ConfigEntry | from homeassistant.config_entries import ConfigEntry | ||||||
| from homeassistant.const import UnitOfTime, UnitOfTemperature | from homeassistant.const import UnitOfTime, UnitOfTemperature | ||||||
| from homeassistant.core import callback | from homeassistant.core import callback | ||||||
| from homeassistant.helpers.entity import EntityCategory | from homeassistant.helpers.entity import EntityCategory, Entity | ||||||
|  | from pyhon.parameter.range import HonParameterRange | ||||||
|  |  | ||||||
| from .const import DOMAIN | from .const import DOMAIN | ||||||
| from .hon import HonEntity, HonCoordinator, unique_entities | from .hon import HonEntity, unique_entities | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @dataclass | ||||||
|  | class HonConfigNumberEntityDescription(NumberEntityDescription): | ||||||
|  |     entity_category: EntityCategory = EntityCategory.CONFIG | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @dataclass | ||||||
|  | class HonNumberEntityDescription(NumberEntityDescription): | ||||||
|  |     pass | ||||||
|  |  | ||||||
|  |  | ||||||
| NUMBERS: dict[str, tuple[NumberEntityDescription, ...]] = { | NUMBERS: dict[str, tuple[NumberEntityDescription, ...]] = { | ||||||
|     "WM": ( |     "WM": ( | ||||||
|         NumberEntityDescription( |         HonConfigNumberEntityDescription( | ||||||
|             key="startProgram.delayTime", |             key="startProgram.delayTime", | ||||||
|             name="Delay Time", |             name="Delay Time", | ||||||
|             icon="mdi:timer-plus", |             icon="mdi:timer-plus", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, |             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||||
|             translation_key="delay_time", |             translation_key="delay_time", | ||||||
|         ), |         ), | ||||||
|         NumberEntityDescription( |         HonConfigNumberEntityDescription( | ||||||
|             key="startProgram.rinseIterations", |             key="startProgram.rinseIterations", | ||||||
|             name="Rinse Iterations", |             name="Rinse Iterations", | ||||||
|             icon="mdi:rotate-right", |             icon="mdi:rotate-right", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="rinse_iterations", |             translation_key="rinse_iterations", | ||||||
|         ), |         ), | ||||||
|         NumberEntityDescription( |         HonConfigNumberEntityDescription( | ||||||
|             key="startProgram.mainWashTime", |             key="startProgram.mainWashTime", | ||||||
|             name="Main Wash Time", |             name="Main Wash Time", | ||||||
|             icon="mdi:clock-start", |             icon="mdi:clock-start", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, |             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||||
|             translation_key="wash_time", |             translation_key="wash_time", | ||||||
|         ), |         ), | ||||||
|         NumberEntityDescription( |         HonConfigNumberEntityDescription( | ||||||
|             key="startProgram.steamLevel", |             key="startProgram.steamLevel", | ||||||
|             name="Steam Level", |             name="Steam Level", | ||||||
|             icon="mdi:weather-dust", |             icon="mdi:weather-dust", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="steam_level", |             translation_key="steam_level", | ||||||
|         ), |         ), | ||||||
|         NumberEntityDescription( |         HonConfigNumberEntityDescription( | ||||||
|             key="startProgram.waterHard", |             key="startProgram.waterHard", | ||||||
|             name="Water hard", |             name="Water hard", | ||||||
|             icon="mdi:water", |             icon="mdi:water", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="water_hard", |             translation_key="water_hard", | ||||||
|         ), |         ), | ||||||
|         NumberEntityDescription( |         HonConfigNumberEntityDescription( | ||||||
|             key="startProgram.lang", |             key="startProgram.lang", | ||||||
|             name="lang", |             name="lang", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|         ), |         ), | ||||||
|     ), |     ), | ||||||
|     "TD": ( |     "TD": ( | ||||||
|         NumberEntityDescription( |         HonConfigNumberEntityDescription( | ||||||
|             key="startProgram.delayTime", |             key="startProgram.delayTime", | ||||||
|             name="Delay time", |             name="Delay time", | ||||||
|             icon="mdi:timer-plus", |             icon="mdi:timer-plus", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, |             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||||
|             translation_key="delay_time", |             translation_key="delay_time", | ||||||
|         ), |         ), | ||||||
|         NumberEntityDescription( |         HonConfigNumberEntityDescription( | ||||||
|             key="startProgram.tempLevel", |             key="startProgram.tempLevel", | ||||||
|             name="Temperature level", |             name="Temperature level", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             icon="mdi:thermometer", |             icon="mdi:thermometer", | ||||||
|             translation_key="tumbledryertemplevel", |             translation_key="tumbledryertemplevel", | ||||||
|         ), |         ), | ||||||
|         NumberEntityDescription( |         HonConfigNumberEntityDescription( | ||||||
|             key="startProgram.dryTime", |             key="startProgram.dryTime", | ||||||
|             name="Dry Time", |             name="Dry Time", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="dry_time", |             translation_key="dry_time", | ||||||
|         ), |         ), | ||||||
|     ), |     ), | ||||||
|     "OV": ( |     "OV": ( | ||||||
|         NumberEntityDescription( |         HonConfigNumberEntityDescription( | ||||||
|             key="startProgram.delayTime", |             key="startProgram.delayTime", | ||||||
|             name="Delay time", |             name="Delay time", | ||||||
|             icon="mdi:timer-plus", |             icon="mdi:timer-plus", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, |             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||||
|             translation_key="delay_time", |             translation_key="delay_time", | ||||||
|         ), |         ), | ||||||
|         NumberEntityDescription( |         HonConfigNumberEntityDescription( | ||||||
|             key="startProgram.tempSel", |             key="startProgram.tempSel", | ||||||
|             name="Target Temperature", |             name="Target Temperature", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             icon="mdi:thermometer", |             icon="mdi:thermometer", | ||||||
|             native_unit_of_measurement=UnitOfTemperature.CELSIUS, |             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||||
|             translation_key="target_temperature", |             translation_key="target_temperature", | ||||||
|         ), |         ), | ||||||
|         NumberEntityDescription( |         HonConfigNumberEntityDescription( | ||||||
|             key="startProgram.prTime", |             key="startProgram.prTime", | ||||||
|             name="Program Duration", |             name="Program Duration", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             icon="mdi:timelapse", |             icon="mdi:timelapse", | ||||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, |             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||||
|             translation_key="program_duration", |             translation_key="program_duration", | ||||||
|         ), |         ), | ||||||
|     ), |     ), | ||||||
|     "IH": ( |     "IH": ( | ||||||
|         NumberEntityDescription( |         HonConfigNumberEntityDescription( | ||||||
|             key="startProgram.temp", |             key="startProgram.temp", | ||||||
|             name="Temperature", |             name="Temperature", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             icon="mdi:thermometer", |             icon="mdi:thermometer", | ||||||
|             translation_key="temperature", |             translation_key="temperature", | ||||||
|         ), |         ), | ||||||
|         NumberEntityDescription( |         HonConfigNumberEntityDescription( | ||||||
|             key="startProgram.powerManagement", |             key="startProgram.powerManagement", | ||||||
|             name="Power Management", |             name="Power Management", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             icon="mdi:timelapse", |             icon="mdi:timelapse", | ||||||
|             translation_key="power_management", |             translation_key="power_management", | ||||||
|         ), |         ), | ||||||
|     ), |     ), | ||||||
|     "DW": ( |     "DW": ( | ||||||
|         NumberEntityDescription( |         HonConfigNumberEntityDescription( | ||||||
|             key="startProgram.delayTime", |             key="startProgram.delayTime", | ||||||
|             name="Delay time", |             name="Delay time", | ||||||
|             icon="mdi:timer-plus", |             icon="mdi:timer-plus", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, |             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||||
|             translation_key="delay_time", |             translation_key="delay_time", | ||||||
|         ), |         ), | ||||||
|         NumberEntityDescription( |         HonConfigNumberEntityDescription( | ||||||
|             key="startProgram.waterHard", |             key="startProgram.waterHard", | ||||||
|             name="Water hard", |             name="Water hard", | ||||||
|             icon="mdi:water", |             icon="mdi:water", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="water_hard", |             translation_key="water_hard", | ||||||
|         ), |         ), | ||||||
|     ), |     ), | ||||||
|     "AC": ( |     "AC": ( | ||||||
|         NumberEntityDescription( |         HonNumberEntityDescription( | ||||||
|             key="startProgram.tempSel", |             key="settings.tempSel", | ||||||
|             name="Target Temperature", |             name="Target Temperature", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             icon="mdi:thermometer", |             icon="mdi:thermometer", | ||||||
|             native_unit_of_measurement=UnitOfTemperature.CELSIUS, |             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||||
|             translation_key="target_temperature", |             translation_key="target_temperature", | ||||||
|         ), |         ), | ||||||
|     ), |     ), | ||||||
|  |     "REF": ( | ||||||
|  |         HonNumberEntityDescription( | ||||||
|  |             key="settings.tempSelZ1", | ||||||
|  |             name="Fridge Temperature", | ||||||
|  |             icon="mdi:thermometer", | ||||||
|  |             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||||
|  |             translation_key="fridge_temp_sel", | ||||||
|  |         ), | ||||||
|  |         HonNumberEntityDescription( | ||||||
|  |             key="settings.tempSelZ2", | ||||||
|  |             name="Freezer Temperature", | ||||||
|  |             icon="mdi:thermometer", | ||||||
|  |             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||||
|  |             translation_key="freezer_temp_sel", | ||||||
|  |         ), | ||||||
|  |     ), | ||||||
| } | } | ||||||
|  |  | ||||||
| NUMBERS["WD"] = unique_entities(NUMBERS["WM"], NUMBERS["TD"]) | NUMBERS["WD"] = unique_entities(NUMBERS["WM"], NUMBERS["TD"]) | ||||||
|  |  | ||||||
|  |  | ||||||
| async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None: | async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None: | ||||||
|     hon: Hon = hass.data[DOMAIN][entry.unique_id] |     entities = [] | ||||||
|     coordinators = hass.data[DOMAIN]["coordinators"] |     for device in hass.data[DOMAIN][entry.unique_id].appliances: | ||||||
|     appliances = [] |         for description in NUMBERS.get(device.appliance_type, []): | ||||||
|     for device in hon.appliances: |             if description.key not in device.available_settings: | ||||||
|         if device.unique_id in coordinators: |                 continue | ||||||
|             coordinator = hass.data[DOMAIN]["coordinators"][device.unique_id] |             if isinstance(description, HonNumberEntityDescription): | ||||||
|         else: |                 entity = HonNumberEntity(hass, entry, device, description) | ||||||
|             coordinator = HonCoordinator(hass, device) |             elif isinstance(description, HonConfigNumberEntityDescription): | ||||||
|             hass.data[DOMAIN]["coordinators"][device.unique_id] = coordinator |                 entity = HonConfigNumberEntity(hass, entry, device, description) | ||||||
|         await coordinator.async_config_entry_first_refresh() |             else: | ||||||
|  |                 continue | ||||||
|         if descriptions := NUMBERS.get(device.appliance_type): |             await entity.coordinator.async_config_entry_first_refresh() | ||||||
|             for description in descriptions: |             entities.append(entity) | ||||||
|                 if description.key not in device.available_settings: |     async_add_entities(entities) | ||||||
|                     continue |  | ||||||
|                 appliances.extend( |  | ||||||
|                     [HonNumberEntity(hass, coordinator, entry, device, description)] |  | ||||||
|                 ) |  | ||||||
|  |  | ||||||
|     async_add_entities(appliances) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class HonNumberEntity(HonEntity, NumberEntity): | class HonNumberEntity(HonEntity, NumberEntity): | ||||||
|     def __init__(self, hass, coordinator, entry, device, description) -> None: |     entity_description: HonNumberEntityDescription | ||||||
|         super().__init__(hass, entry, coordinator, device) |  | ||||||
|  |     def __init__(self, hass, entry, device, description) -> None: | ||||||
|  |         super().__init__(hass, entry, device, description) | ||||||
|  |  | ||||||
|         self._coordinator = coordinator |  | ||||||
|         self._device = device |  | ||||||
|         self._data = device.settings[description.key] |         self._data = device.settings[description.key] | ||||||
|         self.entity_description = description |  | ||||||
|         self._attr_unique_id = f"{super().unique_id}{description.key}" |  | ||||||
|  |  | ||||||
|         if isinstance(self._data, HonParameterRange): |         if isinstance(self._data, HonParameterRange): | ||||||
|             self._attr_native_max_value = self._data.max |             self._attr_native_max_value = self._data.max | ||||||
|             self._attr_native_min_value = self._data.min |             self._attr_native_min_value = self._data.min | ||||||
| @ -203,12 +202,10 @@ class HonNumberEntity(HonEntity, NumberEntity): | |||||||
|  |  | ||||||
|     async def async_set_native_value(self, value: float) -> None: |     async def async_set_native_value(self, value: float) -> None: | ||||||
|         setting = self._device.settings[self.entity_description.key] |         setting = self._device.settings[self.entity_description.key] | ||||||
|         if not ( |         if isinstance(setting, HonParameterRange): | ||||||
|             isinstance(setting, HonParameter) or isinstance(setting, HonParameterFixed) |  | ||||||
|         ): |  | ||||||
|             setting.value = value |             setting.value = value | ||||||
|         if self._device.appliance_type in ["AC"]: |         command = self.entity_description.key.split(".")[0] | ||||||
|             self._device.commands["startProgram"].send() |         await self._device.commands[command].send() | ||||||
|         await self.coordinator.async_refresh() |         await self.coordinator.async_refresh() | ||||||
|  |  | ||||||
|     @callback |     @callback | ||||||
| @ -220,3 +217,27 @@ class HonNumberEntity(HonEntity, NumberEntity): | |||||||
|             self._attr_native_step = setting.step |             self._attr_native_step = setting.step | ||||||
|         self._attr_native_value = setting.value |         self._attr_native_value = setting.value | ||||||
|         self.async_write_ha_state() |         self.async_write_ha_state() | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def available(self) -> bool: | ||||||
|  |         """Return True if entity is available.""" | ||||||
|  |         return ( | ||||||
|  |             super().available | ||||||
|  |             and self._device.get("remoteCtrValid", "1") == "1" | ||||||
|  |             and self._device.get("attributes.lastConnEvent.category") != "DISCONNECTED" | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class HonConfigNumberEntity(HonNumberEntity): | ||||||
|  |     entity_description: HonConfigNumberEntityDescription | ||||||
|  |  | ||||||
|  |     async def async_set_native_value(self, value: str) -> None: | ||||||
|  |         setting = self._device.settings[self.entity_description.key] | ||||||
|  |         if isinstance(setting, HonParameterRange): | ||||||
|  |             setting.value = value | ||||||
|  |         await self.coordinator.async_refresh() | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def available(self) -> bool: | ||||||
|  |         """Return True if entity is available.""" | ||||||
|  |         return super(NumberEntity, self).available | ||||||
|  | |||||||
| @ -1,151 +1,169 @@ | |||||||
| from __future__ import annotations | from __future__ import annotations | ||||||
|  |  | ||||||
| import logging | import logging | ||||||
| import time | from dataclasses import dataclass | ||||||
|  |  | ||||||
| from pyhon import Hon |  | ||||||
| from pyhon.appliance import HonAppliance |  | ||||||
| from pyhon.parameter.fixed import HonParameterFixed |  | ||||||
|  |  | ||||||
| from homeassistant.components.select import SelectEntity, SelectEntityDescription | from homeassistant.components.select import SelectEntity, SelectEntityDescription | ||||||
| from homeassistant.config_entries import ConfigEntry | from homeassistant.config_entries import ConfigEntry | ||||||
| from homeassistant.const import UnitOfTemperature, UnitOfTime, REVOLUTIONS_PER_MINUTE | from homeassistant.const import UnitOfTemperature, UnitOfTime, REVOLUTIONS_PER_MINUTE | ||||||
| from homeassistant.core import callback | from homeassistant.core import callback | ||||||
| from homeassistant.helpers.entity import EntityCategory | from homeassistant.helpers.entity import EntityCategory, Entity | ||||||
|  | from pyhon.appliance import HonAppliance | ||||||
|  | from pyhon.parameter.fixed import HonParameterFixed | ||||||
|  |  | ||||||
| from .const import DOMAIN | from .const import DOMAIN | ||||||
| from .hon import HonEntity, HonCoordinator, unique_entities | from .hon import HonEntity, unique_entities | ||||||
|  |  | ||||||
| _LOGGER = logging.getLogger(__name__) | _LOGGER = logging.getLogger(__name__) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @dataclass | ||||||
|  | class HonSelectEntityDescription(SelectEntityDescription): | ||||||
|  |     pass | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @dataclass | ||||||
|  | class HonConfigSelectEntityDescription(SelectEntityDescription): | ||||||
|  |     entity_category: EntityCategory = EntityCategory.CONFIG | ||||||
|  |  | ||||||
|  |  | ||||||
| SELECTS = { | SELECTS = { | ||||||
|     "WM": ( |     "WM": ( | ||||||
|         SelectEntityDescription( |         HonConfigSelectEntityDescription( | ||||||
|             key="startProgram.spinSpeed", |             key="startProgram.spinSpeed", | ||||||
|             name="Spin speed", |             name="Spin speed", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             icon="mdi:numeric", |             icon="mdi:numeric", | ||||||
|             unit_of_measurement=REVOLUTIONS_PER_MINUTE, |             unit_of_measurement=REVOLUTIONS_PER_MINUTE, | ||||||
|             translation_key="spin_speed", |             translation_key="spin_speed", | ||||||
|         ), |         ), | ||||||
|         SelectEntityDescription( |         HonConfigSelectEntityDescription( | ||||||
|             key="startProgram.temp", |             key="startProgram.temp", | ||||||
|             name="Temperature", |             name="Temperature", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             icon="mdi:thermometer", |             icon="mdi:thermometer", | ||||||
|             unit_of_measurement=UnitOfTemperature.CELSIUS, |             unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||||
|             translation_key="temperature", |             translation_key="temperature", | ||||||
|         ), |         ), | ||||||
|         SelectEntityDescription( |         HonConfigSelectEntityDescription( | ||||||
|             key="startProgram.program", |             key="startProgram.program", | ||||||
|             name="Program", |             name="Program", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="programs_wm", |             translation_key="programs_wm", | ||||||
|         ), |         ), | ||||||
|     ), |     ), | ||||||
|     "TD": ( |     "TD": ( | ||||||
|         SelectEntityDescription( |         HonConfigSelectEntityDescription( | ||||||
|             key="startProgram.program", |             key="startProgram.program", | ||||||
|             name="Program", |             name="Program", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="programs_td", |             translation_key="programs_td", | ||||||
|         ), |         ), | ||||||
|         SelectEntityDescription( |         HonConfigSelectEntityDescription( | ||||||
|             key="startProgram.dryTimeMM", |             key="startProgram.dryTimeMM", | ||||||
|             name="Dry Time", |             name="Dry Time", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             icon="mdi:timer", |             icon="mdi:timer", | ||||||
|             unit_of_measurement=UnitOfTime.MINUTES, |             unit_of_measurement=UnitOfTime.MINUTES, | ||||||
|             translation_key="dry_time", |             translation_key="dry_time", | ||||||
|         ), |         ), | ||||||
|         SelectEntityDescription( |         HonConfigSelectEntityDescription( | ||||||
|             key="startProgram.dryLevel", |             key="startProgram.dryLevel", | ||||||
|             name="Dry level", |             name="Dry level", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             icon="mdi:hair-dryer", |             icon="mdi:hair-dryer", | ||||||
|             translation_key="dry_levels", |             translation_key="dry_levels", | ||||||
|         ), |         ), | ||||||
|     ), |     ), | ||||||
|     "OV": ( |     "OV": ( | ||||||
|         SelectEntityDescription( |         HonConfigSelectEntityDescription( | ||||||
|             key="startProgram.program", |             key="startProgram.program", | ||||||
|             name="Program", |             name="Program", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="programs_ov", |             translation_key="programs_ov", | ||||||
|         ), |         ), | ||||||
|     ), |     ), | ||||||
|     "IH": ( |     "IH": ( | ||||||
|         SelectEntityDescription( |         HonConfigSelectEntityDescription( | ||||||
|             key="startProgram.program", |             key="startProgram.program", | ||||||
|             name="Program", |             name="Program", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="programs_ih", |             translation_key="programs_ih", | ||||||
|         ), |         ), | ||||||
|     ), |     ), | ||||||
|     "DW": ( |     "DW": ( | ||||||
|         SelectEntityDescription( |         HonConfigSelectEntityDescription( | ||||||
|             key="startProgram.program", |             key="startProgram.program", | ||||||
|             name="Program", |             name="Program", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="programs_dw", |             translation_key="programs_dw", | ||||||
|         ), |         ), | ||||||
|  |         HonConfigSelectEntityDescription( | ||||||
|  |             key="startProgram.temp", | ||||||
|  |             name="Temperature", | ||||||
|  |             icon="mdi:thermometer", | ||||||
|  |             unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||||
|  |             translation_key="temperature", | ||||||
|  |         ), | ||||||
|  |         HonConfigSelectEntityDescription( | ||||||
|  |             key="startProgram.remainingTime", | ||||||
|  |             name="Remaining Time", | ||||||
|  |             icon="mdi:timer", | ||||||
|  |             unit_of_measurement=UnitOfTime.MINUTES, | ||||||
|  |             translation_key="remaining_time", | ||||||
|  |         ), | ||||||
|     ), |     ), | ||||||
|     "AC": ( |     "AC": ( | ||||||
|         SelectEntityDescription( |         HonSelectEntityDescription( | ||||||
|             key="startProgram.program", |             key="startProgram.program", | ||||||
|             name="Program", |             name="Program", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="programs_ac", |             translation_key="programs_ac", | ||||||
|         ), |         ), | ||||||
|         SelectEntityDescription( |         HonSelectEntityDescription( | ||||||
|             key="startProgram.humanSensingStatus", |             key="settings.humanSensingStatus", | ||||||
|             name="Eco Pilot", |             name="Eco Pilot", | ||||||
|             entity_category=EntityCategory.CONFIG, |             icon="mdi:run", | ||||||
|             translation_key="eco_pilot", |             translation_key="eco_pilot", | ||||||
|         ), |         ), | ||||||
|     ), |     ), | ||||||
|  |     "REF": ( | ||||||
|  |         HonConfigSelectEntityDescription( | ||||||
|  |             key="startProgram.program", | ||||||
|  |             name="Program", | ||||||
|  |             translation_key="programs_ref", | ||||||
|  |         ), | ||||||
|  |         HonConfigSelectEntityDescription( | ||||||
|  |             key="startProgram.zone", | ||||||
|  |             name="Zone", | ||||||
|  |             icon="mdi:radiobox-marked", | ||||||
|  |             translation_key="ref_zones", | ||||||
|  |         ), | ||||||
|  |     ), | ||||||
| } | } | ||||||
|  |  | ||||||
| SELECTS["WD"] = unique_entities(SELECTS["WM"], SELECTS["TD"]) | SELECTS["WD"] = unique_entities(SELECTS["WM"], SELECTS["TD"]) | ||||||
|  |  | ||||||
|  |  | ||||||
| async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None: | async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None: | ||||||
|     hon: Hon = hass.data[DOMAIN][entry.unique_id] |     entities = [] | ||||||
|     coordinators = hass.data[DOMAIN]["coordinators"] |     for device in hass.data[DOMAIN][entry.unique_id].appliances: | ||||||
|     appliances = [] |         for description in SELECTS.get(device.appliance_type, []): | ||||||
|     for device in hon.appliances: |             if description.key not in device.available_settings: | ||||||
|         if device.unique_id in coordinators: |                 continue | ||||||
|             coordinator = hass.data[DOMAIN]["coordinators"][device.unique_id] |             if isinstance(description, HonSelectEntityDescription): | ||||||
|         else: |                 entity = HonSelectEntity(hass, entry, device, description) | ||||||
|             coordinator = HonCoordinator(hass, device) |             elif isinstance(description, HonConfigSelectEntityDescription): | ||||||
|             hass.data[DOMAIN]["coordinators"][device.unique_id] = coordinator |                 entity = HonConfigSelectEntity(hass, entry, device, description) | ||||||
|         await coordinator.async_config_entry_first_refresh() |             else: | ||||||
|  |                 continue | ||||||
|         if descriptions := SELECTS.get(device.appliance_type): |             await entity.coordinator.async_config_entry_first_refresh() | ||||||
|             for description in descriptions: |             entities.append(entity) | ||||||
|                 if description.key not in device.available_settings: |     async_add_entities(entities) | ||||||
|                     continue |  | ||||||
|                 appliances.extend( |  | ||||||
|                     [HonSelectEntity(hass, coordinator, entry, device, description)] |  | ||||||
|                 ) |  | ||||||
|     async_add_entities(appliances) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class HonSelectEntity(HonEntity, SelectEntity): | class HonSelectEntity(HonEntity, SelectEntity): | ||||||
|     def __init__( |     entity_description: HonSelectEntityDescription | ||||||
|         self, hass, coordinator, entry, device: HonAppliance, description |  | ||||||
|     ) -> None: |  | ||||||
|         super().__init__(hass, entry, coordinator, device) |  | ||||||
|  |  | ||||||
|         self._coordinator = coordinator |     def __init__(self, hass, entry, device: HonAppliance, description) -> None: | ||||||
|         self._device = device |         super().__init__(hass, entry, device, description) | ||||||
|         self.entity_description = description |  | ||||||
|         self._attr_unique_id = f"{super().unique_id}{description.key}" |  | ||||||
|  |  | ||||||
|         if not isinstance(self._device.settings[description.key], HonParameterFixed): |         if not (setting := self._device.settings.get(description.key)): | ||||||
|             self._attr_options: list[str] = device.settings[description.key].values |             self._attr_options: list[str] = [] | ||||||
|  |         elif not isinstance(setting, HonParameterFixed): | ||||||
|  |             self._attr_options: list[str] = setting.values | ||||||
|         else: |         else: | ||||||
|             self._attr_options: list[str] = [device.settings[description.key].value] |             self._attr_options: list[str] = [setting.value] | ||||||
|  |  | ||||||
|     @property |     @property | ||||||
|     def current_option(self) -> str | None: |     def current_option(self) -> str | None: | ||||||
| @ -156,8 +174,8 @@ class HonSelectEntity(HonEntity, SelectEntity): | |||||||
|  |  | ||||||
|     async def async_select_option(self, option: str) -> None: |     async def async_select_option(self, option: str) -> None: | ||||||
|         self._device.settings[self.entity_description.key].value = option |         self._device.settings[self.entity_description.key].value = option | ||||||
|         if self._device.appliance_type in ["AC"]: |         command = self.entity_description.key.split(".")[0] | ||||||
|             self._device.commands["startProgram"].send() |         await self._device.commands[command].send() | ||||||
|         await self.coordinator.async_refresh() |         await self.coordinator.async_refresh() | ||||||
|  |  | ||||||
|     @callback |     @callback | ||||||
| @ -172,3 +190,25 @@ class HonSelectEntity(HonEntity, SelectEntity): | |||||||
|             self._attr_options: list[str] = setting.values |             self._attr_options: list[str] = setting.values | ||||||
|             self._attr_native_value = setting.value |             self._attr_native_value = setting.value | ||||||
|         self.async_write_ha_state() |         self.async_write_ha_state() | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def available(self) -> bool: | ||||||
|  |         """Return True if entity is available.""" | ||||||
|  |         return ( | ||||||
|  |             super().available | ||||||
|  |             and self._device.get("remoteCtrValid", "1") == "1" | ||||||
|  |             and self._device.get("attributes.lastConnEvent.category") != "DISCONNECTED" | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class HonConfigSelectEntity(HonSelectEntity): | ||||||
|  |     entity_description: HonConfigSelectEntityDescription | ||||||
|  |  | ||||||
|  |     async def async_select_option(self, option: str) -> None: | ||||||
|  |         self._device.settings[self.entity_description.key].value = option | ||||||
|  |         await self.coordinator.async_refresh() | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def available(self) -> bool: | ||||||
|  |         """Return True if entity is available.""" | ||||||
|  |         return super(SelectEntity, self).available | ||||||
|  | |||||||
| @ -1,6 +1,5 @@ | |||||||
| import logging | import logging | ||||||
|  | from dataclasses import dataclass | ||||||
| from pyhon import Hon |  | ||||||
|  |  | ||||||
| from homeassistant.components.sensor import ( | from homeassistant.components.sensor import ( | ||||||
|     SensorEntity, |     SensorEntity, | ||||||
| @ -9,6 +8,7 @@ from homeassistant.components.sensor import ( | |||||||
|     SensorEntityDescription, |     SensorEntityDescription, | ||||||
| ) | ) | ||||||
| from homeassistant.config_entries import ConfigEntry | from homeassistant.config_entries import ConfigEntry | ||||||
|  | from homeassistant.const import PERCENTAGE | ||||||
| from homeassistant.const import ( | from homeassistant.const import ( | ||||||
|     REVOLUTIONS_PER_MINUTE, |     REVOLUTIONS_PER_MINUTE, | ||||||
|     UnitOfEnergy, |     UnitOfEnergy, | ||||||
| @ -21,18 +21,26 @@ from homeassistant.const import ( | |||||||
| from homeassistant.core import callback | from homeassistant.core import callback | ||||||
| from homeassistant.helpers.entity import EntityCategory | from homeassistant.helpers.entity import EntityCategory | ||||||
| from homeassistant.helpers.typing import StateType | from homeassistant.helpers.typing import StateType | ||||||
| from homeassistant.const import PERCENTAGE |  | ||||||
|  |  | ||||||
| from . import const | from . import const | ||||||
| from .const import DOMAIN | from .const import DOMAIN | ||||||
| from .hon import HonCoordinator, HonEntity, unique_entities | from .hon import HonEntity, unique_entities | ||||||
|  |  | ||||||
| _LOGGER = logging.getLogger(__name__) | _LOGGER = logging.getLogger(__name__) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @dataclass | ||||||
|  | class HonConfigSensorEntityDescription(SensorEntityDescription): | ||||||
|  |     entity_category: EntityCategory = EntityCategory.CONFIG | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @dataclass | ||||||
|  | class HonSensorEntityDescription(SensorEntityDescription): | ||||||
|  |     pass | ||||||
|  |  | ||||||
|  |  | ||||||
| SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | ||||||
|     "WM": ( |     "WM": ( | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="prPhase", |             key="prPhase", | ||||||
|             name="Program Phase", |             name="Program Phase", | ||||||
|             icon="mdi:washing-machine", |             icon="mdi:washing-machine", | ||||||
| @ -40,7 +48,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | |||||||
|             translation_key="program_phases_wm", |             translation_key="program_phases_wm", | ||||||
|             options=list(const.WASHING_PR_PHASE), |             options=list(const.WASHING_PR_PHASE), | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="totalElectricityUsed", |             key="totalElectricityUsed", | ||||||
|             name="Total Power", |             name="Total Power", | ||||||
|             device_class=SensorDeviceClass.ENERGY, |             device_class=SensorDeviceClass.ENERGY, | ||||||
| @ -48,7 +56,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | |||||||
|             native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR, |             native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR, | ||||||
|             translation_key="energy_total", |             translation_key="energy_total", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="totalWaterUsed", |             key="totalWaterUsed", | ||||||
|             name="Total Water", |             name="Total Water", | ||||||
|             device_class=SensorDeviceClass.WATER, |             device_class=SensorDeviceClass.WATER, | ||||||
| @ -56,14 +64,14 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | |||||||
|             native_unit_of_measurement=UnitOfVolume.LITERS, |             native_unit_of_measurement=UnitOfVolume.LITERS, | ||||||
|             translation_key="water_total", |             translation_key="water_total", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="totalWashCycle", |             key="totalWashCycle", | ||||||
|             name="Total Wash Cycle", |             name="Total Wash Cycle", | ||||||
|             state_class=SensorStateClass.TOTAL_INCREASING, |             state_class=SensorStateClass.TOTAL_INCREASING, | ||||||
|             icon="mdi:counter", |             icon="mdi:counter", | ||||||
|             translation_key="cycles_total", |             translation_key="cycles_total", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="currentElectricityUsed", |             key="currentElectricityUsed", | ||||||
|             name="Current Electricity Used", |             name="Current Electricity Used", | ||||||
|             state_class=SensorStateClass.MEASUREMENT, |             state_class=SensorStateClass.MEASUREMENT, | ||||||
| @ -72,23 +80,22 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | |||||||
|             icon="mdi:lightning-bolt", |             icon="mdi:lightning-bolt", | ||||||
|             translation_key="energy_current", |             translation_key="energy_current", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="currentWaterUsed", |             key="currentWaterUsed", | ||||||
|             name="Current Water Used", |             name="Current Water Used", | ||||||
|             state_class=SensorStateClass.MEASUREMENT, |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|             icon="mdi:water", |             icon="mdi:water", | ||||||
|             translation_key="water_current", |             translation_key="water_current", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonConfigSensorEntityDescription( | ||||||
|             key="startProgram.weight", |             key="startProgram.weight", | ||||||
|             name="Suggested weight", |             name="Suggested weight", | ||||||
|             state_class=SensorStateClass.MEASUREMENT, |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             native_unit_of_measurement=UnitOfMass.KILOGRAMS, |             native_unit_of_measurement=UnitOfMass.KILOGRAMS, | ||||||
|             icon="mdi:weight-kilogram", |             icon="mdi:weight-kilogram", | ||||||
|             translation_key="suggested_load", |             translation_key="suggested_load", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="machMode", |             key="machMode", | ||||||
|             name="Machine Status", |             name="Machine Status", | ||||||
|             icon="mdi:information", |             icon="mdi:information", | ||||||
| @ -96,10 +103,10 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | |||||||
|             translation_key="washing_modes", |             translation_key="washing_modes", | ||||||
|             options=list(const.MACH_MODE), |             options=list(const.MACH_MODE), | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="errors", name="Error", icon="mdi:math-log", translation_key="errors" |             key="errors", name="Error", icon="mdi:math-log", translation_key="errors" | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="remainingTimeMM", |             key="remainingTimeMM", | ||||||
|             name="Remaining Time", |             name="Remaining Time", | ||||||
|             icon="mdi:timer", |             icon="mdi:timer", | ||||||
| @ -107,7 +114,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | |||||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, |             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||||
|             translation_key="remaining_time", |             translation_key="remaining_time", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="spinSpeed", |             key="spinSpeed", | ||||||
|             name="Spin Speed", |             name="Spin Speed", | ||||||
|             icon="mdi:speedometer", |             icon="mdi:speedometer", | ||||||
| @ -115,55 +122,58 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | |||||||
|             native_unit_of_measurement=REVOLUTIONS_PER_MINUTE, |             native_unit_of_measurement=REVOLUTIONS_PER_MINUTE, | ||||||
|             translation_key="spin_speed", |             translation_key="spin_speed", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonConfigSensorEntityDescription( | ||||||
|             key="startProgram.energyLabel", |             key="startProgram.energyLabel", | ||||||
|             name="Energy Label", |             name="Energy Label", | ||||||
|             icon="mdi:lightning-bolt-circle", |             icon="mdi:lightning-bolt-circle", | ||||||
|             state_class=SensorStateClass.MEASUREMENT, |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="energy_label", |             translation_key="energy_label", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonConfigSensorEntityDescription( | ||||||
|             key="startProgram.liquidDetergentDose", |             key="startProgram.liquidDetergentDose", | ||||||
|             name="Liquid Detergent Dose", |             name="Liquid Detergent Dose", | ||||||
|             icon="mdi:cup-water", |             icon="mdi:cup-water", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="det_liquid", |             translation_key="det_liquid", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonConfigSensorEntityDescription( | ||||||
|             key="startProgram.powderDetergentDose", |             key="startProgram.powderDetergentDose", | ||||||
|             name="Powder Detergent Dose", |             name="Powder Detergent Dose", | ||||||
|             icon="mdi:cup", |             icon="mdi:cup", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="det_dust", |             translation_key="det_dust", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonConfigSensorEntityDescription( | ||||||
|             key="startProgram.remainingTime", |             key="startProgram.remainingTime", | ||||||
|             name="Remaining Time", |             name="Remaining Time", | ||||||
|             icon="mdi:timer", |             icon="mdi:timer", | ||||||
|             state_class=SensorStateClass.MEASUREMENT, |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, |             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="remaining_time", |             translation_key="remaining_time", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="dirtyLevel", |             key="dirtyLevel", | ||||||
|             name="Dirt level", |             name="Dirt level", | ||||||
|             icon="mdi:liquid-spot", |             icon="mdi:liquid-spot", | ||||||
|             translation_key="dirt_level", |             translation_key="dirt_level", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonConfigSensorEntityDescription( | ||||||
|             key="startProgram.suggestedLoadW", |             key="startProgram.suggestedLoadW", | ||||||
|             name="Suggested Load", |             name="Suggested Load", | ||||||
|             icon="mdi:weight-kilogram", |             icon="mdi:weight-kilogram", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             state_class=SensorStateClass.MEASUREMENT, |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|             native_unit_of_measurement=UnitOfMass.KILOGRAMS, |             native_unit_of_measurement=UnitOfMass.KILOGRAMS, | ||||||
|             translation_key="suggested_load", |             translation_key="suggested_load", | ||||||
|         ), |         ), | ||||||
|  |         HonSensorEntityDescription( | ||||||
|  |             key="temp", | ||||||
|  |             name="Current Temperature", | ||||||
|  |             icon="mdi:thermometer", | ||||||
|  |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|  |             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||||
|  |             translation_key="temperature", | ||||||
|  |         ), | ||||||
|     ), |     ), | ||||||
|     "TD": ( |     "TD": ( | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="machMode", |             key="machMode", | ||||||
|             name="Machine Status", |             name="Machine Status", | ||||||
|             icon="mdi:information", |             icon="mdi:information", | ||||||
| @ -171,10 +181,10 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | |||||||
|             translation_key="washing_modes", |             translation_key="washing_modes", | ||||||
|             options=list(const.MACH_MODE), |             options=list(const.MACH_MODE), | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="errors", name="Error", icon="mdi:math-log", translation_key="errors" |             key="errors", name="Error", icon="mdi:math-log", translation_key="errors" | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="remainingTimeMM", |             key="remainingTimeMM", | ||||||
|             name="Remaining Time", |             name="Remaining Time", | ||||||
|             icon="mdi:timer", |             icon="mdi:timer", | ||||||
| @ -182,7 +192,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | |||||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, |             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||||
|             translation_key="remaining_time", |             translation_key="remaining_time", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="delayTime", |             key="delayTime", | ||||||
|             name="Start Time", |             name="Start Time", | ||||||
|             icon="mdi:clock-start", |             icon="mdi:clock-start", | ||||||
| @ -190,7 +200,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | |||||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, |             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||||
|             translation_key="delay_time", |             translation_key="delay_time", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="programName", |             key="programName", | ||||||
|             name="Program", |             name="Program", | ||||||
|             icon="mdi:tumble-dryer", |             icon="mdi:tumble-dryer", | ||||||
| @ -198,7 +208,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | |||||||
|             translation_key="programs_td", |             translation_key="programs_td", | ||||||
|             options=const.PROGRAMS_TD, |             options=const.PROGRAMS_TD, | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="prPhase", |             key="prPhase", | ||||||
|             name="Program Phase", |             name="Program Phase", | ||||||
|             icon="mdi:washing-machine", |             icon="mdi:washing-machine", | ||||||
| @ -206,7 +216,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | |||||||
|             translation_key="program_phases_td", |             translation_key="program_phases_td", | ||||||
|             options=list(const.TUMBLE_DRYER_PR_PHASE), |             options=list(const.TUMBLE_DRYER_PR_PHASE), | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="dryLevel", |             key="dryLevel", | ||||||
|             name="Dry level", |             name="Dry level", | ||||||
|             icon="mdi:hair-dryer", |             icon="mdi:hair-dryer", | ||||||
| @ -214,58 +224,54 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | |||||||
|             translation_key="dry_levels", |             translation_key="dry_levels", | ||||||
|             options=list(const.TUMBLE_DRYER_DRY_LEVEL), |             options=list(const.TUMBLE_DRYER_DRY_LEVEL), | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="tempLevel", |             key="tempLevel", | ||||||
|             name="Temperature level", |             name="Temperature level", | ||||||
|             icon="mdi:thermometer", |             icon="mdi:thermometer", | ||||||
|             translation_key="tumbledryertemplevel", |             translation_key="tumbledryertemplevel", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonConfigSensorEntityDescription( | ||||||
|             key="startProgram.suggestedLoadD", |             key="startProgram.suggestedLoadD", | ||||||
|             name="Suggested Load", |             name="Suggested Load", | ||||||
|             icon="mdi:weight-kilogram", |             icon="mdi:weight-kilogram", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             state_class=SensorStateClass.MEASUREMENT, |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|             native_unit_of_measurement=UnitOfMass.KILOGRAMS, |             native_unit_of_measurement=UnitOfMass.KILOGRAMS, | ||||||
|             translation_key="suggested_load", |             translation_key="suggested_load", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonConfigSensorEntityDescription( | ||||||
|             key="startProgram.energyLabel", |             key="startProgram.energyLabel", | ||||||
|             name="Energy Label", |             name="Energy Label", | ||||||
|             icon="mdi:lightning-bolt-circle", |             icon="mdi:lightning-bolt-circle", | ||||||
|             state_class=SensorStateClass.MEASUREMENT, |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="energy_label", |             translation_key="energy_label", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonConfigSensorEntityDescription( | ||||||
|             key="startProgram.steamLevel", |             key="startProgram.steamLevel", | ||||||
|             name="Steam level", |             name="Steam level", | ||||||
|             icon="mdi:smoke", |             icon="mdi:smoke", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="steam_level", |             translation_key="steam_level", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="steamLevel", |             key="steamLevel", | ||||||
|             name="Steam level", |             name="Steam level", | ||||||
|             icon="mdi:smoke", |             icon="mdi:smoke", | ||||||
|             translation_key="steam_level", |             translation_key="steam_level", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonConfigSensorEntityDescription( | ||||||
|             key="steamType", |             key="steamType", | ||||||
|             name="Steam Type", |             name="Steam Type", | ||||||
|             icon="mdi:weather-dust", |             icon="mdi:weather-dust", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|         ), |         ), | ||||||
|     ), |     ), | ||||||
|     "OV": ( |     "OV": ( | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="remainingTimeMM", |             key="remainingTimeMM", | ||||||
|             name="Remaining Time", |             name="Remaining Time", | ||||||
|             icon="mdi:timer", |             icon="mdi:timer", | ||||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, |             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||||
|             translation_key="remaining_time", |             translation_key="remaining_time", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="delayTime", |             key="delayTime", | ||||||
|             name="Start Time", |             name="Start Time", | ||||||
|             icon="mdi:clock-start", |             icon="mdi:clock-start", | ||||||
| @ -273,13 +279,13 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | |||||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, |             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||||
|             translation_key="delay_time", |             translation_key="delay_time", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="temp", |             key="temp", | ||||||
|             name="Temperature", |             name="Temperature", | ||||||
|             icon="mdi:thermometer", |             icon="mdi:thermometer", | ||||||
|             translation_key="temperature", |             translation_key="temperature", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="tempSel", |             key="tempSel", | ||||||
|             name="Temperature Selected", |             name="Temperature Selected", | ||||||
|             icon="mdi:thermometer", |             icon="mdi:thermometer", | ||||||
| @ -287,14 +293,14 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | |||||||
|         ), |         ), | ||||||
|     ), |     ), | ||||||
|     "IH": ( |     "IH": ( | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="remainingTimeMM", |             key="remainingTimeMM", | ||||||
|             name="Remaining Time", |             name="Remaining Time", | ||||||
|             icon="mdi:timer", |             icon="mdi:timer", | ||||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, |             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||||
|             translation_key="remaining_time", |             translation_key="remaining_time", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="temp", |             key="temp", | ||||||
|             name="Temperature", |             name="Temperature", | ||||||
|             icon="mdi:thermometer", |             icon="mdi:thermometer", | ||||||
| @ -302,10 +308,10 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | |||||||
|             native_unit_of_measurement=UnitOfTemperature.CELSIUS, |             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||||
|             translation_key="temperature", |             translation_key="temperature", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="errors", name="Error", icon="mdi:math-log", translation_key="errors" |             key="errors", name="Error", icon="mdi:math-log", translation_key="errors" | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="power", |             key="power", | ||||||
|             name="Power", |             name="Power", | ||||||
|             icon="mdi:lightning-bolt", |             icon="mdi:lightning-bolt", | ||||||
| @ -314,57 +320,51 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | |||||||
|         ), |         ), | ||||||
|     ), |     ), | ||||||
|     "DW": ( |     "DW": ( | ||||||
|         SensorEntityDescription( |         HonConfigSensorEntityDescription( | ||||||
|             key="startProgram.ecoIndex", |             key="startProgram.ecoIndex", | ||||||
|             name="Eco Index", |             name="Eco Index", | ||||||
|             icon="mdi:sprout", |             icon="mdi:sprout", | ||||||
|             state_class=SensorStateClass.MEASUREMENT, |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonConfigSensorEntityDescription( | ||||||
|             key="startProgram.waterEfficiency", |             key="startProgram.waterEfficiency", | ||||||
|             name="Water Efficiency", |             name="Water Efficiency", | ||||||
|             icon="mdi:water", |             icon="mdi:water", | ||||||
|             state_class=SensorStateClass.MEASUREMENT, |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="water_efficiency", |             translation_key="water_efficiency", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonConfigSensorEntityDescription( | ||||||
|             key="startProgram.waterSaving", |             key="startProgram.waterSaving", | ||||||
|             name="Water Saving", |             name="Water Saving", | ||||||
|             icon="mdi:water-percent", |             icon="mdi:water-percent", | ||||||
|             state_class=SensorStateClass.MEASUREMENT, |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|             native_unit_of_measurement=PERCENTAGE, |             native_unit_of_measurement=PERCENTAGE, | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="water_saving", |             translation_key="water_saving", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonConfigSensorEntityDescription( | ||||||
|             key="startProgram.temp", |             key="startProgram.temp", | ||||||
|             name="Temperature", |             name="Temperature", | ||||||
|             icon="mdi:thermometer", |             icon="mdi:thermometer", | ||||||
|             state_class=SensorStateClass.MEASUREMENT, |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|             native_unit_of_measurement=UnitOfTemperature.CELSIUS, |             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="temperature", |             translation_key="temperature", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonConfigSensorEntityDescription( | ||||||
|             key="startProgram.energyLabel", |             key="startProgram.energyLabel", | ||||||
|             name="Energy Label", |             name="Energy Label", | ||||||
|             icon="mdi:lightning-bolt-circle", |             icon="mdi:lightning-bolt-circle", | ||||||
|             state_class=SensorStateClass.MEASUREMENT, |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="energy_label", |             translation_key="energy_label", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonConfigSensorEntityDescription( | ||||||
|             key="startProgram.remainingTime", |             key="startProgram.remainingTime", | ||||||
|             name="Time", |             name="Time", | ||||||
|             icon="mdi:timer", |             icon="mdi:timer", | ||||||
|             state_class=SensorStateClass.MEASUREMENT, |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, |             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="duration", |             translation_key="duration", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="machMode", |             key="machMode", | ||||||
|             name="Machine Status", |             name="Machine Status", | ||||||
|             icon="mdi:information", |             icon="mdi:information", | ||||||
| @ -372,10 +372,10 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | |||||||
|             translation_key="washing_modes", |             translation_key="washing_modes", | ||||||
|             options=list(const.MACH_MODE), |             options=list(const.MACH_MODE), | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="errors", name="Error", icon="mdi:math-log", translation_key="errors" |             key="errors", name="Error", icon="mdi:math-log", translation_key="errors" | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="remainingTimeMM", |             key="remainingTimeMM", | ||||||
|             name="Remaining Time", |             name="Remaining Time", | ||||||
|             icon="mdi:timer", |             icon="mdi:timer", | ||||||
| @ -383,7 +383,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | |||||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, |             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||||
|             translation_key="remaining_time", |             translation_key="remaining_time", | ||||||
|         ), |         ), | ||||||
|         SensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="prPhase", |             key="prPhase", | ||||||
|             name="Program Phase", |             name="Program Phase", | ||||||
|             icon="mdi:washing-machine", |             icon="mdi:washing-machine", | ||||||
| @ -392,50 +392,139 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | |||||||
|             options=list(const.DISHWASHER_PR_PHASE), |             options=list(const.DISHWASHER_PR_PHASE), | ||||||
|         ), |         ), | ||||||
|     ), |     ), | ||||||
|  |     "AC": ( | ||||||
|  |         HonSensorEntityDescription( | ||||||
|  |             key="tempAirOutdoor", | ||||||
|  |             name="Air Temperature Outdoor", | ||||||
|  |             icon="mdi:thermometer", | ||||||
|  |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|  |             device_class=SensorDeviceClass.TEMPERATURE, | ||||||
|  |             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||||
|  |         ), | ||||||
|  |         HonSensorEntityDescription( | ||||||
|  |             key="tempCoilerIndoor", | ||||||
|  |             name="Coiler Temperature Indoor", | ||||||
|  |             icon="mdi:thermometer", | ||||||
|  |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|  |             device_class=SensorDeviceClass.TEMPERATURE, | ||||||
|  |             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||||
|  |         ), | ||||||
|  |         HonSensorEntityDescription( | ||||||
|  |             key="tempCoilerOutdoor", | ||||||
|  |             name="Coiler Temperature Outside", | ||||||
|  |             icon="mdi:thermometer", | ||||||
|  |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|  |             device_class=SensorDeviceClass.TEMPERATURE, | ||||||
|  |             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||||
|  |         ), | ||||||
|  |         HonSensorEntityDescription( | ||||||
|  |             key="tempDefrostOutdoor", | ||||||
|  |             name="Defrost Temperature Outdoor", | ||||||
|  |             icon="mdi:thermometer", | ||||||
|  |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|  |             device_class=SensorDeviceClass.TEMPERATURE, | ||||||
|  |             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||||
|  |         ), | ||||||
|  |         HonSensorEntityDescription( | ||||||
|  |             key="tempInAirOutdoor", | ||||||
|  |             name="In Air Temperature Outdoor", | ||||||
|  |             icon="mdi:thermometer", | ||||||
|  |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|  |             device_class=SensorDeviceClass.TEMPERATURE, | ||||||
|  |             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||||
|  |         ), | ||||||
|  |         HonSensorEntityDescription( | ||||||
|  |             key="tempIndoor", | ||||||
|  |             name="Indoor Temperature", | ||||||
|  |             icon="mdi:thermometer", | ||||||
|  |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|  |             device_class=SensorDeviceClass.TEMPERATURE, | ||||||
|  |             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||||
|  |         ), | ||||||
|  |         HonSensorEntityDescription( | ||||||
|  |             key="tempOutdoor", | ||||||
|  |             name="Outdoor Temperature", | ||||||
|  |             icon="mdi:thermometer", | ||||||
|  |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|  |             device_class=SensorDeviceClass.TEMPERATURE, | ||||||
|  |             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||||
|  |         ), | ||||||
|  |         HonSensorEntityDescription( | ||||||
|  |             key="tempSel", | ||||||
|  |             name="Selected Temperature", | ||||||
|  |             icon="mdi:thermometer", | ||||||
|  |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|  |             device_class=SensorDeviceClass.TEMPERATURE, | ||||||
|  |             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||||
|  |         ), | ||||||
|  |     ), | ||||||
|  |     "REF": ( | ||||||
|  |         HonSensorEntityDescription( | ||||||
|  |             key="humidityEnv", | ||||||
|  |             name="Room Humidity", | ||||||
|  |             icon="mdi:water-percent", | ||||||
|  |             device_class=SensorDeviceClass.HUMIDITY, | ||||||
|  |             native_unit_of_measurement=PERCENTAGE, | ||||||
|  |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|  |             translation_key="humidity", | ||||||
|  |         ), | ||||||
|  |         HonSensorEntityDescription( | ||||||
|  |             key="tempEnv", | ||||||
|  |             name="Room Temperature", | ||||||
|  |             icon="mdi:home-thermometer-outline", | ||||||
|  |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|  |             device_class=SensorDeviceClass.TEMPERATURE, | ||||||
|  |             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||||
|  |             translation_key="room_temperature", | ||||||
|  |         ), | ||||||
|  |         HonSensorEntityDescription( | ||||||
|  |             key="tempZ1", | ||||||
|  |             name="Temperature Fridge", | ||||||
|  |             icon="mdi:thermometer", | ||||||
|  |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|  |             device_class=SensorDeviceClass.TEMPERATURE, | ||||||
|  |             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||||
|  |             translation_key="fridge_temp", | ||||||
|  |         ), | ||||||
|  |         HonSensorEntityDescription( | ||||||
|  |             key="tempZ2", | ||||||
|  |             name="Temperature Freezer", | ||||||
|  |             icon="mdi:snowflake-thermometer", | ||||||
|  |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|  |             device_class=SensorDeviceClass.TEMPERATURE, | ||||||
|  |             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||||
|  |             translation_key="freezer_temp", | ||||||
|  |         ), | ||||||
|  |         HonSensorEntityDescription( | ||||||
|  |             key="errors", name="Error", icon="mdi:math-log", translation_key="errors" | ||||||
|  |         ), | ||||||
|  |     ), | ||||||
| } | } | ||||||
| SENSORS["WD"] = unique_entities(SENSORS["WM"], SENSORS["TD"]) | SENSORS["WD"] = unique_entities(SENSORS["WM"], SENSORS["TD"]) | ||||||
|  |  | ||||||
|  |  | ||||||
| async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None: | async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None: | ||||||
|     hon: Hon = hass.data[DOMAIN][entry.unique_id] |     entities = [] | ||||||
|     coordinators = hass.data[DOMAIN]["coordinators"] |     for device in hass.data[DOMAIN][entry.unique_id].appliances: | ||||||
|     appliances = [] |         for description in SENSORS.get(device.appliance_type, []): | ||||||
|     for device in hon.appliances: |             if isinstance(description, HonSensorEntityDescription): | ||||||
|         if device.unique_id in coordinators: |                 if not device.get(description.key): | ||||||
|             coordinator = hass.data[DOMAIN]["coordinators"][device.unique_id] |  | ||||||
|         else: |  | ||||||
|             coordinator = HonCoordinator(hass, device) |  | ||||||
|             hass.data[DOMAIN]["coordinators"][device.unique_id] = coordinator |  | ||||||
|         await coordinator.async_config_entry_first_refresh() |  | ||||||
|  |  | ||||||
|         if descriptions := SENSORS.get(device.appliance_type): |  | ||||||
|             for description in descriptions: |  | ||||||
|                 if not device.get(description.key) and not device.settings.get( |  | ||||||
|                     description.key |  | ||||||
|                 ): |  | ||||||
|                     continue |                     continue | ||||||
|                 appliances.extend( |                 entity = HonSensorEntity(hass, entry, device, description) | ||||||
|                     [HonSensorEntity(hass, coordinator, entry, device, description)] |             elif isinstance(description, HonConfigSensorEntityDescription): | ||||||
|                 ) |                 if description.key not in device.available_settings: | ||||||
|  |                     continue | ||||||
|  |                 entity = HonConfigSensorEntity(hass, entry, device, description) | ||||||
|  |             else: | ||||||
|  |                 continue | ||||||
|  |             await entity.coordinator.async_config_entry_first_refresh() | ||||||
|  |             entities.append(entity) | ||||||
|  |  | ||||||
|     async_add_entities(appliances) |     async_add_entities(entities) | ||||||
|  |  | ||||||
|  |  | ||||||
| class HonSensorEntity(HonEntity, SensorEntity): | class HonSensorEntity(HonEntity, SensorEntity): | ||||||
|     def __init__(self, hass, coordinator, entry, device, description) -> None: |     entity_description: HonSensorEntityDescription | ||||||
|         super().__init__(hass, entry, coordinator, device) |  | ||||||
|  |  | ||||||
|         self._coordinator = coordinator |  | ||||||
|  |  | ||||||
|         self.entity_description = description |  | ||||||
|         self._attr_unique_id = f"{super().unique_id}{description.key}" |  | ||||||
|  |  | ||||||
|     @property |  | ||||||
|     def native_value(self) -> StateType: |  | ||||||
|         value = self._device.get(self.entity_description.key, "") |  | ||||||
|         if not value and self.entity_description.state_class is not None: |  | ||||||
|             return 0 |  | ||||||
|         return value |  | ||||||
|  |  | ||||||
|     @callback |     @callback | ||||||
|     def _handle_coordinator_update(self): |     def _handle_coordinator_update(self): | ||||||
| @ -444,3 +533,21 @@ class HonSensorEntity(HonEntity, SensorEntity): | |||||||
|             self._attr_native_value = 0 |             self._attr_native_value = 0 | ||||||
|         self._attr_native_value = value |         self._attr_native_value = value | ||||||
|         self.async_write_ha_state() |         self.async_write_ha_state() | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class HonConfigSensorEntity(HonEntity, SensorEntity): | ||||||
|  |     entity_description: HonConfigSensorEntityDescription | ||||||
|  |  | ||||||
|  |     @callback | ||||||
|  |     def _handle_coordinator_update(self): | ||||||
|  |         value = self._device.settings.get(self.entity_description.key, None) | ||||||
|  |         if self.entity_description.state_class is not None: | ||||||
|  |             if value and value.value: | ||||||
|  |                 self._attr_native_value = ( | ||||||
|  |                     float(value.value) if "." in str(value.value) else int(value.value) | ||||||
|  |                 ) | ||||||
|  |             else: | ||||||
|  |                 self._attr_native_value = 0 | ||||||
|  |         else: | ||||||
|  |             self._attr_native_value = value.value | ||||||
|  |         self.async_write_ha_state() | ||||||
|  | |||||||
| @ -5,12 +5,12 @@ from typing import Any | |||||||
| from homeassistant.components.switch import SwitchEntityDescription, SwitchEntity | from homeassistant.components.switch import SwitchEntityDescription, SwitchEntity | ||||||
| from homeassistant.config_entries import ConfigEntry | from homeassistant.config_entries import ConfigEntry | ||||||
| from homeassistant.const import EntityCategory | from homeassistant.const import EntityCategory | ||||||
| from pyhon import Hon | from homeassistant.core import callback | ||||||
| from pyhon.appliance import HonAppliance | from pyhon.parameter.base import HonParameter | ||||||
| from pyhon.parameter.range import HonParameterRange | from pyhon.parameter.range import HonParameterRange | ||||||
|  |  | ||||||
| from .const import DOMAIN | from .const import DOMAIN | ||||||
| from .hon import HonCoordinator, HonEntity, unique_entities | from .hon import HonEntity, unique_entities | ||||||
|  |  | ||||||
| _LOGGER = logging.getLogger(__name__) | _LOGGER = logging.getLogger(__name__) | ||||||
|  |  | ||||||
| @ -22,15 +22,24 @@ class HonSwitchEntityDescriptionMixin: | |||||||
|  |  | ||||||
|  |  | ||||||
| @dataclass | @dataclass | ||||||
| class HonSwitchEntityDescription( | class HonControlSwitchEntityDescription( | ||||||
|     HonSwitchEntityDescriptionMixin, SwitchEntityDescription |     HonSwitchEntityDescriptionMixin, SwitchEntityDescription | ||||||
| ): | ): | ||||||
|     pass |     pass | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class HonSwitchEntityDescription(SwitchEntityDescription): | ||||||
|  |     pass | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @dataclass | ||||||
|  | class HonConfigSwitchEntityDescription(SwitchEntityDescription): | ||||||
|  |     entity_category: EntityCategory = EntityCategory.CONFIG | ||||||
|  |  | ||||||
|  |  | ||||||
| SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = { | SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = { | ||||||
|     "WM": ( |     "WM": ( | ||||||
|         HonSwitchEntityDescription( |         HonControlSwitchEntityDescription( | ||||||
|             key="active", |             key="active", | ||||||
|             name="Washing Machine", |             name="Washing Machine", | ||||||
|             icon="mdi:washing-machine", |             icon="mdi:washing-machine", | ||||||
| @ -38,7 +47,7 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = { | |||||||
|             turn_off_key="stopProgram", |             turn_off_key="stopProgram", | ||||||
|             translation_key="washing_machine", |             translation_key="washing_machine", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonControlSwitchEntityDescription( | ||||||
|             key="pause", |             key="pause", | ||||||
|             name="Pause Washing Machine", |             name="Pause Washing Machine", | ||||||
|             icon="mdi:pause", |             icon="mdi:pause", | ||||||
| @ -46,72 +55,69 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = { | |||||||
|             turn_off_key="resumeProgram", |             turn_off_key="resumeProgram", | ||||||
|             translation_key="pause", |             translation_key="pause", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonConfigSwitchEntityDescription( | ||||||
|             key="startProgram.delayStatus", |             key="startProgram.delayStatus", | ||||||
|             name="Delay Status", |             name="Delay Status", | ||||||
|             icon="mdi:timer-check", |             icon="mdi:timer-check", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="delay_time", |             translation_key="delay_time", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonConfigSwitchEntityDescription( | ||||||
|             key="startProgram.haier_SoakPrewashSelection", |             key="startProgram.haier_SoakPrewashSelection", | ||||||
|             name="Soak Prewash Selection", |             name="Soak Prewash Selection", | ||||||
|             icon="mdi:tshirt-crew", |             icon="mdi:tshirt-crew", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="prewash", |             translation_key="prewash", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonConfigSwitchEntityDescription( | ||||||
|             key="startProgram.autoSoftenerStatus", |             key="startProgram.permanentPressStatus", | ||||||
|             name="Keep Fresh", |             name="Keep Fresh", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             icon="mdi:refresh-circle", |             icon="mdi:refresh-circle", | ||||||
|             translation_key="keep_fresh", |             translation_key="keep_fresh", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonConfigSwitchEntityDescription( | ||||||
|             key="startProgram.autoDetergentStatus", |             key="startProgram.autoSoftenerStatus", | ||||||
|             name="Auto Dose", |             name="Auto Dose Softener", | ||||||
|             entity_category=EntityCategory.CONFIG, |             icon="mdi:teddy-bear", | ||||||
|             icon="mdi:cup", |             translation_key="auto_dose_softener", | ||||||
|             translation_key="auto_dose", |  | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonConfigSwitchEntityDescription( | ||||||
|  |             key="startProgram.autoDetergentStatus", | ||||||
|  |             name="Auto Dose Detergent", | ||||||
|  |             icon="mdi:cup", | ||||||
|  |             translation_key="auto_dose_detergent", | ||||||
|  |         ), | ||||||
|  |         HonConfigSwitchEntityDescription( | ||||||
|             key="startProgram.acquaplus", |             key="startProgram.acquaplus", | ||||||
|             name="Acqua Plus", |             name="Acqua Plus", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             icon="mdi:water-plus", |             icon="mdi:water-plus", | ||||||
|             translation_key="acqua_plus", |             translation_key="acqua_plus", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonConfigSwitchEntityDescription( | ||||||
|             key="extraRinse1", |             key="startProgram.extraRinse1", | ||||||
|             name="Extra Rinse 1", |             name="Extra Rinse 1", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             icon="mdi:numeric-1-box-multiple-outline", |             icon="mdi:numeric-1-box-multiple-outline", | ||||||
|             translation_key="extra_rinse_1", |             translation_key="extra_rinse_1", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonConfigSwitchEntityDescription( | ||||||
|             key="extraRinse2", |             key="startProgram.extraRinse2", | ||||||
|             name="Extra Rinse 2", |             name="Extra Rinse 2", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             icon="mdi:numeric-2-box-multiple-outline", |             icon="mdi:numeric-2-box-multiple-outline", | ||||||
|             translation_key="extra_rinse_2", |             translation_key="extra_rinse_2", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonConfigSwitchEntityDescription( | ||||||
|             key="extraRinse3", |             key="startProgram.extraRinse3", | ||||||
|             name="Extra Rinse 3", |             name="Extra Rinse 3", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             icon="mdi:numeric-3-box-multiple-outline", |             icon="mdi:numeric-3-box-multiple-outline", | ||||||
|             translation_key="extra_rinse_3", |             translation_key="extra_rinse_3", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonConfigSwitchEntityDescription( | ||||||
|             key="goodNight", |             key="startProgram.goodNight", | ||||||
|             name="Good Night", |             name="Good Night", | ||||||
|             icon="mdi:weather-night", |             icon="mdi:weather-night", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="good_night", |             translation_key="good_night", | ||||||
|         ), |         ), | ||||||
|     ), |     ), | ||||||
|     "TD": ( |     "TD": ( | ||||||
|         HonSwitchEntityDescription( |         HonControlSwitchEntityDescription( | ||||||
|             key="active", |             key="active", | ||||||
|             name="Tumble Dryer", |             name="Tumble Dryer", | ||||||
|             icon="mdi:tumble-dryer", |             icon="mdi:tumble-dryer", | ||||||
| @ -119,7 +125,7 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = { | |||||||
|             turn_off_key="stopProgram", |             turn_off_key="stopProgram", | ||||||
|             translation_key="tumble_dryer", |             translation_key="tumble_dryer", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonControlSwitchEntityDescription( | ||||||
|             key="pause", |             key="pause", | ||||||
|             name="Pause Tumble Dryer", |             name="Pause Tumble Dryer", | ||||||
|             icon="mdi:pause", |             icon="mdi:pause", | ||||||
| @ -127,29 +133,26 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = { | |||||||
|             turn_off_key="resumeProgram", |             turn_off_key="resumeProgram", | ||||||
|             translation_key="pause", |             translation_key="pause", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonConfigSwitchEntityDescription( | ||||||
|             key="startProgram.sterilizationStatus", |             key="startProgram.sterilizationStatus", | ||||||
|             name="Sterilization", |             name="Sterilization", | ||||||
|             icon="mdi:clock-start", |             icon="mdi:clock-start", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonConfigSwitchEntityDescription( | ||||||
|             key="startProgram.antiCreaseTime", |             key="startProgram.antiCreaseTime", | ||||||
|             name="Anti-Crease", |             name="Anti-Crease", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             icon="mdi:timer", |             icon="mdi:timer", | ||||||
|             translation_key="anti_crease", |             translation_key="anti_crease", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonConfigSwitchEntityDescription( | ||||||
|             key="startProgram.anticrease", |             key="startProgram.anticrease", | ||||||
|             name="Anti-Crease", |             name="Anti-Crease", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             icon="mdi:timer", |             icon="mdi:timer", | ||||||
|             translation_key="anti_crease", |             translation_key="anti_crease", | ||||||
|         ), |         ), | ||||||
|     ), |     ), | ||||||
|     "OV": ( |     "OV": ( | ||||||
|         HonSwitchEntityDescription( |         HonControlSwitchEntityDescription( | ||||||
|             key="active", |             key="active", | ||||||
|             name="Oven", |             name="Oven", | ||||||
|             icon="mdi:toaster-oven", |             icon="mdi:toaster-oven", | ||||||
| @ -157,16 +160,15 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = { | |||||||
|             turn_off_key="stopProgram", |             turn_off_key="stopProgram", | ||||||
|             translation_key="oven", |             translation_key="oven", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonConfigSwitchEntityDescription( | ||||||
|             key="startProgram.preheatStatus", |             key="startProgram.preheatStatus", | ||||||
|             name="Preheat", |             name="Preheat", | ||||||
|             icon="mdi:thermometer-chevron-up", |             icon="mdi:thermometer-chevron-up", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="preheat", |             translation_key="preheat", | ||||||
|         ), |         ), | ||||||
|     ), |     ), | ||||||
|     "WD": ( |     "WD": ( | ||||||
|         HonSwitchEntityDescription( |         HonControlSwitchEntityDescription( | ||||||
|             key="active", |             key="active", | ||||||
|             name="Washer Dryer", |             name="Washer Dryer", | ||||||
|             icon="mdi:washing-machine", |             icon="mdi:washing-machine", | ||||||
| @ -174,7 +176,7 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = { | |||||||
|             turn_off_key="stopProgram", |             turn_off_key="stopProgram", | ||||||
|             translation_key="washer_dryer", |             translation_key="washer_dryer", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonControlSwitchEntityDescription( | ||||||
|             key="pause", |             key="pause", | ||||||
|             name="Pause Washer Dryer", |             name="Pause Washer Dryer", | ||||||
|             icon="mdi:pause", |             icon="mdi:pause", | ||||||
| @ -184,7 +186,7 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = { | |||||||
|         ), |         ), | ||||||
|     ), |     ), | ||||||
|     "DW": ( |     "DW": ( | ||||||
|         HonSwitchEntityDescription( |         HonControlSwitchEntityDescription( | ||||||
|             key="active", |             key="active", | ||||||
|             name="Dish Washer", |             name="Dish Washer", | ||||||
|             icon="mdi:dishwasher", |             icon="mdi:dishwasher", | ||||||
| @ -192,108 +194,133 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = { | |||||||
|             turn_off_key="stopProgram", |             turn_off_key="stopProgram", | ||||||
|             translation_key="dish_washer", |             translation_key="dish_washer", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonConfigSwitchEntityDescription( | ||||||
|             key="startProgram.extraDry", |             key="startProgram.extraDry", | ||||||
|             name="Extra Dry", |             name="Extra Dry", | ||||||
|             icon="mdi:hair-dryer", |             icon="mdi:hair-dryer", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="extra_dry", |             translation_key="extra_dry", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonConfigSwitchEntityDescription( | ||||||
|             key="startProgram.halfLoad", |             key="startProgram.halfLoad", | ||||||
|             name="Half Load", |             name="Half Load", | ||||||
|             icon="mdi:fraction-one-half", |             icon="mdi:fraction-one-half", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="half_load", |             translation_key="half_load", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonConfigSwitchEntityDescription( | ||||||
|             key="startProgram.openDoor", |             key="startProgram.openDoor", | ||||||
|             name="Open Door", |             name="Open Door", | ||||||
|             icon="mdi:door-open", |             icon="mdi:door-open", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="open_door", |             translation_key="open_door", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonConfigSwitchEntityDescription( | ||||||
|             key="startProgram.threeInOne", |             key="startProgram.threeInOne", | ||||||
|             name="Three in One", |             name="Three in One", | ||||||
|             icon="mdi:numeric-3-box-outline", |             icon="mdi:numeric-3-box-outline", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="three_in_one", |             translation_key="three_in_one", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonConfigSwitchEntityDescription( | ||||||
|             key="startProgram.ecoExpress", |             key="startProgram.ecoExpress", | ||||||
|             name="Eco Express", |             name="Eco Express", | ||||||
|             icon="mdi:sprout", |             icon="mdi:sprout", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="eco", |             translation_key="eco", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonConfigSwitchEntityDescription( | ||||||
|             key="startProgram.addDish", |             key="startProgram.addDish", | ||||||
|             name="Add Dish", |             name="Add Dish", | ||||||
|             icon="mdi:silverware-fork-knife", |             icon="mdi:silverware-fork-knife", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="add_dish", |             translation_key="add_dish", | ||||||
|         ), |         ), | ||||||
|  |         HonSwitchEntityDescription( | ||||||
|  |             key="buzzerDisabled", | ||||||
|  |             name="Buzzer Disabled", | ||||||
|  |             icon="mdi:volume-off", | ||||||
|  |             translation_key="buzzer", | ||||||
|  |         ), | ||||||
|     ), |     ), | ||||||
|     "AC": ( |     "AC": ( | ||||||
|         HonSwitchEntityDescription( |         HonSwitchEntityDescription( | ||||||
|             key="startProgram.10degreeHeatingStatus", |             key="10degreeHeatingStatus", | ||||||
|             name="10° Heating", |             name="10° Heating", | ||||||
|             entity_category=EntityCategory.CONFIG, |             icon="mdi:heat-wave", | ||||||
|             translation_key="10_degree_heating", |             translation_key="10_degree_heating", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonSwitchEntityDescription( | ||||||
|             key="startProgram.echoStatus", |             key="echoStatus", | ||||||
|             name="Echo", |             name="Echo", | ||||||
|             entity_category=EntityCategory.CONFIG, |             icon="mdi:account-voice", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonSwitchEntityDescription( | ||||||
|             key="startProgram.ecoMode", |             key="ecoMode", | ||||||
|             name="Eco Mode", |             name="Eco Mode", | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|             translation_key="eco_mode", |             translation_key="eco_mode", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonSwitchEntityDescription( | ||||||
|             key="startProgram.healthMode", |             key="healthMode", | ||||||
|             name="Health Mode", |             name="Health Mode", | ||||||
|             entity_category=EntityCategory.CONFIG, |             icon="mdi:medication-outline", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonSwitchEntityDescription( | ||||||
|             key="startProgram.muteStatus", |             key="muteStatus", | ||||||
|             name="Mute", |             name="Mute", | ||||||
|             entity_category=EntityCategory.CONFIG, |             icon="mdi:volume-off", | ||||||
|             translation_key="mute_mode", |             translation_key="mute_mode", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonSwitchEntityDescription( | ||||||
|             key="startProgram.rapidMode", |             key="rapidMode", | ||||||
|             name="Rapid Mode", |             name="Rapid Mode", | ||||||
|             entity_category=EntityCategory.CONFIG, |             icon="mdi:run-fast", | ||||||
|             translation_key="rapid_mode", |             translation_key="rapid_mode", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonSwitchEntityDescription( | ||||||
|             key="startProgram.screenDisplayStatus", |             key="screenDisplayStatus", | ||||||
|             name="Screen Display", |             name="Screen Display", | ||||||
|             entity_category=EntityCategory.CONFIG, |             icon="mdi:monitor-small", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonSwitchEntityDescription( | ||||||
|             key="startProgram.selfCleaning56Status", |             key="selfCleaning56Status", | ||||||
|             name="Self Cleaning 56", |             name="Self Cleaning 56", | ||||||
|             entity_category=EntityCategory.CONFIG, |             icon="mdi:air-filter", | ||||||
|             translation_key="self_clean_56", |             translation_key="self_clean_56", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonSwitchEntityDescription( | ||||||
|             key="startProgram.selfCleaningStatus", |             key="selfCleaningStatus", | ||||||
|             name="Self Cleaning", |             name="Self Cleaning", | ||||||
|             entity_category=EntityCategory.CONFIG, |             icon="mdi:air-filter", | ||||||
|             translation_key="self_clean", |             translation_key="self_clean", | ||||||
|         ), |         ), | ||||||
|         HonSwitchEntityDescription( |         HonSwitchEntityDescription( | ||||||
|             key="startProgram.silentSleepStatus", |             key="silentSleepStatus", | ||||||
|             name="Silent Sleep", |             name="Silent Sleep", | ||||||
|             entity_category=EntityCategory.CONFIG, |             icon="mdi:bed", | ||||||
|             translation_key="silent_mode", |             translation_key="silent_mode", | ||||||
|         ), |         ), | ||||||
|     ), |     ), | ||||||
|  |     "REF": ( | ||||||
|  |         HonSwitchEntityDescription( | ||||||
|  |             key="intelligenceMode", | ||||||
|  |             name="Auto-Set Mode", | ||||||
|  |             icon="mdi:thermometer-auto", | ||||||
|  |             translation_key="auto_set", | ||||||
|  |         ), | ||||||
|  |         HonSwitchEntityDescription( | ||||||
|  |             key="quickModeZ1", | ||||||
|  |             name="Super Freeze", | ||||||
|  |             icon="mdi:snowflake-variant", | ||||||
|  |             translation_key="super_freeze", | ||||||
|  |         ), | ||||||
|  |         HonSwitchEntityDescription( | ||||||
|  |             key="quickModeZ2", | ||||||
|  |             name="Super Cool", | ||||||
|  |             icon="mdi:snowflake", | ||||||
|  |             translation_key="super_cool", | ||||||
|  |         ), | ||||||
|  |         HonSwitchEntityDescription( | ||||||
|  |             key="holidayMode", | ||||||
|  |             name="Holiday Mode", | ||||||
|  |             icon="mdi:palm-tree", | ||||||
|  |             translation_key="holiday_mode", | ||||||
|  |         ), | ||||||
|  |     ), | ||||||
| } | } | ||||||
|  |  | ||||||
| SWITCHES["WD"] = unique_entities(SWITCHES["WD"], SWITCHES["WM"]) | SWITCHES["WD"] = unique_entities(SWITCHES["WD"], SWITCHES["WM"]) | ||||||
| @ -301,81 +328,133 @@ SWITCHES["WD"] = unique_entities(SWITCHES["WD"], SWITCHES["TD"]) | |||||||
|  |  | ||||||
|  |  | ||||||
| async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None: | async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None: | ||||||
|     hon: Hon = hass.data[DOMAIN][entry.unique_id] |     entities = [] | ||||||
|     coordinators = hass.data[DOMAIN]["coordinators"] |     for device in hass.data[DOMAIN][entry.unique_id].appliances: | ||||||
|     appliances = [] |         for description in SWITCHES.get(device.appliance_type, []): | ||||||
|     for device in hon.appliances: |             if isinstance(description, HonConfigSwitchEntityDescription): | ||||||
|         if device.unique_id in coordinators: |                 if description.key not in device.available_settings: | ||||||
|             coordinator = hass.data[DOMAIN]["coordinators"][device.unique_id] |                     continue | ||||||
|         else: |                 entity = HonConfigSwitchEntity(hass, entry, device, description) | ||||||
|             coordinator = HonCoordinator(hass, device) |             elif isinstance(description, HonControlSwitchEntityDescription): | ||||||
|             hass.data[DOMAIN]["coordinators"][device.unique_id] = coordinator |                 if not ( | ||||||
|         await coordinator.async_config_entry_first_refresh() |  | ||||||
|  |  | ||||||
|         if descriptions := SWITCHES.get(device.appliance_type): |  | ||||||
|             for description in descriptions: |  | ||||||
|                 if ( |  | ||||||
|                     device.get(description.key) is not None |                     device.get(description.key) is not None | ||||||
|                     or description.key in device.available_settings |                     or description.turn_on_key in list(device.commands) | ||||||
|  |                     or description.turn_off_key in list(device.commands) | ||||||
|                 ): |                 ): | ||||||
|                     appliances.extend( |                     continue | ||||||
|                         [HonSwitchEntity(hass, coordinator, entry, device, description)] |                 entity = HonControlSwitchEntity(hass, entry, device, description) | ||||||
|                     ) |             elif isinstance(description, HonSwitchEntityDescription): | ||||||
|  |                 if ( | ||||||
|  |                     f"settings.{description.key}" not in device.available_settings | ||||||
|  |                     or not device.get(description.key) | ||||||
|  |                 ): | ||||||
|  |                     continue | ||||||
|  |                 entity = HonSwitchEntity(hass, entry, device, description) | ||||||
|  |             else: | ||||||
|  |                 continue | ||||||
|  |             await entity.coordinator.async_config_entry_first_refresh() | ||||||
|  |             entities.append(entity) | ||||||
|  |  | ||||||
|     async_add_entities(appliances) |     async_add_entities(entities) | ||||||
|  |  | ||||||
|  |  | ||||||
| class HonSwitchEntity(HonEntity, SwitchEntity): | class HonSwitchEntity(HonEntity, SwitchEntity): | ||||||
|     entity_description: HonSwitchEntityDescription |     entity_description: HonSwitchEntityDescription | ||||||
|  |  | ||||||
|     def __init__( |     @property | ||||||
|         self, |     def is_on(self) -> bool | None: | ||||||
|         hass, |         """Return True if entity is on.""" | ||||||
|         coordinator, |         return self._device.get(self.entity_description.key, "0") == "1" | ||||||
|         entry, |  | ||||||
|         device: HonAppliance, |     async def async_turn_on(self, **kwargs: Any) -> None: | ||||||
|         description: HonSwitchEntityDescription, |         setting = self._device.settings[f"settings.{self.entity_description.key}"] | ||||||
|     ) -> None: |         if type(setting) == HonParameter: | ||||||
|         super().__init__(hass, entry, coordinator, device) |             return | ||||||
|         self._coordinator = coordinator |         setting.value = setting.max if isinstance(setting, HonParameterRange) else "1" | ||||||
|         self._device = device |         self.async_write_ha_state() | ||||||
|         self.entity_description = description |         await self._device.commands["settings"].send() | ||||||
|         self._attr_unique_id = f"{super().unique_id}{description.key}" |         await self.coordinator.async_refresh() | ||||||
|  |  | ||||||
|  |     async def async_turn_off(self, **kwargs: Any) -> None: | ||||||
|  |         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 self._device.get("remoteCtrValid", "1") == "1" | ||||||
|  |             and self._device.get("attributes.lastConnEvent.category") != "DISCONNECTED" | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |     @callback | ||||||
|  |     def _handle_coordinator_update(self): | ||||||
|  |         value = self._device.get(self.entity_description.key, "0") | ||||||
|  |         self._attr_state = value == "1" | ||||||
|  |         self.async_write_ha_state() | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class HonControlSwitchEntity(HonEntity, SwitchEntity): | ||||||
|  |     entity_description: HonControlSwitchEntityDescription | ||||||
|  |  | ||||||
|     @property |     @property | ||||||
|     def is_on(self) -> bool | None: |     def is_on(self) -> bool | None: | ||||||
|         """Return True if entity is on.""" |         """Return True if entity is on.""" | ||||||
|         if self.entity_category == EntityCategory.CONFIG: |  | ||||||
|             setting = self._device.settings[self.entity_description.key] |  | ||||||
|             return ( |  | ||||||
|                 setting.value == "1" |  | ||||||
|                 or hasattr(setting, "min") |  | ||||||
|                 and setting.value != setting.min |  | ||||||
|             ) |  | ||||||
|         return self._device.get(self.entity_description.key, False) |         return self._device.get(self.entity_description.key, False) | ||||||
|  |  | ||||||
|     async def async_turn_on(self, **kwargs: Any) -> None: |     async def async_turn_on(self, **kwargs: Any) -> None: | ||||||
|         if self.entity_category == EntityCategory.CONFIG: |         await self._device.commands[self.entity_description.turn_on_key].send() | ||||||
|             setting = self._device.settings[self.entity_description.key] |  | ||||||
|             setting.value = ( |  | ||||||
|                 setting.max if isinstance(setting, HonParameterRange) else "1" |  | ||||||
|             ) |  | ||||||
|             self.async_write_ha_state() |  | ||||||
|             if self._device.appliance_type in ["AC"]: |  | ||||||
|                 self._device.commands["startProgram"].send() |  | ||||||
|             await self.coordinator.async_refresh() |  | ||||||
|         else: |  | ||||||
|             await self._device.commands[self.entity_description.turn_on_key].send() |  | ||||||
|  |  | ||||||
|     async def async_turn_off(self, **kwargs: Any) -> None: |     async def async_turn_off(self, **kwargs: Any) -> None: | ||||||
|         if self.entity_category == EntityCategory.CONFIG: |         await self._device.commands[self.entity_description.turn_off_key].send() | ||||||
|             setting = self._device.settings[self.entity_description.key] |  | ||||||
|             setting.value = ( |     @property | ||||||
|                 setting.min if isinstance(setting, HonParameterRange) else "0" |     def available(self) -> bool: | ||||||
|             ) |         """Return True if entity is available.""" | ||||||
|             self.async_write_ha_state() |         return ( | ||||||
|             if self._device.appliance_type in ["AC"]: |             super().available | ||||||
|                 self._device.commands["startProgram"].send() |             and self._device.get("remoteCtrValid", "1") == "1" | ||||||
|             await self.coordinator.async_refresh() |             and self._device.get("attributes.lastConnEvent.category") != "DISCONNECTED" | ||||||
|         else: |         ) | ||||||
|             await self._device.commands[self.entity_description.turn_off_key].send() |  | ||||||
|  |  | ||||||
|  | class HonConfigSwitchEntity(HonEntity, SwitchEntity): | ||||||
|  |     entity_description: HonConfigSwitchEntityDescription | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def is_on(self) -> bool | None: | ||||||
|  |         """Return True if entity is on.""" | ||||||
|  |         setting = self._device.settings[self.entity_description.key] | ||||||
|  |         return ( | ||||||
|  |             setting.value != setting.min | ||||||
|  |             if hasattr(setting, "min") | ||||||
|  |             else setting.value == "1" | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |     async def async_turn_on(self, **kwargs: Any) -> None: | ||||||
|  |         setting = self._device.settings[self.entity_description.key] | ||||||
|  |         if type(setting) == HonParameter: | ||||||
|  |             return | ||||||
|  |         setting.value = setting.max if isinstance(setting, HonParameterRange) else "1" | ||||||
|  |         self.async_write_ha_state() | ||||||
|  |         await self.coordinator.async_refresh() | ||||||
|  |  | ||||||
|  |     async def async_turn_off(self, **kwargs: Any) -> None: | ||||||
|  |         setting = self._device.settings[self.entity_description.key] | ||||||
|  |         if type(setting) == HonParameter: | ||||||
|  |             return | ||||||
|  |         setting.value = setting.min if isinstance(setting, HonParameterRange) else "0" | ||||||
|  |         self.async_write_ha_state() | ||||||
|  |         await self.coordinator.async_refresh() | ||||||
|  |  | ||||||
|  |     @callback | ||||||
|  |     def _handle_coordinator_update(self): | ||||||
|  |         value = self._device.settings.get(self.entity_description.key, "0") | ||||||
|  |         self._attr_state = value == "1" | ||||||
|  |         self.async_write_ha_state() | ||||||
|  | |||||||
| @ -225,7 +225,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Rychlý 20", |                     "hqd_quick_20": "Rychlý 20", | ||||||
|                     "hqd_quick_30": "Rychlý 30", |                     "hqd_quick_30": "Rychlý 30", | ||||||
|                     "hqd_quick_dry": "Rychlé sušení", |                     "hqd_quick_dry": "Rychlé sušení 30", | ||||||
|                     "hqd_quilt": "Deky", |                     "hqd_quilt": "Deky", | ||||||
|                     "hqd_refresh": "Osvěžení", |                     "hqd_refresh": "Osvěžení", | ||||||
|                     "hqd_school_uniform": "Školní uniformy", |                     "hqd_school_uniform": "Školní uniformy", | ||||||
| @ -307,6 +307,18 @@ | |||||||
|                     "xxl_load": "XXL náplň", |                     "xxl_load": "XXL náplň", | ||||||
|                     "zoom_59": "Zoom 59" |                     "zoom_59": "Zoom 59" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "room_temperature": { | ||||||
|  |                 "name": "Pokojová teplota" | ||||||
|  |             }, | ||||||
|  |             "humidity": { | ||||||
|  |                 "name": "Vlhkost" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp": { | ||||||
|  |                 "name": "Teplota mrazničky" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp": { | ||||||
|  |                 "name": "Teplota chladničky" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "select": { |         "select": { | ||||||
| @ -397,6 +409,11 @@ | |||||||
|                     "silent": "Noc", |                     "silent": "Noc", | ||||||
|                     "silent_care": "Silent Care", |                     "silent_care": "Silent Care", | ||||||
|                     "smart_ai": "Smart AI", |                     "smart_ai": "Smart AI", | ||||||
|  |                     "smart_ai_pro": "Smart AI Pro", | ||||||
|  |                     "smart_ai_pro_soil": "Smart AI Pro", | ||||||
|  |                     "smart_ai_rapid": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_soil": "Smart AI", | ||||||
|                     "special": "speciální", |                     "special": "speciální", | ||||||
|                     "special_pw_prz": "speciální", |                     "special_pw_prz": "speciální", | ||||||
|                     "steam": "Parní 75 °C", |                     "steam": "Parní 75 °C", | ||||||
| @ -453,19 +470,20 @@ | |||||||
|             "programs_ov": { |             "programs_ov": { | ||||||
|                 "state": { |                 "state": { | ||||||
|                     "bakery": "Těstoviny a pečivo", |                     "bakery": "Těstoviny a pečivo", | ||||||
|                     "bakery_steam": "Chléb pečený v páře", |                     "bakery_steam": "Pára v troubě", | ||||||
|                     "bottom_heating": "Spodní ohřev", |                     "bottom_heating": "Spodní ohřev", | ||||||
|                     "bottom_heating_fan": "Spodní ohřev + ventilátor", |                     "bottom_heating_fan": "Spodní ohřev + ventilátor", | ||||||
|                     "bread": "Chléb", |                     "bread": "Chléb", | ||||||
|                     "bread_steam": "Pečivo pečené v páře", |                     "bread_steam": "Chléb pečený v páře", | ||||||
|  |                     "combi": "Combi", | ||||||
|                     "convection_fan": "Statický + ventilátor", |                     "convection_fan": "Statický + ventilátor", | ||||||
|                     "convection_fan_turnspit": "Konvekce + ventilátor + rožeň", |                     "convection_fan_turnspit": "Konvekce + ventilátor + rožeň", | ||||||
|                     "conventional": "Statický", |                     "conventional": "Statický", | ||||||
|                     "conventional_turnspit": "Konvekční + rožeň", |                     "conventional_turnspit": "Konvekce + rožeň", | ||||||
|                     "defrost": "Rozmrazování", |                     "defrost": "Rozmrazování", | ||||||
|                     "descaling": "Odstraňování vodního kamene", |                     "descaling": "Odstraňování vodního kamene", | ||||||
|                     "fish": "Ryby", |                     "fish": "Ryby", | ||||||
|                     "fish_steam": "Ryby připravované v páře", |                     "fish_steam": "Ryby v páře", | ||||||
|                     "grill_cata": "Gril", |                     "grill_cata": "Gril", | ||||||
|                     "grill_fan_cata": "Ventilátor grilu", |                     "grill_fan_cata": "Ventilátor grilu", | ||||||
|                     "grill_fan_pyro": "Gril + ventilátor", |                     "grill_fan_pyro": "Gril + ventilátor", | ||||||
| @ -475,13 +493,13 @@ | |||||||
|                     "iot_h20_clean": "h2O clean", |                     "iot_h20_clean": "h2O clean", | ||||||
|                     "leavening": "Kynutí", |                     "leavening": "Kynutí", | ||||||
|                     "low_temp_cooking": "Příprava při nízkých teplotách", |                     "low_temp_cooking": "Příprava při nízkých teplotách", | ||||||
|                     "low_temp_cooking_fish": "Příprava ryb při nízkých teplotách", |                     "low_temp_cooking_fish": "Příprava při nízkých teplotách – ryby", | ||||||
|                     "low_temp_cooking_fish_steam": "Příprava ryb v páře při nízkých teplotách", |                     "low_temp_cooking_fish_steam": "Příprava při nízkých teplotách – ryby v páře", | ||||||
|                     "low_temp_cooking_meat": "Příprava masa při nízkých teplotách", |                     "low_temp_cooking_meat": "Příprava při nízkých teplotách – maso", | ||||||
|                     "low_temp_cooking_meat_steam": "Příprava masa v páře při nízkých teplotách", |                     "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", |                     "low_temp_cooking_steam": "Příprava v páře při nízkých teplotách", | ||||||
|                     "meat": "Maso", |                     "meat": "Maso", | ||||||
|                     "meat_steam": "Maso připravované v páře", |                     "meat_steam": "Maso v páře", | ||||||
|                     "multi_level": "Víceúrovňové", |                     "multi_level": "Víceúrovňové", | ||||||
|                     "paella": "Paella", |                     "paella": "Paella", | ||||||
|                     "pasta_and_bakery": "Těstoviny a pečivo", |                     "pasta_and_bakery": "Těstoviny a pečivo", | ||||||
| @ -489,7 +507,7 @@ | |||||||
|                     "pyrolysis": "Pyrolýza", |                     "pyrolysis": "Pyrolýza", | ||||||
|                     "pyrolysis_plus": "Pyrolýza +", |                     "pyrolysis_plus": "Pyrolýza +", | ||||||
|                     "red_meat": "Tmavé maso", |                     "red_meat": "Tmavé maso", | ||||||
|                     "red_meat_steam": "Červené maso připravované v páře", |                     "red_meat_steam": "Červené maso vařené v páře", | ||||||
|                     "regenerate": "Regenerace", |                     "regenerate": "Regenerace", | ||||||
|                     "soft_plus": "Soft +", |                     "soft_plus": "Soft +", | ||||||
|                     "super_grill": "Super gril", |                     "super_grill": "Super gril", | ||||||
| @ -499,9 +517,9 @@ | |||||||
|                     "vegetables": "Zelenina", |                     "vegetables": "Zelenina", | ||||||
|                     "vegetables_cata": "Zelenina", |                     "vegetables_cata": "Zelenina", | ||||||
|                     "vegetables_pyro": "Zelenina", |                     "vegetables_pyro": "Zelenina", | ||||||
|                     "water_discharge": "Odtok vody", |                     "water_discharge": "Vypouštění vody", | ||||||
|                     "white_meat": "Bílé maso", |                     "white_meat": "Bílé maso", | ||||||
|                     "white_meat_steam": "Bílé maso připravované v páře" |                     "white_meat_steam": "Bílé maso vařené v páře" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Program" |                 "name": "Program" | ||||||
|             }, |             }, | ||||||
| @ -558,7 +576,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Rychlý 20", |                     "hqd_quick_20": "Rychlý 20", | ||||||
|                     "hqd_quick_30": "Rychlý 30", |                     "hqd_quick_30": "Rychlý 30", | ||||||
|                     "hqd_quick_dry": "Rychlé sušení", |                     "hqd_quick_dry": "Rychlé sušení 30", | ||||||
|                     "hqd_quilt": "Deky", |                     "hqd_quilt": "Deky", | ||||||
|                     "hqd_refresh": "Osvěžení", |                     "hqd_refresh": "Osvěžení", | ||||||
|                     "hqd_school_uniform": "Školní uniformy", |                     "hqd_school_uniform": "Školní uniformy", | ||||||
| @ -1013,6 +1031,40 @@ | |||||||
|                     "iot_uv_and_fan": "UV + ventilátor", |                     "iot_uv_and_fan": "UV + ventilátor", | ||||||
|                     "iot_uv_and_heat": "UV + ohřev" |                     "iot_uv_and_heat": "UV + ohřev" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "programs_ref": { | ||||||
|  |                 "state": { | ||||||
|  |                     "auto_set": "AUTOMATICKÉ NASTAVENÍ", | ||||||
|  |                     "cheese": "Sýr", | ||||||
|  |                     "chiller": "Quick cool", | ||||||
|  |                     "cold_drinks": "Soft chill", | ||||||
|  |                     "eco": "Eco", | ||||||
|  |                     "eco_mode": "Režim Eco", | ||||||
|  |                     "fruits_and_veg": "Fruit&Veg", | ||||||
|  |                     "fruit_and_veg": "Fruit & Veg", | ||||||
|  |                     "holiday": "DOVOLENÁ", | ||||||
|  |                     "keep_fresh": "0° Fresh", | ||||||
|  |                     "no_mode_selected": "Není vybrán žádný režim", | ||||||
|  |                     "quick_cool": "QUICK COOL", | ||||||
|  |                     "sea_food": "Ready to cook meal", | ||||||
|  |                     "soft_frozen": "Soft freezing", | ||||||
|  |                     "super_cool": "SUPER CHLAZENÍ", | ||||||
|  |                     "super_freeze": "SUPER MRAZENÍ", | ||||||
|  |                     "tea": "Cold drinks or Beverages", | ||||||
|  |                     "zero_fresh": "0° Fresh" | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "remaining_time": { | ||||||
|  |                 "name": "Zbývající čas" | ||||||
|  |             }, | ||||||
|  |             "ref_zones": { | ||||||
|  |                 "state": { | ||||||
|  |                     "fridge": "Chladnička", | ||||||
|  |                     "freezer": "Mraznička", | ||||||
|  |                     "vtroom1": "My Zone", | ||||||
|  |                     "fridge_freezer": "Chladnička & Mraznička" | ||||||
|  |                 }, | ||||||
|  |                 "name": "Zóna" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "switch": { |         "switch": { | ||||||
| @ -1056,7 +1108,7 @@ | |||||||
|                 "name": "Trouba" |                 "name": "Trouba" | ||||||
|             }, |             }, | ||||||
|             "prewash": { |             "prewash": { | ||||||
|                 "name": "Předpírka\r\r\r\r\r\r\n" |                 "name": "Předpírka\r\r\r\r\r\r\r\n" | ||||||
|             }, |             }, | ||||||
|             "pause": { |             "pause": { | ||||||
|                 "name": "Pozastavit" |                 "name": "Pozastavit" | ||||||
| @ -1105,6 +1157,24 @@ | |||||||
|             }, |             }, | ||||||
|             "good_night": { |             "good_night": { | ||||||
|                 "name": "Dobrou noc" |                 "name": "Dobrou noc" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_softener": { | ||||||
|  |                 "name": "Automatické dávkování Avivážní prostředek" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_detergent": { | ||||||
|  |                 "name": "Automatické dávkování Prací prostředek" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Automatické nastavení" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "refrigerator": { | ||||||
|  |                 "name": "Chladnička" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "binary_sensor": { |         "binary_sensor": { | ||||||
| @ -1175,13 +1245,37 @@ | |||||||
|                 "name": "Zapnout" |                 "name": "Zapnout" | ||||||
|             }, |             }, | ||||||
|             "prewash": { |             "prewash": { | ||||||
|                 "name": "Předpírka\r\r\r\r\r\r\n" |                 "name": "Předpírka\r\r\r\r\r\r\r\n" | ||||||
|             }, |             }, | ||||||
|             "acqua_plus": { |             "acqua_plus": { | ||||||
|                 "name": "Aquaplus" |                 "name": "Aquaplus" | ||||||
|             }, |             }, | ||||||
|             "auto_dose": { |             "auto_dose": { | ||||||
|                 "name": "Automatické dávkování" |                 "name": "Automatické dávkování" | ||||||
|  |             }, | ||||||
|  |             "buzzer": { | ||||||
|  |                 "name": "Zvuková signalizace konce cyklu" | ||||||
|  |             }, | ||||||
|  |             "holiday_mode": { | ||||||
|  |                 "name": "Režim Holiday" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Automatické nastavení" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "freezer_door": { | ||||||
|  |                 "name": "Otevřená dvířka Mraznička" | ||||||
|  |             }, | ||||||
|  |             "fridge_door": { | ||||||
|  |                 "name": "Otevřená dvířka Chladnička" | ||||||
|  |             }, | ||||||
|  |             "filter_replacement": { | ||||||
|  |                 "name": "Výměna filtru" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "number": { |         "number": { | ||||||
| @ -1214,11 +1308,55 @@ | |||||||
|             }, |             }, | ||||||
|             "steam_level": { |             "steam_level": { | ||||||
|                 "name": "Úroveň páry" |                 "name": "Úroveň páry" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp_sel": { | ||||||
|  |                 "name": "Cílová teplota Mraznička" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp_sel": { | ||||||
|  |                 "name": "Cílová teplota Chladnička" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "button": { |         "button": { | ||||||
|             "induction_hob": { |             "induction_hob": { | ||||||
|                 "name": "Indukční varná deska" |                 "name": "Indukční varná deska" | ||||||
|  |             }, | ||||||
|  |             "start_program": { | ||||||
|  |                 "name": "Program Zahájení" | ||||||
|  |             }, | ||||||
|  |             "stop_program": { | ||||||
|  |                 "name": "Program Zastavit" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "climate": { | ||||||
|  |             "air_conditioner": { | ||||||
|  |                 "name": "Klimatizační jednotka" | ||||||
|  |             }, | ||||||
|  |             "fridge": { | ||||||
|  |                 "name": "Chladnička", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Režimy chladničky", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Automatické nastavení", | ||||||
|  |                             "super_cool": "Super Cool", | ||||||
|  |                             "holiday": "Holiday", | ||||||
|  |                             "no_mode": "Není vybrán žádný režim" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "freezer": { | ||||||
|  |                 "name": "Mraznička", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Režimy mrazničky", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Automatické nastavení", | ||||||
|  |                             "super_freeze": "Super Freeze", | ||||||
|  |                             "no_mode": "Není vybrán žádný režim" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -225,7 +225,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious Cure", |                     "hqd_precious_cure": "Precious Cure", | ||||||
|                     "hqd_quick_20": "Schnell 20", |                     "hqd_quick_20": "Schnell 20", | ||||||
|                     "hqd_quick_30": "Schnell 30", |                     "hqd_quick_30": "Schnell 30", | ||||||
|                     "hqd_quick_dry": "Schnell trocken", |                     "hqd_quick_dry": "Schnell trocken 30", | ||||||
|                     "hqd_quilt": "Steppdecken", |                     "hqd_quilt": "Steppdecken", | ||||||
|                     "hqd_refresh": "Auffrischen", |                     "hqd_refresh": "Auffrischen", | ||||||
|                     "hqd_school_uniform": "Schuluniform", |                     "hqd_school_uniform": "Schuluniform", | ||||||
| @ -307,6 +307,18 @@ | |||||||
|                     "xxl_load": "XXL-Beladung", |                     "xxl_load": "XXL-Beladung", | ||||||
|                     "zoom_59": "Zoom 59" |                     "zoom_59": "Zoom 59" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "room_temperature": { | ||||||
|  |                 "name": "Raumtemperatur" | ||||||
|  |             }, | ||||||
|  |             "humidity": { | ||||||
|  |                 "name": "Luftfeuchtigkeit" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp": { | ||||||
|  |                 "name": "Gefrierschrank-Temperatur" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp": { | ||||||
|  |                 "name": "Temperatur des Kühlschranks" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "select": { |         "select": { | ||||||
| @ -397,6 +409,11 @@ | |||||||
|                     "silent": "Nacht", |                     "silent": "Nacht", | ||||||
|                     "silent_care": "Silent Care", |                     "silent_care": "Silent Care", | ||||||
|                     "smart_ai": "Smart AI", |                     "smart_ai": "Smart AI", | ||||||
|  |                     "smart_ai_pro": "Smart AI Pro", | ||||||
|  |                     "smart_ai_pro_soil": "Smart AI Pro", | ||||||
|  |                     "smart_ai_rapid": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_soil": "Smart AI", | ||||||
|                     "special": "spezial", |                     "special": "spezial", | ||||||
|                     "special_pw_prz": "spezial", |                     "special_pw_prz": "spezial", | ||||||
|                     "steam": "Dampf 75 °C", |                     "steam": "Dampf 75 °C", | ||||||
| @ -453,11 +470,12 @@ | |||||||
|             "programs_ov": { |             "programs_ov": { | ||||||
|                 "state": { |                 "state": { | ||||||
|                     "bakery": "Teigwaren und Brot", |                     "bakery": "Teigwaren und Brot", | ||||||
|                     "bakery_steam": "Mit Dampf gebackenes Brot", |                     "bakery_steam": "Dampf im Backofen", | ||||||
|                     "bottom_heating": "Unterhitze", |                     "bottom_heating": "Unterhitze", | ||||||
|                     "bottom_heating_fan": "Unterhitze + Umluft", |                     "bottom_heating_fan": "Unterhitze + Umluft", | ||||||
|                     "bread": "Brot", |                     "bread": "Brot", | ||||||
|                     "bread_steam": "Mit Dampf gebackenes Gebäck", |                     "bread_steam": "Mit Dampf gebackenes Brot", | ||||||
|  |                     "combi": "Combi", | ||||||
|                     "convection_fan": "Umluft", |                     "convection_fan": "Umluft", | ||||||
|                     "convection_fan_turnspit": "Heißluft + Drehspieß", |                     "convection_fan_turnspit": "Heißluft + Drehspieß", | ||||||
|                     "conventional": "Ober-Unterhitze", |                     "conventional": "Ober-Unterhitze", | ||||||
| @ -465,7 +483,7 @@ | |||||||
|                     "defrost": "Auftauen", |                     "defrost": "Auftauen", | ||||||
|                     "descaling": "Entkalkung", |                     "descaling": "Entkalkung", | ||||||
|                     "fish": "Fisch", |                     "fish": "Fisch", | ||||||
|                     "fish_steam": "Dampfgegarter Fisch", |                     "fish_steam": "Gedünsteter Fisch", | ||||||
|                     "grill_cata": "Grill", |                     "grill_cata": "Grill", | ||||||
|                     "grill_fan_cata": "Grill Umluft", |                     "grill_fan_cata": "Grill Umluft", | ||||||
|                     "grill_fan_pyro": "Grill + Umluft", |                     "grill_fan_pyro": "Grill + Umluft", | ||||||
| @ -476,12 +494,12 @@ | |||||||
|                     "leavening": "Aufgehen", |                     "leavening": "Aufgehen", | ||||||
|                     "low_temp_cooking": "Garen bei niedriger Temperatur", |                     "low_temp_cooking": "Garen bei niedriger Temperatur", | ||||||
|                     "low_temp_cooking_fish": "Garen bei niedriger Temperatur - Fisch", |                     "low_temp_cooking_fish": "Garen bei niedriger Temperatur - Fisch", | ||||||
|                     "low_temp_cooking_fish_steam": "Dampfgaren bei niedriger Temperatur - Fisch", |                     "low_temp_cooking_fish_steam": "Niedertemperaturgaren - Gedünsteter Fisch", | ||||||
|                     "low_temp_cooking_meat": "Garen bei niedriger Temperatur - Fleisch", |                     "low_temp_cooking_meat": "Garen bei niedriger Temperatur - Fleisch", | ||||||
|                     "low_temp_cooking_meat_steam": "Niedertemperatur-Dampfgaren - Fleisch", |                     "low_temp_cooking_meat_steam": "Niedertemperaturgaren - Gedämpftes Fleisch", | ||||||
|                     "low_temp_cooking_steam": "Niedertemperatur-Dampfgaren", |                     "low_temp_cooking_steam": "Niedertemperatur-Dampfgaren", | ||||||
|                     "meat": "Fleisch", |                     "meat": "Fleisch", | ||||||
|                     "meat_steam": "Dampfgegartes Fleisch", |                     "meat_steam": "Fleisch Dampf", | ||||||
|                     "multi_level": "Multi-Level", |                     "multi_level": "Multi-Level", | ||||||
|                     "paella": "Paella", |                     "paella": "Paella", | ||||||
|                     "pasta_and_bakery": "Teigwaren und Brot", |                     "pasta_and_bakery": "Teigwaren und Brot", | ||||||
| @ -489,8 +507,8 @@ | |||||||
|                     "pyrolysis": "Pyrolyse", |                     "pyrolysis": "Pyrolyse", | ||||||
|                     "pyrolysis_plus": "Pyrolyse +", |                     "pyrolysis_plus": "Pyrolyse +", | ||||||
|                     "red_meat": "Rotes Fleisch", |                     "red_meat": "Rotes Fleisch", | ||||||
|                     "red_meat_steam": "Dampfgegartes rotes Fleisch", |                     "red_meat_steam": "Gedünstetes rotes Fleisch", | ||||||
|                     "regenerate": "Regeneration", |                     "regenerate": "Regenerieren", | ||||||
|                     "soft_plus": "Soft+", |                     "soft_plus": "Soft+", | ||||||
|                     "super_grill": "Super Grill", |                     "super_grill": "Super Grill", | ||||||
|                     "tailor_bake": "Tailor bake", |                     "tailor_bake": "Tailor bake", | ||||||
| @ -501,7 +519,7 @@ | |||||||
|                     "vegetables_pyro": "Gemüse", |                     "vegetables_pyro": "Gemüse", | ||||||
|                     "water_discharge": "Wasserabfluss", |                     "water_discharge": "Wasserabfluss", | ||||||
|                     "white_meat": "Weißes Fleisch", |                     "white_meat": "Weißes Fleisch", | ||||||
|                     "white_meat_steam": "Dampfgegartes weißes Fleisch" |                     "white_meat_steam": "Gedämpftes weißes Fleisch" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Programm" |                 "name": "Programm" | ||||||
|             }, |             }, | ||||||
| @ -558,7 +576,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious Cure", |                     "hqd_precious_cure": "Precious Cure", | ||||||
|                     "hqd_quick_20": "Schnell 20", |                     "hqd_quick_20": "Schnell 20", | ||||||
|                     "hqd_quick_30": "Schnell 30", |                     "hqd_quick_30": "Schnell 30", | ||||||
|                     "hqd_quick_dry": "Schnell trocken", |                     "hqd_quick_dry": "Schnell trocken 30", | ||||||
|                     "hqd_quilt": "Steppdecken", |                     "hqd_quilt": "Steppdecken", | ||||||
|                     "hqd_refresh": "Auffrischen", |                     "hqd_refresh": "Auffrischen", | ||||||
|                     "hqd_school_uniform": "Schuluniform", |                     "hqd_school_uniform": "Schuluniform", | ||||||
| @ -1013,6 +1031,40 @@ | |||||||
|                     "iot_uv_and_fan": "UV + Gebläse", |                     "iot_uv_and_fan": "UV + Gebläse", | ||||||
|                     "iot_uv_and_heat": "UV + Heizen" |                     "iot_uv_and_heat": "UV + Heizen" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "programs_ref": { | ||||||
|  |                 "state": { | ||||||
|  |                     "auto_set": "AUTOMATISCHE EINSTELLUNG", | ||||||
|  |                     "cheese": "Käse", | ||||||
|  |                     "chiller": "Quick cool", | ||||||
|  |                     "cold_drinks": "Soft chill", | ||||||
|  |                     "eco": "Eco", | ||||||
|  |                     "eco_mode": "Eco-Modus", | ||||||
|  |                     "fruits_and_veg": "Obst und Genüse", | ||||||
|  |                     "fruit_and_veg": "Fruit & Veg", | ||||||
|  |                     "holiday": "URLAUBSFUNKTION", | ||||||
|  |                     "keep_fresh": "0° Fresh", | ||||||
|  |                     "no_mode_selected": "Kein Modus ausgewählt", | ||||||
|  |                     "quick_cool": "SCHNELLKÜHLUNG", | ||||||
|  |                     "sea_food": "Ready to cook meal", | ||||||
|  |                     "soft_frozen": "Soft freezing", | ||||||
|  |                     "super_cool": "SUPER COOL", | ||||||
|  |                     "super_freeze": "SUPER FREEZE", | ||||||
|  |                     "tea": "Cold drinks or Beverages", | ||||||
|  |                     "zero_fresh": "0° Fresh" | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "remaining_time": { | ||||||
|  |                 "name": "Verbleibende Zeit" | ||||||
|  |             }, | ||||||
|  |             "ref_zones": { | ||||||
|  |                 "state": { | ||||||
|  |                     "fridge": "Kühlschrank", | ||||||
|  |                     "freezer": "Gefrierschrank", | ||||||
|  |                     "vtroom1": "My Zone", | ||||||
|  |                     "fridge_freezer": "Kühlschrank & Gefrierschrank" | ||||||
|  |                 }, | ||||||
|  |                 "name": "Zone" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "switch": { |         "switch": { | ||||||
| @ -1105,6 +1157,24 @@ | |||||||
|             }, |             }, | ||||||
|             "good_night": { |             "good_night": { | ||||||
|                 "name": "Gute Nacht" |                 "name": "Gute Nacht" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_softener": { | ||||||
|  |                 "name": "Autodosierung Weichspüler" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_detergent": { | ||||||
|  |                 "name": "Autodosierung Spülmittel" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Auto-Set" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "refrigerator": { | ||||||
|  |                 "name": "Kühlschrank" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "binary_sensor": { |         "binary_sensor": { | ||||||
| @ -1182,6 +1252,30 @@ | |||||||
|             }, |             }, | ||||||
|             "auto_dose": { |             "auto_dose": { | ||||||
|                 "name": "Autodosierung" |                 "name": "Autodosierung" | ||||||
|  |             }, | ||||||
|  |             "buzzer": { | ||||||
|  |                 "name": "Signalton zum Programmende" | ||||||
|  |             }, | ||||||
|  |             "holiday_mode": { | ||||||
|  |                 "name": "Holiday-Modus" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Auto-Set" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "freezer_door": { | ||||||
|  |                 "name": "Tür offen Gefrierschrank" | ||||||
|  |             }, | ||||||
|  |             "fridge_door": { | ||||||
|  |                 "name": "Tür offen Kühlschrank" | ||||||
|  |             }, | ||||||
|  |             "filter_replacement": { | ||||||
|  |                 "name": "Filteraustausch" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "number": { |         "number": { | ||||||
| @ -1214,11 +1308,55 @@ | |||||||
|             }, |             }, | ||||||
|             "steam_level": { |             "steam_level": { | ||||||
|                 "name": "Dampfstufe" |                 "name": "Dampfstufe" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp_sel": { | ||||||
|  |                 "name": "Zieltemperatur Gefrierschrank" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp_sel": { | ||||||
|  |                 "name": "Zieltemperatur Kühlschrank" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "button": { |         "button": { | ||||||
|             "induction_hob": { |             "induction_hob": { | ||||||
|                 "name": "Induktionskochfeld" |                 "name": "Induktionskochfeld" | ||||||
|  |             }, | ||||||
|  |             "start_program": { | ||||||
|  |                 "name": "Programm Start" | ||||||
|  |             }, | ||||||
|  |             "stop_program": { | ||||||
|  |                 "name": "Programm Stopp" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "climate": { | ||||||
|  |             "air_conditioner": { | ||||||
|  |                 "name": "Klimaanlage" | ||||||
|  |             }, | ||||||
|  |             "fridge": { | ||||||
|  |                 "name": "Kühlschrank", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Kühlschrank-Modi", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Auto-Set", | ||||||
|  |                             "super_cool": "Super Cool", | ||||||
|  |                             "holiday": "Holiday", | ||||||
|  |                             "no_mode": "Kein Modus ausgewählt" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "freezer": { | ||||||
|  |                 "name": "Gefrierschrank", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Gefrierschrank-Modi", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Auto-Set", | ||||||
|  |                             "super_freeze": "Super Freeze", | ||||||
|  |                             "no_mode": "Kein Modus ausgewählt" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -225,7 +225,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Γρήγορα 20", |                     "hqd_quick_20": "Γρήγορα 20", | ||||||
|                     "hqd_quick_30": "Γρήγορα 30", |                     "hqd_quick_30": "Γρήγορα 30", | ||||||
|                     "hqd_quick_dry": "Γρήγορο στέγνωμα", |                     "hqd_quick_dry": "Γρήγορο στέγνωμα 30", | ||||||
|                     "hqd_quilt": "Παπλώματα", |                     "hqd_quilt": "Παπλώματα", | ||||||
|                     "hqd_refresh": "Φρεσκάρισμα", |                     "hqd_refresh": "Φρεσκάρισμα", | ||||||
|                     "hqd_school_uniform": "Σχολική στολή", |                     "hqd_school_uniform": "Σχολική στολή", | ||||||
| @ -307,6 +307,18 @@ | |||||||
|                     "xxl_load": "XXL Φορτιο", |                     "xxl_load": "XXL Φορτιο", | ||||||
|                     "zoom_59": "Zoom 59" |                     "zoom_59": "Zoom 59" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "room_temperature": { | ||||||
|  |                 "name": "Θερμοκρασία δωματίου" | ||||||
|  |             }, | ||||||
|  |             "humidity": { | ||||||
|  |                 "name": "Υγρασία" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp": { | ||||||
|  |                 "name": "Θερμοκρασία καταψύκτη" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp": { | ||||||
|  |                 "name": "Θερμοκρασία ψυγείου" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "select": { |         "select": { | ||||||
| @ -397,6 +409,11 @@ | |||||||
|                     "silent": "Νύχτα", |                     "silent": "Νύχτα", | ||||||
|                     "silent_care": "Silent Care", |                     "silent_care": "Silent Care", | ||||||
|                     "smart_ai": "Smart AI", |                     "smart_ai": "Smart AI", | ||||||
|  |                     "smart_ai_pro": "Smart AI Pro", | ||||||
|  |                     "smart_ai_pro_soil": "Smart AI Pro", | ||||||
|  |                     "smart_ai_rapid": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_soil": "Smart AI", | ||||||
|                     "special": "σπεσιαλ", |                     "special": "σπεσιαλ", | ||||||
|                     "special_pw_prz": "σπεσιαλ", |                     "special_pw_prz": "σπεσιαλ", | ||||||
|                     "steam": "ατμος 75°C", |                     "steam": "ατμος 75°C", | ||||||
| @ -453,11 +470,12 @@ | |||||||
|             "programs_ov": { |             "programs_ov": { | ||||||
|                 "state": { |                 "state": { | ||||||
|                     "bakery": "Ζυμαρικά και αρτοποιήματα", |                     "bakery": "Ζυμαρικά και αρτοποιήματα", | ||||||
|                     "bakery_steam": "Ψωμί ατμού", |                     "bakery_steam": "Ατμός φούρνου", | ||||||
|                     "bottom_heating": "Κάτω στοιχείο", |                     "bottom_heating": "Κάτω στοιχείο", | ||||||
|                     "bottom_heating_fan": "Κάτω στοιχείο + ανεμιστήρας", |                     "bottom_heating_fan": "Κάτω στοιχείο + ανεμιστήρας", | ||||||
|                     "bread": "Ψωμί", |                     "bread": "Ψωμί", | ||||||
|                     "bread_steam": "Αρτοσκευάσματα ατμού", |                     "bread_steam": "Ψωμί ατμού", | ||||||
|  |                     "combi": "Combi", | ||||||
|                     "convection_fan": "Θερμοσ αερασ", |                     "convection_fan": "Θερμοσ αερασ", | ||||||
|                     "convection_fan_turnspit": "Θερμός αέρας + Ανεμιστήρας + Σούβλα", |                     "convection_fan_turnspit": "Θερμός αέρας + Ανεμιστήρας + Σούβλα", | ||||||
|                     "conventional": "Ανω - κατω θερμανση", |                     "conventional": "Ανω - κατω θερμανση", | ||||||
| @ -465,7 +483,7 @@ | |||||||
|                     "defrost": "Απόψυξη", |                     "defrost": "Απόψυξη", | ||||||
|                     "descaling": "Αφαλάτωση", |                     "descaling": "Αφαλάτωση", | ||||||
|                     "fish": "Ψάρια", |                     "fish": "Ψάρια", | ||||||
|                     "fish_steam": "Ψάρι στον ατμό", |                     "fish_steam": "Ψάρια στον ατμό", | ||||||
|                     "grill_cata": "Γκριλ", |                     "grill_cata": "Γκριλ", | ||||||
|                     "grill_fan_cata": "Ανεμιστήρας γκριλ", |                     "grill_fan_cata": "Ανεμιστήρας γκριλ", | ||||||
|                     "grill_fan_pyro": "Γκριλ + ανεμιστήρας", |                     "grill_fan_pyro": "Γκριλ + ανεμιστήρας", | ||||||
| @ -476,9 +494,9 @@ | |||||||
|                     "leavening": "Ζυμωση", |                     "leavening": "Ζυμωση", | ||||||
|                     "low_temp_cooking": "Μαγείρεμα σε χαμηλή θερμοκρασία", |                     "low_temp_cooking": "Μαγείρεμα σε χαμηλή θερμοκρασία", | ||||||
|                     "low_temp_cooking_fish": "Μαγείρεμα σε χαμηλή θερμοκρασία - Ψάρι", |                     "low_temp_cooking_fish": "Μαγείρεμα σε χαμηλή θερμοκρασία - Ψάρι", | ||||||
|                     "low_temp_cooking_fish_steam": "Μαγείρεμα με ατμό σε χαμηλή θερμοκρασία - Ψάρι", |                     "low_temp_cooking_fish_steam": "Μαγείρεμα σε χαμηλή θερμοκρασία - Ψάρια στον ατμό", | ||||||
|                     "low_temp_cooking_meat": "Μαγείρεμα σε χαμηλή θερμοκρασία - Κρέας", |                     "low_temp_cooking_meat": "Μαγείρεμα σε χαμηλή θερμοκρασία - Κρέας", | ||||||
|                     "low_temp_cooking_meat_steam": "Μαγείρεμα με ατμό σε χαμηλή θερμοκρασία - Κρέας", |                     "low_temp_cooking_meat_steam": "Μαγείρεμα σε χαμηλή θερμοκρασία - Κρέας στον ατμό", | ||||||
|                     "low_temp_cooking_steam": "Μαγείρεμα με ατμό σε χαμηλή θερμοκρασία", |                     "low_temp_cooking_steam": "Μαγείρεμα με ατμό σε χαμηλή θερμοκρασία", | ||||||
|                     "meat": "Κρέας", |                     "meat": "Κρέας", | ||||||
|                     "meat_steam": "Κρέας στον ατμό", |                     "meat_steam": "Κρέας στον ατμό", | ||||||
| @ -499,7 +517,7 @@ | |||||||
|                     "vegetables": "Λαχανικά", |                     "vegetables": "Λαχανικά", | ||||||
|                     "vegetables_cata": "Λαχανικά", |                     "vegetables_cata": "Λαχανικά", | ||||||
|                     "vegetables_pyro": "Λαχανικά", |                     "vegetables_pyro": "Λαχανικά", | ||||||
|                     "water_discharge": "Αποστράγγιση νερού", |                     "water_discharge": "Απόρριψη νερού", | ||||||
|                     "white_meat": "Λευκό κρέας", |                     "white_meat": "Λευκό κρέας", | ||||||
|                     "white_meat_steam": "Λευκό κρέας στον ατμό" |                     "white_meat_steam": "Λευκό κρέας στον ατμό" | ||||||
|                 }, |                 }, | ||||||
| @ -558,7 +576,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Γρήγορα 20", |                     "hqd_quick_20": "Γρήγορα 20", | ||||||
|                     "hqd_quick_30": "Γρήγορα 30", |                     "hqd_quick_30": "Γρήγορα 30", | ||||||
|                     "hqd_quick_dry": "Γρήγορο στέγνωμα", |                     "hqd_quick_dry": "Γρήγορο στέγνωμα 30", | ||||||
|                     "hqd_quilt": "Παπλώματα", |                     "hqd_quilt": "Παπλώματα", | ||||||
|                     "hqd_refresh": "Φρεσκάρισμα", |                     "hqd_refresh": "Φρεσκάρισμα", | ||||||
|                     "hqd_school_uniform": "Σχολική στολή", |                     "hqd_school_uniform": "Σχολική στολή", | ||||||
| @ -1013,6 +1031,40 @@ | |||||||
|                     "iot_uv_and_fan": "UV + Ανεμιστήρας", |                     "iot_uv_and_fan": "UV + Ανεμιστήρας", | ||||||
|                     "iot_uv_and_heat": "UV + Θέρμανση" |                     "iot_uv_and_heat": "UV + Θέρμανση" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "programs_ref": { | ||||||
|  |                 "state": { | ||||||
|  |                     "auto_set": "ΑΥΤΌΜΑΤΗ ΡΎΘΜΙΣΗ", | ||||||
|  |                     "cheese": "Τυρί", | ||||||
|  |                     "chiller": "Quick cool", | ||||||
|  |                     "cold_drinks": "Soft chill", | ||||||
|  |                     "eco": "Eco", | ||||||
|  |                     "eco_mode": "Λειτουργία Eco", | ||||||
|  |                     "fruits_and_veg": "ΦΡΟΥΤΑ & ΛΑΧΑΝΙΚΑ", | ||||||
|  |                     "fruit_and_veg": "Fruit & Veg", | ||||||
|  |                     "holiday": "Ρυθμίστε το ψυγείο στους 17°C και διατηρήστε την κατάψυξη σε λειτουργία για μεγάλο χρονικό διάστημα.", | ||||||
|  |                     "keep_fresh": "0° Fresh", | ||||||
|  |                     "no_mode_selected": "Δεν επιλέχθηκε λειτουργία", | ||||||
|  |                     "quick_cool": "ΓΡΗΓΟΡΗ ΨΥΞΗ", | ||||||
|  |                     "sea_food": "Ready to cook meal", | ||||||
|  |                     "soft_frozen": "Soft freezing", | ||||||
|  |                     "super_cool": "SUPER COOL", | ||||||
|  |                     "super_freeze": "SUPER FREEZE", | ||||||
|  |                     "tea": "Cold drinks or Beverages", | ||||||
|  |                     "zero_fresh": "0° Fresh" | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "remaining_time": { | ||||||
|  |                 "name": "Χρόνος που απομένει" | ||||||
|  |             }, | ||||||
|  |             "ref_zones": { | ||||||
|  |                 "state": { | ||||||
|  |                     "fridge": "Ψυγείο", | ||||||
|  |                     "freezer": "Καταψύκτης", | ||||||
|  |                     "vtroom1": "My Zone", | ||||||
|  |                     "fridge_freezer": "Ψυγείο & Καταψύκτης" | ||||||
|  |                 }, | ||||||
|  |                 "name": "Ζώνη" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "switch": { |         "switch": { | ||||||
| @ -1105,6 +1157,24 @@ | |||||||
|             }, |             }, | ||||||
|             "good_night": { |             "good_night": { | ||||||
|                 "name": "Καληνυχτα" |                 "name": "Καληνυχτα" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_softener": { | ||||||
|  |                 "name": "Αυτόματη Δοσολογία Μαλακτικό" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_detergent": { | ||||||
|  |                 "name": "Αυτόματη Δοσολογία Απορρυπαντικό" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Αυτόματη ρύθμιση" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "refrigerator": { | ||||||
|  |                 "name": "Ψυγείο" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "binary_sensor": { |         "binary_sensor": { | ||||||
| @ -1154,7 +1224,7 @@ | |||||||
|                 "name": "Τηγάνι" |                 "name": "Τηγάνι" | ||||||
|             }, |             }, | ||||||
|             "remote_control": { |             "remote_control": { | ||||||
|                 "name": "Τηλεχειριστήριο" |                 "name": "Daljinsko upravljanje" | ||||||
|             }, |             }, | ||||||
|             "rinse_aid": { |             "rinse_aid": { | ||||||
|                 "name": "Επίπεδο λαμπρυντικού" |                 "name": "Επίπεδο λαμπρυντικού" | ||||||
| @ -1182,6 +1252,30 @@ | |||||||
|             }, |             }, | ||||||
|             "auto_dose": { |             "auto_dose": { | ||||||
|                 "name": "Αυτόματη Δοσολογία" |                 "name": "Αυτόματη Δοσολογία" | ||||||
|  |             }, | ||||||
|  |             "buzzer": { | ||||||
|  |                 "name": "Κουδούνισμα τέλους κύκλου" | ||||||
|  |             }, | ||||||
|  |             "holiday_mode": { | ||||||
|  |                 "name": "Λειτουργια Holiday" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Αυτόματη ρύθμιση" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "freezer_door": { | ||||||
|  |                 "name": "Πόρτα ανοιχτή Καταψύκτης" | ||||||
|  |             }, | ||||||
|  |             "fridge_door": { | ||||||
|  |                 "name": "Πόρτα ανοιχτή Ψυγείο" | ||||||
|  |             }, | ||||||
|  |             "filter_replacement": { | ||||||
|  |                 "name": "Αντικατάσταση φίλτρου" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "number": { |         "number": { | ||||||
| @ -1214,11 +1308,55 @@ | |||||||
|             }, |             }, | ||||||
|             "steam_level": { |             "steam_level": { | ||||||
|                 "name": "Επίπεδο ατμού" |                 "name": "Επίπεδο ατμού" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp_sel": { | ||||||
|  |                 "name": "Στοχευμένη θερμοκρασία Καταψύκτης" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp_sel": { | ||||||
|  |                 "name": "Στοχευμένη θερμοκρασία Ψυγείο" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "button": { |         "button": { | ||||||
|             "induction_hob": { |             "induction_hob": { | ||||||
|                 "name": "Επαγωγική εστία" |                 "name": "Επαγωγική εστία" | ||||||
|  |             }, | ||||||
|  |             "start_program": { | ||||||
|  |                 "name": "Πρόγραμμα Εκκίνηση" | ||||||
|  |             }, | ||||||
|  |             "stop_program": { | ||||||
|  |                 "name": "Πρόγραμμα Διακοπή" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "climate": { | ||||||
|  |             "air_conditioner": { | ||||||
|  |                 "name": "Κλιματιστικό" | ||||||
|  |             }, | ||||||
|  |             "fridge": { | ||||||
|  |                 "name": "Ψυγείο", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Λειτουργίες ψυγείου", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Αυτόματη ρύθμιση", | ||||||
|  |                             "super_cool": "Super Cool", | ||||||
|  |                             "holiday": "Holiday", | ||||||
|  |                             "no_mode": "Δεν επιλέχθηκε λειτουργία" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "freezer": { | ||||||
|  |                 "name": "Καταψύκτης", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Λειτουργίες κατάψυξης", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Αυτόματη ρύθμιση", | ||||||
|  |                             "super_freeze": "Super Freeze", | ||||||
|  |                             "no_mode": "Δεν επιλέχθηκε λειτουργία" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -263,7 +263,7 @@ | |||||||
|                     "hqd_bed_sheets": "Bed Sheets", |                     "hqd_bed_sheets": "Bed Sheets", | ||||||
|                     "hqd_bulky": "Bulky Items", |                     "hqd_bulky": "Bulky Items", | ||||||
|                     "hqd_casual": "Casual", |                     "hqd_casual": "Casual", | ||||||
|                     "hqd_cold_wind_30": "Cool Breeze 30 minutes", |                     "hqd_cold_wind_30": "Cool Breeze 30m", | ||||||
|                     "hqd_cold_wind_timing": "Cool Breeze ", |                     "hqd_cold_wind_timing": "Cool Breeze ", | ||||||
|                     "hqd_cotton": "Cotton", |                     "hqd_cotton": "Cotton", | ||||||
|                     "hqd_curtain": "Curtains", |                     "hqd_curtain": "Curtains", | ||||||
| @ -282,9 +282,9 @@ | |||||||
|                     "hqd_night_dry": "Overnight drying", |                     "hqd_night_dry": "Overnight drying", | ||||||
|                     "hqd_outdoor": "Outdoor", |                     "hqd_outdoor": "Outdoor", | ||||||
|                     "hqd_precious_cure": "Precious Cure", |                     "hqd_precious_cure": "Precious Cure", | ||||||
|                     "hqd_quick_20": "Quick 20", |                     "hqd_quick_20": "Quick 20m", | ||||||
|                     "hqd_quick_30": "Quick 30", |                     "hqd_quick_30": "Quick 30m", | ||||||
|                     "hqd_quick_dry": "Quick dry", |                     "hqd_quick_dry": "Quick dry (30 min)", | ||||||
|                     "hqd_quilt": "Quilts", |                     "hqd_quilt": "Quilts", | ||||||
|                     "hqd_refresh": "Refresh", |                     "hqd_refresh": "Refresh", | ||||||
|                     "hqd_school_uniform": "School Uniform", |                     "hqd_school_uniform": "School Uniform", | ||||||
| @ -322,7 +322,7 @@ | |||||||
|                     "iot_dry_lingerie": "Lingerie", |                     "iot_dry_lingerie": "Lingerie", | ||||||
|                     "iot_dry_mixed": "Mixed", |                     "iot_dry_mixed": "Mixed", | ||||||
|                     "iot_dry_playsuits": "Playsuits", |                     "iot_dry_playsuits": "Playsuits", | ||||||
|                     "iot_dry_rapid_30": "Rapid 30", |                     "iot_dry_rapid_30": "Rapid 30m", | ||||||
|                     "iot_dry_rapid_59": "Rapid 59'", |                     "iot_dry_rapid_59": "Rapid 59'", | ||||||
|                     "iot_dry_refresh": "Refresh", |                     "iot_dry_refresh": "Refresh", | ||||||
|                     "iot_dry_regenerates_waterproof": "Regenerates Waterproof", |                     "iot_dry_regenerates_waterproof": "Regenerates Waterproof", | ||||||
| @ -366,6 +366,18 @@ | |||||||
|                     "xxl_load": "XXL Load", |                     "xxl_load": "XXL Load", | ||||||
|                     "zoom_59": "Zoom 59" |                     "zoom_59": "Zoom 59" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "room_temperature": { | ||||||
|  |                 "name": "Room temperature" | ||||||
|  |             }, | ||||||
|  |             "humidity": { | ||||||
|  |                 "name": "Humidity" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp": { | ||||||
|  |                 "name": "Freezer temperature" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp": { | ||||||
|  |                 "name": "Fridge temperature" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "switch": { |         "switch": { | ||||||
| @ -458,6 +470,24 @@ | |||||||
|             }, |             }, | ||||||
|             "good_night": { |             "good_night": { | ||||||
|                 "name": "Good Night" |                 "name": "Good Night" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_softener": { | ||||||
|  |                 "name": "Autodose Softener" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_detergent": { | ||||||
|  |                 "name": "Autodose Detergent" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Auto-Set" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "refrigerator": { | ||||||
|  |                 "name": "Refrigerator" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "select": { |         "select": { | ||||||
| @ -481,9 +511,9 @@ | |||||||
|                     "59_min": "Rapid 59'", |                     "59_min": "Rapid 59'", | ||||||
|                     "auto_care": "Auto Care", |                     "auto_care": "Auto Care", | ||||||
|                     "auto_care_soil": "Auto Care", |                     "auto_care_soil": "Auto Care", | ||||||
|                     "auto_hygiene": "Auto Hygiene", |  | ||||||
|                     "auto_plus": "AutoPlus", |                     "auto_plus": "AutoPlus", | ||||||
|                     "auto_rapid": "Auto Rapid", |                     "auto_plus_soil": "Auto Plus Soil", | ||||||
|  |                     "auto_rapid_soil": "Auto rapid Soil", | ||||||
|                     "auto_sensor": "Auto Sensor", |                     "auto_sensor": "Auto Sensor", | ||||||
|                     "auto_sensor_soil": "Auto Sensor", |                     "auto_sensor_soil": "Auto Sensor", | ||||||
|                     "auto_universal": "Auto Universal 50 - 60°C", |                     "auto_universal": "Auto Universal 50 - 60°C", | ||||||
| @ -527,7 +557,7 @@ | |||||||
|                     "iot_eco_bldc": "Eco 45°C", |                     "iot_eco_bldc": "Eco 45°C", | ||||||
|                     "iot_eco_synch": "Eco 45°C", |                     "iot_eco_synch": "Eco 45°C", | ||||||
|                     "iot_extra_hygiene": "Extra Hygiene", |                     "iot_extra_hygiene": "Extra Hygiene", | ||||||
|                     "iot_fairy_quick_cycle": "Fairy Short", |                     "iot_fairy_quick_cycle": "Fairy Quick", | ||||||
|                     "iot_happy_hour": "Happy Hour", |                     "iot_happy_hour": "Happy Hour", | ||||||
|                     "iot_jar_quick_cycle": "Jar Quick", |                     "iot_jar_quick_cycle": "Jar Quick", | ||||||
|                     "iot_party": "Party", |                     "iot_party": "Party", | ||||||
| @ -566,7 +596,10 @@ | |||||||
|                     "silent_care": "Silent Care", |                     "silent_care": "Silent Care", | ||||||
|                     "smart_ai": "Smart AI", |                     "smart_ai": "Smart AI", | ||||||
|                     "smart_ai_pro": "Smart AI Pro", |                     "smart_ai_pro": "Smart AI Pro", | ||||||
|  |                     "smart_ai_pro_soil": "Smart AI Pro", | ||||||
|                     "smart_ai_rapid": "Smart AI Rapid", |                     "smart_ai_rapid": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_soil": "Smart AI", | ||||||
|                     "special": "Special", |                     "special": "Special", | ||||||
|                     "special_pw_prz": "Special", |                     "special_pw_prz": "Special", | ||||||
|                     "steam": "Steam 75°C", |                     "steam": "Steam 75°C", | ||||||
| @ -623,21 +656,21 @@ | |||||||
|             }, |             }, | ||||||
|             "programs_ov": { |             "programs_ov": { | ||||||
|                 "state": { |                 "state": { | ||||||
|                     "bakery": "Pasta and Pastries", |                     "bakery": "Pasta and Bakery", | ||||||
|                     "bakery_steam": "Steam-baked bread", |                     "bakery_steam": "Steam oven", | ||||||
|                     "bottom_heating": "Bottom Heating", |                     "bottom_heating": "Bottom Heating", | ||||||
|                     "bottom_heating_fan": "Bottom Heating + Fan", |                     "bottom_heating_fan": "Bottom Heating + Fan", | ||||||
|                     "bread": "Bread", |                     "bread": "Bread", | ||||||
|                     "bread_steam": "Steam-baked pastries", |                     "bread_steam": "Steam baked bread", | ||||||
|                     "combi": "Combi", |                     "combi": "Combi", | ||||||
|                     "convection_fan": "Convection + Fan", |                     "convection_fan": "Convection + Fan", | ||||||
|                     "convection_fan_turnspit": "Convection + Fan + Turnspit", |                     "convection_fan_turnspit": "Convection + Fan + Turnspit", | ||||||
|                     "conventional": "Conventional", |                     "conventional": "Conventional", | ||||||
|                     "conventional_turnspit": "Convection + Turnspit", |                     "conventional_turnspit": "Convection + Turnspit", | ||||||
|                     "defrost": "Defrost", |                     "defrost": "Defrosting", | ||||||
|                     "descaling": "Descaling", |                     "descaling": "Descaling", | ||||||
|                     "fish": "Fish", |                     "fish": "Fish", | ||||||
|                     "fish_steam": "Steam-cooked fish", |                     "fish_steam": "Steamed fish", | ||||||
|                     "grill_cata": "Grill", |                     "grill_cata": "Grill", | ||||||
|                     "grill_fan_cata": "Grill fan", |                     "grill_fan_cata": "Grill fan", | ||||||
|                     "grill_fan_pyro": "Grill + Fan", |                     "grill_fan_pyro": "Grill + Fan", | ||||||
| @ -646,16 +679,15 @@ | |||||||
|                     "iot_bread": "Bread", |                     "iot_bread": "Bread", | ||||||
|                     "iot_h20_clean": "h2O clean", |                     "iot_h20_clean": "h2O clean", | ||||||
|                     "leavening": "Leavening", |                     "leavening": "Leavening", | ||||||
|                     "light_fan": "Light Fan", |  | ||||||
|                     "light_fan\n": "Light Fan", |                     "light_fan\n": "Light Fan", | ||||||
|                     "low_temp_cooking": "Low Temperature Cooking", |                     "low_temp_cooking": "Low Temperature Cooking", | ||||||
|                     "low_temp_cooking_fish": "Low Temperature Cooking - Fish", |                     "low_temp_cooking_fish": "Low Temperature Cooking - Fish", | ||||||
|                     "low_temp_cooking_fish_steam": "Low Temperature Steam Cooking - Fish", |                     "low_temp_cooking_fish_steam": "Low Temperature Cooking - Steamed fish", | ||||||
|                     "low_temp_cooking_meat": "Low Temperature Cooking - Meat", |                     "low_temp_cooking_meat": "Low Temperature Cooking - Meat", | ||||||
|                     "low_temp_cooking_meat_steam": "Low Temperature Steam Cooking - Meat", |                     "low_temp_cooking_meat_steam": "Low Temperature Cooking - Steamed meat", | ||||||
|                     "low_temp_cooking_steam": "Low Temperature Steam Cooking", |                     "low_temp_cooking_steam": "Low Temperature Steam Cooking", | ||||||
|                     "meat": "Meat", |                     "meat": "Meat", | ||||||
|                     "meat_steam": "Steam-cooked meat", |                     "meat_steam": "Steamed meat", | ||||||
|                     "multi_level": "Multi-Level", |                     "multi_level": "Multi-Level", | ||||||
|                     "paella": "Paella", |                     "paella": "Paella", | ||||||
|                     "pasta_and_bakery": "Pasta and Bakery", |                     "pasta_and_bakery": "Pasta and Bakery", | ||||||
| @ -663,8 +695,8 @@ | |||||||
|                     "pyrolysis": "Pyrolysis", |                     "pyrolysis": "Pyrolysis", | ||||||
|                     "pyrolysis_plus": "Pyrolysis +", |                     "pyrolysis_plus": "Pyrolysis +", | ||||||
|                     "red_meat": "Red Meat", |                     "red_meat": "Red Meat", | ||||||
|                     "red_meat_steam": "Steam-cooked red meat", |                     "red_meat_steam": "Steamed red meat", | ||||||
|                     "regenerate": "Regeneration", |                     "regenerate": "Regenerate", | ||||||
|                     "soft_plus": "Soft+", |                     "soft_plus": "Soft+", | ||||||
|                     "super_grill": "Super Grill", |                     "super_grill": "Super Grill", | ||||||
|                     "tailor_bake": "Tailor bake", |                     "tailor_bake": "Tailor bake", | ||||||
| @ -673,9 +705,9 @@ | |||||||
|                     "vegetables": "Vegetables", |                     "vegetables": "Vegetables", | ||||||
|                     "vegetables_cata": "Vegetables", |                     "vegetables_cata": "Vegetables", | ||||||
|                     "vegetables_pyro": "Vegetables", |                     "vegetables_pyro": "Vegetables", | ||||||
|                     "water_discharge": "Water Drain", |                     "water_discharge": "Water Discharge", | ||||||
|                     "white_meat": "White Meat", |                     "white_meat": "White Meat", | ||||||
|                     "white_meat_steam": "Steam-cooked white meat" |                     "white_meat_steam": "Steamed white meat" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Program" |                 "name": "Program" | ||||||
|             }, |             }, | ||||||
| @ -711,7 +743,7 @@ | |||||||
|                     "hqd_bed_sheets": "Bed Sheets", |                     "hqd_bed_sheets": "Bed Sheets", | ||||||
|                     "hqd_bulky": "Bulky Items", |                     "hqd_bulky": "Bulky Items", | ||||||
|                     "hqd_casual": "Casual", |                     "hqd_casual": "Casual", | ||||||
|                     "hqd_cold_wind_30": "Cool Breeze 30 minutes", |                     "hqd_cold_wind_30": "Cool Breeze 30m", | ||||||
|                     "hqd_cold_wind_timing": "Cool Breeze ", |                     "hqd_cold_wind_timing": "Cool Breeze ", | ||||||
|                     "hqd_cotton": "Cotton", |                     "hqd_cotton": "Cotton", | ||||||
|                     "hqd_curtain": "Curtains", |                     "hqd_curtain": "Curtains", | ||||||
| @ -730,9 +762,9 @@ | |||||||
|                     "hqd_night_dry": "Overnight drying", |                     "hqd_night_dry": "Overnight drying", | ||||||
|                     "hqd_outdoor": "Outdoor", |                     "hqd_outdoor": "Outdoor", | ||||||
|                     "hqd_precious_cure": "Precious Cure", |                     "hqd_precious_cure": "Precious Cure", | ||||||
|                     "hqd_quick_20": "Quick 20", |                     "hqd_quick_20": "Quick 20m", | ||||||
|                     "hqd_quick_30": "Quick 30", |                     "hqd_quick_30": "Quick 30m", | ||||||
|                     "hqd_quick_dry": "Quick dry", |                     "hqd_quick_dry": "Quick dry (30 min)", | ||||||
|                     "hqd_quilt": "Quilts", |                     "hqd_quilt": "Quilts", | ||||||
|                     "hqd_refresh": "Refresh", |                     "hqd_refresh": "Refresh", | ||||||
|                     "hqd_school_uniform": "School Uniform", |                     "hqd_school_uniform": "School Uniform", | ||||||
| @ -770,7 +802,7 @@ | |||||||
|                     "iot_dry_lingerie": "Lingerie", |                     "iot_dry_lingerie": "Lingerie", | ||||||
|                     "iot_dry_mixed": "Mixed", |                     "iot_dry_mixed": "Mixed", | ||||||
|                     "iot_dry_playsuits": "Playsuits", |                     "iot_dry_playsuits": "Playsuits", | ||||||
|                     "iot_dry_rapid_30": "Rapid 30", |                     "iot_dry_rapid_30": "Rapid 30m", | ||||||
|                     "iot_dry_rapid_59": "Rapid 59'", |                     "iot_dry_rapid_59": "Rapid 59'", | ||||||
|                     "iot_dry_refresh": "Refresh", |                     "iot_dry_refresh": "Refresh", | ||||||
|                     "iot_dry_regenerates_waterproof": "Regenerates Waterproof", |                     "iot_dry_regenerates_waterproof": "Regenerates Waterproof", | ||||||
| @ -829,7 +861,7 @@ | |||||||
|                     "all_in_one_59": "All in One 59'", |                     "all_in_one_59": "All in One 59'", | ||||||
|                     "all_in_one_59_steam": "Active Wash + Steam", |                     "all_in_one_59_steam": "Active Wash + Steam", | ||||||
|                     "autocare": "Autocare", |                     "autocare": "Autocare", | ||||||
|                     "autoclean": "Drum Cleaning", |                     "autoclean": "Drum cleaning and descaling ", | ||||||
|                     "baby_60": "All Baby 60°C", |                     "baby_60": "All Baby 60°C", | ||||||
|                     "care_14": "Rapid Care 14'", |                     "care_14": "Rapid Care 14'", | ||||||
|                     "care_30": "Rapid Care 30'", |                     "care_30": "Rapid Care 30'", | ||||||
| @ -1172,6 +1204,41 @@ | |||||||
|                     "iot_uv_and_fan": "UV + Fan", |                     "iot_uv_and_fan": "UV + Fan", | ||||||
|                     "iot_uv_and_heat": "UV + Heat" |                     "iot_uv_and_heat": "UV + Heat" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "programs_ref": { | ||||||
|  |                 "state": { | ||||||
|  |                     "auto_set": "AUTO-SET", | ||||||
|  |                     "cheese": "Cheese", | ||||||
|  |                     "chiller": "Quick cool", | ||||||
|  |                     "cold_drinks": "Soft chill", | ||||||
|  |                     "eco": "Eco", | ||||||
|  |                     "eco_mode": "Eco mode", | ||||||
|  |                     "fruits_and_veg": "Fruit&Veg", | ||||||
|  |                     "fruit_and_veg": "Fruit&Veg", | ||||||
|  |                     "holiday": "HOLIDAY", | ||||||
|  |                     "keep_fresh": "0° Fresh", | ||||||
|  |                     "no_mode_selected": "No mode selected", | ||||||
|  |                     "quick_cool": "QUICK COOL", | ||||||
|  |                     "sea_food": "Ready to cook meal", | ||||||
|  |                     "soft_frozen": "Soft freezing", | ||||||
|  |                     "soft_frozen\n": "Soft freezing", | ||||||
|  |                     "super_cool": "SUPER COOL", | ||||||
|  |                     "super_freeze": "SUPER FREEZE", | ||||||
|  |                     "tea": "Cold drinks or Beverages", | ||||||
|  |                     "zero_fresh": "0° Fresh" | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "remaining_time": { | ||||||
|  |                 "name": "Time remaining" | ||||||
|  |             }, | ||||||
|  |             "ref_zones": { | ||||||
|  |                 "state": { | ||||||
|  |                     "fridge": "Fridge", | ||||||
|  |                     "freezer": "Freezer", | ||||||
|  |                     "vtroom1": "My Zone", | ||||||
|  |                     "fridge_freezer": "Fridge & Freezer" | ||||||
|  |                 }, | ||||||
|  |                 "name": "Zone" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "binary_sensor": { |         "binary_sensor": { | ||||||
| @ -1249,6 +1316,30 @@ | |||||||
|             }, |             }, | ||||||
|             "auto_dose": { |             "auto_dose": { | ||||||
|                 "name": "Autodose" |                 "name": "Autodose" | ||||||
|  |             }, | ||||||
|  |             "buzzer": { | ||||||
|  |                 "name": "Cycle end chime" | ||||||
|  |             }, | ||||||
|  |             "holiday_mode": { | ||||||
|  |                 "name": "Holiday Mode" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Auto-Set" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "freezer_door": { | ||||||
|  |                 "name": "Door open Freezer" | ||||||
|  |             }, | ||||||
|  |             "fridge_door": { | ||||||
|  |                 "name": "Door open Fridge" | ||||||
|  |             }, | ||||||
|  |             "filter_replacement": { | ||||||
|  |                 "name": "Filter replacement" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "number": { |         "number": { | ||||||
| @ -1281,11 +1372,55 @@ | |||||||
|             }, |             }, | ||||||
|             "steam_level": { |             "steam_level": { | ||||||
|                 "name": "Steam Level" |                 "name": "Steam Level" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp_sel": { | ||||||
|  |                 "name": "Target temperature Freezer" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp_sel": { | ||||||
|  |                 "name": "Target temperature Fridge" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "button": { |         "button": { | ||||||
|             "induction_hob": { |             "induction_hob": { | ||||||
|                 "name": "Induction Hob" |                 "name": "Induction Hob" | ||||||
|  |             }, | ||||||
|  |             "start_program": { | ||||||
|  |                 "name": "Program Start" | ||||||
|  |             }, | ||||||
|  |             "stop_program": { | ||||||
|  |                 "name": "Program Stop" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "climate": { | ||||||
|  |             "air_conditioner": { | ||||||
|  |                 "name": "Air conditioner" | ||||||
|  |             }, | ||||||
|  |             "fridge": { | ||||||
|  |                 "name": "Fridge", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Fridge modes", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Auto-Set", | ||||||
|  |                             "super_cool": "Super Cool", | ||||||
|  |                             "holiday": "Holiday", | ||||||
|  |                             "no_mode": "No mode selected" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "freezer": { | ||||||
|  |                 "name": "Freezer", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Freezer modes", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Auto-Set", | ||||||
|  |                             "super_freeze": "Super Freeze", | ||||||
|  |                             "no_mode": "No mode selected" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -225,7 +225,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Rápido 20", |                     "hqd_quick_20": "Rápido 20", | ||||||
|                     "hqd_quick_30": "Rápido 30", |                     "hqd_quick_30": "Rápido 30", | ||||||
|                     "hqd_quick_dry": "Secado rápido", |                     "hqd_quick_dry": "Secado rápido 30", | ||||||
|                     "hqd_quilt": "Colchas", |                     "hqd_quilt": "Colchas", | ||||||
|                     "hqd_refresh": "Refrescar", |                     "hqd_refresh": "Refrescar", | ||||||
|                     "hqd_school_uniform": "Uniformes escolares", |                     "hqd_school_uniform": "Uniformes escolares", | ||||||
| @ -307,6 +307,18 @@ | |||||||
|                     "xxl_load": "Carga XXL", |                     "xxl_load": "Carga XXL", | ||||||
|                     "zoom_59": "Zoom 59" |                     "zoom_59": "Zoom 59" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "room_temperature": { | ||||||
|  |                 "name": "Temperatura ambiente" | ||||||
|  |             }, | ||||||
|  |             "humidity": { | ||||||
|  |                 "name": "Humedad" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp": { | ||||||
|  |                 "name": "Temperatura del congelador" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp": { | ||||||
|  |                 "name": "Temperatura del frigorífico" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "select": { |         "select": { | ||||||
| @ -397,6 +409,11 @@ | |||||||
|                     "silent": "Noche", |                     "silent": "Noche", | ||||||
|                     "silent_care": "Silent Care", |                     "silent_care": "Silent Care", | ||||||
|                     "smart_ai": "Smart AI", |                     "smart_ai": "Smart AI", | ||||||
|  |                     "smart_ai_pro": "Smart AI Pro", | ||||||
|  |                     "smart_ai_pro_soil": "Smart AI Pro", | ||||||
|  |                     "smart_ai_rapid": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_soil": "Smart AI", | ||||||
|                     "special": "Especial", |                     "special": "Especial", | ||||||
|                     "special_pw_prz": "Especial", |                     "special_pw_prz": "Especial", | ||||||
|                     "steam": "Vapor 75 °C", |                     "steam": "Vapor 75 °C", | ||||||
| @ -453,15 +470,16 @@ | |||||||
|             "programs_ov": { |             "programs_ov": { | ||||||
|                 "state": { |                 "state": { | ||||||
|                     "bakery": "Pasta y Panadería", |                     "bakery": "Pasta y Panadería", | ||||||
|                     "bakery_steam": "Pan al vapor", |                     "bakery_steam": "Oven steam", | ||||||
|                     "bottom_heating": "Calentamiento Inferior", |                     "bottom_heating": "Calentamiento Inferior", | ||||||
|                     "bottom_heating_fan": "Calentamiento Inferior + Ventilador", |                     "bottom_heating_fan": "Calentamiento Inferior + Ventilador", | ||||||
|                     "bread": "Pan", |                     "bread": "Pan", | ||||||
|                     "bread_steam": "Bollería al vapor", |                     "bread_steam": "Pan al vapor", | ||||||
|  |                     "combi": "Combi", | ||||||
|                     "convection_fan": "Convección + Ventilador", |                     "convection_fan": "Convección + Ventilador", | ||||||
|                     "convection_fan_turnspit": "Convección + Ventilador + Rustepollos", |                     "convection_fan_turnspit": "Asador giratorio convencional ventilada", | ||||||
|                     "conventional": "Convección", |                     "conventional": "Convección", | ||||||
|                     "conventional_turnspit": "Convección + Rustepollos", |                     "conventional_turnspit": "Asador giratorio convencional", | ||||||
|                     "defrost": "Descongelación", |                     "defrost": "Descongelación", | ||||||
|                     "descaling": "Descalcificación", |                     "descaling": "Descalcificación", | ||||||
|                     "fish": "Pescado", |                     "fish": "Pescado", | ||||||
| @ -475,13 +493,13 @@ | |||||||
|                     "iot_h20_clean": "h2O clean", |                     "iot_h20_clean": "h2O clean", | ||||||
|                     "leavening": "Fermentación", |                     "leavening": "Fermentación", | ||||||
|                     "low_temp_cooking": "Cocción a baja temperatura", |                     "low_temp_cooking": "Cocción a baja temperatura", | ||||||
|                     "low_temp_cooking_fish": "Cocción a baja temperatura - Pescado", |                     "low_temp_cooking_fish": "Cocción a baja temperatura Pescado", | ||||||
|                     "low_temp_cooking_fish_steam": "Cocción al vapor a baja temperatura - Pescado", |                     "low_temp_cooking_fish_steam": "Cocción a baja temperatura Pescado", | ||||||
|                     "low_temp_cooking_meat": "Cocción a baja temperatura - Carne", |                     "low_temp_cooking_meat": "Cocción a baja temperatura Carne", | ||||||
|                     "low_temp_cooking_meat_steam": "Cocción al vapor a baja temperatura - Carne", |                     "low_temp_cooking_meat_steam": "Cocción a baja temperatura Carne al vapor", | ||||||
|                     "low_temp_cooking_steam": "Cocción al vapor a baja temperatura", |                     "low_temp_cooking_steam": "Cocción a baja temperatura al vapor", | ||||||
|                     "meat": "Carne", |                     "meat": "Carne", | ||||||
|                     "meat_steam": "Carne al vapor", |                     "meat_steam": "Meat steam", | ||||||
|                     "multi_level": "Múltiples niveles", |                     "multi_level": "Múltiples niveles", | ||||||
|                     "paella": "Paella", |                     "paella": "Paella", | ||||||
|                     "pasta_and_bakery": "Pasta y Panadería", |                     "pasta_and_bakery": "Pasta y Panadería", | ||||||
| @ -490,7 +508,7 @@ | |||||||
|                     "pyrolysis_plus": "Pirólisis +", |                     "pyrolysis_plus": "Pirólisis +", | ||||||
|                     "red_meat": "Carne roja", |                     "red_meat": "Carne roja", | ||||||
|                     "red_meat_steam": "Carne roja al vapor", |                     "red_meat_steam": "Carne roja al vapor", | ||||||
|                     "regenerate": "Regeneración", |                     "regenerate": "Regenerar", | ||||||
|                     "soft_plus": "Soft+", |                     "soft_plus": "Soft+", | ||||||
|                     "super_grill": "Super Grill", |                     "super_grill": "Super Grill", | ||||||
|                     "tailor_bake": "Tailor bake", |                     "tailor_bake": "Tailor bake", | ||||||
| @ -499,7 +517,7 @@ | |||||||
|                     "vegetables": "Verduras", |                     "vegetables": "Verduras", | ||||||
|                     "vegetables_cata": "Verduras", |                     "vegetables_cata": "Verduras", | ||||||
|                     "vegetables_pyro": "Verdura", |                     "vegetables_pyro": "Verdura", | ||||||
|                     "water_discharge": "Drenaje del agua", |                     "water_discharge": "Descarga de agua", | ||||||
|                     "white_meat": "Carne blanca", |                     "white_meat": "Carne blanca", | ||||||
|                     "white_meat_steam": "Carne blanca al vapor" |                     "white_meat_steam": "Carne blanca al vapor" | ||||||
|                 }, |                 }, | ||||||
| @ -558,7 +576,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Rápido 20", |                     "hqd_quick_20": "Rápido 20", | ||||||
|                     "hqd_quick_30": "Rápido 30", |                     "hqd_quick_30": "Rápido 30", | ||||||
|                     "hqd_quick_dry": "Secado rápido", |                     "hqd_quick_dry": "Secado rápido 30", | ||||||
|                     "hqd_quilt": "Colchas", |                     "hqd_quilt": "Colchas", | ||||||
|                     "hqd_refresh": "Refrescar", |                     "hqd_refresh": "Refrescar", | ||||||
|                     "hqd_school_uniform": "Uniformes escolares", |                     "hqd_school_uniform": "Uniformes escolares", | ||||||
| @ -1013,6 +1031,40 @@ | |||||||
|                     "iot_uv_and_fan": "UV + Ventilador", |                     "iot_uv_and_fan": "UV + Ventilador", | ||||||
|                     "iot_uv_and_heat": "UV + Calor" |                     "iot_uv_and_heat": "UV + Calor" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "programs_ref": { | ||||||
|  |                 "state": { | ||||||
|  |                     "auto_set": "AJUSTE AUTOMÁTICO", | ||||||
|  |                     "cheese": "Queso", | ||||||
|  |                     "chiller": "Quick cool", | ||||||
|  |                     "cold_drinks": "Soft chill", | ||||||
|  |                     "eco": "Eco", | ||||||
|  |                     "eco_mode": "Modo Eco", | ||||||
|  |                     "fruits_and_veg": "Frutas Y Verduras", | ||||||
|  |                     "fruit_and_veg": "Frutas Y Verduras", | ||||||
|  |                     "holiday": "VACACIONES", | ||||||
|  |                     "keep_fresh": "0° Fresh", | ||||||
|  |                     "no_mode_selected": "No se ha seleccionado ningún modo", | ||||||
|  |                     "quick_cool": "QUICK COOL", | ||||||
|  |                     "sea_food": "Ready to cook meal", | ||||||
|  |                     "soft_frozen": "Soft freezing", | ||||||
|  |                     "super_cool": "SUPER COOL", | ||||||
|  |                     "super_freeze": "SUPER FREEZE", | ||||||
|  |                     "tea": "Cold drinks or Beverages", | ||||||
|  |                     "zero_fresh": "0° Fresh" | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "remaining_time": { | ||||||
|  |                 "name": "Tiempo restante" | ||||||
|  |             }, | ||||||
|  |             "ref_zones": { | ||||||
|  |                 "state": { | ||||||
|  |                     "fridge": "Frigorífico", | ||||||
|  |                     "freezer": "Congelador", | ||||||
|  |                     "vtroom1": "My Zone", | ||||||
|  |                     "fridge_freezer": "Frigorífico & Congelador" | ||||||
|  |                 }, | ||||||
|  |                 "name": "Zona" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "switch": { |         "switch": { | ||||||
| @ -1105,6 +1157,24 @@ | |||||||
|             }, |             }, | ||||||
|             "good_night": { |             "good_night": { | ||||||
|                 "name": "Buenas noches" |                 "name": "Buenas noches" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_softener": { | ||||||
|  |                 "name": "Dosificación automática Suavizante" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_detergent": { | ||||||
|  |                 "name": "Dosificación automática Detergente" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Auto-Set" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "refrigerator": { | ||||||
|  |                 "name": "Frigorífico" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "binary_sensor": { |         "binary_sensor": { | ||||||
| @ -1154,7 +1224,7 @@ | |||||||
|                 "name": "Sartén" |                 "name": "Sartén" | ||||||
|             }, |             }, | ||||||
|             "remote_control": { |             "remote_control": { | ||||||
|                 "name": "Control remoto" |                 "name": "Τηλεχειριστήριο" | ||||||
|             }, |             }, | ||||||
|             "rinse_aid": { |             "rinse_aid": { | ||||||
|                 "name": "Nivel del agente de enjuague" |                 "name": "Nivel del agente de enjuague" | ||||||
| @ -1182,6 +1252,30 @@ | |||||||
|             }, |             }, | ||||||
|             "auto_dose": { |             "auto_dose": { | ||||||
|                 "name": "Dosificación automática" |                 "name": "Dosificación automática" | ||||||
|  |             }, | ||||||
|  |             "buzzer": { | ||||||
|  |                 "name": "Campana de fin de ciclo" | ||||||
|  |             }, | ||||||
|  |             "holiday_mode": { | ||||||
|  |                 "name": "Modo Holiday" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Auto-Set" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "freezer_door": { | ||||||
|  |                 "name": "Puerta abierta Congelador" | ||||||
|  |             }, | ||||||
|  |             "fridge_door": { | ||||||
|  |                 "name": "Puerta abierta Frigorífico" | ||||||
|  |             }, | ||||||
|  |             "filter_replacement": { | ||||||
|  |                 "name": "Sustitución del filtro" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "number": { |         "number": { | ||||||
| @ -1214,11 +1308,55 @@ | |||||||
|             }, |             }, | ||||||
|             "steam_level": { |             "steam_level": { | ||||||
|                 "name": "Nivel de vapor" |                 "name": "Nivel de vapor" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp_sel": { | ||||||
|  |                 "name": "Temperatura deseada Congelador" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp_sel": { | ||||||
|  |                 "name": "Temperatura deseada Frigorífico" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "button": { |         "button": { | ||||||
|             "induction_hob": { |             "induction_hob": { | ||||||
|                 "name": "Placa de inducción" |                 "name": "Placa de inducción" | ||||||
|  |             }, | ||||||
|  |             "start_program": { | ||||||
|  |                 "name": "Programa Inicio" | ||||||
|  |             }, | ||||||
|  |             "stop_program": { | ||||||
|  |                 "name": "Programa Detener" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "climate": { | ||||||
|  |             "air_conditioner": { | ||||||
|  |                 "name": "Aire acondicionado" | ||||||
|  |             }, | ||||||
|  |             "fridge": { | ||||||
|  |                 "name": "Frigorífico", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Modos de frigorífico", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Auto-Set", | ||||||
|  |                             "super_cool": "Super Cool", | ||||||
|  |                             "holiday": "Holiday", | ||||||
|  |                             "no_mode": "No se ha seleccionado ningún modo" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "freezer": { | ||||||
|  |                 "name": "Congelador", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Modos congelador", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Auto-Set", | ||||||
|  |                             "super_freeze": "Super Freeze", | ||||||
|  |                             "no_mode": "No se ha seleccionado ningún modo" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -225,7 +225,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Rapide 20’", |                     "hqd_quick_20": "Rapide 20’", | ||||||
|                     "hqd_quick_30": "Rapide 30’", |                     "hqd_quick_30": "Rapide 30’", | ||||||
|                     "hqd_quick_dry": "Séchage rapide", |                     "hqd_quick_dry": "Séchage rapide 30", | ||||||
|                     "hqd_quilt": "Couvertures", |                     "hqd_quilt": "Couvertures", | ||||||
|                     "hqd_refresh": "Rafraîchissement", |                     "hqd_refresh": "Rafraîchissement", | ||||||
|                     "hqd_school_uniform": "Uniforme scolaire", |                     "hqd_school_uniform": "Uniforme scolaire", | ||||||
| @ -307,6 +307,18 @@ | |||||||
|                     "xxl_load": "Charge XXL", |                     "xxl_load": "Charge XXL", | ||||||
|                     "zoom_59": "Zoom 59" |                     "zoom_59": "Zoom 59" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "room_temperature": { | ||||||
|  |                 "name": "Température ambiante" | ||||||
|  |             }, | ||||||
|  |             "humidity": { | ||||||
|  |                 "name": "Humidité" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp": { | ||||||
|  |                 "name": "Température du congélateur" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp": { | ||||||
|  |                 "name": "Température du réfrigérateur" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "select": { |         "select": { | ||||||
| @ -397,6 +409,11 @@ | |||||||
|                     "silent": "Nuit", |                     "silent": "Nuit", | ||||||
|                     "silent_care": "Silent Care", |                     "silent_care": "Silent Care", | ||||||
|                     "smart_ai": "Smart AI", |                     "smart_ai": "Smart AI", | ||||||
|  |                     "smart_ai_pro": "Smart AI Pro", | ||||||
|  |                     "smart_ai_pro_soil": "Smart AI Pro", | ||||||
|  |                     "smart_ai_rapid": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_soil": "Smart AI", | ||||||
|                     "special": "spécial", |                     "special": "spécial", | ||||||
|                     "special_pw_prz": "spécial", |                     "special_pw_prz": "spécial", | ||||||
|                     "steam": "Vapeur 75 °C", |                     "steam": "Vapeur 75 °C", | ||||||
| @ -453,19 +470,20 @@ | |||||||
|             "programs_ov": { |             "programs_ov": { | ||||||
|                 "state": { |                 "state": { | ||||||
|                     "bakery": "Pâtes et pains", |                     "bakery": "Pâtes et pains", | ||||||
|                     "bakery_steam": "Pain cuit à la vapeur", |                     "bakery_steam": "Four à vapeur", | ||||||
|                     "bottom_heating": "Sole", |                     "bottom_heating": "Sole", | ||||||
|                     "bottom_heating_fan": "Sole brassée", |                     "bottom_heating_fan": "Sole brassée", | ||||||
|                     "bread": "Pain", |                     "bread": "Pain", | ||||||
|                     "bread_steam": "Pâtisseries cuites à la vapeur", |                     "bread_steam": "Pain àla vapeur", | ||||||
|  |                     "combi": "Combi", | ||||||
|                     "convection_fan": "Chaleur tournante", |                     "convection_fan": "Chaleur tournante", | ||||||
|                     "convection_fan_turnspit": "Convection + Ventilateur + Tournebroche", |                     "convection_fan_turnspit": "Tournebrocheà convection ventilée", | ||||||
|                     "conventional": "Convection naturelle", |                     "conventional": "Convection naturelle", | ||||||
|                     "conventional_turnspit": "Convection + Tournebroche", |                     "conventional_turnspit": "Tournebroche conventionnel", | ||||||
|                     "defrost": "Décongélation", |                     "defrost": "Décongélation", | ||||||
|                     "descaling": "Détartrage", |                     "descaling": "Détartrage", | ||||||
|                     "fish": "Poisson", |                     "fish": "Poisson", | ||||||
|                     "fish_steam": "Poisson cuit à la vapeur", |                     "fish_steam": "Poisson à la vapeur", | ||||||
|                     "grill_cata": "Gril", |                     "grill_cata": "Gril", | ||||||
|                     "grill_fan_cata": "Turbogril", |                     "grill_fan_cata": "Turbogril", | ||||||
|                     "grill_fan_pyro": "Turbogril", |                     "grill_fan_pyro": "Turbogril", | ||||||
| @ -475,13 +493,13 @@ | |||||||
|                     "iot_h20_clean": "h2O clean", |                     "iot_h20_clean": "h2O clean", | ||||||
|                     "leavening": "Étuve", |                     "leavening": "Étuve", | ||||||
|                     "low_temp_cooking": "Cuisson à basse température", |                     "low_temp_cooking": "Cuisson à basse température", | ||||||
|                     "low_temp_cooking_fish": "Cuisson à basse température - Poisson", |                     "low_temp_cooking_fish": "Cuisson à basse température Poisson", | ||||||
|                     "low_temp_cooking_fish_steam": "Cuisson à la vapeur à 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": "Cuisson à basse température Viande", | ||||||
|                     "low_temp_cooking_meat_steam": "Cuisson à la vapeur à basse température - Viande", |                     "low_temp_cooking_meat_steam": "Cuisson à basse température Viande à la vapeur", | ||||||
|                     "low_temp_cooking_steam": "Cuisson à la vapeur à basse température", |                     "low_temp_cooking_steam": "Cuisson à basse température à la vapeur", | ||||||
|                     "meat": "Viande", |                     "meat": "Viande", | ||||||
|                     "meat_steam": "Viande cuite à la vapeur", |                     "meat_steam": "Viande à la vapeur", | ||||||
|                     "multi_level": "Chaleur pulsée", |                     "multi_level": "Chaleur pulsée", | ||||||
|                     "paella": "Paella", |                     "paella": "Paella", | ||||||
|                     "pasta_and_bakery": "Pâtes et pains", |                     "pasta_and_bakery": "Pâtes et pains", | ||||||
| @ -489,8 +507,8 @@ | |||||||
|                     "pyrolysis": "Pyrolyse", |                     "pyrolysis": "Pyrolyse", | ||||||
|                     "pyrolysis_plus": "Pyrolyse +", |                     "pyrolysis_plus": "Pyrolyse +", | ||||||
|                     "red_meat": "Viande rouge", |                     "red_meat": "Viande rouge", | ||||||
|                     "red_meat_steam": "Viande rouge cuite à la vapeur", |                     "red_meat_steam": "Viande rouge à la vapeur", | ||||||
|                     "regenerate": "Régénération", |                     "regenerate": "Régénérer", | ||||||
|                     "soft_plus": "Soft+", |                     "soft_plus": "Soft+", | ||||||
|                     "super_grill": "Super Gril", |                     "super_grill": "Super Gril", | ||||||
|                     "tailor_bake": "Tailor bake", |                     "tailor_bake": "Tailor bake", | ||||||
| @ -499,9 +517,9 @@ | |||||||
|                     "vegetables": "Légumes", |                     "vegetables": "Légumes", | ||||||
|                     "vegetables_cata": "Légumes", |                     "vegetables_cata": "Légumes", | ||||||
|                     "vegetables_pyro": "Légumes", |                     "vegetables_pyro": "Légumes", | ||||||
|                     "water_discharge": "Vidange de l’eau", |                     "water_discharge": "Décharge d'eau", | ||||||
|                     "white_meat": "Viande blanche", |                     "white_meat": "Viande blanche", | ||||||
|                     "white_meat_steam": "Viande blanche cuite à la vapeur" |                     "white_meat_steam": "Viande blanche à la vapeur" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Programme" |                 "name": "Programme" | ||||||
|             }, |             }, | ||||||
| @ -558,7 +576,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Rapide 20’", |                     "hqd_quick_20": "Rapide 20’", | ||||||
|                     "hqd_quick_30": "Rapide 30’", |                     "hqd_quick_30": "Rapide 30’", | ||||||
|                     "hqd_quick_dry": "Séchage rapide", |                     "hqd_quick_dry": "Séchage rapide 30", | ||||||
|                     "hqd_quilt": "Couvertures", |                     "hqd_quilt": "Couvertures", | ||||||
|                     "hqd_refresh": "Rafraîchissement", |                     "hqd_refresh": "Rafraîchissement", | ||||||
|                     "hqd_school_uniform": "Uniforme scolaire", |                     "hqd_school_uniform": "Uniforme scolaire", | ||||||
| @ -1013,6 +1031,40 @@ | |||||||
|                     "iot_uv_and_fan": "UV + ventilateur", |                     "iot_uv_and_fan": "UV + ventilateur", | ||||||
|                     "iot_uv_and_heat": "UV + Chaleur" |                     "iot_uv_and_heat": "UV + Chaleur" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "programs_ref": { | ||||||
|  |                 "state": { | ||||||
|  |                     "auto_set": "AUTO-SET", | ||||||
|  |                     "cheese": "Fromage", | ||||||
|  |                     "chiller": "Quick cool", | ||||||
|  |                     "cold_drinks": "Soft chill", | ||||||
|  |                     "eco": "Eco", | ||||||
|  |                     "eco_mode": "Mode Eco", | ||||||
|  |                     "fruits_and_veg": "Fruit&Veg", | ||||||
|  |                     "fruit_and_veg": "Fruit & Veg", | ||||||
|  |                     "holiday": "HOLIDAY", | ||||||
|  |                     "keep_fresh": "0° Fresh", | ||||||
|  |                     "no_mode_selected": "Aucun mode sélectionné", | ||||||
|  |                     "quick_cool": "QUICK COOL", | ||||||
|  |                     "sea_food": "Ready to cook meal", | ||||||
|  |                     "soft_frozen": "Soft freezing", | ||||||
|  |                     "super_cool": "SUPER COOL", | ||||||
|  |                     "super_freeze": "SUPER FREEZE", | ||||||
|  |                     "tea": "Cold drinks or Beverages", | ||||||
|  |                     "zero_fresh": "0° Fresh" | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "remaining_time": { | ||||||
|  |                 "name": "Temps restant" | ||||||
|  |             }, | ||||||
|  |             "ref_zones": { | ||||||
|  |                 "state": { | ||||||
|  |                     "fridge": "Réfrigérateur", | ||||||
|  |                     "freezer": "Congélateur", | ||||||
|  |                     "vtroom1": "My Zone", | ||||||
|  |                     "fridge_freezer": "Réfrigérateur & Congélateur" | ||||||
|  |                 }, | ||||||
|  |                 "name": "Zone" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "switch": { |         "switch": { | ||||||
| @ -1105,6 +1157,24 @@ | |||||||
|             }, |             }, | ||||||
|             "good_night": { |             "good_night": { | ||||||
|                 "name": "Bonne nuit" |                 "name": "Bonne nuit" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_softener": { | ||||||
|  |                 "name": "Dose automatique Adoucissant" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_detergent": { | ||||||
|  |                 "name": "Dose automatique Lessive" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Réglage automatique" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "refrigerator": { | ||||||
|  |                 "name": "Réfrigérateur" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "binary_sensor": { |         "binary_sensor": { | ||||||
| @ -1182,6 +1252,30 @@ | |||||||
|             }, |             }, | ||||||
|             "auto_dose": { |             "auto_dose": { | ||||||
|                 "name": "Dose automatique" |                 "name": "Dose automatique" | ||||||
|  |             }, | ||||||
|  |             "buzzer": { | ||||||
|  |                 "name": "Sonnerie de fin de cycle" | ||||||
|  |             }, | ||||||
|  |             "holiday_mode": { | ||||||
|  |                 "name": "Mode Holiday" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Réglage automatique" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "freezer_door": { | ||||||
|  |                 "name": "Porte ouverte Congélateur" | ||||||
|  |             }, | ||||||
|  |             "fridge_door": { | ||||||
|  |                 "name": "Porte ouverte Réfrigérateur" | ||||||
|  |             }, | ||||||
|  |             "filter_replacement": { | ||||||
|  |                 "name": "Remplacement du filtre" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "number": { |         "number": { | ||||||
| @ -1214,11 +1308,55 @@ | |||||||
|             }, |             }, | ||||||
|             "steam_level": { |             "steam_level": { | ||||||
|                 "name": "Niveau de vapeur" |                 "name": "Niveau de vapeur" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp_sel": { | ||||||
|  |                 "name": "Température cible Congélateur" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp_sel": { | ||||||
|  |                 "name": "Température cible Réfrigérateur" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "button": { |         "button": { | ||||||
|             "induction_hob": { |             "induction_hob": { | ||||||
|                 "name": "Table de cuisson à induction" |                 "name": "Table de cuisson à induction" | ||||||
|  |             }, | ||||||
|  |             "start_program": { | ||||||
|  |                 "name": "Programme Démarrer" | ||||||
|  |             }, | ||||||
|  |             "stop_program": { | ||||||
|  |                 "name": "Programme Arrêter" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "climate": { | ||||||
|  |             "air_conditioner": { | ||||||
|  |                 "name": "Climatiseur" | ||||||
|  |             }, | ||||||
|  |             "fridge": { | ||||||
|  |                 "name": "Réfrigérateur", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Modes réfrigérateur", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Réglage automatique", | ||||||
|  |                             "super_cool": "Super Cool", | ||||||
|  |                             "holiday": "Holiday", | ||||||
|  |                             "no_mode": "Aucun mode sélectionné" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "freezer": { | ||||||
|  |                 "name": "Congélateur", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Modes congélateur", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Réglage automatique", | ||||||
|  |                             "super_freeze": "Super Freeze", | ||||||
|  |                             "no_mode": "Aucun mode sélectionné" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -188,6 +188,18 @@ | |||||||
|                     "hqd_working_suit": "Working suit", |                     "hqd_working_suit": "Working suit", | ||||||
|                     "iot_dry_synthetic_dry": "סינתטי יבש" |                     "iot_dry_synthetic_dry": "סינתטי יבש" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "room_temperature": { | ||||||
|  |                 "name": "Room temperature" | ||||||
|  |             }, | ||||||
|  |             "humidity": { | ||||||
|  |                 "name": "Humidity" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp": { | ||||||
|  |                 "name": "Freezer temperature" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp": { | ||||||
|  |                 "name": "Fridge temperature" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "select": { |         "select": { | ||||||
| @ -199,7 +211,8 @@ | |||||||
|                     "iot_fairy_quick_cycle": "Fairy Quick", |                     "iot_fairy_quick_cycle": "Fairy Quick", | ||||||
|                     "iot_jar_quick_cycle": "Jar Quick", |                     "iot_jar_quick_cycle": "Jar Quick", | ||||||
|                     "iot_yes_quick_cycle": "Yes Quick", |                     "iot_yes_quick_cycle": "Yes Quick", | ||||||
|                     "smart_ai": "Smart AI" |                     "smart_ai": "Smart AI", | ||||||
|  |                     "smart_ai_soil": "Smart AI" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Program" |                 "name": "Program" | ||||||
|             }, |             }, | ||||||
| @ -477,6 +490,29 @@ | |||||||
|                 "state": { |                 "state": { | ||||||
|                     "iot_simple_start": "התחל עכשיו" |                     "iot_simple_start": "התחל עכשיו" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "programs_ref": { | ||||||
|  |                 "state": { | ||||||
|  |                     "chiller": "Quick cool", | ||||||
|  |                     "cold_drinks": "Soft chill", | ||||||
|  |                     "fruit_and_veg": "Fruit & Veg", | ||||||
|  |                     "keep_fresh": "0° Fresh", | ||||||
|  |                     "sea_food": "Ready to cook meal", | ||||||
|  |                     "soft_frozen": "Soft freezing", | ||||||
|  |                     "tea": "Cold drinks or Beverages" | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "remaining_time": { | ||||||
|  |                 "name": "זמן שנותר" | ||||||
|  |             }, | ||||||
|  |             "ref_zones": { | ||||||
|  |                 "state": { | ||||||
|  |                     "fridge": "Fridge", | ||||||
|  |                     "freezer": "Freezer", | ||||||
|  |                     "vtroom1": "My Zone", | ||||||
|  |                     "fridge_freezer": "Fridge & Freezer" | ||||||
|  |                 }, | ||||||
|  |                 "name": "Zone" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "switch": { |         "switch": { | ||||||
| @ -569,6 +605,24 @@ | |||||||
|             }, |             }, | ||||||
|             "good_night": { |             "good_night": { | ||||||
|                 "name": "לילה טוב" |                 "name": "לילה טוב" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_softener": { | ||||||
|  |                 "name": "מינון אוטומטי מרכך" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_detergent": { | ||||||
|  |                 "name": "מינון אוטומטי חומר ניקוי" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Auto-Set" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "refrigerator": { | ||||||
|  |                 "name": "Refrigerator" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "binary_sensor": { |         "binary_sensor": { | ||||||
| @ -646,6 +700,30 @@ | |||||||
|             }, |             }, | ||||||
|             "auto_dose": { |             "auto_dose": { | ||||||
|                 "name": "מינון אוטומטי" |                 "name": "מינון אוטומטי" | ||||||
|  |             }, | ||||||
|  |             "buzzer": { | ||||||
|  |                 "name": "Cycle end chime" | ||||||
|  |             }, | ||||||
|  |             "holiday_mode": { | ||||||
|  |                 "name": "Holiday Mode" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Auto-Set" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "freezer_door": { | ||||||
|  |                 "name": "Door open Freezer" | ||||||
|  |             }, | ||||||
|  |             "fridge_door": { | ||||||
|  |                 "name": "Door open Fridge" | ||||||
|  |             }, | ||||||
|  |             "filter_replacement": { | ||||||
|  |                 "name": "Filter replacement" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "number": { |         "number": { | ||||||
| @ -678,11 +756,55 @@ | |||||||
|             }, |             }, | ||||||
|             "steam_level": { |             "steam_level": { | ||||||
|                 "name": "מפלס קיטור" |                 "name": "מפלס קיטור" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp_sel": { | ||||||
|  |                 "name": "Target temperature Freezer" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp_sel": { | ||||||
|  |                 "name": "Target temperature Fridge" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "button": { |         "button": { | ||||||
|             "induction_hob": { |             "induction_hob": { | ||||||
|                 "name": "Induction Hob" |                 "name": "Induction Hob" | ||||||
|  |             }, | ||||||
|  |             "start_program": { | ||||||
|  |                 "name": "Program Start" | ||||||
|  |             }, | ||||||
|  |             "stop_program": { | ||||||
|  |                 "name": "Program Stop" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "climate": { | ||||||
|  |             "air_conditioner": { | ||||||
|  |                 "name": "Air conditioner" | ||||||
|  |             }, | ||||||
|  |             "fridge": { | ||||||
|  |                 "name": "Fridge", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Fridge modes", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Auto-Set", | ||||||
|  |                             "super_cool": "Super Cool", | ||||||
|  |                             "holiday": "Holiday", | ||||||
|  |                             "no_mode": "No mode selected" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "freezer": { | ||||||
|  |                 "name": "Freezer", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Freezer modes", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Auto-Set", | ||||||
|  |                             "super_freeze": "Super Freeze", | ||||||
|  |                             "no_mode": "No mode selected" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -225,7 +225,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious Cure", |                     "hqd_precious_cure": "Precious Cure", | ||||||
|                     "hqd_quick_20": "Brzo 20", |                     "hqd_quick_20": "Brzo 20", | ||||||
|                     "hqd_quick_30": "Brzo 30", |                     "hqd_quick_30": "Brzo 30", | ||||||
|                     "hqd_quick_dry": "Brzo sušenje", |                     "hqd_quick_dry": "Brzo sušenje 30", | ||||||
|                     "hqd_quilt": "Popluni", |                     "hqd_quilt": "Popluni", | ||||||
|                     "hqd_refresh": "Protiv neugodnih mirisa", |                     "hqd_refresh": "Protiv neugodnih mirisa", | ||||||
|                     "hqd_school_uniform": "Školska uniforma", |                     "hqd_school_uniform": "Školska uniforma", | ||||||
| @ -307,6 +307,18 @@ | |||||||
|                     "xxl_load": "XXL kapacitet", |                     "xxl_load": "XXL kapacitet", | ||||||
|                     "zoom_59": "Zoom 59" |                     "zoom_59": "Zoom 59" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "room_temperature": { | ||||||
|  |                 "name": "Sobna temperatura" | ||||||
|  |             }, | ||||||
|  |             "humidity": { | ||||||
|  |                 "name": "Vlažnost" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp": { | ||||||
|  |                 "name": "Temperatura zamrzivača" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp": { | ||||||
|  |                 "name": "Temperatura hladnjaka" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "select": { |         "select": { | ||||||
| @ -397,6 +409,11 @@ | |||||||
|                     "silent": "Noć", |                     "silent": "Noć", | ||||||
|                     "silent_care": "Silent Care", |                     "silent_care": "Silent Care", | ||||||
|                     "smart_ai": "Smart AI", |                     "smart_ai": "Smart AI", | ||||||
|  |                     "smart_ai_pro": "Smart AI Pro", | ||||||
|  |                     "smart_ai_pro_soil": "Smart AI Pro", | ||||||
|  |                     "smart_ai_rapid": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_soil": "Smart AI", | ||||||
|                     "special": "Posebno", |                     "special": "Posebno", | ||||||
|                     "special_pw_prz": "Posebno", |                     "special_pw_prz": "Posebno", | ||||||
|                     "steam": "Steam (Para) 75 °C", |                     "steam": "Steam (Para) 75 °C", | ||||||
| @ -453,11 +470,12 @@ | |||||||
|             "programs_ov": { |             "programs_ov": { | ||||||
|                 "state": { |                 "state": { | ||||||
|                     "bakery": "Tjestenina i tijesta", |                     "bakery": "Tjestenina i tijesta", | ||||||
|                     "bakery_steam": "Kruh pečen na pari", |                     "bakery_steam": "Para u pećnici", | ||||||
|                     "bottom_heating": "Donji grijač", |                     "bottom_heating": "Donji grijač", | ||||||
|                     "bottom_heating_fan": "Donji grijač + Ventilator", |                     "bottom_heating_fan": "Donji grijač + Ventilator", | ||||||
|                     "bread": "Kruh", |                     "bread": "Kruh", | ||||||
|                     "bread_steam": "Peciva pečena na pari", |                     "bread_steam": "Kruh pečen na pari", | ||||||
|  |                     "combi": "Combi", | ||||||
|                     "convection_fan": "Konvekcija + Ventilator", |                     "convection_fan": "Konvekcija + Ventilator", | ||||||
|                     "convection_fan_turnspit": "Konvekcija + ventilator + ražanj", |                     "convection_fan_turnspit": "Konvekcija + ventilator + ražanj", | ||||||
|                     "conventional": "Konvekcijska", |                     "conventional": "Konvekcijska", | ||||||
| @ -465,7 +483,7 @@ | |||||||
|                     "defrost": "Odmrzavanje", |                     "defrost": "Odmrzavanje", | ||||||
|                     "descaling": "Uklanjanje kamenca", |                     "descaling": "Uklanjanje kamenca", | ||||||
|                     "fish": "Riba", |                     "fish": "Riba", | ||||||
|                     "fish_steam": "Riba kuhana na pari", |                     "fish_steam": "Riba na pari", | ||||||
|                     "grill_cata": "Pečenje", |                     "grill_cata": "Pečenje", | ||||||
|                     "grill_fan_cata": "Ventilator za pečenje", |                     "grill_fan_cata": "Ventilator za pečenje", | ||||||
|                     "grill_fan_pyro": "Grijač + ventilator", |                     "grill_fan_pyro": "Grijač + ventilator", | ||||||
| @ -476,12 +494,12 @@ | |||||||
|                     "leavening": "Dizanje tijesta", |                     "leavening": "Dizanje tijesta", | ||||||
|                     "low_temp_cooking": "Kuhanje na niskoj temperaturi", |                     "low_temp_cooking": "Kuhanje na niskoj temperaturi", | ||||||
|                     "low_temp_cooking_fish": "Kuhanje na niskoj temperaturi - riba", |                     "low_temp_cooking_fish": "Kuhanje na niskoj temperaturi - riba", | ||||||
|                     "low_temp_cooking_fish_steam": "Kuhanje na pari i na niskoj temperaturi - riba", |                     "low_temp_cooking_fish_steam": "Kuhanje na niskoj temperaturi - riba na pari", | ||||||
|                     "low_temp_cooking_meat": "Kuhanje na niskoj temperaturi - meso", |                     "low_temp_cooking_meat": "Kuhanje na niskoj temperaturi - meso", | ||||||
|                     "low_temp_cooking_meat_steam": "Kuhanje na pari i na niskoj temperaturi - meso", |                     "low_temp_cooking_meat_steam": "Kuhanje na niskoj temperaturi - meso na pari", | ||||||
|                     "low_temp_cooking_steam": "Kuhanje na pari i na niskoj temperaturi", |                     "low_temp_cooking_steam": "Kuhanje na pari i na niskoj temperaturi", | ||||||
|                     "meat": "Meso", |                     "meat": "Meso", | ||||||
|                     "meat_steam": "Meso kuhano na pari", |                     "meat_steam": "Meso na pari", | ||||||
|                     "multi_level": "Više razina", |                     "multi_level": "Više razina", | ||||||
|                     "paella": "Paella", |                     "paella": "Paella", | ||||||
|                     "pasta_and_bakery": "Tjestenina i tijesta", |                     "pasta_and_bakery": "Tjestenina i tijesta", | ||||||
| @ -489,7 +507,7 @@ | |||||||
|                     "pyrolysis": "Piroliza", |                     "pyrolysis": "Piroliza", | ||||||
|                     "pyrolysis_plus": "Piroliza +", |                     "pyrolysis_plus": "Piroliza +", | ||||||
|                     "red_meat": "Crveno meso", |                     "red_meat": "Crveno meso", | ||||||
|                     "red_meat_steam": "Crveno meso kuhano na pari", |                     "red_meat_steam": "Kuhano crveno meso", | ||||||
|                     "regenerate": "Regeneracija", |                     "regenerate": "Regeneracija", | ||||||
|                     "soft_plus": "Mekano+", |                     "soft_plus": "Mekano+", | ||||||
|                     "super_grill": "Super roštilj", |                     "super_grill": "Super roštilj", | ||||||
| @ -499,9 +517,9 @@ | |||||||
|                     "vegetables": "Povrće", |                     "vegetables": "Povrće", | ||||||
|                     "vegetables_cata": "Povrće", |                     "vegetables_cata": "Povrće", | ||||||
|                     "vegetables_pyro": "Povrće", |                     "vegetables_pyro": "Povrće", | ||||||
|                     "water_discharge": "Odvod vode", |                     "water_discharge": "Ispuštanje vode", | ||||||
|                     "white_meat": "Bijelo meso", |                     "white_meat": "Bijelo meso", | ||||||
|                     "white_meat_steam": "Bijelo meso kuhano na pari" |                     "white_meat_steam": "Kuhano bijelo meso na pari" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Program" |                 "name": "Program" | ||||||
|             }, |             }, | ||||||
| @ -558,7 +576,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious Cure", |                     "hqd_precious_cure": "Precious Cure", | ||||||
|                     "hqd_quick_20": "Brzo 20", |                     "hqd_quick_20": "Brzo 20", | ||||||
|                     "hqd_quick_30": "Brzo 30", |                     "hqd_quick_30": "Brzo 30", | ||||||
|                     "hqd_quick_dry": "Brzo sušenje", |                     "hqd_quick_dry": "Brzo sušenje 30", | ||||||
|                     "hqd_quilt": "Popluni", |                     "hqd_quilt": "Popluni", | ||||||
|                     "hqd_refresh": "Protiv neugodnih mirisa", |                     "hqd_refresh": "Protiv neugodnih mirisa", | ||||||
|                     "hqd_school_uniform": "Školska uniforma", |                     "hqd_school_uniform": "Školska uniforma", | ||||||
| @ -1013,6 +1031,40 @@ | |||||||
|                     "iot_uv_and_fan": "UV + ventilator", |                     "iot_uv_and_fan": "UV + ventilator", | ||||||
|                     "iot_uv_and_heat": "UV + grijanje" |                     "iot_uv_and_heat": "UV + grijanje" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "programs_ref": { | ||||||
|  |                 "state": { | ||||||
|  |                     "auto_set": "AUTOMATSKA POSTAVKA", | ||||||
|  |                     "cheese": "Sir", | ||||||
|  |                     "chiller": "Quick cool", | ||||||
|  |                     "cold_drinks": "Soft chill", | ||||||
|  |                     "eco": "Eco", | ||||||
|  |                     "eco_mode": "Način rada Eco", | ||||||
|  |                     "fruits_and_veg": "Voće i Povrće", | ||||||
|  |                     "fruit_and_veg": "Fruit & Veg", | ||||||
|  |                     "holiday": "ODMOR", | ||||||
|  |                     "keep_fresh": "0° Fresh", | ||||||
|  |                     "no_mode_selected": "Nije odabran način rada", | ||||||
|  |                     "quick_cool": "BRZO HLAĐENJE", | ||||||
|  |                     "sea_food": "Ready to cook meal", | ||||||
|  |                     "soft_frozen": "Soft freezing", | ||||||
|  |                     "super_cool": "SUPER HLAĐENJE", | ||||||
|  |                     "super_freeze": "SUPER ZAMRZAVANJE", | ||||||
|  |                     "tea": "Hladna pića i napitci", | ||||||
|  |                     "zero_fresh": "0° Fresh" | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "remaining_time": { | ||||||
|  |                 "name": "Preostalo vrijeme" | ||||||
|  |             }, | ||||||
|  |             "ref_zones": { | ||||||
|  |                 "state": { | ||||||
|  |                     "fridge": "Hladnjak", | ||||||
|  |                     "freezer": "Zamrzivač", | ||||||
|  |                     "vtroom1": "My Zone", | ||||||
|  |                     "fridge_freezer": "Hladnjak & Zamrzivač" | ||||||
|  |                 }, | ||||||
|  |                 "name": "Zona" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "switch": { |         "switch": { | ||||||
| @ -1105,6 +1157,24 @@ | |||||||
|             }, |             }, | ||||||
|             "good_night": { |             "good_night": { | ||||||
|                 "name": "Good Night" |                 "name": "Good Night" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_softener": { | ||||||
|  |                 "name": "Automatsko doziranje Omekšivač" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_detergent": { | ||||||
|  |                 "name": "Automatsko doziranje Deterdžent" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Automatsko postavljanje" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "refrigerator": { | ||||||
|  |                 "name": "Hladnjak" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "binary_sensor": { |         "binary_sensor": { | ||||||
| @ -1154,7 +1224,7 @@ | |||||||
|                 "name": "Tava" |                 "name": "Tava" | ||||||
|             }, |             }, | ||||||
|             "remote_control": { |             "remote_control": { | ||||||
|                 "name": "Upravljanje na daljinu" |                 "name": "Daljinski upravljač" | ||||||
|             }, |             }, | ||||||
|             "rinse_aid": { |             "rinse_aid": { | ||||||
|                 "name": "Razina sredstva za ispiranje" |                 "name": "Razina sredstva za ispiranje" | ||||||
| @ -1182,6 +1252,30 @@ | |||||||
|             }, |             }, | ||||||
|             "auto_dose": { |             "auto_dose": { | ||||||
|                 "name": "Automatsko doziranje" |                 "name": "Automatsko doziranje" | ||||||
|  |             }, | ||||||
|  |             "buzzer": { | ||||||
|  |                 "name": "Zvono za završetak ciklusa" | ||||||
|  |             }, | ||||||
|  |             "holiday_mode": { | ||||||
|  |                 "name": "Način rada Holiday" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Automatsko postavljanje" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "freezer_door": { | ||||||
|  |                 "name": "Otvorena vrata Zamrzivač" | ||||||
|  |             }, | ||||||
|  |             "fridge_door": { | ||||||
|  |                 "name": "Otvorena vrata Hladnjak" | ||||||
|  |             }, | ||||||
|  |             "filter_replacement": { | ||||||
|  |                 "name": "Zamjena filtra" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "number": { |         "number": { | ||||||
| @ -1214,11 +1308,55 @@ | |||||||
|             }, |             }, | ||||||
|             "steam_level": { |             "steam_level": { | ||||||
|                 "name": "Razina pare" |                 "name": "Razina pare" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp_sel": { | ||||||
|  |                 "name": "Ciljana temperatura Zamrzivač" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp_sel": { | ||||||
|  |                 "name": "Ciljana temperatura Hladnjak" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "button": { |         "button": { | ||||||
|             "induction_hob": { |             "induction_hob": { | ||||||
|                 "name": "Indukcijska ploča za kuhanje" |                 "name": "Indukcijska ploča za kuhanje" | ||||||
|  |             }, | ||||||
|  |             "start_program": { | ||||||
|  |                 "name": "Program Početak" | ||||||
|  |             }, | ||||||
|  |             "stop_program": { | ||||||
|  |                 "name": "Program Zaustavi" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "climate": { | ||||||
|  |             "air_conditioner": { | ||||||
|  |                 "name": "Klimatizacijski uređaj" | ||||||
|  |             }, | ||||||
|  |             "fridge": { | ||||||
|  |                 "name": "Hladnjak", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Načini rada za hladnjak", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Automatsko postavljanje", | ||||||
|  |                             "super_cool": "Super Cool", | ||||||
|  |                             "holiday": "Holiday", | ||||||
|  |                             "no_mode": "Nije odabran način rada" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "freezer": { | ||||||
|  |                 "name": "Zamrzivač", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Načini rada za zamrzavanje", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Automatsko postavljanje", | ||||||
|  |                             "super_freeze": "Super Freeze", | ||||||
|  |                             "no_mode": "Nije odabran način rada" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -256,7 +256,7 @@ | |||||||
|                     "hqd_bed_sheets": "Lenzuola", |                     "hqd_bed_sheets": "Lenzuola", | ||||||
|                     "hqd_bulky": "Vestiti voluminosi", |                     "hqd_bulky": "Vestiti voluminosi", | ||||||
|                     "hqd_casual": "Casual", |                     "hqd_casual": "Casual", | ||||||
|                     "hqd_cold_wind_30": "Brezza rinfrescante 30 minuti", |                     "hqd_cold_wind_30": "Brezza rinfrescante 30m", | ||||||
|                     "hqd_cold_wind_timing": "Brezza rinfrescante", |                     "hqd_cold_wind_timing": "Brezza rinfrescante", | ||||||
|                     "hqd_cotton": "Cotone", |                     "hqd_cotton": "Cotone", | ||||||
|                     "hqd_curtain": "Tende", |                     "hqd_curtain": "Tende", | ||||||
| @ -270,14 +270,14 @@ | |||||||
|                     "hqd_i_refresh_pro": "I-Refresh Pro", |                     "hqd_i_refresh_pro": "I-Refresh Pro", | ||||||
|                     "hqd_jacket": "Giacche", |                     "hqd_jacket": "Giacche", | ||||||
|                     "hqd_jeans": "Jeans", |                     "hqd_jeans": "Jeans", | ||||||
|                     "hqd_luxury": "Vestiti preziosi", |                     "hqd_luxury": "Capi Pregiati", | ||||||
|                     "hqd_mix": "Misti", |                     "hqd_mix": "Misti", | ||||||
|                     "hqd_night_dry": "Asciugatura notturna", |                     "hqd_night_dry": "Asciugatura notturna", | ||||||
|                     "hqd_outdoor": "Outdoor", |                     "hqd_outdoor": "Outdoor", | ||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Rapido 20", |                     "hqd_quick_20": "Rapido 20m", | ||||||
|                     "hqd_quick_30": "Rapido 30", |                     "hqd_quick_30": "Rapido 30m", | ||||||
|                     "hqd_quick_dry": "Asciugatura veloce", |                     "hqd_quick_dry": "Asciugatura veloce (30 min)", | ||||||
|                     "hqd_quilt": "Trapunte", |                     "hqd_quilt": "Trapunte", | ||||||
|                     "hqd_refresh": "Refresh", |                     "hqd_refresh": "Refresh", | ||||||
|                     "hqd_school_uniform": "Uniforme scolastica", |                     "hqd_school_uniform": "Uniforme scolastica", | ||||||
| @ -291,7 +291,7 @@ | |||||||
|                     "hqd_underwear": "Intimo", |                     "hqd_underwear": "Intimo", | ||||||
|                     "hqd_warm_up": "Riscaldamento", |                     "hqd_warm_up": "Riscaldamento", | ||||||
|                     "hqd_wool": "Lana", |                     "hqd_wool": "Lana", | ||||||
|                     "hqd_working_suit": "Completo da lavoro", |                     "hqd_working_suit": "Abbigliamento da lavoro", | ||||||
|                     "hygiene": "Igiene", |                     "hygiene": "Igiene", | ||||||
|                     "iot_checkup": "Check-Up", |                     "iot_checkup": "Check-Up", | ||||||
|                     "iot_dry_anti_mites": "Anti-Acari", |                     "iot_dry_anti_mites": "Anti-Acari", | ||||||
| @ -315,7 +315,7 @@ | |||||||
|                     "iot_dry_lingerie": "Lingerie", |                     "iot_dry_lingerie": "Lingerie", | ||||||
|                     "iot_dry_mixed": "Misti", |                     "iot_dry_mixed": "Misti", | ||||||
|                     "iot_dry_playsuits": "Tutine", |                     "iot_dry_playsuits": "Tutine", | ||||||
|                     "iot_dry_rapid_30": "Rapido 30", |                     "iot_dry_rapid_30": "Rapido 30m", | ||||||
|                     "iot_dry_rapid_59": "Rapido 59'.", |                     "iot_dry_rapid_59": "Rapido 59'.", | ||||||
|                     "iot_dry_refresh": "Rinfresca", |                     "iot_dry_refresh": "Rinfresca", | ||||||
|                     "iot_dry_regenerates_waterproof": "Rigenera Tessuti Impermeabili", |                     "iot_dry_regenerates_waterproof": "Rigenera Tessuti Impermeabili", | ||||||
| @ -359,6 +359,18 @@ | |||||||
|                     "xxl_load": "Carico XXL", |                     "xxl_load": "Carico XXL", | ||||||
|                     "zoom_59": "Zoom 59" |                     "zoom_59": "Zoom 59" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "room_temperature": { | ||||||
|  |                 "name": "Temperatura ambiente" | ||||||
|  |             }, | ||||||
|  |             "humidity": { | ||||||
|  |                 "name": "Umidità" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp": { | ||||||
|  |                 "name": "Temperatura del congelatore" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp": { | ||||||
|  |                 "name": "Temperatura del frigorifero" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "select": { |         "select": { | ||||||
| @ -449,6 +461,11 @@ | |||||||
|                     "silent": "Notte", |                     "silent": "Notte", | ||||||
|                     "silent_care": "Silent Care", |                     "silent_care": "Silent Care", | ||||||
|                     "smart_ai": "Smart AI", |                     "smart_ai": "Smart AI", | ||||||
|  |                     "smart_ai_pro": "Smart AI Pro", | ||||||
|  |                     "smart_ai_pro_soil": "Smart AI Pro", | ||||||
|  |                     "smart_ai_rapid": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_soil": "Smart AI", | ||||||
|                     "special": "Speciale", |                     "special": "Speciale", | ||||||
|                     "special_pw_prz": "Speciale", |                     "special_pw_prz": "Speciale", | ||||||
|                     "steam": "Vapore 75°C", |                     "steam": "Vapore 75°C", | ||||||
| @ -505,19 +522,20 @@ | |||||||
|             "programs_ov": { |             "programs_ov": { | ||||||
|                 "state": { |                 "state": { | ||||||
|                     "bakery": "Pasta e Pasticceria", |                     "bakery": "Pasta e Pasticceria", | ||||||
|                     "bakery_steam": "Pane a vapore", |                     "bakery_steam": "Vapore da forno", | ||||||
|                     "bottom_heating": "Resistenza Inferiore", |                     "bottom_heating": "Resistenza Inferiore", | ||||||
|                     "bottom_heating_fan": "Resistenza Inferiore Ventilata", |                     "bottom_heating_fan": "Resistenza Inferiore Ventilata", | ||||||
|                     "bread": "Pane", |                     "bread": "Pane", | ||||||
|                     "bread_steam": "Pasticceria a vapore", |                     "bread_steam": "Pane al vapore", | ||||||
|  |                     "combi": "Combi", | ||||||
|                     "convection_fan": "Cottura Ventilata", |                     "convection_fan": "Cottura Ventilata", | ||||||
|                     "convection_fan_turnspit": "Girarrosto + statico ventilato", |                     "convection_fan_turnspit": "Girarrosto a convenzione ventilata", | ||||||
|                     "conventional": "Statico", |                     "conventional": "Statico", | ||||||
|                     "conventional_turnspit": "Girarrosto + statico", |                     "conventional_turnspit": "Girarrosto a convenzione", | ||||||
|                     "defrost": "Decongelamento", |                     "defrost": "Decongelamento", | ||||||
|                     "descaling": "Disincrostazione", |                     "descaling": "Decalcificazione", | ||||||
|                     "fish": "Pesce", |                     "fish": "Pesce", | ||||||
|                     "fish_steam": "Pesce a vapore", |                     "fish_steam": "Pesce al vapore", | ||||||
|                     "grill_cata": "Grill", |                     "grill_cata": "Grill", | ||||||
|                     "grill_fan_cata": "Grill fan", |                     "grill_fan_cata": "Grill fan", | ||||||
|                     "grill_fan_pyro": "Grill Ventilato", |                     "grill_fan_pyro": "Grill Ventilato", | ||||||
| @ -527,13 +545,13 @@ | |||||||
|                     "iot_h20_clean": "h2O clean", |                     "iot_h20_clean": "h2O clean", | ||||||
|                     "leavening": "Lievitazione", |                     "leavening": "Lievitazione", | ||||||
|                     "low_temp_cooking": "Cottura a bassa temperatura", |                     "low_temp_cooking": "Cottura a bassa temperatura", | ||||||
|                     "low_temp_cooking_fish": "Cottura a bassa temperatura del pesce", |                     "low_temp_cooking_fish": "Cottura a bassa temperatura Pesce", | ||||||
|                     "low_temp_cooking_fish_steam": "Cottura a bassa temperatura del pesce a vapore", |                     "low_temp_cooking_fish_steam": "Cottura a bassa temperatura Pesce al vapore", | ||||||
|                     "low_temp_cooking_meat": "Cottura a bassa temperatura della carne", |                     "low_temp_cooking_meat": "Cottura a bassa temperatura Carne", | ||||||
|                     "low_temp_cooking_meat_steam": "Cottura a vapore a bassa temperatura di carne", |                     "low_temp_cooking_meat_steam": "Cottura a bassa temperatura Carne al vapore", | ||||||
|                     "low_temp_cooking_steam": "Cottura a vapore a bassa temperatura", |                     "low_temp_cooking_steam": "Cottura a bassa temperatura al vapore", | ||||||
|                     "meat": "Carne", |                     "meat": "Carne", | ||||||
|                     "meat_steam": "Carne a vapore", |                     "meat_steam": "Carne al vapore", | ||||||
|                     "multi_level": "Cottura Multilivello", |                     "multi_level": "Cottura Multilivello", | ||||||
|                     "paella": "Paella", |                     "paella": "Paella", | ||||||
|                     "pasta_and_bakery": "Pasta e Pasticceria", |                     "pasta_and_bakery": "Pasta e Pasticceria", | ||||||
| @ -541,8 +559,8 @@ | |||||||
|                     "pyrolysis": "Pirolisi", |                     "pyrolysis": "Pirolisi", | ||||||
|                     "pyrolysis_plus": "Pirolisi +", |                     "pyrolysis_plus": "Pirolisi +", | ||||||
|                     "red_meat": "Carne rossa", |                     "red_meat": "Carne rossa", | ||||||
|                     "red_meat_steam": "Carne rossa a vapore", |                     "red_meat_steam": "Carne rossa al vapore", | ||||||
|                     "regenerate": "Rigenerazione", |                     "regenerate": "Rigenerare", | ||||||
|                     "soft_plus": "Soft+", |                     "soft_plus": "Soft+", | ||||||
|                     "super_grill": "Supergriglia", |                     "super_grill": "Supergriglia", | ||||||
|                     "tailor_bake": "Tailor bake", |                     "tailor_bake": "Tailor bake", | ||||||
| @ -551,9 +569,9 @@ | |||||||
|                     "vegetables": "Verdure", |                     "vegetables": "Verdure", | ||||||
|                     "vegetables_cata": "Verdure", |                     "vegetables_cata": "Verdure", | ||||||
|                     "vegetables_pyro": "Verdure", |                     "vegetables_pyro": "Verdure", | ||||||
|                     "water_discharge": "Scarico d'acqua", |                     "water_discharge": "Scarico dell'acqua", | ||||||
|                     "white_meat": "Carne bianca", |                     "white_meat": "Carne Bianca", | ||||||
|                     "white_meat_steam": "Carne bianca a vapore" |                     "white_meat_steam": "Carne bianca al vapore" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Programma" |                 "name": "Programma" | ||||||
|             }, |             }, | ||||||
| @ -589,7 +607,7 @@ | |||||||
|                     "hqd_bed_sheets": "Lenzuola", |                     "hqd_bed_sheets": "Lenzuola", | ||||||
|                     "hqd_bulky": "Vestiti voluminosi", |                     "hqd_bulky": "Vestiti voluminosi", | ||||||
|                     "hqd_casual": "Casual", |                     "hqd_casual": "Casual", | ||||||
|                     "hqd_cold_wind_30": "Brezza rinfrescante 30 minuti", |                     "hqd_cold_wind_30": "Brezza rinfrescante 30m", | ||||||
|                     "hqd_cold_wind_timing": "Brezza rinfrescante", |                     "hqd_cold_wind_timing": "Brezza rinfrescante", | ||||||
|                     "hqd_cotton": "Cotone", |                     "hqd_cotton": "Cotone", | ||||||
|                     "hqd_curtain": "Tende", |                     "hqd_curtain": "Tende", | ||||||
| @ -603,14 +621,14 @@ | |||||||
|                     "hqd_i_refresh_pro": "I-Refresh Pro", |                     "hqd_i_refresh_pro": "I-Refresh Pro", | ||||||
|                     "hqd_jacket": "Giacche", |                     "hqd_jacket": "Giacche", | ||||||
|                     "hqd_jeans": "Jeans", |                     "hqd_jeans": "Jeans", | ||||||
|                     "hqd_luxury": "Vestiti preziosi", |                     "hqd_luxury": "Capi Pregiati", | ||||||
|                     "hqd_mix": "Misti", |                     "hqd_mix": "Misti", | ||||||
|                     "hqd_night_dry": "Asciugatura notturna", |                     "hqd_night_dry": "Asciugatura notturna", | ||||||
|                     "hqd_outdoor": "Outdoor", |                     "hqd_outdoor": "Outdoor", | ||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Rapido 20", |                     "hqd_quick_20": "Rapido 20m", | ||||||
|                     "hqd_quick_30": "Rapido 30", |                     "hqd_quick_30": "Rapido 30m", | ||||||
|                     "hqd_quick_dry": "Asciugatura veloce", |                     "hqd_quick_dry": "Asciugatura veloce (30 min)", | ||||||
|                     "hqd_quilt": "Trapunte", |                     "hqd_quilt": "Trapunte", | ||||||
|                     "hqd_refresh": "Refresh", |                     "hqd_refresh": "Refresh", | ||||||
|                     "hqd_school_uniform": "Uniforme scolastica", |                     "hqd_school_uniform": "Uniforme scolastica", | ||||||
| @ -624,7 +642,7 @@ | |||||||
|                     "hqd_underwear": "Intimo", |                     "hqd_underwear": "Intimo", | ||||||
|                     "hqd_warm_up": "Riscaldamento", |                     "hqd_warm_up": "Riscaldamento", | ||||||
|                     "hqd_wool": "Lana", |                     "hqd_wool": "Lana", | ||||||
|                     "hqd_working_suit": "Completo da lavoro", |                     "hqd_working_suit": "Abbigliamento da lavoro", | ||||||
|                     "hygiene": "Igiene", |                     "hygiene": "Igiene", | ||||||
|                     "iot_checkup": "Check-Up", |                     "iot_checkup": "Check-Up", | ||||||
|                     "iot_dry_anti_mites": "Anti-Acari", |                     "iot_dry_anti_mites": "Anti-Acari", | ||||||
| @ -648,7 +666,7 @@ | |||||||
|                     "iot_dry_lingerie": "Lingerie", |                     "iot_dry_lingerie": "Lingerie", | ||||||
|                     "iot_dry_mixed": "Misti", |                     "iot_dry_mixed": "Misti", | ||||||
|                     "iot_dry_playsuits": "Tutine", |                     "iot_dry_playsuits": "Tutine", | ||||||
|                     "iot_dry_rapid_30": "Rapido 30", |                     "iot_dry_rapid_30": "Rapido 30m", | ||||||
|                     "iot_dry_rapid_59": "Rapido 59'.", |                     "iot_dry_rapid_59": "Rapido 59'.", | ||||||
|                     "iot_dry_refresh": "Rinfresca", |                     "iot_dry_refresh": "Rinfresca", | ||||||
|                     "iot_dry_regenerates_waterproof": "Rigenera Tessuti Impermeabili", |                     "iot_dry_regenerates_waterproof": "Rigenera Tessuti Impermeabili", | ||||||
| @ -1065,6 +1083,40 @@ | |||||||
|                     "iot_uv_and_fan": "UV + Ventola", |                     "iot_uv_and_fan": "UV + Ventola", | ||||||
|                     "iot_uv_and_heat": "UV + Caldo" |                     "iot_uv_and_heat": "UV + Caldo" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "programs_ref": { | ||||||
|  |                 "state": { | ||||||
|  |                     "auto_set": "AUTO-SET", | ||||||
|  |                     "cheese": "Formaggio", | ||||||
|  |                     "chiller": "Quick cool", | ||||||
|  |                     "cold_drinks": "Soft chill", | ||||||
|  |                     "eco": "Eco", | ||||||
|  |                     "eco_mode": "Modalità Eco", | ||||||
|  |                     "fruits_and_veg": "Fruit&Veg", | ||||||
|  |                     "fruit_and_veg": "Fruit & Veg", | ||||||
|  |                     "holiday": "HOLIDAY", | ||||||
|  |                     "keep_fresh": "0° Fresh", | ||||||
|  |                     "no_mode_selected": "Nessuna modalità selezionata", | ||||||
|  |                     "quick_cool": " QUICK COOL", | ||||||
|  |                     "sea_food": "Ready to cook meal", | ||||||
|  |                     "soft_frozen": "Soft freezing", | ||||||
|  |                     "super_cool": "SUPER COOL", | ||||||
|  |                     "super_freeze": "SUPER FREEZE", | ||||||
|  |                     "tea": "Cold drinks or Beverages", | ||||||
|  |                     "zero_fresh": "0° Fresh" | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "remaining_time": { | ||||||
|  |                 "name": "Tempo rimanente" | ||||||
|  |             }, | ||||||
|  |             "ref_zones": { | ||||||
|  |                 "state": { | ||||||
|  |                     "fridge": "Frigorifero", | ||||||
|  |                     "freezer": "Congelatore", | ||||||
|  |                     "vtroom1": "My Zone", | ||||||
|  |                     "fridge_freezer": "Frigorifero & Congelatore" | ||||||
|  |                 }, | ||||||
|  |                 "name": "Zona" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "switch": { |         "switch": { | ||||||
| @ -1157,6 +1209,24 @@ | |||||||
|             }, |             }, | ||||||
|             "good_night": { |             "good_night": { | ||||||
|                 "name": "Buona notte" |                 "name": "Buona notte" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_softener": { | ||||||
|  |                 "name": "Autodose Ammorbidente" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_detergent": { | ||||||
|  |                 "name": "Autodose Detergente" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Impostazione automatica" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "refrigerator": { | ||||||
|  |                 "name": "Frigo" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "binary_sensor": { |         "binary_sensor": { | ||||||
| @ -1206,7 +1276,7 @@ | |||||||
|                 "name": "Pentola" |                 "name": "Pentola" | ||||||
|             }, |             }, | ||||||
|             "remote_control": { |             "remote_control": { | ||||||
|                 "name": "Controllo remoto" |                 "name": "远程控制" | ||||||
|             }, |             }, | ||||||
|             "rinse_aid": { |             "rinse_aid": { | ||||||
|                 "name": "Livello Brillantante" |                 "name": "Livello Brillantante" | ||||||
| @ -1234,6 +1304,30 @@ | |||||||
|             }, |             }, | ||||||
|             "auto_dose": { |             "auto_dose": { | ||||||
|                 "name": "Autodose" |                 "name": "Autodose" | ||||||
|  |             }, | ||||||
|  |             "buzzer": { | ||||||
|  |                 "name": "Avviso di fine ciclo" | ||||||
|  |             }, | ||||||
|  |             "holiday_mode": { | ||||||
|  |                 "name": "Modalità Holiday" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Impostazione automatica" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "freezer_door": { | ||||||
|  |                 "name": "Porta aperta Congelatore" | ||||||
|  |             }, | ||||||
|  |             "fridge_door": { | ||||||
|  |                 "name": "Porta aperta Frigorifero" | ||||||
|  |             }, | ||||||
|  |             "filter_replacement": { | ||||||
|  |                 "name": "Sostituzione filtro" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "number": { |         "number": { | ||||||
| @ -1266,11 +1360,55 @@ | |||||||
|             }, |             }, | ||||||
|             "steam_level": { |             "steam_level": { | ||||||
|                 "name": "Livello vapore" |                 "name": "Livello vapore" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp_sel": { | ||||||
|  |                 "name": "Temperatura target Congelatore" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp_sel": { | ||||||
|  |                 "name": "Temperatura target Frigorifero" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "button": { |         "button": { | ||||||
|             "induction_hob": { |             "induction_hob": { | ||||||
|                 "name": "Piano cottura a induzione" |                 "name": "Piano cottura a induzione" | ||||||
|  |             }, | ||||||
|  |             "start_program": { | ||||||
|  |                 "name": "Programma Inizia" | ||||||
|  |             }, | ||||||
|  |             "stop_program": { | ||||||
|  |                 "name": "Programma Stop" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "climate": { | ||||||
|  |             "air_conditioner": { | ||||||
|  |                 "name": "Condizionatore" | ||||||
|  |             }, | ||||||
|  |             "fridge": { | ||||||
|  |                 "name": "Frigorifero", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Modalità del frigorifero", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Impostazione automatica", | ||||||
|  |                             "super_cool": "Super Cool", | ||||||
|  |                             "holiday": "Holiday", | ||||||
|  |                             "no_mode": "Nessuna modalità selezionata" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "freezer": { | ||||||
|  |                 "name": "Congelatore", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Modalità del congelatore", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Impostazione automatica", | ||||||
|  |                             "super_freeze": "Super Freeze", | ||||||
|  |                             "no_mode": "Nessuna modalità selezionata" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -225,7 +225,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Quick 20", |                     "hqd_quick_20": "Quick 20", | ||||||
|                     "hqd_quick_30": "Quick 30", |                     "hqd_quick_30": "Quick 30", | ||||||
|                     "hqd_quick_dry": "Quick dry", |                     "hqd_quick_dry": "Quick dry 30", | ||||||
|                     "hqd_quilt": "Quilts", |                     "hqd_quilt": "Quilts", | ||||||
|                     "hqd_refresh": "Opfrissen", |                     "hqd_refresh": "Opfrissen", | ||||||
|                     "hqd_school_uniform": "Schooluniform", |                     "hqd_school_uniform": "Schooluniform", | ||||||
| @ -307,6 +307,18 @@ | |||||||
|                     "xxl_load": "XXL Lading", |                     "xxl_load": "XXL Lading", | ||||||
|                     "zoom_59": "Zoom 59" |                     "zoom_59": "Zoom 59" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "room_temperature": { | ||||||
|  |                 "name": "Omgevingstemperatuur" | ||||||
|  |             }, | ||||||
|  |             "humidity": { | ||||||
|  |                 "name": "Luchtvochtigheid" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp": { | ||||||
|  |                 "name": "Vriezertemperatuur" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp": { | ||||||
|  |                 "name": "Koelkasttemperatuur" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "select": { |         "select": { | ||||||
| @ -397,6 +409,11 @@ | |||||||
|                     "silent": "Nacht", |                     "silent": "Nacht", | ||||||
|                     "silent_care": "Silent Care", |                     "silent_care": "Silent Care", | ||||||
|                     "smart_ai": "Smart AI", |                     "smart_ai": "Smart AI", | ||||||
|  |                     "smart_ai_pro": "Smart AI Pro", | ||||||
|  |                     "smart_ai_pro_soil": "Smart AI Pro", | ||||||
|  |                     "smart_ai_rapid": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_soil": "Smart AI", | ||||||
|                     "special": "speciaal", |                     "special": "speciaal", | ||||||
|                     "special_pw_prz": "speciaal", |                     "special_pw_prz": "speciaal", | ||||||
|                     "steam": "Stoom 75°C", |                     "steam": "Stoom 75°C", | ||||||
| @ -453,11 +470,12 @@ | |||||||
|             "programs_ov": { |             "programs_ov": { | ||||||
|                 "state": { |                 "state": { | ||||||
|                     "bakery": "Pasta en bakkersproducten", |                     "bakery": "Pasta en bakkersproducten", | ||||||
|                     "bakery_steam": "Stoomgebakken brood", |                     "bakery_steam": "Oven stomen", | ||||||
|                     "bottom_heating": "Bodemverwarming", |                     "bottom_heating": "Bodemverwarming", | ||||||
|                     "bottom_heating_fan": "Bodemverwarming + Ventilator", |                     "bottom_heating_fan": "Bodemverwarming + Ventilator", | ||||||
|                     "bread": "Brood", |                     "bread": "Brood", | ||||||
|                     "bread_steam": "Stoomgebakken pasteien", |                     "bread_steam": "Stoomgebakken brood", | ||||||
|  |                     "combi": "Combi", | ||||||
|                     "convection_fan": "Met ventilator", |                     "convection_fan": "Met ventilator", | ||||||
|                     "convection_fan_turnspit": "Convectie + ventilator + draaispit", |                     "convection_fan_turnspit": "Convectie + ventilator + draaispit", | ||||||
|                     "conventional": "Conventioneel", |                     "conventional": "Conventioneel", | ||||||
| @ -476,12 +494,12 @@ | |||||||
|                     "leavening": "Gisting", |                     "leavening": "Gisting", | ||||||
|                     "low_temp_cooking": "Bereiding op lage temperatuur", |                     "low_temp_cooking": "Bereiding op lage temperatuur", | ||||||
|                     "low_temp_cooking_fish": "Bereiding op lage temperatuur – Vis", |                     "low_temp_cooking_fish": "Bereiding op lage temperatuur – Vis", | ||||||
|                     "low_temp_cooking_fish_steam": "Stomen bij lage temperatuur – Vis", |                     "low_temp_cooking_fish_steam": "Bereiding op lage temperatuur – Gestoomde vis", | ||||||
|                     "low_temp_cooking_meat": "Bereiding op lage temperatuur – Vlees", |                     "low_temp_cooking_meat": "Bereiding op lage temperatuur – Vlees", | ||||||
|                     "low_temp_cooking_meat_steam": "Stomen bij lage temperatuur – Vlees", |                     "low_temp_cooking_meat_steam": "Bereiding op lage temperatuur – Gestoomd vlees", | ||||||
|                     "low_temp_cooking_steam": "Stomen bij lage temperatuur", |                     "low_temp_cooking_steam": "Stomen bij lage temperatuur", | ||||||
|                     "meat": "Vlees", |                     "meat": "Vlees", | ||||||
|                     "meat_steam": "Gestoomd vlees", |                     "meat_steam": "Vlees stomen", | ||||||
|                     "multi_level": "Multi-level", |                     "multi_level": "Multi-level", | ||||||
|                     "paella": "Paella", |                     "paella": "Paella", | ||||||
|                     "pasta_and_bakery": "Pasta en bakkersproducten", |                     "pasta_and_bakery": "Pasta en bakkersproducten", | ||||||
| @ -490,7 +508,7 @@ | |||||||
|                     "pyrolysis_plus": "Pyrolyse +", |                     "pyrolysis_plus": "Pyrolyse +", | ||||||
|                     "red_meat": "Rood vlees", |                     "red_meat": "Rood vlees", | ||||||
|                     "red_meat_steam": "Gestoomd rood vlees", |                     "red_meat_steam": "Gestoomd rood vlees", | ||||||
|                     "regenerate": "Regeneratie", |                     "regenerate": "Regenereren", | ||||||
|                     "soft_plus": "Soft+", |                     "soft_plus": "Soft+", | ||||||
|                     "super_grill": "Super grill", |                     "super_grill": "Super grill", | ||||||
|                     "tailor_bake": "Tailor bake", |                     "tailor_bake": "Tailor bake", | ||||||
| @ -499,7 +517,7 @@ | |||||||
|                     "vegetables": "Groenten", |                     "vegetables": "Groenten", | ||||||
|                     "vegetables_cata": "Groenten", |                     "vegetables_cata": "Groenten", | ||||||
|                     "vegetables_pyro": "Groenten", |                     "vegetables_pyro": "Groenten", | ||||||
|                     "water_discharge": "Waterafvoer", |                     "water_discharge": "Afvoer van water", | ||||||
|                     "white_meat": "Wit vlees", |                     "white_meat": "Wit vlees", | ||||||
|                     "white_meat_steam": "Gestoomd wit vlees" |                     "white_meat_steam": "Gestoomd wit vlees" | ||||||
|                 }, |                 }, | ||||||
| @ -558,7 +576,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Quick 20", |                     "hqd_quick_20": "Quick 20", | ||||||
|                     "hqd_quick_30": "Quick 30", |                     "hqd_quick_30": "Quick 30", | ||||||
|                     "hqd_quick_dry": "Quick dry", |                     "hqd_quick_dry": "Quick dry 30", | ||||||
|                     "hqd_quilt": "Quilts", |                     "hqd_quilt": "Quilts", | ||||||
|                     "hqd_refresh": "Opfrissen", |                     "hqd_refresh": "Opfrissen", | ||||||
|                     "hqd_school_uniform": "Schooluniform", |                     "hqd_school_uniform": "Schooluniform", | ||||||
| @ -1013,6 +1031,40 @@ | |||||||
|                     "iot_uv_and_fan": "UV + Hetelucht", |                     "iot_uv_and_fan": "UV + Hetelucht", | ||||||
|                     "iot_uv_and_heat": "UV + Warmte" |                     "iot_uv_and_heat": "UV + Warmte" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "programs_ref": { | ||||||
|  |                 "state": { | ||||||
|  |                     "auto_set": "AUTO-SET", | ||||||
|  |                     "cheese": "Kaas", | ||||||
|  |                     "chiller": "Quick cool", | ||||||
|  |                     "cold_drinks": "Soft chill", | ||||||
|  |                     "eco": "Eco", | ||||||
|  |                     "eco_mode": "Eco-modus", | ||||||
|  |                     "fruits_and_veg": "Fruit&Veg", | ||||||
|  |                     "fruit_and_veg": "Fruit & Veg", | ||||||
|  |                     "holiday": "HOLIDAY", | ||||||
|  |                     "keep_fresh": "0° Fresh", | ||||||
|  |                     "no_mode_selected": "Geen modus geselecteerd", | ||||||
|  |                     "quick_cool": "QUICK KOEL", | ||||||
|  |                     "sea_food": "Ready to cook meal", | ||||||
|  |                     "soft_frozen": "Soft freezing", | ||||||
|  |                     "super_cool": "SUPER COOL", | ||||||
|  |                     "super_freeze": "SUPER FREEZE", | ||||||
|  |                     "tea": "Cold drinks or Beverages", | ||||||
|  |                     "zero_fresh": "0° Fresh" | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "remaining_time": { | ||||||
|  |                 "name": "Resterende tijd" | ||||||
|  |             }, | ||||||
|  |             "ref_zones": { | ||||||
|  |                 "state": { | ||||||
|  |                     "fridge": "Koelkast", | ||||||
|  |                     "freezer": "Vriezer", | ||||||
|  |                     "vtroom1": "My Zone", | ||||||
|  |                     "fridge_freezer": "Koelkast & Vriezer" | ||||||
|  |                 }, | ||||||
|  |                 "name": "Zone" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "switch": { |         "switch": { | ||||||
| @ -1105,6 +1157,24 @@ | |||||||
|             }, |             }, | ||||||
|             "good_night": { |             "good_night": { | ||||||
|                 "name": "Goede nacht" |                 "name": "Goede nacht" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_softener": { | ||||||
|  |                 "name": "Automatisch doseren Wasverzachter" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_detergent": { | ||||||
|  |                 "name": "Automatisch doseren Wasmiddel" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Automatisch instellen" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "refrigerator": { | ||||||
|  |                 "name": "Koelkast" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "binary_sensor": { |         "binary_sensor": { | ||||||
| @ -1182,6 +1252,30 @@ | |||||||
|             }, |             }, | ||||||
|             "auto_dose": { |             "auto_dose": { | ||||||
|                 "name": "Automatisch doseren" |                 "name": "Automatisch doseren" | ||||||
|  |             }, | ||||||
|  |             "buzzer": { | ||||||
|  |                 "name": "Bel voor einde cyclus" | ||||||
|  |             }, | ||||||
|  |             "holiday_mode": { | ||||||
|  |                 "name": "Holiday-modus (Vakantie)" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Automatisch instellen" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "freezer_door": { | ||||||
|  |                 "name": "Deur open Vriezer" | ||||||
|  |             }, | ||||||
|  |             "fridge_door": { | ||||||
|  |                 "name": "Deur open Koelkast" | ||||||
|  |             }, | ||||||
|  |             "filter_replacement": { | ||||||
|  |                 "name": "Filter vervangen" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "number": { |         "number": { | ||||||
| @ -1214,11 +1308,55 @@ | |||||||
|             }, |             }, | ||||||
|             "steam_level": { |             "steam_level": { | ||||||
|                 "name": "Stoomniveau" |                 "name": "Stoomniveau" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp_sel": { | ||||||
|  |                 "name": "Doeltemperatuur Vriezer" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp_sel": { | ||||||
|  |                 "name": "Doeltemperatuur Koelkast" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "button": { |         "button": { | ||||||
|             "induction_hob": { |             "induction_hob": { | ||||||
|                 "name": "Inductiekookplaat" |                 "name": "Inductiekookplaat" | ||||||
|  |             }, | ||||||
|  |             "start_program": { | ||||||
|  |                 "name": "Programma Start" | ||||||
|  |             }, | ||||||
|  |             "stop_program": { | ||||||
|  |                 "name": "Programma Stoppen" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "climate": { | ||||||
|  |             "air_conditioner": { | ||||||
|  |                 "name": "Airconditioner" | ||||||
|  |             }, | ||||||
|  |             "fridge": { | ||||||
|  |                 "name": "Koelkast", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Koelkastmodi", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Automatisch instellen", | ||||||
|  |                             "super_cool": "Super Cool", | ||||||
|  |                             "holiday": "Holiday", | ||||||
|  |                             "no_mode": "Geen modus geselecteerd" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "freezer": { | ||||||
|  |                 "name": "Vriezer", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Vriezermodi", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Automatisch instellen", | ||||||
|  |                             "super_freeze": "Super Freeze", | ||||||
|  |                             "no_mode": "Geen modus geselecteerd" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -225,7 +225,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Szybkie 20", |                     "hqd_quick_20": "Szybkie 20", | ||||||
|                     "hqd_quick_30": "Szybkie 30", |                     "hqd_quick_30": "Szybkie 30", | ||||||
|                     "hqd_quick_dry": "Szybkoschnące", |                     "hqd_quick_dry": "Szybkoschnące 30", | ||||||
|                     "hqd_quilt": "Kołdry", |                     "hqd_quilt": "Kołdry", | ||||||
|                     "hqd_refresh": "Odświeżanie", |                     "hqd_refresh": "Odświeżanie", | ||||||
|                     "hqd_school_uniform": "Mundurek szkolny", |                     "hqd_school_uniform": "Mundurek szkolny", | ||||||
| @ -307,6 +307,18 @@ | |||||||
|                     "xxl_load": "XXL Load", |                     "xxl_load": "XXL Load", | ||||||
|                     "zoom_59": "Zoom 59" |                     "zoom_59": "Zoom 59" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "room_temperature": { | ||||||
|  |                 "name": "Temperatura pokojowa" | ||||||
|  |             }, | ||||||
|  |             "humidity": { | ||||||
|  |                 "name": "Wilgotność" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp": { | ||||||
|  |                 "name": "Temperatura zamrażarki" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp": { | ||||||
|  |                 "name": "Temperatura lodówki" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "select": { |         "select": { | ||||||
| @ -397,6 +409,11 @@ | |||||||
|                     "silent": "Nocny", |                     "silent": "Nocny", | ||||||
|                     "silent_care": "Silent Care", |                     "silent_care": "Silent Care", | ||||||
|                     "smart_ai": "Smart AI", |                     "smart_ai": "Smart AI", | ||||||
|  |                     "smart_ai_pro": "Smart AI Pro", | ||||||
|  |                     "smart_ai_pro_soil": "Smart AI Pro", | ||||||
|  |                     "smart_ai_rapid": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_soil": "Smart AI", | ||||||
|                     "special": "specjalne", |                     "special": "specjalne", | ||||||
|                     "special_pw_prz": "specjalne", |                     "special_pw_prz": "specjalne", | ||||||
|                     "steam": "Para 75°C", |                     "steam": "Para 75°C", | ||||||
| @ -453,11 +470,12 @@ | |||||||
|             "programs_ov": { |             "programs_ov": { | ||||||
|                 "state": { |                 "state": { | ||||||
|                     "bakery": "Makaron i Piekarnia", |                     "bakery": "Makaron i Piekarnia", | ||||||
|                     "bakery_steam": "Chleb pieczony na parze", |                     "bakery_steam": "Para z piekarnika", | ||||||
|                     "bottom_heating": "Grzanie dolne", |                     "bottom_heating": "Grzanie dolne", | ||||||
|                     "bottom_heating_fan": "Grzanie Dolne + Termoobieg", |                     "bottom_heating_fan": "Grzanie Dolne + Termoobieg", | ||||||
|                     "bread": "Chleb", |                     "bread": "Chleb", | ||||||
|                     "bread_steam": "Ciasteczka pieczone na parze", |                     "bread_steam": "Chleb pieczony na parze", | ||||||
|  |                     "combi": "Kombi", | ||||||
|                     "convection_fan": "Termoobieg", |                     "convection_fan": "Termoobieg", | ||||||
|                     "convection_fan_turnspit": "Termoobieg + Fan + Rożen", |                     "convection_fan_turnspit": "Termoobieg + Fan + Rożen", | ||||||
|                     "conventional": "Konwencjonalny", |                     "conventional": "Konwencjonalny", | ||||||
| @ -465,7 +483,7 @@ | |||||||
|                     "defrost": "Rozmrażanie", |                     "defrost": "Rozmrażanie", | ||||||
|                     "descaling": "Odkamienianie", |                     "descaling": "Odkamienianie", | ||||||
|                     "fish": "Ryby", |                     "fish": "Ryby", | ||||||
|                     "fish_steam": "Ryba gotowana na parze", |                     "fish_steam": "Ryba na parze", | ||||||
|                     "grill_cata": "Grill", |                     "grill_cata": "Grill", | ||||||
|                     "grill_fan_cata": "Grill + termoobieg", |                     "grill_fan_cata": "Grill + termoobieg", | ||||||
|                     "grill_fan_pyro": "Grill + termoobieg", |                     "grill_fan_pyro": "Grill + termoobieg", | ||||||
| @ -476,12 +494,12 @@ | |||||||
|                     "leavening": "Zaczyn", |                     "leavening": "Zaczyn", | ||||||
|                     "low_temp_cooking": "Pieczenie w niskiej temperaturze", |                     "low_temp_cooking": "Pieczenie w niskiej temperaturze", | ||||||
|                     "low_temp_cooking_fish": "Pieczenie w niskiej temperaturze - ryby", |                     "low_temp_cooking_fish": "Pieczenie w niskiej temperaturze - ryby", | ||||||
|                     "low_temp_cooking_fish_steam": "Gotowanie na parze w niskiej temperaturze — ryby", |                     "low_temp_cooking_fish_steam": "Gotowanie w niskiej temperaturze - ryba gotowana na parze", | ||||||
|                     "low_temp_cooking_meat": "Pieczenie w niskiej temperaturze - mięso", |                     "low_temp_cooking_meat": "Pieczenie w niskiej temperaturze - mięso", | ||||||
|                     "low_temp_cooking_meat_steam": "Gotowanie na parze w niskiej temperaturze — mięso", |                     "low_temp_cooking_meat_steam": "Gotowanie w niskiej temperaturze — mięso gotowane na parze", | ||||||
|                     "low_temp_cooking_steam": "Gotowanie na parze w niskiej temperaturze", |                     "low_temp_cooking_steam": "Gotowanie na parze w niskiej temperaturze", | ||||||
|                     "meat": "Mięso", |                     "meat": "Mięso", | ||||||
|                     "meat_steam": "Mięso gotowane na parze", |                     "meat_steam": "Mięso na parze", | ||||||
|                     "multi_level": "Wielopoziomowo", |                     "multi_level": "Wielopoziomowo", | ||||||
|                     "paella": "Paella", |                     "paella": "Paella", | ||||||
|                     "pasta_and_bakery": "Makaron i Piekarnia", |                     "pasta_and_bakery": "Makaron i Piekarnia", | ||||||
| @ -489,8 +507,8 @@ | |||||||
|                     "pyrolysis": "Pyroliza", |                     "pyrolysis": "Pyroliza", | ||||||
|                     "pyrolysis_plus": "Pyroliza +", |                     "pyrolysis_plus": "Pyroliza +", | ||||||
|                     "red_meat": "Czerwone mięso", |                     "red_meat": "Czerwone mięso", | ||||||
|                     "red_meat_steam": "Czerwone mięso gotowane na parze", |                     "red_meat_steam": "Czerwone mięso na parze", | ||||||
|                     "regenerate": "Regeneracja", |                     "regenerate": "Podgrzewanie", | ||||||
|                     "soft_plus": "Soft+", |                     "soft_plus": "Soft+", | ||||||
|                     "super_grill": "Super Grill", |                     "super_grill": "Super Grill", | ||||||
|                     "tailor_bake": "Tailor bake", |                     "tailor_bake": "Tailor bake", | ||||||
| @ -499,7 +517,7 @@ | |||||||
|                     "vegetables": "Warzywa", |                     "vegetables": "Warzywa", | ||||||
|                     "vegetables_cata": "Warzywa", |                     "vegetables_cata": "Warzywa", | ||||||
|                     "vegetables_pyro": "Warzywa", |                     "vegetables_pyro": "Warzywa", | ||||||
|                     "water_discharge": "Odpływ wody", |                     "water_discharge": "Odprowadzanie wody", | ||||||
|                     "white_meat": "Białe mięso", |                     "white_meat": "Białe mięso", | ||||||
|                     "white_meat_steam": "Białe mięso gotowane na parze" |                     "white_meat_steam": "Białe mięso gotowane na parze" | ||||||
|                 }, |                 }, | ||||||
| @ -558,7 +576,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Szybkie 20", |                     "hqd_quick_20": "Szybkie 20", | ||||||
|                     "hqd_quick_30": "Szybkie 30", |                     "hqd_quick_30": "Szybkie 30", | ||||||
|                     "hqd_quick_dry": "Szybkoschnące", |                     "hqd_quick_dry": "Szybkoschnące 30", | ||||||
|                     "hqd_quilt": "Kołdry", |                     "hqd_quilt": "Kołdry", | ||||||
|                     "hqd_refresh": "Odświeżanie", |                     "hqd_refresh": "Odświeżanie", | ||||||
|                     "hqd_school_uniform": "Mundurek szkolny", |                     "hqd_school_uniform": "Mundurek szkolny", | ||||||
| @ -1013,6 +1031,40 @@ | |||||||
|                     "iot_uv_and_fan": "UV + wentylator", |                     "iot_uv_and_fan": "UV + wentylator", | ||||||
|                     "iot_uv_and_heat": "UV + podgrzewanie" |                     "iot_uv_and_heat": "UV + podgrzewanie" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "programs_ref": { | ||||||
|  |                 "state": { | ||||||
|  |                     "auto_set": "AUTO-SET", | ||||||
|  |                     "cheese": "Ser", | ||||||
|  |                     "chiller": "Quick cool", | ||||||
|  |                     "cold_drinks": "Soft chill", | ||||||
|  |                     "eco": "Eco", | ||||||
|  |                     "eco_mode": "Tryb Eco", | ||||||
|  |                     "fruits_and_veg": "Fruit&Veg", | ||||||
|  |                     "fruit_and_veg": "Fruit & Veg", | ||||||
|  |                     "holiday": "HOLIDAY", | ||||||
|  |                     "keep_fresh": "0° Fresh", | ||||||
|  |                     "no_mode_selected": "Nie wybrano żadnego trybu", | ||||||
|  |                     "quick_cool": "QUICK COOL", | ||||||
|  |                     "sea_food": "Ready to cook meal", | ||||||
|  |                     "soft_frozen": "Soft freezing", | ||||||
|  |                     "super_cool": "SUPER COOL", | ||||||
|  |                     "super_freeze": "SUPER FREEZE", | ||||||
|  |                     "tea": "Cold drinks or Beverages", | ||||||
|  |                     "zero_fresh": "0° Fresh" | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "remaining_time": { | ||||||
|  |                 "name": "Pozostały czas" | ||||||
|  |             }, | ||||||
|  |             "ref_zones": { | ||||||
|  |                 "state": { | ||||||
|  |                     "fridge": "Lodówka", | ||||||
|  |                     "freezer": "Zamrażarka", | ||||||
|  |                     "vtroom1": "My Zone", | ||||||
|  |                     "fridge_freezer": "Lodówka & Zamrażarka" | ||||||
|  |                 }, | ||||||
|  |                 "name": "Strefa" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "switch": { |         "switch": { | ||||||
| @ -1105,6 +1157,24 @@ | |||||||
|             }, |             }, | ||||||
|             "good_night": { |             "good_night": { | ||||||
|                 "name": "Dobranoc" |                 "name": "Dobranoc" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_softener": { | ||||||
|  |                 "name": "Automatyczne dozowanie Środek zmiękczający" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_detergent": { | ||||||
|  |                 "name": "Automatyczne dozowanie Detergent" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Ustawianie automatyczne" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "refrigerator": { | ||||||
|  |                 "name": "Lodówka" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "binary_sensor": { |         "binary_sensor": { | ||||||
| @ -1182,6 +1252,30 @@ | |||||||
|             }, |             }, | ||||||
|             "auto_dose": { |             "auto_dose": { | ||||||
|                 "name": "Automatyczne dozowanie" |                 "name": "Automatyczne dozowanie" | ||||||
|  |             }, | ||||||
|  |             "buzzer": { | ||||||
|  |                 "name": "Sygnał dźwiękowy końca cyklu" | ||||||
|  |             }, | ||||||
|  |             "holiday_mode": { | ||||||
|  |                 "name": "Tryb Holiday" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Ustawianie automatyczne" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "freezer_door": { | ||||||
|  |                 "name": "Drzwi otwarte Zamrażarka" | ||||||
|  |             }, | ||||||
|  |             "fridge_door": { | ||||||
|  |                 "name": "Drzwi otwarte Lodówka" | ||||||
|  |             }, | ||||||
|  |             "filter_replacement": { | ||||||
|  |                 "name": "Wymiana filtra" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "number": { |         "number": { | ||||||
| @ -1214,11 +1308,55 @@ | |||||||
|             }, |             }, | ||||||
|             "steam_level": { |             "steam_level": { | ||||||
|                 "name": "Poziom pary" |                 "name": "Poziom pary" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp_sel": { | ||||||
|  |                 "name": "Temperatura docelowa Zamrażarka" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp_sel": { | ||||||
|  |                 "name": "Temperatura docelowa Lodówka" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "button": { |         "button": { | ||||||
|             "induction_hob": { |             "induction_hob": { | ||||||
|                 "name": "Płyta indukcyjna" |                 "name": "Płyta indukcyjna" | ||||||
|  |             }, | ||||||
|  |             "start_program": { | ||||||
|  |                 "name": "Program Początek" | ||||||
|  |             }, | ||||||
|  |             "stop_program": { | ||||||
|  |                 "name": "Program Zatrzymaj" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "climate": { | ||||||
|  |             "air_conditioner": { | ||||||
|  |                 "name": "Klimatyzator" | ||||||
|  |             }, | ||||||
|  |             "fridge": { | ||||||
|  |                 "name": "Lodówka", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Tryby pracy lodówki", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Ustawianie automatyczne", | ||||||
|  |                             "super_cool": "Super Cool", | ||||||
|  |                             "holiday": "Holiday", | ||||||
|  |                             "no_mode": "Nie wybrano żadnego trybu" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "freezer": { | ||||||
|  |                 "name": "Zamrażarka", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Tryby pracy zamrażarki", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Ustawianie automatyczne", | ||||||
|  |                             "super_freeze": "Super Freeze", | ||||||
|  |                             "no_mode": "Nie wybrano żadnego trybu" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -225,7 +225,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Rápido 20", |                     "hqd_quick_20": "Rápido 20", | ||||||
|                     "hqd_quick_30": "Rápido 30", |                     "hqd_quick_30": "Rápido 30", | ||||||
|                     "hqd_quick_dry": "Secagem rápida", |                     "hqd_quick_dry": "Secagem rápida 30", | ||||||
|                     "hqd_quilt": "Colchas", |                     "hqd_quilt": "Colchas", | ||||||
|                     "hqd_refresh": "Refrescar", |                     "hqd_refresh": "Refrescar", | ||||||
|                     "hqd_school_uniform": "Farda da escola", |                     "hqd_school_uniform": "Farda da escola", | ||||||
| @ -307,6 +307,18 @@ | |||||||
|                     "xxl_load": "Carga XXL", |                     "xxl_load": "Carga XXL", | ||||||
|                     "zoom_59": "Zoom 59" |                     "zoom_59": "Zoom 59" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "room_temperature": { | ||||||
|  |                 "name": "Temperatura ambiente" | ||||||
|  |             }, | ||||||
|  |             "humidity": { | ||||||
|  |                 "name": "Humidade" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp": { | ||||||
|  |                 "name": "Temperatura do congelador" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp": { | ||||||
|  |                 "name": "Temperatura do frigorífico" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "select": { |         "select": { | ||||||
| @ -397,6 +409,11 @@ | |||||||
|                     "silent": "Noite", |                     "silent": "Noite", | ||||||
|                     "silent_care": "Silent Care", |                     "silent_care": "Silent Care", | ||||||
|                     "smart_ai": "Smart AI", |                     "smart_ai": "Smart AI", | ||||||
|  |                     "smart_ai_pro": "Smart AI Pro", | ||||||
|  |                     "smart_ai_pro_soil": "Smart AI Pro", | ||||||
|  |                     "smart_ai_rapid": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_soil": "Smart AI", | ||||||
|                     "special": "especial", |                     "special": "especial", | ||||||
|                     "special_pw_prz": "especial", |                     "special_pw_prz": "especial", | ||||||
|                     "steam": "Vapor 75 °C", |                     "steam": "Vapor 75 °C", | ||||||
| @ -453,19 +470,20 @@ | |||||||
|             "programs_ov": { |             "programs_ov": { | ||||||
|                 "state": { |                 "state": { | ||||||
|                     "bakery": "Massas e bolos", |                     "bakery": "Massas e bolos", | ||||||
|                     "bakery_steam": "Pão cozido a vapor", |                     "bakery_steam": "Vapor do forno", | ||||||
|                     "bottom_heating": "Aquecimento inferior", |                     "bottom_heating": "Aquecimento inferior", | ||||||
|                     "bottom_heating_fan": "Aquecimento Inferior + Ventilação", |                     "bottom_heating_fan": "Aquecimento Inferior + Ventilação", | ||||||
|                     "bread": "Pão", |                     "bread": "Pão", | ||||||
|                     "bread_steam": "Pastelaria cozida a vapor", |                     "bread_steam": "Pão no vapor", | ||||||
|  |                     "combi": "Combi", | ||||||
|                     "convection_fan": "Convecção + Ventilador", |                     "convection_fan": "Convecção + Ventilador", | ||||||
|                     "convection_fan_turnspit": "Convecção + Ventilador + Espeto giratório", |                     "convection_fan_turnspit": "Espeto com convecção ventilada", | ||||||
|                     "conventional": "Estático", |                     "conventional": "Estático", | ||||||
|                     "conventional_turnspit": "Convecção + Espeto giratório", |                     "conventional_turnspit": "Espeto convencional", | ||||||
|                     "defrost": "Descongelar", |                     "defrost": "Descongelar", | ||||||
|                     "descaling": "Descalcificação", |                     "descaling": "Descalcificação", | ||||||
|                     "fish": "Peixe", |                     "fish": "Peixe", | ||||||
|                     "fish_steam": "Peixe cozinhado a vapor", |                     "fish_steam": "Peixe no vapor", | ||||||
|                     "grill_cata": "Grelhar", |                     "grill_cata": "Grelhar", | ||||||
|                     "grill_fan_cata": "Grelhar com ventilação", |                     "grill_fan_cata": "Grelhar com ventilação", | ||||||
|                     "grill_fan_pyro": "Grelhar + Ventilação", |                     "grill_fan_pyro": "Grelhar + Ventilação", | ||||||
| @ -474,23 +492,23 @@ | |||||||
|                     "iot_bread": "Pão", |                     "iot_bread": "Pão", | ||||||
|                     "iot_h20_clean": "h2O clean", |                     "iot_h20_clean": "h2O clean", | ||||||
|                     "leavening": "Levedação", |                     "leavening": "Levedação", | ||||||
|                     "low_temp_cooking": "Cozinhar a baixa temperatura", |                     "low_temp_cooking": "Cozimento em baixa temperatura", | ||||||
|                     "low_temp_cooking_fish": "Cozinhar carne a baixa temperatura - Peixe", |                     "low_temp_cooking_fish": "Cozimento em baixa temperatura Peixe", | ||||||
|                     "low_temp_cooking_fish_steam": "Cozedura a vapor a baixa temperatura - Peixe", |                     "low_temp_cooking_fish_steam": "Cozimento em baixa temperatura Peixe a vapor", | ||||||
|                     "low_temp_cooking_meat": "Cozinhar carne a baixa temperatura - Carne", |                     "low_temp_cooking_meat": "Cozimento em baixa temperatura Carne", | ||||||
|                     "low_temp_cooking_meat_steam": "Cozedura a vapor a baixa temperatura - Carne", |                     "low_temp_cooking_meat_steam": "Cozimento em baixa temperatura Carne no vapor", | ||||||
|                     "low_temp_cooking_steam": "Cozedura a vapor a baixa temperatura", |                     "low_temp_cooking_steam": "Cozimento em baixa temperatura no vapor", | ||||||
|                     "meat": "Carne", |                     "meat": "Carne", | ||||||
|                     "meat_steam": "Carne cozinhada a vapor", |                     "meat_steam": "Vapor de carne", | ||||||
|                     "multi_level": "Multinível", |                     "multi_level": "Multinível", | ||||||
|                     "paella": "Paella", |                     "paella": "Paella", | ||||||
|                     "pasta_and_bakery": "Massas e bolos", |                     "pasta_and_bakery": "Massas e bolos", | ||||||
|                     "pizza": "Pizza", |                     "pizza": "Pizza", | ||||||
|                     "pyrolysis": "Pirólise", |                     "pyrolysis": "Pirólise", | ||||||
|                     "pyrolysis_plus": "Pirólise +", |                     "pyrolysis_plus": "Pirólise +", | ||||||
|                     "red_meat": "Carne vermelha", |                     "red_meat": "Carne Vermelha", | ||||||
|                     "red_meat_steam": "Carne vermelha cozinhada a vapor", |                     "red_meat_steam": "Carne Vermelha no vapor", | ||||||
|                     "regenerate": "Regeneração", |                     "regenerate": "Regenerar", | ||||||
|                     "soft_plus": "Soft+", |                     "soft_plus": "Soft+", | ||||||
|                     "super_grill": "Super Grelhador", |                     "super_grill": "Super Grelhador", | ||||||
|                     "tailor_bake": "Tailor bake", |                     "tailor_bake": "Tailor bake", | ||||||
| @ -499,9 +517,9 @@ | |||||||
|                     "vegetables": "Vegetais", |                     "vegetables": "Vegetais", | ||||||
|                     "vegetables_cata": "Legumes", |                     "vegetables_cata": "Legumes", | ||||||
|                     "vegetables_pyro": "Legumes", |                     "vegetables_pyro": "Legumes", | ||||||
|                     "water_discharge": "Drenagem de água", |                     "water_discharge": "Descarga d'água", | ||||||
|                     "white_meat": "Carne branca", |                     "white_meat": "Carne Branca", | ||||||
|                     "white_meat_steam": "Carne branca cozinhada a vapor" |                     "white_meat_steam": "Carne Branca no vapor" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Programa" |                 "name": "Programa" | ||||||
|             }, |             }, | ||||||
| @ -558,7 +576,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Rápido 20", |                     "hqd_quick_20": "Rápido 20", | ||||||
|                     "hqd_quick_30": "Rápido 30", |                     "hqd_quick_30": "Rápido 30", | ||||||
|                     "hqd_quick_dry": "Secagem rápida", |                     "hqd_quick_dry": "Secagem rápida 30", | ||||||
|                     "hqd_quilt": "Colchas", |                     "hqd_quilt": "Colchas", | ||||||
|                     "hqd_refresh": "Refrescar", |                     "hqd_refresh": "Refrescar", | ||||||
|                     "hqd_school_uniform": "Farda da escola", |                     "hqd_school_uniform": "Farda da escola", | ||||||
| @ -1013,6 +1031,40 @@ | |||||||
|                     "iot_uv_and_fan": "UV + Ventilação", |                     "iot_uv_and_fan": "UV + Ventilação", | ||||||
|                     "iot_uv_and_heat": "UV + Calor" |                     "iot_uv_and_heat": "UV + Calor" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "programs_ref": { | ||||||
|  |                 "state": { | ||||||
|  |                     "auto_set": "AUTO-SET", | ||||||
|  |                     "cheese": "Queijo", | ||||||
|  |                     "chiller": "Quick cool", | ||||||
|  |                     "cold_drinks": "Soft chill", | ||||||
|  |                     "eco": "Eco", | ||||||
|  |                     "eco_mode": "Modo Eco", | ||||||
|  |                     "fruits_and_veg": "Fruit&Veg", | ||||||
|  |                     "fruit_and_veg": "Fruit & Veg", | ||||||
|  |                     "holiday": "HOLIDAY", | ||||||
|  |                     "keep_fresh": "0° Fresh", | ||||||
|  |                     "no_mode_selected": "Nenhum modo selecionado", | ||||||
|  |                     "quick_cool": "QUICK COOL", | ||||||
|  |                     "sea_food": "Ready to cook meal", | ||||||
|  |                     "soft_frozen": "Soft freezing", | ||||||
|  |                     "super_cool": "SUPER COOL", | ||||||
|  |                     "super_freeze": "SUPER FREEZE", | ||||||
|  |                     "tea": "Cold drinks or Beverages", | ||||||
|  |                     "zero_fresh": "0° Fresh" | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "remaining_time": { | ||||||
|  |                 "name": "Tempo restante" | ||||||
|  |             }, | ||||||
|  |             "ref_zones": { | ||||||
|  |                 "state": { | ||||||
|  |                     "fridge": "Frigorífico", | ||||||
|  |                     "freezer": "Congelador", | ||||||
|  |                     "vtroom1": "My Zone", | ||||||
|  |                     "fridge_freezer": "Frigorífico & Congelador" | ||||||
|  |                 }, | ||||||
|  |                 "name": "Zona" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "switch": { |         "switch": { | ||||||
| @ -1105,6 +1157,24 @@ | |||||||
|             }, |             }, | ||||||
|             "good_night": { |             "good_night": { | ||||||
|                 "name": "Boa Noite" |                 "name": "Boa Noite" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_softener": { | ||||||
|  |                 "name": "Autodosagem Amaciador" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_detergent": { | ||||||
|  |                 "name": "Autodosagem Detergente" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Ajuste automático" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "refrigerator": { | ||||||
|  |                 "name": "Frigorífico" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "binary_sensor": { |         "binary_sensor": { | ||||||
| @ -1182,6 +1252,30 @@ | |||||||
|             }, |             }, | ||||||
|             "auto_dose": { |             "auto_dose": { | ||||||
|                 "name": "Autodosagem" |                 "name": "Autodosagem" | ||||||
|  |             }, | ||||||
|  |             "buzzer": { | ||||||
|  |                 "name": "Besouro de fim de ciclo" | ||||||
|  |             }, | ||||||
|  |             "holiday_mode": { | ||||||
|  |                 "name": "Modo Holiday" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Ajuste automático" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "freezer_door": { | ||||||
|  |                 "name": "Porta aberta Congelador" | ||||||
|  |             }, | ||||||
|  |             "fridge_door": { | ||||||
|  |                 "name": "Porta aberta Frigorífico" | ||||||
|  |             }, | ||||||
|  |             "filter_replacement": { | ||||||
|  |                 "name": "Substituição do filtro" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "number": { |         "number": { | ||||||
| @ -1214,11 +1308,55 @@ | |||||||
|             }, |             }, | ||||||
|             "steam_level": { |             "steam_level": { | ||||||
|                 "name": "Nível de vapor" |                 "name": "Nível de vapor" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp_sel": { | ||||||
|  |                 "name": "Temperatura alvo Congelador" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp_sel": { | ||||||
|  |                 "name": "Temperatura alvo Frigorífico" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "button": { |         "button": { | ||||||
|             "induction_hob": { |             "induction_hob": { | ||||||
|                 "name": "Placa de indução" |                 "name": "Placa de indução" | ||||||
|  |             }, | ||||||
|  |             "start_program": { | ||||||
|  |                 "name": "Programa Início" | ||||||
|  |             }, | ||||||
|  |             "stop_program": { | ||||||
|  |                 "name": "Programa Parar" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "climate": { | ||||||
|  |             "air_conditioner": { | ||||||
|  |                 "name": "Ar Condicionado" | ||||||
|  |             }, | ||||||
|  |             "fridge": { | ||||||
|  |                 "name": "Frigorífico", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Modos do frigorífico", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Ajuste automático", | ||||||
|  |                             "super_cool": "Super Cool", | ||||||
|  |                             "holiday": "Holiday", | ||||||
|  |                             "no_mode": "Nenhum modo selecionado" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "freezer": { | ||||||
|  |                 "name": "Congelador", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Modos do congelador", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Ajuste automático", | ||||||
|  |                             "super_freeze": "Super Freeze", | ||||||
|  |                             "no_mode": "Nenhum modo selecionado" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -225,7 +225,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Rapid 20", |                     "hqd_quick_20": "Rapid 20", | ||||||
|                     "hqd_quick_30": "Rapid 30", |                     "hqd_quick_30": "Rapid 30", | ||||||
|                     "hqd_quick_dry": "Uscare rapidă", |                     "hqd_quick_dry": "Uscare rapidă 30", | ||||||
|                     "hqd_quilt": "Pilote", |                     "hqd_quilt": "Pilote", | ||||||
|                     "hqd_refresh": "Reîmprospătare", |                     "hqd_refresh": "Reîmprospătare", | ||||||
|                     "hqd_school_uniform": "Uniformă școlară", |                     "hqd_school_uniform": "Uniformă școlară", | ||||||
| @ -307,6 +307,18 @@ | |||||||
|                     "xxl_load": "Încărcare XXL", |                     "xxl_load": "Încărcare XXL", | ||||||
|                     "zoom_59": "Zoom 59" |                     "zoom_59": "Zoom 59" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "room_temperature": { | ||||||
|  |                 "name": "Temperatura camerei" | ||||||
|  |             }, | ||||||
|  |             "humidity": { | ||||||
|  |                 "name": "Umiditate" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp": { | ||||||
|  |                 "name": "Temperatura congelatorului" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp": { | ||||||
|  |                 "name": "Temperatura frigiderului" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "select": { |         "select": { | ||||||
| @ -397,6 +409,11 @@ | |||||||
|                     "silent": "Noapte", |                     "silent": "Noapte", | ||||||
|                     "silent_care": "Silent Care", |                     "silent_care": "Silent Care", | ||||||
|                     "smart_ai": "Smart AI", |                     "smart_ai": "Smart AI", | ||||||
|  |                     "smart_ai_pro": "Smart AI Pro", | ||||||
|  |                     "smart_ai_pro_soil": "Smart AI Pro", | ||||||
|  |                     "smart_ai_rapid": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_soil": "Smart AI", | ||||||
|                     "special": "special", |                     "special": "special", | ||||||
|                     "special_pw_prz": "special", |                     "special_pw_prz": "special", | ||||||
|                     "steam": "Abur 75 °C", |                     "steam": "Abur 75 °C", | ||||||
| @ -452,12 +469,13 @@ | |||||||
|             }, |             }, | ||||||
|             "programs_ov": { |             "programs_ov": { | ||||||
|                 "state": { |                 "state": { | ||||||
|                     "bakery": "Paste și patiserie", |                     "bakery": "Paste și produse de patiserie", | ||||||
|                     "bakery_steam": "Pâine gătită la abur", |                     "bakery_steam": "În cuptor la abur", | ||||||
|                     "bottom_heating": "Încălzire de jos", |                     "bottom_heating": "Încălzire de jos", | ||||||
|                     "bottom_heating_fan": "Încălzire De Jos + Ventilație", |                     "bottom_heating_fan": "Încălzire De Jos + Ventilație", | ||||||
|                     "bread": "Pâine", |                     "bread": "Pâine", | ||||||
|                     "bread_steam": "Produse de patiserie gătite la abur", |                     "bread_steam": "Pâine gătită la abur", | ||||||
|  |                     "combi": "Combi", | ||||||
|                     "convection_fan": "Convecție și ventilație", |                     "convection_fan": "Convecție și ventilație", | ||||||
|                     "convection_fan_turnspit": "Convecție + Ventilator + Rotisor", |                     "convection_fan_turnspit": "Convecție + Ventilator + Rotisor", | ||||||
|                     "conventional": "Convențional", |                     "conventional": "Convențional", | ||||||
| @ -476,9 +494,9 @@ | |||||||
|                     "leavening": "Dospire", |                     "leavening": "Dospire", | ||||||
|                     "low_temp_cooking": "Gătire la temperatură scăzută", |                     "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": "Gătire la temperatură scăzută - Pește", | ||||||
|                     "low_temp_cooking_fish_steam": "Gătitul cu abur la temperatură scăzută - Pește", |                     "low_temp_cooking_fish_steam": "Gătitul la temperaturi scăzute - Pește gătit la abur", | ||||||
|                     "low_temp_cooking_meat": "Gătire la temperatură scăzută - Carne", |                     "low_temp_cooking_meat": "Gătire la temperatură scăzută - Carne", | ||||||
|                     "low_temp_cooking_meat_steam": "Gătitul la abur la temperatură scăzută - carne", |                     "low_temp_cooking_meat_steam": "Gătitul la temperaturi scăzute - Carne gătită la abur", | ||||||
|                     "low_temp_cooking_steam": "Gătitul la abur la temperaturi scăzute", |                     "low_temp_cooking_steam": "Gătitul la abur la temperaturi scăzute", | ||||||
|                     "meat": "Carne", |                     "meat": "Carne", | ||||||
|                     "meat_steam": "Carne gătită la abur", |                     "meat_steam": "Carne gătită la abur", | ||||||
| @ -499,7 +517,7 @@ | |||||||
|                     "vegetables": "Legume", |                     "vegetables": "Legume", | ||||||
|                     "vegetables_cata": "Legume", |                     "vegetables_cata": "Legume", | ||||||
|                     "vegetables_pyro": "Legume", |                     "vegetables_pyro": "Legume", | ||||||
|                     "water_discharge": "Scurgerea apei", |                     "water_discharge": "Evacuare apă", | ||||||
|                     "white_meat": "Carne albă", |                     "white_meat": "Carne albă", | ||||||
|                     "white_meat_steam": "Carne albă gătită la abur" |                     "white_meat_steam": "Carne albă gătită la abur" | ||||||
|                 }, |                 }, | ||||||
| @ -558,7 +576,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Rapid 20", |                     "hqd_quick_20": "Rapid 20", | ||||||
|                     "hqd_quick_30": "Rapid 30", |                     "hqd_quick_30": "Rapid 30", | ||||||
|                     "hqd_quick_dry": "Uscare rapidă", |                     "hqd_quick_dry": "Uscare rapidă 30", | ||||||
|                     "hqd_quilt": "Pilote", |                     "hqd_quilt": "Pilote", | ||||||
|                     "hqd_refresh": "Reîmprospătare", |                     "hqd_refresh": "Reîmprospătare", | ||||||
|                     "hqd_school_uniform": "Uniformă școlară", |                     "hqd_school_uniform": "Uniformă școlară", | ||||||
| @ -1013,6 +1031,40 @@ | |||||||
|                     "iot_uv_and_fan": "UV + ventilator", |                     "iot_uv_and_fan": "UV + ventilator", | ||||||
|                     "iot_uv_and_heat": "UV + încălzire" |                     "iot_uv_and_heat": "UV + încălzire" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "programs_ref": { | ||||||
|  |                 "state": { | ||||||
|  |                     "auto_set": "AUTO-SET (Setare automată)", | ||||||
|  |                     "cheese": "Brânză", | ||||||
|  |                     "chiller": "Quick cool", | ||||||
|  |                     "cold_drinks": "Soft chill", | ||||||
|  |                     "eco": "Eco", | ||||||
|  |                     "eco_mode": "Modul Eco", | ||||||
|  |                     "fruits_and_veg": "Fruit&Veg (Fructe și legume)", | ||||||
|  |                     "fruit_and_veg": "Fruit & Veg", | ||||||
|  |                     "holiday": "HOLIDAY (Perioadă de neutilizare)", | ||||||
|  |                     "keep_fresh": "0° Fresh", | ||||||
|  |                     "no_mode_selected": "Niciun mod selectat", | ||||||
|  |                     "quick_cool": "QUICK COOL", | ||||||
|  |                     "sea_food": "Ready to cook meal", | ||||||
|  |                     "soft_frozen": "Soft freezing", | ||||||
|  |                     "super_cool": "SUPER COOL (Răcire rapidă)", | ||||||
|  |                     "super_freeze": "SUPER FREEZE (Congelare rapidă)", | ||||||
|  |                     "tea": "Cold drinks or Beverages", | ||||||
|  |                     "zero_fresh": "0° Fresh" | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "remaining_time": { | ||||||
|  |                 "name": "Timp rămas" | ||||||
|  |             }, | ||||||
|  |             "ref_zones": { | ||||||
|  |                 "state": { | ||||||
|  |                     "fridge": "Frigider", | ||||||
|  |                     "freezer": "Congelator", | ||||||
|  |                     "vtroom1": "My Zone", | ||||||
|  |                     "fridge_freezer": "Frigider & Congelator" | ||||||
|  |                 }, | ||||||
|  |                 "name": "Zonă" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "switch": { |         "switch": { | ||||||
| @ -1105,6 +1157,24 @@ | |||||||
|             }, |             }, | ||||||
|             "good_night": { |             "good_night": { | ||||||
|                 "name": "Noapte bună" |                 "name": "Noapte bună" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_softener": { | ||||||
|  |                 "name": "Autodozare Balsam" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_detergent": { | ||||||
|  |                 "name": "Autodozare Detergent" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Setare automată" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "refrigerator": { | ||||||
|  |                 "name": "Frigider" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "binary_sensor": { |         "binary_sensor": { | ||||||
| @ -1182,6 +1252,30 @@ | |||||||
|             }, |             }, | ||||||
|             "auto_dose": { |             "auto_dose": { | ||||||
|                 "name": "Autodozare" |                 "name": "Autodozare" | ||||||
|  |             }, | ||||||
|  |             "buzzer": { | ||||||
|  |                 "name": "Sonerie la finalul ciclului" | ||||||
|  |             }, | ||||||
|  |             "holiday_mode": { | ||||||
|  |                 "name": "Mod Holiday" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Setare automată" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "freezer_door": { | ||||||
|  |                 "name": "Ușă deschisă Congelator" | ||||||
|  |             }, | ||||||
|  |             "fridge_door": { | ||||||
|  |                 "name": "Ușă deschisă Frigider" | ||||||
|  |             }, | ||||||
|  |             "filter_replacement": { | ||||||
|  |                 "name": "Înlocuirea filtrului" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "number": { |         "number": { | ||||||
| @ -1214,11 +1308,55 @@ | |||||||
|             }, |             }, | ||||||
|             "steam_level": { |             "steam_level": { | ||||||
|                 "name": "Nivel abur" |                 "name": "Nivel abur" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp_sel": { | ||||||
|  |                 "name": "Temperatură vizată Congelator" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp_sel": { | ||||||
|  |                 "name": "Temperatură vizată Frigider" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "button": { |         "button": { | ||||||
|             "induction_hob": { |             "induction_hob": { | ||||||
|                 "name": "Plita cu inducție" |                 "name": "Plita cu inducție" | ||||||
|  |             }, | ||||||
|  |             "start_program": { | ||||||
|  |                 "name": "Program Pornire" | ||||||
|  |             }, | ||||||
|  |             "stop_program": { | ||||||
|  |                 "name": "Program Oprire" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "climate": { | ||||||
|  |             "air_conditioner": { | ||||||
|  |                 "name": "Aer condiționat" | ||||||
|  |             }, | ||||||
|  |             "fridge": { | ||||||
|  |                 "name": "Frigider", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Moduri frigider", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Setare automată", | ||||||
|  |                             "super_cool": "Super Cool", | ||||||
|  |                             "holiday": "Holiday", | ||||||
|  |                             "no_mode": "Niciun mod selectat" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "freezer": { | ||||||
|  |                 "name": "Congelator", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Moduri de congelare", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Setare automată", | ||||||
|  |                             "super_freeze": "Super Freeze", | ||||||
|  |                             "no_mode": "Niciun mod selectat" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -225,7 +225,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Быстрая 20", |                     "hqd_quick_20": "Быстрая 20", | ||||||
|                     "hqd_quick_30": "Быстрая 30", |                     "hqd_quick_30": "Быстрая 30", | ||||||
|                     "hqd_quick_dry": "Быстрая сушка", |                     "hqd_quick_dry": "Быстрая сушка 30", | ||||||
|                     "hqd_quilt": "Стеганые одеяла", |                     "hqd_quilt": "Стеганые одеяла", | ||||||
|                     "hqd_refresh": "Освежение", |                     "hqd_refresh": "Освежение", | ||||||
|                     "hqd_school_uniform": "Школьная форма", |                     "hqd_school_uniform": "Школьная форма", | ||||||
| @ -307,6 +307,18 @@ | |||||||
|                     "xxl_load": "Объемные вещи", |                     "xxl_load": "Объемные вещи", | ||||||
|                     "zoom_59": "Zoom 59 (Зум 59)" |                     "zoom_59": "Zoom 59 (Зум 59)" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "room_temperature": { | ||||||
|  |                 "name": "Комнатная температура" | ||||||
|  |             }, | ||||||
|  |             "humidity": { | ||||||
|  |                 "name": "Влажность" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp": { | ||||||
|  |                 "name": "Температура в морозильном отделении" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp": { | ||||||
|  |                 "name": "Температура в холодильнике" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "select": { |         "select": { | ||||||
| @ -397,6 +409,11 @@ | |||||||
|                     "silent": "Ночь", |                     "silent": "Ночь", | ||||||
|                     "silent_care": "Silent Care", |                     "silent_care": "Silent Care", | ||||||
|                     "smart_ai": "Smart AI", |                     "smart_ai": "Smart AI", | ||||||
|  |                     "smart_ai_pro": "Smart AI Pro", | ||||||
|  |                     "smart_ai_pro_soil": "Smart AI Pro", | ||||||
|  |                     "smart_ai_rapid": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_soil": "Smart AI", | ||||||
|                     "special": "специальные", |                     "special": "специальные", | ||||||
|                     "special_pw_prz": "специальные", |                     "special_pw_prz": "специальные", | ||||||
|                     "steam": "пар 75°C", |                     "steam": "пар 75°C", | ||||||
| @ -453,11 +470,12 @@ | |||||||
|             "programs_ov": { |             "programs_ov": { | ||||||
|                 "state": { |                 "state": { | ||||||
|                     "bakery": "Паста и выпечка", |                     "bakery": "Паста и выпечка", | ||||||
|                     "bakery_steam": "Хлеб, испеченный на пару", |                     "bakery_steam": "Пар в духовом шкафу", | ||||||
|                     "bottom_heating": "Нижний элемент", |                     "bottom_heating": "Нижний элемент", | ||||||
|                     "bottom_heating_fan": "Нижний элемент + вентилятор", |                     "bottom_heating_fan": "Нижний элемент + вентилятор", | ||||||
|                     "bread": "Хлеб", |                     "bread": "Хлеб", | ||||||
|                     "bread_steam": "Выпечка, приготовленная на пару", |                     "bread_steam": "Хлеб, испеченный на пару", | ||||||
|  |                     "combi": "Combi", | ||||||
|                     "convection_fan": "Верхний и нижний нагрев с вентилятором", |                     "convection_fan": "Верхний и нижний нагрев с вентилятором", | ||||||
|                     "convection_fan_turnspit": "Обыкновенная духовка + вентилятор + вертел", |                     "convection_fan_turnspit": "Обыкновенная духовка + вентилятор + вертел", | ||||||
|                     "conventional": "Верхний и нижний нагрев", |                     "conventional": "Верхний и нижний нагрев", | ||||||
| @ -465,7 +483,7 @@ | |||||||
|                     "defrost": "Размораживание", |                     "defrost": "Размораживание", | ||||||
|                     "descaling": "Удаление накипи", |                     "descaling": "Удаление накипи", | ||||||
|                     "fish": "Рыба", |                     "fish": "Рыба", | ||||||
|                     "fish_steam": "Рыба, приготовленная на пару", |                     "fish_steam": "Рыба на пару", | ||||||
|                     "grill_cata": "Гриль", |                     "grill_cata": "Гриль", | ||||||
|                     "grill_fan_cata": "Гриль с вентилятором", |                     "grill_fan_cata": "Гриль с вентилятором", | ||||||
|                     "grill_fan_pyro": "Гриль + вентилятор", |                     "grill_fan_pyro": "Гриль + вентилятор", | ||||||
| @ -476,12 +494,12 @@ | |||||||
|                     "leavening": "Заквашивание", |                     "leavening": "Заквашивание", | ||||||
|                     "low_temp_cooking": "Приготовление при низкой температуре", |                     "low_temp_cooking": "Приготовление при низкой температуре", | ||||||
|                     "low_temp_cooking_fish": "Приготовление при низкой температуре - Рыба", |                     "low_temp_cooking_fish": "Приготовление при низкой температуре - Рыба", | ||||||
|                     "low_temp_cooking_fish_steam": "Приготовление при низкой температуре на пару - Рыба", |                     "low_temp_cooking_fish_steam": "Приготовление при низкой температуре - Рыба на пару", | ||||||
|                     "low_temp_cooking_meat": "Приготовление при низкой температуре - Мясо", |                     "low_temp_cooking_meat": "Приготовление при низкой температуре - Мясо", | ||||||
|                     "low_temp_cooking_meat_steam": "Приготовление при низкой температуре на пару - Мясо", |                     "low_temp_cooking_meat_steam": "Приготовление при низкой температуре - Мясо на пару", | ||||||
|                     "low_temp_cooking_steam": "Приготовление при низкой температуре на пару", |                     "low_temp_cooking_steam": "Приготовление при низкой температуре на пару", | ||||||
|                     "meat": "Мясо", |                     "meat": "Мясо", | ||||||
|                     "meat_steam": "Мясо, приготовленное на пару", |                     "meat_steam": "Мясо на пару", | ||||||
|                     "multi_level": "Многоуровневое приготовление", |                     "multi_level": "Многоуровневое приготовление", | ||||||
|                     "paella": "Paella", |                     "paella": "Paella", | ||||||
|                     "pasta_and_bakery": "Паста и выпечка", |                     "pasta_and_bakery": "Паста и выпечка", | ||||||
| @ -489,7 +507,7 @@ | |||||||
|                     "pyrolysis": "Пиролиз", |                     "pyrolysis": "Пиролиз", | ||||||
|                     "pyrolysis_plus": "Пиролиз +", |                     "pyrolysis_plus": "Пиролиз +", | ||||||
|                     "red_meat": "Красное мясо", |                     "red_meat": "Красное мясо", | ||||||
|                     "red_meat_steam": "Красное мясо, приготовленное на пару", |                     "red_meat_steam": "Красное мясо на пару", | ||||||
|                     "regenerate": "Регенерация", |                     "regenerate": "Регенерация", | ||||||
|                     "soft_plus": "Soft+", |                     "soft_plus": "Soft+", | ||||||
|                     "super_grill": "Супер-гриль", |                     "super_grill": "Супер-гриль", | ||||||
| @ -499,9 +517,9 @@ | |||||||
|                     "vegetables": "Овощи", |                     "vegetables": "Овощи", | ||||||
|                     "vegetables_cata": "Овощи", |                     "vegetables_cata": "Овощи", | ||||||
|                     "vegetables_pyro": "Овощи", |                     "vegetables_pyro": "Овощи", | ||||||
|                     "water_discharge": "Водоотвод", |                     "water_discharge": "Слив воды", | ||||||
|                     "white_meat": "Белое мясо", |                     "white_meat": "Белое мясо", | ||||||
|                     "white_meat_steam": "Белое мясо, приготовленное на пару" |                     "white_meat_steam": "Белое мясо на пару" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Программа" |                 "name": "Программа" | ||||||
|             }, |             }, | ||||||
| @ -558,7 +576,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Быстрая 20", |                     "hqd_quick_20": "Быстрая 20", | ||||||
|                     "hqd_quick_30": "Быстрая 30", |                     "hqd_quick_30": "Быстрая 30", | ||||||
|                     "hqd_quick_dry": "Быстрая сушка", |                     "hqd_quick_dry": "Быстрая сушка 30", | ||||||
|                     "hqd_quilt": "Стеганые одеяла", |                     "hqd_quilt": "Стеганые одеяла", | ||||||
|                     "hqd_refresh": "Освежение", |                     "hqd_refresh": "Освежение", | ||||||
|                     "hqd_school_uniform": "Школьная форма", |                     "hqd_school_uniform": "Школьная форма", | ||||||
| @ -1013,6 +1031,40 @@ | |||||||
|                     "iot_uv_and_fan": "УФ + Вентилятор", |                     "iot_uv_and_fan": "УФ + Вентилятор", | ||||||
|                     "iot_uv_and_heat": "УФ + Нагрев" |                     "iot_uv_and_heat": "УФ + Нагрев" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "programs_ref": { | ||||||
|  |                 "state": { | ||||||
|  |                     "auto_set": "АВТОМАТИЧЕСКАЯ НАСТРОЙКА", | ||||||
|  |                     "cheese": "Сыр", | ||||||
|  |                     "chiller": "Quick cool", | ||||||
|  |                     "cold_drinks": "Soft chill", | ||||||
|  |                     "eco": "Eco", | ||||||
|  |                     "eco_mode": "Режим Eco", | ||||||
|  |                     "fruits_and_veg": "Фрукты и овощи", | ||||||
|  |                     "fruit_and_veg": "Fruit & Veg", | ||||||
|  |                     "holiday": "HOLIDAY", | ||||||
|  |                     "keep_fresh": "0° Fresh", | ||||||
|  |                     "no_mode_selected": "Режим не выбран", | ||||||
|  |                     "quick_cool": " БЫСТРОЕ ОХЛАЖДЕНИЕ", | ||||||
|  |                     "sea_food": "Ready to cook meal", | ||||||
|  |                     "soft_frozen": "Soft freezing", | ||||||
|  |                     "super_cool": "SUPER COOL", | ||||||
|  |                     "super_freeze": "SUPER FREEZE", | ||||||
|  |                     "tea": "Cold drinks or Beverages", | ||||||
|  |                     "zero_fresh": "0° Fresh" | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "remaining_time": { | ||||||
|  |                 "name": "Оставшееся время" | ||||||
|  |             }, | ||||||
|  |             "ref_zones": { | ||||||
|  |                 "state": { | ||||||
|  |                     "fridge": "Холодильник", | ||||||
|  |                     "freezer": "Морозильник", | ||||||
|  |                     "vtroom1": "My Zone", | ||||||
|  |                     "fridge_freezer": "Холодильник & Морозильник" | ||||||
|  |                 }, | ||||||
|  |                 "name": "Зона" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "switch": { |         "switch": { | ||||||
| @ -1105,6 +1157,24 @@ | |||||||
|             }, |             }, | ||||||
|             "good_night": { |             "good_night": { | ||||||
|                 "name": "Спокойной ночи" |                 "name": "Спокойной ночи" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_softener": { | ||||||
|  |                 "name": "Автодозирование Кондиционер" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_detergent": { | ||||||
|  |                 "name": "Автодозирование Средство для стирки" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Автоматическая установка" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "refrigerator": { | ||||||
|  |                 "name": "Холодильник" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "binary_sensor": { |         "binary_sensor": { | ||||||
| @ -1182,6 +1252,30 @@ | |||||||
|             }, |             }, | ||||||
|             "auto_dose": { |             "auto_dose": { | ||||||
|                 "name": "Автодозирование" |                 "name": "Автодозирование" | ||||||
|  |             }, | ||||||
|  |             "buzzer": { | ||||||
|  |                 "name": "Звуковой сигнал окончания цикла" | ||||||
|  |             }, | ||||||
|  |             "holiday_mode": { | ||||||
|  |                 "name": "Режим Holiday (режим отпуска)" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Автоматическая установка" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "freezer_door": { | ||||||
|  |                 "name": "Дверца открыта Морозильник" | ||||||
|  |             }, | ||||||
|  |             "fridge_door": { | ||||||
|  |                 "name": "Дверца открыта Холодильник" | ||||||
|  |             }, | ||||||
|  |             "filter_replacement": { | ||||||
|  |                 "name": "Замена фильтра" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "number": { |         "number": { | ||||||
| @ -1214,11 +1308,55 @@ | |||||||
|             }, |             }, | ||||||
|             "steam_level": { |             "steam_level": { | ||||||
|                 "name": "Уровень пара" |                 "name": "Уровень пара" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp_sel": { | ||||||
|  |                 "name": "Заданная температура Морозильник" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp_sel": { | ||||||
|  |                 "name": "Заданная температура Холодильник" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "button": { |         "button": { | ||||||
|             "induction_hob": { |             "induction_hob": { | ||||||
|                 "name": "Индукционная варочная панель" |                 "name": "Индукционная варочная панель" | ||||||
|  |             }, | ||||||
|  |             "start_program": { | ||||||
|  |                 "name": "Программа Начать" | ||||||
|  |             }, | ||||||
|  |             "stop_program": { | ||||||
|  |                 "name": "Программа Стоп" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "climate": { | ||||||
|  |             "air_conditioner": { | ||||||
|  |                 "name": "Кондиционер воздуха" | ||||||
|  |             }, | ||||||
|  |             "fridge": { | ||||||
|  |                 "name": "Холодильник", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Режимы холодильника", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Автоматическая установка", | ||||||
|  |                             "super_cool": "Super Cool", | ||||||
|  |                             "holiday": "Holiday", | ||||||
|  |                             "no_mode": "Режим не выбран" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "freezer": { | ||||||
|  |                 "name": "Морозильник", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Режимы морозильного отделения", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Автоматическая установка", | ||||||
|  |                             "super_freeze": "Super Freeze", | ||||||
|  |                             "no_mode": "Режим не выбран" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -225,7 +225,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Rýchle 20", |                     "hqd_quick_20": "Rýchle 20", | ||||||
|                     "hqd_quick_30": "Rýchle 30", |                     "hqd_quick_30": "Rýchle 30", | ||||||
|                     "hqd_quick_dry": "Rýchle sušenie", |                     "hqd_quick_dry": "Rýchle sušenie 30", | ||||||
|                     "hqd_quilt": "Prikrývky", |                     "hqd_quilt": "Prikrývky", | ||||||
|                     "hqd_refresh": "Osvieženie", |                     "hqd_refresh": "Osvieženie", | ||||||
|                     "hqd_school_uniform": "Školská uniforma", |                     "hqd_school_uniform": "Školská uniforma", | ||||||
| @ -307,6 +307,18 @@ | |||||||
|                     "xxl_load": "XXL náplň", |                     "xxl_load": "XXL náplň", | ||||||
|                     "zoom_59": "Zoom 59" |                     "zoom_59": "Zoom 59" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "room_temperature": { | ||||||
|  |                 "name": "Izbová teplota" | ||||||
|  |             }, | ||||||
|  |             "humidity": { | ||||||
|  |                 "name": "Vlhkosť" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp": { | ||||||
|  |                 "name": "Teplota mrazničky" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp": { | ||||||
|  |                 "name": "Teplota chladničky" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "select": { |         "select": { | ||||||
| @ -397,6 +409,11 @@ | |||||||
|                     "silent": "Noc", |                     "silent": "Noc", | ||||||
|                     "silent_care": "Silent Care", |                     "silent_care": "Silent Care", | ||||||
|                     "smart_ai": "Smart AI", |                     "smart_ai": "Smart AI", | ||||||
|  |                     "smart_ai_pro": "Smart AI Pro", | ||||||
|  |                     "smart_ai_pro_soil": "Smart AI Pro", | ||||||
|  |                     "smart_ai_rapid": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_soil": "Smart AI", | ||||||
|                     "special": "špeciál", |                     "special": "špeciál", | ||||||
|                     "special_pw_prz": "špeciál", |                     "special_pw_prz": "špeciál", | ||||||
|                     "steam": "Para 75 °C", |                     "steam": "Para 75 °C", | ||||||
| @ -453,11 +470,12 @@ | |||||||
|             "programs_ov": { |             "programs_ov": { | ||||||
|                 "state": { |                 "state": { | ||||||
|                     "bakery": "Cestoviny a pečenie", |                     "bakery": "Cestoviny a pečenie", | ||||||
|                     "bakery_steam": "Chlieb pečený v pare", |                     "bakery_steam": "Parná rúra", | ||||||
|                     "bottom_heating": "Spodný ohrev", |                     "bottom_heating": "Spodný ohrev", | ||||||
|                     "bottom_heating_fan": "Spodný ohrev + Ventilátor", |                     "bottom_heating_fan": "Spodný ohrev + Ventilátor", | ||||||
|                     "bread": "Chlieb", |                     "bread": "Chlieb", | ||||||
|                     "bread_steam": "Pečivo pečené v pare", |                     "bread_steam": "Chlieb pečený v pare", | ||||||
|  |                     "combi": "Combi", | ||||||
|                     "convection_fan": "Statický + ventilátor", |                     "convection_fan": "Statický + ventilátor", | ||||||
|                     "convection_fan_turnspit": "Statické + ventilátor + otočný ražeň", |                     "convection_fan_turnspit": "Statické + ventilátor + otočný ražeň", | ||||||
|                     "conventional": "Statický", |                     "conventional": "Statický", | ||||||
| @ -465,7 +483,7 @@ | |||||||
|                     "defrost": "Rozmraziť", |                     "defrost": "Rozmraziť", | ||||||
|                     "descaling": "Odstránenie vodného kameňa", |                     "descaling": "Odstránenie vodného kameňa", | ||||||
|                     "fish": "Ryby", |                     "fish": "Ryby", | ||||||
|                     "fish_steam": "Ryby varené v pare", |                     "fish_steam": "Ryby pripravené v pare", | ||||||
|                     "grill_cata": "Gril", |                     "grill_cata": "Gril", | ||||||
|                     "grill_fan_cata": "Gril + ventilátor", |                     "grill_fan_cata": "Gril + ventilátor", | ||||||
|                     "grill_fan_pyro": "Gril + ventilátor", |                     "grill_fan_pyro": "Gril + ventilátor", | ||||||
| @ -476,12 +494,12 @@ | |||||||
|                     "leavening": "Kysnutie", |                     "leavening": "Kysnutie", | ||||||
|                     "low_temp_cooking": "Varenie pri nízkych teplotách", |                     "low_temp_cooking": "Varenie pri nízkych teplotách", | ||||||
|                     "low_temp_cooking_fish": "Varenie pri nízkych teplotách – Ryby", |                     "low_temp_cooking_fish": "Varenie pri nízkych teplotách – Ryby", | ||||||
|                     "low_temp_cooking_fish_steam": "Varenie pri nízkych teplotách v pare – Ryby", |                     "low_temp_cooking_fish_steam": "Varenie pri nízkych teplotách – ryby pripravené v pare", | ||||||
|                     "low_temp_cooking_meat": "Varenie pri nízkych teplotách – Mäso", |                     "low_temp_cooking_meat": "Varenie pri nízkych teplotách – Mäso", | ||||||
|                     "low_temp_cooking_meat_steam": "Varenie pri nízkych teplotách v pare", |                     "low_temp_cooking_meat_steam": "Varenie pri nízkych teplotách - mäso dusené v pare", | ||||||
|                     "low_temp_cooking_steam": "Varenie pri nízkych teplotách v pare", |                     "low_temp_cooking_steam": "Varenie pri nízkych teplotách v pare", | ||||||
|                     "meat": "Mäso", |                     "meat": "Mäso", | ||||||
|                     "meat_steam": "Mäso uvarené v pare", |                     "meat_steam": "Mäso v pare", | ||||||
|                     "multi_level": "Viacúrovňové", |                     "multi_level": "Viacúrovňové", | ||||||
|                     "paella": "Paella", |                     "paella": "Paella", | ||||||
|                     "pasta_and_bakery": "Cestoviny a pečenie", |                     "pasta_and_bakery": "Cestoviny a pečenie", | ||||||
| @ -489,8 +507,8 @@ | |||||||
|                     "pyrolysis": "Pyrolýza", |                     "pyrolysis": "Pyrolýza", | ||||||
|                     "pyrolysis_plus": "Pyrolýza +", |                     "pyrolysis_plus": "Pyrolýza +", | ||||||
|                     "red_meat": "Červené mäso", |                     "red_meat": "Červené mäso", | ||||||
|                     "red_meat_steam": "Červené mäso varené v pare", |                     "red_meat_steam": "Červené mäso dusené v pare", | ||||||
|                     "regenerate": "Regenerácia", |                     "regenerate": "Regenerovať", | ||||||
|                     "soft_plus": "Soft+", |                     "soft_plus": "Soft+", | ||||||
|                     "super_grill": "Super Gril", |                     "super_grill": "Super Gril", | ||||||
|                     "tailor_bake": "Tailor bake", |                     "tailor_bake": "Tailor bake", | ||||||
| @ -499,9 +517,9 @@ | |||||||
|                     "vegetables": "Zelenina", |                     "vegetables": "Zelenina", | ||||||
|                     "vegetables_cata": "Zelenina", |                     "vegetables_cata": "Zelenina", | ||||||
|                     "vegetables_pyro": "Zelenina", |                     "vegetables_pyro": "Zelenina", | ||||||
|                     "water_discharge": "Odtok vody", |                     "water_discharge": "Vypúšťanie vody", | ||||||
|                     "white_meat": "Biele mäso", |                     "white_meat": "Biele mäso", | ||||||
|                     "white_meat_steam": "Biele mäso varené v pare" |                     "white_meat_steam": "Biele mäso pripravené v pare" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Program" |                 "name": "Program" | ||||||
|             }, |             }, | ||||||
| @ -558,7 +576,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Rýchle 20", |                     "hqd_quick_20": "Rýchle 20", | ||||||
|                     "hqd_quick_30": "Rýchle 30", |                     "hqd_quick_30": "Rýchle 30", | ||||||
|                     "hqd_quick_dry": "Rýchle sušenie", |                     "hqd_quick_dry": "Rýchle sušenie 30", | ||||||
|                     "hqd_quilt": "Prikrývky", |                     "hqd_quilt": "Prikrývky", | ||||||
|                     "hqd_refresh": "Osvieženie", |                     "hqd_refresh": "Osvieženie", | ||||||
|                     "hqd_school_uniform": "Školská uniforma", |                     "hqd_school_uniform": "Školská uniforma", | ||||||
| @ -1013,6 +1031,40 @@ | |||||||
|                     "iot_uv_and_fan": "UV + Ventilátor", |                     "iot_uv_and_fan": "UV + Ventilátor", | ||||||
|                     "iot_uv_and_heat": "UV + Ohrev" |                     "iot_uv_and_heat": "UV + Ohrev" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "programs_ref": { | ||||||
|  |                 "state": { | ||||||
|  |                     "auto_set": "AUTOMATICKÉ NASTAVENIE", | ||||||
|  |                     "cheese": "Syr", | ||||||
|  |                     "chiller": "Quick cool", | ||||||
|  |                     "cold_drinks": "Soft chill", | ||||||
|  |                     "eco": "Eco", | ||||||
|  |                     "eco_mode": "Režim Eco", | ||||||
|  |                     "fruits_and_veg": "Fruit&Veg", | ||||||
|  |                     "fruit_and_veg": "Fruit & Veg", | ||||||
|  |                     "holiday": "DOVOLENKA", | ||||||
|  |                     "keep_fresh": "0° Fresh", | ||||||
|  |                     "no_mode_selected": "Nie je vybraný žiadny režim", | ||||||
|  |                     "quick_cool": "QUICK COOL", | ||||||
|  |                     "sea_food": "Ready to cook meal", | ||||||
|  |                     "soft_frozen": "Soft freezing", | ||||||
|  |                     "super_cool": "SUPER CHLADENIE", | ||||||
|  |                     "super_freeze": "SUPER MRAZENIE", | ||||||
|  |                     "tea": "Cold drinks or Beverages", | ||||||
|  |                     "zero_fresh": "0° Fresh" | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "remaining_time": { | ||||||
|  |                 "name": "Zostávajúci čas" | ||||||
|  |             }, | ||||||
|  |             "ref_zones": { | ||||||
|  |                 "state": { | ||||||
|  |                     "fridge": "Chladnička", | ||||||
|  |                     "freezer": "Mraznička", | ||||||
|  |                     "vtroom1": "My Zone", | ||||||
|  |                     "fridge_freezer": "Chladnička & Mraznička" | ||||||
|  |                 }, | ||||||
|  |                 "name": "Zóna" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "switch": { |         "switch": { | ||||||
| @ -1105,6 +1157,24 @@ | |||||||
|             }, |             }, | ||||||
|             "good_night": { |             "good_night": { | ||||||
|                 "name": "Dobrú noc" |                 "name": "Dobrú noc" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_softener": { | ||||||
|  |                 "name": "Automatická dávka Aviváž" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_detergent": { | ||||||
|  |                 "name": "Automatická dávka Prací prostriedok" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Automatické nastavenie" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "refrigerator": { | ||||||
|  |                 "name": "Chladnička" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "binary_sensor": { |         "binary_sensor": { | ||||||
| @ -1154,7 +1224,7 @@ | |||||||
|                 "name": "Panvica" |                 "name": "Panvica" | ||||||
|             }, |             }, | ||||||
|             "remote_control": { |             "remote_control": { | ||||||
|                 "name": "Diaľkové ovládanie" |                 "name": "Daljinsko upravljanje" | ||||||
|             }, |             }, | ||||||
|             "rinse_aid": { |             "rinse_aid": { | ||||||
|                 "name": "Úroveň prostriedku na oplachovanie" |                 "name": "Úroveň prostriedku na oplachovanie" | ||||||
| @ -1182,6 +1252,30 @@ | |||||||
|             }, |             }, | ||||||
|             "auto_dose": { |             "auto_dose": { | ||||||
|                 "name": "Automatická dávka" |                 "name": "Automatická dávka" | ||||||
|  |             }, | ||||||
|  |             "buzzer": { | ||||||
|  |                 "name": "Signál na konci cyklu" | ||||||
|  |             }, | ||||||
|  |             "holiday_mode": { | ||||||
|  |                 "name": "Režim Holiday" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Automatické nastavenie" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "freezer_door": { | ||||||
|  |                 "name": "Otvorené dvere Mraznička" | ||||||
|  |             }, | ||||||
|  |             "fridge_door": { | ||||||
|  |                 "name": "Otvorené dvere Chladnička" | ||||||
|  |             }, | ||||||
|  |             "filter_replacement": { | ||||||
|  |                 "name": "Výmena filtra" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "number": { |         "number": { | ||||||
| @ -1214,11 +1308,55 @@ | |||||||
|             }, |             }, | ||||||
|             "steam_level": { |             "steam_level": { | ||||||
|                 "name": "Úroveň nastavenia pary" |                 "name": "Úroveň nastavenia pary" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp_sel": { | ||||||
|  |                 "name": "Cieľová teplota Mraznička" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp_sel": { | ||||||
|  |                 "name": "Cieľová teplota Chladnička" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "button": { |         "button": { | ||||||
|             "induction_hob": { |             "induction_hob": { | ||||||
|                 "name": "Indukčná varná doska" |                 "name": "Indukčná varná doska" | ||||||
|  |             }, | ||||||
|  |             "start_program": { | ||||||
|  |                 "name": "Program Začiatok" | ||||||
|  |             }, | ||||||
|  |             "stop_program": { | ||||||
|  |                 "name": "Program Zastaviť" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "climate": { | ||||||
|  |             "air_conditioner": { | ||||||
|  |                 "name": "Klimatizácia" | ||||||
|  |             }, | ||||||
|  |             "fridge": { | ||||||
|  |                 "name": "Chladnička", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Režimy chladničky", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Automatické nastavenie", | ||||||
|  |                             "super_cool": "Super Cool", | ||||||
|  |                             "holiday": "Holiday", | ||||||
|  |                             "no_mode": "Nie je vybraný žiadny režim" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "freezer": { | ||||||
|  |                 "name": "Mraznička", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Režimy mrazničky", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Automatické nastavenie", | ||||||
|  |                             "super_freeze": "Super Freeze", | ||||||
|  |                             "no_mode": "Nie je vybraný žiadny režim" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -225,7 +225,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Hitro 20", |                     "hqd_quick_20": "Hitro 20", | ||||||
|                     "hqd_quick_30": "Hitro 30", |                     "hqd_quick_30": "Hitro 30", | ||||||
|                     "hqd_quick_dry": "Hitro sušenje", |                     "hqd_quick_dry": "Hitro sušenje 30", | ||||||
|                     "hqd_quilt": "Posteljna pregrinjala", |                     "hqd_quilt": "Posteljna pregrinjala", | ||||||
|                     "hqd_refresh": "Osvežitev", |                     "hqd_refresh": "Osvežitev", | ||||||
|                     "hqd_school_uniform": "Šolska uniforma", |                     "hqd_school_uniform": "Šolska uniforma", | ||||||
| @ -307,6 +307,18 @@ | |||||||
|                     "xxl_load": "Zelo veliki kosi perila", |                     "xxl_load": "Zelo veliki kosi perila", | ||||||
|                     "zoom_59": "Zoom 59" |                     "zoom_59": "Zoom 59" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "room_temperature": { | ||||||
|  |                 "name": "Sobna temperatura" | ||||||
|  |             }, | ||||||
|  |             "humidity": { | ||||||
|  |                 "name": "Vlaga " | ||||||
|  |             }, | ||||||
|  |             "freezer_temp": { | ||||||
|  |                 "name": "Temperatura zamrzovalnika" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp": { | ||||||
|  |                 "name": "Temperatura hladilnika" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "select": { |         "select": { | ||||||
| @ -397,6 +409,11 @@ | |||||||
|                     "silent": "Noč", |                     "silent": "Noč", | ||||||
|                     "silent_care": "Silent Care", |                     "silent_care": "Silent Care", | ||||||
|                     "smart_ai": "Smart AI", |                     "smart_ai": "Smart AI", | ||||||
|  |                     "smart_ai_pro": "Smart AI Pro", | ||||||
|  |                     "smart_ai_pro_soil": "Smart AI Pro", | ||||||
|  |                     "smart_ai_rapid": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_soil": "Smart AI", | ||||||
|                     "special": "posebno", |                     "special": "posebno", | ||||||
|                     "special_pw_prz": "Posebno", |                     "special_pw_prz": "Posebno", | ||||||
|                     "steam": "Para 75 °C", |                     "steam": "Para 75 °C", | ||||||
| @ -453,11 +470,12 @@ | |||||||
|             "programs_ov": { |             "programs_ov": { | ||||||
|                 "state": { |                 "state": { | ||||||
|                     "bakery": "Testenine in pekovski izdelki", |                     "bakery": "Testenine in pekovski izdelki", | ||||||
|                     "bakery_steam": "V sopari pečen kruh", |                     "bakery_steam": "Parna pečica", | ||||||
|                     "bottom_heating": "Spodnji grelnik", |                     "bottom_heating": "Spodnji grelnik", | ||||||
|                     "bottom_heating_fan": "Spodnji grelnik + Ventilator", |                     "bottom_heating_fan": "Spodnji grelnik + Ventilator", | ||||||
|                     "bread": "Kruh", |                     "bread": "Kruh", | ||||||
|                     "bread_steam": "V sopari pečeno pecivo", |                     "bread_steam": "V sopari pečen kruh", | ||||||
|  |                     "combi": "Kombinirano", | ||||||
|                     "convection_fan": "Konvekcija + ventilator", |                     "convection_fan": "Konvekcija + ventilator", | ||||||
|                     "convection_fan_turnspit": "Konvekcija + ventilator + raženj", |                     "convection_fan_turnspit": "Konvekcija + ventilator + raženj", | ||||||
|                     "conventional": "Konvenkcijsko", |                     "conventional": "Konvenkcijsko", | ||||||
| @ -474,14 +492,14 @@ | |||||||
|                     "iot_bread": "Kruh", |                     "iot_bread": "Kruh", | ||||||
|                     "iot_h20_clean": "h2O clean", |                     "iot_h20_clean": "h2O clean", | ||||||
|                     "leavening": "Vzhajanje", |                     "leavening": "Vzhajanje", | ||||||
|                     "low_temp_cooking": "Priprava pri nizki temperaturi", |                     "low_temp_cooking": "Kuhanje pri nizki temperaturi", | ||||||
|                     "low_temp_cooking_fish": "Priprava pri nizki temperaturi – ribe", |                     "low_temp_cooking_fish": "Kuhanje pri nizki temperaturi – ribe", | ||||||
|                     "low_temp_cooking_fish_steam": "Soparjenje pri nizki temperaturi – ribe", |                     "low_temp_cooking_fish_steam": "Kuhanje pri nizki temperaturi – soparjene ribe", | ||||||
|                     "low_temp_cooking_meat": "Priprava pri nizki temperaturi – meso", |                     "low_temp_cooking_meat": "Kuhanje pri nizki temperaturi – meso", | ||||||
|                     "low_temp_cooking_meat_steam": "Soparjenje pri nizki temperaturi – meso", |                     "low_temp_cooking_meat_steam": "Kuhanje pri nizki temperaturi – soparjeno meso", | ||||||
|                     "low_temp_cooking_steam": "Soparjenje pri nizki temperaturi", |                     "low_temp_cooking_steam": "Soparjenje pri nizki temperaturi", | ||||||
|                     "meat": "Meso", |                     "meat": "Meso", | ||||||
|                     "meat_steam": "Soparjeno meso", |                     "meat_steam": "Soparjenje mesa", | ||||||
|                     "multi_level": "Na več nivojih", |                     "multi_level": "Na več nivojih", | ||||||
|                     "paella": "Paella", |                     "paella": "Paella", | ||||||
|                     "pasta_and_bakery": "Testenine in pekovski izdelki", |                     "pasta_and_bakery": "Testenine in pekovski izdelki", | ||||||
| @ -490,7 +508,7 @@ | |||||||
|                     "pyrolysis_plus": "Piroliza +", |                     "pyrolysis_plus": "Piroliza +", | ||||||
|                     "red_meat": "Rdeče meso", |                     "red_meat": "Rdeče meso", | ||||||
|                     "red_meat_steam": "Soparjeno rdeče meso", |                     "red_meat_steam": "Soparjeno rdeče meso", | ||||||
|                     "regenerate": "Obnavljanje", |                     "regenerate": "Regeneracija", | ||||||
|                     "soft_plus": "Soft+", |                     "soft_plus": "Soft+", | ||||||
|                     "super_grill": "Super Grill", |                     "super_grill": "Super Grill", | ||||||
|                     "tailor_bake": "Tailor bake", |                     "tailor_bake": "Tailor bake", | ||||||
| @ -499,7 +517,7 @@ | |||||||
|                     "vegetables": "Zelenjava", |                     "vegetables": "Zelenjava", | ||||||
|                     "vegetables_cata": "Zelenjava", |                     "vegetables_cata": "Zelenjava", | ||||||
|                     "vegetables_pyro": "Zelenjava", |                     "vegetables_pyro": "Zelenjava", | ||||||
|                     "water_discharge": "Odtok za vodo", |                     "water_discharge": "Izpust vode", | ||||||
|                     "white_meat": "Belo meso", |                     "white_meat": "Belo meso", | ||||||
|                     "white_meat_steam": "Soparjeno belo meso" |                     "white_meat_steam": "Soparjeno belo meso" | ||||||
|                 }, |                 }, | ||||||
| @ -558,7 +576,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Hitro 20", |                     "hqd_quick_20": "Hitro 20", | ||||||
|                     "hqd_quick_30": "Hitro 30", |                     "hqd_quick_30": "Hitro 30", | ||||||
|                     "hqd_quick_dry": "Hitro sušenje", |                     "hqd_quick_dry": "Hitro sušenje 30", | ||||||
|                     "hqd_quilt": "Posteljna pregrinjala", |                     "hqd_quilt": "Posteljna pregrinjala", | ||||||
|                     "hqd_refresh": "Osvežitev", |                     "hqd_refresh": "Osvežitev", | ||||||
|                     "hqd_school_uniform": "Šolska uniforma", |                     "hqd_school_uniform": "Šolska uniforma", | ||||||
| @ -1013,6 +1031,40 @@ | |||||||
|                     "iot_uv_and_fan": "UV + ventilator", |                     "iot_uv_and_fan": "UV + ventilator", | ||||||
|                     "iot_uv_and_heat": "UV + gretje" |                     "iot_uv_and_heat": "UV + gretje" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "programs_ref": { | ||||||
|  |                 "state": { | ||||||
|  |                     "auto_set": "SAMODEJNA NASTAVITEV", | ||||||
|  |                     "cheese": "Sir", | ||||||
|  |                     "chiller": "Quick cool", | ||||||
|  |                     "cold_drinks": "Soft chill", | ||||||
|  |                     "eco": "Eco", | ||||||
|  |                     "eco_mode": "Način Eco", | ||||||
|  |                     "fruits_and_veg": "Sadje In Zelenjava", | ||||||
|  |                     "fruit_and_veg": "Sadje in zelenjava", | ||||||
|  |                     "holiday": "POČITNICE", | ||||||
|  |                     "keep_fresh": "0° Fresh", | ||||||
|  |                     "no_mode_selected": "Izbran ni noben način", | ||||||
|  |                     "quick_cool": " HITRO HLAJENJE", | ||||||
|  |                     "sea_food": "Ready to cook meal", | ||||||
|  |                     "soft_frozen": "Soft freezing", | ||||||
|  |                     "super_cool": "SUPER HLAJENJE", | ||||||
|  |                     "super_freeze": "SUPER ZAMRZOVANJE", | ||||||
|  |                     "tea": "Cold drinks or Beverages", | ||||||
|  |                     "zero_fresh": "0° Fresh" | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "remaining_time": { | ||||||
|  |                 "name": "Time remaining" | ||||||
|  |             }, | ||||||
|  |             "ref_zones": { | ||||||
|  |                 "state": { | ||||||
|  |                     "fridge": "Hladilnik", | ||||||
|  |                     "freezer": "Zamrzovalnik", | ||||||
|  |                     "vtroom1": "My Zone", | ||||||
|  |                     "fridge_freezer": "Hladilnik & Zamrzovalnik" | ||||||
|  |                 }, | ||||||
|  |                 "name": "Cona" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "switch": { |         "switch": { | ||||||
| @ -1105,6 +1157,24 @@ | |||||||
|             }, |             }, | ||||||
|             "good_night": { |             "good_night": { | ||||||
|                 "name": "Lahko noč" |                 "name": "Lahko noč" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_softener": { | ||||||
|  |                 "name": "Samodejno odmerjanje Mehčalec" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_detergent": { | ||||||
|  |                 "name": "Samodejno odmerjanje Detergent" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Samodejna nastavitev" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "refrigerator": { | ||||||
|  |                 "name": "Hladilnik" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "binary_sensor": { |         "binary_sensor": { | ||||||
| @ -1154,7 +1224,7 @@ | |||||||
|                 "name": "Posoda" |                 "name": "Posoda" | ||||||
|             }, |             }, | ||||||
|             "remote_control": { |             "remote_control": { | ||||||
|                 "name": "Daljinsko upravljanje" |                 "name": "Diaľkové ovládanie" | ||||||
|             }, |             }, | ||||||
|             "rinse_aid": { |             "rinse_aid": { | ||||||
|                 "name": "Nivo sredstva za sijaj" |                 "name": "Nivo sredstva za sijaj" | ||||||
| @ -1182,6 +1252,30 @@ | |||||||
|             }, |             }, | ||||||
|             "auto_dose": { |             "auto_dose": { | ||||||
|                 "name": "Samodejno odmerjanje" |                 "name": "Samodejno odmerjanje" | ||||||
|  |             }, | ||||||
|  |             "buzzer": { | ||||||
|  |                 "name": "Zvočni signal ob koncu cikla" | ||||||
|  |             }, | ||||||
|  |             "holiday_mode": { | ||||||
|  |                 "name": "Način Holiday" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Samodejna nastavitev" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "freezer_door": { | ||||||
|  |                 "name": "Door open Zamrzovalnik" | ||||||
|  |             }, | ||||||
|  |             "fridge_door": { | ||||||
|  |                 "name": "Door open Hladilnik" | ||||||
|  |             }, | ||||||
|  |             "filter_replacement": { | ||||||
|  |                 "name": "Menjava filtra" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "number": { |         "number": { | ||||||
| @ -1214,11 +1308,55 @@ | |||||||
|             }, |             }, | ||||||
|             "steam_level": { |             "steam_level": { | ||||||
|                 "name": "Količina pare" |                 "name": "Količina pare" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp_sel": { | ||||||
|  |                 "name": "Ciljna temperatura Zamrzovalnik" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp_sel": { | ||||||
|  |                 "name": "Ciljna temperatura Hladilnik" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "button": { |         "button": { | ||||||
|             "induction_hob": { |             "induction_hob": { | ||||||
|                 "name": "Indukcijska kuhalna plošča" |                 "name": "Indukcijska kuhalna plošča" | ||||||
|  |             }, | ||||||
|  |             "start_program": { | ||||||
|  |                 "name": "Program Start" | ||||||
|  |             }, | ||||||
|  |             "stop_program": { | ||||||
|  |                 "name": "Program Stop" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "climate": { | ||||||
|  |             "air_conditioner": { | ||||||
|  |                 "name": "Klimatska naprava" | ||||||
|  |             }, | ||||||
|  |             "fridge": { | ||||||
|  |                 "name": "Hladilnik", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Načini hladilnika", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Samodejna nastavitev", | ||||||
|  |                             "super_cool": "Super Cool", | ||||||
|  |                             "holiday": "Holiday", | ||||||
|  |                             "no_mode": "Izbran ni noben način" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "freezer": { | ||||||
|  |                 "name": "Zamrzovalnik", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Načini zamrzovalnika", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Samodejna nastavitev", | ||||||
|  |                             "super_freeze": "Super Freeze", | ||||||
|  |                             "no_mode": "Izbran ni noben način" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -225,7 +225,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Brzo 20", |                     "hqd_quick_20": "Brzo 20", | ||||||
|                     "hqd_quick_30": "Brzo 30", |                     "hqd_quick_30": "Brzo 30", | ||||||
|                     "hqd_quick_dry": "Brzo sušenje", |                     "hqd_quick_dry": "Brzo sušenje 30", | ||||||
|                     "hqd_quilt": "Jorgani", |                     "hqd_quilt": "Jorgani", | ||||||
|                     "hqd_refresh": "Osvežavanje", |                     "hqd_refresh": "Osvežavanje", | ||||||
|                     "hqd_school_uniform": "Školska uniforma", |                     "hqd_school_uniform": "Školska uniforma", | ||||||
| @ -307,6 +307,18 @@ | |||||||
|                     "xxl_load": "XXL veš", |                     "xxl_load": "XXL veš", | ||||||
|                     "zoom_59": "Zoom 59" |                     "zoom_59": "Zoom 59" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "room_temperature": { | ||||||
|  |                 "name": "Sobna temperatura" | ||||||
|  |             }, | ||||||
|  |             "humidity": { | ||||||
|  |                 "name": "Vlažnost" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp": { | ||||||
|  |                 "name": "Temperatura zamrzivača" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp": { | ||||||
|  |                 "name": "Temperatura frižidera" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "select": { |         "select": { | ||||||
| @ -397,6 +409,11 @@ | |||||||
|                     "silent": "Noć", |                     "silent": "Noć", | ||||||
|                     "silent_care": "Silent Care", |                     "silent_care": "Silent Care", | ||||||
|                     "smart_ai": "Smart AI", |                     "smart_ai": "Smart AI", | ||||||
|  |                     "smart_ai_pro": "Smart AI Pro", | ||||||
|  |                     "smart_ai_pro_soil": "Smart AI Pro", | ||||||
|  |                     "smart_ai_rapid": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_soil": "Smart AI", | ||||||
|                     "special": "posebno", |                     "special": "posebno", | ||||||
|                     "special_pw_prz": "posebno", |                     "special_pw_prz": "posebno", | ||||||
|                     "steam": "Para 75°C", |                     "steam": "Para 75°C", | ||||||
| @ -453,11 +470,12 @@ | |||||||
|             "programs_ov": { |             "programs_ov": { | ||||||
|                 "state": { |                 "state": { | ||||||
|                     "bakery": "Testenine i pecivo", |                     "bakery": "Testenine i pecivo", | ||||||
|                     "bakery_steam": "Hleb pečen na pari", |                     "bakery_steam": "Priprema na pari u rerni", | ||||||
|                     "bottom_heating": "Donje grejanje", |                     "bottom_heating": "Donje grejanje", | ||||||
|                     "bottom_heating_fan": "Donje grejanje + Ventilator", |                     "bottom_heating_fan": "Donje grejanje + Ventilator", | ||||||
|                     "bread": "Hleb", |                     "bread": "Hleb", | ||||||
|                     "bread_steam": "Peciva pečena na pari", |                     "bread_steam": "Hleb pečen na pari", | ||||||
|  |                     "combi": "Kombinovani", | ||||||
|                     "convection_fan": "Konvekcija + ventilator", |                     "convection_fan": "Konvekcija + ventilator", | ||||||
|                     "convection_fan_turnspit": "Konvekcija + ventilator + ražanj", |                     "convection_fan_turnspit": "Konvekcija + ventilator + ražanj", | ||||||
|                     "conventional": "Konvekcija", |                     "conventional": "Konvekcija", | ||||||
| @ -465,7 +483,7 @@ | |||||||
|                     "defrost": "Odmrzavanje", |                     "defrost": "Odmrzavanje", | ||||||
|                     "descaling": "Uklanjanje kamenca", |                     "descaling": "Uklanjanje kamenca", | ||||||
|                     "fish": "Riba", |                     "fish": "Riba", | ||||||
|                     "fish_steam": "Riba kuvana na pari", |                     "fish_steam": "Riba na pari", | ||||||
|                     "grill_cata": "Roštilj", |                     "grill_cata": "Roštilj", | ||||||
|                     "grill_fan_cata": "Roštilj sa ventilatorom", |                     "grill_fan_cata": "Roštilj sa ventilatorom", | ||||||
|                     "grill_fan_pyro": "Gril + ventilator", |                     "grill_fan_pyro": "Gril + ventilator", | ||||||
| @ -476,12 +494,12 @@ | |||||||
|                     "leavening": "Narastanje", |                     "leavening": "Narastanje", | ||||||
|                     "low_temp_cooking": "Kuvanje na niskoj temperaturi", |                     "low_temp_cooking": "Kuvanje na niskoj temperaturi", | ||||||
|                     "low_temp_cooking_fish": "Kuvanje na niskoj temperaturi – riba", |                     "low_temp_cooking_fish": "Kuvanje na niskoj temperaturi – riba", | ||||||
|                     "low_temp_cooking_fish_steam": "Kuvanje na pari na niskoj temperaturi – riba", |                     "low_temp_cooking_fish_steam": "Kuvanje na niskoj temperaturi – riba na pari", | ||||||
|                     "low_temp_cooking_meat": "Kuvanje na niskoj temperaturi – meso", |                     "low_temp_cooking_meat": "Kuvanje na niskoj temperaturi – meso", | ||||||
|                     "low_temp_cooking_meat_steam": "Kuvanje na pari na niskoj temperaturi – meso", |                     "low_temp_cooking_meat_steam": "Kuvanje na niskoj temperaturi – meso na pari", | ||||||
|                     "low_temp_cooking_steam": "Kuvanje na pari na niskoj temperaturi", |                     "low_temp_cooking_steam": "Kuvanje na pari na niskoj temperaturi", | ||||||
|                     "meat": "Meso", |                     "meat": "Meso", | ||||||
|                     "meat_steam": "Meso kuvano na pari", |                     "meat_steam": "Priprema mesa na pari", | ||||||
|                     "multi_level": "Više nivoa", |                     "multi_level": "Više nivoa", | ||||||
|                     "paella": "Paella", |                     "paella": "Paella", | ||||||
|                     "pasta_and_bakery": "Testenine i pecivo", |                     "pasta_and_bakery": "Testenine i pecivo", | ||||||
| @ -489,7 +507,7 @@ | |||||||
|                     "pyrolysis": "Piroliza", |                     "pyrolysis": "Piroliza", | ||||||
|                     "pyrolysis_plus": "Piroliza +", |                     "pyrolysis_plus": "Piroliza +", | ||||||
|                     "red_meat": "Crveno meso", |                     "red_meat": "Crveno meso", | ||||||
|                     "red_meat_steam": "Crveno meso kuvano na pari", |                     "red_meat_steam": "Crveno meso na pari", | ||||||
|                     "regenerate": "Regeneracija", |                     "regenerate": "Regeneracija", | ||||||
|                     "soft_plus": "Meko+", |                     "soft_plus": "Meko+", | ||||||
|                     "super_grill": "Super gril", |                     "super_grill": "Super gril", | ||||||
| @ -499,9 +517,9 @@ | |||||||
|                     "vegetables": "Povrće", |                     "vegetables": "Povrće", | ||||||
|                     "vegetables_cata": "Povrće", |                     "vegetables_cata": "Povrće", | ||||||
|                     "vegetables_pyro": "Povrće", |                     "vegetables_pyro": "Povrće", | ||||||
|                     "water_discharge": "Odvod vode", |                     "water_discharge": "Ispuštanje vode", | ||||||
|                     "white_meat": "Belo meso", |                     "white_meat": "Belo meso", | ||||||
|                     "white_meat_steam": "Belo meso kuvano na pari" |                     "white_meat_steam": "Belo meso na pari" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Program" |                 "name": "Program" | ||||||
|             }, |             }, | ||||||
| @ -558,7 +576,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Brzo 20", |                     "hqd_quick_20": "Brzo 20", | ||||||
|                     "hqd_quick_30": "Brzo 30", |                     "hqd_quick_30": "Brzo 30", | ||||||
|                     "hqd_quick_dry": "Brzo sušenje", |                     "hqd_quick_dry": "Brzo sušenje 30", | ||||||
|                     "hqd_quilt": "Jorgani", |                     "hqd_quilt": "Jorgani", | ||||||
|                     "hqd_refresh": "Osvežavanje", |                     "hqd_refresh": "Osvežavanje", | ||||||
|                     "hqd_school_uniform": "Školska uniforma", |                     "hqd_school_uniform": "Školska uniforma", | ||||||
| @ -1013,6 +1031,40 @@ | |||||||
|                     "iot_uv_and_fan": "UV + ventilator", |                     "iot_uv_and_fan": "UV + ventilator", | ||||||
|                     "iot_uv_and_heat": "UV + toplota" |                     "iot_uv_and_heat": "UV + toplota" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "programs_ref": { | ||||||
|  |                 "state": { | ||||||
|  |                     "auto_set": "AUTOMATSKO PODEŠAVANJE", | ||||||
|  |                     "cheese": "Sir", | ||||||
|  |                     "chiller": "Quick cool", | ||||||
|  |                     "cold_drinks": "Soft chill", | ||||||
|  |                     "eco": "Eco", | ||||||
|  |                     "eco_mode": "Eco režim", | ||||||
|  |                     "fruits_and_veg": "Voće i Povrće", | ||||||
|  |                     "fruit_and_veg": "Fruit & Veg", | ||||||
|  |                     "holiday": "ODMOR", | ||||||
|  |                     "keep_fresh": "0° Fresh", | ||||||
|  |                     "no_mode_selected": "Nije izabran nijedan režim", | ||||||
|  |                     "quick_cool": "BRZO HLAĐENJE", | ||||||
|  |                     "sea_food": "Ready to cook meal", | ||||||
|  |                     "soft_frozen": "Soft freezing", | ||||||
|  |                     "super_cool": "SUPER HLAĐENJE", | ||||||
|  |                     "super_freeze": "SUPER ZAMRZAVANJE", | ||||||
|  |                     "tea": "Cold drinks or Beverages", | ||||||
|  |                     "zero_fresh": "0° Fresh" | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "remaining_time": { | ||||||
|  |                 "name": "Preostalo vreme" | ||||||
|  |             }, | ||||||
|  |             "ref_zones": { | ||||||
|  |                 "state": { | ||||||
|  |                     "fridge": "Frižider", | ||||||
|  |                     "freezer": "Zamrzivač", | ||||||
|  |                     "vtroom1": "My Zone", | ||||||
|  |                     "fridge_freezer": "Frižider & Zamrzivač" | ||||||
|  |                 }, | ||||||
|  |                 "name": "Zona" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "switch": { |         "switch": { | ||||||
| @ -1105,6 +1157,24 @@ | |||||||
|             }, |             }, | ||||||
|             "good_night": { |             "good_night": { | ||||||
|                 "name": "Laku noć" |                 "name": "Laku noć" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_softener": { | ||||||
|  |                 "name": "Automatsko doziranje Omekšivač" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_detergent": { | ||||||
|  |                 "name": "Automatsko doziranje Deterdžent" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Automatsko podešavanje" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "refrigerator": { | ||||||
|  |                 "name": "Frižider" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "binary_sensor": { |         "binary_sensor": { | ||||||
| @ -1154,7 +1224,7 @@ | |||||||
|                 "name": "Tiganj" |                 "name": "Tiganj" | ||||||
|             }, |             }, | ||||||
|             "remote_control": { |             "remote_control": { | ||||||
|                 "name": "Daljinsko upravljanje" |                 "name": "Upravljanje na daljinu" | ||||||
|             }, |             }, | ||||||
|             "rinse_aid": { |             "rinse_aid": { | ||||||
|                 "name": "Nivo sredstva za ispiranje" |                 "name": "Nivo sredstva za ispiranje" | ||||||
| @ -1182,6 +1252,30 @@ | |||||||
|             }, |             }, | ||||||
|             "auto_dose": { |             "auto_dose": { | ||||||
|                 "name": "Automatsko doziranje" |                 "name": "Automatsko doziranje" | ||||||
|  |             }, | ||||||
|  |             "buzzer": { | ||||||
|  |                 "name": "Zvono na kraju ciklusa" | ||||||
|  |             }, | ||||||
|  |             "holiday_mode": { | ||||||
|  |                 "name": "Režim Holiday" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Automatsko podešavanje" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "freezer_door": { | ||||||
|  |                 "name": "Vrata su otvorena Zamrzivač" | ||||||
|  |             }, | ||||||
|  |             "fridge_door": { | ||||||
|  |                 "name": "Vrata su otvorena Frižider" | ||||||
|  |             }, | ||||||
|  |             "filter_replacement": { | ||||||
|  |                 "name": "Zamena filtera" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "number": { |         "number": { | ||||||
| @ -1214,11 +1308,55 @@ | |||||||
|             }, |             }, | ||||||
|             "steam_level": { |             "steam_level": { | ||||||
|                 "name": "Nivo pare" |                 "name": "Nivo pare" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp_sel": { | ||||||
|  |                 "name": "Željena temperatura Zamrzivač" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp_sel": { | ||||||
|  |                 "name": "Željena temperatura Frižider" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "button": { |         "button": { | ||||||
|             "induction_hob": { |             "induction_hob": { | ||||||
|                 "name": "Indukciona ploča" |                 "name": "Indukciona ploča" | ||||||
|  |             }, | ||||||
|  |             "start_program": { | ||||||
|  |                 "name": "Program Pokretanje" | ||||||
|  |             }, | ||||||
|  |             "stop_program": { | ||||||
|  |                 "name": "Program Zaustavi" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "climate": { | ||||||
|  |             "air_conditioner": { | ||||||
|  |                 "name": "Klima uređaj" | ||||||
|  |             }, | ||||||
|  |             "fridge": { | ||||||
|  |                 "name": "Frižider", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Režimi frižidera", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Automatsko podešavanje", | ||||||
|  |                             "super_cool": "Super Cool", | ||||||
|  |                             "holiday": "Holiday", | ||||||
|  |                             "no_mode": "Nije izabran nijedan režim" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "freezer": { | ||||||
|  |                 "name": "Zamrzivač", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Režimi zamrzivača", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Automatsko podešavanje", | ||||||
|  |                             "super_freeze": "Super Freeze", | ||||||
|  |                             "no_mode": "Nije izabran nijedan režim" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -225,7 +225,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Hızlı 20", |                     "hqd_quick_20": "Hızlı 20", | ||||||
|                     "hqd_quick_30": "Hızlı 30", |                     "hqd_quick_30": "Hızlı 30", | ||||||
|                     "hqd_quick_dry": "Hızlı kurutma", |                     "hqd_quick_dry": "Hızlı kurutma 30", | ||||||
|                     "hqd_quilt": "Yorganlar", |                     "hqd_quilt": "Yorganlar", | ||||||
|                     "hqd_refresh": "Yenileme", |                     "hqd_refresh": "Yenileme", | ||||||
|                     "hqd_school_uniform": "Okul üniforması", |                     "hqd_school_uniform": "Okul üniforması", | ||||||
| @ -307,6 +307,18 @@ | |||||||
|                     "xxl_load": "XXL Çamaşır", |                     "xxl_load": "XXL Çamaşır", | ||||||
|                     "zoom_59": "Yakınlaştır 59" |                     "zoom_59": "Yakınlaştır 59" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "room_temperature": { | ||||||
|  |                 "name": "Oda sıcaklığı" | ||||||
|  |             }, | ||||||
|  |             "humidity": { | ||||||
|  |                 "name": "Nem" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp": { | ||||||
|  |                 "name": "Dondurucu sıcaklığı" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp": { | ||||||
|  |                 "name": "Buzdolabı sıcaklığı" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "select": { |         "select": { | ||||||
| @ -397,6 +409,11 @@ | |||||||
|                     "silent": "Gece", |                     "silent": "Gece", | ||||||
|                     "silent_care": "Silent Care", |                     "silent_care": "Silent Care", | ||||||
|                     "smart_ai": "Smart AI", |                     "smart_ai": "Smart AI", | ||||||
|  |                     "smart_ai_pro": "Smart AI Pro", | ||||||
|  |                     "smart_ai_pro_soil": "Smart AI Pro", | ||||||
|  |                     "smart_ai_rapid": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_soil": "Smart AI", | ||||||
|                     "special": "özel", |                     "special": "özel", | ||||||
|                     "special_pw_prz": "özel", |                     "special_pw_prz": "özel", | ||||||
|                     "steam": "Buhar 75°C", |                     "steam": "Buhar 75°C", | ||||||
| @ -453,11 +470,12 @@ | |||||||
|             "programs_ov": { |             "programs_ov": { | ||||||
|                 "state": { |                 "state": { | ||||||
|                     "bakery": "Makarna ve Ekmek", |                     "bakery": "Makarna ve Ekmek", | ||||||
|                     "bakery_steam": "Buharda pişmiş ekmek", |                     "bakery_steam": "Fırın buharı", | ||||||
|                     "bottom_heating": "Alt ısıtıcı", |                     "bottom_heating": "Alt ısıtıcı", | ||||||
|                     "bottom_heating_fan": "Alt ısıtıcı + Fan", |                     "bottom_heating_fan": "Alt ısıtıcı + Fan", | ||||||
|                     "bread": "Ekmek", |                     "bread": "Ekmek", | ||||||
|                     "bread_steam": "Buharda pişmiş hamur işleri", |                     "bread_steam": "Buharda pişmiş ekmek", | ||||||
|  |                     "combi": "Kombi", | ||||||
|                     "convection_fan": "Fan desteklı", |                     "convection_fan": "Fan desteklı", | ||||||
|                     "convection_fan_turnspit": "Konveksiyon + Fan + Şiş Çevirme", |                     "convection_fan_turnspit": "Konveksiyon + Fan + Şiş Çevirme", | ||||||
|                     "conventional": "Statık", |                     "conventional": "Statık", | ||||||
| @ -465,7 +483,7 @@ | |||||||
|                     "defrost": "Buz çözme", |                     "defrost": "Buz çözme", | ||||||
|                     "descaling": "Kireç çözme", |                     "descaling": "Kireç çözme", | ||||||
|                     "fish": "Balık", |                     "fish": "Balık", | ||||||
|                     "fish_steam": "Buharda pişmiş balık", |                     "fish_steam": "Balık buğulama", | ||||||
|                     "grill_cata": "Izgara", |                     "grill_cata": "Izgara", | ||||||
|                     "grill_fan_cata": "Izgara fan", |                     "grill_fan_cata": "Izgara fan", | ||||||
|                     "grill_fan_pyro": "Izgara + Fan", |                     "grill_fan_pyro": "Izgara + Fan", | ||||||
| @ -476,12 +494,12 @@ | |||||||
|                     "leavening": "Mayalama", |                     "leavening": "Mayalama", | ||||||
|                     "low_temp_cooking": "Düşük Sıcaklıkta Pişirme", |                     "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": "Düşük Sıcaklıkta Pişirme - Balık", | ||||||
|                     "low_temp_cooking_fish_steam": "Düşük Sıcaklıkta Buharda Pişirme - Balık", |                     "low_temp_cooking_fish_steam": "Düşük Isıda Pişirme - Balık buğulama", | ||||||
|                     "low_temp_cooking_meat": "Düşük Sıcaklıkta Pişirme - Et", |                     "low_temp_cooking_meat": "Düşük Sıcaklıkta Pişirme - Et", | ||||||
|                     "low_temp_cooking_meat_steam": "Düşük Sıcaklıkta Buharda Pişirme - Et", |                     "low_temp_cooking_meat_steam": "Düşük Isıda Pişirme - Buharda et", | ||||||
|                     "low_temp_cooking_steam": "Düşük Sıcaklıkta Buharda Pişirme", |                     "low_temp_cooking_steam": "Düşük Sıcaklıkta Buharda Pişirme", | ||||||
|                     "meat": "Et", |                     "meat": "Et", | ||||||
|                     "meat_steam": "Buharda pişmiş et", |                     "meat_steam": "Et buharı", | ||||||
|                     "multi_level": "Çok Seviyeli", |                     "multi_level": "Çok Seviyeli", | ||||||
|                     "paella": "Paella", |                     "paella": "Paella", | ||||||
|                     "pasta_and_bakery": "Makarna ve Ekmek", |                     "pasta_and_bakery": "Makarna ve Ekmek", | ||||||
| @ -489,8 +507,8 @@ | |||||||
|                     "pyrolysis": "Piroliz", |                     "pyrolysis": "Piroliz", | ||||||
|                     "pyrolysis_plus": "Piroliz +", |                     "pyrolysis_plus": "Piroliz +", | ||||||
|                     "red_meat": "Kırmızı Et", |                     "red_meat": "Kırmızı Et", | ||||||
|                     "red_meat_steam": "Buharda pişmiş kırmızı et", |                     "red_meat_steam": "Buharda kırmızı et", | ||||||
|                     "regenerate": "Yenileme", |                     "regenerate": "Yeniden oluştur", | ||||||
|                     "soft_plus": "Yumuşak+", |                     "soft_plus": "Yumuşak+", | ||||||
|                     "super_grill": "Süper Izgara", |                     "super_grill": "Süper Izgara", | ||||||
|                     "tailor_bake": "Tailor bake", |                     "tailor_bake": "Tailor bake", | ||||||
| @ -499,9 +517,9 @@ | |||||||
|                     "vegetables": "Sebzeler", |                     "vegetables": "Sebzeler", | ||||||
|                     "vegetables_cata": "Sebzeler", |                     "vegetables_cata": "Sebzeler", | ||||||
|                     "vegetables_pyro": "Sebzeler", |                     "vegetables_pyro": "Sebzeler", | ||||||
|                     "water_discharge": "Su Drenajı", |                     "water_discharge": "Su Tahliyesi", | ||||||
|                     "white_meat": "Beyaz Et", |                     "white_meat": "Beyaz Et", | ||||||
|                     "white_meat_steam": "Buharda pişmiş beyaz et" |                     "white_meat_steam": "Buharda beyaz et" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Program" |                 "name": "Program" | ||||||
|             }, |             }, | ||||||
| @ -558,7 +576,7 @@ | |||||||
|                     "hqd_precious_cure": "Precious cure", |                     "hqd_precious_cure": "Precious cure", | ||||||
|                     "hqd_quick_20": "Hızlı 20", |                     "hqd_quick_20": "Hızlı 20", | ||||||
|                     "hqd_quick_30": "Hızlı 30", |                     "hqd_quick_30": "Hızlı 30", | ||||||
|                     "hqd_quick_dry": "Hızlı kurutma", |                     "hqd_quick_dry": "Hızlı kurutma 30", | ||||||
|                     "hqd_quilt": "Yorganlar", |                     "hqd_quilt": "Yorganlar", | ||||||
|                     "hqd_refresh": "Yenileme", |                     "hqd_refresh": "Yenileme", | ||||||
|                     "hqd_school_uniform": "Okul üniforması", |                     "hqd_school_uniform": "Okul üniforması", | ||||||
| @ -1013,6 +1031,40 @@ | |||||||
|                     "iot_uv_and_fan": "UV + Fan", |                     "iot_uv_and_fan": "UV + Fan", | ||||||
|                     "iot_uv_and_heat": "UV + Isıtma" |                     "iot_uv_and_heat": "UV + Isıtma" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "programs_ref": { | ||||||
|  |                 "state": { | ||||||
|  |                     "auto_set": "OTOMATİK AYAR", | ||||||
|  |                     "cheese": "Peynir", | ||||||
|  |                     "chiller": "Quick cool", | ||||||
|  |                     "cold_drinks": "Soft chill", | ||||||
|  |                     "eco": "Eco", | ||||||
|  |                     "eco_mode": "Eco modu", | ||||||
|  |                     "fruits_and_veg": "Meyve Ve Sebze", | ||||||
|  |                     "fruit_and_veg": "Fruit & Veg", | ||||||
|  |                     "holiday": "TATİL ", | ||||||
|  |                     "keep_fresh": "0° Fresh", | ||||||
|  |                     "no_mode_selected": "Hiç mod seçilmedi", | ||||||
|  |                     "quick_cool": "HIZLI SOĞUTMA", | ||||||
|  |                     "sea_food": "Ready to cook meal", | ||||||
|  |                     "soft_frozen": "Soft freezing", | ||||||
|  |                     "super_cool": "SUPER COOL", | ||||||
|  |                     "super_freeze": "SUPER FREEZE", | ||||||
|  |                     "tea": "Cold drinks or Beverages", | ||||||
|  |                     "zero_fresh": "0° Fresh" | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "remaining_time": { | ||||||
|  |                 "name": "Kalan süre" | ||||||
|  |             }, | ||||||
|  |             "ref_zones": { | ||||||
|  |                 "state": { | ||||||
|  |                     "fridge": "Buzdolabı", | ||||||
|  |                     "freezer": "Dondurucu", | ||||||
|  |                     "vtroom1": "My Zone", | ||||||
|  |                     "fridge_freezer": "Buzdolabı & Dondurucu" | ||||||
|  |                 }, | ||||||
|  |                 "name": "Ocak gözü" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "switch": { |         "switch": { | ||||||
| @ -1105,6 +1157,24 @@ | |||||||
|             }, |             }, | ||||||
|             "good_night": { |             "good_night": { | ||||||
|                 "name": "İyi Geceler" |                 "name": "İyi Geceler" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_softener": { | ||||||
|  |                 "name": "Otomatik doz Yumuşatıcı" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_detergent": { | ||||||
|  |                 "name": "Otomatik doz Deterjan" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Otomatik Ayarla" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "refrigerator": { | ||||||
|  |                 "name": "Buzdolabı" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "binary_sensor": { |         "binary_sensor": { | ||||||
| @ -1182,6 +1252,30 @@ | |||||||
|             }, |             }, | ||||||
|             "auto_dose": { |             "auto_dose": { | ||||||
|                 "name": "Otomatik doz" |                 "name": "Otomatik doz" | ||||||
|  |             }, | ||||||
|  |             "buzzer": { | ||||||
|  |                 "name": "Program sonu zili" | ||||||
|  |             }, | ||||||
|  |             "holiday_mode": { | ||||||
|  |                 "name": "Holiday Modu" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "Otomatik Ayarla" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "freezer_door": { | ||||||
|  |                 "name": "Kapı açık Dondurucu" | ||||||
|  |             }, | ||||||
|  |             "fridge_door": { | ||||||
|  |                 "name": "Kapı açık Buzdolabı" | ||||||
|  |             }, | ||||||
|  |             "filter_replacement": { | ||||||
|  |                 "name": "Filtre değişimi" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "number": { |         "number": { | ||||||
| @ -1214,11 +1308,55 @@ | |||||||
|             }, |             }, | ||||||
|             "steam_level": { |             "steam_level": { | ||||||
|                 "name": "Buhar Seviyesi" |                 "name": "Buhar Seviyesi" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp_sel": { | ||||||
|  |                 "name": "Hedef sıcaklık Dondurucu" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp_sel": { | ||||||
|  |                 "name": "Hedef sıcaklık Buzdolabı" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "button": { |         "button": { | ||||||
|             "induction_hob": { |             "induction_hob": { | ||||||
|                 "name": "İndüksiyonlu Ocak" |                 "name": "İndüksiyonlu Ocak" | ||||||
|  |             }, | ||||||
|  |             "start_program": { | ||||||
|  |                 "name": "Program Başlangıç" | ||||||
|  |             }, | ||||||
|  |             "stop_program": { | ||||||
|  |                 "name": "Program Durdur" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "climate": { | ||||||
|  |             "air_conditioner": { | ||||||
|  |                 "name": "Klima" | ||||||
|  |             }, | ||||||
|  |             "fridge": { | ||||||
|  |                 "name": "Buzdolabı", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Buzdolabı modları", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Otomatik Ayarla", | ||||||
|  |                             "super_cool": "Super Cool", | ||||||
|  |                             "holiday": "Holiday", | ||||||
|  |                             "no_mode": "Hiç mod seçilmedi" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "freezer": { | ||||||
|  |                 "name": "Dondurucu", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Dondurucu modları", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "Otomatik Ayarla", | ||||||
|  |                             "super_freeze": "Super Freeze", | ||||||
|  |                             "no_mode": "Hiç mod seçilmedi" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -307,6 +307,18 @@ | |||||||
|                     "xxl_load": "XXL Load", |                     "xxl_load": "XXL Load", | ||||||
|                     "zoom_59": "缩放 59" |                     "zoom_59": "缩放 59" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "room_temperature": { | ||||||
|  |                 "name": "室温" | ||||||
|  |             }, | ||||||
|  |             "humidity": { | ||||||
|  |                 "name": "湿度" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp": { | ||||||
|  |                 "name": "冷藏室温度" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp": { | ||||||
|  |                 "name": "冰箱温度" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "select": { |         "select": { | ||||||
| @ -397,6 +409,11 @@ | |||||||
|                     "silent": "夜间", |                     "silent": "夜间", | ||||||
|                     "silent_care": "Silent Care", |                     "silent_care": "Silent Care", | ||||||
|                     "smart_ai": "Smart AI", |                     "smart_ai": "Smart AI", | ||||||
|  |                     "smart_ai_pro": "Smart AI Pro", | ||||||
|  |                     "smart_ai_pro_soil": "Smart AI Pro", | ||||||
|  |                     "smart_ai_rapid": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||||
|  |                     "smart_ai_soil": "Smart AI", | ||||||
|                     "special": "特殊", |                     "special": "特殊", | ||||||
|                     "special_pw_prz": "特殊", |                     "special_pw_prz": "特殊", | ||||||
|                     "steam": "蒸汽洗75°C", |                     "steam": "蒸汽洗75°C", | ||||||
| @ -453,11 +470,12 @@ | |||||||
|             "programs_ov": { |             "programs_ov": { | ||||||
|                 "state": { |                 "state": { | ||||||
|                     "bakery": "意大利面和烘焙食品", |                     "bakery": "意大利面和烘焙食品", | ||||||
|                     "bakery_steam": "蒸烤的面包", |                     "bakery_steam": "烤炉蒸汽", | ||||||
|                     "bottom_heating": "底部加热 ", |                     "bottom_heating": "底部加热 ", | ||||||
|                     "bottom_heating_fan": "底部加热 + 风扇", |                     "bottom_heating_fan": "底部加热 + 风扇", | ||||||
|                     "bread": "面包", |                     "bread": "面包", | ||||||
|                     "bread_steam": "蒸烤的甜点", |                     "bread_steam": "蒸烤的面包", | ||||||
|  |                     "combi": "Combi", | ||||||
|                     "convection_fan": "对流 + 风扇", |                     "convection_fan": "对流 + 风扇", | ||||||
|                     "convection_fan_turnspit": "对流 + 风扇 + 烤叉", |                     "convection_fan_turnspit": "对流 + 风扇 + 烤叉", | ||||||
|                     "conventional": "对流", |                     "conventional": "对流", | ||||||
| @ -465,7 +483,7 @@ | |||||||
|                     "defrost": "解冻", |                     "defrost": "解冻", | ||||||
|                     "descaling": "除垢", |                     "descaling": "除垢", | ||||||
|                     "fish": "鱼", |                     "fish": "鱼", | ||||||
|                     "fish_steam": "蒸煮的鱼", |                     "fish_steam": "蒸鱼", | ||||||
|                     "grill_cata": "烤架", |                     "grill_cata": "烤架", | ||||||
|                     "grill_fan_cata": "烤架风扇", |                     "grill_fan_cata": "烤架风扇", | ||||||
|                     "grill_fan_pyro": "烤架 + 风扇", |                     "grill_fan_pyro": "烤架 + 风扇", | ||||||
| @ -476,12 +494,12 @@ | |||||||
|                     "leavening": "发酵", |                     "leavening": "发酵", | ||||||
|                     "low_temp_cooking": "低温烹饪", |                     "low_temp_cooking": "低温烹饪", | ||||||
|                     "low_temp_cooking_fish": "低温烹饪 - 鱼类", |                     "low_temp_cooking_fish": "低温烹饪 - 鱼类", | ||||||
|                     "low_temp_cooking_fish_steam": "低温蒸汽烹饪 - 鱼类", |                     "low_temp_cooking_fish_steam": "低温烹饪 - 蒸鱼", | ||||||
|                     "low_temp_cooking_meat": "低温烹饪 - 肉类", |                     "low_temp_cooking_meat": "低温烹饪 - 肉类", | ||||||
|                     "low_temp_cooking_meat_steam": "低温蒸汽烹饪 - 肉类", |                     "low_temp_cooking_meat_steam": "低温烹饪 - 蒸肉", | ||||||
|                     "low_temp_cooking_steam": "低温蒸汽烹饪", |                     "low_temp_cooking_steam": "低温蒸汽烹饪", | ||||||
|                     "meat": "肉", |                     "meat": "肉", | ||||||
|                     "meat_steam": "蒸煮的肉", |                     "meat_steam": "肉类蒸汽", | ||||||
|                     "multi_level": "多层", |                     "multi_level": "多层", | ||||||
|                     "paella": "Paella", |                     "paella": "Paella", | ||||||
|                     "pasta_and_bakery": "意大利面和烘焙食品", |                     "pasta_and_bakery": "意大利面和烘焙食品", | ||||||
| @ -489,8 +507,8 @@ | |||||||
|                     "pyrolysis": "热解", |                     "pyrolysis": "热解", | ||||||
|                     "pyrolysis_plus": "热解 +", |                     "pyrolysis_plus": "热解 +", | ||||||
|                     "red_meat": "红肉", |                     "red_meat": "红肉", | ||||||
|                     "red_meat_steam": "蒸煮的红肉", |                     "red_meat_steam": "蒸红肉", | ||||||
|                     "regenerate": "再生", |                     "regenerate": "再加热", | ||||||
|                     "soft_plus": "软+", |                     "soft_plus": "软+", | ||||||
|                     "super_grill": "超级烤架", |                     "super_grill": "超级烤架", | ||||||
|                     "tailor_bake": "Tailor bake", |                     "tailor_bake": "Tailor bake", | ||||||
| @ -501,7 +519,7 @@ | |||||||
|                     "vegetables_pyro": "蔬菜", |                     "vegetables_pyro": "蔬菜", | ||||||
|                     "water_discharge": "排水", |                     "water_discharge": "排水", | ||||||
|                     "white_meat": "白肉", |                     "white_meat": "白肉", | ||||||
|                     "white_meat_steam": "蒸煮的白肉" |                     "white_meat_steam": "蒸白肉" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "程序" |                 "name": "程序" | ||||||
|             }, |             }, | ||||||
| @ -1013,6 +1031,40 @@ | |||||||
|                     "iot_uv_and_fan": "UV + 风扇", |                     "iot_uv_and_fan": "UV + 风扇", | ||||||
|                     "iot_uv_and_heat": "UV + 加热" |                     "iot_uv_and_heat": "UV + 加热" | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "programs_ref": { | ||||||
|  |                 "state": { | ||||||
|  |                     "auto_set": "AUTO-SET(自动设置)", | ||||||
|  |                     "cheese": "奶酪", | ||||||
|  |                     "chiller": "Quick cool", | ||||||
|  |                     "cold_drinks": "Soft chill", | ||||||
|  |                     "eco": "Eco", | ||||||
|  |                     "eco_mode": "Eco 模式", | ||||||
|  |                     "fruits_and_veg": "Fruit&Veg(水果和蔬菜)", | ||||||
|  |                     "fruit_and_veg": "Fruit & Veg", | ||||||
|  |                     "holiday": "HOLIDAY(假日模式)", | ||||||
|  |                     "keep_fresh": "0° Fresh", | ||||||
|  |                     "no_mode_selected": "未选择模式", | ||||||
|  |                     "quick_cool": "QUICK COOL(快速冷却)", | ||||||
|  |                     "sea_food": "Ready to cook meal", | ||||||
|  |                     "soft_frozen": "Soft freezing", | ||||||
|  |                     "super_cool": "SUPER COOL(超级冷却)", | ||||||
|  |                     "super_freeze": "SUPER FREEZE(超级冷冻)", | ||||||
|  |                     "tea": "Cold drinks or Beverages", | ||||||
|  |                     "zero_fresh": "0° Fresh" | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "remaining_time": { | ||||||
|  |                 "name": "剩余时间" | ||||||
|  |             }, | ||||||
|  |             "ref_zones": { | ||||||
|  |                 "state": { | ||||||
|  |                     "fridge": "冰箱", | ||||||
|  |                     "freezer": "冷藏箱", | ||||||
|  |                     "vtroom1": "My Zone", | ||||||
|  |                     "fridge_freezer": "冰箱 & 冷藏箱" | ||||||
|  |                 }, | ||||||
|  |                 "name": "区域" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "switch": { |         "switch": { | ||||||
| @ -1105,6 +1157,24 @@ | |||||||
|             }, |             }, | ||||||
|             "good_night": { |             "good_night": { | ||||||
|                 "name": "晚安" |                 "name": "晚安" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_softener": { | ||||||
|  |                 "name": "自动定量 柔软剂" | ||||||
|  |             }, | ||||||
|  |             "auto_dose_detergent": { | ||||||
|  |                 "name": "自动定量 洗涤剂" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "自动设置" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "refrigerator": { | ||||||
|  |                 "name": "冰箱" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "binary_sensor": { |         "binary_sensor": { | ||||||
| @ -1154,7 +1224,7 @@ | |||||||
|                 "name": "烤盘" |                 "name": "烤盘" | ||||||
|             }, |             }, | ||||||
|             "remote_control": { |             "remote_control": { | ||||||
|                 "name": "远程控制" |                 "name": "Control remoto" | ||||||
|             }, |             }, | ||||||
|             "rinse_aid": { |             "rinse_aid": { | ||||||
|                 "name": "漂洗助剂液位" |                 "name": "漂洗助剂液位" | ||||||
| @ -1182,6 +1252,30 @@ | |||||||
|             }, |             }, | ||||||
|             "auto_dose": { |             "auto_dose": { | ||||||
|                 "name": "自动定量" |                 "name": "自动定量" | ||||||
|  |             }, | ||||||
|  |             "buzzer": { | ||||||
|  |                 "name": "循环结束提示音" | ||||||
|  |             }, | ||||||
|  |             "holiday_mode": { | ||||||
|  |                 "name": "Holiday 模式" | ||||||
|  |             }, | ||||||
|  |             "auto_set": { | ||||||
|  |                 "name": "自动设置" | ||||||
|  |             }, | ||||||
|  |             "super_cool": { | ||||||
|  |                 "name": "Super Cool" | ||||||
|  |             }, | ||||||
|  |             "super_freeze": { | ||||||
|  |                 "name": "Super Freeze" | ||||||
|  |             }, | ||||||
|  |             "freezer_door": { | ||||||
|  |                 "name": "门打开 冷藏箱" | ||||||
|  |             }, | ||||||
|  |             "fridge_door": { | ||||||
|  |                 "name": "门打开 冰箱" | ||||||
|  |             }, | ||||||
|  |             "filter_replacement": { | ||||||
|  |                 "name": "更换过滤器" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "number": { |         "number": { | ||||||
| @ -1214,11 +1308,55 @@ | |||||||
|             }, |             }, | ||||||
|             "steam_level": { |             "steam_level": { | ||||||
|                 "name": "蒸汽档位" |                 "name": "蒸汽档位" | ||||||
|  |             }, | ||||||
|  |             "freezer_temp_sel": { | ||||||
|  |                 "name": "目标温度 冷藏箱" | ||||||
|  |             }, | ||||||
|  |             "fridge_temp_sel": { | ||||||
|  |                 "name": "目标温度 冰箱" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "button": { |         "button": { | ||||||
|             "induction_hob": { |             "induction_hob": { | ||||||
|                 "name": "电磁炉" |                 "name": "电磁炉" | ||||||
|  |             }, | ||||||
|  |             "start_program": { | ||||||
|  |                 "name": "程序 开始" | ||||||
|  |             }, | ||||||
|  |             "stop_program": { | ||||||
|  |                 "name": "程序 停止" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "climate": { | ||||||
|  |             "air_conditioner": { | ||||||
|  |                 "name": "空调" | ||||||
|  |             }, | ||||||
|  |             "fridge": { | ||||||
|  |                 "name": "冰箱", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "冰箱模式", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "自动设置", | ||||||
|  |                             "super_cool": "Super Cool", | ||||||
|  |                             "holiday": "Holiday", | ||||||
|  |                             "no_mode": "未选择模式" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "freezer": { | ||||||
|  |                 "name": "冷藏箱", | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "冷藏室模式", | ||||||
|  |                         "state": { | ||||||
|  |                             "auto_set": "自动设置", | ||||||
|  |                             "super_freeze": "Super Freeze", | ||||||
|  |                             "no_mode": "未选择模式" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|  | |||||||
							
								
								
									
										48
									
								
								info.md
									
									
									
									
									
								
							
							
						
						
									
										48
									
								
								info.md
									
									
									
									
									
								
							| @ -12,6 +12,7 @@ Support for home appliances of Haier's mobile app hOn. | |||||||
| - [Hob](https://github.com/Andre0512/hon#hob) | - [Hob](https://github.com/Andre0512/hon#hob) | ||||||
| - [Dish Washer](https://github.com/Andre0512/hon#dish-washer) | - [Dish Washer](https://github.com/Andre0512/hon#dish-washer) | ||||||
| - [Air conditioner](https://github.com/Andre0512/hon#air-conditioner) [BETA] | - [Air conditioner](https://github.com/Andre0512/hon#air-conditioner) [BETA] | ||||||
|  | - [Fridge](https://github.com/Andre0512/hon#fridge) [BETA] | ||||||
|  |  | ||||||
| ## Configuration | ## Configuration | ||||||
|  |  | ||||||
| @ -20,16 +21,6 @@ Support for home appliances of Haier's mobile app hOn. | |||||||
| **Method 2**: Settings > Devices & Services > Add Integration > **Haier hOn**   | **Method 2**: Settings > Devices & Services > Add Integration > **Haier hOn**   | ||||||
| _If the integration is not in the list, you need to clear the browser cache._ | _If the integration is not in the list, you need to clear the browser cache._ | ||||||
|  |  | ||||||
| ## Supported Models |  | ||||||
| Support was confirmed for these models. If a supported model is missing, please [add it with this form](https://forms.gle/bTSD8qFotdZFytbf8). |  | ||||||
| - Haier WD90-B14TEAM5 |  | ||||||
| - Haier HD80-A3959 |  | ||||||
| - Haier HWO60SM2F3XH |  | ||||||
| - Hoover H-WASH 500 |  | ||||||
| - Candy CIS633SCTTWIFI |  | ||||||
| - Haier XIB 3B2SFS-80 |  | ||||||
| - Haier XIB 6B2D3FB |  | ||||||
|  |  | ||||||
| ## Supported Languages | ## Supported Languages | ||||||
| Translation of internal names like programs are available for all languages which are official supported by the hOn app: | Translation of internal names like programs are available for all languages which are official supported by the hOn app: | ||||||
| * 🇨🇳 Chinese | * 🇨🇳 Chinese | ||||||
| @ -52,6 +43,43 @@ Translation of internal names like programs are available for all languages whic | |||||||
| * 🇪🇸 Spanish | * 🇪🇸 Spanish | ||||||
| * 🇹🇷 Turkish | * 🇹🇷 Turkish | ||||||
|  |  | ||||||
|  | ## Examples | ||||||
|  | ### Washing Machine | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ## Supported Models | ||||||
|  | Support has been confirmed for these models, but many more will work. Please add already supported devices [with this form to complete the list](https://forms.gle/bTSD8qFotdZFytbf8). | ||||||
|  | - Haier AD105S2SM3FA | ||||||
|  | - Haier AS25PBAHRA | ||||||
|  | - Haier AS25TADHRA-2 | ||||||
|  | - Haier AS35TADHRA-2 | ||||||
|  | - Haier EG9012B19SU1JD | ||||||
|  | - Haier HD80-A3959 | ||||||
|  | - Haier HW90-B14TEAM5 | ||||||
|  | - Haier HW100-B14959U1 | ||||||
|  | - Haier HWD100-B14979 | ||||||
|  | - Haier HWO60SM2F3XH | ||||||
|  | - Haier XIB 3B2SFS-80 | ||||||
|  | - Haier XIB 6B2D3FB | ||||||
|  | - Candy BCTDH7A1TE | ||||||
|  | - Candy CIS633SCTTWIFI | ||||||
|  | - Candy CSOE C10DE-80 | ||||||
|  | - Candy ROE H9A3TCEX-S | ||||||
|  | - Candy RPW41066BWMR/1-S | ||||||
|  | - Hoover H-WASH 500 | ||||||
|  | - Hoover H-DRY 500 | ||||||
|  | - Hoover H7W4 48MBC-S | ||||||
|  | - Hoover H9A3TCBEXS-S | ||||||
|  | - Hoover HFB 6B2S3FX | ||||||
|  | - Hoover HLE C10DCE-80 | ||||||
|  | - Hoover HSOT3161WG | ||||||
|  | - Hoover HW 68AMC/1-80 | ||||||
|  | - Hoover HWPD 69AMBC/1-S | ||||||
|  | - Hoover HWPS4954DAMR-11 | ||||||
|  | - Hoover NDE H10A2TCE-80 | ||||||
|  | - Hoover NDE H9A2TSBEXS-S | ||||||
|  | - Hoover NDPHY10A2TCBEXSS | ||||||
|  |  | ||||||
| ## Contribute | ## Contribute | ||||||
| Want to help us to support more appliances? Or add more sensors? Or help with translating? Or beautify some icons or captions?  | Want to help us to support more appliances? Or add more sensors? Or help with translating? Or beautify some icons or captions?  | ||||||
| Check out the [project on GitHub](https://github.com/Andre0512/hon), every contribution is welcome! | Check out the [project on GitHub](https://github.com/Andre0512/hon), every contribution is welcome! | ||||||
|  | |||||||
| @ -26,6 +26,7 @@ SELECT = { | |||||||
|     "dry_levels": const.TUMBLE_DRYER_DRY_LEVEL, |     "dry_levels": const.TUMBLE_DRYER_DRY_LEVEL, | ||||||
|     "eco_pilot": const.AC_HUMAN_SENSE, |     "eco_pilot": const.AC_HUMAN_SENSE, | ||||||
|     "fan_mode": const.AC_FAN_MODE, |     "fan_mode": const.AC_FAN_MODE, | ||||||
|  |     "ref_zones": const.REF_ZONES, | ||||||
| } | } | ||||||
|  |  | ||||||
| PROGRAMS = { | PROGRAMS = { | ||||||
| @ -36,12 +37,37 @@ PROGRAMS = { | |||||||
|         "programs_ov": "PROGRAMS.OV", |         "programs_ov": "PROGRAMS.OV", | ||||||
|         "programs_td": "PROGRAMS.TD", |         "programs_td": "PROGRAMS.TD", | ||||||
|         "programs_wm": "PROGRAMS.WM_WD", |         "programs_wm": "PROGRAMS.WM_WD", | ||||||
|  |         "programs_ref": "PROGRAMS.REF", | ||||||
|     }, |     }, | ||||||
|     "sensor": { |     "sensor": { | ||||||
|         "programs_td": "PROGRAMS.TD", |         "programs_td": "PROGRAMS.TD", | ||||||
|     }, |     }, | ||||||
| } | } | ||||||
|  |  | ||||||
|  | CLIMATE = { | ||||||
|  |     "fridge": { | ||||||
|  |         "preset_mode": { | ||||||
|  |             "name": "REF_CMD&CTRL.MODE_SELECTION_DRAWER_FRIDGE.FRIDGE_MODE_TITLE", | ||||||
|  |             "state": { | ||||||
|  |                 "auto_set": "REF_CMD&CTRL.MODALITIES.ECO", | ||||||
|  |                 "super_cool": "REF_CMD&CTRL.MODALITIES.SUPER_COOL", | ||||||
|  |                 "holiday": "REF_CMD&CTRL.MODALITIES.BACK_FROM_HOLIDAY", | ||||||
|  |                 "no_mode": "REF_CMD&CTRL.MODALITIES.NO_MODE_SELECTED", | ||||||
|  |             }, | ||||||
|  |         } | ||||||
|  |     }, | ||||||
|  |     "freezer": { | ||||||
|  |         "preset_mode": { | ||||||
|  |             "name": "REF_CMD&CTRL.MODE_SELECTION_DRAWER_FREEZER.FREEZER_MODE_TITLE", | ||||||
|  |             "state": { | ||||||
|  |                 "auto_set": "REF_CMD&CTRL.MODALITIES.ECO", | ||||||
|  |                 "super_freeze": "REF_CMD&CTRL.MODALITIES.SHOCK_FREEZE", | ||||||
|  |                 "no_mode": "REF_CMD&CTRL.MODALITIES.NO_MODE_SELECTED", | ||||||
|  |             }, | ||||||
|  |         } | ||||||
|  |     }, | ||||||
|  | } | ||||||
|  |  | ||||||
| NAMES = { | NAMES = { | ||||||
|     "switch": { |     "switch": { | ||||||
|         "anti_crease": "HDRY_CMD&CTRL.PROGRAM_CYCLE_DETAIL.ANTICREASE_TITLE", |         "anti_crease": "HDRY_CMD&CTRL.PROGRAM_CYCLE_DETAIL.ANTICREASE_TITLE", | ||||||
| @ -72,8 +98,19 @@ NAMES = { | |||||||
|         "extra_rinse_2": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.EXTRARINSE2", |         "extra_rinse_2": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.EXTRARINSE2", | ||||||
|         "extra_rinse_3": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.EXTRARINSE3", |         "extra_rinse_3": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.EXTRARINSE3", | ||||||
|         "acqua_plus": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.ACQUAPLUS", |         "acqua_plus": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.ACQUAPLUS", | ||||||
|         "auto_dose": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.AUTODOSE", |         "auto_dose_softener": [ | ||||||
|  |             "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.AUTODOSE", | ||||||
|  |             "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.SOFTENER", | ||||||
|  |         ], | ||||||
|  |         "auto_dose_detergent": [ | ||||||
|  |             "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.AUTODOSE", | ||||||
|  |             "WASHING_CMD&CTRL.DASHBOARD_MENU_MORE_SETTINGS_WATER.DETERGENT", | ||||||
|  |         ], | ||||||
|         "good_night": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.GOODNIGHT", |         "good_night": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.GOODNIGHT", | ||||||
|  |         "auto_set": "REF_CMD&CTRL.MODALITIES.ECO", | ||||||
|  |         "super_cool": "REF_CMD&CTRL.MODALITIES.SUPER_COOL", | ||||||
|  |         "super_freeze": "REF_CMD&CTRL.MODALITIES.SUPER_FREEZE", | ||||||
|  |         "refrigerator": "REF.NAME", | ||||||
|     }, |     }, | ||||||
|     "binary_sensor": { |     "binary_sensor": { | ||||||
|         "door_lock": "WASHING_CMD&CTRL.CHECK_UP_RESULTS.DOOR_LOCK", |         "door_lock": "WASHING_CMD&CTRL.CHECK_UP_RESULTS.DOOR_LOCK", | ||||||
| @ -83,7 +120,6 @@ NAMES = { | |||||||
|         "good_night": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.GOODNIGHT", |         "good_night": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.GOODNIGHT", | ||||||
|         "anti_crease": "HDRY_CMD&CTRL.PROGRAM_CYCLE_DETAIL.ANTICREASE_TITLE", |         "anti_crease": "HDRY_CMD&CTRL.PROGRAM_CYCLE_DETAIL.ANTICREASE_TITLE", | ||||||
|         "acqua_plus": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.ACQUAPLUS", |         "acqua_plus": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.ACQUAPLUS", | ||||||
|         "auto_dose": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.AUTODOSE", |  | ||||||
|         "spin_speed": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.SPINSPEED", |         "spin_speed": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.SPINSPEED", | ||||||
|         "still_hot": "IH.COILS_STATUS.STILL_HOT", |         "still_hot": "IH.COILS_STATUS.STILL_HOT", | ||||||
|         "pan_status": "IH.COILS_STATUS.PAN", |         "pan_status": "IH.COILS_STATUS.PAN", | ||||||
| @ -95,9 +131,19 @@ NAMES = { | |||||||
|         "child_lock": "AP.FOOTER_MENU_MORE.SECURITY_LOCK_TITLE", |         "child_lock": "AP.FOOTER_MENU_MORE.SECURITY_LOCK_TITLE", | ||||||
|         "on": "GLOBALS.GENERAL.ON", |         "on": "GLOBALS.GENERAL.ON", | ||||||
|         "prewash": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.PREWASH", |         "prewash": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.PREWASH", | ||||||
|  |         "buzzer": "DW_CMD&CTRL.SETTINGS.END_CYCLE_BUZZER", | ||||||
|  |         "holiday_mode": "REF.DASHBOARD_MENU_MORE_NOTIFICATIONS.HOLIDAY_MODE", | ||||||
|  |         "auto_set": "REF_CMD&CTRL.MODALITIES.ECO", | ||||||
|  |         "super_cool": "REF_CMD&CTRL.MODALITIES.SUPER_COOL", | ||||||
|  |         "super_freeze": "REF_CMD&CTRL.MODALITIES.SUPER_FREEZE", | ||||||
|  |         "freezer_door": ["GLOBALS.APPLIANCE_STATUS.DOOR_OPEN", "REF.ZONES.FREEZER"], | ||||||
|  |         "fridge_door": ["GLOBALS.APPLIANCE_STATUS.DOOR_OPEN", "REF.ZONES.FRIDGE"], | ||||||
|  |         "filter_replacement": "AP.MAINTENANCE.FILTER_REPLACEMENT", | ||||||
|     }, |     }, | ||||||
|     "button": { |     "button": { | ||||||
|         "induction_hob": "GLOBALS.APPLIANCES_NAME.IH", |         "induction_hob": "GLOBALS.APPLIANCES_NAME.IH", | ||||||
|  |         "start_program": ["WC.SET_PROGRAM.PROGRAM", "GLOBALS.GENERAL.START_ON"], | ||||||
|  |         "stop_program": ["WC.SET_PROGRAM.PROGRAM", "GLOBALS.GENERAL.STOP"], | ||||||
|     }, |     }, | ||||||
|     "select": { |     "select": { | ||||||
|         "dry_levels": "WASHING_CMD&CTRL.DRAWER_CYCLE_DRYING.TAB_LEVEL", |         "dry_levels": "WASHING_CMD&CTRL.DRAWER_CYCLE_DRYING.TAB_LEVEL", | ||||||
| @ -110,6 +156,8 @@ NAMES = { | |||||||
|         "programs_td": "WC.SET_PROGRAM.PROGRAM", |         "programs_td": "WC.SET_PROGRAM.PROGRAM", | ||||||
|         "programs_wm": "WC.SET_PROGRAM.PROGRAM", |         "programs_wm": "WC.SET_PROGRAM.PROGRAM", | ||||||
|         "eco_pilot": "AC.PROGRAM_DETAIL.ECO_PILOT", |         "eco_pilot": "AC.PROGRAM_DETAIL.ECO_PILOT", | ||||||
|  |         "remaining_time": "ENROLLMENT_COMMON.GENERAL.REMAINING_TIME", | ||||||
|  |         "ref_zones": "IH.COMMON.COIL", | ||||||
|     }, |     }, | ||||||
|     "sensor": { |     "sensor": { | ||||||
|         "dry_levels": "WASHING_CMD&CTRL.DRAWER_CYCLE_DRYING.TAB_LEVEL", |         "dry_levels": "WASHING_CMD&CTRL.DRAWER_CYCLE_DRYING.TAB_LEVEL", | ||||||
| @ -134,6 +182,8 @@ NAMES = { | |||||||
|         "det_liquid": "HUBS.WIDGET.STAINS_WIDGET.STAINS.SUGGESTED_DET_LIQUID", |         "det_liquid": "HUBS.WIDGET.STAINS_WIDGET.STAINS.SUGGESTED_DET_LIQUID", | ||||||
|         "errors": "ROBOT_CMD&CTRL.PHASE_ERROR.TITLE", |         "errors": "ROBOT_CMD&CTRL.PHASE_ERROR.TITLE", | ||||||
|         "programs": "OV.TABS.CURRENT_PROGRAM", |         "programs": "OV.TABS.CURRENT_PROGRAM", | ||||||
|  |         "room_temperature": "REF.SMART_DRINK_ASSISTANT.AMBIENT", | ||||||
|  |         "humidity": "AP.TITLES.HUMIDITY", | ||||||
|         "cycles_total": [ |         "cycles_total": [ | ||||||
|             "WASHING_CMD&CTRL.GENERAL.CYCLES", |             "WASHING_CMD&CTRL.GENERAL.CYCLES", | ||||||
|             "WC.VIRTUAL_WINE_STATS_COUNTRY.TOTAL", |             "WC.VIRTUAL_WINE_STATS_COUNTRY.TOTAL", | ||||||
| @ -154,6 +204,8 @@ NAMES = { | |||||||
|             "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_RESULT.WATER_EFFICIENCY", |             "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_RESULT.WATER_EFFICIENCY", | ||||||
|             "CUBE90_GLOBAL.GENERAL.CURRENT", |             "CUBE90_GLOBAL.GENERAL.CURRENT", | ||||||
|         ], |         ], | ||||||
|  |         "freezer_temp": "REF_CMD&CTRL.TEMPERATURE_DRAWER_FREEZER.FREEZER_TEMPERATURE_TITLE", | ||||||
|  |         "fridge_temp": "REF_CMD&CTRL.TEMPERATURE_DRAWER_FRIDGE.FRIDGE_TEMPERATURE_TITLE", | ||||||
|     }, |     }, | ||||||
|     "number": { |     "number": { | ||||||
|         "power_management": "HINTS.COOKING_WITH_INDUCTION.POWER_MANAGEMENT", |         "power_management": "HINTS.COOKING_WITH_INDUCTION.POWER_MANAGEMENT", | ||||||
| @ -166,6 +218,13 @@ NAMES = { | |||||||
|         "wash_time": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL.WASHING_TIME", |         "wash_time": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL.WASHING_TIME", | ||||||
|         "dry_time": "WASHING_CMD&CTRL.DRAWER_CYCLE_DRYING.TAB_TIME", |         "dry_time": "WASHING_CMD&CTRL.DRAWER_CYCLE_DRYING.TAB_TIME", | ||||||
|         "steam_level": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.STEAM_LEVEL", |         "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"], | ||||||
|  |     }, | ||||||
|  |     "climate": { | ||||||
|  |         "air_conditioner": "GLOBALS.APPLIANCES_NAME.AC", | ||||||
|  |         "fridge": "REF.ZONES.FRIDGE", | ||||||
|  |         "freezer": "REF.ZONES.FREEZER", | ||||||
|     }, |     }, | ||||||
| } | } | ||||||
|  |  | ||||||
| @ -267,6 +326,15 @@ def main(): | |||||||
|             for name, key in data.items(): |             for name, key in data.items(): | ||||||
|                 select = old.setdefault("entity", {}).setdefault(entity, {}) |                 select = old.setdefault("entity", {}).setdefault(entity, {}) | ||||||
|                 select.setdefault(name, {})["name"] = load_key(key, original, fallback) |                 select.setdefault(name, {})["name"] = load_key(key, original, fallback) | ||||||
|  |         for name, modes in CLIMATE.items(): | ||||||
|  |             climate = old.setdefault("entity", {}).setdefault("climate", {}) | ||||||
|  |             attr = climate.setdefault(name, {}).setdefault("state_attributes", {}) | ||||||
|  |             for mode, data in modes.items(): | ||||||
|  |                 mode_name = load_key(data["name"], original, fallback) | ||||||
|  |                 attr.setdefault(mode, {})["name"] = mode_name | ||||||
|  |                 for state, key in data["state"].items(): | ||||||
|  |                     mode_state = load_key(key, original, fallback) | ||||||
|  |                     attr[mode].setdefault("state", {})[state] = mode_state | ||||||
|         translate_login(old, original, fallback) |         translate_login(old, original, fallback) | ||||||
|         save_json(base_path / f"{language}.json", old) |         save_json(base_path / f"{language}.json", old) | ||||||
|  |  | ||||||
|  | |||||||
| @ -4,15 +4,21 @@ import re | |||||||
| import sys | import sys | ||||||
| from pathlib import Path | from pathlib import Path | ||||||
|  |  | ||||||
|  |  | ||||||
| if __name__ == "__main__": | if __name__ == "__main__": | ||||||
|     sys.path.insert(0, str(Path(__file__).parent.parent)) |     sys.path.insert(0, str(Path(__file__).parent.parent)) | ||||||
|  |  | ||||||
| from custom_components.hon.binary_sensor import BINARY_SENSORS | from custom_components.hon.binary_sensor import BINARY_SENSORS | ||||||
| from custom_components.hon.button import BUTTONS | from custom_components.hon.button import BUTTONS | ||||||
|  | from custom_components.hon.climate import CLIMATES | ||||||
| from custom_components.hon.number import NUMBERS | from custom_components.hon.number import NUMBERS | ||||||
| from custom_components.hon.select import SELECTS | from custom_components.hon.select import SELECTS | ||||||
| from custom_components.hon.sensor import SENSORS | from custom_components.hon.sensor import SENSORS | ||||||
| from custom_components.hon.switch import SWITCHES, HonSwitchEntityDescription | from custom_components.hon.switch import ( | ||||||
|  |     SWITCHES, | ||||||
|  |     HonControlSwitchEntityDescription, | ||||||
|  |     HonSwitchEntityDescription, | ||||||
|  | ) | ||||||
|  |  | ||||||
| APPLIANCES = { | APPLIANCES = { | ||||||
|     "AC": "Air conditioner", |     "AC": "Air conditioner", | ||||||
| @ -41,21 +47,26 @@ entities = { | |||||||
|     "select": SELECTS, |     "select": SELECTS, | ||||||
|     "sensor": SENSORS, |     "sensor": SENSORS, | ||||||
|     "switch": SWITCHES, |     "switch": SWITCHES, | ||||||
|  |     "climate": CLIMATES, | ||||||
| } | } | ||||||
|  |  | ||||||
| result = {} | result = {} | ||||||
| for entity_type, appliances in entities.items(): | for entity_type, appliances in entities.items(): | ||||||
|     for appliance, data in appliances.items(): |     for appliance, data in appliances.items(): | ||||||
|         for entity in data: |         for entity in data: | ||||||
|             if ( |             if isinstance(entity, HonControlSwitchEntityDescription): | ||||||
|                 isinstance(entity, HonSwitchEntityDescription) |  | ||||||
|                 and entity.entity_category != "config" |  | ||||||
|             ): |  | ||||||
|                 key = f"{entity.turn_on_key}` / `{entity.turn_off_key}" |                 key = f"{entity.turn_on_key}` / `{entity.turn_off_key}" | ||||||
|             else: |             else: | ||||||
|                 key = entity.key |                 key = entity.key | ||||||
|             attributes = (key, entity.name, entity.icon, entity_type) |             attributes = (key, entity.name, entity.icon, entity_type) | ||||||
|             category = "control" if entity_type in ["switch", "button"] else "sensor" |             category = ( | ||||||
|  |                 "control" | ||||||
|  |                 if entity.key.startswith("settings") | ||||||
|  |                 or isinstance(entity, HonSwitchEntityDescription) | ||||||
|  |                 or isinstance(entity, HonControlSwitchEntityDescription) | ||||||
|  |                 or entity_type in ["button", "climate"] | ||||||
|  |                 else "sensor" | ||||||
|  |             ) | ||||||
|             result.setdefault(appliance, {}).setdefault( |             result.setdefault(appliance, {}).setdefault( | ||||||
|                 entity.entity_category or category, [] |                 entity.entity_category or category, [] | ||||||
|             ).append(attributes) |             ).append(attributes) | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	