Haier hOn
Home Assistant integration for Haier hOn: support for Haier/Candy/Hoover
home appliances like washing machines.
Supported Appliances
Installation
Method 1:
Method 2: HACS >
Integrations > Add Integration > Haier hOn >
Install
Method 3: Manually copy hon
folder from
latest
release to config/custom_components
folder.
Restart Home Assistant
Configuration
Method 1:
Method 2: Settings > Devices & Services >
Add Integration > Haier hOn
If the integration is not in the list, you need to clear the browser
cache.
Contribute
Any kind of contribution is welcome! ### Read out device data If you
want to make a request for adding new appliances or additional
attributes and don’t want to use the command line, here is how you can
read out your device data. For every device exists a hidden button which
can be used to log all info of your appliance. 1. Enable the “Log Device
Info” button
This button can be found in the diagnostic section of your device or
in the entity overview if “show disabled entities” is enabled. 2.
Press the button 3. Go to Settings > System > Logs, click load
full logs and scroll down
The formatting is messy if you not load full logs 4. Here you
can find all data which can be read out via the api
yaml data: appliance: applianceId: 12-34-56-78-90-ab#2022-10-25T19:47:11Z applianceModelId: 1569 ...
5. Copy this data and create a new issue with
your request
Add appliances or
additional attributes
- Install pyhOn
commandline $ pip install pyhOn
- Use the command line tool to read out all appliance data from your
account
commandline $ pyhOn User for hOn account: user.name@example.com Password for hOn account: ******** ========== WM - Washing Machine ========== commands: pauseProgram: pauseProgram command resumeProgram: resumeProgram command startProgram: startProgram command stopProgram: stopProgram command data: actualWeight: 0 airWashTempLevel: 0 airWashTime: 0 antiAllergyStatus: 0 ...
- Fork this repository and clone it to your local machine
- Add the keys of the attributes you’d like to have as
EntityDescription
into this Repository
Example: Add pause button
python BUTTONS: dict[str, tuple[ButtonEntityDescription, ...]] = { "WM": ( # WM is the applianceTypeName ButtonEntityDescription( key="pauseProgram", # key from pyhOn name="Pause Program", # name in home assistant icon="mdi:pause", # icon in home assistant ... ), ...
- Create a pull
request
Tips and Tricks
- If you want to have some states humanreadable, have a look at the
translation_key
parameter of the
EntityDescription
.
- If you need to implement some more logic, create a pull request to
the underlying library. There we collect special requirements in the
appliances
directory.
- Use pyhOn’s
translate command to read out the official translations
Tested Devices
- Haier WD90-B14TEAM5
- Haier HD80-A3959
- Haier HWO60SM2F3XH
- Hoover H-WASH 500
About this Repo
The existing integrations missed some features from the app I liked
to have in HomeAssistant. I tried to create a pull request, but in the
structures of these existing repos, I find it hard to fit in my needs,
so I basically rewrote everything. I moved the api related stuff into
the package pyhOn.
Appliance Features
Dish washer
Controls
Name |
Icon |
Entity |
Key |
Dish Washer |
mdi:dishwasher |
switch |
active |
Configs
Name |
Icon |
Entity |
Key |
Add Dish |
mdi:silverware-fork-knife |
switch |
startProgram.addDish |
Delay time |
mdi:timer-plus |
number |
startProgram.delayTime |
Eco Express |
mdi:sprout |
switch |
startProgram.ecoExpress |
Eco Index |
mdi:sprout |
sensor |
startProgram.ecoIndex |
Energy Label |
mdi:lightning-bolt-circle |
sensor |
startProgram.energyLabel |
Extra Dry |
mdi:hair-dryer |
switch |
startProgram.extraDry |
Half Load |
mdi:fraction-one-half |
switch |
startProgram.halfLoad |
Open Door |
mdi:door-open |
switch |
startProgram.openDoor |
Program |
|
select |
startProgram.program |
Temperature |
mdi:thermometer |
sensor |
startProgram.temp |
Three in One |
mdi:numeric-3-box-outline |
switch |
startProgram.threeInOne |
Time |
mdi:timer |
sensor |
startProgram.remainingTime |
Water Efficiency |
mdi:water |
sensor |
startProgram.waterEfficiency |
Water Saving |
mdi:water-percent |
sensor |
startProgram.waterSaving |
Water hard |
mdi:water |
number |
startProgram.waterHard |
Sensors
Name |
Icon |
Entity |
Key |
Connection |
|
binary_sensor |
attributes.lastConnEvent.category |
Door |
|
binary_sensor |
doorStatus |
Error |
mdi:math-log |
sensor |
errors |
Machine Status |
mdi:information |
sensor |
machMode |
Remaining Time |
mdi:timer |
sensor |
remainingTimeMM |
Rinse Aid |
mdi:spray-bottle |
binary_sensor |
rinseAidStatus |
Salt |
mdi:shaker-outline |
binary_sensor |
saltStatus |
Hob
Controls
Name |
Icon |
Entity |
Key |
Start Program |
mdi:pot-steam |
button |
startProgram |
Configs
Name |
Icon |
Entity |
Key |
Power Management |
mdi:timelapse |
number |
startProgram.powerManagement |
Program |
|
select |
startProgram.program |
Temperature |
mdi:thermometer |
number |
startProgram.temp |
Sensors
Name |
Icon |
Entity |
Key |
Connection |
mdi:wifi |
binary_sensor |
attributes.lastConnEvent.category |
Error |
mdi:math-log |
sensor |
errors |
Hob Lock |
|
binary_sensor |
hobLockStatus |
Hot Status |
|
binary_sensor |
hotStatus |
On |
mdi:power-cycle |
binary_sensor |
attributes.parameters.onOffStatus |
Remaining Time |
mdi:timer |
sensor |
remainingTimeMM |
Remote Control |
mdi:remote |
binary_sensor |
attributes.parameters.remoteCtrValid |
Temperature |
mdi:thermometer |
sensor |
temp |
Oven
Controls
Name |
Icon |
Entity |
Key |
Start Program |
mdi:power-cycle |
button |
startProgram |
Stop Program |
mdi:power-off |
button |
stopProgram |
Configs
Name |
Icon |
Entity |
Key |
Delay time |
mdi:timer-plus |
number |
startProgram.delayTime |
Preheat |
|
select |
startProgram.preheatStatus |
Program |
|
select |
startProgram.program |
Program Duration |
mdi:timelapse |
number |
startProgram.prTime |
Target Temperature |
mdi:thermometer |
number |
startProgram.tempSel |
Sensors
Name |
Icon |
Entity |
Key |
Connection |
mdi:wifi |
binary_sensor |
attributes.lastConnEvent.category |
On |
mdi:power-cycle |
binary_sensor |
attributes.parameters.onOffStatus |
Remaining Time |
mdi:timer |
sensor |
remainingTimeMM |
Remote Control |
mdi:remote |
binary_sensor |
attributes.parameters.remoteCtrValid |
Start Time |
mdi:clock-start |
sensor |
delayTime |
Temperature |
mdi:thermometer |
sensor |
temp |
Temperature Selected |
mdi:thermometer |
sensor |
tempSel |
Tumble dryer
Controls
Name |
Icon |
Entity |
Key |
Pause Tumble Dryer |
mdi:pause |
switch |
pause |
Tumble Dryer |
mdi:tumble-dryer |
switch |
active |
Configs
Name |
Icon |
Entity |
Key |
Anti-Crease time |
mdi:timer |
number |
startProgram.antiCreaseTime |
Delay time |
mdi:timer-plus |
number |
startProgram.delayTime |
Dry level |
mdi:hair-dryer |
number |
startProgram.dryLevel |
Program |
|
select |
startProgram.program |
Sterilization status |
mdi:clock-start |
number |
startProgram.sterilizationStatus |
Temperature level |
mdi:thermometer |
number |
startProgram.tempLevel |
Time |
mdi:timer |
select |
startProgram.dryTimeMM |
Sensors
Name |
Icon |
Entity |
Key |
Connection |
|
binary_sensor |
attributes.lastConnEvent.category |
Door |
|
binary_sensor |
doorStatus |
Dry level |
mdi:hair-dryer |
sensor |
dryLevel |
Error |
mdi:math-log |
sensor |
errors |
Machine Status |
mdi:information |
sensor |
machMode |
Program |
mdi:tumble-dryer |
sensor |
prCode |
Program Phase |
mdi:tumble-dryer |
sensor |
prPhase |
Remaining Time |
mdi:timer |
sensor |
remainingTimeMM |
Start Time |
mdi:clock-start |
sensor |
delayTime |
Temperature level |
mdi:thermometer |
sensor |
tempLevel |
Washer dryer
Controls
Name |
Icon |
Entity |
Key |
Pause Washing Machine |
mdi:pause |
switch |
pause |
Washing Machine |
mdi:washing-machine |
switch |
active |
Configs
Name |
Icon |
Entity |
Key |
Delay Time |
mdi:timer-plus |
number |
startProgram.delayTime |
Program |
|
select |
startProgram.program |
Sensors
Name |
Icon |
Entity |
Key |
Acqua Plus |
|
binary_sensor |
acquaplus |
Anti-Crease |
|
binary_sensor |
anticrease |
Current Program |
mdi:tumble-dryer |
sensor |
prCode |
Current Temperature |
mdi:thermometer |
sensor |
temp |
Dirt level |
mdi:liquid-spot |
sensor |
dirtyLevel |
Dry level |
mdi:hair-dryer |
sensor |
dryLevel |
Extra Rinse 1 |
|
binary_sensor |
extraRinse1 |
Extra Rinse 2 |
|
binary_sensor |
extraRinse2 |
Extra Rinse 3 |
|
binary_sensor |
extraRinse3 |
Good Night Mode |
|
binary_sensor |
goodNight |
Machine Status |
mdi:information |
sensor |
machMode |
Pre Wash |
|
binary_sensor |
startProgram.prewash |
Program Phase |
mdi:tumble-dryer |
sensor |
prPhase |
Remaining Time |
mdi:timer |
sensor |
remainingTimeMM |
Remote Control |
mdi:remote |
binary_sensor |
attributes.lastConnEvent.category |
Spin Speed |
mdi:fast-forward-outline |
sensor |
spinSpeed |
Steam level |
mdi:smoke |
sensor |
steamLevel |
Washing machine
Controls
Name |
Icon |
Entity |
Key |
Pause Washing Machine |
mdi:pause |
switch |
pause |
Washing Machine |
mdi:washing-machine |
switch |
active |
Configs
Name |
Icon |
Entity |
Key |
Delay Status |
mdi:timer-check |
switch |
startProgram.delayStatus |
Delay Time |
mdi:timer-plus |
number |
startProgram.delayTime |
Main Wash Time |
mdi:clock-start |
number |
startProgram.mainWashTime |
Program |
|
select |
startProgram.program |
Rinse Iterations |
mdi:rotate-right |
number |
startProgram.rinseIterations |
Soak Prewash Selection |
mdi:tshirt-crew |
switch |
startProgram.haier_SoakPrewashSelection |
Spin speed |
mdi:numeric |
select |
startProgram.spinSpeed |
Suggested weight |
mdi:weight-kilogram |
sensor |
startProgram.weight |
Temperature |
mdi:thermometer |
select |
startProgram.temp |
Sensors
Name |
Icon |
Entity |
Key |
Current Electricity Used |
mdi:lightning-bolt |
sensor |
currentElectricityUsed |
Current Water Used |
mdi:water |
sensor |
currentWaterUsed |
Door |
|
binary_sensor |
doorStatus |
Door Lock |
|
binary_sensor |
doorLockStatus |
Error |
mdi:math-log |
sensor |
errors |
Machine Status |
mdi:information |
sensor |
machMode |
Remaining Time |
mdi:timer |
sensor |
remainingTimeMM |
Remote Control |
mdi:remote |
binary_sensor |
attributes.lastConnEvent.category |
Spin Speed |
mdi:speedometer |
sensor |
spinSpeed |
Total Power |
|
sensor |
totalElectricityUsed |
Total Wash Cycle |
mdi:counter |
sensor |
totalWashCycle |
Total Water |
|
sensor |
totalWaterUsed |