Coder Social home page Coder Social logo

mitch7391 / homebridge-cmd4-advantageair Goto Github PK

View Code? Open in Web Editor NEW
36.0 7.0 5.0 13.43 MB

Catered shell script to integrate air conditioner control units by Advantage Air into HomeKit using the plug-in homebridge-cmd4.

License: MIT License

Shell 69.00% CSS 0.05% HTML 4.19% JavaScript 26.76%
homebridge-cmd4 advantage-air homekit homebridge e-zone myair myair4 myplace zone10e myair5

homebridge-cmd4-advantageair's Introduction

npm npm verified-by-homebridge

homebridge-cmd4-AdvantageAir

Catered shell script to integrate air conditioner control units by Advantage Air into Homekit using the plug-in homebridge-cmd4.

No affiliation with Advantage Air.

Supported Control Units:

Note: zone10 and MyAir3 do not appear to work with this plug-in.

  • Extras:
    • MyPlace
      • Lights
      • Garage Door
      • Gate
      • Motion Sensors
      • Blinds

Note: Config for these extras can be found here.

How It Looks:

Air Conditioning - Thermostat Mode (with Fan Speed) and Fan or FanSwitch Mode:

Air Conditioning - Zone Control and Temperature Sensors:

Air Conditioning - Zone Control without Temperature Sensors:

MyPlace Extras - Lights:

MyPlace Extras - Garage Door / Gate:

Note: Garage Door / Gate will appear in Apple CarPlay.

Installation:

Raspbian/HOOBS/macOS/NAS:

  1. Install Homebridge via these instructions for Raspbian, HOOBS or macOS.

  2. Install the homebridge-cmd4 plug-in via the Homebridge UI 'plugins' tab search function. Once installed, a pop-up box with a small config in it will appear. Do not edit anything and make sure you click SAVE.

  3. Install homebridge-cmd4-AdvantageAir plug-in via the Homebridge UI 'plugins' tab search function.

  4. Install jq via your Homebridge UI terminal or through ssh:

# Raspbian/Hoobs:
sudo apt-get install jq

# macOS:
brew install jq

# Synology NAS:
apt-get install jq

# QNAP NAS:
apk add jq
  1. Check if curl is installed (it should already be):
curl -V
  1. If curl does not return a version number, install via:
# Raspbian/Hoobs:
sudo apt-get install curl

# macOS:
brew install curl

# Synology NAS:
apt-get install curl

# QNAP NAS:
apk add curl
  1. Automatically create your Homebridge config.json:
  • Homebridge users with access to the Homebridge web UI can jump ahead to Step 8.
  • Homebridge users without access to the Homebridge web UI can use the following terminal instructions.
  • HOOBS users do not have access to our Homebridge UI (for now!) and will have to use the following terminal instructions.
  1. Go to the 'plugins' tab in Homebridge UI and locate your newly installed homebridge-cmd4-AdvantageAir. Click SETTINGS > Config and it should launch the 'Advantage Air Configuration Creator'.

  2. Scroll down to the 'AdvantageAir Device Settings' area and fill out the Name, IP Address and PORT used fields (default PORT is 2025 for most users, Fujitsu anywAIR users set this to 10211 ). If you have more than one Advantage Air tablet, you can click Add new device to setup the others. Click SAVE when done editing, it will close the UI and you will need to open it once more as per Step 8 before proceding further.

  3. Check/uncheck the the following checkboxes/radio-buttons to select your preferred setup options, then press the CONFIG CREATOR button to create your Advantage Air config.

    • Use a "Switch" accessory as "On/Off" control for "Fan" state:

    "FanSwitch" setup allows the current fanSpeed to be displayed on Homekit tile when the Aircon is On and is in Cool, Heat or Dry (Auto) mode.

    • Include fancy timers to turn-on the Aircon in specific mode: Cool, Heat or Vent:

    This will generate extra timers to turn-on the Aircon in specidic mode: Heat, Cool or Vent.

    Zone Control setup options:

    • Use "Lightbulb/Switch" * accessory with standalone temperature and myZone switch (legacy):

      For systems with Temperature Sensors, this option will use the Switch accessory for Zone Control and a separate TemperatureSensor for the temperature info. If myZone is defined, a standalone myZone switch will also be configured.

      For systems without Temperature Sensors, this option will use the Lightbulb accessory for Zone Control.

    • Use "Lightbulb/Switch" * accessory with integrated temperature but standalone myZone switch:

      For systems with Temperature Sensors, this option will use the Switch accessory for Zone Control and integrate a linked TemperatureSensor for the temperature info. The advantage of this option is to be able to see the zone temperature displayed on the zone itself. If myZone is defined, a standalone myZone switch will also be configured.

      For systems without Temperature Sensors, this option will use the Lightbulb accessory for Zone Control.

    • Use "Lightbulb" accessory with integrated temperature but standalone myZone switch:

      For systems with Temperature Sensors, this option will use the Lightbulb accessory for Zone Control and integrate a linked TemperatureSensor for the temperature info. The advantage of this option is to have the temperature info and the "zone % open" displayed on the zone itself. Please note that the Brightness which is a proxy for "zone % open" is not user controllable as per AdvantageAir design. If myZone is defined, a standalone myZone switch will also be configured.

      For systems without Temperature Sensors, this option will use the Lightbulb accessory for Zone Control and the Brightness which is a proxy for "zone % open" is user controllable.

    • Use "Fan" accessory with integrated temperature and myZone switch (recommended):

      For systems with Temperature Sensors, this option will use the Fanv2 accessory for Zone Control with Fanv2's RotationDirection charateristic being repurposed as the myZone switch and integrate a linked TemperatureSensor for the temperature info. The advantage of this option is to have the temperature info & the "zone % open" displayed on the zone itself and able to set this zone as myZone if it hasn't been set yet. Please note that the Speed which is a proxy for "zone % open" is not user controllable as per AdvantageAir design. Please also note that once myZone is set, you cannot unset it. You have to set another zone as myZone to unset it.

    For systems with no Temperature Sensors, there will be no button switch and no temperature info but the Speed which is a proxy for "zone % open" is user controllable.

  4. Click CHECK CONFIGURATION. It will check over your installation and config to make sure you have everything correct. On a success it will say Passed; if something is incorrect, an error message will pop up telling you what it is that you have missed and need to fix.

  5. If you have Cmd4 v7.0.0-beta2 or v7.0.1 or v7.0.2 installed, an optimised version of Cmd4PriorityPollingQueue.js module which will give you some improvements in performance, will be installed as part of the ConfigCreator process at step 10.

    A feedback messages from ConfigCreator of "COPIED and DONE!" is an indication of sucessful installation.

    A feedback messages from ConfigCreator of "NOT COPIED but DONE!" is an indication of unsucessful installation of the optimised module but the config was generated sucesscully. If this happens, a script copyEnhancedCmd4PriorityPollingQueueJs.sh will be created in <config.json storage path> directory and you can run it to get it installed manually.

    The <config.json storage path> directory is the directory where "config.json" is stored. For Raspbian installation, it is typically /var/lib/homebridge. For Mac users, it is typically $HOME/.homebridge. For HOOBS users, it is typically /var/lib/hoobs/<bridge>.

    Restart homebridge for the change to take effect.

    Please note that if this optimised version of Cmd4PriorityPollingQueue.js module is not installed, this plugin will still work fine but slightly less efficient.

Windows OS

I have not successfully set this up on a Windows OS Homebridge server yet. If you have and want to contribute; please reach out and let me know how you did it. Otherwise I strongly suggest you buy a dedicated Raspberry Pi for Homebridge.

Further Notes

You can read more about this project and how to create your config on the Wiki page.

How You Can Help:

  • Open Issues/Tickets.
  • Report Bugs/Errors.
  • Suggest Improvements and Features you would like to see!
  • Help test the beta releases! See the Wiki to find out how to 'sign up'.
  • Create a fork, add or fix something yourself and create a Pull Request to be merged back into this project and released!
  • Let me know if you have a Control Unit or App that works that is not confirmed in my Supported List!
  • Let me know if you can figure out how to get this running on Windows 10/11 Homebridge.
  • Feel free to let me know you are loving the project by give me a Star! It is nice to have an idea how many people use this project!

Special Thanks:

  1. The evolution, improvements and continuously tireless work of John Talbot, who has not only improved these shell scripts beyond measure and created the Homebridge UI integration; but continues to improve homebridge-cmd4 to further cater to this work and my end users.
  2. The hard work and valued coding experince of Ung Sing Wong that has led to the many amazing features in a short space of time; and no doubt more to come in the future!
  3. This would never have kicked off without the patience and kindness of TimofeyK helping out a new starter find his feet.
  4. Lastly, but certainly not least, is my beautiful Wife who has put up with what has become an obsession of mine to get our air conditioner and many other devices into Homekit. May she forever be misunderstood by Siri for my amusement...

LICENSE:

This plugin is distributed under the MIT license. See LICENSE for details.

homebridge-cmd4-advantageair's People

Contributors

mitch7391 avatar uswong avatar ztalbot2000 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

homebridge-cmd4-advantageair's Issues

[Support] Unable to connect to Air con unit

Hi there CMD4 Advantage community.

