All notable changes to this project will be documented in this file. This project uses Semantic Versioning.
- 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.6
with the following changes:- AccessoryPlugins and Accessory objects returned by StaticPlatformPlugins can now define the optional
getControllers
method 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
identify
event 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
updateReachability
before 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 a 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 a 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
-R
flag was deprecated. A new-K
/--keep-orphans
flag 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 rollback to v0.4.53 using this command:
sudo npm install -g --unsafe-perm [email protected]
- #2476 - Project converted to Typescript by @Supereg
- Homebridge API version was bumped to
2.5
with the following additions:- The signatures of
registerAccessory
andregisterPlatform
have 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
PlatformAccessory
class received a new methodconfigureController
which 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
DynamicPlatformPlugin
and the methodsconfigureCameraSource
orconfigureController
of 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
adminOnlyAccess
to limit certain access rights to the home-owner - Added new services and characteristics for:
- HomeKit Routers (
WiFiRouter
andWiFiSatellite
services) - HomeKit Secure Video (
CameraOperatingMode
andCameraEventRecordingManagement
services) AccessControl
serviceSmartSpeaker
servicePowerManagement
serviceTransferTransportManagement
service
- 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
/characteristics
PUT
request the HAP server will return204 No Content
if all characteristic writes succeeded and207 Multi-Status
if at least one write failed or when a write-response is delivered. - For
/characteristics
GET
request the HAP server will return200 Success
if all characteristic reads succeeded and207 Multi-Status
if at least one write failed. - The HAP server will now return short UUIDs for Apple predefined services and characteristics for the
/accessories
route.
- 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 create 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
.