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.
- package/CHANGELOG.md +9 -10
- package/README.md +15 -14
- package/config.schema.json +17 -25
- package/dist/accessory/base.d.ts +2 -2
- package/dist/accessory/base.js +6 -6
- package/dist/accessory/base.js.map +1 -1
- package/dist/accessory/lock.d.ts +1 -1
- package/dist/accessory/lock.js +1 -1
- package/dist/accessory/lock.js.map +1 -1
- package/dist/accessory/onoff/lightbulb.d.ts +0 -6
- package/dist/accessory/onoff/lightbulb.js +1 -42
- package/dist/accessory/onoff/lightbulb.js.map +1 -1
- package/dist/accessory/onoff/onoff.d.ts +4 -4
- package/dist/accessory/onoff/onoff.js +1 -1
- package/dist/accessory/onoff/onoff.js.map +1 -1
- package/dist/accessory/position/position.d.ts +1 -1
- package/dist/accessory/position/position.js +1 -1
- package/dist/accessory/position/position.js.map +1 -1
- package/dist/accessory/thermostat.d.ts +1 -1
- package/dist/accessory/thermostat.js +2 -2
- package/dist/accessory/thermostat.js.map +1 -1
- package/dist/homebridge-ui/public/index.html +1 -1
- package/dist/i18n/en.d.ts +3 -12
- package/dist/i18n/en.js +10 -19
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/i18n.d.ts +3 -12
- package/dist/i18n/template.d.ts +3 -12
- package/dist/i18n/zz.d.ts +3 -12
- package/dist/model/types.d.ts +10 -11
- package/dist/model/types.js +5 -5
- package/dist/model/types.js.map +1 -1
- package/dist/timeout/schedule.d.ts +14 -0
- package/dist/timeout/schedule.js +68 -0
- package/dist/timeout/schedule.js.map +1 -0
- package/package.json +19 -3
- package/dist/timeout/fader.d.ts +0 -14
- package/dist/timeout/fader.js +0 -45
- package/dist/timeout/fader.js.map +0 -1
- package/dist/timeout/trigger.d.ts +0 -14
- package/dist/timeout/trigger.js +0 -68
- package/dist/timeout/trigger.js.map +0 -1
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
43
|
-
cron: '%s starting
|
|
44
|
-
intervalMilliseconds: '%s will
|
|
45
|
-
intervalSeconds: '%s will
|
|
46
|
-
intervalMinutes: '%s will
|
|
47
|
-
intervalHours: '%s will
|
|
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
|
-
|
|
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
|
-
|
|
128
|
+
schedule: 'Schedule',
|
|
138
129
|
sensor: 'Attach Sensor',
|
|
139
130
|
type: 'Type',
|
|
140
131
|
units: 'Units',
|
package/dist/i18n/en.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA,MAAM,EAAE,GAAG;IAET,SAAS,EAAE;QAET,WAAW,EAAE,sCAAsC,EAAE,8BAA8B;QACnF,eAAe,EAAE,2CAA2C,EAAE,gCAAgC;QAC9F,YAAY,EAAE,gCAAgC,EAAE,+CAA+C;QAE/F,OAAO,EAAE;YACP,QAAQ,EAAE,qBAAqB,EAAE,iBAAiB;YAClD,KAAK,EAAE,8BAA8B,EAAE,iBAAiB;SACzD;QAED,SAAS,EAAE;YACT,UAAU,EAAE,sBAAsB,EAAE,yBAAyB;YAC7D,OAAO,EAAE,6BAA6B,EAAE,yBAAyB;SAClE;QAED,IAAI,EAAE;YACJ,OAAO,EAAE,cAAc,EAAE,iBAAiB;YAC1C,SAAS,EAAE,gBAAgB,EAAE,iBAAiB;SAC/C;QAED,KAAK,EAAE;YACL,OAAO,EAAE,UAAU,EAAE,iBAAiB;YACtC,QAAQ,EAAE,WAAW,EAAE,iBAAiB;SACzC;QAED,QAAQ,EAAE;YACR,MAAM,EAAE,cAAc,EAAE,iBAAiB;YACzC,IAAI,EAAE,YAAY,EAAE,iBAAiB;SACtC;QAED,UAAU,EAAE;YACV,IAAI,EAAE,gBAAgB,EAAE,iBAAiB;YACzC,IAAI,EAAE,gBAAgB,EAAE,iBAAiB;YACzC,IAAI,EAAE,gBAAgB,EAAE,iBAAiB;YACzC,GAAG,EAAE,eAAe,EAAE,iBAAiB;YACvC,YAAY,EAAE,gBAAgB,EAAE,yBAAyB;YACzD,YAAY,EAAE,gBAAgB,EAAE,yBAAyB;YACzD,mBAAmB,EAAE,mCAAmC,EAAE,gBAAgB;SAC3E;QAED,KAAK,EAAE;YACL,MAAM,EAAE,4BAA4B,EAAE,iBAAiB;YACvD,eAAe,EAAE,+BAA+B,EAAE,yBAAyB;YAC3E,UAAU,EAAE,0BAA0B,EAAE,yBAAyB;YACjE,UAAU,EAAE,0BAA0B,EAAG,yBAAyB;YAClE,QAAQ,EAAE,wBAAwB,EAAE,yBAAyB;SAC9D;QAED,
|
|
1
|
+
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA,MAAM,EAAE,GAAG;IAET,SAAS,EAAE;QAET,WAAW,EAAE,sCAAsC,EAAE,8BAA8B;QACnF,eAAe,EAAE,2CAA2C,EAAE,gCAAgC;QAC9F,YAAY,EAAE,gCAAgC,EAAE,+CAA+C;QAE/F,OAAO,EAAE;YACP,QAAQ,EAAE,qBAAqB,EAAE,iBAAiB;YAClD,KAAK,EAAE,8BAA8B,EAAE,iBAAiB;SACzD;QAED,SAAS,EAAE;YACT,UAAU,EAAE,sBAAsB,EAAE,yBAAyB;YAC7D,OAAO,EAAE,6BAA6B,EAAE,yBAAyB;SAClE;QAED,IAAI,EAAE;YACJ,OAAO,EAAE,cAAc,EAAE,iBAAiB;YAC1C,SAAS,EAAE,gBAAgB,EAAE,iBAAiB;SAC/C;QAED,KAAK,EAAE;YACL,OAAO,EAAE,UAAU,EAAE,iBAAiB;YACtC,QAAQ,EAAE,WAAW,EAAE,iBAAiB;SACzC;QAED,QAAQ,EAAE;YACR,MAAM,EAAE,cAAc,EAAE,iBAAiB;YACzC,IAAI,EAAE,YAAY,EAAE,iBAAiB;SACtC;QAED,UAAU,EAAE;YACV,IAAI,EAAE,gBAAgB,EAAE,iBAAiB;YACzC,IAAI,EAAE,gBAAgB,EAAE,iBAAiB;YACzC,IAAI,EAAE,gBAAgB,EAAE,iBAAiB;YACzC,GAAG,EAAE,eAAe,EAAE,iBAAiB;YACvC,YAAY,EAAE,gBAAgB,EAAE,yBAAyB;YACzD,YAAY,EAAE,gBAAgB,EAAE,yBAAyB;YACzD,mBAAmB,EAAE,mCAAmC,EAAE,gBAAgB;SAC3E;QAED,KAAK,EAAE;YACL,MAAM,EAAE,4BAA4B,EAAE,iBAAiB;YACvD,eAAe,EAAE,+BAA+B,EAAE,yBAAyB;YAC3E,UAAU,EAAE,0BAA0B,EAAE,yBAAyB;YACjE,UAAU,EAAE,0BAA0B,EAAG,yBAAyB;YAClE,QAAQ,EAAE,wBAAwB,EAAE,yBAAyB;SAC9D;QAED,QAAQ,EAAE;YACR,IAAI,EAAE,8BAA8B,EAAE,iBAAiB;YACvD,oBAAoB,EAAE,qCAAqC,EAAE,yBAAyB;YACtF,eAAe,EAAE,gCAAgC,EAAE,yBAAyB;YAC5E,eAAe,EAAE,gCAAgC,EAAE,yBAAyB;YAC5E,aAAa,EAAE,8BAA8B,EAAE,yBAAyB;SACzE;KACF;IAED,MAAM,EAAE;QACN,OAAO,EAAE,4CAA4C;QACrD,iBAAiB,EAAE,mFAAmF,EAAE,cAAc;QACtH,iBAAiB,EAAE,+EAA+E;QAClG,iBAAiB,EAAE,8GAA8G,EAAE,cAAc;QACjJ,iBAAiB,EAAE,kDAAkD;QACrE,iBAAiB,EAAE,mCAAmC,EAAE,MAAM;QAC9D,qBAAqB,EAAE,oBAAoB;QAC3C,2BAA2B,EAAE,iDAAiD,EAAE,cAAc;QAC9F,OAAO,EAAE,+CAA+C,EAAE,MAAM;QAChE,QAAQ,EAAE,6BAA6B,EAAE,cAAc;QACvD,GAAG,EAAE,KAAK;QACV,EAAE,EAAE,IAAI;QAER,WAAW,EAAE;YACX,QAAQ,EAAE,yEAAyE;YACnF,IAAI,EAAE,6BAA6B;YACnC,MAAM,EAAE,2DAA2D;YACnE,eAAe,EAAE,qFAAqF;YACtG,KAAK,EAAE,qEAAqE;YAC5E,QAAQ,EAAE,sFAAsF;SACjG;QAED,SAAS,EAAE;YACT,IAAI,EAAE,MAAM;YACZ,mBAAmB,EAAC,gBAAgB;YACpC,oBAAoB,EAAE,iBAAiB;YACvC,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,QAAQ;YAChB,aAAa,EAAE,SAAS;YACxB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,IAAI;YAChB,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,UAAU;YACpB,UAAU,EAAE,MAAM;YAClB,SAAS,EAAE,WAAW;YACtB,aAAa,EAAE,MAAM;YACrB,GAAG,EAAE,KAAK;YACV,eAAe,EAAE,WAAW;YAC5B,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,QAAQ;YAChB,YAAY,EAAE,cAAc;YAC5B,OAAO,EAAE,SAAS;YAClB,YAAY,EAAE,QAAQ;YACtB,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,QAAQ;YACjB,WAAW,EAAE,OAAO;YACpB,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,YAAY;YACxB,SAAS,EAAE,UAAU;YACrB,MAAM,EAAE,QAAQ;YAChB,cAAc,EAAE,2BAA2B;SAC5C;QAED,KAAK,EAAE;YACL,SAAS,EAAE,WAAW;YACtB,QAAQ,EAAE,UAAU;YACpB,YAAY,EAAE,eAAe;YAC7B,SAAS,EAAE,YAAY;YACvB,UAAU,EAAE,aAAa;YACzB,WAAW,EAAE,cAAc;YAC3B,WAAW,EAAE,cAAc;YAC3B,aAAa,EAAE,gBAAgB;YAC/B,kBAAkB,EAAE,6BAA6B;YACjD,IAAI,EAAE,MAAM;YACZ,iBAAiB,EAAE,oBAAoB;YACvC,eAAe,EAAE,kBAAkB;YACnC,YAAY,EAAE,eAAe;YAC7B,kBAAkB,EAAE,qBAAqB;YACzC,KAAK,EAAE,OAAO;YACd,cAAc,EAAE,iBAAiB;YACjC,SAAS,EAAE,mBAAmB;YAC9B,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,MAAM;YACZ,cAAc,EAAE,kBAAkB;YAClC,KAAK,EAAE,kBAAkB;YACzB,eAAe,EAAE,+BAA+B;YAChD,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,eAAe;YACvB,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,WAAW;SACpB;KACF;IAED,MAAM,EAAE;QAEN,aAAa,EAAE;YACb,MAAM,EAAE,4BAA4B,EAAE,iBAAiB;YACvD,QAAQ,EAAE,qCAAqC,EAAE,iBAAiB;SACnE;QAED,cAAc,EAAE;YACd,MAAM,EAAE,6BAA6B,EAAE,iBAAiB;YACxD,QAAQ,EAAE,sCAAsC,EAAE,iBAAiB;SACpE;QAED,OAAO,EAAE;YACP,MAAM,EAAE,qBAAqB,EAAE,iBAAiB;YAChD,QAAQ,EAAE,8BAA8B,EAAE,iBAAiB;SAC5D;QAED,IAAI,EAAE;YACJ,MAAM,EAAE,oBAAoB,EAAE,iBAAiB;YAC/C,QAAQ,EAAE,4BAA4B,EAAE,iBAAiB;SAC1D;QAED,MAAM,EAAE;YACN,MAAM,EAAE,oBAAoB,EAAE,iBAAiB;YAC/C,QAAQ,EAAE,6BAA6B,EAAE,iBAAiB;SAC3D;QAED,SAAS,EAAE;YACT,MAAM,EAAE,uBAAuB,EAAE,iBAAiB;YAClD,QAAQ,EAAE,gCAAgC,EAAE,iBAAiB;SAC9D;QAED,KAAK,EAAE;YACL,MAAM,EAAE,mBAAmB,EAAE,iBAAiB;YAC9C,QAAQ,EAAE,4BAA4B,EAAE,iBAAiB;SAC1D;KACF;IAED,OAAO,EAAE;QACP,eAAe,EAAE,iFAAiF;QAClG,iBAAiB,EAAE,uCAAuC,EAAE,SAAS;QACrE,sBAAsB,EAAE,2CAA2C;QACnE,eAAe,EAAE,kHAAkH;QACnI,eAAe,EAAE,0DAA0D;QAC3E,eAAe,EAAE,+FAA+F;QAChH,YAAY,EAAE,uBAAuB;QACrC,eAAe,EAAE,qBAAqB;QACtC,kBAAkB,EAAE,sBAAsB;QAC1C,aAAa,EAAE,kBAAkB;QACjC,eAAe,EAAE,+BAA+B,EAAE,iBAAiB;QACnE,OAAO,EAAE;YACP,4GAA4G;YAC5G,8EAA8E;YAC9E,4EAA4E;YAC5E,qHAAqH;SACtH;KACF;CACF,CAAC;AAEF,eAAe,EAAE,CAAC"}
|
package/dist/i18n/i18n.d.ts
CHANGED
|
@@ -48,20 +48,13 @@ declare const translations: {
|
|
|
48
48
|
setMinutes: string;
|
|
49
49
|
setHours: string;
|
|
50
50
|
};
|
|
51
|
-
|
|
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
|
-
|
|
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
|
-
|
|
137
|
+
schedule: string;
|
|
147
138
|
sensor: string;
|
|
148
139
|
type: string;
|
|
149
140
|
units: string;
|
package/dist/i18n/template.d.ts
CHANGED
|
@@ -39,20 +39,13 @@ declare const REPLACE_THIS_WITH_ISO_CODE: {
|
|
|
39
39
|
setMinutes: string;
|
|
40
40
|
setHours: string;
|
|
41
41
|
};
|
|
42
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
128
|
+
schedule: string;
|
|
138
129
|
sensor: string;
|
|
139
130
|
type: string;
|
|
140
131
|
units: string;
|
package/dist/model/types.d.ts
CHANGED
|
@@ -64,7 +64,7 @@ export declare enum TimeUnits {
|
|
|
64
64
|
MINUTES = "MINUTES",
|
|
65
65
|
HOURS = "HOURS"
|
|
66
66
|
}
|
|
67
|
-
export declare enum
|
|
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
|
|
77
|
-
|
|
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
|
-
|
|
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?:
|
|
111
|
-
fade?: boolean;
|
|
110
|
+
defaultBrightness?: CharacteristicValue;
|
|
112
111
|
};
|
|
113
112
|
export type SwitchConfig = OnOffConfig & {};
|
|
114
113
|
export type LockConfig = DummyConfig & {
|
package/dist/model/types.js
CHANGED
|
@@ -53,11 +53,11 @@ export var TimeUnits;
|
|
|
53
53
|
TimeUnits["MINUTES"] = "MINUTES";
|
|
54
54
|
TimeUnits["HOURS"] = "HOURS";
|
|
55
55
|
})(TimeUnits || (TimeUnits = {}));
|
|
56
|
-
export var
|
|
57
|
-
(function (
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
})(
|
|
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";
|
package/dist/model/types.js.map
CHANGED
|
@@ -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,
|
|
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
|
|
5
|
+
"description": "Dummy accessories for automation with scheduling, delays, sensors, commands, and more",
|
|
6
6
|
"type": "module",
|
|
7
|
-
"version": "1.1.0
|
|
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",
|
package/dist/timeout/fader.d.ts
DELETED
|
@@ -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
|
-
}
|
package/dist/timeout/fader.js
DELETED
|
@@ -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
|
-
}
|
package/dist/timeout/trigger.js
DELETED
|
@@ -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
|