Skip to content
Mitch Williams edited this page Jul 21, 2022 · 15 revisions

About

You may or may not be aware but homebridge-cmd4-AdvantageAir is not its own independent plugin and requires homebridge-cmd4 to operate. This 'pseudo-plugin' only provides you with the bash script and a delivery method for me to keep your script up to date with the latest features.

Air Conditioning

Due to the current limitations in HomeKit, multi-zoned ducted air conditioners are not represented as a single accessory. Our work around here is to create multiple accessories:

  • A Thermostat with modes OFF/HEAT/COOL using the Advantage Air 'constant' zone (usually zone 1 in a one 'constant zone' setup) as the measured temperature for feedback. A linked Fan Speed accessory has been added to allow you to control the speed of your Advantage Air system in Thermostat mode.
    • NOTE: AUTO mode in HomeKit is used to turn on DRY mode in the Advantage Air controllers. Setting DRY mode from the controller will then represent in HomeKit as AUTO.
  • A Fan with modes OFF/ON and speed control as percentage (1-33% as low, 34-67% as medium, 68-99% as high and 100% as 'auto' or 'ezfan') for the controller's FAN mode.
    • NOTE: Turning the Fan accessory on in HomeKit will turn off the Thermostat accessory, and turning the Thermostat accessory on in HomeKit will turn off the Fan Accessory. When the Fan is turned on in HomeKit, it will return to the last known speed.
  • Temperature Sensors with feedback from each zone. These also include the FAULT status in the accessory, this is determined by the error codes produced by the controller.
    • NOTE: According to the Advantage Air developers there is only one fault code; which is used for low battery, dead battery and loss of connection to sensor. I could not get any further information about this and have only seen one fault myself.
  • Switches with feedback to open and close each zone for users with Temperature Sensors. These users only need to open and close the zones as the Advantage Air controller will determine the percentage open required to maintain the temperature.
  • Lightbulbs are to be used in place of Switches for users without Temperature Sensors. These users will need to control the percentage open of their zones unlike the users with Temperature Sensors.

MyPlace Extras

Some users will have MyPlace with additional smart 'extras'; this will include actual lights (simple and dimmable), garage doors, gates, blinds, motion sensors, etc. Currently we have only added support for the following MyPlace extras:

  • Lightbulb.
  • Garage Door / Gate (HomeKit uses the same accessory for both).

Potential Device Limitations

What we have discovered from over 8 months of improving performance and reducing Homebridge/cmd4 log warnings:

"The air conditioner controller returns successfully incomplete system data when it is in use by the operator and also incomplete system data if any 'Set' operation is in progress. The scripts that send/receive data from the air conditioner controller must not only retry on failures, but also check the validity of the data as the incomplete system data returned presents a successful return code. Even with these features built into the scripts, Cmd4 has implemented a queuing system such that any polling or queries from HomeKit would only send a setValue when no other operation was in progress. This feature in Cmd4 is the WoRM (Write once Read many) queue. While Cmd4 can then manage all traffic to the air conditioner controller, it cannot know if someone is actually interacting with the control tablet. When interacting with the control tablet and Cmd4 is trying to send/receive data simultaneously, errors are unavoidable. Cmd4 hides these unavoidable errors in debug mode as it retries the transaction and in this way presents a clean console that otherwise would cause panic to the operator." - John Talbot, developer of homebridge-cmd4.

Beta Testing

Now that this plugin has a Homebridge UI integration; I am able to publish beta or pre-releases. The good thing about this is that it is easy to roll back to the stable or latest release through the Homebridge UI if there are any issues. Your help in testing these beta releases and providing feedback means there is less chance of a full release breaking something for someone else or that you may be able to influence a feature more in a direction that suits you.

If you would like to find out when I release betas for testing, it is good to click the Watch button in the top right corner of this repo and select Custom and then Releases. This will ensure you get an email every time I push a new release (including the beta releases) with new features or improvements!

Clone this wiki locally