amaran-light-cli 1.4.0 → 1.6.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/README.md +48 -18
- package/dist/__tests__/autoCct.test.js +2 -2
- package/dist/__tests__/autoCct.test.js.map +1 -1
- package/dist/__tests__/autostart.test.js +1 -1
- package/dist/__tests__/autostart.test.js.map +1 -1
- package/dist/__tests__/cctUtil.test.js +19 -2
- package/dist/__tests__/cctUtil.test.js.map +1 -1
- package/dist/__tests__/intensityApi.test.js +4 -1
- package/dist/__tests__/intensityApi.test.js.map +1 -1
- package/dist/__tests__/lightControl.test.js +260 -1
- package/dist/__tests__/lightControl.test.js.map +1 -1
- package/dist/__tests__/simulateSchedule.test.js +2 -2
- package/dist/__tests__/simulateSchedule.test.js.map +1 -1
- package/dist/cli.d.ts +2 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +4 -4
- package/dist/cli.js.map +1 -1
- package/dist/commands/__tests__/integration.test.js +1 -1
- package/dist/commands/__tests__/integration.test.js.map +1 -1
- package/dist/commands/__tests__/newCommands.test.d.ts +2 -0
- package/dist/commands/__tests__/newCommands.test.d.ts.map +1 -0
- package/dist/commands/__tests__/newCommands.test.js +195 -0
- package/dist/commands/__tests__/newCommands.test.js.map +1 -0
- package/dist/commands/cmdUtils.d.ts +23 -0
- package/dist/commands/cmdUtils.d.ts.map +1 -0
- package/dist/commands/cmdUtils.js +43 -0
- package/dist/commands/cmdUtils.js.map +1 -0
- package/dist/commands/daylightSimulation/autoCct.d.ts +5 -0
- package/dist/commands/daylightSimulation/autoCct.d.ts.map +1 -0
- package/dist/commands/{autoCct.js → daylightSimulation/autoCct.js} +12 -13
- package/dist/commands/daylightSimulation/autoCct.js.map +1 -0
- package/dist/commands/{graphSchedule.d.ts → daylightSimulation/graphSchedule.d.ts} +1 -1
- package/dist/commands/daylightSimulation/graphSchedule.d.ts.map +1 -0
- package/dist/commands/daylightSimulation/graphSchedule.js +65 -0
- package/dist/commands/daylightSimulation/graphSchedule.js.map +1 -0
- package/dist/commands/daylightSimulation/printSchedule.d.ts +5 -0
- package/dist/commands/daylightSimulation/printSchedule.d.ts.map +1 -0
- package/dist/commands/daylightSimulation/printSchedule.js +65 -0
- package/dist/commands/daylightSimulation/printSchedule.js.map +1 -0
- package/dist/commands/{service.d.ts → daylightSimulation/service.d.ts} +1 -1
- package/dist/commands/daylightSimulation/service.d.ts.map +1 -0
- package/dist/commands/{service.js → daylightSimulation/service.js} +47 -35
- package/dist/commands/daylightSimulation/service.js.map +1 -0
- package/dist/commands/{simulateSchedule.d.ts → daylightSimulation/simulateSchedule.d.ts} +1 -1
- package/dist/commands/daylightSimulation/simulateSchedule.d.ts.map +1 -0
- package/dist/commands/daylightSimulation/simulateSchedule.js +123 -0
- package/dist/commands/daylightSimulation/simulateSchedule.js.map +1 -0
- package/dist/commands/{cct.d.ts → deviceControl/cct.d.ts} +1 -1
- package/dist/commands/deviceControl/cct.d.ts.map +1 -0
- package/dist/commands/{cct.js → deviceControl/cct.js} +31 -36
- package/dist/commands/deviceControl/cct.js.map +1 -0
- package/dist/commands/{color.d.ts → deviceControl/color.d.ts} +1 -1
- package/dist/commands/deviceControl/color.d.ts.map +1 -0
- package/dist/commands/deviceControl/color.js +52 -0
- package/dist/commands/deviceControl/color.js.map +1 -0
- package/dist/commands/{config.d.ts → deviceControl/config.d.ts} +1 -1
- package/dist/commands/deviceControl/config.d.ts.map +1 -0
- package/dist/commands/{config.js → deviceControl/config.js} +11 -7
- package/dist/commands/deviceControl/config.js.map +1 -0
- package/dist/commands/{discover.d.ts → deviceControl/discover.d.ts} +1 -1
- package/dist/commands/deviceControl/discover.d.ts.map +1 -0
- package/dist/commands/{discover.js → deviceControl/discover.js} +8 -4
- package/dist/commands/deviceControl/discover.js.map +1 -0
- package/dist/commands/deviceControl/effect.d.ts +5 -0
- package/dist/commands/deviceControl/effect.d.ts.map +1 -0
- package/dist/commands/deviceControl/effect.js +172 -0
- package/dist/commands/deviceControl/effect.js.map +1 -0
- package/dist/commands/deviceControl/fan.d.ts +5 -0
- package/dist/commands/deviceControl/fan.d.ts.map +1 -0
- package/dist/commands/deviceControl/fan.js +105 -0
- package/dist/commands/deviceControl/fan.js.map +1 -0
- package/dist/commands/deviceControl/firmware.d.ts +5 -0
- package/dist/commands/deviceControl/firmware.d.ts.map +1 -0
- package/dist/commands/deviceControl/firmware.js +68 -0
- package/dist/commands/deviceControl/firmware.js.map +1 -0
- package/dist/commands/deviceControl/group.d.ts +5 -0
- package/dist/commands/deviceControl/group.d.ts.map +1 -0
- package/dist/commands/deviceControl/group.js +101 -0
- package/dist/commands/deviceControl/group.js.map +1 -0
- package/dist/commands/{hsi.d.ts → deviceControl/hsi.d.ts} +1 -1
- package/dist/commands/deviceControl/hsi.d.ts.map +1 -0
- package/dist/commands/deviceControl/hsi.js +50 -0
- package/dist/commands/deviceControl/hsi.js.map +1 -0
- package/dist/commands/deviceControl/info.d.ts +5 -0
- package/dist/commands/deviceControl/info.d.ts.map +1 -0
- package/dist/commands/deviceControl/info.js +57 -0
- package/dist/commands/deviceControl/info.js.map +1 -0
- package/dist/commands/{intensity.d.ts → deviceControl/intensity.d.ts} +1 -1
- package/dist/commands/deviceControl/intensity.d.ts.map +1 -0
- package/dist/commands/deviceControl/intensity.js +41 -0
- package/dist/commands/deviceControl/intensity.js.map +1 -0
- package/dist/commands/{list.d.ts → deviceControl/list.d.ts} +1 -1
- package/dist/commands/deviceControl/list.d.ts.map +1 -0
- package/dist/commands/{list.js → deviceControl/list.js} +7 -3
- package/dist/commands/deviceControl/list.js.map +1 -0
- package/dist/commands/{power.d.ts → deviceControl/power.d.ts} +1 -1
- package/dist/commands/deviceControl/power.d.ts.map +1 -0
- package/dist/commands/deviceControl/power.js +78 -0
- package/dist/commands/deviceControl/power.js.map +1 -0
- package/dist/commands/deviceControl/preset.d.ts +5 -0
- package/dist/commands/deviceControl/preset.d.ts.map +1 -0
- package/dist/commands/deviceControl/preset.js +55 -0
- package/dist/commands/deviceControl/preset.js.map +1 -0
- package/dist/commands/deviceControl/quickshot.d.ts +5 -0
- package/dist/commands/deviceControl/quickshot.d.ts.map +1 -0
- package/dist/commands/deviceControl/quickshot.js +51 -0
- package/dist/commands/deviceControl/quickshot.js.map +1 -0
- package/dist/commands/deviceControl/scene.d.ts +5 -0
- package/dist/commands/deviceControl/scene.d.ts.map +1 -0
- package/dist/commands/deviceControl/scene.js +101 -0
- package/dist/commands/deviceControl/scene.js.map +1 -0
- package/dist/commands/{status.d.ts → deviceControl/status.d.ts} +1 -1
- package/dist/commands/deviceControl/status.d.ts.map +1 -0
- package/dist/commands/deviceControl/status.js +48 -0
- package/dist/commands/deviceControl/status.js.map +1 -0
- package/dist/commands.d.ts +1 -1
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +34 -43
- package/dist/commands.js.map +1 -1
- package/dist/daylightSimulation/cctUtil.d.ts +5 -0
- package/dist/daylightSimulation/cctUtil.d.ts.map +1 -0
- package/dist/daylightSimulation/cctUtil.js +191 -0
- package/dist/daylightSimulation/cctUtil.js.map +1 -0
- package/dist/{constants.d.ts → daylightSimulation/constants.d.ts} +1 -18
- package/dist/daylightSimulation/constants.d.ts.map +1 -0
- package/dist/{constants.js → daylightSimulation/constants.js} +1 -13
- package/dist/daylightSimulation/constants.js.map +1 -0
- package/dist/daylightSimulation/curves/approximations.d.ts +19 -0
- package/dist/daylightSimulation/curves/approximations.d.ts.map +1 -0
- package/dist/daylightSimulation/curves/approximations.js +27 -0
- package/dist/daylightSimulation/curves/approximations.js.map +1 -0
- package/dist/daylightSimulation/curves/index.d.ts +15 -0
- package/dist/daylightSimulation/curves/index.d.ts.map +1 -0
- package/dist/daylightSimulation/curves/index.js +56 -0
- package/dist/daylightSimulation/curves/index.js.map +1 -0
- package/dist/daylightSimulation/curves/mathematical.d.ts +15 -0
- package/dist/daylightSimulation/curves/mathematical.d.ts.map +1 -0
- package/dist/daylightSimulation/curves/mathematical.js +33 -0
- package/dist/daylightSimulation/curves/mathematical.js.map +1 -0
- package/dist/daylightSimulation/curves/realistic.d.ts +43 -0
- package/dist/daylightSimulation/curves/realistic.d.ts.map +1 -0
- package/dist/daylightSimulation/curves/realistic.js +259 -0
- package/dist/daylightSimulation/curves/realistic.js.map +1 -0
- package/dist/daylightSimulation/geoipUtil.d.ts.map +1 -0
- package/dist/daylightSimulation/geoipUtil.js.map +1 -0
- package/dist/daylightSimulation/graphSchedule.d.ts +8 -0
- package/dist/daylightSimulation/graphSchedule.d.ts.map +1 -0
- package/dist/daylightSimulation/graphSchedule.js +116 -0
- package/dist/daylightSimulation/graphSchedule.js.map +1 -0
- package/dist/daylightSimulation/scheduleMaker.d.ts +33 -0
- package/dist/daylightSimulation/scheduleMaker.d.ts.map +1 -0
- package/dist/daylightSimulation/scheduleMaker.js +192 -0
- package/dist/daylightSimulation/scheduleMaker.js.map +1 -0
- package/dist/daylightSimulation/textSchedule.d.ts +9 -0
- package/dist/daylightSimulation/textSchedule.d.ts.map +1 -0
- package/dist/daylightSimulation/textSchedule.js +172 -0
- package/dist/daylightSimulation/textSchedule.js.map +1 -0
- package/dist/{cctUtil.d.ts → daylightSimulation/types.d.ts} +7 -5
- package/dist/daylightSimulation/types.d.ts.map +1 -0
- package/dist/daylightSimulation/types.js +16 -0
- package/dist/daylightSimulation/types.js.map +1 -0
- package/dist/deviceControl/autostart.d.ts.map +1 -0
- package/dist/deviceControl/autostart.js.map +1 -0
- package/dist/deviceControl/constants.d.ts +23 -0
- package/dist/deviceControl/constants.d.ts.map +1 -0
- package/dist/deviceControl/constants.js +20 -0
- package/dist/deviceControl/constants.js.map +1 -0
- package/dist/deviceControl/discovery.d.ts.map +1 -0
- package/dist/{discovery.js → deviceControl/discovery.js} +0 -2
- package/dist/deviceControl/discovery.js.map +1 -0
- package/dist/{lightControl.d.ts → deviceControl/lightControl.d.ts} +67 -78
- package/dist/deviceControl/lightControl.d.ts.map +1 -0
- package/dist/{lightControl.js → deviceControl/lightControl.js} +292 -203
- package/dist/deviceControl/lightControl.js.map +1 -0
- package/dist/deviceControl/types.d.ts +59 -0
- package/dist/deviceControl/types.d.ts.map +1 -0
- package/dist/deviceControl/types.js.map +1 -0
- package/dist/test/MockLightServer.d.ts.map +1 -1
- package/dist/test/MockLightServer.js +134 -12
- package/dist/test/MockLightServer.js.map +1 -1
- package/package.json +11 -7
- package/scripts/extract-api.ts +158 -0
- package/scripts/extract-usage.ts +199 -0
- package/scripts/release.js +11 -11
- package/CHANGELOG.md +0 -67
- package/dist/autostart.d.ts.map +0 -1
- package/dist/autostart.js.map +0 -1
- package/dist/cctUtil.d.ts.map +0 -1
- package/dist/cctUtil.js +0 -435
- package/dist/cctUtil.js.map +0 -1
- package/dist/commands/autoCct.d.ts +0 -5
- package/dist/commands/autoCct.d.ts.map +0 -1
- package/dist/commands/autoCct.js.map +0 -1
- package/dist/commands/cct.d.ts.map +0 -1
- package/dist/commands/cct.js.map +0 -1
- package/dist/commands/color.d.ts.map +0 -1
- package/dist/commands/color.js +0 -57
- package/dist/commands/color.js.map +0 -1
- package/dist/commands/config.d.ts.map +0 -1
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/discover.d.ts.map +0 -1
- package/dist/commands/discover.js.map +0 -1
- package/dist/commands/graphSchedule.d.ts.map +0 -1
- package/dist/commands/graphSchedule.js +0 -293
- package/dist/commands/graphSchedule.js.map +0 -1
- package/dist/commands/hsi.d.ts.map +0 -1
- package/dist/commands/hsi.js +0 -59
- package/dist/commands/hsi.js.map +0 -1
- package/dist/commands/intensity.d.ts.map +0 -1
- package/dist/commands/intensity.js +0 -50
- package/dist/commands/intensity.js.map +0 -1
- package/dist/commands/list.d.ts.map +0 -1
- package/dist/commands/list.js.map +0 -1
- package/dist/commands/power.d.ts.map +0 -1
- package/dist/commands/power.js +0 -120
- package/dist/commands/power.js.map +0 -1
- package/dist/commands/printSchedule.d.ts +0 -5
- package/dist/commands/printSchedule.d.ts.map +0 -1
- package/dist/commands/printSchedule.js +0 -452
- package/dist/commands/printSchedule.js.map +0 -1
- package/dist/commands/service.d.ts.map +0 -1
- package/dist/commands/service.js.map +0 -1
- package/dist/commands/simulateSchedule.d.ts.map +0 -1
- package/dist/commands/simulateSchedule.js +0 -199
- package/dist/commands/simulateSchedule.js.map +0 -1
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/status.js +0 -48
- package/dist/commands/status.js.map +0 -1
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js.map +0 -1
- package/dist/discovery.d.ts.map +0 -1
- package/dist/discovery.js.map +0 -1
- package/dist/geoipUtil.d.ts.map +0 -1
- package/dist/geoipUtil.js.map +0 -1
- package/dist/lightControl.d.ts.map +0 -1
- package/dist/lightControl.js.map +0 -1
- package/dist/types.d.ts +0 -41
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- /package/dist/{geoipUtil.d.ts → daylightSimulation/geoipUtil.d.ts} +0 -0
- /package/dist/{geoipUtil.js → daylightSimulation/geoipUtil.js} +0 -0
- /package/dist/{autostart.d.ts → deviceControl/autostart.d.ts} +0 -0
- /package/dist/{autostart.js → deviceControl/autostart.js} +0 -0
- /package/dist/{discovery.d.ts → deviceControl/discovery.d.ts} +0 -0
- /package/dist/{types.js → deviceControl/types.js} +0 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare const DEVICE_DEFAULTS: {
|
|
2
|
+
updateInterval: number;
|
|
3
|
+
simulationDuration: number;
|
|
4
|
+
reconnectAttempts: number;
|
|
5
|
+
reconnectDelay: number;
|
|
6
|
+
commandThrottleDelay: number;
|
|
7
|
+
statusCheckDelay: number;
|
|
8
|
+
};
|
|
9
|
+
export declare const VALIDATION_RANGES: {
|
|
10
|
+
cct: {
|
|
11
|
+
min: number;
|
|
12
|
+
max: number;
|
|
13
|
+
};
|
|
14
|
+
intensity: {
|
|
15
|
+
min: number;
|
|
16
|
+
max: number;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export declare const ERROR_MESSAGES: {
|
|
20
|
+
readonly invalidDuration: "Duration must be at least 1 second";
|
|
21
|
+
readonly deviceNotFound: (device: string) => string;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/deviceControl/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,eAAe;;;;;;;CAO3B,CAAC;AAGF,eAAO,MAAM,iBAAiB;;;;;;;;;CAG7B,CAAC;AAGF,eAAO,MAAM,cAAc;;sCAEA,MAAM;CACvB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// Device control defaults
|
|
2
|
+
export const DEVICE_DEFAULTS = {
|
|
3
|
+
updateInterval: 500, // milliseconds for smooth visual simulation
|
|
4
|
+
simulationDuration: 10, // seconds to compress full day
|
|
5
|
+
reconnectAttempts: 3,
|
|
6
|
+
reconnectDelay: 1000, // milliseconds
|
|
7
|
+
commandThrottleDelay: 250, // milliseconds between commands to avoid overwhelming server
|
|
8
|
+
statusCheckDelay: 250, // milliseconds for device status checks
|
|
9
|
+
};
|
|
10
|
+
// Validation ranges
|
|
11
|
+
export const VALIDATION_RANGES = {
|
|
12
|
+
cct: { min: 1000, max: 20000 },
|
|
13
|
+
intensity: { min: 0, max: 100 },
|
|
14
|
+
};
|
|
15
|
+
// Error messages
|
|
16
|
+
export const ERROR_MESSAGES = {
|
|
17
|
+
invalidDuration: 'Duration must be at least 1 second',
|
|
18
|
+
deviceNotFound: (device) => `Device "${device}" not found`,
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/deviceControl/constants.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,cAAc,EAAE,GAAG,EAAE,4CAA4C;IACjE,kBAAkB,EAAE,EAAE,EAAE,+BAA+B;IACvD,iBAAiB,EAAE,CAAC;IACpB,cAAc,EAAE,IAAI,EAAE,eAAe;IACrC,oBAAoB,EAAE,GAAG,EAAE,6DAA6D;IACxF,gBAAgB,EAAE,GAAG,EAAE,wCAAwC;CAChE,CAAC;AAEF,oBAAoB;AACpB,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE;IAC9B,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE;CAChC,CAAC;AAEF,iBAAiB;AACjB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,eAAe,EAAE,oCAAoC;IACrD,cAAc,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,WAAW,MAAM,aAAa;CAC1D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/deviceControl/discovery.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,GACjB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,GAAG,KAAK,CAAA;CAAE,CAAC,CAoDtE;AAwCD,wBAAsB,sBAAsB,CAC1C,aAAa,GAAE,WAAW,GAAG,WAAyB,EACtD,KAAK,UAAQ,GACZ,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAsBjC;AAED,eAAe,sBAAsB,CAAC"}
|
|
@@ -98,7 +98,6 @@ export async function discoverLocalWebSocket(preferredHost = '127.0.0.1', debug
|
|
|
98
98
|
const { stdout } = await execAsync('lsof -i -P -n');
|
|
99
99
|
const candidates = parseAmaranPorts(stdout);
|
|
100
100
|
if (debug) {
|
|
101
|
-
// eslint-disable-next-line no-console
|
|
102
101
|
console.log('[discovery] lsof candidates:', candidates);
|
|
103
102
|
}
|
|
104
103
|
// Try LISTEN candidates first (we unshifted those), then others
|
|
@@ -113,7 +112,6 @@ export async function discoverLocalWebSocket(preferredHost = '127.0.0.1', debug
|
|
|
113
112
|
}
|
|
114
113
|
catch (err) {
|
|
115
114
|
if (debug) {
|
|
116
|
-
// eslint-disable-next-line no-console
|
|
117
115
|
console.log('[discovery] lsof failed:', err);
|
|
118
116
|
}
|
|
119
117
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/deviceControl/discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,116 +1,105 @@
|
|
|
1
1
|
import WebSocket from 'ws';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
interface NodeConfig {
|
|
10
|
-
[key: string]: unknown;
|
|
11
|
-
}
|
|
12
|
-
type CommandCallback = (success: boolean, message: string, data?: unknown) => void;
|
|
2
|
+
import type { CommandArgs, CommandCallback, Device, NodeConfig } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Control Aputure Amaran Lights via websocket to the amaran Desktop application.
|
|
5
|
+
*
|
|
6
|
+
* @class LightController
|
|
7
|
+
*/
|
|
13
8
|
declare class LightController {
|
|
9
|
+
private ws;
|
|
10
|
+
private clientId;
|
|
11
|
+
private deviceList;
|
|
12
|
+
private sceneList;
|
|
13
|
+
private nodeConfigs;
|
|
14
|
+
private commandCallbacks;
|
|
15
|
+
private pendingQueue;
|
|
16
|
+
private onInitializedCallback?;
|
|
17
|
+
private debug;
|
|
18
|
+
constructor(wsUrl: string, clientId?: string, onInitialized?: () => void, debug?: boolean);
|
|
19
|
+
private onConnectionOpen;
|
|
20
|
+
private handleMessage;
|
|
21
|
+
private processResponseType;
|
|
22
|
+
private handleDeviceList;
|
|
23
|
+
private handleSceneList;
|
|
24
|
+
private handleNodeConfig;
|
|
25
|
+
private getNodeConfigs;
|
|
14
26
|
/**
|
|
15
27
|
* Apply a command to all light devices with throttling.
|
|
16
|
-
* Only targets devices with node_ids matching the light pattern (e.g., '400J5-F2C008').
|
|
17
|
-
* Throttles commands with ${DEVICE_DEFAULTS.commandThrottleDelay}ms delay between each to avoid overwhelming the server.
|
|
18
|
-
*
|
|
19
|
-
* @param commandFn - Function that takes (nodeId, callback) and executes the command
|
|
20
|
-
* @param commandName - Display name for the command (for logging)
|
|
21
|
-
* @param getDisplayArgs - Optional function to get display arguments for logging
|
|
22
28
|
*/
|
|
23
29
|
private applyToAllLights;
|
|
24
|
-
/**
|
|
25
|
-
* Set CCT & Intensity for all lights in deviceList.
|
|
26
|
-
* Only targets devices with node_ids matching the light pattern (e.g., '400J5-F2C008').
|
|
27
|
-
* Throttles commands with ${DEVICE_DEFAULTS.commandThrottleDelay}ms delay between each to avoid overwhelming the server.
|
|
28
|
-
*/
|
|
29
30
|
setCCTAndIntensityForAllLights(cct: number, intensity?: number, callback?: CommandCallback): Promise<void>;
|
|
30
|
-
/**
|
|
31
|
-
* Turn on all lights.
|
|
32
|
-
*/
|
|
33
31
|
turnOnAllLights(callback?: CommandCallback): Promise<void>;
|
|
34
|
-
/**
|
|
35
|
-
* Turn off all lights.
|
|
36
|
-
*/
|
|
37
32
|
turnOffAllLights(callback?: CommandCallback): Promise<void>;
|
|
38
|
-
/**
|
|
39
|
-
* Toggle all lights.
|
|
40
|
-
*/
|
|
41
33
|
toggleAllLights(callback?: CommandCallback): Promise<void>;
|
|
42
|
-
/**
|
|
43
|
-
* Set intensity for all lights.
|
|
44
|
-
*/
|
|
45
34
|
setIntensityForAllLights(intensity: number, callback?: CommandCallback): Promise<void>;
|
|
46
|
-
/**
|
|
47
|
-
* Increment intensity for all lights.
|
|
48
|
-
*/
|
|
49
35
|
incrementIntensityForAllLights(delta: number, callback?: CommandCallback): Promise<void>;
|
|
50
|
-
/**
|
|
51
|
-
* Increment CCT for all lights.
|
|
52
|
-
*/
|
|
53
36
|
incrementCCTForAllLights(delta: number, intensity?: number, callback?: CommandCallback): Promise<void>;
|
|
54
|
-
/**
|
|
55
|
-
* Set HSI color for all lights.
|
|
56
|
-
*/
|
|
57
37
|
setHSIForAllLights(hue: number, sat: number, intensity: number, cct?: number, gm?: number, callback?: CommandCallback): Promise<void>;
|
|
58
|
-
/**
|
|
59
|
-
* Set color for all lights.
|
|
60
|
-
*/
|
|
61
38
|
setColorForAllLights(color: string, intensity?: number, callback?: CommandCallback): Promise<void>;
|
|
62
|
-
/**
|
|
63
|
-
* Set system effect for all lights.
|
|
64
|
-
*/
|
|
65
39
|
setSystemEffectForAllLights(effectType: string, intensity?: number, callback?: CommandCallback): Promise<void>;
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
* Light node_ids typically follow pattern like '400J5-F2C008' (alphanumeric with dash).
|
|
69
|
-
*/
|
|
70
|
-
private isLightNodeId;
|
|
71
|
-
/**
|
|
72
|
-
* Sleep utility for throttling commands
|
|
73
|
-
*/
|
|
74
|
-
private sleep;
|
|
75
|
-
private ws;
|
|
76
|
-
private clientId;
|
|
77
|
-
private deviceList;
|
|
78
|
-
private sceneList;
|
|
79
|
-
private nodeConfigs;
|
|
80
|
-
private debug;
|
|
81
|
-
private onInitializedCallback?;
|
|
82
|
-
private commandCallbacks;
|
|
83
|
-
private pendingQueue;
|
|
84
|
-
constructor(wsUrl: string, clientId?: string, onInitialized?: () => void, debug?: boolean);
|
|
85
|
-
getWebSocket(): WebSocket;
|
|
86
|
-
setClientId(clientId: string): void;
|
|
87
|
-
private onConnectionOpen;
|
|
88
|
-
private sendCommand;
|
|
89
|
-
private handleDeviceList;
|
|
90
|
-
private handleSceneList;
|
|
91
|
-
private handleNodeConfig;
|
|
92
|
-
private getNodeConfigs;
|
|
40
|
+
getProtocolVersions(callback?: CommandCallback): void;
|
|
41
|
+
getFixtureList(callback?: CommandCallback): void;
|
|
93
42
|
getDeviceList(callback?: CommandCallback): void;
|
|
43
|
+
getDeviceInfo(nodeId: string, callback?: CommandCallback): void;
|
|
44
|
+
getFirmwareVersion(nodeId: string, callback?: CommandCallback): void;
|
|
45
|
+
checkForUpdates(nodeId: string, callback?: CommandCallback): void;
|
|
46
|
+
updateFirmware(nodeId: string, callback?: CommandCallback): void;
|
|
94
47
|
getSceneList(callback?: CommandCallback): void;
|
|
48
|
+
saveScene(name: string, callback?: CommandCallback): void;
|
|
49
|
+
deleteScene(sceneId: string, callback?: CommandCallback): void;
|
|
50
|
+
recallScene(sceneId: string, callback?: CommandCallback): void;
|
|
51
|
+
updateScene(sceneId: string, name?: string, callback?: CommandCallback): void;
|
|
52
|
+
getPresetList(callback?: CommandCallback): void;
|
|
53
|
+
recallPreset(nodeId: string, presetId: string, callback?: CommandCallback): void;
|
|
54
|
+
setPreset(nodeId: string, presetId: string, callback?: CommandCallback): void;
|
|
55
|
+
getSystemEffectList(callback?: CommandCallback): void;
|
|
56
|
+
getQuickshotList(callback?: CommandCallback): void;
|
|
57
|
+
setQuickshot(quickshotId: string, callback?: CommandCallback): void;
|
|
58
|
+
getGroupList(callback?: CommandCallback): void;
|
|
59
|
+
createGroup(name: string, callback?: CommandCallback): void;
|
|
60
|
+
deleteGroup(groupId: string, callback?: CommandCallback): void;
|
|
61
|
+
addToGroup(groupId: string, nodeId: string, callback?: CommandCallback): void;
|
|
62
|
+
removeFromGroup(groupId: string, nodeId: string, callback?: CommandCallback): void;
|
|
95
63
|
getNodeConfig(nodeId: string, callback?: CommandCallback): void;
|
|
96
64
|
turnLightOn(nodeId: string, callback?: CommandCallback): void;
|
|
97
65
|
turnLightOff(nodeId: string, callback?: CommandCallback): void;
|
|
98
66
|
getLightSleepStatus(nodeId: string, callback?: CommandCallback): void;
|
|
99
67
|
toggleLight(nodeId: string, callback?: CommandCallback): void;
|
|
68
|
+
getIntensity(nodeId: string, callback?: CommandCallback): void;
|
|
100
69
|
setIntensity(nodeId: string, intensity: number, callback?: CommandCallback): void;
|
|
101
70
|
incrementIntensity(nodeId: string, delta: number, callback?: CommandCallback): void;
|
|
71
|
+
getCCT(nodeId: string, callback?: CommandCallback): void;
|
|
102
72
|
setCCT(nodeId: string, cct: number, intensity?: number, callback?: CommandCallback): void;
|
|
103
73
|
incrementCCT(nodeId: string, delta: number, intensity?: number, callback?: CommandCallback): void;
|
|
74
|
+
getHSI(nodeId: string, callback?: CommandCallback): void;
|
|
104
75
|
setHSI(nodeId: string, hue: number, sat: number, intensity: number, cct?: number, gm?: number, callback?: CommandCallback): void;
|
|
76
|
+
getRGB(nodeId: string, callback?: CommandCallback): void;
|
|
77
|
+
setRGB(nodeId: string, r: number, g: number, b: number, intensity?: number, callback?: CommandCallback): void;
|
|
78
|
+
getXY(nodeId: string, callback?: CommandCallback): void;
|
|
79
|
+
setXY(nodeId: string, x: number, y: number, intensity?: number, callback?: CommandCallback): void;
|
|
105
80
|
setColor(nodeId: string, color: string, intensity?: number, callback?: CommandCallback): void;
|
|
81
|
+
getSystemEffect(nodeId: string, callback?: CommandCallback): void;
|
|
106
82
|
setSystemEffect(nodeId: string, effectType: string, intensity?: number, callback?: CommandCallback): void;
|
|
83
|
+
getEffect(nodeId: string, callback?: CommandCallback): void;
|
|
84
|
+
setEffect(nodeId: string, effectName: string, args?: CommandArgs, callback?: CommandCallback): void;
|
|
85
|
+
getFanMode(nodeId: string, callback?: CommandCallback): void;
|
|
86
|
+
setFanMode(nodeId: string, mode: number, callback?: CommandCallback): void;
|
|
87
|
+
getFanSpeed(nodeId: string, callback?: CommandCallback): void;
|
|
88
|
+
setFanSpeed(nodeId: string, speed: number, callback?: CommandCallback): void;
|
|
89
|
+
setEffectSpeed(nodeId: string, speed: number, callback?: CommandCallback): void;
|
|
90
|
+
setEffectIntensity(nodeId: string, intensity: number, callback?: CommandCallback): void;
|
|
107
91
|
disconnect(): Promise<void>;
|
|
108
92
|
private waitForPendingCommands;
|
|
93
|
+
private sendCommand;
|
|
94
|
+
private flushPending;
|
|
95
|
+
private isLightNodeId;
|
|
96
|
+
private sleep;
|
|
97
|
+
private log;
|
|
98
|
+
getWebSocket(): WebSocket;
|
|
99
|
+
setClientId(clientId: string): void;
|
|
109
100
|
getDevices(): Device[];
|
|
110
101
|
getScenes(): unknown[];
|
|
111
102
|
getNode(nodeId: string): NodeConfig | undefined;
|
|
112
|
-
private log;
|
|
113
|
-
private flushPending;
|
|
114
103
|
}
|
|
115
104
|
export default LightController;
|
|
116
105
|
//# sourceMappingURL=lightControl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lightControl.d.ts","sourceRoot":"","sources":["../../src/deviceControl/lightControl.ts"],"names":[],"mappings":"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"}
|