homebridge-dummy 1.0.0-alpha.5 → 1.0.0-alpha.7
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 +6 -3
- package/README.md +32 -6
- package/config.schema.json +86 -6
- package/dist/accessory/base.d.ts +1 -0
- package/dist/accessory/base.js +14 -2
- package/dist/accessory/base.js.map +1 -1
- package/dist/accessory/door.d.ts +16 -0
- package/dist/accessory/door.js +75 -0
- package/dist/accessory/door.js.map +1 -0
- package/dist/accessory/helpers.js +3 -0
- package/dist/accessory/helpers.js.map +1 -1
- package/dist/accessory/lock.d.ts +1 -1
- package/dist/accessory/lock.js +8 -2
- package/dist/accessory/lock.js.map +1 -1
- package/dist/accessory/onoff.js +6 -0
- package/dist/accessory/onoff.js.map +1 -1
- package/dist/homebridge/platform.d.ts +4 -3
- package/dist/homebridge/platform.js +2 -2
- package/dist/homebridge/platform.js.map +1 -1
- package/dist/homebridge-ui/public/index.html +1 -1
- package/dist/homebridge-ui/public/ui.js +1 -1
- package/dist/i18n/en.d.ts +20 -0
- package/dist/i18n/en.js +20 -0
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/i18n.d.ts +20 -0
- package/dist/i18n/template.d.ts +20 -0
- package/dist/i18n/zz.d.ts +20 -0
- package/dist/model/types.d.ts +11 -14
- package/dist/model/types.js +1 -0
- package/dist/model/types.js.map +1 -1
- package/dist/tools/configMigration.js +1 -1
- package/dist/tools/configMigration.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
### ‼️ BREAKING
|
|
1
|
+
### ‼️ BREAKING CHANGES ‼️
|
|
2
|
+
|
|
3
|
+
### v1.0 is a complete code rewrite and automations using Homebridge Dummy accessories will need to be reconfigured.
|
|
2
4
|
|
|
3
5
|
### Full details [here](https://github.com/mpatfield/homebridge-dummy?tab=readme-ov-file#v10-migration).
|
|
4
6
|
|
|
@@ -10,13 +12,14 @@ All notable changes to homebridge-dummy will be documented in this file.
|
|
|
10
12
|
|
|
11
13
|
Please report any issues you encounter here: https://github.com/mpatfield/homebridge-dummy/issues
|
|
12
14
|
|
|
13
|
-
## 1.0.0-alpha.
|
|
15
|
+
## 1.0.0-alpha.7 (2025-07-03)
|
|
14
16
|
|
|
15
17
|
### Added
|
|
16
18
|
- Drastically improved config UI
|
|
17
19
|
- resetOnRestart option for stateful accessories to return to defaults on Homebridge restart
|
|
18
|
-
- Support for Outlet and Lock Mechanism
|
|
20
|
+
- Support for Door, Outlet, and Lock Mechanism
|
|
19
21
|
- Sensor support (CO2, CO, Contact, Leak, Motion, Occupancy, and Smoke)
|
|
22
|
+
- Execute arbitraty commands when accessory state changes
|
|
20
23
|
|
|
21
24
|
### Changed
|
|
22
25
|
- Complete code re-write to use [Platform Plugin](https://developers.homebridge.io/#/api/platform-plugins) instead of [Accessory Plugin](https://developers.homebridge.io/#/api/accessory-plugins)
|
package/README.md
CHANGED
|
@@ -84,16 +84,21 @@ Using the Homebridge Config UI is the easiest way to set up this plugin. However
|
|
|
84
84
|
{
|
|
85
85
|
"id": "string",
|
|
86
86
|
"name": "string",
|
|
87
|
-
"type": "Lightbulb | LockMechanism | Outlet | Switch",
|
|
87
|
+
"type": "Door | Lightbulb | LockMechanism | Outlet | Switch",
|
|
88
88
|
"timer": {
|
|
89
89
|
"delay": number,
|
|
90
90
|
"units": "SECONDS | MINUTES | HOURS",
|
|
91
91
|
"random": true | false
|
|
92
92
|
},
|
|
93
|
+
"sensor": "CarbonDioxideSensor | CarbonMonoxideSensor | ContactSensor | LeakSensor | MotionSensor | OccupancySensor | SmokeSensor",
|
|
93
94
|
"defaultOnOff": 1 | 0,
|
|
94
95
|
"defaultBrightness": 0-100,
|
|
95
96
|
"defaultLockState": 0 | 1,
|
|
96
|
-
"
|
|
97
|
+
"defaultPosition": 0 | 100,
|
|
98
|
+
"onCommand": "string",
|
|
99
|
+
"offCommand": "string",
|
|
100
|
+
"lockCommand": "string",
|
|
101
|
+
"unlockCommand": "string",
|
|
97
102
|
"resetOnRestart": true | false,
|
|
98
103
|
"disableLogging": true | false
|
|
99
104
|
}
|
|
@@ -108,21 +113,29 @@ All fields are optional unless noted with an asterisk (*)
|
|
|
108
113
|
- `id`* - A unique identifier for the accessory. Changing this value will create a new accessory.
|
|
109
114
|
|
|
110
115
|
- `name`* - The display name for the accessory in HomeKit
|
|
111
|
-
- `type`* - The type of accessory
|
|
116
|
+
- `type`* - The type of accessory: `Door`, `Lightbulb`, `LockMechanism`, `Outlet`, and `Switch` are supported
|
|
112
117
|
|
|
113
118
|
- `timer.delay` — If defined, the switch will automatically toggle after this many seconds/minutes/hours
|
|
114
119
|
- `timer.units` — The units to use for delay above (`SECONDS`, `MINUTES`, or `HOURS`). *Required if delay is set.
|
|
115
120
|
- `timer.random` — If true, the delay will be randomized with a maximum value of `timer.delay`
|
|
116
121
|
|
|
122
|
+
- `sensor` - Optionally attach a sensor that mirrors the state of the parent accessory
|
|
123
|
+
- Only works with `Lightbulb`, `Outlet`, and `Switch`
|
|
124
|
+
- Valid values are `CarbonDioxideSensor`, `CarbonMonoxideSensor`, `ContactSensor`, `LeakSensor`, `MotionSensor`, `OccupancySensor`, or `SmokeSensor`
|
|
125
|
+
|
|
117
126
|
- `defaultOnOff` — Initial value. Default _ON_ = 1, default _OFF_ = 0
|
|
118
127
|
|
|
119
128
|
- `defaultBrightness` — If set, lightbulb will have additional dimmer settings with this default brightness percentage
|
|
120
129
|
|
|
121
130
|
- `defaultLockState` - The initial value for the lock. UNSECURED (Unlocked) = 0, SECURED (Locked) = 1
|
|
122
131
|
|
|
123
|
-
- `
|
|
124
|
-
|
|
125
|
-
|
|
132
|
+
- `defaultPosition` — Initial position for the door, closed = 0, open = 100
|
|
133
|
+
|
|
134
|
+
- `onCommand` - Arbitraty command to execute when lightbulb/outlet/switch turns on
|
|
135
|
+
- `offCommand` - Arbitraty command to execute when lightbulb/outlet/switch turns off
|
|
136
|
+
|
|
137
|
+
- `lockCommand` - Arbitraty command to execute when lock mechanism is locked
|
|
138
|
+
- `unlockCommand` - Arbitraty command to execute when lock mechanism is unlocked
|
|
126
139
|
|
|
127
140
|
- `resetOnRestart` _ If true, all values return to defaults when Homebridge restarts. Ignored when timer is defined.
|
|
128
141
|
|
|
@@ -223,6 +236,19 @@ All fields are optional unless noted with an asterisk (*)
|
|
|
223
236
|
}
|
|
224
237
|
```
|
|
225
238
|
|
|
239
|
+
### Door
|
|
240
|
+
```json
|
|
241
|
+
{
|
|
242
|
+
"name": "Door",
|
|
243
|
+
"type": "Door",
|
|
244
|
+
"timer": {
|
|
245
|
+
"delay": 20,
|
|
246
|
+
"units": "SECONDS"
|
|
247
|
+
},
|
|
248
|
+
"defaultPosition": 0
|
|
249
|
+
}
|
|
250
|
+
```
|
|
251
|
+
|
|
226
252
|
## Credits
|
|
227
253
|
|
|
228
254
|
Special thanks to [@nfarina](https://github.com/nfarina) for creating the original version of this plugin and maintaining it for almost 10 (!!!) years
|
package/config.schema.json
CHANGED
|
@@ -50,10 +50,16 @@
|
|
|
50
50
|
"type": {
|
|
51
51
|
"type": "string",
|
|
52
52
|
"title": "${config.title.type}",
|
|
53
|
-
"enum": ["Lightbulb", "LockMechanism", "Outlet", "Switch"],
|
|
54
|
-
"enumNames": ["${config.enumNames.lightbulb}", "${config.enumNames.lockMechanism}", "${config.enumNames.outlet}", "${config.enumNames.switch}"]
|
|
53
|
+
"enum": ["Door", "Lightbulb", "LockMechanism", "Outlet", "Switch"],
|
|
54
|
+
"enumNames": ["${config.enumNames.door}", "${config.enumNames.lightbulb}", "${config.enumNames.lockMechanism}", "${config.enumNames.outlet}", "${config.enumNames.switch}"]
|
|
55
55
|
},
|
|
56
56
|
"timer": { "$ref": "#/definitions/timer" },
|
|
57
|
+
"sensor": {
|
|
58
|
+
"type": "string",
|
|
59
|
+
"title": "${config.title.sensor}",
|
|
60
|
+
"enum": ["CarbonDioxideSensor", "CarbonMonoxideSensor", "ContactSensor", "LeakSensor", "MotionSensor", "OccupancySensor", "SmokeSensor"],
|
|
61
|
+
"enumNames": ["${config.enumNames.carbonDioxideSensor}", "${config.enumNames.carbonMonoxideSensor}", "${config.enumNames.contactSensor}", "${config.enumNames.leakSensor}", "${config.enumNames.motionSensor}", "${config.enumNames.occupancySensor}", "${config.enumNames.smokeSensor}"]
|
|
62
|
+
},
|
|
57
63
|
"defaultBrightness": {
|
|
58
64
|
"type": "number",
|
|
59
65
|
"minimum": 0,
|
|
@@ -72,11 +78,35 @@
|
|
|
72
78
|
"enum": [1, 0],
|
|
73
79
|
"enumNames": ["${config.enumNames.secured}", "${config.enumNames.unsecured}"]
|
|
74
80
|
},
|
|
75
|
-
"
|
|
81
|
+
"defaultPosition": {
|
|
82
|
+
"type": "number",
|
|
83
|
+
"title": "${config.title.defaultPosition}",
|
|
84
|
+
"enum": [100, 0],
|
|
85
|
+
"enumNames": ["${config.enumNames.open}", "${config.enumNames.closed}"]
|
|
86
|
+
},
|
|
87
|
+
"commandOn": {
|
|
76
88
|
"type": "string",
|
|
77
|
-
"title": "${config.title.
|
|
78
|
-
|
|
79
|
-
|
|
89
|
+
"title": "${config.title.commandOn}"
|
|
90
|
+
},
|
|
91
|
+
"commandOff": {
|
|
92
|
+
"type": "string",
|
|
93
|
+
"title": "${config.title.commandOff}"
|
|
94
|
+
},
|
|
95
|
+
"commandLock": {
|
|
96
|
+
"type": "string",
|
|
97
|
+
"title": "${config.title.commandLock}"
|
|
98
|
+
},
|
|
99
|
+
"commandUnlock": {
|
|
100
|
+
"type": "string",
|
|
101
|
+
"title": "${config.title.commandUnlock}"
|
|
102
|
+
},
|
|
103
|
+
"commandOpen": {
|
|
104
|
+
"type": "string",
|
|
105
|
+
"title": "${config.title.commandOpen}"
|
|
106
|
+
},
|
|
107
|
+
"commandClose": {
|
|
108
|
+
"type": "string",
|
|
109
|
+
"title": "${config.title.commandClose}"
|
|
80
110
|
},
|
|
81
111
|
"resetOnRestart": {
|
|
82
112
|
"type": "boolean",
|
|
@@ -148,6 +178,42 @@
|
|
|
148
178
|
}
|
|
149
179
|
]
|
|
150
180
|
},
|
|
181
|
+
{
|
|
182
|
+
"type": "fieldset",
|
|
183
|
+
"title": "${config.title.commands}",
|
|
184
|
+
"description": "${config.description.commands}",
|
|
185
|
+
"condition": {
|
|
186
|
+
"functionBody": "return ['Lightbulb','Outlet','Switch'].includes(model.accessories?.[arguments[1]]?.type);"
|
|
187
|
+
},
|
|
188
|
+
"items": [
|
|
189
|
+
"accessories[].commandOn",
|
|
190
|
+
"accessories[].commandOff"
|
|
191
|
+
]
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"type": "fieldset",
|
|
195
|
+
"title": "${config.title.commands}",
|
|
196
|
+
"description": "${config.description.commands}",
|
|
197
|
+
"condition": {
|
|
198
|
+
"functionBody": "return ['LockMechanism'].includes(model.accessories?.[arguments[1]]?.type);"
|
|
199
|
+
},
|
|
200
|
+
"items": [
|
|
201
|
+
"accessories[].commandLock",
|
|
202
|
+
"accessories[].commandUnlock"
|
|
203
|
+
]
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
"type": "fieldset",
|
|
207
|
+
"title": "${config.title.commands}",
|
|
208
|
+
"description": "${config.description.commands}",
|
|
209
|
+
"condition": {
|
|
210
|
+
"functionBody": "return ['Door'].includes(model.accessories?.[arguments[1]]?.type);"
|
|
211
|
+
},
|
|
212
|
+
"items": [
|
|
213
|
+
"accessories[].commandOpen",
|
|
214
|
+
"accessories[].commandClose"
|
|
215
|
+
]
|
|
216
|
+
},
|
|
151
217
|
{
|
|
152
218
|
"type": "fieldset",
|
|
153
219
|
"title": "${config.title.options}",
|
|
@@ -193,6 +259,20 @@
|
|
|
193
259
|
"flex": "0 0 25%"
|
|
194
260
|
}
|
|
195
261
|
]
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
"type": "div",
|
|
265
|
+
"displayFlex": true,
|
|
266
|
+
"flex-direction": "row",
|
|
267
|
+
"condition": {
|
|
268
|
+
"functionBody": "return ['Door'].includes(model.accessories?.[arguments[1]]?.type);"
|
|
269
|
+
},
|
|
270
|
+
"items": [
|
|
271
|
+
{
|
|
272
|
+
"key": "accessories[].defaultPosition",
|
|
273
|
+
"flex": "0 0 25%"
|
|
274
|
+
}
|
|
275
|
+
]
|
|
196
276
|
},
|
|
197
277
|
{
|
|
198
278
|
"type": "div",
|
package/dist/accessory/base.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export declare abstract class DummyAccessory<C extends DummyConfig> {
|
|
|
19
19
|
protected get defaultStateStorageKey(): string;
|
|
20
20
|
protected startTimer(callback: () => Promise<void>): void;
|
|
21
21
|
protected cancelTimer(): void;
|
|
22
|
+
protected executeCommand(command: string): void;
|
|
22
23
|
protected assert(...keys: (keyof C)[]): boolean;
|
|
23
24
|
protected logIfDesired(message: string, ...parameters: string[]): void;
|
|
24
25
|
}
|
package/dist/accessory/base.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { exec } from 'child_process';
|
|
1
2
|
import { PLATFORM_NAME, PLUGIN_ALIAS } from '../homebridge/settings.js';
|
|
2
|
-
import
|
|
3
|
+
import { strings } from '../i18n/i18n.js';
|
|
4
|
+
import { STORAGE_KEY_SUFFIX_DEFAULT_STATE } from '../tools/storage.js';
|
|
3
5
|
import { Timer } from '../model/timer.js';
|
|
4
6
|
import { assert } from '../tools/validation.js';
|
|
5
|
-
import
|
|
7
|
+
import getVersion from '../tools/version.js';
|
|
6
8
|
export class DummyAccessory {
|
|
7
9
|
Service;
|
|
8
10
|
Characteristic;
|
|
@@ -63,6 +65,16 @@ export class DummyAccessory {
|
|
|
63
65
|
cancelTimer() {
|
|
64
66
|
this.timer.cancel();
|
|
65
67
|
}
|
|
68
|
+
executeCommand(command) {
|
|
69
|
+
exec(command, (_error, stdout, stderr) => {
|
|
70
|
+
if (stderr) {
|
|
71
|
+
this.log.error(`${strings.accessory.command.error}: %s\n%s`, this.config.name, command, stderr);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
this.logIfDesired(`${strings.accessory.command.executed}: %s\n%s`, this.config.name, command, stdout);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}
|
|
66
78
|
assert(...keys) {
|
|
67
79
|
return assert(this.log, this.config.name, this.config, ...keys);
|
|
68
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/accessory/base.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/accessory/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CharacteristicValue, PlatformAccessory } from 'homebridge';
|
|
2
|
+
import { DummyAccessory } from './base.js';
|
|
3
|
+
import { AccessoryType, CharacteristicType, DoorConfig, ServiceType } from '../model/types.js';
|
|
4
|
+
import { Log } from '../tools/log.js';
|
|
5
|
+
export declare class DoorAccessory extends DummyAccessory<DoorConfig> {
|
|
6
|
+
private position;
|
|
7
|
+
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: DoorConfig, log: Log, persistPath: string, isGrouped: boolean);
|
|
8
|
+
private initializePosition;
|
|
9
|
+
protected getAccessoryType(): AccessoryType;
|
|
10
|
+
private get defaultPosition();
|
|
11
|
+
protected getState(): Promise<CharacteristicValue>;
|
|
12
|
+
protected getPosition(): Promise<CharacteristicValue>;
|
|
13
|
+
protected setPosition(value: CharacteristicValue): Promise<void>;
|
|
14
|
+
private flip;
|
|
15
|
+
protected logPosition(value: CharacteristicValue): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { DummyAccessory } from './base.js';
|
|
2
|
+
import { strings } from '../i18n/i18n.js';
|
|
3
|
+
import { AccessoryType } from '../model/types.js';
|
|
4
|
+
import { storageGet, storageSet } from '../tools/storage.js';
|
|
5
|
+
const DOOR_OPEN = 100;
|
|
6
|
+
const DOOR_CLOSED = 0;
|
|
7
|
+
export class DoorAccessory extends DummyAccessory {
|
|
8
|
+
position;
|
|
9
|
+
constructor(Service, Characteristic, accessory, config, log, persistPath, isGrouped) {
|
|
10
|
+
super(Service, Characteristic, accessory, config, log, persistPath, isGrouped);
|
|
11
|
+
this.position = this.defaultPosition;
|
|
12
|
+
this.accessoryService.getCharacteristic(Characteristic.PositionState)
|
|
13
|
+
.onGet(this.getState.bind(this));
|
|
14
|
+
this.accessoryService.getCharacteristic(Characteristic.TargetPosition)
|
|
15
|
+
.onGet(this.getPosition.bind(this))
|
|
16
|
+
.onSet(this.setPosition.bind(this));
|
|
17
|
+
this.accessoryService.getCharacteristic(Characteristic.CurrentPosition)
|
|
18
|
+
.onGet(this.getPosition.bind(this));
|
|
19
|
+
this.initializePosition();
|
|
20
|
+
}
|
|
21
|
+
async initializePosition() {
|
|
22
|
+
if (this.isStateful) {
|
|
23
|
+
this.position = await storageGet(this.persistPath, this.defaultStateStorageKey) ?? this.position;
|
|
24
|
+
}
|
|
25
|
+
this.accessoryService.updateCharacteristic(this.Characteristic.TargetPosition, this.position);
|
|
26
|
+
this.accessoryService.updateCharacteristic(this.Characteristic.CurrentPosition, this.position);
|
|
27
|
+
}
|
|
28
|
+
getAccessoryType() {
|
|
29
|
+
return AccessoryType.Door;
|
|
30
|
+
}
|
|
31
|
+
get defaultPosition() {
|
|
32
|
+
return this.config.defaultPosition === undefined ? DOOR_CLOSED : this.config.defaultPosition;
|
|
33
|
+
}
|
|
34
|
+
async getState() {
|
|
35
|
+
return this.Characteristic.PositionState.STOPPED;
|
|
36
|
+
}
|
|
37
|
+
async getPosition() {
|
|
38
|
+
return this.position;
|
|
39
|
+
}
|
|
40
|
+
async setPosition(value) {
|
|
41
|
+
const targetPosition = value === DOOR_CLOSED ? DOOR_CLOSED : DOOR_OPEN;
|
|
42
|
+
if (this.position !== targetPosition) {
|
|
43
|
+
this.logPosition(targetPosition);
|
|
44
|
+
if (this.config.commandOpen && targetPosition !== DOOR_CLOSED) {
|
|
45
|
+
this.executeCommand(this.config.commandOpen);
|
|
46
|
+
}
|
|
47
|
+
else if (this.config.commandClose && targetPosition === DOOR_CLOSED) {
|
|
48
|
+
this.executeCommand(this.config.commandClose);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
this.position = targetPosition;
|
|
52
|
+
if (this.isStateful) {
|
|
53
|
+
await storageSet(this.persistPath, this.defaultStateStorageKey, this.position);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
if (this.position !== this.defaultPosition) {
|
|
57
|
+
this.startTimer(this.flip.bind(this));
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
this.cancelTimer();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
this.accessoryService.updateCharacteristic(this.Characteristic.TargetPosition, this.position);
|
|
64
|
+
this.accessoryService.updateCharacteristic(this.Characteristic.CurrentPosition, this.position);
|
|
65
|
+
}
|
|
66
|
+
async flip() {
|
|
67
|
+
const opposite = this.position === DOOR_CLOSED ? DOOR_OPEN : DOOR_CLOSED;
|
|
68
|
+
await this.setPosition(opposite);
|
|
69
|
+
}
|
|
70
|
+
logPosition(value) {
|
|
71
|
+
const message = value === DOOR_CLOSED ? strings.accessory.door.closed : strings.accessory.door.open;
|
|
72
|
+
this.logIfDesired(message, this.config.name);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=door.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"door.js","sourceRoot":"","sources":["../../src/accessory/door.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DoorAccessory } from './door.js';
|
|
1
2
|
import { LightbulbAccessory } from './lightbulb.js';
|
|
2
3
|
import { LockAccessory } from './lock.js';
|
|
3
4
|
import { OutletAccessory } from './outlet.js';
|
|
@@ -6,6 +7,8 @@ import { strings } from '../i18n/i18n.js';
|
|
|
6
7
|
import * as Types from '../model/types.js';
|
|
7
8
|
export function createAccessory(Service, Characteristic, accessory, config, log, persistPath, isGrouped = false) {
|
|
8
9
|
switch (config.type) {
|
|
10
|
+
case Types.AccessoryType.Door:
|
|
11
|
+
return new DoorAccessory(Service, Characteristic, accessory, config, log, persistPath, isGrouped);
|
|
9
12
|
case Types.AccessoryType.Lightbulb:
|
|
10
13
|
return new LightbulbAccessory(Service, Characteristic, accessory, config, log, persistPath, isGrouped);
|
|
11
14
|
case Types.AccessoryType.LockMechanism:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/accessory/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAI3C,MAAM,UAAU,eAAe,CAC7B,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,SAAS;YAChC,OAAO,IAAI,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/accessory/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAI3C,MAAM,UAAU,eAAe,CAC7B,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;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"}
|
package/dist/accessory/lock.d.ts
CHANGED
|
@@ -11,5 +11,5 @@ export declare class LockAccessory extends DummyAccessory<LockConfig> {
|
|
|
11
11
|
protected getState(): Promise<CharacteristicValue>;
|
|
12
12
|
protected setState(value: CharacteristicValue): Promise<void>;
|
|
13
13
|
private flip;
|
|
14
|
-
protected
|
|
14
|
+
protected logLockState(value: CharacteristicValue): void;
|
|
15
15
|
}
|
package/dist/accessory/lock.js
CHANGED
|
@@ -32,7 +32,13 @@ export class LockAccessory extends DummyAccessory {
|
|
|
32
32
|
}
|
|
33
33
|
async setState(value) {
|
|
34
34
|
if (this.state !== value) {
|
|
35
|
-
this.
|
|
35
|
+
this.logLockState(value);
|
|
36
|
+
if (this.config.commandLock && value === this.Characteristic.LockTargetState.SECURED) {
|
|
37
|
+
this.executeCommand(this.config.commandLock);
|
|
38
|
+
}
|
|
39
|
+
else if (this.config.commandUnlock && value === this.Characteristic.LockTargetState.UNSECURED) {
|
|
40
|
+
this.executeCommand(this.config.commandUnlock);
|
|
41
|
+
}
|
|
36
42
|
}
|
|
37
43
|
this.state = value;
|
|
38
44
|
if (this.isStateful) {
|
|
@@ -54,7 +60,7 @@ export class LockAccessory extends DummyAccessory {
|
|
|
54
60
|
this.Characteristic.LockTargetState.UNSECURED : this.Characteristic.LockTargetState.SECURED;
|
|
55
61
|
await this.setState(opposite);
|
|
56
62
|
}
|
|
57
|
-
|
|
63
|
+
logLockState(value) {
|
|
58
64
|
const message = value === this.Characteristic.LockTargetState.SECURED ?
|
|
59
65
|
strings.accessory.lock.secured : strings.accessory.lock.unsecured;
|
|
60
66
|
this.logIfDesired(message, this.config.name);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/accessory/lock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAA+C,MAAM,mBAAmB,CAAC;AAG/F,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,OAAO,aAAc,SAAQ,cAA0B;IAEnD,KAAK,CAAsB;IAEnC,YACE,OAAoB,EACpB,cAAkC,EAClC,SAA4B,EAC5B,MAAkB,EAClB,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,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QAE/B,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,cAAc,CAAC,eAAe,CAAC;aACpE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC/B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEnC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,cAAc,CAAC,gBAAgB,CAAC;aACrE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEnC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,eAAe;QAE3B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC;QAC7F,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5F,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/F,CAAC;IAES,gBAAgB;QACxB,OAAO,aAAa,CAAC,aAAa,CAAC;IACrC,CAAC;IAED,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;IACjI,CAAC;IAES,KAAK,CAAC,QAAQ;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAES,KAAK,CAAC,QAAQ,CAAC,KAA0B;QAEjD,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/accessory/lock.ts"],"names":[],"mappings":"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"}
|
package/dist/accessory/onoff.js
CHANGED
|
@@ -29,6 +29,12 @@ export class OnOffAccessory extends DummyAccessory {
|
|
|
29
29
|
async setOn(value) {
|
|
30
30
|
if (this.on !== value) {
|
|
31
31
|
this.logOnState(value);
|
|
32
|
+
if (this.config.commandOn && value) {
|
|
33
|
+
this.executeCommand(this.config.commandOn);
|
|
34
|
+
}
|
|
35
|
+
else if (this.config.commandOff && !value) {
|
|
36
|
+
this.executeCommand(this.config.commandOff);
|
|
37
|
+
}
|
|
32
38
|
}
|
|
33
39
|
this.on = value;
|
|
34
40
|
if (this.isStateful) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onoff.js","sourceRoot":"","sources":["../../src/accessory/onoff.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAK1C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,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,YAAY,CAAC;QAE5B,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,YAAY;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACvD,CAAC;IAES,KAAK,CAAC,KAAK;QACnB,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAES,KAAK,CAAC,KAAK,CAAC,KAA0B;QAE9C,IAAI,IAAI,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"onoff.js","sourceRoot":"","sources":["../../src/accessory/onoff.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { API, DynamicPlatformPlugin, Logger, PlatformAccessory
|
|
1
|
+
import { API, DynamicPlatformPlugin, Logger, PlatformAccessory } from 'homebridge';
|
|
2
|
+
import { DummyPlatformConfig } from '../model/types.js';
|
|
2
3
|
export declare class HomebridgeDummyPlatform implements DynamicPlatformPlugin {
|
|
4
|
+
private readonly config;
|
|
3
5
|
private readonly api;
|
|
4
6
|
private readonly Service;
|
|
5
7
|
private readonly Characteristic;
|
|
6
|
-
private readonly config;
|
|
7
8
|
private readonly log;
|
|
8
9
|
private readonly cachedAccessories;
|
|
9
10
|
private readonly dummyAccessories;
|
|
10
|
-
constructor(logger: Logger, config:
|
|
11
|
+
constructor(logger: Logger, config: DummyPlatformConfig, api: API);
|
|
11
12
|
configureAccessory(accessory: PlatformAccessory): void;
|
|
12
13
|
private teardown;
|
|
13
14
|
private setup;
|
|
@@ -6,16 +6,16 @@ import { migrateAccessories } from '../tools/configMigration.js';
|
|
|
6
6
|
import { Log } from '../tools/log.js';
|
|
7
7
|
import getVersion from '../tools/version.js';
|
|
8
8
|
export class HomebridgeDummyPlatform {
|
|
9
|
+
config;
|
|
9
10
|
api;
|
|
10
11
|
Service;
|
|
11
12
|
Characteristic;
|
|
12
|
-
config;
|
|
13
13
|
log;
|
|
14
14
|
cachedAccessories = new Map();
|
|
15
15
|
dummyAccessories = [];
|
|
16
16
|
constructor(logger, config, api) {
|
|
17
|
-
this.api = api;
|
|
18
17
|
this.config = config;
|
|
18
|
+
this.api = api;
|
|
19
19
|
const userLang = Intl.DateTimeFormat().resolvedOptions().locale.split('-')[0];
|
|
20
20
|
setLanguage(userLang);
|
|
21
21
|
this.Service = api.hap.Service;
|
|
@@ -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,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAIvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAE7C,MAAM,OAAO,uBAAuB;
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/homebridge/platform.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var
|
|
1
|
+
"use strict";(()=>{var r="Homebridge Dummy";var g={github:'<a target="_blank" href="https://github.com/mpatfield/homebridge-dummy/">GitHub</a>',migration:'<a target="_blank" href="https://github.com/mpatfield/homebridge-dummy?tab=readme-ov-file#v10-migration">GitHub</a>',dummy:r},l=e=>{document.querySelectorAll("[i18n]").forEach(t=>{let o=t.getAttribute("i18n"),i=e.config[o],n=t.getAttribute("i18n_replace");n&&(i=i.replace("%s",g[n])),t.innerHTML=i})},u=e=>{let t=["span","label","legend","option","p"];Array.from(window.parent.document.querySelectorAll(t.join(","))).sort((i,n)=>t.indexOf(i.tagName.toLowerCase())-t.indexOf(n.tagName.toLowerCase())).forEach(i=>{let n=i.innerHTML;n=n.replaceAll(/\$\{config\.(title|description|enumNames)\.([^}]+)\}/g,(m,a,c)=>e.config[a]&&typeof e.config[a]=="object"&&c in e.config[a]?e.config[a][c]:m),i.innerHTML!==n&&(i.innerHTML=n)})},d=e=>{let t=Array.from(window.parent.document.querySelectorAll("fieldset legend"));for(let o of t){let n=o.closest("fieldset")?.querySelector('input[type="text"][name="name"]');n&&o.textContent!==(n.value||e.config.title.accessory)&&(o.textContent=n.value!==""?n.value:e.config.title.accessory),n&&!n.dataset.accessoryNameListener&&(n.addEventListener("input",()=>d(e)),n.dataset.accessoryNameListener="true")}};function x(){if(typeof crypto<"u"){if(crypto.randomUUID)return crypto.randomUUID();if(crypto.getRandomValues)return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=crypto.getRandomValues(new Uint8Array(1))[0]&15;return(e==="x"?t:t&3|8).toString(16)})}return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}var f=e=>{let t=!1;e.accessories?.forEach(o=>{if(o.id===void 0){let i=x();o.id=i,t=!0}}),t&&homebridge.updatePluginConfig([e])},s=e=>{document.getElementById("intro").style.display="none",document.getElementById("migration").style.display="none",document.getElementById("support").style.display="block",new MutationObserver(()=>{u(e),d(e)}).observe(window.parent.document.body,{childList:!0,subtree:!0}),homebridge.showSchemaForm(),homebridge.addEventListener("configChanged",o=>{let i=o.data;i.length&&f(i[0])}),homebridge.enableSaveButton(),homebridge.hideSpinner()},y=e=>{document.getElementById("intro").style.display="none",document.getElementById("migration").style.display="block",document.getElementById("skipMigration").addEventListener("click",async()=>{await homebridge.updatePluginConfig([{name:r}]),await homebridge.savePluginConfig(),s(e)}),document.getElementById("doMigration").addEventListener("click",async()=>{await homebridge.updatePluginConfig([{name:r,migrationNeeded:!0}]),await homebridge.savePluginConfig(),homebridge.closeSettings(),homebridge.toast.info(e.config.migrationRestartDescription.replace("%s",r),e.config.migrationRestartTitle)})},p=e=>{homebridge.disableSaveButton(),document.getElementById("showSettings").addEventListener("click",async()=>{await homebridge.updatePluginConfig([{name:r}]),s(e)}),document.getElementById("showMigration").addEventListener("click",()=>{y(e)}),document.getElementById("intro").style.display="block",homebridge.hideSpinner()};(async()=>{homebridge.showSpinner();let e=await homebridge.i18nCurrentLang(),t=await homebridge.request("i18n",e);l(t),(await homebridge.getPluginConfig()).length?s(t):p(t)})();})();
|
package/dist/i18n/en.d.ts
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
declare const en: {
|
|
2
2
|
accessory: {
|
|
3
3
|
missingRequired: string;
|
|
4
|
+
command: {
|
|
5
|
+
executed: string;
|
|
6
|
+
error: string;
|
|
7
|
+
};
|
|
8
|
+
door: {
|
|
9
|
+
closed: string;
|
|
10
|
+
open: string;
|
|
11
|
+
};
|
|
4
12
|
lightbulb: {
|
|
5
13
|
brightness: string;
|
|
6
14
|
stateOn: string;
|
|
@@ -35,13 +43,16 @@ declare const en: {
|
|
|
35
43
|
yes: string;
|
|
36
44
|
no: string;
|
|
37
45
|
description: {
|
|
46
|
+
commands: string;
|
|
38
47
|
random: string;
|
|
39
48
|
timer: string;
|
|
40
49
|
};
|
|
41
50
|
enumNames: {
|
|
42
51
|
carbonDioxideSensor: string;
|
|
43
52
|
carbonMonoxideSensor: string;
|
|
53
|
+
closed: string;
|
|
44
54
|
contactSensor: string;
|
|
55
|
+
door: string;
|
|
45
56
|
hours: string;
|
|
46
57
|
leakSensor: string;
|
|
47
58
|
lightbulb: string;
|
|
@@ -49,6 +60,7 @@ declare const en: {
|
|
|
49
60
|
off: string;
|
|
50
61
|
occupancySensor: string;
|
|
51
62
|
on: string;
|
|
63
|
+
open: string;
|
|
52
64
|
outlet: string;
|
|
53
65
|
minutes: string;
|
|
54
66
|
motionSensor: string;
|
|
@@ -60,7 +72,15 @@ declare const en: {
|
|
|
60
72
|
};
|
|
61
73
|
title: {
|
|
62
74
|
accessory: string;
|
|
75
|
+
commands: string;
|
|
76
|
+
commandClose: string;
|
|
77
|
+
commandOn: string;
|
|
78
|
+
commandOff: string;
|
|
79
|
+
commandOpen: string;
|
|
80
|
+
commandLock: string;
|
|
81
|
+
commandUnlock: string;
|
|
63
82
|
defaultBrightness: string;
|
|
83
|
+
defaultPosition: string;
|
|
64
84
|
defaultState: string;
|
|
65
85
|
delay: string;
|
|
66
86
|
disableLogging: string;
|
package/dist/i18n/en.js
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
const en = {
|
|
2
2
|
accessory: {
|
|
3
3
|
missingRequired: '%s is missing required config variable %s',
|
|
4
|
+
command: {
|
|
5
|
+
executed: '%s executed command',
|
|
6
|
+
error: '%s failed to execute command',
|
|
7
|
+
},
|
|
8
|
+
door: {
|
|
9
|
+
closed: '%s door is closed',
|
|
10
|
+
open: '%s door is open',
|
|
11
|
+
},
|
|
4
12
|
lightbulb: {
|
|
5
13
|
brightness: '%s brightness is %s',
|
|
6
14
|
stateOn: '%s is on %s%',
|
|
@@ -35,13 +43,16 @@ const en = {
|
|
|
35
43
|
yes: 'Yes',
|
|
36
44
|
no: 'No',
|
|
37
45
|
description: {
|
|
46
|
+
commands: 'Execute arbitration commands when the accessory changes state',
|
|
38
47
|
random: 'Delay will be randomized with the above value as a maximum',
|
|
39
48
|
timer: 'Optional settings to automatically toggle the accessory',
|
|
40
49
|
},
|
|
41
50
|
enumNames: {
|
|
42
51
|
carbonDioxideSensor: 'Carbon Dioxide',
|
|
43
52
|
carbonMonoxideSensor: 'Carbon Monoxide',
|
|
53
|
+
closed: 'Closed',
|
|
44
54
|
contactSensor: 'Contact',
|
|
55
|
+
door: 'Door',
|
|
45
56
|
hours: 'Hours',
|
|
46
57
|
leakSensor: 'Leak',
|
|
47
58
|
lightbulb: 'Lightbulb',
|
|
@@ -49,6 +60,7 @@ const en = {
|
|
|
49
60
|
off: 'Off',
|
|
50
61
|
occupancySensor: 'Occupancy',
|
|
51
62
|
on: 'On',
|
|
63
|
+
open: 'Open',
|
|
52
64
|
outlet: 'Outlet',
|
|
53
65
|
minutes: 'Minutes',
|
|
54
66
|
motionSensor: 'Motion',
|
|
@@ -60,7 +72,15 @@ const en = {
|
|
|
60
72
|
},
|
|
61
73
|
title: {
|
|
62
74
|
accessory: 'Accessory',
|
|
75
|
+
commands: 'Commands',
|
|
76
|
+
commandClose: 'Close Command',
|
|
77
|
+
commandOn: 'On Command',
|
|
78
|
+
commandOff: 'Off Command',
|
|
79
|
+
commandOpen: 'Open Command',
|
|
80
|
+
commandLock: 'Lock Command',
|
|
81
|
+
commandUnlock: 'Unlock Command',
|
|
63
82
|
defaultBrightness: 'Default Brightness',
|
|
83
|
+
defaultPosition: 'Default Position',
|
|
64
84
|
defaultState: 'Default State',
|
|
65
85
|
delay: 'Delay',
|
|
66
86
|
disableLogging: 'Disable Logging',
|
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
|
@@ -10,6 +10,14 @@ export declare function getAllTranslations(): Translation;
|
|
|
10
10
|
declare const translations: {
|
|
11
11
|
accessory: {
|
|
12
12
|
missingRequired: string;
|
|
13
|
+
command: {
|
|
14
|
+
executed: string;
|
|
15
|
+
error: string;
|
|
16
|
+
};
|
|
17
|
+
door: {
|
|
18
|
+
closed: string;
|
|
19
|
+
open: string;
|
|
20
|
+
};
|
|
13
21
|
lightbulb: {
|
|
14
22
|
brightness: string;
|
|
15
23
|
stateOn: string;
|
|
@@ -44,13 +52,16 @@ declare const translations: {
|
|
|
44
52
|
yes: string;
|
|
45
53
|
no: string;
|
|
46
54
|
description: {
|
|
55
|
+
commands: string;
|
|
47
56
|
random: string;
|
|
48
57
|
timer: string;
|
|
49
58
|
};
|
|
50
59
|
enumNames: {
|
|
51
60
|
carbonDioxideSensor: string;
|
|
52
61
|
carbonMonoxideSensor: string;
|
|
62
|
+
closed: string;
|
|
53
63
|
contactSensor: string;
|
|
64
|
+
door: string;
|
|
54
65
|
hours: string;
|
|
55
66
|
leakSensor: string;
|
|
56
67
|
lightbulb: string;
|
|
@@ -58,6 +69,7 @@ declare const translations: {
|
|
|
58
69
|
off: string;
|
|
59
70
|
occupancySensor: string;
|
|
60
71
|
on: string;
|
|
72
|
+
open: string;
|
|
61
73
|
outlet: string;
|
|
62
74
|
minutes: string;
|
|
63
75
|
motionSensor: string;
|
|
@@ -69,7 +81,15 @@ declare const translations: {
|
|
|
69
81
|
};
|
|
70
82
|
title: {
|
|
71
83
|
accessory: string;
|
|
84
|
+
commands: string;
|
|
85
|
+
commandClose: string;
|
|
86
|
+
commandOn: string;
|
|
87
|
+
commandOff: string;
|
|
88
|
+
commandOpen: string;
|
|
89
|
+
commandLock: string;
|
|
90
|
+
commandUnlock: string;
|
|
72
91
|
defaultBrightness: string;
|
|
92
|
+
defaultPosition: string;
|
|
73
93
|
defaultState: string;
|
|
74
94
|
delay: string;
|
|
75
95
|
disableLogging: string;
|
package/dist/i18n/template.d.ts
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
declare const REPLACE_THIS_WITH_ISO_CODE: {
|
|
2
2
|
accessory: {
|
|
3
3
|
missingRequired: string;
|
|
4
|
+
command: {
|
|
5
|
+
executed: string;
|
|
6
|
+
error: string;
|
|
7
|
+
};
|
|
8
|
+
door: {
|
|
9
|
+
closed: string;
|
|
10
|
+
open: string;
|
|
11
|
+
};
|
|
4
12
|
lightbulb: {
|
|
5
13
|
brightness: string;
|
|
6
14
|
stateOn: string;
|
|
@@ -35,13 +43,16 @@ declare const REPLACE_THIS_WITH_ISO_CODE: {
|
|
|
35
43
|
yes: string;
|
|
36
44
|
no: string;
|
|
37
45
|
description: {
|
|
46
|
+
commands: string;
|
|
38
47
|
random: string;
|
|
39
48
|
timer: string;
|
|
40
49
|
};
|
|
41
50
|
enumNames: {
|
|
42
51
|
carbonDioxideSensor: string;
|
|
43
52
|
carbonMonoxideSensor: string;
|
|
53
|
+
closed: string;
|
|
44
54
|
contactSensor: string;
|
|
55
|
+
door: string;
|
|
45
56
|
hours: string;
|
|
46
57
|
leakSensor: string;
|
|
47
58
|
lightbulb: string;
|
|
@@ -49,6 +60,7 @@ declare const REPLACE_THIS_WITH_ISO_CODE: {
|
|
|
49
60
|
off: string;
|
|
50
61
|
occupancySensor: string;
|
|
51
62
|
on: string;
|
|
63
|
+
open: string;
|
|
52
64
|
outlet: string;
|
|
53
65
|
minutes: string;
|
|
54
66
|
motionSensor: string;
|
|
@@ -60,7 +72,15 @@ declare const REPLACE_THIS_WITH_ISO_CODE: {
|
|
|
60
72
|
};
|
|
61
73
|
title: {
|
|
62
74
|
accessory: string;
|
|
75
|
+
commands: string;
|
|
76
|
+
commandClose: string;
|
|
77
|
+
commandOn: string;
|
|
78
|
+
commandOff: string;
|
|
79
|
+
commandOpen: string;
|
|
80
|
+
commandLock: string;
|
|
81
|
+
commandUnlock: string;
|
|
63
82
|
defaultBrightness: string;
|
|
83
|
+
defaultPosition: string;
|
|
64
84
|
defaultState: string;
|
|
65
85
|
delay: string;
|
|
66
86
|
disableLogging: string;
|
package/dist/i18n/zz.d.ts
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
declare const zz: {
|
|
2
2
|
accessory: {
|
|
3
3
|
missingRequired: string;
|
|
4
|
+
command: {
|
|
5
|
+
executed: string;
|
|
6
|
+
error: string;
|
|
7
|
+
};
|
|
8
|
+
door: {
|
|
9
|
+
closed: string;
|
|
10
|
+
open: string;
|
|
11
|
+
};
|
|
4
12
|
lightbulb: {
|
|
5
13
|
brightness: string;
|
|
6
14
|
stateOn: string;
|
|
@@ -35,13 +43,16 @@ declare const zz: {
|
|
|
35
43
|
yes: string;
|
|
36
44
|
no: string;
|
|
37
45
|
description: {
|
|
46
|
+
commands: string;
|
|
38
47
|
random: string;
|
|
39
48
|
timer: string;
|
|
40
49
|
};
|
|
41
50
|
enumNames: {
|
|
42
51
|
carbonDioxideSensor: string;
|
|
43
52
|
carbonMonoxideSensor: string;
|
|
53
|
+
closed: string;
|
|
44
54
|
contactSensor: string;
|
|
55
|
+
door: string;
|
|
45
56
|
hours: string;
|
|
46
57
|
leakSensor: string;
|
|
47
58
|
lightbulb: string;
|
|
@@ -49,6 +60,7 @@ declare const zz: {
|
|
|
49
60
|
off: string;
|
|
50
61
|
occupancySensor: string;
|
|
51
62
|
on: string;
|
|
63
|
+
open: string;
|
|
52
64
|
outlet: string;
|
|
53
65
|
minutes: string;
|
|
54
66
|
motionSensor: string;
|
|
@@ -60,7 +72,15 @@ declare const zz: {
|
|
|
60
72
|
};
|
|
61
73
|
title: {
|
|
62
74
|
accessory: string;
|
|
75
|
+
commands: string;
|
|
76
|
+
commandClose: string;
|
|
77
|
+
commandOn: string;
|
|
78
|
+
commandOff: string;
|
|
79
|
+
commandOpen: string;
|
|
80
|
+
commandLock: string;
|
|
81
|
+
commandUnlock: string;
|
|
63
82
|
defaultBrightness: string;
|
|
83
|
+
defaultPosition: string;
|
|
64
84
|
defaultState: string;
|
|
65
85
|
delay: string;
|
|
66
86
|
disableLogging: string;
|
package/dist/model/types.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { CharacteristicValue } from 'homebridge';
|
|
1
|
+
import { AccessoryConfig, CharacteristicValue, PlatformConfig } from 'homebridge';
|
|
2
2
|
export type ServiceType = typeof import('homebridge').Service;
|
|
3
3
|
export type CharacteristicType = typeof import('homebridge').Characteristic;
|
|
4
4
|
export declare enum AccessoryType {
|
|
5
|
+
Door = "Door",
|
|
5
6
|
Lightbulb = "Lightbulb",
|
|
6
7
|
LockMechanism = "LockMechanism",
|
|
7
8
|
Outlet = "Outlet",
|
|
@@ -25,15 +26,6 @@ export declare enum SensorCharacteristic {
|
|
|
25
26
|
OccupancyDetected = "OccupancyDetected",
|
|
26
27
|
SmokeDetected = "SmokeDetected"
|
|
27
28
|
}
|
|
28
|
-
export type ChildBridge = {
|
|
29
|
-
username: string;
|
|
30
|
-
port?: number;
|
|
31
|
-
name?: string;
|
|
32
|
-
};
|
|
33
|
-
export type AccessoryConfig = {
|
|
34
|
-
accessory: string;
|
|
35
|
-
_bridge?: ChildBridge;
|
|
36
|
-
};
|
|
37
29
|
export type LegacyAccessoryConfig = AccessoryConfig & {
|
|
38
30
|
name: string;
|
|
39
31
|
dimmer?: boolean;
|
|
@@ -45,12 +37,8 @@ export type LegacyAccessoryConfig = AccessoryConfig & {
|
|
|
45
37
|
random?: boolean;
|
|
46
38
|
disableLogging?: boolean;
|
|
47
39
|
};
|
|
48
|
-
export type PlatformConfig = {
|
|
49
|
-
platform: string;
|
|
50
|
-
};
|
|
51
40
|
export type DummyPlatformConfig = PlatformConfig & {
|
|
52
41
|
accessories?: DummyConfig[];
|
|
53
|
-
_bridge?: ChildBridge;
|
|
54
42
|
migrationNeeded?: boolean;
|
|
55
43
|
};
|
|
56
44
|
export declare enum TimeUnits {
|
|
@@ -75,6 +63,8 @@ export type DummyConfig = {
|
|
|
75
63
|
export type OnOffConfig = DummyConfig & {
|
|
76
64
|
defaultOnOff?: CharacteristicValue;
|
|
77
65
|
sensor?: SensorType;
|
|
66
|
+
commandOn?: string;
|
|
67
|
+
commandOff?: string;
|
|
78
68
|
};
|
|
79
69
|
export type OutletConfig = OnOffConfig & {};
|
|
80
70
|
export type LightbulbConfig = OnOffConfig & {
|
|
@@ -83,6 +73,13 @@ export type LightbulbConfig = OnOffConfig & {
|
|
|
83
73
|
export type SwitchConfig = OnOffConfig & {};
|
|
84
74
|
export type LockConfig = DummyConfig & {
|
|
85
75
|
defaultLockState?: CharacteristicValue;
|
|
76
|
+
commandLock?: string;
|
|
77
|
+
commandUnlock?: string;
|
|
78
|
+
};
|
|
79
|
+
export type DoorConfig = DummyConfig & {
|
|
80
|
+
defaultPosition?: number;
|
|
81
|
+
commandOpen?: string;
|
|
82
|
+
commandClose?: string;
|
|
86
83
|
};
|
|
87
84
|
export type GroupConfig = {
|
|
88
85
|
accessories: DummyConfig[];
|
package/dist/model/types.js
CHANGED
package/dist/model/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":"AAKA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":"AAKA,MAAM,CAAN,IAAY,aAMX;AAND,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,wCAAuB,CAAA;IACvB,gDAA+B,CAAA;IAC/B,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;AACnB,CAAC,EANW,aAAa,KAAb,aAAa,QAMxB;AAED,MAAM,CAAN,IAAY,UAQX;AARD,WAAY,UAAU;IACpB,yDAA2C,CAAA;IAC3C,2DAA6C,CAAA;IAC7C,6CAA+B,CAAA;IAC/B,uCAAyB,CAAA;IACzB,2CAA6B,CAAA;IAC7B,iDAAmC,CAAA;IACnC,yCAA2B,CAAA;AAC7B,CAAC,EARW,UAAU,KAAV,UAAU,QAQrB;AAED,MAAM,CAAN,IAAY,oBAQX;AARD,WAAY,oBAAoB;IAC9B,uEAA+C,CAAA;IAC/C,yEAAiD,CAAA;IACjD,iEAAyC,CAAA;IACzC,qDAA6B,CAAA;IAC7B,yDAAiC,CAAA;IACjC,+DAAuC,CAAA;IACvC,uDAA+B,CAAA;AACjC,CAAC,EARW,oBAAoB,KAApB,oBAAoB,QAQ/B;AAmBD,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,gCAAmB,CAAA;IACnB,gCAAmB,CAAA;IACnB,4BAAe,CAAA;AACjB,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
2
|
import { strings } from '../i18n/i18n.js';
|
|
3
3
|
import { LEGACY_ALIAS, PLATFORM_NAME } from '../homebridge/settings.js';
|
|
4
|
-
import { AccessoryType, TimeUnits
|
|
4
|
+
import { AccessoryType, TimeUnits } from '../model/types.js';
|
|
5
5
|
function migrateAccessory(legacyConfig) {
|
|
6
6
|
const dummyConfig = {
|
|
7
7
|
id: crypto.randomUUID(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configMigration.js","sourceRoot":"","sources":["../../src/tools/configMigration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"configMigration.js","sourceRoot":"","sources":["../../src/tools/configMigration.ts"],"names":[],"mappings":"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"}
|
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.0.0-alpha.
|
|
7
|
+
"version": "1.0.0-alpha.7",
|
|
8
8
|
"homepage": "https://github.com/mpatfield/homebridge-dummy#readme",
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|