Aidoo Pro and Mitsubishi heat pump integration tips

I hit a few snags while integrating my new Mitsubishi heat pump with Home Assistant using an Aidoo Pro as the intermediary, and wanted to share my solutions for anyone who comes along in the future.

As a quick aside for why to use an Aidoo instead of a smart thermostat (nest, ecobee) attached to the Mitsubishi adapter for 3rd party thermostats: If you have a heat pump with an inverter, you greatly harm you energy efficiency this way. These thermostats lack the ability to modulate the heat pump’s power based on how close your are to the set temperature. Future heat pumps might be smart enough to reduce their power when the return air is near the set temperature, but mine cannot. The Aidoo handles this.

And Mitsubishi has a wifi cloud accessory, but I’ve heard nothing but bad things about it’s usability and reliability. The Aidoo works over local wifi which makes me happy.

  • The Aidoo Pro supposedly cannot override the detected air temperature on some Mitsu systems (like mine). The Airzone site warns about this when I type my model into the compatibility tool at the bottom of the product page. So I have to keep my MHK2 wireless thermostat (as a temperature sensor) and additionally buy a “Airzone CN105 WiFi Splitter for Mitsubishi Controls” so it can share the cn105 port with the Aidoo. It will operate with no MHK2 attached, but the temperature reading seems pretty unreliable. It’s probably getting it from the return air sensor, which is only meaningful when the fan is running.
  • By default, you lack fine-grain control of the Mitsubishi’s fan speed while the device is in any of the active modes (heat, cool, heat_cool). In these modes, the fan seems to only run when the heat pump is running. You can alter this behavior so that the fan always runs at the assigned speed. See the powerpoint here. (In case this link dies, the steps for an MHK2 thermostat are to hold Menu until prompted for a PIN. Calculate your pin by reading the bottom right number on the sticker on the back of the MHK2 and adding 1,234 to it. Then set IUFC 25 to “3” and IUFC 27 to “1”.) This menu is only accessible when the MHK2 receiver is attached directly to the cn105 port, not behind the Airzone splitter.
  • The Aidoo defaults to exposing just one target temp and it will try to stay within a few degrees. If you want to specify your own min and max, you must open the Airzone app, go to Airtools, select your house, click Settings, and switch Autochange to “Double setpoint”. Note this broke some stuff in Home Assistant for me. Read below for the fixes.
  • Once in “Double setpoint” mode, I notice that the Airzone integration confuses the upper and lower temperatures for the comfort zone. See bug report. I work around this by defining my own template sensors that tell me when heat is active, or cooling is active. Go to Settings, Devices and services, Helpers, Create Helper, Template, Binary Sensor, and define ones with these templates.

Cooling binary template sensor

{% set temp_high = state_attr('climate.aidoo_pro', 'target_temp_high') %}
{% set temp_low = state_attr('climate.aidoo_pro', 'target_temp_low') %}
{% set temp_current = state_attr('climate.aidoo_pro', 'current_temperature') %}
{% set in_cooling_mode = states('climate.aidoo_pro') in ('heat_cool', 'cool') %}
{{ in_cooling_mode and temp_current > temp_high and temp_current > temp_low }}

Heating binary template sensor

{% set temp_high = state_attr('climate.aidoo_pro', 'target_temp_high') %}
{% set temp_low = state_attr('climate.aidoo_pro', 'target_temp_low') %}
{% set temp_current = state_attr('climate.aidoo_pro', 'current_temperature') %}
{% set in_heating_mode = states('climate.aidoo_pro') in ('heat_cool', 'heat') %}
{{ in_heating_mode and temp_current < temp_high and temp_current < temp_low }}

And for fun, one I made that tells me if the fan is running without any heat or cooling

{% set raw_temp_high = state_attr('climate.aidoo_pro', 'target_temp_high') %}
{% set raw_temp_low = state_attr('climate.aidoo_pro', 'target_temp_low') %}
{% set temp_high = [raw_temp_high, raw_temp_low]|max%}
{% set temp_low = [raw_temp_high, raw_temp_low]|min%}
{% set temp_current = state_attr('climate.aidoo_pro', 'current_temperature') %}
{% set in_comfort_zone = temp_low <= temp_current and temp_current <= temp_high %}
{% set in_an_active_mode = states('climate.aidoo_pro') in ('heat_cool', 'heat', 'cool') %}
{% set in_fan_mode = states('climate.aidoo_pro') in ('fan_only') %}
{% set fan_running = states('binary_sensor.aidoo_pro_air_demand') == 'on' %}
{{ fan_running and (in_fan_mode or (in_an_active_mode and in_comfort_zone)) }}
## Doesn't handle dry mode
3 Likes

