What's Changed
Enhancements
- Node.js update check and auto-update:
- The plugin can now check for new Node.js LTS versions and notify if an update is available. Controlled by the new
checkNodeUpdatesconfig option. Implements #206. - New config option:
autoUpdateNode— If enabled, the plugin will attempt to automatically update Node.js usinghb-service update-nodewhen a new LTS version is detected and the system supports it. - The plugin checks for
hb-service update-nodesupport before attempting the update, and logs the result (success or failure). - If a Node.js update is available, a log line is emitted when the HomeKit/Matter sensor is tripped due to Node.js.
- The HomeKit/Matter sensor is now tripped if any update is available, including Node.js, Homebridge, UI, plugins, or Docker.
- The plugin can now check for new Node.js LTS versions and notify if an update is available. Controlled by the new
- Suppress or log at debug level when no updates are found, instead of always logging "Found 0 available update(s)". Fixes #224.
- Log level for update notifications is now correct per update type (Homebridge, UI, plugins, Docker). Each update logs as info only if a new update is found for that type, otherwise as debug. Fixes #225.
- Full Homebridge v2.0 Matter support with HAP fallback. Matter is now the default platform when available and enabled, with seamless fallback to HAP if not.
- Refactored to use a runtime proxy/factory pattern for platform selection (HAP vs Matter).
- Added
preferMatter,enableMatter,disableMatter, andexternalAccessoryoptions to configuration and schema. - Improved accessory registration and cleanup logic for both HAP and Matter, including external accessory support.
- Switched all HTTP(S) requests to native Node.js http/https modules with manual retry and DNS caching (cacheable-lookup). Removed axios and axios-retry dependencies.
- Updated documentation and schema for new features and options.
Bug Fixes
- Croner cron jobs are now unref'd so they do not prevent Node.js from exiting cleanly. Fixes #222.
- Accessory/device name now uses the configured
nameproperty as the HomeKit/Matter accessory name, not just the platform name. Fixes #223.
Other
- Added and updated tests for new config options and proxy logic. All tests pass.
- Updated all dependencies and removed unused packages for improved security and compatibility.
- General code cleanup, improved file/class naming, and import clarity.
Full Changelog: v2.3.7...v3.0.0