homebridge-dummy 1.1.0-beta.9 → 1.1.1-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 (69) hide show
  1. package/CHANGELOG.md +12 -5
  2. package/README.md +11 -11
  3. package/config.schema.json +96 -19
  4. package/dist/accessory/base.d.ts +2 -1
  5. package/dist/accessory/base.js +1 -1
  6. package/dist/accessory/base.js.map +1 -1
  7. package/dist/accessory/helpers.d.ts +2 -2
  8. package/dist/accessory/helpers.js +9 -9
  9. package/dist/accessory/helpers.js.map +1 -1
  10. package/dist/accessory/lock.d.ts +2 -1
  11. package/dist/accessory/lock.js +1 -1
  12. package/dist/accessory/lock.js.map +1 -1
  13. package/dist/accessory/onoff/lightbulb.d.ts +2 -7
  14. package/dist/accessory/onoff/lightbulb.js +2 -43
  15. package/dist/accessory/onoff/lightbulb.js.map +1 -1
  16. package/dist/accessory/onoff/onoff.d.ts +3 -3
  17. package/dist/accessory/onoff/onoff.js.map +1 -1
  18. package/dist/accessory/onoff/outlet.d.ts +2 -1
  19. package/dist/accessory/onoff/outlet.js +1 -1
  20. package/dist/accessory/onoff/outlet.js.map +1 -1
  21. package/dist/accessory/onoff/switch.d.ts +2 -1
  22. package/dist/accessory/onoff/switch.js +1 -1
  23. package/dist/accessory/onoff/switch.js.map +1 -1
  24. package/dist/accessory/position/blind.d.ts +2 -1
  25. package/dist/accessory/position/blind.js +1 -1
  26. package/dist/accessory/position/blind.js.map +1 -1
  27. package/dist/accessory/position/door.d.ts +2 -1
  28. package/dist/accessory/position/door.js +1 -1
  29. package/dist/accessory/position/door.js.map +1 -1
  30. package/dist/accessory/position/position.js +1 -1
  31. package/dist/accessory/position/position.js.map +1 -1
  32. package/dist/accessory/position/window.d.ts +2 -1
  33. package/dist/accessory/position/window.js +1 -1
  34. package/dist/accessory/position/window.js.map +1 -1
  35. package/dist/accessory/sensor.d.ts +2 -1
  36. package/dist/accessory/sensor.js +1 -1
  37. package/dist/accessory/sensor.js.map +1 -1
  38. package/dist/accessory/thermostat.d.ts +2 -1
  39. package/dist/accessory/thermostat.js +1 -1
  40. package/dist/accessory/thermostat.js.map +1 -1
  41. package/dist/homebridge-ui/public/index.html +1 -1
  42. package/dist/homebridge-ui/public/ui.js +1 -1
  43. package/dist/i18n/en.d.ts +12 -9
  44. package/dist/i18n/en.js +17 -14
  45. package/dist/i18n/en.js.map +1 -1
  46. package/dist/i18n/i18n.d.ts +12 -9
  47. package/dist/i18n/template.d.ts +12 -9
  48. package/dist/i18n/zz.d.ts +12 -9
  49. package/dist/model/enums.d.ts +56 -0
  50. package/dist/model/enums.js +66 -0
  51. package/dist/model/enums.js.map +1 -0
  52. package/dist/model/types.d.ts +3 -58
  53. package/dist/model/types.js +1 -65
  54. package/dist/model/types.js.map +1 -1
  55. package/dist/timeout/schedule.js +11 -4
  56. package/dist/timeout/schedule.js.map +1 -1
  57. package/dist/timeout/timeout.d.ts +1 -1
  58. package/dist/timeout/timeout.js +1 -1
  59. package/dist/tools/configMigration.js +1 -1
  60. package/dist/tools/configMigration.js.map +1 -1
  61. package/dist/tools/temperature.d.ts +1 -1
  62. package/dist/tools/temperature.js +1 -1
  63. package/dist/tools/validation.d.ts +1 -1
  64. package/dist/tools/validation.js +0 -1
  65. package/dist/tools/validation.js.map +1 -1
  66. package/package.json +7 -7
  67. package/dist/timeout/fader.d.ts +0 -14
  68. package/dist/timeout/fader.js +0 -45
  69. package/dist/timeout/fader.js.map +0 -1
package/dist/i18n/zz.d.ts CHANGED
@@ -46,13 +46,6 @@ declare const zz: {
46
46
  intervalMinutes: string;
47
47
  intervalHours: string;
48
48
  };
49
- fade: {
50
- cancel: string;
51
- startMilliseconds: string;
52
- startSeconds: string;
53
- startMinutes: string;
54
- startHours: string;
55
- };
56
49
  };
