homebridge-dummy 1.2.0-beta.0 → 1.3.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 (62) hide show
  1. package/CHANGELOG.md +19 -7
  2. package/README.md +61 -24
  3. package/config.schema.json +92 -0
  4. package/dist/accessory/base.d.ts +2 -2
  5. package/dist/accessory/base.js +9 -3
  6. package/dist/accessory/base.js.map +1 -1
  7. package/dist/accessory/group.d.ts +1 -1
  8. package/dist/accessory/group.js +2 -2
  9. package/dist/accessory/group.js.map +1 -1
  10. package/dist/accessory/helpers.d.ts +1 -1
  11. package/dist/accessory/helpers.js +9 -9
  12. package/dist/accessory/helpers.js.map +1 -1
  13. package/dist/accessory/lock.d.ts +1 -1
  14. package/dist/accessory/lock.js +12 -11
  15. package/dist/accessory/lock.js.map +1 -1
  16. package/dist/accessory/onoff/lightbulb.d.ts +1 -1
  17. package/dist/accessory/onoff/lightbulb.js +4 -4
  18. package/dist/accessory/onoff/lightbulb.js.map +1 -1
  19. package/dist/accessory/onoff/onoff.d.ts +1 -1
  20. package/dist/accessory/onoff/onoff.js +8 -10
  21. package/dist/accessory/onoff/onoff.js.map +1 -1
  22. package/dist/accessory/position/position.d.ts +1 -1
  23. package/dist/accessory/position/position.js +12 -11
  24. package/dist/accessory/position/position.js.map +1 -1
  25. package/dist/accessory/sensor.d.ts +0 -1
  26. package/dist/accessory/sensor.js +6 -4
  27. package/dist/accessory/sensor.js.map +1 -1
  28. package/dist/accessory/thermostat.d.ts +1 -1
  29. package/dist/accessory/thermostat.js +13 -7
  30. package/dist/accessory/thermostat.js.map +1 -1
  31. package/dist/homebridge/platform.js +4 -3
  32. package/dist/homebridge/platform.js.map +1 -1
  33. package/dist/homebridge-ui/public/index.html +1 -1
  34. package/dist/homebridge-ui/public/ui.js +1 -1
  35. package/dist/i18n/en.d.ts +28 -1
  36. package/dist/i18n/en.js +28 -1
  37. package/dist/i18n/en.js.map +1 -1
  38. package/dist/i18n/i18n.d.ts +28 -1
  39. package/dist/i18n/template.d.ts +28 -1
  40. package/dist/i18n/zz.d.ts +28 -1
  41. package/dist/model/enums.d.ts +17 -2
  42. package/dist/model/enums.js +30 -2
  43. package/dist/model/enums.js.map +1 -1
  44. package/dist/model/types.d.ts +8 -1
  45. package/dist/model/webhook.js +6 -1
  46. package/dist/model/webhook.js.map +1 -1
  47. package/dist/timeout/limiter.d.ts +17 -0
  48. package/dist/timeout/limiter.js +137 -0
  49. package/dist/timeout/limiter.js.map +1 -0
  50. package/dist/timeout/schedule.d.ts +0 -1
  51. package/dist/timeout/schedule.js +9 -4
  52. package/dist/timeout/schedule.js.map +1 -1
  53. package/dist/timeout/timeout.d.ts +6 -2
  54. package/dist/timeout/timeout.js +62 -58
  55. package/dist/timeout/timeout.js.map +1 -1
  56. package/dist/timeout/timer.d.ts +1 -1
  57. package/dist/timeout/timer.js +12 -4
  58. package/dist/timeout/timer.js.map +1 -1
  59. package/dist/tools/storage.d.ts +4 -2
  60. package/dist/tools/storage.js +5 -6
  61. package/dist/tools/storage.js.map +1 -1
  62. package/package.json +4 -8
package/CHANGELOG.md CHANGED
@@ -2,20 +2,32 @@
2
2
 
3
3
  All notable changes to homebridge-dummy will be documented in this file.
4
4
 
5
- ## 1.2.0-beta.0 (2025-09-24)
5
+ ## 1.3.0-beta.0 (2025-10-XX)
6
6
 
7
7
  ### ‼️ WARNING — Read this if upgrading from v0.9.2 or earlier…
