Skip to content
This repository was archived by the owner on Jan 14, 2026. It is now read-only.

Commit 8450169

Browse files
committed
chore(Template): Immediately push new switch state after activating template. Device names may not contain :
1 parent 398896b commit 8450169

3 files changed

Lines changed: 7 additions & 2 deletions

File tree

config.schema.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
"title": "Prefix for template devices",
3939
"type": "string",
4040
"description": "Prefix for device template names",
41-
"default": "Template:"
41+
"default": "Template - "
4242
},
4343
"ignoredAccessories": {
4444
"type": "array",

src/accessories/template.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import type { CharacteristicValue, PlatformAccessory } from 'homebridge';
22
import type { FritzRedux } from '../platform.js';
33
import { Template as FritzTemplate } from '../fritzbox/accessories/template.js';
44
import { HomebridgeAccessory } from 'homebridge-lib';
5+
import { sleep } from '../utils/utils.js';
56

67
export class Template implements HomebridgeAccessory {
78
constructor(platform: FritzRedux, accessory: PlatformAccessory, device: FritzTemplate) {
@@ -16,7 +17,7 @@ export class Template implements HomebridgeAccessory {
1617

1718
// Create switch service
1819
const service = accessory.getService(platform.Service.Switch) || accessory.addService(platform.Service.Switch);
19-
service.setCharacteristic(platform.Characteristic.Name, `${platform.config.templatePrefix} ${device.name}`);
20+
service.setCharacteristic(platform.Characteristic.Name, `${platform.config.templatePrefix}${device.name}`);
2021
service.getCharacteristic(platform.Characteristic.On)
2122
.onGet(() => 0) // Template state cannot be queried
2223
.onSet(async (value: CharacteristicValue) => {
@@ -25,6 +26,8 @@ export class Template implements HomebridgeAccessory {
2526
}
2627
platform.log.info(`Activating template '${device.name}'`);
2728
await device.activate();
29+
await sleep(1000);
30+
service.setCharacteristic(platform.Characteristic.On, 0);
2831
})
2932
.updateValue(0)
3033
;

src/utils/utils.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,5 @@ export const objectsEqualShallow = (obj1: object, obj2: object) => {
99

1010
return (Object.keys(obj1) as (keyof typeof obj1)[]).every((key) => (Object.prototype.hasOwnProperty.call(obj2, key) && obj1[key] === obj2[key]));
1111
};
12+
13+
export const sleep = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));

0 commit comments

Comments
 (0)