All notable changes to this project will be documented in this file. This project uses Semantic Versioning.
Special thanks to the amazing uswong for executing these new features! Make sure to run the ConfigCreator again to update your config and take advantage of the new features!
- Accessory names can now handle a single quote
'
, for exampleMitch's Room
. You must also updatehomebridge-cmd4
tov7.0.2
to take advantage of this feature. - For users with
myZone
taking advantage of the 'Fan' Zone Control setup, since iOS 17 theSwingMode
characteristic we were using to be themyZone
switch has disappeared from the accessory's Homekit primary page but hidden deep inside the accessory's Homekit settings. Now we are using theRotationDirection
characteristic rather thanSwingMode
as a proxy for themyZone
switch.RotationDirection
characteristic will show as a round button switch on the Homekit accessory's primary page.
- Performance Update: MyPlace
lights
andthings
will now use ID instead of Name as a parameter instate_cmd_suffix
during the ConfigCreator process, requiring less parsing inAdvAir.sh
. - Dev: Added unit tests to for
lights
andthings
ID as a parameter instate_cmd_suffix
and also added unit tests to test forRotationDirection
characteristics.
- Fixed: Broken url path to the homebridge logo on the
README
.
Special thanks to the amazing uswong for executing these new features!
Some great Zone Control customisation options have come to the ConfigCreator
based on how different people would like to use this plug-in! All you have to do is run the ConfigCreator
to try them out or update your config! As always, take a copy of your existing config first just in case you would like to quickly revert back to what you already had.
- "Lightbulb/Switch" * accessory with standalone temperature sensor and myZone switch (legacy).
- "Lightbulb/Switch" * accessory with integrated temperature sensor but standalone myZone switch (new).
- "Lightbulb" only accessory with integrated temperature sensor but standalone myZone switch (new).
- "Fan" accessory with integrated temperature sensor and integrated myZone switch (new - recommended).
* will use a Switch for temperature sensor zones and a Lightbulb for those without.
Read more about these options in Step 10 of the README. If you have ideas for further config options, let us know!
- Support for Fujitsu anywAIR systems, which seem to be a rebranded AdvantageAir System using port
10211
. As such, the PORT option has been added to theConfigCreator
and can be left as default for all AdvantageAir users and changed for anywAIR users. - Added an optional performance enhancement by doing the necessary rounding in Cmd4 module.
- Dev: Dependency updates.
- Dev: Added unit tests for the additional characteristics
Active
andSwingMode
.
- Fixed: A vulnerability was found in
ConfigCreator.sh
for use in terminal. It would fail if an optional retries parameter was added in theconfig.json
. - Fixed: A bug was found in
AdvAir.sh
such that when the aircon system is offline, the plugin still registers it as online.
Special thanks to the amazing uswong and ztalbot2000 for adding these new features!
myZone
- Will no longer blanket set the 'Target Temperature' from the Thermostat across all zones for myZone users. This functionality has been good for non-myZone users but should not be the case for myZone users; only the 'Target Temperature' of the zone defined as myZone is changed. This change will not affect non-myZone users.Fancy Timers
- New 'switch to mode timers' can be added from theConfigCreator
(needs to be run again to added to your config). These timers will add the functionality to change from one mode to the next after the timer is complete.- Cool: Switch to Cool mode once the timer is completed.
- Heat: Switch to Heat mode once the timer is completed.
- Vent (fan): Switch to Fan mode once the timer is completed.
No Response
- Previously if the Advantage Air device could not be reached, it would show the status asOff
, but with homebridge-cmd4v7.0.0
(currently available via beta versionv7.0.0-beta2
) it will now display asNo Response
. This particularly usefull for users with the MyPlace smart extra modules which can go offline seperate of the main control unit.
- Various under the hood quality of life and error handling improvements.
- Yellow log warning 'requires Node.js version' fixed.
Node.js
dependancy updated. - Red log error 'No plugin was found' fixed. If you still see this error, clear the area of your config that contains the following and run
ConfigCreator
again:
{
"name": "cmd4AdvantageAir",
"devices": [
{
"name": "Aircon",
"ipAddress": "192.168.0.159"
}
],
"platform": "cmd4AdvantageAir"
}
Special thanks to the amazing uswong for executing these new features!
- Support added for
myZone
. For users that have access tomyZone
, this will expose a series of switch accessories that will allow the user to set which room is currently being used asmyZone
for temperature feedback to the Advantage Air controller.
- All defined
Constant Zones
are now used byAdAvir.sh
when before it would only use the first definedConstant Zone
. - Better handling of systems that are a mix of zones with and without temperature sensors.
Special thanks to the amazing uswong for executing this new feature! And happy birthday to my cat Pumpkin, the Red Menace!
- Much like how the new
ConfigCreator
can be run from the terminal for HOOBS users and Homebridge users without access to the web UI; the existingCheckConfig
web UI button can now also be called from the terminal. Instructions can be found here. - The
CheckConfig
script when called, will run through all the requirements of the plug-in installation steps and your config to make sure you are all set!
- The
ConfigCreator
script will now prompt you to call theCheckConfig
script in the very last steps.
Special thanks to the amazing uswong for adding this new feature!
The new ConfigCreator
can now be run from Homebridge UI! Once the Advantage Air device(s) is/are defined (note that only a maximum of 3 devices can be processed by ConfigCreator
) and saved, click the CONFIG CREATOR
button to auto-create the cmd4 configuration file required to run the homebridge-cmd4-AdvantageAir
plugin. Make sure you check the checkbox if you want the fan to be setup as FanSwitch
instead of a 'Fan' accessory before you click the CONFIG CREATOR
button.
This can be run by existing users if they want to update to the newest (and best!) config options available. You can always inspect or edit the configuration created in homebridge-cmd4
(not homebridge-cmd4-AdvantageAir
) JASON Config editor if you want after the fact; for example if you do not like the naming convention used. Once the configuration is created, you can then use the CHECK CONFIGURATION
button to check whether the configuration meets all the requirements.
NOTE: HOOBS users and users without access to Homebridge UI have to run the ConfigCreator
from their terminal and follow the prompts. Instructions can be found here.
- Addition of
FanSwitch
config option. For users who would rather have the Advantage Air fan as aSwitch
accessory instead of aFan
accessory. Fan speed will still be coupled and controlled with theFanSwitch
accessory like it is with theThermostat
. - Terminal mode of
ConfigCreator.sh
now has improved instructions in coloured form.
- Dev: All lint errors resolved.
- Dev: Removed prepare script for husky
Special thanks to the amazing uswong for adding this new feature!
- Replaced use of command
tac
tosort -nr
in newConfigCreator
(seev3.5.0
below). Commandtac
is not available on macOS.
Special thanks to the amazing uswong for adding this new feature!
- New
ConfigCreator
script to automatically craft your homebridge-cmd4-AdvantageAir config! This feature is particularly helpful for users with larger MyPlace systems containing Lights, Garage Doors, etc., who can have over 100 accessories; but new and existing users with smaller systems can still benefit from this feature!- You can choose to have the script generate a cmd4 config file for you to copy and paste into your existing
config.json
or opt to allow it to automaticaly add itself to yourconfig.json
to save you the effort of the copy/paste. This will not overwrite any other existing cmd4 accessories outside of this project. - Instructions on how to run this script can be found here.
- You can choose to have the script generate a cmd4 config file for you to copy and paste into your existing
- Dev:
timeout
increased forServer.js
unit tests to be more suitable to dev testing on RPi.
Special thanks to the amazing uswong and ztalbot2000 for adding these new features!
- Support for Advantage Air systems with a second control tablet! This is for users who may have multiple aircons controlled by separate control tablets.
- Thermostat
Auto
mode is now used to setdry
mode in Advantage Air control unit. This enable users to set thedry
mode from Homekit. - Performance: New function to update
myAirData.txt
cache file immediately after everySet
command usingjq
so that the cache file always reflects the latest state of the system in real time. - Minimized "write" events to the disk as per issue #58.
- Created temporary sub-directory to store all temporary files required for the smooth running of
AdvAir.sh
. - Dev: New
AirconServer
for better and more realistic unit testing. - Dev: Real time count down capability is added to the
AirconServer
to make it behave more like a real aircon system.
- Resolve issue where
AdvAir.sh
fails to write to"/tmp"
which is denied in some Linux distros; as per issue #58. - Issue where
countDownToOn
timer is set and if the aircon is turned on manually instead, thecountDownToOn
remains on. It should be turned off because the aircon is now on. - Minor bug fixes to new
AirconServer
. - Dev: NPM Audit to fix issues with dependencies causing unit tests to fail.
Special thanks to the amazing uswong and ztalbot2000 for adding these new features! Another special thanks to John Wong and Kai Millar for all the beta testing that made this feature possible!
- MyPlace Extras support!!!
- Support for Advantage Air systems with more than one air conditioners! You can add up to 5 aircons if they are all accessible from the one control tablet. Config examples can be found here
- MyPlace users with the extras should set
"timeout"
in their config to60000
. - It is reccomended to change
"queueType"
from"WoRm"
to"WoRm2"
for better performance.
- MyPlace smart eco-systems required large scale under the hood changes to manage the communication between Cmd4 and the Advantage Air Controllers. Greater detail can be found in this Pull Request.
- MyPlace Extras are now independent of the aircon system; for those who do not want to add the aircon system to HomeKit.
- Use of the
flip
constant in the"state_cmd_suffix"
of your garage door or gate; incase the Advantage Air has installed it backwards!
- Fix the close multiple zones bug that causes constant zone to open to 100%.
- Setting Thermostat to 'auto' from HomeKit will now default the Thermostat to the mode it was already on.
- Shellcheck cleared out over 60 syntax errors in the script that could have posed issues.
- Dev unit test fixes.
Special thanks to the amazing uswong for adding these new features! Thank you to all who participated in the beta testing!
- Zone closing check to ensure that at least one zone is open at all times as a secondary layer of protection for your ducting.
- If you close all zones, it will open your Constant Zone damper to 100%.
- No longer require the use of
noSensors
in yourconfig.json
. The script determines if you have sensors or not. - Temperature Sensor users no longer require to add zone (
z01
,z02
, etc.) to"state_cmd_suffix"
of Thermostat in yourconfig.json
. The script determines and sets it as your Constant Zone.- You can still set a zone if you prefer to choose a different zone to your Constant Zone.
- Countdown timer added as a Lightbulb accessory; config can be found here.
- Depending on if your Advantage Air system is on or off will determine if the countdown is to turn the system on or off when it reaches 0.
- New constant
timer
will need to be added to the"state_cmd_suffix"
of this accessory. - The Advantage Air system will only allow 720 minutes (12 hours) for a timer and the Lightbulb has 0-100% to utilise.
- Therefore, setting 1% will equal 10 minutes, 6% will be equal to 1 hour.
- Setting a value higher than 72% (720 minutes), will default back to 72% on the Lightbulb.
- Shell Check Tool updated for new configurations. Always check you
config.json
with this after making changes! - Dev dependancy
nanoid
security update tov3.1.31
.
Special thanks to the amazing uswong for adding the new fan speed feature and fixing the zone percentage bug! Thank you to all who participated in the beta testing!
- Fan speed added to Fan accessory via charcteristic
rotationSpeed
. See new Fan config here!- Speeds: 1-33% (low), 34-67% (medium), 68-99% (high) and 100% ('auto' or 'ezfan').
- Fan speed added to Thermostat accessory via new
"linkedType"
config options; see new Thermostat config here. You may need to delete the Homebridge cache when updating this accessory.- Speeds: 1-33% (low), 34-67% (medium), 68-99% (high) and 100% ('auto' or 'ezfan').
- New Wiki page to help explain and create your
config.json
. - Homebridge Verified!!!
- Thermostat 'Fan Speed'
"linkedType"
is set to always appear on. - If you do not opt into using fan speeds for the Fan and/or Thermostat; setting mode commands (
cool
/heat
/on
) will now default to the last known speed set in the Advantage Air app (low/medium/high/auto/'ezfan'). It used to always set toauto
speed when changing modes. - Removal of unused
statusFault
and redundant new code fromAdvAir.sh
. - Streamlining and updates for the README. Moving of some information to the new Wiki.
- Fix for Zone percentage (
brightness
) which would not send value to the controller if it was not rounded to 5%; value input now will round to the nearest 5%. - Fix for users with 'ezfan' mode defaulting to 'high'; 'ezfan' mode now accepted as 100% speed.
- Dev Tests: Fix timeout issues with
server.js
.
Welcome to our Homebridge UI integration!!!
All the credit for this integration goes to the amazing John Talbot of homebridge-cmd4; I seriously cannot thank him enough! While this is still not its own independent plug-in, this integration will mimic a 'full' plug-in for Homebridge UI. This includes prompts for updates to your scripts, no longer having to edit the script and a configuration check tool to make sure you are set up correctly. Please take a look at the README for more information.
- Update
node
dependencies to run on all active LTS versions ofNode.js
; at the time of writing this is,Node.js
v14 and v16. Preparation forHomebridge Verified
.
Welcome to our Homebridge UI integration!!!
All the credit for this integration goes to the amazing John Talbot of homebridge-cmd4; I seriously cannot thank him enough! While this is still not its own independent plug-in, this integration will mimic a 'full' plug-in for Homebridge UI. This includes prompts for updates to your scripts, no longer having to edit the script and a configuration check tool to make sure you are set up correctly. Please take a look at the README for more information.
- Fix
Bug-Report
issue template not showing up. - Fix broken links for NPM Badges on README.
- Dev Tests: Combine
serverP1.js
,serverP2.js
andserverP3.js
intoserver.js
. - Update screenshots in README.
Welcome to our Homebridge UI integration!!!
All the credit for this integration goes to the amazing John Talbot of homebridge-cmd4; I seriously cannot thank him enough! While this is still not its own independent plug-in, this integration will mimic a 'full' plug-in for Homebridge UI. This includes prompts for updates to your scripts, no longer having to edit the script and a configuration check tool to make sure you are set up correctly. Please take a look at the README for more information.
- NPM packages will not allow packages to be published if they have upper case letters in the name.
Welcome to our Homebridge UI integration!!!
All the credit for this integration goes to the amazing John Talbot of homebridge-cmd4; I seriously cannot thank him enough! While this is still not its own independent plug-in, this integration will mimic a 'full' plug-in for Homebridge UI. This includes prompts for updates to your scripts, no longer having to edit the script and a configuration check tool to make sure you are set up correctly. Please take a look at the README for more information.
- Homebridge UI integration. While this change itself will not break your existing setup; the process of migrating over might while getting set up again if you make a mistake.
- IP address is removed from the
AdvAir.sh
script. It is now added as a constant in thehomebridge-cmd4
config and in"state_cmd_suffix"
(see Config_Samples directory). There is no longer a need for users to edit the script!
- #9: Add zone percentage control for users without temperature sensors. This is integrated as the Light Bulb acessory (see Config_Samples).
- #19: Add
noSensors
variable to fix issue with Thermostat Get CurrentTemperature for users without temperature sensors. - Side issue bug raised in #9:
noSensors
variable fixes issue with Thermostat Set CurrentTemperature for users without temperature sensors.
- README updated: Update supported units, update screenshots, update and streamline installation instructions.
- Config samples updated: Update and streamline config samples.
noSensors
and${IP}
added toconfig.json
. Example added for users with some (but not all) zones using temperature sensors. - Issue templates updated.
- PR template created.
- CHANGELOG created.
- Repo/Plug-in name changed from
cmd4-AdvantageAir
tohomebridge-cmd4-AdvantageAir
. - Dev unit tests expanded and updated.
config.json
changes to stop warnings in the upcoming homebridge-cmd4 v6.0.0 release.- Characteristics now require the starting letter to be 'lower case' and not 'upper case'; this will pave the way for future work John Talbot puts in for cmd4 to have a
config-schema.json
in Homebridge UI.
- Removed
stdbuf
dependency from scripts (could affect macOS user installs). - Install instructions in
README
have been split into Raspbian and macOS installs; still no Windows install instructions. IP Address
/Port Number
at start of script has had the port number moved into the script commands; so users do not need to think they need to change the port number or figure it out themselves.
- Addition of test scripts.
- New singular script
AdvAir.sh
to replace the need of two scriptsezone.sh
andzones.sh
('Two Constant Zone' users will still have to use two scripts for now; sorry!). - Better error handling and reporting; script will attempt 5 iterations to receive a valid reading from the control unit.
- Introduction and use of homebridge-cmd4's new
WoRm
(Write once Read many) queue designed by John Talbot to better handle interactions with Advantage Air control unit's limitations.
- Repo rename to
cmd4-AdvantageAir
; this is to more accurately capture the broader control units this API encompasses. - Temperature Sensor Low Battery warning indications added.
config.json
improvements and clean-up.- Documentation improvements in
README
.
- New
config.json
examples added for the new polling methods of cmd4 v3.0.x. - Updated
README
.
- Fixed a couple of small bugs in shell scripts: use of
"true"
instead of'1'
forOn
characteristic and double use of case* )
.
- Added shell scripts for users without Temperature Sensors.
- Issue templates added for
Bug Report
,Feature Request
andSupport Request
. - 'House Keeping' of directories for better navigation to shell scripts needed.
- Updated
README
.