Releases: ebaauw/homebridge-lib
Releases · ebaauw/homebridge-lib
v4.4.9
v4.4.8
v4.4.7
Enhancements:
AccessoryDelegate
: Emitinitialised
event for each service delegate when accessory delegate has been initialised (so service delegate can remove stale characteristics).ServiceDelegate
: Don't emitinitialised
from service delegate constructor (now handled by accessory delegate);AccessoryInformation
delegate: Add characteristic delegate for Identify (so it won't be removed as stale characteristic). There's still an issue with twodidSet
listeners...
Bump dependencies:
- NodeJS v12.13.0 LTS.
Note: after upgrading the major version of NodeJS, make sure to re-compile any plugin that has (dependencies with) C extensions, by removing and re-installing the plugin:
$ sudo npm -g un homebridge-...
$ sudo npm -g i homebridge-... --unsafe-perm
v4.4.6
v4.4.5
Enhancements:
MyHomeKitTypes
: Add custom characteristics for homebridge-rpi.ServiceDelegate
: Add history service for homebridge-rpi, with history for Current Temperature and On.ServiceDelegate
: Add optional temperatureDelegate toHistory.Motion
.
Internal:
ServiceDelegate
: Rationalise history fingerprints and return values, see simont77/fakegato-history#75;EveHomeKitTypes
: Change Current Relative Humidity and Air Pressure to optional characteristics in Weather service.
v4.4.4
v4.4.3
Enhancements:
Platform
:- Don't delete accessories from HomeKit when
cachedAccessories
was cleared. This is realised by delaying the start of Homebridge's HAP server until plugin has initialised, when no accessories were restored. - Remove stale accessories;
- Handle primary service.
- Don't delete accessories from HomeKit when
ServiceDelegate
: support setting primary service and link services.CharacteristicDelegate
:- Improved logging;
- Initialise characteristic value with persisted value from accessory context, to handle changed characteristic type.
Bug fixes:
OptionParser
: save enum value.
Bump dependencies:
- NodeJS v10.16.2 LTS.
v4.4.2
Enhancements:
CharactertisticDelegate
: AddaddValue()
method to set HomeKit characteristic value, as if input by user.OptionParser
: Add tests;OptionParser
: Addkey
parameter toto...()
static methods;OptionParser
: Add more functionality:toIntString()
toNumber()
toNumberString()
toAsyncFunction()
toClass()
toInstance()
;
- Update developer documentation (work in progress)
Bug fixes:
JsonFormatter
: Handle obejct keys and array elements with valueundefined
(by not showing the key or element).
Technical:
Platform
: Don't put homebridge-lib version in key for global namespace. Need separate version for heartbeat, UPnP listener compatibility.JsonFormatter
: Store options inoptions
object instead of inthis
(which fails to OptionParser.toObject()` test).- Remove
TypeParser
; basic functionality now included inOptionParser
. - Implement
hap
,json
, andupnp
commands as exported modules, so plugins might install them. - Update Javascript layout to standard v13.1.0.
Bump dependencies:
- NodeJS v10.16.1 LTS
4.3.3
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 usingsudo npm -g un homebridge-lib
;- Each plugin specifies
homebridge-lib
, once again, as a regular dependency, sonpm
will install it automatically with the plugin. This results, once again, in multiple installations ofhomebridge-lib
; - The first plugin (based on
homebridge-lib
) loaded by Homebridge also registershomebridge-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
vscharacteristicDelegate
. E.g.addCharacteristicDelegate()
instead ofaddCharacteristic()
. - Better distinction between
Characteristic
(class),Characteristics
(collection of classes),characteristic
(instance)characteristics
(collection of instances). Note:Characteristics.hap.*
,Characteristics.eve.*
vsCharacteristic.Format
vsCharacteristic.Formats.*
- Better distinction between
- Added developer documentation (work in progress).
4.3.0
This release has been deprecated, please re-install homebridge-lib to revert to the latest version.
Changes:
- Lose
characteristics
property in favour ofaddCharacteristic()
. Problem was thatcharactertistic
was accessed from theServiceDelegete
supertype constructor, before the subtype was fully initialised (causingthis
to beundefined
).addCharacteristic()
takes a single parameter,params
, which has the same structure as an element of thecharactertistics
array. - Also added
params.didSet
, a function to be called as handler for thedidSet
event. - Fix wrong service key for context in
cachedAccessories
.