MyAir AC Zoning System, climate and Room Association for Components

All,

I have an Advantage Air MyAir 5 aircon zoning system which controls my ducted AC system. This system is Australian, not sure of its availability outside of Australia. Despite the potentially few Home Assistant users that have this system I’m working on integrating it, I’ve made good progress, but am uncertain how to proceed with integration in the climate component.

The MyAir system (zoning system controller) has the following features which don’t appear to map well to the existing climate component.

  1. Individual temp set points and state (on/off) per zone/room.
  2. Global System on(hot/cool)/of.
  3. Master/“MyZone” configurable zone, this is the primary zone and the system appears to prioritise this zone to reach temp first. It is designed set to the zone you are in.

My initial thought was to represent each zone as individual climate thermostats, but that doesn’t neatly fit the whole system controls of on/off and myzone.

Not sure if this is on the development pipeline but a construct of a room/location for a home assistant component would great so that room based views could be presented in the UI. For larger installations it would be great to include the location as an attribute rather than encoding it into the name of a component (e.g. “Family Room Chromecast”)

Any thoughts on how to proceed for extending the climate component for zoning systems?

Hi Smallsam - can you provide an update on this - are you still working on it ? can you let me know how you started the integration - i cant see to see any API access info, or 3rd party developer information.

Sure. I’ve coded up a python API wrapper for the MyAir “API” and started the component for home assistant. There’s​ no documentation for the API or protocol, I’ve reverse engineered it based on the mobile app communication. I’m confident the API is quite stable as the XML blobs appear to be streamed all the way through to the microcontroller.

Sometime during Jan/Feb MyAir released an update that removed their encryption from the protocol, right when I was in the middle of implementing the python API which simplified things. Annoying though as I’d spent a good few hours working out their encryption scheme, it’s not all wasted effort because it resulted in me implementing their discovery protocol too. This will be a nice addition to home assistant so the unit will be automatically configured.

It’s been on hold the last couple of months as I was busy with my wedding and decorating the house… Hopefully I can publish something usable soon.
Do you also have a MyAir system? Do you also use home assistant?
Any chance you live near Ferny Grove too, I think i recognise your name from a whirlpool thread.

1 Like

Hiya. Yep I live in ferny grove and I just got a myair 5 installed. Would love to have a play when you have something ready.

I am interested in this as well, getting mine installed in about a month

Hi Smalsam - any idea if/when you will release this ? keen to integrate somehow and dont want to redo all your efforts if you have something that works.

It’s been on hold for a while, to be honest I haven’t needed the AC on for a while now so hasn’t been high on my list of priorities.

I can push my code to github if you want something to work from if you’re keen to contribute. The standalone python library to talk to the MyAir is functional, so you could integrate using command line scripts if you wanted before the MyAir component is finished.

I’ll give them a quick test and push to github for you to have a look at.

1 Like

Thang would be ace. If you could.

Putting my hand up to also see the code!

Am about to get a system installed, leaning towards the MyAir controller would like this to keep all my automation in one system.

I’ve pushed my initial version of the supporting python library here: https://github.com/smallsam/pymyair

If you are comfortable with a some hands on python you may be able to make use of it. If you have any fixes and/or suggestions please use the collaboration tools in github (Pull Requests, Issues).

The home-assistant work I’ve done against last december’s build and I’ve never run it as I’ve been developing on the train. Pretty much unless you’re comfortable building home-assistant modules (I’m not FWIW), this won’t be much good to you unless it sees a lot more work on it.

Looks like the web service has been updated, setSystemData and setZoneData calls still work, but there is now a generic setAircon endpoint that takes URL-encoded JSON on the query string. getSystemData is still used to obtain the status of the system and enumerate all zones.

E.g. to change the airflow for a zone to 95% this is what is requested (zone number 8, value 95)

/setAircon?json={%22ac1%22:{%22info%22:{%22order%22:0},%22zones%22:{%22z08%22:{%22number%22:8,%22value%22:95}}}}

To change a zone (zone 8 damper to open):

/setAircon?json={%22ac1%22:{%22info%22:{%22order%22:0},%22zones%22:{%22z08%22:{%22number%22:8,%22state%22:%22open%22}}}}

Set aircon mode (cool):

/setAircon?json={%22ac1%22:{%22info%22:{%22mode%22:%22cool%22,%22order%22:0},%22zones%22:{}}}

Set fan speed (high):

/setAircon?json={%22ac1%22:{%22info%22:{%22fan%22:%22high%22,%22order%22:0},%22zones%22:{}}}

