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.
Files changed (245) hide show
  1. package/README.md +48 -18
  2. package/dist/__tests__/autoCct.test.js +2 -2
  3. package/dist/__tests__/autoCct.test.js.map +1 -1
  4. package/dist/__tests__/autostart.test.js +1 -1
  5. package/dist/__tests__/autostart.test.js.map +1 -1
  6. package/dist/__tests__/cctUtil.test.js +19 -2
  7. package/dist/__tests__/cctUtil.test.js.map +1 -1
  8. package/dist/__tests__/intensityApi.test.js +4 -1
  9. package/dist/__tests__/intensityApi.test.js.map +1 -1
  10. package/dist/__tests__/lightControl.test.js +260 -1
  11. package/dist/__tests__/lightControl.test.js.map +1 -1
  12. package/dist/__tests__/simulateSchedule.test.js +2 -2
  13. package/dist/__tests__/simulateSchedule.test.js.map +1 -1
  14. package/dist/cli.d.ts +2 -2
  15. package/dist/cli.d.ts.map +1 -1
  16. package/dist/cli.js +4 -4
  17. package/dist/cli.js.map +1 -1
  18. package/dist/commands/__tests__/integration.test.js +1 -1
  19. package/dist/commands/__tests__/integration.test.js.map +1 -1
  20. package/dist/commands/__tests__/newCommands.test.d.ts +2 -0
  21. package/dist/commands/__tests__/newCommands.test.d.ts.map +1 -0
  22. package/dist/commands/__tests__/newCommands.test.js +195 -0
  23. package/dist/commands/__tests__/newCommands.test.js.map +1 -0
  24. package/dist/commands/cmdUtils.d.ts +23 -0
  25. package/dist/commands/cmdUtils.d.ts.map +1 -0
  26. package/dist/commands/cmdUtils.js +43 -0
  27. package/dist/commands/cmdUtils.js.map +1 -0
  28. package/dist/commands/daylightSimulation/autoCct.d.ts +5 -0
  29. package/dist/commands/daylightSimulation/autoCct.d.ts.map +1 -0
  30. package/dist/commands/{autoCct.js → daylightSimulation/autoCct.js} +12 -13
  31. package/dist/commands/daylightSimulation/autoCct.js.map +1 -0
  32. package/dist/commands/{graphSchedule.d.ts → daylightSimulation/graphSchedule.d.ts} +1 -1
  33. package/dist/commands/daylightSimulation/graphSchedule.d.ts.map +1 -0
  34. package/dist/commands/daylightSimulation/graphSchedule.js +65 -0
  35. package/dist/commands/daylightSimulation/graphSchedule.js.map +1 -0
  36. package/dist/commands/daylightSimulation/printSchedule.d.ts +5 -0
  37. package/dist/commands/daylightSimulation/printSchedule.d.ts.map +1 -0
  38. package/dist/commands/daylightSimulation/printSchedule.js +65 -0
  39. package/dist/commands/daylightSimulation/printSchedule.js.map +1 -0
  40. package/dist/commands/{service.d.ts → daylightSimulation/service.d.ts} +1 -1
  41. package/dist/commands/daylightSimulation/service.d.ts.map +1 -0
  42. package/dist/commands/{service.js → daylightSimulation/service.js} +47 -35
  43. package/dist/commands/daylightSimulation/service.js.map +1 -0
  44. package/dist/commands/{simulateSchedule.d.ts → daylightSimulation/simulateSchedule.d.ts} +1 -1
  45. package/dist/commands/daylightSimulation/simulateSchedule.d.ts.map +1 -0
  46. package/dist/commands/daylightSimulation/simulateSchedule.js +123 -0
  47. package/dist/commands/daylightSimulation/simulateSchedule.js.map +1 -0
  48. package/dist/commands/{cct.d.ts → deviceControl/cct.d.ts} +1 -1
  49. package/dist/commands/deviceControl/cct.d.ts.map +1 -0
  50. package/dist/commands/{cct.js → deviceControl/cct.js} +31 -36
  51. package/dist/commands/deviceControl/cct.js.map +1 -0
  52. package/dist/commands/{color.d.ts → deviceControl/color.d.ts} +1 -1
  53. package/dist/commands/deviceControl/color.d.ts.map +1 -0
  54. package/dist/commands/deviceControl/color.js +52 -0
  55. package/dist/commands/deviceControl/color.js.map +1 -0
  56. package/dist/commands/{config.d.ts → deviceControl/config.d.ts} +1 -1
  57. package/dist/commands/deviceControl/config.d.ts.map +1 -0
  58. package/dist/commands/{config.js → deviceControl/config.js} +11 -7
  59. package/dist/commands/deviceControl/config.js.map +1 -0
  60. package/dist/commands/{discover.d.ts → deviceControl/discover.d.ts} +1 -1
  61. package/dist/commands/deviceControl/discover.d.ts.map +1 -0
  62. package/dist/commands/{discover.js → deviceControl/discover.js} +8 -4
  63. package/dist/commands/deviceControl/discover.js.map +1 -0
  64. package/dist/commands/deviceControl/effect.d.ts +5 -0
  65. package/dist/commands/deviceControl/effect.d.ts.map +1 -0
  66. package/dist/commands/deviceControl/effect.js +172 -0
  67. package/dist/commands/deviceControl/effect.js.map +1 -0
  68. package/dist/commands/deviceControl/fan.d.ts +5 -0
  69. package/dist/commands/deviceControl/fan.d.ts.map +1 -0
  70. package/dist/commands/deviceControl/fan.js +105 -0
  71. package/dist/commands/deviceControl/fan.js.map +1 -0
  72. package/dist/commands/deviceControl/firmware.d.ts +5 -0
  73. package/dist/commands/deviceControl/firmware.d.ts.map +1 -0
  74. package/dist/commands/deviceControl/firmware.js +68 -0
  75. package/dist/commands/deviceControl/firmware.js.map +1 -0
  76. package/dist/commands/deviceControl/group.d.ts +5 -0
  77. package/dist/commands/deviceControl/group.d.ts.map +1 -0
  78. package/dist/commands/deviceControl/group.js +101 -0
  79. package/dist/commands/deviceControl/group.js.map +1 -0
  80. package/dist/commands/{hsi.d.ts → deviceControl/hsi.d.ts} +1 -1
  81. package/dist/commands/deviceControl/hsi.d.ts.map +1 -0
  82. package/dist/commands/deviceControl/hsi.js +50 -0
  83. package/dist/commands/deviceControl/hsi.js.map +1 -0
  84. package/dist/commands/deviceControl/info.d.ts +5 -0
  85. package/dist/commands/deviceControl/info.d.ts.map +1 -0
  86. package/dist/commands/deviceControl/info.js +57 -0
  87. package/dist/commands/deviceControl/info.js.map +1 -0
  88. package/dist/commands/{intensity.d.ts → deviceControl/intensity.d.ts} +1 -1
  89. package/dist/commands/deviceControl/intensity.d.ts.map +1 -0
  90. package/dist/commands/deviceControl/intensity.js +41 -0
  91. package/dist/commands/deviceControl/intensity.js.map +1 -0
  92. package/dist/commands/{list.d.ts → deviceControl/list.d.ts} +1 -1
  93. package/dist/commands/deviceControl/list.d.ts.map +1 -0
  94. package/dist/commands/{list.js → deviceControl/list.js} +7 -3
  95. package/dist/commands/deviceControl/list.js.map +1 -0
  96. package/dist/commands/{power.d.ts → deviceControl/power.d.ts} +1 -1
  97. package/dist/commands/deviceControl/power.d.ts.map +1 -0
  98. package/dist/commands/deviceControl/power.js +78 -0
  99. package/dist/commands/deviceControl/power.js.map +1 -0
  100. package/dist/commands/deviceControl/preset.d.ts +5 -0
  101. package/dist/commands/deviceControl/preset.d.ts.map +1 -0
  102. package/dist/commands/deviceControl/preset.js +55 -0
  103. package/dist/commands/deviceControl/preset.js.map +1 -0
  104. package/dist/commands/deviceControl/quickshot.d.ts +5 -0
  105. package/dist/commands/deviceControl/quickshot.d.ts.map +1 -0
  106. package/dist/commands/deviceControl/quickshot.js +51 -0
  107. package/dist/commands/deviceControl/quickshot.js.map +1 -0
  108. package/dist/commands/deviceControl/scene.d.ts +5 -0
  109. package/dist/commands/deviceControl/scene.d.ts.map +1 -0
  110. package/dist/commands/deviceControl/scene.js +101 -0
  111. package/dist/commands/deviceControl/scene.js.map +1 -0
  112. package/dist/commands/{status.d.ts → deviceControl/status.d.ts} +1 -1
  113. package/dist/commands/deviceControl/status.d.ts.map +1 -0
  114. package/dist/commands/deviceControl/status.js +48 -0
  115. package/dist/commands/deviceControl/status.js.map +1 -0
  116. package/dist/commands.d.ts +1 -1
  117. package/dist/commands.d.ts.map +1 -1
  118. package/dist/commands.js +34 -43
  119. package/dist/commands.js.map +1 -1
  120. package/dist/daylightSimulation/cctUtil.d.ts +5 -0
  121. package/dist/daylightSimulation/cctUtil.d.ts.map +1 -0
  122. package/dist/daylightSimulation/cctUtil.js +191 -0
  123. package/dist/daylightSimulation/cctUtil.js.map +1 -0
  124. package/dist/{constants.d.ts → daylightSimulation/constants.d.ts} +1 -18
  125. package/dist/daylightSimulation/constants.d.ts.map +1 -0
  126. package/dist/{constants.js → daylightSimulation/constants.js} +1 -13
  127. package/dist/daylightSimulation/constants.js.map +1 -0
  128. package/dist/daylightSimulation/curves/approximations.d.ts +19 -0
  129. package/dist/daylightSimulation/curves/approximations.d.ts.map +1 -0
  130. package/dist/daylightSimulation/curves/approximations.js +27 -0
  131. package/dist/daylightSimulation/curves/approximations.js.map +1 -0
  132. package/dist/daylightSimulation/curves/index.d.ts +15 -0
  133. package/dist/daylightSimulation/curves/index.d.ts.map +1 -0
  134. package/dist/daylightSimulation/curves/index.js +56 -0
  135. package/dist/daylightSimulation/curves/index.js.map +1 -0
  136. package/dist/daylightSimulation/curves/mathematical.d.ts +15 -0
  137. package/dist/daylightSimulation/curves/mathematical.d.ts.map +1 -0
  138. package/dist/daylightSimulation/curves/mathematical.js +33 -0
  139. package/dist/daylightSimulation/curves/mathematical.js.map +1 -0
  140. package/dist/daylightSimulation/curves/realistic.d.ts +43 -0
  141. package/dist/daylightSimulation/curves/realistic.d.ts.map +1 -0
  142. package/dist/daylightSimulation/curves/realistic.js +259 -0
  143. package/dist/daylightSimulation/curves/realistic.js.map +1 -0
  144. package/dist/daylightSimulation/geoipUtil.d.ts.map +1 -0
  145. package/dist/daylightSimulation/geoipUtil.js.map +1 -0
  146. package/dist/daylightSimulation/graphSchedule.d.ts +8 -0
  147. package/dist/daylightSimulation/graphSchedule.d.ts.map +1 -0
  148. package/dist/daylightSimulation/graphSchedule.js +116 -0
  149. package/dist/daylightSimulation/graphSchedule.js.map +1 -0
  150. package/dist/daylightSimulation/scheduleMaker.d.ts +33 -0
  151. package/dist/daylightSimulation/scheduleMaker.d.ts.map +1 -0
  152. package/dist/daylightSimulation/scheduleMaker.js +192 -0
  153. package/dist/daylightSimulation/scheduleMaker.js.map +1 -0
  154. package/dist/daylightSimulation/textSchedule.d.ts +9 -0
  155. package/dist/daylightSimulation/textSchedule.d.ts.map +1 -0
  156. package/dist/daylightSimulation/textSchedule.js +172 -0
  157. package/dist/daylightSimulation/textSchedule.js.map +1 -0
  158. package/dist/{cctUtil.d.ts → daylightSimulation/types.d.ts} +7 -5
  159. package/dist/daylightSimulation/types.d.ts.map +1 -0
  160. package/dist/daylightSimulation/types.js +16 -0
  161. package/dist/daylightSimulation/types.js.map +1 -0
  162. package/dist/deviceControl/autostart.d.ts.map +1 -0
  163. package/dist/deviceControl/autostart.js.map +1 -0
  164. package/dist/deviceControl/constants.d.ts +23 -0
  165. package/dist/deviceControl/constants.d.ts.map +1 -0
  166. package/dist/deviceControl/constants.js +20 -0
  167. package/dist/deviceControl/constants.js.map +1 -0
  168. package/dist/deviceControl/discovery.d.ts.map +1 -0
  169. package/dist/{discovery.js → deviceControl/discovery.js} +0 -2
  170. package/dist/deviceControl/discovery.js.map +1 -0
  171. package/dist/{lightControl.d.ts → deviceControl/lightControl.d.ts} +67 -78
  172. package/dist/deviceControl/lightControl.d.ts.map +1 -0
  173. package/dist/{lightControl.js → deviceControl/lightControl.js} +292 -203
  174. package/dist/deviceControl/lightControl.js.map +1 -0
  175. package/dist/deviceControl/types.d.ts +59 -0
  176. package/dist/deviceControl/types.d.ts.map +1 -0
  177. package/dist/deviceControl/types.js.map +1 -0
  178. package/dist/test/MockLightServer.d.ts.map +1 -1
  179. package/dist/test/MockLightServer.js +134 -12
  180. package/dist/test/MockLightServer.js.map +1 -1
  181. package/package.json +11 -7
  182. package/scripts/extract-api.ts +158 -0
  183. package/scripts/extract-usage.ts +199 -0
  184. package/scripts/release.js +11 -11
  185. package/CHANGELOG.md +0 -67
  186. package/dist/autostart.d.ts.map +0 -1
  187. package/dist/autostart.js.map +0 -1
  188. package/dist/cctUtil.d.ts.map +0 -1
  189. package/dist/cctUtil.js +0 -435
  190. package/dist/cctUtil.js.map +0 -1
  191. package/dist/commands/autoCct.d.ts +0 -5
  192. package/dist/commands/autoCct.d.ts.map +0 -1
  193. package/dist/commands/autoCct.js.map +0 -1
  194. package/dist/commands/cct.d.ts.map +0 -1
  195. package/dist/commands/cct.js.map +0 -1
  196. package/dist/commands/color.d.ts.map +0 -1
  197. package/dist/commands/color.js +0 -57
  198. package/dist/commands/color.js.map +0 -1
  199. package/dist/commands/config.d.ts.map +0 -1
  200. package/dist/commands/config.js.map +0 -1
  201. package/dist/commands/discover.d.ts.map +0 -1
  202. package/dist/commands/discover.js.map +0 -1
  203. package/dist/commands/graphSchedule.d.ts.map +0 -1
  204. package/dist/commands/graphSchedule.js +0 -293
  205. package/dist/commands/graphSchedule.js.map +0 -1
  206. package/dist/commands/hsi.d.ts.map +0 -1
  207. package/dist/commands/hsi.js +0 -59
  208. package/dist/commands/hsi.js.map +0 -1
  209. package/dist/commands/intensity.d.ts.map +0 -1
  210. package/dist/commands/intensity.js +0 -50
  211. package/dist/commands/intensity.js.map +0 -1
  212. package/dist/commands/list.d.ts.map +0 -1
  213. package/dist/commands/list.js.map +0 -1
  214. package/dist/commands/power.d.ts.map +0 -1
  215. package/dist/commands/power.js +0 -120
  216. package/dist/commands/power.js.map +0 -1
  217. package/dist/commands/printSchedule.d.ts +0 -5
  218. package/dist/commands/printSchedule.d.ts.map +0 -1
  219. package/dist/commands/printSchedule.js +0 -452
  220. package/dist/commands/printSchedule.js.map +0 -1
  221. package/dist/commands/service.d.ts.map +0 -1
  222. package/dist/commands/service.js.map +0 -1
  223. package/dist/commands/simulateSchedule.d.ts.map +0 -1
  224. package/dist/commands/simulateSchedule.js +0 -199
  225. package/dist/commands/simulateSchedule.js.map +0 -1
  226. package/dist/commands/status.d.ts.map +0 -1
  227. package/dist/commands/status.js +0 -48
  228. package/dist/commands/status.js.map +0 -1
  229. package/dist/constants.d.ts.map +0 -1
  230. package/dist/constants.js.map +0 -1
  231. package/dist/discovery.d.ts.map +0 -1
  232. package/dist/discovery.js.map +0 -1
  233. package/dist/geoipUtil.d.ts.map +0 -1
  234. package/dist/geoipUtil.js.map +0 -1
  235. package/dist/lightControl.d.ts.map +0 -1
  236. package/dist/lightControl.js.map +0 -1
  237. package/dist/types.d.ts +0 -41
  238. package/dist/types.d.ts.map +0 -1
  239. package/dist/types.js.map +0 -1
  240. /package/dist/{geoipUtil.d.ts → daylightSimulation/geoipUtil.d.ts} +0 -0
  241. /package/dist/{geoipUtil.js → daylightSimulation/geoipUtil.js} +0 -0
  242. /package/dist/{autostart.d.ts → deviceControl/autostart.d.ts} +0 -0
  243. /package/dist/{autostart.js → deviceControl/autostart.js} +0 -0
  244. /package/dist/{discovery.d.ts → deviceControl/discovery.d.ts} +0 -0
  245. /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
- interface Device {
3
- node_id?: string;
4
- device_name?: string;
5
- name?: string;
6
- id?: string;
7
- [key: string]: unknown;
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
- * Check if a node_id looks like a light device (not a group or other entity).
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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"}