hon/README.md

14 KiB

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

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 startProgram / stopProgram

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
Pan Status mdi:pot-mix binary_sensor panStatus
Power mdi:lightning-bolt sensor power
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
Oven mdi:toaster-oven switch startProgram / stopProgram

Configs

Name Icon Entity Key
Delay time mdi:timer-plus number startProgram.delayTime
Preheat mdi:thermometer-chevron-up switch 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 pauseProgram / resumeProgram
Tumble Dryer mdi:tumble-dryer switch startProgram / stopProgram

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 pauseProgram / resumeProgram
Washing Machine mdi:washing-machine switch startProgram / stopProgram

Configs

Name Icon Entity Key
Delay Time mdi:timer-plus number startProgram.delayTime
Program select startProgram.program
Suggested weight mdi:weight-kilogram sensor startProgram.weight

Sensors

Name Icon Entity Key
Acqua Plus binary_sensor acquaplus
Anti-Crease binary_sensor anticrease
Current Electricity Used mdi:lightning-bolt sensor currentElectricityUsed
Current Program mdi:tumble-dryer sensor prCode
Current Temperature mdi:thermometer sensor temp
Current Water Used mdi:water sensor currentWaterUsed
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
Total Power sensor totalElectricityUsed
Total Wash Cycle mdi:counter sensor totalWashCycle
Total Water sensor totalWaterUsed

Washing machine

Controls

Name Icon Entity Key
Pause Washing Machine mdi:pause switch pauseProgram / resumeProgram
Washing Machine mdi:washing-machine switch startProgram / stopProgram

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