UNPKG

@ronniepettersson/homebridge-dummy

Version:

Create Homebridge accessories to help with automation and control — scheduling, delays, sensors, commands, webhooks, and more

40 lines 1.69 kB
import { createDummyAccessory } from './helpers.js'; import { PLATFORM_NAME, PLUGIN_ALIAS } from '../homebridge/settings.js'; import getVersion from '../tools/version.js'; export class GroupAccessory { static identifier(groupName) { return `${PLATFORM_NAME}:Group:${groupName.replace(/\s+/g, '')})}`; } accessories = []; constructor(Service, Characteristic, accessory, config, log, webhookManager) { accessory.getService(Service.AccessoryInformation) .setCharacteristic(Characteristic.Manufacturer, PLUGIN_ALIAS) .setCharacteristic(Characteristic.Model, GroupAccessory.name) .setCharacteristic(Characteristic.SerialNumber, accessory.UUID) .setCharacteristic(Characteristic.FirmwareRevision, getVersion()); const keepSubtypes = new Set(); for (const dummyConfig of config.accessories) { const dummyAccessory = createDummyAccessory(Service, Characteristic, accessory, dummyConfig, log, true); if (!dummyAccessory) { continue; } if (dummyConfig.enableWebook) { webhookManager.registerAccessory(dummyAccessory); } keepSubtypes.add(dummyAccessory.subtype); this.accessories.push(dummyAccessory); } ; for (const service of [...accessory.services]) { if (service.subtype && !keepSubtypes.has(service.subtype)) { accessory.removeService(service); } } } teardown() { this.accessories.forEach(accessory => { accessory.teardown(); }); } } //# sourceMappingURL=group.js.map