UNPKG

homebridge-broadlink-rm-pro

Version:

Broadlink RM plugin (including the mini and pro) for homebridge with AC Pro and TV features

78 lines (69 loc) 2.59 kB
//Credit: https://github.com/nfarina/homebridge/blob/master/lib/server.js#L425 function createAccessory( accessoryInstance, displayName, accessoryType, { hap: { Service, Accessory, Characteristic, uuid }, platformAccessory }, subType ) { const services = accessoryInstance.getServices(); // The returned "services" for this accessory are simply an array of new-API-style // Service instances which we can add to a created HAP-NodeJS Accessory directly. const accessoryUUID = uuid.generate(accessoryType + ':' + displayName); if (!subType){subType = accessoryType;} const accessory = new platformAccessory(displayName, accessoryUUID, subType); // listen for the identify event if the accessory instance has defined an identify() method if (accessoryInstance.identify) {accessory.on('identify', function(paired, callback) { accessoryInstance.identify(callback); });} services.forEach(function(service) { // if you returned an AccessoryInformation service, merge its values with ours if (service instanceof Service.AccessoryInformation) { const existingService = accessory.getService( Service.AccessoryInformation ); // pull out any values you may have defined const manufacturer = service.getCharacteristic( Characteristic.Manufacturer ).value; const model = service.getCharacteristic(Characteristic.Model).value; const serialNumber = service.getCharacteristic( Characteristic.SerialNumber ).value; const firmwareRevision = service.getCharacteristic( Characteristic.FirmwareRevision ).value; const hardwareRevision = service.getCharacteristic( Characteristic.HardwareRevision ).value; if (manufacturer) {existingService.setCharacteristic( Characteristic.Manufacturer, manufacturer );} if (model) {existingService.setCharacteristic(Characteristic.Model, model);} if (serialNumber) {existingService.setCharacteristic( Characteristic.SerialNumber, serialNumber );} if (firmwareRevision) {existingService.setCharacteristic( Characteristic.FirmwareRevision, firmwareRevision );} if (hardwareRevision) {existingService.setCharacteristic( Characteristic.HardwareRevision, hardwareRevision );} } else { accessory.addService(service); } }); return accessory; } module.exports = { createAccessory };