Skip to content

Latest commit

 

History

History
466 lines (289 loc) · 25 KB

CHANGELOG.md

File metadata and controls

466 lines (289 loc) · 25 KB

Change Log

All notable changes to homebridge will be documented in this file. This project tries to adhere to Semantic Versioning.

v1.8.1 (2024-04-27)

Fixed

  • shared use of commander between homebridge and the UI repo

Other Changes

  • Update Discord Webhook

v1.8.0 (2024-04-20)

Added

  • allow for FirmwareRevision override in config
  • add GitHub labeler action
  • allow custom NODE_OPTIONS and DEBUG on child bridges
  • add logging success colour (#3581)
  • adds alpha publisher

Changed

  • improve README installation docs
  • updated dependencies
  • updated Discord Webhooks so notifications are seperated for release and pre-release
  • updated lint rules for imports
  • regenerate docs
  • update hap-nodejs version

Homebridge Dependencies

  • hap-nodejs @ v0.12.0

v1.7.0 (2023-11-04)

Reminder: Node.js v18.15.0 or later is required to run Homebridge.

Other Changes

  • Update dependencies by @bwp91 in #3459 and #3460

v1.6.1 (2023-04-30)

Bug Fixes

  • Fixed an issue with the avahi advertiser 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

v1.6.0 (2022-11-26)

What's Changed

  • Updated hap-nodejs to v0.11.0 adding support for systemd-resolved mDNS 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 #3260
  • Update to provide compatibility with hap-nodejs 0.11.0 by @Supereg in #3263

New Contributors

  • @elyscape made their first contribution in #3260

v1.5.1 (2022-10-25)

Changes

v1.5.0 (2022-06-22)

Featured Changes

  • Add support for stopping / starting a child bridge via the Homebridge UI @oznu #3139

Other Changes

  • Add support for package.json exports field @ShogunPanda #3016, #3165

v1.4.1 (2022-04-29)

Featured Changes

  • Upgraded HAP-NodeJS to v0.10.2
    • Fix an issue with network interface family detection when running Node.js 18 @oznu #947
    • Fixed memory leak with HomeKit DataStreams @Supereg #943
  • Strict plugin resolution option added to Homebridge plugin @oznu #3117
  • Replace https://git.io URLs as the service is being depreciated

Bug Fixes

This release upgrades various dependencies with bug fixes and security fixes.

v1.4.0 (2022-01-22)

Featured Changes

  • HomeKit Secure Video @Supereg #3056
  • New advertiser: Avahi/D-Bus API @adriancable

Bug Fixes

  • Fix ES Module loading with absolute path @seydx #3070
  • Fix casing of generated inline docs @Supereg #3066

v1.3.9 (2021-12-29)

Bug Fixes

  • Fixed a crash occurring for any encrypted communication when running Node.js 17 on linux based machines #3046

v1.3.8 (2021-10-22)

Featured Changes

  • PluginManager would abort plugin loading if one plugin encounters a loading error #3017

Other Changes

  • Move to centrally managed Issue form templates and GitHub Action workflows #3011

v1.3.6 (2021-11-10)

Notable changes

  • Added support for ESM modules and async plugin initializers #2915
  • Upgraded HAP-NodeJS to v0.9.7 providing bug fixes #3008

v1.3.5 (2021-10-08)

Notable changes

This version adds new services and characteristics introduced with iOS 15.

  • AccessCode and NFCAccess services 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: Siri and SmartSpeaker

Bug Fixes

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.

v1.3.4 (2021-03-16)

Bug Fixes

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

v1.3.3 (2021-03-10)

Bug Fixes

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

Other Changes

  • #2856 - Gracefully handle duplicate UUID errors when restoring the accessory cache.
  • Update HAP-NodeJS to v0.9.3.

v1.3.2 (2021-03-04)

Please make sure you have done the following before updating:

Notable Changes

Other Changes

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

v1.3.1 (2021-02-23)

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.

Notable Changes

  • #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.15 down from 0.
  • Characteristic warning messaging improvements.
  • Update HAP-NodeJS to v0.9.2.

v1.3.0 (2021-02-20)

Pre-Update Checklist

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.

Adaptive Lighting

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

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

mDNS Advertiser Selection

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.

Breaking Changes

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.

Other Notable Changes

  • Added the ability to disable individual plugins without having to remove their config from the config.json file.
  • 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.

Changes For Developers

Compatibility

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.

Rolling Back

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.

v1.2.5 (2020-12-28)

Bug Fixes

  • Updated HAP-NodeJS to v0.8.5 incorporating fixes made to the ciao mDNS library. Refer to the release notes of HAP-NodeJS for more technical details.

v1.2.4 (2020-12-05)

Bug Fixes

  • Updated the mdns library ciao to v1.1.0 introducing further stability improvements.

v1.2.3 (2020-09-21)

Bug Fixes

  • Updated the mdns library ciao to 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

v1.2.2 (2020-09-16)

Bug Fixes

  • 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

For Developers

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

v1.2.1 (2020-09-15)

Bug Fixes

  • 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

v1.2.0 (2020-09-14)

Notable Changes

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

v1.1.6 (2020-09-07)

Bug Fixes

  • Fixed an incompatibility introduced in v1.1.3 with the commander library

v1.1.3 (2020-09-03)

Bug Fixes

  • 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

v1.1.2 (2020-08-12)

Bug Fixes

  • #2646 - Fixed an issue with scoped plugin registration / cached accessory restoration.

v1.1.1 (2020-06-17)

Bug Fixes

v1.1.0 (2020-05-17)

Reminder: Node.js v10.17.0 or later is required to run Homebridge.

Notable Changes

  • 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
  • Updated HAP-Nodejs to v0.7.3.

Bug Fixes

  • #2551 Fixed a breaking change to the identify event on PlatformAccessory.

For Developers

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.

v1.0.4 (2020-04-30)

Bug Fixes

  • 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 an Identify listener of HAP-NodeJS (#2548)
  • Fixed mdns advertising to include all (and only) reachable addresses for the given machine

v1.0.3 (2020-04-29)

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

v1.0.2 (2020-04-28)

Bug Fixes

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

v1.0.1 (2020-04-27)

Notable Changes

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

v1.0.0 (2020-04-27)

Breaking Changes

  • 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

Notable Changes

  • #2476 - Project converted to Typescript by @Supereg
  • Homebridge API version was bumped to 2.5 with the following additions:
    • The signatures of registerAccessory and registerPlatform 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 method configureController 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 methods configureCameraSource or configureController of the PlatformAccessory (removing the need to create an external accessory)
    • The hidden service and primary service properties are now properly restored for cached accessories
  • #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 and WiFiSatellite services)
      • HomeKit Secure Video (CameraOperatingMode and CameraEventRecordingManagement services)
      • AccessControl service
      • SmartSpeaker service
      • PowerManagement service
      • TransferTransportManagement service
    • 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 return 204 No Content if all characteristic writes succeeded and 207 Multi-Status if at least one write failed or when a write-response is delivered.
      • For /characteristics GET request the HAP server will return 200 Success if all characteristic reads succeeded and 207 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.
    • Many, many more bug fixes and improvements.

Other Changes

  • Homebridge now exports TypeScript types that can be used in the development of plugins.

v0.4.53 (2020-03-18)

Notable Changes

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