homebridge-dummy 1.0.0-beta.0 → 1.1.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -3
- package/README.md +26 -2
- package/config.schema.json +10 -2
- package/dist/accessory/base.d.ts +1 -0
- package/dist/accessory/base.js +9 -3
- package/dist/accessory/base.js.map +1 -1
- package/dist/accessory/group.d.ts +1 -0
- package/dist/accessory/group.js +13 -3
- package/dist/accessory/group.js.map +1 -1
- package/dist/accessory/helpers.d.ts +1 -1
- package/dist/accessory/helpers.js +1 -1
- package/dist/accessory/helpers.js.map +1 -1
- package/dist/accessory/onoff/onoff.js +1 -1
- package/dist/accessory/onoff/onoff.js.map +1 -1
- package/dist/homebridge/platform.d.ts +2 -1
- package/dist/homebridge/platform.js +31 -19
- package/dist/homebridge/platform.js.map +1 -1
- package/dist/homebridge-ui/public/index.html +3 -3
- package/dist/i18n/en.d.ts +1 -0
- package/dist/i18n/en.js +1 -0
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/i18n.d.ts +1 -0
- package/dist/i18n/template.d.ts +1 -0
- package/dist/i18n/zz.d.ts +1 -0
- package/dist/model/types.d.ts +1 -0
- package/img/banner.png +0 -0
- package/img/banner.xcf +0 -0
- package/img/icon.png +0 -0
- package/img/icon.xcf +0 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Please report any issues you encounter here: https://github.com/mpatfield/homebridge-dummy/issues -->
|
|
4
4
|
|
|
5
|
-
# ‼️
|
|
5
|
+
# ‼️ WARNING ‼️
|
|
6
6
|
|
|
7
|
-
### If upgrading from v0.9.2, Homebridge Dummy accessories will need to be reconfigured
|
|
7
|
+
### If upgrading from v0.9.2 or earlier, automations and scenes using Homebridge Dummy accessories will need to be reconfigured. Please downgrade to v0.9.2 or earlier now if you want to keep your existing setup.
|
|
8
8
|
|
|
9
|
-
###
|
|
9
|
+
### After updating, you will need to open Homebridge Dummy plugin settings to run the accessory migration helper.
|
|
10
10
|
|
|
11
11
|
### Full details [here](https://github.com/mpatfield/homebridge-dummy?tab=readme-ov-file#v10-migration).
|
|
12
12
|
|
|
@@ -14,6 +14,13 @@ Please report any issues you encounter here: https://github.com/mpatfield/homebr
|
|
|
14
14
|
|
|
15
15
|
All notable changes to homebridge-dummy will be documented in this file.
|
|
16
16
|
|
|
17
|
+
## 1.1.0-alpha.0 (2025-07-16)
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- (Beta) Groups - Items sharing the same group name will be collected together in the Home app UI
|
|
22
|
+
- ⚠️ Be aware that adding/removing/changing the group name will require you to reconfigure any HomeKit scenes or automations
|
|
23
|
+
|
|
17
24
|
## 1.0.0-beta.0 (2025-07-14)
|
|
18
25
|
|
|
19
26
|
### Added
|
package/README.md
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
2
|
<p align="center">
|
|
3
3
|
<img src="https://github.com/mpatfield/homebridge-dummy/blob/latest/img/banner.png?raw=true" width="600">
|
|
4
4
|
</p>
|
|
5
|
-
-->
|
|
6
5
|
|
|
7
6
|
<span align="center">
|
|
8
7
|
|
|
@@ -84,6 +83,7 @@ Using the Homebridge Config UI is the easiest way to set up this plugin. However
|
|
|
84
83
|
{
|
|
85
84
|
"id": "string",
|
|
86
85
|
"name": "string",
|
|
86
|
+
"groupName": "string",
|
|
87
87
|
"type": "Door | Lightbulb | LockMechanism | Outlet | Switch | Window | WindoCovering",
|
|
88
88
|
"timer": {
|
|
89
89
|
"delay": number,
|
|
@@ -115,6 +115,9 @@ All fields are optional unless noted with an asterisk (*)
|
|
|
115
115
|
- `name`* - The display name for the accessory in HomeKit
|
|
116
116
|
- `type`* - The type of accessory: `Door`, `Lightbulb`, `LockMechanism`, `Outlet`, `Switch`, `Window`, or `WindowCovering`
|
|
117
117
|
|
|
118
|
+
- `groupName` - (Beta) Items sharing the same group name will be collected together in the Home app UI
|
|
119
|
+
- ⚠️ Be aware that adding/removing/changing the group name will require you to reconfigure any HomeKit scenes or automations
|
|
120
|
+
|
|
118
121
|
- `timer.delay` — If defined, the switch will automatically toggle after this many seconds/minutes/hours
|
|
119
122
|
- `timer.units` — The units to use for delay above (`SECONDS`, `MINUTES`, or `HOURS`). *Required if delay is set.
|
|
120
123
|
- `timer.random` — If true, the delay will be randomized with a maximum value of `timer.delay`
|
|
@@ -249,8 +252,29 @@ All fields are optional unless noted with an asterisk (*)
|
|
|
249
252
|
}
|
|
250
253
|
```
|
|
251
254
|
|
|
255
|
+
### Group
|
|
256
|
+
```json
|
|
257
|
+
{
|
|
258
|
+
"name": "Outlet 1",
|
|
259
|
+
"type": "Outlet",
|
|
260
|
+
"groupName": "Powerstrip"
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"name": "Outlet 2",
|
|
264
|
+
"type": "Outlet",
|
|
265
|
+
"groupName": "Powerstrip"
|
|
266
|
+
}
|
|
267
|
+
{
|
|
268
|
+
"name": "Outlet 3",
|
|
269
|
+
"type": "Outlet",
|
|
270
|
+
"groupName": "Powerstrip"
|
|
271
|
+
}
|
|
272
|
+
```
|
|
273
|
+
|
|
252
274
|
## Credits
|
|
253
275
|
|
|
254
276
|
Special thanks to [@nfarina](https://github.com/nfarina) for creating the original version of this plugin and maintaining it for almost 10 (!!!) years
|
|
255
277
|
|
|
278
|
+
[Keryan Belahcene](https://www.instagram.com/keryan.me) for creating the [Flume](https://github.com/homebridge-plugins/homebridge-flume) banner image which was adapted for use with this plugin
|
|
279
|
+
|
|
256
280
|
And to the amazing creators/contributors of [Homebridge](https://homebridge.io) who made this plugin possible!
|
package/config.schema.json
CHANGED
|
@@ -53,6 +53,10 @@
|
|
|
53
53
|
"enum": ["Door", "Lightbulb", "LockMechanism", "Outlet", "Switch", "Window", "WindowCovering"],
|
|
54
54
|
"enumNames": ["${config.enumNames.door}", "${config.enumNames.lightbulb}", "${config.enumNames.lockMechanism}", "${config.enumNames.outlet}", "${config.enumNames.switch}", "${config.enumNames.window}", "${config.enumNames.windowCovering}"]
|
|
55
55
|
},
|
|
56
|
+
"groupName": {
|
|
57
|
+
"type": "string",
|
|
58
|
+
"title": "${config.title.groupName}"
|
|
59
|
+
},
|
|
56
60
|
"timer": { "$ref": "#/definitions/timer" },
|
|
57
61
|
"sensor": {
|
|
58
62
|
"type": "string",
|
|
@@ -62,9 +66,9 @@
|
|
|
62
66
|
},
|
|
63
67
|
"defaultBrightness": {
|
|
64
68
|
"type": "number",
|
|
69
|
+
"title": "${config.title.defaultBrightness}",
|
|
65
70
|
"minimum": 0,
|
|
66
|
-
"maximum": 100
|
|
67
|
-
"title": "${config.title.defaultBrightness}"
|
|
71
|
+
"maximum": 100
|
|
68
72
|
},
|
|
69
73
|
"defaultOn": {
|
|
70
74
|
"type": "number",
|
|
@@ -144,6 +148,10 @@
|
|
|
144
148
|
{
|
|
145
149
|
"key": "accessories[].type",
|
|
146
150
|
"flex": "1 1 0"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"key": "accessories[].groupName",
|
|
154
|
+
"flex": "1 1 0"
|
|
147
155
|
}
|
|
148
156
|
]
|
|
149
157
|
},
|
package/dist/accessory/base.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export declare abstract class DummyAccessory<C extends DummyConfig> {
|
|
|
13
13
|
private readonly timer;
|
|
14
14
|
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: C, log: Log, persistPath: string, isGrouped: boolean);
|
|
15
15
|
protected abstract getAccessoryType(): AccessoryType;
|
|
16
|
+
get subtype(): string | undefined;
|
|
16
17
|
teardown(): void;
|
|
17
18
|
protected get identifier(): string;
|
|
18
19
|
protected get isStateful(): boolean;
|
package/dist/accessory/base.js
CHANGED
|
@@ -27,9 +27,12 @@ export class DummyAccessory {
|
|
|
27
27
|
this.timer = new Timer(config.name, config.disableLogging ? undefined : log);
|
|
28
28
|
const serviceInstance = Service[this.getAccessoryType()];
|
|
29
29
|
if (isGrouped) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
let accessoryService = accessory.getServiceById(serviceInstance, this.identifier);
|
|
31
|
+
if (!accessoryService) {
|
|
32
|
+
accessoryService = accessory.addService(serviceInstance, config.name, this.identifier);
|
|
33
|
+
accessoryService.setCharacteristic(Characteristic.ConfiguredName, config.name);
|
|
34
|
+
}
|
|
35
|
+
this.accessoryService = accessoryService;
|
|
33
36
|
return;
|
|
34
37
|
}
|
|
35
38
|
accessory.getService(Service.AccessoryInformation)
|
|
@@ -41,6 +44,9 @@ export class DummyAccessory {
|
|
|
41
44
|
.setCharacteristic(Characteristic.FirmwareRevision, getVersion());
|
|
42
45
|
this.accessoryService = accessory.getService(serviceInstance) || accessory.addService(serviceInstance);
|
|
43
46
|
}
|
|
47
|
+
get subtype() {
|
|
48
|
+
return this.accessoryService.subtype;
|
|
49
|
+
}
|
|
44
50
|
teardown() {
|
|
45
51
|
this.timer.teardown();
|
|
46
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/accessory/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGrC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAK1C,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAE7C,MAAM,OAAgB,cAAc;IAWb;IACA;IACA;IACA;IACA;IACA;IAdd,MAAM,CAAC,UAAU,CAAC,MAAmB;QAC1C,OAAO,MAAM,CAAC,EAAE,IAAI,GAAG,aAAa,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAC,EAAE,CAAC,EAAE,CAAC;IAC1F,CAAC;IAEkB,gBAAgB,CAAU;IAE5B,KAAK,CAAQ;IAE9B,YACqB,OAAoB,EACpB,cAAkC,EAClC,SAA4B,EAC5B,MAAS,EACT,GAAQ,EACR,WAAmB,EACtC,SAAkB;QANC,YAAO,GAAP,OAAO,CAAa;QACpB,mBAAc,GAAd,cAAc,CAAoB;QAClC,cAAS,GAAT,SAAS,CAAmB;QAC5B,WAAM,GAAN,MAAM,CAAG;QACT,QAAG,GAAH,GAAG,CAAK;QACR,gBAAW,GAAX,WAAW,CAAQ;QAItC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAE7E,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAEzD,IAAI,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/accessory/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ export declare class GroupAccessory {
|
|
|
8
8
|
protected readonly config: GroupConfig;
|
|
9
9
|
protected readonly log: Log;
|
|
10
10
|
protected readonly persistPath: string;
|
|
11
|
+
static identifier(groupName: string): string;
|
|
11
12
|
private readonly accessories;
|
|
12
13
|
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: GroupConfig, log: Log, persistPath: string);
|
|
13
14
|
teardown(): void;
|
package/dist/accessory/group.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { PLUGIN_ALIAS } from '../homebridge/settings.js';
|
|
1
|
+
import { createDummyAccessory } from './helpers.js';
|
|
2
|
+
import { PLATFORM_NAME, PLUGIN_ALIAS } from '../homebridge/settings.js';
|
|
3
3
|
import getVersion from '../tools/version.js';
|
|
4
4
|
export class GroupAccessory {
|
|
5
5
|
Service;
|
|
@@ -8,6 +8,9 @@ export class GroupAccessory {
|
|
|
8
8
|
config;
|
|
9
9
|
log;
|
|
10
10
|
persistPath;
|
|
11
|
+
static identifier(groupName) {
|
|
12
|
+
return `${PLATFORM_NAME}:Group:${groupName.replace(/\s+/g, '')})}`;
|
|
13
|
+
}
|
|
11
14
|
accessories = [];
|
|
12
15
|
constructor(Service, Characteristic, accessory, config, log, persistPath) {
|
|
13
16
|
this.Service = Service;
|
|
@@ -21,14 +24,21 @@ export class GroupAccessory {
|
|
|
21
24
|
.setCharacteristic(Characteristic.Model, GroupAccessory.name)
|
|
22
25
|
.setCharacteristic(Characteristic.SerialNumber, accessory.UUID)
|
|
23
26
|
.setCharacteristic(Characteristic.FirmwareRevision, getVersion());
|
|
27
|
+
const keepSubtypes = new Set();
|
|
24
28
|
for (const dummyConfig of config.accessories) {
|
|
25
|
-
const dummyAccessory =
|
|
29
|
+
const dummyAccessory = createDummyAccessory(this.Service, this.Characteristic, accessory, dummyConfig, this.log, persistPath, true);
|
|
26
30
|
if (!dummyAccessory) {
|
|
27
31
|
continue;
|
|
28
32
|
}
|
|
33
|
+
keepSubtypes.add(dummyAccessory.subtype);
|
|
29
34
|
this.accessories.push(dummyAccessory);
|
|
30
35
|
}
|
|
31
36
|
;
|
|
37
|
+
for (const service of [...accessory.services]) {
|
|
38
|
+
if (service.subtype && !keepSubtypes.has(service.subtype)) {
|
|
39
|
+
accessory.removeService(service);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
32
42
|
}
|
|
33
43
|
teardown() {
|
|
34
44
|
this.accessories.forEach(accessory => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group.js","sourceRoot":"","sources":["../../src/accessory/group.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"group.js","sourceRoot":"","sources":["../../src/accessory/group.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAKpD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAE7C,MAAM,OAAO,cAAc;IASJ;IACA;IACA;IACA;IACA;IACA;IAZd,MAAM,CAAC,UAAU,CAAC,SAAiB;QACxC,OAAO,GAAG,aAAa,UAAU,SAAS,CAAC,OAAO,CAAC,MAAM,EAAC,EAAE,CAAC,IAAI,CAAC;IACpE,CAAC;IAEgB,WAAW,GAAoC,EAAE,CAAC;IAEnE,YACqB,OAAoB,EACpB,cAAkC,EAClC,SAA4B,EAC5B,MAAmB,EACnB,GAAQ,EACR,WAAmB;QALnB,YAAO,GAAP,OAAO,CAAa;QACpB,mBAAc,GAAd,cAAc,CAAoB;QAClC,cAAS,GAAT,SAAS,CAAmB;QAC5B,WAAM,GAAN,MAAM,CAAa;QACnB,QAAG,GAAH,GAAG,CAAK;QACR,gBAAW,GAAX,WAAW,CAAQ;QAGtC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAE;aAChD,iBAAiB,CAAC,cAAc,CAAC,YAAY,EAAE,YAAY,CAAC;aAC5D,iBAAiB,CAAC,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC;aAC5D,iBAAiB,CAAC,cAAc,CAAC,YAAY,EAAE,SAAS,CAAC,IAAI,CAAC;aAC9D,iBAAiB,CAAC,cAAc,CAAC,gBAAgB,EAAE,UAAU,EAAE,CAAC,CAAC;QAEpE,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QAEvC,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YAE7C,MAAM,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;YACpI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,SAAS;YACX,CAAC;YAED,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,OAAQ,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;QAAA,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9C,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1D,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAEM,QAAQ;QACb,IAAI,CAAC,WAAW,CAAC,OAAO,CAAE,SAAS,CAAC,EAAE;YACpC,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -2,4 +2,4 @@ import { PlatformAccessory } from 'homebridge';
|
|
|
2
2
|
import { DummyAccessory } from './base.js';
|
|
3
3
|
import * as Types from '../model/types.js';
|
|
4
4
|
import { Log } from '../tools/log.js';
|
|
5
|
-
export declare function
|
|
5
|
+
export declare function createDummyAccessory(Service: Types.ServiceType, Characteristic: Types.CharacteristicType, accessory: PlatformAccessory, config: Types.DummyConfig, log: Log, persistPath: string, isGrouped?: boolean): DummyAccessory<Types.DummyConfig> | null;
|
|
@@ -7,7 +7,7 @@ import { SwitchAccessory } from './onoff/switch.js';
|
|
|
7
7
|
import { WindowAccessory } from './position/window.js';
|
|
8
8
|
import { strings } from '../i18n/i18n.js';
|
|
9
9
|
import * as Types from '../model/types.js';
|
|
10
|
-
export function
|
|
10
|
+
export function createDummyAccessory(Service, Characteristic, accessory, config, log, persistPath, isGrouped = false) {
|
|
11
11
|
switch (config.type) {
|
|
12
12
|
case Types.AccessoryType.Door:
|
|
13
13
|
return new DoorAccessory(Service, Characteristic, accessory, config, log, persistPath, isGrouped);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/accessory/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAI3C,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/accessory/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAI3C,MAAM,UAAU,oBAAoB,CAClC,OAA0B,EAC1B,cAAwC,EACxC,SAA4B,EAC5B,MAAyB,EACzB,GAAQ,EACR,WAAmB,EACnB,YAAqB,KAAK;IAG1B,QAAO,MAAM,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,KAAK,CAAC,aAAa,CAAC,IAAI;YAC3B,OAAO,IAAI,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACpG,KAAK,KAAK,CAAC,aAAa,CAAC,SAAS;YAChC,OAAO,IAAI,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACzG,KAAK,KAAK,CAAC,aAAa,CAAC,aAAa;YACpC,OAAO,IAAI,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACpG,KAAK,KAAK,CAAC,aAAa,CAAC,MAAM;YAC7B,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACtG,KAAK,KAAK,CAAC,aAAa,CAAC,MAAM;YAC7B,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACtG,KAAK,KAAK,CAAC,aAAa,CAAC,MAAM;YAC7B,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACtG,KAAK,KAAK,CAAC,aAAa,CAAC,cAAc;YACrC,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACrG;YACE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -21,7 +21,7 @@ export class OnOffAccessory extends DummyAccessory {
|
|
|
21
21
|
this.accessoryService.updateCharacteristic(this.Characteristic.On, this.on);
|
|
22
22
|
}
|
|
23
23
|
get defaultOn() {
|
|
24
|
-
return this.config.defaultOn ?
|
|
24
|
+
return this.config.defaultOn ? true : false;
|
|
25
25
|
}
|
|
26
26
|
async getOn() {
|
|
27
27
|
return this.on;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onoff.js","sourceRoot":"","sources":["../../../src/accessory/onoff/onoff.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAK7C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,OAAgB,cAAoD,SAAQ,cAAiB;IAEzF,EAAE,CAAsB;IAExB,MAAM,CAAmB;IAEjC,YACE,OAAoB,EACpB,cAAkC,EAClC,SAA4B,EAC5B,MAAS,EACT,GAAQ,EACR,WAAmB,EACnB,SAAkB;QAElB,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAE/E,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAEzB,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAEzI,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAC;aACvD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC5B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEhC,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,YAAY;QAExB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,EAAE,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;QACvF,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,IAAY,SAAS;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"onoff.js","sourceRoot":"","sources":["../../../src/accessory/onoff/onoff.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,11 +6,12 @@ export declare class HomebridgeDummyPlatform implements DynamicPlatformPlugin {
|
|
|
6
6
|
private readonly Service;
|
|
7
7
|
private readonly Characteristic;
|
|
8
8
|
private readonly log;
|
|
9
|
-
private readonly
|
|
9
|
+
private readonly platformAccessories;
|
|
10
10
|
private readonly dummyAccessories;
|
|
11
11
|
constructor(logger: Logger, config: DummyPlatformConfig, api: API);
|
|
12
12
|
configureAccessory(accessory: PlatformAccessory): void;
|
|
13
13
|
private teardown;
|
|
14
14
|
private setup;
|
|
15
|
+
private createPlatformAccessory;
|
|
15
16
|
private removeCachedAccessory;
|
|
16
17
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { PLATFORM_NAME, PLUGIN_NAME } from './settings.js';
|
|
2
2
|
import { DummyAccessory } from '../accessory/base.js';
|
|
3
|
-
import {
|
|
3
|
+
import { GroupAccessory } from '../accessory/group.js';
|
|
4
|
+
import { createDummyAccessory } from '../accessory/helpers.js';
|
|
4
5
|
import { setLanguage, strings } from '../i18n/i18n.js';
|
|
5
6
|
import { migrateAccessories } from '../tools/configMigration.js';
|
|
6
7
|
import { Log } from '../tools/log.js';
|
|
@@ -11,7 +12,7 @@ export class HomebridgeDummyPlatform {
|
|
|
11
12
|
Service;
|
|
12
13
|
Characteristic;
|
|
13
14
|
log;
|
|
14
|
-
|
|
15
|
+
platformAccessories = new Map();
|
|
15
16
|
dummyAccessories = [];
|
|
16
17
|
constructor(logger, config, api) {
|
|
17
18
|
this.config = config;
|
|
@@ -31,7 +32,7 @@ export class HomebridgeDummyPlatform {
|
|
|
31
32
|
}
|
|
32
33
|
configureAccessory(accessory) {
|
|
33
34
|
this.log.always(strings.startup.restoringAccessory, accessory.displayName);
|
|
34
|
-
this.
|
|
35
|
+
this.platformAccessories.set(accessory.context.identifier, accessory);
|
|
35
36
|
}
|
|
36
37
|
teardown() {
|
|
37
38
|
this.dummyAccessories.forEach(accessory => {
|
|
@@ -46,31 +47,33 @@ export class HomebridgeDummyPlatform {
|
|
|
46
47
|
accessories.push(...migratedAccessories);
|
|
47
48
|
}
|
|
48
49
|
const persistPath = this.api.user.persistPath();
|
|
49
|
-
const
|
|
50
|
+
const groupAccessories = new Map();
|
|
50
51
|
for (const accessoryConfig of accessories) {
|
|
52
|
+
if (accessoryConfig.groupName?.length) {
|
|
53
|
+
const groupConfig = groupAccessories.get(accessoryConfig.groupName) || { accessories: [] };
|
|
54
|
+
groupConfig.accessories.push(accessoryConfig);
|
|
55
|
+
groupAccessories.set(accessoryConfig.groupName, groupConfig);
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
51
58
|
const id = DummyAccessory.identifier(accessoryConfig);
|
|
52
59
|
keepIdentifiers.add(id);
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
const name = accessoryConfig.name;
|
|
56
|
-
this.log.always(strings.startup.newAccessory, name);
|
|
57
|
-
const uuid = this.api.hap.uuid.generate(id);
|
|
58
|
-
accessory = new this.api.platformAccessory(name, uuid);
|
|
59
|
-
accessory.context.identifier = id;
|
|
60
|
-
newAccessories.push(accessory);
|
|
61
|
-
this.cachedAccessories.set(id, accessory);
|
|
62
|
-
}
|
|
63
|
-
const dummyAccessory = createAccessory(this.Service, this.Characteristic, accessory, accessoryConfig, this.log, persistPath);
|
|
60
|
+
const accessory = this.platformAccessories.get(id) ?? this.createPlatformAccessory(id, accessoryConfig.name);
|
|
61
|
+
const dummyAccessory = createDummyAccessory(this.Service, this.Characteristic, accessory, accessoryConfig, this.log, persistPath);
|
|
64
62
|
if (!dummyAccessory) {
|
|
65
63
|
continue;
|
|
66
64
|
}
|
|
67
65
|
this.dummyAccessories.push(dummyAccessory);
|
|
68
66
|
}
|
|
69
67
|
;
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
for (const groupName of groupAccessories.keys()) {
|
|
69
|
+
const groupConfig = groupAccessories.get(groupName);
|
|
70
|
+
const id = GroupAccessory.identifier(groupName);
|
|
71
|
+
keepIdentifiers.add(id);
|
|
72
|
+
const accessory = this.platformAccessories.get(id) ?? this.createPlatformAccessory(id, groupName);
|
|
73
|
+
const groupAccessory = new GroupAccessory(this.Service, this.Characteristic, accessory, groupConfig, this.log, persistPath);
|
|
74
|
+
this.dummyAccessories.push(groupAccessory);
|
|
72
75
|
}
|
|
73
|
-
this.
|
|
76
|
+
this.platformAccessories.forEach(accessory => {
|
|
74
77
|
if (!keepIdentifiers.has(accessory.context.identifier)) {
|
|
75
78
|
this.removeCachedAccessory(accessory);
|
|
76
79
|
}
|
|
@@ -78,10 +81,19 @@ export class HomebridgeDummyPlatform {
|
|
|
78
81
|
const randIndex = Math.floor(Math.random() * strings.startup.welcome.length);
|
|
79
82
|
this.log.always(strings.startup.setupComplete, strings.startup.welcome[randIndex]);
|
|
80
83
|
}
|
|
84
|
+
createPlatformAccessory(id, name) {
|
|
85
|
+
this.log.always(strings.startup.newAccessory, name);
|
|
86
|
+
const uuid = this.api.hap.uuid.generate(id);
|
|
87
|
+
const accessory = new this.api.platformAccessory(name, uuid);
|
|
88
|
+
accessory.context.identifier = id;
|
|
89
|
+
this.platformAccessories.set(id, accessory);
|
|
90
|
+
this.api.registerPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [accessory]);
|
|
91
|
+
return accessory;
|
|
92
|
+
}
|
|
81
93
|
removeCachedAccessory(accessory) {
|
|
82
94
|
this.log.always(strings.startup.removeAccessory, accessory.displayName);
|
|
83
95
|
this.api.unregisterPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [accessory]);
|
|
84
|
-
this.
|
|
96
|
+
this.platformAccessories.delete(accessory.context.identifier);
|
|
85
97
|
}
|
|
86
98
|
}
|
|
87
99
|
//# sourceMappingURL=platform.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/homebridge/platform.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/homebridge/platform.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
}
|
|
6
6
|
</style>
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
<p class="text-center">
|
|
9
9
|
<img
|
|
10
10
|
src="https://github.com/mpatfield/homebridge-dummy/blob/latest/img/banner.png?raw=true"
|
|
11
11
|
alt="Homebridge Dummy"
|
|
12
12
|
style="width: 60%;"
|
|
13
13
|
/>
|
|
14
|
-
</p>
|
|
14
|
+
</p>
|
|
15
15
|
|
|
16
16
|
<div id="support" class="text-center" style="display: none;">
|
|
17
17
|
<p i18n="support" i18n_replace="github"></p>
|
|
@@ -41,4 +41,4 @@
|
|
|
41
41
|
<em><p i18n="migrationDetails5" i18n_replace="migration"></p></em></br>
|
|
42
42
|
</div>
|
|
43
43
|
|
|
44
|
-
<script src="ui.js?v=1.
|
|
44
|
+
<script src="ui.js?v=1.1.0-alpha.0"></script>
|
package/dist/i18n/en.d.ts
CHANGED
package/dist/i18n/en.js
CHANGED
package/dist/i18n/en.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"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"}
|
package/dist/i18n/i18n.d.ts
CHANGED
package/dist/i18n/template.d.ts
CHANGED
package/dist/i18n/zz.d.ts
CHANGED
package/dist/model/types.d.ts
CHANGED
package/img/banner.png
ADDED
|
Binary file
|
package/img/banner.xcf
ADDED
|
Binary file
|
package/img/icon.png
ADDED
|
Binary file
|
package/img/icon.xcf
ADDED
|
Binary file
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"displayName": "Homebridge Dummy",
|
|
5
5
|
"description": "Dummy devices for Homebridge",
|
|
6
6
|
"type": "module",
|
|
7
|
-
"version": "1.
|
|
7
|
+
"version": "1.1.0-alpha.0",
|
|
8
8
|
"homepage": "https://github.com/mpatfield/homebridge-dummy#readme",
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|