MyAir AC Zoning System, climate and Room Association for Components

@Tockers - Can you please send me your flow as well, i’d like to give this a crack, ive just started with node red building this out. Id love a headstart :slight_smile:

Alternatively, @Brett_Adams - being able to automatically control the covers with the use of 3d party temperature sensors to keep zones within a range would be awesome (as a part of the HA core integration).

I really dont want to fork out thousands to upgrade my ac.

I’m in the same boat. I started implementing this as a seperate integration, because then it could in theory control any ducting system and any temp sensors.

I also expect this will never get merged into core.

The hardest part for me was writing the logic to make the AC control work nicely.

This is what I have so far:

1 Like

Okay, ill give that a whirl :slight_smile: Appreciate it.

Hey Brett, cheers for the reply! Since my question back in January, I have had a contributor jump on board with my plug-in and we mitigated these issues in our own way. We have since added support for a bunch of the MyPlace smart extras that you can add on, such as Lights, Garage Door and Gates; we have not got around to the Motion Sensors or Blinds yet as demand for people using these has not been high yet.

Hey All, I have a new version coming out with major changes, and would appreciate help testing it. See Test the new changes coming to Advantage Air using HACS

I’ve only got ezone alas, but great to see work ongoing.

Hi Brett - I installed ok and it picked up my system and configuration. Changing modes, covers and fan speed works ok but it doesn’t seem to recognise Fan Mode :Auto. Sorry, will be able to do more testing tomorrow but a comparison of the existing and test integrations is in the screenshot

This is good to know @Wayne, I now only show the Auto fan mode if it’s enabled by the system. If this is not correct, and you believe you should have auto mode without it being enabled please send me a diagnostic.

Only just found this thread, there may be some interest in the bodgy AppDaemon script I’ve been been working on.

Physically I have:

  • Advantage Air Zone10e w/ 5 dampers, controlled via Brett’s HA integration
  • Actron Air UltraSlim RCAC (rebranded Midea) controlled via ESPHome midea_ir component on an ESP32 in the roof next to the indoor unit
  • Xiaomi BLE temp/humidity sensors in each zone, flashed with pvvx firmware to expose 0.01 C precision

Initially I only wanted basic control via HA (e.g. turn off without walking downstairs), but the temperature regulation was awful across a 2 storey townhouse. I started thinking about how MyAir works with ITCs and one thing led to another…

On the frontend each zone has a virtual climate entity that displays the current temperature & allows the setpoint / mode to be set. Using GitHub - jcwillox/hass-template-climate: ❄️Templatable Climate Device for Home Assistant, Supports Running Actions On Service Calls.

For each zone in configuration.yaml

climate:
  - platform: climate_template
    name: Bed 1 Aircon
    modes: ["off", "heat", "cool"]
    temp_step: 0.1
    min_temp: 14
    max_temp: 30
    current_temperature_template: >
      {% if is_state('input_boolean.ac_use_feels_like', 'on') %}
        {{ states('sensor.bed_1_feels_like') }}
      {% else %}
        {{ states('sensor.bed_1_average_temperature') }}
      {% endif %}
    # no-op
    set_temperature:
      - delay: 0.0

The script looks reads its runtime config from these virtual climate entities & assumes that the same prefix is used for the damper e.g. climate.bed_1_aircon & cover.bed_1.

Internally there are 3 main stages to the script. Examples assume summer / cooling mode, but heating works too.

Zone control

PID for each zone to equalise temperature error.

e.g.
Room A, setpoint 20°C, actual 24°C
Room B, setpoint 24°C, actual 24°C

This stage of the controller makes as few assumptions as possible, it may be a bazillion degrees outside and the A/C is already running flat out with temps gradually climbing. Or it may be 25°C outside with a grossly oversized system so the temps are quickly plummeting inside. Doesn’t matter, for now the goal is to ensure that the occupants of each room are equally unhappy.

In this example the error for room A is 4°C, B is 0°C. The average error is 2°C, so all else being equal the controller will divert more air to bring room A such that it will cool down to 22°C. Air will be diverted from room B, allowing it to heat up to 26°C.

