@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
JavaScript
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