homebridge-dummy 1.1.0-beta.8 → 1.1.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 (41) hide show
  1. package/CHANGELOG.md +9 -10
  2. package/README.md +15 -14
  3. package/config.schema.json +17 -25
  4. package/dist/accessory/base.d.ts +2 -2
  5. package/dist/accessory/base.js +6 -6
  6. package/dist/accessory/base.js.map +1 -1
  7. package/dist/accessory/lock.d.ts +1 -1
  8. package/dist/accessory/lock.js +1 -1
  9. package/dist/accessory/lock.js.map +1 -1
  10. package/dist/accessory/onoff/lightbulb.d.ts +0 -6
  11. package/dist/accessory/onoff/lightbulb.js +1 -42
  12. package/dist/accessory/onoff/lightbulb.js.map +1 -1
  13. package/dist/accessory/onoff/onoff.d.ts +4 -4
  14. package/dist/accessory/onoff/onoff.js +1 -1
  15. package/dist/accessory/onoff/onoff.js.map +1 -1
  16. package/dist/accessory/position/position.d.ts +1 -1
  17. package/dist/accessory/position/position.js +1 -1
  18. package/dist/accessory/position/position.js.map +1 -1
  19. package/dist/accessory/thermostat.d.ts +1 -1
  20. package/dist/accessory/thermostat.js +2 -2
  21. package/dist/accessory/thermostat.js.map +1 -1
  22. package/dist/homebridge-ui/public/index.html +1 -1
  23. package/dist/i18n/en.d.ts +3 -12
  24. package/dist/i18n/en.js +10 -19
  25. package/dist/i18n/en.js.map +1 -1
  26. package/dist/i18n/i18n.d.ts +3 -12
  27. package/dist/i18n/template.d.ts +3 -12
  28. package/dist/i18n/zz.d.ts +3 -12
  29. package/dist/model/types.d.ts +10 -11
  30. package/dist/model/types.js +5 -5
  31. package/dist/model/types.js.map +1 -1
  32. package/dist/timeout/schedule.d.ts +14 -0
  33. package/dist/timeout/schedule.js +68 -0
  34. package/dist/timeout/schedule.js.map +1 -0
  35. package/package.json +19 -3
  36. package/dist/timeout/fader.d.ts +0 -14
  37. package/dist/timeout/fader.js +0 -45
  38. package/dist/timeout/fader.js.map +0 -1
  39. package/dist/timeout/trigger.d.ts +0 -14
  40. package/dist/timeout/trigger.js +0 -68
  41. package/dist/timeout/trigger.js.map +0 -1
@@ -43,4 +43,4 @@
43
43
  <em><p i18n="migrationDetails5" i18n_replace="migration"></p></em></br>
44
44
  </div>
45
45
 
46
- <script src="ui.js?v=1.1.0-beta.8"></script>
46
+ <script src="ui.js?v=1.1.0"></script>
package/dist/i18n/en.d.ts CHANGED
@@ -39,20 +39,13 @@ declare const en: {
39
39
  setMinutes: string;
40
40
  setHours: string;
41
41
  };
