homebridge-dummy 1.3.2 → 1.4.0-alpha.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 +12 -3
- package/README.md +74 -24
- package/config.schema.json +258 -44
- package/dist/accessory/base.d.ts +28 -8
- package/dist/accessory/base.js +53 -37
- package/dist/accessory/base.js.map +1 -1
- package/dist/accessory/group.d.ts +9 -1
- package/dist/accessory/group.js +14 -9
- package/dist/accessory/group.js.map +1 -1
- package/dist/accessory/helpers.d.ts +3 -5
- package/dist/accessory/helpers.js +12 -12
- package/dist/accessory/helpers.js.map +1 -1
- package/dist/accessory/lock.d.ts +6 -6
- package/dist/accessory/lock.js +14 -8
- package/dist/accessory/lock.js.map +1 -1
- package/dist/accessory/onoff/lightbulb.d.ts +9 -4
- package/dist/accessory/onoff/lightbulb.js +31 -4
- package/dist/accessory/onoff/lightbulb.js.map +1 -1
- package/dist/accessory/onoff/onoff.d.ts +8 -8
- package/dist/accessory/onoff/onoff.js +25 -13
- package/dist/accessory/onoff/onoff.js.map +1 -1
- package/dist/accessory/position/garage.d.ts +3 -4
- package/dist/accessory/position/garage.js +3 -3
- package/dist/accessory/position/garage.js.map +1 -1
- package/dist/accessory/position/position.d.ts +6 -6
- package/dist/accessory/position/position.js +14 -8
- package/dist/accessory/position/position.js.map +1 -1
- package/dist/accessory/sensor.d.ts +4 -5
- package/dist/accessory/sensor.js +14 -15
- package/dist/accessory/sensor.js.map +1 -1
- package/dist/accessory/thermostat.d.ts +5 -6
- package/dist/accessory/thermostat.js +25 -19
- package/dist/accessory/thermostat.js.map +1 -1
- package/dist/homebridge/platform.d.ts +3 -2
- package/dist/homebridge/platform.js +31 -12
- package/dist/homebridge/platform.js.map +1 -1
- package/dist/homebridge-ui/public/index.html +1 -1
- package/dist/homebridge-ui/public/ui.js +1 -1
- package/dist/i18n/de.d.ts +35 -0
- package/dist/i18n/en.d.ts +35 -0
- package/dist/i18n/en.js +43 -8
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/es.d.ts +35 -0
- package/dist/i18n/i18n.d.ts +35 -0
- package/dist/i18n/ru.d.ts +35 -0
- package/dist/i18n/template.d.ts +35 -0
- package/dist/model/conditions.d.ts +17 -0
- package/dist/model/conditions.js +150 -0
- package/dist/model/conditions.js.map +1 -0
- package/dist/model/enums.d.ts +19 -4
- package/dist/model/enums.js +41 -12
- package/dist/model/enums.js.map +1 -1
- package/dist/model/types.d.ts +18 -3
- package/dist/model/webhook.js +23 -19
- package/dist/model/webhook.js.map +1 -1
- package/dist/timeout/fader.d.ts +9 -0
- package/dist/timeout/fader.js +33 -0
- package/dist/timeout/fader.js.map +1 -0
- package/dist/timeout/limiter.d.ts +2 -2
- package/dist/timeout/limiter.js +8 -8
- package/dist/timeout/limiter.js.map +1 -1
- package/dist/timeout/schedule.d.ts +3 -3
- package/dist/timeout/schedule.js +18 -18
- package/dist/timeout/schedule.js.map +1 -1
- package/dist/timeout/timeout.d.ts +6 -4
- package/dist/timeout/timeout.js +12 -7
- package/dist/timeout/timeout.js.map +1 -1
- package/dist/timeout/timer.d.ts +3 -4
- package/dist/timeout/timer.js +8 -9
- package/dist/timeout/timer.js.map +1 -1
- package/dist/tools/configMigration.js +2 -2
- package/dist/tools/configMigration.js.map +1 -1
- package/dist/tools/logWatcher.d.ts +13 -0
- package/dist/tools/logWatcher.js +52 -0
- package/dist/tools/logWatcher.js.map +1 -0
- package/dist/tools/primitive.d.ts +3 -0
- package/dist/tools/primitive.js +24 -0
- package/dist/tools/primitive.js.map +1 -0
- package/package.json +13 -3
|
@@ -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/enums.js';
|
|
4
|
+
import { AccessoryType, OnState, TimeUnits } from '../model/enums.js';
|
|
5
5
|
function migrateAccessory(legacyConfig) {
|
|
6
6
|
const dummyConfig = {
|
|
7
7
|
id: crypto.randomUUID(),
|
|
@@ -11,7 +11,7 @@ function migrateAccessory(legacyConfig) {
|
|
|
11
11
|
};
|
|
12
12
|
if (legacyConfig.reverse) {
|
|
13
13
|
const onOffConfig = dummyConfig;
|
|
14
|
-
onOffConfig.
|
|
14
|
+
onOffConfig.defaultState = OnState.ON;
|
|
15
15
|
}
|
|
16
16
|
if (legacyConfig.dimmer) {
|
|
17
17
|
const lightbulbConfig = dummyConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configMigration.js","sourceRoot":"","sources":["../../src/tools/configMigration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAMpB,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAExE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAO,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"configMigration.js","sourceRoot":"","sources":["../../src/tools/configMigration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Log } from '../tools/log.js';
|
|
2
|
+
type ListenerCallback = () => (void);
|
|
3
|
+
export declare class LogWatcher {
|
|
4
|
+
private readonly log;
|
|
5
|
+
private readonly storagePath;
|
|
6
|
+
private tailFile?;
|
|
7
|
+
private readonly matchers;
|
|
8
|
+
constructor(log: Log, storagePath: string);
|
|
9
|
+
private startWatching;
|
|
10
|
+
teardown(): void;
|
|
11
|
+
registerPattern(pattern: string, callback: ListenerCallback): void;
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import TailFile from 'tail-file';
|
|
4
|
+
import { strings } from '../i18n/i18n.js';
|
|
5
|
+
export class LogWatcher {
|
|
6
|
+
log;
|
|
7
|
+
storagePath;
|
|
8
|
+
tailFile;
|
|
9
|
+
matchers = new Map();
|
|
10
|
+
constructor(log, storagePath) {
|
|
11
|
+
this.log = log;
|
|
12
|
+
this.storagePath = storagePath;
|
|
13
|
+
}
|
|
14
|
+
startWatching() {
|
|
15
|
+
if (this.tailFile !== undefined) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const logFilePath = path.join(this.storagePath, 'homebridge.log');
|
|
19
|
+
if (!fs.existsSync(logFilePath)) {
|
|
20
|
+
this.log.error(strings.logWatcher.missingFile, `'${logFilePath}'`);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
this.tailFile = new TailFile(logFilePath, { startPos: 'end' });
|
|
24
|
+
this.tailFile.on('line', (line) => {
|
|
25
|
+
for (const [matcher, callbacks] of this.matchers.entries()) {
|
|
26
|
+
if (matcher.test(line)) {
|
|
27
|
+
callbacks.forEach(cb => cb());
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
this.tailFile.on('error', (err) => this.log.error(strings.logWatcher.error, String(err)));
|
|
32
|
+
this.tailFile.start();
|
|
33
|
+
}
|
|
34
|
+
teardown() {
|
|
35
|
+
this.tailFile?.stop();
|
|
36
|
+
}
|
|
37
|
+
registerPattern(pattern, callback) {
|
|
38
|
+
let regex;
|
|
39
|
+
try {
|
|
40
|
+
regex = new RegExp(pattern);
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
const escapedPattern = pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
44
|
+
regex = new RegExp(escapedPattern);
|
|
45
|
+
}
|
|
46
|
+
const callbacks = this.matchers.get(regex) ?? [];
|
|
47
|
+
callbacks.push(callback);
|
|
48
|
+
this.matchers.set(regex, callbacks);
|
|
49
|
+
this.startWatching();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=logWatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logWatcher.js","sourceRoot":"","sources":["../../src/tools/logWatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,QAAQ,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAI1C,MAAM,OAAO,UAAU;IAMQ;IAA2B;IAJhD,QAAQ,CAAY;IAEX,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;IAElE,YAA6B,GAAQ,EAAmB,WAAmB;QAA9C,QAAG,GAAH,GAAG,CAAK;QAAmB,gBAAW,GAAX,WAAW,CAAQ;IAC3E,CAAC;IAEO,aAAa;QAEnB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAElE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,WAAW,GAAG,CAAC,CAAC;YACnE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAE/D,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACxC,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC3D,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvB,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAEjG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAEM,QAAQ;QACb,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC;IAEM,eAAe,CAAC,OAAe,EAAE,QAA0B;QAEhE,IAAI,KAAa,CAAC;QAClB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;YACtE,KAAK,GAAG,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACjD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAEpC,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2
|
+
export function toPrimitive(value) {
|
|
3
|
+
if (typeof value === 'boolean' || typeof value === 'number') {
|
|
4
|
+
return value;
|
|
5
|
+
}
|
|
6
|
+
if (value === 'true') {
|
|
7
|
+
return true;
|
|
8
|
+
}
|
|
9
|
+
if (value === 'false') {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
const num = Number(value);
|
|
13
|
+
if (!isNaN(num) && value.trim() !== '') {
|
|
14
|
+
return num;
|
|
15
|
+
}
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
export function toNumber(primitive) {
|
|
19
|
+
if (typeof primitive === 'number') {
|
|
20
|
+
return primitive;
|
|
21
|
+
}
|
|
22
|
+
return Number(primitive);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=primitive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitive.js","sourceRoot":"","sources":["../../src/tools/primitive.ts"],"names":[],"mappings":"AAEA,8DAA8D;AAC9D,MAAM,UAAU,WAAW,CAAC,KAAU;IAEpC,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACvC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,SAAyB;IAChD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;AAC3B,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": "Create
|
|
5
|
+
"description": "Create accessories to help with HomeKit automation and control — scheduling, delays, sensors, commands, conditions, webhooks, and more",
|
|
6
6
|
"type": "module",
|
|
7
|
-
"version": "1.
|
|
7
|
+
"version": "1.4.0-alpha.0",
|
|
8
8
|
"homepage": "https://github.com/mpatfield/homebridge-dummy#readme",
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"hoobs-plugin",
|
|
34
34
|
"homekit",
|
|
35
35
|
"dummy",
|
|
36
|
+
"virtual",
|
|
36
37
|
"automation",
|
|
37
38
|
"timer",
|
|
38
39
|
"delay",
|
|
@@ -41,6 +42,14 @@
|
|
|
41
42
|
"command",
|
|
42
43
|
"cmd",
|
|
43
44
|
"cmdtrigger",
|
|
45
|
+
"conditions",
|
|
46
|
+
"conditional",
|
|
47
|
+
"logic",
|
|
48
|
+
"logical",
|
|
49
|
+
"rule",
|
|
50
|
+
"rules",
|
|
51
|
+
"sequence",
|
|
52
|
+
"trigger",
|
|
44
53
|
"http",
|
|
45
54
|
"webhook",
|
|
46
55
|
"sensor"
|
|
@@ -56,7 +65,8 @@
|
|
|
56
65
|
"express": "^5.1.0",
|
|
57
66
|
"homebridge-lib": "^7.1.8",
|
|
58
67
|
"lodash.merge": "^4.6.2",
|
|
59
|
-
"node-persist": "^4.0.4"
|
|
68
|
+
"node-persist": "^4.0.4",
|
|
69
|
+
"tail-file": "^1.4.16"
|
|
60
70
|
},
|
|
61
71
|
"devDependencies": {
|
|
62
72
|
"@types/escape-html": "^1.0.4",
|