rchrch / homebridge-mhacwifi1-lan

Homebridge Plugin for LAN Control of Mitsubishi Heavy Industries MH-AC-WIFI-1
Apache License 2.0
6 stars 2 forks source link

Can't seem to get this plugin to work with my units #6

Closed venabla closed 1 year ago

venabla commented 1 year ago

I recently just installed MHIAC units in my house on the basis I would be able to get it talking to HomeBridge with this plugin.

I've spent hours trying to get it to work, and sort of did get them working, but then they eventually seem to just drop offline (and completely off my network).

It looks like the app is getting confused between devices and keeps constantly pinging the device IP addresses which then must overload the units and drop off the network. To get them back online, I have to reboot with the mains.

Would love to get them working ready for Australia's incoming summer so we can setup some automations with HomeKit around temperature etc.

If anyone has had similar issues and can give me some tips, all ears!

I wish I was a programmer, but I'm a noob so have no idea how to do anymore than install and configure these plugins!

venabla commented 1 year ago

I had a go at switching my devices to child bridges, seemed to work for 24 hours, but now doing the same thing as last time :(

This is the error I get for all units, and then they drop off HomeKit and no longer accessible via IP in web browser (so need to do hard reset at power box):

[9/25/2022, 4:47:30 PM] [Bedroom Spare Aircon] Http request error: Error: socket hang up [9/25/2022, 4:47:30 PM] [Bedroom Spare Aircon] Unable to refresh state Error: socket hang up at connResetException (internal/errors.js:607:14) at Socket.socketOnEnd (_http_client.js:499:23) at Socket.emit (events.js:388:22) at endReadableNT (internal/streams/readable.js:1336:12) at processTicksAndRejections (internal/process/task_queues.js:82:21) { code: 'ECONNRESET' }

thorstenman commented 1 year ago

What wifi adapter do you use for which MHI devices?

rchrch commented 1 year ago

I haven't had anytime recently to work on this project, but found a few hours this weekend to look into this error.

I was able to reproduce it by rapidly changing the fan speed from the Home app to generate lots of requests to the aircon controller. The portion of code that handled setting the aircon state didn't have sufficient error handling. I've made a change to attempt the setState action 3 times before more gracefully failing. You should be able to update the plugin version to 0.3.0 to pick up this change.

Depending on the version of Homebridge your running, the child bridge would exit (and I'm not sure it would restart) or log some other errors (which I don't see) when the ECONNRESET error happened. Either way, this change should make the plugin more resilient.

All of that said, I'm a little unclear about the device no long being accessible by IP in the web browser. I assume you mean accessing the simple web page from Intesis. If you log in from there while the homebridge plugin is active, it won't work out well. The interfaces uses a login token to authenticate and only one token can be active at a time. The homebridge plugin logs in and continually reuses the same token for polling status. If you log in via the web page, it will change the token forcing the homebridge plugin to reauthenticate which invalidates the web page login token. You still should be able to get to the basic web page without authentication though and it should show firmware versions and other basic status.

Here are settings from the units I have tested with:

Info Value
Device Model MH-AC-WIFI-1
Device Firmware Version 1.4.7; 1.3.3; 1.5; 1.0.2.0
Wireless Firmware Version 1.2.0

Could you verify these version against these? I'm not sure how Intesis provides firmware updates as I can't find them on the web.

Are you using a static IP address for the aircon? This is important because the plugin has no way of discovering devices (currently).

Also what version of Homebridge are you using?

rchrch commented 1 year ago

Are you still having trouble with the plugin?

venabla commented 1 year ago

Hi @rchrch

Sorry for the delay getting back to you. Been a busy few weeks.

Thanks for the quick update to the plugin. What ever you did has made a big different — I discovered 1 unit was still falling off, but turns out it had lost its static IP which I fixed. They're now all seeming to stay connected consistently and responding as expected. Amazing!

How does the fan speed setting work in the app?

rchrch commented 1 year ago

No worries! Totally understand. Glad to hear things are more stable now.

The fan speed is a bit strange (sorry for the long explanation that follows :smile:). While in aircon mode (heat or cool), the fan speed is a bit hidden. You have to click on main aircon icon. This will bring up three accessories: the temperature control, dehumidifier control, and fan-only control.

For temperature control (heat/cool mode): You have to scroll down to settings (the gear icon) and click on "Accessories" (it should have a 3 next to it). This will show the three accessories separately (you can also choose to break them apart from here so they aren't grouped at the top level). From there click on the icon with the temperature (the heat/cool accessory). You then can click on the gear and get to the fan speed control for the heat/cool mode. Fan speeds are 1-4 translating to 25, 50, 75, and 100 percent. The MHI-AC controller doesn't expose an option for "auto" fan speed which is really unfortunate. Likewise, there is an oscillate on/off option, but not individual controls for left/right and up/down swing. :frowning_face:

For dehumidifier control (dry mode): This one works the same as the heat/cool accessory. After drilling into the first level of settings, click on the (de)humidifier icon, and you can access the fan speed after clicking on the gear icon. The slider on the main view for the accessory sets the desired humidity level, however the MHI-AC don't have that type of control so this doesn't do anything but cause confusion. You enable dry mode by clicking on the circle icon below the slider control.

For fan-only control (fan mode): The fan speed is controlled by the slider on the main control. Like the heater/cooler accessory, there are 4 fan level.

For automations, you can set the fan levels in the same fashion as above.

Again, sorry for the lengthy explanation. The reason for the layout is the Apple HomeKit spec defines various accessory types (heater/cooler, dehumidifier, and fan in this case). You must conform to the features that each of those expose. Multi-function split systems don't fit the pattern very well so you end up with a semi-clunky user experience. I don't use the Eve app, but from what I understand, there is a little more flexibility in their interface. Let me know if something above doesn't make sense (it's a bit confusing even as I re-read it).

Thanks again for using the plugin!