homebridge-deconz
Version:
Homebridge plugin for deCONZ
44 lines (36 loc) • 1.27 kB
JavaScript
// homebridge-deconz/lib/DeconzAccessory/WindowCovering.js
// Copyright © 2022-2025 Erik Baauw. All rights reserved.
//
// Homebridge plugin for deCONZ.
import { DeconzAccessory } from '../DeconzAccessory/index.js'
/** Delegate class for a HomeKit accessory, corresponding to a light device
* or groups resource.
* @extends DeconzAccessory
* @memberof DeconzAccessory
*/
class WindowCovering extends DeconzAccessory {
/** Instantiate a delegate for an accessory corresponding to a device.
* @param {DeconzAccessory.Gateway} gateway - The gateway.
* @param {Deconz.Device} device - The device.
*/
constructor (gateway, device, settings = {}) {
super(gateway, device, gateway.Accessory.Categories.WINDOW_COVERING)
this.identify()
this.service = this.createService(device.resource, {
primaryService: true,
serviceName: this.values.serviceName
})
for (const subtype in device.resourceBySubtype) {
const resource = device.resourceBySubtype[subtype]
if (subtype === device.primary) {
continue
}
this.createService(resource)
}
setImmediate(() => {
this.debug('initialised')
this.emit('initialised')
})
}
}
DeconzAccessory.WindowCovering = WindowCovering