Set temperature (23º):

/setAircon?json={%22ac1%22:{%22info%22:{%22order%22:0,%22setTemp%22:23.0},%22zones%22:{}}}

Set aircon state (on):

/setAircon?json={%22ac1%22:{%22info%22:{%22order%22:0,%22state%22:%22on%22},%22zones%22:{}}}

All requests if actioned successfully return the JSON

{“request”:“setAircon”,“ack”:true}

Hope this helps someone with creating a module. There needs to be overall system control (on/off, desired temp, mode, fan speed), then a list of zones, with each zone having it’s own on/off state, and 5-100% airflow (or desired temp - the system allows for optional temperature sensors in zones).

I’m not sure I am up to the task, but happy to assist, test, provide the output from my system etc.

Hi speedst3r,
Thanks for your message. I also have access to the advantage air forum at http://advantageair.proboards.com/ anyone can sign up as is my understanding to see their newly released API specification. You’ve copied most of it above, the only real detail missing is that you need http on port 2025 to the android tablet IP.

Sadly with the introduction of this JSON API their latest software update requires an update of the advantage air service and all other clients on the network and as per advantage air support will remove support for the XML based API my library was written against.

So I (or I’d welcome patches to https://github.com/smallsam/pymyair) to update for the new JSON API as above to get it working again.

I have very limited time at the moment so won’t be getting back to this for a few months, so sorry for those of you that were hanging out for this.

If anyone is keen to take this further into home assistant, I’ve put most of the scaffolding in place to add to home assistant proper, but that will require a chunk more work. Please contact me if you’re interested and I’ll get the code over to you.

Hi Smallsam

Did you manage to get this going. I’m trying to achieve sensor data and control.

I have started looking into this again. Made changes to smallsam’s library to have the basic interaction with the system. It’s pretty rough, could probably do with some more error checking but it does work.

Sample python:

>>> from myair import MyAir
>>> ma = MyAir('192.168.0.97')
>>> systemdata = ma.getSystem()
>>> ma.getFanSpeed(systemdata=systemdata)
'low'
>>> ma.setFanSpeed(fanSpeed="high")
>>> systemdata = ma.getSystem()
>>> ma.getFanSpeed(systemdata=systemdata)
'high'
>>> ma.setMode(mode="dry")
>>> ma.setZone(id=3, state="open", target=50)

Anyone get this working in Home Assistant?

So I’ve thrown together the beginnings of the home-assistant component here: https://github.com/smallsam/home-assistant/tree/myair_support

It’s not seen any testing (or even been run yet), but for those of you with more free time than time, it might serve as a good starting point. @speedst3r this might save you some time if you were looking to take a crack at it. It’s just some work I managed to do when offline with my laptop…

Pretty excited to see how this is going. Have just moved into our new house with the Myair installed. With z-wave sensors in all but one of my zones I’ll be keen to integrate them with this component.

I’m still to stand up the network but letting you know I’ll be testing once I get going.

Hey @smallsam , Im looking into getting MyAir for my home, but i really only want to get a “smart” aircon system that is compatible with Home assistant.

I’ve noticed your python module has been updated recently, but not much on the home-assistant component.

What’s the status on that, is it working or not functioning?

Looking forward to your response, seems like you’re doing great work.

Thanks

I had a quick look, not sure it’s possible with H-A’s current components - the climate component only really does on/off, mode, fan speed and temperature set point. No support for zones.

Yes @speedst3r is right the current climate component in home assistant isn’t zone aware. I’m sure this will change over time but for now my thinking is that I will have a separate climate control for each zone, then either:

  1. Have a dummy zone/climate control that turns on and off the entire system.
    Or 2. Automatically turn off system when all zones have been turned off.

As it stands I’ve written a chunk of the code for the home assistant component, with the exception of the logic to turn on and off the system… (just zone controls). However this has been written offline and hasn’t seen any testing.

So whilst it certainly is possible to integrate and may be more seamless when someone (likely not me, as I have so little time to write code, look how long this thread has been going for…) develops zone support for home assistant.

The MyAir is a solid system and now has a complete API, with my python API/command line tool it’s straightforward to script into a home automation platform of your choosing. My only gripe with the MyAir is that you don’t get access to an AC unit’s power controls, e.g. overdrive/economy mode.

In short, an API is available and command line tool thanks to my python API, but please don’t make a purchase decision on the MyAir based on my ability to integrate into home assistant because I can’t guarantee when it will happen. That said, if you know enough python you could certainly throw something together.