Haier hOn

hacs_badge GitHub release (latest by date) GitHub GitHub all releases
Home Assistant integration for Haier hOn: support for Haier/Candy/Hoover home appliances like washing machines.

Supported Appliances

Installation

Method 1: Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

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: Open your Home Assistant instance and start setting up a new integration.

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
    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

  1. Install pyhOn
     $ pip install pyhOn
    
  2. Use the command line tool to read out all appliance data from your account
    $ 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
      ...
    
  3. Fork this repository and clone it to your local machine
  4. Add the keys of the attributes you'd like to have as EntityDescription into this Repository
    Example: Add pause button
    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
                ...
            ),
        ...
    
  5. 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
  • Candy CIS633SCTTWIFI
  • Haier XIB 3B2SFS-80
  • Haier XIB 6B2D3FB

Supported Languages

Translation of internal names like programs are available for all languages which are official supported by the hOn app:

  • 🇨🇳 Chinese
  • 🇭🇷 Croatian
  • 🇨🇿 Czech
  • 🇳🇱 Dutch
  • 🇬🇧 English
  • 🇫🇷 French
  • 🇩🇪 German
  • 🇬🇷 Greek
  • 🇮🇱 Hebrew
  • 🇮🇹 Italian
  • 🇵🇱 Polish
  • 🇵🇹 Portuguese
  • 🇷🇴 Romanian
  • 🇷🇺 Russian
  • 🇷🇸 Serbian
  • 🇸🇰 Slovak
  • 🇸🇮 Slovenian
  • 🇪🇸 Spanish
  • 🇹🇷 Turkish

About this Repo

The existing integrations missed some features from the app I liked to have in HomeAssistant. I tried to create a pull request, but in the structures of these existing repos, I find it hard to fit in my needs, so I basically rewrote everything. I moved the api related stuff into the package pyhOn.

Appliance Features

Dish washer

Controls

Name Icon Entity Key Auto-Translation
Dish Washer dishwasher switch startProgram / stopProgram ✔

Configs

Name Icon Entity Key Auto-Translation
Add Dish silverware-fork-knife switch startProgram.addDish ✔
Delay time timer-plus number startProgram.delayTime ✔
Eco Express sprout switch startProgram.ecoExpress ✔
Eco Index sprout sensor startProgram.ecoIndex ❌
Energy Label lightning-bolt-circle sensor startProgram.energyLabel ❌
Extra Dry hair-dryer switch startProgram.extraDry ✔
Half Load fraction-one-half switch startProgram.halfLoad ✔
Open Door door-open switch startProgram.openDoor ✔
Program select startProgram.program ✔
Temperature thermometer sensor startProgram.temp ✔
Three in One numeric-3-box-outline switch startProgram.threeInOne ✔
Time timer sensor startProgram.remainingTime ✔
Water Efficiency water sensor startProgram.waterEfficiency ✔
Water Saving water-percent sensor startProgram.waterSaving ✔
Water hard water number startProgram.waterHard ✔

Sensors

Name Icon Entity Key Auto-Translation
Connection binary_sensor attributes.lastConnEvent.category ✔
Door binary_sensor doorStatus ✔
Error math-log sensor errors ✔
Machine Status information sensor machMode ✔
Program Phase washing-machine sensor prPhase ✔
Remaining Time timer sensor remainingTimeMM ✔
Rinse Aid spray-bottle binary_sensor rinseAidStatus ✔
Salt shaker-outline binary_sensor saltStatus ✔

Hob

Controls

Name Icon Entity Key Auto-Translation
Start Program pot-steam button startProgram ✔

Configs

Name Icon Entity Key Auto-Translation
Power Management timelapse number startProgram.powerManagement ✔
Program select startProgram.program ✔
Temperature thermometer number startProgram.temp ✔

Sensors

Name Icon Entity Key Auto-Translation
Connection wifi binary_sensor attributes.lastConnEvent.category ✔
Error math-log sensor errors ❌
Hob Lock binary_sensor hobLockStatus ❌
Hot Status binary_sensor hotStatus ✔
On power-cycle binary_sensor attributes.parameters.onOffStatus ❌
Pan Status pot-mix binary_sensor panStatus ✔
Power lightning-bolt sensor power ✔
Remaining Time timer sensor remainingTimeMM ✔
Remote Control remote binary_sensor attributes.parameters.remoteCtrValid ✔
Temperature thermometer sensor temp ✔

Oven

Controls

Name Icon Entity Key Auto-Translation
Oven toaster-oven switch startProgram / stopProgram ✔

Configs

Name Icon Entity Key Auto-Translation
Delay time timer-plus number startProgram.delayTime ✔
Preheat thermometer-chevron-up switch startProgram.preheatStatus ✔
Program select startProgram.program ✔
Program Duration timelapse number startProgram.prTime ✔
Target Temperature thermometer number startProgram.tempSel ✔

Sensors

