hon/README.md
2023-04-23 16:30:57 +02:00

16 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

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 Time number startProgram.dryTime
Dry Time timer select startProgram.dryTimeMM
Dry level hair-dryer select startProgram.dryLevel
Energy Label lightning-bolt-circle sensor startProgram.energyLabel
Program select startProgram.program
Sterilization clock-start switch startProgram.sterilizationStatus
Suggested Load weight-kilogram sensor startProgram.suggestedLoadD
Temperature level thermometer number startProgram.tempLevel

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
Energy Label lightning-bolt-circle sensor startProgram.energyLabel
Keep Fresh refresh-circle switch startProgram.autoSoftenerStatus
Liquid Detergent Dose cup-water sensor startProgram.liquidDetergentDose
Main Wash Time clock-start number startProgram.mainWashTime
Powder Detergent Dose cup sensor startProgram.powderDetergentDose
Program select startProgram.program
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