57
50
  config: {
58
51
  migrate: string;
@@ -70,7 +63,6 @@ declare const zz: {
70
63
  description: {
71
64
  commands: string;
72
65
  cron: string;
73
- fade: string;
74
66
  random: string;
75
67
  timerControlled: string;
76
68
  timer: string;
@@ -85,14 +77,19 @@ declare const zz: {
85
77
  contactSensor: string;
86
78
  cool: string;
87
79
  cron: string;
80
+ custom: string;
81
+ daily: string;
88
82
  door: string;
89
83
  fahrenheit: string;
90
84
  heat: string;
85
+ hourly: string;
91
86
  hours: string;
92
87
  interval: string;
93
88
  leakSensor: string;
94
89
  lightbulb: string;
95
90
  lockMechanism: string;
91
+ minutely: string;
92
+ monthly: string;
96
93
  off: string;
97
94
  occupancySensor: string;
98
95
  on: string;
@@ -101,14 +98,19 @@ declare const zz: {
101
98
  milliseconds: string;
102
99
  minutes: string;
103
100
  motionSensor: string;
101
+ secondly: string;
104
102
  seconds: string;
105
103
  secured: string;
106
104
  smokeSensor: string;
107
105
  switch: string;
108
106
  thermostat: string;
109
107
  unsecured: string;
108
+ weekdays: string;
109
+ weekends: string;
110
+ weekly: string;
110
111
  window: string;
111
112
  windowCovering: string;
113
+ yearly: string;
112
114
  };
113
115
  title: {
114
116
  accessory: string;
@@ -121,16 +123,17 @@ declare const zz: {
121
123
  commandUnlock: string;
122
124
  commandTemperature: string;
123
125
  cron: string;
126
+ cronCustom: string;
124
127
  defaultBrightness: string;
125
128
  defaultPosition: string;
126
129
  defaultState: string;
127
130
  defaultTemperature: string;
128
131
  delay: string;
129
132
  disableLogging: string;
130
- fade: string;
131
133
  groupName: string;
132
134
  interval: string;
133
135
  name: string;
136
+ preset: string;
134
137
  resetOnRestart: string;
135
138
  timer: string;
136
139
  timerControlled: string;
@@ -0,0 +1,56 @@
1
+ export declare enum AccessoryType {
2
+ Door = "Door",
3
+ Lightbulb = "Lightbulb",
4
+ LockMechanism = "LockMechanism",
5
+ Outlet = "Outlet",
6
+ Switch = "Switch",
7
+ Thermostat = "Thermostat",
8
+ Window = "Window",
9
+ WindowCovering = "WindowCovering"
10
+ }
11
+ export declare enum SensorType {
12
+ CarbonDioxideSensor = "CarbonDioxideSensor",
13
+ CarbonMonoxideSensor = "CarbonMonoxideSensor",
14
+ ContactSensor = "ContactSensor",
15
+ LeakSensor = "LeakSensor",
16
+ MotionSensor = "MotionSensor",
17
+ OccupancySensor = "OccupancySensor",
18
+ SmokeSensor = "SmokeSensor"
19
+ }
20
+ export declare enum SensorCharacteristic {
21
+ CarbonDioxideDetected = "CarbonDioxideDetected",
22
+ CarbonMonoxideDetected = "CarbonMonoxideDetected",
23
+ ContactSensorState = "ContactSensorState",
24
+ LeakDetected = "LeakDetected",
25
+ MotionDetected = "MotionDetected",
26
+ OccupancyDetected = "OccupancyDetected",
27
+ SmokeDetected = "SmokeDetected"
28
+ }
29
+ export declare enum DefaultLockState {
30
+ LOCKED = "locked",
31
+ UNLOCKED = "unlocked"
32
+ }
33
+ export declare enum DefaultPosition {
34
+ OPEN = "open",
35
+ CLOSED = "closed"
36
+ }
37
+ export declare enum DefaultThermostatState {
38
+ OFF = "off",
39
+ COOL = "cool",
40
+ HEAT = "heat",
41
+ AUTO = "auto"
42
+ }
43
+ export declare enum TimeUnits {
44
+ MILLISECONDS = "MILLISECONDS",
45
+ SECONDS = "SECONDS",
46
+ MINUTES = "MINUTES",
47
+ HOURS = "HOURS"
48
+ }
49
+ export declare enum ScheduleType {
50
+ INTERVAL = "INTERVAL",
51
+ CRON = "CRON"
52
+ }
53
+ export declare enum TemperatureUnits {
54
+ CELSIUS = "C",
55
+ FAHRENHEIT = "F"
56
+ }
@@ -0,0 +1,66 @@
1
+ export var AccessoryType;
2
+ (function (AccessoryType) {
3
+ AccessoryType["Door"] = "Door";
4
+ AccessoryType["Lightbulb"] = "Lightbulb";
5
+ AccessoryType["LockMechanism"] = "LockMechanism";
6
+ AccessoryType["Outlet"] = "Outlet";
7
+ AccessoryType["Switch"] = "Switch";
8
+ AccessoryType["Thermostat"] = "Thermostat";
9
+ AccessoryType["Window"] = "Window";
10
+ AccessoryType["WindowCovering"] = "WindowCovering";
11
+ })(AccessoryType || (AccessoryType = {}));
12
+ export var SensorType;
13
+ (function (SensorType) {
14
+ SensorType["CarbonDioxideSensor"] = "CarbonDioxideSensor";
15
+ SensorType["CarbonMonoxideSensor"] = "CarbonMonoxideSensor";
16
+ SensorType["ContactSensor"] = "ContactSensor";
17
+ SensorType["LeakSensor"] = "LeakSensor";
18
+ SensorType["MotionSensor"] = "MotionSensor";
19
+ SensorType["OccupancySensor"] = "OccupancySensor";
20
+ SensorType["SmokeSensor"] = "SmokeSensor";
21
+ })(SensorType || (SensorType = {}));
22
+ export var SensorCharacteristic;
23
+ (function (SensorCharacteristic) {
24
+ SensorCharacteristic["CarbonDioxideDetected"] = "CarbonDioxideDetected";
25
+ SensorCharacteristic["CarbonMonoxideDetected"] = "CarbonMonoxideDetected";
26
+ SensorCharacteristic["ContactSensorState"] = "ContactSensorState";
27
+ SensorCharacteristic["LeakDetected"] = "LeakDetected";
28
+ SensorCharacteristic["MotionDetected"] = "MotionDetected";
29
+ SensorCharacteristic["OccupancyDetected"] = "OccupancyDetected";
30
+ SensorCharacteristic["SmokeDetected"] = "SmokeDetected";
31
+ })(SensorCharacteristic || (SensorCharacteristic = {}));
32
+ export var DefaultLockState;
33
+ (function (DefaultLockState) {
34
+ DefaultLockState["LOCKED"] = "locked";
35
+ DefaultLockState["UNLOCKED"] = "unlocked";
36
+ })(DefaultLockState || (DefaultLockState = {}));
37
+ export var DefaultPosition;
38
+ (function (DefaultPosition) {
39
+ DefaultPosition["OPEN"] = "open";
40
+ DefaultPosition["CLOSED"] = "closed";
41
+ })(DefaultPosition || (DefaultPosition = {}));
42
+ export var DefaultThermostatState;
43
+ (function (DefaultThermostatState) {
44
+ DefaultThermostatState["OFF"] = "off";
45
+ DefaultThermostatState["COOL"] = "cool";
46
+ DefaultThermostatState["HEAT"] = "heat";
47
+ DefaultThermostatState["AUTO"] = "auto";
48
+ })(DefaultThermostatState || (DefaultThermostatState = {}));
49
+ export var TimeUnits;
50
+ (function (TimeUnits) {
51
+ TimeUnits["MILLISECONDS"] = "MILLISECONDS";
52
+ TimeUnits["SECONDS"] = "SECONDS";
53
+ TimeUnits["MINUTES"] = "MINUTES";
54
+ TimeUnits["HOURS"] = "HOURS";
55
+ })(TimeUnits || (TimeUnits = {}));
56
+ export var ScheduleType;
57
+ (function (ScheduleType) {
58
+ ScheduleType["INTERVAL"] = "INTERVAL";
59
+ ScheduleType["CRON"] = "CRON";
60
+ })(ScheduleType || (ScheduleType = {}));
61
+ export var TemperatureUnits;
62
+ (function (TemperatureUnits) {
63
+ TemperatureUnits["CELSIUS"] = "C";
64
+ TemperatureUnits["FAHRENHEIT"] = "F";
65
+ })(TemperatureUnits || (TemperatureUnits = {}));
66
+ //# sourceMappingURL=enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../src/model/enums.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aASX;AATD,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,wCAAuB,CAAA;IACvB,gDAA+B,CAAA;IAC/B,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;IACjB,0CAAyB,CAAA;IACzB,kCAAiB,CAAA;IACjB,kDAAiC,CAAA;AACnC,CAAC,EATW,aAAa,KAAb,aAAa,QASxB;AAED,MAAM,CAAN,IAAY,UAQX;AARD,WAAY,UAAU;IACpB,yDAA2C,CAAA;IAC3C,2DAA6C,CAAA;IAC7C,6CAA+B,CAAA;IAC/B,uCAAyB,CAAA;IACzB,2CAA6B,CAAA;IAC7B,iDAAmC,CAAA;IACnC,yCAA2B,CAAA;AAC7B,CAAC,EARW,UAAU,KAAV,UAAU,QAQrB;AAED,MAAM,CAAN,IAAY,oBAQX;AARD,WAAY,oBAAoB;IAC9B,uEAA+C,CAAA;IAC/C,yEAAiD,CAAA;IACjD,iEAAyC,CAAA;IACzC,qDAA6B,CAAA;IAC7B,yDAAiC,CAAA;IACjC,+DAAuC,CAAA;IACvC,uDAA+B,CAAA;AACjC,CAAC,EARW,oBAAoB,KAApB,oBAAoB,QAQ/B;AAED,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,yCAAqB,CAAA;AACvB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B;AAED,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,gCAAa,CAAA;IACb,oCAAiB,CAAA;AACnB,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAED,MAAM,CAAN,IAAY,sBAKX;AALD,WAAY,sBAAsB;IAChC,qCAAW,CAAA;IACX,uCAAa,CAAA;IACb,uCAAa,CAAA;IACb,uCAAa,CAAA;AACf,CAAC,EALW,sBAAsB,KAAtB,sBAAsB,QAKjC;AAED,MAAM,CAAN,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,0CAA6B,CAAA;IAC7B,gCAAmB,CAAA;IACnB,gCAAmB,CAAA;IACnB,4BAAe,CAAA;AACjB,CAAC,EALW,SAAS,KAAT,SAAS,QAKpB;AAED,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,qCAAqB,CAAA;IACrB,6BAAa,CAAA;AACf,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;AAED,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,iCAAa,CAAA;IACb,oCAAgB,CAAA;AAClB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B"}
@@ -1,48 +1,7 @@
1
1
  import { AccessoryConfig, CharacteristicValue, PlatformConfig } from 'homebridge';
2
2
  export type ServiceType = typeof import('homebridge').Service;
3
3
  export type CharacteristicType = typeof import('homebridge').Characteristic;
4
- export declare enum AccessoryType {
5
- Door = "Door",
6
- Lightbulb = "Lightbulb",
7
- LockMechanism = "LockMechanism",
8
- Outlet = "Outlet",
9
- Switch = "Switch",
10
- Thermostat = "Thermostat",
11
- Window = "Window",
12
- WindowCovering = "WindowCovering"
13
- }
14
- export declare enum SensorType {
15
- CarbonDioxideSensor = "CarbonDioxideSensor",
16
- CarbonMonoxideSensor = "CarbonMonoxideSensor",
17
- ContactSensor = "ContactSensor",
18
- LeakSensor = "LeakSensor",
19
- MotionSensor = "MotionSensor",
20
- OccupancySensor = "OccupancySensor",
21
- SmokeSensor = "SmokeSensor"
22
- }
23
- export declare enum SensorCharacteristic {
24
- CarbonDioxideDetected = "CarbonDioxideDetected",
25
- CarbonMonoxideDetected = "CarbonMonoxideDetected",
26
- ContactSensorState = "ContactSensorState",
27
- LeakDetected = "LeakDetected",
28
- MotionDetected = "MotionDetected",
29
- OccupancyDetected = "OccupancyDetected",
30
- SmokeDetected = "SmokeDetected"
31
- }
32
- export declare enum DefaultLockState {
33
- LOCKED = "locked",
34
- UNLOCKED = "unlocked"
35
- }
36
- export declare enum DefaultPosition {
37
- OPEN = "open",
38
- CLOSED = "closed"
39
- }
40
- export declare enum DefaultThermostatState {
41
- OFF = "off",
42
- COOL = "cool",
43
- HEAT = "heat",
44
- AUTO = "auto"
45
- }
4
+ import { AccessoryType, DefaultLockState, DefaultPosition, DefaultThermostatState, ScheduleType, SensorType, TemperatureUnits, TimeUnits } from './enums.js';
46
5
  export type LegacyAccessoryConfig = AccessoryConfig & {
47
6
  name: string;
48
7
  dimmer?: boolean;
@@ -58,20 +17,6 @@ export type DummyPlatformConfig = PlatformConfig & {
58
17
  accessories?: DummyConfig[];
59
18
  migrationNeeded?: boolean;
60
19
  };
61
- export declare enum TimeUnits {
62
- MILLISECONDS = "MILLISECONDS",
63
- SECONDS = "SECONDS",
64
- MINUTES = "MINUTES",
65
- HOURS = "HOURS"
66
- }
67
- export declare enum ScheduleType {
68
- INTERVAL = "INTERVAL",
69
- CRON = "CRON"
70
- }
71
- export declare enum TemperatureUnits {
72
- CELSIUS = "C",
73
- FAHRENHEIT = "F"
74
- }
75
20
  export type Assertable = {};
76
21
  export type ScheduleConfig = Assertable & {
77
22
  type: ScheduleType;
@@ -79,6 +24,7 @@ export type ScheduleConfig = Assertable & {
79
24
  units?: TimeUnits;
80
25
  random?: boolean;
81
26
  cron?: string;
27
+ cronCustom?: string;
82
28
  };
83
29
  export type TimerConfig = Assertable & {
84
30
  delay: number;
@@ -107,8 +53,7 @@ export type OnOffConfig = DummyConfig & {
107
53
  };
108
54
  export type OutletConfig = OnOffConfig & {};
109
55
  export type LightbulbConfig = OnOffConfig & {
110
- defaultBrightness?: number;
111
- fade?: boolean;
56
+ defaultBrightness?: CharacteristicValue;
112
57
  };
113
58
  export type SwitchConfig = OnOffConfig & {};
114
59
  export type LockConfig = DummyConfig & {
@@ -1,66 +1,2 @@
1
- export var AccessoryType;
2
- (function (AccessoryType) {
3
- AccessoryType["Door"] = "Door";
4
- AccessoryType["Lightbulb"] = "Lightbulb";
5
- AccessoryType["LockMechanism"] = "LockMechanism";
6
- AccessoryType["Outlet"] = "Outlet";
7
- AccessoryType["Switch"] = "Switch";
8
- AccessoryType["Thermostat"] = "Thermostat";
9
- AccessoryType["Window"] = "Window";
10
- AccessoryType["WindowCovering"] = "WindowCovering";
11
- })(AccessoryType || (AccessoryType = {}));
12
- export var SensorType;
13
- (function (SensorType) {
14
- SensorType["CarbonDioxideSensor"] = "CarbonDioxideSensor";
15
- SensorType["CarbonMonoxideSensor"] = "CarbonMonoxideSensor";
16
- SensorType["ContactSensor"] = "ContactSensor";
17
- SensorType["LeakSensor"] = "LeakSensor";
18
- SensorType["MotionSensor"] = "MotionSensor";
19
- SensorType["OccupancySensor"] = "OccupancySensor";
20
- SensorType["SmokeSensor"] = "SmokeSensor";
21
- })(SensorType || (SensorType = {}));
22
- export var SensorCharacteristic;
23
- (function (SensorCharacteristic) {
24
- SensorCharacteristic["CarbonDioxideDetected"] = "CarbonDioxideDetected";
25
- SensorCharacteristic["CarbonMonoxideDetected"] = "CarbonMonoxideDetected";
26
- SensorCharacteristic["ContactSensorState"] = "ContactSensorState";
27
- SensorCharacteristic["LeakDetected"] = "LeakDetected";
28
- SensorCharacteristic["MotionDetected"] = "MotionDetected";
29
- SensorCharacteristic["OccupancyDetected"] = "OccupancyDetected";
30
- SensorCharacteristic["SmokeDetected"] = "SmokeDetected";
31
- })(SensorCharacteristic || (SensorCharacteristic = {}));
32
- export var DefaultLockState;
33
- (function (DefaultLockState) {
34
- DefaultLockState["LOCKED"] = "locked";
35
- DefaultLockState["UNLOCKED"] = "unlocked";
36
- })(DefaultLockState || (DefaultLockState = {}));
37
- export var DefaultPosition;
38
- (function (DefaultPosition) {
39
- DefaultPosition["OPEN"] = "open";
40
- DefaultPosition["CLOSED"] = "closed";
41
- })(DefaultPosition || (DefaultPosition = {}));
42
- export var DefaultThermostatState;
43
- (function (DefaultThermostatState) {
44
- DefaultThermostatState["OFF"] = "off";
45
- DefaultThermostatState["COOL"] = "cool";
46
- DefaultThermostatState["HEAT"] = "heat";
47
- DefaultThermostatState["AUTO"] = "auto";
48
- })(DefaultThermostatState || (DefaultThermostatState = {}));
49
- export var TimeUnits;
50
- (function (TimeUnits) {
51
- TimeUnits["MILLISECONDS"] = "MILLISECONDS";
52
- TimeUnits["SECONDS"] = "SECONDS";
53
- TimeUnits["MINUTES"] = "MINUTES";
54
- TimeUnits["HOURS"] = "HOURS";
55
- })(TimeUnits || (TimeUnits = {}));
56
- export var ScheduleType;
57
- (function (ScheduleType) {
58
- ScheduleType["INTERVAL"] = "INTERVAL";
59
- ScheduleType["CRON"] = "CRON";
60
- })(ScheduleType || (ScheduleType = {}));
61
- export var TemperatureUnits;
62
- (function (TemperatureUnits) {
63
- TemperatureUnits["CELSIUS"] = "C";
64
- TemperatureUnits["FAHRENHEIT"] = "F";
65
- })(TemperatureUnits || (TemperatureUnits = {}));
1
+ export {};
66
2
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":"AAKA,MAAM,CAAN,IAAY,aASX;AATD,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,wCAAuB,CAAA;IACvB,gDAA+B,CAAA;IAC/B,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;IACjB,0CAAyB,CAAA;IACzB,kCAAiB,CAAA;IACjB,kDAAiC,CAAA;AACnC,CAAC,EATW,aAAa,KAAb,aAAa,QASxB;AAED,MAAM,CAAN,IAAY,UAQX;AARD,WAAY,UAAU;IACpB,yDAA2C,CAAA;IAC3C,2DAA6C,CAAA;IAC7C,6CAA+B,CAAA;IAC/B,uCAAyB,CAAA;IACzB,2CAA6B,CAAA;IAC7B,iDAAmC,CAAA;IACnC,yCAA2B,CAAA;AAC7B,CAAC,EARW,UAAU,KAAV,UAAU,QAQrB;AAED,MAAM,CAAN,IAAY,oBAQX;AARD,WAAY,oBAAoB;IAC9B,uEAA+C,CAAA;IAC/C,yEAAiD,CAAA;IACjD,iEAAyC,CAAA;IACzC,qDAA6B,CAAA;IAC7B,yDAAiC,CAAA;IACjC,+DAAuC,CAAA;IACvC,uDAA+B,CAAA;AACjC,CAAC,EARW,oBAAoB,KAApB,oBAAoB,QAQ/B;AAED,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,yCAAqB,CAAA;AACvB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B;AAED,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,gCAAa,CAAA;IACb,oCAAiB,CAAA;AACnB,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAED,MAAM,CAAN,IAAY,sBAKX;AALD,WAAY,sBAAsB;IAChC,qCAAW,CAAA;IACX,uCAAa,CAAA;IACb,uCAAa,CAAA;IACb,uCAAa,CAAA;AACf,CAAC,EALW,sBAAsB,KAAtB,sBAAsB,QAKjC;AAmBD,MAAM,CAAN,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,0CAA6B,CAAA;IAC7B,gCAAmB,CAAA;IACnB,gCAAmB,CAAA;IACnB,4BAAe,CAAA;AACjB,CAAC,EALW,SAAS,KAAT,SAAS,QAKpB;AAED,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,qCAAqB,CAAA;IACrB,6BAAa,CAAA;AACf,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;AAED,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,iCAAa,CAAA;IACb,oCAAgB,CAAA;AAClB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":""}
@@ -1,8 +1,9 @@
1
1
  import { CronJob, validateCronExpression } from 'cron';
2
2
  import { DelayLogStrings, Timeout } from './timeout.js';
3
3
  import { strings } from '../i18n/i18n.js';
4
- import { ScheduleType } from '../model/types.js';
4
+ import { ScheduleType } from '../model/enums.js';
5
5
  import { assert } from '../tools/validation.js';
6
+ const CRON_CUSTOM = 'CRON_CUSTOM';
6
7
  export class Schedule extends Timeout {
7
8
  schedule;
8
9
  callback;
@@ -20,6 +21,9 @@ export class Schedule extends Timeout {
20
21
  if (!assert(log, caller, schedule, 'cron')) {
21
22
  return;
22
23
  }
24
+ if (schedule.cron === CRON_CUSTOM && !assert(log, caller, schedule, 'cronCustom')) {
25
+ return;
26
+ }
23
27
  }
24
28
  return new Schedule(schedule, caller, log, disableLogging, callback);
25
29
  }
@@ -51,13 +55,16 @@ export class Schedule extends Timeout {
51
55
  }, delay);
52
56
  }
53
57
  startCron() {
54
- const cron = this.schedule.cron;
58
+ let cron = this.schedule.cron;
59
+ if (cron === CRON_CUSTOM) {
60
+ cron = this.schedule.cronCustom;
61
+ }
55
62
  if (!validateCronExpression(cron).valid) {
56
- this.log.error(strings.accessory.invalidCron, this.caller, `'${this.schedule.cron}'`);
63
+ this.log.error(strings.accessory.invalidCron, this.caller, `'${cron}'`);
57
64
  return;
58
65
  }
59
66
  this.logIfDesired(strings.accessory.schedule.cron);
60
- this.cronjob = new CronJob(this.schedule.cron, this.callback);
67
+ this.cronjob = new CronJob(cron, this.callback);
61
68
  this.cronjob.start();
62
69
  }
63
70
  teardown() {
@@ -1 +1 @@
1
- {"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/timeout/schedule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/timeout/schedule.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { TimeUnits } from '../model/types.js';
1
+ import { TimeUnits } from '../model/enums.js';
2
2
  import { Log } from '../tools/log.js';
3
3
  type DelayLogStrings = {
4
4
  milliseconds: string;
@@ -1,4 +1,4 @@
1
- import { TimeUnits } from '../model/types.js';
1
+ import { TimeUnits } from '../model/enums.js';
2
2
  const SECOND = 1000;
3
3
  const MINUTE = 60 * SECOND;
4
4
  const HOUR = 60 * MINUTE;
@@ -1,7 +1,7 @@
1
1
  import fs from 'fs';
2
2
  import { strings } from '../i18n/i18n.js';
3
3
  import { LEGACY_ALIAS, PLATFORM_NAME } from '../homebridge/settings.js';
4
- import { AccessoryType, TimeUnits } from '../model/types.js';
4
+ import { AccessoryType, TimeUnits } from '../model/enums.js';
5
5
  function migrateAccessory(legacyConfig) {
6
6
  const dummyConfig = {
7
7
  id: crypto.randomUUID(),
@@ -1 +1 @@
1
- {"version":3,"file":"configMigration.js","sourceRoot":"","sources":["../../src/tools/configMigration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configMigration.js","sourceRoot":"","sources":["../../src/tools/configMigration.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { TemperatureUnits } from '../model/types.js';
1
+ import { TemperatureUnits } from '../model/enums.js';
2
2
  export declare const toCelsius: (temp: number, units?: TemperatureUnits) => number;
3
3
  export declare const fromCelsius: (temp: number, units?: TemperatureUnits) => number;
@@ -1,4 +1,4 @@
1
- import { TemperatureUnits } from '../model/types.js';
1
+ import { TemperatureUnits } from '../model/enums.js';
2
2
  const fahrenheitToCelsius = (fahrenheit) => {
3
3
  return Number(((fahrenheit - 32) * 5 / 9).toFixed(1));
4
4
  };
@@ -1,5 +1,5 @@
1
1
  import { Log } from './log.js';
2
2
  import { Assertable } from '../model/types.js';
3
3
  import { CharacteristicValue } from 'homebridge';
4
- export declare function assert(log: Log, caller: string, assertable: Assertable, ...keys: (keyof any)[]): boolean;
4
+ export declare function assert<A extends Assertable>(log: Log, caller: string, assertable: A, ...keys: (keyof A)[]): boolean;
5
5
  export declare function assertType(log: Log, caller: string, value: CharacteristicValue, type: string): boolean;
@@ -1,5 +1,4 @@
1
1
  import { strings } from '../i18n/i18n.js';
2
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
3
2
  export function assert(log, caller, assertable, ...keys) {
4
3
  let valid = true;
5
4
  for (const key of keys) {
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/tools/validation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAK1C,8DAA8D;AAC9D,MAAM,UAAU,MAAM,CAAC,GAAQ,EAAE,MAAc,EAAE,UAAsB,EAAE,GAAG,IAAmB;IAC7F,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAK,UAAsC,CAAC,GAAa,CAAC,KAAK,SAAS,EAAE,CAAC;YACzE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC5E,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAQ,EAAE,MAAc,EAAE,KAA0B,EAAE,IAAY;IAE3F,IAAI,OAAO,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1B,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,CAAC,CAAC;QACtE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/tools/validation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAM1C,MAAM,UAAU,MAAM,CAAuB,GAAQ,EAAE,MAAc,EAAE,UAAa,EAAE,GAAG,IAAiB;IACxG,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAK,UAAsC,CAAC,GAAa,CAAC,KAAK,SAAS,EAAE,CAAC;YACzE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC5E,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAQ,EAAE,MAAc,EAAE,KAA0B,EAAE,IAAY;IAE3F,IAAI,OAAO,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1B,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,CAAC,CAAC;QACtE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
package/package.json CHANGED
@@ -2,9 +2,9 @@
2
2
  "name": "homebridge-dummy",
3
3
  "platform": "HomebridgeDummy",
4
4
  "displayName": "Homebridge Dummy",
5
- "description": "Dummy accessories for automation with scheduling, delays, sensors, commands, and more",
5
+ "description": "Create fake accessories to help with automation — features scheduling, delays, sensors, commands, and more",
6
6
  "type": "module",
7
- "version": "1.1.0-beta.9",
7
+ "version": "1.1.1-beta.0",
8
8
  "homepage": "https://github.com/mpatfield/homebridge-dummy#readme",
9
9
  "repository": {
10
10
  "type": "git",
@@ -56,20 +56,20 @@
56
56
  "dependencies": {
57
57
  "@homebridge/plugin-ui-utils": "^2.0.2",
58
58
  "cron": "^4.3.2",
59
- "homebridge-lib": "^7.1.4",
59
+ "homebridge-lib": "^7.1.8",
60
60
  "lodash.merge": "^4.6.2",
61
61
  "node-persist": "^4.0.4"
62
62
  },
63
63
  "devDependencies": {
64
64
  "@types/lodash.merge": "^4.6.9",
65
65
  "@types/node-persist": "^3.1.8",
66
- "esbuild": "^0.25.5",
67
- "eslint": "^9.27.0",
68
- "homebridge": "^2.0.0-beta.0",
66
+ "esbuild": "^0.25.10",
67
+ "eslint": "^9.35.0",
68
+ "homebridge": "^2.0.0-beta.30",
69
69
  "jiti": "^2.5.1",
70
70
  "rimraf": "^6.0.1",
71
71
  "ts-node": "^10.9.2",
72
- "typescript-eslint": "^8.35.1"
72
+ "typescript-eslint": "^8.44.0"
73
73
  },
74
74
  "homebridge": {
75
75
  "platform": "HomebridgeDummy",
@@ -1,14 +0,0 @@
1
- import { Timeout } from './timeout.js';
2
- import { TimerConfig } from '../model/types.js';
3
- import { Log } from '../tools/log.js';
4
- export declare class Fader extends Timeout {
5
- private readonly timerConfig;
6
- private readonly fadeIn;
7
- static new(timerConfig: TimerConfig, fadeIn: boolean, caller: string, log: Log, disableLogging: boolean): Fader | undefined;
8
- private value?;
9
- private constructor();
10
- protected get cancelString(): string;
11
- get currentValue(): number | undefined;
12
- start(maximum: number, callback: (value: number) => Promise<void>): void;
13
- reset(): void;
14
- }
@@ -1,45 +0,0 @@
1
- import { DelayLogStrings, Timeout } from './timeout.js';
2
- import { strings } from '../i18n/i18n.js';
3
- import { assert } from '../tools/validation.js';
4
- export class Fader extends Timeout {
5
- timerConfig;
6
- fadeIn;
7
- static new(timerConfig, fadeIn, caller, log, disableLogging) {
8
- if (!assert(log, caller, timerConfig, 'delay', 'units')) {
9
- return;
10
- }
11
- return new Fader(timerConfig, fadeIn, caller, log, disableLogging);
12
- }
13
- value;
14
- constructor(timerConfig, fadeIn, caller, log, disableLogging) {
15
- super(caller, log, disableLogging);
16
- this.timerConfig = timerConfig;
17
- this.fadeIn = fadeIn;
18
- }
19
- get cancelString() {
20
- return strings.accessory.fade.cancel;
21
- }
22
- get currentValue() {
23
- return this.value;
24
- }
25
- start(maximum, callback) {
26
- this.cancel();
27
- const logStrings = DelayLogStrings(strings.accessory.fade.startMilliseconds, strings.accessory.fade.startSeconds, strings.accessory.fade.startMinutes, strings.accessory.fade.startHours);
28
- const delay = this.getDelay(this.timerConfig.delay, this.timerConfig.units, this.timerConfig.random, logStrings);
29
- const change = this.fadeIn ? 1 : -1;
30
- const interval = delay / maximum;
31
- this.value = this.fadeIn ? 0 : maximum;
32
- this.timeout = setInterval(async () => {
33
- if (this.value === undefined) {
34
- return;
35
- }
36
- this.value = this.value + change;
37
- await callback(this.value);
38
- }, interval);
39
- }
40
- reset() {
41
- super.reset();
42
- this.value = undefined;
43
- }
44
- }
45
- //# sourceMappingURL=fader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fader.js","sourceRoot":"","sources":["../../src/timeout/fader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAK1C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,MAAM,OAAO,KAAM,SAAQ,OAAO;IAcb;IACA;IAbnB,MAAM,CAAC,GAAG,CAAC,WAAwB,EAAE,MAAe,EAAE,MAAc,EAAE,GAAQ,EAAE,cAAuB;QAErG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;YACxD,OAAO;QACT,CAAC;QAED,OAAO,IAAI,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;IACrE,CAAC;IAEO,KAAK,CAAU;IAEvB,YACmB,WAAwB,EACxB,MAAe,EAChC,MAAc,EACd,GAAQ,EACR,cAAuB;QAEvB,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;QANlB,gBAAW,GAAX,WAAW,CAAa;QACxB,WAAM,GAAN,MAAM,CAAS;IAMlC,CAAC;IAED,IAAc,YAAY;QACxB,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;IACvC,CAAC;IAED,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEM,KAAK,CAAC,OAAe,EAAE,QAA0C;QAEtE,IAAI,CAAC,MAAM,EAAE,CAAC;QAEd,MAAM,UAAU,GAAG,eAAe,CAChC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,EACxC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EACnC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EACnC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAClC,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAEjH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;QAEjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAEvC,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YAEpC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC7B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YAEjC,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE7B,CAAC,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAEQ,KAAK;QACZ,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IACzB,CAAC;CACF"}