Thank you for sharing all of that!

Short version:
Do you have/use code through the Airdoo to fully run your inverter HP? You said you “only” use the MHK2 for the indoor temp sensor but it sounds like you’re letting it do the modulation, too.
Unlike your setup, mine is supported by Airzone, FWIW.

Longer version:
I have recently installed a Mitsubishi Hyper Heat ducted heat pump and went with the Airdoo PRO. I went that route before I knew that it wouldn’t modulate on it’s own…and it’s been a real headache. (It’s currently getting commands from the Gen 3 Nest we already had. But that makes it a 1 stage HP and that’s not why I bought it!)
I found your post and got Home Assistant up and running, but I don’t know a thing about coding.
To be clear, I can easily afford an MHK2, I’m not being cheap. But if this will do the talking to the indoor unit instead that would be great. If it means having to learn to code, then I’m probably out.

Thank you!
Joshua

I was also disappointed to find out the Nest made the heat pump dumb.

I’m not super knowledgeable about heat pump technology, so I’m unsure exactly which component is “modulating”. But I bought the Aidoo Pro specifically because I thought it is capable of using Mitsubishi inverter heat pumps correctly. (There are specific Aidoo variants for Mitsubishi Electric. You got the correct one I hope?)

And I think it is done in the Aidoo, because I ran the system for a few weeks with no MHK2. The only issue I noticed was that the current temperature was inaccurate. But maybe other stuff was broken and I didn’t notice.

I did buy the correct Airzone for my Mitsubishi, I looked it up after reading your post to confirm.

As for what modulates on the heat pump: when cooling, the outdoor unit compresses refrigerant and then dumps the heat from that outside via the evaporator coils and the fan, and sends that cold compressed juice to the indoor unit where it’s expanded(which rapidly cools stuff) and after absorbing heat within the indoor unit, that refrigerant is cycled back outside, etc.
The cool thing about heat pumps is that they can do the same thing backwards too, expanding refrigerant outside and then condensing it to send heat into the house.

So the outdoor compressor can vary it’s output from around 25% to 110% rated output according to my reading.
The indoor fan can also vary it’s speed from about 30% to 100%. So they are both totally variable, but the compressor is really the star of the show. This is what we want to modulate up and down.

Sounds like you’re saying if we run the Airzone by itself it actually modulates? I feel like mine doesn’t do that. As you said the indoor temp was off, and that caused too much heat, but even when I was just letting it run that way it blew full-blast heat until reaching it’s happy temp then just would shut down.

So for the heat pump you’re only using Home Assistant to run the Cooling binary template sensor, Heating binary template sensor, and the fan yes/no thingy? And the airzone modulates your place just fine now?

Thank you,
Joshua

It’s possible that the MHK2 is managing the compressor modulation. I don’t know for sure. The Airzone site warned me to leave the MHK2 attached, and maybe that’s one of the reasons.

I use HA mostly to alter the HVAC target temperature, based on presence. When no one is home, I increase the size of the comfort zone to save energy. (I have chosen to use “double set point” mode in the Aidoo even though it’s very buggy, so that I can let the house rest between 65F and 80F if no one is home.)

Also, I disable heating and cooling if any of my window sensors stay open too long. To prevent my wife from running the AC with windows open.

1 Like

I just set the Aidoo Pro up with my mitsubishi system, but I’m not seeing any humidity sensor. Is that true?

@allwashedout Do you have an automation that increases the size of the comfort zone when away from home? Would you mind sharing that?

I have a binary helper called binary_sensor.someone_is_home that is true if any of my mmwave presence sensors see a person. Then I have some actions that alter the set temp based on time of day and presence. (My Aidoo is configured for double -set point so I can control both high and low comfort zone limits). For example, here’s one that relaxes the thermostat if I leave during the day:

alias: Climate day (unoccupied)
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.someone_is_home
    to: "off"
    from: "on"
    for:
      hours: 0
      minutes: 30
      seconds: 0
condition:
  - condition: time
    after: "05:00:00"
    before: "22:30:00"
action:
  - service: climate.set_temperature
    data:
      target_temp_high: 80
      target_temp_low: 66
    target:
      device_id: 69c919d6d9147bbd4f40abb1e65d63eb
mode: single

1 Like