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.
Files changed (42) hide show
  1. package/CHANGELOG.md +14 -4
  2. package/README.md +37 -24
  3. package/config.schema.json +60 -80
  4. package/dist/accessory/base.d.ts +3 -3
  5. package/dist/accessory/base.js +13 -13
  6. package/dist/accessory/base.js.map +1 -1
  7. package/dist/accessory/lock.js +2 -2
  8. package/dist/accessory/lock.js.map +1 -1
  9. package/dist/accessory/onoff/lightbulb.d.ts +1 -1
  10. package/dist/accessory/onoff/lightbulb.js +3 -3
  11. package/dist/accessory/onoff/lightbulb.js.map +1 -1
  12. package/dist/accessory/onoff/onoff.js +2 -2
  13. package/dist/accessory/onoff/onoff.js.map +1 -1
  14. package/dist/accessory/position/position.js +2 -2
  15. package/dist/accessory/position/position.js.map +1 -1
  16. package/dist/homebridge-ui/public/index.html +1 -1
  17. package/dist/homebridge-ui/public/ui.js +1 -1
  18. package/dist/i18n/de.d.ts +26 -18
  19. package/dist/i18n/en.d.ts +26 -18
  20. package/dist/i18n/en.js +28 -20
  21. package/dist/i18n/en.js.map +1 -1
  22. package/dist/i18n/es.d.ts +26 -18
  23. package/dist/i18n/i18n.d.ts +26 -18
  24. package/dist/i18n/ru.d.ts +26 -18
  25. package/dist/i18n/template.d.ts +26 -18
  26. package/dist/model/enums.d.ts +1 -0
  27. package/dist/model/enums.js +1 -0
  28. package/dist/model/enums.js.map +1 -1
  29. package/dist/model/types.d.ts +17 -3
  30. package/dist/timeout/schedule.d.ts +11 -3
  31. package/dist/timeout/schedule.js +92 -19
  32. package/dist/timeout/schedule.js.map +1 -1
  33. package/dist/timeout/timeout.d.ts +1 -2
  34. package/dist/tools/configMigration.js +4 -3
  35. package/dist/tools/configMigration.js.map +1 -1
  36. package/dist/tools/storage.d.ts +12 -0
  37. package/dist/tools/storage.js +12 -0
  38. package/dist/tools/storage.js.map +1 -1
  39. package/package.json +1 -1
  40. package/dist/timeout/timer.d.ts +0 -14
  41. package/dist/timeout/timer.js +0 -68
  42. 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.4.3 (2025-11-20)
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
- "timer": {
103
- "delay": number,
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
- "schedule": {
108
- "type": "INTERVAL" | "CRON" | "SUNRISE" | "SUNSET" | "DAWN" | "DUSK" | "GOLDEN_HOUR" | "NIGHT",
109
- "interval": number,
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 specified interval or times
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.interval` — Trigger the accessory after this many milliseconds/seconds/minutes/hours. *Required if `schedule.type` = `INTERVAL`
206
- - `schedule.units` — The units to use for the interval (`MILLISECONDS`, `SECONDS`, `MINUTES`, or `HOURS`) *Required if `schedule.type` = `INTERVAL`
207
- - `schedule.random` — If true, the interval will be randomized with a maximum value of `schedule.interval`
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 by timer but not if it is reset manually
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 `timer` to be defined.
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 an auto-reset timer.
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 an auto-reset timer.
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
- "timer": {
342
- "delay": 10,
353
+ "autoReset": {
354
+ "type": "TIMEOUT",
355
+ "time": 10,
343
356
  "units": "MINUTES",
344
357
  "random": false
345
358
  },
@@ -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
- "interval": {
41
+ "time": {
87
42
  "type": "integer",
88
- "title": "${config.title.interval}",
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
- "const": "INTERVAL"
84
+ "enum": ["TIMEOUT", "INTERVAL"]
130
85
  }
131
86
  }
132
87
  },
133
88
  "then": {
134
- "required": ["interval", "units"]
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": "return model.accessories?.[arguments[1]]?.schedule?.type === undefined && model.accessories?.[arguments[1]]?.timer?.delay === undefined;"
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.interval",
628
+ "key": "accessories[].schedule.time",
674
629
  "flex": "0 0 auto",
675
630
  "condition": {
676
- "functionBody": "return model.accessories?.[arguments[1]]?.schedule?.type === 'INTERVAL';"
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 === 'INTERVAL';"
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 schedule?.type === 'INTERVAL' && schedule?.interval;"
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.timer}",
734
- "description": "${config.description.timer}",
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[].timer.delay",
746
- "flex": "0 0 33%"
700
+ "key": "accessories[].autoReset.type",
701
+ "flex": "0 0 auto"
747
702
  },
748
703
  {
749
- "key": "accessories[].timer.units",
750
- "flex": "0 0 33%",
704
+ "key": "accessories[].autoReset.time",
705
+ "flex": "0 0 auto",
751
706
  "condition": {
752
- "functionBody": "return model.accessories?.[arguments[1]]?.timer?.delay;"
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[].fadeOut",
767
- "flex": "1 0 33%",
711
+ "key": "accessories[].autoReset.units",
712
+ "flex": "0 0 auto",
768
713
  "condition": {
769
- "functionBody": "return model.accessories?.[arguments[1]]?.defaultBrightness !== undefined && model.accessories?.[arguments[1]]?.defaultState !== 'on' && model.accessories?.[arguments[1]]?.timer?.delay !== undefined;"
714
+ "functionBody": "return ['TIMEOUT', 'INTERVAL'].includes(model.accessories?.[arguments[1]]?.autoReset?.type);"
770
715
  }
771
716
  },
772
717
  {
773
- "key": "accessories[].sensor.timerControlled",
718
+ "key": "accessories[].autoReset.cron",
719
+ "flex": "0 0 auto",
774
720
  "condition": {
775
- "functionBody": "return model.accessories?.[arguments[1]]?.sensor?.type;"
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
  },
@@ -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 _timer?;
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 startTimer(): void;
50
+ protected onTriggered(): void;
51
51
  protected onTimerStarted(_delay: number): void;
52
- protected cancelTimer(): void;
52
+ protected onReset(): void;
53
53
  protected executeCommand(command: string): Promise<void>;
54
54
  private isExecException;
55
55
  protected onStateChange(state: AccessoryState): Promise<void>;
@@ -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
- _timer;
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._timer = Timer.new(addonDependency, dependency.config.timer);
38
- this._schedule = Schedule.new(addonDependency, dependency.config.schedule, this.trigger.bind(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._timer ? undefined : this.reset.bind(this), disableLogging);
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
- startTimer() {
103
- if (this._timer) {
104
- const delay = this._timer.start(this.reset.bind(this));
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
- cancelTimer() {
112
- this._timer?.cancel();
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":"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"}
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,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAInG,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGlD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAsB7C,MAAM,OAAgB,cAAc;IAiBf;IAfT,MAAM,CAAmB;IAE5B,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,SAAS,CAAY;IACrB,UAAU,CAAY;IACtB,QAAQ,CAAW;IAEnB,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE7C,YACmB,UAAuC;QAAvC,eAAU,GAAV,UAAU,CAA6B;QAGxD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;QACpC,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,cAAc,KAAK,IAAI,CAAC;QAEjE,MAAM,eAAe,GAA0B;YAC7C,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,iBAAiB,EAAE,UAAU,CAAC,iBAAiB;YAC/C,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,IAAI;YACZ,GAAG,EAAE,UAAU,CAAC,GAAG;YACnB,cAAc,EAAE,cAAc;SAC/B,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE7E,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAElI,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,EACpG,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAExE,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU,EACtF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC;QAEhG,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAEpE,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YAEzB,IAAI,gBAAgB,GAAG,UAAU,CAAC,iBAAiB,CAAC,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACrG,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,gBAAgB,GAAG,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBACnG,gBAAgB,CAAC,yBAAyB,CAAC,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;gBACrF,gBAAgB,CAAC,iBAAiB,CAAC,UAAU,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YACrF,CAAC;YAED,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;YAEzC,OAAO;QACT,CAAC;QAED,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAE;aAC9E,iBAAiB,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC;aACvD,iBAAiB,CAAC,UAAU,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC;aACjE,iBAAiB,CAAC,UAAU,CAAC,cAAc,CAAC,YAAY,EAAE,YAAY,CAAC;aACvE,iBAAiB,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;aAC1E,iBAAiB,CAAC,UAAU,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC;aAC1E,iBAAiB,CAAC,UAAU,CAAC,cAAc,CAAC,gBAAgB,EAAE,UAAU,EAAE,CAAC,CAAC;QAE/E,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QAE7I,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YAChD,MAAM,eAAe,GAAG,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1F,IAAI,eAAe,IAAI,IAAI,KAAK,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;gBACxD,UAAU,CAAC,iBAAiB,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;IACH,CAAC;IAQD,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;IACvC,CAAC;IAEM,QAAQ;QACb,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAID,IAAc,MAAM;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;IAChC,CAAC;IAED,IAAc,UAAU;QACtB,OAAO,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,IAAc,IAAI;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,IAAc,GAAG;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;IAC7B,CAAC;IAED,IAAc,cAAc;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;IACxC,CAAC;IAED,IAAc,UAAU;QACtB,OAAO,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,KAAK,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;IAC9H,CAAC;IAES,iBAAiB,CAAC,GAAsB;QAChD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;IAES,iBAAiB,CAAC,GAAsB,EAAE,KAA0B;QAC5E,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IAES,WAAW;QAEnB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC;QAC9C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,6DAA6D;IACnD,cAAc,CAAC,MAAc,IAAG,CAAC;IAEjC,OAAO;QACf,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IAES,KAAK,CAAC,cAAc,CAAC,OAAe;QAE5C,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE;YAChF,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAC9B,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;gBACrD,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;oBACtB,MAAM,MAAM,GAAG,SAAS,UAAU,IAAI,GAAG,EAAE,CAAC;oBAC5C,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO,WAAW,CAAC;QACrB,CAAC,EAAE,EAA+B,CAAC,CAAC;QAEpC,MAAM,WAAW,GAAG;YAClB,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,GAAG,aAAa;aACjB;SACF,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAE7B,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAC5E,CAAC;QAEH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAEb,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACzE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACnE,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YAEhC,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAExC,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACnB,IAAI,MAAM,EAAE,CAAC;oBACX,IAAI,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACtH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,GAAY;QAClC,OAAO,GAAG,YAAY,KAAK;YACzB,MAAM,IAAI,GAAG;YACb,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;YAC5B,QAAQ,IAAI,GAAG;YACf,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;YAC9B,QAAQ,IAAI,GAAG;YACf,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC;IACnC,CAAC;IAES,KAAK,CAAC,aAAa,CAAC,KAAqB;QACjD,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC/E,CAAC;IAES,YAAY,CAAC,OAAe,EAAE,GAAG,UAA+B;QAExE,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,CAAC;IACrD,CAAC;CACF"}
@@ -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.startTimer();
71
+ this.onTriggered();
72
72
  }
73
73
  else {
74
- this.cancelTimer();
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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"}
@@ -17,6 +17,6 @@ export declare class LightbulbAccessory extends OnOffAccessory<LightbulbConfig>
17
17
  private getBrightness;
18
18
  private setBrightness;
19
19
  onTimerStarted(delay: number): void;
20
- cancelTimer(): void;
20
+ onReset(): void;
21
21
  teardown(): void;
22
22
  }
@@ -73,7 +73,7 @@ export class LightbulbAccessory extends OnOffAccessory {
73
73
  }
74
74
  this.brightness = value;
75
75
  if (this.fader.isFading) {
76
- this.startTimer();
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
- cancelTimer() {
90
+ onReset() {
91
91
  this.fader.cancel();
92
- super.cancelTimer();
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":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE/F,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,aAAa,GAAG,CAAC,CAAC,CAAC;AAEzB,MAAM,OAAO,kBAAmB,SAAQ,cAA+B;IAE7D,UAAU,CAAsB;IAEhC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;IAE5B,YAAY,UAAqD;QAC/D,KAAK,CAAC,UAAU,CAAC,CAAC;QAElB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,aAAa,CAAC;QAEjE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAElB,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC;iBAC1E,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACpC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAExC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE9B,CAAC;aAAM,CAAC;YAEN,MAAM,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAE/G,IAAI,wBAAwB,EAAE,CAAC;gBAC7B,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAY,QAAQ;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,KAAK,SAAS,CAAC;IACrD,CAAC;IAEQ,gBAAgB;QACvB,OAAO,aAAa,CAAC,SAAS,CAAC;IACjC,CAAC;IAED,IAAa,QAAQ;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,QAAQ;YACjB,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC,UAAU,EAC3D,IAAI,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EACjB,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EACrB,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC1B,OAAO,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/F,CAAC,CAAC;SACL,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAEhC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5F,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,MAAM,qBAAqB,CAAC,GAAG,IAAI,CAAC,UAAU,aAAa,CAAC,CAAC;QACxI,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAEQ,oBAAoB,CAAC,KAA0B;QACtD,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAC5D,OAAO,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;QACnF,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAEQ,KAAK,CAAC,KAAK,CAAC,KAA0B,EAAE,WAAoB,KAAK;QACxE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAE7B,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,KAA0B;QAEpD,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE5E,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAEtE,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9F,CAAC;IAEQ,cAAc,CAAC,KAAa;QAEnC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YACzD,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;IACL,CAAC;IAEQ,WAAW;QAClB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,WAAW,EAAE,CAAC;IACtB,CAAC;IAEQ,QAAQ;QACf,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACtB,KAAK,CAAC,QAAQ,EAAE,CAAC;IACnB,CAAC;CACF"}
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.startTimer();
68
+ this.onTriggered();
69
69
  }
70
70
  else {
71
- this.cancelTimer();
71
+ this.onReset();
72
72
  }
73
73
  this.accessoryService.updateCharacteristic(this.Characteristic.On, this.on);
74
74
  if (this.sensor) {