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:
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)
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.
I think it’d be a lot easier on so many levels if plugin author added that literally 1 line change to the code
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’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.
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
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 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.
Hi Michael.
I’m trying to add my Haier AC conditioner (dual split) with your guide.
In home bridge I set and find one split , but when I try to send a command (from home bridge or homekit) it return an error:
[10/9/2022, 5:31:59 PM] Error: read ECONNRESET
at TCP.onStreamRead (node:internal/stream_base_commons:217:20)
[10/9/2022, 5:31:59 PM] Got SIGTERM, shutting down Homebridge…
[10/9/2022, 5:31:59 PM] [Homebridge UI] [HapClient] [192.168.1.204:51401 (0E:87:D0:4C:C6:49)] Failed to set value for AC Notte.
[10/9/2022, 5:32:03 PM] Error: read ECONNRESET
at TCP.onStreamRead (node:internal/stream_base_commons:217:20)
[10/9/2022, 5:32:05 PM] [HB Supervisor] Homebridge Process Ended. Code: 143, Signal: null
[10/9/2022, 5:32:10 PM] [HB Supervisor] Restarting Homebridge…
[10/9/2022, 5:32:10 PM] [HB Supervisor] Starting Homebridge with extra flags: -I -P /var/lib/homebridge/node_modules --strict-plugin-resolution
Thank you!!!
It is working. I didn’t believe that this can work but it is working. There is no any special settings. Everything as you described, Providing IP and MAC address in Homebridge is sufficient to start this working. Homebridge is automatically discovered by HA. Adding secret code, restarting HA and it working!
For me doesn’t work HEAT mode, but AUTO mode is working so it can be also used for heating.
I have Haier Tundra AC which is not supposed by HOn app so I couldn’t use such integration. Previously I used Broadlink remote and it worked, but direct control of AC is for sure better.