Name Icon Entity Key Auto-Translation
Connection wifi binary_sensor attributes.lastConnEvent.category ✔
On power-cycle binary_sensor attributes.parameters.onOffStatus ❌
Remaining Time timer sensor remainingTimeMM ✔
Remote Control remote binary_sensor attributes.parameters.remoteCtrValid ✔
Start Time clock-start sensor delayTime ✔
Temperature thermometer sensor temp ✔
Temperature Selected thermometer sensor tempSel ✔

Tumble dryer

Controls

Name Icon Entity Key Auto-Translation
Pause Tumble Dryer pause switch pauseProgram / resumeProgram ✔
Tumble Dryer tumble-dryer switch startProgram / stopProgram ✔

Configs

Name Icon Entity Key Auto-Translation
Anti-Crease timer switch startProgram.antiCreaseTime ✔
Delay time timer-plus number startProgram.delayTime ✔
Dry level hair-dryer select startProgram.dryLevel ✔
Program select startProgram.program ✔
Sterilization clock-start switch startProgram.sterilizationStatus ❌
Temperature level thermometer number startProgram.tempLevel ✔
Time timer select startProgram.dryTimeMM ❌

Sensors

Name Icon Entity Key Auto-Translation
Connection binary_sensor attributes.lastConnEvent.category ✔
Door binary_sensor doorStatus ❌
Dry level hair-dryer sensor dryLevel ✔
Error math-log sensor errors ✔
Machine Status information sensor machMode ✔
Program tumble-dryer sensor prCode ✔
Program Phase washing-machine sensor prPhase ✔
Remaining Time timer sensor remainingTimeMM ✔
Start Time clock-start sensor delayTime ✔
Temperature level thermometer sensor tempLevel ✔

Washer dryer

Controls

Name Icon Entity Key Auto-Translation
Pause Washing Machine pause switch pauseProgram / resumeProgram ✔
Washing Machine washing-machine switch startProgram / stopProgram ✔

Configs

Name Icon Entity Key Auto-Translation
Delay Time timer-plus number startProgram.delayTime ✔
Program select startProgram.program ✔
Suggested weight weight-kilogram sensor startProgram.weight ❌

Sensors

Name Icon Entity Key Auto-Translation
Acqua Plus binary_sensor acquaplus ✔
Anti-Crease binary_sensor anticrease ✔
Current Electricity Used lightning-bolt sensor currentElectricityUsed ❌
Current Program tumble-dryer sensor prCode ❌
Current Temperature thermometer sensor temp ✔
Current Water Used water sensor currentWaterUsed ❌
Dirt level liquid-spot sensor dirtyLevel ✔
Dry level 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 information sensor machMode ✔
Pre Wash binary_sensor startProgram.prewash ❌
Program Phase washing-machine sensor prPhase ✔
Remaining Time timer sensor remainingTimeMM ✔
Remote Control remote binary_sensor attributes.lastConnEvent.category ✔
Spin Speed fast-forward-outline sensor spinSpeed ✔
Steam level smoke sensor steamLevel ✔
Total Power sensor totalElectricityUsed ❌
Total Wash Cycle counter sensor totalWashCycle ❌
Total Water sensor totalWaterUsed ❌

Washing machine

Controls

Name Icon Entity Key Auto-Translation
Pause Washing Machine pause switch pauseProgram / resumeProgram ✔
Washing Machine washing-machine switch startProgram / stopProgram ✔

Configs

Name Icon Entity Key Auto-Translation
Delay Status timer-check switch startProgram.delayStatus ❌
Delay Time timer-plus number startProgram.delayTime ✔
Main Wash Time clock-start number startProgram.mainWashTime ✔
Program select startProgram.program ✔
Rinse Iterations rotate-right number startProgram.rinseIterations ✔
Soak Prewash Selection tshirt-crew switch startProgram.haier_SoakPrewashSelection ✔
Spin speed numeric select startProgram.spinSpeed ✔
Suggested weight weight-kilogram sensor startProgram.weight ❌
Temperature thermometer select startProgram.temp ✔

Sensors

Name Icon Entity Key Auto-Translation
Current Electricity Used lightning-bolt sensor currentElectricityUsed ❌
Current Water Used water sensor currentWaterUsed ❌
Door binary_sensor doorStatus ❌
Door Lock binary_sensor doorLockStatus ✔
Error math-log sensor errors ✔
Machine Status information sensor machMode ✔
Program Phase washing-machine sensor prPhase ✔
Remaining Time timer sensor remainingTimeMM ✔
Remote Control remote binary_sensor attributes.lastConnEvent.category ✔
Spin Speed speedometer sensor spinSpeed ✔
Total Power sensor totalElectricityUsed ❌
Total Wash Cycle counter sensor totalWashCycle ❌
Total Water sensor totalWaterUsed ❌
S
Description
No description provided
Readme
4 MiB
0 Stars 1 Watchers 0 Forks
Languages
Python 100%