Compare commits
3 Commits
v0.9.0-bet
...
v0.8
Author | SHA1 | Date | |
---|---|---|---|
4b95accf02 | |||
998b691a8e | |||
6084e4a034 |
39
.github/ISSUE_TEMPLATE/bug_report.md
vendored
39
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@ -1,39 +0,0 @@
|
|||||||
---
|
|
||||||
name: Bug report
|
|
||||||
about: Create a report to help us improve
|
|
||||||
title: ''
|
|
||||||
labels: bug
|
|
||||||
assignees: Andre0512
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Describe the bug**
|
|
||||||
A clear and concise description of what the bug is.
|
|
||||||
|
|
||||||
**To Reproduce**
|
|
||||||
Steps to reproduce the behavior:
|
|
||||||
1. Go to '...'
|
|
||||||
2. Click on '....'
|
|
||||||
3. Scroll down to '....'
|
|
||||||
4. See error
|
|
||||||
|
|
||||||
**Expected behavior**
|
|
||||||
A clear and concise description of what you expected to happen.
|
|
||||||
|
|
||||||
**Screenshots**
|
|
||||||
If applicable, add screenshots to help explain your problem.
|
|
||||||
|
|
||||||
**Environment (please complete the following information):**
|
|
||||||
- Home Assistant Version: [e.g. `2023.6.1`]
|
|
||||||
- hOn Integration Version [e.g. `0.8.1`, can be found in HACS]
|
|
||||||
- pyhOn Version [e.g. `0.13.1`, can be found in device log]
|
|
||||||
|
|
||||||
**Additional context**
|
|
||||||
Add any other context about the problem here.
|
|
||||||
|
|
||||||
**Device Log**
|
|
||||||
Post your device info here (if available)
|
|
||||||
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 to create a notification
|
|
||||||
3. Open home assistant notifications and copy the message (Crtl+A, Ctrl+C)
|
|
26
.github/ISSUE_TEMPLATE/feature_request.md
vendored
26
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@ -1,26 +0,0 @@
|
|||||||
---
|
|
||||||
name: Feature request
|
|
||||||
about: Suggest an idea for this project
|
|
||||||
title: ''
|
|
||||||
labels: enhancement
|
|
||||||
assignees: Andre0512
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Is your feature request related to a problem? Please describe.**
|
|
||||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
||||||
|
|
||||||
**Describe the solution you'd like**
|
|
||||||
A clear and concise description of what you want to happen.
|
|
||||||
|
|
||||||
**Describe alternatives you've considered**
|
|
||||||
A clear and concise description of any alternative solutions or features you've considered.
|
|
||||||
|
|
||||||
**Device Log**
|
|
||||||
Post your device info here (if available)
|
|
||||||
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 to create a notification
|
|
||||||
3. Open home assistant notifications and copy the message (Crtl+A, Ctrl+C)
|
|
||||||
**Additional context**
|
|
||||||
Add any other context or screenshots about the feature request here.
|
|
132
README.md
132
README.md
@ -4,7 +4,7 @@
|
|||||||
[](https://github.com/Andre0512/pyhOn)
|
[](https://github.com/Andre0512/pyhOn)
|
||||||
[](https://github.com/Andre0512/hon/blob/main/LICENSE)
|
[](https://github.com/Andre0512/hon/blob/main/LICENSE)
|
||||||
[](https://tooomm.github.io/github-release-stats/?username=Andre0512&repository=hon)
|
[](https://tooomm.github.io/github-release-stats/?username=Andre0512&repository=hon)
|
||||||
Home Assistant integration for [Haier's mobile app hOn](https://hon-smarthome.com/) based on [pyhOn](https://github.com/Andre0512/pyhon).
|
Home Assistant integration for [Haier's mobile app hOn](https://hon-smarthome.com/).
|
||||||
|
|
||||||
## Supported Appliances
|
## Supported Appliances
|
||||||
- [Washing Machine](https://github.com/Andre0512/hon#washing-machine)
|
- [Washing Machine](https://github.com/Andre0512/hon#washing-machine)
|
||||||
@ -14,10 +14,8 @@ Home Assistant integration for [Haier's mobile app hOn](https://hon-smarthome.co
|
|||||||
- [Dish Washer](https://github.com/Andre0512/hon#dish-washer)
|
- [Dish Washer](https://github.com/Andre0512/hon#dish-washer)
|
||||||
- [Air conditioner](https://github.com/Andre0512/hon#air-conditioner)
|
- [Air conditioner](https://github.com/Andre0512/hon#air-conditioner)
|
||||||
- [Fridge](https://github.com/Andre0512/hon#fridge)
|
- [Fridge](https://github.com/Andre0512/hon#fridge)
|
||||||
- [Induction Hob](https://github.com/Andre0512/hon#induction-hob) [BETA]
|
- [Hob](https://github.com/Andre0512/hon#hob) [BETA]
|
||||||
- [Hood](https://github.com/Andre0512/hon#hood) [BETA]
|
- [Hood](https://github.com/Andre0512/hon#hood) [BETA]
|
||||||
- [Wine Cellar](https://github.com/Andre0512/hon#wine-cellar) [BETA]
|
|
||||||
- [Air Purifier](https://github.com/Andre0512/hon#air-purifier) [BETA]
|
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
**Method 1:** [](https://my.home-assistant.io/redirect/hacs_repository/?owner=Andre0512&repository=hon&category=integration)
|
**Method 1:** [](https://my.home-assistant.io/redirect/hacs_repository/?owner=Andre0512&repository=hon&category=integration)
|
||||||
@ -35,22 +33,6 @@ _Restart Home Assistant_
|
|||||||
**Method 2**: Settings > Devices & Services > Add Integration > **Haier hOn**
|
**Method 2**: Settings > Devices & Services > Add Integration > **Haier hOn**
|
||||||
_If the integration is not in the list, you need to clear the browser cache._
|
_If the integration is not in the list, you need to clear the browser cache._
|
||||||
|
|
||||||
## Supported Models
|
|
||||||
Support 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** | **Hoover** | **Candy** |
|
|
||||||
|---------------------|----------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|
|
|
||||||
| **Washing Machine** | HW90-B14TEAM5 <br/> HW100-B14959U1 | H-WASH 500 <br/> H7W4 48MBC-S | CO4 107T1/2-07 <br/> CBWO49TWME-S <br/> RO44 1286DWMC4-07 <br/> HW 68AMC/1-80 <br/> HWPD 69AMBC/1-S |
|
|
||||||
| **Tumble Dryer** | HD80-A3959 | H-DRY 500 <br/> H9A3TCBEXS-S <br/> HLE C10DCE-80 <br/> NDE H10A2TCE-80 <br/> NDE H9A2TSBEXS-S <br/> NDPHY10A2TCBEXSS | BCTDH7A1TE <br/> CSOE C10DE-80 <br/> ROE H9A3TCEX-S |
|
|
||||||
| **Washer Dryer** | HWD100-B14979 | HWPS4954DAMR-11 | RPW41066BWMR/1-S |
|
|
||||||
| **Oven** | HWO60SM2F3XH | HSOT3161WG | |
|
|
||||||
| **Dish Washer** | XIB 3B2SFS-80 <br/> XIB 6B2D3FB | HFB 6B2S3FX | |
|
|
||||||
| **Air Conditioner** | AD105S2SM3FA <br/> AS20HPL1HRA <br/> AS25PBAHRA <br/> AS25S2SF1FA-WH <br/> AS25TADHRA-2 <br/> AS35S2SF2FA-3 <br/> AS35TADHRA-2 <br/> AS35TAMHRA-C | | |
|
|
||||||
| **Fridge** | HFW7720ENMB | | CCE4T620EWU |
|
|
||||||
| **Hob** | HA2MTSJ68MC | | CIS633SCTTWIFI |
|
|
||||||
| **Hood** | HADG6DS46BWIFI | | |
|
|
||||||
| **Wine Cellar** | HWS247FDU1 | | |
|
|
||||||
|
|
||||||
## Supported Languages
|
## Supported Languages
|
||||||
Translation of internal names like programs are available for all languages which are official supported by the hOn app:
|
Translation of internal names like programs are available for all languages which are official supported by the hOn app:
|
||||||
* 🇨🇳 Chinese
|
* 🇨🇳 Chinese
|
||||||
@ -77,6 +59,45 @@ Translation of internal names like programs are available for all languages whic
|
|||||||
### Washing Machine
|
### 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 AS20HPL1HRA
|
||||||
|
- Haier AS25PBAHRA
|
||||||
|
- Haier AS25S2SF1FA-WH
|
||||||
|
- Haier AS25TADHRA-2
|
||||||
|
- Haier AS35TADHRA-2
|
||||||
|
- Haier EG9012B19SU1JD
|
||||||
|
- Haier HA2MTSJ68MC
|
||||||
|
- Haier HADG6DS46BWIFI
|
||||||
|
- Haier HD80-A3959
|
||||||
|
- Haier HW90-B14TEAM5
|
||||||
|
- Haier HW100-B14959U1
|
||||||
|
- Haier HWD100-B14979
|
||||||
|
- Haier HWO60SM2F3XH
|
||||||
|
- Haier XIB 3B2SFS-80
|
||||||
|
- Haier XIB 6B2D3FB
|
||||||
|
- Candy BCTDH7A1TE
|
||||||
|
- Candy CCE4T620EWU
|
||||||
|
- Candy CIS633SCTTWIFI
|
||||||
|
- Candy CSOE C10DE-80
|
||||||
|
- Candy RO44 1286DWMC4-07
|
||||||
|
- Candy ROE H9A3TCEX-S
|
||||||
|
- Candy RPW41066BWMR/1-S
|
||||||
|
- Hoover H-WASH 500
|
||||||
|
- Hoover H-DRY 500
|
||||||
|
- Hoover H7W4 48MBC-S
|
||||||
|
- Hoover H9A3TCBEXS-S
|
||||||
|
- Hoover HFB 6B2S3FX
|
||||||
|
- Hoover HLE C10DCE-80
|
||||||
|
- Hoover HSOT3161WG
|
||||||
|
- Hoover HW 68AMC/1-80
|
||||||
|
- Hoover HWPD 69AMBC/1-S
|
||||||
|
- Hoover HWPS4954DAMR-11
|
||||||
|
- Hoover NDE H10A2TCE-80
|
||||||
|
- Hoover NDE H9A2TSBEXS-S
|
||||||
|
- Hoover NDPHY10A2TCBEXSS
|
||||||
|
|
||||||
## Contribute
|
## Contribute
|
||||||
Any kind of contribution is welcome!
|
Any kind of contribution is welcome!
|
||||||
### Read out device data
|
### Read out device data
|
||||||
@ -138,7 +159,7 @@ For every device exists a hidden button which can be used to log all infos of yo
|
|||||||
|
|
||||||
## Appliance Features
|
## Appliance Features
|
||||||
|
|
||||||
### Air Conditioner
|
### Air conditioner
|
||||||
#### Controls
|
#### Controls
|
||||||
| Name | Icon | Entity | Key |
|
| Name | Icon | Entity | Key |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
@ -166,42 +187,12 @@ For every device exists a hidden button which can be used to log all infos of yo
|
|||||||
| Filter Replacement | | `binary_sensor` | `filterChangeStatusLocal` |
|
| Filter Replacement | | `binary_sensor` | `filterChangeStatusLocal` |
|
||||||
| In Air Temperature Outdoor | `thermometer` | `sensor` | `tempInAirOutdoor` |
|
| In Air Temperature Outdoor | `thermometer` | `sensor` | `tempInAirOutdoor` |
|
||||||
| Indoor Temperature | `thermometer` | `sensor` | `tempIndoor` |
|
| Indoor Temperature | `thermometer` | `sensor` | `tempIndoor` |
|
||||||
| Machine Status | `information` | `sensor` | `machMode` |
|
|
||||||
| Outdoor Temperature | `thermometer` | `sensor` | `tempOutdoor` |
|
| Outdoor Temperature | `thermometer` | `sensor` | `tempOutdoor` |
|
||||||
| Program | | `select` | `startProgram.program` |
|
| Program | | `select` | `startProgram.program` |
|
||||||
| Program | `play` | `sensor` | `programName` |
|
| Program | `play` | `sensor` | `programName` |
|
||||||
| Selected Temperature | `thermometer` | `sensor` | `tempSel` |
|
| Selected Temperature | `thermometer` | `sensor` | `tempSel` |
|
||||||
|
|
||||||
### Air Purifier
|
### Dish washer
|
||||||
#### Controls
|
|
||||||
| Name | Icon | Entity | Key |
|
|
||||||
| --- | --- | --- | --- |
|
|
||||||
| Aroma Time Off | `thermometer` | `number` | `settings.aromaTimeOff` |
|
|
||||||
| Aroma Time On | `thermometer` | `number` | `settings.aromaTimeOn` |
|
|
||||||
| Diffuser Level | | `select` | `settings.aromaStatus` |
|
|
||||||
| Light status | `lightbulb` | `number` | `settings.lightStatus` |
|
|
||||||
| Lock Status | | `switch` | `lockStatus` |
|
|
||||||
| Mode | `run` | `select` | `settings.machMode` |
|
|
||||||
| Pollen Level | | `number` | `settings.pollenLevel` |
|
|
||||||
| Touch Tone | | `switch` | `touchToneStatus` |
|
|
||||||
#### Sensors
|
|
||||||
| Name | Icon | Entity | Key |
|
|
||||||
| --- | --- | --- | --- |
|
|
||||||
| Air Quality | | `sensor` | `airQuality` |
|
|
||||||
| CO Level | | `sensor` | `coLevel` |
|
|
||||||
| Error | `math-log` | `sensor` | `errors` |
|
|
||||||
| Humidity | | `sensor` | `humidityIndoor` |
|
|
||||||
| Main Filter Status | | `sensor` | `mainFilterStatus` |
|
|
||||||
| On | `power-cycle` | `binary_sensor` | `attributes.parameters.onOffStatus` |
|
|
||||||
| Pre Filter Status | | `sensor` | `preFilterStatus` |
|
|
||||||
| Temperature | | `sensor` | `temp` |
|
|
||||||
| Total Work Time | | `sensor` | `totalWorkTime` |
|
|
||||||
| VOC | | `sensor` | `vocValueIndoor` |
|
|
||||||
| Wind Speed | | `sensor` | `windSpeed` |
|
|
||||||
| pm10 | | `sensor` | `pm10ValueIndoor` |
|
|
||||||
| pm2p5 | | `sensor` | `pm2p5ValueIndoor` |
|
|
||||||
|
|
||||||
### Dish Washer
|
|
||||||
#### Controls
|
#### Controls
|
||||||
| Name | Icon | Entity | Key |
|
| Name | Icon | Entity | Key |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
@ -246,7 +237,11 @@ For every device exists a hidden button which can be used to log all infos of yo
|
|||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
| Start Program | `hvac` | `button` | `startProgram` |
|
| Start Program | `hvac` | `button` | `startProgram` |
|
||||||
| Stop Program | `hvac-off` | `button` | `stopProgram` |
|
| Stop Program | `hvac-off` | `button` | `stopProgram` |
|
||||||
| Wind Speed | | `fan` | `settings.windSpeed` |
|
#### Configs
|
||||||
|
| Name | Icon | Entity | Key |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| Light status | `lightbulb` | `number` | `startProgram.lightStatus` |
|
||||||
|
| Wind speed | `fan` | `number` | `startProgram.windSpeed` |
|
||||||
#### Sensors
|
#### Sensors
|
||||||
| Name | Icon | Entity | Key |
|
| Name | Icon | Entity | Key |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
@ -257,14 +252,14 @@ For every device exists a hidden button which can be used to log all infos of yo
|
|||||||
| Filter Cleaning Status | | `sensor` | `filterCleaningStatus` |
|
| Filter Cleaning Status | | `sensor` | `filterCleaningStatus` |
|
||||||
| Last Work Time | `clock-start` | `sensor` | `lastWorkTime` |
|
| Last Work Time | `clock-start` | `sensor` | `lastWorkTime` |
|
||||||
| Light Status | `lightbulb` | `sensor` | `lightStatus` |
|
| Light Status | `lightbulb` | `sensor` | `lightStatus` |
|
||||||
| Light status | `lightbulb` | `number` | `startProgram.lightStatus` |
|
|
||||||
| Mach Mode | | `sensor` | `machMode` |
|
| Mach Mode | | `sensor` | `machMode` |
|
||||||
| On / Off Status | `lightbulb` | `sensor` | `onOffStatus` |
|
| On / Off Status | `lightbulb` | `sensor` | `onOffStatus` |
|
||||||
| Quick Delay Time Status | | `sensor` | `quickDelayTimeStatus` |
|
| Quick Delay Time Status | | `sensor` | `quickDelayTimeStatus` |
|
||||||
| RGB Light Color | `lightbulb` | `sensor` | `rgbLightColors` |
|
| RGB Light Color | `lightbulb` | `sensor` | `rgbLightColors` |
|
||||||
| RGB Light Status | `lightbulb` | `sensor` | `rgbLightStatus` |
|
| RGB Light Status | `lightbulb` | `sensor` | `rgbLightStatus` |
|
||||||
|
| Wind Speed | `fan` | `sensor` | `windSpeed` |
|
||||||
|
|
||||||
### Induction Hob
|
### Hob
|
||||||
#### Controls
|
#### Controls
|
||||||
| Name | Icon | Entity | Key |
|
| Name | Icon | Entity | Key |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
@ -348,7 +343,7 @@ For every device exists a hidden button which can be used to log all infos of yo
|
|||||||
| Temperature Freezer | `snowflake-thermometer` | `sensor` | `tempZ2` |
|
| Temperature Freezer | `snowflake-thermometer` | `sensor` | `tempZ2` |
|
||||||
| Temperature Fridge | `thermometer` | `sensor` | `tempZ1` |
|
| Temperature Fridge | `thermometer` | `sensor` | `tempZ1` |
|
||||||
|
|
||||||
### Tumble Dryer
|
### Tumble dryer
|
||||||
#### Controls
|
#### Controls
|
||||||
| Name | Icon | Entity | Key |
|
| Name | Icon | Entity | Key |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
@ -386,28 +381,7 @@ For every device exists a hidden button which can be used to log all infos of yo
|
|||||||
| Steam level | `smoke` | `sensor` | `steamLevel` |
|
| Steam level | `smoke` | `sensor` | `steamLevel` |
|
||||||
| Temperature level | `thermometer` | `sensor` | `tempLevel` |
|
| Temperature level | `thermometer` | `sensor` | `tempLevel` |
|
||||||
|
|
||||||
### Wine Cellar
|
### Washer dryer
|
||||||
#### Controls
|
|
||||||
| Name | Icon | Entity | Key |
|
|
||||||
| --- | --- | --- | --- |
|
|
||||||
| Light | `lightbulb` | `switch` | `lightStatus` |
|
|
||||||
| Sabbath Mode | `palm-tree` | `switch` | `sabbathStatus` |
|
|
||||||
| Wine Cellar | `thermometer` | `climate` | `settings.tempSel` |
|
|
||||||
| Wine Cellar | `thermometer` | `climate` | `settings.tempSelZ2` |
|
|
||||||
#### Sensors
|
|
||||||
| Name | Icon | Entity | Key |
|
|
||||||
| --- | --- | --- | --- |
|
|
||||||
| Error | `math-log` | `sensor` | `errors` |
|
|
||||||
| Humidity | `water-percent` | `sensor` | `humidityZ1` |
|
|
||||||
| Humidity 2 | `water-percent` | `sensor` | `humidityZ2` |
|
|
||||||
| Program | `play` | `sensor` | `programName` |
|
|
||||||
| Room Temperature | `home-thermometer-outline` | `sensor` | `tempEnv` |
|
|
||||||
| Selected Temperature | `thermometer` | `sensor` | `tempSel` |
|
|
||||||
| Selected Temperature 2 | `thermometer` | `sensor` | `tempSelZ2` |
|
|
||||||
| Temperature | `thermometer` | `sensor` | `temp` |
|
|
||||||
| Temperature 2 | `thermometer` | `sensor` | `tempZ2` |
|
|
||||||
|
|
||||||
### Washer Dryer
|
|
||||||
#### Controls
|
#### Controls
|
||||||
| Name | Icon | Entity | Key |
|
| Name | Icon | Entity | Key |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
@ -482,7 +456,7 @@ For every device exists a hidden button which can be used to log all infos of yo
|
|||||||
| Total Wash Cycle | `counter` | `sensor` | `totalWashCycle` |
|
| Total Wash Cycle | `counter` | `sensor` | `totalWashCycle` |
|
||||||
| Total Water | | `sensor` | `totalWaterUsed` |
|
| Total Water | | `sensor` | `totalWaterUsed` |
|
||||||
|
|
||||||
### Washing Machine
|
### Washing machine
|
||||||
#### Controls
|
#### Controls
|
||||||
| Name | Icon | Entity | Key |
|
| Name | Icon | Entity | Key |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
|
@ -242,16 +242,6 @@ BINARY_SENSORS: dict[str, tuple[HonBinarySensorEntityDescription, ...]] = {
|
|||||||
translation_key="holiday_mode",
|
translation_key="holiday_mode",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
"AP": (
|
|
||||||
HonBinarySensorEntityDescription(
|
|
||||||
key="attributes.parameters.onOffStatus",
|
|
||||||
name="On",
|
|
||||||
device_class=BinarySensorDeviceClass.RUNNING,
|
|
||||||
on_value="1",
|
|
||||||
icon="mdi:power-cycle",
|
|
||||||
translation_key="on",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ import pkg_resources
|
|||||||
from homeassistant.components import persistent_notification
|
from homeassistant.components import persistent_notification
|
||||||
from homeassistant.components.button import ButtonEntityDescription, ButtonEntity
|
from homeassistant.components.button import ButtonEntityDescription, ButtonEntity
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.helpers.entity import EntityCategory
|
from homeassistant.const import EntityCategory
|
||||||
from pyhon.appliance import HonAppliance
|
from pyhon.appliance import HonAppliance
|
||||||
|
|
||||||
from .const import DOMAIN
|
from .const import DOMAIN
|
||||||
|
@ -22,7 +22,7 @@ from homeassistant.const import (
|
|||||||
from homeassistant.core import callback
|
from homeassistant.core import callback
|
||||||
from pyhon.appliance import HonAppliance
|
from pyhon.appliance import HonAppliance
|
||||||
|
|
||||||
from .const import HON_HVAC_MODE, HON_FAN, DOMAIN
|
from .const import HON_HVAC_MODE, HON_FAN, HON_HVAC_PROGRAM, DOMAIN
|
||||||
from .hon import HonEntity
|
from .hon import HonEntity
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
@ -72,22 +72,6 @@ CLIMATES = {
|
|||||||
translation_key="oven",
|
translation_key="oven",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
"WC": (
|
|
||||||
HonClimateEntityDescription(
|
|
||||||
key="settings.tempSel",
|
|
||||||
mode=HVACMode.COOL,
|
|
||||||
name="Wine Cellar",
|
|
||||||
icon="mdi:thermometer",
|
|
||||||
translation_key="wine",
|
|
||||||
),
|
|
||||||
HonClimateEntityDescription(
|
|
||||||
key="settings.tempSelZ2",
|
|
||||||
mode=HVACMode.COOL,
|
|
||||||
name="Wine Cellar",
|
|
||||||
icon="mdi:thermometer",
|
|
||||||
translation_key="wine",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -115,14 +99,13 @@ class HonACClimateEntity(HonEntity, ClimateEntity):
|
|||||||
super().__init__(hass, entry, device, description)
|
super().__init__(hass, entry, device, description)
|
||||||
|
|
||||||
self._attr_temperature_unit = TEMP_CELSIUS
|
self._attr_temperature_unit = TEMP_CELSIUS
|
||||||
self._set_temperature_bound()
|
self._attr_target_temperature_step = device.settings["settings.tempSel"].step
|
||||||
|
self._attr_max_temp = device.settings["settings.tempSel"].max
|
||||||
|
self._attr_min_temp = device.settings["settings.tempSel"].min
|
||||||
|
|
||||||
self._attr_hvac_modes = [HVACMode.OFF]
|
self._attr_hvac_modes = [HVACMode.OFF]
|
||||||
for mode in device.settings["settings.machMode"].values:
|
for mode in device.settings["settings.machMode"].values:
|
||||||
self._attr_hvac_modes.append(HON_HVAC_MODE[mode])
|
self._attr_hvac_modes.append(HON_HVAC_MODE[mode])
|
||||||
self._attr_preset_modes = []
|
|
||||||
for mode in device.settings["startProgram.program"].values:
|
|
||||||
self._attr_preset_modes.append(mode)
|
|
||||||
self._attr_fan_modes = [FAN_OFF]
|
self._attr_fan_modes = [FAN_OFF]
|
||||||
for mode in device.settings["settings.windSpeed"].values:
|
for mode in device.settings["settings.windSpeed"].values:
|
||||||
self._attr_fan_modes.append(HON_FAN[mode])
|
self._attr_fan_modes.append(HON_FAN[mode])
|
||||||
@ -136,18 +119,10 @@ class HonACClimateEntity(HonEntity, ClimateEntity):
|
|||||||
ClimateEntityFeature.TARGET_TEMPERATURE
|
ClimateEntityFeature.TARGET_TEMPERATURE
|
||||||
| ClimateEntityFeature.FAN_MODE
|
| ClimateEntityFeature.FAN_MODE
|
||||||
| ClimateEntityFeature.SWING_MODE
|
| ClimateEntityFeature.SWING_MODE
|
||||||
| ClimateEntityFeature.PRESET_MODE
|
|
||||||
)
|
)
|
||||||
|
|
||||||
self._handle_coordinator_update(update=False)
|
self._handle_coordinator_update(update=False)
|
||||||
|
|
||||||
def _set_temperature_bound(self) -> None:
|
|
||||||
self._attr_target_temperature_step = self._device.settings[
|
|
||||||
"settings.tempSel"
|
|
||||||
].step
|
|
||||||
self._attr_max_temp = self._device.settings["settings.tempSel"].max
|
|
||||||
self._attr_min_temp = self._device.settings["settings.tempSel"].min
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def target_temperature(self) -> int | None:
|
def target_temperature(self) -> int | None:
|
||||||
"""Return the temperature we try to reach."""
|
"""Return the temperature we try to reach."""
|
||||||
@ -175,31 +150,13 @@ class HonACClimateEntity(HonEntity, ClimateEntity):
|
|||||||
async def async_set_hvac_mode(self, hvac_mode):
|
async def async_set_hvac_mode(self, hvac_mode):
|
||||||
self._attr_hvac_mode = hvac_mode
|
self._attr_hvac_mode = hvac_mode
|
||||||
if hvac_mode == HVACMode.OFF:
|
if hvac_mode == HVACMode.OFF:
|
||||||
await self._device.commands["stopProgram"].send()
|
command = "stopProgram"
|
||||||
self._device.sync_command("stopProgram", "settings")
|
|
||||||
else:
|
else:
|
||||||
self._device.settings["settings.onOffStatus"].value = "1"
|
mode = HON_HVAC_PROGRAM[hvac_mode]
|
||||||
setting = self._device.settings["settings.machMode"]
|
self._device.settings["startProgram.program"].value = mode
|
||||||
modes = {HON_HVAC_MODE[number]: number for number in setting.values}
|
command = "startProgram"
|
||||||
setting.value = modes[hvac_mode]
|
await self._device.commands[command].send()
|
||||||
await self._device.commands["settings"].send()
|
self._device.sync_command(command, "settings")
|
||||||
self.async_write_ha_state()
|
|
||||||
|
|
||||||
@property
|
|
||||||
def preset_mode(self) -> str | None:
|
|
||||||
"""Return the current Preset for this channel."""
|
|
||||||
return None
|
|
||||||
|
|
||||||
async def async_set_preset_mode(self, preset_mode: str) -> None:
|
|
||||||
"""Set the new preset mode."""
|
|
||||||
if program := self._device.settings.get(f"startProgram.program"):
|
|
||||||
program.value = preset_mode
|
|
||||||
self._device.sync_command("startProgram", "settings")
|
|
||||||
self._set_temperature_bound()
|
|
||||||
self._handle_coordinator_update(update=False)
|
|
||||||
await self.coordinator.async_refresh()
|
|
||||||
self._attr_preset_mode = preset_mode
|
|
||||||
await self._device.commands["startProgram"].send()
|
|
||||||
self.async_write_ha_state()
|
self.async_write_ha_state()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -256,7 +213,7 @@ class HonACClimateEntity(HonEntity, ClimateEntity):
|
|||||||
|
|
||||||
|
|
||||||
class HonClimateEntity(HonEntity, ClimateEntity):
|
class HonClimateEntity(HonEntity, ClimateEntity):
|
||||||
entity_description: HonClimateEntityDescription
|
entity_description = HonClimateEntityDescription
|
||||||
|
|
||||||
def __init__(self, hass, entry, device: HonAppliance, description) -> None:
|
def __init__(self, hass, entry, device: HonAppliance, description) -> None:
|
||||||
super().__init__(hass, entry, device, description)
|
super().__init__(hass, entry, device, description)
|
||||||
@ -269,7 +226,7 @@ class HonClimateEntity(HonEntity, ClimateEntity):
|
|||||||
)
|
)
|
||||||
|
|
||||||
self._attr_hvac_modes = [description.mode]
|
self._attr_hvac_modes = [description.mode]
|
||||||
if "stopProgram" in device.commands:
|
if device.get("onOffStatus"):
|
||||||
self._attr_hvac_modes += [HVACMode.OFF]
|
self._attr_hvac_modes += [HVACMode.OFF]
|
||||||
modes = []
|
modes = []
|
||||||
else:
|
else:
|
||||||
@ -288,15 +245,15 @@ class HonClimateEntity(HonEntity, ClimateEntity):
|
|||||||
self._handle_coordinator_update(update=False)
|
self._handle_coordinator_update(update=False)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def target_temperature(self) -> float | None:
|
def target_temperature(self) -> int | None:
|
||||||
"""Return the temperature we try to reach."""
|
"""Return the temperature we try to reach."""
|
||||||
return float(self._device.get(self.entity_description.key))
|
return int(self._device.get(self.entity_description.key))
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def current_temperature(self) -> float | None:
|
def current_temperature(self) -> int | None:
|
||||||
"""Return the current temperature."""
|
"""Return the current temperature."""
|
||||||
temp_key = self.entity_description.key.split(".")[-1].replace("Sel", "")
|
temp_key = self.entity_description.key.split(".")[-1].replace("Sel", "")
|
||||||
return float(self._device.get(temp_key))
|
return int(self._device.get(temp_key))
|
||||||
|
|
||||||
async def async_set_temperature(self, **kwargs):
|
async def async_set_temperature(self, **kwargs):
|
||||||
if (temperature := kwargs.get(ATTR_TEMPERATURE)) is None:
|
if (temperature := kwargs.get(ATTR_TEMPERATURE)) is None:
|
||||||
|
@ -17,7 +17,6 @@ PLATFORMS = [
|
|||||||
"button",
|
"button",
|
||||||
"binary_sensor",
|
"binary_sensor",
|
||||||
"climate",
|
"climate",
|
||||||
"fan",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
HON_HVAC_MODE = {
|
HON_HVAC_MODE = {
|
||||||
@ -70,136 +69,123 @@ LANGUAGES = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
WASHING_PR_PHASE = {
|
WASHING_PR_PHASE = {
|
||||||
"0": "ready",
|
"0": "WASHING_CMD&CTRL.PHASE_READY.TITLE",
|
||||||
"1": "washing",
|
"1": "WASHING_CMD&CTRL.PHASE_WASHING.TITLE",
|
||||||
"2": "washing",
|
"2": "WASHING_CMD&CTRL.PHASE_WASHING.TITLE",
|
||||||
"3": "spin",
|
"3": "WASHING_CMD&CTRL.PHASE_SPIN.TITLE",
|
||||||
"4": "rinse",
|
"4": "WASHING_CMD&CTRL.PHASE_RINSE.TITLE",
|
||||||
"5": "rinse",
|
"5": "WASHING_CMD&CTRL.PHASE_RINSE.TITLE",
|
||||||
"6": "rinse",
|
"6": "WASHING_CMD&CTRL.PHASE_RINSE.TITLE",
|
||||||
"7": "drying",
|
"7": "WASHING_CMD&CTRL.PHASE_DRYING.TITLE",
|
||||||
"9": "steam",
|
"9": "WASHING_CMD&CTRL.PHASE_STEAM.TITLE",
|
||||||
"10": "ready",
|
"10": "WASHING_CMD&CTRL.PHASE_READY.TITLE",
|
||||||
"11": "spin",
|
"11": "WASHING_CMD&CTRL.PHASE_SPIN.TITLE",
|
||||||
"12": "weighting",
|
"12": "WASHING_CMD&CTRL.PHASE_WEIGHTING.TITLE",
|
||||||
"13": "weighting",
|
"13": "WASHING_CMD&CTRL.PHASE_WEIGHTING.TITLE",
|
||||||
"14": "washing",
|
"14": "WASHING_CMD&CTRL.PHASE_WASHING.TITLE",
|
||||||
"15": "washing",
|
"15": "WASHING_CMD&CTRL.PHASE_WASHING.TITLE",
|
||||||
"16": "washing",
|
"16": "WASHING_CMD&CTRL.PHASE_WASHING.TITLE",
|
||||||
"17": "rinse",
|
"17": "WASHING_CMD&CTRL.PHASE_RINSE.TITLE",
|
||||||
"18": "rinse",
|
"18": "WASHING_CMD&CTRL.PHASE_RINSE.TITLE",
|
||||||
"19": "scheduled",
|
"19": "WASHING_CMD&CTRL.PHASE_SCHEDULED.TITLE",
|
||||||
"20": "tumbling",
|
"20": "WASHING_CMD&CTRL.PHASE_TUMBLING.TITLE",
|
||||||
"24": "refresh",
|
"24": "WASHING_CMD&CTRL.PHASE_REFRESH.TITLE",
|
||||||
"25": "washing",
|
"25": "WASHING_CMD&CTRL.PHASE_WASHING.TITLE",
|
||||||
"26": "heating",
|
"26": "WASHING_CMD&CTRL.PHASE_HEATING.TITLE",
|
||||||
"27": "washing",
|
"27": "WASHING_CMD&CTRL.PHASE_WASHING.TITLE",
|
||||||
}
|
}
|
||||||
|
|
||||||
MACH_MODE = {
|
MACH_MODE = {
|
||||||
"0": "ready", # NO_STATE
|
"0": "WASHING_CMD&CTRL.PHASE_READY.TITLE", # NO_STATE
|
||||||
"1": "ready", # SELECTION_MODE
|
"1": "WASHING_CMD&CTRL.PHASE_READY.TITLE", # SELECTION_MODE
|
||||||
"2": "running", # EXECUTION_MODE
|
"2": "WASHING_CMD&CTRL.PHASE_RUNNING.TITLE", # EXECUTION_MODE
|
||||||
"3": "pause", # PAUSE_MODE
|
"3": "WASHING_CMD&CTRL.PHASE_PAUSE.TITLE", # PAUSE_MODE
|
||||||
"4": "scheduled", # DELAY_START_SELECTION_MODE
|
"4": "WASHING_CMD&CTRL.PHASE_SCHEDULED.TITLE", # DELAY_START_SELECTION_MODE
|
||||||
"5": "scheduled", # DELAY_START_EXECUTION_MODE
|
"5": "WASHING_CMD&CTRL.PHASE_SCHEDULED.TITLE", # DELAY_START_EXECUTION_MODE
|
||||||
"6": "error", # ERROR_MODE
|
"6": "WASHING_CMD&CTRL.PHASE_ERROR.TITLE", # ERROR_MODE
|
||||||
"7": "ready", # END_MODE
|
"7": "WASHING_CMD&CTRL.PHASE_READY.TITLE", # END_MODE
|
||||||
"8": "test", # TEST_MODE
|
"8": "Test", # TEST_MODE
|
||||||
"9": "ending", # STOP_MODE
|
"9": "GLOBALS.APPLIANCE_STATUS.ENDING_PROGRAM", # STOP_MODE
|
||||||
}
|
}
|
||||||
|
|
||||||
TUMBLE_DRYER_PR_PHASE = {
|
TUMBLE_DRYER_PR_PHASE = {
|
||||||
"0": "ready",
|
"0": "WASHING_CMD&CTRL.PHASE_READY.TITLE",
|
||||||
"1": "heat_stroke",
|
"1": "TD_CMD&CTRL.STATUS_PHASE.PHASE_HEAT_STROKE",
|
||||||
"2": "drying",
|
"2": "WASHING_CMD&CTRL.PHASE_DRYING.TITLE",
|
||||||
"3": "cooldown",
|
"3": "TD_CMD&CTRL.STATUS_PHASE.PHASE_COOLDOWN",
|
||||||
"8": "unknown",
|
"8": "unknown",
|
||||||
"11": "ready",
|
"11": "WASHING_CMD&CTRL.PHASE_READY.TITLE",
|
||||||
"12": "unknown",
|
"12": "unknown",
|
||||||
"13": "cooldown",
|
"13": "TD_CMD&CTRL.STATUS_PHASE.PHASE_COOLDOWN",
|
||||||
"14": "heat_stroke",
|
"14": "TD_CMD&CTRL.STATUS_PHASE.PHASE_HEAT_STROKE",
|
||||||
"15": "heat_stroke",
|
"15": "TD_CMD&CTRL.STATUS_PHASE.PHASE_HEAT_STROKE",
|
||||||
"16": "cooldown",
|
"16": "TD_CMD&CTRL.STATUS_PHASE.PHASE_COOLDOWN",
|
||||||
"17": "unknown",
|
"17": "unknown",
|
||||||
"18": "tumbling",
|
"18": "WASHING_CMD&CTRL.PHASE_TUMBLING.DASHBOARD_TITLE",
|
||||||
"19": "drying",
|
"19": "WASHING_CMD&CTRL.PHASE_DRYING.TITLE",
|
||||||
"20": "drying",
|
"20": "WASHING_CMD&CTRL.PHASE_DRYING.TITLE",
|
||||||
}
|
}
|
||||||
|
|
||||||
DIRTY_LEVEL = {
|
DIRTY_LEVEL = {
|
||||||
"0": "unknown",
|
"1": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OPTIONS_VALUES_DESCRIPTION.LITTLE",
|
||||||
"1": "little",
|
"2": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OPTIONS_VALUES_DESCRIPTION.NORMAL",
|
||||||
"2": "normal",
|
"3": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OPTIONS_VALUES_DESCRIPTION.VERY",
|
||||||
"3": "very",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
STEAM_LEVEL = {
|
STEAM_LEVEL = {
|
||||||
"0": "no_steam",
|
"0": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OPTIONS_VALUES_DESCRIPTION.NO_STEAM",
|
||||||
"1": "cotton",
|
"1": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_FABRICS.COTTON_TITLE",
|
||||||
"2": "delicate",
|
"2": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_FABRICS.DELICATE_TITLE",
|
||||||
"3": "synthetic",
|
"3": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_FABRICS.SYNTHETIC_TITLE",
|
||||||
}
|
}
|
||||||
|
|
||||||
DISHWASHER_PR_PHASE = {
|
DISHWASHER_PR_PHASE = {
|
||||||
"0": "ready",
|
"0": "WASHING_CMD&CTRL.PHASE_READY.TITLE",
|
||||||
"1": "prewash",
|
"1": "WASHING_CMD&CTRL.PHASE_PREWASH.TITLE",
|
||||||
"2": "washing",
|
"2": "WASHING_CMD&CTRL.PHASE_WASHING.TITLE",
|
||||||
"3": "rinse",
|
"3": "WASHING_CMD&CTRL.PHASE_RINSE.TITLE",
|
||||||
"4": "drying",
|
"4": "WASHING_CMD&CTRL.PHASE_DRYING.TITLE",
|
||||||
"5": "ready",
|
"5": "WASHING_CMD&CTRL.PHASE_READY.TITLE",
|
||||||
"6": "hot_rinse",
|
"6": "WASHING_CMD&CTRL.PHASE_HOT_RINSE.TITLE",
|
||||||
}
|
}
|
||||||
|
|
||||||
TUMBLE_DRYER_DRY_LEVEL = {
|
TUMBLE_DRYER_DRY_LEVEL = {
|
||||||
"0": "no_dry",
|
"0": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.NO_DRY",
|
||||||
"1": "iron_dry",
|
"1": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OPTIONS_VALUES_DESCRIPTION.IRON_DRY",
|
||||||
"2": "no_dry_iron",
|
"2": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.NO_DRY_IRON_TITLE",
|
||||||
"3": "cupboard_dry",
|
"3": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.CUPBOARD_DRY_TITLE",
|
||||||
"4": "extra_dry",
|
"4": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.EXTRA_DRY_TITLE",
|
||||||
"11": "no_dry",
|
"11": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.NO_DRY",
|
||||||
"12": "iron_dry",
|
"12": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OPTIONS_VALUES_DESCRIPTION.IRON_DRY",
|
||||||
"13": "cupboard_dry",
|
"13": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.CUPBOARD_DRY_TITLE",
|
||||||
"14": "ready_to_wear",
|
"14": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.READY_TO_WEAR_TITLE",
|
||||||
"15": "extra_dry",
|
"15": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.EXTRA_DRY_TITLE",
|
||||||
}
|
}
|
||||||
|
|
||||||
AC_MACH_MODE = {
|
AC_MACH_MODE = {
|
||||||
"0": "auto",
|
"0": "PROGRAMS.AC.IOT_AUTO",
|
||||||
"1": "cool",
|
"1": "PROGRAMS.AC.IOT_COOL",
|
||||||
"2": "cool",
|
"2": "PROGRAMS.AC.IOT_COOL",
|
||||||
"3": "dry",
|
"3": "PROGRAMS.AC.IOT_DRY",
|
||||||
"4": "heat",
|
"4": "PROGRAMS.AC.IOT_HEAT",
|
||||||
"5": "fan",
|
"5": "PROGRAMS.AC.IOT_FAN",
|
||||||
"6": "fan",
|
"6": "PROGRAMS.AC.IOT_FAN",
|
||||||
}
|
}
|
||||||
|
|
||||||
AC_FAN_MODE = {
|
AC_FAN_MODE = {
|
||||||
"1": "high",
|
"1": "AC.PROGRAM_CARD.WIND_SPEED_HIGH",
|
||||||
"2": "mid",
|
"2": "AC.PROGRAM_CARD.WIND_SPEED_MID",
|
||||||
"3": "low",
|
"3": "AC.PROGRAM_CARD.WIND_SPEED_LOW",
|
||||||
"4": "auto",
|
"4": "AC.PROGRAM_CARD.WIND_SPEED_AUTO",
|
||||||
"5": "auto",
|
"5": "AC.PROGRAM_CARD.WIND_SPEED_AUTO",
|
||||||
}
|
}
|
||||||
|
|
||||||
AC_HUMAN_SENSE = {
|
AC_HUMAN_SENSE = {
|
||||||
"0": "touch_off",
|
"0": "AC.PROGRAM_DETAIL.TOUCH_OFF",
|
||||||
"1": "avoid_touch",
|
"1": "AC.PROGRAM_DETAIL.AVOID_TOUCH",
|
||||||
"2": "follow_touch",
|
"2": "AC.PROGRAM_DETAIL.FOLLOW_TOUCH",
|
||||||
"3": "unknown",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
AP_MACH_MODE = {
|
REF_ZONES = {
|
||||||
"0": "standby",
|
"fridge": "REF.ZONES.FRIDGE",
|
||||||
"1": "sleep",
|
"freezer": "REF.ZONES.FREEZER",
|
||||||
"2": "auto",
|
"vtroom1": "REF.ZONES.MY_ZONE_1",
|
||||||
"3": "allergens",
|
"fridge_freezer": ["REF.ZONES.FRIDGE", " & ", "REF.ZONES.FREEZER"],
|
||||||
"4": "max",
|
|
||||||
}
|
|
||||||
|
|
||||||
AP_DIFFUSER_LEVEL = {
|
|
||||||
"1": "soft",
|
|
||||||
"2": "mid",
|
|
||||||
"3": "h_biotics",
|
|
||||||
"4": "custom",
|
|
||||||
}
|
}
|
||||||
|
@ -1,122 +0,0 @@
|
|||||||
import logging
|
|
||||||
import math
|
|
||||||
from dataclasses import dataclass
|
|
||||||
from typing import Any
|
|
||||||
|
|
||||||
from homeassistant.components.fan import (
|
|
||||||
FanEntityDescription,
|
|
||||||
FanEntity,
|
|
||||||
FanEntityFeature,
|
|
||||||
)
|
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.core import callback
|
|
||||||
from homeassistant.util.percentage import (
|
|
||||||
percentage_to_ranged_value,
|
|
||||||
ranged_value_to_percentage,
|
|
||||||
)
|
|
||||||
from pyhon.appliance import HonAppliance
|
|
||||||
from pyhon.parameter.range import HonParameterRange
|
|
||||||
|
|
||||||
from .const import DOMAIN
|
|
||||||
from .hon import HonEntity
|
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
|
||||||
class HonFanEntityDescription(FanEntityDescription):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
FANS = {
|
|
||||||
"HO": (
|
|
||||||
HonFanEntityDescription(
|
|
||||||
key="settings.windSpeed",
|
|
||||||
name="Wind Speed",
|
|
||||||
translation_key="air_extraction",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None:
|
|
||||||
entities = []
|
|
||||||
for device in hass.data[DOMAIN][entry.unique_id].appliances:
|
|
||||||
for description in FANS.get(device.appliance_type, []):
|
|
||||||
if isinstance(description, HonFanEntityDescription):
|
|
||||||
if description.key not in device.available_settings or not device.get(
|
|
||||||
description.key.split(".")[-1]
|
|
||||||
):
|
|
||||||
continue
|
|
||||||
entity = HonFanEntity(hass, entry, device, description)
|
|
||||||
else:
|
|
||||||
continue
|
|
||||||
await entity.coordinator.async_config_entry_first_refresh()
|
|
||||||
entities.append(entity)
|
|
||||||
async_add_entities(entities)
|
|
||||||
|
|
||||||
|
|
||||||
class HonFanEntity(HonEntity, FanEntity):
|
|
||||||
entity_description: HonFanEntityDescription
|
|
||||||
|
|
||||||
def __init__(self, hass, entry, device: HonAppliance, description) -> None:
|
|
||||||
self._attr_supported_features = FanEntityFeature.SET_SPEED
|
|
||||||
self._wind_speed: HonParameterRange = device.settings.get(description.key)
|
|
||||||
self._speed_range = (
|
|
||||||
int(self._wind_speed.values[1]),
|
|
||||||
int(self._wind_speed.values[-1]),
|
|
||||||
)
|
|
||||||
self._command, self._parameter = description.key.split(".")
|
|
||||||
|
|
||||||
super().__init__(hass, entry, device, description)
|
|
||||||
self._handle_coordinator_update(update=False)
|
|
||||||
|
|
||||||
@property
|
|
||||||
def percentage(self) -> int | None:
|
|
||||||
"""Return the current speed."""
|
|
||||||
value = int(self._device.get(self._parameter, "0"))
|
|
||||||
return ranged_value_to_percentage(self._speed_range, value)
|
|
||||||
|
|
||||||
@property
|
|
||||||
def speed_count(self) -> int:
|
|
||||||
"""Return the number of speeds the fan supports."""
|
|
||||||
return len(self._wind_speed.values[1:])
|
|
||||||
|
|
||||||
async def async_set_percentage(self, percentage: int) -> None:
|
|
||||||
"""Set the speed percentage of the fan."""
|
|
||||||
mode = math.ceil(percentage_to_ranged_value(self._speed_range, percentage))
|
|
||||||
self._device.settings[self.entity_description.key].value = mode
|
|
||||||
await self._device.commands[self._command].send()
|
|
||||||
self.async_write_ha_state()
|
|
||||||
|
|
||||||
@property
|
|
||||||
def is_on(self) -> bool | None:
|
|
||||||
"""Return true if device is on."""
|
|
||||||
mode = math.ceil(percentage_to_ranged_value(self._speed_range, self.percentage))
|
|
||||||
return mode > self._wind_speed.min
|
|
||||||
|
|
||||||
async def async_turn_on(
|
|
||||||
self,
|
|
||||||
percentage: int | None = None,
|
|
||||||
preset_mode: str | None = None,
|
|
||||||
**kwargs: Any,
|
|
||||||
) -> None:
|
|
||||||
"""Turn the entity on."""
|
|
||||||
if percentage is None:
|
|
||||||
percentage = ranged_value_to_percentage(
|
|
||||||
self._speed_range, int(self._wind_speed.values[1])
|
|
||||||
)
|
|
||||||
await self.async_set_percentage(percentage)
|
|
||||||
|
|
||||||
async def async_turn_off(self, **kwargs: Any) -> None:
|
|
||||||
"""Turn the entity off."""
|
|
||||||
self._device.settings[self.entity_description.key].value = 0
|
|
||||||
await self._device.commands[self._command].send()
|
|
||||||
self.async_write_ha_state()
|
|
||||||
|
|
||||||
@callback
|
|
||||||
def _handle_coordinator_update(self, update=True) -> None:
|
|
||||||
self._wind_speed = self._device.settings.get(self.entity_description.key)
|
|
||||||
self._attr_percentage = self.percentage
|
|
||||||
if update:
|
|
||||||
self.async_write_ha_state()
|
|
@ -9,7 +9,7 @@
|
|||||||
"iot_class": "cloud_polling",
|
"iot_class": "cloud_polling",
|
||||||
"issue_tracker": "https://github.com/Andre0512/hon/issues",
|
"issue_tracker": "https://github.com/Andre0512/hon/issues",
|
||||||
"requirements": [
|
"requirements": [
|
||||||
"pyhOn==0.13.1"
|
"pyhOn==0.12.4"
|
||||||
],
|
],
|
||||||
"version": "0.9.0-beta.4"
|
"version": "0.8.1"
|
||||||
}
|
}
|
||||||
|
@ -163,33 +163,17 @@ NUMBERS: dict[str, tuple[NumberEntityDescription, ...]] = {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
"HO": (
|
"HO": (
|
||||||
|
HonNumberEntityDescription(
|
||||||
|
key="startProgram.windSpeed",
|
||||||
|
name="Wind speed",
|
||||||
|
icon="mdi:fan",
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
),
|
||||||
HonNumberEntityDescription(
|
HonNumberEntityDescription(
|
||||||
key="startProgram.lightStatus",
|
key="startProgram.lightStatus",
|
||||||
name="Light status",
|
name="Light status",
|
||||||
icon="mdi:lightbulb",
|
icon="mdi:lightbulb",
|
||||||
),
|
entity_category=EntityCategory.CONFIG,
|
||||||
),
|
|
||||||
"AP": (
|
|
||||||
HonNumberEntityDescription(
|
|
||||||
key="settings.aromaTimeOn",
|
|
||||||
name="Aroma Time On",
|
|
||||||
icon="mdi:thermometer",
|
|
||||||
native_unit_of_measurement=UnitOfTime.SECONDS,
|
|
||||||
),
|
|
||||||
HonNumberEntityDescription(
|
|
||||||
key="settings.aromaTimeOff",
|
|
||||||
name="Aroma Time Off",
|
|
||||||
icon="mdi:thermometer",
|
|
||||||
native_unit_of_measurement=UnitOfTime.SECONDS,
|
|
||||||
),
|
|
||||||
HonNumberEntityDescription(
|
|
||||||
key="settings.lightStatus",
|
|
||||||
name="Light status",
|
|
||||||
icon="mdi:lightbulb",
|
|
||||||
),
|
|
||||||
HonNumberEntityDescription(
|
|
||||||
key="settings.pollenLevel",
|
|
||||||
name="Pollen Level",
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
@ -228,7 +212,7 @@ class HonNumberEntity(HonEntity, NumberEntity):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def native_value(self) -> float | None:
|
def native_value(self) -> float | None:
|
||||||
return self._device.get(self.entity_description.key.split(".")[-1])
|
return self._device.get(self.entity_description.key)
|
||||||
|
|
||||||
async def async_set_native_value(self, value: float) -> None:
|
async def async_set_native_value(self, value: float) -> None:
|
||||||
setting = self._device.settings[self.entity_description.key]
|
setting = self._device.settings[self.entity_description.key]
|
||||||
@ -236,8 +220,6 @@ class HonNumberEntity(HonEntity, NumberEntity):
|
|||||||
setting.value = value
|
setting.value = value
|
||||||
command = self.entity_description.key.split(".")[0]
|
command = self.entity_description.key.split(".")[0]
|
||||||
await self._device.commands[command].send()
|
await self._device.commands[command].send()
|
||||||
if command != "settings":
|
|
||||||
self._device.sync_command(command, "settings")
|
|
||||||
await self.coordinator.async_refresh()
|
await self.coordinator.async_refresh()
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
@ -247,7 +229,7 @@ class HonNumberEntity(HonEntity, NumberEntity):
|
|||||||
self._attr_native_max_value = setting.max
|
self._attr_native_max_value = setting.max
|
||||||
self._attr_native_min_value = setting.min
|
self._attr_native_min_value = setting.min
|
||||||
self._attr_native_step = setting.step
|
self._attr_native_step = setting.step
|
||||||
self._attr_native_value = self.native_value
|
self._attr_native_value = setting.value
|
||||||
if update:
|
if update:
|
||||||
self.async_write_ha_state()
|
self.async_write_ha_state()
|
||||||
|
|
||||||
|
@ -2,15 +2,15 @@ from __future__ import annotations
|
|||||||
|
|
||||||
import logging
|
import logging
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from typing import Dict, List
|
|
||||||
|
|
||||||
from homeassistant.components.select import SelectEntity, SelectEntityDescription
|
from homeassistant.components.select import SelectEntity, SelectEntityDescription
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import UnitOfTemperature, UnitOfTime, REVOLUTIONS_PER_MINUTE
|
from homeassistant.const import UnitOfTemperature, UnitOfTime, REVOLUTIONS_PER_MINUTE
|
||||||
from homeassistant.core import callback
|
from homeassistant.core import callback
|
||||||
from homeassistant.helpers.entity import EntityCategory
|
from homeassistant.helpers.entity import EntityCategory
|
||||||
|
from pyhon.appliance import HonAppliance
|
||||||
|
from pyhon.parameter.fixed import HonParameterFixed
|
||||||
|
|
||||||
from . import const
|
|
||||||
from .const import DOMAIN
|
from .const import DOMAIN
|
||||||
from .hon import HonEntity, unique_entities
|
from .hon import HonEntity, unique_entities
|
||||||
|
|
||||||
@ -19,13 +19,12 @@ _LOGGER = logging.getLogger(__name__)
|
|||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class HonSelectEntityDescription(SelectEntityDescription):
|
class HonSelectEntityDescription(SelectEntityDescription):
|
||||||
option_list: Dict[str, str] = None
|
pass
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class HonConfigSelectEntityDescription(SelectEntityDescription):
|
class HonConfigSelectEntityDescription(SelectEntityDescription):
|
||||||
entity_category: EntityCategory = EntityCategory.CONFIG
|
entity_category: EntityCategory = EntityCategory.CONFIG
|
||||||
option_list: Dict[str, str] = None
|
|
||||||
|
|
||||||
|
|
||||||
SELECTS = {
|
SELECTS = {
|
||||||
@ -68,7 +67,6 @@ SELECTS = {
|
|||||||
name="Dry level",
|
name="Dry level",
|
||||||
icon="mdi:hair-dryer",
|
icon="mdi:hair-dryer",
|
||||||
translation_key="dry_levels",
|
translation_key="dry_levels",
|
||||||
option_list=const.TUMBLE_DRYER_DRY_LEVEL,
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
"OV": (
|
"OV": (
|
||||||
@ -117,7 +115,6 @@ SELECTS = {
|
|||||||
name="Eco Pilot",
|
name="Eco Pilot",
|
||||||
icon="mdi:run",
|
icon="mdi:run",
|
||||||
translation_key="eco_pilot",
|
translation_key="eco_pilot",
|
||||||
option_list=const.AC_HUMAN_SENSE,
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
"REF": (
|
"REF": (
|
||||||
@ -133,19 +130,6 @@ SELECTS = {
|
|||||||
translation_key="ref_zones",
|
translation_key="ref_zones",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
"AP": (
|
|
||||||
HonSelectEntityDescription(
|
|
||||||
key="settings.aromaStatus",
|
|
||||||
name="Diffuser Level",
|
|
||||||
option_list=const.AP_DIFFUSER_LEVEL,
|
|
||||||
),
|
|
||||||
HonSelectEntityDescription(
|
|
||||||
key="settings.machMode",
|
|
||||||
name="Mode",
|
|
||||||
icon="mdi:run",
|
|
||||||
option_list=const.AP_MACH_MODE,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SELECTS["WD"] = unique_entities(SELECTS["WM"], SELECTS["TD"])
|
SELECTS["WD"] = unique_entities(SELECTS["WM"], SELECTS["TD"])
|
||||||
@ -168,66 +152,46 @@ async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> Non
|
|||||||
async_add_entities(entities)
|
async_add_entities(entities)
|
||||||
|
|
||||||
|
|
||||||
class HonConfigSelectEntity(HonEntity, SelectEntity):
|
class HonSelectEntity(HonEntity, SelectEntity):
|
||||||
entity_description: HonConfigSelectEntityDescription
|
entity_description: HonSelectEntityDescription
|
||||||
|
|
||||||
|
def __init__(self, hass, entry, device: HonAppliance, description) -> None:
|
||||||
|
super().__init__(hass, entry, device, description)
|
||||||
|
|
||||||
|
if not (setting := self._device.settings.get(description.key)):
|
||||||
|
self._attr_options: list[str] = []
|
||||||
|
elif not isinstance(setting, HonParameterFixed):
|
||||||
|
self._attr_options: list[str] = setting.values
|
||||||
|
else:
|
||||||
|
self._attr_options: list[str] = [setting.value]
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def current_option(self) -> str | None:
|
def current_option(self) -> str | None:
|
||||||
if not (setting := self._device.settings.get(self.entity_description.key)):
|
value = self._device.settings.get(self.entity_description.key)
|
||||||
|
if value is None or value.value not in self._attr_options:
|
||||||
return None
|
return None
|
||||||
value = setting.value
|
return value.value
|
||||||
if self.entity_description.option_list:
|
|
||||||
value = self.entity_description.option_list.get(str(value), value)
|
|
||||||
if value not in self._attr_options:
|
|
||||||
return None
|
|
||||||
return value
|
|
||||||
|
|
||||||
@property
|
|
||||||
def options(self) -> list[str]:
|
|
||||||
setting = self._device.settings.get(self.entity_description.key)
|
|
||||||
if setting is None:
|
|
||||||
return []
|
|
||||||
options = self.entity_description.option_list or {}
|
|
||||||
return [options.get(str(key), key) for key in setting.values]
|
|
||||||
|
|
||||||
def _option_to_number(self, option: str, values: List[str]):
|
|
||||||
if (options := self.entity_description.option_list) is not None:
|
|
||||||
return next(
|
|
||||||
(k for k, v in options.items() if k in values and v == option),
|
|
||||||
option,
|
|
||||||
)
|
|
||||||
return option
|
|
||||||
|
|
||||||
async def async_select_option(self, option: str) -> None:
|
async def async_select_option(self, option: str) -> None:
|
||||||
setting = self._device.settings[self.entity_description.key]
|
self._device.settings[self.entity_description.key].value = option
|
||||||
setting.value = self._option_to_number(option, setting.values)
|
command = self.entity_description.key.split(".")[0]
|
||||||
|
await self._device.commands[command].send()
|
||||||
await self.coordinator.async_refresh()
|
await self.coordinator.async_refresh()
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
def _handle_coordinator_update(self, update=True) -> None:
|
def _handle_coordinator_update(self, update=True) -> None:
|
||||||
self._attr_available = self.available
|
setting = self._device.settings.get(self.entity_description.key)
|
||||||
self._attr_options = self.options
|
if setting is None:
|
||||||
self._attr_current_option = self.current_option
|
self._attr_available = False
|
||||||
|
self._attr_options: list[str] = []
|
||||||
|
self._attr_native_value = None
|
||||||
|
else:
|
||||||
|
self._attr_available = True
|
||||||
|
self._attr_options: list[str] = setting.values
|
||||||
|
self._attr_native_value = setting.value
|
||||||
if update:
|
if update:
|
||||||
self.async_write_ha_state()
|
self.async_write_ha_state()
|
||||||
|
|
||||||
@property
|
|
||||||
def available(self) -> bool:
|
|
||||||
return self._device.settings.get(self.entity_description.key) is not None
|
|
||||||
|
|
||||||
|
|
||||||
class HonSelectEntity(HonConfigSelectEntity):
|
|
||||||
entity_description: HonSelectEntityDescription
|
|
||||||
|
|
||||||
async def async_select_option(self, option: str) -> None:
|
|
||||||
setting = self._device.settings[self.entity_description.key]
|
|
||||||
setting.value = self._option_to_number(option, setting.values)
|
|
||||||
command = self.entity_description.key.split(".")[0]
|
|
||||||
await self._device.commands[command].send()
|
|
||||||
if command != "settings":
|
|
||||||
self._device.sync_command(command, "settings")
|
|
||||||
await self.coordinator.async_refresh()
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def available(self) -> bool:
|
def available(self) -> bool:
|
||||||
"""Return True if entity is available."""
|
"""Return True if entity is available."""
|
||||||
@ -236,3 +200,16 @@ class HonSelectEntity(HonConfigSelectEntity):
|
|||||||
and self._device.get("remoteCtrValid", "1") == "1"
|
and self._device.get("remoteCtrValid", "1") == "1"
|
||||||
and self._device.get("attributes.lastConnEvent.category") != "DISCONNECTED"
|
and self._device.get("attributes.lastConnEvent.category") != "DISCONNECTED"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class HonConfigSelectEntity(HonSelectEntity):
|
||||||
|
entity_description: HonConfigSelectEntityDescription
|
||||||
|
|
||||||
|
async def async_select_option(self, option: str) -> None:
|
||||||
|
self._device.settings[self.entity_description.key].value = option
|
||||||
|
await self.coordinator.async_refresh()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def available(self) -> bool:
|
||||||
|
"""Return True if entity is available."""
|
||||||
|
return super(SelectEntity, self).available
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import logging
|
import logging
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from typing import Dict
|
|
||||||
|
|
||||||
from homeassistant.components.sensor import (
|
from homeassistant.components.sensor import (
|
||||||
SensorEntity,
|
SensorEntity,
|
||||||
@ -9,12 +8,7 @@ from homeassistant.components.sensor import (
|
|||||||
SensorEntityDescription,
|
SensorEntityDescription,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import (
|
from homeassistant.const import PERCENTAGE
|
||||||
PERCENTAGE,
|
|
||||||
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
|
||||||
CONCENTRATION_PARTS_PER_BILLION,
|
|
||||||
CONCENTRATION_PARTS_PER_MILLION,
|
|
||||||
)
|
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
REVOLUTIONS_PER_MINUTE,
|
REVOLUTIONS_PER_MINUTE,
|
||||||
UnitOfEnergy,
|
UnitOfEnergy,
|
||||||
@ -26,6 +20,7 @@ from homeassistant.const import (
|
|||||||
)
|
)
|
||||||
from homeassistant.core import callback
|
from homeassistant.core import callback
|
||||||
from homeassistant.helpers.entity import EntityCategory
|
from homeassistant.helpers.entity import EntityCategory
|
||||||
|
from pyhon.appliance import HonAppliance
|
||||||
|
|
||||||
from . import const
|
from . import const
|
||||||
from .const import DOMAIN
|
from .const import DOMAIN
|
||||||
@ -37,12 +32,11 @@ _LOGGER = logging.getLogger(__name__)
|
|||||||
@dataclass
|
@dataclass
|
||||||
class HonConfigSensorEntityDescription(SensorEntityDescription):
|
class HonConfigSensorEntityDescription(SensorEntityDescription):
|
||||||
entity_category: EntityCategory = EntityCategory.CONFIG
|
entity_category: EntityCategory = EntityCategory.CONFIG
|
||||||
option_list: Dict[str, str] = None
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class HonSensorEntityDescription(SensorEntityDescription):
|
class HonSensorEntityDescription(SensorEntityDescription):
|
||||||
option_list: Dict[str, str] = None
|
pass
|
||||||
|
|
||||||
|
|
||||||
SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
|
SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
|
||||||
@ -53,7 +47,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
|
|||||||
icon="mdi:washing-machine",
|
icon="mdi:washing-machine",
|
||||||
device_class=SensorDeviceClass.ENUM,
|
device_class=SensorDeviceClass.ENUM,
|
||||||
translation_key="program_phases_wm",
|
translation_key="program_phases_wm",
|
||||||
option_list=const.WASHING_PR_PHASE,
|
options=list(const.WASHING_PR_PHASE),
|
||||||
),
|
),
|
||||||
HonSensorEntityDescription(
|
HonSensorEntityDescription(
|
||||||
key="totalElectricityUsed",
|
key="totalElectricityUsed",
|
||||||
@ -108,7 +102,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
|
|||||||
icon="mdi:information",
|
icon="mdi:information",
|
||||||
device_class=SensorDeviceClass.ENUM,
|
device_class=SensorDeviceClass.ENUM,
|
||||||
translation_key="washing_modes",
|
translation_key="washing_modes",
|
||||||
option_list=const.MACH_MODE,
|
options=list(const.MACH_MODE),
|
||||||
),
|
),
|
||||||
HonSensorEntityDescription(
|
HonSensorEntityDescription(
|
||||||
key="errors", name="Error", icon="mdi:math-log", translation_key="errors"
|
key="errors", name="Error", icon="mdi:math-log", translation_key="errors"
|
||||||
@ -160,9 +154,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
|
|||||||
key="dirtyLevel",
|
key="dirtyLevel",
|
||||||
name="Dirt level",
|
name="Dirt level",
|
||||||
icon="mdi:liquid-spot",
|
icon="mdi:liquid-spot",
|
||||||
device_class=SensorDeviceClass.ENUM,
|
|
||||||
translation_key="dirt_level",
|
translation_key="dirt_level",
|
||||||
option_list=const.DIRTY_LEVEL,
|
|
||||||
),
|
),
|
||||||
HonConfigSensorEntityDescription(
|
HonConfigSensorEntityDescription(
|
||||||
key="startProgram.suggestedLoadW",
|
key="startProgram.suggestedLoadW",
|
||||||
@ -195,7 +187,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
|
|||||||
icon="mdi:information",
|
icon="mdi:information",
|
||||||
device_class=SensorDeviceClass.ENUM,
|
device_class=SensorDeviceClass.ENUM,
|
||||||
translation_key="washing_modes",
|
translation_key="washing_modes",
|
||||||
option_list=const.MACH_MODE,
|
options=list(const.MACH_MODE),
|
||||||
),
|
),
|
||||||
HonSensorEntityDescription(
|
HonSensorEntityDescription(
|
||||||
key="errors", name="Error", icon="mdi:math-log", translation_key="errors"
|
key="errors", name="Error", icon="mdi:math-log", translation_key="errors"
|
||||||
@ -229,7 +221,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
|
|||||||
icon="mdi:washing-machine",
|
icon="mdi:washing-machine",
|
||||||
device_class=SensorDeviceClass.ENUM,
|
device_class=SensorDeviceClass.ENUM,
|
||||||
translation_key="program_phases_td",
|
translation_key="program_phases_td",
|
||||||
option_list=const.TUMBLE_DRYER_PR_PHASE,
|
options=list(const.TUMBLE_DRYER_PR_PHASE),
|
||||||
),
|
),
|
||||||
HonSensorEntityDescription(
|
HonSensorEntityDescription(
|
||||||
key="dryLevel",
|
key="dryLevel",
|
||||||
@ -237,7 +229,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
|
|||||||
icon="mdi:hair-dryer",
|
icon="mdi:hair-dryer",
|
||||||
device_class=SensorDeviceClass.ENUM,
|
device_class=SensorDeviceClass.ENUM,
|
||||||
translation_key="dry_levels",
|
translation_key="dry_levels",
|
||||||
option_list=const.TUMBLE_DRYER_DRY_LEVEL,
|
options=list(const.TUMBLE_DRYER_DRY_LEVEL),
|
||||||
),
|
),
|
||||||
HonSensorEntityDescription(
|
HonSensorEntityDescription(
|
||||||
key="tempLevel",
|
key="tempLevel",
|
||||||
@ -263,18 +255,14 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
|
|||||||
HonConfigSensorEntityDescription(
|
HonConfigSensorEntityDescription(
|
||||||
key="startProgram.steamLevel",
|
key="startProgram.steamLevel",
|
||||||
name="Steam level",
|
name="Steam level",
|
||||||
device_class=SensorDeviceClass.ENUM,
|
|
||||||
icon="mdi:smoke",
|
icon="mdi:smoke",
|
||||||
translation_key="steam_level",
|
translation_key="steam_level",
|
||||||
option_list=const.STEAM_LEVEL,
|
|
||||||
),
|
),
|
||||||
HonSensorEntityDescription(
|
HonSensorEntityDescription(
|
||||||
key="steamLevel",
|
key="steamLevel",
|
||||||
name="Steam level",
|
name="Steam level",
|
||||||
icon="mdi:smoke",
|
icon="mdi:smoke",
|
||||||
device_class=SensorDeviceClass.ENUM,
|
|
||||||
translation_key="steam_level",
|
translation_key="steam_level",
|
||||||
option_list=const.STEAM_LEVEL,
|
|
||||||
),
|
),
|
||||||
HonConfigSensorEntityDescription(
|
HonConfigSensorEntityDescription(
|
||||||
key="steamType",
|
key="steamType",
|
||||||
@ -403,7 +391,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
|
|||||||
icon="mdi:information",
|
icon="mdi:information",
|
||||||
device_class=SensorDeviceClass.ENUM,
|
device_class=SensorDeviceClass.ENUM,
|
||||||
translation_key="washing_modes",
|
translation_key="washing_modes",
|
||||||
option_list=const.MACH_MODE,
|
options=list(const.MACH_MODE),
|
||||||
),
|
),
|
||||||
HonSensorEntityDescription(
|
HonSensorEntityDescription(
|
||||||
key="errors", name="Error", icon="mdi:math-log", translation_key="errors"
|
key="errors", name="Error", icon="mdi:math-log", translation_key="errors"
|
||||||
@ -422,7 +410,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
|
|||||||
icon="mdi:washing-machine",
|
icon="mdi:washing-machine",
|
||||||
device_class=SensorDeviceClass.ENUM,
|
device_class=SensorDeviceClass.ENUM,
|
||||||
translation_key="program_phases_dw",
|
translation_key="program_phases_dw",
|
||||||
option_list=const.DISHWASHER_PR_PHASE,
|
options=list(const.DISHWASHER_PR_PHASE),
|
||||||
),
|
),
|
||||||
HonSensorEntityDescription(
|
HonSensorEntityDescription(
|
||||||
key="programName",
|
key="programName",
|
||||||
@ -496,7 +484,6 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
|
|||||||
state_class=SensorStateClass.MEASUREMENT,
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
device_class=SensorDeviceClass.TEMPERATURE,
|
device_class=SensorDeviceClass.TEMPERATURE,
|
||||||
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
|
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
|
||||||
translation_key="target_temperature",
|
|
||||||
),
|
),
|
||||||
HonSensorEntityDescription(
|
HonSensorEntityDescription(
|
||||||
key="programName",
|
key="programName",
|
||||||
@ -505,14 +492,6 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
|
|||||||
device_class=SensorDeviceClass.ENUM,
|
device_class=SensorDeviceClass.ENUM,
|
||||||
translation_key="programs_ac",
|
translation_key="programs_ac",
|
||||||
),
|
),
|
||||||
HonSensorEntityDescription(
|
|
||||||
key="machMode",
|
|
||||||
name="Machine Status",
|
|
||||||
icon="mdi:information",
|
|
||||||
device_class=SensorDeviceClass.ENUM,
|
|
||||||
translation_key="mach_modes_ac",
|
|
||||||
option_list=const.AC_MACH_MODE,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
"REF": (
|
"REF": (
|
||||||
HonSensorEntityDescription(
|
HonSensorEntityDescription(
|
||||||
@ -614,150 +593,10 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
|
|||||||
name="RGB Light Status",
|
name="RGB Light Status",
|
||||||
icon="mdi:lightbulb",
|
icon="mdi:lightbulb",
|
||||||
),
|
),
|
||||||
),
|
|
||||||
"WC": (
|
|
||||||
HonSensorEntityDescription(
|
HonSensorEntityDescription(
|
||||||
key="errors", name="Error", icon="mdi:math-log", translation_key="errors"
|
key="windSpeed",
|
||||||
),
|
name="Wind Speed",
|
||||||
HonSensorEntityDescription(
|
icon="mdi:fan",
|
||||||
key="humidityZ1",
|
|
||||||
name="Humidity",
|
|
||||||
icon="mdi:water-percent",
|
|
||||||
device_class=SensorDeviceClass.HUMIDITY,
|
|
||||||
native_unit_of_measurement=PERCENTAGE,
|
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
|
||||||
translation_key="humidity",
|
|
||||||
),
|
|
||||||
HonSensorEntityDescription(
|
|
||||||
key="humidityZ2",
|
|
||||||
name="Humidity 2",
|
|
||||||
icon="mdi:water-percent",
|
|
||||||
device_class=SensorDeviceClass.HUMIDITY,
|
|
||||||
native_unit_of_measurement=PERCENTAGE,
|
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
|
||||||
translation_key="humidity",
|
|
||||||
),
|
|
||||||
HonSensorEntityDescription(
|
|
||||||
key="temp",
|
|
||||||
name="Temperature",
|
|
||||||
icon="mdi:thermometer",
|
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
|
||||||
device_class=SensorDeviceClass.TEMPERATURE,
|
|
||||||
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
|
|
||||||
translation_key="temperature",
|
|
||||||
),
|
|
||||||
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="tempSel",
|
|
||||||
name="Selected Temperature",
|
|
||||||
icon="mdi:thermometer",
|
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
|
||||||
device_class=SensorDeviceClass.TEMPERATURE,
|
|
||||||
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
|
|
||||||
translation_key="target_temperature",
|
|
||||||
),
|
|
||||||
HonSensorEntityDescription(
|
|
||||||
key="tempSelZ2",
|
|
||||||
name="Selected Temperature 2",
|
|
||||||
icon="mdi:thermometer",
|
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
|
||||||
device_class=SensorDeviceClass.TEMPERATURE,
|
|
||||||
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
|
|
||||||
translation_key="target_temperature",
|
|
||||||
),
|
|
||||||
HonSensorEntityDescription(
|
|
||||||
key="tempZ2",
|
|
||||||
name="Temperature 2",
|
|
||||||
icon="mdi:thermometer",
|
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
|
||||||
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
|
|
||||||
device_class=SensorDeviceClass.TEMPERATURE,
|
|
||||||
translation_key="temperature",
|
|
||||||
),
|
|
||||||
HonSensorEntityDescription(
|
|
||||||
key="programName",
|
|
||||||
name="Program",
|
|
||||||
icon="mdi:play",
|
|
||||||
device_class=SensorDeviceClass.ENUM,
|
|
||||||
translation_key="programs_wc",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
"AP": (
|
|
||||||
HonSensorEntityDescription(
|
|
||||||
key="errors", name="Error", icon="mdi:math-log", translation_key="errors"
|
|
||||||
),
|
|
||||||
HonSensorEntityDescription(
|
|
||||||
key="mainFilterStatus",
|
|
||||||
name="Main Filter Status",
|
|
||||||
native_unit_of_measurement=PERCENTAGE,
|
|
||||||
),
|
|
||||||
HonSensorEntityDescription(
|
|
||||||
key="preFilterStatus",
|
|
||||||
name="Pre Filter Status",
|
|
||||||
native_unit_of_measurement=PERCENTAGE,
|
|
||||||
),
|
|
||||||
HonSensorEntityDescription(
|
|
||||||
key="totalWorkTime",
|
|
||||||
name="Total Work Time",
|
|
||||||
native_unit_of_measurement=UnitOfTime.MINUTES,
|
|
||||||
device_class=SensorDeviceClass.DURATION,
|
|
||||||
),
|
|
||||||
HonSensorEntityDescription(
|
|
||||||
key="coLevel",
|
|
||||||
name="CO Level",
|
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
|
||||||
device_class=SensorDeviceClass.CO,
|
|
||||||
native_unit_of_measurement=CONCENTRATION_PARTS_PER_MILLION,
|
|
||||||
),
|
|
||||||
HonSensorEntityDescription(
|
|
||||||
key="pm10ValueIndoor",
|
|
||||||
name="pm10",
|
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
|
||||||
device_class=SensorDeviceClass.PM10,
|
|
||||||
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
|
||||||
),
|
|
||||||
HonSensorEntityDescription(
|
|
||||||
key="pm2p5ValueIndoor",
|
|
||||||
name="pm2p5",
|
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
|
||||||
device_class=SensorDeviceClass.PM25,
|
|
||||||
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
|
||||||
),
|
|
||||||
HonSensorEntityDescription(
|
|
||||||
key="vocValueIndoor",
|
|
||||||
name="VOC",
|
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
|
||||||
device_class=SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS,
|
|
||||||
native_unit_of_measurement=CONCENTRATION_PARTS_PER_BILLION,
|
|
||||||
),
|
|
||||||
HonSensorEntityDescription(
|
|
||||||
key="humidityIndoor",
|
|
||||||
name="Humidity",
|
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
|
||||||
device_class=SensorDeviceClass.HUMIDITY,
|
|
||||||
native_unit_of_measurement=PERCENTAGE,
|
|
||||||
translation_key="humidity",
|
|
||||||
),
|
|
||||||
HonSensorEntityDescription(
|
|
||||||
key="temp",
|
|
||||||
name="Temperature",
|
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
|
||||||
device_class=SensorDeviceClass.TEMPERATURE,
|
|
||||||
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
|
|
||||||
translation_key="temperature",
|
|
||||||
),
|
|
||||||
HonSensorEntityDescription(key="windSpeed", name="Wind Speed"),
|
|
||||||
HonSensorEntityDescription(
|
|
||||||
key="airQuality",
|
|
||||||
name="Air Quality",
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
@ -787,16 +626,16 @@ async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> Non
|
|||||||
class HonSensorEntity(HonEntity, SensorEntity):
|
class HonSensorEntity(HonEntity, SensorEntity):
|
||||||
entity_description: HonSensorEntityDescription
|
entity_description: HonSensorEntityDescription
|
||||||
|
|
||||||
@callback
|
def __init__(self, hass, entry, device: HonAppliance, description):
|
||||||
def _handle_coordinator_update(self, update=True) -> None:
|
super().__init__(hass, entry, device, description)
|
||||||
value = self._device.get(self.entity_description.key, "")
|
|
||||||
if self.entity_description.key == "programName":
|
if self.entity_description.key == "programName":
|
||||||
self._attr_options = self._device.settings.get(
|
self._attr_options = self._device.settings.get(
|
||||||
"startProgram.program"
|
"startProgram.program"
|
||||||
).values + ["No Program"]
|
).values + ["No Program"]
|
||||||
elif self.entity_description.option_list is not None:
|
|
||||||
self._attr_options = list(self.entity_description.option_list.values())
|
@callback
|
||||||
value = self.entity_description.option_list.get(value, value)
|
def _handle_coordinator_update(self, update=True) -> None:
|
||||||
|
value = self._device.get(self.entity_description.key, "")
|
||||||
if not value and self.entity_description.state_class is not None:
|
if not value and self.entity_description.state_class is not None:
|
||||||
self._attr_native_value = 0
|
self._attr_native_value = 0
|
||||||
self._attr_native_value = value
|
self._attr_native_value = value
|
||||||
@ -812,16 +651,12 @@ class HonConfigSensorEntity(HonEntity, SensorEntity):
|
|||||||
value = self._device.settings.get(self.entity_description.key, None)
|
value = self._device.settings.get(self.entity_description.key, None)
|
||||||
if self.entity_description.state_class is not None:
|
if self.entity_description.state_class is not None:
|
||||||
if value and value.value:
|
if value and value.value:
|
||||||
value = (
|
self._attr_native_value = (
|
||||||
float(value.value) if "." in str(value.value) else int(value.value)
|
float(value.value) if "." in str(value.value) else int(value.value)
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
value = 0
|
self._attr_native_value = 0
|
||||||
else:
|
else:
|
||||||
value = value.value
|
self._attr_native_value = value.value
|
||||||
if self.entity_description.option_list is not None and not value == 0:
|
|
||||||
self._attr_options = list(self.entity_description.option_list.values())
|
|
||||||
value = self.entity_description.option_list.get(value, value)
|
|
||||||
self._attr_native_value = value
|
|
||||||
if update:
|
if update:
|
||||||
self.async_write_ha_state()
|
self.async_write_ha_state()
|
||||||
|
@ -5,7 +5,7 @@ from typing import Any
|
|||||||
|
|
||||||
from homeassistant.components.switch import SwitchEntityDescription, SwitchEntity
|
from homeassistant.components.switch import SwitchEntityDescription, SwitchEntity
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.helpers.entity import EntityCategory
|
from homeassistant.const import EntityCategory
|
||||||
from homeassistant.core import callback
|
from homeassistant.core import callback
|
||||||
from pyhon.parameter.base import HonParameter
|
from pyhon.parameter.base import HonParameter
|
||||||
from pyhon.parameter.range import HonParameterRange
|
from pyhon.parameter.range import HonParameterRange
|
||||||
@ -322,27 +322,6 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = {
|
|||||||
translation_key="holiday_mode",
|
translation_key="holiday_mode",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
"WC": (
|
|
||||||
HonSwitchEntityDescription(
|
|
||||||
key="sabbathStatus",
|
|
||||||
name="Sabbath Mode",
|
|
||||||
icon="mdi:palm-tree",
|
|
||||||
translation_key="holiday_mode",
|
|
||||||
),
|
|
||||||
HonSwitchEntityDescription(
|
|
||||||
key="lightStatus", name="Light", icon="mdi:lightbulb"
|
|
||||||
),
|
|
||||||
),
|
|
||||||
"AP": (
|
|
||||||
HonSwitchEntityDescription(
|
|
||||||
key="touchToneStatus",
|
|
||||||
name="Touch Tone",
|
|
||||||
),
|
|
||||||
HonSwitchEntityDescription(
|
|
||||||
key="lockStatus",
|
|
||||||
name="Lock Status",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SWITCHES["WD"] = unique_entities(SWITCHES["WD"], SWITCHES["WM"])
|
SWITCHES["WD"] = unique_entities(SWITCHES["WD"], SWITCHES["WM"])
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -3,338 +3,95 @@
|
|||||||
"sensor": {
|
"sensor": {
|
||||||
"washing_modes": {
|
"washing_modes": {
|
||||||
"state": {
|
"state": {
|
||||||
"ready": "מוּכָן",
|
"0": "מוּכָן",
|
||||||
"running": "התוכנית פועלת",
|
"1": "מוּכָן",
|
||||||
"pause": "הַפסָקָה",
|
"3": "הַפסָקָה",
|
||||||
"scheduled": "מתוזמן",
|
"4": "מתוזמן",
|
||||||
"error": "שְׁגִיאָה",
|
"5": "מתוזמן",
|
||||||
"test": "Test",
|
"6": "שְׁגִיאָה",
|
||||||
"ending": "Stopping cycle…"
|
"7": "מוּכָן",
|
||||||
}
|
"2": "התוכנית פועלת",
|
||||||
},
|
"8": "Test",
|
||||||
"mach_modes_ac": {
|
"9": "Stopping cycle…"
|
||||||
"state": {
|
|
||||||
"auto": "Auto",
|
|
||||||
"cool": "Cool",
|
|
||||||
"dry": "Dry",
|
|
||||||
"heat": "Heat",
|
|
||||||
"fan": "Fan"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"program_phases_wm": {
|
"program_phases_wm": {
|
||||||
"state": {
|
"state": {
|
||||||
"ready": "מוּכָן",
|
"0": "מוּכָן",
|
||||||
"spin": "Spin",
|
"1": "לִשְׁטוֹף",
|
||||||
"rinse": "לִשְׁטוֹף",
|
"2": "לִשְׁטוֹף",
|
||||||
"drying": "יִבּוּשׁ",
|
"3": "Spin",
|
||||||
"steam": "קִיטוֹר",
|
"4": "לִשְׁטוֹף",
|
||||||
"weighting": "Weighing ",
|
"5": "לִשְׁטוֹף",
|
||||||
"scheduled": "מתוזמן",
|
"6": "לִשְׁטוֹף",
|
||||||
"tumbling": "שמור על טריות",
|
"7": "יִבּוּשׁ",
|
||||||
"refresh": "Refresh",
|
"9": "קִיטוֹר",
|
||||||
"heating": "Heating",
|
"10": "מוּכָן",
|
||||||
"washing": "לִשְׁטוֹף"
|
"11": "Spin",
|
||||||
|
"12": "Weighing ",
|
||||||
|
"13": "Weighing ",
|
||||||
|
"14": "לִשְׁטוֹף",
|
||||||
|
"15": "לִשְׁטוֹף",
|
||||||
|
"16": "לִשְׁטוֹף",
|
||||||
|
"17": "לִשְׁטוֹף",
|
||||||
|
"18": "לִשְׁטוֹף",
|
||||||
|
"19": "מתוזמן",
|
||||||
|
"20": "שמור על טריות",
|
||||||
|
"24": "Refresh",
|
||||||
|
"25": "לִשְׁטוֹף",
|
||||||
|
"26": "Heating",
|
||||||
|
"27": "לִשְׁטוֹף"
|
||||||
},
|
},
|
||||||
"name": "שלב"
|
"name": "שלב"
|
||||||
},
|
},
|
||||||
"program_phases_td": {
|
"program_phases_td": {
|
||||||
"state": {
|
"state": {
|
||||||
"ready": "מוּכָן",
|
"0": "מוּכָן",
|
||||||
"heat_stroke": "Drying",
|
"1": "Drying",
|
||||||
"drying": "יִבּוּשׁ",
|
"2": "יִבּוּשׁ",
|
||||||
"cooldown": "Cooldown",
|
"3": "Cooldown",
|
||||||
"unknown": "unknown",
|
"13": "Cooldown",
|
||||||
"tumbling": "Keep Fresh"
|
"14": "Drying",
|
||||||
|
"15": "Drying",
|
||||||
|
"16": "Cooldown",
|
||||||
|
"18": "Keep Fresh",
|
||||||
|
"19": "יִבּוּשׁ",
|
||||||
|
"20": "יִבּוּשׁ",
|
||||||
|
"11": "מוּכָן",
|
||||||
|
"17": "unknown",
|
||||||
|
"12": "unknown"
|
||||||
},
|
},
|
||||||
"name": "שלב"
|
"name": "שלב"
|
||||||
},
|
},
|
||||||
"program_phases_dw": {
|
"program_phases_dw": {
|
||||||
"state": {
|
"state": {
|
||||||
"ready": "מוּכָן",
|
"0": "מוּכָן",
|
||||||
"prewash": "Prewash",
|
"1": "Prewash",
|
||||||
"washing": "לִשְׁטוֹף",
|
"2": "לִשְׁטוֹף",
|
||||||
"rinse": "לִשְׁטוֹף",
|
"3": "לִשְׁטוֹף",
|
||||||
"drying": "יִבּוּשׁ",
|
"4": "יִבּוּשׁ",
|
||||||
"hot_rinse": "Hot rinse"
|
"5": "מוּכָן",
|
||||||
|
"6": "Hot rinse"
|
||||||
},
|
},
|
||||||
"name": "שלב"
|
"name": "שלב"
|
||||||
},
|
},
|
||||||
"dry_levels": {
|
"dry_levels": {
|
||||||
"state": {
|
"state": {
|
||||||
"no_dry": "ללא ייבוש",
|
"0": "ללא ייבוש",
|
||||||
"iron_dry": "בַּרזֶל",
|
"1": "בַּרזֶל",
|
||||||
"no_dry_iron": "לא לייבש ברזל",
|
"2": "לא לייבש ברזל",
|
||||||
"cupboard_dry": "ארון יבש",
|
"3": "ארון יבש",
|
||||||
"extra_dry": "יבש במיוחד",
|
"4": "יבש במיוחד",
|
||||||
"ready_to_wear": "Ready to wear"
|
"12": "בַּרזֶל",
|
||||||
|
"13": "ארון יבש",
|
||||||
|
"14": "Ready to wear",
|
||||||
|
"15": "יבש במיוחד",
|
||||||
|
"11": "ללא ייבוש"
|
||||||
},
|
},
|
||||||
"name": "רמת ייבוש"
|
"name": "רמת ייבוש"
|
||||||
},
|
},
|
||||||
"programs_ac": {
|
"anti_crease": {
|
||||||
"state": {
|
"name": "Anticrease"
|
||||||
"iot_simple_start": "התחל עכשיו"
|
|
||||||
},
|
|
||||||
"name": "Program"
|
|
||||||
},
|
|
||||||
"programs_dw": {
|
|
||||||
"state": {
|
|
||||||
"gentle_wash": "Gentle wash",
|
|
||||||
"iot_checkup": "בְּדִיקָה",
|
|
||||||
"iot_dreft_quick_cycle": "Dreft Quick",
|
|
||||||
"iot_fairy_quick_cycle": "Fairy Quick",
|
|
||||||
"iot_jar_quick_cycle": "Jar Quick",
|
|
||||||
"iot_yes_quick_cycle": "Yes Quick",
|
|
||||||
"smart_ai": "Smart AI",
|
|
||||||
"smart_ai_soil": "Smart AI"
|
|
||||||
},
|
|
||||||
"name": "Program"
|
|
||||||
},
|
|
||||||
"programs_ih": {
|
|
||||||
"state": {
|
|
||||||
"iot_special_grilled_vegetables": "Grilled vegetables"
|
|
||||||
},
|
|
||||||
"name": "Program"
|
|
||||||
},
|
|
||||||
"programs_ov": {
|
|
||||||
"state": {
|
|
||||||
"iot_h20_clean": "h2O clean",
|
|
||||||
"pizza": "Pizza",
|
|
||||||
"tailor_bake": "Tailor bake"
|
|
||||||
},
|
|
||||||
"name": "Program"
|
|
||||||
},
|
|
||||||
"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": "סינתטי יבש"
|
|
||||||
},
|
|
||||||
"name": "Program"
|
|
||||||
},
|
|
||||||
"programs_wm": {
|
|
||||||
"state": {
|
|
||||||
"20_degrees_new_energy_label": "20 מעלות צלזיוס",
|
|
||||||
"active_steam": "קִיטוֹר",
|
|
||||||
"active_wash": "שטיפה פעילה",
|
|
||||||
"active_wash_steam": "שטיפה פעילה",
|
|
||||||
"allergy_care": "טיפול באלרגיה",
|
|
||||||
"allergy_care_pro": "Allergy Care Pro",
|
|
||||||
"all_in_one_49": "All in One 49 '",
|
|
||||||
"all_in_one_59": "All in One 59 '",
|
|
||||||
"all_in_one_59_steam": "All in One 59 '",
|
|
||||||
"autocare": "טיפול אוטומטי",
|
|
||||||
"autoclean": "ניקוי אוטומטי",
|
|
||||||
"baby_60": "BABY_60",
|
|
||||||
"care_14": "טיפול מהיר 14 '",
|
|
||||||
"care_30": "טיפול מהיר 30 '",
|
|
||||||
"care_44": "טיפול מהיר 44 '",
|
|
||||||
"checkup": "בְּדִיקָה",
|
|
||||||
"cottons": "כותנה",
|
|
||||||
"cottons_prewash": "כותנה + כביסה מוקדמת",
|
|
||||||
"cotton_care_59": "Cotton Care 59 Min",
|
|
||||||
"delicate_59": "עדין 59 '",
|
|
||||||
"delicati_59": "DELICATI_59",
|
|
||||||
"delicati_59_steam": "DELICATI_59",
|
|
||||||
"drain_spin": "ניקוז + סיבוב",
|
|
||||||
"easy_iron": "גיהוץ קל",
|
|
||||||
"eco_40_60_new_energy_label": "אקו 40-60",
|
|
||||||
"extra_care": "אכפתיות מוגברת",
|
|
||||||
"fitness": "טיפול בכושר",
|
|
||||||
"fitness_care": "טיפול בכושר",
|
|
||||||
"fresh_care": "טיפול טרי",
|
|
||||||
"fresh_care_steam": "טיפול טרי",
|
|
||||||
"handwash_wool": "שטיפת ידיים + צמר",
|
|
||||||
"high_dry": "יבש בחום גבוה",
|
|
||||||
"hqd_dry_synthetics": "יבש בחום נמוך",
|
|
||||||
"hygiene_60": "היגיינה 60 מעלות צלזיוס",
|
|
||||||
"intensive_40": "40°C אינטנסיביים",
|
|
||||||
"iot_active_steam": "קִיטוֹר",
|
|
||||||
"iot_active_wash_steam": "שטיפה פעילה",
|
|
||||||
"iot_allergy_care_pro": "Allergy Care Pro",
|
|
||||||
"iot_all_in_one_59_steam": "All in One 59 '",
|
|
||||||
"iot_checkup": "בְּדִיקָה",
|
|
||||||
"iot_delicati_59_steam": "DELICATI_59",
|
|
||||||
"iot_dry_air_refresh": "רענון אוויר",
|
|
||||||
"iot_dry_anti_mites": "נגד קרדית",
|
|
||||||
"iot_dry_baby": "תִינוֹק",
|
|
||||||
"iot_dry_backpacks": "תיקי גב",
|
|
||||||
"iot_dry_bathrobe": "חלוקי רחצה",
|
|
||||||
"iot_dry_bed_linen": "מצעים",
|
|
||||||
"iot_dry_cotton_dry": "כותנה יבשה",
|
|
||||||
"iot_dry_cuddly_toys": "צעצועי חיבוק",
|
|
||||||
"iot_dry_curtains": "וילונות",
|
|
||||||
"iot_dry_dehumidifier": "מסיר לחות",
|
|
||||||
"iot_dry_delicates_antiallergy": "עדין נגד אלרגיה",
|
|
||||||
"iot_dry_delicate_tablecloths": "מפות עדינות",
|
|
||||||
"iot_dry_denim_jeans": "ג'ינס",
|
|
||||||
"iot_dry_easy_iron_cotton": "ברזל קל - כותנה",
|
|
||||||
"iot_dry_easy_iron_synthetics": "קל ברזל - סינתטיים",
|
|
||||||
"iot_dry_gym_fit": "כושר כושר - כושר",
|
|
||||||
"iot_dry_lingerie": "לִבנֵי נָשִׁים",
|
|
||||||
"iot_dry_mixed_dry": "מעורבב יבש",
|
|
||||||
"iot_dry_rapid_60_min_delicates": "מהיר 60 '- עדינים",
|
|
||||||
"iot_dry_shirts": "חולצות",
|
|
||||||
"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_dry": "צמר יבש",
|
|
||||||
"iot_easy_iron": "גיהוץ קל",
|
|
||||||
"iot_fresh_care_steam": "טיפול טרי",
|
|
||||||
"iot_synthetic_and_coloured_steam": "סינטטי וצבעוני",
|
|
||||||
"iot_wash_anti_mites": "נגד קרדית",
|
|
||||||
"iot_wash_anti_odor": "נגד ריח",
|
|
||||||
"iot_wash_ariel_clean_cycle": "Ariel Ultimate Clean",
|
|
||||||
"iot_wash_ariel_cold_cycle": "Ariel Cold Clean",
|
|
||||||
"iot_wash_ariel_fresh_cycle": "Ariel Fresh Clean",
|
|
||||||
"iot_wash_baby_sanitizer": "חיטוי לתינוקות",
|
|
||||||
"iot_wash_backpacks": "תיקי גב",
|
|
||||||
"iot_wash_bathrobe": "חלוקי רחצה ובדים נקבוביים",
|
|
||||||
"iot_wash_bed_linen": "מצעים",
|
|
||||||
"iot_wash_bed_linen_zelig": "מצעים",
|
|
||||||
"iot_wash_bleaching": "הַלבָּנָה",
|
|
||||||
"iot_wash_blood_stains": "כתמי דם",
|
|
||||||
"iot_wash_cashmere": "קשמיר",
|
|
||||||
"iot_wash_chocolate_stains": "כתמי שוקולד",
|
|
||||||
"iot_wash_cold_wash": "שטיפה קרה",
|
|
||||||
"iot_wash_colored": "צבעוני",
|
|
||||||
"iot_wash_colored_anti_stain": "נגד כתם צבעוני",
|
|
||||||
"iot_wash_colored_delicate": "צבעוני עדין",
|
|
||||||
"iot_wash_coloured": "צבעוני",
|
|
||||||
"iot_wash_cotton": "כותנה",
|
|
||||||
"iot_wash_cuddly_toys": "צעצועי חיבוק",
|
|
||||||
"iot_wash_curtains": "וילונות",
|
|
||||||
"iot_wash_curtains_zelig": "וילונות",
|
|
||||||
"iot_wash_dark": "אפל",
|
|
||||||
"iot_wash_darks_and_coloured_44": "חביבים וצבעוניים 44 '",
|
|
||||||
"iot_wash_darks_and_coloured_59": "חביבים וצבעוני 59 '",
|
|
||||||
"iot_wash_darks_and_coloured_xl": "חפצים וצבע XL",
|
|
||||||
"iot_wash_dash_clean_cycle": "Dash Ultimate Clean",
|
|
||||||
"iot_wash_dash_cold_cycle": "Dash Cold Clean",
|
|
||||||
"iot_wash_dash_fresh_cycle": "Dash Fresh Clean",
|
|
||||||
"iot_wash_delicate": "עדינים",
|
|
||||||
"iot_wash_delicate_antiallergy": "אנטי אלרגיה עדין",
|
|
||||||
"iot_wash_delicate_antiallergy_zelig": "אנטי אלרגיה עדין",
|
|
||||||
"iot_wash_delicate_colors": "צבעוני עדין",
|
|
||||||
"iot_wash_delicate_dark": "כהה עדין",
|
|
||||||
"iot_wash_delicate_tablecloths": "מפות עדינות",
|
|
||||||
"iot_wash_delicate_whites": "לבנים עדינים",
|
|
||||||
"iot_wash_denim_jeans": "ג'ינס",
|
|
||||||
"iot_wash_diving_suits": "חליפות צלילה",
|
|
||||||
"iot_wash_diving_suits_zelig": "חליפות צלילה",
|
|
||||||
"iot_wash_down_jackets": "מעילי פוך",
|
|
||||||
"iot_wash_down_jackets_zelig": "מעילי פוך",
|
|
||||||
"iot_wash_fruit_stains": "כתמי פרי",
|
|
||||||
"iot_wash_gym_fit": "כושר כושר - כושר",
|
|
||||||
"iot_wash_handwash": "שטיפת ידיים",
|
|
||||||
"iot_wash_handwash_colored": "שטיפת ידיים בצבע",
|
|
||||||
"iot_wash_handwash_dark": "שטיפת ידיים כהה",
|
|
||||||
"iot_wash_lingerie": "לִבנֵי נָשִׁים",
|
|
||||||
"iot_wash_masks_refresh": "מסכות רענן",
|
|
||||||
"iot_wash_masks_sanification": "חיטוי מסכות",
|
|
||||||
"iot_wash_mats": "מחצלות",
|
|
||||||
"iot_wash_men_s_trousers": "מכנסי גברים",
|
|
||||||
"iot_wash_mixed": "מעורב",
|
|
||||||
"iot_wash_mix_and_coloured_44": "לערבב וצבעוני 44 '",
|
|
||||||
"iot_wash_mix_and_coloured_59": "מיקס וצבעוני 59 '",
|
|
||||||
"iot_wash_mix_and_coloured_xl": "מערבבים וצבעים XL",
|
|
||||||
"iot_wash_new_clothes": "בגדים חדשים",
|
|
||||||
"iot_wash_perfect_white": "לבן מושלם",
|
|
||||||
"iot_wash_pets": "חיות מחמד",
|
|
||||||
"iot_wash_pets_steam": "חיות מחמד",
|
|
||||||
"iot_wash_playsuits": "חליפות משחק",
|
|
||||||
"iot_wash_rapid_14": "מהיר 14 '",
|
|
||||||
"iot_wash_rapid_30": "מהיר 30 '",
|
|
||||||
"iot_wash_rapid_44": "מהיר 44 '",
|
|
||||||
"iot_wash_rapid_59": "מהיר 59 '",
|
|
||||||
"iot_wash_refresh_14_min": "רענן 14 דקות",
|
|
||||||
"iot_wash_resistant_colored": "צבעוני עמיד",
|
|
||||||
"iot_wash_resistant_dark": "כהה עמיד",
|
|
||||||
"iot_wash_resistant_whites": "לבנים עמידים",
|
|
||||||
"iot_wash_rinse": "לִשְׁטוֹף",
|
|
||||||
"iot_wash_shirts": "חולצות",
|
|
||||||
"iot_wash_silk": "משי",
|
|
||||||
"iot_wash_ski_suit": "חליפת סקי",
|
|
||||||
"iot_wash_ski_suit_zelig": "חליפת סקי",
|
|
||||||
"iot_wash_spin": "סיבוב",
|
|
||||||
"iot_wash_sport": "ספּוֹרט",
|
|
||||||
"iot_wash_stains_remover": "מסיר כתמים",
|
|
||||||
"iot_wash_swimsuits_and_bikinis": "בגדי ים וביקיני",
|
|
||||||
"iot_wash_synthetic": "סינתטיים",
|
|
||||||
"iot_wash_tablecloths": "מפות שולחן",
|
|
||||||
"iot_wash_technical_fabrics": "בדים טכניים",
|
|
||||||
"iot_wash_technical_fabrics_zelig": "בדים טכניים",
|
|
||||||
"iot_wash_technical_jackets": "ז'קטים טכניים",
|
|
||||||
"iot_wash_technical_jackets_zelig": "ז'קטים טכניים",
|
|
||||||
"iot_wash_trainers": "מאמנים",
|
|
||||||
"iot_wash_whites": "לְבָנִים",
|
|
||||||
"iot_wash_whites_44": "לבנים 44 '",
|
|
||||||
"iot_wash_whites_59": "לבנים 59 '",
|
|
||||||
"iot_wash_whites_xl": "לבנים XL",
|
|
||||||
"iot_wash_wine_stains": "כתמי יין",
|
|
||||||
"iot_wash_wool": "צֶמֶר",
|
|
||||||
"jeans": "גִ'ינס",
|
|
||||||
"low_dry": "יבש בחום נמוך",
|
|
||||||
"mixed_and_colored_59": "מעורב וצבעוני 59 '",
|
|
||||||
"night_and_day": "לילה ויום",
|
|
||||||
"night_wash": "Night Wash",
|
|
||||||
"perfect_59": "מושלם 59 '",
|
|
||||||
"perfect_whites_59": "לבן מושלם",
|
|
||||||
"rapid_wash_and_dry_59_min": "לשטוף ולייבש 59 '",
|
|
||||||
"resistant_cotton": "כותנה",
|
|
||||||
"rinse": "לִשְׁטוֹף",
|
|
||||||
"silent_night": "Night Wash",
|
|
||||||
"soft_care": "טיפול רך",
|
|
||||||
"special_49": "מיוחד 49 '",
|
|
||||||
"sport_39": "ספורט 39 '",
|
|
||||||
"sport_plus_29": "ספורט פלוס 29 \"",
|
|
||||||
"steam_39": "קיטור 39 '",
|
|
||||||
"steam_care_pro": "Steam Care Pro",
|
|
||||||
"steam_care_pro_cotton": "Steam Care Pro",
|
|
||||||
"steam_care_pro_delicates": "Steam Care Pro",
|
|
||||||
"steam_care_pro_synthetic": "Steam Care Pro",
|
|
||||||
"synthetics": "סינתטיים",
|
|
||||||
"synthetic_and_coloured": "סינטטי וצבעוני",
|
|
||||||
"synthetic_and_coloured_steam": "סינטטי וצבעוני",
|
|
||||||
"tailored_resistant_cotton": "Tailored Resistant Cotton",
|
|
||||||
"tailored_synthetic_and_coloured": "Tailored Synthetic Colored",
|
|
||||||
"total_care": "טיפול טוטאלי",
|
|
||||||
"tumbling": "נופלים",
|
|
||||||
"wool_and_delicates_49": "Wool/Delicates 49'",
|
|
||||||
"wool_dry": "צמר יבש",
|
|
||||||
"wool_soft_care": "Wool & Soft Care"
|
|
||||||
},
|
|
||||||
"name": "Program"
|
|
||||||
},
|
|
||||||
"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"
|
|
||||||
},
|
|
||||||
"name": "Program"
|
|
||||||
},
|
|
||||||
"programs_wc": {
|
|
||||||
"state": {}
|
|
||||||
},
|
|
||||||
"dry_time": {
|
|
||||||
"name": "זמן ייבוש"
|
|
||||||
},
|
},
|
||||||
"power": {
|
"power": {
|
||||||
"name": "Power level"
|
"name": "Power level"
|
||||||
@ -369,6 +126,9 @@
|
|||||||
"delay_time": {
|
"delay_time": {
|
||||||
"name": "Delay Start"
|
"name": "Delay Start"
|
||||||
},
|
},
|
||||||
|
"dry_time": {
|
||||||
|
"name": "זמן ייבוש"
|
||||||
|
},
|
||||||
"suggested_load": {
|
"suggested_load": {
|
||||||
"name": "יכולת עומס"
|
"name": "יכולת עומס"
|
||||||
},
|
},
|
||||||
@ -387,12 +147,6 @@
|
|||||||
"programs": {
|
"programs": {
|
||||||
"name": "Current program"
|
"name": "Current program"
|
||||||
},
|
},
|
||||||
"room_temperature": {
|
|
||||||
"name": "Room temperature"
|
|
||||||
},
|
|
||||||
"humidity": {
|
|
||||||
"name": "Humidity"
|
|
||||||
},
|
|
||||||
"cycles_total": {
|
"cycles_total": {
|
||||||
"name": "מחזורים Total"
|
"name": "מחזורים Total"
|
||||||
},
|
},
|
||||||
@ -408,50 +162,46 @@
|
|||||||
"water_current": {
|
"water_current": {
|
||||||
"name": "Water efficiency Current"
|
"name": "Water efficiency Current"
|
||||||
},
|
},
|
||||||
|
"mach_modes_ac": {
|
||||||
|
"state": {
|
||||||
|
"0": "Auto",
|
||||||
|
"1": "Cool",
|
||||||
|
"2": "Cool",
|
||||||
|
"3": "Dry",
|
||||||
|
"4": "Heat",
|
||||||
|
"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": "סינתטי יבש"
|
||||||
|
},
|
||||||
|
"name": "Program"
|
||||||
|
},
|
||||||
|
"room_temperature": {
|
||||||
|
"name": "Room temperature"
|
||||||
|
},
|
||||||
|
"humidity": {
|
||||||
|
"name": "Humidity"
|
||||||
|
},
|
||||||
"freezer_temp": {
|
"freezer_temp": {
|
||||||
"name": "Freezer temperature"
|
"name": "Freezer temperature"
|
||||||
},
|
},
|
||||||
"fridge_temp": {
|
"fridge_temp": {
|
||||||
"name": "Fridge temperature"
|
"name": "Fridge temperature"
|
||||||
}
|
|
||||||
},
|
|
||||||
"select": {
|
|
||||||
"dry_levels": {
|
|
||||||
"state": {
|
|
||||||
"no_dry": "ללא ייבוש",
|
|
||||||
"iron_dry": "בַּרזֶל",
|
|
||||||
"no_dry_iron": "לא לייבש ברזל",
|
|
||||||
"cupboard_dry": "ארון יבש",
|
|
||||||
"extra_dry": "יבש במיוחד",
|
|
||||||
"ready_to_wear": "Ready to wear"
|
|
||||||
},
|
|
||||||
"name": "רמת ייבוש"
|
|
||||||
},
|
|
||||||
"eco_pilot": {
|
|
||||||
"state": {
|
|
||||||
"touch_off": "Off",
|
|
||||||
"avoid_touch": "Avoid touch",
|
|
||||||
"follow_touch": "Follow",
|
|
||||||
"unknown": "unknown"
|
|
||||||
},
|
|
||||||
"name": "Eco pilot"
|
|
||||||
},
|
|
||||||
"fan_mode": {
|
|
||||||
"state": {
|
|
||||||
"high": "High",
|
|
||||||
"mid": "Medium ",
|
|
||||||
"low": "Low",
|
|
||||||
"auto": "Auto"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ref_zones": {
|
|
||||||
"state": {
|
|
||||||
"fridge": "Fridge",
|
|
||||||
"freezer": "Freezer",
|
|
||||||
"vtroom1": "My Zone",
|
|
||||||
"fridge_freezer": "Fridge & Freezer"
|
|
||||||
},
|
|
||||||
"name": "Zone"
|
|
||||||
},
|
},
|
||||||
"programs_ac": {
|
"programs_ac": {
|
||||||
"state": {
|
"state": {
|
||||||
@ -486,24 +236,6 @@
|
|||||||
},
|
},
|
||||||
"name": "Program"
|
"name": "Program"
|
||||||
},
|
},
|
||||||
"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": "סינתטי יבש"
|
|
||||||
},
|
|
||||||
"name": "Program"
|
|
||||||
},
|
|
||||||
"programs_wm": {
|
"programs_wm": {
|
||||||
"state": {
|
"state": {
|
||||||
"20_degrees_new_energy_label": "20 מעלות צלזיוס",
|
"20_degrees_new_energy_label": "20 מעלות צלזיוס",
|
||||||
@ -514,7 +246,7 @@
|
|||||||
"allergy_care_pro": "Allergy Care Pro",
|
"allergy_care_pro": "Allergy Care Pro",
|
||||||
"all_in_one_49": "All in One 49 '",
|
"all_in_one_49": "All in One 49 '",
|
||||||
"all_in_one_59": "All in One 59 '",
|
"all_in_one_59": "All in One 59 '",
|
||||||
"all_in_one_59_steam": "All in One 59 '",
|
"all_in_one_59_steam": "שטיפה פעילה",
|
||||||
"autocare": "טיפול אוטומטי",
|
"autocare": "טיפול אוטומטי",
|
||||||
"autoclean": "ניקוי אוטומטי",
|
"autoclean": "ניקוי אוטומטי",
|
||||||
"baby_60": "BABY_60",
|
"baby_60": "BABY_60",
|
||||||
@ -544,7 +276,7 @@
|
|||||||
"iot_active_steam": "קִיטוֹר",
|
"iot_active_steam": "קִיטוֹר",
|
||||||
"iot_active_wash_steam": "שטיפה פעילה",
|
"iot_active_wash_steam": "שטיפה פעילה",
|
||||||
"iot_allergy_care_pro": "Allergy Care Pro",
|
"iot_allergy_care_pro": "Allergy Care Pro",
|
||||||
"iot_all_in_one_59_steam": "All in One 59 '",
|
"iot_all_in_one_59_steam": "שטיפה פעילה",
|
||||||
"iot_checkup": "בְּדִיקָה",
|
"iot_checkup": "בְּדִיקָה",
|
||||||
"iot_delicati_59_steam": "DELICATI_59",
|
"iot_delicati_59_steam": "DELICATI_59",
|
||||||
"iot_dry_air_refresh": "רענון אוויר",
|
"iot_dry_air_refresh": "רענון אוויר",
|
||||||
@ -712,9 +444,265 @@
|
|||||||
"tea": "Cold drinks or Beverages"
|
"tea": "Cold drinks or Beverages"
|
||||||
},
|
},
|
||||||
"name": "Program"
|
"name": "Program"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"select": {
|
||||||
|
"programs_dw": {
|
||||||
|
"state": {
|
||||||
|
"gentle_wash": "Gentle wash",
|
||||||
|
"iot_checkup": "בְּדִיקָה",
|
||||||
|
"iot_dreft_quick_cycle": "Dreft Quick",
|
||||||
|
"iot_fairy_quick_cycle": "Fairy Quick",
|
||||||
|
"iot_jar_quick_cycle": "Jar Quick",
|
||||||
|
"iot_yes_quick_cycle": "Yes Quick",
|
||||||
|
"smart_ai": "Smart AI",
|
||||||
|
"smart_ai_soil": "Smart AI"
|
||||||
|
},
|
||||||
|
"name": "Program"
|
||||||
},
|
},
|
||||||
"dry_time": {
|
"programs_ih": {
|
||||||
"name": "זמן ייבוש"
|
"state": {
|
||||||
|
"iot_special_grilled_vegetables": "Grilled vegetables"
|
||||||
|
},
|
||||||
|
"name": "Program"
|
||||||
|
},
|
||||||
|
"programs_ov": {
|
||||||
|
"state": {
|
||||||
|
"iot_h20_clean": "h2O clean",
|
||||||
|
"pizza": "Pizza",
|
||||||
|
"tailor_bake": "Tailor bake"
|
||||||
|
},
|
||||||
|
"name": "Program"
|
||||||
|
},
|
||||||
|
"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": "סינתטי יבש"
|
||||||
|
},
|
||||||
|
"name": "Program"
|
||||||
|
},
|
||||||
|
"programs_wm": {
|
||||||
|
"state": {
|
||||||
|
"20_degrees_new_energy_label": "20 מעלות צלזיוס",
|
||||||
|
"active_steam": "קִיטוֹר",
|
||||||
|
"active_wash": "שטיפה פעילה",
|
||||||
|
"active_wash_steam": "שטיפה פעילה",
|
||||||
|
"allergy_care": "טיפול באלרגיה",
|
||||||
|
"allergy_care_pro": "Allergy Care Pro",
|
||||||
|
"all_in_one_49": "All in One 49 '",
|
||||||
|
"all_in_one_59": "All in One 59 '",
|
||||||
|
"all_in_one_59_steam": "שטיפה פעילה",
|
||||||
|
"autocare": "טיפול אוטומטי",
|
||||||
|
"autoclean": "ניקוי אוטומטי",
|
||||||
|
"baby_60": "BABY_60",
|
||||||
|
"care_14": "טיפול מהיר 14 '",
|
||||||
|
"care_30": "טיפול מהיר 30 '",
|
||||||
|
"care_44": "טיפול מהיר 44 '",
|
||||||
|
"checkup": "בְּדִיקָה",
|
||||||
|
"cottons": "כותנה",
|
||||||
|
"cottons_prewash": "כותנה + כביסה מוקדמת",
|
||||||
|
"cotton_care_59": "Cotton Care 59 Min",
|
||||||
|
"delicate_59": "עדין 59 '",
|
||||||
|
"delicati_59": "DELICATI_59",
|
||||||
|
"delicati_59_steam": "DELICATI_59",
|
||||||
|
"drain_spin": "ניקוז + סיבוב",
|
||||||
|
"easy_iron": "גיהוץ קל",
|
||||||
|
"eco_40_60_new_energy_label": "אקו 40-60",
|
||||||
|
"extra_care": "אכפתיות מוגברת",
|
||||||
|
"fitness": "טיפול בכושר",
|
||||||
|
"fitness_care": "טיפול בכושר",
|
||||||
|
"fresh_care": "טיפול טרי",
|
||||||
|
"fresh_care_steam": "טיפול טרי",
|
||||||
|
"handwash_wool": "שטיפת ידיים + צמר",
|
||||||
|
"high_dry": "יבש בחום גבוה",
|
||||||
|
"hqd_dry_synthetics": "יבש בחום נמוך",
|
||||||
|
"hygiene_60": "היגיינה 60 מעלות צלזיוס",
|
||||||
|
"intensive_40": "40°C אינטנסיביים",
|
||||||
|
"iot_active_steam": "קִיטוֹר",
|
||||||
|
"iot_active_wash_steam": "שטיפה פעילה",
|
||||||
|
"iot_allergy_care_pro": "Allergy Care Pro",
|
||||||
|
"iot_all_in_one_59_steam": "שטיפה פעילה",
|
||||||
|
"iot_checkup": "בְּדִיקָה",
|
||||||
|
"iot_delicati_59_steam": "DELICATI_59",
|
||||||
|
"iot_dry_air_refresh": "רענון אוויר",
|
||||||
|
"iot_dry_anti_mites": "נגד קרדית",
|
||||||
|
"iot_dry_baby": "תִינוֹק",
|
||||||
|
"iot_dry_backpacks": "תיקי גב",
|
||||||
|
"iot_dry_bathrobe": "חלוקי רחצה",
|
||||||
|
"iot_dry_bed_linen": "מצעים",
|
||||||
|
"iot_dry_cotton_dry": "כותנה יבשה",
|
||||||
|
"iot_dry_cuddly_toys": "צעצועי חיבוק",
|
||||||
|
"iot_dry_curtains": "וילונות",
|
||||||
|
"iot_dry_dehumidifier": "מסיר לחות",
|
||||||
|
"iot_dry_delicates_antiallergy": "עדין נגד אלרגיה",
|
||||||
|
"iot_dry_delicate_tablecloths": "מפות עדינות",
|
||||||
|
"iot_dry_denim_jeans": "ג'ינס",
|
||||||
|
"iot_dry_easy_iron_cotton": "ברזל קל - כותנה",
|
||||||
|
"iot_dry_easy_iron_synthetics": "קל ברזל - סינתטיים",
|
||||||
|
"iot_dry_gym_fit": "כושר כושר - כושר",
|
||||||
|
"iot_dry_lingerie": "לִבנֵי נָשִׁים",
|
||||||
|
"iot_dry_mixed_dry": "מעורבב יבש",
|
||||||
|
"iot_dry_rapid_60_min_delicates": "מהיר 60 '- עדינים",
|
||||||
|
"iot_dry_shirts": "חולצות",
|
||||||
|
"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_dry": "צמר יבש",
|
||||||
|
"iot_easy_iron": "גיהוץ קל",
|
||||||
|
"iot_fresh_care_steam": "טיפול טרי",
|
||||||
|
"iot_synthetic_and_coloured_steam": "סינטטי וצבעוני",
|
||||||
|
"iot_wash_anti_mites": "נגד קרדית",
|
||||||
|
"iot_wash_anti_odor": "נגד ריח",
|
||||||
|
"iot_wash_ariel_clean_cycle": "Ariel Ultimate Clean",
|
||||||
|
"iot_wash_ariel_cold_cycle": "Ariel Cold Clean",
|
||||||
|
"iot_wash_ariel_fresh_cycle": "Ariel Fresh Clean",
|
||||||
|
"iot_wash_baby_sanitizer": "חיטוי לתינוקות",
|
||||||
|
"iot_wash_backpacks": "תיקי גב",
|
||||||
|
"iot_wash_bathrobe": "חלוקי רחצה ובדים נקבוביים",
|
||||||
|
"iot_wash_bed_linen": "מצעים",
|
||||||
|
"iot_wash_bed_linen_zelig": "מצעים",
|
||||||
|
"iot_wash_bleaching": "הַלבָּנָה",
|
||||||
|
"iot_wash_blood_stains": "כתמי דם",
|
||||||
|
"iot_wash_cashmere": "קשמיר",
|
||||||
|
"iot_wash_chocolate_stains": "כתמי שוקולד",
|
||||||
|
"iot_wash_cold_wash": "שטיפה קרה",
|
||||||
|
"iot_wash_colored": "צבעוני",
|
||||||
|
"iot_wash_colored_anti_stain": "נגד כתם צבעוני",
|
||||||
|
"iot_wash_colored_delicate": "צבעוני עדין",
|
||||||
|
"iot_wash_coloured": "צבעוני",
|
||||||
|
"iot_wash_cotton": "כותנה",
|
||||||
|
"iot_wash_cuddly_toys": "צעצועי חיבוק",
|
||||||
|
"iot_wash_curtains": "וילונות",
|
||||||
|
"iot_wash_curtains_zelig": "וילונות",
|
||||||
|
"iot_wash_dark": "אפל",
|
||||||
|
"iot_wash_darks_and_coloured_44": "חביבים וצבעוניים 44 '",
|
||||||
|
"iot_wash_darks_and_coloured_59": "חביבים וצבעוני 59 '",
|
||||||
|
"iot_wash_darks_and_coloured_xl": "חפצים וצבע XL",
|
||||||
|
"iot_wash_dash_clean_cycle": "Dash Ultimate Clean",
|
||||||
|
"iot_wash_dash_cold_cycle": "Dash Cold Clean",
|
||||||
|
"iot_wash_dash_fresh_cycle": "Dash Fresh Clean",
|
||||||
|
"iot_wash_delicate": "עדינים",
|
||||||
|
"iot_wash_delicate_antiallergy": "אנטי אלרגיה עדין",
|
||||||
|
"iot_wash_delicate_antiallergy_zelig": "אנטי אלרגיה עדין",
|
||||||
|
"iot_wash_delicate_colors": "צבעוני עדין",
|
||||||
|
"iot_wash_delicate_dark": "כהה עדין",
|
||||||
|
"iot_wash_delicate_tablecloths": "מפות עדינות",
|
||||||
|
"iot_wash_delicate_whites": "לבנים עדינים",
|
||||||
|
"iot_wash_denim_jeans": "ג'ינס",
|
||||||
|
"iot_wash_diving_suits": "חליפות צלילה",
|
||||||
|
"iot_wash_diving_suits_zelig": "חליפות צלילה",
|
||||||
|
"iot_wash_down_jackets": "מעילי פוך",
|
||||||
|
"iot_wash_down_jackets_zelig": "מעילי פוך",
|
||||||
|
"iot_wash_fruit_stains": "כתמי פרי",
|
||||||
|
"iot_wash_gym_fit": "כושר כושר - כושר",
|
||||||
|
"iot_wash_handwash": "שטיפת ידיים",
|
||||||
|
"iot_wash_handwash_colored": "שטיפת ידיים בצבע",
|
||||||
|
"iot_wash_handwash_dark": "שטיפת ידיים כהה",
|
||||||
|
"iot_wash_lingerie": "לִבנֵי נָשִׁים",
|
||||||
|
"iot_wash_masks_refresh": "מסכות רענן",
|
||||||
|
"iot_wash_masks_sanification": "חיטוי מסכות",
|
||||||
|
"iot_wash_mats": "מחצלות",
|
||||||
|
"iot_wash_men_s_trousers": "מכנסי גברים",
|
||||||
|
"iot_wash_mixed": "מעורב",
|
||||||
|
"iot_wash_mix_and_coloured_44": "לערבב וצבעוני 44 '",
|
||||||
|
"iot_wash_mix_and_coloured_59": "מיקס וצבעוני 59 '",
|
||||||
|
"iot_wash_mix_and_coloured_xl": "מערבבים וצבעים XL",
|
||||||
|
"iot_wash_new_clothes": "בגדים חדשים",
|
||||||
|
"iot_wash_perfect_white": "לבן מושלם",
|
||||||
|
"iot_wash_pets": "חיות מחמד",
|
||||||
|
"iot_wash_pets_steam": "חיות מחמד",
|
||||||
|
"iot_wash_playsuits": "חליפות משחק",
|
||||||
|
"iot_wash_rapid_14": "מהיר 14 '",
|
||||||
|
"iot_wash_rapid_30": "מהיר 30 '",
|
||||||
|
"iot_wash_rapid_44": "מהיר 44 '",
|
||||||
|
"iot_wash_rapid_59": "מהיר 59 '",
|
||||||
|
"iot_wash_refresh_14_min": "רענן 14 דקות",
|
||||||
|
"iot_wash_resistant_colored": "צבעוני עמיד",
|
||||||
|
"iot_wash_resistant_dark": "כהה עמיד",
|
||||||
|
"iot_wash_resistant_whites": "לבנים עמידים",
|
||||||
|
"iot_wash_rinse": "לִשְׁטוֹף",
|
||||||
|
"iot_wash_shirts": "חולצות",
|
||||||
|
"iot_wash_silk": "משי",
|
||||||
|
"iot_wash_ski_suit": "חליפת סקי",
|
||||||
|
"iot_wash_ski_suit_zelig": "חליפת סקי",
|
||||||
|
"iot_wash_spin": "סיבוב",
|
||||||
|
"iot_wash_sport": "ספּוֹרט",
|
||||||
|
"iot_wash_stains_remover": "מסיר כתמים",
|
||||||
|
"iot_wash_swimsuits_and_bikinis": "בגדי ים וביקיני",
|
||||||
|
"iot_wash_synthetic": "סינתטיים",
|
||||||
|
"iot_wash_tablecloths": "מפות שולחן",
|
||||||
|
"iot_wash_technical_fabrics": "בדים טכניים",
|
||||||
|
"iot_wash_technical_fabrics_zelig": "בדים טכניים",
|
||||||
|
"iot_wash_technical_jackets": "ז'קטים טכניים",
|
||||||
|
"iot_wash_technical_jackets_zelig": "ז'קטים טכניים",
|
||||||
|
"iot_wash_trainers": "מאמנים",
|
||||||
|
"iot_wash_whites": "לְבָנִים",
|
||||||
|
"iot_wash_whites_44": "לבנים 44 '",
|
||||||
|
"iot_wash_whites_59": "לבנים 59 '",
|
||||||
|
"iot_wash_whites_xl": "לבנים XL",
|
||||||
|
"iot_wash_wine_stains": "כתמי יין",
|
||||||
|
"iot_wash_wool": "צֶמֶר",
|
||||||
|
"jeans": "גִ'ינס",
|
||||||
|
"low_dry": "יבש בחום נמוך",
|
||||||
|
"mixed_and_colored_59": "מעורב וצבעוני 59 '",
|
||||||
|
"night_and_day": "לילה ויום",
|
||||||
|
"night_wash": "Night Wash",
|
||||||
|
"perfect_59": "מושלם 59 '",
|
||||||
|
"perfect_whites_59": "לבן מושלם",
|
||||||
|
"rapid_wash_and_dry_59_min": "לשטוף ולייבש 59 '",
|
||||||
|
"resistant_cotton": "כותנה",
|
||||||
|
"rinse": "לִשְׁטוֹף",
|
||||||
|
"silent_night": "Night Wash",
|
||||||
|
"soft_care": "טיפול רך",
|
||||||
|
"special_49": "מיוחד 49 '",
|
||||||
|
"sport_39": "ספורט 39 '",
|
||||||
|
"sport_plus_29": "ספורט פלוס 29 \"",
|
||||||
|
"steam_39": "קיטור 39 '",
|
||||||
|
"steam_care_pro": "Steam Care Pro",
|
||||||
|
"steam_care_pro_cotton": "Steam Care Pro",
|
||||||
|
"steam_care_pro_delicates": "Steam Care Pro",
|
||||||
|
"steam_care_pro_synthetic": "Steam Care Pro",
|
||||||
|
"synthetics": "סינתטיים",
|
||||||
|
"synthetic_and_coloured": "סינטטי וצבעוני",
|
||||||
|
"synthetic_and_coloured_steam": "סינטטי וצבעוני",
|
||||||
|
"tailored_resistant_cotton": "Tailored Resistant Cotton",
|
||||||
|
"tailored_synthetic_and_coloured": "Tailored Synthetic Colored",
|
||||||
|
"total_care": "טיפול טוטאלי",
|
||||||
|
"tumbling": "נופלים",
|
||||||
|
"wool_and_delicates_49": "Wool/Delicates 49'",
|
||||||
|
"wool_dry": "צמר יבש",
|
||||||
|
"wool_soft_care": "Wool & Soft Care"
|
||||||
|
},
|
||||||
|
"name": "Program"
|
||||||
|
},
|
||||||
|
"dry_levels": {
|
||||||
|
"state": {
|
||||||
|
"0": "ללא ייבוש",
|
||||||
|
"1": "בַּרזֶל",
|
||||||
|
"2": "לא לייבש ברזל",
|
||||||
|
"3": "ארון יבש",
|
||||||
|
"4": "יבש במיוחד",
|
||||||
|
"12": "בַּרזֶל",
|
||||||
|
"13": "ארון יבש",
|
||||||
|
"14": "Ready to wear",
|
||||||
|
"15": "יבש במיוחד",
|
||||||
|
"11": "ללא ייבוש"
|
||||||
|
},
|
||||||
|
"name": "רמת ייבוש"
|
||||||
},
|
},
|
||||||
"spin_speed": {
|
"spin_speed": {
|
||||||
"name": "סיבוב"
|
"name": "סיבוב"
|
||||||
@ -722,8 +710,55 @@
|
|||||||
"temperature": {
|
"temperature": {
|
||||||
"name": "Temperature"
|
"name": "Temperature"
|
||||||
},
|
},
|
||||||
|
"dry_time": {
|
||||||
|
"name": "זמן ייבוש"
|
||||||
|
},
|
||||||
|
"eco_pilot": {
|
||||||
|
"state": {
|
||||||
|
"0": "Off",
|
||||||
|
"1": "Avoid touch",
|
||||||
|
"2": "Follow"
|
||||||
|
},
|
||||||
|
"name": "Eco pilot"
|
||||||
|
},
|
||||||
|
"fan_mode": {
|
||||||
|
"state": {
|
||||||
|
"1": "High",
|
||||||
|
"2": "Medium ",
|
||||||
|
"3": "Low",
|
||||||
|
"4": "Auto",
|
||||||
|
"5": "Auto"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"programs_ac": {
|
||||||
|
"state": {
|
||||||
|
"iot_simple_start": "התחל עכשיו"
|
||||||
|
},
|
||||||
|
"name": "Program"
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
"name": "Program"
|
||||||
|
},
|
||||||
"remaining_time": {
|
"remaining_time": {
|
||||||
"name": "זמן שנותר"
|
"name": "זמן שנותר"
|
||||||
|
},
|
||||||
|
"ref_zones": {
|
||||||
|
"state": {
|
||||||
|
"fridge": "Fridge",
|
||||||
|
"freezer": "Freezer",
|
||||||
|
"vtroom1": "My Zone",
|
||||||
|
"fridge_freezer": "Fridge & Freezer"
|
||||||
|
},
|
||||||
|
"name": "Zone"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"switch": {
|
"switch": {
|
||||||
@ -811,15 +846,18 @@
|
|||||||
"acqua_plus": {
|
"acqua_plus": {
|
||||||
"name": "Acquaplus"
|
"name": "Acquaplus"
|
||||||
},
|
},
|
||||||
|
"auto_dose": {
|
||||||
|
"name": "מינון אוטומטי"
|
||||||
|
},
|
||||||
|
"good_night": {
|
||||||
|
"name": "לילה טוב"
|
||||||
|
},
|
||||||
"auto_dose_softener": {
|
"auto_dose_softener": {
|
||||||
"name": "מינון אוטומטי מרכך"
|
"name": "מינון אוטומטי מרכך"
|
||||||
},
|
},
|
||||||
"auto_dose_detergent": {
|
"auto_dose_detergent": {
|
||||||
"name": "מינון אוטומטי חומר ניקוי"
|
"name": "מינון אוטומטי חומר ניקוי"
|
||||||
},
|
},
|
||||||
"good_night": {
|
|
||||||
"name": "לילה טוב"
|
|
||||||
},
|
|
||||||
"auto_set": {
|
"auto_set": {
|
||||||
"name": "Auto-Set"
|
"name": "Auto-Set"
|
||||||
},
|
},
|
||||||
@ -852,12 +890,27 @@
|
|||||||
"anti_crease": {
|
"anti_crease": {
|
||||||
"name": "Anticrease"
|
"name": "Anticrease"
|
||||||
},
|
},
|
||||||
"acqua_plus": {
|
"aqua_plus": {
|
||||||
"name": "Acquaplus"
|
"name": "Acquaplus"
|
||||||
},
|
},
|
||||||
"spin_speed": {
|
"spin_speed": {
|
||||||
"name": "סיבוב"
|
"name": "סיבוב"
|
||||||
},
|
},
|
||||||
|
"programs_dw": {
|
||||||
|
"name": "Program"
|
||||||
|
},
|
||||||
|
"programs_ih": {
|
||||||
|
"name": "Program"
|
||||||
|
},
|
||||||
|
"programs_ov": {
|
||||||
|
"name": "Program"
|
||||||
|
},
|
||||||
|
"programs_td": {
|
||||||
|
"name": "Program"
|
||||||
|
},
|
||||||
|
"programs_wm": {
|
||||||
|
"name": "Program"
|
||||||
|
},
|
||||||
"still_hot": {
|
"still_hot": {
|
||||||
"name": "Still hot"
|
"name": "Still hot"
|
||||||
},
|
},
|
||||||
@ -888,6 +941,12 @@
|
|||||||
"prewash": {
|
"prewash": {
|
||||||
"name": "שטיפה מראש"
|
"name": "שטיפה מראש"
|
||||||
},
|
},
|
||||||
|
"acqua_plus": {
|
||||||
|
"name": "Acquaplus"
|
||||||
|
},
|
||||||
|
"auto_dose": {
|
||||||
|
"name": "מינון אוטומטי"
|
||||||
|
},
|
||||||
"buzzer": {
|
"buzzer": {
|
||||||
"name": "Cycle end chime"
|
"name": "Cycle end chime"
|
||||||
},
|
},
|
||||||
@ -913,17 +972,6 @@
|
|||||||
"name": "Filter replacement"
|
"name": "Filter replacement"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"button": {
|
|
||||||
"induction_hob": {
|
|
||||||
"name": "Induction Hob"
|
|
||||||
},
|
|
||||||
"start_program": {
|
|
||||||
"name": "Program Start"
|
|
||||||
},
|
|
||||||
"stop_program": {
|
|
||||||
"name": "Program Stop"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"number": {
|
"number": {
|
||||||
"power_management": {
|
"power_management": {
|
||||||
"name": "Power management"
|
"name": "Power management"
|
||||||
@ -962,17 +1010,20 @@
|
|||||||
"name": "Target temperature Fridge"
|
"name": "Target temperature Fridge"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"button": {
|
||||||
|
"induction_hob": {
|
||||||
|
"name": "Induction Hob"
|
||||||
|
},
|
||||||
|
"start_program": {
|
||||||
|
"name": "Program Start"
|
||||||
|
},
|
||||||
|
"stop_program": {
|
||||||
|
"name": "Program Stop"
|
||||||
|
}
|
||||||
|
},
|
||||||
"climate": {
|
"climate": {
|
||||||
"air_conditioner": {
|
"air_conditioner": {
|
||||||
"name": "Air conditioner",
|
"name": "Air conditioner"
|
||||||
"state_attributes": {
|
|
||||||
"preset_mode": {
|
|
||||||
"name": "Programs",
|
|
||||||
"state": {
|
|
||||||
"iot_simple_start": "התחל עכשיו"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"fridge": {
|
"fridge": {
|
||||||
"name": "Fridge",
|
"name": "Fridge",
|
||||||
@ -1013,19 +1064,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"wine": {
|
|
||||||
"state_attributes": {
|
|
||||||
"preset_mode": {
|
|
||||||
"name": "Wine Cellar",
|
|
||||||
"state": {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"air_extraction": {
|
|
||||||
"name": "Air extraction"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
63
info.md
63
info.md
@ -2,7 +2,7 @@
|
|||||||
[](https://github.com/Andre0512/hon/releases/latest)
|
[](https://github.com/Andre0512/hon/releases/latest)
|
||||||
[](https://github.com/Andre0512/hon/blob/main/LICENSE)
|
[](https://github.com/Andre0512/hon/blob/main/LICENSE)
|
||||||
[](https://tooomm.github.io/github-release-stats/?username=Andre0512&repository=hon)
|
[](https://tooomm.github.io/github-release-stats/?username=Andre0512&repository=hon)
|
||||||
Support for home appliances of [Haier's mobile app hOn](https://hon-smarthome.com/) based on [pyhOn](https://github.com/Andre0512/pyhon).
|
Support for home appliances of Haier's mobile app hOn.
|
||||||
|
|
||||||
## Supported Appliances
|
## Supported Appliances
|
||||||
- [Washing Machine](https://github.com/Andre0512/hon#washing-machine)
|
- [Washing Machine](https://github.com/Andre0512/hon#washing-machine)
|
||||||
@ -10,12 +10,10 @@ Support for home appliances of [Haier's mobile app hOn](https://hon-smarthome.co
|
|||||||
- [Washer Dryer](https://github.com/Andre0512/hon#washer-dryer)
|
- [Washer Dryer](https://github.com/Andre0512/hon#washer-dryer)
|
||||||
- [Oven](https://github.com/Andre0512/hon#oven)
|
- [Oven](https://github.com/Andre0512/hon#oven)
|
||||||
- [Dish Washer](https://github.com/Andre0512/hon#dish-washer)
|
- [Dish Washer](https://github.com/Andre0512/hon#dish-washer)
|
||||||
- [Air Conditioner](https://github.com/Andre0512/hon#air-conditioner)
|
- [Air conditioner](https://github.com/Andre0512/hon#air-conditioner)
|
||||||
- [Fridge](https://github.com/Andre0512/hon#fridge)
|
- [Fridge](https://github.com/Andre0512/hon#fridge)
|
||||||
- [Induction Hob](https://github.com/Andre0512/hon#induction-hob) [BETA]
|
- [Hob](https://github.com/Andre0512/hon#hob) [BETA]
|
||||||
- [Hood](https://github.com/Andre0512/hon#hood) [BETA]
|
- [Hood](https://github.com/Andre0512/hon#hood) [BETA]
|
||||||
- [Wine Cellar](https://github.com/Andre0512/hon#wine-cellar) [BETA]
|
|
||||||
- [Air Purifier](https://github.com/Andre0512/hon#air-purifier) [BETA]
|
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
@ -24,22 +22,6 @@ Support for home appliances of [Haier's mobile app hOn](https://hon-smarthome.co
|
|||||||
**Method 2**: Settings > Devices & Services > Add Integration > **Haier hOn**
|
**Method 2**: Settings > Devices & Services > Add Integration > **Haier hOn**
|
||||||
_If the integration is not in the list, you need to clear the browser cache._
|
_If the integration is not in the list, you need to clear the browser cache._
|
||||||
|
|
||||||
## Supported Models
|
|
||||||
Support 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** | **Hoover** | **Candy** |
|
|
||||||
|---------------------|----------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|
|
|
||||||
| **Washing Machine** | HW90-B14TEAM5 <br/> HW100-B14959U1 | H-WASH 500 <br/> H7W4 48MBC-S | CO4 107T1/2-07 <br/> CBWO49TWME-S <br/> RO44 1286DWMC4-07 <br/> HW 68AMC/1-80 <br/> HWPD 69AMBC/1-S |
|
|
||||||
| **Tumble Dryer** | HD80-A3959 | H-DRY 500 <br/> H9A3TCBEXS-S <br/> HLE C10DCE-80 <br/> NDE H10A2TCE-80 <br/> NDE H9A2TSBEXS-S <br/> NDPHY10A2TCBEXSS | BCTDH7A1TE <br/> CSOE C10DE-80 <br/> ROE H9A3TCEX-S |
|
|
||||||
| **Washer Dryer** | HWD100-B14979 | HWPS4954DAMR-11 | RPW41066BWMR/1-S |
|
|
||||||
| **Oven** | HWO60SM2F3XH | HSOT3161WG | |
|
|
||||||
| **Dish Washer** | XIB 3B2SFS-80 <br/> XIB 6B2D3FB | HFB 6B2S3FX | |
|
|
||||||
| **Air Conditioner** | AD105S2SM3FA <br/> AS20HPL1HRA <br/> AS25PBAHRA <br/> AS25S2SF1FA-WH <br/> AS25TADHRA-2 <br/> AS35S2SF2FA-3 <br/> AS35TADHRA-2 <br/> AS35TAMHRA-C | | |
|
|
||||||
| **Fridge** | HFW7720ENMB | | CCE4T620EWU |
|
|
||||||
| **Hob** | HA2MTSJ68MC | | CIS633SCTTWIFI |
|
|
||||||
| **Hood** | HADG6DS46BWIFI | | |
|
|
||||||
| **Wine Cellar** | HWS247FDU1 | | |
|
|
||||||
|
|
||||||
## Supported Languages
|
## Supported Languages
|
||||||
Translation of internal names like programs are available for all languages which are official supported by the hOn app:
|
Translation of internal names like programs are available for all languages which are official supported by the hOn app:
|
||||||
* 🇨🇳 Chinese
|
* 🇨🇳 Chinese
|
||||||
@ -66,6 +48,45 @@ Translation of internal names like programs are available for all languages whic
|
|||||||
### Washing Machine
|
### 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 AS20HPL1HRA
|
||||||
|
- Haier AS25PBAHRA
|
||||||
|
- Haier AS25S2SF1FA-WH
|
||||||
|
- Haier AS25TADHRA-2
|
||||||
|
- Haier AS35TADHRA-2
|
||||||
|
- Haier EG9012B19SU1JD
|
||||||
|
- Haier HA2MTSJ68MC
|
||||||
|
- Haier HADG6DS46BWIFI
|
||||||
|
- Haier HD80-A3959
|
||||||
|
- Haier HW90-B14TEAM5
|
||||||
|
- Haier HW100-B14959U1
|
||||||
|
- Haier HWD100-B14979
|
||||||
|
- Haier HWO60SM2F3XH
|
||||||
|
- Haier XIB 3B2SFS-80
|
||||||
|
- Haier XIB 6B2D3FB
|
||||||
|
- Candy BCTDH7A1TE
|
||||||
|
- Candy CCE4T620EWU
|
||||||
|
- Candy CIS633SCTTWIFI
|
||||||
|
- Candy CSOE C10DE-80
|
||||||
|
- Candy RO44 1286DWMC4-07
|
||||||
|
- Candy ROE H9A3TCEX-S
|
||||||
|
- Candy RPW41066BWMR/1-S
|
||||||
|
- Hoover H-WASH 500
|
||||||
|
- Hoover H-DRY 500
|
||||||
|
- Hoover H7W4 48MBC-S
|
||||||
|
- Hoover H9A3TCBEXS-S
|
||||||
|
- Hoover HFB 6B2S3FX
|
||||||
|
- Hoover HLE C10DCE-80
|
||||||
|
- Hoover HSOT3161WG
|
||||||
|
- Hoover HW 68AMC/1-80
|
||||||
|
- Hoover HWPD 69AMBC/1-S
|
||||||
|
- Hoover HWPS4954DAMR-11
|
||||||
|
- Hoover NDE H10A2TCE-80
|
||||||
|
- Hoover NDE H9A2TSBEXS-S
|
||||||
|
- Hoover NDPHY10A2TCBEXSS
|
||||||
|
|
||||||
## Contribute
|
## Contribute
|
||||||
Want to help us to support more appliances? Or add more sensors? Or help with translating? Or beautify some icons or captions?
|
Want to help us to support more appliances? Or add more sensors? Or help with translating? Or beautify some icons or captions?
|
||||||
Check out the [project on GitHub](https://github.com/Andre0512/hon), every contribution is welcome!
|
Check out the [project on GitHub](https://github.com/Andre0512/hon), every contribution is welcome!
|
||||||
|
@ -8,13 +8,248 @@ from pathlib import Path
|
|||||||
|
|
||||||
from pyhon import HonAPI
|
from pyhon import HonAPI
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
sys.path.insert(0, str(Path(__file__).parent.parent))
|
sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||||
|
|
||||||
from scripts.translation_keys import SENSOR, SELECT, PROGRAMS, NAMES, CLIMATE
|
|
||||||
from custom_components.hon import const
|
from custom_components.hon import const
|
||||||
|
|
||||||
|
SENSOR = {
|
||||||
|
"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": const.TUMBLE_DRYER_DRY_LEVEL,
|
||||||
|
"eco_pilot": const.AC_HUMAN_SENSE,
|
||||||
|
"fan_mode": const.AC_FAN_MODE,
|
||||||
|
"ref_zones": const.REF_ZONES,
|
||||||
|
}
|
||||||
|
|
||||||
|
PROGRAMS = {
|
||||||
|
"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_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",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
CLIMATE = {
|
||||||
|
"fridge": {
|
||||||
|
"preset_mode": {
|
||||||
|
"name": "REF_CMD&CTRL.MODE_SELECTION_DRAWER_FRIDGE.FRIDGE_MODE_TITLE",
|
||||||
|
"state": {
|
||||||
|
"auto_set": "REF_CMD&CTRL.MODALITIES.ECO",
|
||||||
|
"super_cool": "REF_CMD&CTRL.MODALITIES.SUPER_COOL",
|
||||||
|
"holiday": "REF_CMD&CTRL.MODALITIES.BACK_FROM_HOLIDAY",
|
||||||
|
"no_mode": "REF_CMD&CTRL.MODALITIES.NO_MODE_SELECTED",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"freezer": {
|
||||||
|
"preset_mode": {
|
||||||
|
"name": "REF_CMD&CTRL.MODE_SELECTION_DRAWER_FREEZER.FREEZER_MODE_TITLE",
|
||||||
|
"state": {
|
||||||
|
"auto_set": "REF_CMD&CTRL.MODALITIES.ECO",
|
||||||
|
"super_freeze": "REF_CMD&CTRL.MODALITIES.SHOCK_FREEZE",
|
||||||
|
"no_mode": "REF_CMD&CTRL.MODALITIES.NO_MODE_SELECTED",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"oven": {
|
||||||
|
"preset_mode": {
|
||||||
|
"name": "OV.TABS.PROGRAMS_TITLE",
|
||||||
|
"state": "PROGRAMS.OV",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
NAMES = {
|
||||||
|
"switch": {
|
||||||
|
"anti_crease": "HDRY_CMD&CTRL.PROGRAM_CYCLE_DETAIL.ANTICREASE_TITLE",
|
||||||
|
"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",
|
||||||
|
"open_door": "DW_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.OPEN_DOOR",
|
||||||
|
"three_in_one": "DW_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.THREE_IN_ONE",
|
||||||
|
"preheat": "OV.PROGRAM_DETAIL.PREHEAT",
|
||||||
|
"dish_washer": "GLOBALS.APPLIANCES_NAME.DW",
|
||||||
|
"tumble_dryer": "GLOBALS.APPLIANCES_NAME.TD",
|
||||||
|
"washing_machine": "GLOBALS.APPLIANCES_NAME.WM",
|
||||||
|
"washer_dryer": "GLOBALS.APPLIANCES_NAME.WD",
|
||||||
|
"oven": "GLOBALS.APPLIANCES_NAME.OV",
|
||||||
|
"prewash": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.PREWASH",
|
||||||
|
"pause": "GENERAL.PAUSE_PROGRAM",
|
||||||
|
"keep_fresh": "GLOBALS.APPLIANCE_STATUS.TUMBLING",
|
||||||
|
"delay_time": "HINTS.TIPS_TIME_ENERGY_SAVING.TIPS_USE_AT_NIGHT_TITLE",
|
||||||
|
"rapid_mode": "AC.PROGRAM_CARD.RAPID",
|
||||||
|
"eco_mode": "AC.PROGRAM_CARD.ECO_MODE",
|
||||||
|
"10_degree_heating": "PROGRAMS.AC.IOT_10_HEATING",
|
||||||
|
"self_clean": "PROGRAMS.AC.IOT_SELF_CLEAN",
|
||||||
|
"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",
|
||||||
|
"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",
|
||||||
|
"good_night": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.GOODNIGHT",
|
||||||
|
"anti_crease": "HDRY_CMD&CTRL.PROGRAM_CYCLE_DETAIL.ANTICREASE_TITLE",
|
||||||
|
"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",
|
||||||
|
"remote_control": "OV.SUPPORT.REMOTE_CONTROL",
|
||||||
|
"rinse_aid": "DW_CMD&CTRL.MAINTENANCE.CONSUMABLE_LEVELS_ICON_RINSE_AID",
|
||||||
|
"salt_level": "DW_CMD&CTRL.MAINTENANCE.CONSUMABLE_LEVELS_ICON_SALT",
|
||||||
|
"door_open": "GLOBALS.APPLIANCE_STATUS.DOOR_OPEN",
|
||||||
|
"connection": "ENROLLMENT_COMMON.HEADER_NAME.STEP_APPLIANCE_CONNECTION",
|
||||||
|
"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",
|
||||||
|
"dry_time": "WASHING_CMD&CTRL.DRAWER_CYCLE_DRYING.TAB_TIME",
|
||||||
|
"spin_speed": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.SPINSPEED",
|
||||||
|
"temperature": "IH.COMMON.TEMPERATURE",
|
||||||
|
"programs_dw": "WC.SET_PROGRAM.PROGRAM",
|
||||||
|
"programs_ih": "WC.SET_PROGRAM.PROGRAM",
|
||||||
|
"programs_ov": "WC.SET_PROGRAM.PROGRAM",
|
||||||
|
"programs_td": "WC.SET_PROGRAM.PROGRAM",
|
||||||
|
"programs_wm": "WC.SET_PROGRAM.PROGRAM",
|
||||||
|
"programs_ac": "WC.SET_PROGRAM.PROGRAM",
|
||||||
|
"programs_ref": "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",
|
||||||
|
"dry_time": "WASHING_CMD&CTRL.DRAWER_CYCLE_DRYING.TAB_TIME",
|
||||||
|
"power": "OV.RECIPE_DETAIL.POWER_LEVEL",
|
||||||
|
"remaining_time": "ENROLLMENT_COMMON.GENERAL.REMAINING_TIME",
|
||||||
|
"temperature": "IH.COMMON.TEMPERATURE",
|
||||||
|
"water_efficiency": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_RESULT.WATER_EFFICIENCY",
|
||||||
|
"water_saving": "STATISTICS.SMART_AI_CYCLE.WATER_SAVING",
|
||||||
|
"duration": "WASHING_CMD&CTRL.DRAWER_PROGRAM_FILTERS.DURATION",
|
||||||
|
"target_temperature": "IH.COOKING_DETAIL.TEMPERATURE_TARGETING",
|
||||||
|
"spin_speed": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.SPINSPEED",
|
||||||
|
"steam_leve": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.STEAM_LEVEL",
|
||||||
|
"dirt_level": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.DIRTY_LEVEL",
|
||||||
|
"program_phases_wm": "WASHING_CMD&CTRL.STATISTICS_GRAPHIC_INSTANT_CONSUMPTION.PHASE",
|
||||||
|
"program_phases_td": "WASHING_CMD&CTRL.STATISTICS_GRAPHIC_INSTANT_CONSUMPTION.PHASE",
|
||||||
|
"program_phases_dw": "WASHING_CMD&CTRL.STATISTICS_GRAPHIC_INSTANT_CONSUMPTION.PHASE",
|
||||||
|
"delay_time": "HINTS.TIPS_TIME_ENERGY_SAVING.TIPS_USE_AT_NIGHT_TITLE",
|
||||||
|
"suggested_load": "WASHING_CMD&CTRL.DRAWER_PROGRAM_FILTERS.LOAD_CAPACITY",
|
||||||
|
"energy_label": "WASHING_CMD&CTRL.DRAWER_PROGRAM_FILTERS.ENERGY_EFFICIENCY",
|
||||||
|
"det_dust": "HUBS.WIDGET.STAINS_WIDGET.STAINS.SUGGESTED_DET_DUST",
|
||||||
|
"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",
|
||||||
|
],
|
||||||
|
"energy_total": [
|
||||||
|
"MISE.ENERGY_CONSUMPTION.TITLE",
|
||||||
|
"WC.VIRTUAL_WINE_STATS_COUNTRY.TOTAL",
|
||||||
|
],
|
||||||
|
"water_total": [
|
||||||
|
"WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_RESULT.WATER_EFFICIENCY",
|
||||||
|
"WC.VIRTUAL_WINE_STATS_COUNTRY.TOTAL",
|
||||||
|
],
|
||||||
|
"energy_current": [
|
||||||
|
"MISE.ENERGY_CONSUMPTION.TITLE",
|
||||||
|
"CUBE90_GLOBAL.GENERAL.CURRENT",
|
||||||
|
],
|
||||||
|
"water_current": [
|
||||||
|
"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",
|
||||||
|
"programs_dw": "WC.SET_PROGRAM.PROGRAM",
|
||||||
|
"programs_ih": "WC.SET_PROGRAM.PROGRAM",
|
||||||
|
"programs_ov": "WC.SET_PROGRAM.PROGRAM",
|
||||||
|
"programs_td": "WC.SET_PROGRAM.PROGRAM",
|
||||||
|
"programs_wm": "WC.SET_PROGRAM.PROGRAM",
|
||||||
|
"programs_ac": "WC.SET_PROGRAM.PROGRAM",
|
||||||
|
"programs_ref": "WC.SET_PROGRAM.PROGRAM",
|
||||||
|
},
|
||||||
|
"number": {
|
||||||
|
"power_management": "HINTS.COOKING_WITH_INDUCTION.POWER_MANAGEMENT",
|
||||||
|
"temperature": "IH.COMMON.TEMPERATURE",
|
||||||
|
"delay_time": "HINTS.TIPS_TIME_ENERGY_SAVING.TIPS_USE_AT_NIGHT_TITLE",
|
||||||
|
"water_hard": "WASHING_CMD&CTRL.DASHBOARD_MENU_MORE_SETTINGS_WATER.TITLE",
|
||||||
|
"program_duration": "OV.PROGRAM_DETAIL.PROGRAM_DURATION",
|
||||||
|
"target_temperature": "IH.COOKING_DETAIL.TEMPERATURE_TARGETING",
|
||||||
|
"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",
|
||||||
|
"oven": "GLOBALS.APPLIANCES_NAME.OV",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
async def check_translation_files(translations):
|
async def check_translation_files(translations):
|
||||||
for language in const.LANGUAGES:
|
for language in const.LANGUAGES:
|
||||||
|
@ -14,7 +14,6 @@ from custom_components.hon.climate import CLIMATES
|
|||||||
from custom_components.hon.number import NUMBERS
|
from custom_components.hon.number import NUMBERS
|
||||||
from custom_components.hon.select import SELECTS
|
from custom_components.hon.select import SELECTS
|
||||||
from custom_components.hon.sensor import SENSORS
|
from custom_components.hon.sensor import SENSORS
|
||||||
from custom_components.hon.fan import FANS
|
|
||||||
from custom_components.hon.switch import (
|
from custom_components.hon.switch import (
|
||||||
SWITCHES,
|
SWITCHES,
|
||||||
HonControlSwitchEntityDescription,
|
HonControlSwitchEntityDescription,
|
||||||
@ -22,21 +21,21 @@ from custom_components.hon.switch import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
APPLIANCES = {
|
APPLIANCES = {
|
||||||
"AC": "Air Conditioner",
|
"AC": "Air conditioner",
|
||||||
"AP": "Air Purifier",
|
"AP": "Air purifier",
|
||||||
"AS": "Air Scanner",
|
"AS": "Air scanner",
|
||||||
"DW": "Dish Washer",
|
"DW": "Dish washer",
|
||||||
"HO": "Hood",
|
"HO": "Hood",
|
||||||
"IH": "Induction Hob",
|
"IH": "Hob",
|
||||||
"MW": "Microwave",
|
"MW": "Microwave",
|
||||||
"OV": "Oven",
|
"OV": "Oven",
|
||||||
"REF": "Fridge",
|
"REF": "Fridge",
|
||||||
"RVC": "Robot Vacuum Cleaner",
|
"RVC": "Robot vacuum cleaner",
|
||||||
"TD": "Tumble Dryer",
|
"TD": "Tumble dryer",
|
||||||
"WC": "Wine Cellar",
|
"WC": "Wine Cellar",
|
||||||
"WD": "Washer Dryer",
|
"WD": "Washer dryer",
|
||||||
"WH": "Water Heater",
|
"WH": "Water Heater",
|
||||||
"WM": "Washing Machine",
|
"WM": "Washing machine",
|
||||||
}
|
}
|
||||||
|
|
||||||
ENTITY_CATEGORY_SORT = ["control", "config", "sensor"]
|
ENTITY_CATEGORY_SORT = ["control", "config", "sensor"]
|
||||||
@ -49,7 +48,6 @@ entities = {
|
|||||||
"sensor": SENSORS,
|
"sensor": SENSORS,
|
||||||
"switch": SWITCHES,
|
"switch": SWITCHES,
|
||||||
"climate": CLIMATES,
|
"climate": CLIMATES,
|
||||||
"fan": FANS,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
result = {}
|
result = {}
|
||||||
|
@ -1,345 +0,0 @@
|
|||||||
WASHING_PR_PHASE = {
|
|
||||||
"ready": "WASHING_CMD&CTRL.PHASE_READY.TITLE",
|
|
||||||
"spin": "WASHING_CMD&CTRL.PHASE_SPIN.TITLE",
|
|
||||||
"rinse": "WASHING_CMD&CTRL.PHASE_RINSE.TITLE",
|
|
||||||
"drying": "WASHING_CMD&CTRL.PHASE_DRYING.TITLE",
|
|
||||||
"steam": "WASHING_CMD&CTRL.PHASE_STEAM.TITLE",
|
|
||||||
"weighting": "WASHING_CMD&CTRL.PHASE_WEIGHTING.TITLE",
|
|
||||||
"scheduled": "WASHING_CMD&CTRL.PHASE_SCHEDULED.TITLE",
|
|
||||||
"tumbling": "WASHING_CMD&CTRL.PHASE_TUMBLING.TITLE",
|
|
||||||
"refresh": "WASHING_CMD&CTRL.PHASE_REFRESH.TITLE",
|
|
||||||
"heating": "WASHING_CMD&CTRL.PHASE_HEATING.TITLE",
|
|
||||||
"washing": "WASHING_CMD&CTRL.PHASE_WASHING.TITLE",
|
|
||||||
}
|
|
||||||
|
|
||||||
MACH_MODE = {
|
|
||||||
"ready": "WASHING_CMD&CTRL.PHASE_READY.TITLE",
|
|
||||||
"running": "WASHING_CMD&CTRL.PHASE_RUNNING.TITLE",
|
|
||||||
"pause": "WASHING_CMD&CTRL.PHASE_PAUSE.TITLE",
|
|
||||||
"scheduled": "WASHING_CMD&CTRL.PHASE_SCHEDULED.TITLE",
|
|
||||||
"error": "WASHING_CMD&CTRL.PHASE_ERROR.TITLE",
|
|
||||||
"test": "Test",
|
|
||||||
"ending": "GLOBALS.APPLIANCE_STATUS.ENDING_PROGRAM",
|
|
||||||
}
|
|
||||||
|
|
||||||
TUMBLE_DRYER_PR_PHASE = {
|
|
||||||
"ready": "WASHING_CMD&CTRL.PHASE_READY.TITLE",
|
|
||||||
"heat_stroke": "TD_CMD&CTRL.STATUS_PHASE.PHASE_HEAT_STROKE",
|
|
||||||
"drying": "WASHING_CMD&CTRL.PHASE_DRYING.TITLE",
|
|
||||||
"cooldown": "TD_CMD&CTRL.STATUS_PHASE.PHASE_COOLDOWN",
|
|
||||||
"unknown": "unknown",
|
|
||||||
"tumbling": "WASHING_CMD&CTRL.PHASE_TUMBLING.DASHBOARD_TITLE",
|
|
||||||
}
|
|
||||||
|
|
||||||
DIRTY_LEVEL = {
|
|
||||||
"little": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OPTIONS_VALUES_DESCRIPTION.LITTLE",
|
|
||||||
"normal": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OPTIONS_VALUES_DESCRIPTION.NORMAL",
|
|
||||||
"very": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OPTIONS_VALUES_DESCRIPTION.VERY",
|
|
||||||
"unknown": "unknown",
|
|
||||||
}
|
|
||||||
|
|
||||||
STEAM_LEVEL = {
|
|
||||||
"no_steam": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OPTIONS_VALUES_DESCRIPTION.NO_STEAM",
|
|
||||||
"cotton": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_FABRICS.COTTON_TITLE",
|
|
||||||
"delicate": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_FABRICS.DELICATE_TITLE",
|
|
||||||
"synthetic": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_FABRICS.SYNTHETIC_TITLE",
|
|
||||||
}
|
|
||||||
|
|
||||||
DISHWASHER_PR_PHASE = {
|
|
||||||
"ready": "WASHING_CMD&CTRL.PHASE_READY.TITLE",
|
|
||||||
"prewash": "WASHING_CMD&CTRL.PHASE_PREWASH.TITLE",
|
|
||||||
"washing": "WASHING_CMD&CTRL.PHASE_WASHING.TITLE",
|
|
||||||
"rinse": "WASHING_CMD&CTRL.PHASE_RINSE.TITLE",
|
|
||||||
"drying": "WASHING_CMD&CTRL.PHASE_DRYING.TITLE",
|
|
||||||
"hot_rinse": "WASHING_CMD&CTRL.PHASE_HOT_RINSE.TITLE",
|
|
||||||
}
|
|
||||||
|
|
||||||
TUMBLE_DRYER_DRY_LEVEL = {
|
|
||||||
"no_dry": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.NO_DRY",
|
|
||||||
"iron_dry": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OPTIONS_VALUES_DESCRIPTION.IRON_DRY",
|
|
||||||
"no_dry_iron": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.NO_DRY_IRON_TITLE",
|
|
||||||
"cupboard_dry": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.CUPBOARD_DRY_TITLE",
|
|
||||||
"extra_dry": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.EXTRA_DRY_TITLE",
|
|
||||||
"ready_to_wear": "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.READY_TO_WEAR_TITLE",
|
|
||||||
}
|
|
||||||
|
|
||||||
AC_MACH_MODE = {
|
|
||||||
"auto": "PROGRAMS.AC.IOT_AUTO",
|
|
||||||
"cool": "PROGRAMS.AC.IOT_COOL",
|
|
||||||
"dry": "PROGRAMS.AC.IOT_DRY",
|
|
||||||
"heat": "PROGRAMS.AC.IOT_HEAT",
|
|
||||||
"fan": "PROGRAMS.AC.IOT_FAN",
|
|
||||||
}
|
|
||||||
|
|
||||||
AC_FAN_MODE = {
|
|
||||||
"high": "AC.PROGRAM_CARD.WIND_SPEED_HIGH",
|
|
||||||
"mid": "AC.PROGRAM_CARD.WIND_SPEED_MID",
|
|
||||||
"low": "AC.PROGRAM_CARD.WIND_SPEED_LOW",
|
|
||||||
"auto": "AC.PROGRAM_CARD.WIND_SPEED_AUTO",
|
|
||||||
}
|
|
||||||
|
|
||||||
AC_HUMAN_SENSE = {
|
|
||||||
"touch_off": "AC.PROGRAM_DETAIL.TOUCH_OFF",
|
|
||||||
"avoid_touch": "AC.PROGRAM_DETAIL.AVOID_TOUCH",
|
|
||||||
"follow_touch": "AC.PROGRAM_DETAIL.FOLLOW_TOUCH",
|
|
||||||
"unknown": "unknown",
|
|
||||||
}
|
|
||||||
|
|
||||||
REF_ZONES = {
|
|
||||||
"fridge": "REF.ZONES.FRIDGE",
|
|
||||||
"freezer": "REF.ZONES.FREEZER",
|
|
||||||
"vtroom1": "REF.ZONES.MY_ZONE_1",
|
|
||||||
"fridge_freezer": ["REF.ZONES.FRIDGE", " & ", "REF.ZONES.FREEZER"],
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
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,
|
|
||||||
}
|
|
||||||
|
|
||||||
SELECT = {
|
|
||||||
"dry_levels": TUMBLE_DRYER_DRY_LEVEL,
|
|
||||||
"eco_pilot": AC_HUMAN_SENSE,
|
|
||||||
"fan_mode": AC_FAN_MODE,
|
|
||||||
"ref_zones": REF_ZONES,
|
|
||||||
}
|
|
||||||
|
|
||||||
PROGRAMS = {
|
|
||||||
"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_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",
|
|
||||||
"programs_wc": "PROGRAMS.WC",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
CLIMATE = {
|
|
||||||
"fridge": {
|
|
||||||
"preset_mode": {
|
|
||||||
"name": "REF_CMD&CTRL.MODE_SELECTION_DRAWER_FRIDGE.FRIDGE_MODE_TITLE",
|
|
||||||
"state": {
|
|
||||||
"auto_set": "REF_CMD&CTRL.MODALITIES.ECO",
|
|
||||||
"super_cool": "REF_CMD&CTRL.MODALITIES.SUPER_COOL",
|
|
||||||
"holiday": "REF_CMD&CTRL.MODALITIES.BACK_FROM_HOLIDAY",
|
|
||||||
"no_mode": "REF_CMD&CTRL.MODALITIES.NO_MODE_SELECTED",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"freezer": {
|
|
||||||
"preset_mode": {
|
|
||||||
"name": "REF_CMD&CTRL.MODE_SELECTION_DRAWER_FREEZER.FREEZER_MODE_TITLE",
|
|
||||||
"state": {
|
|
||||||
"auto_set": "REF_CMD&CTRL.MODALITIES.ECO",
|
|
||||||
"super_freeze": "REF_CMD&CTRL.MODALITIES.SHOCK_FREEZE",
|
|
||||||
"no_mode": "REF_CMD&CTRL.MODALITIES.NO_MODE_SELECTED",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"oven": {
|
|
||||||
"preset_mode": {
|
|
||||||
"name": "OV.TABS.PROGRAMS_TITLE",
|
|
||||||
"state": "PROGRAMS.OV",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"air_conditioner": {
|
|
||||||
"preset_mode": {
|
|
||||||
"name": "OV.TABS.PROGRAMS_TITLE",
|
|
||||||
"state": "PROGRAMS.AC",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"wine": {
|
|
||||||
"preset_mode": {
|
|
||||||
"name": "WC.NAME",
|
|
||||||
"state": "PROGRAMS.WC",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
NAMES = {
|
|
||||||
"switch": {
|
|
||||||
"anti_crease": "HDRY_CMD&CTRL.PROGRAM_CYCLE_DETAIL.ANTICREASE_TITLE",
|
|
||||||
"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",
|
|
||||||
"open_door": "DW_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.OPEN_DOOR",
|
|
||||||
"three_in_one": "DW_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.THREE_IN_ONE",
|
|
||||||
"preheat": "OV.PROGRAM_DETAIL.PREHEAT",
|
|
||||||
"dish_washer": "GLOBALS.APPLIANCES_NAME.DW",
|
|
||||||
"tumble_dryer": "GLOBALS.APPLIANCES_NAME.TD",
|
|
||||||
"washing_machine": "GLOBALS.APPLIANCES_NAME.WM",
|
|
||||||
"washer_dryer": "GLOBALS.APPLIANCES_NAME.WD",
|
|
||||||
"oven": "GLOBALS.APPLIANCES_NAME.OV",
|
|
||||||
"prewash": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.PREWASH",
|
|
||||||
"pause": "GENERAL.PAUSE_PROGRAM",
|
|
||||||
"keep_fresh": "GLOBALS.APPLIANCE_STATUS.TUMBLING",
|
|
||||||
"delay_time": "HINTS.TIPS_TIME_ENERGY_SAVING.TIPS_USE_AT_NIGHT_TITLE",
|
|
||||||
"rapid_mode": "AC.PROGRAM_CARD.RAPID",
|
|
||||||
"eco_mode": "AC.PROGRAM_CARD.ECO_MODE",
|
|
||||||
"10_degree_heating": "PROGRAMS.AC.IOT_10_HEATING",
|
|
||||||
"self_clean": "PROGRAMS.AC.IOT_SELF_CLEAN",
|
|
||||||
"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",
|
|
||||||
"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",
|
|
||||||
"good_night": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.GOODNIGHT",
|
|
||||||
"anti_crease": "HDRY_CMD&CTRL.PROGRAM_CYCLE_DETAIL.ANTICREASE_TITLE",
|
|
||||||
"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",
|
|
||||||
"remote_control": "OV.SUPPORT.REMOTE_CONTROL",
|
|
||||||
"rinse_aid": "DW_CMD&CTRL.MAINTENANCE.CONSUMABLE_LEVELS_ICON_RINSE_AID",
|
|
||||||
"salt_level": "DW_CMD&CTRL.MAINTENANCE.CONSUMABLE_LEVELS_ICON_SALT",
|
|
||||||
"door_open": "GLOBALS.APPLIANCE_STATUS.DOOR_OPEN",
|
|
||||||
"connection": "ENROLLMENT_COMMON.HEADER_NAME.STEP_APPLIANCE_CONNECTION",
|
|
||||||
"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",
|
|
||||||
"dry_time": "WASHING_CMD&CTRL.DRAWER_CYCLE_DRYING.TAB_TIME",
|
|
||||||
"spin_speed": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.SPINSPEED",
|
|
||||||
"temperature": "IH.COMMON.TEMPERATURE",
|
|
||||||
"programs_dw": "WC.SET_PROGRAM.PROGRAM",
|
|
||||||
"programs_ih": "WC.SET_PROGRAM.PROGRAM",
|
|
||||||
"programs_ov": "WC.SET_PROGRAM.PROGRAM",
|
|
||||||
"programs_td": "WC.SET_PROGRAM.PROGRAM",
|
|
||||||
"programs_wm": "WC.SET_PROGRAM.PROGRAM",
|
|
||||||
"programs_ac": "WC.SET_PROGRAM.PROGRAM",
|
|
||||||
"programs_ref": "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",
|
|
||||||
"dry_time": "WASHING_CMD&CTRL.DRAWER_CYCLE_DRYING.TAB_TIME",
|
|
||||||
"power": "OV.RECIPE_DETAIL.POWER_LEVEL",
|
|
||||||
"remaining_time": "ENROLLMENT_COMMON.GENERAL.REMAINING_TIME",
|
|
||||||
"temperature": "IH.COMMON.TEMPERATURE",
|
|
||||||
"water_efficiency": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_RESULT.WATER_EFFICIENCY",
|
|
||||||
"water_saving": "STATISTICS.SMART_AI_CYCLE.WATER_SAVING",
|
|
||||||
"duration": "WASHING_CMD&CTRL.DRAWER_PROGRAM_FILTERS.DURATION",
|
|
||||||
"target_temperature": "IH.COOKING_DETAIL.TEMPERATURE_TARGETING",
|
|
||||||
"spin_speed": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.SPINSPEED",
|
|
||||||
"steam_leve": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.STEAM_LEVEL",
|
|
||||||
"dirt_level": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.DIRTY_LEVEL",
|
|
||||||
"program_phases_wm": "WASHING_CMD&CTRL.STATISTICS_GRAPHIC_INSTANT_CONSUMPTION.PHASE",
|
|
||||||
"program_phases_td": "WASHING_CMD&CTRL.STATISTICS_GRAPHIC_INSTANT_CONSUMPTION.PHASE",
|
|
||||||
"program_phases_dw": "WASHING_CMD&CTRL.STATISTICS_GRAPHIC_INSTANT_CONSUMPTION.PHASE",
|
|
||||||
"delay_time": "HINTS.TIPS_TIME_ENERGY_SAVING.TIPS_USE_AT_NIGHT_TITLE",
|
|
||||||
"suggested_load": "WASHING_CMD&CTRL.DRAWER_PROGRAM_FILTERS.LOAD_CAPACITY",
|
|
||||||
"energy_label": "WASHING_CMD&CTRL.DRAWER_PROGRAM_FILTERS.ENERGY_EFFICIENCY",
|
|
||||||
"det_dust": "HUBS.WIDGET.STAINS_WIDGET.STAINS.SUGGESTED_DET_DUST",
|
|
||||||
"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",
|
|
||||||
],
|
|
||||||
"energy_total": [
|
|
||||||
"MISE.ENERGY_CONSUMPTION.TITLE",
|
|
||||||
"WC.VIRTUAL_WINE_STATS_COUNTRY.TOTAL",
|
|
||||||
],
|
|
||||||
"water_total": [
|
|
||||||
"WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_RESULT.WATER_EFFICIENCY",
|
|
||||||
"WC.VIRTUAL_WINE_STATS_COUNTRY.TOTAL",
|
|
||||||
],
|
|
||||||
"energy_current": [
|
|
||||||
"MISE.ENERGY_CONSUMPTION.TITLE",
|
|
||||||
"CUBE90_GLOBAL.GENERAL.CURRENT",
|
|
||||||
],
|
|
||||||
"water_current": [
|
|
||||||
"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",
|
|
||||||
"programs_dw": "WC.SET_PROGRAM.PROGRAM",
|
|
||||||
"programs_ih": "WC.SET_PROGRAM.PROGRAM",
|
|
||||||
"programs_ov": "WC.SET_PROGRAM.PROGRAM",
|
|
||||||
"programs_td": "WC.SET_PROGRAM.PROGRAM",
|
|
||||||
"programs_wm": "WC.SET_PROGRAM.PROGRAM",
|
|
||||||
"programs_ac": "WC.SET_PROGRAM.PROGRAM",
|
|
||||||
"programs_ref": "WC.SET_PROGRAM.PROGRAM",
|
|
||||||
},
|
|
||||||
"number": {
|
|
||||||
"power_management": "HINTS.COOKING_WITH_INDUCTION.POWER_MANAGEMENT",
|
|
||||||
"temperature": "IH.COMMON.TEMPERATURE",
|
|
||||||
"delay_time": "HINTS.TIPS_TIME_ENERGY_SAVING.TIPS_USE_AT_NIGHT_TITLE",
|
|
||||||
"water_hard": "WASHING_CMD&CTRL.DASHBOARD_MENU_MORE_SETTINGS_WATER.TITLE",
|
|
||||||
"program_duration": "OV.PROGRAM_DETAIL.PROGRAM_DURATION",
|
|
||||||
"target_temperature": "IH.COOKING_DETAIL.TEMPERATURE_TARGETING",
|
|
||||||
"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",
|
|
||||||
"oven": "GLOBALS.APPLIANCES_NAME.OV",
|
|
||||||
},
|
|
||||||
"fan": {"air_extraction": "HO.DASHBOARD.AIR_EXTRACTION_TITLE"},
|
|
||||||
}
|
|
Reference in New Issue
Block a user