The output of each PID is scaled up such that one zone is always 100% open, & there’s a configurable deadband so that we don’t wear out the motors.

The derivative term of each PID controller that pre-empts changing conditions in each zone behaves much better with precise 0.01°C temperature sensors (I use Xiaomi BLE thermometers with pvvx firmware). With relatively large 0.1°C steps it was necessary to average over a relatively long period, diminishing the benefit.

Main AC control

An average of the errors for each zone is weighted by the position of each damper, as zones with less airflow aren’t as heavily influenced by changes to the compressor speed.

Once we have the error this stage could be very simple. If we can control the setpoint of the air conditioner, just increment it if an error accumulates.

If the system allows us to supply our own more accurate “follow me” temperature measurements, do that and let its controller handle the rest! A dummy setpoint can be configured e.g. always 20°C and we’ll just add the error to that e.g. on average it’s 1°C warmer than the setpoint for each zone, tell the AC that it’s “21°C” :wink:

Midea idiosyncrasy compensation

Oh dear… this was the real time sink. My AC has an inverter & can run the compressor at something like 20% to 100% power in 5% increments. When the cooling load is somewhere within this range, it should be able to find the right power level such that power consumption & ultimately the temperature of the air coming from the vents is near constant, rather than cycling off/on hot/cold like old school units.

Inverter driven compressors has been widespread for years, powerful microcontrollers are dirt cheap & Midea is a huge manufacturer so surely they can design a suitable controller. You’d be wrong, of course - left to its own devices this thing was constantly overshooting & undershooting due to what I can only assume is buggy firmware & a budget conscious customer base that doesn’t notice or care. After all, how many fussy, obsessive, technically inclined home owners would choose a cheap rebranded Midea system over Actron’s home grown offering or something from one of the big Japanese brands?

I started to write up this section but it got too big. Suffice to say that after much experimentation I’ve been able to tame the quirky Midea AC to maintain a stable compressor speed & keep each zone around ±0.1°C of their respective setpoints.

Show me the code

It’s not pretty.

Hi Brett,

I’m new to this. Currently, I have my zone 10 e tablet And a wall control unit. I cannot turn on/off the aircon by using the zone 10e app.
I tried to add the integration, it’s been added successfully. But I still can’t control the aircon, I can only turn on/off the zone and adjust the flow.

Am I lacking of any hardware? I can see zone 10 e+ from the app can turn on/ off the aircon. Do I need to upgrade to zone 10 e+? Or I have to install the e-zone instead?

Make sure you app is fully up to date on the tablet. Failing that you would be best to send me a diagnostic from the integration so I can figure out if anything is different. Send it to [email protected] or via a private message here.

I just updated the tablet, still not working. Sent you the diagnostics, hope this can help.

Any luck? Sent you a private message again, just in case you haven’t received my email.

I looked at what you sent me and couldn’t see anything obvious as to why it wouldn’t be working.

I’ll have to write up a python script for you to run and try figure out what’s going on.

Restart your android tablet if you haven’t already.

Thanks, Brett, yes, I have restarted the tablet, still not working. I checked the Logbook. It looks like the Zone 10e app always becomes unavailable and then it just turned off



. Please see attached pic

Apologies for a slightly off topic post here. I’m trying to get an integration to my MyAir3 system, which seems to have a related but different (XML vs JSON) communication that goes directly to a controller in the roof rather than an android tablet (this system has a proprietary screen). If anyone here has some background in the MyAir3 system with the XML protocol I have posted more details in another posting:

If no one has any ideas I’ll start further reverse engineering and see if I can build my first integration leveraging an existing integration that is built on the JSON protocol with some tweaks for the different protocol.

Hi all

I am about to sign up for my built contract . The builder is offering advantage air as their controller for panasonic ducted air conditioner. From my priliminary understanding they provide myair5 . Please help me understand which option would be better my air5 or ezone

How did you go?

@Brett_Adams are you still active with this integration?
Trying to use it with our MyPlace Advantage Air system and we can not connect. Looking for advice please.