Mitsubishi Wifi Module WF-RAC (Smart M-Air)

But does the app create the uuid from the email account that one registers? Because I tried applying the same email to two instances of the app (on 2 different phones) and it didn’t allow me to use it; I had to create another account with a different email and it counted as 2 in total (correct).
While if I uninstall the app, then reinstall, and apply the same email that I used previously it doesn’t increment the counter (meaning that the uuid is presumably the same).

The email is used as authentication for their cloud service (AWS). If you set the app to Remote instead of local. it will store and send requests via their service. I think they will store the accountID on ther cloud service. So when you login form another phone it will just use that accountID instead of registering a new one.

When I check the code it does generate a unique uuid in the app that is unique per phone. So it has nothing todo with the email but as stated above it ccan be used from different phones.

If you delete the airco’s it will also delete the accountId from the airco and therefore also the account number will decrease.

1 Like

Hi Guys.

Thank you for all the work you’re doing to make this happen!

Am I right that at the moment we have 2 sensors: indoor and outdoor temp?
That’s all I get, and nothing else.

Sorry, but I just not quite get what you’re talking about in the last few posts.


No problem, it’s always nice to expand the features of Home Assistant.

You are right. At the moment I’m busy to implement the Climate (thermostat) component in the integration.


@jeatheak The (android) app also has an offline-mode. Do you know that operator-id that uses? Maybe there is a default one?

On the side: could you also add the energy-sensor?

@ErikWie Yea I know that was the reason to look into the operator ID.

Because if the app is set on offline modus the operator id cannot be fetched from the remote list.
Therefore I implemented the same way the Android app uses.

They generate a uuid operator id and send that to the airco. When the airco is deleted in the app it also deletes this operator ID. This is that same as I’m doing at moment (its solution 2)

Than I’ll use that method :slight_smile:

Hi ! and thank you for doing this, going to install and use HA Core on synology because of your work!.
if i can test anything please let me know, ill be following this thread closely !

i seem to be unable to locate Home-Assistant\custom_components on my synology nas (HA Core) in any of the systemfolders. any idea ?


Nice to hear that you are going to install Hass Core

I think the custom_component folder is not present at default. You need to create it.
Example: homeassistant\custom_components

Hope that helps.

Hera are some links that may help:
Reddit link
Hass Community link

The climate works great! Also in HomeKit! Thanks!

Hi guys,

I did add the climate control to the integration :smiley:

It should be possible to update the existing integration but the sensors unique Id will change.
The best way (I think) is to delete the existing integration(s) then update the integration then restart and then let it discover the airco(s). If it can’t discover them add them manually through the integration menu.

At the moment it will create a operations Id if the first Airco is added and add it also to the remote list. Therefore it will be possible to see in the future which Id is used.



Just tested this, and it works GREAT! Thank you so much for this!
Is there any way we can support you for your time you put into this?


Nice to hear it is working for you.
I did put a “Buy me a coffee” link on the GitHub Readme page.

1 Like

Hi @jeatheak in my case (HA Docker Core v2022.4.4 running on a QNAP NAS) I’m unable to start the integration due to these errors:

Logger: homeassistant.config_entries
First occurred: 12:04:41 (1 occurrences)
Last logged: 12:04:41

Error occurred loading configuration flow for integration mitsubishi-wf-rac: cannot import name 'ClimateEntityFeature' from 'homeassistant.components.climate.const' (/usr/src/homeassistant/homeassistant/components/climate/


Logger: homeassistant
First occurred: 12:04:41 (1 occurrences)
Last logged: 12:04:41

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/", line 743, in async_create_flow
  File "/usr/src/homeassistant/homeassistant/", line 603, in get_platform
    cache[full_name] = self._import_platform(platform_name)
  File "/usr/src/homeassistant/homeassistant/", line 620, in _import_platform
    return importlib.import_module(f"{self.pkg_path}.{platform_name}")
  File "/usr/local/lib/python3.9/importlib/", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/config/custom_components/mitsubishi-wf-rac/", line 18, in <module>
    from .const import CONF_AIRCO_ID, DOMAIN, CONF_OPERATOR_ID
  File "/config/custom_components/mitsubishi-wf-rac/", line 4, in <module>
    from homeassistant.components.climate.const import (
ImportError: cannot import name 'ClimateEntityFeature' from 'homeassistant.components.climate.const' (/usr/src/homeassistant/homeassistant/components/climate/

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/", line 74, in _async_process_pending_flows
    await gather_with_concurrency(
  File "/usr/src/homeassistant/homeassistant/util/", line 192, in gather_with_concurrency
    return await gather(
  File "/usr/src/homeassistant/homeassistant/util/", line 190, in sem_task
    return await task
  File "/usr/src/homeassistant/homeassistant/", line 205, in async_init
    flow, result = await task
  File "/usr/src/homeassistant/homeassistant/", line 223, in _async_init
    flow = await self.async_create_flow(handler, context=context, data=data)
  File "/usr/src/homeassistant/homeassistant/", line 750, in async_create_flow
    raise data_entry_flow.UnknownHandler

The previous version that had the two temperatures only worked well.


As far as I can see you need to have at least version 2022.5.
Because from version 2022.5 the old way has been deprecated.

See change (PR):
Hassio Pull request


Thanks, updating to 2022.8 in fact solved the issue and now it’s working properly (updating a Docker image is always a nuisance, but Portainer helped in this case!).

1 Like

@jeatheak Could you also integrate the Energy-sensor?

1 Like

Very interesting to see so much development around the WF-RAC module. I’ve been using the Airco’s without WiFi module by utilizing a Wemos D1 Mini with some small PCB, as described at this github:

One thing the new WF-RAC module has shown is that more commands seem to be allowed to send via SPI interface. To extend the functionality of the MHI-AC-CTRL project, it would be very helpful if someone with a WF-RAC module can ‘sniff’ signals using the SPI-Logger (Also see

Any one of you dare to help out? I think a lot of HomeAssistant users with MHI airco would be pleased :slight_smile:


Yea thats a good one.
I did have some problems parsing the data but it is definitely on my todo list.

1 Like

Ok I did not know that.

Mayby if I have some time on hand I will try to sniff the spi interface.

I have never done that but I thinks it should be possible with a esp8266 or esp32?