All notable changes to homebridge will be documented in this file. This project tries to adhere to Semantic Versioning.
- updated dependencies
hap-nodejs@v0.14.3
- updated dependencies
hap-nodejs@v0.14.2
- updated dependencies
- regenerate docs after
typedocupdate - update homebridge v2 info notice with more info
hap-nodejs@v0.14.1
- updated dependencies
- add node 24 to node engines in
package.json
hap-nodejs@v0.14.0
- return port in
childBridgeStatusUpdateevent response - update dependencies, including
jesttov30 - regenerate docs after
typedocupdate
hap-nodejs@v0.13.1
- updated dependencies including
hap-nodejstov0.13.1 - move v2.0 notice to show just once + node notice
hap-nodejs@v0.13.1
- Added method updateDisplayName() (#3764) (@justjam2013)
- Fixed method handleUpdatePlatformAccessories() (#3765) (@justjam2013)
- Make it possible to set Characteristic.SerialNumber via config.json (#3761) (@vvorcun)
- fix: check for valid array in
handleUpdatePlatformAccessories - minor dependency updates
hap-nodejs@v0.12.3
- support plugins with dots in their npm scope (#3687) (@gtalusan)
- mark compatible with node v22
- minor dependency updates
hap-nodejs@v0.12.3
- Fix default FirmwareRevision (#3644) (@hjdhjd)
- Detect config interface on registerPlatform (#3609) (@duddu)
- Updated dependencies, fix
typedocgeneration - Added log messaging about upcoming Homebridge v2.0.0 update
- NOTICE TO USERS AND PLUGIN DEVELOPERS
- Homebridge v2.0 is on the way and brings some breaking changes to existing plugins.
- Please visit the following link to learn more about the changes and how to prepare:
- NOTICE TO USERS AND PLUGIN DEVELOPERS
hap-nodejs@v0.12.2
- Updated dependencies (
hap-nodejs)
hap-nodejs@v0.12.2
- Updated dependencies (
hap-nodejs) - correct comment for automatically added 'alpha' labels in labeler.yml (#3608) (@techm4te)
hap-nodejs@v0.12.1
- shared use of
commanderbetween homebridge and the UI repo
- Update Discord Webhook
- allow for FirmwareRevision override in config
- add GitHub labeler action
- allow custom
NODE_OPTIONSandDEBUGon child bridges - add logging success colour (#3581)
- adds alpha publisher
- improve
READMEinstallation docs - updated dependencies
- updated Discord Webhooks so notifications are seperated for
releaseandpre-release - updated lint rules for imports
- regenerate docs
- update hap-nodejs version
hap-nodejs@v0.12.0
Reminder: Node.js v18.15.0 or later is required to run Homebridge.
- Update dependencies by @bwp91 in homebridge#3459 and homebridge#3460
- Fixed an issue with the
avahiadvertiser on Synology that resulted in homebridge not starting by @Supereg in homebridge/HAP-NodeJS#1003 - Resolved an issue where developers weren't able to compile strict TypeScript projects against Homebridge
- Updated
hap-nodejsto v0.11.0 adding support forsystemd-resolvedmDNS advertisers and improved support for systems running avahi mDNS advertiser. The release also contains general bug fixes and improvements. - Support resolved mDNS advertiser by @elyscape in homebridge#3260
- Update to provide compatibility with hap-nodejs 0.11.0 by @Supereg in homebridge#3263
- @elyscape made their first contribution in homebridge#3260
- Upgrade hap-nodejs to v0.10.4 containing minor bug fixes by @Supereg (https://github.com/homebridge/homebridge/commit/968ae0c501ed3fcafbaaef945b13e9d5dbef2c95)
- suppress warning generated from running npm -g prefix by @oznu (https://github.com/homebridge/homebridge/commit/2aa6fad3345f5bcfa2fc128f5d9ac110ec52ecfd)
- Add support for stopping / starting a child bridge via the Homebridge UI @oznu #3139
- Upgraded HAP-NodeJS to v0.10.2
- Strict plugin resolution option added to Homebridge plugin @oznu #3117
- Replace https://git.io URLs as the service is being depreciated
This release upgrades various dependencies with bug fixes and security fixes.
- HomeKit Secure Video @Supereg #3056
- New advertiser: Avahi/D-Bus API @adriancable
- Fix ES Module loading with absolute path @seydx #3070
- Fix casing of generated inline docs @Supereg #3066
- Fixed a crash occurring for any encrypted communication when running Node.js 17 on linux based machines #3046
- PluginManager would abort plugin loading if one plugin encounters a loading error #3017
- Move to centrally managed Issue form templates and GitHub Action workflows #3011
- Added support for ESM modules and async plugin initializers #2915
- Upgraded HAP-NodeJS to v0.9.7 providing bug fixes #3008
This version adds new services and characteristics introduced with iOS 15.
AccessCodeandNFCAccessservices and corresponding characteristics.- Services related to the support of Siri enabled HomeKit devices:
- The following services were newly added:
Assistant,SiriEndpoint - The following services received new optional characteristics:
SiriandSmartSpeaker
- The following services were newly added:
This release upgrades various dependencies with bug fixes and security fixes.
This includes the dns-packet security vulnerability referenced under CVE-2021-23386.
Only users who use the bonjour mdns advertiser are impacted by this vulnerability.
- Fixed a characteristic warning for Cameras or Video Doorbells, which might be emitted on startup under certain conditions. This warning had no impact on the functionality of Cameras.
- #2855 - Fixed an issue to handle the situation where Siri or a Home Hub sends unexpected values for the characteristic format type. This should fix the situations where accessories could be controlled from the Home app, but not via Siri and/or automations.
- #2856 - Gracefully handle duplicate UUID errors when restoring the accessory cache.
- Update HAP-NodeJS to v0.9.3.
Please make sure you have done the following before updating:
- Read the full release notes for v1.3.0 if you have not already done so.
- #2849 - Added the ability for more than one accessory of the same type to be added to a single child bridge. See docs for more info.
- Warnings about "slow" plugin characteristics will no longer be shown for external / unbridged accessories (typically Cameras or TVs) as these do not slow down the entire bridge.
Please make sure you have done the following before updating:
- Read the full release notes for v1.3.0 if you have not already done so.
- Updated all existing plugins to their latest version.
- Create a backup of your Homebridge instance.
- Review the mDNS Options that you may need to adjust after updating to Homebridge v1.3.x.
- #2820 - Automatically correct bad characteristic values provided by plugins in more cases, this should fix the vast majority of problems users were facing after upgrading to v1.3.0.
- #2820 - Fix an issue where a child bridge would not load if another non-child-bridge plugin created a circular reference on the plugin's config object at runtime.
- #2799 - The Current Temperature characteristic now has a default minimum value of
-273.15down from0. - Characteristic warning messaging improvements.
- Update HAP-NodeJS to v0.9.2.
Please make sure you have done the following before updating:
- Updated all existing plugins to their latest version.
- Create a backup of your Homebridge instance.
- Review the mDNS Options that you may need to adjust after updating to Homebridge v1.3.0.
The new Adaptive Lightning feature introduced with iOS 14 can now be used by plugin developers. Most of the actively maintained plugins already secretly added support for it.
Child bridges allow any Homebridge platform or accessory to optionally run as its own independent accessory, separate from the main bridge, and in an isolated process. Running certain accessories in a child bridge can improve the general responsiveness and reliability of Homebridge.
Why you might run a child bridge:
- To isolate plugin code from the main bridge - in this mode the plugin will run in its own child process, preventing it from ever crashing the main bridge if a fatal exception occurs.
- If the child bridge process does crash, Homebridge will automatically restart it, without impacting the main bridge or other plugins.
- To isolate slow plugins, preventing them from slowing down the main bridge or other plugins.
- To gain the ability to restart individual accessories after a config change or plugin update without having to restart the main bridge or other plugins.
- To gain all the benefits of running multiple instances of Homebridge without the management overhead.
Child bridge support is available for all existing plugins. You can enable it via the Homebridge UI on an accessory/platform basis from the "Bridge Settings" menu item:
Learn more about child bridges here: https://github.com/homebridge/homebridge/wiki/Child-Bridges
Homebridge v1.3.0 ships with two different Bonjour/mDNS advertisers which users can choose from, Ciao and Bonjour HAP.
- Homebridge v1.1.x shipped with
Bonjour HAP - Homebridge v1.2.x shipped with
Ciao
The default for new users will be Bonjour HAP, you can swap between the two from the "Homebridge Settings" screen in the Homebridge UI:
See https://github.com/homebridge/homebridge/wiki/mDNS-Options for more information.
The "mdns"."interface" option has been removed, please use "bridge"."bind" instead. This new option takes an array of interface names or IP addresses. You can also configure this option using the "Network Interfaces" option under the Homebridge Settings section of the UI.
See https://github.com/homebridge/homebridge/wiki/mDNS-Options for more information.
- Added the ability to disable individual plugins without having to remove their config from the
config.jsonfile. - Homebridge will no longer crash if a plugin cannot be found for a certain accessory / platform config block.
- Improved stability with malfunctioning plugins or plugins which read/write handlers take too long to respond. You may have been there, where you whole Homebridge instance went down only because one plugin or accessory didn't behave properly. We have invested some time to reduce the possibility of such scenarios; or at least give hints where we can reliably detect that something gone wrong.
- Plugin characteristics are now strictly validated, if an invalid value is passed in the bridge will now force it to a known good value and show a warning in the logs, this should prevent some of the "Not Responding" issues users have faced in the past.
- Added the ability to use promise-based characteristic getters and setters. Have a look at characteristic.onGet and characteristic.onSet.
- Added support for Characteristics with Additional Authorization, by using characteristic.setupAdditionalAuthorization.
- For a more detailed list, have a look at the release notes of
HAP-NodeJSv0.9.0. - Added an API.versionGreaterOrEqual
call to the homebridge API object. This will from now on replace the float based API
versionnumber property.
Homebridge v1.3.0 does not introduce breaking changes for the majority of existing plugins, while you may see Characteristic Warnings in the logs, these are just issues that were already present prior to v1.3.0 - just hidden from view. You should update your plugins before updating Homebridge.
A large number of plugins have been tested during an extensive beta period, the results can be viewed here.
If for any reason Homebridge v1.3.0 is not working for you, you can roll back to a previous version of Homebridge easily using the Homebridge UI.
See https://github.com/homebridge/homebridge/wiki/How-To-Change-Homebridge-Version for more information.
- Updated HAP-NodeJS to v0.8.5 incorporating fixes made to the
ciaomDNS library. Refer to the release notes of HAP-NodeJS for more technical details.
- Updated the mdns library
ciaoto v1.1.0 introducing further stability improvements.
- Updated the mdns library
ciaoto the latest version- Includes general bug fixes and stability improvements
- Improved compatibility with machines running avahi
- Fixed handling of updated ip addresses
- Fixes for Darwin system running in a VM
- Added a warning when a plugin takes too long to load and prevents homebridge from starting.
- Update hap-nodejs to v0.8.2 resolving some advertising issues on some uncommon platforms
- Updated the typing of the accessory context to be any again to allow less strict typing. Though we encourage you to write your own Type Definition for better type safety!
- Fixed a bug related to mdns discovery where on some machines (FreeBSD and some containerized installs) the accessory is not correctly advertised on the local network
- Updated HAP-Nodejs to v0.8.0 (see HAP-NodeJS release notes). This includes the rewritten bonjour/mdns library
ciao, which improves Accessory discovery on the local network (#2619). - Add ability to type an accessory context using generics (2664)
- Fixed an incompatibility introduced in v1.1.3 with the
commanderlibrary
- Updated HAP-Nodejs to v0.7.9 (see HAP-NodeJS release notes):
- IP addresses for camera streaming endpoints are automatically and more reliably set
- Added latest changes made to iOS 14 beta 4 and 5
- #2646 - Fixed an issue with scoped plugin registration / cached accessory restoration.
- Updated HAP-Nodejs to v0.7.4 (see v0.7.4 release notes)
Reminder: Node.js v10.17.0 or later is required to run Homebridge.
- Bumped API version to
2.6with the following changes:- AccessoryPlugins and Accessory objects returned by StaticPlatformPlugins can now define the optional
getControllersmethod to configure controllers like the RemoteController or CameraController
- AccessoryPlugins and Accessory objects returned by StaticPlatformPlugins can now define the optional
- Updated HAP-Nodejs to v0.7.3.
- Moved to the built-in Node.js crypto library for *chacha20-poly1305- encryption and decryption. This gives a 10x performance boost when doing crypto.
- All debuggers are now prefixed with the library name,
HAP-NodeJS:. - v0.7.0 Release Notes
- v0.7.1 Release Notes
- v0.7.2 Release Notes
- v0.7.3 Release Notes
- #2551 Fixed a breaking change to the
identifyevent on PlatformAccessory.
Plugins Using TypeScript: Homebridge now only exports types that are safe to use in your code and won't result in the homebridge library being a runtime dependency. If you have been using types correctly then you will not be impacted by this change.
- Fixed a crash that could occur if a plugin called
updateReachabilitybefore the accessory was added to the bridge (homebridge-plugins/homebridge-arlo#40 (comment)) - Fixed a crash that could occur while pairing when running plugins (like homebridge-nest) which register a AccessoryInformation service that already has added an Identify listener of HAP-NodeJS (homebridge#2548)
- Fixed mdns advertising to include all (and only) reachable addresses for the given machine
- Some users were seemingly unable to pair new homebridge instances or encountered "no response" for all of their accessories if plugins chose to supply an empty serial number for their accessory information. This is now resolved.
- Added a check that plugins can't expose an accessory with an empty set of services (which would also cause HomeKit reject the accessory)
- #2527 Improve cached accessory resolution.
- #2528 Removing orphaned cached accessories is now the default behavior.
- The
-Rflag was deprecated. A new-K/--keep-orphansflag was introduced to disable this behavior.
- The
- #2522 Allow plugins that have strict Homebridge version requirements to still load, instead an error message will be posted in the Homebridge logs letting users know they may face issues using the current version of the plugin.
- The minimum Node.js version required is now
v10.17.0. - Important notice: The update to the underlying HAP-NodeJS library brings many fixes to the HomeKit Accessory Protocol. One of those is the permission management of people you may have added to your Home. It is strongly recommended that you remove every person added to your Home and then invite them back into your home. This will ensure that permissions for all people in your home are downgraded correctly.
- #2481 - Platforms will no longer load unless they have been explicitly configured in the
config.json - #2482 - Dropped support for the
BridgeSetupManager
If you encounter any issues in v1.0.0 you can roll back to v0.4.53 using this command:
sudo npm install -g --unsafe-perm homebridge@0.4.53
- #2476 - Project converted to Typescript by @Supereg
- Homebridge API version was bumped to
2.5with the following additions:- The signatures of
registerAccessoryandregisterPlatformhave been adjusted. The plugin name, which was passed as the first argument, can now be left out and will be determined automatically by homebridge. - The
PlatformAccessoryclass received a new methodconfigureControllerwhich can be used to access the new Controller API (used for Apple TV Remotes and Cameras) introduced with HAP-NodeJS 0.6.0 - Cameras can now be added to the bridge using a
DynamicPlatformPluginand the methodsconfigureCameraSourceorconfigureControllerof thePlatformAccessory(removing the need to create an external accessory) - The hidden service and primary service properties are now properly restored for cached accessories
- The signatures of
- #2391 - HAP-NodeJS
updated to 0.6.0 with some changes highlighted here:
- HAP-NodeJS was converted to Typescript as well (thanks to @hassankhan)
- Support for exposing Cameras through a Bridge was added
- Support for Apple TV Remotes (with and without Siri Voice transmission) using the new RemoteController API
- Introduction of the new CameraController API which improves on the existing API and opens the way for a possible future introduction of an API for HomeKit Secure Video
- Introduced new APIs to mark a service as primary service
- Added new characteristic property
adminOnlyAccessto limit certain access rights to the home-owner - Added new services and characteristics for:
- HomeKit Routers (
WiFiRouterandWiFiSatelliteservices) - HomeKit Secure Video (
CameraOperatingModeandCameraEventRecordingManagementservices) AccessControlserviceSmartSpeakerservicePowerManagementserviceTransferTransportManagementservice
- HomeKit Routers (
- Updated to HAP Protocol Version 1.1.0:
- Support of the HomeKit Data Stream (HDS) protocol (used by Remotes and Secure Video)
- Support for Timed Writes and Write Responses
- Fixed a bug in the encryption layer, which would sometimes encrypt events in the wrong order causing corrupted responses. This issue typically affected service which expose their state using 'target' characteristics and 'current' characteristics like Doors, Locks and Windows.
- Improved HAP specification compatibility, while noting the following changes affecting compatibility:
- For
/characteristicsPUTrequest the HAP server will return204 No Contentif all characteristic writes succeeded and207 Multi-Statusif at least one write failed or when a write-response is delivered. - For
/characteristicsGETrequest the HAP server will return200 Successif all characteristic reads succeeded and207 Multi-Statusif at least one write failed. - The HAP server will now return short UUIDs for Apple predefined services and characteristics for the
/accessoriesroute.
- For
- Many, many more bug fixes and improvements.
- Homebridge now exports TypeScript types that can be used in the development of plugins.
- See the homebridge-examples repo for examples of how to do this.
- We also have created a plugin template you can use as a base for your own plugins.
- Added the ability to use scoped npm modules as Homebridge plugins. This means plugin developers can now publish Homebridge plugins to npm under their own user or npm organisation, such as
@username/homebridge-plugin.


