External integration - hOn (Haier, Candy, Hoover)

Hello everyone,

A bit late as it was published this morning

For those who have a Haier, Candy or Hoover device connected to the hOn app (washing machine, dishwasher, air conditioning, fridge…), here is an external integration that brings it into Gladys.

What it does

It connects to the hOn cloud with the app’s email and password (cloud transport: data passes through Haier’s servers), reads the status of the devices every minute by default and sends your commands. Gladys does not have a native hOn integration; for other washing machines, see the thread Implementing Washing Machine Tracking.

Features

  • Washing machines, dryers, dishwashers: status, phase, program (choose to launch), remaining time, pause, door, consumables, salt and rinse aid.
  • Air conditioners: on/off, mode, setpoint, ventilation, oscillation, temperatures.
  • Fridges, freezers, wine cellars: temperatures and setpoints per zone, doors, modes. Ovens: read-only.
  • 7 scene triggers: cycle started, cycle finished (with duration), error, refill needed, device disconnected/reconnected, account refused.
  • 3 scene actions: start a program (with delayed start), pause/resume/stop, read status.
  • 2 widgets: “hOn Devices” and “hOn Device” (cycle progress, buttons).

Scene examples:

  • when the washing machine cycle is finished → send “The laundry is ready” to the family;
  • when the dishwasher is out of salt → notify me;
  • on weekdays at 1:00 PM, during off-peak hours → start eco_40_60 on the washing machine loaded in the morning.

hOn Devices and hOn Device Widgets (generated illustration, not a screenshot)

[Screenshot to come: the Discovery tab with a real hOn device]

Installation

  • From the store: search for “hOn”. Available within the day, pending indexing.
  • Or from the repository URL: https://github.com/William-De71/gladys-hon.

Minimum version of Gladys: 5.1.1.

  1. Enter the hOn email and password, save, “Test connection”.
  2. Discovery tab: add your devices.
  3. To start a program, enable remote control on the device.

Known limitations

  • Haier does not publish an API: I ported the pyhon-revived library to JavaScript, which is used by the Home Assistant integration. Haier changed its connection in June 2026 and may do so again.
  • I couldn’t test with a real hOn account, only with anonymized data from real devices published by the pyhOn project: your feedback is essential.
  • The states are queried (no push yet). Accounts with email two-factor authentication are not supported.
Technical details
  • One Gladys device per hOn device, identified by its MAC address; the features follow what the model reports.
  • The session (never the password) is kept in /data: a restart does not reconnect, as hOn blocks accounts that connect too often. A refused connection pauses attempts (15 min, then more).
  • A cycle started or stopped by a scene action does not trigger triggers (no loop); the first state read after a startup produces no event.
  • Cloud badge per device, unreachable when it is no longer connected to hOn.
  • The program names are those of the hOn cloud, in English; the “List programs” button gives those of the “Start program” action.
  • The fridge modes (super cold…) remain read-only if the model does not expose them in its settings.

Provide feedback

Via a GitHub issue (Issues · William-De71/gladys-hon · GitHub) or by replying here, with the version of Gladys, the version of the integration, the type and model of the device, and the logs with DEBUG=gladys-integration-sdk (without email or password).

Thanks to the authors of pyhOn / pyhon-revived.

Tested with a fridge and no issues detected!

Thanks for the feedback. I didn’t even have time to test it myself on my washing machine.

Good evening @Will_71

Thanks for this integration :folded_hands:

Here is my fridge dashboard:

I’m jealous of @GBoulvin’s display, which directly shows the temperatures on the widget :sweat_smile:

We can display the current mode (by the way, mine is currently in « eco » mode and not « auto »), but not select it: a dropdown list would be better, right?

The « h0n » app offers to add or display the contents of the fridge. Should this also be proposed?

Have a nice evening,

Jean

I can’t tell you right now, I’ll check and let you know.

@jean_bruder I need to delve deeper into the subject, but in the meantime, can you send me the content of the Logs tab after a « Refresh »? That will at least confirm that the fridge is being read, pending a new version with more in-depth diagnostics.

@jean_bruder, you can update now, I’ve added diagnostics, I’ll have more details to diagnose your fridge

Hi @Will_71

I just updated, the container started fine, but…

And then:

Tell me how I can help?

Have a great day,

Jean

I’m watching tonight.

Good evening @Will_71

After uninstalling/reinstalling, reconnecting, and adding the refrigerator:

Thank you so much :smiling_face_with_three_hearts:

By the way, I have a question: I just « played » with a scene that should turn the kitchen light on/off (located on the countertop, next to the refrigerator) when opening/closing the door. However, this only works alternately (either not at all, or with a delay…). Can such a trigger be used properly?

Have a nice evening,

Jean

Thanks for your feedback. So everything works now?

As for the trigger, good question, since it’s not live but through the Cloud, yes, you can have some delay.

Hello @Will_71

I confirm that I have access to my refrigerator :+1: Now, as mentioned earlier, I will try to use the door as a mood trigger :wink:

Have a great day,

Jean

ok let me know if it’s really too slow with the triggers and I’ll see if I can do something
Have a good day

Small issue for a few days: The cloud hOn is not responding (hOn /unified-api/v1/view/appliance-list: HTTP 403): will retry at the next query.

Have they changed their API?

Thanks for the feedback.
Nothing indicates an API change on hOn’s side (other hOn libraries work with the same parameters).
I think hOn invalidated your session and the integration did not make a real connection in this case.
I am publishing a version that reconnects; in the meantime, uninstalling and then reinstalling the integration (like Jean above) should start a new session.
If the 403 error returns after the update, the error message will display hOn’s response: copy it here.

Fixed in 0.3.1! Thanks!