42
- trigger: {
42
+ schedule: {
43
43
  cron: string;
44
44
  intervalMilliseconds: string;
45
45
  intervalSeconds: string;
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,11 +63,10 @@ declare const en: {
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;
77
- trigger: string;
69
+ schedule: string;
78
70
  };
79
71
  enumNames: {
80
72
  auto: string;
@@ -127,14 +119,13 @@ declare const en: {
127
119
  defaultTemperature: string;
128
120
  delay: string;
129
121
  disableLogging: string;
130
- fade: string;
131
122
  groupName: string;
132
123
  interval: string;
133
124
  name: string;
134
125
  resetOnRestart: string;
135
126
  timer: string;
136
127
  timerControlled: string;
137
- trigger: string;
128
+ schedule: string;
138
129
  sensor: string;
139
130
  type: string;
140
131
  units: string;
package/dist/i18n/en.js CHANGED
@@ -39,19 +39,12 @@ const en = {
39
39
  setMinutes: '%s is waiting %s minutes', // accessory name, number
40
40
  setHours: '%s is waiting %s hours', // accessory name, number
41
41
  },
42
- trigger: {
43
- cron: '%s starting trigger cronjob', // accessory name
44
- intervalMilliseconds: '%s will trigger in %s milliseconds', // accessory name, number
45
- intervalSeconds: '%s will trigger in %s seconds', // accessory name, number
46
- intervalMinutes: '%s will trigger in %s minutes', // accessory name, number
47
- intervalHours: '%s will trigger in %s hours', // accessory name, number
48
- },
49
- fade: {
50
- cancel: '%s canceled fade', // accessory name
51
- startMilliseconds: '%s fading over %s milliseconds', // accessory name, number
52
- startSeconds: '%s fading over %s seconds', // accessory name, number
53
- startMinutes: '%s fading over %s minutes', // accessory name, number
54
- startHours: '%s fading over %s hours', // accessory name, number
42
+ schedule: {
43
+ cron: '%s starting schedule cronjob', // accessory name
44
+ intervalMilliseconds: '%s will schedule in %s milliseconds', // accessory name, number
45
+ intervalSeconds: '%s will schedule in %s seconds', // accessory name, number
46
+ intervalMinutes: '%s will schedule in %s minutes', // accessory name, number
47
+ intervalHours: '%s will schedule in %s hours', // accessory name, number
55
48
  },
56
49
  },
57
50
  config: {
@@ -68,13 +61,12 @@ const en = {
68
61
  yes: 'Yes',
69
62
  no: 'No',
70
63
  description: {
71
- commands: 'Execute arbitrary commands when the accessory changes state',
64
+ commands: 'Execute arbitrary commands (e.g. curl) when the accessory changes state',
72
65
  cron: 'Visit crontab.guru for help',
73
- fade: 'Lightbulb will fade gradually over the specified time interval',
74
66
  random: 'Time will be randomized with the above value as a maximum',
75
67
  timerControlled: 'Instead of mirroring accessory, sensor will be activated when accessory auto-resets',
76
68
  timer: 'Return the accessory to its default value after the specified delay',
77
- trigger: 'Set the accessory to its opposite (non-default) value at specified interval or times',
69
+ schedule: 'Set the accessory to its opposite (non-default) value at specified interval or times',
78
70
  },
79
71
  enumNames: {
80
72
  auto: 'Auto',
@@ -127,14 +119,13 @@ const en = {
127
119
  defaultTemperature: 'Default Temperature',
128
120
  delay: 'Delay',
129
121
  disableLogging: 'Disable Logging',
130
- fade: 'Fade',
131
122
  groupName: 'Group Name (Beta)',
132
123
  interval: 'Interval',
133
124
  name: 'Name',
134
125
  resetOnRestart: 'Reset on Restart',
135
- timer: 'Auto-Reset',
126
+ timer: 'Auto-Reset Timer',
136
127
  timerControlled: 'Activate Sensor on Auto-Reset',
137
- trigger: 'Auto-Trigger',
128
+ schedule: 'Schedule',
138
129
  sensor: 'Attach Sensor',
139
130
  type: 'Type',
140
131
  units: 'Units',
@@ -1 +1 @@
1
- {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"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"}
@@ -48,20 +48,13 @@ declare const translations: {
48
48
  setMinutes: string;
49
49
  setHours: string;
50
50
  };
51
- trigger: {
51
+ schedule: {
52
52
  cron: string;
53
53
  intervalMilliseconds: string;
54
54
  intervalSeconds: string;
55
55
  intervalMinutes: string;
56
56
  intervalHours: string;
57
57
  };
58
- fade: {
59
- cancel: string;
60
- startMilliseconds: string;
61
- startSeconds: string;
62
- startMinutes: string;
63
- startHours: string;
64
- };
65
58
  };
66
59
  config: {
67
60
  migrate: string;
@@ -79,11 +72,10 @@ declare const translations: {
79
72
  description: {
80
73
  commands: string;
81
74
  cron: string;
82
- fade: string;
83
75
  random: string;
84
76
  timerControlled: string;
85
77
  timer: string;
86
- trigger: string;
78
+ schedule: string;
87
79
  };
88
80
  enumNames: {
89
81
  auto: string;
@@ -136,14 +128,13 @@ declare const translations: {
136
128
  defaultTemperature: string;
137
129
  delay: string;
138
130
  disableLogging: string;
139
- fade: string;
140
131
  groupName: string;
141
132
  interval: string;
142
133
  name: string;
143
134
  resetOnRestart: string;
144
135
  timer: string;
145
136
  timerControlled: string;
146
- trigger: string;
137
+ schedule: string;
147
138
  sensor: string;
148
139
  type: string;
149
140
  units: string;
@@ -39,20 +39,13 @@ declare const REPLACE_THIS_WITH_ISO_CODE: {
39
39
  setMinutes: string;
40
40
  setHours: string;
41
41
  };
42
- trigger: {
42
+ schedule: {
43
43
  cron: string;
44
44
  intervalMilliseconds: string;
45
45
  intervalSeconds: string;
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,11 +63,10 @@ declare const REPLACE_THIS_WITH_ISO_CODE: {
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;
77
- trigger: string;
69
+ schedule: string;
78
70
  };
79
71
  enumNames: {
80
72
  auto: string;
@@ -127,14 +119,13 @@ declare const REPLACE_THIS_WITH_ISO_CODE: {
127
119
  defaultTemperature: string;
128
120
  delay: string;
129
121
  disableLogging: string;
130
- fade: string;
131
122
  groupName: string;
132
123
  interval: string;
133
124
  name: string;
134
125
  resetOnRestart: string;
135
126
  timer: string;
136
127
  timerControlled: string;
137
- trigger: string;
128
+ schedule: string;
138
129
  sensor: string;
139
130
  type: string;
140
131
  units: string;
package/dist/i18n/zz.d.ts CHANGED
@@ -39,20 +39,13 @@ declare const zz: {
39
39
  setMinutes: string;
40
40
  setHours: string;
41
41
  };
42
- trigger: {
42
+ schedule: {
43
43
  cron: string;
44
44
  intervalMilliseconds: string;
45
45
  intervalSeconds: string;
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,11 +63,10 @@ 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;
77
- trigger: string;
69
+ schedule: string;
78
70
  };
79
71
  enumNames: {
80
72
  auto: string;
@@ -127,14 +119,13 @@ declare const zz: {
127
119
  defaultTemperature: string;
128
120
  delay: string;
129
121
  disableLogging: string;
130
- fade: string;
131
122
  groupName: string;
132
123
  interval: string;
133
124
  name: string;
134
125
  resetOnRestart: string;
135
126
  timer: string;
136
127
  timerControlled: string;
137
- trigger: string;
128
+ schedule: string;
138
129
  sensor: string;
139
130
  type: string;
140
131
  units: string;
@@ -64,7 +64,7 @@ export declare enum TimeUnits {
64
64
  MINUTES = "MINUTES",
65
65
  HOURS = "HOURS"
66
66
  }
67
- export declare enum TriggerType {
67
+ export declare enum ScheduleType {
68
68
  INTERVAL = "INTERVAL",
69
69
  CRON = "CRON"
70
70
  }
@@ -73,18 +73,18 @@ export declare enum TemperatureUnits {
73
73
  FAHRENHEIT = "F"
74
74
  }
75
75
  export type Assertable = {};
76
- export type TimerConfig = Assertable & {
77
- delay: number;
78
- units: TimeUnits;
79
- random?: boolean;
80
- };
81
- export type TriggerConfig = Assertable & {
82
- type: TriggerType;
76
+ export type ScheduleConfig = Assertable & {
77
+ type: ScheduleType;
83
78
  interval?: number;
84
79
  units?: TimeUnits;
85
80
  random?: boolean;
86
81
  cron?: string;
87
82
  };
83
+ export type TimerConfig = Assertable & {
84
+ delay: number;
85
+ units: TimeUnits;
86
+ random?: boolean;
87
+ };
88
88
  export type SensorConfig = Assertable & {
89
89
  type: SensorType;
90
90
  timerControlled?: boolean;
@@ -96,7 +96,7 @@ export type DummyConfig = {
96
96
  groupName?: string;
97
97
  sensor?: SensorType | SensorConfig;
98
98
  timer?: TimerConfig;
99
- trigger?: TriggerConfig;
99
+ schedule?: ScheduleConfig;
100
100
  resetOnRestart?: boolean;
101
101
  disableLogging?: boolean;
102
102
  };
@@ -107,8 +107,7 @@ export type OnOffConfig = DummyConfig & {
107
107
  };
108
108
  export type OutletConfig = OnOffConfig & {};
109
109
  export type LightbulbConfig = OnOffConfig & {
110
- defaultBrightness?: number;
111
- fade?: boolean;
110
+ defaultBrightness?: CharacteristicValue;
112
111
  };
113
112
  export type SwitchConfig = OnOffConfig & {};
114
113
  export type LockConfig = DummyConfig & {
@@ -53,11 +53,11 @@ export var TimeUnits;
53
53
  TimeUnits["MINUTES"] = "MINUTES";
54
54
  TimeUnits["HOURS"] = "HOURS";
55
55
  })(TimeUnits || (TimeUnits = {}));
56
- export var TriggerType;
57
- (function (TriggerType) {
58
- TriggerType["INTERVAL"] = "INTERVAL";
59
- TriggerType["CRON"] = "CRON";
60
- })(TriggerType || (TriggerType = {}));
56
+ export var ScheduleType;
57
+ (function (ScheduleType) {
58
+ ScheduleType["INTERVAL"] = "INTERVAL";
59
+ ScheduleType["CRON"] = "CRON";
60
+ })(ScheduleType || (ScheduleType = {}));
61
61
  export var TemperatureUnits;
62
62
  (function (TemperatureUnits) {
63
63
  TemperatureUnits["CELSIUS"] = "C";
@@ -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,WAGX;AAHD,WAAY,WAAW;IACrB,oCAAqB,CAAA;IACrB,4BAAa,CAAA;AACf,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;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":"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"}
@@ -0,0 +1,14 @@
1
+ import { Timeout } from './timeout.js';
2
+ import { ScheduleConfig } from '../model/types.js';
3
+ import { Log } from '../tools/log.js';
4
+ export declare class Schedule extends Timeout {
5
+ private readonly schedule;
6
+ private readonly callback;
7
+ static new(schedule: ScheduleConfig, caller: string, log: Log, disableLogging: boolean, callback: () => Promise<void>): Schedule | undefined;
8
+ private cronjob?;
9
+ private constructor();
10
+ protected get cancelString(): string;
11
+ private startTimeout;
12
+ private startCron;
13
+ teardown(): void;
14
+ }
@@ -0,0 +1,68 @@
1
+ import { CronJob, validateCronExpression } from 'cron';
2
+ import { DelayLogStrings, Timeout } from './timeout.js';
3
+ import { strings } from '../i18n/i18n.js';
4
+ import { ScheduleType } from '../model/types.js';
5
+ import { assert } from '../tools/validation.js';
6
+ export class Schedule extends Timeout {
7
+ schedule;
8
+ callback;
9
+ static new(schedule, caller, log, disableLogging, callback) {
10
+ if (!assert(log, caller, schedule, 'type')) {
11
+ return;
12
+ }
13
+ switch (schedule.type) {
14
+ case ScheduleType.INTERVAL:
15
+ if (!assert(log, caller, schedule, 'interval', 'units')) {
16
+ return;
17
+ }
18
+ break;
19
+ case ScheduleType.CRON:
20
+ if (!assert(log, caller, schedule, 'cron')) {
21
+ return;
22
+ }
23
+ }
24
+ return new Schedule(schedule, caller, log, disableLogging, callback);
25
+ }
26
+ cronjob;
27
+ constructor(schedule, caller, log, disableLogging, callback) {
28
+ super(caller, log, disableLogging);
29
+ this.schedule = schedule;
30
+ this.callback = callback;
31
+ switch (this.schedule.type) {
32
+ case ScheduleType.INTERVAL:
33
+ this.startTimeout();
34
+ break;
35
+ case ScheduleType.CRON:
36
+ this.startCron();
37
+ break;
38
+ }
39
+ }
40
+ get cancelString() {
41
+ throw new Error('Method not implemented.');
42
+ }
43
+ startTimeout() {
44
+ this.reset();
45
+ const logStrings = DelayLogStrings(strings.accessory.schedule.intervalMilliseconds, strings.accessory.schedule.intervalSeconds, strings.accessory.schedule.intervalMinutes, strings.accessory.schedule.intervalHours);
46
+ const delay = this.getDelay(this.schedule.interval, this.schedule.units, this.schedule.random, logStrings);
47
+ this.timeout = setTimeout(async () => {
48
+ this.reset();
49
+ await this.callback();
50
+ this.startTimeout();
51
+ }, delay);
52
+ }
53
+ startCron() {
54
+ const cron = this.schedule.cron;
55
+ if (!validateCronExpression(cron).valid) {
56
+ this.log.error(strings.accessory.invalidCron, this.caller, `'${this.schedule.cron}'`);
57
+ return;
58
+ }
59
+ this.logIfDesired(strings.accessory.schedule.cron);
60
+ this.cronjob = new CronJob(this.schedule.cron, this.callback);
61
+ this.cronjob.start();
62
+ }
63
+ teardown() {
64
+ super.teardown();
65
+ this.cronjob?.stop();
66
+ }
67
+ }
68
+ //# sourceMappingURL=schedule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/timeout/schedule.ts"],"names":[],"mappings":"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"}
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 devices for Homebridge",
5
+ "description": "Dummy accessories for automation with scheduling, delays, sensors, commands, and more",
6
6
  "type": "module",
7
- "version": "1.1.0-beta.8",
7
+ "version": "1.1.0",
8
8
  "homepage": "https://github.com/mpatfield/homebridge-dummy#readme",
9
9
  "repository": {
10
10
  "type": "git",
@@ -31,7 +31,23 @@
31
31
  "homebridge-dummy",
32
32
  "hoobs",
33
33
  "hoobs-plugin",
34
- "homekit"
34
+ "homekit",
35
+ "dummy",
36
+ "automation",
37
+ "timer",
38
+ "delay",
39
+ "delay-switch",
40
+ "reset",
41
+ "schedule",
42
+ "command",
43
+ "cmd",
44
+ "cmdtrigger",
45
+ "http",
46
+ "sensor",
47
+ "motion",
48
+ "contact",
49
+ "leak",
50
+ "occupancy"
35
51
  ],
36
52
  "engines": {
37
53
  "homebridge": "^1.8.0 || ^2.0.0-beta.0",
@@ -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"}
@@ -1,14 +0,0 @@
1
- import { Timeout } from './timeout.js';
2
- import { TriggerConfig } from '../model/types.js';
3
- import { Log } from '../tools/log.js';
4
- export declare class Trigger extends Timeout {
5
- private readonly trigger;
6
- private readonly callback;
7
- static new(trigger: TriggerConfig, caller: string, log: Log, disableLogging: boolean, callback: () => Promise<void>): Trigger | undefined;
8
- private cronjob?;
9
- private constructor();
10
- protected get cancelString(): string;
11
- private startTimeout;
12
- private startCron;
13
- teardown(): void;
14
- }
@@ -1,68 +0,0 @@
1
- import { CronJob, validateCronExpression } from 'cron';
2
- import { DelayLogStrings, Timeout } from './timeout.js';
3
- import { strings } from '../i18n/i18n.js';
4
- import { TriggerType } from '../model/types.js';
5
- import { assert } from '../tools/validation.js';
6
- export class Trigger extends Timeout {
7
- trigger;
8
- callback;
9
- static new(trigger, caller, log, disableLogging, callback) {
10
- if (!assert(log, caller, trigger, 'type')) {
11
- return;
12
- }
13
- switch (trigger.type) {
14
- case TriggerType.INTERVAL:
15
- if (!assert(log, caller, trigger, 'interval', 'units')) {
16
- return;
17
- }
18
- break;
19
- case TriggerType.CRON:
20
- if (!assert(log, caller, trigger, 'cron')) {
21
- return;
22
- }
23
- }
24
- return new Trigger(trigger, caller, log, disableLogging, callback);
25
- }
26
- cronjob;
27
- constructor(trigger, caller, log, disableLogging, callback) {
28
- super(caller, log, disableLogging);
29
- this.trigger = trigger;
30
- this.callback = callback;
31
- switch (this.trigger.type) {
32
- case TriggerType.INTERVAL:
33
- this.startTimeout();
34
- break;
35
- case TriggerType.CRON:
36
- this.startCron();
37
- break;
38
- }
39
- }
40
- get cancelString() {
41
- throw new Error('Method not implemented.');
42
- }
43
- startTimeout() {
44
- this.reset();
45
- const logStrings = DelayLogStrings(strings.accessory.trigger.intervalMilliseconds, strings.accessory.trigger.intervalSeconds, strings.accessory.trigger.intervalMinutes, strings.accessory.trigger.intervalHours);
46
- const delay = this.getDelay(this.trigger.interval, this.trigger.units, this.trigger.random, logStrings);
47
- this.timeout = setTimeout(async () => {
48
- this.reset();
49
- await this.callback();
50
- this.startTimeout();
51
- }, delay);
52
- }
53
- startCron() {
54
- const cron = this.trigger.cron;
55
- if (!validateCronExpression(cron).valid) {
56
- this.log.error(strings.accessory.invalidCron, this.caller, `'${this.trigger.cron}'`);
57
- return;
58
- }
59
- this.logIfDesired(strings.accessory.trigger.cron);
60
- this.cronjob = new CronJob(this.trigger.cron, this.callback);
61
- this.cronjob.start();
62
- }
63
- teardown() {
64
- super.teardown();
65
- this.cronjob?.stop();
66
- }
67
- }
68
- //# sourceMappingURL=trigger.js.map