I am having issues with my homebridge setup for advantage air. I have been using olde versions of the CMD4 plugin for a while successfully but after a recent update everything broke. It is driving me mad trying to fix this as it should be trivial. I am having the issue where I get a constant error of More than 500 errors were encountered in a row for___ as per the screenshot I have attached. I have recently reinstalled the entire Raspbery Pi OS on my machine, followed the steps of installing homebridge and CMD4 plugin as per each GitHub’s page and still receiving this issue. I read through the troubleshooting steps of a gentlemen who had the same issue after transferring to a pi from. Mac and none of his steps have worked. I’d like someone who has more per ties in this field to review what I have done and provide me with some ti[s on where to get started. Sorry for long code but iOS won’t let me upload .json
CE662026-C1F5-4B61-BF31-86C62E06F6BA

{
    "bridge": {
        "name": "Homebridge 869B",
        "username": "0E:45:59:74:86:9B",
        "port": 51594,
        "pin": "[902-47-334](tel:902-47-334)"
    },
    "accessories": [],
    "platforms": [
        {
            "platform": "Cmd4",
            "name": "Cmd4",
            "outputConstants": false,
            "statusMsg": true,
            "timeout": 5000,
            "stateChangeResponseTime": 0,
            "constants": [
                {
                    "key": "${IP}",
                    "value": "172.17.65.192"
                }
            ],
            "queueTypes": [
                {
                    "queue": "A",
                    "queueType": "WoRm"
                }
            ],
            "accessories": [
                {
                    "type": "Fan",
                    "displayName": "Fan",
                    "on": "FALSE",
                    "rotationSpeed": 100,
                    "name": "Fan",
                    "manufacturer": "Advantage Air Australia",
                    "model": "e-zone",
                    "serialNumber": "Fujitsu e-zone2",
                    "queue": "A",
                    "polling": true,
                    "state_cmd": "/usr/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh",
                    "state_cmd_suffix": "${IP}"
                },
                {
                    "type": "Switch",
                    "displayName": "Leighton",
                    "on": "FALSE",
                    "name": "Leighton",
                    "manufacturer": "Advantage Air Australia",
                    "model": "e-zone",
                    "serialNumber": "Fujitsu e-zone2",
                    "queue": "A",
                    "polling": true,
                    "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z07 ${IP}"
                },
                {
                    "type": "Thermostat",
                    "displayName": "Aircon",
                    "currentHeatingCoolingState": "OFF",
                    "targetHeatingCoolingState": "OFF",
                    "currentTemperature": 25,
                    "targetTemperature": 25,
                    "temperatureDisplayUnits": "CELSIUS",
                    "name": "Aircon",
                    "manufacturer": "Advantage Air Australia",
                    "model": "e-zone",
                    "serialNumber": "Fujitsu e-zone2",
                    "queue": "A",
                    "polling": [
                        {
                            "characteristic": "currentHeatingCoolingState"
                        },
                        {
                            "characteristic": "targetHeatingCoolingState"
                        },
                        {
                            "characteristic": "currentTemperature"
                        },
                        {
                            "characteristic": "targetTemperature"
                        }
                    ],
                    "state_cmd": "/usr/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh",
                    "state_cmd_suffix": "${IP}",
                    "linkedTypes": [
                        {
                            "type": "Fan",
                            "displayName": "Fan Speed",
                            "on": "TRUE",
                            "rotationSpeed": 100,
                            "name": "Fan Speed",
                            "manufacturer": "Advantage Air Australia",
                            "model": "e-zone",
                            "serialNumber": "Fujitsu e-zone2",
                            "queue": "A",
                            "polling": [
                                {
                                    "characteristic": "on"
                                },
                                {
                                    "characteristic": "rotationSpeed"
                                }
                            ],
                            "state_cmd": "/usr/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh",
                            "state_cmd_suffix": "${IP}fanSpeed"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Config",
            "port": 8581,
            "platform": "config"
        }
    ]

}

[Feature Request] Fan Speed Control

Ability to adjust fan speed within the Home app, perhaps a button wheel similar to the one under the temperature button (Auto, Hot, Cold).
Further, when the fan is currently enabled it defaults to high fan speed, not last previous setting.

[Feature Request] Allow setting/override port settings

Is your feature request related to a problem? Please describe:
Fujitsu Anywair uses a rebanded Advantage Air tablet / app, with same API's but operates on a different port (10211). I currently use the AdvantageAir plugin for home assistant (link) to control my Fujitsu Anywair and works no problem but I'm looking to move more to homebridge (and this looks like it use more of the features).

Describe the solution you'd like:
Being able to set the Ip address and port in the config UI. Currently when I try to add port after IP (e.g. 192.168.1:10211) it gives an error that it's invalid IP.

Describe alternatives you've considered:
None at moment, as there is no other well maintained plugin. Other then home assistant (link) plugin which I expose to homekit but I'm looking to move more of my stuff to homebridge.

Additional context:
NA

Advantage Air System:

  • Control Unit: Fujitsu Anywair - rebrand of advantage air in AU/NZ
  • Temperature Sensors: Yes

[Bug]AdvAir.sh cannot write to /tmp

Paste of Logs:

The problem is that AdvAir.sh writes to /tmp directly which gives permission denied.
Linux on the Sony is via termux, like a docker image where temporary files are only accessible through
the proper call to mktemp. For instance:
mktemp --suffix=myFile
/data/data.com.termux/files/usr/tmp/41Iun75mtymyFile
As such, AdvAir.sh incorrectly creates temporary files.

Cmd4 Config:

Screenshots:

Advantage Air System: Not applicable at this time

  • Control Unit: e-zone / MyAir / MyAir3 / MyAir4 / MyPlace / zone10e / zone10 - Not applicable at this time
  • Temperature Sensors: Yes / No

Homebridge Environment:

  • Node.js Version: Node.js is v16.3.1.
  • NPM Version: 8.8.0
  • Homebridge Version: Homebridge v1.4. 1 (HAP vO.10.2) (Homebridge)
  • homebridge-cmd4 Version: 6.3.0
  • homebridge-cmd4-AdvantageAir Version: 3.3.0
  • Operating System: Raspbian / Ubuntu / Debian / Windows / macOS / Docker / other Sony KD43X8000H Android TV. The OSTYPE linux-eabI via termux

Able to retrieve the status of the MyAir via Homekit, however unable to change them in Homekit

Hello! thanks for the detailed instruction for installation, however I am still facing some issues with it.

  1. I've installed the cmd4, however, I am unable to copy the State.js
    as there are no node_modules created under /usr/lib
    therefore, I just copied the State.js and CheckYourScript.sh to my homebridge directory (./homebridge/Cmd4Scripts/) as described in the instruction, does it matter at all?
    image

  2. There are no thermostat in my setup, which means my measuredTemp is always zero.

image

I tried to use your ezone.sh and zones.sh directly,
with IP address replaced and the room name changed,
however error still comes.
image

My end goal is to enable turning on/off the AC/fan and I don't think changing the temp matters at this point of time.
What should I be looking into? Really appreciate that!

[Support] Synology Docker Homebridge Terminal Instructions

Hi,
I'm stuck on the steps required for the configcreater. Both steps 4 and 5 return no result in Terminal so not sure what to do next.

Also, I wasn't able to perform this step in the readme:
Install jq via your Homebridge UI terminal or through ssh:

Synology/QNAP NAS
apk add jq

So not sure if that has anything to do with it. When I try running this in homebridge terminal or ssh terminal I get:
bash: apk: command not found

Cmd4 Config:

{
{
    "platform": "Cmd4",
    "name": "Cmd4"
}

Screenshots:

Advantage Air System:

  • Control Unit: MyPlace
  • Temperature Sensors: Yes

Homebridge Environment:

  • Node.js Version: 18.13.0
  • NPM Version:
  • Homebridge Version: 1.6.0
  • homebridge-cmd4 Version: 6.3.0
  • homebridge-cmd4-AdvantageAir Version: 3.8.0
  • Operating System: macOS / Docker / Synology NAS

[Feature Request] Turn Zone Open/Off into a Light Dimmer Switch

Describe the solution you'd like:
Currently the Zone Open/Off is bound to be a Single Switch, but what if it can be converted into a Light Dimmer Switch?
With it's On/Off as usual for the Zone Open / Close,
and the Brightness level for the Zone Percentage

/setZoneData?zone=4&userPercentSetting=95&zoneSetting=1

Describe alternatives you've considered:
However, this is just a very simple idea but I have no idea how complicate the homekit world be!

[Feature Request] Add Support for MyPlace Extras

Is your feature request related to a problem? Please describe:
This is not related to a problem, but to a larger area of MyPlace controls that currently cannot be utilised with this plug-in.

Describe the solution you'd like:
Add support for the following in MyPlace:

  • Lights
  • Motion Sensors
  • Garage Door
  • Anything else Advantage Air has chucked in there

Additional context:
This feature request issue has been created so that @uswong and I can move from private email conversations to a public forum in the hopes that other users may add their input and can watch the progress made towards a eventual beta.

Advantage Air System:

  • Control Unit: MyPlace

[Support] Cmd4 Plugin not installed

Describe Your Problem:
Getting lots of different error messages such as
getValue. Last error found Getting: "CurrentTemperature". Perhaps you should run in debug mode to find out what the problem might be.

However, I have gone back to step 9 to the "Advantage Air Shell Check" and clicked on "Check Configuration" which tells me the Cmd4 Plugin is not installed, when it is showing as installed.

Link to Logs:

Paste of Logs:

[1/27/2022, 11:43:47 PM] [Homebridge UI] Homebridge restart request received
[1/27/2022, 11:43:47 PM] [Homebridge UI] Terminal session ended.
[1/27/2022, 11:43:47 PM] [Homebridge UI] UI / Bridge settings have not changed; only restarting Homebridge process
[1/27/2022, 11:43:47 PM] [Homebridge UI] Sending SIGTERM to Homebridge
[1/27/2022, 11:43:47 PM] Got SIGTERM, shutting down Homebridge...
[1/27/2022, 11:43:52 PM] [HB Supervisor] Homebridge Process Ended. Code: 143, Signal: null
[1/27/2022, 11:43:57 PM] [HB Supervisor] Restarting Homebridge...
[1/27/2022, 11:43:57 PM] [HB Supervisor] Starting Homebridge with extra flags: -I -P /homebridge/node_modules
[1/27/2022, 11:43:58 PM] [HB Supervisor] Started Homebridge v1.4.0 with PID: 1618
[1/27/2022, 11:43:58 PM] Loaded config.json with 0 accessories and 2 platforms.
[1/27/2022, 11:43:59 PM] Loaded 2 cached accessories from cachedAccessories.
[1/27/2022, 11:43:59 PM] ---
[1/27/2022, 11:43:59 PM] [Homebridge UI] Starting terminal session
[1/27/2022, 11:44:00 PM] Loaded plugin: [email protected]
[1/27/2022, 11:44:00 PM] Registering accessory 'homebridge-cmd4.Cmd4'
[1/27/2022, 11:44:00 PM] Registering platform 'homebridge-cmd4.Cmd4'
[1/27/2022, 11:44:00 PM] ---
[1/27/2022, 11:44:00 PM] Loaded plugin: [email protected]
[1/27/2022, 11:44:00 PM] Registering platform 'homebridge-cmd4-advantageair.cmd4-AdvantageAir'
[1/27/2022, 11:44:00 PM] ---
[1/27/2022, 11:44:00 PM] Loaded plugin: [email protected]
[1/27/2022, 11:44:00 PM] Registering accessory 'homebridge-dummy.DummySwitch'
[1/27/2022, 11:44:00 PM] ---
[1/27/2022, 11:44:00 PM] Loaded plugin: [email protected]
[1/27/2022, 11:44:00 PM] Registering platform 'homebridge-config-ui-x.config'
[1/27/2022, 11:44:00 PM] ---
[1/27/2022, 11:44:00 PM] Loading 2 platforms...
[1/27/2022, 11:44:00 PM] [Config] Initializing config platform...
[1/27/2022, 11:44:00 PM] [Config] Running in Service Mode
[1/27/2022, 11:44:00 PM] [Cmd4] Initializing Cmd4 platform...
[1/27/2022, 11:44:00 PM] [Cmd4] Cmd4Platform didFinishLaunching
[1/27/2022, 11:44:00 PM] [Cmd4] Restoring existing accessory from cache: Front_Room
[1/27/2022, 11:44:02 PM] [Cmd4] Restoring existing accessory from cache: Front
Setup Payload:
X-HM://0023ISYWY3FHM
Enter this code with your HomeKit app on your iOS device to pair with Homebridge:
                       
    ┌────────────┐     
    │ 031-45-154 │     
    └────────────┘     
                       
[1/27/2022, 11:44:02 PM] Homebridge v1.4.0 (HAP v0.10.0) (Homebridge) is running on port 53037.
[1/27/2022, 11:44:42 PM] [Cmd4] *** Starting Polling
[1/27/2022, 11:44:51 PM] [Cmd4] *** All characteristics are now being polled
[1/27/2022, 11:45:04 PM] [Cmd4] More than *50* errors were encountered in a row for "Front_Room" getValue. Last error found Getting: "StatusLowBattery". Perhaps you should run in debug mode to find out what the problem might be.

Screen Shot 2022-01-27 at 11 38 45 pm

Cmd4 Config:

Screenshots:
Homebridge Cmd4 Plugin Installed

Error Cmd4 Plugin Not Installed

Advantage Air System:

  • Control Unit: MyPlace
  • Temperature Sensors: Yes

Homebridge Environment:

  • Node.js Version: v16.13.2
  • NPM Version: v8.1.2
  • Homebridge Version: 1.4.0
  • homebridge-cmd4 Version: v6.0.4
  • homebridge-cmd4-AdvantageAir Version: v3.1.0
  • Operating System: Docker (Synology NAS)

[Bug] Tested the latest build after cmd4 upgrade, however I am seeing "My_Thermostat Cannot convert value: to Float for TargetTemperature"

Describe The Bug:
After upgrading the cmd4 to the latest version, I find no issue in firing commands from Home app.
However from the log, I am always seeing "My_Thermostat Cannot convert value: to Float for TargetTemperature"
My settings is with One Constant zone and with no temp sensor.

To Reproduce:
N/A

Expected Behaviour:
There shouldn't be any temperature feedback.
Probably some field is missing as there is no variable "cannot convert value: ?? to Float for TargetTemperature"? I also found that it's coming in at an interval of 60, so it might be related to the last block of code

Link to Logs:

image

Cmd4 Config:
image

Environment:

Node.js Version v14.15.5
Npm Version v6.14.11
Homebridge Version v1.1.7
Operating System: Raspbian

[Beta] v3.3.0-beta Testing

3.3.0-beta.2 (2022-02-18)

Special thanks to the amazing uswong and ztalbot2000 for adding these new features!

Notable Changes

  • MyPlace Extras support!!!
    • Lights - both simple on/off and dimmable. Config examples can be found here.
    • Garage Door Opener. Config example can be found here.
  • MyPlace users with the extras should set "timeout" in their config to 60000.

Other Changes

  • 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.

Bug Fixes

  • Shellcheck cleared out over 60 syntax errors in the script that could have posed issues.
  • Dev unit test fixes.

Tell Me How You Use Your System? How Do You Want To Use it?

Hey @antoniokly, @lathiat, @ryanbeaton, @jmalloc,

I have been looking to improve this project and would like a little direction based on how other people use their E-Zone/MyAir at home so that it is not just based on how I currently use it. Please take in mind I am very green with this stuff and will be learning as I go, but would very much like to see what else can be done with this.

Since its creation it has come to my attention some people do not use the temperature sensors, some people use third party temperature sensors, some people have more than one constant zone, some people use different operating systems, etc. If it is not too much trouble, could I ask anyone to provide a little information (no personal details please) on their setup? Along the lines of:

  • Single storey house
  • One constant zone
  • Total 6 zones
  • Improvement suggestions, feature requests, nice to haves, etc.

Thanks everyone and sorry for tagging you all directly, this is the easiest way to gain stakeholder engagement!

[Feature Request] MyAir5 support

Is your feature request related to a problem? Please describe:
Based on the README it seems like MyAir5 is not currently supported. Just wondering if there are plans to add support?

Describe the solution you'd like:
MyAir5 support.

Describe alternatives you've considered:
N/A

Additional context:

Advantage Air System:

  • Control Unit: MyAir5
  • Temperature Sensors: Yes

'No Response' after a few minutes in homekit

Describe Your Problem:
Followed all install steps without an issue. Air con successfully appears in homekit. All seems fine for a few minutes, but then all tiles in homekit (fan speed, fan mode, etc etc) turn to "no response". If I restart homebridge it works again only to revert to 'no response' again after a few minutes. No errors appear in the homebridge terminal log.

Link to Logs:

Paste of Logs:


Cmd4 Config:

{
    "platform": "Cmd4",
    "name": "Cmd4",
    "debug": false,
    "outputConstants": false,
    "statusMsg": true,
    "timeout": 60000,
    "stateChangeResponseTime": 0,
    "constants": [
        {
            "key": "${AAIP}",
            "value": "192.168.1.22:2025"
        }
    ],
    "queueTypes": [
        {
            "queue": "AAA",
            "queueType": "WoRm2"
        }
    ],
    "accessories": [
        {
            "type": "Thermostat",
            "displayName": "Aircon",
            "currentHeatingCoolingState": "OFF",
            "targetHeatingCoolingState": "OFF",
            "currentTemperature": 24,
            "targetTemperature": 24,
            "temperatureDisplayUnits": "CELSIUS",
            "name": "Aircon",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "REMOVED",
            "queue": "AAA",
            "polling": [
                {
                    "characteristic": "currentHeatingCoolingState"
                },
                {
                    "characteristic": "targetHeatingCoolingState"
                },
                {
                    "characteristic": "currentTemperature"
                },
                {
                    "characteristic": "targetTemperature"
                }
            ],
            "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "${AAIP}",
            "linkedTypes": [
                {
                    "type": "Fan",
                    "displayName": "Aircon FanSpeed",
                    "on": "TRUE",
                    "rotationSpeed": 100,
                    "name": "Aircon FanSpeed",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "REMOVED",
                    "queue": "AAA",
                    "polling": [
                        {
                            "characteristic": "on"
                        },
                        {
                            "characteristic": "rotationSpeed"
                        }
                    ],
                    "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "${AAIP} fanSpeed"
                }
            ]
        },
        {
            "type": "Switch",
            "displayName": "Aircon Fan",
            "on": "FALSE",
            "name": "Aircon Fan",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "REMOVED",
            "queue": "AAA",
            "polling": [
                {
                    "characteristic": "on"
                }
            ],
            "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "${AAIP}",
            "linkedTypes": [
                {
                    "type": "Fan",
                    "displayName": "Aircon FanSpeed",
                    "on": "TRUE",
                    "rotationSpeed": 100,
                    "name": "Aircon FanSpeed",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "REMOVED",
                    "queue": "AAA",
                    "polling": [
                        {
                            "characteristic": "on"
                        },
                        {
                            "characteristic": "rotationSpeed"
                        }
                    ],
                    "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "${AAIP} fanSpeed"
                }
            ]
        },
        {
            "type": "Lightbulb",
            "displayName": "Aircon Timer",
            "on": "FALSE",
            "brightness": 0,
            "name": "Aircon Timer",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "REMOVED",
            "queue": "AAA",
            "polling": [
                {
                    "characteristic": "on"
                },
                {
                    "characteristic": "brightness"
                }
            ],
            "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "timer ${AAIP}"
        },
        {
            "type": "Switch",
            "displayName": "Master Zone",
            "on": "FALSE",
            "name": "Master Zone",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "REMOVED",
            "queue": "AAA",
            "polling": true,
            "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "z01 ${AAIP}"
        },
        {
            "type": "Switch",
            "displayName": "Bed 2 Zone",
            "on": "FALSE",
            "name": "Bed 2 Zone",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "REMOVED",
            "queue": "AAA",
            "polling": true,
            "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "z02 ${AAIP}"
        },
        {
            "type": "Switch",
            "displayName": "Bed 3 Zone",
            "on": "FALSE",
            "name": "Bed 3 Zone",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "REMOVED",
            "queue": "AAA",
            "polling": true,
            "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "z03 ${AAIP}"
        },
        {
            "type": "Switch",
            "displayName": "Bed 4 Zone",
            "on": "FALSE",
            "name": "Bed 4 Zone",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "REMOVED",
            "queue": "AAA",
            "polling": true,
            "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "z04 ${AAIP}"
        },
        {
            "type": "Switch",
            "displayName": "Lounge Zone",
            "on": "FALSE",
            "name": "Lounge Zone",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "REMOVED",
            "queue": "AAA",
            "polling": true,
            "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "z05 ${AAIP}"
        },
        {
            "type": "TemperatureSensor",
            "subType": "TempSensor1",
            "displayName": "Master Temperature",
            "currentTemperature": 25,
            "statusLowBattery": "BATTERY_LEVEL_LOW",
            "name": "Master Temperature",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "REMOVED",
            "queue": "AAA",
            "polling": [
                {
                    "characteristic": "currentTemperature"
                },
                {
                    "characteristic": "statusLowBattery"
                }
            ],
            "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "z01 ${AAIP}"
        },
        {
            "type": "TemperatureSensor",
            "subType": "TempSensor2",
            "displayName": "Bed 2 Temperature",
            "currentTemperature": 25,
            "statusLowBattery": "BATTERY_LEVEL_LOW",
            "name": "Bed 2 Temperature",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "REMOVED",
            "queue": "AAA",
            "polling": [
                {
                    "characteristic": "currentTemperature"
                },
                {
                    "characteristic": "statusLowBattery"
                }
            ],
            "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "z02 ${AAIP}"
        },
        {
            "type": "TemperatureSensor",
            "subType": "TempSensor3",
            "displayName": "Bed 3 Temperature",
            "currentTemperature": 25,
            "statusLowBattery": "BATTERY_LEVEL_LOW",
            "name": "Bed 3 Temperature",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "REMOVED",
            "queue": "AAA",
            "polling": [
                {
                    "characteristic": "currentTemperature"
                },
                {
                    "characteristic": "statusLowBattery"
                }
            ],
            "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "z03 ${AAIP}"
        },
        {
            "type": "TemperatureSensor",
            "subType": "TempSensor4",
            "displayName": "Bed 4 Temperature",
            "currentTemperature": 25,
            "statusLowBattery": "BATTERY_LEVEL_LOW",
            "name": "Bed 4 Temperature",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "REMOVED",
            "queue": "AAA",
            "polling": [
                {
                    "characteristic": "currentTemperature"
                },
                {
                    "characteristic": "statusLowBattery"
                }
            ],
            "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "z04 ${AAIP}"
        },
        {
            "type": "TemperatureSensor",
            "subType": "TempSensor5",
            "displayName": "Lounge Temperature",
            "currentTemperature": 25,
            "statusLowBattery": "BATTERY_LEVEL_LOW",
            "name": "Lounge Temperature",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "REMOVED",
            "queue": "AAA",
            "polling": [
                {
                    "characteristic": "currentTemperature"
                },
                {
                    "characteristic": "statusLowBattery"
                }
            ],
            "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "z05 ${AAIP}"
        },
        {
            "type": "Switch",
            "displayName": "myZone Master",
            "on": "FALSE",
            "name": "myZone Master",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "REMOVED",
            "queue": "AAA",
            "polling": [
                {
                    "characteristic": "on"
                }
            ],
            "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "myZone=1 ${AAIP}"
        },
        {
            "type": "Switch",
            "displayName": "myZone Bed 2",
            "on": "FALSE",
            "name": "myZone Bed 2",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "REMOVED",
            "queue": "AAA",
            "polling": [
                {
                    "characteristic": "on"
                }
            ],
            "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "myZone=2 ${AAIP}"
        },
        {
            "type": "Switch",
            "displayName": "myZone Bed 3",
            "on": "FALSE",
            "name": "myZone Bed 3",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "REMOVED",
            "queue": "AAA",
            "polling": [
                {
                    "characteristic": "on"
                }
            ],
            "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "myZone=3 ${AAIP}"
        },
        {
            "type": "Switch",
            "displayName": "myZone Bed 4",
            "on": "FALSE",
            "name": "myZone Bed 4",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "REMOVED",
            "queue": "AAA",
            "polling": [
                {
                    "characteristic": "on"
                }
            ],
            "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "myZone=4 ${AAIP}"
        },
        {
            "type": "Switch",
            "displayName": "myZone Lounge",
            "on": "FALSE",
            "name": "myZone Lounge",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "REMOVED",
            "queue": "AAA",
            "polling": [
                {
                    "characteristic": "on"
                }
            ],
            "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "myZone=5 ${AAIP}"
        }
    ]
}

Screenshots:

IMG_3395

Advantage Air System:

  • Control Unit: MyPlace
  • Temperature Sensors: Yes

Homebridge Environment:

  • Node.js Version: v20.9.0

  • NPM Version: 10.1.0

  • Homebridge Version: 1.7.0

  • homebridge-cmd4 Version: v7.0.3

  • homebridge-cmd4-AdvantageAir Version: v3.11.0

  • Operating System: macOS

[Bug] Zones with single quotes in names throw errors

Sorry, I don't have all the details for a good bug report, but just wanted to flag that I found that when the named zones on my MyAir controller had single quotes in their names, eg Michael's Room, something along the line was having issues with those zones specifically, as they would work sometimes, but more often show as Not Responding in Homekit, and have errors like this in Homebridge:

[12/6/2023, 7:27:48 PM] [Cmd4] Setting Michael's Room Zone RotationSpeed 5
[12/6/2023, 7:27:48 PM] [Cmd4] *1* error(s) were encountered for "Michael's Room Zone" getValue. Last error found Getting: "RotationSpeed". Perhaps you should run in debug mode to find out what the problem might be.
[12/6/2023, 7:27:58 PM] [Cmd4] Setting Michael's Room Zone On 1
[12/6/2023, 7:27:58 PM] [Cmd4] *1* error(s) were encountered for "Michael's Room Zone" getValue. Last error found Getting: "On". Perhaps you should run in debug mode to find out what the problem might be.
[12/6/2023, 7:28:08 PM] [Cmd4] Setting Michael's Room Zone RotationSpeed 74
[12/6/2023, 7:28:08 PM] [Cmd4] *1* error(s) were encountered for "Michael's Room Zone" getValue. Last error found Getting: "RotationSpeed". Perhaps you should run in debug mode to find out what the problem might be.

When I noticed that happening, I removed the quotes from my zone names, and recreated my config, and all seems fine so far. Maybe some strings are not being escaped properly, either in this plugin, or in Cmd4? I can try and provide more detail if it helps, but just wanted to flag it in case anyone else ran into similar issues.

[Bug] homebridge-cmd4 v3.0.x Breaks E-Zone/MyAir in Homekit

Describe The Bug:
Currently upgrading homebridge-cmd4 from v2.4.2 to v3.0.x seems to break the 'set' commands for these shell scripts. v3.0.7 fixed an issue where accessories with the characteristic On (fan and switches) would show an inverted status to what was in the E-Zone/MyAir app; this has now been fixed but a lingering issue with setting commands (like set to cool or turn on switch) are still not working. I am trying to help the developer narrow the issue down currently. You can try and help us with the issue here.

To Reproduce:
Installing homebridge-cmd4 v3.0.x. Issue is resolved when reverting back to v2.4.2; it is recommended you stay on this version until the issue is resolved.

Additional Information:
Once homebridge-cmd4 v3.x.x is considered stable, I will update this issue and provide the new config.json structure that will be required. The cache of your previous accessories will have to wiped (this can be set in the new config structure) and rediscovered for the new changes of homebridge-cmd4 to take affect.

[Support] Windows Installation Instructions

Describe Your Problem:

I have had a few users contact me with issues for installing on both macOS and Windows Homebridge servers. I personally use a Raspberry Pi and have based my README installation instructions off that. I have recently installed Homebridge on my wife's MacBook Air and just like a user who reached out to me; something is missing to get it working like on my Raspberry Pi. Another user has also reached out to me having troubles installing this on Windows; I have installed Homebridge on my laptop and also have faced issues getting it to work (I am a Windows man and got further with the MacBook than I did on my laptop!).

In my eyes this is not acceptable and the installation process should be easy to follow; I want to update my README for macOS and Windows users as well. While I try to nut this out myself, I thought I would reach out to the users of this repo and see if anyone is successfully running this on macOS or Windows based Homebridge. And if they would be willing to help out by explaining to me the differences they had in the installation process versus what I have put in the README. I would be seriously grateful for any help or tips. Thanks everyone!

[Support] Error: Polling for: "brightness"

Hi,

Followed the instructions to upgrade to the Homebridge UI version. I used the NoSensors Config sample version since I am pretty sure I don't have any. I now get the following in the Homebridge Logs:

[12/20/2021, 4:21:50 PM] Homebridge v1.3.8 (HAP v0.9.7) (Cmd4) is running on port 58962.

/usr/local/lib/node_modules/homebridge-cmd4/Cmd4Accessory.js:425
pollingConfig.forEach( ( jsonPollingConfig ) =>
^
Error: Polling for: "brightness" requested, but characteristic is not in your config.json file for: "Cinema".
at /usr/local/lib/node_modules/homebridge-cmd4/Cmd4Accessory.js:490:28
at Array.forEach ()
at Cmd4Accessory.checkPollingConfigForUnsetCharacteristics (/usr/local/lib/node_modules/homebridge-cmd4/Cmd4Accessory.js:425:21)
at new Cmd4Accessory (/usr/local/lib/node_modules/homebridge-cmd4/Cmd4Accessory.js:276:12)
at /usr/local/lib/node_modules/homebridge-cmd4/Cmd4Platform.js:499:25
at Array.forEach ()
at Cmd4Platform.discoverDevices (/usr/local/lib/node_modules/homebridge-cmd4/Cmd4Platform.js:425:58)
at HomebridgeAPI. (/usr/local/lib/node_modules/homebridge-cmd4/Cmd4Platform.js:121:15)
at HomebridgeAPI.emit (node:events:390:28)
at HomebridgeAPI.signalFinished (/usr/local/lib/node_modules/homebridge/src/api.ts:275:10)
[12/20/2021, 4:21:50 PM] [Cmd4] Child bridge process ended

The Shell check completed with a 'Passed'

[Beta] v3.2.0-beta Testing

3.2.0-beta.0 (2022-01-23)

Special thanks to the amazing @uswong for adding these new features! Thank you to all who participated in the beta testing!

Notable Changes

  • Zone closing check to ensure that at least one zone is open at all time 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 your config.json. The script determines if you have sensors or not.
  • 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.

Other Changes

  • Dev dependancy nanoid bumped to v3.1.31.

[Bug] v3.10.0 - Config with new options failure

Log when HomeBridge restarts after upgrading the plugin and running config creator with " Use "Fan" accessory with integrated temperature and myZone switch (recommended)" selected.

When I re-run config creator with Use "Lightbulb/Switch" * accessory with standalone temperature and myZone switch (legacy)" it operates with no issues.

I have been running plugin since Feb 2023 and have made each update when it is released.

[08/08/2023, 18:34:37] Error: Polling for: "rotationSpeed" requested, but characteristic is not in your config.json file for: "Living Zone".
    at /var/lib/homebridge/node_modules/homebridge-cmd4/Cmd4Accessory.js:500:28
    at Array.forEach (<anonymous>)
    at Cmd4Accessory.checkPollingConfigForUnsetCharacteristics (/var/lib/homebridge/node_modules/homebridge-cmd4/Cmd4Accessory.js:435:21)
    at new Cmd4Accessory (/var/lib/homebridge/node_modules/homebridge-cmd4/Cmd4Accessory.js:286:12)
    at /var/lib/homebridge/node_modules/homebridge-cmd4/Cmd4Platform.js:444:25
    at Array.forEach (<anonymous>)
    at Cmd4Platform.discoverDevices (/var/lib/homebridge/node_modules/homebridge-cmd4/Cmd4Platform.js:370:58)
    at HomebridgeAPI.<anonymous> (/var/lib/homebridge/node_modules/homebridge-cmd4/Cmd4Platform.js:121:15)
    at HomebridgeAPI.emit (node:events:526:35)
    at HomebridgeAPI.signalFinished (/var/lib/homebridge/node_modules/homebridge/src/api.ts:275:10)
[08/08/2023, 18:34:38] Got SIGTERM, shutting down Homebridge...
[08/08/2023, 18:34:38] AssertionError [ERR_ASSERTION]: Cannot generate setupURI on an accessory that isn't published yet!
    at Bridge.Accessory.setupURI (/var/lib/homebridge/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Accessory.ts:994:11)
    at Server.setServerStatus (/var/lib/homebridge/node_modules/homebridge/src/server.ts:155:45)
    at Server.teardown (/var/lib/homebridge/node_modules/homebridge/src/server.ts:199:10)
    at signalHandler (/var/lib/homebridge/node_modules/homebridge/src/cli.ts:93:12)
    at process.emit (node:events:514:28)
    at process.emit (/var/lib/homebridge/node_modules/homebridge/node_modules/source-map-support/source-map-support.js:516:21)

Cmd4 Config:

{
    "platform": "Cmd4",
    "name": "Cmd4",
    "debug": false,
    "outputConstants": false,
    "statusMsg": true,
    "timeout": 60000,
    "stateChangeResponseTime": 0,
    "constants": [
        {
            "key": "${AAIP}",
            "value": "192.168.8.3:2025"
        }
    ],
    "queueTypes": [
        {
            "queue": "AAA",
            "queueType": "WoRm2"
        }
    ],
    "accessories": [
        {
            "type": "Thermostat",
            "displayName": "MyAir",
            "currentHeatingCoolingState": "OFF",
            "targetHeatingCoolingState": "OFF",
            "currentTemperature": 24,
            "targetTemperature": 24,
            "temperatureDisplayUnits": "CELSIUS",
            "name": "MyAir",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "xx",
            "queue": "AAA",
            "polling": [
                {
                    "characteristic": "currentHeatingCoolingState"
                },
                {
                    "characteristic": "targetHeatingCoolingState"
                },
                {
                    "characteristic": "currentTemperature"
                },
                {
                    "characteristic": "targetTemperature"
                }
            ],
            "state_cmd": "'/var/lib/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "${AAIP}",
            "linkedTypes": [
                {
                    "type": "Fan",
                    "displayName": "MyAir FanSpeed",
                    "on": "TRUE",
                    "rotationSpeed": 100,
                    "name": "MyAir FanSpeed",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "xx",
                    "queue": "AAA",
                    "polling": [
                        {
                            "characteristic": "on"
                        },
                        {
                            "characteristic": "rotationSpeed"
                        }
                    ],
                    "state_cmd": "'/var/lib/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "${AAIP} fanSpeed"
                }
            ]
        },
        {
            "type": "Fan",
            "displayName": "MyAir Fan",
            "on": "FALSE",
            "rotationSpeed": 100,
            "name": "MyAir Fan",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "xx",
            "queue": "AAA",
            "polling": [
                {
                    "characteristic": "on"
                },
                {
                    "characteristic": "rotationSpeed"
                }
            ],
            "state_cmd": "'/var/lib/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "${AAIP}"
        },
        {
            "type": "Lightbulb",
            "displayName": "MyAir Timer",
            "on": "FALSE",
            "brightness": 0,
            "name": "MyAir Timer",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "xx",
            "queue": "AAA",
            "polling": [
                {
                    "characteristic": "on"
                },
                {
                    "characteristic": "brightness"
                }
            ],
            "state_cmd": "'/var/lib/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "timer ${AAIP}"
        },
        {
            "type": "Fanv2",
            "displayName": "Living Zone",
            "active": 0,
            "rotationSpeed": 100,
            "swingMode": 0,
            "name": "Living Zone",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "xx",
            "queue": "AAA",
            "polling": [
                {
                    "characteristic": "active"
                },
                {
                    "characteristic": "rotationSpeed"
                },
                {
                    "characteristic": "swingMode"
                }
            ],
            "state_cmd": "'/var/lib/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "z01 ${AAIP}",
            "linkedTypes": [
                {
                    "type": "TemperatureSensor",
                    "displayName": "Living Temperature",
                    "currentTemperature": 25,
                    "statusLowBattery": "BATTERY_LEVEL_LOW",
                    "name": "Living Temperature",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "xx",
                    "queue": "AAA",
                    "polling": [
                        {
                            "characteristic": "currentTemperature"
                        },
                        {
                            "characteristic": "statusLowBattery"
                        }
                    ],
                    "state_cmd": "'/var/lib/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z01 ${AAIP}"
                }
            ]
        },
        {
            "type": "Fanv2",
            "displayName": "Lounge Zone",
            "active": 0,
            "rotationSpeed": 100,
            "swingMode": 0,
            "name": "Lounge Zone",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "xx",
            "queue": "AAA",
            "polling": [
                {
                    "characteristic": "active"
                },
                {
                    "characteristic": "rotationSpeed"
                },
                {
                    "characteristic": "swingMode"
                }
            ],
            "state_cmd": "'/var/lib/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "z02 ${AAIP}",
            "linkedTypes": [
                {
                    "type": "TemperatureSensor",
                    "displayName": "Lounge Temperature",
                    "currentTemperature": 25,
                    "statusLowBattery": "BATTERY_LEVEL_LOW",
                    "name": "Lounge Temperature",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "xx",
                    "queue": "AAA",
                    "polling": [
                        {
                            "characteristic": "currentTemperature"
                        },
                        {
                            "characteristic": "statusLowBattery"
                        }
                    ],
                    "state_cmd": "'/var/lib/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z02 ${AAIP}"
                }
            ]
        },
        {
            "type": "Fanv2",
            "displayName": "Master Zone",
            "active": 0,
            "rotationSpeed": 100,
            "swingMode": 0,
            "name": "Master Zone",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "xx",
            "queue": "AAA",
            "polling": [
                {
                    "characteristic": "active"
                },
                {
                    "characteristic": "rotationSpeed"
                },
                {
                    "characteristic": "swingMode"
                }
            ],
            "state_cmd": "'/var/lib/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "z03 ${AAIP}",
            "linkedTypes": [
                {
                    "type": "TemperatureSensor",
                    "displayName": "Master Temperature",
                    "currentTemperature": 25,
                    "statusLowBattery": "BATTERY_LEVEL_LOW",
                    "name": "Master Temperature",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "xx",
                    "queue": "AAA",
                    "polling": [
                        {
                            "characteristic": "currentTemperature"
                        },
                        {
                            "characteristic": "statusLowBattery"
                        }
                    ],
                    "state_cmd": "'/var/lib/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z03 ${AAIP}"
                }
            ]
        },
        {
            "type": "Fanv2",
            "displayName": "Office Zone",
            "active": 0,
            "rotationSpeed": 100,
            "swingMode": 0,
            "name": "Office Zone",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "xx",
            "queue": "AAA",
            "polling": [
                {
                    "characteristic": "active"
                },
                {
                    "characteristic": "rotationSpeed"
                },
                {
                    "characteristic": "swingMode"
                }
            ],
            "state_cmd": "'/var/lib/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "z04 ${AAIP}",
            "linkedTypes": [
                {
                    "type": "TemperatureSensor",
                    "displayName": "Office Temperature",
                    "currentTemperature": 25,
                    "statusLowBattery": "BATTERY_LEVEL_LOW",
                    "name": "Office Temperature",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "xx",
                    "queue": "AAA",
                    "polling": [
                        {
                            "characteristic": "currentTemperature"
                        },
                        {
                            "characteristic": "statusLowBattery"
                        }
                    ],
                    "state_cmd": "'/var/lib/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z04 ${AAIP}"
                }
            ]
        },
        {
            "type": "Fanv2",
            "displayName": "Spare Room Zone",
            "active": 0,
            "rotationSpeed": 100,
            "swingMode": 0,
            "name": "Spare Room Zone",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "xx",
            "queue": "AAA",
            "polling": [
                {
                    "characteristic": "active"
                },
                {
                    "characteristic": "rotationSpeed"
                },
                {
                    "characteristic": "swingMode"
                }
            ],
            "state_cmd": "'/var/lib/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "z05 ${AAIP}",
            "linkedTypes": [
                {
                    "type": "TemperatureSensor",
                    "displayName": "Spare Room Temperature",
                    "currentTemperature": 25,
                    "statusLowBattery": "BATTERY_LEVEL_LOW",
                    "name": "Spare Room Temperature",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "PIC8GS10",
                    "queue": "AAA",
                    "polling": [
                        {
                            "characteristic": "currentTemperature"
                        },
                        {
                            "characteristic": "statusLowBattery"
                        }
                    ],
                    "state_cmd": "'/var/lib/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z05 ${AAIP}"
                }
            ]
        },
        {
            "type": "Fanv2",
            "displayName": "Back Room Zone",
            "active": 0,
            "rotationSpeed": 100,
            "swingMode": 0,
            "name": "Back Room Zone",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "xx",
            "queue": "AAA",
            "polling": [
                {
                    "characteristic": "active"
                },
                {
                    "characteristic": "rotationSpeed"
                },
                {
                    "characteristic": "swingMode"
                }
            ],
            "state_cmd": "'/var/lib/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "z06 ${AAIP}",
            "linkedTypes": [
                {
                    "type": "TemperatureSensor",
                    "displayName": "Back Room Temperature",
                    "currentTemperature": 25,
                    "statusLowBattery": "BATTERY_LEVEL_LOW",
                    "name": "Back Room Temperature",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "xx",
                    "queue": "AAA",
                    "polling": [
                        {
                            "characteristic": "currentTemperature"
                        },
                        {
                            "characteristic": "statusLowBattery"
                        }
                    ],
                    "state_cmd": "'/var/lib/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z06 ${AAIP}"
                }
            ]
        },
        {
            "type": "Fan",
            "displayName": "Bathroom Zone",
            "on": "FALSE",
            "rotationSpeed": 100,
            "name": "Bathroom Zone",
            "manufacturer": "Advantage Air Australia",
            "model": "MyAir5",
            "serialNumber": "xx",
            "queue": "AAA",
            "polling": [
                {
                    "characteristic": "on"
                },
                {
                    "characteristic": "rotationSpeed"
                }
            ],
            "state_cmd": "'/var/lib/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "z07 ${AAIP}"
        }
    ]
}

Screenshots:

Log extract at the the top shows the issue.

Advantage Air System:

  • Control Unit: MyPlace
  • Temperature Sensors: Yes

Homebridge Environment:

  • Node.js Version: v18.17.0
  • NPM Version: 9.6.7
  • Homebridge Version: 1.6.1
  • homebridge-cmd4 Version: homebridge-cmd4 v7.0.1
  • homebridge-cmd4-AdvantageAir Version: homebridge-cmd4-advantageair v3.10.0
  • Operating System: Raspbian

[Support] Cannot get homebridge-cmd4-AdvantageAir to communicate with Aircon

I have successfully set up and run the homebridge-cmd4-AdvantageAir plugin in the past on my Synology NAS. Unfortunately it crashed and I have had to reinstall everything. I can successfully install the plugin and run both the Config Creator and Check Configuration without any problems.

It successfully creates all of my rooms and finds the temperature sensors as well. Unfortunately I can see that it is not correctly communicating with any of it though as all of the temperatures read 25 Degrees Celsius which is not the case. Also if I was to select a room switch and turn it on it does not do so and remains off in the MyPlace app. If I try to select the same room in the MyPlace app it does not show it as on in HomeBridge.

Please see the below configuration and logs. Any help would be appreciated. Thanks.

Paste of Logs:

[5/14/2023, 1:24:24 PM] [Cmd4] getCachedValue Name for: Aircon returned (CACHED) value: Aircon
[5/14/2023, 1:24:24 PM] [Cmd4] getCachedValue TemperatureDisplayUnits for: Aircon returned (CACHED) value: 0
[5/14/2023, 1:24:24 PM] [Cmd4] getCachedValue Name for: Aircon FanSpeed returned (CACHED) value: Aircon FanSpeed
[5/14/2023, 1:24:24 PM] [Cmd4] getCachedValue Name for: Aircon Fan returned (CACHED) value: Aircon Fan
[5/14/2023, 1:24:24 PM] [Cmd4] getCachedValue Name for: Aircon Timer returned (CACHED) value: Aircon Timer
[5/14/2023, 1:24:24 PM] [Cmd4] getCachedValue Name for: Master Suite Zone returned (CACHED) value: Master Suite Zone
[5/14/2023, 1:24:24 PM] [Cmd4] getCachedValue Name for: Ethan’s Room Zone returned (CACHED) value: Ethan’s Room Zone
[5/14/2023, 1:24:24 PM] [Cmd4] getCachedValue Name for: Bedroom 3 Zone returned (CACHED) value: Bedroom 3 Zone
[5/14/2023, 1:24:24 PM] [Cmd4] getCachedValue Name for: Emma's Room Zone returned (CACHED) value: Emma's Room Zone
[5/14/2023, 1:24:24 PM] [Cmd4] getCachedValue Name for: Guest Room Zone returned (CACHED) value: Guest Room Zone
[5/14/2023, 1:24:24 PM] [Cmd4] getCachedValue Name for: Upper Living Zone returned (CACHED) value: Upper Living Zone
[5/14/2023, 1:24:24 PM] [Cmd4] getCachedValue Name for: Study Zone returned (CACHED) value: Study Zone
[5/14/2023, 1:24:24 PM] [Cmd4] getCachedValue Name for: Cinema Zone returned (CACHED) value: Cinema Zone
[5/14/2023, 1:24:24 PM] [Cmd4] getCachedValue Name for: Lower Living Zone returned (CACHED) value: Lower Living Zone
[5/14/2023, 1:24:24 PM] [Cmd4] getCachedValue Name for: Master Suite Temperature returned (CACHED) value: Master Suite Temperature
[5/14/2023, 1:24:24 PM] [Cmd4] getCachedValue Name for: Ethan’s Room Temperature returned (CACHED) value: Ethan’s Room Temperature
[5/14/2023, 1:24:24 PM] [Cmd4] getCachedValue Name for: Bedroom 3 Temperature returned (CACHED) value: Bedroom 3 Temperature
[5/14/2023, 1:24:24 PM] [Cmd4] getCachedValue Name for: Emma's Room Temperature returned (CACHED) value: Emma's Room Temperature
[5/14/2023, 1:24:24 PM] [Cmd4] getCachedValue Name for: Guest Room Temperature returned (CACHED) value: Guest Room Temperature
[5/14/2023, 1:24:24 PM] [Cmd4] getCachedValue Name for: Upper Living Temperature returned (CACHED) value: Upper Living Temperature
[5/14/2023, 1:24:24 PM] [Cmd4] getCachedValue Name for: Study Temperature returned (CACHED) value: Study Temperature
[5/14/2023, 1:24:24 PM] [Cmd4] getCachedValue Name for: Cinema Temperature returned (CACHED) value: Cinema Temperature
[5/14/2023, 1:24:24 PM] [Cmd4] getCachedValue Name for: Lower Living Temperature returned (CACHED) value: Lower Living Temperature
[5/14/2023, 1:24:24 PM] [Cmd4] getCachedValue TemperatureDisplayUnits for: Aircon returned (CACHED) value: 0
[5/14/2023, 1:24:27 PM] [Cmd4] getCachedValue TemperatureDisplayUnits for: Aircon returned (CACHED) value: 0
[5/14/2023, 1:24:27 PM] [Cmd4] Processing high priority queue "Set" entry: 106 length: 0
[5/14/2023, 1:24:27 PM] [Cmd4] Setting Master Suite Zone On 1
[5/14/2023, 1:24:27 PM] [Cmd4] setValue: accTypeEnumIndex:( 106 )-"On" function for: Master Suite Zone 1  cmd: '/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh' Set 'Master Suite Zone' 'On' '1' z01 192.168.0.228-debug timeout: 60000
[5/14/2023, 1:24:37 PM] [Cmd4] setValue: On function for Master Suite Zone streamed to stderr: cat: /tmp/AA-228/myAirData.txt: No such file or directory
cat: /tmp/AA-228/myAirData.txt: No such file or directory
cat: /tmp/AA-228/myAirData.txt: No such file or directory
cat: /tmp/AA-228/myAirData.txt: No such file or directory
cat: /tmp/AA-228/myAirData.txt: No such file or directory

[5/14/2023, 1:24:37 PM] [Cmd4] setValue On function failed for Master Suite Zone cmd: '/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh' Set 'Master Suite Zone' 'On' '1' z01 192.168.0.228-debug Failed.  Error: Command failed: '/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh' Set 'Master Suite Zone' 'On' '1' z01 192.168.0.228-debug
cat: /tmp/AA-228/myAirData.txt: No such file or directory
cat: /tmp/AA-228/myAirData.txt: No such file or directory
cat: /tmp/AA-228/myAirData.txt: No such file or directory
cat: /tmp/AA-228/myAirData.txt: No such file or directory
cat: /tmp/AA-228/myAirData.txt: No such file or directory

[5/14/2023, 1:24:39 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:39 PM] [Cmd4] Scheduling Poll of index: 46 characteristic: CurrentTemperature for: Study Temperature timeout: 60000 interval: 60000
[5/14/2023, 1:24:39 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:39 PM] [Cmd4] Scheduling Poll of index: 106 characteristic: On for: Cinema Zone timeout: 60000 interval: 60000
[5/14/2023, 1:24:39 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:39 PM] [Cmd4] Scheduling Poll of index: 46 characteristic: CurrentTemperature for: Aircon timeout: 60000 interval: 60000
[5/14/2023, 1:24:40 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:40 PM] [Cmd4] Scheduling Poll of index: 39 characteristic: CurrentHeatingCoolingState for: Aircon timeout: 60000 interval: 60000
[5/14/2023, 1:24:40 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:40 PM] [Cmd4] Scheduling Poll of index: 106 characteristic: On for: Guest Room Zone timeout: 60000 interval: 60000
[5/14/2023, 1:24:41 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:41 PM] [Cmd4] Scheduling Poll of index: 106 characteristic: On for: Aircon FanSpeed timeout: 60000 interval: 60000
[5/14/2023, 1:24:41 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:41 PM] [Cmd4] Scheduling Poll of index: 166 characteristic: StatusLowBattery for: Cinema Temperature timeout: 60000 interval: 60000
[5/14/2023, 1:24:42 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:42 PM] [Cmd4] Scheduling Poll of index: 166 characteristic: StatusLowBattery for: Study Temperature timeout: 60000 interval: 60000
[5/14/2023, 1:24:42 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:42 PM] [Cmd4] Scheduling Poll of index: 106 characteristic: On for: Lower Living Zone timeout: 60000 interval: 60000
[5/14/2023, 1:24:42 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:42 PM] [Cmd4] Scheduling Poll of index: 46 characteristic: CurrentTemperature for: Emma's Room Temperature timeout: 60000 interval: 60000
[5/14/2023, 1:24:43 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:43 PM] [Cmd4] Scheduling Poll of index: 106 characteristic: On for: Upper Living Zone timeout: 60000 interval: 60000
[5/14/2023, 1:24:43 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:43 PM] [Cmd4] Scheduling Poll of index: 189 characteristic: TargetHeatingCoolingState for: Aircon timeout: 60000 interval: 60000
[5/14/2023, 1:24:43 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:43 PM] [Cmd4] Scheduling Poll of index: 46 characteristic: CurrentTemperature for: Bedroom 3 Temperature timeout: 60000 interval: 60000
[5/14/2023, 1:24:43 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:43 PM] [Cmd4] Scheduling Poll of index: 140 characteristic: RotationSpeed for: Aircon Fan timeout: 60000 interval: 60000
[5/14/2023, 1:24:44 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:44 PM] [Cmd4] Scheduling Poll of index: 140 characteristic: RotationSpeed for: Aircon FanSpeed timeout: 60000 interval: 60000
[5/14/2023, 1:24:44 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:44 PM] [Cmd4] Scheduling Poll of index: 46 characteristic: CurrentTemperature for: Ethan’s Room Temperature timeout: 60000 interval: 60000
[5/14/2023, 1:24:45 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:45 PM] [Cmd4] Scheduling Poll of index: 46 characteristic: CurrentTemperature for: Master Suite Temperature timeout: 60000 interval: 60000
[5/14/2023, 1:24:45 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:45 PM] [Cmd4] Scheduling Poll of index: 166 characteristic: StatusLowBattery for: Emma's Room Temperature timeout: 60000 interval: 60000
[5/14/2023, 1:24:46 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:46 PM] [Cmd4] Scheduling Poll of index: 106 characteristic: On for: Study Zone timeout: 60000 interval: 60000
[5/14/2023, 1:24:46 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:46 PM] [Cmd4] Scheduling Poll of index: 166 characteristic: StatusLowBattery for: Bedroom 3 Temperature timeout: 60000 interval: 60000
[5/14/2023, 1:24:47 PM] [Cmd4] Processing high priority queue "Set" entry: 106 length: 0
[5/14/2023, 1:24:47 PM] [Cmd4] Setting Master Suite Zone On 1
[5/14/2023, 1:24:47 PM] [Cmd4] setValue: accTypeEnumIndex:( 106 )-"On" function for: Master Suite Zone 1  cmd: '/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh' Set 'Master Suite Zone' 'On' '1' z01 192.168.0.228-debug timeout: 60000
[5/14/2023, 1:24:47 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:47 PM] [Cmd4] Scheduling Poll of index: 46 characteristic: CurrentTemperature for: Lower Living Temperature timeout: 60000 interval: 60000
[5/14/2023, 1:24:47 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:47 PM] [Cmd4] Scheduling Poll of index: 166 characteristic: StatusLowBattery for: Ethan’s Room Temperature timeout: 60000 interval: 60000
[5/14/2023, 1:24:48 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:48 PM] [Cmd4] Scheduling Poll of index: 196 characteristic: TargetTemperature for: Aircon timeout: 60000 interval: 60000
[5/14/2023, 1:24:48 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:48 PM] [Cmd4] Scheduling Poll of index: 46 characteristic: CurrentTemperature for: Cinema Temperature timeout: 60000 interval: 60000
[5/14/2023, 1:24:48 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:48 PM] [Cmd4] Scheduling Poll of index: 166 characteristic: StatusLowBattery for: Master Suite Temperature timeout: 60000 interval: 60000
[5/14/2023, 1:24:57 PM] [Cmd4] setValue: On function for Master Suite Zone streamed to stderr: cat: /tmp/AA-228/myAirData.txt: No such file or directory
cat: /tmp/AA-228/myAirData.txt: No such file or directory
cat: /tmp/AA-228/myAirData.txt: No such file or directory
cat: /tmp/AA-228/myAirData.txt: No such file or directory
cat: /tmp/AA-228/myAirData.txt: No such file or directory

[5/14/2023, 1:24:57 PM] [Cmd4] setValue On function failed for Master Suite Zone cmd: '/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh' Set 'Master Suite Zone' 'On' '1' z01 192.168.0.228-debug Failed.  Error: Command failed: '/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh' Set 'Master Suite Zone' 'On' '1' z01 192.168.0.228-debug
cat: /tmp/AA-228/myAirData.txt: No such file or directory
cat: /tmp/AA-228/myAirData.txt: No such file or directory
cat: /tmp/AA-228/myAirData.txt: No such file or directory
cat: /tmp/AA-228/myAirData.txt: No such file or directory
cat: /tmp/AA-228/myAirData.txt: No such file or directory

[5/14/2023, 1:24:58 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:58 PM] [Cmd4] Scheduling Poll of index: 106 characteristic: On for: Emma's Room Zone timeout: 60000 interval: 60000
[5/14/2023, 1:24:58 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:58 PM] [Cmd4] Scheduling Poll of index: 106 characteristic: On for: Master Suite Zone timeout: 60000 interval: 60000
[5/14/2023, 1:24:59 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:24:59 PM] [Cmd4] Scheduling Poll of index: 106 characteristic: On for: Aircon Timer timeout: 60000 interval: 60000
[5/14/2023, 1:25:00 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:25:00 PM] [Cmd4] Scheduling Poll of index: 106 characteristic: On for: Aircon Fan timeout: 60000 interval: 60000
[5/14/2023, 1:25:00 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:25:00 PM] [Cmd4] Scheduling Poll of index: 166 characteristic: StatusLowBattery for: Lower Living Temperature timeout: 60000 interval: 60000
[5/14/2023, 1:25:01 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:25:01 PM] [Cmd4] Scheduling Poll of index: 46 characteristic: CurrentTemperature for: Upper Living Temperature timeout: 60000 interval: 60000
[5/14/2023, 1:25:01 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:25:01 PM] [Cmd4] Scheduling Poll of index: 46 characteristic: CurrentTemperature for: Guest Room Temperature timeout: 60000 interval: 60000
[5/14/2023, 1:25:01 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:25:01 PM] [Cmd4] Scheduling Poll of index: 106 characteristic: On for: Ethan’s Room Zone timeout: 60000 interval: 60000
[5/14/2023, 1:25:02 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:25:02 PM] [Cmd4] Scheduling Poll of index: 13 characteristic: Brightness for: Aircon Timer timeout: 60000 interval: 60000
[5/14/2023, 1:25:03 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:25:03 PM] [Cmd4] Scheduling Poll of index: 166 characteristic: StatusLowBattery for: Upper Living Temperature timeout: 60000 interval: 60000
[5/14/2023, 1:25:04 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:25:04 PM] [Cmd4] Scheduling Poll of index: 166 characteristic: StatusLowBattery for: Guest Room Temperature timeout: 60000 interval: 60000
[5/14/2023, 1:25:04 PM] [Cmd4] processsQueue returned false
[5/14/2023, 1:25:04 PM] [Cmd4] Scheduling Poll of index: 106 characteristic: On for: Bedroom 3 Zone timeout: 60000 interval: 60000
[5/14/2023, 1:25:07 PM] [Cmd4] Processing high priority queue "Set" entry: 106 length: 0
[5/14/2023, 1:25:07 PM] [Cmd4] Setting Master Suite Zone On 1
[5/14/2023, 1:25:07 PM] [Cmd4] setValue: accTypeEnumIndex:( 106 )-"On" function for: Master Suite Zone 1  cmd: '/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh' Set 'Master Suite Zone' 'On' '1' z01 192.168.0.228-debug timeout: 60000
[5/14/2023, 1:25:17 PM] [Cmd4] setValue: On function for Master Suite Zone streamed to stderr: cat: /tmp/AA-228/myAirData.txt: No such file or directory
cat: /tmp/AA-228/myAirData.txt: No such file or directory
cat: /tmp/AA-228/myAirData.txt: No such file or directory
cat: /tmp/AA-228/myAirData.txt: No such file or directory
cat: /tmp/AA-228/myAirData.txt: No such file or directory

[5/14/2023, 1:25:17 PM] [Cmd4] setValue On function failed for Master Suite Zone cmd: '/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh' Set 'Master Suite Zone' 'On' '1' z01 192.168.0.228-debug Failed.  Error: Command failed: '/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh' Set 'Master Suite Zone' 'On' '1' z01 192.168.0.228-debug
cat: /tmp/AA-228/myAirData.txt: No such file or directory
cat: /tmp/AA-228/myAirData.txt: No such file or directory
cat: /tmp/AA-228/myAirData.txt: No such file or directory
cat: /tmp/AA-228/myAirData.txt: No such file or directory
cat: /tmp/AA-228/myAirData.txt: No such file or directory

Cmd4 Config:

        {
            "name": "cmd4AdvantageAir",
            "devices": [
                {
                    "name": "Aircon",
                    "ipAddress": "192.168.0.228",
                    "debug": true
                }
            ],
            "platform": "cmd4AdvantageAir"
        },
        {
            "platform": "Cmd4",
            "name": "Cmd4",
            "debug": true,
            "outputConstants": false,
            "statusMsg": true,
            "timeout": 60000,
            "stateChangeResponseTime": 0,
            "constants": [
                {
                    "key": "${AAIP}",
                    "value": "192.168.0.228-debug"
                }
            ],
            "queueTypes": [
                {
                    "queue": "AAA",
                    "queueType": "WoRm2"
                }
            ],
            "accessories": [
                {
                    "type": "Thermostat",
                    "displayName": "Aircon",
                    "currentHeatingCoolingState": "OFF",
                    "targetHeatingCoolingState": "OFF",
                    "currentTemperature": 24,
                    "targetTemperature": 24,
                    "temperatureDisplayUnits": "CELSIUS",
                    "name": "Aircon",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "PIC8GS10",
                    "queue": "AAA",
                    "polling": [
                        {
                            "characteristic": "currentHeatingCoolingState"
                        },
                        {
                            "characteristic": "targetHeatingCoolingState"
                        },
                        {
                            "characteristic": "currentTemperature"
                        },
                        {
                            "characteristic": "targetTemperature"
                        }
                    ],
                    "state_cmd": "'/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "${AAIP}",
                    "linkedTypes": [
                        {
                            "type": "Fan",
                            "displayName": "Aircon FanSpeed",
                            "on": "TRUE",
                            "rotationSpeed": 100,
                            "name": "Aircon FanSpeed",
                            "manufacturer": "Advantage Air Australia",
                            "model": "MyAir5",
                            "serialNumber": "PIC8GS10",
                            "queue": "AAA",
                            "polling": [
                                {
                                    "characteristic": "on"
                                },
                                {
                                    "characteristic": "rotationSpeed"
                                }
                            ],
                            "state_cmd": "'/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                            "state_cmd_suffix": "${AAIP} fanSpeed"
                        }
                    ]
                },
                {
                    "type": "Fan",
                    "displayName": "Aircon Fan",
                    "on": "FALSE",
                    "rotationSpeed": 100,
                    "name": "Aircon Fan",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "PIC8GS10",
                    "queue": "AAA",
                    "polling": [
                        {
                            "characteristic": "on"
                        },
                        {
                            "characteristic": "rotationSpeed"
                        }
                    ],
                    "state_cmd": "'/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "${AAIP}"
                },
                {
                    "type": "Lightbulb",
                    "displayName": "Aircon Timer",
                    "on": "FALSE",
                    "brightness": 0,
                    "name": "Aircon Timer",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "PIC8GS10",
                    "queue": "AAA",
                    "polling": [
                        {
                            "characteristic": "on"
                        },
                        {
                            "characteristic": "brightness"
                        }
                    ],
                    "state_cmd": "'/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "timer ${AAIP}"
                },
                {
                    "type": "Switch",
                    "displayName": "Master Suite Zone",
                    "on": "FALSE",
                    "name": "Master Suite Zone",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "PIC8GS10",
                    "queue": "AAA",
                    "polling": true,
                    "state_cmd": "'/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z01 ${AAIP}"
                },
                {
                    "type": "Switch",
                    "displayName": "Ethan’s Room Zone",
                    "on": "FALSE",
                    "name": "Ethan’s Room Zone",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "PIC8GS10",
                    "queue": "AAA",
                    "polling": true,
                    "state_cmd": "'/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z02 ${AAIP}"
                },
                {
                    "type": "Switch",
                    "displayName": "Bedroom 3 Zone",
                    "on": "FALSE",
                    "name": "Bedroom 3 Zone",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "PIC8GS10",
                    "queue": "AAA",
                    "polling": true,
                    "state_cmd": "'/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z03 ${AAIP}"
                },
                {
                    "type": "Switch",
                    "displayName": "Emma's Room Zone",
                    "on": "FALSE",
                    "name": "Emma's Room Zone",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "PIC8GS10",
                    "queue": "AAA",
                    "polling": true,
                    "state_cmd": "'/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z04 ${AAIP}"
                },
                {
                    "type": "Switch",
                    "displayName": "Guest Room Zone",
                    "on": "FALSE",
                    "name": "Guest Room Zone",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "PIC8GS10",
                    "queue": "AAA",
                    "polling": true,
                    "state_cmd": "'/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z05 ${AAIP}"
                },
                {
                    "type": "Switch",
                    "displayName": "Upper Living Zone",
                    "on": "FALSE",
                    "name": "Upper Living Zone",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "PIC8GS10",
                    "queue": "AAA",
                    "polling": true,
                    "state_cmd": "'/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z06 ${AAIP}"
                },
                {
                    "type": "Switch",
                    "displayName": "Study Zone",
                    "on": "FALSE",
                    "name": "Study Zone",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "PIC8GS10",
                    "queue": "AAA",
                    "polling": true,
                    "state_cmd": "'/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z07 ${AAIP}"
                },
                {
                    "type": "Switch",
                    "displayName": "Cinema Zone",
                    "on": "FALSE",
                    "name": "Cinema Zone",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "PIC8GS10",
                    "queue": "AAA",
                    "polling": true,
                    "state_cmd": "'/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z08 ${AAIP}"
                },
                {
                    "type": "Switch",
                    "displayName": "Lower Living Zone",
                    "on": "FALSE",
                    "name": "Lower Living Zone",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "PIC8GS10",
                    "queue": "AAA",
                    "polling": true,
                    "state_cmd": "'/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z09 ${AAIP}"
                },
                {
                    "type": "TemperatureSensor",
                    "subType": "TempSensor1",
                    "displayName": "Master Suite Temperature",
                    "currentTemperature": 25,
                    "statusLowBattery": "BATTERY_LEVEL_LOW",
                    "name": "Master Suite Temperature",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "PIC8GS10",
                    "queue": "AAA",
                    "polling": [
                        {
                            "characteristic": "currentTemperature"
                        },
                        {
                            "characteristic": "statusLowBattery"
                        }
                    ],
                    "state_cmd": "'/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z01 ${AAIP}"
                },
                {
                    "type": "TemperatureSensor",
                    "subType": "TempSensor2",
                    "displayName": "Ethan’s Room Temperature",
                    "currentTemperature": 25,
                    "statusLowBattery": "BATTERY_LEVEL_LOW",
                    "name": "Ethan’s Room Temperature",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "PIC8GS10",
                    "queue": "AAA",
                    "polling": [
                        {
                            "characteristic": "currentTemperature"
                        },
                        {
                            "characteristic": "statusLowBattery"
                        }
                    ],
                    "state_cmd": "'/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z02 ${AAIP}"
                },
                {
                    "type": "TemperatureSensor",
                    "subType": "TempSensor3",
                    "displayName": "Bedroom 3 Temperature",
                    "currentTemperature": 25,
                    "statusLowBattery": "BATTERY_LEVEL_LOW",
                    "name": "Bedroom 3 Temperature",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "PIC8GS10",
                    "queue": "AAA",
                    "polling": [
                        {
                            "characteristic": "currentTemperature"
                        },
                        {
                            "characteristic": "statusLowBattery"
                        }
                    ],
                    "state_cmd": "'/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z03 ${AAIP}"
                },
                {
                    "type": "TemperatureSensor",
                    "subType": "TempSensor4",
                    "displayName": "Emma's Room Temperature",
                    "currentTemperature": 25,
                    "statusLowBattery": "BATTERY_LEVEL_LOW",
                    "name": "Emma's Room Temperature",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "PIC8GS10",
                    "queue": "AAA",
                    "polling": [
                        {
                            "characteristic": "currentTemperature"
                        },
                        {
                            "characteristic": "statusLowBattery"
                        }
                    ],
                    "state_cmd": "'/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z04 ${AAIP}"
                },
                {
                    "type": "TemperatureSensor",
                    "subType": "TempSensor5",
                    "displayName": "Guest Room Temperature",
                    "currentTemperature": 25,
                    "statusLowBattery": "BATTERY_LEVEL_LOW",
                    "name": "Guest Room Temperature",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "PIC8GS10",
                    "queue": "AAA",
                    "polling": [
                        {
                            "characteristic": "currentTemperature"
                        },
                        {
                            "characteristic": "statusLowBattery"
                        }
                    ],
                    "state_cmd": "'/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z05 ${AAIP}"
                },
                {
                    "type": "TemperatureSensor",
                    "subType": "TempSensor6",
                    "displayName": "Upper Living Temperature",
                    "currentTemperature": 25,
                    "statusLowBattery": "BATTERY_LEVEL_LOW",
                    "name": "Upper Living Temperature",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "PIC8GS10",
                    "queue": "AAA",
                    "polling": [
                        {
                            "characteristic": "currentTemperature"
                        },
                        {
                            "characteristic": "statusLowBattery"
                        }
                    ],
                    "state_cmd": "'/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z06 ${AAIP}"
                },
                {
                    "type": "TemperatureSensor",
                    "subType": "TempSensor7",
                    "displayName": "Study Temperature",
                    "currentTemperature": 25,
                    "statusLowBattery": "BATTERY_LEVEL_LOW",
                    "name": "Study Temperature",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "PIC8GS10",
                    "queue": "AAA",
                    "polling": [
                        {
                            "characteristic": "currentTemperature"
                        },
                        {
                            "characteristic": "statusLowBattery"
                        }
                    ],
                    "state_cmd": "'/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z07 ${AAIP}"
                },
                {
                    "type": "TemperatureSensor",
                    "subType": "TempSensor8",
                    "displayName": "Cinema Temperature",
                    "currentTemperature": 25,
                    "statusLowBattery": "BATTERY_LEVEL_LOW",
                    "name": "Cinema Temperature",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "PIC8GS10",
                    "queue": "AAA",
                    "polling": [
                        {
                            "characteristic": "currentTemperature"
                        },
                        {
                            "characteristic": "statusLowBattery"
                        }
                    ],
                    "state_cmd": "'/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z08 ${AAIP}"
                },
                {
                    "type": "TemperatureSensor",
                    "subType": "TempSensor9",
                    "displayName": "Lower Living Temperature",
                    "currentTemperature": 25,
                    "statusLowBattery": "BATTERY_LEVEL_LOW",
                    "name": "Lower Living Temperature",
                    "manufacturer": "Advantage Air Australia",
                    "model": "MyAir5",
                    "serialNumber": "PIC8GS10",
                    "queue": "AAA",
                    "polling": [
                        {
                            "characteristic": "currentTemperature"
                        },
                        {
                            "characteristic": "statusLowBattery"
                        }
                    ],
                    "state_cmd": "'/volume1/homebridge/node_modules/.bin/../homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "z09 ${AAIP}"
                }
            ]
        }

Screenshots:
image

Advantage Air System:

  • Control Unit: MyPlace
  • Temperature Sensors: Yes

Homebridge Environment:

  • Node.js Version: curl 7.79.1 (x86_64-pc-linux-gnu) libcurl/7.79.1 OpenSSL/1.1.1t zlib/1.2.11 c-ares/1.14.0 nghttp2/1.41.0
    Release-Date: 2021-09-22
    Protocols: http https
    Features: alt-svc AsynchDNS Debug HSTS HTTP2 HTTPS-proxy IPv6 Largefile libz NTLM NTLM_WB SSL TrackMemory UnixSockets
  • NPM Version: v1.6.1
  • Homebridge Version:
  • homebridge-cmd4 Version: v6.3.0
  • homebridge-cmd4-AdvantageAir Version: v3.9.0
  • Operating System: Synology

[Beta] v3.4.0-beta Testing

3.4.0-beta.2 (2022-05-28)

Special thanks to the amazing uswong and ztalbot2000 for adding these new features!

Notable Changes

  • 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 set dry mode in Advantage Air control unit. This enable users to set the dry mode from Homekit.
  • Performance: New function to update myAirData.txt cache file immediately after every Set command using jq 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.

Other Changes

  • 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.

Bug Fixes

  • 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, the countDownToOn 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.

[Support] ERROR: no Homebridge config.json found

Config Creator error

Followed the steps in readme, installed homebridge-cmd4 and jq. I have input the device name and ip correctly in Settings, but when I click Config Creator, I got this error.
ERROR: no Homebridge config.json found in "/"! Please copy "cmd4Config_AA_MyPlace.json" to cmd4 JASON Config manually.
No such file "cmd4Config_AA_MyPlace.json" was found in the entire system.

Paste of Logs:

[20/05/2023, 11:15:21 pm] [Cmd4] Initializing Cmd4 platform...
[20/05/2023, 11:15:21 pm] [Cmd4] Class Cmd4Platform
[20/05/2023, 11:15:21 pm] Loading 5 accessories...
[20/05/2023, 11:15:21 pm] [Sonoff-sv] Initializing mqttthing accessory...
[20/05/2023, 11:15:22 pm] [Sonoff-sv-humidity-sensor] Initializing mqttthing accessory...
[20/05/2023, 11:15:22 pm] [Sonoff-sv-temperature] Initializing mqttthing accessory...
[20/05/2023, 11:15:22 pm] [Sonoff] Initializing mqttthing accessory...
[20/05/2023, 11:15:22 pm] [Security] Initializing security-system accessory...
[20/05/2023, 11:15:22 pm] [Security] Default mode (Off)
[20/05/2023, 11:15:22 pm] [Security] Arm delay (0 second/s)
[20/05/2023, 11:15:22 pm] [Security] Trigger delay (0 second/s)
[20/05/2023, 11:15:22 pm] [Security] Audio (Disabled)
[20/05/2023, 11:15:22 pm] [Cmd4] Cmd4Platform didFinishLaunching
[20/05/2023, 11:15:22 pm] [Cmd4] No queued polling characteristics
[20/05/2023, 11:15:22 pm] Publishing bridge accessory (name: Homebridge, publishInfo: {
  username: 'CC:23:4D:A3:CE:33',
  port: 51826,
  pincode: '***-**-***',
  category: 2,
  bind: [ 'br0', [length]: 1 ],
  mdns: undefined,
  addIdentifyingMaterial: true,
  advertiser: undefined
}).

Cmd4 Config:

{
        "platform": "Cmd4",
        "name": "Cmd4",
        "debug": true
}
image

Advantage Air System:

  • Control Unit: MyPlace
  • Temperature Sensors: No

Homebridge Environment:

  • Node.js Version: v16.17.0
  • NPM Version: 8.15.0
  • Homebridge Version: v1.6.1
  • homebridge-cmd4 Version: v4.50.2
  • homebridge-cmd4-AdvantageAir Version: v3.9.0
  • Operating System: Raspbian

[Support] Simplify the config.json file

HI Mitch,

Currently we have to keep repeating the same config for each accessory for our zones & temperature sensors. The only differences are the name and zone number. I have 9 zones, so I have to repeat the same config (except for name and zone number) 9 times! I wonder whether there is a way to simplify the config so that we only need to specify the accessory explicitly once for all the 9 accessories.

My example below for 2 of my zones:

            {
                "type": "Lightbulb",
                "displayName": "Bed 3",
                "on": "FALSE",
                "brightness": 50,
                "name": "Bed 3",
                "manufacturer": "Advantage Air Australia",
                "model": "e-zone",
                "serialNumber": "Daikin e-zone",
                "queue": "A",
                "polling": [
                    {
                        "characteristic": "on"
                    },
                    {
                        "characteristic": "brightness"
                    }
                ],
                "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
                "state_cmd_suffix": "z08 ${IP}"
            },
            {
                "type": "Lightbulb",
                "displayName": "Bed 4",
                "on": "FALSE",
                "brightness": 50,
                "name": "Bed 4",
                "manufacturer": "Advantage Air Australia",
                "model": "e-zone",
                "serialNumber": "Daikin e-zone",
                "queue": "A",
                "polling": [
                    {
                        "characteristic": "on"
                    },
                    {
                        "characteristic": "brightness"
                    }
                ],
                "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
                "state_cmd_suffix": "z09 ${IP}"
            },

Or do you think this should be a question for John?

Cheers,
uswong

[Support] Two sets of aircons in the MyAir app, and temperature in homekit doesnt work properly

Describe Your Problem:

Hi, first of all, thanks for making this plug-in, it probably took a lot of work and i appreciate it.
I'm sorry if these are dumb questions, i barely know any coding, and just want my aircon to work with homekit:)
I have installed the plugin, and the temperature dial shows up in the homekit app. I can set it to a temperature (for example, 24 degrees) and mode (for example, heat) and see what the current temperature (for example, 19) is. This works fine for a few minutes, then it suddenly says that the temperature is set to a much lower temp (for example, 16 degrees), but when I look at the MyAir app, the temperature it has been set to remains at 24 degrees (not the much lower temp the homekit app changed to show). Functionality hasn't really been impacted, but its a bit trippy that homekit shows such a wild temperature.

Also, my sysem consists of two units, one which is for half of the house, and one which is for another. I cant find a way to have two instances of this plug in running at the same time. Also, I dont know what port either of these are on, but was lucky in that the port given in the examples seemed to work for the unit i have currently set up. Some help here would be nice too!

EDIT: I am on mac os el capitan
Thankyou for any help!

[Feature Request] Shorter interval to get status update from the system

Is our feature request related to a problem? Please describe:
=> Currently, the "Home" app on iOS usually takes 3-10 seconds to retrieve the status of the system data.
=> Would there by any chance that the feedback could return more frequently/faster?

Describe the solution you'd like:
=> As discussed in one of the closed threads, the following params might be useful
polling, interval and stateChangeResponseTime.

[Feature Request] Temperature from external sources

@mitch7391
My aircon does not have temperature sensors hence the measuredTemp is always zero. Is there a way we can read the temperature from external sources or may be even a temp file. I have aqara temp sensors that are api enabled and I can GET the temp value from that or the other thing I do is to hit openweather api to get the temperature in the area and writes it to a text file in the homebridge folder and it refreshes every 15 mins, so can we use the value from this text file to report the currenttemp on the thermostat ?

some thing similar is done on this plugin https://lprhodes.github.io/slate/#air-conditioner
image

Food for thought.

[Bug] Unable to set temperature on non temp sensor system

Describe The Bug:
Unable to set the temperature within the home app when using a non temperature sensor e-zone system.

To Reproduce:
Set the temperature using the thermostat control within the home app.

Expected Behaviour:
Temperature is set to dialled in setting.

Cmd4 Config:

            "platform": "Cmd4",
            "name": "Cmd4",
            "outputConstants": false,
            "statusMsg": true,
            "timeout": 5000,
            "stateChangeResponseTime": 0,
            "queueTypes": [
                {
                    "queue": "A",
                    "queueType": "WoRm"
                }
            ],
            "accessories": [
                {
                    "type": "Switch",
                    "displayName": "MasterBedroom",
                    "on": "FALSE",
                    "name": "MasterBedroom",
                    "manufacturer": "Advantage Air Australia",
                    "model": "e-zone",
                    "serialNumber": "Fujitsu e-zone2",
                    "queue": "A",
                    "polling": true,
                    "state_cmd": "bash /home/pi/AdvAir.sh",
                    "state_cmd_suffix": "z01"
                },
                {
                    "type": "Switch",
                    "displayName": "DOffice",
                    "on": "FALSE",
                    "name": "DOffice",
                    "manufacturer": "Advantage Air Australia",
                    "model": "e-zone",
                    "serialNumber": "Fujitsu e-zone2",
                    "queue": "A",
                    "polling": true,
                    "state_cmd": "bash /home/pi/AdvAir.sh",
                    "state_cmd_suffix": "z02"
                },
                {
                    "type": "Switch",
                    "displayName": "GuestBedroom",
                    "on": "FALSE",
                    "name": "GuestBedroom",
                    "manufacturer": "Advantage Air Australia",
                    "model": "e-zone",
                    "serialNumber": "Fujitsu e-zone2",
                    "queue": "A",
                    "polling": true,
                    "state_cmd": "bash /home/pi/AdvAir.sh",
                    "state_cmd_suffix": "z03"
                },
                {
                    "type": "Switch",
                    "displayName": "LivingRoom",
                    "on": "FALSE",
                    "name": "LivingRoom",
                    "manufacturer": "Advantage Air Australia",
                    "model": "e-zone",
                    "serialNumber": "Fujitsu e-zone2",
                    "queue": "A",
                    "polling": true,
                    "state_cmd": "bash /home/pi/AdvAir.sh",
                    "state_cmd_suffix": "z04"
                },
                {
                    "type": "Fan",
                    "on": "FALSE",
                    "name": "Fan",
                    "manufacturer": "Advantage Air Australia",
                    "model": "e-zone",
                    "serialNumber": "Fujitsu e-zone2",
                    "queue": "A",
                    "polling": true,
                    "state_cmd": "bash /home/pi/AdvAir.sh"
                },
                {
                    "type": "Thermostat",
                    "displayName": "Aircon",
                    "currentHeatingCoolingState": "OFF",
                    "targetHeatingCoolingState": "OFF",
                    "currentTemperature": 25,
                    "targetTemperature": 25,
                    "temperatureDisplayUnits": "CELSIUS",
                    "name": "Aircon",
                    "manufacturer": "Advantage Air Australia",
                    "model": "e-zone",
                    "serialNumber": "Fujitsu e-zone2",
                    "queue": "A",
                    "polling": [
                        {
                            "characteristic": "currentHeatingCoolingState"
                        },
                        {
                            "characteristic": "targetHeatingCoolingState"
                        },
                        {
                            "characteristic": "currentTemperature"
                        },
                        {
                            "characteristic": "targetTemperature"
                        }
                    ],
                    "state_cmd": "bash /home/pi/AdvAir.sh"

Environment:

  • Node.js Version: v14.18.1
  • NPM Version: 6.14.15
  • Homebridge Version: 1.3.5
  • homebridge-cmd4 Version: v6.0.0
  • Operating System: Raspbian
  • Process Supervisor: Systemd

[Support] Error no Cmd4 Config found

Describe Your Problem:
The issue is I’m getting is the error

no Cmd4 Config found in "/var/lib/homebridge/config.json

Which is a very similar issue to #35 I think that its something to do with deafult folder setups.

I’ve totally installed this 3 times now. https://github.com/homebridge/docker-homebridge/wiki/Homebridge-on-QNAP then https://github.com/mitch7391/homebridge-cmd4-AdvantageAir
After reading an initial comment on github, I thought I had installed it wrong in the process ie installing HomeBridge Cmd4 Advantage Air before HomeBridge Cmd4, so I deleted everything and started again to end up with 100% the same error.

I’m running this on QNAP TVS-672 running QuTS hero h5.1.4.2596

HomeBridge is installed within in Container Station which is what I followed ( like in the ticket ) One thing I was concerned about was folders in the original setup.

I would normally seek out a qpkg file (compiled installer for QNAP ) opposed to running within Container Station as I’m more of a windows user than a Linux user.

I can confirm I see a response when loading the -AdvantageAir http://192.168.1.162:2025/
Advantage Air v15.1074

and then very detailed output http://192.168.1.162:2025/getSystemData so thats good !

But i think where I'm stuck is are the folders incorrect ? ie

my skills are basic at best in Ubuntu ( but amazing when supported by chatgpt ! )

any ideas how can I fix ?

Link to Logs:

Paste of Logs:

[12/31/2023, 9:38:08 AM] [Homebridge UI] Homebridge restart request received
[12/31/2023, 9:38:08 AM] [Homebridge UI] UI / Bridge settings have not changed; only restarting Homebridge process
[12/31/2023, 9:38:08 AM] [Homebridge UI] Sending SIGTERM to Homebridge
[12/31/2023, 9:38:08 AM] Got SIGTERM, shutting down Homebridge...
[12/31/2023, 9:38:13 AM] [HB Supervisor] Homebridge Process Ended. Code: 143, Signal: null
[12/31/2023, 9:38:18 AM] [HB Supervisor] Restarting Homebridge...
[12/31/2023, 9:38:18 AM] [HB Supervisor] Starting Homebridge with extra flags: -I -P /var/lib/homebridge/node_modules -D -K --strict-plugin-resolution
[12/31/2023, 9:38:18 AM] [HB Supervisor] Started Homebridge v1.7.0 with PID: 26094
[12/31/2023, 9:38:18 AM] Loaded config.json with 0 accessories and 2 platforms.
[12/31/2023, 9:38:18 AM] Loaded 0 cached accessories from cachedAccessories.
[12/31/2023, 9:38:18 AM] ---
[12/31/2023, 9:38:18 AM] Loaded plugin: [email protected]
[12/31/2023, 9:38:18 AM] Registering accessory 'homebridge-cmd4.Cmd4'
[12/31/2023, 9:38:18 AM] Registering platform 'homebridge-cmd4.Cmd4'
[12/31/2023, 9:38:18 AM] ---
[12/31/2023, 9:38:18 AM] Loaded plugin: [email protected]
[12/31/2023, 9:38:18 AM] Registering platform 'homebridge-cmd4-advantageair.cmd4AdvantageAir'
[12/31/2023, 9:38:18 AM] ---
[12/31/2023, 9:38:18 AM] Loading 2 platforms...
[12/31/2023, 9:38:18 AM] [cmd4AdvantageAir] Initializing cmd4AdvantageAir platform...
[12/31/2023, 9:38:18 AM] [cmd4AdvantageAir] cmd4AdvantageAir this.config {
  name: 'cmd4AdvantageAir',
  devices: [Array],
  platform: 'cmd4AdvantageAir'
}
[12/31/2023, 9:38:18 AM] Publishing bridge accessory (name: Homebridge 796E, publishInfo: {
  username: '0E:01:D5:8B:79:6E',
  port: 51494,
  pincode: '***-**-***',
  category: 2,
  bind: undefined,
  mdns: undefined,
  addIdentifyingMaterial: true,
  advertiser: 'bonjour-hap'
}).
                       
[12/31/2023, 9:38:18 AM] Loaded plugin: [email protected]
[12/31/2023, 9:38:18 AM] Registering accessory 'homebridge-cmd4.Cmd4'
[12/31/2023, 9:38:18 AM] Registering platform 'homebridge-cmd4.Cmd4'
[12/31/2023, 9:38:18 AM] ---
[12/31/2023, 9:38:18 AM] Loaded plugin: [email protected]
[12/31/2023, 9:38:18 AM] Registering platform 'homebridge-cmd4-advantageair.cmd4AdvantageAir'
[12/31/2023, 9:38:18 AM] ---
[12/31/2023, 9:38:18 AM] Loading 2 platforms...
[12/31/2023, 9:38:18 AM] [cmd4AdvantageAir] Initializing cmd4AdvantageAir platform...
[12/31/2023, 9:38:18 AM] [cmd4AdvantageAir] cmd4AdvantageAir this.config {
  name: 'cmd4AdvantageAir',
  devices: [Array],
  platform: 'cmd4AdvantageAir'
}
[12/31/2023, 9:38:18 AM] Publishing bridge accessory (name: Homebridge 796E, publishInfo: {
  username: 'XXXXXXXXX',
  port: 51494,
  pincode: '***-**-***',
  category: 2,
  bind: undefined,
  mdns: undefined,
  addIdentifyingMaterial: true,
  advertiser: 'bonjour-hap'
}).
Setup Payload:
                       
[12/31/2023, 9:38:18 AM] Homebridge v1.7.0 (HAP v0.11.1) (Homebridge 796E) is running on port 51494.

Cmd4 Config:
{ "platform": "Cmd4", "name": "Cmd4" }

Screenshots:
image

image

image

image

image

image

Advantage Air System:

  • Control Unit: e-zone / Advantage Air v15.1074
  • Temperature Sensors: Yes

Homebridge Environment:

  • Node.js Version: v20.10.0
  • NPM Version: 10.2.3
  • Homebridge Version: v1.7.0
  • homebridge-cmd4 Version: v7.0.2
  • homebridge-cmd4-AdvantageAir Version: v3.10.0
  • Operating System: Ubuntu Focal Fossa (20.04.5 LTS)

ConfigCreator returns IP address error (MyAir3 systems)

Describe Your Problem:
Running Hoobs on a Raspberrypi 4. Have configured homebridge-cmd4 and homebridge-cmd4-advantageair on their own bridge called Myair Bridge.

Navigate to /var/lib/hoobs/myairbridge/node_modules/homebridge-cmd4-advantageair

Execute ConfigCreator.sh

provide the relevant ip addresses (I have 3 MyAir3 systems)
10.0.0.120, 10.0.0.121 and 10.0.0.122

Paste of Logs:

pi@raspberrypi:/var/lib/hoobs/myairbridge/node_modules/homebridge-cmd4-advantageair $ ./ConfigCreator.sh
Please enter the name (default: Aircon) and IP address of your AdvanatageAir system:
Name: Main
IP address (xxx.xxx.xxx.xxx): 010.000.000.120

Please enter the name and IP address of your 2nd AdvantageAir System if any. Just hit 'enter' if none:
Name: 

Do you want to set up your "Fan" as "FanSwitch"? (y/n): n

INFO: fanSetup=fan
INFO: AdvAir.sh found: /var/lib/hoobs/myairbridge/node_modules/homebridge-cmd4-advantageair/AdvAir.sh

INFO: This process may take up to 1 minute!
INFO: Fetching and processing data from your AdvantageAir system (Main 010.000.000.120).... 
ERROR: AdvantageAir system is inaccessible or your IP address 010.000.000.120 is invalid!

Cmd4 Config:

Screenshots:

Advantage Air System:

  • Control Unit: MyAir3
  • Temperature Sensors: No

Homebridge Environment:

  • Node.js Version: 16.19.0
  • NPM Version: 8.19.3
  • Homebridge Version: n/a - Hoobs 4.2.4
  • homebridge-cmd4 Version: 6.3.0
  • homebridge-cmd4-AdvantageAir Version: 3.8.0
  • Operating System: Raspbian

[Support] Setup issues no Cmd4 Config found

Hi All,

I'm having issues setting up cmd4-AdvantageAir on Raspberry Pi 3, clean OS Raspberian Pi install and the latest stable HomeBridge build.

The error i'm recieving is:
ERROR: no Cmd4 Config found in "/var/lib/homebridge/config.json"! Please ensure that Homebridge-Cmd4 plugin is installed

From what i can see the /var/lib/homebridge/config.json file is populated correctly and checked other cmd4Config_AA_cmd hostname.json is pulling data correctly from the cmd4 tablet.

Can anyone please point me in the right direction?

Screenshot 2022-12-04 at 7 52 26 pm

Screenshot 2022-12-04 at 8 00 09 pm

[Support] More than *XXX* errors were encountered in a row

Paste of Logs:

[11/02/2022, 5:11:44 pm] [Cmd4] More than *50* errors were encountered in a row for "Aircon" getValue. Last error found Getting: "TargetTemperature". Perhaps you should run in debug mode to find out what the problem might be.
[11/02/2022, 5:12:05 pm] [Cmd4] Setting Cinema On 0
[11/02/2022, 5:12:31 pm] [Cmd4] More than *50* errors were encountered in a row for "Aircon" getValue. Last error found Getting: "TargetHeatingCoolingState". Perhaps you should run in debug mode to find out what the problem might be.
[11/02/2022, 5:12:37 pm] [Cmd4] *** All characteristics are now being polled
[11/02/2022, 5:12:53 pm] [Cmd4] More than *100* errors were encountered in a row for "Aircon" getValue. Last error found Getting: "CurrentTemperature". Perhaps you should run in debug mode to find out what the problem might be.
[11/02/2022, 5:13:14 pm] [Cmd4] More than *150* errors were encountered in a row for "Aircon" getValue. Last error found Getting: "CurrentHeatingCoolingState". Perhaps you should run in debug mode to find out what the problem might be.
[11/02/2022, 5:13:35 pm] [Cmd4] More than *200* errors were encountered in a row for "Aircon" getValue. Last error found Getting: "TargetTemperature". Perhaps you should run in debug mode to find out what the problem might be.
[11/02/2022, 5:13:46 pm] [Cmd4] More than *250* errors were encountered in a row for "Aircon" getValue. Last error found Getting: "CurrentTemperature". Perhaps you should run in debug mode to find out what the problem might be.

Cmd4 Config:

Screenshots:

Advantage Air System:

  • Control Unit: e-zone
  • Temperature Sensors: No

Homebridge Environment:

  • Node.js Version: v16.14.0
  • NPM Version: 8.3.1
  • Homebridge Version: 1.4.0
  • homebridge-cmd4 Version: homebridge-cmd4 v6.1.1
  • homebridge-cmd4-AdvantageAir Version: homebridge-cmd4-advantageair v3.2.0
  • Operating System: Raspbian

I've seen that someone else had this issue and it has been closed. Some of the troubleshooting that I have done is to revert to previous versions of both Cmd4 & Advantage Air Cmd4 since I never had this issue before. I have also completely removed both plugins and reinstalled. No luck.

I'm on a raspberry pi 4 and running homebridge as a standalone program and not in docker. My plugins are in the /usr/lib/node_modules/ folder.

JSON Config for MyPlace - Duplicate displayName

Hi Mitch and John,

just following up from the emails earlier today. Your suggestion fixed the problem I had with the thermostat (I think). It seems like it was due to a duplication of the displayName variable (not name). I updated the displayName for the temperature sensors by appending Temp to the name and the correct set temp now shows up on the thermostat.

I did run into a problem with duplicated name variables earlier in my setup which I resolved but the problem that that introduced was much more obvious and severe - it caused a restart loop on the HomeBridge UI that i couldn’t break except by restoring config from backup.

Thanks for your help and keep up the awesome work.

[Support] "Check configuration" error: jq is required globally and not installed.

After following the instructions and clicking "Check Configuration", I get the error: "jq is required globally and not installed."

This is despite jq (I think?) being installed successfully:

user@computer ~ % which -a jq
/opt/homebrew/bin/jq
user@computer  ~ % echo '{ "name":"John", "age":31, "city":"New York" }' | jq .
{
  "name": "John",
  "age": 31,
  "city": "New York"
}
user@computer  ~ % jq -V            
jq-1.6

It's possible that I've messed up the Cmd4 config (I'm not actually sure what I'm supposed to add to it?)
Cmd4 Config:

{
    "platform": "Cmd4",
    "name": "Cmd4"
}

Advantage Air System:

  • Control Unit: MyPlace
  • Temperature Sensors: Yes

Homebridge Environment:

  • Node.js Version: v16.14.2
  • NPM Version: 8.5.0
  • Homebridge Version: homebridge-config-ui-x v4.50.0
  • homebridge-cmd4 Version: homebridge-cmd4 v6.3.0
  • homebridge-cmd4-AdvantageAir Version: homebridge-cmd4-advantageair v3.5.0
  • Operating System: macOS Monterey

[Support] HOOBS Installation Issue

Hi Mitch, thanks for developing this plugin, just what I am looking for. However, getting stuck at the first hurdle! I'm trying to install on my Hoobs setup, I've already downloaded and installed the CMD4 plugin and then installed the AdvantageAir one.

I accessed the Terminal and followed the instructions but when I enter $config, I get an error messgae back stating ERROR: either your AdvantageAir system is inacessible or your IP address /var/lib/hoobs/cmd4bridge/node_modules/homebridge-cmd4-advantageair/ConfigCreator.sh is invalid! - I thought this step was mean to ask for the ip address of my AA system? What am I doing wrong?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.