Repository navigation
Description
Plugin Name
homebridge-airtouch2plus
Link To GitHub Repo
https://github.com/dabs79/Homebridge-AirTouch2plus
Plugin Icon (Optional)
The plugin does not offer the same nor less functionality than that of any existing verified plugin.
🟢 Yes
The plugin successfully installs and does not start unless it is configured.
🟢 Yes
The plugin does not require the user to run Homebridge in a TTY or with non-standard startup parameters, even for initial configuration.
🟢 Yes
The plugin does not contain any analytics or calls that enable you to track the user.
🟢 Yes
If the plugin needs to write files to disk (cache, keys, etc.), it stores them inside the Homebridge storage directory.
🟢 Yes
The plugin does not throw unhandled exceptions, the plugin must catch and log its own errors.
🟢 Yes
More Information
A dynamic platform plugin for the Polyaire AirTouch 2+ ducted air conditioning controller, targeting the current firmware whose local API runs on TCP port 9200.
Existing AirTouch plugins don't cover this: the older homebridge-airtouch2plus-platform (npm 0.0.1, unmaintained) predates the port 9200 firmware and no longer connects, and the verified homebridge-airtouch5-platform targets the different AirTouch 5 protocol. This plugin is a fresh TypeScript implementation of the AirTouch 2+ protocol, verified byte-for-byte against the maintained nathanvdh/airtouch2-python reference library (used by the Home Assistant integration), including CRC-16/MODBUS checksums and all control/status message framing.
Link To NPM Package: https://www.npmjs.com/package/homebridge-airtouch2plus
Functionality:
AC unit as a HeaterCooler (power, Heat/Cool/Auto, setpoint, current temperature), with supported modes and setpoint limits read from the unit's ability message.
Each zone as a Fan (on/off + damper position), with zone names read from the console.
Dedicated Fan-speed accessory (Apple Home doesn't render the fan slider on a HeaterCooler tile).
Fan-only and Dry mode tiles (HeaterCooler has no FAN/DRY state).
Persistent socket with TCP keepalive, application heartbeat, and auto-reconnect.
Full config schema; each accessory type can be enabled/disabled.
If it overlaps with any existing verified plugin (e.g. an AirTouch/MyPlace-family plugin), happy to clarify the differences — this one is specific to the AirTouch 2+ port 9200 firmware, which the others don't support.
Activity
github-actions commentedon Aug 11, 2026
🔴 Failed Checks
keywordsmust include at least one of'supports-hap'or'supports-matter'— see Declaring Supported Transportsrequiredshould not be a boolean property on individual fields. In JSON Schema,requiredmust be an array at the object level listing required property names. Remove"required": true/falsefrom individual properties and use"required": ["property1", "property2"]at the object level instead.🟢 Passed Checks
homepageexistsbugs.urlexists and seems a valid URLkeywordsexist and contain'homebridge-plugin''preinstall'inscriptsis not present'install'inscriptsis not present'postinstall'inscriptsis not presentengines.nodeproperty is compatible with Node 22engines.nodeproperty is compatible with Node 24engines.homebridgeproperty is compatible with Homebridge 2.3.1pluginAliaspluginAliasmatches the platform/accessory registered in codepluginTypeis set to'platform'nameschema propertyhomebridgeis not declared as a runtime/peer/bundled dependencyhap-nodejsis not declared as a runtime/peer/bundled dependencyℹ️ Check Details
v1.8.0of the plugin.📋 Next Steps
/checkon this issue to run the checks again — your request will not move forward until the checks are re-run.package.jsonandconfig.schema.jsonfiles, don't forget to publish a new version to NPM.dabs79 commentedon Aug 11, 2026
/check
github-actions commentedon Aug 11, 2026
🟢 Passed Checks
homepageexistsbugs.urlexists and seems a valid URLkeywordsexist and contain'homebridge-plugin'keywordsdeclare the supported transports ('supports-hap'and/or'supports-matter')'preinstall'inscriptsis not present'install'inscriptsis not present'postinstall'inscriptsis not presentengines.nodeproperty is compatible with Node 22engines.nodeproperty is compatible with Node 24engines.homebridgeproperty is compatible with Homebridge 2.3.1typepropertypropertiesfor object typepluginAliaspluginAliasmatches the platform/accessory registered in codepluginTypeis set to'platform'nameschema propertyhomebridgeis not declared as a runtime/peer/bundled dependencyhap-nodejsis not declared as a runtime/peer/bundled dependencyℹ️ Check Details
v1.8.1of the plugin.📋 Next Steps
All checks passed successfully, nice work! Your plugin and/or icon will now be manually reviewed by the Homebridge team.
verify: homebridge-airtouch2plus
github-actions commentedon Aug 13, 2026
Congratulations! Your plugin has been verified!
You can now add one of the Verified by Homebridge badges to your plugin's README:
Your plugin is now also eligible to display a ❤️ Donate button on its tile in the Homebridge UI. See https://github.com/homebridge/homebridge/wiki/Donation-Links for instructions.
Interested in getting a
@homebridge-plugins/scope for your plugin? See our Homebridge Scoped Plugins program.If for any reason in the future you can no longer maintain your plugin, please consider transferring it to our Homebridge Plugins organization.
Don't forget to join the official Homebridge Discord server, where plugin developers can get tips and advice from other developers and the Homebridge project team in the #plugin-development channel!
As a verified plugin, you can request a channel in the Discord server to discuss your plugin with users and other developers. Just ask in the #plugin-development channel.
Thank you for your contribution to the Homebridge community.
bwp91 commentedon Aug 13, 2026
Verified, and your icon is in — it should start showing in the UI within the hour.
Nice plugin to read. No dependencies at all, nothing written to disk, and it never leaves the local network — which for a console that speaks its own protocol on port 9200 is exactly right. The TCP client was the part I looked at hardest, and it holds up: error and close handlers, backoff on reconnect, and an idle check that assumes a stale connection and starts again rather than sitting there quietly doing nothing.
For the record on uniqueness: the only verified AirTouch plugin covers the 5, which is a different generation on a different API, so there was no real overlap to weigh.
One small ask. You have 10 tags but 3 GitHub releases. Releases are not a blocker and I have not held anything up for it — but release notes show up inside the Homebridge UI when someone updates a plugin, so they are read far more than you would think. Worth adding going forward, even a line each.
Thanks for contributing it.