Haier AC integration

Someone can figure out how to use that in HA??

There is a repo to communicate with native wifi controller, but that is NodeJS :confused:
It could be great!

Will be very useful also for me!

I would love it too. I’m currently trying to ‘parse’ / dissect all this mess. It looks like this repository is the only help on the internet… Also mailed Haier, I didn’t expect a response :stuck_out_tongue: (haven’t got one).

It looks like not all models have the same response, or it might be that the response has changed in newer firmware (Haier Air Conditioner).

Currently have a hard time discovering which byte contains which information, and when does it change. Also because there is no documentation I have no idea if what I think I know is correct.

First need to know more about the fields, if that is clear (sort of) I want to change the states. And if that is clear, it needs to be ported from C# to python. And then… integrated into Home Assistant.

Not sure if all of this is feasible without help. I could provide a tool to connect to it and log some info, which MIGHT return some results if parsed correctly.

If anybody is interested, let me know. It’s currently programmed in C#, it’s .NET Core, so it runs on Linux/Mac also.

Well, I now made the tool we can use to try to hopefully control it.

Please, anybody having a Haier airco, and the official wifi KZW-W002, use it, and preferably some programming knowledge, run it, try to help.

All info is in Readme / link above.

Thank you very much!! I’ll try and let you know!

I have Haier AC with built in WiFi.

Unfortunately I am not able to get any data with your script:

2020-07-20 18:27:13 | AsyncTcpClient_Message | Connecting to server |
2020-07-20 18:27:13 | Haier AC Connected!
2020-07-20 18:27:31 | AsyncTcpClient_Message | Connection closed remotely |
2020-07-20 18:27:31 | ClosedCallback, closedRemotely: True
2020-07-20 18:27:31 | AsyncTcpClient_Message | Connecting to server |
2020-07-20 18:27:31 | Haier AC Connected!
2020-07-20 18:27:49 | AsyncTcpClient_Message | Connection closed remotely |
2020-07-20 18:27:49 | ClosedCallback, closedRemotely: True
2020-07-20 18:27:49 | AsyncTcpClient_Message | Connecting to server |
2020-07-20 18:27:49 | Haier AC Connected!
2020-07-20 18:28:06 | AsyncTcpClient_Message | Connection closed remotely |
2020-07-20 18:28:06 | ClosedCallback, closedRemotely: True
2020-07-20 18:28:06 | AsyncTcpClient_Message | Connecting to server |
2020-07-20 18:28:06 | Haier AC Connected!

@Michal_Trawka Ahh, looks like I didn’t respond yet. Yes, the newest firmware (2.5.14) stops sending anything… So I need like a ‘hello’ of ‘init’ command, or maybe ‘polling’ is the same command.

I’ve already tried to calculate CRC16 low and high, but is wasn’t good, and didn’t have more time to check. It would be nice if it works with everything official (also).

I wrote a suggestion for better home automation integrations to Haier customer support. They redirected me to official GE Appliances site and encouraged to share my ideas. I have already created topic. I think they follow topics popularity, likes, comments. So let’s request simple changes from Haier if you miss some features :wink:


Thank you scrapid!!
I added the comment to your topic :slight_smile:

Also added a comment. But that Firstbuild thing can’t be from Haier/GE, or is it?

I’ve integrated Haier Tundra through Homebridge with use of Haieracbridge Platform (that unfortunately requires another bridge installed on Android devide) and integrated it with native Homebridge HomeKit support with HomeKit Controller on HA. Round and round it goes - but here’s result:

1 Like

I’ve been able to get Haier AC fan into HomeAssistant using HomeBridge and HomeKit Controller integration, without any extra Android devices.

Here’s my setup:

  1. Installed HomeBridge via Docker (location irrelevant, but in my case I’m running Hass Supervised on Debian, used Portainer to install it on the same VM)
  2. In HomeBridge UI went to Plugins page and installed homebridge-haier-ac plugin. Currently version v0.2.1 is installed if that will matter some day.
  3. Configured as per instructions on github page haier-ac-remote/packages/homebridge-haier-ac at master · bstuff/haier-ac-remote · GitHub basically just editing json
  4. In Hass went to Integrations page and added HomeKit Controller, it found HomeBridge
  5. It asked for PIN which is available on first page of HomeBridge
  6. It discovered my AC and now exists as an entity in Hass

The only issue I have atm is that I can only control 1 of my 2 ACs, I started discussion of that issue here: HomeKit Controller and HomeBridge - weird device detection bug?

How about installing multiple Homebridge instances?

I’m about to install 4 Haier Flairs and integrate them in HA!

I think it’d be a lot easier on so many levels if plugin author added that literally 1 line change to the code :slight_smile:

I’ve also started working on python version of the remote control. I’ve managed to translate base command functions, connect to the AC and send binary data to it, but I think I’m still missing something. Or maybe there’s some error in generated bytecode.

The point is that code is there, all we need to do is just translate it from JS (TypeScript to be precise) to Python and then wrap it into Hass integration. If there’s someone who knows TypeScript better than me around and interested in Haier integration, we could maybe chat and figure it out together.


I would really love to have this integration in HA. You are doing a great job! Unfortunately I don’t know any JS, so can’t help you with that.

Hope this wil be available soon!

I’ve checked the code lately, but couldn’t find the part when it connects to the AC. A year ago I’ve tried to make it work to connect to it, but couldn’t get it to work.

Did you find the part where it connects? ** Ahh, already found it **
haier-ac-remote/HaierAC.ts at master · bstuff/haier-ac-remote (github.com)

Also mailed back to geappliances.com, and just got a reply that they don’t monitor this email anymore…

Well, as I mentioned I started working on Python version.

I’ve uploaded what I have so far, and you can read about in what state it is here: GitHub - Nixellion/hass-haier-ac: Home Assistant Haier AC Custom integration

I’m not sure where to go from here or how to check if bytecode is correct. Ideally we need someone who can find a way to run original code in full and see what kind of bytecode it produces and compare it to Python’s output to see if they match. Or maybe tell me how I can do that. I’m not good with TypeScript or JS (a bit better with JS and have a friend who knows it better than me, but that’s of no help at the moment), especially making code like that run for testing purposes.

Or maybe someone who can just spot a mistake right away, that should work as well of course :slight_smile:

1 Like

I’ve checked everything, and as far as I can rewrote it in C#, already had 80%. But I cannot get anything out of it :frowning:

Also the orignal developer bstuff didn’t reply on any of the issues. I cannot believe it works for you. Do you also have the “KZW-W002” Wi-Fi stick?

I did not say it works for me. I mean his original plugin for Homebridge does work. But my translation to Python does not. All I managed to do, apparently, is break some kind of command queue or whatnot :smiley: So all I managed to do is establish a socket connection to AC (that’s the easy part) and then send “something” to it that mostly seems to resemble what Homebridge plugin does, but it’s missing something.

I’ll check the stick tomorrow.

Yes, I did mean the Homebridge, so we know it SHOULD work. So hopefully we have the same Wi-Fi stick and can get it to work… Will await your reply :slight_smile: