Skip to content

4.3.3

Pre-release
Pre-release
Compare
Choose a tag to compare
@ebaauw ebaauw released this 23 Jul 22:14
980b584

Major enhancements to support [email protected]:

  • Support for external accessories, not being bridged by the Homebridge accessory, but exposing their own HAP server;
  • Support asynchronous initialisation of delegates.
    • Accessories are only exposed once initialisation has completed.
    • Automatic cleanup of services and characteristics restored from cache, for which no delegate has been created during initialisation.
    • (Final subclass of) the delegate needs to emit and initialised event to indicate initialisation has been completed.
  • Enhanced CharacteristicDelegate:
    • Support getter and setter functions for synchronous reads and writes by HomeKit;
    • Support for monitoring through didSet events, emitted after HomeKit has been updated;
    • Support persisted values without a corresponding HomeKit characteristic;
  • Loose the peer dependency setup:
    • homebridge-lib can no longer be loaded by Homebridge; you might want to uninstall it using sudo npm -g un homebridge-lib;
    • Each plugin specifies homebridge-lib, once again, as a regular dependency, so npm will install it automatically with the plugin. This results, once again, in multiple installations of homebridge-lib;
    • The first plugin (based on homebridge-lib) loaded by Homebridge also registers homebridge-lib with Homebridge, and provides the hearbeat and UPnP listener to the other plugins.
  • Major code cleanup in an attempt to provide more consistency (causing some breaking changes):
    • Better distinction between characteristic vs characteristicDelegate. E.g. addCharacteristicDelegate() instead of addCharacteristic().
    • Better distinction between Characteristic (class), Characteristics (collection of classes), characteristic (instance) characteristics (collection of instances). Note: Characteristics.hap.*, Characteristics.eve.* vs Characteristic.Format vs Characteristic.Formats.*
  • Added developer documentation (work in progress).