homebridge-dummy 1.4.3 → 1.5.0-beta.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 +14 -4
- package/README.md +37 -24
- package/config.schema.json +60 -80
- package/dist/accessory/base.d.ts +3 -3
- package/dist/accessory/base.js +13 -13
- package/dist/accessory/base.js.map +1 -1
- package/dist/accessory/lock.js +2 -2
- package/dist/accessory/lock.js.map +1 -1
- package/dist/accessory/onoff/lightbulb.d.ts +1 -1
- package/dist/accessory/onoff/lightbulb.js +3 -3
- package/dist/accessory/onoff/lightbulb.js.map +1 -1
- package/dist/accessory/onoff/onoff.js +2 -2
- package/dist/accessory/onoff/onoff.js.map +1 -1
- package/dist/accessory/position/position.js +2 -2
- package/dist/accessory/position/position.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/de.d.ts +26 -18
- package/dist/i18n/en.d.ts +26 -18
- package/dist/i18n/en.js +28 -20
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/es.d.ts +26 -18
- package/dist/i18n/i18n.d.ts +26 -18
- package/dist/i18n/ru.d.ts +26 -18
- package/dist/i18n/template.d.ts +26 -18
- package/dist/model/enums.d.ts +1 -0
- package/dist/model/enums.js +1 -0
- package/dist/model/enums.js.map +1 -1
- package/dist/model/types.d.ts +17 -3
- package/dist/timeout/schedule.d.ts +11 -3
- package/dist/timeout/schedule.js +92 -19
- package/dist/timeout/schedule.js.map +1 -1
- package/dist/timeout/timeout.d.ts +1 -2
- package/dist/tools/configMigration.js +4 -3
- package/dist/tools/configMigration.js.map +1 -1
- package/dist/tools/storage.d.ts +12 -0
- package/dist/tools/storage.js +12 -0
- package/dist/tools/storage.js.map +1 -1
- package/package.json +1 -1
- package/dist/timeout/timer.d.ts +0 -14
- package/dist/timeout/timer.js +0 -68
- package/dist/timeout/timer.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,10 +2,23 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to homebridge-dummy will be documented in this file.
|
|
4
4
|
|
|
5
|
-
## 1.
|
|
5
|
+
## 1.5.0-beta.0 (2025-11-21)
|
|
6
6
|
|
|
7
7
|
### ‼️ WARNING ‼️ — If upgrading from v0.9.2 or earlier, [READ THIS FIRST](https://github.com/mpatfield/homebridge-dummy?tab=readme-ov-file#v10-migration)
|
|
8
8
|
|
|
9
|
+
### Added
|
|
10
|
+
- Auto-Reset now supports the same options as Schedule — delay, interval, sun-based options, and cron
|
|
11
|
+
- ⚠️ This required significant under-the-hood changes, so please [open a ticket](https://github.com/mpatfield/homebridge-dummy/issues/new/choose) if you have issues
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
- Deprecated `timer` in favor of `autoReset` (see above)
|
|
15
|
+
- This is backwards compatible so no manual json config edits are necessary
|
|
16
|
+
|
|
17
|
+
### Notes
|
|
18
|
+
Would you like to see Homebridge Dummy in your language? Please consider [getting involved](https://github.com/mpatfield/homebridge-dummy/issues/105). No coding experience required!
|
|
19
|
+
|
|
20
|
+
## 1.4.3 (2025-11-20)
|
|
21
|
+
|
|
9
22
|
### Added
|
|
10
23
|
- MAC Address support for [Reachability](https://github.com/mpatfield/homebridge-dummy?tab=readme-ov-file#reachabilitypresence) conditions, useful for triggering events based on joining/leaving your local network
|
|
11
24
|
- ⚠️ Somewhat experimental so please [open a ticket](https://github.com/mpatfield/homebridge-dummy/issues/new/choose) if you have issues
|
|
@@ -18,9 +31,6 @@ All notable changes to homebridge-dummy will be documented in this file.
|
|
|
18
31
|
### Changed
|
|
19
32
|
- Triggering accessory via `Schedule` resets any `Auto-Reset Timer`
|
|
20
33
|
|
|
21
|
-
### Notes
|
|
22
|
-
Would you like to see Homebridge Dummy in your language? Please consider [getting involved](https://github.com/mpatfield/homebridge-dummy/issues/105). No coding experience required!
|
|
23
|
-
|
|
24
34
|
## 1.4.2 (2025-11-14)
|
|
25
35
|
|
|
26
36
|
### Added
|
package/README.md
CHANGED
|
@@ -99,14 +99,19 @@ Using the Homebridge Config UI is the easiest way to set up this plugin. However
|
|
|
99
99
|
"name": "string",
|
|
100
100
|
"type": "Door | GarageDoorOpener | Lightbulb | LockMechanism | Outlet | Switch | Thermostat | Window | WindowCovering",
|
|
101
101
|
"groupName": "string",
|
|
102
|
-
"
|
|
103
|
-
"
|
|
102
|
+
"schedule": {
|
|
103
|
+
"type": "TIMEOUT" | "INTERVAL" | "CRON" | "SUNRISE" | "SUNSET" | "DAWN" | "DUSK" | "GOLDEN_HOUR" | "NIGHT",
|
|
104
|
+
"time": number,
|
|
104
105
|
"units": "MILLISECONDS | SECONDS | MINUTES | HOURS",
|
|
105
|
-
"random": true | false
|
|
106
|
+
"random": true | false,
|
|
107
|
+
"cron": "string",
|
|
108
|
+
"offset": number,
|
|
109
|
+
"latitude": number,
|
|
110
|
+
"longitude": number
|
|
106
111
|
},
|
|
107
|
-
"
|
|
108
|
-
"type": "INTERVAL" | "CRON" | "SUNRISE" | "SUNSET" | "DAWN" | "DUSK" | "GOLDEN_HOUR" | "NIGHT",
|
|
109
|
-
"
|
|
112
|
+
"autoReset": {
|
|
113
|
+
"type": "TIMEOUT" | "INTERVAL" | "CRON" | "SUNRISE" | "SUNSET" | "DAWN" | "DUSK" | "GOLDEN_HOUR" | "NIGHT",
|
|
114
|
+
"time": number,
|
|
110
115
|
"units": "MILLISECONDS | SECONDS | MINUTES | HOURS",
|
|
111
116
|
"random": true | false,
|
|
112
117
|
"cron": "string",
|
|
@@ -191,20 +196,13 @@ Valid values for `type` are:
|
|
|
191
196
|
|
|
192
197
|
⚠️ Adding/removing/changing the group name will require you to reconfigure any HomeKit scenes or automations
|
|
193
198
|
|
|
194
|
-
### Timer
|
|
195
|
-
Return the accessory to its default value after the specified delay
|
|
196
|
-
|
|
197
|
-
- `timer.delay` — If defined, the switch will automatically toggle after this many milliseconds/seconds/minutes/hours
|
|
198
|
-
- `timer.units` — The units to use for delay above (`MILLISECONDS`, `SECONDS`, `MINUTES`, or `HOURS`). *Required if delay is set.
|
|
199
|
-
- `timer.random` — If true, the delay will be randomized with a maximum value of `timer.delay`
|
|
200
|
-
|
|
201
199
|
### Schedule
|
|
202
|
-
Set the accessory to its opposite (non-default) value at
|
|
200
|
+
Set the accessory to its opposite (non-default) value at specific times
|
|
203
201
|
|
|
204
|
-
- `schedule.type` — One of `INTERVAL`, `CRON`, `SUNRISE`, `SUNSET`, `DAWN`, `DUSK`, `GOLDEN_HOUR`, `NIGHT`
|
|
205
|
-
- `schedule.
|
|
206
|
-
- `schedule.units` — The units to use for the
|
|
207
|
-
- `schedule.random` — If true, the
|
|
202
|
+
- `schedule.type` — One of `TIMEOUT`, `INTERVAL`, `CRON`, `SUNRISE`, `SUNSET`, `DAWN`, `DUSK`, `GOLDEN_HOUR`, `NIGHT`
|
|
203
|
+
- `schedule.time` — Trigger the accessory after this many milliseconds/seconds/minutes/hours. *Required if `schedule.type` = `TIMEOUT` | `INTERVAL`
|
|
204
|
+
- `schedule.units` — The units to use for the time (`MILLISECONDS`, `SECONDS`, `MINUTES`, or `HOURS`) *Required if `schedule.type` = `TIMEOUT` | `INTERVAL`
|
|
205
|
+
- `schedule.random` — If true, the time will be randomized with a maximum value of `schedule.time`
|
|
208
206
|
- `schedule.cron` — One of `@secondly`, `@minutely`, `@hourly`, `@daily`, `@weekly`, `@weekdays`, `@weekends`, `@monthly`, `@yearly`, or `CUSTOM_CRON`. *Required if `schedule.type` = `CRON`
|
|
209
207
|
- `schedule.cronCustom` - Custom cron string for triggering the accessory. *Required if `schedule.cron` = `CUSTOM_CRON`
|
|
210
208
|
- See [crontab.guru](http://crontab.guru) for help
|
|
@@ -212,6 +210,20 @@ Set the accessory to its opposite (non-default) value at specified interval or t
|
|
|
212
210
|
- `schedule.latitude` - Latitude used to calculate sun position *Required if `schedule.type` is `SUNRISE`, `SUNSET`, etc.
|
|
213
211
|
- `schedule.longitude` - Longitude used to calculate sun position *Required if `schedule.type` is `SUNRISE`, `SUNSET`, etc.
|
|
214
212
|
|
|
213
|
+
### Auto-Reset
|
|
214
|
+
Return the accessory to its default value at specific times
|
|
215
|
+
|
|
216
|
+
- `autoReset.type` — One of `TIMEOUT`, `INTERVAL`, `CRON`, `SUNRISE`, `SUNSET`, `DAWN`, `DUSK`, `GOLDEN_HOUR`, `NIGHT`
|
|
217
|
+
- `autoReset.time` — Trigger the accessory after this many milliseconds/seconds/minutes/hours. *Required if `autoReset.type` = `TIMEOUT` | `INTERVAL`
|
|
218
|
+
- `autoReset.units` — The units to use for the time (`MILLISECONDS`, `SECONDS`, `MINUTES`, or `HOURS`) *Required if `autoReset.type` = `TIMEOUT` | `INTERVAL`
|
|
219
|
+
- `autoReset.random` — If true, the time will be randomized with a maximum value of `autoReset.time`
|
|
220
|
+
- `autoReset.cron` — One of `@secondly`, `@minutely`, `@hourly`, `@daily`, `@weekly`, `@weekdays`, `@weekends`, `@monthly`, `@yearly`, or `CUSTOM_CRON`. *Required if `autoReset.type` = `CRON`
|
|
221
|
+
- `autoReset.cronCustom` - Custom cron string for triggering the accessory. *Required if `autoReset.cron` = `CUSTOM_CRON`
|
|
222
|
+
- See [crontab.guru](http://crontab.guru) for help
|
|
223
|
+
- `autoReset.offset` - Add or subtract this value from the caluclated sun position for `SUNRISE`, `SUNSET`, etc.
|
|
224
|
+
- `autoReset.latitude` - Latitude used to calculate sun position *Required if `autoReset.type` is `SUNRISE`, `SUNSET`, etc.
|
|
225
|
+
- `autoReset.longitude` - Longitude used to calculate sun position *Required if `autoReset.type` is `SUNRISE`, `SUNSET`, etc.
|
|
226
|
+
|
|
215
227
|
### Limiter
|
|
216
228
|
Restrict the total time this accessory can be set to its non-default value, for each specified period
|
|
217
229
|
|
|
@@ -223,7 +235,7 @@ Restrict the total time this accessory can be set to its non-default value, for
|
|
|
223
235
|
|
|
224
236
|
### Sensor
|
|
225
237
|
- `sensor.type` - Optionally attach a sensor that mirrors the state of the parent accessory
|
|
226
|
-
- `sensor.timerControlled` - If true, sensor will be activated if accessory is reset
|
|
238
|
+
- `sensor.timerControlled` - If true, sensor will be activated if accessory is reset automatically but not if it is reset manually
|
|
227
239
|
|
|
228
240
|
Valid values for sensor are:
|
|
229
241
|
- `CarbonDioxideSensor`
|
|
@@ -274,7 +286,7 @@ The easiest way to find all available variables is to create a switch that runs
|
|
|
274
286
|
- `temperatureUnits` - Units to use for thermostats, either 'C' or 'F'
|
|
275
287
|
- `defaultState` — Initial value, either "on" or "off"
|
|
276
288
|
- `defaultBrightness` — If set, lightbulb will have additional dimmer settings with this default brightness percentage
|
|
277
|
-
- `fadeOut` - Fade smoothly instead of abruptly from 100% to off. Requires `defaultBrightness` and `
|
|
289
|
+
- `fadeOut` - Fade smoothly instead of abruptly from 100% to off. Requires `defaultBrightness` and `autoReset` to be defined.
|
|
278
290
|
- `defaultLockState` - The initial value for the lock, "locked" or "unlocked"
|
|
279
291
|
- `defaultPosition` — Initial position for the door/garage/window/blinds, "open" or "closed"
|
|
280
292
|
- `defaultThermostatState` - The initial state for the thermostat, "auto", "heat", "cool", or "off"
|
|
@@ -296,7 +308,7 @@ You can trigger an accessory whenever a set of conditions are satisfied. There a
|
|
|
296
308
|
|
|
297
309
|
### Accessory Triggers
|
|
298
310
|
|
|
299
|
-
You can trigger an accessory when one more more other Homebridge Dummy accessories change state using the `ACCESSORY` operand type. Accessories will immediately return to their default setting as soon as the conditions are no longer satisfied unless an accessory also has
|
|
311
|
+
You can trigger an accessory when one more more other Homebridge Dummy accessories change state using the `ACCESSORY` operand type. Accessories will immediately return to their default setting as soon as the conditions are no longer satisfied unless an accessory also has `autoReset` defined.
|
|
300
312
|
|
|
301
313
|
Note that due to limitations of HomeKit and Homebridge, it is only possible to check the states of other Homebridge Dummy accessories. One workaround for non-Dummy accessories is to set up duplicate accessories in Homebridge Dummy and use Automation to mirror the states. For example, if I have a physical door lock I want to "watch", then I can setup a `LockMechanism` accessory in Homebridge Dummy and create two automations to change the state of my dummy lock whenever the physical door lock is unlocked or locked.
|
|
302
314
|
|
|
@@ -331,15 +343,16 @@ This can be particularly useful for triggering events based on joining or leavin
|
|
|
331
343
|
|
|
332
344
|
If you want to use this for "arriving" or "leaving" a location, it is not recommended to use a single presence accessory for both. This is because a device such as a phone can connect and disconnect frequently from the network when the screen is off, so the switch will toggle back and forth.
|
|
333
345
|
|
|
334
|
-
Instead, it's recommended to choose one and use
|
|
346
|
+
Instead, it's recommended to choose one and use `autoReset`.
|
|
335
347
|
|
|
336
348
|
```json
|
|
337
349
|
{
|
|
338
350
|
"id": "a52da73e-f854-4a57-b90d-6ba14d8f1d72",
|
|
339
351
|
"name": "Home",
|
|
340
352
|
"type": "Switch",
|
|
341
|
-
"
|
|
342
|
-
"
|
|
353
|
+
"autoReset": {
|
|
354
|
+
"type": "TIMEOUT",
|
|
355
|
+
"time": 10,
|
|
343
356
|
"units": "MINUTES",
|
|
344
357
|
"random": false
|
|
345
358
|
},
|
package/config.schema.json
CHANGED
|
@@ -29,63 +29,18 @@
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
},
|
|
32
|
-
"timer": {
|
|
33
|
-
"type": "object",
|
|
34
|
-
"properties": {
|
|
35
|
-
"delay": {
|
|
36
|
-
"type": "integer",
|
|
37
|
-
"title": "${config.title.delay}",
|
|
38
|
-
"minimum": 1
|
|
39
|
-
},
|
|
40
|
-
"units": {
|
|
41
|
-
"$ref": "#/definitions/units",
|
|
42
|
-
"required": true
|
|
43
|
-
},
|
|
44
|
-
"random": {
|
|
45
|
-
"type": "boolean",
|
|
46
|
-
"title": "${config.title.random}",
|
|
47
|
-
"description": "${config.description.random}"
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
|
-
"allOf": [
|
|
51
|
-
{
|
|
52
|
-
"if": {
|
|
53
|
-
"properties": {
|
|
54
|
-
"delay": {
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
"required": ["delay"]
|
|
58
|
-
},
|
|
59
|
-
"then": {
|
|
60
|
-
"required": ["units"]
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
"if": {
|
|
65
|
-
"properties": {
|
|
66
|
-
"units" : {
|
|
67
|
-
}
|
|
68
|
-
},
|
|
69
|
-
"required": [ "units" ]
|
|
70
|
-
},
|
|
71
|
-
"then": {
|
|
72
|
-
"required": [ "delay"]
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
]
|
|
76
|
-
},
|
|
77
32
|
"schedule": {
|
|
78
33
|
"type": "object",
|
|
79
34
|
"properties": {
|
|
80
35
|
"type": {
|
|
81
36
|
"type": "string",
|
|
82
37
|
"title": "${config.title.type}",
|
|
83
|
-
"enum": [ "INTERVAL", "CRON", "SUNRISE", "SUNSET", "DAWN", "DUSK", "GOLDEN_HOUR", "NIGHT"],
|
|
84
|
-
"enumNames": ["${config.enumNames.interval}", "${config.enumNames.cron}", "${config.enumNames.sunrise}", "${config.enumNames.sunset}", "${config.enumNames.dawn}", "${config.enumNames.dusk}", "${config.enumNames.goldenHour}", "${config.enumNames.night}"]
|
|
38
|
+
"enum": [ "TIMEOUT", "INTERVAL", "CRON", "SUNRISE", "SUNSET", "DAWN", "DUSK", "GOLDEN_HOUR", "NIGHT"],
|
|
39
|
+
"enumNames": ["${config.enumNames.timeout}", "${config.enumNames.interval}", "${config.enumNames.cron}", "${config.enumNames.sunrise}", "${config.enumNames.sunset}", "${config.enumNames.dawn}", "${config.enumNames.dusk}", "${config.enumNames.goldenHour}", "${config.enumNames.night}"]
|
|
85
40
|
},
|
|
86
|
-
"
|
|
41
|
+
"time": {
|
|
87
42
|
"type": "integer",
|
|
88
|
-
"title": "${config.title.
|
|
43
|
+
"title": "${config.title.time}",
|
|
89
44
|
"minimum": 1
|
|
90
45
|
},
|
|
91
46
|
"units": { "$ref": "#/definitions/units" },
|
|
@@ -126,12 +81,12 @@
|
|
|
126
81
|
"if": {
|
|
127
82
|
"properties": {
|
|
128
83
|
"type": {
|
|
129
|
-
"
|
|
84
|
+
"enum": ["TIMEOUT", "INTERVAL"]
|
|
130
85
|
}
|
|
131
86
|
}
|
|
132
87
|
},
|
|
133
88
|
"then": {
|
|
134
|
-
"required": ["
|
|
89
|
+
"required": ["time", "units"]
|
|
135
90
|
}
|
|
136
91
|
},
|
|
137
92
|
{
|
|
@@ -382,8 +337,8 @@
|
|
|
382
337
|
"title": "${config.title.groupName}"
|
|
383
338
|
},
|
|
384
339
|
"sensor": { "$ref": "#/definitions/sensor" },
|
|
385
|
-
"timer": { "$ref": "#/definitions/timer" },
|
|
386
340
|
"schedule": { "$ref": "#/definitions/schedule" },
|
|
341
|
+
"autoReset": { "$ref": "#/definitions/schedule" },
|
|
387
342
|
"limiter": { "$ref": "#/definitions/limiter" },
|
|
388
343
|
"conditions": { "$ref": "#/definitions/conditions" },
|
|
389
344
|
"temperatureUnits": {
|
|
@@ -645,7 +600,7 @@
|
|
|
645
600
|
"key": "accessories[].resetOnRestart",
|
|
646
601
|
"flex": "0 1 33%",
|
|
647
602
|
"condition": {
|
|
648
|
-
"functionBody": "
|
|
603
|
+
"functionBody": "const accessory = model.accessories?.[arguments[1]]; return accessory?.schedule?.type === undefined && accessory.autoReset?.type === undefined;"
|
|
649
604
|
}
|
|
650
605
|
}
|
|
651
606
|
]
|
|
@@ -670,17 +625,17 @@
|
|
|
670
625
|
"flex": "0 0 auto"
|
|
671
626
|
},
|
|
672
627
|
{
|
|
673
|
-
"key": "accessories[].schedule.
|
|
628
|
+
"key": "accessories[].schedule.time",
|
|
674
629
|
"flex": "0 0 auto",
|
|
675
630
|
"condition": {
|
|
676
|
-
"functionBody": "return model.accessories?.[arguments[1]]?.schedule?.type
|
|
631
|
+
"functionBody": "return ['TIMEOUT', 'INTERVAL'].includes(model.accessories?.[arguments[1]]?.schedule?.type);"
|
|
677
632
|
}
|
|
678
633
|
},
|
|
679
634
|
{
|
|
680
635
|
"key": "accessories[].schedule.units",
|
|
681
636
|
"flex": "0 0 auto",
|
|
682
637
|
"condition": {
|
|
683
|
-
"functionBody": "return model.accessories?.[arguments[1]]?.schedule?.type
|
|
638
|
+
"functionBody": "return ['TIMEOUT', 'INTERVAL'].includes(model.accessories?.[arguments[1]]?.schedule?.type);"
|
|
684
639
|
}
|
|
685
640
|
},
|
|
686
641
|
{
|
|
@@ -723,15 +678,15 @@
|
|
|
723
678
|
{
|
|
724
679
|
"key": "accessories[].schedule.random",
|
|
725
680
|
"condition": {
|
|
726
|
-
"functionBody": "const schedule = model.accessories?.[arguments[1]]?.schedule; return
|
|
681
|
+
"functionBody": "const schedule = model.accessories?.[arguments[1]]?.schedule; return ['TIMEOUT', 'INTERVAL'].includes(schedule?.type) && schedule?.time;"
|
|
727
682
|
}
|
|
728
683
|
}
|
|
729
684
|
]
|
|
730
685
|
},
|
|
731
686
|
{
|
|
732
687
|
"type": "fieldset",
|
|
733
|
-
"title": "${config.title.
|
|
734
|
-
"description": "${config.description.
|
|
688
|
+
"title": "${config.title.autoReset}",
|
|
689
|
+
"description": "${config.description.autoReset}",
|
|
735
690
|
"condition": {
|
|
736
691
|
"functionBody": "const type = model.accessories?.[arguments[1]]?.type; return type && type !== 'Thermostat';"
|
|
737
692
|
},
|
|
@@ -742,40 +697,65 @@
|
|
|
742
697
|
"flex-direction": "row",
|
|
743
698
|
"items": [
|
|
744
699
|
{
|
|
745
|
-
"key": "accessories[].
|
|
746
|
-
"flex": "0 0
|
|
700
|
+
"key": "accessories[].autoReset.type",
|
|
701
|
+
"flex": "0 0 auto"
|
|
747
702
|
},
|
|
748
703
|
{
|
|
749
|
-
"key": "accessories[].
|
|
750
|
-
"flex": "0 0
|
|
704
|
+
"key": "accessories[].autoReset.time",
|
|
705
|
+
"flex": "0 0 auto",
|
|
751
706
|
"condition": {
|
|
752
|
-
|
|
707
|
+
"functionBody": "return ['TIMEOUT', 'INTERVAL'].includes(model.accessories?.[arguments[1]]?.autoReset?.type);"
|
|
753
708
|
}
|
|
754
|
-
}
|
|
755
|
-
]
|
|
756
|
-
},
|
|
757
|
-
{
|
|
758
|
-
"type": "fieldset",
|
|
759
|
-
"notitle": true,
|
|
760
|
-
"condition": {
|
|
761
|
-
"functionBody": "return model.accessories?.[arguments[1]]?.timer?.delay;"
|
|
762
|
-
},
|
|
763
|
-
"items": [
|
|
764
|
-
"accessories[].timer.random",
|
|
709
|
+
},
|
|
765
710
|
{
|
|
766
|
-
"key": "accessories[].
|
|
767
|
-
"flex": "
|
|
711
|
+
"key": "accessories[].autoReset.units",
|
|
712
|
+
"flex": "0 0 auto",
|
|
768
713
|
"condition": {
|
|
769
|
-
|
|
714
|
+
"functionBody": "return ['TIMEOUT', 'INTERVAL'].includes(model.accessories?.[arguments[1]]?.autoReset?.type);"
|
|
770
715
|
}
|
|
771
716
|
},
|
|
772
717
|
{
|
|
773
|
-
"key": "accessories[].
|
|
718
|
+
"key": "accessories[].autoReset.cron",
|
|
719
|
+
"flex": "0 0 auto",
|
|
774
720
|
"condition": {
|
|
775
|
-
"functionBody": "return model.accessories?.[arguments[1]]?.
|
|
721
|
+
"functionBody": "return model.accessories?.[arguments[1]]?.autoReset?.type === 'CRON';"
|
|
722
|
+
}
|
|
723
|
+
},
|
|
724
|
+
{
|
|
725
|
+
"key": "accessories[].autoReset.cronCustom",
|
|
726
|
+
"flex": "1 0 auto",
|
|
727
|
+
"condition": {
|
|
728
|
+
"functionBody": "return model.accessories?.[arguments[1]]?.autoReset?.cron === 'CRON_CUSTOM';"
|
|
729
|
+
}
|
|
730
|
+
},
|
|
731
|
+
{
|
|
732
|
+
"key": "accessories[].autoReset.offset",
|
|
733
|
+
"flex": "0 1 auto",
|
|
734
|
+
"condition": {
|
|
735
|
+
"functionBody": "return ['SUNRISE', 'SUNSET', 'DAWN', 'DUSK', 'GOLDEN_HOUR', 'NIGHT'].includes(model.accessories?.[arguments[1]]?.autoReset?.type);"
|
|
736
|
+
}
|
|
737
|
+
},
|
|
738
|
+
{
|
|
739
|
+
"key": "accessories[].autoReset.latitude",
|
|
740
|
+
"flex": "0 1 auto",
|
|
741
|
+
"condition": {
|
|
742
|
+
"functionBody": "return ['SUNRISE', 'SUNSET', 'DAWN', 'DUSK', 'GOLDEN_HOUR', 'NIGHT'].includes(model.accessories?.[arguments[1]]?.autoReset?.type);"
|
|
743
|
+
}
|
|
744
|
+
},
|
|
745
|
+
{
|
|
746
|
+
"key": "accessories[].autoReset.longitude",
|
|
747
|
+
"flex": "0 1 auto",
|
|
748
|
+
"condition": {
|
|
749
|
+
"functionBody": "return ['SUNRISE', 'SUNSET', 'DAWN', 'DUSK', 'GOLDEN_HOUR', 'NIGHT'].includes(model.accessories?.[arguments[1]]?.autoReset?.type);"
|
|
776
750
|
}
|
|
777
751
|
}
|
|
778
752
|
]
|
|
753
|
+
},
|
|
754
|
+
{
|
|
755
|
+
"key": "accessories[].autoReset.random",
|
|
756
|
+
"condition": {
|
|
757
|
+
"functionBody": "const autoReset = model.accessories?.[arguments[1]]?.autoReset; return ['TIMEOUT', 'INTERVAL'].includes(autoReset?.type) && autoReset?.time;"
|
|
758
|
+
}
|
|
779
759
|
}
|
|
780
760
|
]
|
|
781
761
|
},
|
package/dist/accessory/base.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export declare abstract class DummyAccessory<C extends DummyConfig> {
|
|
|
29
29
|
static identifier(config: DummyConfig): string;
|
|
30
30
|
protected readonly accessoryService: Service;
|
|
31
31
|
private readonly _schedule?;
|
|
32
|
-
private readonly
|
|
32
|
+
private readonly _autoReset?;
|
|
33
33
|
private readonly _limiter?;
|
|
34
34
|
private readonly execAsync;
|
|
35
35
|
constructor(dependency: DummyAccessoryDependency<C>);
|
|
@@ -47,9 +47,9 @@ export declare abstract class DummyAccessory<C extends DummyConfig> {
|
|
|
47
47
|
protected get isStateful(): boolean;
|
|
48
48
|
protected getStoredProperty(key: CharacteristicKey): CharacteristicValue | undefined;
|
|
49
49
|
protected setStoredProperty(key: CharacteristicKey, value: CharacteristicValue): void;
|
|
50
|
-
protected
|
|
50
|
+
protected onTriggered(): void;
|
|
51
51
|
protected onTimerStarted(_delay: number): void;
|
|
52
|
-
protected
|
|
52
|
+
protected onReset(): void;
|
|
53
53
|
protected executeCommand(command: string): Promise<void>;
|
|
54
54
|
private isExecException;
|
|
55
55
|
protected onStateChange(state: AccessoryState): Promise<void>;
|
package/dist/accessory/base.js
CHANGED
|
@@ -3,10 +3,9 @@ import { promisify } from 'util';
|
|
|
3
3
|
import { PLATFORM_NAME, PLUGIN_ALIAS } from '../homebridge/settings.js';
|
|
4
4
|
import { SensorAccessory } from './sensor.js';
|
|
5
5
|
import { strings } from '../i18n/i18n.js';
|
|
6
|
-
import { AccessoryType } from '../model/enums.js';
|
|
6
|
+
import { AccessoryType, ScheduleType } from '../model/enums.js';
|
|
7
7
|
import Limiter from '../timeout/limiter.js';
|
|
8
8
|
import { Schedule } from '../timeout/schedule.js';
|
|
9
|
-
import { Timer } from '../timeout/timer.js';
|
|
10
9
|
import { Storage } from '../tools/storage.js';
|
|
11
10
|
import getVersion from '../tools/version.js';
|
|
12
11
|
export class DummyAccessory {
|
|
@@ -17,7 +16,7 @@ export class DummyAccessory {
|
|
|
17
16
|
}
|
|
18
17
|
accessoryService;
|
|
19
18
|
_schedule;
|
|
20
|
-
|
|
19
|
+
_autoReset;
|
|
21
20
|
_limiter;
|
|
22
21
|
execAsync = promisify(exec);
|
|
23
22
|
constructor(dependency) {
|
|
@@ -34,10 +33,10 @@ export class DummyAccessory {
|
|
|
34
33
|
disableLogging: disableLogging,
|
|
35
34
|
};
|
|
36
35
|
this.sensor = SensorAccessory.new(addonDependency, dependency.config.sensor);
|
|
37
|
-
this.
|
|
38
|
-
this.
|
|
36
|
+
this._schedule = Schedule.new(addonDependency, dependency.config.schedule, strings.schedule, 'Schedule', this.trigger.bind(this));
|
|
37
|
+
this._autoReset = Schedule.new(addonDependency, dependency.config.autoReset ?? dependency.config.timer, strings.autoReset, 'AutoReset', this.reset.bind(this));
|
|
39
38
|
this._limiter = Limiter.new(addonDependency, dependency.config.limiter);
|
|
40
|
-
dependency.conditionManager.register(name, this.identifier, dependency.config.conditions, this.trigger.bind(this), this.
|
|
39
|
+
dependency.conditionManager.register(name, this.identifier, dependency.config.conditions, this.trigger.bind(this), this._autoReset ? undefined : this.reset.bind(this), disableLogging);
|
|
41
40
|
const serviceInstance = dependency.Service[this.getAccessoryType()];
|
|
42
41
|
if (dependency.isGrouped) {
|
|
43
42
|
let accessoryService = dependency.platformAccessory.getServiceById(serviceInstance, this.identifier);
|
|
@@ -68,8 +67,8 @@ export class DummyAccessory {
|
|
|
68
67
|
return this.accessoryService.subtype;
|
|
69
68
|
}
|
|
70
69
|
teardown() {
|
|
71
|
-
this._timer?.teardown();
|
|
72
70
|
this._schedule?.teardown();
|
|
71
|
+
this._autoReset?.teardown();
|
|
73
72
|
this._limiter?.teardown();
|
|
74
73
|
}
|
|
75
74
|
get config() {
|
|
@@ -88,7 +87,7 @@ export class DummyAccessory {
|
|
|
88
87
|
return this.dependency.Characteristic;
|
|
89
88
|
}
|
|
90
89
|
get isStateful() {
|
|
91
|
-
return this._schedule === undefined && !this.config.resetOnRestart;
|
|
90
|
+
return (this._schedule === undefined || this.config.schedule?.type === ScheduleType.TIMEOUT) && !this.config.resetOnRestart;
|
|
92
91
|
}
|
|
93
92
|
getStoredProperty(key) {
|
|
94
93
|
return Storage.get(this.identifier, key);
|
|
@@ -99,17 +98,18 @@ export class DummyAccessory {
|
|
|
99
98
|
}
|
|
100
99
|
Storage.set(this.identifier, key, value);
|
|
101
100
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
101
|
+
onTriggered() {
|
|
102
|
+
const delay = this._autoReset?.startTimeout();
|
|
103
|
+
if (delay !== undefined) {
|
|
105
104
|
this.onTimerStarted(delay);
|
|
106
105
|
}
|
|
107
106
|
this._limiter?.start(this.reset.bind(this));
|
|
108
107
|
}
|
|
109
108
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
110
109
|
onTimerStarted(_delay) { }
|
|
111
|
-
|
|
112
|
-
this.
|
|
110
|
+
onReset() {
|
|
111
|
+
this._schedule?.startTimeout();
|
|
112
|
+
this._autoReset?.cancel();
|
|
113
113
|
this._limiter?.cancel();
|
|
114
114
|
}
|
|
115
115
|
async executeCommand(command) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/accessory/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAiB,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG1C,OAAO,EAAkB,aAAa,EAAqB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/accessory/base.ts"],"names":[],"mappings":"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"}
|
package/dist/accessory/lock.js
CHANGED
|
@@ -68,10 +68,10 @@ export class LockAccessory extends DummyAccessory {
|
|
|
68
68
|
this.state = value;
|
|
69
69
|
this.setStoredProperty(CharacteristicKey.LockTargetState, this.state);
|
|
70
70
|
if (this.state !== this.defaultLockState) {
|
|
71
|
-
this.
|
|
71
|
+
this.onTriggered();
|
|
72
72
|
}
|
|
73
73
|
else {
|
|
74
|
-
this.
|
|
74
|
+
this.onReset();
|
|
75
75
|
}
|
|
76
76
|
this.accessoryService.updateCharacteristic(this.Characteristic.LockTargetState, this.state);
|
|
77
77
|
this.accessoryService.updateCharacteristic(this.Characteristic.LockCurrentState, this.state);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/accessory/lock.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/accessory/lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -73,7 +73,7 @@ export class LightbulbAccessory extends OnOffAccessory {
|
|
|
73
73
|
}
|
|
74
74
|
this.brightness = value;
|
|
75
75
|
if (this.fader.isFading) {
|
|
76
|
-
this.
|
|
76
|
+
this.onTriggered();
|
|
77
77
|
}
|
|
78
78
|
this.logIfDesired(strings.lightbulb.brightness, this.brightness.toString());
|
|
79
79
|
this.setStoredProperty(CharacteristicKey.Brightness, this.brightness);
|
|
@@ -87,9 +87,9 @@ export class LightbulbAccessory extends OnOffAccessory {
|
|
|
87
87
|
this.accessoryService.updateCharacteristic(this.Characteristic.Brightness, value);
|
|
88
88
|
});
|
|
89
89
|
}
|
|
90
|
-
|
|
90
|
+
onReset() {
|
|
91
91
|
this.fader.cancel();
|
|
92
|
-
super.
|
|
92
|
+
super.onReset();
|
|
93
93
|
}
|
|
94
94
|
teardown() {
|
|
95
95
|
this.fader.teardown();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lightbulb.js","sourceRoot":"","sources":["../../../src/accessory/onoff/lightbulb.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"lightbulb.js","sourceRoot":"","sources":["../../../src/accessory/onoff/lightbulb.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,10 +65,10 @@ export class OnOffAccessory extends DummyAccessory {
|
|
|
65
65
|
this.on = value;
|
|
66
66
|
this.setStoredProperty(CharacteristicKey.On, this.on);
|
|
67
67
|
if (this.on !== this.defaultState) {
|
|
68
|
-
this.
|
|
68
|
+
this.onTriggered();
|
|
69
69
|
}
|
|
70
70
|
else {
|
|
71
|
-
this.
|
|
71
|
+
this.onReset();
|
|
72
72
|
}
|
|
73
73
|
this.accessoryService.updateCharacteristic(this.Characteristic.On, this.on);
|
|
74
74
|
if (this.sensor) {
|