Compare commits
	
		
			37 Commits
		
	
	
		
			v0.7.0-bet
			...
			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 | |||
| 74f5887bb2 | |||
| 155b1ff91a | |||
| 7b80acb6b9 | |||
| 0e9bd97c7b | |||
| dae8b48075 | |||
| 7e40afae68 | |||
| c0fda4cd1b | |||
| 2802bcad25 | 
							
								
								
									
										280
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										280
									
								
								README.md
									
									
									
									
									
								
							| @ -1,17 +1,20 @@ | ||||
| # Haier hOn | ||||
| [](https://hacs.xyz) | ||||
| [](https://github.com/Andre0512/hon/releases/latest) | ||||
| [](https://github.com/Andre0512/pyhOn) | ||||
| [](https://github.com/Andre0512/hon/blob/main/LICENSE) | ||||
| [](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 | ||||
| - [Washing Machine](https://github.com/Andre0512/hon#washing-machine) | ||||
| - [Tumble Dryer](https://github.com/Andre0512/hon#tumble-dryer) | ||||
| - [Washer Dryer](https://github.com/Andre0512/hon#washer-dryer) | ||||
| - [Oven](https://github.com/Andre0512/hon#oven) | ||||
| - [Hob](https://github.com/Andre0512/hon#hob) | ||||
| - [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] | ||||
| - [Fridge](https://github.com/Andre0512/hon#fridge) [BETA] | ||||
|  | ||||
| ## Installation | ||||
| **Method 1:** [](https://my.home-assistant.io/redirect/hacs_repository/?owner=Andre0512&repository=hon&category=integration) | ||||
| @ -29,26 +32,74 @@ _Restart Home Assistant_ | ||||
| **Method 2**: Settings > Devices & Services > Add Integration > **Haier hOn**   | ||||
| _If the integration is not in the list, you need to clear the browser cache._ | ||||
|  | ||||
| ## Supported Languages | ||||
| Translation of internal names like programs are available for all languages which are official supported by the hOn app: | ||||
| * 🇨🇳 Chinese | ||||
| * 🇭🇷 Croatian | ||||
| * 🇨🇿 Czech | ||||
| * 🇳🇱 Dutch | ||||
| * 🇬🇧 English | ||||
| * 🇫🇷 French | ||||
| * 🇩🇪 German | ||||
| * 🇬🇷 Greek | ||||
| * 🇮🇱 Hebrew | ||||
| * 🇮🇹 Italian | ||||
| * 🇵🇱 Polish | ||||
| * 🇵🇹 Portuguese | ||||
| * 🇷🇴 Romanian | ||||
| * 🇷🇺 Russian | ||||
| * 🇷🇸 Serbian | ||||
| * 🇸🇰 Slovak | ||||
| * 🇸🇮 Slovenian | ||||
| * 🇪🇸 Spanish | ||||
| * 🇹🇷 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 | ||||
| Any kind of contribution is welcome! | ||||
| ### 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. | ||||
| For every device exists a hidden button which can be used to log all info of your appliance. | ||||
| 1. Enable the "Log Device Info" button   | ||||
| For every device exists a hidden button which can be used to log all infos of your appliance. | ||||
| 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._ | ||||
| 2. Press the button | ||||
| 3. Go to Settings > System > Logs, click _load full logs_ and scroll down   | ||||
|    _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 | ||||
|  | ||||
| 2. Press the button to create a notification | ||||
| 3. Open home assistant notifications and copy the message (Crtl+A, Ctrl+C) | ||||
| ### Add appliances or additional attributes | ||||
| 1. Install [pyhOn](https://github.com/Andre0512/pyhOn) | ||||
|    ```commandline | ||||
| @ -91,69 +142,53 @@ For every device exists a hidden button which can be used to log all info of you | ||||
| #### Tips and Tricks | ||||
| - If you want to have some states humanreadable, have a look at the `translation_key` parameter of the `EntityDescription`. | ||||
| - 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 | ||||
|  | ||||
| ## Tested Devices | ||||
| - Haier WD90-B14TEAM5 | ||||
| - Haier HD80-A3959 | ||||
| - Haier HWO60SM2F3XH | ||||
| - Hoover H-WASH 500 | ||||
| - Candy CIS633SCTTWIFI | ||||
| - Haier XIB 3B2SFS-80 | ||||
| - Haier XIB 6B2D3FB | ||||
|  | ||||
| ## Supported Languages | ||||
| Translation of internal names like programs are available for all languages which are official supported by the hOn app: | ||||
| * 🇨🇳 Chinese | ||||
| * 🇭🇷 Croatian | ||||
| * 🇨🇿 Czech | ||||
| * 🇳🇱 Dutch | ||||
| * 🇬🇧 English | ||||
| * 🇫🇷 French | ||||
| * 🇩🇪 German | ||||
| * 🇬🇷 Greek | ||||
| * 🇮🇱 Hebrew | ||||
| * 🇮🇹 Italian | ||||
| * 🇵🇱 Polish | ||||
| * 🇵🇹 Portuguese | ||||
| * 🇷🇴 Romanian | ||||
| * 🇷🇺 Russian | ||||
| * 🇷🇸 Serbian | ||||
| * 🇸🇰 Slovak | ||||
| * 🇸🇮 Slovenian | ||||
| * 🇪🇸 Spanish | ||||
| * 🇹🇷 Turkish | ||||
|  | ||||
|  | ||||
| ## About this Repo | ||||
| The existing integrations missed some features from the app I liked to have in HomeAssistant. | ||||
| 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.  | ||||
| I moved the api related stuff into the package [pyhOn](https://github.com/Andre0512/pyhOn). | ||||
| ## Special Thanks | ||||
| - 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. | ||||
| - 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. | ||||
| - 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 | ||||
|  | ||||
| ### Air conditioner | ||||
| #### Configs | ||||
| #### Controls | ||||
| | Name | Icon | Entity | Key | | ||||
| | --- | --- | --- | --- | | ||||
| | 10° Heating |  | `switch` | `startProgram.10degreeHeatingStatus` | | ||||
| | Echo |  | `switch` | `startProgram.echoStatus` | | ||||
| | Eco Mode |  | `switch` | `startProgram.ecoMode` | | ||||
| | Eco Pilot |  | `select` | `startProgram.humanSensingStatus` | | ||||
| | Health Mode |  | `switch` | `startProgram.healthMode` | | ||||
| | Mute |  | `switch` | `startProgram.muteStatus` | | ||||
| | 10° Heating | `heat-wave` | `switch` | `10degreeHeatingStatus` | | ||||
| | Air Conditioner | `air-conditioner` | `climate` | `settings` | | ||||
| | Echo | `account-voice` | `switch` | `echoStatus` | | ||||
| | Eco Mode |  | `switch` | `ecoMode` | | ||||
| | Eco Pilot | `run` | `select` | `settings.humanSensingStatus` | | ||||
| | 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` | | ||||
| | Rapid Mode |  | `switch` | `startProgram.rapidMode` | | ||||
| | 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` | | ||||
| | Selected Temperature | `thermometer` | `sensor` | `tempSel` | | ||||
|  | ||||
| ### Dish washer | ||||
| #### Controls | ||||
| | Name | Icon | Entity | Key | | ||||
| | --- | --- | --- | --- | | ||||
| | Buzzer Disabled | `volume-off` | `switch` | `buzzerDisabled` | | ||||
| | Dish Washer | `dishwasher` | `switch` | `startProgram` / `stopProgram` | | ||||
| #### Configs | ||||
| | Name | Icon | Entity | Key | | ||||
| @ -167,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` | | ||||
| | Open Door | `door-open` | `switch` | `startProgram.openDoor` | | ||||
| | Program |  | `select` | `startProgram.program` | | ||||
| | Remaining Time | `timer` | `select` | `startProgram.remainingTime` | | ||||
| | Temperature | `thermometer` | `select` | `startProgram.temp` | | ||||
| | Temperature | `thermometer` | `sensor` | `startProgram.temp` | | ||||
| | Three in One | `numeric-3-box-outline` | `switch` | `startProgram.threeInOne` | | ||||
| | Time | `timer` | `sensor` | `startProgram.remainingTime` | | ||||
| @ -207,7 +244,6 @@ I moved the api related stuff into the package [pyhOn](https://github.com/Andre0 | ||||
| | Pan Status | `pot-mix` | `binary_sensor` | `panStatus` | | ||||
| | Power | `lightning-bolt` | `sensor` | `power` | | ||||
| | Remaining Time | `timer` | `sensor` | `remainingTimeMM` | | ||||
| | Remote Control | `remote` | `binary_sensor` | `attributes.parameters.remoteCtrValid` | | ||||
| | Temperature | `thermometer` | `sensor` | `temp` | | ||||
|  | ||||
| ### Oven | ||||
| @ -229,11 +265,44 @@ I moved the api related stuff into the package [pyhOn](https://github.com/Andre0 | ||||
| | Connection | `wifi` | `binary_sensor` | `attributes.lastConnEvent.category` | | ||||
| | On | `power-cycle` | `binary_sensor` | `attributes.parameters.onOffStatus` | | ||||
| | Remaining Time | `timer` | `sensor` | `remainingTimeMM` | | ||||
| | Remote Control | `remote` | `binary_sensor` | `attributes.parameters.remoteCtrValid` | | ||||
| | Start Time | `clock-start` | `sensor` | `delayTime` | | ||||
| | Temperature | `thermometer` | `sensor` | `temp` | | ||||
| | 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 | ||||
| #### Controls | ||||
| | Name | Icon | Entity | Key | | ||||
| @ -251,57 +320,98 @@ I moved the api related stuff into the package [pyhOn](https://github.com/Andre0 | ||||
| | Dry level | `hair-dryer` | `select` | `startProgram.dryLevel` | | ||||
| | Energy Label | `lightning-bolt-circle` | `sensor` | `startProgram.energyLabel` | | ||||
| | Program |  | `select` | `startProgram.program` | | ||||
| | Steam Type | `weather-dust` | `sensor` | `steamType` | | ||||
| | Steam level | `smoke` | `sensor` | `startProgram.steamLevel` | | ||||
| | Sterilization | `clock-start` | `switch` | `startProgram.sterilizationStatus` | | ||||
| | Suggested Load | `weight-kilogram` | `sensor` | `startProgram.suggestedLoadD` | | ||||
| | Temperature level | `thermometer` | `number` | `startProgram.tempLevel` | | ||||
| #### Sensors | ||||
| | Name | Icon | Entity | Key | | ||||
| | --- | --- | --- | --- | | ||||
| | Anti-Crease |  | `binary_sensor` | `anticrease` | | ||||
| | Connection |  | `binary_sensor` | `attributes.lastConnEvent.category` | | ||||
| | Door |  | `binary_sensor` | `doorStatus` | | ||||
| | Dry level | `hair-dryer` | `sensor` | `dryLevel` | | ||||
| | Error | `math-log` | `sensor` | `errors` | | ||||
| | Machine Status | `information` | `sensor` | `machMode` | | ||||
| | Program | `tumble-dryer` | `sensor` | `prCode` | | ||||
| | Program | `tumble-dryer` | `sensor` | `programName` | | ||||
| | Program Phase | `washing-machine` | `sensor` | `prPhase` | | ||||
| | Remaining Time | `timer` | `sensor` | `remainingTimeMM` | | ||||
| | Start Time | `clock-start` | `sensor` | `delayTime` | | ||||
| | Steam level | `smoke` | `sensor` | `steamLevel` | | ||||
| | Temperature level | `thermometer` | `sensor` | `tempLevel` | | ||||
|  | ||||
| ### Washer dryer | ||||
| #### Controls | ||||
| | Name | Icon | Entity | Key | | ||||
| | --- | --- | --- | --- | | ||||
| | Pause Washing Machine | `pause` | `switch` | `pauseProgram` / `resumeProgram` | | ||||
| | Washing Machine | `washing-machine` | `switch` | `startProgram` / `stopProgram` | | ||||
| | Pause Washer Dryer | `pause` | `switch` | `pauseProgram` / `resumeProgram` | | ||||
| | Washer Dryer | `washing-machine` | `switch` | `startProgram` / `stopProgram` | | ||||
| #### Configs | ||||
| | Name | Icon | Entity | Key | | ||||
| | --- | --- | --- | --- | | ||||
| | Acqua Plus | `water-plus` | `switch` | `startProgram.acquaplus` | | ||||
| | Anti-Crease | `timer` | `switch` | `startProgram.antiCreaseTime` | | ||||
| | Anti-Crease | `timer` | `switch` | `startProgram.anticrease` | | ||||
| | Auto Dose Detergent | `cup` | `switch` | `startProgram.autoDetergentStatus` | | ||||
| | Auto Dose Softener | `teddy-bear` | `switch` | `startProgram.autoSoftenerStatus` | | ||||
| | Delay Status | `timer-check` | `switch` | `startProgram.delayStatus` | | ||||
| | Delay Time | `timer-plus` | `number` | `startProgram.delayTime` | | ||||
| | Dry Time |  | `number` | `startProgram.dryTime` | | ||||
| | Dry Time | `timer` | `select` | `startProgram.dryTimeMM` | | ||||
| | Dry level | `hair-dryer` | `select` | `startProgram.dryLevel` | | ||||
| | Energy Label | `lightning-bolt-circle` | `sensor` | `startProgram.energyLabel` | | ||||
| | Extra Rinse 1 | `numeric-1-box-multiple-outline` | `switch` | `startProgram.extraRinse1` | | ||||
| | Extra Rinse 2 | `numeric-2-box-multiple-outline` | `switch` | `startProgram.extraRinse2` | | ||||
| | Extra Rinse 3 | `numeric-3-box-multiple-outline` | `switch` | `startProgram.extraRinse3` | | ||||
| | Good Night | `weather-night` | `switch` | `startProgram.goodNight` | | ||||
| | Keep Fresh | `refresh-circle` | `switch` | `startProgram.permanentPressStatus` | | ||||
| | Liquid Detergent Dose | `cup-water` | `sensor` | `startProgram.liquidDetergentDose` | | ||||
| | Main Wash Time | `clock-start` | `number` | `startProgram.mainWashTime` | | ||||
| | Powder Detergent Dose | `cup` | `sensor` | `startProgram.powderDetergentDose` | | ||||
| | Program |  | `select` | `startProgram.program` | | ||||
| | Remaining Time | `timer` | `sensor` | `startProgram.remainingTime` | | ||||
| | Rinse Iterations | `rotate-right` | `number` | `startProgram.rinseIterations` | | ||||
| | Soak Prewash Selection | `tshirt-crew` | `switch` | `startProgram.haier_SoakPrewashSelection` | | ||||
| | Spin speed | `numeric` | `select` | `startProgram.spinSpeed` | | ||||
| | Steam Level | `weather-dust` | `number` | `startProgram.steamLevel` | | ||||
| | Steam Type | `weather-dust` | `sensor` | `steamType` | | ||||
| | Steam level | `smoke` | `sensor` | `startProgram.steamLevel` | | ||||
| | Sterilization | `clock-start` | `switch` | `startProgram.sterilizationStatus` | | ||||
| | Suggested Load | `weight-kilogram` | `sensor` | `startProgram.suggestedLoadW` | | ||||
| | Suggested Load | `weight-kilogram` | `sensor` | `startProgram.suggestedLoadD` | | ||||
| | Suggested weight | `weight-kilogram` | `sensor` | `startProgram.weight` | | ||||
| | Temperature | `thermometer` | `select` | `startProgram.temp` | | ||||
| | Temperature level | `thermometer` | `number` | `startProgram.tempLevel` | | ||||
| | Water hard | `water` | `number` | `startProgram.waterHard` | | ||||
| | lang |  | `number` | `startProgram.lang` | | ||||
| #### Sensors | ||||
| | Name | Icon | Entity | Key | | ||||
| | --- | --- | --- | --- | | ||||
| | Acqua Plus |  | `binary_sensor` | `acquaplus` | | ||||
| | Anti-Crease |  | `binary_sensor` | `anticrease` | | ||||
| | Current Electricity Used | `lightning-bolt` | `sensor` | `currentElectricityUsed` | | ||||
| | Current Program | `tumble-dryer` | `sensor` | `prCode` | | ||||
| | Current Temperature | `thermometer` | `sensor` | `temp` | | ||||
| | Current Water Used | `water` | `sensor` | `currentWaterUsed` | | ||||
| | Dirt level | `liquid-spot` | `sensor` | `dirtyLevel` | | ||||
| | Door |  | `binary_sensor` | `doorStatus` | | ||||
| | Door Lock |  | `binary_sensor` | `doorLockStatus` | | ||||
| | Dry level | `hair-dryer` | `sensor` | `dryLevel` | | ||||
| | Error | `math-log` | `sensor` | `errors` | | ||||
| | Extra Rinse 1 |  | `binary_sensor` | `extraRinse1` | | ||||
| | Extra Rinse 2 |  | `binary_sensor` | `extraRinse2` | | ||||
| | Extra Rinse 3 |  | `binary_sensor` | `extraRinse3` | | ||||
| | Good Night Mode |  | `binary_sensor` | `goodNight` | | ||||
| | Machine Status | `information` | `sensor` | `machMode` | | ||||
| | Pre Wash |  | `binary_sensor` | `startProgram.prewash` | | ||||
| | Program | `tumble-dryer` | `sensor` | `programName` | | ||||
| | Program Phase | `washing-machine` | `sensor` | `prPhase` | | ||||
| | Remaining Time | `timer` | `sensor` | `remainingTimeMM` | | ||||
| | Remote Control | `remote` | `binary_sensor` | `attributes.lastConnEvent.category` | | ||||
| | Spin Speed | `fast-forward-outline` | `sensor` | `spinSpeed` | | ||||
| | Spin Speed | `speedometer` | `sensor` | `spinSpeed` | | ||||
| | Start Time | `clock-start` | `sensor` | `delayTime` | | ||||
| | Steam level | `smoke` | `sensor` | `steamLevel` | | ||||
| | Temperature level | `thermometer` | `sensor` | `tempLevel` | | ||||
| | Total Power |  | `sensor` | `totalElectricityUsed` | | ||||
| | Total Wash Cycle | `counter` | `sensor` | `totalWashCycle` | | ||||
| | Total Water |  | `sensor` | `totalWaterUsed` | | ||||
| @ -315,28 +425,48 @@ I moved the api related stuff into the package [pyhOn](https://github.com/Andre0 | ||||
| #### Configs | ||||
| | Name | Icon | Entity | Key | | ||||
| | --- | --- | --- | --- | | ||||
| | Acqua Plus | `water-plus` | `switch` | `startProgram.acquaplus` | | ||||
| | Auto Dose Detergent | `cup` | `switch` | `startProgram.autoDetergentStatus` | | ||||
| | Auto Dose Softener | `teddy-bear` | `switch` | `startProgram.autoSoftenerStatus` | | ||||
| | Delay Status | `timer-check` | `switch` | `startProgram.delayStatus` | | ||||
| | Delay Time | `timer-plus` | `number` | `startProgram.delayTime` | | ||||
| | Energy Label | `lightning-bolt-circle` | `sensor` | `startProgram.energyLabel` | | ||||
| | Keep Fresh | `refresh-circle` | `switch` | `startProgram.autoSoftenerStatus` | | ||||
| | Extra Rinse 1 | `numeric-1-box-multiple-outline` | `switch` | `startProgram.extraRinse1` | | ||||
| | Extra Rinse 2 | `numeric-2-box-multiple-outline` | `switch` | `startProgram.extraRinse2` | | ||||
| | Extra Rinse 3 | `numeric-3-box-multiple-outline` | `switch` | `startProgram.extraRinse3` | | ||||
| | Good Night | `weather-night` | `switch` | `startProgram.goodNight` | | ||||
| | Keep Fresh | `refresh-circle` | `switch` | `startProgram.permanentPressStatus` | | ||||
| | Liquid Detergent Dose | `cup-water` | `sensor` | `startProgram.liquidDetergentDose` | | ||||
| | Main Wash Time | `clock-start` | `number` | `startProgram.mainWashTime` | | ||||
| | Powder Detergent Dose | `cup` | `sensor` | `startProgram.powderDetergentDose` | | ||||
| | Program |  | `select` | `startProgram.program` | | ||||
| | Remaining Time | `timer` | `sensor` | `startProgram.remainingTime` | | ||||
| | Rinse Iterations | `rotate-right` | `number` | `startProgram.rinseIterations` | | ||||
| | Soak Prewash Selection | `tshirt-crew` | `switch` | `startProgram.haier_SoakPrewashSelection` | | ||||
| | Spin speed | `numeric` | `select` | `startProgram.spinSpeed` | | ||||
| | Steam Level | `weather-dust` | `number` | `startProgram.steamLevel` | | ||||
| | Suggested Load | `weight-kilogram` | `sensor` | `startProgram.suggestedLoadW` | | ||||
| | Suggested weight | `weight-kilogram` | `sensor` | `startProgram.weight` | | ||||
| | Temperature | `thermometer` | `select` | `startProgram.temp` | | ||||
| | Water hard | `water` | `number` | `startProgram.waterHard` | | ||||
| | lang |  | `number` | `startProgram.lang` | | ||||
| #### Sensors | ||||
| | Name | Icon | Entity | Key | | ||||
| | --- | --- | --- | --- | | ||||
| | Acqua Plus |  | `binary_sensor` | `acquaplus` | | ||||
| | Current Electricity Used | `lightning-bolt` | `sensor` | `currentElectricityUsed` | | ||||
| | Current Temperature | `thermometer` | `sensor` | `temp` | | ||||
| | Current Water Used | `water` | `sensor` | `currentWaterUsed` | | ||||
| | Dirt level | `liquid-spot` | `sensor` | `dirtyLevel` | | ||||
| | Door |  | `binary_sensor` | `doorStatus` | | ||||
| | Door Lock |  | `binary_sensor` | `doorLockStatus` | | ||||
| | Error | `math-log` | `sensor` | `errors` | | ||||
| | Extra Rinse 1 |  | `binary_sensor` | `extraRinse1` | | ||||
| | Extra Rinse 2 |  | `binary_sensor` | `extraRinse2` | | ||||
| | Extra Rinse 3 |  | `binary_sensor` | `extraRinse3` | | ||||
| | Good Night Mode |  | `binary_sensor` | `goodNight` | | ||||
| | Machine Status | `information` | `sensor` | `machMode` | | ||||
| | Pre Wash |  | `binary_sensor` | `startProgram.prewash` | | ||||
| | Program Phase | `washing-machine` | `sensor` | `prPhase` | | ||||
| | Remaining Time | `timer` | `sensor` | `remainingTimeMM` | | ||||
| | Remote Control | `remote` | `binary_sensor` | `attributes.lastConnEvent.category` | | ||||
|  | ||||
							
								
								
									
										
											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 | ||||
| from dataclasses import dataclass | ||||
|  | ||||
| from pyhon import Hon | ||||
|  | ||||
| from homeassistant.components.binary_sensor import ( | ||||
|     BinarySensorEntityDescription, | ||||
|     BinarySensorDeviceClass, | ||||
| @ -10,8 +8,9 @@ from homeassistant.components.binary_sensor import ( | ||||
| ) | ||||
| from homeassistant.config_entries import ConfigEntry | ||||
| from homeassistant.core import callback | ||||
|  | ||||
| from .const import DOMAIN | ||||
| from .hon import HonCoordinator, HonEntity | ||||
| from .hon import HonEntity, unique_entities | ||||
|  | ||||
| _LOGGER = logging.getLogger(__name__) | ||||
|  | ||||
| @ -52,32 +51,6 @@ BINARY_SENSORS: dict[str, tuple[HonBinarySensorEntityDescription, ...]] = { | ||||
|             on_value="1", | ||||
|             translation_key="door_open", | ||||
|         ), | ||||
|     ), | ||||
|     "TD": ( | ||||
|         HonBinarySensorEntityDescription( | ||||
|             key="attributes.lastConnEvent.category", | ||||
|             name="Connection", | ||||
|             device_class=BinarySensorDeviceClass.CONNECTIVITY, | ||||
|             on_value="CONNECTED", | ||||
|             translation_key="connection", | ||||
|         ), | ||||
|         HonBinarySensorEntityDescription( | ||||
|             key="doorStatus", | ||||
|             name="Door", | ||||
|             device_class=BinarySensorDeviceClass.DOOR, | ||||
|             on_value="1", | ||||
|             translation_key="door_open", | ||||
|         ), | ||||
|     ), | ||||
|     "WD": ( | ||||
|         HonBinarySensorEntityDescription( | ||||
|             key="attributes.lastConnEvent.category", | ||||
|             name="Remote Control", | ||||
|             device_class=BinarySensorDeviceClass.CONNECTIVITY, | ||||
|             on_value="CONNECTED", | ||||
|             icon="mdi:remote", | ||||
|             translation_key="remote_control", | ||||
|         ), | ||||
|         HonBinarySensorEntityDescription( | ||||
|             key="startProgram.prewash", name="Pre Wash", translation_key="prewash" | ||||
|         ), | ||||
| @ -94,7 +67,23 @@ BINARY_SENSORS: dict[str, tuple[HonBinarySensorEntityDescription, ...]] = { | ||||
|             key="goodNight", name="Good Night Mode", translation_key="good_night" | ||||
|         ), | ||||
|         HonBinarySensorEntityDescription( | ||||
|             key="acquaplus", name="Acqua Plus", translation_key="aqua_plus" | ||||
|             key="acquaplus", name="Acqua Plus", translation_key="acqua_plus" | ||||
|         ), | ||||
|     ), | ||||
|     "TD": ( | ||||
|         HonBinarySensorEntityDescription( | ||||
|             key="attributes.lastConnEvent.category", | ||||
|             name="Connection", | ||||
|             device_class=BinarySensorDeviceClass.CONNECTIVITY, | ||||
|             on_value="CONNECTED", | ||||
|             translation_key="connection", | ||||
|         ), | ||||
|         HonBinarySensorEntityDescription( | ||||
|             key="doorStatus", | ||||
|             name="Door", | ||||
|             device_class=BinarySensorDeviceClass.DOOR, | ||||
|             on_value="1", | ||||
|             translation_key="door_open", | ||||
|         ), | ||||
|         HonBinarySensorEntityDescription( | ||||
|             key="anticrease", name="Anti-Crease", translation_key="anti_crease" | ||||
| @ -109,14 +98,6 @@ BINARY_SENSORS: dict[str, tuple[HonBinarySensorEntityDescription, ...]] = { | ||||
|             icon="mdi:wifi", | ||||
|             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( | ||||
|             key="attributes.parameters.onOffStatus", | ||||
|             name="On", | ||||
| @ -135,14 +116,6 @@ BINARY_SENSORS: dict[str, tuple[HonBinarySensorEntityDescription, ...]] = { | ||||
|             icon="mdi:wifi", | ||||
|             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( | ||||
|             key="attributes.parameters.onOffStatus", | ||||
|             name="On", | ||||
| @ -205,50 +178,91 @@ BINARY_SENSORS: dict[str, tuple[HonBinarySensorEntityDescription, ...]] = { | ||||
|             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", | ||||
|         ), | ||||
|     ), | ||||
| } | ||||
|  | ||||
|  | ||||
| BINARY_SENSORS["WD"] = unique_entities(BINARY_SENSORS["WM"], BINARY_SENSORS["TD"]) | ||||
|  | ||||
|  | ||||
| async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None: | ||||
|     hon: Hon = hass.data[DOMAIN][entry.unique_id] | ||||
|     coordinators = hass.data[DOMAIN]["coordinators"] | ||||
|     appliances = [] | ||||
|     for device in hon.appliances: | ||||
|         if device.unique_id in coordinators: | ||||
|             coordinator = hass.data[DOMAIN]["coordinators"][device.unique_id] | ||||
|         else: | ||||
|             coordinator = HonCoordinator(hass, device) | ||||
|             hass.data[DOMAIN]["coordinators"][device.unique_id] = coordinator | ||||
|         await coordinator.async_config_entry_first_refresh() | ||||
|  | ||||
|         if descriptions := BINARY_SENSORS.get(device.appliance_type): | ||||
|             for description in descriptions: | ||||
|                 if not device.get(description.key): | ||||
|                     _LOGGER.warning( | ||||
|                         "[%s] Can't setup %s", device.appliance_type, description.key | ||||
|                     ) | ||||
|                     continue | ||||
|                 appliances.extend( | ||||
|                     [ | ||||
|                         HonBinarySensorEntity( | ||||
|                             hass, coordinator, entry, device, description | ||||
|                         ) | ||||
|                     ] | ||||
|                 ) | ||||
|  | ||||
|     async_add_entities(appliances) | ||||
|     entities = [] | ||||
|     for device in hass.data[DOMAIN][entry.unique_id].appliances: | ||||
|         for description in BINARY_SENSORS.get(device.appliance_type, []): | ||||
|             if not device.get(description.key): | ||||
|                 continue | ||||
|             entity = HonBinarySensorEntity(hass, entry, device, description) | ||||
|             await entity.coordinator.async_config_entry_first_refresh() | ||||
|             entities.append(entity) | ||||
|     async_add_entities(entities) | ||||
|  | ||||
|  | ||||
| class HonBinarySensorEntity(HonEntity, BinarySensorEntity): | ||||
|     entity_description: HonBinarySensorEntityDescription | ||||
|  | ||||
|     def __init__(self, hass, coordinator, entry, device, description) -> None: | ||||
|         super().__init__(hass, entry, coordinator, device) | ||||
|  | ||||
|         self._coordinator = coordinator | ||||
|  | ||||
|         self.entity_description = description | ||||
|         self._attr_unique_id = f"{super().unique_id}{description.key}" | ||||
|  | ||||
|     @property | ||||
|     def is_on(self) -> bool: | ||||
|         return ( | ||||
|  | ||||
| @ -1,16 +1,14 @@ | ||||
| import logging | ||||
| import urllib | ||||
| from urllib.parse import quote | ||||
|  | ||||
| import pkg_resources | ||||
| from homeassistant.components import persistent_notification | ||||
| from homeassistant.components.button import ButtonEntityDescription, ButtonEntity | ||||
| from homeassistant.config_entries import ConfigEntry | ||||
| from pyhon import Hon | ||||
| from homeassistant.const import EntityCategory | ||||
| from pyhon.appliance import HonAppliance | ||||
|  | ||||
| from homeassistant.const import EntityCategory | ||||
| from .const import DOMAIN | ||||
| from .hon import HonCoordinator, HonEntity | ||||
| from .hon import HonEntity | ||||
|  | ||||
| _LOGGER = logging.getLogger(__name__) | ||||
|  | ||||
| @ -23,60 +21,68 @@ BUTTONS: dict[str, tuple[ButtonEntityDescription, ...]] = { | ||||
|             translation_key="induction_hob", | ||||
|         ), | ||||
|     ), | ||||
|     "REF": ( | ||||
|         ButtonEntityDescription( | ||||
|             key="startProgram", | ||||
|             name="Program Start", | ||||
|             icon="mdi:play", | ||||
|             translation_key="start_program", | ||||
|         ), | ||||
|         ButtonEntityDescription( | ||||
|             key="stopProgram", | ||||
|             name="Program Stop", | ||||
|             icon="mdi:stop", | ||||
|             translation_key="stop_program", | ||||
|         ), | ||||
|     ), | ||||
| } | ||||
|  | ||||
|  | ||||
| async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None: | ||||
|     hon: Hon = hass.data[DOMAIN][entry.unique_id] | ||||
|     coordinators = hass.data[DOMAIN]["coordinators"] | ||||
|     appliances = [] | ||||
|     for device in hon.appliances: | ||||
|         if device.unique_id in coordinators: | ||||
|             coordinator = hass.data[DOMAIN]["coordinators"][device.unique_id] | ||||
|         else: | ||||
|             coordinator = HonCoordinator(hass, device) | ||||
|             hass.data[DOMAIN]["coordinators"][device.unique_id] = coordinator | ||||
|         await coordinator.async_config_entry_first_refresh() | ||||
|  | ||||
|         if descriptions := BUTTONS.get(device.appliance_type): | ||||
|             for description in descriptions: | ||||
|                 if not device.commands.get(description.key): | ||||
|                     continue | ||||
|                 appliances.extend( | ||||
|                     [HonButtonEntity(hass, coordinator, entry, device, description)] | ||||
|                 ) | ||||
|         appliances.extend([HonFeatureRequestButton(hass, coordinator, entry, device)]) | ||||
|  | ||||
|     async_add_entities(appliances) | ||||
|     entities = [] | ||||
|     for device in hass.data[DOMAIN][entry.unique_id].appliances: | ||||
|         for description in BUTTONS.get(device.appliance_type, []): | ||||
|             if not device.commands.get(description.key): | ||||
|                 continue | ||||
|             entity = HonButtonEntity(hass, entry, device, description) | ||||
|             await entity.coordinator.async_config_entry_first_refresh() | ||||
|             entities.append(entity) | ||||
|         entities.append(HonFeatureRequestButton(hass, entry, device)) | ||||
|         await entities[-1].coordinator.async_config_entry_first_refresh() | ||||
|     async_add_entities(entities) | ||||
|  | ||||
|  | ||||
| class HonButtonEntity(HonEntity, ButtonEntity): | ||||
|     def __init__( | ||||
|         self, hass, coordinator, entry, device: HonAppliance, description | ||||
|     ) -> None: | ||||
|         super().__init__(hass, entry, coordinator, device) | ||||
|  | ||||
|         self._coordinator = coordinator | ||||
|         self._device = device | ||||
|         self.entity_description = description | ||||
|         self._attr_unique_id = f"{super().unique_id}{description.key}" | ||||
|     entity_description: ButtonEntityDescription | ||||
|  | ||||
|     async def async_press(self) -> None: | ||||
|         await self._device.commands[self.entity_description.key].send() | ||||
|  | ||||
|     @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): | ||||
|     def __init__(self, hass, coordinator, entry, device: HonAppliance) -> None: | ||||
|         super().__init__(hass, entry, coordinator, device) | ||||
|     def __init__(self, hass, entry, device: HonAppliance) -> None: | ||||
|         super().__init__(hass, entry, device) | ||||
|  | ||||
|         self._device = device | ||||
|         self._attr_unique_id = f"{super().unique_id}_log_device_info" | ||||
|         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_registry_enabled_default = False | ||||
|  | ||||
|     async def async_press(self) -> None: | ||||
|         pyhon_version = pkg_resources.get_distribution("pyhon").version | ||||
|         info = f"Device Info:\n{self._device.diagnose}pyhOnVersion: {pyhon_version}" | ||||
|         _LOGGER.error(info) | ||||
|         info = f"{self._device.diagnose()}pyhOnVersion: {pyhon_version}" | ||||
|         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 | ||||
| from dataclasses import dataclass | ||||
|  | ||||
| from homeassistant.components.climate import ( | ||||
|     ClimateEntity, | ||||
| @ -20,62 +21,84 @@ from homeassistant.const import ( | ||||
|     TEMP_CELSIUS, | ||||
| ) | ||||
| from homeassistant.core import callback | ||||
| from pyhon import Hon | ||||
| from pyhon import helper | ||||
| from pyhon.appliance import HonAppliance | ||||
|  | ||||
| from custom_components.hon.const import HON_HVAC_MODE, HON_FAN, HON_HVAC_PROGRAM, DOMAIN | ||||
| from custom_components.hon.hon import HonEntity, HonCoordinator | ||||
| from .const import HON_HVAC_MODE, HON_FAN, HON_HVAC_PROGRAM, DOMAIN | ||||
| from .hon import HonEntity | ||||
|  | ||||
| _LOGGER = logging.getLogger(__name__) | ||||
|  | ||||
|  | ||||
| @dataclass | ||||
| class HonACClimateEntityDescription(ClimateEntityDescription): | ||||
|     pass | ||||
|  | ||||
|  | ||||
| @dataclass | ||||
| class HonREFClimateEntityDescription(ClimateEntityDescription): | ||||
|     pass | ||||
|  | ||||
|  | ||||
| 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: | ||||
|     hon: Hon = hass.data[DOMAIN][entry.unique_id] | ||||
|     coordinators = hass.data[DOMAIN]["coordinators"] | ||||
|     appliances = [] | ||||
|     for device in hon.appliances: | ||||
|         if device.unique_id in coordinators: | ||||
|             coordinator = hass.data[DOMAIN]["coordinators"][device.unique_id] | ||||
|         else: | ||||
|             coordinator = HonCoordinator(hass, device) | ||||
|             hass.data[DOMAIN]["coordinators"][device.unique_id] = coordinator | ||||
|         await coordinator.async_config_entry_first_refresh() | ||||
|  | ||||
|         if descriptions := CLIMATES.get(device.appliance_type): | ||||
|             for description in descriptions: | ||||
|                 if not device.settings.get(description.key): | ||||
|     entities = [] | ||||
|     for device in hass.data[DOMAIN][entry.unique_id].appliances: | ||||
|         for description in CLIMATES.get(device.appliance_type, []): | ||||
|             if isinstance(description, HonACClimateEntityDescription): | ||||
|                 if description.key not in list(device.commands): | ||||
|                     continue | ||||
|                 appliances.extend( | ||||
|                     [HonClimateEntity(hass, coordinator, entry, device, description)] | ||||
|                 ) | ||||
|     async_add_entities(appliances) | ||||
|                 entity = HonACClimateEntity(hass, entry, device, description) | ||||
|             elif isinstance(description, HonREFClimateEntityDescription): | ||||
|                 if description.key not in device.available_settings: | ||||
|                     continue | ||||
|                 entity = HonREFClimateEntity(hass, entry, device, description) | ||||
|             else: | ||||
|                 continue | ||||
|             await entity.coordinator.async_config_entry_first_refresh() | ||||
|             entities.append(entity) | ||||
|     async_add_entities(entities) | ||||
|  | ||||
|  | ||||
| class HonClimateEntity(HonEntity, ClimateEntity): | ||||
|     def __init__( | ||||
|         self, hass, coordinator, entry, device: HonAppliance, description | ||||
|     ) -> None: | ||||
|         super().__init__(hass, entry, coordinator, device) | ||||
|         self._coordinator = coordinator | ||||
|         self._device = coordinator.device | ||||
|         self.entity_description = description | ||||
|         self._hass = hass | ||||
|         self._attr_unique_id = f"{super().unique_id}climate" | ||||
| class HonACClimateEntity(HonEntity, ClimateEntity): | ||||
|     def __init__(self, hass, entry, device: HonAppliance, description) -> None: | ||||
|         super().__init__(hass, entry, device, description) | ||||
|  | ||||
|         self._attr_temperature_unit = TEMP_CELSIUS | ||||
|         self._attr_target_temperature_step = PRECISION_WHOLE | ||||
|         self._attr_max_temp = device.settings["tempSel"].max | ||||
|         self._attr_min_temp = device.settings["tempSel"].min | ||||
|         self._attr_max_temp = device.settings["settings.tempSel"].max | ||||
|         self._attr_min_temp = device.settings["settings.tempSel"].min | ||||
|  | ||||
|         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] + [ | ||||
|             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 = [ | ||||
|             SWING_OFF, | ||||
| @ -89,22 +112,34 @@ class HonClimateEntity(HonEntity, ClimateEntity): | ||||
|             | ClimateEntityFeature.SWING_MODE | ||||
|         ) | ||||
|  | ||||
|         self._handle_coordinator_update(update=False) | ||||
|  | ||||
|     async def async_set_hvac_mode(self, hvac_mode): | ||||
|         if hvac_mode == HVACMode.OFF: | ||||
|             self._device.commands["stopProgram"].send() | ||||
|         if self._device.get("onOffStatus") == "0": | ||||
|             self._attr_hvac_mode = HVACMode.OFF | ||||
|         else: | ||||
|             self._device.settings["program"].value = HON_HVAC_PROGRAM[hvac_mode] | ||||
|             self._device.commands["startProgram"].send() | ||||
|             self._attr_hvac_mode = HON_HVAC_MODE[self._device.get("machMode")] | ||||
|         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.async_write_ha_state() | ||||
|  | ||||
|     async def async_set_fan_mode(self, fan_mode): | ||||
|         mode_number = list(HON_FAN.values()).index(fan_mode) | ||||
|         self._device.settings["windSpeed"].value = list(HON_FAN.keys())[mode_number] | ||||
|         self._device.commands["startProgram"].send() | ||||
|         self._device.settings["settings.windSpeed"].value = list(HON_FAN.keys())[ | ||||
|             mode_number | ||||
|         ] | ||||
|         await self._device.commands["settings"].send() | ||||
|         self.async_write_ha_state() | ||||
|  | ||||
|     async def async_set_swing_mode(self, swing_mode): | ||||
|         horizontal = self._device.settings["windDirectionHorizontal"] | ||||
|         vertical = self._device.settings["windDirectionVertical"] | ||||
|         horizontal = self._device.settings["settings.windDirectionHorizontal"] | ||||
|         vertical = self._device.settings["settings.windDirectionVertical"] | ||||
|         if swing_mode in [SWING_BOTH, SWING_HORIZONTAL]: | ||||
|             horizontal.value = "7" | ||||
|         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": | ||||
|             horizontal.value = "0" | ||||
|         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): | ||||
|         if (temperature := kwargs.get(ATTR_TEMPERATURE)) is None: | ||||
|             return False | ||||
|         self._device.settings["selTemp"].value = temperature | ||||
|         self._device.commands["startProgram"].send() | ||||
|         self._device.settings["settings.tempSel"].value = str(int(temperature)) | ||||
|         await self._device.commands["settings"].send() | ||||
|         self.async_write_ha_state() | ||||
|  | ||||
|     @callback | ||||
|     def _handle_coordinator_update(self, update=True) -> None: | ||||
|         self._attr_target_temperature = int(float(self._device.get("tempSel"))) | ||||
|         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": | ||||
|             self._attr_hvac_mode = HVACMode.OFF | ||||
|         else: | ||||
|             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"] | ||||
|         vertical = self._device.settings["windDirectionVertical"] | ||||
|         horizontal = self._device.get("windDirectionHorizontal") | ||||
|         vertical = self._device.get("windDirectionVertical") | ||||
|         if horizontal == "7" and vertical == "8": | ||||
|             self._attr_swing_mode = SWING_BOTH | ||||
|         elif horizontal == "7": | ||||
| @ -146,3 +181,80 @@ class HonClimateEntity(HonEntity, ClimateEntity): | ||||
|             self._attr_swing_mode = SWING_VERTICAL | ||||
|         else: | ||||
|             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 voluptuous as vol | ||||
|  | ||||
| from homeassistant import config_entries | ||||
| from homeassistant.const import CONF_EMAIL, CONF_PASSWORD | ||||
|  | ||||
|  | ||||
| @ -1,6 +1,10 @@ | ||||
| from homeassistant.components.climate import HVACMode | ||||
|  | ||||
| from custom_components.hon import climate | ||||
| from homeassistant.components.climate import ( | ||||
|     HVACMode, | ||||
|     FAN_LOW, | ||||
|     FAN_MEDIUM, | ||||
|     FAN_HIGH, | ||||
|     FAN_AUTO, | ||||
| ) | ||||
|  | ||||
| DOMAIN = "hon" | ||||
|  | ||||
| @ -17,7 +21,7 @@ PLATFORMS = [ | ||||
| HON_HVAC_MODE = { | ||||
|     "0": HVACMode.AUTO, | ||||
|     "1": HVACMode.COOL, | ||||
|     "2": HVACMode.COOL, | ||||
|     "2": HVACMode.DRY, | ||||
|     "3": HVACMode.DRY, | ||||
|     "4": HVACMode.HEAT, | ||||
|     "5": HVACMode.FAN_ONLY, | ||||
| @ -33,9 +37,287 @@ HON_HVAC_PROGRAM = { | ||||
| } | ||||
|  | ||||
| HON_FAN = { | ||||
|     "1": climate.FAN_HIGH, | ||||
|     "2": climate.FAN_MEDIUM, | ||||
|     "3": climate.FAN_LOW, | ||||
|     "4": climate.FAN_AUTO, | ||||
|     "5": climate.FAN_AUTO, | ||||
|     "1": FAN_HIGH, | ||||
|     "2": FAN_MEDIUM, | ||||
|     "3": FAN_LOW, | ||||
|     "4": FAN_AUTO, | ||||
|     "5": FAN_AUTO, | ||||
| } | ||||
|  | ||||
| # These languages are official supported by hOn | ||||
| LANGUAGES = [ | ||||
|     "cs",  # Czech | ||||
|     "de",  # German | ||||
|     "el",  # Greek | ||||
|     "en",  # English | ||||
|     "es",  # Spanish | ||||
|     "fr",  # French | ||||
|     "he",  # Hebrew | ||||
|     "hr",  # Croatian | ||||
|     "it",  # Italian | ||||
|     "nl",  # Dutch | ||||
|     "pl",  # Polish | ||||
|     "pt",  # Portuguese | ||||
|     "ro",  # Romanian | ||||
|     "ru",  # Russian | ||||
|     "sk",  # Slovak | ||||
|     "sl",  # Slovenian | ||||
|     "sr",  # Serbian | ||||
|     "tr",  # Turkish | ||||
|     "zh",  # Chinese | ||||
| ] | ||||
|  | ||||
| WASHING_PR_PHASE = { | ||||
|     "0": "WASHING_CMD&CTRL.PHASE_READY.TITLE", | ||||
|     "1": "WASHING_CMD&CTRL.PHASE_WASHING.TITLE", | ||||
|     "2": "WASHING_CMD&CTRL.PHASE_WASHING.TITLE", | ||||
|     "3": "WASHING_CMD&CTRL.PHASE_SPIN.TITLE", | ||||
|     "4": "WASHING_CMD&CTRL.PHASE_RINSE.TITLE", | ||||
|     "5": "WASHING_CMD&CTRL.PHASE_RINSE.TITLE", | ||||
|     "6": "WASHING_CMD&CTRL.PHASE_RINSE.TITLE", | ||||
|     "7": "WASHING_CMD&CTRL.PHASE_DRYING.TITLE", | ||||
|     "9": "WASHING_CMD&CTRL.PHASE_STEAM.TITLE", | ||||
|     "10": "WASHING_CMD&CTRL.PHASE_READY.TITLE", | ||||
|     "11": "WASHING_CMD&CTRL.PHASE_SPIN.TITLE", | ||||
|     "12": "WASHING_CMD&CTRL.PHASE_WEIGHTING.TITLE", | ||||
|     "13": "WASHING_CMD&CTRL.PHASE_WEIGHTING.TITLE", | ||||
|     "14": "WASHING_CMD&CTRL.PHASE_WASHING.TITLE", | ||||
|     "15": "WASHING_CMD&CTRL.PHASE_WASHING.TITLE", | ||||
|     "16": "WASHING_CMD&CTRL.PHASE_WASHING.TITLE", | ||||
|     "17": "WASHING_CMD&CTRL.PHASE_RINSE.TITLE", | ||||
|     "18": "WASHING_CMD&CTRL.PHASE_RINSE.TITLE", | ||||
|     "19": "WASHING_CMD&CTRL.PHASE_SCHEDULED.TITLE", | ||||
|     "20": "WASHING_CMD&CTRL.PHASE_TUMBLING.TITLE", | ||||
|     "24": "WASHING_CMD&CTRL.PHASE_REFRESH.TITLE", | ||||
|     "25": "WASHING_CMD&CTRL.PHASE_WASHING.TITLE", | ||||
|     "26": "WASHING_CMD&CTRL.PHASE_HEATING.TITLE", | ||||
|     "27": "WASHING_CMD&CTRL.PHASE_WASHING.TITLE", | ||||
| } | ||||
| MACH_MODE = { | ||||
|     "0": "WASHING_CMD&CTRL.PHASE_READY.TITLE",  # NO_STATE | ||||
|     "1": "WASHING_CMD&CTRL.PHASE_READY.TITLE",  # SELECTION_MODE | ||||
|     "2": "WASHING_CMD&CTRL.PHASE_RUNNING.TITLE",  # EXECUTION_MODE | ||||
|     "3": "WASHING_CMD&CTRL.PHASE_PAUSE.TITLE",  # PAUSE_MODE | ||||
|     "4": "WASHING_CMD&CTRL.PHASE_SCHEDULED.TITLE",  # DELAY_START_SELECTION_MODE | ||||
|     "5": "WASHING_CMD&CTRL.PHASE_SCHEDULED.TITLE",  # DELAY_START_EXECUTION_MODE | ||||
|     "6": "WASHING_CMD&CTRL.PHASE_ERROR.TITLE",  # ERROR_MODE | ||||
|     "7": "WASHING_CMD&CTRL.PHASE_READY.TITLE",  # END_MODE | ||||
|     "8": "Test",  # TEST_MODE | ||||
|     "9": "GLOBALS.APPLIANCE_STATUS.ENDING_PROGRAM",  # STOP_MODE | ||||
| } | ||||
| TUMBLE_DRYER_PR_PHASE = { | ||||
|     "0": "WASHING_CMD&CTRL.PHASE_READY.TITLE", | ||||
|     "1": "TD_CMD&CTRL.STATUS_PHASE.PHASE_HEAT_STROKE", | ||||
|     "2": "WASHING_CMD&CTRL.PHASE_DRYING.TITLE", | ||||
|     "3": "TD_CMD&CTRL.STATUS_PHASE.PHASE_COOLDOWN", | ||||
|     "11": "WASHING_CMD&CTRL.PHASE_READY.TITLE", | ||||
|     "13": "TD_CMD&CTRL.STATUS_PHASE.PHASE_COOLDOWN", | ||||
|     "14": "TD_CMD&CTRL.STATUS_PHASE.PHASE_HEAT_STROKE", | ||||
|     "15": "TD_CMD&CTRL.STATUS_PHASE.PHASE_HEAT_STROKE", | ||||
|     "16": "TD_CMD&CTRL.STATUS_PHASE.PHASE_COOLDOWN", | ||||
|     "17": "unknown", | ||||
|     "18": "WASHING_CMD&CTRL.PHASE_TUMBLING.DASHBOARD_TITLE", | ||||
|     "19": "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 = { | ||||
|     "0": "WASHING_CMD&CTRL.PHASE_READY.TITLE", | ||||
|     "1": "WASHING_CMD&CTRL.PHASE_PREWASH.TITLE", | ||||
|     "2": "WASHING_CMD&CTRL.PHASE_WASHING.TITLE", | ||||
|     "3": "WASHING_CMD&CTRL.PHASE_RINSE.TITLE", | ||||
|     "4": "WASHING_CMD&CTRL.PHASE_DRYING.TITLE", | ||||
|     "5": "WASHING_CMD&CTRL.PHASE_READY.TITLE", | ||||
|     "6": "WASHING_CMD&CTRL.PHASE_HOT_RINSE.TITLE", | ||||
| } | ||||
|  | ||||
| TUMBLE_DRYER_DRY_LEVEL = { | ||||
|     "0": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.NO_DRY", | ||||
|     "1": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OPTIONS_VALUES_DESCRIPTION.IRON_DRY", | ||||
|     "2": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.NO_DRY_IRON_TITLE", | ||||
|     "3": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.CUPBOARD_DRY_TITLE", | ||||
|     "4": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.EXTRA_DRY_TITLE", | ||||
|     "11": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.NO_DRY", | ||||
|     "12": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OPTIONS_VALUES_DESCRIPTION.IRON_DRY", | ||||
|     "13": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.CUPBOARD_DRY_TITLE", | ||||
|     "14": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.READY_TO_WEAR_TITLE", | ||||
|     "15": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.EXTRA_DRY_TITLE", | ||||
| } | ||||
|  | ||||
| AC_MACH_MODE = { | ||||
|     "0": "PROGRAMS.AC.IOT_AUTO", | ||||
|     "1": "PROGRAMS.AC.IOT_COOL", | ||||
|     "2": "PROGRAMS.AC.IOT_COOL", | ||||
|     "3": "PROGRAMS.AC.IOT_DRY", | ||||
|     "4": "PROGRAMS.AC.IOT_HEAT", | ||||
|     "5": "PROGRAMS.AC.IOT_FAN", | ||||
|     "6": "PROGRAMS.AC.IOT_FAN", | ||||
| } | ||||
|  | ||||
| AC_FAN_MODE = { | ||||
|     "1": "AC.PROGRAM_CARD.WIND_SPEED_HIGH", | ||||
|     "2": "AC.PROGRAM_CARD.WIND_SPEED_MID", | ||||
|     "3": "AC.PROGRAM_CARD.WIND_SPEED_LOW", | ||||
|     "4": "AC.PROGRAM_CARD.WIND_SPEED_AUTO", | ||||
|     "5": "AC.PROGRAM_CARD.WIND_SPEED_AUTO", | ||||
| } | ||||
|  | ||||
| AC_HUMAN_SENSE = { | ||||
|     "0": "AC.PROGRAM_DETAIL.TOUCH_OFF", | ||||
|     "1": "AC.PROGRAM_DETAIL.AVOID_TOUCH", | ||||
|     "2": "AC.PROGRAM_DETAIL.FOLLOW_TOUCH", | ||||
| } | ||||
|  | ||||
| REF_ZONES = { | ||||
|     "fridge": "REF.ZONES.FRIDGE", | ||||
|     "freezer": "REF.ZONES.FREEZER", | ||||
|     "vtroom1": "REF.ZONES.MY_ZONE_1", | ||||
|     "fridge_freezer": ["REF.ZONES.FRIDGE", " & ", "REF.ZONES.FREEZER"], | ||||
| } | ||||
|  | ||||
| PROGRAMS_TD = [ | ||||
|     "active_dry", | ||||
|     "allergy_care", | ||||
|     "all_in_one", | ||||
|     "antiallergy", | ||||
|     "anti_odours", | ||||
|     "auto_care", | ||||
|     "baby", | ||||
|     "bed_quilt", | ||||
|     "care_30", | ||||
|     "care_45", | ||||
|     "care_59", | ||||
|     "coloured", | ||||
|     "daily_45_min", | ||||
|     "daily_perfect_59_min", | ||||
|     "darks_and_coloured", | ||||
|     "delicates", | ||||
|     "duvet", | ||||
|     "eco", | ||||
|     "ecospeed_cottons", | ||||
|     "ecospeed_delicates", | ||||
|     "ecospeed_mixed", | ||||
|     "extra_hygiene", | ||||
|     "fitness", | ||||
|     "fresh_care", | ||||
|     "genius", | ||||
|     "hqd_baby_care", | ||||
|     "hqd_bath_towel", | ||||
|     "hqd_bed_sheets", | ||||
|     "hqd_bulky", | ||||
|     "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", | ||||
|     "hygiene", | ||||
|     "iot_checkup", | ||||
|     "iot_dry_anti_mites", | ||||
|     "iot_dry_baby", | ||||
|     "iot_dry_backpacks", | ||||
|     "iot_dry_bathrobe", | ||||
|     "iot_dry_bed_linen", | ||||
|     "iot_dry_bed_quilt", | ||||
|     "iot_dry_cotton", | ||||
|     "iot_dry_cuddly_toys", | ||||
|     "iot_dry_curtains", | ||||
|     "iot_dry_dehumidifier", | ||||
|     "iot_dry_delicates", | ||||
|     "iot_dry_delicate_tablecloths", | ||||
|     "iot_dry_denim_jeans", | ||||
|     "iot_dry_down_jacket", | ||||
|     "iot_dry_duvet", | ||||
|     "iot_dry_easy_iron_cotton", | ||||
|     "iot_dry_easy_iron_synthetics", | ||||
|     "iot_dry_gym_fit", | ||||
|     "iot_dry_lingerie", | ||||
|     "iot_dry_mixed", | ||||
|     "iot_dry_playsuits", | ||||
|     "iot_dry_rapid_30", | ||||
|     "iot_dry_rapid_59", | ||||
|     "iot_dry_refresh", | ||||
|     "iot_dry_regenerates_waterproof", | ||||
|     "iot_dry_relax_creases", | ||||
|     "iot_dry_shirts", | ||||
|     "iot_dry_small_load", | ||||
|     "iot_dry_swimsuits_and_bikinis", | ||||
|     "iot_dry_synthetics", | ||||
|     "iot_dry_synthetic_dry", | ||||
|     "iot_dry_tablecloths", | ||||
|     "iot_dry_technical_fabrics", | ||||
|     "iot_dry_warm_embrace", | ||||
|     "iot_dry_wool", | ||||
|     "jeans", | ||||
|     "mix_and_dry", | ||||
|     "pets", | ||||
|     "pre_iron", | ||||
|     "rapid_30", | ||||
|     "rapid_45", | ||||
|     "rapid_59", | ||||
|     "refresh", | ||||
|     "relax_creases", | ||||
|     "saving_30_min", | ||||
|     "shirts", | ||||
|     "shoes", | ||||
|     "small_load", | ||||
|     "soft_care", | ||||
|     "sport_plus", | ||||
|     "super_easy_iron_misti", | ||||
|     "super_easy_iron_xxl", | ||||
|     "super_fast_cottons", | ||||
|     "super_fast_delicates", | ||||
|     "synthetics", | ||||
|     "total_care", | ||||
|     "trainers", | ||||
|     "ultra_care", | ||||
|     "waterproof_revitalize", | ||||
|     "whites", | ||||
|     "wool", | ||||
|     "woolmark", | ||||
|     "xxl_load", | ||||
|     "zoom_59", | ||||
| ] | ||||
|  | ||||
| @ -1,11 +1,10 @@ | ||||
| import logging | ||||
| from datetime import timedelta | ||||
|  | ||||
| from pyhon.appliance import HonAppliance | ||||
|  | ||||
| from homeassistant.helpers.entity import DeviceInfo | ||||
| from homeassistant.helpers.update_coordinator import CoordinatorEntity | ||||
| from homeassistant.helpers.update_coordinator import DataUpdateCoordinator | ||||
| from pyhon.appliance import HonAppliance | ||||
|  | ||||
| from .const import DOMAIN | ||||
|  | ||||
| @ -15,14 +14,20 @@ _LOGGER = logging.getLogger(__name__) | ||||
| class HonEntity(CoordinatorEntity): | ||||
|     _attr_has_entity_name = True | ||||
|  | ||||
|     def __init__(self, hass, entry, coordinator, device: HonAppliance) -> None: | ||||
|     def __init__(self, hass, entry, device: HonAppliance, description=None) -> None: | ||||
|         coordinator = get_coordinator(hass, device) | ||||
|         super().__init__(coordinator) | ||||
|  | ||||
|         self._hon = hass.data[DOMAIN][entry.unique_id] | ||||
|         self._hass = hass | ||||
|         self._coordinator = coordinator | ||||
|         self._device = device | ||||
|  | ||||
|         self._attr_unique_id = self._device.unique_id | ||||
|         if description is not None: | ||||
|             self.entity_description = description | ||||
|             self._attr_unique_id = f"{self._device.unique_id}{description.key}" | ||||
|         else: | ||||
|             self._attr_unique_id = self._device.unique_id | ||||
|  | ||||
|     @property | ||||
|     def device_info(self): | ||||
| @ -50,3 +55,22 @@ class HonCoordinator(DataUpdateCoordinator): | ||||
|  | ||||
|     async def _async_update_data(self): | ||||
|         await self._device.update() | ||||
|  | ||||
|  | ||||
| def unique_entities(base_entities, new_entities): | ||||
|     result = list(base_entities) | ||||
|     existing_entities = [entity.key for entity in base_entities] | ||||
|     for entity in new_entities: | ||||
|         if entity.key not in existing_entities: | ||||
|             result.append(entity) | ||||
|     return tuple(result) | ||||
|  | ||||
|  | ||||
| def get_coordinator(hass, appliance): | ||||
|     coordinators = hass.data[DOMAIN]["coordinators"] | ||||
|     if appliance.unique_id in coordinators: | ||||
|         coordinator = hass.data[DOMAIN]["coordinators"][appliance.unique_id] | ||||
|     else: | ||||
|         coordinator = HonCoordinator(hass, appliance) | ||||
|         hass.data[DOMAIN]["coordinators"][appliance.unique_id] = coordinator | ||||
|     return coordinator | ||||
|  | ||||
| @ -1,11 +1,15 @@ | ||||
| { | ||||
|   "domain": "hon", | ||||
|   "name": "Haier hOn", | ||||
|   "codeowners": ["@Andre0512"], | ||||
|   "codeowners": [ | ||||
|     "@Andre0512" | ||||
|   ], | ||||
|   "config_flow": true, | ||||
|   "documentation": "https://github.com/Andre0512/hon/", | ||||
|   "iot_class": "cloud_polling", | ||||
|   "issue_tracker": "https://github.com/Andre0512/hon/issues", | ||||
|  "requirements": ["pyhOn==0.9.1"], | ||||
|   "version": "0.7.0-beta.7" | ||||
|   "requirements": [ | ||||
|     "pyhOn==0.11.2" | ||||
|   ], | ||||
|   "version": "0.8.0-beta.6" | ||||
| } | ||||
|  | ||||
| @ -1,9 +1,6 @@ | ||||
| from __future__ import annotations | ||||
|  | ||||
| from pyhon import Hon | ||||
| from pyhon.parameter.base import HonParameter | ||||
| from pyhon.parameter.fixed import HonParameterFixed | ||||
| from pyhon.parameter.range import HonParameterRange | ||||
| from dataclasses import dataclass | ||||
|  | ||||
| from homeassistant.components.number import ( | ||||
|     NumberEntity, | ||||
| @ -12,175 +9,188 @@ from homeassistant.components.number import ( | ||||
| from homeassistant.config_entries import ConfigEntry | ||||
| from homeassistant.const import UnitOfTime, UnitOfTemperature | ||||
| from homeassistant.core import callback | ||||
| from homeassistant.helpers.entity import EntityCategory | ||||
| from homeassistant.helpers.entity import EntityCategory, Entity | ||||
| from pyhon.parameter.range import HonParameterRange | ||||
|  | ||||
| from .const import DOMAIN | ||||
| from .hon import HonEntity, HonCoordinator | ||||
| from .hon import HonEntity, unique_entities | ||||
|  | ||||
|  | ||||
| @dataclass | ||||
| class HonConfigNumberEntityDescription(NumberEntityDescription): | ||||
|     entity_category: EntityCategory = EntityCategory.CONFIG | ||||
|  | ||||
|  | ||||
| @dataclass | ||||
| class HonNumberEntityDescription(NumberEntityDescription): | ||||
|     pass | ||||
|  | ||||
|  | ||||
| NUMBERS: dict[str, tuple[NumberEntityDescription, ...]] = { | ||||
|     "WM": ( | ||||
|         NumberEntityDescription( | ||||
|         HonConfigNumberEntityDescription( | ||||
|             key="startProgram.delayTime", | ||||
|             name="Delay Time", | ||||
|             icon="mdi:timer-plus", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||
|             translation_key="delay_time", | ||||
|         ), | ||||
|         NumberEntityDescription( | ||||
|         HonConfigNumberEntityDescription( | ||||
|             key="startProgram.rinseIterations", | ||||
|             name="Rinse Iterations", | ||||
|             icon="mdi:rotate-right", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="rinse_iterations", | ||||
|         ), | ||||
|         NumberEntityDescription( | ||||
|         HonConfigNumberEntityDescription( | ||||
|             key="startProgram.mainWashTime", | ||||
|             name="Main Wash Time", | ||||
|             icon="mdi:clock-start", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||
|             translation_key="wash_time", | ||||
|         ), | ||||
|         HonConfigNumberEntityDescription( | ||||
|             key="startProgram.steamLevel", | ||||
|             name="Steam Level", | ||||
|             icon="mdi:weather-dust", | ||||
|             translation_key="steam_level", | ||||
|         ), | ||||
|         HonConfigNumberEntityDescription( | ||||
|             key="startProgram.waterHard", | ||||
|             name="Water hard", | ||||
|             icon="mdi:water", | ||||
|             translation_key="water_hard", | ||||
|         ), | ||||
|         HonConfigNumberEntityDescription( | ||||
|             key="startProgram.lang", | ||||
|             name="lang", | ||||
|         ), | ||||
|     ), | ||||
|     "TD": ( | ||||
|         NumberEntityDescription( | ||||
|         HonConfigNumberEntityDescription( | ||||
|             key="startProgram.delayTime", | ||||
|             name="Delay time", | ||||
|             icon="mdi:timer-plus", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||
|             translation_key="delay_time", | ||||
|         ), | ||||
|         NumberEntityDescription( | ||||
|         HonConfigNumberEntityDescription( | ||||
|             key="startProgram.tempLevel", | ||||
|             name="Temperature level", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             icon="mdi:thermometer", | ||||
|             translation_key="tumbledryertemplevel", | ||||
|         ), | ||||
|         NumberEntityDescription( | ||||
|         HonConfigNumberEntityDescription( | ||||
|             key="startProgram.dryTime", | ||||
|             name="Dry Time", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="dry_time", | ||||
|         ), | ||||
|     ), | ||||
|     "WD": ( | ||||
|         NumberEntityDescription( | ||||
|             key="startProgram.delayTime", | ||||
|             name="Delay Time", | ||||
|             icon="mdi:timer-plus", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||
|             translation_key="delay_time", | ||||
|         ), | ||||
|     ), | ||||
|     "OV": ( | ||||
|         NumberEntityDescription( | ||||
|         HonConfigNumberEntityDescription( | ||||
|             key="startProgram.delayTime", | ||||
|             name="Delay time", | ||||
|             icon="mdi:timer-plus", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||
|             translation_key="delay_time", | ||||
|         ), | ||||
|         NumberEntityDescription( | ||||
|         HonConfigNumberEntityDescription( | ||||
|             key="startProgram.tempSel", | ||||
|             name="Target Temperature", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             icon="mdi:thermometer", | ||||
|             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||
|             translation_key="target_temperature", | ||||
|         ), | ||||
|         NumberEntityDescription( | ||||
|         HonConfigNumberEntityDescription( | ||||
|             key="startProgram.prTime", | ||||
|             name="Program Duration", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             icon="mdi:timelapse", | ||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||
|             translation_key="program_duration", | ||||
|         ), | ||||
|     ), | ||||
|     "IH": ( | ||||
|         NumberEntityDescription( | ||||
|         HonConfigNumberEntityDescription( | ||||
|             key="startProgram.temp", | ||||
|             name="Temperature", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             icon="mdi:thermometer", | ||||
|             translation_key="temperature", | ||||
|         ), | ||||
|         NumberEntityDescription( | ||||
|         HonConfigNumberEntityDescription( | ||||
|             key="startProgram.powerManagement", | ||||
|             name="Power Management", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             icon="mdi:timelapse", | ||||
|             translation_key="power_management", | ||||
|         ), | ||||
|     ), | ||||
|     "DW": ( | ||||
|         NumberEntityDescription( | ||||
|         HonConfigNumberEntityDescription( | ||||
|             key="startProgram.delayTime", | ||||
|             name="Delay time", | ||||
|             icon="mdi:timer-plus", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||
|             translation_key="delay_time", | ||||
|         ), | ||||
|         NumberEntityDescription( | ||||
|         HonConfigNumberEntityDescription( | ||||
|             key="startProgram.waterHard", | ||||
|             name="Water hard", | ||||
|             icon="mdi:water", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="water_hard", | ||||
|         ), | ||||
|     ), | ||||
|     "AC": ( | ||||
|         NumberEntityDescription( | ||||
|             key="startProgram.tempSel", | ||||
|         HonNumberEntityDescription( | ||||
|             key="settings.tempSel", | ||||
|             name="Target Temperature", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             icon="mdi:thermometer", | ||||
|             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||
|             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"]) | ||||
|  | ||||
|  | ||||
| async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None: | ||||
|     hon: Hon = hass.data[DOMAIN][entry.unique_id] | ||||
|     coordinators = hass.data[DOMAIN]["coordinators"] | ||||
|     appliances = [] | ||||
|     for device in hon.appliances: | ||||
|         if device.unique_id in coordinators: | ||||
|             coordinator = hass.data[DOMAIN]["coordinators"][device.unique_id] | ||||
|         else: | ||||
|             coordinator = HonCoordinator(hass, device) | ||||
|             hass.data[DOMAIN]["coordinators"][device.unique_id] = coordinator | ||||
|         await coordinator.async_config_entry_first_refresh() | ||||
|  | ||||
|         if descriptions := NUMBERS.get(device.appliance_type): | ||||
|             for description in descriptions: | ||||
|                 if not device.settings.get(description.key): | ||||
|                     continue | ||||
|                 appliances.extend( | ||||
|                     [HonNumberEntity(hass, coordinator, entry, device, description)] | ||||
|                 ) | ||||
|  | ||||
|     async_add_entities(appliances) | ||||
|     entities = [] | ||||
|     for device in hass.data[DOMAIN][entry.unique_id].appliances: | ||||
|         for description in NUMBERS.get(device.appliance_type, []): | ||||
|             if description.key not in device.available_settings: | ||||
|                 continue | ||||
|             if isinstance(description, HonNumberEntityDescription): | ||||
|                 entity = HonNumberEntity(hass, entry, device, description) | ||||
|             elif isinstance(description, HonConfigNumberEntityDescription): | ||||
|                 entity = HonConfigNumberEntity(hass, entry, device, description) | ||||
|             else: | ||||
|                 continue | ||||
|             await entity.coordinator.async_config_entry_first_refresh() | ||||
|             entities.append(entity) | ||||
|     async_add_entities(entities) | ||||
|  | ||||
|  | ||||
| class HonNumberEntity(HonEntity, NumberEntity): | ||||
|     def __init__(self, hass, coordinator, entry, device, description) -> None: | ||||
|         super().__init__(hass, entry, coordinator, device) | ||||
|     entity_description: HonNumberEntityDescription | ||||
|  | ||||
|     def __init__(self, hass, entry, device, description) -> None: | ||||
|         super().__init__(hass, entry, device, description) | ||||
|  | ||||
|         self._coordinator = coordinator | ||||
|         self._device = device | ||||
|         self._data = device.settings[description.key] | ||||
|         self.entity_description = description | ||||
|         self._attr_unique_id = f"{super().unique_id}{description.key}" | ||||
|  | ||||
|         if isinstance(self._data, HonParameterRange): | ||||
|             self._attr_native_max_value = self._data.max | ||||
|             self._attr_native_min_value = self._data.min | ||||
| @ -192,12 +202,10 @@ class HonNumberEntity(HonEntity, NumberEntity): | ||||
|  | ||||
|     async def async_set_native_value(self, value: float) -> None: | ||||
|         setting = self._device.settings[self.entity_description.key] | ||||
|         if not ( | ||||
|             isinstance(setting, HonParameter) or isinstance(setting, HonParameterFixed) | ||||
|         ): | ||||
|         if isinstance(setting, HonParameterRange): | ||||
|             setting.value = value | ||||
|         if self._device.appliance_type in ["AC"]: | ||||
|             self._device.commands["startProgram"].send() | ||||
|         command = self.entity_description.key.split(".")[0] | ||||
|         await self._device.commands[command].send() | ||||
|         await self.coordinator.async_refresh() | ||||
|  | ||||
|     @callback | ||||
| @ -209,3 +217,27 @@ class HonNumberEntity(HonEntity, NumberEntity): | ||||
|             self._attr_native_step = setting.step | ||||
|         self._attr_native_value = setting.value | ||||
|         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,156 +1,169 @@ | ||||
| from __future__ import annotations | ||||
|  | ||||
| import logging | ||||
|  | ||||
| from pyhon import Hon | ||||
| from pyhon.appliance import HonAppliance | ||||
| from pyhon.parameter.fixed import HonParameterFixed | ||||
| from dataclasses import dataclass | ||||
|  | ||||
| from homeassistant.components.select import SelectEntity, SelectEntityDescription | ||||
| from homeassistant.config_entries import ConfigEntry | ||||
| from homeassistant.const import UnitOfTemperature, UnitOfTime, REVOLUTIONS_PER_MINUTE | ||||
| from homeassistant.core import callback | ||||
| from homeassistant.helpers.entity import EntityCategory | ||||
| from homeassistant.helpers.entity import EntityCategory, Entity | ||||
| from pyhon.appliance import HonAppliance | ||||
| from pyhon.parameter.fixed import HonParameterFixed | ||||
|  | ||||
| from .const import DOMAIN | ||||
| from .hon import HonEntity, HonCoordinator | ||||
| from .hon import HonEntity, unique_entities | ||||
|  | ||||
| _LOGGER = logging.getLogger(__name__) | ||||
|  | ||||
|  | ||||
| @dataclass | ||||
| class HonSelectEntityDescription(SelectEntityDescription): | ||||
|     pass | ||||
|  | ||||
|  | ||||
| @dataclass | ||||
| class HonConfigSelectEntityDescription(SelectEntityDescription): | ||||
|     entity_category: EntityCategory = EntityCategory.CONFIG | ||||
|  | ||||
|  | ||||
| SELECTS = { | ||||
|     "WM": ( | ||||
|         SelectEntityDescription( | ||||
|         HonConfigSelectEntityDescription( | ||||
|             key="startProgram.spinSpeed", | ||||
|             name="Spin speed", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             icon="mdi:numeric", | ||||
|             unit_of_measurement=REVOLUTIONS_PER_MINUTE, | ||||
|             translation_key="spin_speed", | ||||
|         ), | ||||
|         SelectEntityDescription( | ||||
|         HonConfigSelectEntityDescription( | ||||
|             key="startProgram.temp", | ||||
|             name="Temperature", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             icon="mdi:thermometer", | ||||
|             unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||
|             translation_key="temperature", | ||||
|         ), | ||||
|         SelectEntityDescription( | ||||
|         HonConfigSelectEntityDescription( | ||||
|             key="startProgram.program", | ||||
|             name="Program", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="programs_wm", | ||||
|         ), | ||||
|     ), | ||||
|     "TD": ( | ||||
|         SelectEntityDescription( | ||||
|         HonConfigSelectEntityDescription( | ||||
|             key="startProgram.program", | ||||
|             name="Program", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="programs_td", | ||||
|         ), | ||||
|         SelectEntityDescription( | ||||
|         HonConfigSelectEntityDescription( | ||||
|             key="startProgram.dryTimeMM", | ||||
|             name="Dry Time", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             icon="mdi:timer", | ||||
|             unit_of_measurement=UnitOfTime.MINUTES, | ||||
|             translation_key="dry_time", | ||||
|         ), | ||||
|         SelectEntityDescription( | ||||
|         HonConfigSelectEntityDescription( | ||||
|             key="startProgram.dryLevel", | ||||
|             name="Dry level", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             icon="mdi:hair-dryer", | ||||
|             translation_key="dry_levels", | ||||
|         ), | ||||
|     ), | ||||
|     "WD": ( | ||||
|         SelectEntityDescription( | ||||
|             key="startProgram.program", | ||||
|             name="Program", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="programs_wm", | ||||
|         ), | ||||
|     ), | ||||
|     "OV": ( | ||||
|         SelectEntityDescription( | ||||
|         HonConfigSelectEntityDescription( | ||||
|             key="startProgram.program", | ||||
|             name="Program", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="programs_ov", | ||||
|         ), | ||||
|     ), | ||||
|     "IH": ( | ||||
|         SelectEntityDescription( | ||||
|         HonConfigSelectEntityDescription( | ||||
|             key="startProgram.program", | ||||
|             name="Program", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="programs_ih", | ||||
|         ), | ||||
|     ), | ||||
|     "DW": ( | ||||
|         SelectEntityDescription( | ||||
|         HonConfigSelectEntityDescription( | ||||
|             key="startProgram.program", | ||||
|             name="Program", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="programs_dw", | ||||
|         ), | ||||
|         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": ( | ||||
|         SelectEntityDescription( | ||||
|         HonSelectEntityDescription( | ||||
|             key="startProgram.program", | ||||
|             name="Program", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="programs_ac", | ||||
|         ), | ||||
|         SelectEntityDescription( | ||||
|             key="startProgram.humanSensingStatus", | ||||
|         HonSelectEntityDescription( | ||||
|             key="settings.humanSensingStatus", | ||||
|             name="Eco Pilot", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             icon="mdi:run", | ||||
|             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"]) | ||||
|  | ||||
|  | ||||
| async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None: | ||||
|     hon: Hon = hass.data[DOMAIN][entry.unique_id] | ||||
|     coordinators = hass.data[DOMAIN]["coordinators"] | ||||
|     appliances = [] | ||||
|     for device in hon.appliances: | ||||
|         if device.unique_id in coordinators: | ||||
|             coordinator = hass.data[DOMAIN]["coordinators"][device.unique_id] | ||||
|         else: | ||||
|             coordinator = HonCoordinator(hass, device) | ||||
|             hass.data[DOMAIN]["coordinators"][device.unique_id] = coordinator | ||||
|         await coordinator.async_config_entry_first_refresh() | ||||
|  | ||||
|         if descriptions := SELECTS.get(device.appliance_type): | ||||
|             for description in descriptions: | ||||
|                 if not device.settings.get(description.key): | ||||
|                     continue | ||||
|                 appliances.extend( | ||||
|                     [HonSelectEntity(hass, coordinator, entry, device, description)] | ||||
|                 ) | ||||
|     async_add_entities(appliances) | ||||
|     entities = [] | ||||
|     for device in hass.data[DOMAIN][entry.unique_id].appliances: | ||||
|         for description in SELECTS.get(device.appliance_type, []): | ||||
|             if description.key not in device.available_settings: | ||||
|                 continue | ||||
|             if isinstance(description, HonSelectEntityDescription): | ||||
|                 entity = HonSelectEntity(hass, entry, device, description) | ||||
|             elif isinstance(description, HonConfigSelectEntityDescription): | ||||
|                 entity = HonConfigSelectEntity(hass, entry, device, description) | ||||
|             else: | ||||
|                 continue | ||||
|             await entity.coordinator.async_config_entry_first_refresh() | ||||
|             entities.append(entity) | ||||
|     async_add_entities(entities) | ||||
|  | ||||
|  | ||||
| class HonSelectEntity(HonEntity, SelectEntity): | ||||
|     def __init__( | ||||
|         self, hass, coordinator, entry, device: HonAppliance, description | ||||
|     ) -> None: | ||||
|         super().__init__(hass, entry, coordinator, device) | ||||
|     entity_description: HonSelectEntityDescription | ||||
|  | ||||
|         self._coordinator = coordinator | ||||
|         self._device = device | ||||
|         self.entity_description = description | ||||
|         self._attr_unique_id = f"{super().unique_id}{description.key}" | ||||
|     def __init__(self, hass, entry, device: HonAppliance, description) -> None: | ||||
|         super().__init__(hass, entry, device, description) | ||||
|  | ||||
|         if not isinstance(self._device.settings[description.key], HonParameterFixed): | ||||
|             self._attr_options: list[str] = device.settings[description.key].values | ||||
|         if not (setting := self._device.settings.get(description.key)): | ||||
|             self._attr_options: list[str] = [] | ||||
|         elif not isinstance(setting, HonParameterFixed): | ||||
|             self._attr_options: list[str] = setting.values | ||||
|         else: | ||||
|             self._attr_options: list[str] = [device.settings[description.key].value] | ||||
|             self._attr_options: list[str] = [setting.value] | ||||
|  | ||||
|     @property | ||||
|     def current_option(self) -> str | None: | ||||
| @ -161,8 +174,8 @@ class HonSelectEntity(HonEntity, SelectEntity): | ||||
|  | ||||
|     async def async_select_option(self, option: str) -> None: | ||||
|         self._device.settings[self.entity_description.key].value = option | ||||
|         if self._device.appliance_type in ["AC"]: | ||||
|             self._device.commands["startProgram"].send() | ||||
|         command = self.entity_description.key.split(".")[0] | ||||
|         await self._device.commands[command].send() | ||||
|         await self.coordinator.async_refresh() | ||||
|  | ||||
|     @callback | ||||
| @ -177,3 +190,25 @@ class HonSelectEntity(HonEntity, SelectEntity): | ||||
|             self._attr_options: list[str] = setting.values | ||||
|             self._attr_native_value = setting.value | ||||
|         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 | ||||
|  | ||||
| from pyhon import Hon | ||||
| from dataclasses import dataclass | ||||
|  | ||||
| from homeassistant.components.sensor import ( | ||||
|     SensorEntity, | ||||
| @ -9,6 +8,7 @@ from homeassistant.components.sensor import ( | ||||
|     SensorEntityDescription, | ||||
| ) | ||||
| from homeassistant.config_entries import ConfigEntry | ||||
| from homeassistant.const import PERCENTAGE | ||||
| from homeassistant.const import ( | ||||
|     REVOLUTIONS_PER_MINUTE, | ||||
|     UnitOfEnergy, | ||||
| @ -21,22 +21,34 @@ from homeassistant.const import ( | ||||
| from homeassistant.core import callback | ||||
| from homeassistant.helpers.entity import EntityCategory | ||||
| from homeassistant.helpers.typing import StateType | ||||
| from homeassistant.const import PERCENTAGE | ||||
|  | ||||
| from . import const | ||||
| from .const import DOMAIN | ||||
| from .hon import HonCoordinator, HonEntity | ||||
| from .hon import HonEntity, unique_entities | ||||
|  | ||||
| _LOGGER = logging.getLogger(__name__) | ||||
|  | ||||
|  | ||||
| @dataclass | ||||
| class HonConfigSensorEntityDescription(SensorEntityDescription): | ||||
|     entity_category: EntityCategory = EntityCategory.CONFIG | ||||
|  | ||||
|  | ||||
| @dataclass | ||||
| class HonSensorEntityDescription(SensorEntityDescription): | ||||
|     pass | ||||
|  | ||||
|  | ||||
| SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | ||||
|     "WM": ( | ||||
|         SensorEntityDescription( | ||||
|         HonSensorEntityDescription( | ||||
|             key="prPhase", | ||||
|             name="Program Phase", | ||||
|             icon="mdi:washing-machine", | ||||
|             device_class=SensorDeviceClass.ENUM, | ||||
|             translation_key="program_phases_wm", | ||||
|             options=list(const.WASHING_PR_PHASE), | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonSensorEntityDescription( | ||||
|             key="totalElectricityUsed", | ||||
|             name="Total Power", | ||||
|             device_class=SensorDeviceClass.ENERGY, | ||||
| @ -44,7 +56,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | ||||
|             native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR, | ||||
|             translation_key="energy_total", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonSensorEntityDescription( | ||||
|             key="totalWaterUsed", | ||||
|             name="Total Water", | ||||
|             device_class=SensorDeviceClass.WATER, | ||||
| @ -52,14 +64,14 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | ||||
|             native_unit_of_measurement=UnitOfVolume.LITERS, | ||||
|             translation_key="water_total", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonSensorEntityDescription( | ||||
|             key="totalWashCycle", | ||||
|             name="Total Wash Cycle", | ||||
|             state_class=SensorStateClass.TOTAL_INCREASING, | ||||
|             icon="mdi:counter", | ||||
|             translation_key="cycles_total", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonSensorEntityDescription( | ||||
|             key="currentElectricityUsed", | ||||
|             name="Current Electricity Used", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
| @ -68,32 +80,33 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | ||||
|             icon="mdi:lightning-bolt", | ||||
|             translation_key="energy_current", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonSensorEntityDescription( | ||||
|             key="currentWaterUsed", | ||||
|             name="Current Water Used", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             icon="mdi:water", | ||||
|             translation_key="water_current", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonConfigSensorEntityDescription( | ||||
|             key="startProgram.weight", | ||||
|             name="Suggested weight", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             native_unit_of_measurement=UnitOfMass.KILOGRAMS, | ||||
|             icon="mdi:weight-kilogram", | ||||
|             translation_key="suggested_load", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonSensorEntityDescription( | ||||
|             key="machMode", | ||||
|             name="Machine Status", | ||||
|             icon="mdi:information", | ||||
|             device_class=SensorDeviceClass.ENUM, | ||||
|             translation_key="washing_modes", | ||||
|             options=list(const.MACH_MODE), | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonSensorEntityDescription( | ||||
|             key="errors", name="Error", icon="mdi:math-log", translation_key="errors" | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonSensorEntityDescription( | ||||
|             key="remainingTimeMM", | ||||
|             name="Remaining Time", | ||||
|             icon="mdi:timer", | ||||
| @ -101,207 +114,56 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | ||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||
|             translation_key="remaining_time", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonSensorEntityDescription( | ||||
|             key="spinSpeed", | ||||
|             name="Spin Speed", | ||||
|             icon="mdi:speedometer", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||
|             translation_key="spin_speed", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|             key="startProgram.energyLabel", | ||||
|             name="Energy Label", | ||||
|             icon="mdi:lightning-bolt-circle", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="energy_label", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|             key="startProgram.liquidDetergentDose", | ||||
|             name="Liquid Detergent Dose", | ||||
|             icon="mdi:cup-water", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="det_liquid", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|             key="startProgram.powderDetergentDose", | ||||
|             name="Powder Detergent Dose", | ||||
|             icon="mdi:cup", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="det_dust", | ||||
|         ), | ||||
|     ), | ||||
|     "TD": ( | ||||
|         SensorEntityDescription( | ||||
|             key="machMode", | ||||
|             name="Machine Status", | ||||
|             icon="mdi:information", | ||||
|             translation_key="washing_modes", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|             key="errors", name="Error", icon="mdi:math-log", translation_key="errors" | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|             key="remainingTimeMM", | ||||
|             name="Remaining Time", | ||||
|             icon="mdi:timer", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||
|             translation_key="remaining_time", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|             key="delayTime", | ||||
|             name="Start Time", | ||||
|             icon="mdi:clock-start", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||
|             translation_key="delay_time", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|             key="prCode", | ||||
|             name="Program", | ||||
|             icon="mdi:tumble-dryer", | ||||
|             translation_key="tumbledryerprogram", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|             key="prPhase", | ||||
|             name="Program Phase", | ||||
|             icon="mdi:washing-machine", | ||||
|             translation_key="program_phases_td", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|             key="dryLevel", | ||||
|             name="Dry level", | ||||
|             icon="mdi:hair-dryer", | ||||
|             translation_key="dry_levels", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|             key="tempLevel", | ||||
|             name="Temperature level", | ||||
|             icon="mdi:thermometer", | ||||
|             translation_key="tumbledryertemplevel", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|             key="startProgram.suggestedLoadD", | ||||
|             name="Suggested Load", | ||||
|             icon="mdi:weight-kilogram", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             native_unit_of_measurement=UnitOfMass.KILOGRAMS, | ||||
|             translation_key="suggested_load", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|             key="startProgram.energyLabel", | ||||
|             name="Energy Label", | ||||
|             icon="mdi:lightning-bolt-circle", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="energy_label", | ||||
|         ), | ||||
|     ), | ||||
|     "WD": ( | ||||
|         SensorEntityDescription( | ||||
|             key="totalElectricityUsed", | ||||
|             name="Total Power", | ||||
|             device_class=SensorDeviceClass.ENERGY, | ||||
|             state_class=SensorStateClass.TOTAL_INCREASING, | ||||
|             native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR, | ||||
|             translation_key="energy_total", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|             key="totalWaterUsed", | ||||
|             name="Total Water", | ||||
|             device_class=SensorDeviceClass.WATER, | ||||
|             state_class=SensorStateClass.TOTAL_INCREASING, | ||||
|             native_unit_of_measurement=UnitOfVolume.LITERS, | ||||
|             translation_key="water_total", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|             key="totalWashCycle", | ||||
|             name="Total Wash Cycle", | ||||
|             state_class=SensorStateClass.TOTAL_INCREASING, | ||||
|             icon="mdi:counter", | ||||
|             translation_key="cycles_total", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|             key="currentElectricityUsed", | ||||
|             name="Current Electricity Used", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             device_class=SensorDeviceClass.POWER, | ||||
|             native_unit_of_measurement=UnitOfPower.KILO_WATT, | ||||
|             icon="mdi:lightning-bolt", | ||||
|             translation_key="energy_current", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|             key="currentWaterUsed", | ||||
|             name="Current Water Used", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             icon="mdi:water", | ||||
|             translation_key="water_current", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|             key="startProgram.weight", | ||||
|             name="Suggested weight", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             native_unit_of_measurement=UnitOfMass.KILOGRAMS, | ||||
|             icon="mdi:weight-kilogram", | ||||
|             translation_key="suggested_load", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|             key="machMode", | ||||
|             name="Machine Status", | ||||
|             icon="mdi:information", | ||||
|             translation_key="washing_modes", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|             key="spinSpeed", | ||||
|             name="Spin Speed", | ||||
|             icon="mdi:fast-forward-outline", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             native_unit_of_measurement=REVOLUTIONS_PER_MINUTE, | ||||
|             translation_key="spin_speed", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|             key="remainingTimeMM", | ||||
|         HonConfigSensorEntityDescription( | ||||
|             key="startProgram.energyLabel", | ||||
|             name="Energy Label", | ||||
|             icon="mdi:lightning-bolt-circle", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             translation_key="energy_label", | ||||
|         ), | ||||
|         HonConfigSensorEntityDescription( | ||||
|             key="startProgram.liquidDetergentDose", | ||||
|             name="Liquid Detergent Dose", | ||||
|             icon="mdi:cup-water", | ||||
|             translation_key="det_liquid", | ||||
|         ), | ||||
|         HonConfigSensorEntityDescription( | ||||
|             key="startProgram.powderDetergentDose", | ||||
|             name="Powder Detergent Dose", | ||||
|             icon="mdi:cup", | ||||
|             translation_key="det_dust", | ||||
|         ), | ||||
|         HonConfigSensorEntityDescription( | ||||
|             key="startProgram.remainingTime", | ||||
|             name="Remaining Time", | ||||
|             icon="mdi:timer", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||
|             translation_key="remaining_time", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|             key="prCode", | ||||
|             name="Current Program", | ||||
|             icon="mdi:tumble-dryer", | ||||
|             translation_key="programs", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|             key="prPhase", | ||||
|             name="Program Phase", | ||||
|             icon="mdi:washing-machine", | ||||
|             translation_key="program_phases_wm", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|             key="dryLevel", | ||||
|             name="Dry level", | ||||
|             icon="mdi:hair-dryer", | ||||
|             translation_key="dry_levels", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonSensorEntityDescription( | ||||
|             key="dirtyLevel", | ||||
|             name="Dirt level", | ||||
|             icon="mdi:liquid-spot", | ||||
|             translation_key="dirt_level", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|             key="steamLevel", | ||||
|             name="Steam level", | ||||
|             icon="mdi:smoke", | ||||
|             translation_key="steam_level", | ||||
|         HonConfigSensorEntityDescription( | ||||
|             key="startProgram.suggestedLoadW", | ||||
|             name="Suggested Load", | ||||
|             icon="mdi:weight-kilogram", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             native_unit_of_measurement=UnitOfMass.KILOGRAMS, | ||||
|             translation_key="suggested_load", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonSensorEntityDescription( | ||||
|             key="temp", | ||||
|             name="Current Temperature", | ||||
|             icon="mdi:thermometer", | ||||
| @ -310,15 +172,27 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | ||||
|             translation_key="temperature", | ||||
|         ), | ||||
|     ), | ||||
|     "OV": ( | ||||
|         SensorEntityDescription( | ||||
|     "TD": ( | ||||
|         HonSensorEntityDescription( | ||||
|             key="machMode", | ||||
|             name="Machine Status", | ||||
|             icon="mdi:information", | ||||
|             device_class=SensorDeviceClass.ENUM, | ||||
|             translation_key="washing_modes", | ||||
|             options=list(const.MACH_MODE), | ||||
|         ), | ||||
|         HonSensorEntityDescription( | ||||
|             key="errors", name="Error", icon="mdi:math-log", translation_key="errors" | ||||
|         ), | ||||
|         HonSensorEntityDescription( | ||||
|             key="remainingTimeMM", | ||||
|             name="Remaining Time", | ||||
|             icon="mdi:timer", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||
|             translation_key="remaining_time", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonSensorEntityDescription( | ||||
|             key="delayTime", | ||||
|             name="Start Time", | ||||
|             icon="mdi:clock-start", | ||||
| @ -326,13 +200,92 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | ||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||
|             translation_key="delay_time", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonSensorEntityDescription( | ||||
|             key="programName", | ||||
|             name="Program", | ||||
|             icon="mdi:tumble-dryer", | ||||
|             device_class=SensorDeviceClass.ENUM, | ||||
|             translation_key="programs_td", | ||||
|             options=const.PROGRAMS_TD, | ||||
|         ), | ||||
|         HonSensorEntityDescription( | ||||
|             key="prPhase", | ||||
|             name="Program Phase", | ||||
|             icon="mdi:washing-machine", | ||||
|             device_class=SensorDeviceClass.ENUM, | ||||
|             translation_key="program_phases_td", | ||||
|             options=list(const.TUMBLE_DRYER_PR_PHASE), | ||||
|         ), | ||||
|         HonSensorEntityDescription( | ||||
|             key="dryLevel", | ||||
|             name="Dry level", | ||||
|             icon="mdi:hair-dryer", | ||||
|             device_class=SensorDeviceClass.ENUM, | ||||
|             translation_key="dry_levels", | ||||
|             options=list(const.TUMBLE_DRYER_DRY_LEVEL), | ||||
|         ), | ||||
|         HonSensorEntityDescription( | ||||
|             key="tempLevel", | ||||
|             name="Temperature level", | ||||
|             icon="mdi:thermometer", | ||||
|             translation_key="tumbledryertemplevel", | ||||
|         ), | ||||
|         HonConfigSensorEntityDescription( | ||||
|             key="startProgram.suggestedLoadD", | ||||
|             name="Suggested Load", | ||||
|             icon="mdi:weight-kilogram", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             native_unit_of_measurement=UnitOfMass.KILOGRAMS, | ||||
|             translation_key="suggested_load", | ||||
|         ), | ||||
|         HonConfigSensorEntityDescription( | ||||
|             key="startProgram.energyLabel", | ||||
|             name="Energy Label", | ||||
|             icon="mdi:lightning-bolt-circle", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             translation_key="energy_label", | ||||
|         ), | ||||
|         HonConfigSensorEntityDescription( | ||||
|             key="startProgram.steamLevel", | ||||
|             name="Steam level", | ||||
|             icon="mdi:smoke", | ||||
|             translation_key="steam_level", | ||||
|         ), | ||||
|         HonSensorEntityDescription( | ||||
|             key="steamLevel", | ||||
|             name="Steam level", | ||||
|             icon="mdi:smoke", | ||||
|             translation_key="steam_level", | ||||
|         ), | ||||
|         HonConfigSensorEntityDescription( | ||||
|             key="steamType", | ||||
|             name="Steam Type", | ||||
|             icon="mdi:weather-dust", | ||||
|         ), | ||||
|     ), | ||||
|     "OV": ( | ||||
|         HonSensorEntityDescription( | ||||
|             key="remainingTimeMM", | ||||
|             name="Remaining Time", | ||||
|             icon="mdi:timer", | ||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||
|             translation_key="remaining_time", | ||||
|         ), | ||||
|         HonSensorEntityDescription( | ||||
|             key="delayTime", | ||||
|             name="Start Time", | ||||
|             icon="mdi:clock-start", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||
|             translation_key="delay_time", | ||||
|         ), | ||||
|         HonSensorEntityDescription( | ||||
|             key="temp", | ||||
|             name="Temperature", | ||||
|             icon="mdi:thermometer", | ||||
|             translation_key="temperature", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonSensorEntityDescription( | ||||
|             key="tempSel", | ||||
|             name="Temperature Selected", | ||||
|             icon="mdi:thermometer", | ||||
| @ -340,14 +293,14 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | ||||
|         ), | ||||
|     ), | ||||
|     "IH": ( | ||||
|         SensorEntityDescription( | ||||
|         HonSensorEntityDescription( | ||||
|             key="remainingTimeMM", | ||||
|             name="Remaining Time", | ||||
|             icon="mdi:timer", | ||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||
|             translation_key="remaining_time", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonSensorEntityDescription( | ||||
|             key="temp", | ||||
|             name="Temperature", | ||||
|             icon="mdi:thermometer", | ||||
| @ -355,10 +308,10 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | ||||
|             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||
|             translation_key="temperature", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonSensorEntityDescription( | ||||
|             key="errors", name="Error", icon="mdi:math-log", translation_key="errors" | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonSensorEntityDescription( | ||||
|             key="power", | ||||
|             name="Power", | ||||
|             icon="mdi:lightning-bolt", | ||||
| @ -367,66 +320,62 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | ||||
|         ), | ||||
|     ), | ||||
|     "DW": ( | ||||
|         SensorEntityDescription( | ||||
|         HonConfigSensorEntityDescription( | ||||
|             key="startProgram.ecoIndex", | ||||
|             name="Eco Index", | ||||
|             icon="mdi:sprout", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonConfigSensorEntityDescription( | ||||
|             key="startProgram.waterEfficiency", | ||||
|             name="Water Efficiency", | ||||
|             icon="mdi:water", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="water_efficiency", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonConfigSensorEntityDescription( | ||||
|             key="startProgram.waterSaving", | ||||
|             name="Water Saving", | ||||
|             icon="mdi:water-percent", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             native_unit_of_measurement=PERCENTAGE, | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="water_saving", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonConfigSensorEntityDescription( | ||||
|             key="startProgram.temp", | ||||
|             name="Temperature", | ||||
|             icon="mdi:thermometer", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="temperature", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonConfigSensorEntityDescription( | ||||
|             key="startProgram.energyLabel", | ||||
|             name="Energy Label", | ||||
|             icon="mdi:lightning-bolt-circle", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="energy_label", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonConfigSensorEntityDescription( | ||||
|             key="startProgram.remainingTime", | ||||
|             name="Time", | ||||
|             icon="mdi:timer", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="duration", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonSensorEntityDescription( | ||||
|             key="machMode", | ||||
|             name="Machine Status", | ||||
|             icon="mdi:information", | ||||
|             device_class=SensorDeviceClass.ENUM, | ||||
|             translation_key="washing_modes", | ||||
|             options=list(const.MACH_MODE), | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonSensorEntityDescription( | ||||
|             key="errors", name="Error", icon="mdi:math-log", translation_key="errors" | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonSensorEntityDescription( | ||||
|             key="remainingTimeMM", | ||||
|             name="Remaining Time", | ||||
|             icon="mdi:timer", | ||||
| @ -434,59 +383,148 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | ||||
|             native_unit_of_measurement=UnitOfTime.MINUTES, | ||||
|             translation_key="remaining_time", | ||||
|         ), | ||||
|         SensorEntityDescription( | ||||
|         HonSensorEntityDescription( | ||||
|             key="prPhase", | ||||
|             name="Program Phase", | ||||
|             icon="mdi:washing-machine", | ||||
|             device_class=SensorDeviceClass.ENUM, | ||||
|             translation_key="program_phases_dw", | ||||
|             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"]) | ||||
|  | ||||
|  | ||||
| async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None: | ||||
|     hon: Hon = hass.data[DOMAIN][entry.unique_id] | ||||
|     coordinators = hass.data[DOMAIN]["coordinators"] | ||||
|     appliances = [] | ||||
|     for device in hon.appliances: | ||||
|         if device.unique_id in coordinators: | ||||
|             coordinator = hass.data[DOMAIN]["coordinators"][device.unique_id] | ||||
|         else: | ||||
|             coordinator = HonCoordinator(hass, device) | ||||
|             hass.data[DOMAIN]["coordinators"][device.unique_id] = coordinator | ||||
|         await coordinator.async_config_entry_first_refresh() | ||||
|  | ||||
|         if descriptions := SENSORS.get(device.appliance_type): | ||||
|             for description in descriptions: | ||||
|                 if not device.get(description.key) and not device.settings.get( | ||||
|                     description.key | ||||
|                 ): | ||||
|                     _LOGGER.warning( | ||||
|                         "[%s] Can't setup %s", device.appliance_type, description.key | ||||
|                     ) | ||||
|     entities = [] | ||||
|     for device in hass.data[DOMAIN][entry.unique_id].appliances: | ||||
|         for description in SENSORS.get(device.appliance_type, []): | ||||
|             if isinstance(description, HonSensorEntityDescription): | ||||
|                 if not device.get(description.key): | ||||
|                     continue | ||||
|                 appliances.extend( | ||||
|                     [HonSensorEntity(hass, coordinator, entry, device, description)] | ||||
|                 ) | ||||
|                 entity = HonSensorEntity(hass, entry, device, description) | ||||
|             elif isinstance(description, HonConfigSensorEntityDescription): | ||||
|                 if description.key not in device.available_settings: | ||||
|                     continue | ||||
|                 entity = HonConfigSensorEntity(hass, entry, device, description) | ||||
|             else: | ||||
|                 continue | ||||
|             await entity.coordinator.async_config_entry_first_refresh() | ||||
|             entities.append(entity) | ||||
|  | ||||
|     async_add_entities(appliances) | ||||
|     async_add_entities(entities) | ||||
|  | ||||
|  | ||||
| class HonSensorEntity(HonEntity, SensorEntity): | ||||
|     def __init__(self, hass, coordinator, entry, device, description) -> None: | ||||
|         super().__init__(hass, entry, coordinator, device) | ||||
|  | ||||
|         self._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 | ||||
|     entity_description: HonSensorEntityDescription | ||||
|  | ||||
|     @callback | ||||
|     def _handle_coordinator_update(self): | ||||
| @ -495,3 +533,21 @@ class HonSensorEntity(HonEntity, SensorEntity): | ||||
|             self._attr_native_value = 0 | ||||
|         self._attr_native_value = value | ||||
|         self.async_write_ha_state() | ||||
|  | ||||
|  | ||||
| class HonConfigSensorEntity(HonEntity, SensorEntity): | ||||
|     entity_description: HonConfigSensorEntityDescription | ||||
|  | ||||
|     @callback | ||||
|     def _handle_coordinator_update(self): | ||||
|         value = self._device.settings.get(self.entity_description.key, None) | ||||
|         if self.entity_description.state_class is not None: | ||||
|             if value and value.value: | ||||
|                 self._attr_native_value = ( | ||||
|                     float(value.value) if "." in str(value.value) else int(value.value) | ||||
|                 ) | ||||
|             else: | ||||
|                 self._attr_native_value = 0 | ||||
|         else: | ||||
|             self._attr_native_value = value.value | ||||
|         self.async_write_ha_state() | ||||
|  | ||||
| @ -5,12 +5,12 @@ from typing import Any | ||||
| from homeassistant.components.switch import SwitchEntityDescription, SwitchEntity | ||||
| from homeassistant.config_entries import ConfigEntry | ||||
| from homeassistant.const import EntityCategory | ||||
| from pyhon import Hon | ||||
| from pyhon.appliance import HonAppliance | ||||
| from homeassistant.core import callback | ||||
| from pyhon.parameter.base import HonParameter | ||||
| from pyhon.parameter.range import HonParameterRange | ||||
|  | ||||
| from .const import DOMAIN | ||||
| from .hon import HonCoordinator, HonEntity | ||||
| from .hon import HonEntity, unique_entities | ||||
|  | ||||
| _LOGGER = logging.getLogger(__name__) | ||||
|  | ||||
| @ -22,15 +22,24 @@ class HonSwitchEntityDescriptionMixin: | ||||
|  | ||||
|  | ||||
| @dataclass | ||||
| class HonSwitchEntityDescription( | ||||
| class HonControlSwitchEntityDescription( | ||||
|     HonSwitchEntityDescriptionMixin, SwitchEntityDescription | ||||
| ): | ||||
|     pass | ||||
|  | ||||
|  | ||||
| class HonSwitchEntityDescription(SwitchEntityDescription): | ||||
|     pass | ||||
|  | ||||
|  | ||||
| @dataclass | ||||
| class HonConfigSwitchEntityDescription(SwitchEntityDescription): | ||||
|     entity_category: EntityCategory = EntityCategory.CONFIG | ||||
|  | ||||
|  | ||||
| SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = { | ||||
|     "WM": ( | ||||
|         HonSwitchEntityDescription( | ||||
|         HonControlSwitchEntityDescription( | ||||
|             key="active", | ||||
|             name="Washing Machine", | ||||
|             icon="mdi:washing-machine", | ||||
| @ -38,7 +47,7 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = { | ||||
|             turn_off_key="stopProgram", | ||||
|             translation_key="washing_machine", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|         HonControlSwitchEntityDescription( | ||||
|             key="pause", | ||||
|             name="Pause Washing Machine", | ||||
|             icon="mdi:pause", | ||||
| @ -46,30 +55,69 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = { | ||||
|             turn_off_key="resumeProgram", | ||||
|             translation_key="pause", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|         HonConfigSwitchEntityDescription( | ||||
|             key="startProgram.delayStatus", | ||||
|             name="Delay Status", | ||||
|             icon="mdi:timer-check", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="delay_time", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|         HonConfigSwitchEntityDescription( | ||||
|             key="startProgram.haier_SoakPrewashSelection", | ||||
|             name="Soak Prewash Selection", | ||||
|             icon="mdi:tshirt-crew", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="prewash", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|             key="startProgram.autoSoftenerStatus", | ||||
|         HonConfigSwitchEntityDescription( | ||||
|             key="startProgram.permanentPressStatus", | ||||
|             name="Keep Fresh", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             icon="mdi:refresh-circle", | ||||
|             translation_key="keep_fresh", | ||||
|         ), | ||||
|         HonConfigSwitchEntityDescription( | ||||
|             key="startProgram.autoSoftenerStatus", | ||||
|             name="Auto Dose Softener", | ||||
|             icon="mdi:teddy-bear", | ||||
|             translation_key="auto_dose_softener", | ||||
|         ), | ||||
|         HonConfigSwitchEntityDescription( | ||||
|             key="startProgram.autoDetergentStatus", | ||||
|             name="Auto Dose Detergent", | ||||
|             icon="mdi:cup", | ||||
|             translation_key="auto_dose_detergent", | ||||
|         ), | ||||
|         HonConfigSwitchEntityDescription( | ||||
|             key="startProgram.acquaplus", | ||||
|             name="Acqua Plus", | ||||
|             icon="mdi:water-plus", | ||||
|             translation_key="acqua_plus", | ||||
|         ), | ||||
|         HonConfigSwitchEntityDescription( | ||||
|             key="startProgram.extraRinse1", | ||||
|             name="Extra Rinse 1", | ||||
|             icon="mdi:numeric-1-box-multiple-outline", | ||||
|             translation_key="extra_rinse_1", | ||||
|         ), | ||||
|         HonConfigSwitchEntityDescription( | ||||
|             key="startProgram.extraRinse2", | ||||
|             name="Extra Rinse 2", | ||||
|             icon="mdi:numeric-2-box-multiple-outline", | ||||
|             translation_key="extra_rinse_2", | ||||
|         ), | ||||
|         HonConfigSwitchEntityDescription( | ||||
|             key="startProgram.extraRinse3", | ||||
|             name="Extra Rinse 3", | ||||
|             icon="mdi:numeric-3-box-multiple-outline", | ||||
|             translation_key="extra_rinse_3", | ||||
|         ), | ||||
|         HonConfigSwitchEntityDescription( | ||||
|             key="startProgram.goodNight", | ||||
|             name="Good Night", | ||||
|             icon="mdi:weather-night", | ||||
|             translation_key="good_night", | ||||
|         ), | ||||
|     ), | ||||
|     "TD": ( | ||||
|         HonSwitchEntityDescription( | ||||
|         HonControlSwitchEntityDescription( | ||||
|             key="active", | ||||
|             name="Tumble Dryer", | ||||
|             icon="mdi:tumble-dryer", | ||||
| @ -77,7 +125,7 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = { | ||||
|             turn_off_key="stopProgram", | ||||
|             translation_key="tumble_dryer", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|         HonControlSwitchEntityDescription( | ||||
|             key="pause", | ||||
|             name="Pause Tumble Dryer", | ||||
|             icon="mdi:pause", | ||||
| @ -85,29 +133,26 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = { | ||||
|             turn_off_key="resumeProgram", | ||||
|             translation_key="pause", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|         HonConfigSwitchEntityDescription( | ||||
|             key="startProgram.sterilizationStatus", | ||||
|             name="Sterilization", | ||||
|             icon="mdi:clock-start", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|         HonConfigSwitchEntityDescription( | ||||
|             key="startProgram.antiCreaseTime", | ||||
|             name="Anti-Crease", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             icon="mdi:timer", | ||||
|             translation_key="anti_crease", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|         HonConfigSwitchEntityDescription( | ||||
|             key="startProgram.anticrease", | ||||
|             name="Anti-Crease", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             icon="mdi:timer", | ||||
|             translation_key="anti_crease", | ||||
|         ), | ||||
|     ), | ||||
|     "OV": ( | ||||
|         HonSwitchEntityDescription( | ||||
|         HonControlSwitchEntityDescription( | ||||
|             key="active", | ||||
|             name="Oven", | ||||
|             icon="mdi:toaster-oven", | ||||
| @ -115,26 +160,25 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = { | ||||
|             turn_off_key="stopProgram", | ||||
|             translation_key="oven", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|         HonConfigSwitchEntityDescription( | ||||
|             key="startProgram.preheatStatus", | ||||
|             name="Preheat", | ||||
|             icon="mdi:thermometer-chevron-up", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="preheat", | ||||
|         ), | ||||
|     ), | ||||
|     "WD": ( | ||||
|         HonSwitchEntityDescription( | ||||
|         HonControlSwitchEntityDescription( | ||||
|             key="active", | ||||
|             name="Washing Machine", | ||||
|             name="Washer Dryer", | ||||
|             icon="mdi:washing-machine", | ||||
|             turn_on_key="startProgram", | ||||
|             turn_off_key="stopProgram", | ||||
|             translation_key="washer_dryer", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|         HonControlSwitchEntityDescription( | ||||
|             key="pause", | ||||
|             name="Pause Washing Machine", | ||||
|             name="Pause Washer Dryer", | ||||
|             icon="mdi:pause", | ||||
|             turn_on_key="pauseProgram", | ||||
|             turn_off_key="resumeProgram", | ||||
| @ -142,7 +186,7 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = { | ||||
|         ), | ||||
|     ), | ||||
|     "DW": ( | ||||
|         HonSwitchEntityDescription( | ||||
|         HonControlSwitchEntityDescription( | ||||
|             key="active", | ||||
|             name="Dish Washer", | ||||
|             icon="mdi:dishwasher", | ||||
| @ -150,191 +194,267 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = { | ||||
|             turn_off_key="stopProgram", | ||||
|             translation_key="dish_washer", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|         HonConfigSwitchEntityDescription( | ||||
|             key="startProgram.extraDry", | ||||
|             name="Extra Dry", | ||||
|             icon="mdi:hair-dryer", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="extra_dry", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|         HonConfigSwitchEntityDescription( | ||||
|             key="startProgram.halfLoad", | ||||
|             name="Half Load", | ||||
|             icon="mdi:fraction-one-half", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="half_load", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|         HonConfigSwitchEntityDescription( | ||||
|             key="startProgram.openDoor", | ||||
|             name="Open Door", | ||||
|             icon="mdi:door-open", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="open_door", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|         HonConfigSwitchEntityDescription( | ||||
|             key="startProgram.threeInOne", | ||||
|             name="Three in One", | ||||
|             icon="mdi:numeric-3-box-outline", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="three_in_one", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|         HonConfigSwitchEntityDescription( | ||||
|             key="startProgram.ecoExpress", | ||||
|             name="Eco Express", | ||||
|             icon="mdi:sprout", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="eco", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|         HonConfigSwitchEntityDescription( | ||||
|             key="startProgram.addDish", | ||||
|             name="Add Dish", | ||||
|             icon="mdi:silverware-fork-knife", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="add_dish", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|             key="buzzerDisabled", | ||||
|             name="Buzzer Disabled", | ||||
|             icon="mdi:volume-off", | ||||
|             translation_key="buzzer", | ||||
|         ), | ||||
|     ), | ||||
|     "AC": ( | ||||
|         HonSwitchEntityDescription( | ||||
|             key="startProgram.10degreeHeatingStatus", | ||||
|             key="10degreeHeatingStatus", | ||||
|             name="10° Heating", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             icon="mdi:heat-wave", | ||||
|             translation_key="10_degree_heating", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|             key="startProgram.echoStatus", | ||||
|             key="echoStatus", | ||||
|             name="Echo", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             icon="mdi:account-voice", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|             key="startProgram.ecoMode", | ||||
|             key="ecoMode", | ||||
|             name="Eco Mode", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             translation_key="eco_mode", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|             key="startProgram.healthMode", | ||||
|             key="healthMode", | ||||
|             name="Health Mode", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             icon="mdi:medication-outline", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|             key="startProgram.muteStatus", | ||||
|             key="muteStatus", | ||||
|             name="Mute", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             icon="mdi:volume-off", | ||||
|             translation_key="mute_mode", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|             key="startProgram.rapidMode", | ||||
|             key="rapidMode", | ||||
|             name="Rapid Mode", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             icon="mdi:run-fast", | ||||
|             translation_key="rapid_mode", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|             key="startProgram.screenDisplayStatus", | ||||
|             key="screenDisplayStatus", | ||||
|             name="Screen Display", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             icon="mdi:monitor-small", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|             key="startProgram.selfCleaning56Status", | ||||
|             key="selfCleaning56Status", | ||||
|             name="Self Cleaning 56", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             icon="mdi:air-filter", | ||||
|             translation_key="self_clean_56", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|             key="startProgram.selfCleaningStatus", | ||||
|             key="selfCleaningStatus", | ||||
|             name="Self Cleaning", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             icon="mdi:air-filter", | ||||
|             translation_key="self_clean", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|             key="startProgram.silentSleepStatus", | ||||
|             key="silentSleepStatus", | ||||
|             name="Silent Sleep", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|             icon="mdi:bed", | ||||
|             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["TD"]) | ||||
|  | ||||
|  | ||||
| async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None: | ||||
|     hon: Hon = hass.data[DOMAIN][entry.unique_id] | ||||
|     coordinators = hass.data[DOMAIN]["coordinators"] | ||||
|     appliances = [] | ||||
|     for device in hon.appliances: | ||||
|         if device.unique_id in coordinators: | ||||
|             coordinator = hass.data[DOMAIN]["coordinators"][device.unique_id] | ||||
|         else: | ||||
|             coordinator = HonCoordinator(hass, device) | ||||
|             hass.data[DOMAIN]["coordinators"][device.unique_id] = coordinator | ||||
|         await coordinator.async_config_entry_first_refresh() | ||||
|  | ||||
|         if descriptions := SWITCHES.get(device.appliance_type): | ||||
|             for description in descriptions: | ||||
|                 if ( | ||||
|     entities = [] | ||||
|     for device in hass.data[DOMAIN][entry.unique_id].appliances: | ||||
|         for description in SWITCHES.get(device.appliance_type, []): | ||||
|             if isinstance(description, HonConfigSwitchEntityDescription): | ||||
|                 if description.key not in device.available_settings: | ||||
|                     continue | ||||
|                 entity = HonConfigSwitchEntity(hass, entry, device, description) | ||||
|             elif isinstance(description, HonControlSwitchEntityDescription): | ||||
|                 if not ( | ||||
|                     device.get(description.key) is not None | ||||
|                     or device.commands.get(description.key) is not None | ||||
|                     or description.turn_on_key in list(device.commands) | ||||
|                     or description.turn_off_key in list(device.commands) | ||||
|                 ): | ||||
|                     appliances.extend( | ||||
|                         [HonSwitchEntity(hass, coordinator, entry, device, description)] | ||||
|                     ) | ||||
|                 else: | ||||
|                     _LOGGER.warning( | ||||
|                         "[%s] Can't setup %s", device.appliance_type, description.key | ||||
|                     ) | ||||
|                     continue | ||||
|                 entity = HonControlSwitchEntity(hass, entry, device, description) | ||||
|             elif isinstance(description, HonSwitchEntityDescription): | ||||
|                 if ( | ||||
|                     f"settings.{description.key}" not in device.available_settings | ||||
|                     or not device.get(description.key) | ||||
|                 ): | ||||
|                     continue | ||||
|                 entity = HonSwitchEntity(hass, entry, device, description) | ||||
|             else: | ||||
|                 continue | ||||
|             await entity.coordinator.async_config_entry_first_refresh() | ||||
|             entities.append(entity) | ||||
|  | ||||
|     async_add_entities(appliances) | ||||
|     async_add_entities(entities) | ||||
|  | ||||
|  | ||||
| class HonSwitchEntity(HonEntity, SwitchEntity): | ||||
|     entity_description: HonSwitchEntityDescription | ||||
|  | ||||
|     def __init__( | ||||
|         self, | ||||
|         hass, | ||||
|         coordinator, | ||||
|         entry, | ||||
|         device: HonAppliance, | ||||
|         description: HonSwitchEntityDescription, | ||||
|     ) -> None: | ||||
|         super().__init__(hass, entry, coordinator, device) | ||||
|         self._coordinator = coordinator | ||||
|         self._device = device | ||||
|         self.entity_description = description | ||||
|         self._attr_unique_id = f"{super().unique_id}{description.key}" | ||||
|     @property | ||||
|     def is_on(self) -> bool | None: | ||||
|         """Return True if entity is on.""" | ||||
|         return self._device.get(self.entity_description.key, "0") == "1" | ||||
|  | ||||
|     async def async_turn_on(self, **kwargs: Any) -> None: | ||||
|         setting = self._device.settings[f"settings.{self.entity_description.key}"] | ||||
|         if type(setting) == HonParameter: | ||||
|             return | ||||
|         setting.value = setting.max if isinstance(setting, HonParameterRange) else "1" | ||||
|         self.async_write_ha_state() | ||||
|         await self._device.commands["settings"].send() | ||||
|         await self.coordinator.async_refresh() | ||||
|  | ||||
|     async def async_turn_off(self, **kwargs: Any) -> None: | ||||
|         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 | ||||
|     def is_on(self) -> bool | None: | ||||
|         """Return True if entity is on.""" | ||||
|         if self.entity_category == EntityCategory.CONFIG: | ||||
|             setting = self._device.settings[self.entity_description.key] | ||||
|             return ( | ||||
|                 setting.value == "1" | ||||
|                 or hasattr(setting, "min") | ||||
|                 and setting.value != setting.min | ||||
|             ) | ||||
|         return self._device.get(self.entity_description.key, False) | ||||
|  | ||||
|     async def async_turn_on(self, **kwargs: Any) -> None: | ||||
|         if self.entity_category == EntityCategory.CONFIG: | ||||
|             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() | ||||
|         await self._device.commands[self.entity_description.turn_on_key].send() | ||||
|  | ||||
|     async def async_turn_off(self, **kwargs: Any) -> None: | ||||
|         if self.entity_category == EntityCategory.CONFIG: | ||||
|             setting = self._device.settings[self.entity_description.key] | ||||
|             setting.value = ( | ||||
|                 setting.min if isinstance(setting, HonParameterRange) else "0" | ||||
|             ) | ||||
|             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_off_key].send() | ||||
|         await self._device.commands[self.entity_description.turn_off_key].send() | ||||
|  | ||||
|     @property | ||||
|     def available(self) -> bool: | ||||
|         """Return True if entity is available.""" | ||||
|         return ( | ||||
|             super().available | ||||
|             and self._device.get("remoteCtrValid", "1") == "1" | ||||
|             and self._device.get("attributes.lastConnEvent.category") != "DISCONNECTED" | ||||
|         ) | ||||
|  | ||||
|  | ||||
| class HonConfigSwitchEntity(HonEntity, SwitchEntity): | ||||
|     entity_description: HonConfigSwitchEntityDescription | ||||
|  | ||||
|     @property | ||||
|     def is_on(self) -> bool | None: | ||||
|         """Return True if entity is on.""" | ||||
|         setting = self._device.settings[self.entity_description.key] | ||||
|         return ( | ||||
|             setting.value != setting.min | ||||
|             if hasattr(setting, "min") | ||||
|             else setting.value == "1" | ||||
|         ) | ||||
|  | ||||
|     async def async_turn_on(self, **kwargs: Any) -> None: | ||||
|         setting = self._device.settings[self.entity_description.key] | ||||
|         if type(setting) == HonParameter: | ||||
|             return | ||||
|         setting.value = setting.max if isinstance(setting, HonParameterRange) else "1" | ||||
|         self.async_write_ha_state() | ||||
|         await self.coordinator.async_refresh() | ||||
|  | ||||
|     async def async_turn_off(self, **kwargs: Any) -> None: | ||||
|         setting = self._device.settings[self.entity_description.key] | ||||
|         if type(setting) == HonParameter: | ||||
|             return | ||||
|         setting.value = setting.min if isinstance(setting, HonParameterRange) else "0" | ||||
|         self.async_write_ha_state() | ||||
|         await self.coordinator.async_refresh() | ||||
|  | ||||
|     @callback | ||||
|     def _handle_coordinator_update(self): | ||||
|         value = self._device.settings.get(self.entity_description.key, "0") | ||||
|         self._attr_state = value == "1" | ||||
|         self.async_write_ha_state() | ||||
|  | ||||
| @ -9,7 +9,10 @@ | ||||
|                     "4": "Naplánováno", | ||||
|                     "5": "Naplánováno", | ||||
|                     "6": "Chyba", | ||||
|                     "7": "Připraveno" | ||||
|                     "7": "Připraveno", | ||||
|                     "2": "Program běží", | ||||
|                     "8": "Test", | ||||
|                     "9": "Zastavování cyklu…" | ||||
|                 } | ||||
|             }, | ||||
|             "program_phases_wm": { | ||||
| @ -53,7 +56,9 @@ | ||||
|                     "16": "Vychladnutí", | ||||
|                     "18": "Keep Fresh", | ||||
|                     "19": "Sušení", | ||||
|                     "20": "Sušení" | ||||
|                     "20": "Sušení", | ||||
|                     "11": "Připraveno", | ||||
|                     "17": "unknown" | ||||
|                 }, | ||||
|                 "name": "Fáze" | ||||
|             }, | ||||
| @ -79,7 +84,8 @@ | ||||
|                     "12": "Žehlení", | ||||
|                     "13": "Do skříně", | ||||
|                     "14": "Připraveno k oblečení", | ||||
|                     "15": "Extra suché" | ||||
|                     "15": "Extra suché", | ||||
|                     "11": "Bez sušení" | ||||
|                 }, | ||||
|                 "name": "Úroveň sušení" | ||||
|             }, | ||||
| @ -165,6 +171,154 @@ | ||||
|                     "5": "Ventilátor", | ||||
|                     "6": "Ventilátor" | ||||
|                 } | ||||
|             }, | ||||
|             "programs_td": { | ||||
|                 "state": { | ||||
|                     "active_dry": "Aktivní sušení", | ||||
|                     "allergy_care": "Antialergický", | ||||
|                     "all_in_one": "All in One", | ||||
|                     "antiallergy": "Antialergický", | ||||
|                     "anti_odours": "Proti zápachu", | ||||
|                     "auto_care": "Automatická péče", | ||||
|                     "baby": "Dětské", | ||||
|                     "bed_quilt": "Ložní přikrývka", | ||||
|                     "care_30": "Péče 30", | ||||
|                     "care_45": "Péče 45", | ||||
|                     "care_59": "Péče 59", | ||||
|                     "coloured": "Barevné", | ||||
|                     "daily_45_min": "DENNI 45'", | ||||
|                     "daily_perfect_59_min": "DENNI PERFEKTNI 59'", | ||||
|                     "darks_and_coloured": "Tmavé a barevné", | ||||
|                     "delicates": "Jemné", | ||||
|                     "duvet": "Přikrývky", | ||||
|                     "eco": "Eco bavlna", | ||||
|                     "ecospeed_cottons": "Ecospeed bavlna", | ||||
|                     "ecospeed_delicates": "Eco rychly - jemne", | ||||
|                     "ecospeed_mixed": "Ecospeed směsné", | ||||
|                     "extra_hygiene": "HYGIENA EXTRA", | ||||
|                     "fitness": "Cvičení", | ||||
|                     "fresh_care": "Svěží péče", | ||||
|                     "genius": "Genius", | ||||
|                     "hqd_baby_care": "Baby Care", | ||||
|                     "hqd_bath_towel": "Ručníky", | ||||
|                     "hqd_bed_sheets": "Povlečení", | ||||
|                     "hqd_bulky": "Objemné kusy", | ||||
|                     "hqd_casual": "Casual", | ||||
|                     "hqd_cold_wind_30": "Chladný vánek 30 minut", | ||||
|                     "hqd_cold_wind_timing": "Chladný vánek ", | ||||
|                     "hqd_cotton": "Bavlna", | ||||
|                     "hqd_curtain": "Záclony", | ||||
|                     "hqd_delicate": "Jemné", | ||||
|                     "hqd_diaper": "Pleny", | ||||
|                     "hqd_duvet": "Přikrývky", | ||||
|                     "hqd_feather": "Prošívané bundy", | ||||
|                     "hqd_hot_wind_timing": "Horký vzduch", | ||||
|                     "hqd_hygienic": "Dezinfekce", | ||||
|                     "hqd_i_refresh": "I-Refresh", | ||||
|                     "hqd_i_refresh_pro": "I-Refresh Pro", | ||||
|                     "hqd_jacket": "Bundy", | ||||
|                     "hqd_jeans": "Džíny", | ||||
|                     "hqd_luxury": "Luxusní", | ||||
|                     "hqd_mix": "Směsné", | ||||
|                     "hqd_night_dry": "Sušení přes noc", | ||||
|                     "hqd_outdoor": "Outdoor", | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Rychlý 20", | ||||
|                     "hqd_quick_30": "Rychlý 30", | ||||
|                     "hqd_quick_dry": "Rychlé sušení 30", | ||||
|                     "hqd_quilt": "Deky", | ||||
|                     "hqd_refresh": "Osvěžení", | ||||
|                     "hqd_school_uniform": "Školní uniformy", | ||||
|                     "hqd_shirt": "Košile", | ||||
|                     "hqd_shoes": "Obuv", | ||||
|                     "hqd_silk": "Hedvábí", | ||||
|                     "hqd_sports": "Sportovní", | ||||
|                     "hqd_synthetics": "Syntetika", | ||||
|                     "hqd_timer": "Načasováno", | ||||
|                     "hqd_towel": "Ručníky", | ||||
|                     "hqd_underwear": "Spodní prádlo", | ||||
|                     "hqd_warm_up": "Ohřátí", | ||||
|                     "hqd_wool": "Vlna", | ||||
|                     "hqd_working_suit": "Pracovní oděvy", | ||||
|                     "hygiene": "Hygiena", | ||||
|                     "iot_checkup": "Kontrola", | ||||
|                     "iot_dry_anti_mites": "Proti roztočům", | ||||
|                     "iot_dry_baby": "Dětské", | ||||
|                     "iot_dry_backpacks": "Batohy", | ||||
|                     "iot_dry_bathrobe": "Župany", | ||||
|                     "iot_dry_bed_linen": "Ložní prádlo", | ||||
|                     "iot_dry_bed_quilt": "Ložní přikrývka", | ||||
|                     "iot_dry_cotton": "Bavlna", | ||||
|                     "iot_dry_cuddly_toys": "Plyšové hračky", | ||||
|                     "iot_dry_curtains": "Závěsy", | ||||
|                     "iot_dry_dehumidifier": "Odstraňovač vlhkosti", | ||||
|                     "iot_dry_delicates": "Jemné prádlo", | ||||
|                     "iot_dry_delicate_tablecloths": "Jemné ubrusy", | ||||
|                     "iot_dry_denim_jeans": "Džínovina - džíny", | ||||
|                     "iot_dry_down_jacket": "Jacket", | ||||
|                     "iot_dry_duvet": "Přikrývky", | ||||
|                     "iot_dry_easy_iron_cotton": "Super snadné žehlení", | ||||
|                     "iot_dry_easy_iron_synthetics": "Velmi snadné žehlení - syntetika", | ||||
|                     "iot_dry_gym_fit": "Sportovní oblečení", | ||||
|                     "iot_dry_lingerie": "Spodní prádlo", | ||||
|                     "iot_dry_mixed": "Smíšené", | ||||
|                     "iot_dry_playsuits": "Tepláky", | ||||
|                     "iot_dry_rapid_30": "Rapid 30", | ||||
|                     "iot_dry_rapid_59": "Rychlý 59'.", | ||||
|                     "iot_dry_refresh": "Osvěžení", | ||||
|                     "iot_dry_regenerates_waterproof": "Oživení nepromokavých tkanin", | ||||
|                     "iot_dry_relax_creases": "Uvolnění záhybů", | ||||
|                     "iot_dry_shirts": "Košile", | ||||
|                     "iot_dry_small_load": "Malá náplň", | ||||
|                     "iot_dry_swimsuits_and_bikinis": "Plavky", | ||||
|                     "iot_dry_synthetics": "Syntetika", | ||||
|                     "iot_dry_synthetic_dry": "Syntetika - suché", | ||||
|                     "iot_dry_tablecloths": "Ubrusy", | ||||
|                     "iot_dry_technical_fabrics": "Technické tkaniny", | ||||
|                     "iot_dry_warm_embrace": "Dětská zavinovačka", | ||||
|                     "iot_dry_wool": "Woolmark", | ||||
|                     "jeans": "Džíny", | ||||
|                     "mix_and_dry": "Mix a suché", | ||||
|                     "pets": "Zvířata", | ||||
|                     "pre_iron": "Před žehlením", | ||||
|                     "rapid_30": "Rapid 30", | ||||
|                     "rapid_45": "Rychlý 45 min", | ||||
|                     "rapid_59": "Perfektně rychlý 59 min", | ||||
|                     "refresh": "Osvěžení", | ||||
|                     "relax_creases": "Uvolnění záhybů", | ||||
|                     "saving_30_min": "USPORNY 30'", | ||||
|                     "shirts": "Košile", | ||||
|                     "shoes": "Obuv", | ||||
|                     "small_load": "Malá náplň", | ||||
|                     "soft_care": "Měkká péče", | ||||
|                     "sport_plus": "Sport", | ||||
|                     "super_easy_iron_misti": "Velmi snadné žehlení – smíšené", | ||||
|                     "super_easy_iron_xxl": "Velmi snadné žehlení – XXL", | ||||
|                     "super_fast_cottons": "Super rychlý bavlna", | ||||
|                     "super_fast_delicates": "Super rychlý jemné", | ||||
|                     "synthetics": "Syntetika", | ||||
|                     "total_care": "Total Care", | ||||
|                     "trainers": "Sportovní obuv", | ||||
|                     "ultra_care": "Ultra Care", | ||||
|                     "waterproof_revitalize": "Obnovení voděodolnosti", | ||||
|                     "whites": "Bílé prádlo", | ||||
|                     "wool": "Sušení vlny", | ||||
|                     "woolmark": "Woolmark", | ||||
|                     "xxl_load": "XXL náplň", | ||||
|                     "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": { | ||||
| @ -255,6 +409,11 @@ | ||||
|                     "silent": "Noc", | ||||
|                     "silent_care": "Silent Care", | ||||
|                     "smart_ai": "Smart AI", | ||||
|                     "smart_ai_pro": "Smart AI Pro", | ||||
|                     "smart_ai_pro_soil": "Smart AI Pro", | ||||
|                     "smart_ai_rapid": "Smart AI Rapid", | ||||
|                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||
|                     "smart_ai_soil": "Smart AI", | ||||
|                     "special": "speciální", | ||||
|                     "special_pw_prz": "speciální", | ||||
|                     "steam": "Parní 75 °C", | ||||
| @ -311,19 +470,20 @@ | ||||
|             "programs_ov": { | ||||
|                 "state": { | ||||
|                     "bakery": "Těstoviny a pečivo", | ||||
|                     "bakery_steam": "Chléb pečený v páře", | ||||
|                     "bakery_steam": "Pára v troubě", | ||||
|                     "bottom_heating": "Spodní ohřev", | ||||
|                     "bottom_heating_fan": "Spodní ohřev + ventilátor", | ||||
|                     "bread": "Chléb", | ||||
|                     "bread_steam": "Pečivo pečené v páře", | ||||
|                     "bread_steam": "Chléb pečený v páře", | ||||
|                     "combi": "Combi", | ||||
|                     "convection_fan": "Statický + ventilátor", | ||||
|                     "convection_fan_turnspit": "Konvekce + ventilátor + rožeň", | ||||
|                     "conventional": "Statický", | ||||
|                     "conventional_turnspit": "Konvekční + rožeň", | ||||
|                     "conventional_turnspit": "Konvekce + rožeň", | ||||
|                     "defrost": "Rozmrazování", | ||||
|                     "descaling": "Odstraňování vodního kamene", | ||||
|                     "fish": "Ryby", | ||||
|                     "fish_steam": "Ryby připravované v páře", | ||||
|                     "fish_steam": "Ryby v páře", | ||||
|                     "grill_cata": "Gril", | ||||
|                     "grill_fan_cata": "Ventilátor grilu", | ||||
|                     "grill_fan_pyro": "Gril + ventilátor", | ||||
| @ -333,13 +493,13 @@ | ||||
|                     "iot_h20_clean": "h2O clean", | ||||
|                     "leavening": "Kynutí", | ||||
|                     "low_temp_cooking": "Příprava při nízkých teplotách", | ||||
|                     "low_temp_cooking_fish": "Příprava ryb při nízkých teplotách", | ||||
|                     "low_temp_cooking_fish_steam": "Příprava ryb v páře při nízkých teplotách", | ||||
|                     "low_temp_cooking_meat": "Příprava masa při nízkých teplotách", | ||||
|                     "low_temp_cooking_meat_steam": "Příprava masa v páře při nízkých teplotách", | ||||
|                     "low_temp_cooking_fish": "Příprava při nízkých teplotách – ryby", | ||||
|                     "low_temp_cooking_fish_steam": "Příprava při nízkých teplotách – ryby v páře", | ||||
|                     "low_temp_cooking_meat": "Příprava při nízkých teplotách – maso", | ||||
|                     "low_temp_cooking_meat_steam": "Příprava při nízkých teplotách - dušené maso", | ||||
|                     "low_temp_cooking_steam": "Příprava v páře při nízkých teplotách", | ||||
|                     "meat": "Maso", | ||||
|                     "meat_steam": "Maso připravované v páře", | ||||
|                     "meat_steam": "Maso v páře", | ||||
|                     "multi_level": "Víceúrovňové", | ||||
|                     "paella": "Paella", | ||||
|                     "pasta_and_bakery": "Těstoviny a pečivo", | ||||
| @ -347,7 +507,7 @@ | ||||
|                     "pyrolysis": "Pyrolýza", | ||||
|                     "pyrolysis_plus": "Pyrolýza +", | ||||
|                     "red_meat": "Tmavé maso", | ||||
|                     "red_meat_steam": "Červené maso připravované v páře", | ||||
|                     "red_meat_steam": "Červené maso vařené v páře", | ||||
|                     "regenerate": "Regenerace", | ||||
|                     "soft_plus": "Soft +", | ||||
|                     "super_grill": "Super gril", | ||||
| @ -357,9 +517,9 @@ | ||||
|                     "vegetables": "Zelenina", | ||||
|                     "vegetables_cata": "Zelenina", | ||||
|                     "vegetables_pyro": "Zelenina", | ||||
|                     "water_discharge": "Odtok vody", | ||||
|                     "water_discharge": "Vypouštění vody", | ||||
|                     "white_meat": "Bílé maso", | ||||
|                     "white_meat_steam": "Bílé maso připravované v páře" | ||||
|                     "white_meat_steam": "Bílé maso vařené v páře" | ||||
|                 }, | ||||
|                 "name": "Program" | ||||
|             }, | ||||
| @ -416,7 +576,7 @@ | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Rychlý 20", | ||||
|                     "hqd_quick_30": "Rychlý 30", | ||||
|                     "hqd_quick_dry": "Rychlé sušení", | ||||
|                     "hqd_quick_dry": "Rychlé sušení 30", | ||||
|                     "hqd_quilt": "Deky", | ||||
|                     "hqd_refresh": "Osvěžení", | ||||
|                     "hqd_school_uniform": "Školní uniformy", | ||||
| @ -820,7 +980,8 @@ | ||||
|                     "12": "Žehlení", | ||||
|                     "13": "Do skříně", | ||||
|                     "14": "Připraveno k oblečení", | ||||
|                     "15": "Extra suché" | ||||
|                     "15": "Extra suché", | ||||
|                     "11": "Bez sušení" | ||||
|                 }, | ||||
|                 "name": "Úroveň sušení" | ||||
|             }, | ||||
| @ -870,6 +1031,40 @@ | ||||
|                     "iot_uv_and_fan": "UV + ventilátor", | ||||
|                     "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": { | ||||
| @ -877,7 +1072,7 @@ | ||||
|                 "name": "Proti pomačkání" | ||||
|             }, | ||||
|             "add_dish": { | ||||
|                 "name": "" | ||||
|                 "name": "Přidat nádobí" | ||||
|             }, | ||||
|             "eco_express": { | ||||
|                 "name": "Eco" | ||||
| @ -913,7 +1108,7 @@ | ||||
|                 "name": "Trouba" | ||||
|             }, | ||||
|             "prewash": { | ||||
|                 "name": "Předpírka\r\r\r\r\r\r\n" | ||||
|                 "name": "Předpírka\r\r\r\r\r\r\r\n" | ||||
|             }, | ||||
|             "pause": { | ||||
|                 "name": "Pozastavit" | ||||
| @ -944,6 +1139,42 @@ | ||||
|             }, | ||||
|             "mute_mode": { | ||||
|                 "name": "Tichý režim" | ||||
|             }, | ||||
|             "extra_rinse_1": { | ||||
|                 "name": "+1 máchání" | ||||
|             }, | ||||
|             "extra_rinse_2": { | ||||
|                 "name": "+2 máchání" | ||||
|             }, | ||||
|             "extra_rinse_3": { | ||||
|                 "name": "+3 máchání" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Aquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "name": "Automatické dávkování" | ||||
|             }, | ||||
|             "good_night": { | ||||
|                 "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": { | ||||
| @ -1014,7 +1245,37 @@ | ||||
|                 "name": "Zapnout" | ||||
|             }, | ||||
|             "prewash": { | ||||
|                 "name": "Předpírka\r\r\r\r\r\r\n" | ||||
|                 "name": "Předpírka\r\r\r\r\r\r\r\n" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Aquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "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": { | ||||
| @ -1044,11 +1305,58 @@ | ||||
|             }, | ||||
|             "dry_time": { | ||||
|                 "name": "Doba sušení" | ||||
|             }, | ||||
|             "steam_level": { | ||||
|                 "name": "Úroveň páry" | ||||
|             }, | ||||
|             "freezer_temp_sel": { | ||||
|                 "name": "Cílová teplota Mraznička" | ||||
|             }, | ||||
|             "fridge_temp_sel": { | ||||
|                 "name": "Cílová teplota Chladnička" | ||||
|             } | ||||
|         }, | ||||
|         "button": { | ||||
|             "induction_hob": { | ||||
|                 "name": "Indukční varná deska" | ||||
|             }, | ||||
|             "start_program": { | ||||
|                 "name": "Program Zahájení" | ||||
|             }, | ||||
|             "stop_program": { | ||||
|                 "name": "Program Zastavit" | ||||
|             } | ||||
|         }, | ||||
|         "climate": { | ||||
|             "air_conditioner": { | ||||
|                 "name": "Klimatizační jednotka" | ||||
|             }, | ||||
|             "fridge": { | ||||
|                 "name": "Chladnička", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Režimy chladničky", | ||||
|                         "state": { | ||||
|                             "auto_set": "Automatické nastavení", | ||||
|                             "super_cool": "Super Cool", | ||||
|                             "holiday": "Holiday", | ||||
|                             "no_mode": "Není vybrán žádný režim" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "freezer": { | ||||
|                 "name": "Mraznička", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Režimy mrazničky", | ||||
|                         "state": { | ||||
|                             "auto_set": "Automatické nastavení", | ||||
|                             "super_freeze": "Super Freeze", | ||||
|                             "no_mode": "Není vybrán žádný režim" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -9,7 +9,10 @@ | ||||
|                     "4": "Geplant", | ||||
|                     "5": "Geplant", | ||||
|                     "6": "Fehler", | ||||
|                     "7": "Bereit" | ||||
|                     "7": "Bereit", | ||||
|                     "2": "Programm läuft", | ||||
|                     "8": "Test", | ||||
|                     "9": "Programm wird angehalten..." | ||||
|                 } | ||||
|             }, | ||||
|             "program_phases_wm": { | ||||
| @ -53,7 +56,9 @@ | ||||
|                     "16": "Abkühlen", | ||||
|                     "18": "Auffrischen", | ||||
|                     "19": "Trocknen", | ||||
|                     "20": "Trocknen" | ||||
|                     "20": "Trocknen", | ||||
|                     "11": "Bereit", | ||||
|                     "17": "unknown" | ||||
|                 }, | ||||
|                 "name": "Phase" | ||||
|             }, | ||||
| @ -79,7 +84,8 @@ | ||||
|                     "12": "Bügeln", | ||||
|                     "13": "Wäsche fertig", | ||||
|                     "14": "Bereit zum Anziehen", | ||||
|                     "15": "Extra trocken" | ||||
|                     "15": "Extra trocken", | ||||
|                     "11": "Keine Trocknung" | ||||
|                 }, | ||||
|                 "name": "Trocknungsstufe" | ||||
|             }, | ||||
| @ -165,6 +171,154 @@ | ||||
|                     "5": "Ventilator", | ||||
|                     "6": "Ventilator" | ||||
|                 } | ||||
|             }, | ||||
|             "programs_td": { | ||||
|                 "state": { | ||||
|                     "active_dry": "Active Dry", | ||||
|                     "allergy_care": "Anti-Allergie-Programm", | ||||
|                     "all_in_one": "All in One", | ||||
|                     "antiallergy": "Anti-Allergie-Programm", | ||||
|                     "anti_odours": "Anti-Geruch", | ||||
|                     "auto_care": "Auto Care", | ||||
|                     "baby": "Baby", | ||||
|                     "bed_quilt": "Bettdecken", | ||||
|                     "care_30": "Pflege 30", | ||||
|                     "care_45": "Pflege 45", | ||||
|                     "care_59": "Pflege 59", | ||||
|                     "coloured": "Buntwäsche", | ||||
|                     "daily_45_min": "DAILY 45'", | ||||
|                     "daily_perfect_59_min": "DAILY PERFECT 59'", | ||||
|                     "darks_and_coloured": "Dunkles & Buntwäsche", | ||||
|                     "delicates": "Feinwäsche", | ||||
|                     "duvet": "Oberbetten", | ||||
|                     "eco": "Eco-Baumwolle", | ||||
|                     "ecospeed_cottons": "Ecospeed Baumwolle", | ||||
|                     "ecospeed_delicates": "Ecospeed Feinwaesche", | ||||
|                     "ecospeed_mixed": "Ecospeed Mischwäsche", | ||||
|                     "extra_hygiene": "Extra Hygiene", | ||||
|                     "fitness": "Fitness", | ||||
|                     "fresh_care": "Fresh Care", | ||||
|                     "genius": "Genius", | ||||
|                     "hqd_baby_care": "Baby Care", | ||||
|                     "hqd_bath_towel": "Handtücher", | ||||
|                     "hqd_bed_sheets": "Bettwäsche", | ||||
|                     "hqd_bulky": "Schwere Textilien", | ||||
|                     "hqd_casual": "Casual", | ||||
|                     "hqd_cold_wind_30": "Kühle Brise 30 Minuten", | ||||
|                     "hqd_cold_wind_timing": "Kühle Brise ", | ||||
|                     "hqd_cotton": "Baumwolle", | ||||
|                     "hqd_curtain": "Vorhänge", | ||||
|                     "hqd_delicate": "Feinwäsche", | ||||
|                     "hqd_diaper": "Windeln", | ||||
|                     "hqd_duvet": "Bettdecke", | ||||
|                     "hqd_feather": "Daunenjacken", | ||||
|                     "hqd_hot_wind_timing": "Heiße Luft", | ||||
|                     "hqd_hygienic": "Desinfektion", | ||||
|                     "hqd_i_refresh": "I-Refresh", | ||||
|                     "hqd_i_refresh_pro": "I-Refresh Pro", | ||||
|                     "hqd_jacket": "Jacken", | ||||
|                     "hqd_jeans": "Jeans", | ||||
|                     "hqd_luxury": "Luxury", | ||||
|                     "hqd_mix": "Gemischt", | ||||
|                     "hqd_night_dry": "Trocknung über Nacht", | ||||
|                     "hqd_outdoor": "Outdoor", | ||||
|                     "hqd_precious_cure": "Precious Cure", | ||||
|                     "hqd_quick_20": "Schnell 20", | ||||
|                     "hqd_quick_30": "Schnell 30", | ||||
|                     "hqd_quick_dry": "Schnell trocken 30", | ||||
|                     "hqd_quilt": "Steppdecken", | ||||
|                     "hqd_refresh": "Auffrischen", | ||||
|                     "hqd_school_uniform": "Schuluniform", | ||||
|                     "hqd_shirt": "Hemden", | ||||
|                     "hqd_shoes": "Schuhe", | ||||
|                     "hqd_silk": "Seide", | ||||
|                     "hqd_sports": "Sport", | ||||
|                     "hqd_synthetics": "Synthetik", | ||||
|                     "hqd_timer": "Zeitgesteuert", | ||||
|                     "hqd_towel": "Handtücher", | ||||
|                     "hqd_underwear": "Unterwäsche", | ||||
|                     "hqd_warm_up": "Erwärmen", | ||||
|                     "hqd_wool": "Wolle", | ||||
|                     "hqd_working_suit": "Arbeitskleidung", | ||||
|                     "hygiene": "Hygiene", | ||||
|                     "iot_checkup": "Check-up", | ||||
|                     "iot_dry_anti_mites": "Anti-Milben-Programm", | ||||
|                     "iot_dry_baby": "Baby", | ||||
|                     "iot_dry_backpacks": "Rucksäcke", | ||||
|                     "iot_dry_bathrobe": "Bademäntel", | ||||
|                     "iot_dry_bed_linen": "Bettwäsche", | ||||
|                     "iot_dry_bed_quilt": "Bettdecken", | ||||
|                     "iot_dry_cotton": "Baumwolle", | ||||
|                     "iot_dry_cuddly_toys": "Stofftiere", | ||||
|                     "iot_dry_curtains": "Vorhänge", | ||||
|                     "iot_dry_dehumidifier": "Entfeuchter", | ||||
|                     "iot_dry_delicates": "Feinwäsche", | ||||
|                     "iot_dry_delicate_tablecloths": "Empfindliche Tischdecken", | ||||
|                     "iot_dry_denim_jeans": "Denim - Jeans", | ||||
|                     "iot_dry_down_jacket": "Jacket", | ||||
|                     "iot_dry_duvet": "Oberbetten", | ||||
|                     "iot_dry_easy_iron_cotton": "Superleichtes Bügeln", | ||||
|                     "iot_dry_easy_iron_synthetics": "Super Leichtbügeln Synthetik", | ||||
|                     "iot_dry_gym_fit": "Gymnastik & Fitness – Sportkleidung", | ||||
|                     "iot_dry_lingerie": "Unterwäsche", | ||||
|                     "iot_dry_mixed": "Gemischt", | ||||
|                     "iot_dry_playsuits": "Jumpsuits", | ||||
|                     "iot_dry_rapid_30": "Rapid 30", | ||||
|                     "iot_dry_rapid_59": "Rapid 59'.", | ||||
|                     "iot_dry_refresh": "Auffrischen", | ||||
|                     "iot_dry_regenerates_waterproof": "Auffrischung – wasserdichte Kleidung", | ||||
|                     "iot_dry_relax_creases": "Falten glätten", | ||||
|                     "iot_dry_shirts": "Hemden", | ||||
|                     "iot_dry_small_load": "Kleine Beladung", | ||||
|                     "iot_dry_swimsuits_and_bikinis": "Badeanzüge", | ||||
|                     "iot_dry_synthetics": "Synthetische", | ||||
|                     "iot_dry_synthetic_dry": "Synthetik trocken", | ||||
|                     "iot_dry_tablecloths": "Tischdecken", | ||||
|                     "iot_dry_technical_fabrics": "Technisches Gewebe", | ||||
|                     "iot_dry_warm_embrace": "Superschon", | ||||
|                     "iot_dry_wool": "Wolle", | ||||
|                     "jeans": "Jeans", | ||||
|                     "mix_and_dry": "Mix&Dry", | ||||
|                     "pets": "Haustiere", | ||||
|                     "pre_iron": "Vorbügeln", | ||||
|                     "rapid_30": "Rapid 30", | ||||
|                     "rapid_45": "Schnell 45 Min", | ||||
|                     "rapid_59": "Perfekt Schnellwaschgang 59 Min.", | ||||
|                     "refresh": "Auffrischen", | ||||
|                     "relax_creases": "Falten glätten", | ||||
|                     "saving_30_min": "ECO 30'", | ||||
|                     "shirts": "Hemden", | ||||
|                     "shoes": "Schuhe", | ||||
|                     "small_load": "Kleine Beladung", | ||||
|                     "soft_care": "Sanfte Pflege", | ||||
|                     "sport_plus": "Sports", | ||||
|                     "super_easy_iron_misti": "Super Leichtbügeln Gemischt", | ||||
|                     "super_easy_iron_xxl": "Super Leichtbügeln XXL", | ||||
|                     "super_fast_cottons": "Superschnell Baumwolle", | ||||
|                     "super_fast_delicates": "Superschnell Feinwäsche", | ||||
|                     "synthetics": "Synthetische", | ||||
|                     "total_care": "Total Care", | ||||
|                     "trainers": "Turnschuhe", | ||||
|                     "ultra_care": "Ultra Care", | ||||
|                     "waterproof_revitalize": "Auffrischen wasserdichter Stoffe", | ||||
|                     "whites": "Weißen", | ||||
|                     "wool": "Wolle Trocknen", | ||||
|                     "woolmark": "Wolle", | ||||
|                     "xxl_load": "XXL-Beladung", | ||||
|                     "zoom_59": "Zoom 59" | ||||
|                 } | ||||
|             }, | ||||
|             "room_temperature": { | ||||
|                 "name": "Raumtemperatur" | ||||
|             }, | ||||
|             "humidity": { | ||||
|                 "name": "Luftfeuchtigkeit" | ||||
|             }, | ||||
|             "freezer_temp": { | ||||
|                 "name": "Gefrierschrank-Temperatur" | ||||
|             }, | ||||
|             "fridge_temp": { | ||||
|                 "name": "Temperatur des Kühlschranks" | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -255,6 +409,11 @@ | ||||
|                     "silent": "Nacht", | ||||
|                     "silent_care": "Silent Care", | ||||
|                     "smart_ai": "Smart AI", | ||||
|                     "smart_ai_pro": "Smart AI Pro", | ||||
|                     "smart_ai_pro_soil": "Smart AI Pro", | ||||
|                     "smart_ai_rapid": "Smart AI Rapid", | ||||
|                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||
|                     "smart_ai_soil": "Smart AI", | ||||
|                     "special": "spezial", | ||||
|                     "special_pw_prz": "spezial", | ||||
|                     "steam": "Dampf 75 °C", | ||||
| @ -311,11 +470,12 @@ | ||||
|             "programs_ov": { | ||||
|                 "state": { | ||||
|                     "bakery": "Teigwaren und Brot", | ||||
|                     "bakery_steam": "Mit Dampf gebackenes Brot", | ||||
|                     "bakery_steam": "Dampf im Backofen", | ||||
|                     "bottom_heating": "Unterhitze", | ||||
|                     "bottom_heating_fan": "Unterhitze + Umluft", | ||||
|                     "bread": "Brot", | ||||
|                     "bread_steam": "Mit Dampf gebackenes Gebäck", | ||||
|                     "bread_steam": "Mit Dampf gebackenes Brot", | ||||
|                     "combi": "Combi", | ||||
|                     "convection_fan": "Umluft", | ||||
|                     "convection_fan_turnspit": "Heißluft + Drehspieß", | ||||
|                     "conventional": "Ober-Unterhitze", | ||||
| @ -323,7 +483,7 @@ | ||||
|                     "defrost": "Auftauen", | ||||
|                     "descaling": "Entkalkung", | ||||
|                     "fish": "Fisch", | ||||
|                     "fish_steam": "Dampfgegarter Fisch", | ||||
|                     "fish_steam": "Gedünsteter Fisch", | ||||
|                     "grill_cata": "Grill", | ||||
|                     "grill_fan_cata": "Grill Umluft", | ||||
|                     "grill_fan_pyro": "Grill + Umluft", | ||||
| @ -334,12 +494,12 @@ | ||||
|                     "leavening": "Aufgehen", | ||||
|                     "low_temp_cooking": "Garen bei niedriger Temperatur", | ||||
|                     "low_temp_cooking_fish": "Garen bei niedriger Temperatur - Fisch", | ||||
|                     "low_temp_cooking_fish_steam": "Dampfgaren bei niedriger Temperatur - Fisch", | ||||
|                     "low_temp_cooking_fish_steam": "Niedertemperaturgaren - Gedünsteter Fisch", | ||||
|                     "low_temp_cooking_meat": "Garen bei niedriger Temperatur - Fleisch", | ||||
|                     "low_temp_cooking_meat_steam": "Niedertemperatur-Dampfgaren - Fleisch", | ||||
|                     "low_temp_cooking_meat_steam": "Niedertemperaturgaren - Gedämpftes Fleisch", | ||||
|                     "low_temp_cooking_steam": "Niedertemperatur-Dampfgaren", | ||||
|                     "meat": "Fleisch", | ||||
|                     "meat_steam": "Dampfgegartes Fleisch", | ||||
|                     "meat_steam": "Fleisch Dampf", | ||||
|                     "multi_level": "Multi-Level", | ||||
|                     "paella": "Paella", | ||||
|                     "pasta_and_bakery": "Teigwaren und Brot", | ||||
| @ -347,8 +507,8 @@ | ||||
|                     "pyrolysis": "Pyrolyse", | ||||
|                     "pyrolysis_plus": "Pyrolyse +", | ||||
|                     "red_meat": "Rotes Fleisch", | ||||
|                     "red_meat_steam": "Dampfgegartes rotes Fleisch", | ||||
|                     "regenerate": "Regeneration", | ||||
|                     "red_meat_steam": "Gedünstetes rotes Fleisch", | ||||
|                     "regenerate": "Regenerieren", | ||||
|                     "soft_plus": "Soft+", | ||||
|                     "super_grill": "Super Grill", | ||||
|                     "tailor_bake": "Tailor bake", | ||||
| @ -359,7 +519,7 @@ | ||||
|                     "vegetables_pyro": "Gemüse", | ||||
|                     "water_discharge": "Wasserabfluss", | ||||
|                     "white_meat": "Weißes Fleisch", | ||||
|                     "white_meat_steam": "Dampfgegartes weißes Fleisch" | ||||
|                     "white_meat_steam": "Gedämpftes weißes Fleisch" | ||||
|                 }, | ||||
|                 "name": "Programm" | ||||
|             }, | ||||
| @ -416,7 +576,7 @@ | ||||
|                     "hqd_precious_cure": "Precious Cure", | ||||
|                     "hqd_quick_20": "Schnell 20", | ||||
|                     "hqd_quick_30": "Schnell 30", | ||||
|                     "hqd_quick_dry": "Schnell trocken", | ||||
|                     "hqd_quick_dry": "Schnell trocken 30", | ||||
|                     "hqd_quilt": "Steppdecken", | ||||
|                     "hqd_refresh": "Auffrischen", | ||||
|                     "hqd_school_uniform": "Schuluniform", | ||||
| @ -820,7 +980,8 @@ | ||||
|                     "12": "Bügeln", | ||||
|                     "13": "Wäsche fertig", | ||||
|                     "14": "Bereit zum Anziehen", | ||||
|                     "15": "Extra trocken" | ||||
|                     "15": "Extra trocken", | ||||
|                     "11": "Keine Trocknung" | ||||
|                 }, | ||||
|                 "name": "Trocknungsstufe" | ||||
|             }, | ||||
| @ -870,6 +1031,40 @@ | ||||
|                     "iot_uv_and_fan": "UV + Gebläse", | ||||
|                     "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": { | ||||
| @ -877,7 +1072,7 @@ | ||||
|                 "name": "Knitterschutz" | ||||
|             }, | ||||
|             "add_dish": { | ||||
|                 "name": "" | ||||
|                 "name": "Geschirr hinzufügen" | ||||
|             }, | ||||
|             "eco_express": { | ||||
|                 "name": "Eco" | ||||
| @ -944,6 +1139,42 @@ | ||||
|             }, | ||||
|             "mute_mode": { | ||||
|                 "name": "Stummer Modus" | ||||
|             }, | ||||
|             "extra_rinse_1": { | ||||
|                 "name": "+1 Spülgang" | ||||
|             }, | ||||
|             "extra_rinse_2": { | ||||
|                 "name": "+2 Spülgänge" | ||||
|             }, | ||||
|             "extra_rinse_3": { | ||||
|                 "name": "+3 Spülgänge" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "name": "Autodosierung" | ||||
|             }, | ||||
|             "good_night": { | ||||
|                 "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": { | ||||
| @ -1015,6 +1246,36 @@ | ||||
|             }, | ||||
|             "prewash": { | ||||
|                 "name": "Vorspülen" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "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": { | ||||
| @ -1044,11 +1305,58 @@ | ||||
|             }, | ||||
|             "dry_time": { | ||||
|                 "name": "Trocknungsdauer" | ||||
|             }, | ||||
|             "steam_level": { | ||||
|                 "name": "Dampfstufe" | ||||
|             }, | ||||
|             "freezer_temp_sel": { | ||||
|                 "name": "Zieltemperatur Gefrierschrank" | ||||
|             }, | ||||
|             "fridge_temp_sel": { | ||||
|                 "name": "Zieltemperatur Kühlschrank" | ||||
|             } | ||||
|         }, | ||||
|         "button": { | ||||
|             "induction_hob": { | ||||
|                 "name": "Induktionskochfeld" | ||||
|             }, | ||||
|             "start_program": { | ||||
|                 "name": "Programm Start" | ||||
|             }, | ||||
|             "stop_program": { | ||||
|                 "name": "Programm Stopp" | ||||
|             } | ||||
|         }, | ||||
|         "climate": { | ||||
|             "air_conditioner": { | ||||
|                 "name": "Klimaanlage" | ||||
|             }, | ||||
|             "fridge": { | ||||
|                 "name": "Kühlschrank", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Kühlschrank-Modi", | ||||
|                         "state": { | ||||
|                             "auto_set": "Auto-Set", | ||||
|                             "super_cool": "Super Cool", | ||||
|                             "holiday": "Holiday", | ||||
|                             "no_mode": "Kein Modus ausgewählt" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "freezer": { | ||||
|                 "name": "Gefrierschrank", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Gefrierschrank-Modi", | ||||
|                         "state": { | ||||
|                             "auto_set": "Auto-Set", | ||||
|                             "super_freeze": "Super Freeze", | ||||
|                             "no_mode": "Kein Modus ausgewählt" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -9,7 +9,10 @@ | ||||
|                     "4": "Προγραμματισμένος", | ||||
|                     "5": "Προγραμματισμένος", | ||||
|                     "6": "Λάθος", | ||||
|                     "7": "Ετοιμος" | ||||
|                     "7": "Ετοιμος", | ||||
|                     "2": "Το πρόγραμμα εκτελείται", | ||||
|                     "8": "Test", | ||||
|                     "9": "Διακοπή κύκλου..." | ||||
|                 } | ||||
|             }, | ||||
|             "program_phases_wm": { | ||||
| @ -53,7 +56,9 @@ | ||||
|                     "16": "Περίοδος αναμονής", | ||||
|                     "18": "Κρατήστε τη φρεσκάδα", | ||||
|                     "19": "Στέγνωμα", | ||||
|                     "20": "Στέγνωμα" | ||||
|                     "20": "Στέγνωμα", | ||||
|                     "11": "Ετοιμος", | ||||
|                     "17": "unknown" | ||||
|                 }, | ||||
|                 "name": "Φάση" | ||||
|             }, | ||||
| @ -79,7 +84,8 @@ | ||||
|                     "12": "Σιδέρωμα", | ||||
|                     "13": "Στέγνωμα για Αποθήκευση ", | ||||
|                     "14": "Ετοιμο να φορεθεί", | ||||
|                     "15": "Επιπλέον στέγνωμα" | ||||
|                     "15": "Επιπλέον στέγνωμα", | ||||
|                     "11": "Χωρίς στέγνωμα" | ||||
|                 }, | ||||
|                 "name": "Επίπεδο στεγνώματος" | ||||
|             }, | ||||
| @ -165,6 +171,154 @@ | ||||
|                     "5": "Ανεμιστήρας", | ||||
|                     "6": "Ανεμιστήρας" | ||||
|                 } | ||||
|             }, | ||||
|             "programs_td": { | ||||
|                 "state": { | ||||
|                     "active_dry": "Ενεργό στέγνωμα", | ||||
|                     "allergy_care": "Αντιαλλεργικο", | ||||
|                     "all_in_one": "Ολα σε ενα", | ||||
|                     "antiallergy": "Αντιαλλεργικο", | ||||
|                     "anti_odours": "Εναντια στιws", | ||||
|                     "auto_care": "Αυτόματη φροντίδα", | ||||
|                     "baby": "Μωρουδιακά", | ||||
|                     "bed_quilt": "Καλυμματα κρεβατιου", | ||||
|                     "care_30": "Φροντίδα 30", | ||||
|                     "care_45": "Φροντίδα 45", | ||||
|                     "care_59": "Φροντίδα 59", | ||||
|                     "coloured": "χρωματιστα", | ||||
|                     "daily_45_min": "ΚΑΘΗΜΕΡΙΝΟ 45'", | ||||
|                     "daily_perfect_59_min": "ΚΑΘΗΜΕΡΙΝΟ ΙΔΑΝΙΚΟ 59'", | ||||
|                     "darks_and_coloured": "Μαυρα & Χρωματιστα", | ||||
|                     "delicates": "Ευαίσθητα", | ||||
|                     "duvet": "Παπλώματα", | ||||
|                     "eco": "Βαμβακερά οικολογικά", | ||||
|                     "ecospeed_cottons": "Ecospeed βαμβακερα", | ||||
|                     "ecospeed_delicates": "Ecospeed ευαισθητα", | ||||
|                     "ecospeed_mixed": "Ecospeed αναμεικτα", | ||||
|                     "extra_hygiene": "ΕΠΙΠΛΕΟΝ ΥΓΙΕΙΝΗ", | ||||
|                     "fitness": "Καταλληλότητα", | ||||
|                     "fresh_care": "Φρέσκια φροντίδα", | ||||
|                     "genius": "Genius", | ||||
|                     "hqd_baby_care": "Baby Care", | ||||
|                     "hqd_bath_towel": "Πετσέτες", | ||||
|                     "hqd_bed_sheets": "Σεντόνια κρεβατιού", | ||||
|                     "hqd_bulky": "Ογκώδη αντικείμενα", | ||||
|                     "hqd_casual": "Καθημερινά ρούχα", | ||||
|                     "hqd_cold_wind_30": "Δροσερό αεράκι 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": "I-Refresh", | ||||
|                     "hqd_i_refresh_pro": "I-Refresh Pro", | ||||
|                     "hqd_jacket": "Ζακέτες", | ||||
|                     "hqd_jeans": "Τζιν παντελονια", | ||||
|                     "hqd_luxury": "Luxury", | ||||
|                     "hqd_mix": "Μικτά", | ||||
|                     "hqd_night_dry": "Ολονύκτιο στέγνωμα", | ||||
|                     "hqd_outdoor": "Outdoor", | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Γρήγορα 20", | ||||
|                     "hqd_quick_30": "Γρήγορα 30", | ||||
|                     "hqd_quick_dry": "Γρήγορο στέγνωμα 30", | ||||
|                     "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": "Ενδύματα εργασίας", | ||||
|                     "hygiene": "Υγιεινή", | ||||
|                     "iot_checkup": "Έλεγχος", | ||||
|                     "iot_dry_anti_mites": "Ενάντια στα ακάρεα", | ||||
|                     "iot_dry_baby": "Μωρουδιακά", | ||||
|                     "iot_dry_backpacks": "Σακίδια πλάτης", | ||||
|                     "iot_dry_bathrobe": "Μπουρνούζι", | ||||
|                     "iot_dry_bed_linen": "Κλινοσκεπάσματα", | ||||
|                     "iot_dry_bed_quilt": "Καλυμματα κρεβατιου", | ||||
|                     "iot_dry_cotton": "Βαμβακερό", | ||||
|                     "iot_dry_cuddly_toys": "Λούτρινα Αρκουδάκια", | ||||
|                     "iot_dry_curtains": "Κουρτίνες", | ||||
|                     "iot_dry_dehumidifier": "Αφαίρεση υγρασίας", | ||||
|                     "iot_dry_delicates": "Ευαισθητα", | ||||
|                     "iot_dry_delicate_tablecloths": "Ευαίσθητα τραπεζομάντηλα", | ||||
|                     "iot_dry_denim_jeans": "Ντένιμ - τζιν", | ||||
|                     "iot_dry_down_jacket": "Jacket", | ||||
|                     "iot_dry_duvet": "Παπλώματα", | ||||
|                     "iot_dry_easy_iron_cotton": "Super Easy Iron", | ||||
|                     "iot_dry_easy_iron_synthetics": "Εξαιρετικά εύκολο σιδέρωμα - Συνθετικά", | ||||
|                     "iot_dry_gym_fit": "Γυμναστήριο", | ||||
|                     "iot_dry_lingerie": "Εσώρουχα", | ||||
|                     "iot_dry_mixed": "Μικτά", | ||||
|                     "iot_dry_playsuits": "Στολές", | ||||
|                     "iot_dry_rapid_30": "Rapid 30", | ||||
|                     "iot_dry_rapid_59": "Γρήγορο 59'.", | ||||
|                     "iot_dry_refresh": "Refresh", | ||||
|                     "iot_dry_regenerates_waterproof": "Ανανέωση αδιάβροχων", | ||||
|                     "iot_dry_relax_creases": "ΧΑΛΑΡΩΣΗ", | ||||
|                     "iot_dry_shirts": "Πουκάμισα", | ||||
|                     "iot_dry_small_load": "ΜΙΚΡΟ ΦΟΡΤΙΟ", | ||||
|                     "iot_dry_swimsuits_and_bikinis": "Μαγιό", | ||||
|                     "iot_dry_synthetics": "Συνθετικα", | ||||
|                     "iot_dry_synthetic_dry": "Συνθετικά στέγνωμα", | ||||
|                     "iot_dry_tablecloths": "Τραπεζομάντηλα", | ||||
|                     "iot_dry_technical_fabrics": "Τεχνικά υφάσματα", | ||||
|                     "iot_dry_warm_embrace": "Ζεστή Αγκαλιά", | ||||
|                     "iot_dry_wool": "Μαλλινα", | ||||
|                     "jeans": "τζιν", | ||||
|                     "mix_and_dry": "Μικτά & Στέγνωμα", | ||||
|                     "pets": "Κατοικίδια", | ||||
|                     "pre_iron": "Προ-σιδερωμα", | ||||
|                     "rapid_30": "Rapid 30", | ||||
|                     "rapid_45": "Rapid 45 min", | ||||
|                     "rapid_59": "Τέλειο Γρήγορο 59 λεπτά", | ||||
|                     "refresh": "Φρεσκάρισμα", | ||||
|                     "relax_creases": "ΧΑΛΑΡΩΣΗ", | ||||
|                     "saving_30_min": "ΕΞΟΙΚΟΝΟΜΗΣΗ 30'", | ||||
|                     "shirts": "Πουκάμισα", | ||||
|                     "shoes": "Παπούτσια", | ||||
|                     "small_load": "ΜΙΚΡΟ ΦΟΡΤΙΟ", | ||||
|                     "soft_care": "Απαλή φροντίδα", | ||||
|                     "sport_plus": "ΣΠΟΡ", | ||||
|                     "super_easy_iron_misti": "Εξαιρετικά εύκολο σιδέρωμα για ανάμεικτα", | ||||
|                     "super_easy_iron_xxl": "Εξαιρετικά εύκολο σιδέρωμα για XXL", | ||||
|                     "super_fast_cottons": "Εξαιρετικα ΓΡΗΓΟΡΟ βαμβακερα", | ||||
|                     "super_fast_delicates": "Εξαιρετικα ΓΡΗΓΟΡΟ ευαισθητα", | ||||
|                     "synthetics": "Συνθετικα", | ||||
|                     "total_care": "Ολικη Φροντιδα", | ||||
|                     "trainers": "Αθλητικά παπούτσια", | ||||
|                     "ultra_care": "Ultra Care", | ||||
|                     "waterproof_revitalize": "Αναζωογονηση αδιαβροχων", | ||||
|                     "whites": "Λευκά", | ||||
|                     "wool": "Στέγνωμα Μάλλινων", | ||||
|                     "woolmark": "Μαλλινα", | ||||
|                     "xxl_load": "XXL Φορτιο", | ||||
|                     "zoom_59": "Zoom 59" | ||||
|                 } | ||||
|             }, | ||||
|             "room_temperature": { | ||||
|                 "name": "Θερμοκρασία δωματίου" | ||||
|             }, | ||||
|             "humidity": { | ||||
|                 "name": "Υγρασία" | ||||
|             }, | ||||
|             "freezer_temp": { | ||||
|                 "name": "Θερμοκρασία καταψύκτη" | ||||
|             }, | ||||
|             "fridge_temp": { | ||||
|                 "name": "Θερμοκρασία ψυγείου" | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -255,6 +409,11 @@ | ||||
|                     "silent": "Νύχτα", | ||||
|                     "silent_care": "Silent Care", | ||||
|                     "smart_ai": "Smart AI", | ||||
|                     "smart_ai_pro": "Smart AI Pro", | ||||
|                     "smart_ai_pro_soil": "Smart AI Pro", | ||||
|                     "smart_ai_rapid": "Smart AI Rapid", | ||||
|                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||
|                     "smart_ai_soil": "Smart AI", | ||||
|                     "special": "σπεσιαλ", | ||||
|                     "special_pw_prz": "σπεσιαλ", | ||||
|                     "steam": "ατμος 75°C", | ||||
| @ -311,11 +470,12 @@ | ||||
|             "programs_ov": { | ||||
|                 "state": { | ||||
|                     "bakery": "Ζυμαρικά και αρτοποιήματα", | ||||
|                     "bakery_steam": "Ψωμί ατμού", | ||||
|                     "bakery_steam": "Ατμός φούρνου", | ||||
|                     "bottom_heating": "Κάτω στοιχείο", | ||||
|                     "bottom_heating_fan": "Κάτω στοιχείο + ανεμιστήρας", | ||||
|                     "bread": "Ψωμί", | ||||
|                     "bread_steam": "Αρτοσκευάσματα ατμού", | ||||
|                     "bread_steam": "Ψωμί ατμού", | ||||
|                     "combi": "Combi", | ||||
|                     "convection_fan": "Θερμοσ αερασ", | ||||
|                     "convection_fan_turnspit": "Θερμός αέρας + Ανεμιστήρας + Σούβλα", | ||||
|                     "conventional": "Ανω - κατω θερμανση", | ||||
| @ -323,7 +483,7 @@ | ||||
|                     "defrost": "Απόψυξη", | ||||
|                     "descaling": "Αφαλάτωση", | ||||
|                     "fish": "Ψάρια", | ||||
|                     "fish_steam": "Ψάρι στον ατμό", | ||||
|                     "fish_steam": "Ψάρια στον ατμό", | ||||
|                     "grill_cata": "Γκριλ", | ||||
|                     "grill_fan_cata": "Ανεμιστήρας γκριλ", | ||||
|                     "grill_fan_pyro": "Γκριλ + ανεμιστήρας", | ||||
| @ -334,9 +494,9 @@ | ||||
|                     "leavening": "Ζυμωση", | ||||
|                     "low_temp_cooking": "Μαγείρεμα σε χαμηλή θερμοκρασία", | ||||
|                     "low_temp_cooking_fish": "Μαγείρεμα σε χαμηλή θερμοκρασία - Ψάρι", | ||||
|                     "low_temp_cooking_fish_steam": "Μαγείρεμα με ατμό σε χαμηλή θερμοκρασία - Ψάρι", | ||||
|                     "low_temp_cooking_fish_steam": "Μαγείρεμα σε χαμηλή θερμοκρασία - Ψάρια στον ατμό", | ||||
|                     "low_temp_cooking_meat": "Μαγείρεμα σε χαμηλή θερμοκρασία - Κρέας", | ||||
|                     "low_temp_cooking_meat_steam": "Μαγείρεμα με ατμό σε χαμηλή θερμοκρασία - Κρέας", | ||||
|                     "low_temp_cooking_meat_steam": "Μαγείρεμα σε χαμηλή θερμοκρασία - Κρέας στον ατμό", | ||||
|                     "low_temp_cooking_steam": "Μαγείρεμα με ατμό σε χαμηλή θερμοκρασία", | ||||
|                     "meat": "Κρέας", | ||||
|                     "meat_steam": "Κρέας στον ατμό", | ||||
| @ -357,7 +517,7 @@ | ||||
|                     "vegetables": "Λαχανικά", | ||||
|                     "vegetables_cata": "Λαχανικά", | ||||
|                     "vegetables_pyro": "Λαχανικά", | ||||
|                     "water_discharge": "Αποστράγγιση νερού", | ||||
|                     "water_discharge": "Απόρριψη νερού", | ||||
|                     "white_meat": "Λευκό κρέας", | ||||
|                     "white_meat_steam": "Λευκό κρέας στον ατμό" | ||||
|                 }, | ||||
| @ -416,7 +576,7 @@ | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Γρήγορα 20", | ||||
|                     "hqd_quick_30": "Γρήγορα 30", | ||||
|                     "hqd_quick_dry": "Γρήγορο στέγνωμα", | ||||
|                     "hqd_quick_dry": "Γρήγορο στέγνωμα 30", | ||||
|                     "hqd_quilt": "Παπλώματα", | ||||
|                     "hqd_refresh": "Φρεσκάρισμα", | ||||
|                     "hqd_school_uniform": "Σχολική στολή", | ||||
| @ -820,7 +980,8 @@ | ||||
|                     "12": "Σιδέρωμα", | ||||
|                     "13": "Στέγνωμα για Αποθήκευση ", | ||||
|                     "14": "Ετοιμο να φορεθεί", | ||||
|                     "15": "Επιπλέον στέγνωμα" | ||||
|                     "15": "Επιπλέον στέγνωμα", | ||||
|                     "11": "Χωρίς στέγνωμα" | ||||
|                 }, | ||||
|                 "name": "Επίπεδο στεγνώματος" | ||||
|             }, | ||||
| @ -870,6 +1031,40 @@ | ||||
|                     "iot_uv_and_fan": "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": { | ||||
| @ -877,7 +1072,7 @@ | ||||
|                 "name": "Λιγότερες ζάρες" | ||||
|             }, | ||||
|             "add_dish": { | ||||
|                 "name": "" | ||||
|                 "name": "Προσθήκη πιάτων" | ||||
|             }, | ||||
|             "eco_express": { | ||||
|                 "name": "Οικολογικό" | ||||
| @ -944,6 +1139,42 @@ | ||||
|             }, | ||||
|             "mute_mode": { | ||||
|                 "name": "Σίγαση λειτουργίας" | ||||
|             }, | ||||
|             "extra_rinse_1": { | ||||
|                 "name": "+1 Ξέβγαλμα" | ||||
|             }, | ||||
|             "extra_rinse_2": { | ||||
|                 "name": "+2 Ξεβγάλματα" | ||||
|             }, | ||||
|             "extra_rinse_3": { | ||||
|                 "name": "+3 Ξεβγάλματα" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus (προσθήκη νερού)" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "name": "Αυτόματη Δοσολογία" | ||||
|             }, | ||||
|             "good_night": { | ||||
|                 "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": { | ||||
| @ -993,7 +1224,7 @@ | ||||
|                 "name": "Τηγάνι" | ||||
|             }, | ||||
|             "remote_control": { | ||||
|                 "name": "Τηλεχειριστήριο" | ||||
|                 "name": "Daljinsko upravljanje" | ||||
|             }, | ||||
|             "rinse_aid": { | ||||
|                 "name": "Επίπεδο λαμπρυντικού" | ||||
| @ -1015,6 +1246,36 @@ | ||||
|             }, | ||||
|             "prewash": { | ||||
|                 "name": "προπλυση" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus (προσθήκη νερού)" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "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": { | ||||
| @ -1044,11 +1305,58 @@ | ||||
|             }, | ||||
|             "dry_time": { | ||||
|                 "name": "Χρόνος στεγνώματος" | ||||
|             }, | ||||
|             "steam_level": { | ||||
|                 "name": "Επίπεδο ατμού" | ||||
|             }, | ||||
|             "freezer_temp_sel": { | ||||
|                 "name": "Στοχευμένη θερμοκρασία Καταψύκτης" | ||||
|             }, | ||||
|             "fridge_temp_sel": { | ||||
|                 "name": "Στοχευμένη θερμοκρασία Ψυγείο" | ||||
|             } | ||||
|         }, | ||||
|         "button": { | ||||
|             "induction_hob": { | ||||
|                 "name": "Επαγωγική εστία" | ||||
|             }, | ||||
|             "start_program": { | ||||
|                 "name": "Πρόγραμμα Εκκίνηση" | ||||
|             }, | ||||
|             "stop_program": { | ||||
|                 "name": "Πρόγραμμα Διακοπή" | ||||
|             } | ||||
|         }, | ||||
|         "climate": { | ||||
|             "air_conditioner": { | ||||
|                 "name": "Κλιματιστικό" | ||||
|             }, | ||||
|             "fridge": { | ||||
|                 "name": "Ψυγείο", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Λειτουργίες ψυγείου", | ||||
|                         "state": { | ||||
|                             "auto_set": "Αυτόματη ρύθμιση", | ||||
|                             "super_cool": "Super Cool", | ||||
|                             "holiday": "Holiday", | ||||
|                             "no_mode": "Δεν επιλέχθηκε λειτουργία" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "freezer": { | ||||
|                 "name": "Καταψύκτης", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Λειτουργίες κατάψυξης", | ||||
|                         "state": { | ||||
|                             "auto_set": "Αυτόματη ρύθμιση", | ||||
|                             "super_freeze": "Super Freeze", | ||||
|                             "no_mode": "Δεν επιλέχθηκε λειτουργία" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -77,7 +77,10 @@ | ||||
|                     "4": "Scheduled", | ||||
|                     "5": "Scheduled", | ||||
|                     "6": "Error", | ||||
|                     "7": "Ready" | ||||
|                     "7": "Ready", | ||||
|                     "2": "Program running", | ||||
|                     "8": "Test", | ||||
|                     "9": "Stopping cycle…" | ||||
|                 } | ||||
|             }, | ||||
|             "program_phases_wm": { | ||||
| @ -121,7 +124,9 @@ | ||||
|                     "16": "Cooldown", | ||||
|                     "18": "Keep Fresh", | ||||
|                     "19": "Drying", | ||||
|                     "20": "Drying" | ||||
|                     "20": "Drying", | ||||
|                     "11": "Ready", | ||||
|                     "17": "unknown" | ||||
|                 }, | ||||
|                 "name": "Phase" | ||||
|             }, | ||||
| @ -147,7 +152,8 @@ | ||||
|                     "12": "Iron dry", | ||||
|                     "13": "Cupboard Dry", | ||||
|                     "14": "Ready to wear", | ||||
|                     "15": "Extra dry" | ||||
|                     "15": "Extra dry", | ||||
|                     "11": "No drying" | ||||
|                 }, | ||||
|                 "name": "Drying level" | ||||
|             }, | ||||
| @ -224,6 +230,154 @@ | ||||
|                     "5": "Fan", | ||||
|                     "6": "Fan" | ||||
|                 } | ||||
|             }, | ||||
|             "programs_td": { | ||||
|                 "state": { | ||||
|                     "active_dry": "Active Dry", | ||||
|                     "allergy_care": "Anti-allergy", | ||||
|                     "all_in_one": "All in One", | ||||
|                     "antiallergy": "Anti-allergy", | ||||
|                     "anti_odours": "Anti-odours", | ||||
|                     "auto_care": "Auto Care", | ||||
|                     "baby": "Baby", | ||||
|                     "bed_quilt": "Bed Quilt", | ||||
|                     "care_30": "Care 30", | ||||
|                     "care_45": "Care 45", | ||||
|                     "care_59": "Care 59", | ||||
|                     "coloured": "Colored", | ||||
|                     "daily_45_min": "Daily 45'", | ||||
|                     "daily_perfect_59_min": "Daily Perfect 59'", | ||||
|                     "darks_and_coloured": "Darks & Colored", | ||||
|                     "delicates": "Delicates", | ||||
|                     "duvet": "Duvet", | ||||
|                     "eco": "Eco Cotton", | ||||
|                     "ecospeed_cottons": "Ecospeed Cottons", | ||||
|                     "ecospeed_delicates": "Ecospeed Delicates", | ||||
|                     "ecospeed_mixed": "Ecospeed Mixed", | ||||
|                     "extra_hygiene": "Extra Hygiene", | ||||
|                     "fitness": "Fitness", | ||||
|                     "fresh_care": "Fresh Care", | ||||
|                     "genius": "Genius", | ||||
|                     "hqd_baby_care": "Baby Care", | ||||
|                     "hqd_bath_towel": "Towels", | ||||
|                     "hqd_bed_sheets": "Bed Sheets", | ||||
|                     "hqd_bulky": "Bulky Items", | ||||
|                     "hqd_casual": "Casual", | ||||
|                     "hqd_cold_wind_30": "Cool Breeze 30m", | ||||
|                     "hqd_cold_wind_timing": "Cool Breeze ", | ||||
|                     "hqd_cotton": "Cotton", | ||||
|                     "hqd_curtain": "Curtains", | ||||
|                     "hqd_delicate": "Delicates", | ||||
|                     "hqd_diaper": "Diapers", | ||||
|                     "hqd_duvet": "Duvet", | ||||
|                     "hqd_feather": "Down Jackets", | ||||
|                     "hqd_hot_wind_timing": "Hot Air", | ||||
|                     "hqd_hygienic": "Hygienising", | ||||
|                     "hqd_i_refresh": "I-Refresh", | ||||
|                     "hqd_i_refresh_pro": "I-Refresh Pro", | ||||
|                     "hqd_jacket": "Jackets", | ||||
|                     "hqd_jeans": "Jeans", | ||||
|                     "hqd_luxury": "Luxury", | ||||
|                     "hqd_mix": "Mixed", | ||||
|                     "hqd_night_dry": "Overnight drying", | ||||
|                     "hqd_outdoor": "Outdoor", | ||||
|                     "hqd_precious_cure": "Precious Cure", | ||||
|                     "hqd_quick_20": "Quick 20m", | ||||
|                     "hqd_quick_30": "Quick 30m", | ||||
|                     "hqd_quick_dry": "Quick dry (30 min)", | ||||
|                     "hqd_quilt": "Quilts", | ||||
|                     "hqd_refresh": "Refresh", | ||||
|                     "hqd_school_uniform": "School Uniform", | ||||
|                     "hqd_shirt": "Shirts", | ||||
|                     "hqd_shoes": "Shoes", | ||||
|                     "hqd_silk": "Silk", | ||||
|                     "hqd_sports": "Sports", | ||||
|                     "hqd_synthetics": "Synthetics", | ||||
|                     "hqd_timer": "Timed", | ||||
|                     "hqd_towel": "Towels", | ||||
|                     "hqd_underwear": "Underwear", | ||||
|                     "hqd_warm_up": "Warm up", | ||||
|                     "hqd_wool": "Wool", | ||||
|                     "hqd_working_suit": "Workwear", | ||||
|                     "hygiene": "Hygiene", | ||||
|                     "iot_checkup": "Check-Up", | ||||
|                     "iot_dry_anti_mites": "Anti-mites", | ||||
|                     "iot_dry_baby": "Baby", | ||||
|                     "iot_dry_backpacks": "Backpacks", | ||||
|                     "iot_dry_bathrobe": "Bathrobe", | ||||
|                     "iot_dry_bed_linen": "Bed Linen", | ||||
|                     "iot_dry_bed_quilt": "Bed Quilt", | ||||
|                     "iot_dry_cotton": "Cotton", | ||||
|                     "iot_dry_cuddly_toys": "Cuddly Toys", | ||||
|                     "iot_dry_curtains": "Curtains", | ||||
|                     "iot_dry_dehumidifier": "Humidity Remover", | ||||
|                     "iot_dry_delicates": "Delicates", | ||||
|                     "iot_dry_delicate_tablecloths": "Delicate Tablecloths", | ||||
|                     "iot_dry_denim_jeans": "Denim - Jeans", | ||||
|                     "iot_dry_down_jacket": "Jacket", | ||||
|                     "iot_dry_duvet": "Duvet", | ||||
|                     "iot_dry_easy_iron_cotton": "Super Easy Iron", | ||||
|                     "iot_dry_easy_iron_synthetics": "Super Easy Iron Synthetics", | ||||
|                     "iot_dry_gym_fit": "Gym fit - Fitness", | ||||
|                     "iot_dry_lingerie": "Lingerie", | ||||
|                     "iot_dry_mixed": "Mixed", | ||||
|                     "iot_dry_playsuits": "Playsuits", | ||||
|                     "iot_dry_rapid_30": "Rapid 30m", | ||||
|                     "iot_dry_rapid_59": "Rapid 59'", | ||||
|                     "iot_dry_refresh": "Refresh", | ||||
|                     "iot_dry_regenerates_waterproof": "Regenerates Waterproof", | ||||
|                     "iot_dry_relax_creases": "Relax Creases", | ||||
|                     "iot_dry_shirts": "Shirts", | ||||
|                     "iot_dry_small_load": "Small Load", | ||||
|                     "iot_dry_swimsuits_and_bikinis": "Swimsuits and Bikinis", | ||||
|                     "iot_dry_synthetics": "Synthetics", | ||||
|                     "iot_dry_synthetic_dry": "Synthetic Dry", | ||||
|                     "iot_dry_tablecloths": "Tablecloths", | ||||
|                     "iot_dry_technical_fabrics": "Technical Fabrics", | ||||
|                     "iot_dry_warm_embrace": "Warm Embrace", | ||||
|                     "iot_dry_wool": "Wool", | ||||
|                     "jeans": "Jeans", | ||||
|                     "mix_and_dry": "Mix&Dry", | ||||
|                     "pets": "Pets", | ||||
|                     "pre_iron": "Pre-Iron", | ||||
|                     "rapid_30": "Rapid 30", | ||||
|                     "rapid_45": "Rapid 45 min", | ||||
|                     "rapid_59": "Perfect Rapid 59 Min", | ||||
|                     "refresh": "Refresh", | ||||
|                     "relax_creases": "Relax Creases", | ||||
|                     "saving_30_min": "Saving 30'", | ||||
|                     "shirts": "Shirts", | ||||
|                     "shoes": "Shoes", | ||||
|                     "small_load": "Small Load", | ||||
|                     "soft_care": "Soft Care", | ||||
|                     "sport_plus": "Sport Plus", | ||||
|                     "super_easy_iron_misti": "Super Easy Iron Mixed", | ||||
|                     "super_easy_iron_xxl": "Super Easy Iron XXL", | ||||
|                     "super_fast_cottons": "Super Fast Cottons", | ||||
|                     "super_fast_delicates": "Super Fast Delicates", | ||||
|                     "synthetics": "Syntethics", | ||||
|                     "total_care": "Total Care", | ||||
|                     "trainers": "Trainers", | ||||
|                     "ultra_care": "Ultra Care", | ||||
|                     "waterproof_revitalize": "Waterproof Revitalize", | ||||
|                     "whites": "Whites", | ||||
|                     "wool": "Dry Wool", | ||||
|                     "woolmark": "Wool", | ||||
|                     "xxl_load": "XXL Load", | ||||
|                     "zoom_59": "Zoom 59" | ||||
|                 } | ||||
|             }, | ||||
|             "room_temperature": { | ||||
|                 "name": "Room temperature" | ||||
|             }, | ||||
|             "humidity": { | ||||
|                 "name": "Humidity" | ||||
|             }, | ||||
|             "freezer_temp": { | ||||
|                 "name": "Freezer temperature" | ||||
|             }, | ||||
|             "fridge_temp": { | ||||
|                 "name": "Fridge temperature" | ||||
|             } | ||||
|         }, | ||||
|         "switch": { | ||||
| @ -231,7 +385,7 @@ | ||||
|                 "name": "Anticrease" | ||||
|             }, | ||||
|             "add_dish": { | ||||
|                 "name": "" | ||||
|                 "name": "Add dishes" | ||||
|             }, | ||||
|             "eco_express": { | ||||
|                 "name": "Eco" | ||||
| @ -298,6 +452,42 @@ | ||||
|             }, | ||||
|             "mute_mode": { | ||||
|                 "name": "Mute mode" | ||||
|             }, | ||||
|             "extra_rinse_1": { | ||||
|                 "name": "+1 Rinse" | ||||
|             }, | ||||
|             "extra_rinse_2": { | ||||
|                 "name": "+2 Rinses" | ||||
|             }, | ||||
|             "extra_rinse_3": { | ||||
|                 "name": "+3 Rinses" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "name": "Autodose" | ||||
|             }, | ||||
|             "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": { | ||||
| @ -311,7 +501,8 @@ | ||||
|                     "12": "Iron dry", | ||||
|                     "13": "Cupboard Dry", | ||||
|                     "14": "Ready to wear", | ||||
|                     "15": "Extra dry" | ||||
|                     "15": "Extra dry", | ||||
|                     "11": "No drying" | ||||
|                 }, | ||||
|                 "name": "Drying level" | ||||
|             }, | ||||
| @ -320,9 +511,9 @@ | ||||
|                     "59_min": "Rapid 59'", | ||||
|                     "auto_care": "Auto Care", | ||||
|                     "auto_care_soil": "Auto Care", | ||||
|                     "auto_hygiene": "Auto Hygiene", | ||||
|                     "auto_plus": "AutoPlus", | ||||
|                     "auto_rapid": "Auto Rapid", | ||||
|                     "auto_plus_soil": "Auto Plus Soil", | ||||
|                     "auto_rapid_soil": "Auto rapid Soil", | ||||
|                     "auto_sensor": "Auto Sensor", | ||||
|                     "auto_sensor_soil": "Auto Sensor", | ||||
|                     "auto_universal": "Auto Universal 50 - 60°C", | ||||
| @ -366,7 +557,7 @@ | ||||
|                     "iot_eco_bldc": "Eco 45°C", | ||||
|                     "iot_eco_synch": "Eco 45°C", | ||||
|                     "iot_extra_hygiene": "Extra Hygiene", | ||||
|                     "iot_fairy_quick_cycle": "Fairy Short", | ||||
|                     "iot_fairy_quick_cycle": "Fairy Quick", | ||||
|                     "iot_happy_hour": "Happy Hour", | ||||
|                     "iot_jar_quick_cycle": "Jar Quick", | ||||
|                     "iot_party": "Party", | ||||
| @ -405,7 +596,10 @@ | ||||
|                     "silent_care": "Silent Care", | ||||
|                     "smart_ai": "Smart AI", | ||||
|                     "smart_ai_pro": "Smart AI Pro", | ||||
|                     "smart_ai_pro_soil": "Smart AI Pro", | ||||
|                     "smart_ai_rapid": "Smart AI Rapid", | ||||
|                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||
|                     "smart_ai_soil": "Smart AI", | ||||
|                     "special": "Special", | ||||
|                     "special_pw_prz": "Special", | ||||
|                     "steam": "Steam 75°C", | ||||
| @ -462,21 +656,21 @@ | ||||
|             }, | ||||
|             "programs_ov": { | ||||
|                 "state": { | ||||
|                     "bakery": "Pasta and Pastries", | ||||
|                     "bakery_steam": "Steam-baked bread", | ||||
|                     "bakery": "Pasta and Bakery", | ||||
|                     "bakery_steam": "Steam oven", | ||||
|                     "bottom_heating": "Bottom Heating", | ||||
|                     "bottom_heating_fan": "Bottom Heating + Fan", | ||||
|                     "bread": "Bread", | ||||
|                     "bread_steam": "Steam-baked pastries", | ||||
|                     "bread_steam": "Steam baked bread", | ||||
|                     "combi": "Combi", | ||||
|                     "convection_fan": "Convection + Fan", | ||||
|                     "convection_fan_turnspit": "Convection + Fan + Turnspit", | ||||
|                     "conventional": "Conventional", | ||||
|                     "conventional_turnspit": "Convection + Turnspit", | ||||
|                     "defrost": "Defrost", | ||||
|                     "defrost": "Defrosting", | ||||
|                     "descaling": "Descaling", | ||||
|                     "fish": "Fish", | ||||
|                     "fish_steam": "Steam-cooked fish", | ||||
|                     "fish_steam": "Steamed fish", | ||||
|                     "grill_cata": "Grill", | ||||
|                     "grill_fan_cata": "Grill fan", | ||||
|                     "grill_fan_pyro": "Grill + Fan", | ||||
| @ -485,16 +679,15 @@ | ||||
|                     "iot_bread": "Bread", | ||||
|                     "iot_h20_clean": "h2O clean", | ||||
|                     "leavening": "Leavening", | ||||
|                     "light_fan": "Light Fan", | ||||
|                     "light_fan\n": "Light Fan", | ||||
|                     "low_temp_cooking": "Low Temperature Cooking", | ||||
|                     "low_temp_cooking_fish": "Low Temperature Cooking - Fish", | ||||
|                     "low_temp_cooking_fish_steam": "Low Temperature Steam Cooking - Fish", | ||||
|                     "low_temp_cooking_fish_steam": "Low Temperature Cooking - Steamed fish", | ||||
|                     "low_temp_cooking_meat": "Low Temperature Cooking - Meat", | ||||
|                     "low_temp_cooking_meat_steam": "Low Temperature Steam Cooking - Meat", | ||||
|                     "low_temp_cooking_meat_steam": "Low Temperature Cooking - Steamed meat", | ||||
|                     "low_temp_cooking_steam": "Low Temperature Steam Cooking", | ||||
|                     "meat": "Meat", | ||||
|                     "meat_steam": "Steam-cooked meat", | ||||
|                     "meat_steam": "Steamed meat", | ||||
|                     "multi_level": "Multi-Level", | ||||
|                     "paella": "Paella", | ||||
|                     "pasta_and_bakery": "Pasta and Bakery", | ||||
| @ -502,8 +695,8 @@ | ||||
|                     "pyrolysis": "Pyrolysis", | ||||
|                     "pyrolysis_plus": "Pyrolysis +", | ||||
|                     "red_meat": "Red Meat", | ||||
|                     "red_meat_steam": "Steam-cooked red meat", | ||||
|                     "regenerate": "Regeneration", | ||||
|                     "red_meat_steam": "Steamed red meat", | ||||
|                     "regenerate": "Regenerate", | ||||
|                     "soft_plus": "Soft+", | ||||
|                     "super_grill": "Super Grill", | ||||
|                     "tailor_bake": "Tailor bake", | ||||
| @ -512,9 +705,9 @@ | ||||
|                     "vegetables": "Vegetables", | ||||
|                     "vegetables_cata": "Vegetables", | ||||
|                     "vegetables_pyro": "Vegetables", | ||||
|                     "water_discharge": "Water Drain", | ||||
|                     "water_discharge": "Water Discharge", | ||||
|                     "white_meat": "White Meat", | ||||
|                     "white_meat_steam": "Steam-cooked white meat" | ||||
|                     "white_meat_steam": "Steamed white meat" | ||||
|                 }, | ||||
|                 "name": "Program" | ||||
|             }, | ||||
| @ -550,7 +743,7 @@ | ||||
|                     "hqd_bed_sheets": "Bed Sheets", | ||||
|                     "hqd_bulky": "Bulky Items", | ||||
|                     "hqd_casual": "Casual", | ||||
|                     "hqd_cold_wind_30": "Cool Breeze 30 minutes", | ||||
|                     "hqd_cold_wind_30": "Cool Breeze 30m", | ||||
|                     "hqd_cold_wind_timing": "Cool Breeze ", | ||||
|                     "hqd_cotton": "Cotton", | ||||
|                     "hqd_curtain": "Curtains", | ||||
| @ -569,9 +762,9 @@ | ||||
|                     "hqd_night_dry": "Overnight drying", | ||||
|                     "hqd_outdoor": "Outdoor", | ||||
|                     "hqd_precious_cure": "Precious Cure", | ||||
|                     "hqd_quick_20": "Quick 20", | ||||
|                     "hqd_quick_30": "Quick 30", | ||||
|                     "hqd_quick_dry": "Quick dry", | ||||
|                     "hqd_quick_20": "Quick 20m", | ||||
|                     "hqd_quick_30": "Quick 30m", | ||||
|                     "hqd_quick_dry": "Quick dry (30 min)", | ||||
|                     "hqd_quilt": "Quilts", | ||||
|                     "hqd_refresh": "Refresh", | ||||
|                     "hqd_school_uniform": "School Uniform", | ||||
| @ -609,7 +802,7 @@ | ||||
|                     "iot_dry_lingerie": "Lingerie", | ||||
|                     "iot_dry_mixed": "Mixed", | ||||
|                     "iot_dry_playsuits": "Playsuits", | ||||
|                     "iot_dry_rapid_30": "Rapid 30", | ||||
|                     "iot_dry_rapid_30": "Rapid 30m", | ||||
|                     "iot_dry_rapid_59": "Rapid 59'", | ||||
|                     "iot_dry_refresh": "Refresh", | ||||
|                     "iot_dry_regenerates_waterproof": "Regenerates Waterproof", | ||||
| @ -668,7 +861,7 @@ | ||||
|                     "all_in_one_59": "All in One 59'", | ||||
|                     "all_in_one_59_steam": "Active Wash + Steam", | ||||
|                     "autocare": "Autocare", | ||||
|                     "autoclean": "Drum Cleaning", | ||||
|                     "autoclean": "Drum cleaning and descaling ", | ||||
|                     "baby_60": "All Baby 60°C", | ||||
|                     "care_14": "Rapid Care 14'", | ||||
|                     "care_30": "Rapid Care 30'", | ||||
| @ -1011,6 +1204,41 @@ | ||||
|                     "iot_uv_and_fan": "UV + Fan", | ||||
|                     "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": { | ||||
| @ -1082,6 +1310,36 @@ | ||||
|             }, | ||||
|             "prewash": { | ||||
|                 "name": "Pre-wash " | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "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": { | ||||
| @ -1111,11 +1369,58 @@ | ||||
|             }, | ||||
|             "dry_time": { | ||||
|                 "name": "Drying time" | ||||
|             }, | ||||
|             "steam_level": { | ||||
|                 "name": "Steam Level" | ||||
|             }, | ||||
|             "freezer_temp_sel": { | ||||
|                 "name": "Target temperature Freezer" | ||||
|             }, | ||||
|             "fridge_temp_sel": { | ||||
|                 "name": "Target temperature Fridge" | ||||
|             } | ||||
|         }, | ||||
|         "button": { | ||||
|             "induction_hob": { | ||||
|                 "name": "Induction Hob" | ||||
|             }, | ||||
|             "start_program": { | ||||
|                 "name": "Program Start" | ||||
|             }, | ||||
|             "stop_program": { | ||||
|                 "name": "Program Stop" | ||||
|             } | ||||
|         }, | ||||
|         "climate": { | ||||
|             "air_conditioner": { | ||||
|                 "name": "Air conditioner" | ||||
|             }, | ||||
|             "fridge": { | ||||
|                 "name": "Fridge", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Fridge modes", | ||||
|                         "state": { | ||||
|                             "auto_set": "Auto-Set", | ||||
|                             "super_cool": "Super Cool", | ||||
|                             "holiday": "Holiday", | ||||
|                             "no_mode": "No mode selected" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "freezer": { | ||||
|                 "name": "Freezer", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Freezer modes", | ||||
|                         "state": { | ||||
|                             "auto_set": "Auto-Set", | ||||
|                             "super_freeze": "Super Freeze", | ||||
|                             "no_mode": "No mode selected" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @ -9,7 +9,10 @@ | ||||
|                     "4": "Programado", | ||||
|                     "5": "Programado", | ||||
|                     "6": "Error", | ||||
|                     "7": "Listo" | ||||
|                     "7": "Listo", | ||||
|                     "2": "Programa en marcha", | ||||
|                     "8": "Test", | ||||
|                     "9": "Parada del ciclo..." | ||||
|                 } | ||||
|             }, | ||||
|             "program_phases_wm": { | ||||
| @ -53,7 +56,9 @@ | ||||
|                     "16": "Enfriar", | ||||
|                     "18": "Ropa fresca", | ||||
|                     "19": "Secado", | ||||
|                     "20": "Secado" | ||||
|                     "20": "Secado", | ||||
|                     "11": "Listo", | ||||
|                     "17": "unknown" | ||||
|                 }, | ||||
|                 "name": "Fase" | ||||
|             }, | ||||
| @ -79,7 +84,8 @@ | ||||
|                     "12": "Planchar", | ||||
|                     "13": "Listo para guardar", | ||||
|                     "14": "Listo para llevar", | ||||
|                     "15": "Extraseco" | ||||
|                     "15": "Extraseco", | ||||
|                     "11": "Sin secado" | ||||
|                 }, | ||||
|                 "name": "Nivel de secado" | ||||
|             }, | ||||
| @ -165,6 +171,154 @@ | ||||
|                     "5": "Ventilador", | ||||
|                     "6": "Ventilador" | ||||
|                 } | ||||
|             }, | ||||
|             "programs_td": { | ||||
|                 "state": { | ||||
|                     "active_dry": "Secado activo", | ||||
|                     "allergy_care": "Antialergénico", | ||||
|                     "all_in_one": "All in One", | ||||
|                     "antiallergy": "Antialergénico", | ||||
|                     "anti_odours": "Anti-olor", | ||||
|                     "auto_care": "Autocuidado", | ||||
|                     "baby": "Baby", | ||||
|                     "bed_quilt": "Edredón", | ||||
|                     "care_30": "Cuidado 30", | ||||
|                     "care_45": "Cuidado 45", | ||||
|                     "care_59": "Cuidado 59", | ||||
|                     "coloured": "Color", | ||||
|                     "daily_45_min": "DIARIO 45'", | ||||
|                     "daily_perfect_59_min": "DIARIO PERFECTO 59'", | ||||
|                     "darks_and_coloured": "Oscuro & Color", | ||||
|                     "delicates": "Delicados", | ||||
|                     "duvet": "Edredón", | ||||
|                     "eco": "Algodón Eco", | ||||
|                     "ecospeed_cottons": "Ecospeed Algodón", | ||||
|                     "ecospeed_delicates": "Ecospeed Delicados", | ||||
|                     "ecospeed_mixed": "Ecospeed Mixtos", | ||||
|                     "extra_hygiene": "Higiene Extra", | ||||
|                     "fitness": "Deporte", | ||||
|                     "fresh_care": "Cuidado y frescor", | ||||
|                     "genius": "Genius", | ||||
|                     "hqd_baby_care": "Baby Care", | ||||
|                     "hqd_bath_towel": "Toallas", | ||||
|                     "hqd_bed_sheets": "Sábanas", | ||||
|                     "hqd_bulky": "Objetos voluminosos", | ||||
|                     "hqd_casual": "Casual", | ||||
|                     "hqd_cold_wind_30": "Brisa fresca 30 minutos", | ||||
|                     "hqd_cold_wind_timing": "Brisa fresca ", | ||||
|                     "hqd_cotton": "Algodón", | ||||
|                     "hqd_curtain": "Cortinas", | ||||
|                     "hqd_delicate": "Ropa delicada", | ||||
|                     "hqd_diaper": "Pañales", | ||||
|                     "hqd_duvet": "Edredones", | ||||
|                     "hqd_feather": "Plumíferos", | ||||
|                     "hqd_hot_wind_timing": "Aire caliente", | ||||
|                     "hqd_hygienic": "Higienizar", | ||||
|                     "hqd_i_refresh": "I-Refresh", | ||||
|                     "hqd_i_refresh_pro": "I-Refresh Pro", | ||||
|                     "hqd_jacket": "Chaquetas", | ||||
|                     "hqd_jeans": "Vaqueros", | ||||
|                     "hqd_luxury": "Lujo", | ||||
|                     "hqd_mix": "Ropa mixta", | ||||
|                     "hqd_night_dry": "Secado nocturno", | ||||
|                     "hqd_outdoor": "Outdoor", | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Rápido 20", | ||||
|                     "hqd_quick_30": "Rápido 30", | ||||
|                     "hqd_quick_dry": "Secado rápido 30", | ||||
|                     "hqd_quilt": "Colchas", | ||||
|                     "hqd_refresh": "Refrescar", | ||||
|                     "hqd_school_uniform": "Uniformes escolares", | ||||
|                     "hqd_shirt": "Camisas", | ||||
|                     "hqd_shoes": "Zapatos", | ||||
|                     "hqd_silk": "Seda", | ||||
|                     "hqd_sports": "Deporte", | ||||
|                     "hqd_synthetics": "Sintéticos", | ||||
|                     "hqd_timer": "Temporizado", | ||||
|                     "hqd_towel": "Toallas", | ||||
|                     "hqd_underwear": "Ropa interior", | ||||
|                     "hqd_warm_up": "Calentar", | ||||
|                     "hqd_wool": "Lana", | ||||
|                     "hqd_working_suit": "Ropa de trabajo", | ||||
|                     "hygiene": "Higiene", | ||||
|                     "iot_checkup": "Revisión", | ||||
|                     "iot_dry_anti_mites": "Antiácaros", | ||||
|                     "iot_dry_baby": "Baby", | ||||
|                     "iot_dry_backpacks": "Mochilas", | ||||
|                     "iot_dry_bathrobe": "Ropa de Baño", | ||||
|                     "iot_dry_bed_linen": "Ropa de Cama", | ||||
|                     "iot_dry_bed_quilt": "Edredón", | ||||
|                     "iot_dry_cotton": "Algodón", | ||||
|                     "iot_dry_cuddly_toys": "Peluches", | ||||
|                     "iot_dry_curtains": "Cortinas", | ||||
|                     "iot_dry_dehumidifier": "Eliminador de humedad", | ||||
|                     "iot_dry_delicates": "Delicados", | ||||
|                     "iot_dry_delicate_tablecloths": "Mantelería Delicada", | ||||
|                     "iot_dry_denim_jeans": "Denim - Vaqueros", | ||||
|                     "iot_dry_down_jacket": "Jacket", | ||||
|                     "iot_dry_duvet": "Edredón", | ||||
|                     "iot_dry_easy_iron_cotton": "Planchado Súper Fácil", | ||||
|                     "iot_dry_easy_iron_synthetics": "Planchado muy fácil - Sintéticos", | ||||
|                     "iot_dry_gym_fit": "Ropa de Deporte - Fitness", | ||||
|                     "iot_dry_lingerie": "Lencería", | ||||
|                     "iot_dry_mixed": "Ropa mixta", | ||||
|                     "iot_dry_playsuits": "Prendas de una pieza - Mono", | ||||
|                     "iot_dry_rapid_30": "Rápido 30’", | ||||
|                     "iot_dry_rapid_59": "Rápido 59’", | ||||
|                     "iot_dry_refresh": "Refresh", | ||||
|                     "iot_dry_regenerates_waterproof": "Regeneración Tejidos Impermeables", | ||||
|                     "iot_dry_relax_creases": "Reducción Arrugas", | ||||
|                     "iot_dry_shirts": "Camisas", | ||||
|                     "iot_dry_small_load": "Carga reducida", | ||||
|                     "iot_dry_swimsuits_and_bikinis": "Trajes de baño", | ||||
|                     "iot_dry_synthetics": "Sintéticos", | ||||
|                     "iot_dry_synthetic_dry": "Secado de prendas sintéticas", | ||||
|                     "iot_dry_tablecloths": "Mantelería", | ||||
|                     "iot_dry_technical_fabrics": "Tejidos Técnicos", | ||||
|                     "iot_dry_warm_embrace": "Abrazo cálido", | ||||
|                     "iot_dry_wool": "Woolmark", | ||||
|                     "jeans": "Vaqueros", | ||||
|                     "mix_and_dry": "Mix&Dry", | ||||
|                     "pets": "Mascotas", | ||||
|                     "pre_iron": "Pre-Planchado", | ||||
|                     "rapid_30": "Rápido 30 min", | ||||
|                     "rapid_45": "Rápido 45 min", | ||||
|                     "rapid_59": "Perfecto Rápido 59 Min", | ||||
|                     "refresh": "Refresh", | ||||
|                     "relax_creases": "Reducción Arrugas", | ||||
|                     "saving_30_min": "ECO 30'", | ||||
|                     "shirts": "Camisas", | ||||
|                     "shoes": "Zapatos", | ||||
|                     "small_load": "Carga reducida", | ||||
|                     "soft_care": "Cuidado suave", | ||||
|                     "sport_plus": "Deporte", | ||||
|                     "super_easy_iron_misti": "Planchado muy fácil ropa mixta", | ||||
|                     "super_easy_iron_xxl": "Planchado muy fácil XXL", | ||||
|                     "super_fast_cottons": "Algodón Súper Rápido", | ||||
|                     "super_fast_delicates": "Delicados Súper Rápidos", | ||||
|                     "synthetics": "Sintéticos", | ||||
|                     "total_care": "Total Care", | ||||
|                     "trainers": "Calzado Deportivo", | ||||
|                     "ultra_care": "Ultra Care", | ||||
|                     "waterproof_revitalize": "Revitalizante Waterproof", | ||||
|                     "whites": "Blanco", | ||||
|                     "wool": "Secado Lana", | ||||
|                     "woolmark": "Woolmark", | ||||
|                     "xxl_load": "Carga XXL", | ||||
|                     "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": { | ||||
| @ -255,6 +409,11 @@ | ||||
|                     "silent": "Noche", | ||||
|                     "silent_care": "Silent Care", | ||||
|                     "smart_ai": "Smart AI", | ||||
|                     "smart_ai_pro": "Smart AI Pro", | ||||
|                     "smart_ai_pro_soil": "Smart AI Pro", | ||||
|                     "smart_ai_rapid": "Smart AI Rapid", | ||||
|                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||
|                     "smart_ai_soil": "Smart AI", | ||||
|                     "special": "Especial", | ||||
|                     "special_pw_prz": "Especial", | ||||
|                     "steam": "Vapor 75 °C", | ||||
| @ -311,15 +470,16 @@ | ||||
|             "programs_ov": { | ||||
|                 "state": { | ||||
|                     "bakery": "Pasta y Panadería", | ||||
|                     "bakery_steam": "Pan al vapor", | ||||
|                     "bakery_steam": "Oven steam", | ||||
|                     "bottom_heating": "Calentamiento Inferior", | ||||
|                     "bottom_heating_fan": "Calentamiento Inferior + Ventilador", | ||||
|                     "bread": "Pan", | ||||
|                     "bread_steam": "Bollería al vapor", | ||||
|                     "bread_steam": "Pan al vapor", | ||||
|                     "combi": "Combi", | ||||
|                     "convection_fan": "Convección + Ventilador", | ||||
|                     "convection_fan_turnspit": "Convección + Ventilador + Rustepollos", | ||||
|                     "convection_fan_turnspit": "Asador giratorio convencional ventilada", | ||||
|                     "conventional": "Convección", | ||||
|                     "conventional_turnspit": "Convección + Rustepollos", | ||||
|                     "conventional_turnspit": "Asador giratorio convencional", | ||||
|                     "defrost": "Descongelación", | ||||
|                     "descaling": "Descalcificación", | ||||
|                     "fish": "Pescado", | ||||
| @ -333,13 +493,13 @@ | ||||
|                     "iot_h20_clean": "h2O clean", | ||||
|                     "leavening": "Fermentación", | ||||
|                     "low_temp_cooking": "Cocción a baja temperatura", | ||||
|                     "low_temp_cooking_fish": "Cocción a baja temperatura - Pescado", | ||||
|                     "low_temp_cooking_fish_steam": "Cocción al vapor a baja temperatura - Pescado", | ||||
|                     "low_temp_cooking_meat": "Cocción a baja temperatura - Carne", | ||||
|                     "low_temp_cooking_meat_steam": "Cocción al vapor a baja temperatura - Carne", | ||||
|                     "low_temp_cooking_steam": "Cocción al vapor a baja temperatura", | ||||
|                     "low_temp_cooking_fish": "Cocción a baja temperatura Pescado", | ||||
|                     "low_temp_cooking_fish_steam": "Cocción a baja temperatura Pescado", | ||||
|                     "low_temp_cooking_meat": "Cocción a baja temperatura Carne", | ||||
|                     "low_temp_cooking_meat_steam": "Cocción a baja temperatura Carne al vapor", | ||||
|                     "low_temp_cooking_steam": "Cocción a baja temperatura al vapor", | ||||
|                     "meat": "Carne", | ||||
|                     "meat_steam": "Carne al vapor", | ||||
|                     "meat_steam": "Meat steam", | ||||
|                     "multi_level": "Múltiples niveles", | ||||
|                     "paella": "Paella", | ||||
|                     "pasta_and_bakery": "Pasta y Panadería", | ||||
| @ -348,7 +508,7 @@ | ||||
|                     "pyrolysis_plus": "Pirólisis +", | ||||
|                     "red_meat": "Carne roja", | ||||
|                     "red_meat_steam": "Carne roja al vapor", | ||||
|                     "regenerate": "Regeneración", | ||||
|                     "regenerate": "Regenerar", | ||||
|                     "soft_plus": "Soft+", | ||||
|                     "super_grill": "Super Grill", | ||||
|                     "tailor_bake": "Tailor bake", | ||||
| @ -357,7 +517,7 @@ | ||||
|                     "vegetables": "Verduras", | ||||
|                     "vegetables_cata": "Verduras", | ||||
|                     "vegetables_pyro": "Verdura", | ||||
|                     "water_discharge": "Drenaje del agua", | ||||
|                     "water_discharge": "Descarga de agua", | ||||
|                     "white_meat": "Carne blanca", | ||||
|                     "white_meat_steam": "Carne blanca al vapor" | ||||
|                 }, | ||||
| @ -416,7 +576,7 @@ | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Rápido 20", | ||||
|                     "hqd_quick_30": "Rápido 30", | ||||
|                     "hqd_quick_dry": "Secado rápido", | ||||
|                     "hqd_quick_dry": "Secado rápido 30", | ||||
|                     "hqd_quilt": "Colchas", | ||||
|                     "hqd_refresh": "Refrescar", | ||||
|                     "hqd_school_uniform": "Uniformes escolares", | ||||
| @ -820,7 +980,8 @@ | ||||
|                     "12": "Planchar", | ||||
|                     "13": "Listo para guardar", | ||||
|                     "14": "Listo para llevar", | ||||
|                     "15": "Extraseco" | ||||
|                     "15": "Extraseco", | ||||
|                     "11": "Sin secado" | ||||
|                 }, | ||||
|                 "name": "Nivel de secado" | ||||
|             }, | ||||
| @ -870,6 +1031,40 @@ | ||||
|                     "iot_uv_and_fan": "UV + Ventilador", | ||||
|                     "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": { | ||||
| @ -877,7 +1072,7 @@ | ||||
|                 "name": "Antiarrugas" | ||||
|             }, | ||||
|             "add_dish": { | ||||
|                 "name": "" | ||||
|                 "name": "Añade platos" | ||||
|             }, | ||||
|             "eco_express": { | ||||
|                 "name": "Eco" | ||||
| @ -944,6 +1139,42 @@ | ||||
|             }, | ||||
|             "mute_mode": { | ||||
|                 "name": "Modo silencio" | ||||
|             }, | ||||
|             "extra_rinse_1": { | ||||
|                 "name": "+1 Aclarado" | ||||
|             }, | ||||
|             "extra_rinse_2": { | ||||
|                 "name": "+2 Aclarados" | ||||
|             }, | ||||
|             "extra_rinse_3": { | ||||
|                 "name": "+3 Aclarados" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "name": "Dosificación automática" | ||||
|             }, | ||||
|             "good_night": { | ||||
|                 "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": { | ||||
| @ -993,7 +1224,7 @@ | ||||
|                 "name": "Sartén" | ||||
|             }, | ||||
|             "remote_control": { | ||||
|                 "name": "Control remoto" | ||||
|                 "name": "Τηλεχειριστήριο" | ||||
|             }, | ||||
|             "rinse_aid": { | ||||
|                 "name": "Nivel del agente de enjuague" | ||||
| @ -1015,6 +1246,36 @@ | ||||
|             }, | ||||
|             "prewash": { | ||||
|                 "name": "Pre-lavado" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "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": { | ||||
| @ -1044,11 +1305,58 @@ | ||||
|             }, | ||||
|             "dry_time": { | ||||
|                 "name": "Tiempo de secado" | ||||
|             }, | ||||
|             "steam_level": { | ||||
|                 "name": "Nivel de vapor" | ||||
|             }, | ||||
|             "freezer_temp_sel": { | ||||
|                 "name": "Temperatura deseada Congelador" | ||||
|             }, | ||||
|             "fridge_temp_sel": { | ||||
|                 "name": "Temperatura deseada Frigorífico" | ||||
|             } | ||||
|         }, | ||||
|         "button": { | ||||
|             "induction_hob": { | ||||
|                 "name": "Placa de inducción" | ||||
|             }, | ||||
|             "start_program": { | ||||
|                 "name": "Programa Inicio" | ||||
|             }, | ||||
|             "stop_program": { | ||||
|                 "name": "Programa Detener" | ||||
|             } | ||||
|         }, | ||||
|         "climate": { | ||||
|             "air_conditioner": { | ||||
|                 "name": "Aire acondicionado" | ||||
|             }, | ||||
|             "fridge": { | ||||
|                 "name": "Frigorífico", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Modos de frigorífico", | ||||
|                         "state": { | ||||
|                             "auto_set": "Auto-Set", | ||||
|                             "super_cool": "Super Cool", | ||||
|                             "holiday": "Holiday", | ||||
|                             "no_mode": "No se ha seleccionado ningún modo" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "freezer": { | ||||
|                 "name": "Congelador", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Modos congelador", | ||||
|                         "state": { | ||||
|                             "auto_set": "Auto-Set", | ||||
|                             "super_freeze": "Super Freeze", | ||||
|                             "no_mode": "No se ha seleccionado ningún modo" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -9,7 +9,10 @@ | ||||
|                     "4": "Planifié", | ||||
|                     "5": "Planifié", | ||||
|                     "6": "Erreur", | ||||
|                     "7": "Prêt" | ||||
|                     "7": "Prêt", | ||||
|                     "2": "Programme en cours", | ||||
|                     "8": "Test", | ||||
|                     "9": "Arrêt du cycle en cours…" | ||||
|                 } | ||||
|             }, | ||||
|             "program_phases_wm": { | ||||
| @ -53,7 +56,9 @@ | ||||
|                     "16": "Refroidissement", | ||||
|                     "18": "Keep Fresh", | ||||
|                     "19": "Séchage", | ||||
|                     "20": "Séchage" | ||||
|                     "20": "Séchage", | ||||
|                     "11": "Prêt", | ||||
|                     "17": "unknown" | ||||
|                 }, | ||||
|                 "name": "Phase" | ||||
|             }, | ||||
| @ -79,7 +84,8 @@ | ||||
|                     "12": "Fer", | ||||
|                     "13": "Prêt à ranger", | ||||
|                     "14": "Prêt à porter", | ||||
|                     "15": "Extra sec" | ||||
|                     "15": "Extra sec", | ||||
|                     "11": "Pas de séchage" | ||||
|                 }, | ||||
|                 "name": "Niveau de séchage" | ||||
|             }, | ||||
| @ -165,6 +171,154 @@ | ||||
|                     "5": "Ventilateur", | ||||
|                     "6": "Ventilateur" | ||||
|                 } | ||||
|             }, | ||||
|             "programs_td": { | ||||
|                 "state": { | ||||
|                     "active_dry": "Séchage actif", | ||||
|                     "allergy_care": "Anti-allergies", | ||||
|                     "all_in_one": "Tout en 1", | ||||
|                     "antiallergy": "Anti-allergies", | ||||
|                     "anti_odours": "Anti-odeurs", | ||||
|                     "auto_care": "Soin automatique", | ||||
|                     "baby": "Baby", | ||||
|                     "bed_quilt": "Couette", | ||||
|                     "care_30": "Soin 30", | ||||
|                     "care_45": "Soin 45", | ||||
|                     "care_59": "Soin 59", | ||||
|                     "coloured": "Couleurs", | ||||
|                     "daily_45_min": "QUOTIDIEN 45'", | ||||
|                     "daily_perfect_59_min": "QUOTIDIEN PARFAIT 59'", | ||||
|                     "darks_and_coloured": "Couleurs dont foncées", | ||||
|                     "delicates": "Délicat", | ||||
|                     "duvet": "Couette", | ||||
|                     "eco": "Coton Éco", | ||||
|                     "ecospeed_cottons": "Ecospeed coton", | ||||
|                     "ecospeed_delicates": "Delicats ecospeed", | ||||
|                     "ecospeed_mixed": "Ecospeed mixte", | ||||
|                     "extra_hygiene": "Extra Hygiene", | ||||
|                     "fitness": "Fitness", | ||||
|                     "fresh_care": "Soin frais", | ||||
|                     "genius": "Genius", | ||||
|                     "hqd_baby_care": "Baby Care", | ||||
|                     "hqd_bath_towel": "Serviettes", | ||||
|                     "hqd_bed_sheets": "Draps", | ||||
|                     "hqd_bulky": "Articles volumineux", | ||||
|                     "hqd_casual": "Journalier", | ||||
|                     "hqd_cold_wind_30": "Brise rafraîchissante 30 minutes", | ||||
|                     "hqd_cold_wind_timing": "Brise rafraîchissante ", | ||||
|                     "hqd_cotton": "Coton", | ||||
|                     "hqd_curtain": "Rideaux", | ||||
|                     "hqd_delicate": "Délicats", | ||||
|                     "hqd_diaper": "Couches", | ||||
|                     "hqd_duvet": "Couette", | ||||
|                     "hqd_feather": "Vestes en duvet", | ||||
|                     "hqd_hot_wind_timing": "Air chaud", | ||||
|                     "hqd_hygienic": "Hygiénisation", | ||||
|                     "hqd_i_refresh": "I-Refresh", | ||||
|                     "hqd_i_refresh_pro": "I-Refresh Pro", | ||||
|                     "hqd_jacket": "Vestes", | ||||
|                     "hqd_jeans": "Jeans", | ||||
|                     "hqd_luxury": "Luxury", | ||||
|                     "hqd_mix": "Tissus mélangés", | ||||
|                     "hqd_night_dry": "Séchage toute la nuit", | ||||
|                     "hqd_outdoor": "Outdoor", | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Rapide 20’", | ||||
|                     "hqd_quick_30": "Rapide 30’", | ||||
|                     "hqd_quick_dry": "Séchage rapide 30", | ||||
|                     "hqd_quilt": "Couvertures", | ||||
|                     "hqd_refresh": "Rafraîchissement", | ||||
|                     "hqd_school_uniform": "Uniforme scolaire", | ||||
|                     "hqd_shirt": "Chemises", | ||||
|                     "hqd_shoes": "Chaussures", | ||||
|                     "hqd_silk": "Soie", | ||||
|                     "hqd_sports": "Sport", | ||||
|                     "hqd_synthetics": "Synthétiques", | ||||
|                     "hqd_timer": "Temporisé", | ||||
|                     "hqd_towel": "Serviettes", | ||||
|                     "hqd_underwear": "Sous-vêtements", | ||||
|                     "hqd_warm_up": "Réveil", | ||||
|                     "hqd_wool": "Laine", | ||||
|                     "hqd_working_suit": "Vêtements de travail", | ||||
|                     "hygiene": "Hygiène", | ||||
|                     "iot_checkup": "Vérification", | ||||
|                     "iot_dry_anti_mites": "Anti-acariens", | ||||
|                     "iot_dry_baby": "Baby", | ||||
|                     "iot_dry_backpacks": "Sac à dos", | ||||
|                     "iot_dry_bathrobe": "Peignoir", | ||||
|                     "iot_dry_bed_linen": "Linge de lit", | ||||
|                     "iot_dry_bed_quilt": "Couette", | ||||
|                     "iot_dry_cotton": "Coton", | ||||
|                     "iot_dry_cuddly_toys": "Jouets en peluche", | ||||
|                     "iot_dry_curtains": "Rideaux", | ||||
|                     "iot_dry_dehumidifier": "Élimination de l\\'humidité", | ||||
|                     "iot_dry_delicates": "Délicats", | ||||
|                     "iot_dry_delicate_tablecloths": "Nappes délicates", | ||||
|                     "iot_dry_denim_jeans": "Denim - jeans", | ||||
|                     "iot_dry_down_jacket": "Jacket", | ||||
|                     "iot_dry_duvet": "Couette", | ||||
|                     "iot_dry_easy_iron_cotton": "Repassage super facile", | ||||
|                     "iot_dry_easy_iron_synthetics": "Repassage super facile des synthétiques", | ||||
|                     "iot_dry_gym_fit": "Sport", | ||||
|                     "iot_dry_lingerie": "Lingerie", | ||||
|                     "iot_dry_mixed": "Tissus mélangés", | ||||
|                     "iot_dry_playsuits": "Combinaisons", | ||||
|                     "iot_dry_rapid_30": "Rapid 30", | ||||
|                     "iot_dry_rapid_59": "Rapide 59'.", | ||||
|                     "iot_dry_refresh": "Coup d\\'éclat", | ||||
|                     "iot_dry_regenerates_waterproof": "Imperméabilisant", | ||||
|                     "iot_dry_relax_creases": "Anti-plis", | ||||
|                     "iot_dry_shirts": "Chemises", | ||||
|                     "iot_dry_small_load": "Faible charge", | ||||
|                     "iot_dry_swimsuits_and_bikinis": "Maillots de bain", | ||||
|                     "iot_dry_synthetics": "Synthétiques", | ||||
|                     "iot_dry_synthetic_dry": "Séchage des synthétiques", | ||||
|                     "iot_dry_tablecloths": "Nappes", | ||||
|                     "iot_dry_technical_fabrics": "Textiles techniques", | ||||
|                     "iot_dry_warm_embrace": "Chauffage délicat", | ||||
|                     "iot_dry_wool": "Woolmark", | ||||
|                     "jeans": "Jeans", | ||||
|                     "mix_and_dry": "Mix&Dry", | ||||
|                     "pets": "Animaux de compagnie", | ||||
|                     "pre_iron": "Pré-repassage", | ||||
|                     "rapid_30": "Rapid 30", | ||||
|                     "rapid_45": "Rapide 45 min", | ||||
|                     "rapid_59": "Lavage Parfait 59 Min", | ||||
|                     "refresh": "Coup d'éclat", | ||||
|                     "relax_creases": "Anti-plis", | ||||
|                     "saving_30_min": "ECO 30'", | ||||
|                     "shirts": "Chemises", | ||||
|                     "shoes": "Chaussures", | ||||
|                     "small_load": "Faible charge", | ||||
|                     "soft_care": "Soin Doux", | ||||
|                     "sport_plus": "Sports", | ||||
|                     "super_easy_iron_misti": "Repassage super facile des mixtes", | ||||
|                     "super_easy_iron_xxl": "Repassage super facile XXL", | ||||
|                     "super_fast_cottons": "Super rapide coton", | ||||
|                     "super_fast_delicates": "Super rapide délicat", | ||||
|                     "synthetics": "Synthétiques", | ||||
|                     "total_care": "Total Care", | ||||
|                     "trainers": "Baskets", | ||||
|                     "ultra_care": "Ultra Care", | ||||
|                     "waterproof_revitalize": "Entretien imperméable", | ||||
|                     "whites": "Blancs", | ||||
|                     "wool": "Séchage Laine", | ||||
|                     "woolmark": "Woolmark", | ||||
|                     "xxl_load": "Charge XXL", | ||||
|                     "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": { | ||||
| @ -255,6 +409,11 @@ | ||||
|                     "silent": "Nuit", | ||||
|                     "silent_care": "Silent Care", | ||||
|                     "smart_ai": "Smart AI", | ||||
|                     "smart_ai_pro": "Smart AI Pro", | ||||
|                     "smart_ai_pro_soil": "Smart AI Pro", | ||||
|                     "smart_ai_rapid": "Smart AI Rapid", | ||||
|                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||
|                     "smart_ai_soil": "Smart AI", | ||||
|                     "special": "spécial", | ||||
|                     "special_pw_prz": "spécial", | ||||
|                     "steam": "Vapeur 75 °C", | ||||
| @ -311,19 +470,20 @@ | ||||
|             "programs_ov": { | ||||
|                 "state": { | ||||
|                     "bakery": "Pâtes et pains", | ||||
|                     "bakery_steam": "Pain cuit à la vapeur", | ||||
|                     "bakery_steam": "Four à vapeur", | ||||
|                     "bottom_heating": "Sole", | ||||
|                     "bottom_heating_fan": "Sole brassée", | ||||
|                     "bread": "Pain", | ||||
|                     "bread_steam": "Pâtisseries cuites à la vapeur", | ||||
|                     "bread_steam": "Pain àla vapeur", | ||||
|                     "combi": "Combi", | ||||
|                     "convection_fan": "Chaleur tournante", | ||||
|                     "convection_fan_turnspit": "Convection + Ventilateur + Tournebroche", | ||||
|                     "convection_fan_turnspit": "Tournebrocheà convection ventilée", | ||||
|                     "conventional": "Convection naturelle", | ||||
|                     "conventional_turnspit": "Convection + Tournebroche", | ||||
|                     "conventional_turnspit": "Tournebroche conventionnel", | ||||
|                     "defrost": "Décongélation", | ||||
|                     "descaling": "Détartrage", | ||||
|                     "fish": "Poisson", | ||||
|                     "fish_steam": "Poisson cuit à la vapeur", | ||||
|                     "fish_steam": "Poisson à la vapeur", | ||||
|                     "grill_cata": "Gril", | ||||
|                     "grill_fan_cata": "Turbogril", | ||||
|                     "grill_fan_pyro": "Turbogril", | ||||
| @ -333,13 +493,13 @@ | ||||
|                     "iot_h20_clean": "h2O clean", | ||||
|                     "leavening": "Étuve", | ||||
|                     "low_temp_cooking": "Cuisson à basse température", | ||||
|                     "low_temp_cooking_fish": "Cuisson à basse température - Poisson", | ||||
|                     "low_temp_cooking_fish_steam": "Cuisson à la vapeur à basse température - Poisson", | ||||
|                     "low_temp_cooking_meat": "Cuisson à basse température - Viande", | ||||
|                     "low_temp_cooking_meat_steam": "Cuisson à la vapeur à basse température - Viande", | ||||
|                     "low_temp_cooking_steam": "Cuisson à la vapeur à basse température", | ||||
|                     "low_temp_cooking_fish": "Cuisson à basse température Poisson", | ||||
|                     "low_temp_cooking_fish_steam": "Cuisson à basse température Poisson à la vapeur", | ||||
|                     "low_temp_cooking_meat": "Cuisson à basse température Viande", | ||||
|                     "low_temp_cooking_meat_steam": "Cuisson à basse température Viande à la vapeur", | ||||
|                     "low_temp_cooking_steam": "Cuisson à basse température à la vapeur", | ||||
|                     "meat": "Viande", | ||||
|                     "meat_steam": "Viande cuite à la vapeur", | ||||
|                     "meat_steam": "Viande à la vapeur", | ||||
|                     "multi_level": "Chaleur pulsée", | ||||
|                     "paella": "Paella", | ||||
|                     "pasta_and_bakery": "Pâtes et pains", | ||||
| @ -347,8 +507,8 @@ | ||||
|                     "pyrolysis": "Pyrolyse", | ||||
|                     "pyrolysis_plus": "Pyrolyse +", | ||||
|                     "red_meat": "Viande rouge", | ||||
|                     "red_meat_steam": "Viande rouge cuite à la vapeur", | ||||
|                     "regenerate": "Régénération", | ||||
|                     "red_meat_steam": "Viande rouge à la vapeur", | ||||
|                     "regenerate": "Régénérer", | ||||
|                     "soft_plus": "Soft+", | ||||
|                     "super_grill": "Super Gril", | ||||
|                     "tailor_bake": "Tailor bake", | ||||
| @ -357,9 +517,9 @@ | ||||
|                     "vegetables": "Légumes", | ||||
|                     "vegetables_cata": "Légumes", | ||||
|                     "vegetables_pyro": "Légumes", | ||||
|                     "water_discharge": "Vidange de l’eau", | ||||
|                     "water_discharge": "Décharge d'eau", | ||||
|                     "white_meat": "Viande blanche", | ||||
|                     "white_meat_steam": "Viande blanche cuite à la vapeur" | ||||
|                     "white_meat_steam": "Viande blanche à la vapeur" | ||||
|                 }, | ||||
|                 "name": "Programme" | ||||
|             }, | ||||
| @ -416,7 +576,7 @@ | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Rapide 20’", | ||||
|                     "hqd_quick_30": "Rapide 30’", | ||||
|                     "hqd_quick_dry": "Séchage rapide", | ||||
|                     "hqd_quick_dry": "Séchage rapide 30", | ||||
|                     "hqd_quilt": "Couvertures", | ||||
|                     "hqd_refresh": "Rafraîchissement", | ||||
|                     "hqd_school_uniform": "Uniforme scolaire", | ||||
| @ -820,7 +980,8 @@ | ||||
|                     "12": "Fer", | ||||
|                     "13": "Prêt à ranger", | ||||
|                     "14": "Prêt à porter", | ||||
|                     "15": "Extra sec" | ||||
|                     "15": "Extra sec", | ||||
|                     "11": "Pas de séchage" | ||||
|                 }, | ||||
|                 "name": "Niveau de séchage" | ||||
|             }, | ||||
| @ -870,6 +1031,40 @@ | ||||
|                     "iot_uv_and_fan": "UV + ventilateur", | ||||
|                     "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": { | ||||
| @ -877,7 +1072,7 @@ | ||||
|                 "name": "Anti-pli" | ||||
|             }, | ||||
|             "add_dish": { | ||||
|                 "name": "" | ||||
|                 "name": "Ajoutez de la vaisselle" | ||||
|             }, | ||||
|             "eco_express": { | ||||
|                 "name": "Éco" | ||||
| @ -944,6 +1139,42 @@ | ||||
|             }, | ||||
|             "mute_mode": { | ||||
|                 "name": "Mode muet" | ||||
|             }, | ||||
|             "extra_rinse_1": { | ||||
|                 "name": "+1 rinçage" | ||||
|             }, | ||||
|             "extra_rinse_2": { | ||||
|                 "name": "+2 rinçages" | ||||
|             }, | ||||
|             "extra_rinse_3": { | ||||
|                 "name": "+3 rinçages" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "name": "Dose automatique" | ||||
|             }, | ||||
|             "good_night": { | ||||
|                 "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": { | ||||
| @ -1015,6 +1246,36 @@ | ||||
|             }, | ||||
|             "prewash": { | ||||
|                 "name": "Prélavage" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "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": { | ||||
| @ -1044,11 +1305,58 @@ | ||||
|             }, | ||||
|             "dry_time": { | ||||
|                 "name": "Temps de séchage" | ||||
|             }, | ||||
|             "steam_level": { | ||||
|                 "name": "Niveau de vapeur" | ||||
|             }, | ||||
|             "freezer_temp_sel": { | ||||
|                 "name": "Température cible Congélateur" | ||||
|             }, | ||||
|             "fridge_temp_sel": { | ||||
|                 "name": "Température cible Réfrigérateur" | ||||
|             } | ||||
|         }, | ||||
|         "button": { | ||||
|             "induction_hob": { | ||||
|                 "name": "Table de cuisson à induction" | ||||
|             }, | ||||
|             "start_program": { | ||||
|                 "name": "Programme Démarrer" | ||||
|             }, | ||||
|             "stop_program": { | ||||
|                 "name": "Programme Arrêter" | ||||
|             } | ||||
|         }, | ||||
|         "climate": { | ||||
|             "air_conditioner": { | ||||
|                 "name": "Climatiseur" | ||||
|             }, | ||||
|             "fridge": { | ||||
|                 "name": "Réfrigérateur", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Modes réfrigérateur", | ||||
|                         "state": { | ||||
|                             "auto_set": "Réglage automatique", | ||||
|                             "super_cool": "Super Cool", | ||||
|                             "holiday": "Holiday", | ||||
|                             "no_mode": "Aucun mode sélectionné" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "freezer": { | ||||
|                 "name": "Congélateur", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Modes congélateur", | ||||
|                         "state": { | ||||
|                             "auto_set": "Réglage automatique", | ||||
|                             "super_freeze": "Super Freeze", | ||||
|                             "no_mode": "Aucun mode sélectionné" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -9,7 +9,10 @@ | ||||
|                     "4": "מתוזמן", | ||||
|                     "5": "מתוזמן", | ||||
|                     "6": "שְׁגִיאָה", | ||||
|                     "7": "מוּכָן" | ||||
|                     "7": "מוּכָן", | ||||
|                     "2": "התוכנית פועלת", | ||||
|                     "8": "Test", | ||||
|                     "9": "Stopping cycle…" | ||||
|                 } | ||||
|             }, | ||||
|             "program_phases_wm": { | ||||
| @ -53,7 +56,9 @@ | ||||
|                     "16": "Cooldown", | ||||
|                     "18": "Keep Fresh", | ||||
|                     "19": "יִבּוּשׁ", | ||||
|                     "20": "יִבּוּשׁ" | ||||
|                     "20": "יִבּוּשׁ", | ||||
|                     "11": "מוּכָן", | ||||
|                     "17": "unknown" | ||||
|                 }, | ||||
|                 "name": "שלב" | ||||
|             }, | ||||
| @ -79,7 +84,8 @@ | ||||
|                     "12": "בַּרזֶל", | ||||
|                     "13": "ארון יבש", | ||||
|                     "14": "Ready to wear", | ||||
|                     "15": "יבש במיוחד" | ||||
|                     "15": "יבש במיוחד", | ||||
|                     "11": "ללא ייבוש" | ||||
|                 }, | ||||
|                 "name": "רמת ייבוש" | ||||
|             }, | ||||
| @ -165,6 +171,35 @@ | ||||
|                     "5": "Fan", | ||||
|                     "6": "Fan" | ||||
|                 } | ||||
|             }, | ||||
|             "programs_td": { | ||||
|                 "state": { | ||||
|                     "genius": "Genius", | ||||
|                     "hqd_bath_towel": "Bath towel", | ||||
|                     "hqd_bulky": "Bulky", | ||||
|                     "hqd_cold_wind_30": "Cold wind 30 minutes", | ||||
|                     "hqd_cold_wind_timing": "Cold wind", | ||||
|                     "hqd_hot_wind_timing": "Hot wind", | ||||
|                     "hqd_luxury": "Luxury", | ||||
|                     "hqd_night_dry": "Night dry", | ||||
|                     "hqd_refresh": "Refresh", | ||||
|                     "hqd_timer": "תוזמן", | ||||
|                     "hqd_warm_up": "Warm up", | ||||
|                     "hqd_working_suit": "Working suit", | ||||
|                     "iot_dry_synthetic_dry": "סינתטי יבש" | ||||
|                 } | ||||
|             }, | ||||
|             "room_temperature": { | ||||
|                 "name": "Room temperature" | ||||
|             }, | ||||
|             "humidity": { | ||||
|                 "name": "Humidity" | ||||
|             }, | ||||
|             "freezer_temp": { | ||||
|                 "name": "Freezer temperature" | ||||
|             }, | ||||
|             "fridge_temp": { | ||||
|                 "name": "Fridge temperature" | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -176,7 +211,8 @@ | ||||
|                     "iot_fairy_quick_cycle": "Fairy Quick", | ||||
|                     "iot_jar_quick_cycle": "Jar Quick", | ||||
|                     "iot_yes_quick_cycle": "Yes Quick", | ||||
|                     "smart_ai": "Smart AI" | ||||
|                     "smart_ai": "Smart AI", | ||||
|                     "smart_ai_soil": "Smart AI" | ||||
|                 }, | ||||
|                 "name": "Program" | ||||
|             }, | ||||
| @ -419,7 +455,8 @@ | ||||
|                     "12": "בַּרזֶל", | ||||
|                     "13": "ארון יבש", | ||||
|                     "14": "Ready to wear", | ||||
|                     "15": "יבש במיוחד" | ||||
|                     "15": "יבש במיוחד", | ||||
|                     "11": "ללא ייבוש" | ||||
|                 }, | ||||
|                 "name": "רמת ייבוש" | ||||
|             }, | ||||
| @ -453,6 +490,29 @@ | ||||
|                 "state": { | ||||
|                     "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": { | ||||
| @ -460,7 +520,7 @@ | ||||
|                 "name": "Anticrease" | ||||
|             }, | ||||
|             "add_dish": { | ||||
|                 "name": "" | ||||
|                 "name": "Add dishes" | ||||
|             }, | ||||
|             "eco_express": { | ||||
|                 "name": "Eco" | ||||
| @ -527,6 +587,42 @@ | ||||
|             }, | ||||
|             "mute_mode": { | ||||
|                 "name": "Mute mode" | ||||
|             }, | ||||
|             "extra_rinse_1": { | ||||
|                 "name": "+1 שטיפה" | ||||
|             }, | ||||
|             "extra_rinse_2": { | ||||
|                 "name": "+2 שטיפות" | ||||
|             }, | ||||
|             "extra_rinse_3": { | ||||
|                 "name": "+3 שטיפות" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "name": "מינון אוטומטי" | ||||
|             }, | ||||
|             "good_night": { | ||||
|                 "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": { | ||||
| @ -598,6 +694,36 @@ | ||||
|             }, | ||||
|             "prewash": { | ||||
|                 "name": "שטיפה מראש" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "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": { | ||||
| @ -627,11 +753,58 @@ | ||||
|             }, | ||||
|             "dry_time": { | ||||
|                 "name": "זמן ייבוש" | ||||
|             }, | ||||
|             "steam_level": { | ||||
|                 "name": "מפלס קיטור" | ||||
|             }, | ||||
|             "freezer_temp_sel": { | ||||
|                 "name": "Target temperature Freezer" | ||||
|             }, | ||||
|             "fridge_temp_sel": { | ||||
|                 "name": "Target temperature Fridge" | ||||
|             } | ||||
|         }, | ||||
|         "button": { | ||||
|             "induction_hob": { | ||||
|                 "name": "Induction Hob" | ||||
|             }, | ||||
|             "start_program": { | ||||
|                 "name": "Program Start" | ||||
|             }, | ||||
|             "stop_program": { | ||||
|                 "name": "Program Stop" | ||||
|             } | ||||
|         }, | ||||
|         "climate": { | ||||
|             "air_conditioner": { | ||||
|                 "name": "Air conditioner" | ||||
|             }, | ||||
|             "fridge": { | ||||
|                 "name": "Fridge", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Fridge modes", | ||||
|                         "state": { | ||||
|                             "auto_set": "Auto-Set", | ||||
|                             "super_cool": "Super Cool", | ||||
|                             "holiday": "Holiday", | ||||
|                             "no_mode": "No mode selected" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "freezer": { | ||||
|                 "name": "Freezer", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Freezer modes", | ||||
|                         "state": { | ||||
|                             "auto_set": "Auto-Set", | ||||
|                             "super_freeze": "Super Freeze", | ||||
|                             "no_mode": "No mode selected" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -9,7 +9,10 @@ | ||||
|                     "4": "Zakazano", | ||||
|                     "5": "Zakazano", | ||||
|                     "6": "Greška", | ||||
|                     "7": "Spremno" | ||||
|                     "7": "Spremno", | ||||
|                     "2": "Program u tijeku", | ||||
|                     "8": "Test", | ||||
|                     "9": "Zaustavljanje ciklusa…" | ||||
|                 } | ||||
|             }, | ||||
|             "program_phases_wm": { | ||||
| @ -53,7 +56,9 @@ | ||||
|                     "16": "Hlađenje", | ||||
|                     "18": "Održi svježim", | ||||
|                     "19": "Sušenje", | ||||
|                     "20": "Sušenje" | ||||
|                     "20": "Sušenje", | ||||
|                     "11": "Spremno", | ||||
|                     "17": "unknown" | ||||
|                 }, | ||||
|                 "name": "Faza" | ||||
|             }, | ||||
| @ -79,7 +84,8 @@ | ||||
|                     "12": "Suho za glačanje", | ||||
|                     "13": "Suho za spremanje", | ||||
|                     "14": "Spremno za nošenje", | ||||
|                     "15": "Potpuno suho" | ||||
|                     "15": "Potpuno suho", | ||||
|                     "11": "Bez sušenja" | ||||
|                 }, | ||||
|                 "name": "Stupanj suhoće" | ||||
|             }, | ||||
| @ -165,6 +171,154 @@ | ||||
|                     "5": "Ventilator", | ||||
|                     "6": "Ventilator" | ||||
|                 } | ||||
|             }, | ||||
|             "programs_td": { | ||||
|                 "state": { | ||||
|                     "active_dry": "Aktivno sušenje", | ||||
|                     "allergy_care": "Antialergijski", | ||||
|                     "all_in_one": "All in One", | ||||
|                     "antiallergy": "Antialergijski", | ||||
|                     "anti_odours": "Protiv neugodnih mirisa", | ||||
|                     "auto_care": "Auto Care", | ||||
|                     "baby": "Dječje rublje", | ||||
|                     "bed_quilt": "Pokrivači", | ||||
|                     "care_30": "Njega 30", | ||||
|                     "care_45": "Njega 45", | ||||
|                     "care_59": "Njega 59", | ||||
|                     "coloured": "Šareno", | ||||
|                     "daily_45_min": "Dnevni 45'", | ||||
|                     "daily_perfect_59_min": "Dnevni Perfect 59'", | ||||
|                     "darks_and_coloured": "Tamno & Šareno", | ||||
|                     "delicates": "Osjetljivo", | ||||
|                     "duvet": "Popluni", | ||||
|                     "eco": "Ekološki pamuk", | ||||
|                     "ecospeed_cottons": "Ecospeed Pamuk", | ||||
|                     "ecospeed_delicates": "Ecospeed osjetljivo", | ||||
|                     "ecospeed_mixed": "Ecospeed Miješane tkanine", | ||||
|                     "extra_hygiene": "Extra higijenski", | ||||
|                     "fitness": "Fitness", | ||||
|                     "fresh_care": "Svježa njega", | ||||
|                     "genius": "Genius", | ||||
|                     "hqd_baby_care": "Baby Care", | ||||
|                     "hqd_bath_towel": "Ručnici", | ||||
|                     "hqd_bed_sheets": "Plahte", | ||||
|                     "hqd_bulky": "Glomazni komadi", | ||||
|                     "hqd_casual": "Opušteno", | ||||
|                     "hqd_cold_wind_30": "Hladni zrak, 30 minuta", | ||||
|                     "hqd_cold_wind_timing": "Hladni zrak ", | ||||
|                     "hqd_cotton": "Pamuk", | ||||
|                     "hqd_curtain": "Zavjese", | ||||
|                     "hqd_delicate": "Osjetljivo rublje", | ||||
|                     "hqd_diaper": "Pelene", | ||||
|                     "hqd_duvet": "Poplun", | ||||
|                     "hqd_feather": "Jakne punjene paperjem", | ||||
|                     "hqd_hot_wind_timing": "Vrući zrak", | ||||
|                     "hqd_hygienic": "Higijenizacija", | ||||
|                     "hqd_i_refresh": "I-Refresh", | ||||
|                     "hqd_i_refresh_pro": "I-Refresh Pro", | ||||
|                     "hqd_jacket": "Jakne", | ||||
|                     "hqd_jeans": "Traperice", | ||||
|                     "hqd_luxury": "Luxury", | ||||
|                     "hqd_mix": "Miješano rublje", | ||||
|                     "hqd_night_dry": "Sušenje preko noći", | ||||
|                     "hqd_outdoor": "Outdoor", | ||||
|                     "hqd_precious_cure": "Precious Cure", | ||||
|                     "hqd_quick_20": "Brzo 20", | ||||
|                     "hqd_quick_30": "Brzo 30", | ||||
|                     "hqd_quick_dry": "Brzo sušenje 30", | ||||
|                     "hqd_quilt": "Popluni", | ||||
|                     "hqd_refresh": "Protiv neugodnih mirisa", | ||||
|                     "hqd_school_uniform": "Školska uniforma", | ||||
|                     "hqd_shirt": "Majice", | ||||
|                     "hqd_shoes": "Cipele", | ||||
|                     "hqd_silk": "Svila", | ||||
|                     "hqd_sports": "Sportska odjeća", | ||||
|                     "hqd_synthetics": "Sintetika", | ||||
|                     "hqd_timer": "Vremenski definirano", | ||||
|                     "hqd_towel": "Ručnici", | ||||
|                     "hqd_underwear": "Donje rublje", | ||||
|                     "hqd_warm_up": "Zagrijavanje", | ||||
|                     "hqd_wool": "Vuna", | ||||
|                     "hqd_working_suit": "Radna odjeća", | ||||
|                     "hygiene": "Higijena", | ||||
|                     "iot_checkup": "Kontrolni pregled", | ||||
|                     "iot_dry_anti_mites": "Protiv grinja", | ||||
|                     "iot_dry_baby": "Dječje rublje", | ||||
|                     "iot_dry_backpacks": "Ruksaci", | ||||
|                     "iot_dry_bathrobe": "Kupaonski ogrtači", | ||||
|                     "iot_dry_bed_linen": "Posteljina", | ||||
|                     "iot_dry_bed_quilt": "Pokrivači", | ||||
|                     "iot_dry_cotton": "Pamuk", | ||||
|                     "iot_dry_cuddly_toys": "Plišane igračke", | ||||
|                     "iot_dry_curtains": "Zavjese", | ||||
|                     "iot_dry_dehumidifier": "Odstranjivač vlage", | ||||
|                     "iot_dry_delicates": "Osjetljivo", | ||||
|                     "iot_dry_delicate_tablecloths": "Osjetljivi stolnjaci", | ||||
|                     "iot_dry_denim_jeans": "Traper – Traperice", | ||||
|                     "iot_dry_down_jacket": "Jakna", | ||||
|                     "iot_dry_duvet": "Popluni", | ||||
|                     "iot_dry_easy_iron_cotton": "Super Easy Iron", | ||||
|                     "iot_dry_easy_iron_synthetics": "Super Easy Iron za sintetičko rublje", | ||||
|                     "iot_dry_gym_fit": "Fitness odjeća", | ||||
|                     "iot_dry_lingerie": "Donje rublje", | ||||
|                     "iot_dry_mixed": "Miješane tkanine", | ||||
|                     "iot_dry_playsuits": "Kombinezoni", | ||||
|                     "iot_dry_rapid_30": "Rapid 30", | ||||
|                     "iot_dry_rapid_59": "Brzi program 59’.", | ||||
|                     "iot_dry_refresh": "Osvježavanje", | ||||
|                     "iot_dry_regenerates_waterproof": "Regeneracija vodootporne odjeće", | ||||
|                     "iot_dry_relax_creases": "Smanjenje nabora", | ||||
|                     "iot_dry_shirts": "Košulje", | ||||
|                     "iot_dry_small_load": "Mali kapacitet", | ||||
|                     "iot_dry_swimsuits_and_bikinis": "Kupaći kostimi", | ||||
|                     "iot_dry_synthetics": "Sintetika", | ||||
|                     "iot_dry_synthetic_dry": "Suha sintetika", | ||||
|                     "iot_dry_tablecloths": "Stolnjaci", | ||||
|                     "iot_dry_technical_fabrics": "Tehničko platno", | ||||
|                     "iot_dry_warm_embrace": "Zagrijavanje", | ||||
|                     "iot_dry_wool": "Woolmark", | ||||
|                     "jeans": "Traper", | ||||
|                     "mix_and_dry": "Mix&Dry", | ||||
|                     "pets": "Kućni ljubimci", | ||||
|                     "pre_iron": "Prije glačanja", | ||||
|                     "rapid_30": "Rapid 30", | ||||
|                     "rapid_45": "Brzi 45 min", | ||||
|                     "rapid_59": "Perfect Rapid 59 Min", | ||||
|                     "refresh": "Osvježavanje", | ||||
|                     "relax_creases": "Smanjenje nabora", | ||||
|                     "saving_30_min": "ECO 30'", | ||||
|                     "shirts": "Košulje", | ||||
|                     "shoes": "Cipele", | ||||
|                     "small_load": "Mali kapacitet", | ||||
|                     "soft_care": "Soft Care", | ||||
|                     "sport_plus": "Sport Plus", | ||||
|                     "super_easy_iron_misti": "Iznimno jednostavno glačanje za raznovrsne tkanine", | ||||
|                     "super_easy_iron_xxl": "Iznimno jednostavno glačanje XXL", | ||||
|                     "super_fast_cottons": "Super brzi Pamuk", | ||||
|                     "super_fast_delicates": "Super brzi Osjetljivo", | ||||
|                     "synthetics": "Sintetika", | ||||
|                     "total_care": "Total Care", | ||||
|                     "trainers": "Trenirke i sportska obuća", | ||||
|                     "ultra_care": "Ultra Care", | ||||
|                     "waterproof_revitalize": "Regeneracija vodootporne odjeće", | ||||
|                     "whites": "Bijelo", | ||||
|                     "wool": "Sušenje vune", | ||||
|                     "woolmark": "Woolmark", | ||||
|                     "xxl_load": "XXL kapacitet", | ||||
|                     "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": { | ||||
| @ -255,6 +409,11 @@ | ||||
|                     "silent": "Noć", | ||||
|                     "silent_care": "Silent Care", | ||||
|                     "smart_ai": "Smart AI", | ||||
|                     "smart_ai_pro": "Smart AI Pro", | ||||
|                     "smart_ai_pro_soil": "Smart AI Pro", | ||||
|                     "smart_ai_rapid": "Smart AI Rapid", | ||||
|                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||
|                     "smart_ai_soil": "Smart AI", | ||||
|                     "special": "Posebno", | ||||
|                     "special_pw_prz": "Posebno", | ||||
|                     "steam": "Steam (Para) 75 °C", | ||||
| @ -311,11 +470,12 @@ | ||||
|             "programs_ov": { | ||||
|                 "state": { | ||||
|                     "bakery": "Tjestenina i tijesta", | ||||
|                     "bakery_steam": "Kruh pečen na pari", | ||||
|                     "bakery_steam": "Para u pećnici", | ||||
|                     "bottom_heating": "Donji grijač", | ||||
|                     "bottom_heating_fan": "Donji grijač + Ventilator", | ||||
|                     "bread": "Kruh", | ||||
|                     "bread_steam": "Peciva pečena na pari", | ||||
|                     "bread_steam": "Kruh pečen na pari", | ||||
|                     "combi": "Combi", | ||||
|                     "convection_fan": "Konvekcija + Ventilator", | ||||
|                     "convection_fan_turnspit": "Konvekcija + ventilator + ražanj", | ||||
|                     "conventional": "Konvekcijska", | ||||
| @ -323,7 +483,7 @@ | ||||
|                     "defrost": "Odmrzavanje", | ||||
|                     "descaling": "Uklanjanje kamenca", | ||||
|                     "fish": "Riba", | ||||
|                     "fish_steam": "Riba kuhana na pari", | ||||
|                     "fish_steam": "Riba na pari", | ||||
|                     "grill_cata": "Pečenje", | ||||
|                     "grill_fan_cata": "Ventilator za pečenje", | ||||
|                     "grill_fan_pyro": "Grijač + ventilator", | ||||
| @ -334,12 +494,12 @@ | ||||
|                     "leavening": "Dizanje tijesta", | ||||
|                     "low_temp_cooking": "Kuhanje na niskoj temperaturi", | ||||
|                     "low_temp_cooking_fish": "Kuhanje na niskoj temperaturi - riba", | ||||
|                     "low_temp_cooking_fish_steam": "Kuhanje na pari i na niskoj temperaturi - riba", | ||||
|                     "low_temp_cooking_fish_steam": "Kuhanje na niskoj temperaturi - riba na pari", | ||||
|                     "low_temp_cooking_meat": "Kuhanje na niskoj temperaturi - meso", | ||||
|                     "low_temp_cooking_meat_steam": "Kuhanje na pari i na niskoj temperaturi - meso", | ||||
|                     "low_temp_cooking_meat_steam": "Kuhanje na niskoj temperaturi - meso na pari", | ||||
|                     "low_temp_cooking_steam": "Kuhanje na pari i na niskoj temperaturi", | ||||
|                     "meat": "Meso", | ||||
|                     "meat_steam": "Meso kuhano na pari", | ||||
|                     "meat_steam": "Meso na pari", | ||||
|                     "multi_level": "Više razina", | ||||
|                     "paella": "Paella", | ||||
|                     "pasta_and_bakery": "Tjestenina i tijesta", | ||||
| @ -347,7 +507,7 @@ | ||||
|                     "pyrolysis": "Piroliza", | ||||
|                     "pyrolysis_plus": "Piroliza +", | ||||
|                     "red_meat": "Crveno meso", | ||||
|                     "red_meat_steam": "Crveno meso kuhano na pari", | ||||
|                     "red_meat_steam": "Kuhano crveno meso", | ||||
|                     "regenerate": "Regeneracija", | ||||
|                     "soft_plus": "Mekano+", | ||||
|                     "super_grill": "Super roštilj", | ||||
| @ -357,9 +517,9 @@ | ||||
|                     "vegetables": "Povrće", | ||||
|                     "vegetables_cata": "Povrće", | ||||
|                     "vegetables_pyro": "Povrće", | ||||
|                     "water_discharge": "Odvod vode", | ||||
|                     "water_discharge": "Ispuštanje vode", | ||||
|                     "white_meat": "Bijelo meso", | ||||
|                     "white_meat_steam": "Bijelo meso kuhano na pari" | ||||
|                     "white_meat_steam": "Kuhano bijelo meso na pari" | ||||
|                 }, | ||||
|                 "name": "Program" | ||||
|             }, | ||||
| @ -416,7 +576,7 @@ | ||||
|                     "hqd_precious_cure": "Precious Cure", | ||||
|                     "hqd_quick_20": "Brzo 20", | ||||
|                     "hqd_quick_30": "Brzo 30", | ||||
|                     "hqd_quick_dry": "Brzo sušenje", | ||||
|                     "hqd_quick_dry": "Brzo sušenje 30", | ||||
|                     "hqd_quilt": "Popluni", | ||||
|                     "hqd_refresh": "Protiv neugodnih mirisa", | ||||
|                     "hqd_school_uniform": "Školska uniforma", | ||||
| @ -820,7 +980,8 @@ | ||||
|                     "12": "Suho za glačanje", | ||||
|                     "13": "Suho za spremanje", | ||||
|                     "14": "Spremno za nošenje", | ||||
|                     "15": "Potpuno suho" | ||||
|                     "15": "Potpuno suho", | ||||
|                     "11": "Bez sušenja" | ||||
|                 }, | ||||
|                 "name": "Stupanj suhoće" | ||||
|             }, | ||||
| @ -870,6 +1031,40 @@ | ||||
|                     "iot_uv_and_fan": "UV + ventilator", | ||||
|                     "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": { | ||||
| @ -877,7 +1072,7 @@ | ||||
|                 "name": "Sprečavanje gužvanja" | ||||
|             }, | ||||
|             "add_dish": { | ||||
|                 "name": "" | ||||
|                 "name": "Dodaj posuđe" | ||||
|             }, | ||||
|             "eco_express": { | ||||
|                 "name": "Ekološki" | ||||
| @ -944,6 +1139,42 @@ | ||||
|             }, | ||||
|             "mute_mode": { | ||||
|                 "name": "Bešumni način rada" | ||||
|             }, | ||||
|             "extra_rinse_1": { | ||||
|                 "name": "+1 ispiranje " | ||||
|             }, | ||||
|             "extra_rinse_2": { | ||||
|                 "name": "+2 ispiranja " | ||||
|             }, | ||||
|             "extra_rinse_3": { | ||||
|                 "name": "+3 ispiranja " | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Aquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "name": "Automatsko doziranje" | ||||
|             }, | ||||
|             "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": { | ||||
| @ -993,7 +1224,7 @@ | ||||
|                 "name": "Tava" | ||||
|             }, | ||||
|             "remote_control": { | ||||
|                 "name": "Upravljanje na daljinu" | ||||
|                 "name": "Daljinski upravljač" | ||||
|             }, | ||||
|             "rinse_aid": { | ||||
|                 "name": "Razina sredstva za ispiranje" | ||||
| @ -1015,6 +1246,36 @@ | ||||
|             }, | ||||
|             "prewash": { | ||||
|                 "name": "Pretpranje" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Aquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "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": { | ||||
| @ -1044,11 +1305,58 @@ | ||||
|             }, | ||||
|             "dry_time": { | ||||
|                 "name": "Trajanje sušenja" | ||||
|             }, | ||||
|             "steam_level": { | ||||
|                 "name": "Razina pare" | ||||
|             }, | ||||
|             "freezer_temp_sel": { | ||||
|                 "name": "Ciljana temperatura Zamrzivač" | ||||
|             }, | ||||
|             "fridge_temp_sel": { | ||||
|                 "name": "Ciljana temperatura Hladnjak" | ||||
|             } | ||||
|         }, | ||||
|         "button": { | ||||
|             "induction_hob": { | ||||
|                 "name": "Indukcijska ploča za kuhanje" | ||||
|             }, | ||||
|             "start_program": { | ||||
|                 "name": "Program Početak" | ||||
|             }, | ||||
|             "stop_program": { | ||||
|                 "name": "Program Zaustavi" | ||||
|             } | ||||
|         }, | ||||
|         "climate": { | ||||
|             "air_conditioner": { | ||||
|                 "name": "Klimatizacijski uređaj" | ||||
|             }, | ||||
|             "fridge": { | ||||
|                 "name": "Hladnjak", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Načini rada za hladnjak", | ||||
|                         "state": { | ||||
|                             "auto_set": "Automatsko postavljanje", | ||||
|                             "super_cool": "Super Cool", | ||||
|                             "holiday": "Holiday", | ||||
|                             "no_mode": "Nije odabran način rada" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "freezer": { | ||||
|                 "name": "Zamrzivač", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Načini rada za zamrzavanje", | ||||
|                         "state": { | ||||
|                             "auto_set": "Automatsko postavljanje", | ||||
|                             "super_freeze": "Super Freeze", | ||||
|                             "no_mode": "Nije odabran način rada" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -67,7 +67,10 @@ | ||||
|                     "4": "Pianificato", | ||||
|                     "5": "Pianificato", | ||||
|                     "6": "Errore", | ||||
|                     "7": "Pronta" | ||||
|                     "7": "Pronta", | ||||
|                     "2": "Programma in esecuzione", | ||||
|                     "8": "Test", | ||||
|                     "9": "Arresto il ciclo..." | ||||
|                 } | ||||
|             }, | ||||
|             "program_phases_wm": { | ||||
| @ -111,7 +114,9 @@ | ||||
|                     "16": "Raffreddamento", | ||||
|                     "18": "Keep Fresh", | ||||
|                     "19": "Asciugatura", | ||||
|                     "20": "Asciugatura" | ||||
|                     "20": "Asciugatura", | ||||
|                     "11": "Pronta", | ||||
|                     "17": "unknown" | ||||
|                 }, | ||||
|                 "name": "Fase" | ||||
|             }, | ||||
| @ -137,7 +142,8 @@ | ||||
|                     "12": "Stiro facile", | ||||
|                     "13": "Armadio", | ||||
|                     "14": "Pronto da indossare", | ||||
|                     "15": "Extra asciutto" | ||||
|                     "15": "Extra asciutto", | ||||
|                     "11": "Nessuna asciugatura" | ||||
|                 }, | ||||
|                 "name": "Livello Asciugatura" | ||||
|             }, | ||||
| @ -217,6 +223,154 @@ | ||||
|                     "5": "Ventilatore", | ||||
|                     "6": "Ventilatore" | ||||
|                 } | ||||
|             }, | ||||
|             "programs_td": { | ||||
|                 "state": { | ||||
|                     "active_dry": "Active Dry", | ||||
|                     "allergy_care": "Anti-allergie", | ||||
|                     "all_in_one": "Tutto in Uno", | ||||
|                     "antiallergy": "Anti-allergie", | ||||
|                     "anti_odours": "Anti-odori", | ||||
|                     "auto_care": "Auto Care", | ||||
|                     "baby": "Baby", | ||||
|                     "bed_quilt": "Trapunte-Piumoni", | ||||
|                     "care_30": "Care 30", | ||||
|                     "care_45": "Care 45", | ||||
|                     "care_59": "Care 59", | ||||
|                     "coloured": "Colorati", | ||||
|                     "daily_45_min": "Quotidiano 45'", | ||||
|                     "daily_perfect_59_min": "Daily Perfect 59'", | ||||
|                     "darks_and_coloured": "Scuri e Colorati", | ||||
|                     "delicates": "Delicati", | ||||
|                     "duvet": "Piumone", | ||||
|                     "eco": "Eco Cotton", | ||||
|                     "ecospeed_cottons": "Ecospeed Cotone", | ||||
|                     "ecospeed_delicates": "Ecospeed Delicati", | ||||
|                     "ecospeed_mixed": "Ecospeed Misti", | ||||
|                     "extra_hygiene": "Igiene Extra", | ||||
|                     "fitness": "Fitness", | ||||
|                     "fresh_care": "Fresh Care", | ||||
|                     "genius": "Genius", | ||||
|                     "hqd_baby_care": "Baby Care", | ||||
|                     "hqd_bath_towel": "Asciugamani", | ||||
|                     "hqd_bed_sheets": "Lenzuola", | ||||
|                     "hqd_bulky": "Vestiti voluminosi", | ||||
|                     "hqd_casual": "Casual", | ||||
|                     "hqd_cold_wind_30": "Brezza rinfrescante 30m", | ||||
|                     "hqd_cold_wind_timing": "Brezza rinfrescante", | ||||
|                     "hqd_cotton": "Cotone", | ||||
|                     "hqd_curtain": "Tende", | ||||
|                     "hqd_delicate": "Delicati", | ||||
|                     "hqd_diaper": "Pannolini", | ||||
|                     "hqd_duvet": "Piumone", | ||||
|                     "hqd_feather": "Piumini", | ||||
|                     "hqd_hot_wind_timing": "Aria calda", | ||||
|                     "hqd_hygienic": "Igienizzante", | ||||
|                     "hqd_i_refresh": "I-Refresh", | ||||
|                     "hqd_i_refresh_pro": "I-Refresh Pro", | ||||
|                     "hqd_jacket": "Giacche", | ||||
|                     "hqd_jeans": "Jeans", | ||||
|                     "hqd_luxury": "Capi Pregiati", | ||||
|                     "hqd_mix": "Misti", | ||||
|                     "hqd_night_dry": "Asciugatura notturna", | ||||
|                     "hqd_outdoor": "Outdoor", | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Rapido 20m", | ||||
|                     "hqd_quick_30": "Rapido 30m", | ||||
|                     "hqd_quick_dry": "Asciugatura veloce (30 min)", | ||||
|                     "hqd_quilt": "Trapunte", | ||||
|                     "hqd_refresh": "Refresh", | ||||
|                     "hqd_school_uniform": "Uniforme scolastica", | ||||
|                     "hqd_shirt": "Camicie", | ||||
|                     "hqd_shoes": "Scarpe", | ||||
|                     "hqd_silk": "Seta", | ||||
|                     "hqd_sports": "Sport", | ||||
|                     "hqd_synthetics": "Sintetici", | ||||
|                     "hqd_timer": "A tempo", | ||||
|                     "hqd_towel": "Asciugamani", | ||||
|                     "hqd_underwear": "Intimo", | ||||
|                     "hqd_warm_up": "Riscaldamento", | ||||
|                     "hqd_wool": "Lana", | ||||
|                     "hqd_working_suit": "Abbigliamento da lavoro", | ||||
|                     "hygiene": "Igiene", | ||||
|                     "iot_checkup": "Check-Up", | ||||
|                     "iot_dry_anti_mites": "Anti-Acari", | ||||
|                     "iot_dry_baby": "Baby", | ||||
|                     "iot_dry_backpacks": "Zaini", | ||||
|                     "iot_dry_bathrobe": "Accappatoi e Spugne", | ||||
|                     "iot_dry_bed_linen": "Lenzuola", | ||||
|                     "iot_dry_bed_quilt": "Trapunte-Piumoni", | ||||
|                     "iot_dry_cotton": "Cotone", | ||||
|                     "iot_dry_cuddly_toys": "Peluches", | ||||
|                     "iot_dry_curtains": "Tende", | ||||
|                     "iot_dry_dehumidifier": "Rimuovi umidità", | ||||
|                     "iot_dry_delicates": "Delicati", | ||||
|                     "iot_dry_delicate_tablecloths": "Tovaglie delicate", | ||||
|                     "iot_dry_denim_jeans": "Denim - jeans", | ||||
|                     "iot_dry_down_jacket": "Giacche", | ||||
|                     "iot_dry_duvet": "Piumone", | ||||
|                     "iot_dry_easy_iron_cotton": "Stira facile", | ||||
|                     "iot_dry_easy_iron_synthetics": "Stira facile Sintetici", | ||||
|                     "iot_dry_gym_fit": "Gym fit - Fitness", | ||||
|                     "iot_dry_lingerie": "Lingerie", | ||||
|                     "iot_dry_mixed": "Misti", | ||||
|                     "iot_dry_playsuits": "Tutine", | ||||
|                     "iot_dry_rapid_30": "Rapido 30m", | ||||
|                     "iot_dry_rapid_59": "Rapido 59'.", | ||||
|                     "iot_dry_refresh": "Rinfresca", | ||||
|                     "iot_dry_regenerates_waterproof": "Rigenera Tessuti Impermeabili", | ||||
|                     "iot_dry_relax_creases": "Meno Pieghe", | ||||
|                     "iot_dry_shirts": "Camicie", | ||||
|                     "iot_dry_small_load": "Carico Small", | ||||
|                     "iot_dry_swimsuits_and_bikinis": "Costumi e Bikini", | ||||
|                     "iot_dry_synthetics": "Sintetici", | ||||
|                     "iot_dry_synthetic_dry": "Asciugatura Sintetici", | ||||
|                     "iot_dry_tablecloths": "Tovaglie", | ||||
|                     "iot_dry_technical_fabrics": "Tessuti Tecnici", | ||||
|                     "iot_dry_warm_embrace": "Caldo abbraccio", | ||||
|                     "iot_dry_wool": "Lana", | ||||
|                     "jeans": "Jeans", | ||||
|                     "mix_and_dry": "Mix&Dry", | ||||
|                     "pets": "Pets", | ||||
|                     "pre_iron": "Pre-Stiro", | ||||
|                     "rapid_30": "Rapido 30", | ||||
|                     "rapid_45": "Rapido 45 min", | ||||
|                     "rapid_59": "Perfect Rapid 59 Min", | ||||
|                     "refresh": "Rinfresca", | ||||
|                     "relax_creases": "Meno Pieghe", | ||||
|                     "saving_30_min": "Risparmio 30'", | ||||
|                     "shirts": "Camicie", | ||||
|                     "shoes": "Scarpe", | ||||
|                     "small_load": "Carico Small", | ||||
|                     "soft_care": "Soft Care", | ||||
|                     "sport_plus": "Sport Plus", | ||||
|                     "super_easy_iron_misti": "Super Easy Iron misti", | ||||
|                     "super_easy_iron_xxl": "Super Easy Iron XXL", | ||||
|                     "super_fast_cottons": "Super Fast Cotone", | ||||
|                     "super_fast_delicates": "Super Fast Delicati", | ||||
|                     "synthetics": "Sintetici", | ||||
|                     "total_care": "Total Care", | ||||
|                     "trainers": "Scarpe da ginnastica", | ||||
|                     "ultra_care": "Ultra Care", | ||||
|                     "waterproof_revitalize": "Impermeabilizzazione", | ||||
|                     "whites": "Bianchi", | ||||
|                     "wool": "Asciugatura Lana", | ||||
|                     "woolmark": "Lana", | ||||
|                     "xxl_load": "Carico XXL", | ||||
|                     "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": { | ||||
| @ -307,6 +461,11 @@ | ||||
|                     "silent": "Notte", | ||||
|                     "silent_care": "Silent Care", | ||||
|                     "smart_ai": "Smart AI", | ||||
|                     "smart_ai_pro": "Smart AI Pro", | ||||
|                     "smart_ai_pro_soil": "Smart AI Pro", | ||||
|                     "smart_ai_rapid": "Smart AI Rapid", | ||||
|                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||
|                     "smart_ai_soil": "Smart AI", | ||||
|                     "special": "Speciale", | ||||
|                     "special_pw_prz": "Speciale", | ||||
|                     "steam": "Vapore 75°C", | ||||
| @ -363,19 +522,20 @@ | ||||
|             "programs_ov": { | ||||
|                 "state": { | ||||
|                     "bakery": "Pasta e Pasticceria", | ||||
|                     "bakery_steam": "Pane a vapore", | ||||
|                     "bakery_steam": "Vapore da forno", | ||||
|                     "bottom_heating": "Resistenza Inferiore", | ||||
|                     "bottom_heating_fan": "Resistenza Inferiore Ventilata", | ||||
|                     "bread": "Pane", | ||||
|                     "bread_steam": "Pasticceria a vapore", | ||||
|                     "bread_steam": "Pane al vapore", | ||||
|                     "combi": "Combi", | ||||
|                     "convection_fan": "Cottura Ventilata", | ||||
|                     "convection_fan_turnspit": "Girarrosto + statico ventilato", | ||||
|                     "convection_fan_turnspit": "Girarrosto a convenzione ventilata", | ||||
|                     "conventional": "Statico", | ||||
|                     "conventional_turnspit": "Girarrosto + statico", | ||||
|                     "conventional_turnspit": "Girarrosto a convenzione", | ||||
|                     "defrost": "Decongelamento", | ||||
|                     "descaling": "Disincrostazione", | ||||
|                     "descaling": "Decalcificazione", | ||||
|                     "fish": "Pesce", | ||||
|                     "fish_steam": "Pesce a vapore", | ||||
|                     "fish_steam": "Pesce al vapore", | ||||
|                     "grill_cata": "Grill", | ||||
|                     "grill_fan_cata": "Grill fan", | ||||
|                     "grill_fan_pyro": "Grill Ventilato", | ||||
| @ -385,13 +545,13 @@ | ||||
|                     "iot_h20_clean": "h2O clean", | ||||
|                     "leavening": "Lievitazione", | ||||
|                     "low_temp_cooking": "Cottura a bassa temperatura", | ||||
|                     "low_temp_cooking_fish": "Cottura a bassa temperatura del pesce", | ||||
|                     "low_temp_cooking_fish_steam": "Cottura a bassa temperatura del pesce a vapore", | ||||
|                     "low_temp_cooking_meat": "Cottura a bassa temperatura della carne", | ||||
|                     "low_temp_cooking_meat_steam": "Cottura a vapore a bassa temperatura di carne", | ||||
|                     "low_temp_cooking_steam": "Cottura a vapore a bassa temperatura", | ||||
|                     "low_temp_cooking_fish": "Cottura a bassa temperatura Pesce", | ||||
|                     "low_temp_cooking_fish_steam": "Cottura a bassa temperatura Pesce al vapore", | ||||
|                     "low_temp_cooking_meat": "Cottura a bassa temperatura Carne", | ||||
|                     "low_temp_cooking_meat_steam": "Cottura a bassa temperatura Carne al vapore", | ||||
|                     "low_temp_cooking_steam": "Cottura a bassa temperatura al vapore", | ||||
|                     "meat": "Carne", | ||||
|                     "meat_steam": "Carne a vapore", | ||||
|                     "meat_steam": "Carne al vapore", | ||||
|                     "multi_level": "Cottura Multilivello", | ||||
|                     "paella": "Paella", | ||||
|                     "pasta_and_bakery": "Pasta e Pasticceria", | ||||
| @ -399,8 +559,8 @@ | ||||
|                     "pyrolysis": "Pirolisi", | ||||
|                     "pyrolysis_plus": "Pirolisi +", | ||||
|                     "red_meat": "Carne rossa", | ||||
|                     "red_meat_steam": "Carne rossa a vapore", | ||||
|                     "regenerate": "Rigenerazione", | ||||
|                     "red_meat_steam": "Carne rossa al vapore", | ||||
|                     "regenerate": "Rigenerare", | ||||
|                     "soft_plus": "Soft+", | ||||
|                     "super_grill": "Supergriglia", | ||||
|                     "tailor_bake": "Tailor bake", | ||||
| @ -409,9 +569,9 @@ | ||||
|                     "vegetables": "Verdure", | ||||
|                     "vegetables_cata": "Verdure", | ||||
|                     "vegetables_pyro": "Verdure", | ||||
|                     "water_discharge": "Scarico d'acqua", | ||||
|                     "white_meat": "Carne bianca", | ||||
|                     "white_meat_steam": "Carne bianca a vapore" | ||||
|                     "water_discharge": "Scarico dell'acqua", | ||||
|                     "white_meat": "Carne Bianca", | ||||
|                     "white_meat_steam": "Carne bianca al vapore" | ||||
|                 }, | ||||
|                 "name": "Programma" | ||||
|             }, | ||||
| @ -447,7 +607,7 @@ | ||||
|                     "hqd_bed_sheets": "Lenzuola", | ||||
|                     "hqd_bulky": "Vestiti voluminosi", | ||||
|                     "hqd_casual": "Casual", | ||||
|                     "hqd_cold_wind_30": "Brezza rinfrescante 30 minuti", | ||||
|                     "hqd_cold_wind_30": "Brezza rinfrescante 30m", | ||||
|                     "hqd_cold_wind_timing": "Brezza rinfrescante", | ||||
|                     "hqd_cotton": "Cotone", | ||||
|                     "hqd_curtain": "Tende", | ||||
| @ -461,14 +621,14 @@ | ||||
|                     "hqd_i_refresh_pro": "I-Refresh Pro", | ||||
|                     "hqd_jacket": "Giacche", | ||||
|                     "hqd_jeans": "Jeans", | ||||
|                     "hqd_luxury": "Vestiti preziosi", | ||||
|                     "hqd_luxury": "Capi Pregiati", | ||||
|                     "hqd_mix": "Misti", | ||||
|                     "hqd_night_dry": "Asciugatura notturna", | ||||
|                     "hqd_outdoor": "Outdoor", | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Rapido 20", | ||||
|                     "hqd_quick_30": "Rapido 30", | ||||
|                     "hqd_quick_dry": "Asciugatura veloce", | ||||
|                     "hqd_quick_20": "Rapido 20m", | ||||
|                     "hqd_quick_30": "Rapido 30m", | ||||
|                     "hqd_quick_dry": "Asciugatura veloce (30 min)", | ||||
|                     "hqd_quilt": "Trapunte", | ||||
|                     "hqd_refresh": "Refresh", | ||||
|                     "hqd_school_uniform": "Uniforme scolastica", | ||||
| @ -482,7 +642,7 @@ | ||||
|                     "hqd_underwear": "Intimo", | ||||
|                     "hqd_warm_up": "Riscaldamento", | ||||
|                     "hqd_wool": "Lana", | ||||
|                     "hqd_working_suit": "Completo da lavoro", | ||||
|                     "hqd_working_suit": "Abbigliamento da lavoro", | ||||
|                     "hygiene": "Igiene", | ||||
|                     "iot_checkup": "Check-Up", | ||||
|                     "iot_dry_anti_mites": "Anti-Acari", | ||||
| @ -506,7 +666,7 @@ | ||||
|                     "iot_dry_lingerie": "Lingerie", | ||||
|                     "iot_dry_mixed": "Misti", | ||||
|                     "iot_dry_playsuits": "Tutine", | ||||
|                     "iot_dry_rapid_30": "Rapido 30", | ||||
|                     "iot_dry_rapid_30": "Rapido 30m", | ||||
|                     "iot_dry_rapid_59": "Rapido 59'.", | ||||
|                     "iot_dry_refresh": "Rinfresca", | ||||
|                     "iot_dry_regenerates_waterproof": "Rigenera Tessuti Impermeabili", | ||||
| @ -872,7 +1032,8 @@ | ||||
|                     "12": "Stiro facile", | ||||
|                     "13": "Armadio", | ||||
|                     "14": "Pronto da indossare", | ||||
|                     "15": "Extra asciutto" | ||||
|                     "15": "Extra asciutto", | ||||
|                     "11": "Nessuna asciugatura" | ||||
|                 }, | ||||
|                 "name": "Livello Asciugatura" | ||||
|             }, | ||||
| @ -922,6 +1083,40 @@ | ||||
|                     "iot_uv_and_fan": "UV + Ventola", | ||||
|                     "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": { | ||||
| @ -929,7 +1124,7 @@ | ||||
|                 "name": "Antipieghe " | ||||
|             }, | ||||
|             "add_dish": { | ||||
|                 "name": "" | ||||
|                 "name": "Aggiungi stoviglie" | ||||
|             }, | ||||
|             "eco_express": { | ||||
|                 "name": "Eco" | ||||
| @ -996,6 +1191,42 @@ | ||||
|             }, | ||||
|             "mute_mode": { | ||||
|                 "name": "Modalità tacita" | ||||
|             }, | ||||
|             "extra_rinse_1": { | ||||
|                 "name": "+1 Risciacquo" | ||||
|             }, | ||||
|             "extra_rinse_2": { | ||||
|                 "name": "+2 Risciacqui" | ||||
|             }, | ||||
|             "extra_rinse_3": { | ||||
|                 "name": "+3 Risciacqui" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "name": "Autodose" | ||||
|             }, | ||||
|             "good_night": { | ||||
|                 "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": { | ||||
| @ -1045,7 +1276,7 @@ | ||||
|                 "name": "Pentola" | ||||
|             }, | ||||
|             "remote_control": { | ||||
|                 "name": "Controllo remoto" | ||||
|                 "name": "远程控制" | ||||
|             }, | ||||
|             "rinse_aid": { | ||||
|                 "name": "Livello Brillantante" | ||||
| @ -1067,6 +1298,36 @@ | ||||
|             }, | ||||
|             "prewash": { | ||||
|                 "name": "Prelavaggio" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "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": { | ||||
| @ -1096,11 +1357,58 @@ | ||||
|             }, | ||||
|             "dry_time": { | ||||
|                 "name": "Tempo asciugatura" | ||||
|             }, | ||||
|             "steam_level": { | ||||
|                 "name": "Livello vapore" | ||||
|             }, | ||||
|             "freezer_temp_sel": { | ||||
|                 "name": "Temperatura target Congelatore" | ||||
|             }, | ||||
|             "fridge_temp_sel": { | ||||
|                 "name": "Temperatura target Frigorifero" | ||||
|             } | ||||
|         }, | ||||
|         "button": { | ||||
|             "induction_hob": { | ||||
|                 "name": "Piano cottura a induzione" | ||||
|             }, | ||||
|             "start_program": { | ||||
|                 "name": "Programma Inizia" | ||||
|             }, | ||||
|             "stop_program": { | ||||
|                 "name": "Programma Stop" | ||||
|             } | ||||
|         }, | ||||
|         "climate": { | ||||
|             "air_conditioner": { | ||||
|                 "name": "Condizionatore" | ||||
|             }, | ||||
|             "fridge": { | ||||
|                 "name": "Frigorifero", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Modalità del frigorifero", | ||||
|                         "state": { | ||||
|                             "auto_set": "Impostazione automatica", | ||||
|                             "super_cool": "Super Cool", | ||||
|                             "holiday": "Holiday", | ||||
|                             "no_mode": "Nessuna modalità selezionata" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "freezer": { | ||||
|                 "name": "Congelatore", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Modalità del congelatore", | ||||
|                         "state": { | ||||
|                             "auto_set": "Impostazione automatica", | ||||
|                             "super_freeze": "Super Freeze", | ||||
|                             "no_mode": "Nessuna modalità selezionata" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @ -9,7 +9,10 @@ | ||||
|                     "4": "Gepland", | ||||
|                     "5": "Gepland", | ||||
|                     "6": "Fout", | ||||
|                     "7": "Klaar" | ||||
|                     "7": "Klaar", | ||||
|                     "2": "Programma draait", | ||||
|                     "8": "Test", | ||||
|                     "9": "Programma stoppen…" | ||||
|                 } | ||||
|             }, | ||||
|             "program_phases_wm": { | ||||
| @ -53,7 +56,9 @@ | ||||
|                     "16": "Afkoelen", | ||||
|                     "18": "Fris houden", | ||||
|                     "19": "Drogen", | ||||
|                     "20": "Drogen" | ||||
|                     "20": "Drogen", | ||||
|                     "11": "Klaar", | ||||
|                     "17": "unknown" | ||||
|                 }, | ||||
|                 "name": "Fase" | ||||
|             }, | ||||
| @ -79,7 +84,8 @@ | ||||
|                     "12": "Strijken", | ||||
|                     "13": "Kastdroog", | ||||
|                     "14": "Klaar om te dragen", | ||||
|                     "15": "Extra droog" | ||||
|                     "15": "Extra droog", | ||||
|                     "11": "Niet drogen" | ||||
|                 }, | ||||
|                 "name": "Droogniveau" | ||||
|             }, | ||||
| @ -165,6 +171,154 @@ | ||||
|                     "5": "Ventilator", | ||||
|                     "6": "Ventilator" | ||||
|                 } | ||||
|             }, | ||||
|             "programs_td": { | ||||
|                 "state": { | ||||
|                     "active_dry": "Actief drogen", | ||||
|                     "allergy_care": "Anti-allergie", | ||||
|                     "all_in_one": "All in One", | ||||
|                     "antiallergy": "Anti-allergie", | ||||
|                     "anti_odours": "Anti geuren", | ||||
|                     "auto_care": "Automatische verzorging", | ||||
|                     "baby": "Baby", | ||||
|                     "bed_quilt": "Dekbed", | ||||
|                     "care_30": "Verzorging 30'", | ||||
|                     "care_45": "Verzorging 45'", | ||||
|                     "care_59": "Verzorging 59'", | ||||
|                     "coloured": "Gekleurd", | ||||
|                     "daily_45_min": "DAILY 45'", | ||||
|                     "daily_perfect_59_min": "DAILY PERFECT 59'", | ||||
|                     "darks_and_coloured": "Donker & Gekleurd", | ||||
|                     "delicates": "Fijne was", | ||||
|                     "duvet": "Dekbed", | ||||
|                     "eco": "Eco katoen", | ||||
|                     "ecospeed_cottons": "Ecospeed Katoen", | ||||
|                     "ecospeed_delicates": "Ecospeed fijne was", | ||||
|                     "ecospeed_mixed": "Ecospeed Gemengd", | ||||
|                     "extra_hygiene": "Extra Hygiene", | ||||
|                     "fitness": "Fitness", | ||||
|                     "fresh_care": "Opfrisverzorging", | ||||
|                     "genius": "Genius", | ||||
|                     "hqd_baby_care": "Baby Care", | ||||
|                     "hqd_bath_towel": "Handdoeken", | ||||
|                     "hqd_bed_sheets": "Beddengoed", | ||||
|                     "hqd_bulky": "Grote artikelen", | ||||
|                     "hqd_casual": "Casual", | ||||
|                     "hqd_cold_wind_30": "30 minuten koel briesje", | ||||
|                     "hqd_cold_wind_timing": "Koel briesje ", | ||||
|                     "hqd_cotton": "Katoen", | ||||
|                     "hqd_curtain": "Gordijnen", | ||||
|                     "hqd_delicate": "Fijne was", | ||||
|                     "hqd_diaper": "Luiers", | ||||
|                     "hqd_duvet": "Dekbed", | ||||
|                     "hqd_feather": "Donsjassen", | ||||
|                     "hqd_hot_wind_timing": "Hete lucht", | ||||
|                     "hqd_hygienic": "Ontsmetten", | ||||
|                     "hqd_i_refresh": "I-Refresh", | ||||
|                     "hqd_i_refresh_pro": "I-Refresh Pro", | ||||
|                     "hqd_jacket": "Jassen", | ||||
|                     "hqd_jeans": "Jeans", | ||||
|                     "hqd_luxury": "Luxury", | ||||
|                     "hqd_mix": "Gemengde vezels", | ||||
|                     "hqd_night_dry": "Nachtelijk droogprogramma", | ||||
|                     "hqd_outdoor": "Outdoor", | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Quick 20", | ||||
|                     "hqd_quick_30": "Quick 30", | ||||
|                     "hqd_quick_dry": "Quick dry 30", | ||||
|                     "hqd_quilt": "Quilts", | ||||
|                     "hqd_refresh": "Opfrissen", | ||||
|                     "hqd_school_uniform": "Schooluniform", | ||||
|                     "hqd_shirt": "Overhemden", | ||||
|                     "hqd_shoes": "Schoenen", | ||||
|                     "hqd_silk": "Zijde", | ||||
|                     "hqd_sports": "Sport", | ||||
|                     "hqd_synthetics": "Synthetische stoffen", | ||||
|                     "hqd_timer": "Getimed", | ||||
|                     "hqd_towel": "Handdoeken", | ||||
|                     "hqd_underwear": "Ondergoed", | ||||
|                     "hqd_warm_up": "Opwarmen", | ||||
|                     "hqd_wool": "Wol", | ||||
|                     "hqd_working_suit": "Werkkleding", | ||||
|                     "hygiene": "Hygiëne", | ||||
|                     "iot_checkup": "Controle", | ||||
|                     "iot_dry_anti_mites": "Anti-mijten", | ||||
|                     "iot_dry_baby": "Baby", | ||||
|                     "iot_dry_backpacks": "Rugzakken", | ||||
|                     "iot_dry_bathrobe": "Badjas", | ||||
|                     "iot_dry_bed_linen": "Bed Linnen", | ||||
|                     "iot_dry_bed_quilt": "Dekbed", | ||||
|                     "iot_dry_cotton": "Katoen", | ||||
|                     "iot_dry_cuddly_toys": "Knufflels", | ||||
|                     "iot_dry_curtains": "Gordijnen", | ||||
|                     "iot_dry_dehumidifier": "Vochtigheidsverwijderaar", | ||||
|                     "iot_dry_delicates": "Delicate was", | ||||
|                     "iot_dry_delicate_tablecloths": "Delicate tafelkleden", | ||||
|                     "iot_dry_denim_jeans": "Denim – Jeans", | ||||
|                     "iot_dry_down_jacket": "Jacket", | ||||
|                     "iot_dry_duvet": "Dekbed", | ||||
|                     "iot_dry_easy_iron_cotton": "Super Gemakkelijk strijken", | ||||
|                     "iot_dry_easy_iron_synthetics": "Synthetische stoffen gemakkelijk strijken", | ||||
|                     "iot_dry_gym_fit": "Gym fit - Fitness", | ||||
|                     "iot_dry_lingerie": "Lingerie", | ||||
|                     "iot_dry_mixed": "Gemengde vezels", | ||||
|                     "iot_dry_playsuits": "Jumpsuits", | ||||
|                     "iot_dry_rapid_30": "Rapid 30", | ||||
|                     "iot_dry_rapid_59": "Snel 59'", | ||||
|                     "iot_dry_refresh": "Opfrissen", | ||||
|                     "iot_dry_regenerates_waterproof": "Regenereert Waterproof", | ||||
|                     "iot_dry_relax_creases": "Ontkreuken", | ||||
|                     "iot_dry_shirts": "Overhemden", | ||||
|                     "iot_dry_small_load": "Kleine lading", | ||||
|                     "iot_dry_swimsuits_and_bikinis": "Badkleding", | ||||
|                     "iot_dry_synthetics": "Synthetisch", | ||||
|                     "iot_dry_synthetic_dry": "Synthetische stoffen drogen", | ||||
|                     "iot_dry_tablecloths": "Tafelkleden", | ||||
|                     "iot_dry_technical_fabrics": "Technische Vezels", | ||||
|                     "iot_dry_warm_embrace": "Warme Knuffel", | ||||
|                     "iot_dry_wool": "Wol", | ||||
|                     "jeans": "Jeans", | ||||
|                     "mix_and_dry": "Gemengd&Droog", | ||||
|                     "pets": "Huisdieren", | ||||
|                     "pre_iron": "Gemakkelijk strijken", | ||||
|                     "rapid_30": "Rapid 30", | ||||
|                     "rapid_45": "Snel 45 min", | ||||
|                     "rapid_59": "Perfect Rapid 59 Min", | ||||
|                     "refresh": "Opfrissen", | ||||
|                     "relax_creases": "Ontkreuken", | ||||
|                     "saving_30_min": "ECO 30'", | ||||
|                     "shirts": "Overhemden", | ||||
|                     "shoes": "Schoenen", | ||||
|                     "small_load": "Kleine lading", | ||||
|                     "soft_care": "Zachte verzorging", | ||||
|                     "sport_plus": "Sports", | ||||
|                     "super_easy_iron_misti": "Super eenvoudig strijken gemengd", | ||||
|                     "super_easy_iron_xxl": "Super eenvoudig strijken XXL", | ||||
|                     "super_fast_cottons": "Super Snel Katoen", | ||||
|                     "super_fast_delicates": "Super Snel Delicaat", | ||||
|                     "synthetics": "Synthetisch", | ||||
|                     "total_care": "Total Care", | ||||
|                     "trainers": "Trainers", | ||||
|                     "ultra_care": "Ultra Care", | ||||
|                     "waterproof_revitalize": "Waterproof Revitaliseren", | ||||
|                     "whites": "Witte was", | ||||
|                     "wool": "Droge Wol", | ||||
|                     "woolmark": "Wol", | ||||
|                     "xxl_load": "XXL Lading", | ||||
|                     "zoom_59": "Zoom 59" | ||||
|                 } | ||||
|             }, | ||||
|             "room_temperature": { | ||||
|                 "name": "Omgevingstemperatuur" | ||||
|             }, | ||||
|             "humidity": { | ||||
|                 "name": "Luchtvochtigheid" | ||||
|             }, | ||||
|             "freezer_temp": { | ||||
|                 "name": "Vriezertemperatuur" | ||||
|             }, | ||||
|             "fridge_temp": { | ||||
|                 "name": "Koelkasttemperatuur" | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -255,6 +409,11 @@ | ||||
|                     "silent": "Nacht", | ||||
|                     "silent_care": "Silent Care", | ||||
|                     "smart_ai": "Smart AI", | ||||
|                     "smart_ai_pro": "Smart AI Pro", | ||||
|                     "smart_ai_pro_soil": "Smart AI Pro", | ||||
|                     "smart_ai_rapid": "Smart AI Rapid", | ||||
|                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||
|                     "smart_ai_soil": "Smart AI", | ||||
|                     "special": "speciaal", | ||||
|                     "special_pw_prz": "speciaal", | ||||
|                     "steam": "Stoom 75°C", | ||||
| @ -311,11 +470,12 @@ | ||||
|             "programs_ov": { | ||||
|                 "state": { | ||||
|                     "bakery": "Pasta en bakkersproducten", | ||||
|                     "bakery_steam": "Stoomgebakken brood", | ||||
|                     "bakery_steam": "Oven stomen", | ||||
|                     "bottom_heating": "Bodemverwarming", | ||||
|                     "bottom_heating_fan": "Bodemverwarming + Ventilator", | ||||
|                     "bread": "Brood", | ||||
|                     "bread_steam": "Stoomgebakken pasteien", | ||||
|                     "bread_steam": "Stoomgebakken brood", | ||||
|                     "combi": "Combi", | ||||
|                     "convection_fan": "Met ventilator", | ||||
|                     "convection_fan_turnspit": "Convectie + ventilator + draaispit", | ||||
|                     "conventional": "Conventioneel", | ||||
| @ -334,12 +494,12 @@ | ||||
|                     "leavening": "Gisting", | ||||
|                     "low_temp_cooking": "Bereiding op lage temperatuur", | ||||
|                     "low_temp_cooking_fish": "Bereiding op lage temperatuur – Vis", | ||||
|                     "low_temp_cooking_fish_steam": "Stomen bij lage temperatuur – Vis", | ||||
|                     "low_temp_cooking_fish_steam": "Bereiding op lage temperatuur – Gestoomde vis", | ||||
|                     "low_temp_cooking_meat": "Bereiding op lage temperatuur – Vlees", | ||||
|                     "low_temp_cooking_meat_steam": "Stomen bij lage temperatuur – Vlees", | ||||
|                     "low_temp_cooking_meat_steam": "Bereiding op lage temperatuur – Gestoomd vlees", | ||||
|                     "low_temp_cooking_steam": "Stomen bij lage temperatuur", | ||||
|                     "meat": "Vlees", | ||||
|                     "meat_steam": "Gestoomd vlees", | ||||
|                     "meat_steam": "Vlees stomen", | ||||
|                     "multi_level": "Multi-level", | ||||
|                     "paella": "Paella", | ||||
|                     "pasta_and_bakery": "Pasta en bakkersproducten", | ||||
| @ -348,7 +508,7 @@ | ||||
|                     "pyrolysis_plus": "Pyrolyse +", | ||||
|                     "red_meat": "Rood vlees", | ||||
|                     "red_meat_steam": "Gestoomd rood vlees", | ||||
|                     "regenerate": "Regeneratie", | ||||
|                     "regenerate": "Regenereren", | ||||
|                     "soft_plus": "Soft+", | ||||
|                     "super_grill": "Super grill", | ||||
|                     "tailor_bake": "Tailor bake", | ||||
| @ -357,7 +517,7 @@ | ||||
|                     "vegetables": "Groenten", | ||||
|                     "vegetables_cata": "Groenten", | ||||
|                     "vegetables_pyro": "Groenten", | ||||
|                     "water_discharge": "Waterafvoer", | ||||
|                     "water_discharge": "Afvoer van water", | ||||
|                     "white_meat": "Wit vlees", | ||||
|                     "white_meat_steam": "Gestoomd wit vlees" | ||||
|                 }, | ||||
| @ -416,7 +576,7 @@ | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Quick 20", | ||||
|                     "hqd_quick_30": "Quick 30", | ||||
|                     "hqd_quick_dry": "Quick dry", | ||||
|                     "hqd_quick_dry": "Quick dry 30", | ||||
|                     "hqd_quilt": "Quilts", | ||||
|                     "hqd_refresh": "Opfrissen", | ||||
|                     "hqd_school_uniform": "Schooluniform", | ||||
| @ -820,7 +980,8 @@ | ||||
|                     "12": "Strijken", | ||||
|                     "13": "Kastdroog", | ||||
|                     "14": "Klaar om te dragen", | ||||
|                     "15": "Extra droog" | ||||
|                     "15": "Extra droog", | ||||
|                     "11": "Niet drogen" | ||||
|                 }, | ||||
|                 "name": "Droogniveau" | ||||
|             }, | ||||
| @ -870,6 +1031,40 @@ | ||||
|                     "iot_uv_and_fan": "UV + Hetelucht", | ||||
|                     "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": { | ||||
| @ -877,7 +1072,7 @@ | ||||
|                 "name": "Kreukherstellend" | ||||
|             }, | ||||
|             "add_dish": { | ||||
|                 "name": "" | ||||
|                 "name": "Vaatwerk toevoegen" | ||||
|             }, | ||||
|             "eco_express": { | ||||
|                 "name": "Eco" | ||||
| @ -944,6 +1139,42 @@ | ||||
|             }, | ||||
|             "mute_mode": { | ||||
|                 "name": "Dempmodus" | ||||
|             }, | ||||
|             "extra_rinse_1": { | ||||
|                 "name": "+1 keer spoelen" | ||||
|             }, | ||||
|             "extra_rinse_2": { | ||||
|                 "name": "+2 keer spoelen" | ||||
|             }, | ||||
|             "extra_rinse_3": { | ||||
|                 "name": "+3 keer spoelen" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "name": "Automatisch doseren" | ||||
|             }, | ||||
|             "good_night": { | ||||
|                 "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": { | ||||
| @ -1015,6 +1246,36 @@ | ||||
|             }, | ||||
|             "prewash": { | ||||
|                 "name": "Voorwas" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "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": { | ||||
| @ -1044,11 +1305,58 @@ | ||||
|             }, | ||||
|             "dry_time": { | ||||
|                 "name": "Droogtijd" | ||||
|             }, | ||||
|             "steam_level": { | ||||
|                 "name": "Stoomniveau" | ||||
|             }, | ||||
|             "freezer_temp_sel": { | ||||
|                 "name": "Doeltemperatuur Vriezer" | ||||
|             }, | ||||
|             "fridge_temp_sel": { | ||||
|                 "name": "Doeltemperatuur Koelkast" | ||||
|             } | ||||
|         }, | ||||
|         "button": { | ||||
|             "induction_hob": { | ||||
|                 "name": "Inductiekookplaat" | ||||
|             }, | ||||
|             "start_program": { | ||||
|                 "name": "Programma Start" | ||||
|             }, | ||||
|             "stop_program": { | ||||
|                 "name": "Programma Stoppen" | ||||
|             } | ||||
|         }, | ||||
|         "climate": { | ||||
|             "air_conditioner": { | ||||
|                 "name": "Airconditioner" | ||||
|             }, | ||||
|             "fridge": { | ||||
|                 "name": "Koelkast", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Koelkastmodi", | ||||
|                         "state": { | ||||
|                             "auto_set": "Automatisch instellen", | ||||
|                             "super_cool": "Super Cool", | ||||
|                             "holiday": "Holiday", | ||||
|                             "no_mode": "Geen modus geselecteerd" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "freezer": { | ||||
|                 "name": "Vriezer", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Vriezermodi", | ||||
|                         "state": { | ||||
|                             "auto_set": "Automatisch instellen", | ||||
|                             "super_freeze": "Super Freeze", | ||||
|                             "no_mode": "Geen modus geselecteerd" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -9,7 +9,10 @@ | ||||
|                     "4": "Zaplanowane", | ||||
|                     "5": "Zaplanowane", | ||||
|                     "6": "Błąd", | ||||
|                     "7": "Gotowe" | ||||
|                     "7": "Gotowe", | ||||
|                     "2": "Program uruchomiony", | ||||
|                     "8": "Test", | ||||
|                     "9": "Zatrzymanie cyklu…" | ||||
|                 } | ||||
|             }, | ||||
|             "program_phases_wm": { | ||||
| @ -53,7 +56,9 @@ | ||||
|                     "16": "Chłodzenie", | ||||
|                     "18": "Utrzymaj świeżość", | ||||
|                     "19": "Suszenie", | ||||
|                     "20": "Suszenie" | ||||
|                     "20": "Suszenie", | ||||
|                     "11": "Gotowe", | ||||
|                     "17": "unknown" | ||||
|                 }, | ||||
|                 "name": "Faza" | ||||
|             }, | ||||
| @ -79,7 +84,8 @@ | ||||
|                     "12": "Prasowanie", | ||||
|                     "13": "Gotowe do garderoby", | ||||
|                     "14": "Gotowe do włożenia", | ||||
|                     "15": "Ekstra suchy" | ||||
|                     "15": "Ekstra suchy", | ||||
|                     "11": "Bez suszenia" | ||||
|                 }, | ||||
|                 "name": "Poziom suszenia" | ||||
|             }, | ||||
| @ -165,6 +171,154 @@ | ||||
|                     "5": "Wentylator", | ||||
|                     "6": "Wentylator" | ||||
|                 } | ||||
|             }, | ||||
|             "programs_td": { | ||||
|                 "state": { | ||||
|                     "active_dry": "Aktywne suche", | ||||
|                     "allergy_care": "Antiallergy", | ||||
|                     "all_in_one": "All in One", | ||||
|                     "antiallergy": "Antiallergy", | ||||
|                     "anti_odours": "Odświeżenie", | ||||
|                     "auto_care": "Auto Care", | ||||
|                     "baby": "Dzieci", | ||||
|                     "bed_quilt": "Bed Quilt", | ||||
|                     "care_30": "Care 30", | ||||
|                     "care_45": "Care 45", | ||||
|                     "care_59": "Care 59", | ||||
|                     "coloured": "Kolorowe", | ||||
|                     "daily_45_min": "CODZIENNY 45'", | ||||
|                     "daily_perfect_59_min": "CODZIENNY PERFEKT 59'", | ||||
|                     "darks_and_coloured": "Darks & Coloured", | ||||
|                     "delicates": "Delikatne", | ||||
|                     "duvet": "Kołdry", | ||||
|                     "eco": "Bawełna ekologiczna", | ||||
|                     "ecospeed_cottons": "Ecospeed Cottons", | ||||
|                     "ecospeed_delicates": "Szybki Eco do tkanin delikatnych", | ||||
|                     "ecospeed_mixed": "Ecospeed Mixed", | ||||
|                     "extra_hygiene": "HIGIENICZNY", | ||||
|                     "fitness": "Fitness", | ||||
|                     "fresh_care": "Fresh Care", | ||||
|                     "genius": "Genius", | ||||
|                     "hqd_baby_care": "Baby Care", | ||||
|                     "hqd_bath_towel": "Ręczniki", | ||||
|                     "hqd_bed_sheets": "Prześcieradła", | ||||
|                     "hqd_bulky": "Elementy wielkogabarytowe", | ||||
|                     "hqd_casual": "Nieformalny", | ||||
|                     "hqd_cold_wind_30": "Chłodna bryza 30 minut", | ||||
|                     "hqd_cold_wind_timing": "Chłodny wietrzyk ", | ||||
|                     "hqd_cotton": "Bawełna", | ||||
|                     "hqd_curtain": "Zasłony", | ||||
|                     "hqd_delicate": "Delikatne", | ||||
|                     "hqd_diaper": "Pieluchy", | ||||
|                     "hqd_duvet": "Kołdry", | ||||
|                     "hqd_feather": "Kurtki puchowe", | ||||
|                     "hqd_hot_wind_timing": "Gorące powietrze", | ||||
|                     "hqd_hygienic": "Higienizacja", | ||||
|                     "hqd_i_refresh": "I-Refresh", | ||||
|                     "hqd_i_refresh_pro": "I-Refresh Pro", | ||||
|                     "hqd_jacket": "Kurtki", | ||||
|                     "hqd_jeans": "Dżins", | ||||
|                     "hqd_luxury": "Luxury", | ||||
|                     "hqd_mix": "Mieszane", | ||||
|                     "hqd_night_dry": "Suszenie nocne", | ||||
|                     "hqd_outdoor": "Outdoor", | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Szybkie 20", | ||||
|                     "hqd_quick_30": "Szybkie 30", | ||||
|                     "hqd_quick_dry": "Szybkoschnące 30", | ||||
|                     "hqd_quilt": "Kołdry", | ||||
|                     "hqd_refresh": "Odświeżanie", | ||||
|                     "hqd_school_uniform": "Mundurek szkolny", | ||||
|                     "hqd_shirt": "Koszule", | ||||
|                     "hqd_shoes": "Buty", | ||||
|                     "hqd_silk": "Jedwab", | ||||
|                     "hqd_sports": "Odzież sportowa", | ||||
|                     "hqd_synthetics": "Syntetyki", | ||||
|                     "hqd_timer": "Czasowe", | ||||
|                     "hqd_towel": "Ręczniki", | ||||
|                     "hqd_underwear": "Bielizna", | ||||
|                     "hqd_warm_up": "Podgrzej", | ||||
|                     "hqd_wool": "Wełna", | ||||
|                     "hqd_working_suit": "Odzież robocza", | ||||
|                     "hygiene": "Higiena", | ||||
|                     "iot_checkup": "Kontrola", | ||||
|                     "iot_dry_anti_mites": "Przeciw roztoczom", | ||||
|                     "iot_dry_baby": "Dzieci", | ||||
|                     "iot_dry_backpacks": "Plecaki", | ||||
|                     "iot_dry_bathrobe": "Szlafroki", | ||||
|                     "iot_dry_bed_linen": "Pościel", | ||||
|                     "iot_dry_bed_quilt": "Bed Quilt", | ||||
|                     "iot_dry_cotton": "Bawełna", | ||||
|                     "iot_dry_cuddly_toys": "Zabawki pluszowe", | ||||
|                     "iot_dry_curtains": "Zasłony", | ||||
|                     "iot_dry_dehumidifier": "Środek do usuwania wilgoci", | ||||
|                     "iot_dry_delicates": "Bielizna", | ||||
|                     "iot_dry_delicate_tablecloths": "Delikatne obrusy", | ||||
|                     "iot_dry_denim_jeans": "Dżinsy", | ||||
|                     "iot_dry_down_jacket": "Jacket", | ||||
|                     "iot_dry_duvet": "Kołdry", | ||||
|                     "iot_dry_easy_iron_cotton": "Super Easy Iron", | ||||
|                     "iot_dry_easy_iron_synthetics": "Super łatwe prasowanie tkanin syntetycznych", | ||||
|                     "iot_dry_gym_fit": "Gimnastyczne - Fitness", | ||||
|                     "iot_dry_lingerie": "Bielizna", | ||||
|                     "iot_dry_mixed": "Mieszane", | ||||
|                     "iot_dry_playsuits": "Pajacyki", | ||||
|                     "iot_dry_rapid_30": "Rapid 30", | ||||
|                     "iot_dry_rapid_59": "Szybki 59’.", | ||||
|                     "iot_dry_refresh": "Refresh", | ||||
|                     "iot_dry_regenerates_waterproof": "Regeneracja wodoodpornych", | ||||
|                     "iot_dry_relax_creases": "Relax Creases", | ||||
|                     "iot_dry_shirts": "Koszule", | ||||
|                     "iot_dry_small_load": "Small Load", | ||||
|                     "iot_dry_swimsuits_and_bikinis": "Stroje kąpielowe", | ||||
|                     "iot_dry_synthetics": "Syntetyczne", | ||||
|                     "iot_dry_synthetic_dry": "Suszenie materiałów syntetycznych", | ||||
|                     "iot_dry_tablecloths": "Obrusy", | ||||
|                     "iot_dry_technical_fabrics": "Materiały techniczne", | ||||
|                     "iot_dry_warm_embrace": "Ciepłe objęcie", | ||||
|                     "iot_dry_wool": "Woolmark", | ||||
|                     "jeans": "Dżinsy", | ||||
|                     "mix_and_dry": "Mix&Dry", | ||||
|                     "pets": "Zwierzęta domowe", | ||||
|                     "pre_iron": "Pre-Iron", | ||||
|                     "rapid_30": "Rapid 30", | ||||
|                     "rapid_45": "Rapid 45 min", | ||||
|                     "rapid_59": "Perfekcyjne szybkie w 59 min", | ||||
|                     "refresh": "Odświeżanie", | ||||
|                     "relax_creases": "Relax Creases", | ||||
|                     "saving_30_min": "ECO 30'", | ||||
|                     "shirts": "Koszule", | ||||
|                     "shoes": "Buty", | ||||
|                     "small_load": "Small Load", | ||||
|                     "soft_care": "Soft Care", | ||||
|                     "sport_plus": "Sportowe", | ||||
|                     "super_easy_iron_misti": "Super łatwe prasowanie tkanin mieszanych", | ||||
|                     "super_easy_iron_xxl": "Super łatwe prasowanie XXL", | ||||
|                     "super_fast_cottons": "Super Fast Cottons", | ||||
|                     "super_fast_delicates": "Super Fast Delicates", | ||||
|                     "synthetics": "Syntetyczne", | ||||
|                     "total_care": "Total Care", | ||||
|                     "trainers": "Buty sportowe", | ||||
|                     "ultra_care": "Ultra Care", | ||||
|                     "waterproof_revitalize": "Waterproof Revitalize", | ||||
|                     "whites": "Białe", | ||||
|                     "wool": "Suszenie wełny", | ||||
|                     "woolmark": "Woolmark", | ||||
|                     "xxl_load": "XXL Load", | ||||
|                     "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": { | ||||
| @ -255,6 +409,11 @@ | ||||
|                     "silent": "Nocny", | ||||
|                     "silent_care": "Silent Care", | ||||
|                     "smart_ai": "Smart AI", | ||||
|                     "smart_ai_pro": "Smart AI Pro", | ||||
|                     "smart_ai_pro_soil": "Smart AI Pro", | ||||
|                     "smart_ai_rapid": "Smart AI Rapid", | ||||
|                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||
|                     "smart_ai_soil": "Smart AI", | ||||
|                     "special": "specjalne", | ||||
|                     "special_pw_prz": "specjalne", | ||||
|                     "steam": "Para 75°C", | ||||
| @ -311,11 +470,12 @@ | ||||
|             "programs_ov": { | ||||
|                 "state": { | ||||
|                     "bakery": "Makaron i Piekarnia", | ||||
|                     "bakery_steam": "Chleb pieczony na parze", | ||||
|                     "bakery_steam": "Para z piekarnika", | ||||
|                     "bottom_heating": "Grzanie dolne", | ||||
|                     "bottom_heating_fan": "Grzanie Dolne + Termoobieg", | ||||
|                     "bread": "Chleb", | ||||
|                     "bread_steam": "Ciasteczka pieczone na parze", | ||||
|                     "bread_steam": "Chleb pieczony na parze", | ||||
|                     "combi": "Kombi", | ||||
|                     "convection_fan": "Termoobieg", | ||||
|                     "convection_fan_turnspit": "Termoobieg + Fan + Rożen", | ||||
|                     "conventional": "Konwencjonalny", | ||||
| @ -323,7 +483,7 @@ | ||||
|                     "defrost": "Rozmrażanie", | ||||
|                     "descaling": "Odkamienianie", | ||||
|                     "fish": "Ryby", | ||||
|                     "fish_steam": "Ryba gotowana na parze", | ||||
|                     "fish_steam": "Ryba na parze", | ||||
|                     "grill_cata": "Grill", | ||||
|                     "grill_fan_cata": "Grill + termoobieg", | ||||
|                     "grill_fan_pyro": "Grill + termoobieg", | ||||
| @ -334,12 +494,12 @@ | ||||
|                     "leavening": "Zaczyn", | ||||
|                     "low_temp_cooking": "Pieczenie w niskiej temperaturze", | ||||
|                     "low_temp_cooking_fish": "Pieczenie w niskiej temperaturze - ryby", | ||||
|                     "low_temp_cooking_fish_steam": "Gotowanie na parze w niskiej temperaturze — ryby", | ||||
|                     "low_temp_cooking_fish_steam": "Gotowanie w niskiej temperaturze - ryba gotowana na parze", | ||||
|                     "low_temp_cooking_meat": "Pieczenie w niskiej temperaturze - mięso", | ||||
|                     "low_temp_cooking_meat_steam": "Gotowanie na parze w niskiej temperaturze — mięso", | ||||
|                     "low_temp_cooking_meat_steam": "Gotowanie w niskiej temperaturze — mięso gotowane na parze", | ||||
|                     "low_temp_cooking_steam": "Gotowanie na parze w niskiej temperaturze", | ||||
|                     "meat": "Mięso", | ||||
|                     "meat_steam": "Mięso gotowane na parze", | ||||
|                     "meat_steam": "Mięso na parze", | ||||
|                     "multi_level": "Wielopoziomowo", | ||||
|                     "paella": "Paella", | ||||
|                     "pasta_and_bakery": "Makaron i Piekarnia", | ||||
| @ -347,8 +507,8 @@ | ||||
|                     "pyrolysis": "Pyroliza", | ||||
|                     "pyrolysis_plus": "Pyroliza +", | ||||
|                     "red_meat": "Czerwone mięso", | ||||
|                     "red_meat_steam": "Czerwone mięso gotowane na parze", | ||||
|                     "regenerate": "Regeneracja", | ||||
|                     "red_meat_steam": "Czerwone mięso na parze", | ||||
|                     "regenerate": "Podgrzewanie", | ||||
|                     "soft_plus": "Soft+", | ||||
|                     "super_grill": "Super Grill", | ||||
|                     "tailor_bake": "Tailor bake", | ||||
| @ -357,7 +517,7 @@ | ||||
|                     "vegetables": "Warzywa", | ||||
|                     "vegetables_cata": "Warzywa", | ||||
|                     "vegetables_pyro": "Warzywa", | ||||
|                     "water_discharge": "Odpływ wody", | ||||
|                     "water_discharge": "Odprowadzanie wody", | ||||
|                     "white_meat": "Białe mięso", | ||||
|                     "white_meat_steam": "Białe mięso gotowane na parze" | ||||
|                 }, | ||||
| @ -416,7 +576,7 @@ | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Szybkie 20", | ||||
|                     "hqd_quick_30": "Szybkie 30", | ||||
|                     "hqd_quick_dry": "Szybkoschnące", | ||||
|                     "hqd_quick_dry": "Szybkoschnące 30", | ||||
|                     "hqd_quilt": "Kołdry", | ||||
|                     "hqd_refresh": "Odświeżanie", | ||||
|                     "hqd_school_uniform": "Mundurek szkolny", | ||||
| @ -820,7 +980,8 @@ | ||||
|                     "12": "Prasowanie", | ||||
|                     "13": "Gotowe do garderoby", | ||||
|                     "14": "Gotowe do włożenia", | ||||
|                     "15": "Ekstra suchy" | ||||
|                     "15": "Ekstra suchy", | ||||
|                     "11": "Bez suszenia" | ||||
|                 }, | ||||
|                 "name": "Poziom suszenia" | ||||
|             }, | ||||
| @ -870,6 +1031,40 @@ | ||||
|                     "iot_uv_and_fan": "UV + wentylator", | ||||
|                     "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": { | ||||
| @ -877,7 +1072,7 @@ | ||||
|                 "name": "Przeciw gnieceniu" | ||||
|             }, | ||||
|             "add_dish": { | ||||
|                 "name": "" | ||||
|                 "name": "Dodaj naczynia" | ||||
|             }, | ||||
|             "eco_express": { | ||||
|                 "name": "Eco" | ||||
| @ -944,6 +1139,42 @@ | ||||
|             }, | ||||
|             "mute_mode": { | ||||
|                 "name": "Tryb wyciszenia" | ||||
|             }, | ||||
|             "extra_rinse_1": { | ||||
|                 "name": "+1 płukanie" | ||||
|             }, | ||||
|             "extra_rinse_2": { | ||||
|                 "name": "+2 płukania" | ||||
|             }, | ||||
|             "extra_rinse_3": { | ||||
|                 "name": "+3 płukania" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "name": "Automatyczne dozowanie" | ||||
|             }, | ||||
|             "good_night": { | ||||
|                 "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": { | ||||
| @ -1015,6 +1246,36 @@ | ||||
|             }, | ||||
|             "prewash": { | ||||
|                 "name": "Mycie wstępne" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "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": { | ||||
| @ -1044,11 +1305,58 @@ | ||||
|             }, | ||||
|             "dry_time": { | ||||
|                 "name": "Czas suszenia" | ||||
|             }, | ||||
|             "steam_level": { | ||||
|                 "name": "Poziom pary" | ||||
|             }, | ||||
|             "freezer_temp_sel": { | ||||
|                 "name": "Temperatura docelowa Zamrażarka" | ||||
|             }, | ||||
|             "fridge_temp_sel": { | ||||
|                 "name": "Temperatura docelowa Lodówka" | ||||
|             } | ||||
|         }, | ||||
|         "button": { | ||||
|             "induction_hob": { | ||||
|                 "name": "Płyta indukcyjna" | ||||
|             }, | ||||
|             "start_program": { | ||||
|                 "name": "Program Początek" | ||||
|             }, | ||||
|             "stop_program": { | ||||
|                 "name": "Program Zatrzymaj" | ||||
|             } | ||||
|         }, | ||||
|         "climate": { | ||||
|             "air_conditioner": { | ||||
|                 "name": "Klimatyzator" | ||||
|             }, | ||||
|             "fridge": { | ||||
|                 "name": "Lodówka", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Tryby pracy lodówki", | ||||
|                         "state": { | ||||
|                             "auto_set": "Ustawianie automatyczne", | ||||
|                             "super_cool": "Super Cool", | ||||
|                             "holiday": "Holiday", | ||||
|                             "no_mode": "Nie wybrano żadnego trybu" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "freezer": { | ||||
|                 "name": "Zamrażarka", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Tryby pracy zamrażarki", | ||||
|                         "state": { | ||||
|                             "auto_set": "Ustawianie automatyczne", | ||||
|                             "super_freeze": "Super Freeze", | ||||
|                             "no_mode": "Nie wybrano żadnego trybu" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -9,7 +9,10 @@ | ||||
|                     "4": "Agendado", | ||||
|                     "5": "Agendado", | ||||
|                     "6": "Erro", | ||||
|                     "7": "Pronto" | ||||
|                     "7": "Pronto", | ||||
|                     "2": "Programa em execução", | ||||
|                     "8": "Test", | ||||
|                     "9": "Ciclo de paragem…" | ||||
|                 } | ||||
|             }, | ||||
|             "program_phases_wm": { | ||||
| @ -53,7 +56,9 @@ | ||||
|                     "16": "Arrefecimento", | ||||
|                     "18": "Manter Fresco", | ||||
|                     "19": "Secagem", | ||||
|                     "20": "Secagem" | ||||
|                     "20": "Secagem", | ||||
|                     "11": "Pronto", | ||||
|                     "17": "unknown" | ||||
|                 }, | ||||
|                 "name": "Fase" | ||||
|             }, | ||||
| @ -79,7 +84,8 @@ | ||||
|                     "12": "Engomar", | ||||
|                     "13": "Guarda-Roupa pronto", | ||||
|                     "14": "Pronto a usar", | ||||
|                     "15": "Extra seco" | ||||
|                     "15": "Extra seco", | ||||
|                     "11": "Sem secagem" | ||||
|                 }, | ||||
|                 "name": "Nível de secagem" | ||||
|             }, | ||||
| @ -165,6 +171,154 @@ | ||||
|                     "5": "Ventilador", | ||||
|                     "6": "Ventilador" | ||||
|                 } | ||||
|             }, | ||||
|             "programs_td": { | ||||
|                 "state": { | ||||
|                     "active_dry": "Secagem ativa", | ||||
|                     "allergy_care": "Anti alergias", | ||||
|                     "all_in_one": "All in One", | ||||
|                     "antiallergy": "Anti alergias", | ||||
|                     "anti_odours": "Anti-odor", | ||||
|                     "auto_care": "Auto Care", | ||||
|                     "baby": "Roupa de bebé", | ||||
|                     "bed_quilt": "Colchas", | ||||
|                     "care_30": "Cuidado 30", | ||||
|                     "care_45": "Cuidado 45", | ||||
|                     "care_59": "Cuidado 59", | ||||
|                     "coloured": "Cores", | ||||
|                     "daily_45_min": "DIARIO 45'", | ||||
|                     "daily_perfect_59_min": "DIARIO PERFEITO 59'", | ||||
|                     "darks_and_coloured": "Roupa escura e colorida", | ||||
|                     "delicates": "Delicados", | ||||
|                     "duvet": "Edredãos", | ||||
|                     "eco": "Eco Algodão", | ||||
|                     "ecospeed_cottons": "Velocidade eco algodões", | ||||
|                     "ecospeed_delicates": "Ecospeed roupa delicada", | ||||
|                     "ecospeed_mixed": "Velocidade eco mistos", | ||||
|                     "extra_hygiene": "Higiene Extra", | ||||
|                     "fitness": "Fitness", | ||||
|                     "fresh_care": "Cuidado Fresco", | ||||
|                     "genius": "Genius", | ||||
|                     "hqd_baby_care": "Baby Care", | ||||
|                     "hqd_bath_towel": "Toalhas", | ||||
|                     "hqd_bed_sheets": "Lençóis", | ||||
|                     "hqd_bulky": "Itens volumosos", | ||||
|                     "hqd_casual": "Casual", | ||||
|                     "hqd_cold_wind_30": "Brisa fresca durante 30 minutos", | ||||
|                     "hqd_cold_wind_timing": "Brisa fresca ", | ||||
|                     "hqd_cotton": "Algodão", | ||||
|                     "hqd_curtain": "Cortinas", | ||||
|                     "hqd_delicate": "Roupa delicada", | ||||
|                     "hqd_diaper": "Fraldas", | ||||
|                     "hqd_duvet": "Edredões", | ||||
|                     "hqd_feather": "Blusões", | ||||
|                     "hqd_hot_wind_timing": "Ar quente", | ||||
|                     "hqd_hygienic": "Higienização", | ||||
|                     "hqd_i_refresh": "I-Refresh", | ||||
|                     "hqd_i_refresh_pro": "I-Refresh Pro", | ||||
|                     "hqd_jacket": "Casacos", | ||||
|                     "hqd_jeans": "Jeans", | ||||
|                     "hqd_luxury": "Peças requintadas", | ||||
|                     "hqd_mix": "Mistos", | ||||
|                     "hqd_night_dry": "Secagem durante a noite", | ||||
|                     "hqd_outdoor": "Outdoor", | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Rápido 20", | ||||
|                     "hqd_quick_30": "Rápido 30", | ||||
|                     "hqd_quick_dry": "Secagem rápida 30", | ||||
|                     "hqd_quilt": "Colchas", | ||||
|                     "hqd_refresh": "Refrescar", | ||||
|                     "hqd_school_uniform": "Farda da escola", | ||||
|                     "hqd_shirt": "Camisas", | ||||
|                     "hqd_shoes": "Calçado", | ||||
|                     "hqd_silk": "Seda", | ||||
|                     "hqd_sports": "Desporto", | ||||
|                     "hqd_synthetics": "Sintéticos", | ||||
|                     "hqd_timer": "Temporizado", | ||||
|                     "hqd_towel": "Toalhas", | ||||
|                     "hqd_underwear": "Roupa interior", | ||||
|                     "hqd_warm_up": "Aquecer", | ||||
|                     "hqd_wool": "Lãs", | ||||
|                     "hqd_working_suit": "Roupa de trabalho", | ||||
|                     "hygiene": "Higiene", | ||||
|                     "iot_checkup": "Check-Up", | ||||
|                     "iot_dry_anti_mites": "Anti-ácaros", | ||||
|                     "iot_dry_baby": "Roupa de bebé", | ||||
|                     "iot_dry_backpacks": "Mochilas", | ||||
|                     "iot_dry_bathrobe": "Roupões", | ||||
|                     "iot_dry_bed_linen": "Roupa de cama", | ||||
|                     "iot_dry_bed_quilt": "Colchas", | ||||
|                     "iot_dry_cotton": "Algodão", | ||||
|                     "iot_dry_cuddly_toys": "Brinquedos macios", | ||||
|                     "iot_dry_curtains": "Cortinas", | ||||
|                     "iot_dry_dehumidifier": "Removedor de humidade", | ||||
|                     "iot_dry_delicates": "Roupa delicada", | ||||
|                     "iot_dry_delicate_tablecloths": "Roupa de mesa delicada", | ||||
|                     "iot_dry_denim_jeans": "Ganga - Jeans", | ||||
|                     "iot_dry_down_jacket": "Jacket", | ||||
|                     "iot_dry_duvet": "Edredãos", | ||||
|                     "iot_dry_easy_iron_cotton": "Engomar fácil", | ||||
|                     "iot_dry_easy_iron_synthetics": "Engomar Super Fácil de Sintéticos", | ||||
|                     "iot_dry_gym_fit": "Roupa de desporto - Fitness", | ||||
|                     "iot_dry_lingerie": "Roupa interior", | ||||
|                     "iot_dry_mixed": "Mistos", | ||||
|                     "iot_dry_playsuits": "Macacões", | ||||
|                     "iot_dry_rapid_30": "Rapid 30", | ||||
|                     "iot_dry_rapid_59": "Rápido 59’.", | ||||
|                     "iot_dry_refresh": "Refrescar", | ||||
|                     "iot_dry_regenerates_waterproof": "Regeneração da Impermeabilização (?)", | ||||
|                     "iot_dry_relax_creases": "Menos vincos", | ||||
|                     "iot_dry_shirts": "Camisas", | ||||
|                     "iot_dry_small_load": "Pequena carga", | ||||
|                     "iot_dry_swimsuits_and_bikinis": "Fatos de banho", | ||||
|                     "iot_dry_synthetics": "Sintéticos", | ||||
|                     "iot_dry_synthetic_dry": "Secagem de Sintéticos", | ||||
|                     "iot_dry_tablecloths": "Roupa de mesa", | ||||
|                     "iot_dry_technical_fabrics": "Tecidos técnicos", | ||||
|                     "iot_dry_warm_embrace": "Warm Embrace (?)", | ||||
|                     "iot_dry_wool": "Woolmark", | ||||
|                     "jeans": "Jeans", | ||||
|                     "mix_and_dry": "Mix&Dry (Mista e Seca)", | ||||
|                     "pets": "Animais de estimação", | ||||
|                     "pre_iron": "Pré engomar", | ||||
|                     "rapid_30": "Rapid 30", | ||||
|                     "rapid_45": "Rápido 45 min", | ||||
|                     "rapid_59": "Rápida Perfeita 59 min", | ||||
|                     "refresh": "Refrescar", | ||||
|                     "relax_creases": "Menos vincos", | ||||
|                     "saving_30_min": "ECO 30'", | ||||
|                     "shirts": "Camisas", | ||||
|                     "shoes": "Calçado", | ||||
|                     "small_load": "Pequena carga", | ||||
|                     "soft_care": "Cuidado Suave", | ||||
|                     "sport_plus": "Roupa desportiva", | ||||
|                     "super_easy_iron_misti": "Engomar Super Fácil de mistos", | ||||
|                     "super_easy_iron_xxl": "Engomar Super Fácil XXL", | ||||
|                     "super_fast_cottons": "Algodões super rápido", | ||||
|                     "super_fast_delicates": "Delicados super rápido", | ||||
|                     "synthetics": "Sintéticos", | ||||
|                     "total_care": "Total Care", | ||||
|                     "trainers": "Ténis", | ||||
|                     "ultra_care": "Ultra Care", | ||||
|                     "waterproof_revitalize": "Revitalização da impermeabialização", | ||||
|                     "whites": "Roupa branca", | ||||
|                     "wool": "Secagem de lãs", | ||||
|                     "woolmark": "Woolmark", | ||||
|                     "xxl_load": "Carga XXL", | ||||
|                     "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": { | ||||
| @ -255,6 +409,11 @@ | ||||
|                     "silent": "Noite", | ||||
|                     "silent_care": "Silent Care", | ||||
|                     "smart_ai": "Smart AI", | ||||
|                     "smart_ai_pro": "Smart AI Pro", | ||||
|                     "smart_ai_pro_soil": "Smart AI Pro", | ||||
|                     "smart_ai_rapid": "Smart AI Rapid", | ||||
|                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||
|                     "smart_ai_soil": "Smart AI", | ||||
|                     "special": "especial", | ||||
|                     "special_pw_prz": "especial", | ||||
|                     "steam": "Vapor 75 °C", | ||||
| @ -311,19 +470,20 @@ | ||||
|             "programs_ov": { | ||||
|                 "state": { | ||||
|                     "bakery": "Massas e bolos", | ||||
|                     "bakery_steam": "Pão cozido a vapor", | ||||
|                     "bakery_steam": "Vapor do forno", | ||||
|                     "bottom_heating": "Aquecimento inferior", | ||||
|                     "bottom_heating_fan": "Aquecimento Inferior + Ventilação", | ||||
|                     "bread": "Pão", | ||||
|                     "bread_steam": "Pastelaria cozida a vapor", | ||||
|                     "bread_steam": "Pão no vapor", | ||||
|                     "combi": "Combi", | ||||
|                     "convection_fan": "Convecção + Ventilador", | ||||
|                     "convection_fan_turnspit": "Convecção + Ventilador + Espeto giratório", | ||||
|                     "convection_fan_turnspit": "Espeto com convecção ventilada", | ||||
|                     "conventional": "Estático", | ||||
|                     "conventional_turnspit": "Convecção + Espeto giratório", | ||||
|                     "conventional_turnspit": "Espeto convencional", | ||||
|                     "defrost": "Descongelar", | ||||
|                     "descaling": "Descalcificação", | ||||
|                     "fish": "Peixe", | ||||
|                     "fish_steam": "Peixe cozinhado a vapor", | ||||
|                     "fish_steam": "Peixe no vapor", | ||||
|                     "grill_cata": "Grelhar", | ||||
|                     "grill_fan_cata": "Grelhar com ventilação", | ||||
|                     "grill_fan_pyro": "Grelhar + Ventilação", | ||||
| @ -332,23 +492,23 @@ | ||||
|                     "iot_bread": "Pão", | ||||
|                     "iot_h20_clean": "h2O clean", | ||||
|                     "leavening": "Levedação", | ||||
|                     "low_temp_cooking": "Cozinhar a baixa temperatura", | ||||
|                     "low_temp_cooking_fish": "Cozinhar carne a baixa temperatura - Peixe", | ||||
|                     "low_temp_cooking_fish_steam": "Cozedura a vapor a baixa temperatura - Peixe", | ||||
|                     "low_temp_cooking_meat": "Cozinhar carne a baixa temperatura - Carne", | ||||
|                     "low_temp_cooking_meat_steam": "Cozedura a vapor a baixa temperatura - Carne", | ||||
|                     "low_temp_cooking_steam": "Cozedura a vapor a baixa temperatura", | ||||
|                     "low_temp_cooking": "Cozimento em baixa temperatura", | ||||
|                     "low_temp_cooking_fish": "Cozimento em baixa temperatura Peixe", | ||||
|                     "low_temp_cooking_fish_steam": "Cozimento em baixa temperatura Peixe a vapor", | ||||
|                     "low_temp_cooking_meat": "Cozimento em baixa temperatura Carne", | ||||
|                     "low_temp_cooking_meat_steam": "Cozimento em baixa temperatura Carne no vapor", | ||||
|                     "low_temp_cooking_steam": "Cozimento em baixa temperatura no vapor", | ||||
|                     "meat": "Carne", | ||||
|                     "meat_steam": "Carne cozinhada a vapor", | ||||
|                     "meat_steam": "Vapor de carne", | ||||
|                     "multi_level": "Multinível", | ||||
|                     "paella": "Paella", | ||||
|                     "pasta_and_bakery": "Massas e bolos", | ||||
|                     "pizza": "Pizza", | ||||
|                     "pyrolysis": "Pirólise", | ||||
|                     "pyrolysis_plus": "Pirólise +", | ||||
|                     "red_meat": "Carne vermelha", | ||||
|                     "red_meat_steam": "Carne vermelha cozinhada a vapor", | ||||
|                     "regenerate": "Regeneração", | ||||
|                     "red_meat": "Carne Vermelha", | ||||
|                     "red_meat_steam": "Carne Vermelha no vapor", | ||||
|                     "regenerate": "Regenerar", | ||||
|                     "soft_plus": "Soft+", | ||||
|                     "super_grill": "Super Grelhador", | ||||
|                     "tailor_bake": "Tailor bake", | ||||
| @ -357,9 +517,9 @@ | ||||
|                     "vegetables": "Vegetais", | ||||
|                     "vegetables_cata": "Legumes", | ||||
|                     "vegetables_pyro": "Legumes", | ||||
|                     "water_discharge": "Drenagem de água", | ||||
|                     "white_meat": "Carne branca", | ||||
|                     "white_meat_steam": "Carne branca cozinhada a vapor" | ||||
|                     "water_discharge": "Descarga d'água", | ||||
|                     "white_meat": "Carne Branca", | ||||
|                     "white_meat_steam": "Carne Branca no vapor" | ||||
|                 }, | ||||
|                 "name": "Programa" | ||||
|             }, | ||||
| @ -416,7 +576,7 @@ | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Rápido 20", | ||||
|                     "hqd_quick_30": "Rápido 30", | ||||
|                     "hqd_quick_dry": "Secagem rápida", | ||||
|                     "hqd_quick_dry": "Secagem rápida 30", | ||||
|                     "hqd_quilt": "Colchas", | ||||
|                     "hqd_refresh": "Refrescar", | ||||
|                     "hqd_school_uniform": "Farda da escola", | ||||
| @ -820,7 +980,8 @@ | ||||
|                     "12": "Engomar", | ||||
|                     "13": "Guarda-Roupa pronto", | ||||
|                     "14": "Pronto a usar", | ||||
|                     "15": "Extra seco" | ||||
|                     "15": "Extra seco", | ||||
|                     "11": "Sem secagem" | ||||
|                 }, | ||||
|                 "name": "Nível de secagem" | ||||
|             }, | ||||
| @ -870,6 +1031,40 @@ | ||||
|                     "iot_uv_and_fan": "UV + Ventilação", | ||||
|                     "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": { | ||||
| @ -877,7 +1072,7 @@ | ||||
|                 "name": "Anti-vincos" | ||||
|             }, | ||||
|             "add_dish": { | ||||
|                 "name": "" | ||||
|                 "name": "Adicionar pratos" | ||||
|             }, | ||||
|             "eco_express": { | ||||
|                 "name": "Eco" | ||||
| @ -944,6 +1139,42 @@ | ||||
|             }, | ||||
|             "mute_mode": { | ||||
|                 "name": "Modo Mute" | ||||
|             }, | ||||
|             "extra_rinse_1": { | ||||
|                 "name": "+1 enxaguamento" | ||||
|             }, | ||||
|             "extra_rinse_2": { | ||||
|                 "name": "+2 enxaguamentos" | ||||
|             }, | ||||
|             "extra_rinse_3": { | ||||
|                 "name": "+3 enxaguamentos" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "name": "Autodosagem" | ||||
|             }, | ||||
|             "good_night": { | ||||
|                 "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": { | ||||
| @ -1015,6 +1246,36 @@ | ||||
|             }, | ||||
|             "prewash": { | ||||
|                 "name": "Pré-lavagem" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "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": { | ||||
| @ -1044,11 +1305,58 @@ | ||||
|             }, | ||||
|             "dry_time": { | ||||
|                 "name": "Tempo de secagem" | ||||
|             }, | ||||
|             "steam_level": { | ||||
|                 "name": "Nível de vapor" | ||||
|             }, | ||||
|             "freezer_temp_sel": { | ||||
|                 "name": "Temperatura alvo Congelador" | ||||
|             }, | ||||
|             "fridge_temp_sel": { | ||||
|                 "name": "Temperatura alvo Frigorífico" | ||||
|             } | ||||
|         }, | ||||
|         "button": { | ||||
|             "induction_hob": { | ||||
|                 "name": "Placa de indução" | ||||
|             }, | ||||
|             "start_program": { | ||||
|                 "name": "Programa Início" | ||||
|             }, | ||||
|             "stop_program": { | ||||
|                 "name": "Programa Parar" | ||||
|             } | ||||
|         }, | ||||
|         "climate": { | ||||
|             "air_conditioner": { | ||||
|                 "name": "Ar Condicionado" | ||||
|             }, | ||||
|             "fridge": { | ||||
|                 "name": "Frigorífico", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Modos do frigorífico", | ||||
|                         "state": { | ||||
|                             "auto_set": "Ajuste automático", | ||||
|                             "super_cool": "Super Cool", | ||||
|                             "holiday": "Holiday", | ||||
|                             "no_mode": "Nenhum modo selecionado" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "freezer": { | ||||
|                 "name": "Congelador", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Modos do congelador", | ||||
|                         "state": { | ||||
|                             "auto_set": "Ajuste automático", | ||||
|                             "super_freeze": "Super Freeze", | ||||
|                             "no_mode": "Nenhum modo selecionado" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -9,7 +9,10 @@ | ||||
|                     "4": "Programat", | ||||
|                     "5": "Programat", | ||||
|                     "6": "Eroare", | ||||
|                     "7": "Pregătit" | ||||
|                     "7": "Pregătit", | ||||
|                     "2": "Program în desfășurare", | ||||
|                     "8": "Test", | ||||
|                     "9": "Ciclul de oprire..." | ||||
|                 } | ||||
|             }, | ||||
|             "program_phases_wm": { | ||||
| @ -53,7 +56,9 @@ | ||||
|                     "16": "Răcire", | ||||
|                     "18": "Menținere prospețime", | ||||
|                     "19": "Uscare", | ||||
|                     "20": "Uscare" | ||||
|                     "20": "Uscare", | ||||
|                     "11": "Pregătit", | ||||
|                     "17": "unknown" | ||||
|                 }, | ||||
|                 "name": "Fază" | ||||
|             }, | ||||
| @ -79,7 +84,8 @@ | ||||
|                     "12": "Călcare", | ||||
|                     "13": "Șifonier pregătit", | ||||
|                     "14": "Gata de purtat", | ||||
|                     "15": "Uscare suplimentară" | ||||
|                     "15": "Uscare suplimentară", | ||||
|                     "11": "Fără uscare" | ||||
|                 }, | ||||
|                 "name": "Nivel de uscare" | ||||
|             }, | ||||
| @ -165,6 +171,154 @@ | ||||
|                     "5": "Ventilare", | ||||
|                     "6": "Ventilare" | ||||
|                 } | ||||
|             }, | ||||
|             "programs_td": { | ||||
|                 "state": { | ||||
|                     "active_dry": "Uscare activă", | ||||
|                     "allergy_care": "Anti-alergic", | ||||
|                     "all_in_one": "Tot în unu", | ||||
|                     "antiallergy": "Anti-alergic", | ||||
|                     "anti_odours": "Anti mirosuri", | ||||
|                     "auto_care": "Îngrijire automată", | ||||
|                     "baby": "Haine copii", | ||||
|                     "bed_quilt": "Pilote", | ||||
|                     "care_30": "Îngrijire 30", | ||||
|                     "care_45": "Îngrijire 45", | ||||
|                     "care_59": "Îngrijire 59", | ||||
|                     "coloured": "Colorate", | ||||
|                     "daily_45_min": "ZILNIC 45'", | ||||
|                     "daily_perfect_59_min": "ZILNIC PERFECT 59'", | ||||
|                     "darks_and_coloured": "Țesături închise & colorate", | ||||
|                     "delicates": "Delicate", | ||||
|                     "duvet": "Pătură", | ||||
|                     "eco": "Bumbac Eco", | ||||
|                     "ecospeed_cottons": "Bumbac Ecospeed", | ||||
|                     "ecospeed_delicates": "Delicate Ecospeed", | ||||
|                     "ecospeed_mixed": "Țesături mixte Ecospeed", | ||||
|                     "extra_hygiene": "EXTRA IGIENIZARE", | ||||
|                     "fitness": "Fitness", | ||||
|                     "fresh_care": "Îngrijire proaspătă", | ||||
|                     "genius": "Genius", | ||||
|                     "hqd_baby_care": "Baby Care", | ||||
|                     "hqd_bath_towel": "Prosoape", | ||||
|                     "hqd_bed_sheets": "Cearceafuri", | ||||
|                     "hqd_bulky": "Articole voluminoase", | ||||
|                     "hqd_casual": "Articole obișnuite", | ||||
|                     "hqd_cold_wind_30": "Vânt rece 30 minute", | ||||
|                     "hqd_cold_wind_timing": "Vânt rece ", | ||||
|                     "hqd_cotton": "Bumbac", | ||||
|                     "hqd_curtain": "Perdele", | ||||
|                     "hqd_delicate": "Delicate", | ||||
|                     "hqd_diaper": "Scutece", | ||||
|                     "hqd_duvet": "Cuvertură", | ||||
|                     "hqd_feather": "Geci", | ||||
|                     "hqd_hot_wind_timing": "Aer cald", | ||||
|                     "hqd_hygienic": "Igienizare", | ||||
|                     "hqd_i_refresh": "I-Refresh", | ||||
|                     "hqd_i_refresh_pro": "I-Refresh Pro", | ||||
|                     "hqd_jacket": "Jachete", | ||||
|                     "hqd_jeans": "Blugi", | ||||
|                     "hqd_luxury": "Luxury", | ||||
|                     "hqd_mix": "Mixte", | ||||
|                     "hqd_night_dry": "Uscare peste noapte", | ||||
|                     "hqd_outdoor": "Outdoor", | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Rapid 20", | ||||
|                     "hqd_quick_30": "Rapid 30", | ||||
|                     "hqd_quick_dry": "Uscare rapidă 30", | ||||
|                     "hqd_quilt": "Pilote", | ||||
|                     "hqd_refresh": "Reîmprospătare", | ||||
|                     "hqd_school_uniform": "Uniformă școlară", | ||||
|                     "hqd_shirt": "Cămăși", | ||||
|                     "hqd_shoes": "Încălțăminte", | ||||
|                     "hqd_silk": "Mătase", | ||||
|                     "hqd_sports": "Articole sportive", | ||||
|                     "hqd_synthetics": "Sintetice", | ||||
|                     "hqd_timer": "Cronometrat", | ||||
|                     "hqd_towel": "Prosoape", | ||||
|                     "hqd_underwear": "Lenjerie", | ||||
|                     "hqd_warm_up": "Încălzire", | ||||
|                     "hqd_wool": "Lână", | ||||
|                     "hqd_working_suit": "Îmbrăcăminte de lucru", | ||||
|                     "hygiene": "Igienizare", | ||||
|                     "iot_checkup": "Verificare", | ||||
|                     "iot_dry_anti_mites": "Anti-acarieni", | ||||
|                     "iot_dry_baby": "Haine copii", | ||||
|                     "iot_dry_backpacks": "Rucsaci", | ||||
|                     "iot_dry_bathrobe": "Halat de baie", | ||||
|                     "iot_dry_bed_linen": "Lenjerie de pat", | ||||
|                     "iot_dry_bed_quilt": "Pilote", | ||||
|                     "iot_dry_cotton": "Bumbac", | ||||
|                     "iot_dry_cuddly_toys": "Jucării", | ||||
|                     "iot_dry_curtains": "Perdele", | ||||
|                     "iot_dry_dehumidifier": "Dispozitiv pentru îndepărtarea umidității", | ||||
|                     "iot_dry_delicates": "Delicate", | ||||
|                     "iot_dry_delicate_tablecloths": "Fețe de masă delicate", | ||||
|                     "iot_dry_denim_jeans": "Denim - Blugi", | ||||
|                     "iot_dry_down_jacket": "Jacket", | ||||
|                     "iot_dry_duvet": "Pătură", | ||||
|                     "iot_dry_easy_iron_cotton": "Călcare Super Easy", | ||||
|                     "iot_dry_easy_iron_synthetics": "Călcare super ușoară a rufelor sintetice", | ||||
|                     "iot_dry_gym_fit": "Articole sportive - Fitness", | ||||
|                     "iot_dry_lingerie": "Lenjerie", | ||||
|                     "iot_dry_mixed": "Mixte", | ||||
|                     "iot_dry_playsuits": "Haine de joacă", | ||||
|                     "iot_dry_rapid_30": "Rapid 30", | ||||
|                     "iot_dry_rapid_59": "Rapid 59'.", | ||||
|                     "iot_dry_refresh": "Reîmprospătare", | ||||
|                     "iot_dry_regenerates_waterproof": "Rezistente la apă", | ||||
|                     "iot_dry_relax_creases": "Reducere șifonare", | ||||
|                     "iot_dry_shirts": "Cămăși", | ||||
|                     "iot_dry_small_load": "Încărcare mică", | ||||
|                     "iot_dry_swimsuits_and_bikinis": "Costume de baie", | ||||
|                     "iot_dry_synthetics": "Sintetice", | ||||
|                     "iot_dry_synthetic_dry": "Uscare material sintetic", | ||||
|                     "iot_dry_tablecloths": "Fețe de masă", | ||||
|                     "iot_dry_technical_fabrics": "Țesături industriale", | ||||
|                     "iot_dry_warm_embrace": "Îmbrățișare caldă", | ||||
|                     "iot_dry_wool": "Woolmark", | ||||
|                     "jeans": "Jeans", | ||||
|                     "mix_and_dry": "Mix&Uscare", | ||||
|                     "pets": "Animale de companie", | ||||
|                     "pre_iron": "Pre-Călcare", | ||||
|                     "rapid_30": "Rapid 30", | ||||
|                     "rapid_45": "Rapid 45 min", | ||||
|                     "rapid_59": "Rapid Perfect 59 Min", | ||||
|                     "refresh": "Reîmprospătare", | ||||
|                     "relax_creases": "Reducere șifonare", | ||||
|                     "saving_30_min": "ECO 30'", | ||||
|                     "shirts": "Cămăși", | ||||
|                     "shoes": "Încălțăminte", | ||||
|                     "small_load": "Încărcare mică", | ||||
|                     "soft_care": "Îngrijire blândă", | ||||
|                     "sport_plus": "Haine sport", | ||||
|                     "super_easy_iron_misti": "Călcare super ușoară a rufelor cu fibre mixte", | ||||
|                     "super_easy_iron_xxl": "Călcare super ușoară a rufelor XXL", | ||||
|                     "super_fast_cottons": "Bumbac Super Rapid", | ||||
|                     "super_fast_delicates": "Delicate Super Rapid", | ||||
|                     "synthetics": "Sintetice", | ||||
|                     "total_care": "Total Care", | ||||
|                     "trainers": "Încălțăminte sport", | ||||
|                     "ultra_care": "Ultra Care", | ||||
|                     "waterproof_revitalize": "Revitalizare impermeabile", | ||||
|                     "whites": "Albe", | ||||
|                     "wool": "Uscare lână", | ||||
|                     "woolmark": "Woolmark", | ||||
|                     "xxl_load": "Încărcare XXL", | ||||
|                     "zoom_59": "Zoom 59" | ||||
|                 } | ||||
|             }, | ||||
|             "room_temperature": { | ||||
|                 "name": "Temperatura camerei" | ||||
|             }, | ||||
|             "humidity": { | ||||
|                 "name": "Umiditate" | ||||
|             }, | ||||
|             "freezer_temp": { | ||||
|                 "name": "Temperatura congelatorului" | ||||
|             }, | ||||
|             "fridge_temp": { | ||||
|                 "name": "Temperatura frigiderului" | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -255,6 +409,11 @@ | ||||
|                     "silent": "Noapte", | ||||
|                     "silent_care": "Silent Care", | ||||
|                     "smart_ai": "Smart AI", | ||||
|                     "smart_ai_pro": "Smart AI Pro", | ||||
|                     "smart_ai_pro_soil": "Smart AI Pro", | ||||
|                     "smart_ai_rapid": "Smart AI Rapid", | ||||
|                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||
|                     "smart_ai_soil": "Smart AI", | ||||
|                     "special": "special", | ||||
|                     "special_pw_prz": "special", | ||||
|                     "steam": "Abur 75 °C", | ||||
| @ -310,12 +469,13 @@ | ||||
|             }, | ||||
|             "programs_ov": { | ||||
|                 "state": { | ||||
|                     "bakery": "Paste și patiserie", | ||||
|                     "bakery_steam": "Pâine gătită la abur", | ||||
|                     "bakery": "Paste și produse de patiserie", | ||||
|                     "bakery_steam": "În cuptor la abur", | ||||
|                     "bottom_heating": "Încălzire de jos", | ||||
|                     "bottom_heating_fan": "Încălzire De Jos + Ventilație", | ||||
|                     "bread": "Pâine", | ||||
|                     "bread_steam": "Produse de patiserie gătite la abur", | ||||
|                     "bread_steam": "Pâine gătită la abur", | ||||
|                     "combi": "Combi", | ||||
|                     "convection_fan": "Convecție și ventilație", | ||||
|                     "convection_fan_turnspit": "Convecție + Ventilator + Rotisor", | ||||
|                     "conventional": "Convențional", | ||||
| @ -334,9 +494,9 @@ | ||||
|                     "leavening": "Dospire", | ||||
|                     "low_temp_cooking": "Gătire la temperatură scăzută", | ||||
|                     "low_temp_cooking_fish": "Gătire la temperatură scăzută - Pește", | ||||
|                     "low_temp_cooking_fish_steam": "Gătitul cu abur la temperatură scăzută - Pește", | ||||
|                     "low_temp_cooking_fish_steam": "Gătitul la temperaturi scăzute - Pește gătit la abur", | ||||
|                     "low_temp_cooking_meat": "Gătire la temperatură scăzută - Carne", | ||||
|                     "low_temp_cooking_meat_steam": "Gătitul la abur la temperatură scăzută - carne", | ||||
|                     "low_temp_cooking_meat_steam": "Gătitul la temperaturi scăzute - Carne gătită la abur", | ||||
|                     "low_temp_cooking_steam": "Gătitul la abur la temperaturi scăzute", | ||||
|                     "meat": "Carne", | ||||
|                     "meat_steam": "Carne gătită la abur", | ||||
| @ -357,7 +517,7 @@ | ||||
|                     "vegetables": "Legume", | ||||
|                     "vegetables_cata": "Legume", | ||||
|                     "vegetables_pyro": "Legume", | ||||
|                     "water_discharge": "Scurgerea apei", | ||||
|                     "water_discharge": "Evacuare apă", | ||||
|                     "white_meat": "Carne albă", | ||||
|                     "white_meat_steam": "Carne albă gătită la abur" | ||||
|                 }, | ||||
| @ -416,7 +576,7 @@ | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Rapid 20", | ||||
|                     "hqd_quick_30": "Rapid 30", | ||||
|                     "hqd_quick_dry": "Uscare rapidă", | ||||
|                     "hqd_quick_dry": "Uscare rapidă 30", | ||||
|                     "hqd_quilt": "Pilote", | ||||
|                     "hqd_refresh": "Reîmprospătare", | ||||
|                     "hqd_school_uniform": "Uniformă școlară", | ||||
| @ -820,7 +980,8 @@ | ||||
|                     "12": "Călcare", | ||||
|                     "13": "Șifonier pregătit", | ||||
|                     "14": "Gata de purtat", | ||||
|                     "15": "Uscare suplimentară" | ||||
|                     "15": "Uscare suplimentară", | ||||
|                     "11": "Fără uscare" | ||||
|                 }, | ||||
|                 "name": "Nivel de uscare" | ||||
|             }, | ||||
| @ -870,6 +1031,40 @@ | ||||
|                     "iot_uv_and_fan": "UV + ventilator", | ||||
|                     "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": { | ||||
| @ -877,7 +1072,7 @@ | ||||
|                 "name": "Antișifonare" | ||||
|             }, | ||||
|             "add_dish": { | ||||
|                 "name": "" | ||||
|                 "name": "Adaugă vase" | ||||
|             }, | ||||
|             "eco_express": { | ||||
|                 "name": "Eco" | ||||
| @ -944,6 +1139,42 @@ | ||||
|             }, | ||||
|             "mute_mode": { | ||||
|                 "name": "Modul mut" | ||||
|             }, | ||||
|             "extra_rinse_1": { | ||||
|                 "name": "+1 clătire" | ||||
|             }, | ||||
|             "extra_rinse_2": { | ||||
|                 "name": "+2 clătiri" | ||||
|             }, | ||||
|             "extra_rinse_3": { | ||||
|                 "name": "+3 clătiri" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "name": "Autodozare" | ||||
|             }, | ||||
|             "good_night": { | ||||
|                 "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": { | ||||
| @ -1015,6 +1246,36 @@ | ||||
|             }, | ||||
|             "prewash": { | ||||
|                 "name": "Prespălare" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "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": { | ||||
| @ -1044,11 +1305,58 @@ | ||||
|             }, | ||||
|             "dry_time": { | ||||
|                 "name": "Timp de uscare" | ||||
|             }, | ||||
|             "steam_level": { | ||||
|                 "name": "Nivel abur" | ||||
|             }, | ||||
|             "freezer_temp_sel": { | ||||
|                 "name": "Temperatură vizată Congelator" | ||||
|             }, | ||||
|             "fridge_temp_sel": { | ||||
|                 "name": "Temperatură vizată Frigider" | ||||
|             } | ||||
|         }, | ||||
|         "button": { | ||||
|             "induction_hob": { | ||||
|                 "name": "Plita cu inducție" | ||||
|             }, | ||||
|             "start_program": { | ||||
|                 "name": "Program Pornire" | ||||
|             }, | ||||
|             "stop_program": { | ||||
|                 "name": "Program Oprire" | ||||
|             } | ||||
|         }, | ||||
|         "climate": { | ||||
|             "air_conditioner": { | ||||
|                 "name": "Aer condiționat" | ||||
|             }, | ||||
|             "fridge": { | ||||
|                 "name": "Frigider", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Moduri frigider", | ||||
|                         "state": { | ||||
|                             "auto_set": "Setare automată", | ||||
|                             "super_cool": "Super Cool", | ||||
|                             "holiday": "Holiday", | ||||
|                             "no_mode": "Niciun mod selectat" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "freezer": { | ||||
|                 "name": "Congelator", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Moduri de congelare", | ||||
|                         "state": { | ||||
|                             "auto_set": "Setare automată", | ||||
|                             "super_freeze": "Super Freeze", | ||||
|                             "no_mode": "Niciun mod selectat" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -9,7 +9,10 @@ | ||||
|                     "4": "Запланировано", | ||||
|                     "5": "Запланировано", | ||||
|                     "6": "Ошибка", | ||||
|                     "7": "Готово" | ||||
|                     "7": "Готово", | ||||
|                     "2": "Выполнение программы", | ||||
|                     "8": "Test", | ||||
|                     "9": "Остановка цикла..." | ||||
|                 } | ||||
|             }, | ||||
|             "program_phases_wm": { | ||||
| @ -53,7 +56,9 @@ | ||||
|                     "16": "Охлаждение", | ||||
|                     "18": "Keep Fresh (Сохранение свежести)", | ||||
|                     "19": "Сушка", | ||||
|                     "20": "Сушка" | ||||
|                     "20": "Сушка", | ||||
|                     "11": "Готово", | ||||
|                     "17": "unknown" | ||||
|                 }, | ||||
|                 "name": "Фаза" | ||||
|             }, | ||||
| @ -79,7 +84,8 @@ | ||||
|                     "12": "Под утюг", | ||||
|                     "13": "Готово в шкаф", | ||||
|                     "14": "Готово для надевания", | ||||
|                     "15": "Экстра сушка" | ||||
|                     "15": "Экстра сушка", | ||||
|                     "11": "Без сушки" | ||||
|                 }, | ||||
|                 "name": "Уровень сухости" | ||||
|             }, | ||||
| @ -165,6 +171,154 @@ | ||||
|                     "5": "Вентилятор", | ||||
|                     "6": "Вентилятор" | ||||
|                 } | ||||
|             }, | ||||
|             "programs_td": { | ||||
|                 "state": { | ||||
|                     "active_dry": "Активная сушка", | ||||
|                     "allergy_care": "Противоаллергическое действие", | ||||
|                     "all_in_one": "Все в одном", | ||||
|                     "antiallergy": "Противоаллергическое действие", | ||||
|                     "anti_odours": "Против запаха", | ||||
|                     "auto_care": "Автоуход", | ||||
|                     "baby": "Детская одежда", | ||||
|                     "bed_quilt": "Стеганые и пуховые одеяла", | ||||
|                     "care_30": "Уход 30", | ||||
|                     "care_45": "Уход 45", | ||||
|                     "care_59": "Уход 59", | ||||
|                     "coloured": "цветные", | ||||
|                     "daily_45_min": "ЕЖЕДНЕВНАЯ 45'", | ||||
|                     "daily_perfect_59_min": "ЕЖЕДНЕВНАЯ ИДЕАЛЬНАЯ 59'", | ||||
|                     "darks_and_coloured": "Темные и Цветные", | ||||
|                     "delicates": "Деликатные", | ||||
|                     "duvet": "Пуховое одеяло", | ||||
|                     "eco": "Эко хлопок", | ||||
|                     "ecospeed_cottons": "Эко скорость хлопок", | ||||
|                     "ecospeed_delicates": "Эко скорость деликатные", | ||||
|                     "ecospeed_mixed": "Эко скорость смешанные", | ||||
|                     "extra_hygiene": "ЭКСТРА ГИГИЕНА", | ||||
|                     "fitness": "Фитнес", | ||||
|                     "fresh_care": "Свежесть", | ||||
|                     "genius": "Genius", | ||||
|                     "hqd_baby_care": "Baby Care", | ||||
|                     "hqd_bath_towel": "Полотенца", | ||||
|                     "hqd_bed_sheets": "Простыни", | ||||
|                     "hqd_bulky": "Объемные изделия", | ||||
|                     "hqd_casual": "Повседневная одежда", | ||||
|                     "hqd_cold_wind_30": "Прохладный обдув 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": "I-Refresh", | ||||
|                     "hqd_i_refresh_pro": "I-Refresh Pro", | ||||
|                     "hqd_jacket": "Куртки", | ||||
|                     "hqd_jeans": "Джинсы", | ||||
|                     "hqd_luxury": "Люксовые изделия", | ||||
|                     "hqd_mix": "Смешанные ткани", | ||||
|                     "hqd_night_dry": "Ночная сушка", | ||||
|                     "hqd_outdoor": "Outdoor", | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Быстрая 20", | ||||
|                     "hqd_quick_30": "Быстрая 30", | ||||
|                     "hqd_quick_dry": "Быстрая сушка 30", | ||||
|                     "hqd_quilt": "Стеганые одеяла", | ||||
|                     "hqd_refresh": "Освежение", | ||||
|                     "hqd_school_uniform": "Школьная форма", | ||||
|                     "hqd_shirt": "Рубашки", | ||||
|                     "hqd_shoes": "Обувь", | ||||
|                     "hqd_silk": "Шелк", | ||||
|                     "hqd_sports": "Спортивная одежда", | ||||
|                     "hqd_synthetics": "Синтетика", | ||||
|                     "hqd_timer": "Timed", | ||||
|                     "hqd_towel": "Полотенца", | ||||
|                     "hqd_underwear": "Нижнее белье", | ||||
|                     "hqd_warm_up": "Подогрев", | ||||
|                     "hqd_wool": "Шерсть", | ||||
|                     "hqd_working_suit": "Рабочая одежда", | ||||
|                     "hygiene": "Гигиена", | ||||
|                     "iot_checkup": "Проверка", | ||||
|                     "iot_dry_anti_mites": "Противоклещевая обработка", | ||||
|                     "iot_dry_baby": "Детская одежда", | ||||
|                     "iot_dry_backpacks": "Рюкзаки", | ||||
|                     "iot_dry_bathrobe": "Банные халаты", | ||||
|                     "iot_dry_bed_linen": "Постельное белье", | ||||
|                     "iot_dry_bed_quilt": "Стеганые и пуховые одеяла", | ||||
|                     "iot_dry_cotton": "Хлопок", | ||||
|                     "iot_dry_cuddly_toys": "Мягкие игрушки", | ||||
|                     "iot_dry_curtains": "Шторы", | ||||
|                     "iot_dry_dehumidifier": "Влагопоглотитель", | ||||
|                     "iot_dry_delicates": "Деликатные", | ||||
|                     "iot_dry_delicate_tablecloths": "Деликатные скатерти", | ||||
|                     "iot_dry_denim_jeans": "Деним – джинсы", | ||||
|                     "iot_dry_down_jacket": "Куртки", | ||||
|                     "iot_dry_duvet": "Пуховое одеяло", | ||||
|                     "iot_dry_easy_iron_cotton": "Сверхлегкая глажка", | ||||
|                     "iot_dry_easy_iron_synthetics": "Суперудобная глажка синтетики", | ||||
|                     "iot_dry_gym_fit": "Одежда для спортзала – Фитнес", | ||||
|                     "iot_dry_lingerie": "Белье", | ||||
|                     "iot_dry_mixed": "Смешанные ткани", | ||||
|                     "iot_dry_playsuits": "Пляжные костюмы", | ||||
|                     "iot_dry_rapid_30": "Быстрая 30'", | ||||
|                     "iot_dry_rapid_59": "Быстрая 59 мин.", | ||||
|                     "iot_dry_refresh": "Освежить", | ||||
|                     "iot_dry_regenerates_waterproof": "Восстановление водонепроницаемых тканей", | ||||
|                     "iot_dry_relax_creases": "Уменьшение образования складок", | ||||
|                     "iot_dry_shirts": "Рубашки", | ||||
|                     "iot_dry_small_load": "Малая загрузка", | ||||
|                     "iot_dry_swimsuits_and_bikinis": "Купальники", | ||||
|                     "iot_dry_synthetics": "Синтетика", | ||||
|                     "iot_dry_synthetic_dry": "Сушка синтетики", | ||||
|                     "iot_dry_tablecloths": "Скатерти", | ||||
|                     "iot_dry_technical_fabrics": "Технические ткани", | ||||
|                     "iot_dry_warm_embrace": "Обработка теплом", | ||||
|                     "iot_dry_wool": "Шерсть", | ||||
|                     "jeans": "джинсы", | ||||
|                     "mix_and_dry": "Смешанные+сушка", | ||||
|                     "pets": "Животные", | ||||
|                     "pre_iron": "Предварительная глажка", | ||||
|                     "rapid_30": "Быстрая 30'", | ||||
|                     "rapid_45": "Быстрая 45 мин", | ||||
|                     "rapid_59": "Быстрая идеальная 59 мин.", | ||||
|                     "refresh": "Освежить", | ||||
|                     "relax_creases": "Уменьшение образования складок", | ||||
|                     "saving_30_min": "ЭКО 30'", | ||||
|                     "shirts": "Рубашки", | ||||
|                     "shoes": "Обувь", | ||||
|                     "small_load": "Малая загрузка", | ||||
|                     "soft_care": "Деликатный уход", | ||||
|                     "sport_plus": "Спорт", | ||||
|                     "super_easy_iron_misti": "Суперлегкая глажка смешанные", | ||||
|                     "super_easy_iron_xxl": "Суперлегкая глажка XXL", | ||||
|                     "super_fast_cottons": "Супер-БЫСТРАЯ хлопок", | ||||
|                     "super_fast_delicates": "Супер-БЫСТРАЯ деликатные", | ||||
|                     "synthetics": "Синтетика", | ||||
|                     "total_care": "Общии уход", | ||||
|                     "trainers": "Спортивная обувь", | ||||
|                     "ultra_care": "Ultra Care", | ||||
|                     "waterproof_revitalize": "Восстановление водонепроницаемости", | ||||
|                     "whites": "Белые ткани", | ||||
|                     "wool": "Сушка шерсти", | ||||
|                     "woolmark": "Шерсть", | ||||
|                     "xxl_load": "Объемные вещи", | ||||
|                     "zoom_59": "Zoom 59 (Зум 59)" | ||||
|                 } | ||||
|             }, | ||||
|             "room_temperature": { | ||||
|                 "name": "Комнатная температура" | ||||
|             }, | ||||
|             "humidity": { | ||||
|                 "name": "Влажность" | ||||
|             }, | ||||
|             "freezer_temp": { | ||||
|                 "name": "Температура в морозильном отделении" | ||||
|             }, | ||||
|             "fridge_temp": { | ||||
|                 "name": "Температура в холодильнике" | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -255,6 +409,11 @@ | ||||
|                     "silent": "Ночь", | ||||
|                     "silent_care": "Silent Care", | ||||
|                     "smart_ai": "Smart AI", | ||||
|                     "smart_ai_pro": "Smart AI Pro", | ||||
|                     "smart_ai_pro_soil": "Smart AI Pro", | ||||
|                     "smart_ai_rapid": "Smart AI Rapid", | ||||
|                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||
|                     "smart_ai_soil": "Smart AI", | ||||
|                     "special": "специальные", | ||||
|                     "special_pw_prz": "специальные", | ||||
|                     "steam": "пар 75°C", | ||||
| @ -311,11 +470,12 @@ | ||||
|             "programs_ov": { | ||||
|                 "state": { | ||||
|                     "bakery": "Паста и выпечка", | ||||
|                     "bakery_steam": "Хлеб, испеченный на пару", | ||||
|                     "bakery_steam": "Пар в духовом шкафу", | ||||
|                     "bottom_heating": "Нижний элемент", | ||||
|                     "bottom_heating_fan": "Нижний элемент + вентилятор", | ||||
|                     "bread": "Хлеб", | ||||
|                     "bread_steam": "Выпечка, приготовленная на пару", | ||||
|                     "bread_steam": "Хлеб, испеченный на пару", | ||||
|                     "combi": "Combi", | ||||
|                     "convection_fan": "Верхний и нижний нагрев с вентилятором", | ||||
|                     "convection_fan_turnspit": "Обыкновенная духовка + вентилятор + вертел", | ||||
|                     "conventional": "Верхний и нижний нагрев", | ||||
| @ -323,7 +483,7 @@ | ||||
|                     "defrost": "Размораживание", | ||||
|                     "descaling": "Удаление накипи", | ||||
|                     "fish": "Рыба", | ||||
|                     "fish_steam": "Рыба, приготовленная на пару", | ||||
|                     "fish_steam": "Рыба на пару", | ||||
|                     "grill_cata": "Гриль", | ||||
|                     "grill_fan_cata": "Гриль с вентилятором", | ||||
|                     "grill_fan_pyro": "Гриль + вентилятор", | ||||
| @ -334,12 +494,12 @@ | ||||
|                     "leavening": "Заквашивание", | ||||
|                     "low_temp_cooking": "Приготовление при низкой температуре", | ||||
|                     "low_temp_cooking_fish": "Приготовление при низкой температуре - Рыба", | ||||
|                     "low_temp_cooking_fish_steam": "Приготовление при низкой температуре на пару - Рыба", | ||||
|                     "low_temp_cooking_fish_steam": "Приготовление при низкой температуре - Рыба на пару", | ||||
|                     "low_temp_cooking_meat": "Приготовление при низкой температуре - Мясо", | ||||
|                     "low_temp_cooking_meat_steam": "Приготовление при низкой температуре на пару - Мясо", | ||||
|                     "low_temp_cooking_meat_steam": "Приготовление при низкой температуре - Мясо на пару", | ||||
|                     "low_temp_cooking_steam": "Приготовление при низкой температуре на пару", | ||||
|                     "meat": "Мясо", | ||||
|                     "meat_steam": "Мясо, приготовленное на пару", | ||||
|                     "meat_steam": "Мясо на пару", | ||||
|                     "multi_level": "Многоуровневое приготовление", | ||||
|                     "paella": "Paella", | ||||
|                     "pasta_and_bakery": "Паста и выпечка", | ||||
| @ -347,7 +507,7 @@ | ||||
|                     "pyrolysis": "Пиролиз", | ||||
|                     "pyrolysis_plus": "Пиролиз +", | ||||
|                     "red_meat": "Красное мясо", | ||||
|                     "red_meat_steam": "Красное мясо, приготовленное на пару", | ||||
|                     "red_meat_steam": "Красное мясо на пару", | ||||
|                     "regenerate": "Регенерация", | ||||
|                     "soft_plus": "Soft+", | ||||
|                     "super_grill": "Супер-гриль", | ||||
| @ -357,9 +517,9 @@ | ||||
|                     "vegetables": "Овощи", | ||||
|                     "vegetables_cata": "Овощи", | ||||
|                     "vegetables_pyro": "Овощи", | ||||
|                     "water_discharge": "Водоотвод", | ||||
|                     "water_discharge": "Слив воды", | ||||
|                     "white_meat": "Белое мясо", | ||||
|                     "white_meat_steam": "Белое мясо, приготовленное на пару" | ||||
|                     "white_meat_steam": "Белое мясо на пару" | ||||
|                 }, | ||||
|                 "name": "Программа" | ||||
|             }, | ||||
| @ -416,7 +576,7 @@ | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Быстрая 20", | ||||
|                     "hqd_quick_30": "Быстрая 30", | ||||
|                     "hqd_quick_dry": "Быстрая сушка", | ||||
|                     "hqd_quick_dry": "Быстрая сушка 30", | ||||
|                     "hqd_quilt": "Стеганые одеяла", | ||||
|                     "hqd_refresh": "Освежение", | ||||
|                     "hqd_school_uniform": "Школьная форма", | ||||
| @ -820,7 +980,8 @@ | ||||
|                     "12": "Под утюг", | ||||
|                     "13": "Готово в шкаф", | ||||
|                     "14": "Готово для надевания", | ||||
|                     "15": "Экстра сушка" | ||||
|                     "15": "Экстра сушка", | ||||
|                     "11": "Без сушки" | ||||
|                 }, | ||||
|                 "name": "Уровень сухости" | ||||
|             }, | ||||
| @ -870,6 +1031,40 @@ | ||||
|                     "iot_uv_and_fan": "УФ + Вентилятор", | ||||
|                     "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": { | ||||
| @ -877,7 +1072,7 @@ | ||||
|                 "name": "Противосминание" | ||||
|             }, | ||||
|             "add_dish": { | ||||
|                 "name": "" | ||||
|                 "name": "Добавьте посуду" | ||||
|             }, | ||||
|             "eco_express": { | ||||
|                 "name": "Эко" | ||||
| @ -944,6 +1139,42 @@ | ||||
|             }, | ||||
|             "mute_mode": { | ||||
|                 "name": "Беззвучный режим" | ||||
|             }, | ||||
|             "extra_rinse_1": { | ||||
|                 "name": "+1 полоскание" | ||||
|             }, | ||||
|             "extra_rinse_2": { | ||||
|                 "name": "+2 полоскания" | ||||
|             }, | ||||
|             "extra_rinse_3": { | ||||
|                 "name": "+3 полоскания" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Акваплюс" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "name": "Автодозирование" | ||||
|             }, | ||||
|             "good_night": { | ||||
|                 "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": { | ||||
| @ -1015,6 +1246,36 @@ | ||||
|             }, | ||||
|             "prewash": { | ||||
|                 "name": "предварительная мойка" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Акваплюс" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "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": { | ||||
| @ -1044,11 +1305,58 @@ | ||||
|             }, | ||||
|             "dry_time": { | ||||
|                 "name": "Время сушки" | ||||
|             }, | ||||
|             "steam_level": { | ||||
|                 "name": "Уровень пара" | ||||
|             }, | ||||
|             "freezer_temp_sel": { | ||||
|                 "name": "Заданная температура Морозильник" | ||||
|             }, | ||||
|             "fridge_temp_sel": { | ||||
|                 "name": "Заданная температура Холодильник" | ||||
|             } | ||||
|         }, | ||||
|         "button": { | ||||
|             "induction_hob": { | ||||
|                 "name": "Индукционная варочная панель" | ||||
|             }, | ||||
|             "start_program": { | ||||
|                 "name": "Программа Начать" | ||||
|             }, | ||||
|             "stop_program": { | ||||
|                 "name": "Программа Стоп" | ||||
|             } | ||||
|         }, | ||||
|         "climate": { | ||||
|             "air_conditioner": { | ||||
|                 "name": "Кондиционер воздуха" | ||||
|             }, | ||||
|             "fridge": { | ||||
|                 "name": "Холодильник", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Режимы холодильника", | ||||
|                         "state": { | ||||
|                             "auto_set": "Автоматическая установка", | ||||
|                             "super_cool": "Super Cool", | ||||
|                             "holiday": "Holiday", | ||||
|                             "no_mode": "Режим не выбран" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "freezer": { | ||||
|                 "name": "Морозильник", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Режимы морозильного отделения", | ||||
|                         "state": { | ||||
|                             "auto_set": "Автоматическая установка", | ||||
|                             "super_freeze": "Super Freeze", | ||||
|                             "no_mode": "Режим не выбран" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -9,7 +9,10 @@ | ||||
|                     "4": "Naplánované", | ||||
|                     "5": "Naplánované", | ||||
|                     "6": "Chyba", | ||||
|                     "7": "Pripravené" | ||||
|                     "7": "Pripravené", | ||||
|                     "2": "Program beží", | ||||
|                     "8": "Test", | ||||
|                     "9": "Cyklus zastavenia…" | ||||
|                 } | ||||
|             }, | ||||
|             "program_phases_wm": { | ||||
| @ -53,7 +56,9 @@ | ||||
|                     "16": "Schladiť", | ||||
|                     "18": "Uchovať svieže", | ||||
|                     "19": "Sušenie", | ||||
|                     "20": "Sušenie" | ||||
|                     "20": "Sušenie", | ||||
|                     "11": "Pripravené", | ||||
|                     "17": "unknown" | ||||
|                 }, | ||||
|                 "name": "Fáza" | ||||
|             }, | ||||
| @ -79,7 +84,8 @@ | ||||
|                     "12": "Žehlenie", | ||||
|                     "13": "Šatník pripravený", | ||||
|                     "14": "Hotové na nosenie", | ||||
|                     "15": "Extra sušenie" | ||||
|                     "15": "Extra sušenie", | ||||
|                     "11": "Bez sušenia" | ||||
|                 }, | ||||
|                 "name": "Úroveň sušenia" | ||||
|             }, | ||||
| @ -165,6 +171,154 @@ | ||||
|                     "5": "Ventilátor", | ||||
|                     "6": "Ventilátor" | ||||
|                 } | ||||
|             }, | ||||
|             "programs_td": { | ||||
|                 "state": { | ||||
|                     "active_dry": "Aktívne sušenie", | ||||
|                     "allergy_care": "Antialergický", | ||||
|                     "all_in_one": "All in One", | ||||
|                     "antiallergy": "Antialergický", | ||||
|                     "anti_odours": "Oživenie", | ||||
|                     "auto_care": "Automatická starostlivosť", | ||||
|                     "baby": "Detská", | ||||
|                     "bed_quilt": "Posteľná prikrývka", | ||||
|                     "care_30": "Starostlivosť 30", | ||||
|                     "care_45": "Starostlivosť 45", | ||||
|                     "care_59": "Starostlivosť 59", | ||||
|                     "coloured": "Farebná", | ||||
|                     "daily_45_min": "DENNY 45'", | ||||
|                     "daily_perfect_59_min": "DAILY PERFECT 59'", | ||||
|                     "darks_and_coloured": "Tmavá a farebná", | ||||
|                     "delicates": "Jemné", | ||||
|                     "duvet": "Prikrývky", | ||||
|                     "eco": "Eco bavlna", | ||||
|                     "ecospeed_cottons": "Ecospeed bavlna", | ||||
|                     "ecospeed_delicates": "Eco rychly - jemne", | ||||
|                     "ecospeed_mixed": "Ecospeed zmiešaná", | ||||
|                     "extra_hygiene": "EXTRA HYGIENA", | ||||
|                     "fitness": "Fitnes", | ||||
|                     "fresh_care": "Svieža starostlivosť", | ||||
|                     "genius": "Genius", | ||||
|                     "hqd_baby_care": "Baby Care", | ||||
|                     "hqd_bath_towel": "Osušky", | ||||
|                     "hqd_bed_sheets": "Posteľná bielizeň", | ||||
|                     "hqd_bulky": "Objemné položky", | ||||
|                     "hqd_casual": "Neformálne", | ||||
|                     "hqd_cold_wind_30": "Chladný vánok 30 minút", | ||||
|                     "hqd_cold_wind_timing": "Studený vánok ", | ||||
|                     "hqd_cotton": "Bavlna", | ||||
|                     "hqd_curtain": "Záclony", | ||||
|                     "hqd_delicate": "Jemné materiály", | ||||
|                     "hqd_diaper": "Plienky", | ||||
|                     "hqd_duvet": "Paplón", | ||||
|                     "hqd_feather": "Prešívané bundy", | ||||
|                     "hqd_hot_wind_timing": "Horúci vzduch", | ||||
|                     "hqd_hygienic": "Hygienizácia", | ||||
|                     "hqd_i_refresh": "I-Refresh", | ||||
|                     "hqd_i_refresh_pro": "I-Refresh Pro", | ||||
|                     "hqd_jacket": "Bundy", | ||||
|                     "hqd_jeans": "Džínsy", | ||||
|                     "hqd_luxury": "Luxury", | ||||
|                     "hqd_mix": "Zmiešané", | ||||
|                     "hqd_night_dry": "Nočné sušenie", | ||||
|                     "hqd_outdoor": "Outdoor", | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Rýchle 20", | ||||
|                     "hqd_quick_30": "Rýchle 30", | ||||
|                     "hqd_quick_dry": "Rýchle sušenie 30", | ||||
|                     "hqd_quilt": "Prikrývky", | ||||
|                     "hqd_refresh": "Osvieženie", | ||||
|                     "hqd_school_uniform": "Školská uniforma", | ||||
|                     "hqd_shirt": "Košele", | ||||
|                     "hqd_shoes": "Obuv", | ||||
|                     "hqd_silk": "Hodváb", | ||||
|                     "hqd_sports": "Šport", | ||||
|                     "hqd_synthetics": "Syntetika", | ||||
|                     "hqd_timer": "Načasované", | ||||
|                     "hqd_towel": "Osušky", | ||||
|                     "hqd_underwear": "Spodná bielizeň", | ||||
|                     "hqd_warm_up": "Zahriatie", | ||||
|                     "hqd_wool": "Vlna", | ||||
|                     "hqd_working_suit": "Pracovné odevy", | ||||
|                     "hygiene": "Hygiena", | ||||
|                     "iot_checkup": "Kontrola", | ||||
|                     "iot_dry_anti_mites": "Proti roztočom", | ||||
|                     "iot_dry_baby": "Detská", | ||||
|                     "iot_dry_backpacks": "Batohy", | ||||
|                     "iot_dry_bathrobe": "Bathrobe", | ||||
|                     "iot_dry_bed_linen": "Posteľná bielizeň", | ||||
|                     "iot_dry_bed_quilt": "Posteľná prikrývka", | ||||
|                     "iot_dry_cotton": "Bavlna", | ||||
|                     "iot_dry_cuddly_toys": "Plyšové hračky", | ||||
|                     "iot_dry_curtains": "Závesy", | ||||
|                     "iot_dry_dehumidifier": "Odstraňovač vlhkosti", | ||||
|                     "iot_dry_delicates": "Jemná", | ||||
|                     "iot_dry_delicate_tablecloths": "Jemné obrusy", | ||||
|                     "iot_dry_denim_jeans": "Džínsovina – džínsy", | ||||
|                     "iot_dry_down_jacket": "Jacket", | ||||
|                     "iot_dry_duvet": "Prikrývky", | ||||
|                     "iot_dry_easy_iron_cotton": "Super ľahké žehlenie", | ||||
|                     "iot_dry_easy_iron_synthetics": "Super ľahké žehlenie syntetiky", | ||||
|                     "iot_dry_gym_fit": "Športovné oblečenie", | ||||
|                     "iot_dry_lingerie": "Spodná bielizeň", | ||||
|                     "iot_dry_mixed": "Zmiešané", | ||||
|                     "iot_dry_playsuits": "Tepláky", | ||||
|                     "iot_dry_rapid_30": "Rapid 30", | ||||
|                     "iot_dry_rapid_59": "Rýchly 59 min.", | ||||
|                     "iot_dry_refresh": "Osvieženie", | ||||
|                     "iot_dry_regenerates_waterproof": "Oživení nepromokavých tkanin", | ||||
|                     "iot_dry_relax_creases": "Uvoľnenie záhybov", | ||||
|                     "iot_dry_shirts": "Košele", | ||||
|                     "iot_dry_small_load": "Malá náplň", | ||||
|                     "iot_dry_swimsuits_and_bikinis": "Plavky", | ||||
|                     "iot_dry_synthetics": "Syntetická", | ||||
|                     "iot_dry_synthetic_dry": "Syntetika – sušenie", | ||||
|                     "iot_dry_tablecloths": "Obrusy", | ||||
|                     "iot_dry_technical_fabrics": "Technické tkaniny", | ||||
|                     "iot_dry_warm_embrace": "Detská zavinovačka", | ||||
|                     "iot_dry_wool": "Woolmark", | ||||
|                     "jeans": "Džínsy", | ||||
|                     "mix_and_dry": "Mix&Dry", | ||||
|                     "pets": "Domáce zvieratá", | ||||
|                     "pre_iron": "Pred žehlením", | ||||
|                     "rapid_30": "Rapid 30", | ||||
|                     "rapid_45": "Rýchly 45 min", | ||||
|                     "rapid_59": "Perfektne rýchly 59 min", | ||||
|                     "refresh": "Osvieženie", | ||||
|                     "relax_creases": "Uvoľnenie záhybov", | ||||
|                     "saving_30_min": "EKONOMICKY 30'", | ||||
|                     "shirts": "Košele", | ||||
|                     "shoes": "Obuv", | ||||
|                     "small_load": "Malá náplň", | ||||
|                     "soft_care": "Jemná starostlivosť", | ||||
|                     "sport_plus": "Sportovy", | ||||
|                     "super_easy_iron_misti": "Super ľahké žehlenie pre Zmiešané", | ||||
|                     "super_easy_iron_xxl": "Super ľahké žehlenie XXL", | ||||
|                     "super_fast_cottons": "Super rýchly bavlna", | ||||
|                     "super_fast_delicates": "Super rýchly jemná", | ||||
|                     "synthetics": "Syntetická", | ||||
|                     "total_care": "Total Care", | ||||
|                     "trainers": "Športová obuv", | ||||
|                     "ultra_care": "Ultra Care", | ||||
|                     "waterproof_revitalize": "Obnovenie vodeodolnosti", | ||||
|                     "whites": "Biela", | ||||
|                     "wool": "Sušenie vlny", | ||||
|                     "woolmark": "Woolmark", | ||||
|                     "xxl_load": "XXL náplň", | ||||
|                     "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": { | ||||
| @ -255,6 +409,11 @@ | ||||
|                     "silent": "Noc", | ||||
|                     "silent_care": "Silent Care", | ||||
|                     "smart_ai": "Smart AI", | ||||
|                     "smart_ai_pro": "Smart AI Pro", | ||||
|                     "smart_ai_pro_soil": "Smart AI Pro", | ||||
|                     "smart_ai_rapid": "Smart AI Rapid", | ||||
|                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||
|                     "smart_ai_soil": "Smart AI", | ||||
|                     "special": "špeciál", | ||||
|                     "special_pw_prz": "špeciál", | ||||
|                     "steam": "Para 75 °C", | ||||
| @ -311,11 +470,12 @@ | ||||
|             "programs_ov": { | ||||
|                 "state": { | ||||
|                     "bakery": "Cestoviny a pečenie", | ||||
|                     "bakery_steam": "Chlieb pečený v pare", | ||||
|                     "bakery_steam": "Parná rúra", | ||||
|                     "bottom_heating": "Spodný ohrev", | ||||
|                     "bottom_heating_fan": "Spodný ohrev + Ventilátor", | ||||
|                     "bread": "Chlieb", | ||||
|                     "bread_steam": "Pečivo pečené v pare", | ||||
|                     "bread_steam": "Chlieb pečený v pare", | ||||
|                     "combi": "Combi", | ||||
|                     "convection_fan": "Statický + ventilátor", | ||||
|                     "convection_fan_turnspit": "Statické + ventilátor + otočný ražeň", | ||||
|                     "conventional": "Statický", | ||||
| @ -323,7 +483,7 @@ | ||||
|                     "defrost": "Rozmraziť", | ||||
|                     "descaling": "Odstránenie vodného kameňa", | ||||
|                     "fish": "Ryby", | ||||
|                     "fish_steam": "Ryby varené v pare", | ||||
|                     "fish_steam": "Ryby pripravené v pare", | ||||
|                     "grill_cata": "Gril", | ||||
|                     "grill_fan_cata": "Gril + ventilátor", | ||||
|                     "grill_fan_pyro": "Gril + ventilátor", | ||||
| @ -334,12 +494,12 @@ | ||||
|                     "leavening": "Kysnutie", | ||||
|                     "low_temp_cooking": "Varenie pri nízkych teplotách", | ||||
|                     "low_temp_cooking_fish": "Varenie pri nízkych teplotách – Ryby", | ||||
|                     "low_temp_cooking_fish_steam": "Varenie pri nízkych teplotách v pare – Ryby", | ||||
|                     "low_temp_cooking_fish_steam": "Varenie pri nízkych teplotách – ryby pripravené v pare", | ||||
|                     "low_temp_cooking_meat": "Varenie pri nízkych teplotách – Mäso", | ||||
|                     "low_temp_cooking_meat_steam": "Varenie pri nízkych teplotách v pare", | ||||
|                     "low_temp_cooking_meat_steam": "Varenie pri nízkych teplotách - mäso dusené v pare", | ||||
|                     "low_temp_cooking_steam": "Varenie pri nízkych teplotách v pare", | ||||
|                     "meat": "Mäso", | ||||
|                     "meat_steam": "Mäso uvarené v pare", | ||||
|                     "meat_steam": "Mäso v pare", | ||||
|                     "multi_level": "Viacúrovňové", | ||||
|                     "paella": "Paella", | ||||
|                     "pasta_and_bakery": "Cestoviny a pečenie", | ||||
| @ -347,8 +507,8 @@ | ||||
|                     "pyrolysis": "Pyrolýza", | ||||
|                     "pyrolysis_plus": "Pyrolýza +", | ||||
|                     "red_meat": "Červené mäso", | ||||
|                     "red_meat_steam": "Červené mäso varené v pare", | ||||
|                     "regenerate": "Regenerácia", | ||||
|                     "red_meat_steam": "Červené mäso dusené v pare", | ||||
|                     "regenerate": "Regenerovať", | ||||
|                     "soft_plus": "Soft+", | ||||
|                     "super_grill": "Super Gril", | ||||
|                     "tailor_bake": "Tailor bake", | ||||
| @ -357,9 +517,9 @@ | ||||
|                     "vegetables": "Zelenina", | ||||
|                     "vegetables_cata": "Zelenina", | ||||
|                     "vegetables_pyro": "Zelenina", | ||||
|                     "water_discharge": "Odtok vody", | ||||
|                     "water_discharge": "Vypúšťanie vody", | ||||
|                     "white_meat": "Biele mäso", | ||||
|                     "white_meat_steam": "Biele mäso varené v pare" | ||||
|                     "white_meat_steam": "Biele mäso pripravené v pare" | ||||
|                 }, | ||||
|                 "name": "Program" | ||||
|             }, | ||||
| @ -416,7 +576,7 @@ | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Rýchle 20", | ||||
|                     "hqd_quick_30": "Rýchle 30", | ||||
|                     "hqd_quick_dry": "Rýchle sušenie", | ||||
|                     "hqd_quick_dry": "Rýchle sušenie 30", | ||||
|                     "hqd_quilt": "Prikrývky", | ||||
|                     "hqd_refresh": "Osvieženie", | ||||
|                     "hqd_school_uniform": "Školská uniforma", | ||||
| @ -820,7 +980,8 @@ | ||||
|                     "12": "Žehlenie", | ||||
|                     "13": "Šatník pripravený", | ||||
|                     "14": "Hotové na nosenie", | ||||
|                     "15": "Extra sušenie" | ||||
|                     "15": "Extra sušenie", | ||||
|                     "11": "Bez sušenia" | ||||
|                 }, | ||||
|                 "name": "Úroveň sušenia" | ||||
|             }, | ||||
| @ -870,6 +1031,40 @@ | ||||
|                     "iot_uv_and_fan": "UV + Ventilátor", | ||||
|                     "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": { | ||||
| @ -877,7 +1072,7 @@ | ||||
|                 "name": "Proti pokrčeniu" | ||||
|             }, | ||||
|             "add_dish": { | ||||
|                 "name": "" | ||||
|                 "name": "Pridať riad" | ||||
|             }, | ||||
|             "eco_express": { | ||||
|                 "name": "Eko" | ||||
| @ -944,6 +1139,42 @@ | ||||
|             }, | ||||
|             "mute_mode": { | ||||
|                 "name": "Stlmený režim" | ||||
|             }, | ||||
|             "extra_rinse_1": { | ||||
|                 "name": "+ 1 oplachovanie" | ||||
|             }, | ||||
|             "extra_rinse_2": { | ||||
|                 "name": "+ 2 oplachovania" | ||||
|             }, | ||||
|             "extra_rinse_3": { | ||||
|                 "name": "+ 3 oplachovania" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Aquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "name": "Automatická dávka" | ||||
|             }, | ||||
|             "good_night": { | ||||
|                 "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": { | ||||
| @ -993,7 +1224,7 @@ | ||||
|                 "name": "Panvica" | ||||
|             }, | ||||
|             "remote_control": { | ||||
|                 "name": "Diaľkové ovládanie" | ||||
|                 "name": "Daljinsko upravljanje" | ||||
|             }, | ||||
|             "rinse_aid": { | ||||
|                 "name": "Úroveň prostriedku na oplachovanie" | ||||
| @ -1015,6 +1246,36 @@ | ||||
|             }, | ||||
|             "prewash": { | ||||
|                 "name": "Predumývanie" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Aquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "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": { | ||||
| @ -1044,11 +1305,58 @@ | ||||
|             }, | ||||
|             "dry_time": { | ||||
|                 "name": "Čas sušenia" | ||||
|             }, | ||||
|             "steam_level": { | ||||
|                 "name": "Úroveň nastavenia pary" | ||||
|             }, | ||||
|             "freezer_temp_sel": { | ||||
|                 "name": "Cieľová teplota Mraznička" | ||||
|             }, | ||||
|             "fridge_temp_sel": { | ||||
|                 "name": "Cieľová teplota Chladnička" | ||||
|             } | ||||
|         }, | ||||
|         "button": { | ||||
|             "induction_hob": { | ||||
|                 "name": "Indukčná varná doska" | ||||
|             }, | ||||
|             "start_program": { | ||||
|                 "name": "Program Začiatok" | ||||
|             }, | ||||
|             "stop_program": { | ||||
|                 "name": "Program Zastaviť" | ||||
|             } | ||||
|         }, | ||||
|         "climate": { | ||||
|             "air_conditioner": { | ||||
|                 "name": "Klimatizácia" | ||||
|             }, | ||||
|             "fridge": { | ||||
|                 "name": "Chladnička", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Režimy chladničky", | ||||
|                         "state": { | ||||
|                             "auto_set": "Automatické nastavenie", | ||||
|                             "super_cool": "Super Cool", | ||||
|                             "holiday": "Holiday", | ||||
|                             "no_mode": "Nie je vybraný žiadny režim" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "freezer": { | ||||
|                 "name": "Mraznička", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Režimy mrazničky", | ||||
|                         "state": { | ||||
|                             "auto_set": "Automatické nastavenie", | ||||
|                             "super_freeze": "Super Freeze", | ||||
|                             "no_mode": "Nie je vybraný žiadny režim" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -9,7 +9,10 @@ | ||||
|                     "4": "Načrtovano", | ||||
|                     "5": "Načrtovano", | ||||
|                     "6": "Napaka", | ||||
|                     "7": "Pripravljen" | ||||
|                     "7": "Pripravljen", | ||||
|                     "2": "Program poteka", | ||||
|                     "8": "Test", | ||||
|                     "9": "Ustavljanje cikla …" | ||||
|                 } | ||||
|             }, | ||||
|             "program_phases_wm": { | ||||
| @ -53,7 +56,9 @@ | ||||
|                     "16": "Hlajenje", | ||||
|                     "18": "Ohrani sveže", | ||||
|                     "19": "Sušenje", | ||||
|                     "20": "Sušenje" | ||||
|                     "20": "Sušenje", | ||||
|                     "11": "Pripravljen", | ||||
|                     "17": "unknown" | ||||
|                 }, | ||||
|                 "name": "Faza" | ||||
|             }, | ||||
| @ -79,7 +84,8 @@ | ||||
|                     "12": "Likanje", | ||||
|                     "13": "Suho za omaro", | ||||
|                     "14": "Pripravljeno za uporabo", | ||||
|                     "15": "Zelo suho" | ||||
|                     "15": "Zelo suho", | ||||
|                     "11": "Brez sušenja" | ||||
|                 }, | ||||
|                 "name": "Stopnja sušenja" | ||||
|             }, | ||||
| @ -165,6 +171,154 @@ | ||||
|                     "5": "Ventilator", | ||||
|                     "6": "Ventilator" | ||||
|                 } | ||||
|             }, | ||||
|             "programs_td": { | ||||
|                 "state": { | ||||
|                     "active_dry": "Aktivno sušenje", | ||||
|                     "allergy_care": "Protialergijski", | ||||
|                     "all_in_one": "Vse hkrati", | ||||
|                     "antiallergy": "Protialergijski", | ||||
|                     "anti_odours": "Odstranjevanje vonjav", | ||||
|                     "auto_care": "Samodejna nega", | ||||
|                     "baby": "Oblačila dojenčkov", | ||||
|                     "bed_quilt": "Prešite odeje", | ||||
|                     "care_30": "Nega 30 min", | ||||
|                     "care_45": "Nega 45 min", | ||||
|                     "care_59": "Nega 59 min", | ||||
|                     "coloured": "Barvno", | ||||
|                     "daily_45_min": "DNEVNO 45 min", | ||||
|                     "daily_perfect_59_min": "DNEVNO POPOLNO 59 min", | ||||
|                     "darks_and_coloured": "Temno in barvno", | ||||
|                     "delicates": "Občutljivo perilo", | ||||
|                     "duvet": "Prešite odeje", | ||||
|                     "eco": "Eko bombaž", | ||||
|                     "ecospeed_cottons": "Eko hitri za bombaž", | ||||
|                     "ecospeed_delicates": "Eko hitri za občutljivo", | ||||
|                     "ecospeed_mixed": "Eko hitri za mešano", | ||||
|                     "extra_hygiene": "DODATNA HIGIENA", | ||||
|                     "fitness": "Fitnes", | ||||
|                     "fresh_care": "Nega za svežino", | ||||
|                     "genius": "Genius", | ||||
|                     "hqd_baby_care": "Baby Care", | ||||
|                     "hqd_bath_towel": "Brisače", | ||||
|                     "hqd_bed_sheets": "Rjuhe", | ||||
|                     "hqd_bulky": "Večji kosi", | ||||
|                     "hqd_casual": "Za prosti čas", | ||||
|                     "hqd_cold_wind_30": "Hladen vetrič 30 minut", | ||||
|                     "hqd_cold_wind_timing": "Hladen vetrič ", | ||||
|                     "hqd_cotton": "Bombaž", | ||||
|                     "hqd_curtain": "Zavese", | ||||
|                     "hqd_delicate": "Občutljive tkanine", | ||||
|                     "hqd_diaper": "Plenice", | ||||
|                     "hqd_duvet": "Prešite odeje", | ||||
|                     "hqd_feather": "Puhovke", | ||||
|                     "hqd_hot_wind_timing": "Vroč zrak", | ||||
|                     "hqd_hygienic": "Higienizacija", | ||||
|                     "hqd_i_refresh": "I-Refresh", | ||||
|                     "hqd_i_refresh_pro": "I-Refresh Pro", | ||||
|                     "hqd_jacket": "Suknjiči", | ||||
|                     "hqd_jeans": "Kavbojke", | ||||
|                     "hqd_luxury": "Luxury", | ||||
|                     "hqd_mix": "Mešano", | ||||
|                     "hqd_night_dry": "Sušenje čez noč", | ||||
|                     "hqd_outdoor": "Outdoor", | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Hitro 20", | ||||
|                     "hqd_quick_30": "Hitro 30", | ||||
|                     "hqd_quick_dry": "Hitro sušenje 30", | ||||
|                     "hqd_quilt": "Posteljna pregrinjala", | ||||
|                     "hqd_refresh": "Osvežitev", | ||||
|                     "hqd_school_uniform": "Šolska uniforma", | ||||
|                     "hqd_shirt": "Srajce", | ||||
|                     "hqd_shoes": "Obuvala", | ||||
|                     "hqd_silk": "Svila", | ||||
|                     "hqd_sports": "Šport", | ||||
|                     "hqd_synthetics": "Sintetika", | ||||
|                     "hqd_timer": "Časovno", | ||||
|                     "hqd_towel": "Brisače", | ||||
|                     "hqd_underwear": "Spodnje perilo", | ||||
|                     "hqd_warm_up": "Pogrevanje", | ||||
|                     "hqd_wool": "Volna", | ||||
|                     "hqd_working_suit": "Delovna oblačila", | ||||
|                     "hygiene": "Higiena", | ||||
|                     "iot_checkup": "Pregled", | ||||
|                     "iot_dry_anti_mites": "Proti pršicam", | ||||
|                     "iot_dry_baby": "Oblačila dojenčkov", | ||||
|                     "iot_dry_backpacks": "Nahrbtniki", | ||||
|                     "iot_dry_bathrobe": "Kopalni plašč", | ||||
|                     "iot_dry_bed_linen": "Posteljnina", | ||||
|                     "iot_dry_bed_quilt": "Prešite odeje", | ||||
|                     "iot_dry_cotton": "Bombaž", | ||||
|                     "iot_dry_cuddly_toys": "Plišaste igračke", | ||||
|                     "iot_dry_curtains": "Zavese", | ||||
|                     "iot_dry_dehumidifier": "Odstranjevalec vlage", | ||||
|                     "iot_dry_delicates": "Občutljivo", | ||||
|                     "iot_dry_delicate_tablecloths": "Občutljivi namizni prti", | ||||
|                     "iot_dry_denim_jeans": "Denim – jeans", | ||||
|                     "iot_dry_down_jacket": "Suknjiči", | ||||
|                     "iot_dry_duvet": "Prešite odeje", | ||||
|                     "iot_dry_easy_iron_cotton": "Super lažje likanje", | ||||
|                     "iot_dry_easy_iron_synthetics": "Super lažje likanje sintetike", | ||||
|                     "iot_dry_gym_fit": "Oblačila za telovadbo in fitnes", | ||||
|                     "iot_dry_lingerie": "Spodnje perilo", | ||||
|                     "iot_dry_mixed": "Mešano", | ||||
|                     "iot_dry_playsuits": "Pajaci", | ||||
|                     "iot_dry_rapid_30": "Rapid 30", | ||||
|                     "iot_dry_rapid_59": "Hitro 59’", | ||||
|                     "iot_dry_refresh": "Osvežitev", | ||||
|                     "iot_dry_regenerates_waterproof": "Obnovitev nepremočljivih oblačil", | ||||
|                     "iot_dry_relax_creases": "Mehčanje gub", | ||||
|                     "iot_dry_shirts": "Srajce", | ||||
|                     "iot_dry_small_load": "Malo perila", | ||||
|                     "iot_dry_swimsuits_and_bikinis": "Kopalke", | ||||
|                     "iot_dry_synthetics": "Sintetika", | ||||
|                     "iot_dry_synthetic_dry": "Sušenje sintetike", | ||||
|                     "iot_dry_tablecloths": "Namizni prti", | ||||
|                     "iot_dry_technical_fabrics": "Tehnične tkanine", | ||||
|                     "iot_dry_warm_embrace": "Mehkoba", | ||||
|                     "iot_dry_wool": "Woolmark", | ||||
|                     "jeans": "Džins", | ||||
|                     "mix_and_dry": "Sušenje – mešana sestava", | ||||
|                     "pets": "Hišne živali", | ||||
|                     "pre_iron": "Pred likanjem", | ||||
|                     "rapid_30": "Rapid 30", | ||||
|                     "rapid_45": "Hitri 45 min", | ||||
|                     "rapid_59": "Popolni hitri program 59 min.", | ||||
|                     "refresh": "Osvežitev", | ||||
|                     "relax_creases": "Mehčanje gub", | ||||
|                     "saving_30_min": "EKO 30 min", | ||||
|                     "shirts": "Srajce", | ||||
|                     "shoes": "Obuvala", | ||||
|                     "small_load": "Malo perila", | ||||
|                     "soft_care": "Nega za mehkobo", | ||||
|                     "sport_plus": "Športna oblacila", | ||||
|                     "super_easy_iron_misti": "Super lažje likanje mešanih tkanin", | ||||
|                     "super_easy_iron_xxl": "Super lažje likanje XXL", | ||||
|                     "super_fast_cottons": "Super hitri za bombaž", | ||||
|                     "super_fast_delicates": "Super hitri za občutljivo", | ||||
|                     "synthetics": "Sintetika", | ||||
|                     "total_care": "Total Care", | ||||
|                     "trainers": "Športna obutev", | ||||
|                     "ultra_care": "Ultra Care", | ||||
|                     "waterproof_revitalize": "Obnovitev nepremočljivih oblačil", | ||||
|                     "whites": "Belo", | ||||
|                     "wool": "Sušenje volne", | ||||
|                     "woolmark": "Woolmark", | ||||
|                     "xxl_load": "Zelo veliki kosi perila", | ||||
|                     "zoom_59": "Zoom 59" | ||||
|                 } | ||||
|             }, | ||||
|             "room_temperature": { | ||||
|                 "name": "Sobna temperatura" | ||||
|             }, | ||||
|             "humidity": { | ||||
|                 "name": "Vlaga " | ||||
|             }, | ||||
|             "freezer_temp": { | ||||
|                 "name": "Temperatura zamrzovalnika" | ||||
|             }, | ||||
|             "fridge_temp": { | ||||
|                 "name": "Temperatura hladilnika" | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -255,6 +409,11 @@ | ||||
|                     "silent": "Noč", | ||||
|                     "silent_care": "Silent Care", | ||||
|                     "smart_ai": "Smart AI", | ||||
|                     "smart_ai_pro": "Smart AI Pro", | ||||
|                     "smart_ai_pro_soil": "Smart AI Pro", | ||||
|                     "smart_ai_rapid": "Smart AI Rapid", | ||||
|                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||
|                     "smart_ai_soil": "Smart AI", | ||||
|                     "special": "posebno", | ||||
|                     "special_pw_prz": "Posebno", | ||||
|                     "steam": "Para 75 °C", | ||||
| @ -311,11 +470,12 @@ | ||||
|             "programs_ov": { | ||||
|                 "state": { | ||||
|                     "bakery": "Testenine in pekovski izdelki", | ||||
|                     "bakery_steam": "V sopari pečen kruh", | ||||
|                     "bakery_steam": "Parna pečica", | ||||
|                     "bottom_heating": "Spodnji grelnik", | ||||
|                     "bottom_heating_fan": "Spodnji grelnik + Ventilator", | ||||
|                     "bread": "Kruh", | ||||
|                     "bread_steam": "V sopari pečeno pecivo", | ||||
|                     "bread_steam": "V sopari pečen kruh", | ||||
|                     "combi": "Kombinirano", | ||||
|                     "convection_fan": "Konvekcija + ventilator", | ||||
|                     "convection_fan_turnspit": "Konvekcija + ventilator + raženj", | ||||
|                     "conventional": "Konvenkcijsko", | ||||
| @ -332,14 +492,14 @@ | ||||
|                     "iot_bread": "Kruh", | ||||
|                     "iot_h20_clean": "h2O clean", | ||||
|                     "leavening": "Vzhajanje", | ||||
|                     "low_temp_cooking": "Priprava pri nizki temperaturi", | ||||
|                     "low_temp_cooking_fish": "Priprava pri nizki temperaturi – ribe", | ||||
|                     "low_temp_cooking_fish_steam": "Soparjenje pri nizki temperaturi – ribe", | ||||
|                     "low_temp_cooking_meat": "Priprava pri nizki temperaturi – meso", | ||||
|                     "low_temp_cooking_meat_steam": "Soparjenje pri nizki temperaturi – meso", | ||||
|                     "low_temp_cooking": "Kuhanje pri nizki temperaturi", | ||||
|                     "low_temp_cooking_fish": "Kuhanje pri nizki temperaturi – ribe", | ||||
|                     "low_temp_cooking_fish_steam": "Kuhanje pri nizki temperaturi – soparjene ribe", | ||||
|                     "low_temp_cooking_meat": "Kuhanje pri nizki temperaturi – meso", | ||||
|                     "low_temp_cooking_meat_steam": "Kuhanje pri nizki temperaturi – soparjeno meso", | ||||
|                     "low_temp_cooking_steam": "Soparjenje pri nizki temperaturi", | ||||
|                     "meat": "Meso", | ||||
|                     "meat_steam": "Soparjeno meso", | ||||
|                     "meat_steam": "Soparjenje mesa", | ||||
|                     "multi_level": "Na več nivojih", | ||||
|                     "paella": "Paella", | ||||
|                     "pasta_and_bakery": "Testenine in pekovski izdelki", | ||||
| @ -348,7 +508,7 @@ | ||||
|                     "pyrolysis_plus": "Piroliza +", | ||||
|                     "red_meat": "Rdeče meso", | ||||
|                     "red_meat_steam": "Soparjeno rdeče meso", | ||||
|                     "regenerate": "Obnavljanje", | ||||
|                     "regenerate": "Regeneracija", | ||||
|                     "soft_plus": "Soft+", | ||||
|                     "super_grill": "Super Grill", | ||||
|                     "tailor_bake": "Tailor bake", | ||||
| @ -357,7 +517,7 @@ | ||||
|                     "vegetables": "Zelenjava", | ||||
|                     "vegetables_cata": "Zelenjava", | ||||
|                     "vegetables_pyro": "Zelenjava", | ||||
|                     "water_discharge": "Odtok za vodo", | ||||
|                     "water_discharge": "Izpust vode", | ||||
|                     "white_meat": "Belo meso", | ||||
|                     "white_meat_steam": "Soparjeno belo meso" | ||||
|                 }, | ||||
| @ -416,7 +576,7 @@ | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Hitro 20", | ||||
|                     "hqd_quick_30": "Hitro 30", | ||||
|                     "hqd_quick_dry": "Hitro sušenje", | ||||
|                     "hqd_quick_dry": "Hitro sušenje 30", | ||||
|                     "hqd_quilt": "Posteljna pregrinjala", | ||||
|                     "hqd_refresh": "Osvežitev", | ||||
|                     "hqd_school_uniform": "Šolska uniforma", | ||||
| @ -820,7 +980,8 @@ | ||||
|                     "12": "Likanje", | ||||
|                     "13": "Suho za omaro", | ||||
|                     "14": "Pripravljeno za uporabo", | ||||
|                     "15": "Zelo suho" | ||||
|                     "15": "Zelo suho", | ||||
|                     "11": "Brez sušenja" | ||||
|                 }, | ||||
|                 "name": "Stopnja sušenja" | ||||
|             }, | ||||
| @ -870,6 +1031,40 @@ | ||||
|                     "iot_uv_and_fan": "UV + ventilator", | ||||
|                     "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": { | ||||
| @ -877,7 +1072,7 @@ | ||||
|                 "name": "Proti mečkanju" | ||||
|             }, | ||||
|             "add_dish": { | ||||
|                 "name": "" | ||||
|                 "name": "Dodaj posodo" | ||||
|             }, | ||||
|             "eco_express": { | ||||
|                 "name": "Varčno" | ||||
| @ -944,6 +1139,42 @@ | ||||
|             }, | ||||
|             "mute_mode": { | ||||
|                 "name": "Način z izklopljenim zvokom" | ||||
|             }, | ||||
|             "extra_rinse_1": { | ||||
|                 "name": " + 1 izpiranje" | ||||
|             }, | ||||
|             "extra_rinse_2": { | ||||
|                 "name": " + 2 izpiranji" | ||||
|             }, | ||||
|             "extra_rinse_3": { | ||||
|                 "name": " + 3 izpiranja" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "name": "Samodejno odmerjanje" | ||||
|             }, | ||||
|             "good_night": { | ||||
|                 "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": { | ||||
| @ -993,7 +1224,7 @@ | ||||
|                 "name": "Posoda" | ||||
|             }, | ||||
|             "remote_control": { | ||||
|                 "name": "Daljinsko upravljanje" | ||||
|                 "name": "Diaľkové ovládanie" | ||||
|             }, | ||||
|             "rinse_aid": { | ||||
|                 "name": "Nivo sredstva za sijaj" | ||||
| @ -1015,6 +1246,36 @@ | ||||
|             }, | ||||
|             "prewash": { | ||||
|                 "name": "Predpranje" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "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": { | ||||
| @ -1044,11 +1305,58 @@ | ||||
|             }, | ||||
|             "dry_time": { | ||||
|                 "name": "Čas sušenja" | ||||
|             }, | ||||
|             "steam_level": { | ||||
|                 "name": "Količina pare" | ||||
|             }, | ||||
|             "freezer_temp_sel": { | ||||
|                 "name": "Ciljna temperatura Zamrzovalnik" | ||||
|             }, | ||||
|             "fridge_temp_sel": { | ||||
|                 "name": "Ciljna temperatura Hladilnik" | ||||
|             } | ||||
|         }, | ||||
|         "button": { | ||||
|             "induction_hob": { | ||||
|                 "name": "Indukcijska kuhalna plošča" | ||||
|             }, | ||||
|             "start_program": { | ||||
|                 "name": "Program Start" | ||||
|             }, | ||||
|             "stop_program": { | ||||
|                 "name": "Program Stop" | ||||
|             } | ||||
|         }, | ||||
|         "climate": { | ||||
|             "air_conditioner": { | ||||
|                 "name": "Klimatska naprava" | ||||
|             }, | ||||
|             "fridge": { | ||||
|                 "name": "Hladilnik", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Načini hladilnika", | ||||
|                         "state": { | ||||
|                             "auto_set": "Samodejna nastavitev", | ||||
|                             "super_cool": "Super Cool", | ||||
|                             "holiday": "Holiday", | ||||
|                             "no_mode": "Izbran ni noben način" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "freezer": { | ||||
|                 "name": "Zamrzovalnik", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Načini zamrzovalnika", | ||||
|                         "state": { | ||||
|                             "auto_set": "Samodejna nastavitev", | ||||
|                             "super_freeze": "Super Freeze", | ||||
|                             "no_mode": "Izbran ni noben način" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -9,7 +9,10 @@ | ||||
|                     "4": "Planirano", | ||||
|                     "5": "Planirano", | ||||
|                     "6": "Greška", | ||||
|                     "7": "Spremno" | ||||
|                     "7": "Spremno", | ||||
|                     "2": "Program u toku", | ||||
|                     "8": "Test", | ||||
|                     "9": "Zaustavljanje ciklusa..." | ||||
|                 } | ||||
|             }, | ||||
|             "program_phases_wm": { | ||||
| @ -53,7 +56,9 @@ | ||||
|                     "16": "Hlađenje", | ||||
|                     "18": "Očuvanje svežine", | ||||
|                     "19": "Sušenje", | ||||
|                     "20": "Sušenje" | ||||
|                     "20": "Sušenje", | ||||
|                     "11": "Spremno", | ||||
|                     "17": "unknown" | ||||
|                 }, | ||||
|                 "name": "Faza" | ||||
|             }, | ||||
| @ -79,7 +84,8 @@ | ||||
|                     "12": "Peglanje", | ||||
|                     "13": "Suvo za ormar", | ||||
|                     "14": "Spremno za nošenje", | ||||
|                     "15": "Ekstra suvo" | ||||
|                     "15": "Ekstra suvo", | ||||
|                     "11": "Bez sušenja" | ||||
|                 }, | ||||
|                 "name": "Nivo sušenja" | ||||
|             }, | ||||
| @ -165,6 +171,154 @@ | ||||
|                     "5": "Ventilator", | ||||
|                     "6": "Ventilator" | ||||
|                 } | ||||
|             }, | ||||
|             "programs_td": { | ||||
|                 "state": { | ||||
|                     "active_dry": "Aktivno sušenje", | ||||
|                     "allergy_care": "Antialergijski", | ||||
|                     "all_in_one": "All in One", | ||||
|                     "antiallergy": "Antialergijski", | ||||
|                     "anti_odours": "Protiv neugodnih mirisa", | ||||
|                     "auto_care": "Aktivna nega", | ||||
|                     "baby": "Baby", | ||||
|                     "bed_quilt": "Ćebad i jorgani", | ||||
|                     "care_30": "Nega 30", | ||||
|                     "care_45": "Nega 45", | ||||
|                     "care_59": "Nega 59", | ||||
|                     "coloured": "Obojeno", | ||||
|                     "daily_45_min": "SVAKODNEVNI 45'", | ||||
|                     "daily_perfect_59_min": "PERFECT SVAKODNEVNI 59'", | ||||
|                     "darks_and_coloured": "Tamno i obojeno", | ||||
|                     "delicates": "Osetljivo", | ||||
|                     "duvet": "Jorgani", | ||||
|                     "eco": "Eko pamuk", | ||||
|                     "ecospeed_cottons": "Ecospeed Pamuk", | ||||
|                     "ecospeed_delicates": "Ecospeed osetljive tkanine", | ||||
|                     "ecospeed_mixed": "Ecospeed Mešano", | ||||
|                     "extra_hygiene": "EXTRA HIGIJENA", | ||||
|                     "fitness": "Fitnes", | ||||
|                     "fresh_care": "Tretman za osvežavanje", | ||||
|                     "genius": "Genius", | ||||
|                     "hqd_baby_care": "Baby Care", | ||||
|                     "hqd_bath_towel": "Peškiri", | ||||
|                     "hqd_bed_sheets": "Posteljina", | ||||
|                     "hqd_bulky": "Glomazni artikli", | ||||
|                     "hqd_casual": "Neformalno", | ||||
|                     "hqd_cold_wind_30": "Hladan vazduh 30 minuta", | ||||
|                     "hqd_cold_wind_timing": "Hladan vazduh ", | ||||
|                     "hqd_cotton": "Pamuk", | ||||
|                     "hqd_curtain": "Zavese", | ||||
|                     "hqd_delicate": "Osetljive tkanine", | ||||
|                     "hqd_diaper": "Pelene", | ||||
|                     "hqd_duvet": "Jorgan", | ||||
|                     "hqd_feather": "Perjane jakne", | ||||
|                     "hqd_hot_wind_timing": "Vruć vazduh", | ||||
|                     "hqd_hygienic": "Higijenski", | ||||
|                     "hqd_i_refresh": "I-Refresh", | ||||
|                     "hqd_i_refresh_pro": "I-Refresh Pro", | ||||
|                     "hqd_jacket": "Jakne", | ||||
|                     "hqd_jeans": "Džins", | ||||
|                     "hqd_luxury": "Luksuzno", | ||||
|                     "hqd_mix": "Mešovito", | ||||
|                     "hqd_night_dry": "Noćno sušenje", | ||||
|                     "hqd_outdoor": "Outdoor", | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Brzo 20", | ||||
|                     "hqd_quick_30": "Brzo 30", | ||||
|                     "hqd_quick_dry": "Brzo sušenje 30", | ||||
|                     "hqd_quilt": "Jorgani", | ||||
|                     "hqd_refresh": "Osvežavanje", | ||||
|                     "hqd_school_uniform": "Školska uniforma", | ||||
|                     "hqd_shirt": "Košulje", | ||||
|                     "hqd_shoes": "Cipele", | ||||
|                     "hqd_silk": "Svila", | ||||
|                     "hqd_sports": "Sportska odeća", | ||||
|                     "hqd_synthetics": "Sintetika", | ||||
|                     "hqd_timer": "Vremenski ograničeno", | ||||
|                     "hqd_towel": "Peškiri", | ||||
|                     "hqd_underwear": "Donji veš", | ||||
|                     "hqd_warm_up": "Zagrevanje", | ||||
|                     "hqd_wool": "Vuna", | ||||
|                     "hqd_working_suit": "Radna odeća", | ||||
|                     "hygiene": "Higijena", | ||||
|                     "iot_checkup": "Provera", | ||||
|                     "iot_dry_anti_mites": "Anti-grinje", | ||||
|                     "iot_dry_baby": "Baby", | ||||
|                     "iot_dry_backpacks": "Rančevi", | ||||
|                     "iot_dry_bathrobe": "Bade-mantili", | ||||
|                     "iot_dry_bed_linen": "Posteljine", | ||||
|                     "iot_dry_bed_quilt": "Ćebad i jorgani", | ||||
|                     "iot_dry_cotton": "Pamuk", | ||||
|                     "iot_dry_cuddly_toys": "Plišane igračke", | ||||
|                     "iot_dry_curtains": "Zavese", | ||||
|                     "iot_dry_dehumidifier": "Uklanjanje vlage", | ||||
|                     "iot_dry_delicates": "Delikatni", | ||||
|                     "iot_dry_delicate_tablecloths": "Osetljivi stoljnjaci", | ||||
|                     "iot_dry_denim_jeans": "Teksas - džins", | ||||
|                     "iot_dry_down_jacket": "Jacket", | ||||
|                     "iot_dry_duvet": "Jorgani", | ||||
|                     "iot_dry_easy_iron_cotton": "Super Lako peglanje", | ||||
|                     "iot_dry_easy_iron_synthetics": "Sintetika koja se veoma lako pegla", | ||||
|                     "iot_dry_gym_fit": "Gym fit - Fitness", | ||||
|                     "iot_dry_lingerie": "Donji veš", | ||||
|                     "iot_dry_mixed": "Mešani veš", | ||||
|                     "iot_dry_playsuits": "Kostimi", | ||||
|                     "iot_dry_rapid_30": "Rapid 30", | ||||
|                     "iot_dry_rapid_59": "Brzi program 59'.", | ||||
|                     "iot_dry_refresh": "Osvežavanje", | ||||
|                     "iot_dry_regenerates_waterproof": "Regenerisanje vodootpornosti", | ||||
|                     "iot_dry_relax_creases": "Otpuštanje prevoja", | ||||
|                     "iot_dry_shirts": "Košulje", | ||||
|                     "iot_dry_small_load": "Mala količina veša", | ||||
|                     "iot_dry_swimsuits_and_bikinis": "Odeća za kupanje", | ||||
|                     "iot_dry_synthetics": "Sintetika", | ||||
|                     "iot_dry_synthetic_dry": "Sušenje sintetike", | ||||
|                     "iot_dry_tablecloths": "Stolnjaci", | ||||
|                     "iot_dry_technical_fabrics": "Sintetički materijali", | ||||
|                     "iot_dry_warm_embrace": "Topao zagrljaj", | ||||
|                     "iot_dry_wool": "Woolmark", | ||||
|                     "jeans": "Jeans", | ||||
|                     "mix_and_dry": "Mix&Dry", | ||||
|                     "pets": "Ljubimci", | ||||
|                     "pre_iron": "Pre-peglanje", | ||||
|                     "rapid_30": "Rapid 30", | ||||
|                     "rapid_45": "Brzi 45 min", | ||||
|                     "rapid_59": "Perfect Rapid 59 Min", | ||||
|                     "refresh": "Osvežavanje", | ||||
|                     "relax_creases": "Otpuštanje prevoja", | ||||
|                     "saving_30_min": "EKO 30'", | ||||
|                     "shirts": "Košulje", | ||||
|                     "shoes": "Cipele", | ||||
|                     "small_load": "Mala količina veša", | ||||
|                     "soft_care": "Blagi tretman", | ||||
|                     "sport_plus": "Sportska odeca", | ||||
|                     "super_easy_iron_misti": "Mešani veš koji se veoma lako pegla", | ||||
|                     "super_easy_iron_xxl": "XXL veš koji se veoma lako pegla", | ||||
|                     "super_fast_cottons": "Super brzo Pamuk", | ||||
|                     "super_fast_delicates": "Super brzo Osetljivo", | ||||
|                     "synthetics": "Sintetika", | ||||
|                     "total_care": "Total Care", | ||||
|                     "trainers": "Trenerke i sportska obuća", | ||||
|                     "ultra_care": "Ultra Care", | ||||
|                     "waterproof_revitalize": "Revitalizacija vodootpornosti", | ||||
|                     "whites": "Beli veš", | ||||
|                     "wool": "Sušenje vune", | ||||
|                     "woolmark": "Woolmark", | ||||
|                     "xxl_load": "XXL veš", | ||||
|                     "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": { | ||||
| @ -255,6 +409,11 @@ | ||||
|                     "silent": "Noć", | ||||
|                     "silent_care": "Silent Care", | ||||
|                     "smart_ai": "Smart AI", | ||||
|                     "smart_ai_pro": "Smart AI Pro", | ||||
|                     "smart_ai_pro_soil": "Smart AI Pro", | ||||
|                     "smart_ai_rapid": "Smart AI Rapid", | ||||
|                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||
|                     "smart_ai_soil": "Smart AI", | ||||
|                     "special": "posebno", | ||||
|                     "special_pw_prz": "posebno", | ||||
|                     "steam": "Para 75°C", | ||||
| @ -311,11 +470,12 @@ | ||||
|             "programs_ov": { | ||||
|                 "state": { | ||||
|                     "bakery": "Testenine i pecivo", | ||||
|                     "bakery_steam": "Hleb pečen na pari", | ||||
|                     "bakery_steam": "Priprema na pari u rerni", | ||||
|                     "bottom_heating": "Donje grejanje", | ||||
|                     "bottom_heating_fan": "Donje grejanje + Ventilator", | ||||
|                     "bread": "Hleb", | ||||
|                     "bread_steam": "Peciva pečena na pari", | ||||
|                     "bread_steam": "Hleb pečen na pari", | ||||
|                     "combi": "Kombinovani", | ||||
|                     "convection_fan": "Konvekcija + ventilator", | ||||
|                     "convection_fan_turnspit": "Konvekcija + ventilator + ražanj", | ||||
|                     "conventional": "Konvekcija", | ||||
| @ -323,7 +483,7 @@ | ||||
|                     "defrost": "Odmrzavanje", | ||||
|                     "descaling": "Uklanjanje kamenca", | ||||
|                     "fish": "Riba", | ||||
|                     "fish_steam": "Riba kuvana na pari", | ||||
|                     "fish_steam": "Riba na pari", | ||||
|                     "grill_cata": "Roštilj", | ||||
|                     "grill_fan_cata": "Roštilj sa ventilatorom", | ||||
|                     "grill_fan_pyro": "Gril + ventilator", | ||||
| @ -334,12 +494,12 @@ | ||||
|                     "leavening": "Narastanje", | ||||
|                     "low_temp_cooking": "Kuvanje na niskoj temperaturi", | ||||
|                     "low_temp_cooking_fish": "Kuvanje na niskoj temperaturi – riba", | ||||
|                     "low_temp_cooking_fish_steam": "Kuvanje na pari na niskoj temperaturi – riba", | ||||
|                     "low_temp_cooking_fish_steam": "Kuvanje na niskoj temperaturi – riba na pari", | ||||
|                     "low_temp_cooking_meat": "Kuvanje na niskoj temperaturi – meso", | ||||
|                     "low_temp_cooking_meat_steam": "Kuvanje na pari na niskoj temperaturi – meso", | ||||
|                     "low_temp_cooking_meat_steam": "Kuvanje na niskoj temperaturi – meso na pari", | ||||
|                     "low_temp_cooking_steam": "Kuvanje na pari na niskoj temperaturi", | ||||
|                     "meat": "Meso", | ||||
|                     "meat_steam": "Meso kuvano na pari", | ||||
|                     "meat_steam": "Priprema mesa na pari", | ||||
|                     "multi_level": "Više nivoa", | ||||
|                     "paella": "Paella", | ||||
|                     "pasta_and_bakery": "Testenine i pecivo", | ||||
| @ -347,7 +507,7 @@ | ||||
|                     "pyrolysis": "Piroliza", | ||||
|                     "pyrolysis_plus": "Piroliza +", | ||||
|                     "red_meat": "Crveno meso", | ||||
|                     "red_meat_steam": "Crveno meso kuvano na pari", | ||||
|                     "red_meat_steam": "Crveno meso na pari", | ||||
|                     "regenerate": "Regeneracija", | ||||
|                     "soft_plus": "Meko+", | ||||
|                     "super_grill": "Super gril", | ||||
| @ -357,9 +517,9 @@ | ||||
|                     "vegetables": "Povrće", | ||||
|                     "vegetables_cata": "Povrće", | ||||
|                     "vegetables_pyro": "Povrće", | ||||
|                     "water_discharge": "Odvod vode", | ||||
|                     "water_discharge": "Ispuštanje vode", | ||||
|                     "white_meat": "Belo meso", | ||||
|                     "white_meat_steam": "Belo meso kuvano na pari" | ||||
|                     "white_meat_steam": "Belo meso na pari" | ||||
|                 }, | ||||
|                 "name": "Program" | ||||
|             }, | ||||
| @ -416,7 +576,7 @@ | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Brzo 20", | ||||
|                     "hqd_quick_30": "Brzo 30", | ||||
|                     "hqd_quick_dry": "Brzo sušenje", | ||||
|                     "hqd_quick_dry": "Brzo sušenje 30", | ||||
|                     "hqd_quilt": "Jorgani", | ||||
|                     "hqd_refresh": "Osvežavanje", | ||||
|                     "hqd_school_uniform": "Školska uniforma", | ||||
| @ -820,7 +980,8 @@ | ||||
|                     "12": "Peglanje", | ||||
|                     "13": "Suvo za ormar", | ||||
|                     "14": "Spremno za nošenje", | ||||
|                     "15": "Ekstra suvo" | ||||
|                     "15": "Ekstra suvo", | ||||
|                     "11": "Bez sušenja" | ||||
|                 }, | ||||
|                 "name": "Nivo sušenja" | ||||
|             }, | ||||
| @ -870,6 +1031,40 @@ | ||||
|                     "iot_uv_and_fan": "UV + ventilator", | ||||
|                     "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": { | ||||
| @ -877,7 +1072,7 @@ | ||||
|                 "name": "Protiv gužvanja" | ||||
|             }, | ||||
|             "add_dish": { | ||||
|                 "name": "" | ||||
|                 "name": "Dodajte posuđe" | ||||
|             }, | ||||
|             "eco_express": { | ||||
|                 "name": "Eko" | ||||
| @ -944,6 +1139,42 @@ | ||||
|             }, | ||||
|             "mute_mode": { | ||||
|                 "name": "Režim isključenog zvuka" | ||||
|             }, | ||||
|             "extra_rinse_1": { | ||||
|                 "name": "+1 ispiranje" | ||||
|             }, | ||||
|             "extra_rinse_2": { | ||||
|                 "name": "+2 ispiranja" | ||||
|             }, | ||||
|             "extra_rinse_3": { | ||||
|                 "name": "+3 ispiranja" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Viši nivo vode" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "name": "Automatsko doziranje" | ||||
|             }, | ||||
|             "good_night": { | ||||
|                 "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": { | ||||
| @ -993,7 +1224,7 @@ | ||||
|                 "name": "Tiganj" | ||||
|             }, | ||||
|             "remote_control": { | ||||
|                 "name": "Daljinsko upravljanje" | ||||
|                 "name": "Upravljanje na daljinu" | ||||
|             }, | ||||
|             "rinse_aid": { | ||||
|                 "name": "Nivo sredstva za ispiranje" | ||||
| @ -1015,6 +1246,36 @@ | ||||
|             }, | ||||
|             "prewash": { | ||||
|                 "name": "Predpranje" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Viši nivo vode" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "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": { | ||||
| @ -1044,11 +1305,58 @@ | ||||
|             }, | ||||
|             "dry_time": { | ||||
|                 "name": "Vreme sušenja" | ||||
|             }, | ||||
|             "steam_level": { | ||||
|                 "name": "Nivo pare" | ||||
|             }, | ||||
|             "freezer_temp_sel": { | ||||
|                 "name": "Željena temperatura Zamrzivač" | ||||
|             }, | ||||
|             "fridge_temp_sel": { | ||||
|                 "name": "Željena temperatura Frižider" | ||||
|             } | ||||
|         }, | ||||
|         "button": { | ||||
|             "induction_hob": { | ||||
|                 "name": "Indukciona ploča" | ||||
|             }, | ||||
|             "start_program": { | ||||
|                 "name": "Program Pokretanje" | ||||
|             }, | ||||
|             "stop_program": { | ||||
|                 "name": "Program Zaustavi" | ||||
|             } | ||||
|         }, | ||||
|         "climate": { | ||||
|             "air_conditioner": { | ||||
|                 "name": "Klima uređaj" | ||||
|             }, | ||||
|             "fridge": { | ||||
|                 "name": "Frižider", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Režimi frižidera", | ||||
|                         "state": { | ||||
|                             "auto_set": "Automatsko podešavanje", | ||||
|                             "super_cool": "Super Cool", | ||||
|                             "holiday": "Holiday", | ||||
|                             "no_mode": "Nije izabran nijedan režim" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "freezer": { | ||||
|                 "name": "Zamrzivač", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Režimi zamrzivača", | ||||
|                         "state": { | ||||
|                             "auto_set": "Automatsko podešavanje", | ||||
|                             "super_freeze": "Super Freeze", | ||||
|                             "no_mode": "Nije izabran nijedan režim" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -9,7 +9,10 @@ | ||||
|                     "4": "Planlandı", | ||||
|                     "5": "Planlandı", | ||||
|                     "6": "Hata", | ||||
|                     "7": "Hazır" | ||||
|                     "7": "Hazır", | ||||
|                     "2": "Program çalışıyor", | ||||
|                     "8": "Test", | ||||
|                     "9": "Program durduruluyor…" | ||||
|                 } | ||||
|             }, | ||||
|             "program_phases_wm": { | ||||
| @ -53,7 +56,9 @@ | ||||
|                     "16": "Soğutma", | ||||
|                     "18": "Tazeleme", | ||||
|                     "19": "Kurutma", | ||||
|                     "20": "Kurutma" | ||||
|                     "20": "Kurutma", | ||||
|                     "11": "Hazır", | ||||
|                     "17": "unknown" | ||||
|                 }, | ||||
|                 "name": "Aşama" | ||||
|             }, | ||||
| @ -79,7 +84,8 @@ | ||||
|                     "12": "Ütü", | ||||
|                     "13": "Gardırop hazır", | ||||
|                     "14": "Giyilmeye hazır", | ||||
|                     "15": "Ekstra kurutma" | ||||
|                     "15": "Ekstra kurutma", | ||||
|                     "11": "Kurutma yok" | ||||
|                 }, | ||||
|                 "name": "Kurutma seviyesi" | ||||
|             }, | ||||
| @ -165,6 +171,154 @@ | ||||
|                     "5": "Fan", | ||||
|                     "6": "Fan" | ||||
|                 } | ||||
|             }, | ||||
|             "programs_td": { | ||||
|                 "state": { | ||||
|                     "active_dry": "Aktif Kurutma", | ||||
|                     "allergy_care": "Antialerji", | ||||
|                     "all_in_one": "Hepsi Bir Arada", | ||||
|                     "antiallergy": "Antialerji", | ||||
|                     "anti_odours": "Koku giderme", | ||||
|                     "auto_care": "Oto. Bakım", | ||||
|                     "baby": "Bebek", | ||||
|                     "bed_quilt": "Yorgan", | ||||
|                     "care_30": "Bakım 30", | ||||
|                     "care_45": "Bakım 45", | ||||
|                     "care_59": "Bakım 59", | ||||
|                     "coloured": "Renkli", | ||||
|                     "daily_45_min": "GUNLUK 45'", | ||||
|                     "daily_perfect_59_min": "GUNLUK 59'", | ||||
|                     "darks_and_coloured": "Koyu Renkliler ve Renkliler", | ||||
|                     "delicates": "Hassas", | ||||
|                     "duvet": "Yorgan", | ||||
|                     "eco": "Eko Pamuk", | ||||
|                     "ecospeed_cottons": "Eko hız Pamuklu", | ||||
|                     "ecospeed_delicates": "ECOSEPEED Hassas", | ||||
|                     "ecospeed_mixed": "Eko hız Karışık", | ||||
|                     "extra_hygiene": "EKSTRA HIJYEN", | ||||
|                     "fitness": "Fitness", | ||||
|                     "fresh_care": "Yenileme Bakımı", | ||||
|                     "genius": "Genius", | ||||
|                     "hqd_baby_care": "Baby Care", | ||||
|                     "hqd_bath_towel": "Havlular", | ||||
|                     "hqd_bed_sheets": "Çarşaflar", | ||||
|                     "hqd_bulky": "Hacimli eşyalar", | ||||
|                     "hqd_casual": "Gündelik", | ||||
|                     "hqd_cold_wind_30": "Serin esinti 30 dakika", | ||||
|                     "hqd_cold_wind_timing": "Serin esinti ", | ||||
|                     "hqd_cotton": "Pamuk", | ||||
|                     "hqd_curtain": "Perdeler", | ||||
|                     "hqd_delicate": "Narin Çamaşırlar", | ||||
|                     "hqd_diaper": "Bebek bezi", | ||||
|                     "hqd_duvet": "Nevresim", | ||||
|                     "hqd_feather": "Şişme montlar", | ||||
|                     "hqd_hot_wind_timing": "Sıcak hava", | ||||
|                     "hqd_hygienic": "Hijyen", | ||||
|                     "hqd_i_refresh": "I-Refresh", | ||||
|                     "hqd_i_refresh_pro": "I-Refresh Pro", | ||||
|                     "hqd_jacket": "Ceketler", | ||||
|                     "hqd_jeans": "Kot pantolon", | ||||
|                     "hqd_luxury": "Konfor", | ||||
|                     "hqd_mix": "Karışık", | ||||
|                     "hqd_night_dry": "Gece kurutma", | ||||
|                     "hqd_outdoor": "Outdoor", | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Hızlı 20", | ||||
|                     "hqd_quick_30": "Hızlı 30", | ||||
|                     "hqd_quick_dry": "Hızlı kurutma 30", | ||||
|                     "hqd_quilt": "Yorganlar", | ||||
|                     "hqd_refresh": "Yenileme", | ||||
|                     "hqd_school_uniform": "Okul üniforması", | ||||
|                     "hqd_shirt": "Gömlekler", | ||||
|                     "hqd_shoes": "Ayakkabılar", | ||||
|                     "hqd_silk": "İpek", | ||||
|                     "hqd_sports": "Spor", | ||||
|                     "hqd_synthetics": "Sentetikler", | ||||
|                     "hqd_timer": "Zaman Ayarlı", | ||||
|                     "hqd_towel": "Havlular", | ||||
|                     "hqd_underwear": "İç çamaşırı", | ||||
|                     "hqd_warm_up": "Isıtma", | ||||
|                     "hqd_wool": "Yün", | ||||
|                     "hqd_working_suit": "İş giysisi", | ||||
|                     "hygiene": "Hijyen", | ||||
|                     "iot_checkup": "Kontrol", | ||||
|                     "iot_dry_anti_mites": "Anti-akar", | ||||
|                     "iot_dry_baby": "Bebek", | ||||
|                     "iot_dry_backpacks": "Sırt Çantaları", | ||||
|                     "iot_dry_bathrobe": "Bornoz", | ||||
|                     "iot_dry_bed_linen": "Çarşaf", | ||||
|                     "iot_dry_bed_quilt": "Yorgan", | ||||
|                     "iot_dry_cotton": "Pamuklular", | ||||
|                     "iot_dry_cuddly_toys": "Yumuşak Oyuncaklar", | ||||
|                     "iot_dry_curtains": "Perdeler", | ||||
|                     "iot_dry_dehumidifier": "Nem giderici", | ||||
|                     "iot_dry_delicates": "Hassas", | ||||
|                     "iot_dry_delicate_tablecloths": "Hassas masa örtüleri", | ||||
|                     "iot_dry_denim_jeans": "Denim - kot pantolon", | ||||
|                     "iot_dry_down_jacket": "Jacket", | ||||
|                     "iot_dry_duvet": "Yorgan", | ||||
|                     "iot_dry_easy_iron_cotton": "Süper Kolay Ütüleme", | ||||
|                     "iot_dry_easy_iron_synthetics": "Sentetikler Süper Kolay Ütü", | ||||
|                     "iot_dry_gym_fit": "Spor kıyafetleri", | ||||
|                     "iot_dry_lingerie": "İç Çamaşırı", | ||||
|                     "iot_dry_mixed": "Karışık", | ||||
|                     "iot_dry_playsuits": "Oyun elbiseleri", | ||||
|                     "iot_dry_rapid_30": "Rapid 30", | ||||
|                     "iot_dry_rapid_59": "Hızlı 59'.", | ||||
|                     "iot_dry_refresh": "Yenileme", | ||||
|                     "iot_dry_regenerates_waterproof": "Su geçirmezliği artırmak", | ||||
|                     "iot_dry_relax_creases": "Kırışıklık Açma", | ||||
|                     "iot_dry_shirts": "Gömlek", | ||||
|                     "iot_dry_small_load": "Az Çamaşır", | ||||
|                     "iot_dry_swimsuits_and_bikinis": "Mayolar", | ||||
|                     "iot_dry_synthetics": "Sentetik", | ||||
|                     "iot_dry_synthetic_dry": "Sentetik Kurutma", | ||||
|                     "iot_dry_tablecloths": "Masa örtüleri", | ||||
|                     "iot_dry_technical_fabrics": "Teknik Kumaşlar", | ||||
|                     "iot_dry_warm_embrace": "Sıcak Hava", | ||||
|                     "iot_dry_wool": "Saf yün markası", | ||||
|                     "jeans": "Kot", | ||||
|                     "mix_and_dry": "Karışık ve Kuru", | ||||
|                     "pets": "Evcil hayvanlar", | ||||
|                     "pre_iron": "Ön Ütüleme", | ||||
|                     "rapid_30": "Rapid 30", | ||||
|                     "rapid_45": "45 dak. hızlı", | ||||
|                     "rapid_59": "Mükemmel Hızlı 59 dk", | ||||
|                     "refresh": "Yenileme", | ||||
|                     "relax_creases": "Kırışıklık Açma", | ||||
|                     "saving_30_min": "EKO 30'", | ||||
|                     "shirts": "Gömlekler", | ||||
|                     "shoes": "Ayakkabılar", | ||||
|                     "small_load": "Az Çamaşır", | ||||
|                     "soft_care": "Yumuşak Bakım", | ||||
|                     "sport_plus": "Spor+", | ||||
|                     "super_easy_iron_misti": "Süper Kolay Ütü karışık", | ||||
|                     "super_easy_iron_xxl": "Süper Kolay Ütü XXL", | ||||
|                     "super_fast_cottons": "Süper Hızlı Pamuklu", | ||||
|                     "super_fast_delicates": "Süper Hızlı Hassas", | ||||
|                     "synthetics": "Sentetik", | ||||
|                     "total_care": "Total Care", | ||||
|                     "trainers": "Spor Ayakkabıları", | ||||
|                     "ultra_care": "Ultra Care", | ||||
|                     "waterproof_revitalize": "Su Geçirmez Canlandırma", | ||||
|                     "whites": "Beyazlar", | ||||
|                     "wool": "Yünlüleri Kurutma", | ||||
|                     "woolmark": "Saf yün markası", | ||||
|                     "xxl_load": "XXL Çamaşır", | ||||
|                     "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": { | ||||
| @ -255,6 +409,11 @@ | ||||
|                     "silent": "Gece", | ||||
|                     "silent_care": "Silent Care", | ||||
|                     "smart_ai": "Smart AI", | ||||
|                     "smart_ai_pro": "Smart AI Pro", | ||||
|                     "smart_ai_pro_soil": "Smart AI Pro", | ||||
|                     "smart_ai_rapid": "Smart AI Rapid", | ||||
|                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||
|                     "smart_ai_soil": "Smart AI", | ||||
|                     "special": "özel", | ||||
|                     "special_pw_prz": "özel", | ||||
|                     "steam": "Buhar 75°C", | ||||
| @ -311,11 +470,12 @@ | ||||
|             "programs_ov": { | ||||
|                 "state": { | ||||
|                     "bakery": "Makarna ve Ekmek", | ||||
|                     "bakery_steam": "Buharda pişmiş ekmek", | ||||
|                     "bakery_steam": "Fırın buharı", | ||||
|                     "bottom_heating": "Alt ısıtıcı", | ||||
|                     "bottom_heating_fan": "Alt ısıtıcı + Fan", | ||||
|                     "bread": "Ekmek", | ||||
|                     "bread_steam": "Buharda pişmiş hamur işleri", | ||||
|                     "bread_steam": "Buharda pişmiş ekmek", | ||||
|                     "combi": "Kombi", | ||||
|                     "convection_fan": "Fan desteklı", | ||||
|                     "convection_fan_turnspit": "Konveksiyon + Fan + Şiş Çevirme", | ||||
|                     "conventional": "Statık", | ||||
| @ -323,7 +483,7 @@ | ||||
|                     "defrost": "Buz çözme", | ||||
|                     "descaling": "Kireç çözme", | ||||
|                     "fish": "Balık", | ||||
|                     "fish_steam": "Buharda pişmiş balık", | ||||
|                     "fish_steam": "Balık buğulama", | ||||
|                     "grill_cata": "Izgara", | ||||
|                     "grill_fan_cata": "Izgara fan", | ||||
|                     "grill_fan_pyro": "Izgara + Fan", | ||||
| @ -334,12 +494,12 @@ | ||||
|                     "leavening": "Mayalama", | ||||
|                     "low_temp_cooking": "Düşük Sıcaklıkta Pişirme", | ||||
|                     "low_temp_cooking_fish": "Düşük Sıcaklıkta Pişirme - Balık", | ||||
|                     "low_temp_cooking_fish_steam": "Düşük Sıcaklıkta Buharda Pişirme - Balık", | ||||
|                     "low_temp_cooking_fish_steam": "Düşük Isıda Pişirme - Balık buğulama", | ||||
|                     "low_temp_cooking_meat": "Düşük Sıcaklıkta Pişirme - Et", | ||||
|                     "low_temp_cooking_meat_steam": "Düşük Sıcaklıkta Buharda Pişirme - Et", | ||||
|                     "low_temp_cooking_meat_steam": "Düşük Isıda Pişirme - Buharda et", | ||||
|                     "low_temp_cooking_steam": "Düşük Sıcaklıkta Buharda Pişirme", | ||||
|                     "meat": "Et", | ||||
|                     "meat_steam": "Buharda pişmiş et", | ||||
|                     "meat_steam": "Et buharı", | ||||
|                     "multi_level": "Çok Seviyeli", | ||||
|                     "paella": "Paella", | ||||
|                     "pasta_and_bakery": "Makarna ve Ekmek", | ||||
| @ -347,8 +507,8 @@ | ||||
|                     "pyrolysis": "Piroliz", | ||||
|                     "pyrolysis_plus": "Piroliz +", | ||||
|                     "red_meat": "Kırmızı Et", | ||||
|                     "red_meat_steam": "Buharda pişmiş kırmızı et", | ||||
|                     "regenerate": "Yenileme", | ||||
|                     "red_meat_steam": "Buharda kırmızı et", | ||||
|                     "regenerate": "Yeniden oluştur", | ||||
|                     "soft_plus": "Yumuşak+", | ||||
|                     "super_grill": "Süper Izgara", | ||||
|                     "tailor_bake": "Tailor bake", | ||||
| @ -357,9 +517,9 @@ | ||||
|                     "vegetables": "Sebzeler", | ||||
|                     "vegetables_cata": "Sebzeler", | ||||
|                     "vegetables_pyro": "Sebzeler", | ||||
|                     "water_discharge": "Su Drenajı", | ||||
|                     "water_discharge": "Su Tahliyesi", | ||||
|                     "white_meat": "Beyaz Et", | ||||
|                     "white_meat_steam": "Buharda pişmiş beyaz et" | ||||
|                     "white_meat_steam": "Buharda beyaz et" | ||||
|                 }, | ||||
|                 "name": "Program" | ||||
|             }, | ||||
| @ -416,7 +576,7 @@ | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "Hızlı 20", | ||||
|                     "hqd_quick_30": "Hızlı 30", | ||||
|                     "hqd_quick_dry": "Hızlı kurutma", | ||||
|                     "hqd_quick_dry": "Hızlı kurutma 30", | ||||
|                     "hqd_quilt": "Yorganlar", | ||||
|                     "hqd_refresh": "Yenileme", | ||||
|                     "hqd_school_uniform": "Okul üniforması", | ||||
| @ -820,7 +980,8 @@ | ||||
|                     "12": "Ütü", | ||||
|                     "13": "Gardırop hazır", | ||||
|                     "14": "Giyilmeye hazır", | ||||
|                     "15": "Ekstra kurutma" | ||||
|                     "15": "Ekstra kurutma", | ||||
|                     "11": "Kurutma yok" | ||||
|                 }, | ||||
|                 "name": "Kurutma seviyesi" | ||||
|             }, | ||||
| @ -870,6 +1031,40 @@ | ||||
|                     "iot_uv_and_fan": "UV + Fan", | ||||
|                     "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": { | ||||
| @ -877,7 +1072,7 @@ | ||||
|                 "name": "Kırışık açma" | ||||
|             }, | ||||
|             "add_dish": { | ||||
|                 "name": "" | ||||
|                 "name": "Bulaşıkları ekle" | ||||
|             }, | ||||
|             "eco_express": { | ||||
|                 "name": "Eko" | ||||
| @ -944,6 +1139,42 @@ | ||||
|             }, | ||||
|             "mute_mode": { | ||||
|                 "name": "Ses Kapalı mod" | ||||
|             }, | ||||
|             "extra_rinse_1": { | ||||
|                 "name": "+1 Durulama" | ||||
|             }, | ||||
|             "extra_rinse_2": { | ||||
|                 "name": "+2 Durulama" | ||||
|             }, | ||||
|             "extra_rinse_3": { | ||||
|                 "name": "+3 Durulama" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "name": "Otomatik doz" | ||||
|             }, | ||||
|             "good_night": { | ||||
|                 "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": { | ||||
| @ -1015,6 +1246,36 @@ | ||||
|             }, | ||||
|             "prewash": { | ||||
|                 "name": "Pre-wash" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "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": { | ||||
| @ -1044,11 +1305,58 @@ | ||||
|             }, | ||||
|             "dry_time": { | ||||
|                 "name": "Kurutma zamanı" | ||||
|             }, | ||||
|             "steam_level": { | ||||
|                 "name": "Buhar Seviyesi" | ||||
|             }, | ||||
|             "freezer_temp_sel": { | ||||
|                 "name": "Hedef sıcaklık Dondurucu" | ||||
|             }, | ||||
|             "fridge_temp_sel": { | ||||
|                 "name": "Hedef sıcaklık Buzdolabı" | ||||
|             } | ||||
|         }, | ||||
|         "button": { | ||||
|             "induction_hob": { | ||||
|                 "name": "İndüksiyonlu Ocak" | ||||
|             }, | ||||
|             "start_program": { | ||||
|                 "name": "Program Başlangıç" | ||||
|             }, | ||||
|             "stop_program": { | ||||
|                 "name": "Program Durdur" | ||||
|             } | ||||
|         }, | ||||
|         "climate": { | ||||
|             "air_conditioner": { | ||||
|                 "name": "Klima" | ||||
|             }, | ||||
|             "fridge": { | ||||
|                 "name": "Buzdolabı", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Buzdolabı modları", | ||||
|                         "state": { | ||||
|                             "auto_set": "Otomatik Ayarla", | ||||
|                             "super_cool": "Super Cool", | ||||
|                             "holiday": "Holiday", | ||||
|                             "no_mode": "Hiç mod seçilmedi" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "freezer": { | ||||
|                 "name": "Dondurucu", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Dondurucu modları", | ||||
|                         "state": { | ||||
|                             "auto_set": "Otomatik Ayarla", | ||||
|                             "super_freeze": "Super Freeze", | ||||
|                             "no_mode": "Hiç mod seçilmedi" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -9,7 +9,10 @@ | ||||
|                     "4": "已计划", | ||||
|                     "5": "已计划", | ||||
|                     "6": "错误", | ||||
|                     "7": "就绪" | ||||
|                     "7": "就绪", | ||||
|                     "2": "程序运行中", | ||||
|                     "8": "Test", | ||||
|                     "9": "正在停止循环..." | ||||
|                 } | ||||
|             }, | ||||
|             "program_phases_wm": { | ||||
| @ -53,7 +56,9 @@ | ||||
|                     "16": "冷却", | ||||
|                     "18": "保持清新", | ||||
|                     "19": "烘干", | ||||
|                     "20": "烘干" | ||||
|                     "20": "烘干", | ||||
|                     "11": "就绪", | ||||
|                     "17": "unknown" | ||||
|                 }, | ||||
|                 "name": "阶段" | ||||
|             }, | ||||
| @ -79,7 +84,8 @@ | ||||
|                     "12": "熨烫", | ||||
|                     "13": "衣柜就绪", | ||||
|                     "14": "可穿", | ||||
|                     "15": "特干" | ||||
|                     "15": "特干", | ||||
|                     "11": "不烘干" | ||||
|                 }, | ||||
|                 "name": "烘干水平" | ||||
|             }, | ||||
| @ -165,6 +171,154 @@ | ||||
|                     "5": "风扇", | ||||
|                     "6": "风扇" | ||||
|                 } | ||||
|             }, | ||||
|             "programs_td": { | ||||
|                 "state": { | ||||
|                     "active_dry": "主动干燥", | ||||
|                     "allergy_care": "Antiallergy", | ||||
|                     "all_in_one": "All in One", | ||||
|                     "antiallergy": "抗过敏", | ||||
|                     "anti_odours": "除味", | ||||
|                     "auto_care": "自动护理", | ||||
|                     "baby": "婴儿服", | ||||
|                     "bed_quilt": "床被", | ||||
|                     "care_30": "护理 30", | ||||
|                     "care_45": "护理 45", | ||||
|                     "care_59": "护理 59", | ||||
|                     "coloured": "彩色衣物", | ||||
|                     "daily_45_min": "每日 45 分钟", | ||||
|                     "daily_perfect_59_min": "每日完美 59 分钟", | ||||
|                     "darks_and_coloured": "深色和彩色衣物", | ||||
|                     "delicates": "精细织物", | ||||
|                     "duvet": "羽绒服", | ||||
|                     "eco": "生态棉", | ||||
|                     "ecospeed_cottons": "经济速度棉质衣物", | ||||
|                     "ecospeed_delicates": "经济速度精致衣物", | ||||
|                     "ecospeed_mixed": "经济速度混合衣物", | ||||
|                     "extra_hygiene": "额外卫生", | ||||
|                     "fitness": "健身衣物", | ||||
|                     "fresh_care": "清新护理", | ||||
|                     "genius": "Genius", | ||||
|                     "hqd_baby_care": "Baby Care", | ||||
|                     "hqd_bath_towel": "毛巾", | ||||
|                     "hqd_bed_sheets": "床单", | ||||
|                     "hqd_bulky": "大件物品", | ||||
|                     "hqd_casual": "休闲", | ||||
|                     "hqd_cold_wind_30": "凉风 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": "I-Refresh", | ||||
|                     "hqd_i_refresh_pro": "I-Refresh Pro", | ||||
|                     "hqd_jacket": "夹克", | ||||
|                     "hqd_jeans": "牛仔裤", | ||||
|                     "hqd_luxury": "奢侈衣物", | ||||
|                     "hqd_mix": "混合材质", | ||||
|                     "hqd_night_dry": "过夜烘干", | ||||
|                     "hqd_outdoor": "Outdoor", | ||||
|                     "hqd_precious_cure": "Precious cure", | ||||
|                     "hqd_quick_20": "快洗 20", | ||||
|                     "hqd_quick_30": "快洗 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": "工作服", | ||||
|                     "hygiene": "卫生", | ||||
|                     "iot_checkup": "检测", | ||||
|                     "iot_dry_anti_mites": "除螨", | ||||
|                     "iot_dry_baby": "婴儿服", | ||||
|                     "iot_dry_backpacks": "背包", | ||||
|                     "iot_dry_bathrobe": "浴衣", | ||||
|                     "iot_dry_bed_linen": "被单枕套", | ||||
|                     "iot_dry_bed_quilt": "床被", | ||||
|                     "iot_dry_cotton": "棉布", | ||||
|                     "iot_dry_cuddly_toys": "毛绒玩具", | ||||
|                     "iot_dry_curtains": "窗帘", | ||||
|                     "iot_dry_dehumidifier": "除湿机", | ||||
|                     "iot_dry_delicates": "精细织物", | ||||
|                     "iot_dry_delicate_tablecloths": "精细台布", | ||||
|                     "iot_dry_denim_jeans": "牛仔布 - 牛仔裤", | ||||
|                     "iot_dry_down_jacket": "Jacket", | ||||
|                     "iot_dry_duvet": "羽绒服", | ||||
|                     "iot_dry_easy_iron_cotton": "Super Easy Iron", | ||||
|                     "iot_dry_easy_iron_synthetics": "超级易熨合成织物", | ||||
|                     "iot_dry_gym_fit": "健身服", | ||||
|                     "iot_dry_lingerie": "女性内衣", | ||||
|                     "iot_dry_mixed": "混合材质", | ||||
|                     "iot_dry_playsuits": "运动装", | ||||
|                     "iot_dry_rapid_30": "快速 30", | ||||
|                     "iot_dry_rapid_59": "快速 59’", | ||||
|                     "iot_dry_refresh": "Refresh", | ||||
|                     "iot_dry_regenerates_waterproof": "防水布", | ||||
|                     "iot_dry_relax_creases": "Relax Creases", | ||||
|                     "iot_dry_shirts": "衬衫", | ||||
|                     "iot_dry_small_load": "Small Load", | ||||
|                     "iot_dry_swimsuits_and_bikinis": "泳衣", | ||||
|                     "iot_dry_synthetics": "合成纤维衣物", | ||||
|                     "iot_dry_synthetic_dry": "合成纤维烘干", | ||||
|                     "iot_dry_tablecloths": "台布", | ||||
|                     "iot_dry_technical_fabrics": "弹性织物", | ||||
|                     "iot_dry_warm_embrace": "衣物蓬松", | ||||
|                     "iot_dry_wool": "Woolmark", | ||||
|                     "jeans": "牛仔裤", | ||||
|                     "mix_and_dry": "混合化纤洗干一体", | ||||
|                     "pets": "宠物", | ||||
|                     "pre_iron": "熨烫前", | ||||
|                     "rapid_30": "快速 30", | ||||
|                     "rapid_45": "快速 45 分钟", | ||||
|                     "rapid_59": "完美快洗59′", | ||||
|                     "refresh": "清新", | ||||
|                     "relax_creases": "Relax Creases", | ||||
|                     "saving_30_min": "节约 30 分钟", | ||||
|                     "shirts": "衬衫", | ||||
|                     "shoes": "鞋子", | ||||
|                     "small_load": "Small Load", | ||||
|                     "soft_care": "柔软保养", | ||||
|                     "sport_plus": "Sport Plus", | ||||
|                     "super_easy_iron_misti": "超易熨烫混合衣物", | ||||
|                     "super_easy_iron_xxl": "超易熨烫超大衣物", | ||||
|                     "super_fast_cottons": "Super Fast Cottons", | ||||
|                     "super_fast_delicates": "Super Fast Delicates", | ||||
|                     "synthetics": "合成纤维衣物", | ||||
|                     "total_care": "Total Care", | ||||
|                     "trainers": "运动鞋", | ||||
|                     "ultra_care": "Ultra Care", | ||||
|                     "waterproof_revitalize": "Waterproof Revitalize", | ||||
|                     "whites": "浅色衣物", | ||||
|                     "wool": "烘干羊毛衣物", | ||||
|                     "woolmark": "Woolmark", | ||||
|                     "xxl_load": "XXL Load", | ||||
|                     "zoom_59": "缩放 59" | ||||
|                 } | ||||
|             }, | ||||
|             "room_temperature": { | ||||
|                 "name": "室温" | ||||
|             }, | ||||
|             "humidity": { | ||||
|                 "name": "湿度" | ||||
|             }, | ||||
|             "freezer_temp": { | ||||
|                 "name": "冷藏室温度" | ||||
|             }, | ||||
|             "fridge_temp": { | ||||
|                 "name": "冰箱温度" | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -255,6 +409,11 @@ | ||||
|                     "silent": "夜间", | ||||
|                     "silent_care": "Silent Care", | ||||
|                     "smart_ai": "Smart AI", | ||||
|                     "smart_ai_pro": "Smart AI Pro", | ||||
|                     "smart_ai_pro_soil": "Smart AI Pro", | ||||
|                     "smart_ai_rapid": "Smart AI Rapid", | ||||
|                     "smart_ai_rapid_soil": "Smart AI Rapid", | ||||
|                     "smart_ai_soil": "Smart AI", | ||||
|                     "special": "特殊", | ||||
|                     "special_pw_prz": "特殊", | ||||
|                     "steam": "蒸汽洗75°C", | ||||
| @ -311,11 +470,12 @@ | ||||
|             "programs_ov": { | ||||
|                 "state": { | ||||
|                     "bakery": "意大利面和烘焙食品", | ||||
|                     "bakery_steam": "蒸烤的面包", | ||||
|                     "bakery_steam": "烤炉蒸汽", | ||||
|                     "bottom_heating": "底部加热 ", | ||||
|                     "bottom_heating_fan": "底部加热 + 风扇", | ||||
|                     "bread": "面包", | ||||
|                     "bread_steam": "蒸烤的甜点", | ||||
|                     "bread_steam": "蒸烤的面包", | ||||
|                     "combi": "Combi", | ||||
|                     "convection_fan": "对流 + 风扇", | ||||
|                     "convection_fan_turnspit": "对流 + 风扇 + 烤叉", | ||||
|                     "conventional": "对流", | ||||
| @ -323,7 +483,7 @@ | ||||
|                     "defrost": "解冻", | ||||
|                     "descaling": "除垢", | ||||
|                     "fish": "鱼", | ||||
|                     "fish_steam": "蒸煮的鱼", | ||||
|                     "fish_steam": "蒸鱼", | ||||
|                     "grill_cata": "烤架", | ||||
|                     "grill_fan_cata": "烤架风扇", | ||||
|                     "grill_fan_pyro": "烤架 + 风扇", | ||||
| @ -334,12 +494,12 @@ | ||||
|                     "leavening": "发酵", | ||||
|                     "low_temp_cooking": "低温烹饪", | ||||
|                     "low_temp_cooking_fish": "低温烹饪 - 鱼类", | ||||
|                     "low_temp_cooking_fish_steam": "低温蒸汽烹饪 - 鱼类", | ||||
|                     "low_temp_cooking_fish_steam": "低温烹饪 - 蒸鱼", | ||||
|                     "low_temp_cooking_meat": "低温烹饪 - 肉类", | ||||
|                     "low_temp_cooking_meat_steam": "低温蒸汽烹饪 - 肉类", | ||||
|                     "low_temp_cooking_meat_steam": "低温烹饪 - 蒸肉", | ||||
|                     "low_temp_cooking_steam": "低温蒸汽烹饪", | ||||
|                     "meat": "肉", | ||||
|                     "meat_steam": "蒸煮的肉", | ||||
|                     "meat_steam": "肉类蒸汽", | ||||
|                     "multi_level": "多层", | ||||
|                     "paella": "Paella", | ||||
|                     "pasta_and_bakery": "意大利面和烘焙食品", | ||||
| @ -347,8 +507,8 @@ | ||||
|                     "pyrolysis": "热解", | ||||
|                     "pyrolysis_plus": "热解 +", | ||||
|                     "red_meat": "红肉", | ||||
|                     "red_meat_steam": "蒸煮的红肉", | ||||
|                     "regenerate": "再生", | ||||
|                     "red_meat_steam": "蒸红肉", | ||||
|                     "regenerate": "再加热", | ||||
|                     "soft_plus": "软+", | ||||
|                     "super_grill": "超级烤架", | ||||
|                     "tailor_bake": "Tailor bake", | ||||
| @ -359,7 +519,7 @@ | ||||
|                     "vegetables_pyro": "蔬菜", | ||||
|                     "water_discharge": "排水", | ||||
|                     "white_meat": "白肉", | ||||
|                     "white_meat_steam": "蒸煮的白肉" | ||||
|                     "white_meat_steam": "蒸白肉" | ||||
|                 }, | ||||
|                 "name": "程序" | ||||
|             }, | ||||
| @ -820,7 +980,8 @@ | ||||
|                     "12": "熨烫", | ||||
|                     "13": "衣柜就绪", | ||||
|                     "14": "可穿", | ||||
|                     "15": "特干" | ||||
|                     "15": "特干", | ||||
|                     "11": "不烘干" | ||||
|                 }, | ||||
|                 "name": "烘干水平" | ||||
|             }, | ||||
| @ -870,6 +1031,40 @@ | ||||
|                     "iot_uv_and_fan": "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": { | ||||
| @ -877,7 +1072,7 @@ | ||||
|                 "name": "抗皱" | ||||
|             }, | ||||
|             "add_dish": { | ||||
|                 "name": "" | ||||
|                 "name": "添加碗碟" | ||||
|             }, | ||||
|             "eco_express": { | ||||
|                 "name": "节能" | ||||
| @ -944,6 +1139,42 @@ | ||||
|             }, | ||||
|             "mute_mode": { | ||||
|                 "name": "静音模式" | ||||
|             }, | ||||
|             "extra_rinse_1": { | ||||
|                 "name": "+1 次漂洗" | ||||
|             }, | ||||
|             "extra_rinse_2": { | ||||
|                 "name": "+2 次漂洗" | ||||
|             }, | ||||
|             "extra_rinse_3": { | ||||
|                 "name": "+3 次漂洗" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "name": "自动定量" | ||||
|             }, | ||||
|             "good_night": { | ||||
|                 "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": { | ||||
| @ -993,7 +1224,7 @@ | ||||
|                 "name": "烤盘" | ||||
|             }, | ||||
|             "remote_control": { | ||||
|                 "name": "远程控制" | ||||
|                 "name": "Control remoto" | ||||
|             }, | ||||
|             "rinse_aid": { | ||||
|                 "name": "漂洗助剂液位" | ||||
| @ -1015,6 +1246,36 @@ | ||||
|             }, | ||||
|             "prewash": { | ||||
|                 "name": "预洗" | ||||
|             }, | ||||
|             "acqua_plus": { | ||||
|                 "name": "Acquaplus" | ||||
|             }, | ||||
|             "auto_dose": { | ||||
|                 "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": { | ||||
| @ -1044,11 +1305,58 @@ | ||||
|             }, | ||||
|             "dry_time": { | ||||
|                 "name": "烘干时间" | ||||
|             }, | ||||
|             "steam_level": { | ||||
|                 "name": "蒸汽档位" | ||||
|             }, | ||||
|             "freezer_temp_sel": { | ||||
|                 "name": "目标温度 冷藏箱" | ||||
|             }, | ||||
|             "fridge_temp_sel": { | ||||
|                 "name": "目标温度 冰箱" | ||||
|             } | ||||
|         }, | ||||
|         "button": { | ||||
|             "induction_hob": { | ||||
|                 "name": "电磁炉" | ||||
|             }, | ||||
|             "start_program": { | ||||
|                 "name": "程序 开始" | ||||
|             }, | ||||
|             "stop_program": { | ||||
|                 "name": "程序 停止" | ||||
|             } | ||||
|         }, | ||||
|         "climate": { | ||||
|             "air_conditioner": { | ||||
|                 "name": "空调" | ||||
|             }, | ||||
|             "fridge": { | ||||
|                 "name": "冰箱", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "冰箱模式", | ||||
|                         "state": { | ||||
|                             "auto_set": "自动设置", | ||||
|                             "super_cool": "Super Cool", | ||||
|                             "holiday": "Holiday", | ||||
|                             "no_mode": "未选择模式" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "freezer": { | ||||
|                 "name": "冷藏箱", | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "冷藏室模式", | ||||
|                         "state": { | ||||
|                             "auto_set": "自动设置", | ||||
|                             "super_freeze": "Super Freeze", | ||||
|                             "no_mode": "未选择模式" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
							
								
								
									
										54
									
								
								info.md
									
									
									
									
									
								
							
							
						
						
									
										54
									
								
								info.md
									
									
									
									
									
								
							| @ -11,12 +11,8 @@ Support for home appliances of Haier's mobile app hOn. | ||||
| - [Oven](https://github.com/Andre0512/hon#oven) | ||||
| - [Hob](https://github.com/Andre0512/hon#hob) | ||||
| - [Dish Washer](https://github.com/Andre0512/hon#dish-washer) | ||||
|  | ||||
| ## Tested Appliances | ||||
| - Haier WD90-B14TEAM5 | ||||
| - Haier HD80-A3959 | ||||
| - Haier HWO60SM2F3XH | ||||
| - Hoover H-WASH 500 | ||||
| - [Air conditioner](https://github.com/Andre0512/hon#air-conditioner) [BETA] | ||||
| - [Fridge](https://github.com/Andre0512/hon#fridge) [BETA] | ||||
|  | ||||
| ## Configuration | ||||
|  | ||||
| @ -25,10 +21,6 @@ Support for home appliances of Haier's mobile app 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._ | ||||
|  | ||||
| ## Contribute | ||||
| 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! | ||||
|  | ||||
| ## Supported Languages | ||||
| Translation of internal names like programs are available for all languages which are official supported by the hOn app: | ||||
| * 🇨🇳 Chinese | ||||
| @ -51,10 +43,50 @@ Translation of internal names like programs are available for all languages whic | ||||
| * 🇪🇸 Spanish | ||||
| * 🇹🇷 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 | ||||
| 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! | ||||
|  | ||||
| ## Useful Links | ||||
| * [GitHub repository](https://github.com/Andre0512/hon) (please add a star if you like this integration!) | ||||
| * [pyhOn library](https://github.com/Andre0512/pyhOn) | ||||
| * [Release notes](https://github.com/Andre0512/hon/releases) | ||||
| * [Discussion and help](https://github.com/Andre0512/hon/discussions) | ||||
| * [Issues](https://github.com/Andre0512/hon/issues) | ||||
|  | ||||
|  | ||||
							
								
								
									
										3
									
								
								requirements_dev.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								requirements_dev.txt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | ||||
| pyhOn | ||||
| black | ||||
| homeassistant | ||||
| @ -3,155 +3,75 @@ | ||||
| import asyncio | ||||
| import json | ||||
| import re | ||||
| import sys | ||||
| from pathlib import Path | ||||
|  | ||||
| from pyhon import HonAPI | ||||
|  | ||||
| # These languages are official supported by hOn | ||||
| LANGUAGES = [ | ||||
|     "cs",  # Czech | ||||
|     "de",  # German | ||||
|     "el",  # Greek | ||||
|     "en",  # English | ||||
|     "es",  # Spanish | ||||
|     "fr",  # French | ||||
|     "he",  # Hebrew | ||||
|     "hr",  # Croatian | ||||
|     "it",  # Italian | ||||
|     "nl",  # Dutch | ||||
|     "pl",  # Polish | ||||
|     "pt",  # Portuguese | ||||
|     "ro",  # Romanian | ||||
|     "ru",  # Russian | ||||
|     "sk",  # Slovak | ||||
|     "sl",  # Slovenian | ||||
|     "sr",  # Serbian | ||||
|     "tr",  # Turkish | ||||
|     "zh",  # Chinese | ||||
| ] | ||||
| if __name__ == "__main__": | ||||
|     sys.path.insert(0, str(Path(__file__).parent.parent)) | ||||
|  | ||||
| WASHING_PR_PHASE = { | ||||
|     0: "WASHING_CMD&CTRL.PHASE_READY.TITLE", | ||||
|     1: "WASHING_CMD&CTRL.PHASE_WASHING.TITLE", | ||||
|     2: "WASHING_CMD&CTRL.PHASE_WASHING.TITLE", | ||||
|     3: "WASHING_CMD&CTRL.PHASE_SPIN.TITLE", | ||||
|     4: "WASHING_CMD&CTRL.PHASE_RINSE.TITLE", | ||||
|     5: "WASHING_CMD&CTRL.PHASE_RINSE.TITLE", | ||||
|     6: "WASHING_CMD&CTRL.PHASE_RINSE.TITLE", | ||||
|     7: "WASHING_CMD&CTRL.PHASE_DRYING.TITLE", | ||||
|     9: "WASHING_CMD&CTRL.PHASE_STEAM.TITLE", | ||||
|     10: "WASHING_CMD&CTRL.PHASE_READY.TITLE", | ||||
|     11: "WASHING_CMD&CTRL.PHASE_SPIN.TITLE", | ||||
|     12: "WASHING_CMD&CTRL.PHASE_WEIGHTING.TITLE", | ||||
|     13: "WASHING_CMD&CTRL.PHASE_WEIGHTING.TITLE", | ||||
|     14: "WASHING_CMD&CTRL.PHASE_WASHING.TITLE", | ||||
|     15: "WASHING_CMD&CTRL.PHASE_WASHING.TITLE", | ||||
|     16: "WASHING_CMD&CTRL.PHASE_WASHING.TITLE", | ||||
|     17: "WASHING_CMD&CTRL.PHASE_RINSE.TITLE", | ||||
|     18: "WASHING_CMD&CTRL.PHASE_RINSE.TITLE", | ||||
|     19: "WASHING_CMD&CTRL.PHASE_SCHEDULED.TITLE", | ||||
|     20: "WASHING_CMD&CTRL.PHASE_TUMBLING.TITLE", | ||||
|     24: "WASHING_CMD&CTRL.PHASE_REFRESH.TITLE", | ||||
|     25: "WASHING_CMD&CTRL.PHASE_WASHING.TITLE", | ||||
|     26: "WASHING_CMD&CTRL.PHASE_HEATING.TITLE", | ||||
|     27: "WASHING_CMD&CTRL.PHASE_WASHING.TITLE", | ||||
| } | ||||
| MACH_MODE = { | ||||
|     0: "WASHING_CMD&CTRL.PHASE_READY.TITLE", | ||||
|     1: "WASHING_CMD&CTRL.PHASE_READY.TITLE", | ||||
|     3: "WASHING_CMD&CTRL.PHASE_PAUSE.TITLE", | ||||
|     4: "WASHING_CMD&CTRL.PHASE_SCHEDULED.TITLE", | ||||
|     5: "WASHING_CMD&CTRL.PHASE_SCHEDULED.TITLE", | ||||
|     6: "WASHING_CMD&CTRL.PHASE_ERROR.TITLE", | ||||
|     7: "WASHING_CMD&CTRL.PHASE_READY.TITLE", | ||||
| } | ||||
| TUMBLE_DRYER_PR_PHASE = { | ||||
|     0: "WASHING_CMD&CTRL.PHASE_READY.TITLE", | ||||
|     1: "TD_CMD&CTRL.STATUS_PHASE.PHASE_HEAT_STROKE", | ||||
|     2: "WASHING_CMD&CTRL.PHASE_DRYING.TITLE", | ||||
|     3: "TD_CMD&CTRL.STATUS_PHASE.PHASE_COOLDOWN", | ||||
|     13: "TD_CMD&CTRL.STATUS_PHASE.PHASE_COOLDOWN", | ||||
|     14: "TD_CMD&CTRL.STATUS_PHASE.PHASE_HEAT_STROKE", | ||||
|     15: "TD_CMD&CTRL.STATUS_PHASE.PHASE_HEAT_STROKE", | ||||
|     16: "TD_CMD&CTRL.STATUS_PHASE.PHASE_COOLDOWN", | ||||
|     18: "WASHING_CMD&CTRL.PHASE_TUMBLING.DASHBOARD_TITLE", | ||||
|     19: "WASHING_CMD&CTRL.PHASE_DRYING.TITLE", | ||||
|     20: "WASHING_CMD&CTRL.PHASE_DRYING.TITLE", | ||||
| } | ||||
| DISHWASHER_PR_PHASE = { | ||||
|     0: "WASHING_CMD&CTRL.PHASE_READY.TITLE", | ||||
|     1: "WASHING_CMD&CTRL.PHASE_PREWASH.TITLE", | ||||
|     2: "WASHING_CMD&CTRL.PHASE_WASHING.TITLE", | ||||
|     3: "WASHING_CMD&CTRL.PHASE_RINSE.TITLE", | ||||
|     4: "WASHING_CMD&CTRL.PHASE_DRYING.TITLE", | ||||
|     5: "WASHING_CMD&CTRL.PHASE_READY.TITLE", | ||||
|     6: "WASHING_CMD&CTRL.PHASE_HOT_RINSE.TITLE", | ||||
| } | ||||
|  | ||||
| TUMBLE_DRYER_DRY_LEVEL = { | ||||
|     0: "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.NO_DRY", | ||||
|     1: "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OPTIONS_VALUES_DESCRIPTION.IRON_DRY", | ||||
|     2: "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.NO_DRY_IRON_TITLE", | ||||
|     3: "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.CUPBOARD_DRY_TITLE", | ||||
|     4: "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.EXTRA_DRY_TITLE", | ||||
|     12: "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OPTIONS_VALUES_DESCRIPTION.IRON_DRY", | ||||
|     13: "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.CUPBOARD_DRY_TITLE", | ||||
|     14: "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.READY_TO_WEAR_TITLE", | ||||
|     15: "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.EXTRA_DRY_TITLE", | ||||
| } | ||||
|  | ||||
| AC_MACH_MODE = { | ||||
|     0: "PROGRAMS.AC.IOT_AUTO", | ||||
|     1: "PROGRAMS.AC.IOT_COOL", | ||||
|     2: "PROGRAMS.AC.IOT_COOL", | ||||
|     3: "PROGRAMS.AC.IOT_DRY", | ||||
|     4: "PROGRAMS.AC.IOT_HEAT", | ||||
|     5: "PROGRAMS.AC.IOT_FAN", | ||||
|     6: "PROGRAMS.AC.IOT_FAN", | ||||
| } | ||||
|  | ||||
| AC_FAN_MODE = { | ||||
|     1: "AC.PROGRAM_CARD.WIND_SPEED_HIGH", | ||||
|     2: "AC.PROGRAM_CARD.WIND_SPEED_MID", | ||||
|     3: "AC.PROGRAM_CARD.WIND_SPEED_LOW", | ||||
|     4: "AC.PROGRAM_CARD.WIND_SPEED_AUTO", | ||||
|     5: "AC.PROGRAM_CARD.WIND_SPEED_AUTO", | ||||
| } | ||||
|  | ||||
| AC_HUMAN_SENSE = { | ||||
|     0: "AC.PROGRAM_DETAIL.TOUCH_OFF", | ||||
|     1: "AC.PROGRAM_DETAIL.AVOID_TOUCH", | ||||
|     2: "AC.PROGRAM_DETAIL.FOLLOW_TOUCH", | ||||
| } | ||||
| from custom_components.hon import const | ||||
|  | ||||
| SENSOR = { | ||||
|     "washing_modes": MACH_MODE, | ||||
|     "mach_modes_ac": AC_MACH_MODE, | ||||
|     "program_phases_wm": WASHING_PR_PHASE, | ||||
|     "program_phases_td": TUMBLE_DRYER_PR_PHASE, | ||||
|     "program_phases_dw": DISHWASHER_PR_PHASE, | ||||
|     "dry_levels": TUMBLE_DRYER_DRY_LEVEL, | ||||
|     "washing_modes": const.MACH_MODE, | ||||
|     "mach_modes_ac": const.AC_MACH_MODE, | ||||
|     "program_phases_wm": const.WASHING_PR_PHASE, | ||||
|     "program_phases_td": const.TUMBLE_DRYER_PR_PHASE, | ||||
|     "program_phases_dw": const.DISHWASHER_PR_PHASE, | ||||
|     "dry_levels": const.TUMBLE_DRYER_DRY_LEVEL, | ||||
| } | ||||
|  | ||||
| SELECT = { | ||||
|     "dry_levels": TUMBLE_DRYER_DRY_LEVEL, | ||||
|     "eco_pilot": AC_HUMAN_SENSE, | ||||
|     "fan_mode": AC_FAN_MODE, | ||||
|     "dry_levels": const.TUMBLE_DRYER_DRY_LEVEL, | ||||
|     "eco_pilot": const.AC_HUMAN_SENSE, | ||||
|     "fan_mode": const.AC_FAN_MODE, | ||||
|     "ref_zones": const.REF_ZONES, | ||||
| } | ||||
|  | ||||
| PROGRAMS = { | ||||
|     "programs_ac": "PROGRAMS.AC", | ||||
|     "programs_dw": "PROGRAMS.DW", | ||||
|     "programs_ih": "PROGRAMS.IH", | ||||
|     "programs_ov": "PROGRAMS.OV", | ||||
|     "programs_td": "PROGRAMS.TD", | ||||
|     "programs_wm": "PROGRAMS.WM_WD", | ||||
|     "select": { | ||||
|         "programs_ac": "PROGRAMS.AC", | ||||
|         "programs_dw": "PROGRAMS.DW", | ||||
|         "programs_ih": "PROGRAMS.IH", | ||||
|         "programs_ov": "PROGRAMS.OV", | ||||
|         "programs_td": "PROGRAMS.TD", | ||||
|         "programs_wm": "PROGRAMS.WM_WD", | ||||
|         "programs_ref": "PROGRAMS.REF", | ||||
|     }, | ||||
|     "sensor": { | ||||
|         "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 = { | ||||
|     "switch": { | ||||
|         "anti_crease": "HDRY_CMD&CTRL.PROGRAM_CYCLE_DETAIL.ANTICREASE_TITLE", | ||||
|         "add_dish": "DW_CMD&CTRL.c.ADD_DISH", | ||||
|         "add_dish": "DW.ADD_DISH", | ||||
|         "eco_express": "DW_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.ECO", | ||||
|         "extra_dry": "DW_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.EXTRA_DRY", | ||||
|         "half_load": "DW_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.HALF_LOAD", | ||||
| @ -174,6 +94,23 @@ NAMES = { | ||||
|         "self_clean_56": "PROGRAMS.AC.IOT_SELF_CLEAN_56", | ||||
|         "silent_mode": "AC.PROGRAM_DETAIL.SILENT_MODE", | ||||
|         "mute_mode": "AC.PROGRAM_DETAIL.MUTE_MODE", | ||||
|         "extra_rinse_1": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.EXTRARINSE1", | ||||
|         "extra_rinse_2": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.EXTRARINSE2", | ||||
|         "extra_rinse_3": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.EXTRARINSE3", | ||||
|         "acqua_plus": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.ACQUAPLUS", | ||||
|         "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", | ||||
|         "auto_set": "REF_CMD&CTRL.MODALITIES.ECO", | ||||
|         "super_cool": "REF_CMD&CTRL.MODALITIES.SUPER_COOL", | ||||
|         "super_freeze": "REF_CMD&CTRL.MODALITIES.SUPER_FREEZE", | ||||
|         "refrigerator": "REF.NAME", | ||||
|     }, | ||||
|     "binary_sensor": { | ||||
|         "door_lock": "WASHING_CMD&CTRL.CHECK_UP_RESULTS.DOOR_LOCK", | ||||
| @ -182,7 +119,7 @@ NAMES = { | ||||
|         "extra_rinse_3": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.EXTRARINSE3", | ||||
|         "good_night": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.GOODNIGHT", | ||||
|         "anti_crease": "HDRY_CMD&CTRL.PROGRAM_CYCLE_DETAIL.ANTICREASE_TITLE", | ||||
|         "aqua_plus": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.ACQUAPLUS", | ||||
|         "acqua_plus": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.ACQUAPLUS", | ||||
|         "spin_speed": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.SPINSPEED", | ||||
|         "still_hot": "IH.COILS_STATUS.STILL_HOT", | ||||
|         "pan_status": "IH.COILS_STATUS.PAN", | ||||
| @ -194,9 +131,19 @@ NAMES = { | ||||
|         "child_lock": "AP.FOOTER_MENU_MORE.SECURITY_LOCK_TITLE", | ||||
|         "on": "GLOBALS.GENERAL.ON", | ||||
|         "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": { | ||||
|         "induction_hob": "GLOBALS.APPLIANCES_NAME.IH", | ||||
|         "start_program": ["WC.SET_PROGRAM.PROGRAM", "GLOBALS.GENERAL.START_ON"], | ||||
|         "stop_program": ["WC.SET_PROGRAM.PROGRAM", "GLOBALS.GENERAL.STOP"], | ||||
|     }, | ||||
|     "select": { | ||||
|         "dry_levels": "WASHING_CMD&CTRL.DRAWER_CYCLE_DRYING.TAB_LEVEL", | ||||
| @ -209,6 +156,8 @@ NAMES = { | ||||
|         "programs_td": "WC.SET_PROGRAM.PROGRAM", | ||||
|         "programs_wm": "WC.SET_PROGRAM.PROGRAM", | ||||
|         "eco_pilot": "AC.PROGRAM_DETAIL.ECO_PILOT", | ||||
|         "remaining_time": "ENROLLMENT_COMMON.GENERAL.REMAINING_TIME", | ||||
|         "ref_zones": "IH.COMMON.COIL", | ||||
|     }, | ||||
|     "sensor": { | ||||
|         "dry_levels": "WASHING_CMD&CTRL.DRAWER_CYCLE_DRYING.TAB_LEVEL", | ||||
| @ -233,6 +182,8 @@ NAMES = { | ||||
|         "det_liquid": "HUBS.WIDGET.STAINS_WIDGET.STAINS.SUGGESTED_DET_LIQUID", | ||||
|         "errors": "ROBOT_CMD&CTRL.PHASE_ERROR.TITLE", | ||||
|         "programs": "OV.TABS.CURRENT_PROGRAM", | ||||
|         "room_temperature": "REF.SMART_DRINK_ASSISTANT.AMBIENT", | ||||
|         "humidity": "AP.TITLES.HUMIDITY", | ||||
|         "cycles_total": [ | ||||
|             "WASHING_CMD&CTRL.GENERAL.CYCLES", | ||||
|             "WC.VIRTUAL_WINE_STATS_COUNTRY.TOTAL", | ||||
| @ -253,6 +204,8 @@ NAMES = { | ||||
|             "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_RESULT.WATER_EFFICIENCY", | ||||
|             "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": { | ||||
|         "power_management": "HINTS.COOKING_WITH_INDUCTION.POWER_MANAGEMENT", | ||||
| @ -264,12 +217,20 @@ NAMES = { | ||||
|         "rinse_iterations": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL.DRAWER_HEADER_RINSE", | ||||
|         "wash_time": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL.WASHING_TIME", | ||||
|         "dry_time": "WASHING_CMD&CTRL.DRAWER_CYCLE_DRYING.TAB_TIME", | ||||
|         "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", | ||||
|     }, | ||||
| } | ||||
|  | ||||
|  | ||||
| async def check_translation_files(translations): | ||||
|     for language in LANGUAGES: | ||||
|     for language in const.LANGUAGES: | ||||
|         path = translations / f"{language}.json" | ||||
|         if not path.is_file(): | ||||
|             async with HonAPI(anonymous=True) as hon: | ||||
| @ -313,7 +274,7 @@ def load_key(full_key, json_data, fallback=None): | ||||
|         result = result.get(key, {}) | ||||
|     if not result and fallback: | ||||
|         return load_key(full_key, fallback) | ||||
|     return result or "" | ||||
|     return result or full_key | ||||
|  | ||||
|  | ||||
| def load_keys(full_key, json_data): | ||||
| @ -350,20 +311,30 @@ def main(): | ||||
|     hon = load_hon_translations() | ||||
|     base_path = Path(__file__).parent.parent / "custom_components/hon/translations" | ||||
|     fallback = load_json(hon.get("en", "")) | ||||
|     for language in LANGUAGES: | ||||
|     for language in const.LANGUAGES: | ||||
|         original = load_json(hon.get(language, "")) | ||||
|         old = load_json(hass.get(language, "")) | ||||
|         for name, data in SENSOR.items(): | ||||
|             add_data(old, original, fallback, data, name) | ||||
|         for name, data in SELECT.items(): | ||||
|             add_data(old, original, fallback, data, name, "select") | ||||
|         for name, program in PROGRAMS.items(): | ||||
|             select = old.setdefault("entity", {}).setdefault("select", {}) | ||||
|             select.setdefault(name, {})["state"] = load_keys(program, original) | ||||
|         for entity, data in PROGRAMS.items(): | ||||
|             for name, program in data.items(): | ||||
|                 select = old.setdefault("entity", {}).setdefault(entity, {}) | ||||
|                 select.setdefault(name, {})["state"] = load_keys(program, original) | ||||
|         for entity, data in NAMES.items(): | ||||
|             for name, key in data.items(): | ||||
|                 select = old.setdefault("entity", {}).setdefault(entity, {}) | ||||
|                 select.setdefault(name, {})["name"] = load_key(key, original, fallback) | ||||
|         for name, modes in CLIMATE.items(): | ||||
|             climate = old.setdefault("entity", {}).setdefault("climate", {}) | ||||
|             attr = climate.setdefault(name, {}).setdefault("state_attributes", {}) | ||||
|             for mode, data in modes.items(): | ||||
|                 mode_name = load_key(data["name"], original, fallback) | ||||
|                 attr.setdefault(mode, {})["name"] = mode_name | ||||
|                 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) | ||||
|         save_json(base_path / f"{language}.json", old) | ||||
|  | ||||
|  | ||||
| @ -4,15 +4,21 @@ import re | ||||
| import sys | ||||
| from pathlib import Path | ||||
|  | ||||
|  | ||||
| if __name__ == "__main__": | ||||
|     sys.path.insert(0, str(Path(__file__).parent.parent)) | ||||
|  | ||||
| from custom_components.hon.binary_sensor import BINARY_SENSORS | ||||
| from custom_components.hon.button import BUTTONS | ||||
| from custom_components.hon.climate import CLIMATES | ||||
| from custom_components.hon.number import NUMBERS | ||||
| from custom_components.hon.select import SELECTS | ||||
| from custom_components.hon.sensor import SENSORS | ||||
| from custom_components.hon.switch import SWITCHES, HonSwitchEntityDescription | ||||
| from custom_components.hon.switch import ( | ||||
|     SWITCHES, | ||||
|     HonControlSwitchEntityDescription, | ||||
|     HonSwitchEntityDescription, | ||||
| ) | ||||
|  | ||||
| APPLIANCES = { | ||||
|     "AC": "Air conditioner", | ||||
| @ -41,21 +47,26 @@ entities = { | ||||
|     "select": SELECTS, | ||||
|     "sensor": SENSORS, | ||||
|     "switch": SWITCHES, | ||||
|     "climate": CLIMATES, | ||||
| } | ||||
|  | ||||
| result = {} | ||||
| for entity_type, appliances in entities.items(): | ||||
|     for appliance, data in appliances.items(): | ||||
|         for entity in data: | ||||
|             if ( | ||||
|                 isinstance(entity, HonSwitchEntityDescription) | ||||
|                 and entity.entity_category != "config" | ||||
|             ): | ||||
|             if isinstance(entity, HonControlSwitchEntityDescription): | ||||
|                 key = f"{entity.turn_on_key}` / `{entity.turn_off_key}" | ||||
|             else: | ||||
|                 key = entity.key | ||||
|             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( | ||||
|                 entity.entity_category or category, [] | ||||
|             ).append(attributes) | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	