8
+ Automations and scenes using Homebridge Dummy accessories will need to be reconfigured. After upgrading, you must **RESTART HOMEBRIDGE SERVICE & UI** (not just *RESTART HOMEBRIDGE*). After restarting, open the Homebridge Dummy plugin settings to run the accessory migration helper. Full details [here](https://github.com/mpatfield/homebridge-dummy?tab=readme-ov-file#v1.0-migration).
8
9
 
9
- Automations and scenes using Homebridge Dummy accessories will need to be reconfigured. After upgrading, you must **RESTART HOMEBRIDGE SERVICE & UI** (not just *RESTART HOMEBRIDGE*). After restarting, open the Homebridge Dummy plugin settings to run the accessory migration helper. Full details [here](https://github.com/mpatfield/homebridge-dummy?tab=readme-ov-file#v10-migration).
10
+ ### Added
11
+ - Time Limits ([documentation](https://github.com/mpatfield/homebridge-dummy?tab=readme-ov-file#limiter))
12
+
13
+ ### Changed
14
+ - Improved error messaging for invalid config values
15
+ - Code changes to speed future feature development
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.2.0 (2025-10-02)
21
+
22
+ ### Added
23
+ - Webhooks ([documentation](https://github.com/mpatfield/homebridge-dummy#webhooks))
10
24
 
11
25
  ### Changed
12
- - Support for webhooks ([documentation](https://github.com/mpatfield/homebridge-dummy#webhooks))
13
- - Better field validation in config UI (Thank you, [@justjam2013](https://github.com/sponsors/justjam2013) for teaching me this!)
14
26
  - `schedule.cron` now expects an `@` preset or `CRON_CUSTOM` with `schedule.cronCustom` defined.
15
27
  - This is backwards compatible so no manual edits are necessary
16
-
17
- ### Fixed
18
- - Config UI rendering issue when migrating deprecated fields
28
+ - Better field validation in config UI (Thank you, [@justjam2013](https://github.com/sponsors/justjam2013) for teaching me this!)
29
+ - Updated dependencies
30
+ - Code changes to speed future feature development
19
31
 
20
32
  ## 1.1.0 (2025-08-14)
21
33
 
package/README.md CHANGED
@@ -104,7 +104,13 @@ Using the Homebridge Config UI is the easiest way to set up this plugin. However
104
104
  "sensor": {
105
105
  "type": "CarbonDioxideSensor | CarbonMonoxideSensor | ContactSensor | LeakSensor | MotionSensor | OccupancySensor | SmokeSensor",
106
106
  "timerControlled": true | false
107
- }
107
+ },
108
+ "limiter": {
109
+ "id": "string",
110
+ "limit": number,
111
+ "units": "MILLISECONDS | SECONDS | MINUTES | HOURS",
112
+ "period": "HOUR | DAY | WEEK | MONTH",
113
+ },
108
114
  "temperatureUnits": "C" | "F",
109
115
  "defaultOn": true | false,
110
116
  "defaultBrightness": 0-100,
@@ -119,11 +125,11 @@ Using the Homebridge Config UI is the easiest way to set up this plugin. However
119
125
  "commandOpen": "string",
120
126
  "commandClose": "string",
121
127
  "commandTemperature": "string",
122
- "enableWebook": true | false
128
+ "enableWebook": true | false,
123
129
  "resetOnRestart": true | false,
124
130
  "disableLogging": true | false
125
131
  }
126
- // ...additional accessories...
132
+
127
133
  ],
128
134
  "platform": "HomebridgeDummy"
129
135
  }
@@ -131,18 +137,36 @@ Using the Homebridge Config UI is the easiest way to set up this plugin. However
131
137
 
132
138
  All fields are optional unless noted with an asterisk (*)
133
139
 
140
+ ### General
134
141
  - `id`* - A unique identifier for the accessory. Changing this value will create a new accessory.
135
-
136
142
  - `name`* - The display name for the accessory in HomeKit
137
- - `type`* - The type of accessory: `Door`, `Lightbulb`, `LockMechanism`, `Outlet`, `Switch`, `Thermostat`, `Window`, or `WindowCovering`
138
-
143
+ - `type`* - The type of accessory
144
+
145
+ Valid values for `type` are:
146
+ - `Door`
147
+ - `Lightbulb`
148
+ - `LockMechanism`
149
+ - `Outlet`
150
+ - `Switch`
151
+ - `Thermostat`
152
+ - `Window`
153
+ - `WindowCovering`
154
+
155
+ ### Group
139
156
  - `groupName` - Items sharing the same group name will be collected together in the Home app UI
140
- - ⚠️ Adding/removing/changing the group name will require you to reconfigure any HomeKit scenes or automations
157
+
158
+ ⚠️ Adding/removing/changing the group name will require you to reconfigure any HomeKit scenes or automations
159
+
160
+ ### Timer
161
+ Return the accessory to its default value after the specified delay
141
162
 
142
163
  - `timer.delay` — If defined, the switch will automatically toggle after this many milliseconds/seconds/minutes/hours
143
164
  - `timer.units` — The units to use for delay above (`MILLISECONDS`, `SECONDS`, `MINUTES`, or `HOURS`). *Required if delay is set.
144
165
  - `timer.random` — If true, the delay will be randomized with a maximum value of `timer.delay`
145
166
 
167
+ ### Schedule
168
+ Set the accessory to its opposite (non-default) value at specified interval or times
169
+
146
170
  - `schedule.type` — Automatically set the accessory to it's non-default value
147
171
  - `schedule.interval` — Trigger the accessory after this many milliseconds/seconds/minutes/hours. *Required if `schedule.type` = `INTERVAL`
148
172
  - `schedule.units` — The units to use for the interval (`MILLISECONDS`, `SECONDS`, `MINUTES`, or `HOURS`) *Required if `schedule.type` = `INTERVAL`
@@ -151,36 +175,49 @@ All fields are optional unless noted with an asterisk (*)
151
175
  - `schedule.cronCustom` - Custom cron string for triggering the accessory. *Required if `schedule.cron` = `CUSTOM_CRON`
152
176
  - See [crontab.guru](http://crontab.guru) for help
153
177
 
178
+ ### Limiter
179
+ Restrict the total time this accessory can be set to its non-default value, for each specified period
180
+
181
+ - `limiter.id` - A random id (such as UUID) for storing the limit. Change this value to reset the limit.
182
+ - `limiter.limit` - The total time number of seconds/minutes/hours that this accessory may run for each `period`
183
+ - `limiter.units` - The units to use for delay above (`MILLISECONDS`, `SECONDS`, `MINUTES`, or `HOURS`). *Required if limit is set.
184
+ - `limiter.period` - How often the limit is reset (`HOUR`, `DAY`, `WEEK`, `MONTH`) *Required if limit is set.
185
+ - `HOUR` is reset at X:00:00, `DAY` at local midnight, `WEEK` on Monday, and `MONTH` on the 1st day
186
+
187
+ ### Sensor
154
188
  - `sensor.type` - Optionally attach a sensor that mirrors the state of the parent accessory
155
- - Valid values are `CarbonDioxideSensor`, `CarbonMonoxideSensor`, `ContactSensor`, `LeakSensor`, `MotionSensor`, `OccupancySensor`, or `SmokeSensor`
156
189
  - `sensor.timerControlled` - If true, sensor will be activated if accessory is reset by timer but not if it is reset manually
157
190
 
158
- - `temperatureUnits` - Units to use for thermostats, either 'C' or 'F'
191
+ Valid values for sensor are:
192
+ - `CarbonDioxideSensor`
193
+ - `CarbonMonoxideSensor`
194
+ - `ContactSensor`
195
+ - `LeakSensor`
196
+ - `MotionSensor`
197
+ - `OccupancySensor`
198
+ - `SmokeSensor`
159
199
 
160
- - `enableWebook` - Turn on webhooks for this accessory. See [Webhooks](https://github.com/mpatfield/homebridge-dummy#webhooks) section below for details.
200
+ ### Commands
201
+ Execute arbitrary commands (e.g. curl) when the accessory changes state
161
202
 
162
- - `defaultOn` Initial value. Default _ON_ = true, default _OFF_ = false
203
+ - `onCommand` - Arbitrary command to execute when lightbulb/outlet/switch/thermostat turns on
204
+ - `offCommand` - Arbitrary command to execute when lightbulb/outlet/switch/thermostat turns off
205
+ - `lockCommand` - Arbitrary command to execute when lock mechanism is locked
206
+ - `unlockCommand` - Arbitrary command to execute when lock mechanism is unlocked
207
+ - `commandTemperature` - Arbitrary command to execute when temperature changes
163
208
 
209
+ ### Defaults
210
+ - `temperatureUnits` - Units to use for thermostats, either 'C' or 'F'
211
+ - `defaultOn` — Initial value. Default _ON_ = true, default _OFF_ = false
164
212
  - `defaultBrightness` — If set, lightbulb will have additional dimmer settings with this default brightness percentage
165
-
166
213
  - `defaultLockState` - The initial value for the lock, "locked" or "unlocked"
167
-
168
214
  - `defaultPosition` — Initial position for the door/window/blinds, "open" or "closed"
169
-
170
215
  - `defaultThermostatState` - The initial state for the thermostat, "auto", "heat", "cool", or "off"
171
-
172
216
  - `defaultTemperature` - The default temperature for the thermostat in `temperatureUnits` defined above
173
217
 
174
- - `onCommand` - Arbitrary command to execute when lightbulb/outlet/switch/thermostat turns on
175
- - `offCommand` - Arbitrary command to execute when lightbulb/outlet/switch/thermostat turns off
176
-
177
- - `lockCommand` - Arbitrary command to execute when lock mechanism is locked
178
- - `unlockCommand` - Arbitrary command to execute when lock mechanism is unlocked
179
-
180
- - `commandTemperature` - Arbitrary command to execute when temperature changes
181
-
218
+ ### Options
219
+ - `enableWebook` - Turn on webhooks for this accessory. See [Webhooks](https://github.com/mpatfield/homebridge-dummy#webhooks) section below for details.
182
220
  - `resetOnRestart` _ If true, accessory will return to default state when Homebridge restarts
183
-
184
221
  - `disableLogging` — If true, state changes will not be logged
185
222
 
186
223
  ## Webhooks
@@ -143,6 +143,68 @@
143
143
  }
144
144
  }
145
145
  ]
146
+ },
147
+ "limiter": {
148
+ "type": "object",
149
+ "properties": {
150
+ "id": {
151
+ "type": "string"
152
+ },
153
+ "limit": {
154
+ "type": "number",
155
+ "title": "${config.title.limit}"
156
+ },
157
+ "units": {
158
+ "type": "string",
159
+ "title": "${config.title.units}",
160
+ "enum": [ "SECONDS", "MINUTES", "HOURS"],
161
+ "enumNames": ["${config.enumNames.seconds}", "${config.enumNames.minutes}", "${config.enumNames.hours}"]
162
+ },
163
+ "period": {
164
+ "type": "string",
165
+ "title": "${config.title.period}",
166
+ "enum": [ "HOUR", "DAY", "WEEK", "MONTH"],
167
+ "enumNames": ["${config.enumNames.hour}", "${config.enumNames.day}", "${config.enumNames.week}", "${config.enumNames.month}"]
168
+ }
169
+ },
170
+ "allOf": [
171
+ {
172
+ "if": {
173
+ "properties": {
174
+ "limit": {
175
+ }
176
+ },
177
+ "required": ["limit"]
178
+ },
179
+ "then": {
180
+ "required": ["units", "period"]
181
+ }
182
+ },
183
+ {
184
+ "if": {
185
+ "properties": {
186
+ "units" : {
187
+ }
188
+ },
189
+ "required": [ "units" ]
190
+ },
191
+ "then": {
192
+ "required": [ "limit"]
193
+ }
194
+ },
195
+ {
196
+ "if": {
197
+ "properties": {
198
+ "period" : {
199
+ }
200
+ },
201
+ "required": [ "period" ]
202
+ },
203
+ "then": {
204
+ "required": [ "limit"]
205
+ }
206
+ }
207
+ ]
146
208
  }
147
209
  },
148
210
  "properties": {
@@ -176,6 +238,7 @@
176
238
  "sensor": { "$ref": "#/definitions/sensor" },
177
239
  "timer": { "$ref": "#/definitions/timer" },
178
240
  "schedule": { "$ref": "#/definitions/schedule" },
241
+ "limiter": { "$ref": "#/definitions/limiter" },
179
242
  "temperatureUnits": {
180
243
  "type": "string",
181
244
  "title": "${config.title.units}",
@@ -511,6 +574,35 @@
511
574
  }
512
575
  ]
513
576
  },
577
+ {
578
+ "type": "fieldset",
579
+ "title": "${config.title.limiter}",
580
+ "description": "${config.description.limiter}",
581
+ "condition": {
582
+ "functionBody": "const type = model.accessories?.[arguments[1]]?.type; return type !== undefined && type !== 'Thermostat';"
583
+ },
584
+ "items": [
585
+ {
586
+ "type": "div",
587
+ "displayFlex": true,
588
+ "flex-direction": "row",
589
+ "items": [
590
+ {
591
+ "key": "accessories[].limiter.limit",
592
+ "flex": "1 1 33%"
593
+ },
594
+ {
595
+ "key": "accessories[].limiter.units",
596
+ "flex": "1 1 33%"
597
+ },
598
+ {
599
+ "key": "accessories[].limiter.period",
600
+ "flex": "1 1 33%"
601
+ }
602
+ ]
603
+ }
604
+ ]
605
+ },
514
606
  {
515
607
  "type": "fieldset",
516
608
  "title": "${config.title.commands}",
@@ -10,13 +10,13 @@ export declare abstract class DummyAccessory<C extends DummyConfig> {
10
10
  protected readonly accessory: PlatformAccessory;
11
11
  protected readonly config: C;
12
12
  protected readonly log: Log;
13
- protected readonly persistPath: string;
14
13
  protected sensor?: SensorAccessory;
15
14
  static identifier(config: DummyConfig): string;
16
15
  protected readonly accessoryService: Service;
17
16
  private readonly _schedule?;
18
17
  private readonly _timer?;
19
- constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: C, log: Log, persistPath: string, isGrouped: boolean);
18
+ private readonly _limiter?;
19
+ constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: C, log: Log, isGrouped: boolean);
20
20
  protected abstract getAccessoryType(): AccessoryType;
21
21
  protected abstract schedule(): Promise<void>;
22
22
  protected abstract reset(): Promise<void>;
@@ -3,6 +3,7 @@ import { PLATFORM_NAME, PLUGIN_ALIAS } from '../homebridge/settings.js';
3
3
  import { SensorAccessory } from './sensor.js';
4
4
  import { strings } from '../i18n/i18n.js';
5
5
  import { AccessoryType } from '../model/enums.js';
6
+ import Limiter from '../timeout/limiter.js';
6
7
  import { Schedule } from '../timeout/schedule.js';
7
8
  import { Timer } from '../timeout/timer.js';
8
9
  import { STORAGE_KEY_SUFFIX_DEFAULT_STATE } from '../tools/storage.js';
@@ -13,7 +14,6 @@ export class DummyAccessory {
13
14
  accessory;
14
15
  config;
15
16
  log;
16
- persistPath;
17
17
  sensor;
18
18
  static identifier(config) {
19
19
  return config.id ?? `${PLATFORM_NAME}:${config.type}:${config.name.replace(/\s+/g, '')}`;
@@ -21,13 +21,13 @@ export class DummyAccessory {
21
21
  accessoryService;
22
22
  _schedule;
23
23
  _timer;
24
- constructor(Service, Characteristic, accessory, config, log, persistPath, isGrouped) {
24
+ _limiter;
25
+ constructor(Service, Characteristic, accessory, config, log, isGrouped) {
25
26
  this.Service = Service;
26
27
  this.Characteristic = Characteristic;
27
28
  this.accessory = accessory;
28
29
  this.config = config;
29
30
  this.log = log;
30
- this.persistPath = persistPath;
31
31
  this.sensor = SensorAccessory.new(Service, Characteristic, accessory, this.name, log, this.config.disableLogging === true, config.sensor);
32
32
  if (config.timer) {
33
33
  this._timer = Timer.new(config.timer, config.name, log, config.disableLogging === true);
@@ -35,6 +35,9 @@ export class DummyAccessory {
35
35
  if (config.schedule) {
36
36
  this._schedule = Schedule.new(config.schedule, config.name, log, config.disableLogging === true, this.schedule.bind(this));
37
37
  }
38
+ if (config.limiter) {
39
+ this._limiter = Limiter.new(config.limiter, config.name, log, config.disableLogging === true);
40
+ }
38
41
  const serviceInstance = Service[this.getAccessoryType()];
39
42
  if (isGrouped) {
40
43
  let accessoryService = accessory.getServiceById(serviceInstance, this.identifier);
@@ -66,6 +69,7 @@ export class DummyAccessory {
66
69
  teardown() {
67
70
  this._timer?.teardown();
68
71
  this._schedule?.teardown();
72
+ this._limiter?.teardown();
69
73
  }
70
74
  get identifier() {
71
75
  return DummyAccessory.identifier(this.config);
@@ -81,9 +85,11 @@ export class DummyAccessory {
81
85
  }
82
86
  startTimer() {
83
87
  this._timer?.start(this.reset.bind(this));
88
+ this._limiter?.start(this.reset.bind(this));
84
89
  }
85
90
  cancelTimer() {
86
91
  this._timer?.cancel();
92
+ this._limiter?.cancel();
87
93
  }
88
94
  executeCommand(command) {
89
95
  exec(command, (_error, stdout, stderr) => {
@@ -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":"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"}
@@ -5,6 +5,6 @@ import { Log } from '../tools/log.js';
5
5
  export declare class GroupAccessory {
6
6
  static identifier(groupName: string): string;
7
7
  private readonly accessories;
8
- constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: GroupConfig, log: Log, persistPath: string, webhookManager: WebhookManager);
8
+ constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: GroupConfig, log: Log, webhookManager: WebhookManager);
9
9
  teardown(): void;
10
10
  }
@@ -6,7 +6,7 @@ export class GroupAccessory {
6
6
  return `${PLATFORM_NAME}:Group:${groupName.replace(/\s+/g, '')})}`;
7
7
  }
8
8
  accessories = [];
9
- constructor(Service, Characteristic, accessory, config, log, persistPath, webhookManager) {
9
+ constructor(Service, Characteristic, accessory, config, log, webhookManager) {
10
10
  accessory.getService(Service.AccessoryInformation)
11
11
  .setCharacteristic(Characteristic.Manufacturer, PLUGIN_ALIAS)
12
12
  .setCharacteristic(Characteristic.Model, GroupAccessory.name)
@@ -14,7 +14,7 @@ export class GroupAccessory {
14
14
  .setCharacteristic(Characteristic.FirmwareRevision, getVersion());
15
15
  const keepSubtypes = new Set();
16
16
  for (const dummyConfig of config.accessories) {
17
- const dummyAccessory = createDummyAccessory(Service, Characteristic, accessory, dummyConfig, log, persistPath, true);
17
+ const dummyAccessory = createDummyAccessory(Service, Characteristic, accessory, dummyConfig, log, true);
18
18
  if (!dummyAccessory) {
19
19
  continue;
20
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"group.js","sourceRoot":"","sources":["../../src/accessory/group.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAMpD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAE7C,MAAM,OAAO,cAAc;IAElB,MAAM,CAAC,UAAU,CAAC,SAAiB;QACxC,OAAO,GAAG,aAAa,UAAU,SAAS,CAAC,OAAO,CAAC,MAAM,EAAC,EAAE,CAAC,IAAI,CAAC;IACpE,CAAC;IAEgB,WAAW,GAAoC,EAAE,CAAC;IAEnE,YACE,OAAoB,EACpB,cAAkC,EAClC,SAA4B,EAC5B,MAAmB,EACnB,GAAQ,EACR,WAAmB,EACnB,cAA8B;QAG9B,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAE;aAChD,iBAAiB,CAAC,cAAc,CAAC,YAAY,EAAE,YAAY,CAAC;aAC5D,iBAAiB,CAAC,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC;aAC5D,iBAAiB,CAAC,cAAc,CAAC,YAAY,EAAE,SAAS,CAAC,IAAI,CAAC;aAC9D,iBAAiB,CAAC,cAAc,CAAC,gBAAgB,EAAE,UAAU,EAAE,CAAC,CAAC;QAEpE,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QAEvC,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YAE7C,MAAM,cAAc,GAAG,oBAAoB,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;YACrH,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,SAAS;YACX,CAAC;YAED,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;gBAC7B,cAAc,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;YACnD,CAAC;YAED,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,OAAQ,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;QAAA,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9C,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1D,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAEM,QAAQ;QACb,IAAI,CAAC,WAAW,CAAC,OAAO,CAAE,SAAS,CAAC,EAAE;YACpC,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"group.js","sourceRoot":"","sources":["../../src/accessory/group.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAMpD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAE7C,MAAM,OAAO,cAAc;IAElB,MAAM,CAAC,UAAU,CAAC,SAAiB;QACxC,OAAO,GAAG,aAAa,UAAU,SAAS,CAAC,OAAO,CAAC,MAAM,EAAC,EAAE,CAAC,IAAI,CAAC;IACpE,CAAC;IAEgB,WAAW,GAAoC,EAAE,CAAC;IAEnE,YACE,OAAoB,EACpB,cAAkC,EAClC,SAA4B,EAC5B,MAAmB,EACnB,GAAQ,EACR,cAA8B;QAG9B,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAE;aAChD,iBAAiB,CAAC,cAAc,CAAC,YAAY,EAAE,YAAY,CAAC;aAC5D,iBAAiB,CAAC,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC;aAC5D,iBAAiB,CAAC,cAAc,CAAC,YAAY,EAAE,SAAS,CAAC,IAAI,CAAC;aAC9D,iBAAiB,CAAC,cAAc,CAAC,gBAAgB,EAAE,UAAU,EAAE,CAAC,CAAC;QAEpE,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QAEvC,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YAE7C,MAAM,cAAc,GAAG,oBAAoB,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACxG,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,SAAS;YACX,CAAC;YAED,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;gBAC7B,cAAc,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;YACnD,CAAC;YAED,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,OAAQ,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;QAAA,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9C,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1D,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAEM,QAAQ;QACb,IAAI,CAAC,WAAW,CAAC,OAAO,CAAE,SAAS,CAAC,EAAE;YACpC,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -2,4 +2,4 @@ import { PlatformAccessory } from 'homebridge';
2
2
  import { DummyAccessory } from './base.js';
3
3
  import { CharacteristicType, DummyConfig, ServiceType } from '../model/types.js';
4
4
  import { Log } from '../tools/log.js';
5
- export declare function createDummyAccessory(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: DummyConfig, log: Log, persistPath: string, isGrouped?: boolean): DummyAccessory<DummyConfig> | null;
5
+ export declare function createDummyAccessory(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: DummyConfig, log: Log, isGrouped?: boolean): DummyAccessory<DummyConfig> | null;
@@ -8,24 +8,24 @@ import { ThermostatAccessory } from './thermostat.js';
8
8
  import { WindowAccessory } from './position/window.js';
9
9
  import { strings } from '../i18n/i18n.js';
10
10
  import { AccessoryType } from '../model/enums.js';
11
- export function createDummyAccessory(Service, Characteristic, accessory, config, log, persistPath, isGrouped = false) {
11
+ export function createDummyAccessory(Service, Characteristic, accessory, config, log, isGrouped = false) {
12
12
  switch (config.type) {
13
13
  case AccessoryType.Door:
14
- return new DoorAccessory(Service, Characteristic, accessory, config, log, persistPath, isGrouped);
14
+ return new DoorAccessory(Service, Characteristic, accessory, config, log, isGrouped);
15
15
  case AccessoryType.Lightbulb:
16
- return new LightbulbAccessory(Service, Characteristic, accessory, config, log, persistPath, isGrouped);
16
+ return new LightbulbAccessory(Service, Characteristic, accessory, config, log, isGrouped);
17
17
  case AccessoryType.LockMechanism:
18
- return new LockAccessory(Service, Characteristic, accessory, config, log, persistPath, isGrouped);
18
+ return new LockAccessory(Service, Characteristic, accessory, config, log, isGrouped);
19
19
  case AccessoryType.Outlet:
20
- return new OutletAccessory(Service, Characteristic, accessory, config, log, persistPath, isGrouped);
20
+ return new OutletAccessory(Service, Characteristic, accessory, config, log, isGrouped);
21
21
  case AccessoryType.Switch:
22
- return new SwitchAccessory(Service, Characteristic, accessory, config, log, persistPath, isGrouped);
22
+ return new SwitchAccessory(Service, Characteristic, accessory, config, log, isGrouped);
23
23
  case AccessoryType.Thermostat:
24
- return new ThermostatAccessory(Service, Characteristic, accessory, config, log, persistPath, isGrouped);
24
+ return new ThermostatAccessory(Service, Characteristic, accessory, config, log, isGrouped);
25
25
  case AccessoryType.Window:
26
- return new WindowAccessory(Service, Characteristic, accessory, config, log, persistPath, isGrouped);
26
+ return new WindowAccessory(Service, Characteristic, accessory, config, log, isGrouped);
27
27
  case AccessoryType.WindowCovering:
28
- return new BlindAccessory(Service, Characteristic, accessory, config, log, persistPath, isGrouped);
28
+ return new BlindAccessory(Service, Characteristic, accessory, config, log, isGrouped);
29
29
  default:
30
30
  log.error(strings.startup.unsupportedType, `'${config.type}'`);
31
31
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/accessory/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKlD,MAAM,UAAU,oBAAoB,CAClC,OAAoB,EACpB,cAAkC,EAClC,SAA4B,EAC5B,MAAmB,EACnB,GAAQ,EACR,WAAmB,EACnB,YAAqB,KAAK;IAG1B,QAAO,MAAM,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,aAAa,CAAC,IAAI;YACrB,OAAO,IAAI,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACpG,KAAK,aAAa,CAAC,SAAS;YAC1B,OAAO,IAAI,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACzG,KAAK,aAAa,CAAC,aAAa;YAC9B,OAAO,IAAI,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACpG,KAAK,aAAa,CAAC,MAAM;YACvB,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACtG,KAAK,aAAa,CAAC,MAAM;YACvB,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACtG,KAAK,aAAa,CAAC,UAAU;YAC3B,OAAO,IAAI,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAC1G,KAAK,aAAa,CAAC,MAAM;YACvB,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACtG,KAAK,aAAa,CAAC,cAAc;YAC/B,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACrG;YACE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/accessory/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKlD,MAAM,UAAU,oBAAoB,CAClC,OAAoB,EACpB,cAAkC,EAClC,SAA4B,EAC5B,MAAmB,EACnB,GAAQ,EACR,YAAqB,KAAK;IAG1B,QAAO,MAAM,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,aAAa,CAAC,IAAI;YACrB,OAAO,IAAI,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACvF,KAAK,aAAa,CAAC,SAAS;YAC1B,OAAO,IAAI,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5F,KAAK,aAAa,CAAC,aAAa;YAC9B,OAAO,IAAI,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACvF,KAAK,aAAa,CAAC,MAAM;YACvB,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACzF,KAAK,aAAa,CAAC,MAAM;YACvB,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACzF,KAAK,aAAa,CAAC,UAAU;YAC3B,OAAO,IAAI,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC7F,KAAK,aAAa,CAAC,MAAM;YACvB,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACzF,KAAK,aAAa,CAAC,cAAc;YAC/B,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACxF;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"}
@@ -6,7 +6,7 @@ import { Webhook } from '../model/webhook.js';
6
6
  import { Log } from '../tools/log.js';
7
7
  export declare class LockAccessory extends DummyAccessory<LockConfig> {
8
8
  private state;
9
- constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: LockConfig, log: Log, persistPath: string, isGrouped: boolean);
9
+ constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: LockConfig, log: Log, isGrouped: boolean);
10
10
  private initializeState;
11
11
  getAccessoryType(): AccessoryType;
12
12
  webhooks(): Webhook[];
@@ -1,12 +1,15 @@
1
1
  import { DummyAccessory } from './base.js';
2
2
  import { strings } from '../i18n/i18n.js';
3
- import { AccessoryType, DefaultLockState, WebhookCommand } from '../model/enums.js';
3
+ import { AccessoryType, DefaultLockState, isValidLockState, printableValues, WebhookCommand } from '../model/enums.js';
4
4
  import { Webhook } from '../model/webhook.js';
5
5
  import { storageGet, storageSet } from '../tools/storage.js';
6
6
  export class LockAccessory extends DummyAccessory {
7
7
  state;
8
- constructor(Service, Characteristic, accessory, config, log, persistPath, isGrouped) {
9
- super(Service, Characteristic, accessory, config, log, persistPath, isGrouped);
8
+ constructor(Service, Characteristic, accessory, config, log, isGrouped) {
9
+ super(Service, Characteristic, accessory, config, log, isGrouped);
10
+ if (!isValidLockState(this.config.defaultLockState)) {
11
+ this.log.warning(strings.accessory.lock.badDefault, this.name, `'${config.defaultLockState}'`, printableValues(DefaultLockState));
12
+ }
10
13
  this.state = this.defaultLockState;
11
14
  this.accessoryService.getCharacteristic(Characteristic.LockTargetState)
12
15
  .onGet(this.getState.bind(this))
@@ -17,7 +20,7 @@ export class LockAccessory extends DummyAccessory {
17
20
  }
18
21
  async initializeState() {
19
22
  if (this.isStateful) {
20
- this.state = await storageGet(this.persistPath, this.defaultStateStorageKey) ?? this.state;
23
+ this.state = await storageGet(this.defaultStateStorageKey) ?? this.state;
21
24
  }
22
25
  this.accessoryService.updateCharacteristic(this.Characteristic.LockTargetState, this.state);
23
26
  this.accessoryService.updateCharacteristic(this.Characteristic.LockCurrentState, this.state);
@@ -52,15 +55,13 @@ export class LockAccessory extends DummyAccessory {
52
55
  }
53
56
  this.state = value;
54
57
  if (this.isStateful) {
55
- await storageSet(this.persistPath, this.defaultStateStorageKey, this.state);
58
+ await storageSet(this.defaultStateStorageKey, this.state);
59
+ }
60
+ if (this.state !== this.defaultLockState) {
61
+ this.startTimer();
56
62
  }
57
63
  else {
58
- if (this.state !== this.defaultLockState) {
59
- this.startTimer();
60
- }
61
- else {
62
- this.cancelTimer();
63
- }
64
+ this.cancelTimer();
64
65
  }
65
66
  this.accessoryService.updateCharacteristic(this.Characteristic.LockTargetState, this.state);
66
67
  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":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAO,mBAAmB,CAAC;AAExH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C,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,SAAkB;QAElB,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,gBAAgB,GAAG,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACpI,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAEnC,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,sBAAsB,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC;QAC3E,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;IAEQ,gBAAgB;QACvB,OAAO,aAAa,CAAC,aAAa,CAAC;IACrC,CAAC;IAEQ,QAAQ;QACf,OAAO;YACL,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,eAAe,EACzD,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACrB,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/D,CAAC,CAAC;SACL,CAAC;IACJ,CAAC;IAED,IAAY,gBAAgB;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,KAAK,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC;IAChG,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,YAAY,CAAC,KAAK,CAAC,CAAC;YAEzB,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;gBACrF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC/C,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;gBAChG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,UAAU,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzC,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,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;QAE7F,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,gBAAgB,CAAC;YAC5D,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAChD,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAEQ,KAAK,CAAC,QAAQ;QACrB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBAC3E,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC;YAC9F,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAEQ,KAAK,CAAC,KAAK;QAClB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC3C,IAAI,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,KAA0B;QACjD,OAAO,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;IACnI,CAAC;IAGS,YAAY,CAAC,KAA0B;QAC/C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC;CACF"}
@@ -6,7 +6,7 @@ import { Webhook } from '../../model/webhook.js';
6
6
  import { Log } from '../../tools/log.js';
7
7
  export declare class LightbulbAccessory extends OnOffAccessory<LightbulbConfig> {
8
8
  private brightness;
9
- constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: LightbulbConfig, log: Log, persistPath: string, isGrouped: boolean);
9
+ constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: LightbulbConfig, log: Log, isGrouped: boolean);
10
10
  private get isDimmer();
11
11
  private get defaultBrightnessStorageKey();
12
12
  getAccessoryType(): AccessoryType;
@@ -6,8 +6,8 @@ import { STORAGE_KEY_SUFFIX_DEFAULT_BRIGHTNESS, storageGet, storageSet } from '.
6
6
  const NO_BRIGHTNESS = -1;
7
7
  export class LightbulbAccessory extends OnOffAccessory {
8
8
  brightness;
9
- constructor(Service, Characteristic, accessory, config, log, persistPath, isGrouped) {
10
- super(Service, Characteristic, accessory, config, log, persistPath, isGrouped);
9
+ constructor(Service, Characteristic, accessory, config, log, isGrouped) {
10
+ super(Service, Characteristic, accessory, config, log, isGrouped);
11
11
  this.brightness = this.config.defaultBrightness ?? NO_BRIGHTNESS;
12
12
  if (this.isDimmer) {
13
13
  this.accessoryService.getCharacteristic(this.Characteristic.Brightness)
@@ -36,7 +36,7 @@ export class LightbulbAccessory extends OnOffAccessory {
36
36
  }
37
37
  async initializeBrightness() {
38
38
  if (this.isStateful) {
39
- this.brightness = await storageGet(this.persistPath, this.defaultBrightnessStorageKey) ?? this.brightness;
39
+ this.brightness = await storageGet(this.defaultBrightnessStorageKey) ?? this.brightness;
40
40
  }
41
41
  this.accessoryService.updateCharacteristic(this.Characteristic.Brightness, this.brightness);
42
42
  }
@@ -59,7 +59,7 @@ export class LightbulbAccessory extends OnOffAccessory {
59
59
  this.brightness = value;
60
60
  this.logIfDesired(strings.accessory.lightbulb.brightness, this.brightness.toString());
61
61
  if (this.isStateful) {
62
- await storageSet(this.persistPath, this.defaultBrightnessStorageKey, this.brightness);
62
+ await storageSet(this.defaultBrightnessStorageKey, this.brightness);
63
63
  }
64
64
  this.accessoryService.updateCharacteristic(this.Characteristic.Brightness, this.brightness);
65
65
  }
@@ -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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"}
@@ -5,7 +5,7 @@ import { Webhook } from '../../model/webhook.js';
5
5
  import { Log } from '../../tools/log.js';
6
6
  export declare abstract class OnOffAccessory<C extends OnOffConfig = OnOffConfig> extends DummyAccessory<C> {
7
7
  private on;
8
- constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: C, log: Log, persistPath: string, isGrouped: boolean);
8
+ constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: C, log: Log, isGrouped: boolean);
9
9
  webhooks(): Webhook[];
10
10
  private initializeOn;
11
11
  private get defaultOn();