amaran-light-cli 1.8.1 → 1.9.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 (71) hide show
  1. package/README.md +36 -16
  2. package/dist/__tests__/lightControl.test.js +0 -31
  3. package/dist/__tests__/lightControl.test.js.map +1 -1
  4. package/dist/__tests__/simulateSchedule.test.js +4 -2
  5. package/dist/__tests__/simulateSchedule.test.js.map +1 -1
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +7 -2
  8. package/dist/cli.js.map +1 -1
  9. package/dist/commands/daylightSimulation/autoCct.d.ts.map +1 -1
  10. package/dist/commands/daylightSimulation/autoCct.js +15 -2
  11. package/dist/commands/daylightSimulation/autoCct.js.map +1 -1
  12. package/dist/commands/daylightSimulation/graphSchedule.js +1 -1
  13. package/dist/commands/daylightSimulation/graphSchedule.js.map +1 -1
  14. package/dist/commands/daylightSimulation/printSchedule.js +4 -4
  15. package/dist/commands/daylightSimulation/printSchedule.js.map +1 -1
  16. package/dist/commands/daylightSimulation/schedule.d.ts +5 -0
  17. package/dist/commands/daylightSimulation/schedule.d.ts.map +1 -0
  18. package/dist/commands/daylightSimulation/schedule.js +11 -0
  19. package/dist/commands/daylightSimulation/schedule.js.map +1 -0
  20. package/dist/commands/daylightSimulation/simulateSchedule.d.ts.map +1 -1
  21. package/dist/commands/daylightSimulation/simulateSchedule.js +6 -2
  22. package/dist/commands/daylightSimulation/simulateSchedule.js.map +1 -1
  23. package/dist/commands/deviceControl/cct.d.ts.map +1 -1
  24. package/dist/commands/deviceControl/cct.js +91 -3
  25. package/dist/commands/deviceControl/cct.js.map +1 -1
  26. package/dist/commands/deviceControl/color.d.ts.map +1 -1
  27. package/dist/commands/deviceControl/color.js +171 -3
  28. package/dist/commands/deviceControl/color.js.map +1 -1
  29. package/dist/commands/deviceControl/config.d.ts.map +1 -1
  30. package/dist/commands/deviceControl/config.js +12 -2
  31. package/dist/commands/deviceControl/config.js.map +1 -1
  32. package/dist/commands/deviceControl/hsi.d.ts.map +1 -1
  33. package/dist/commands/deviceControl/hsi.js +132 -2
  34. package/dist/commands/deviceControl/hsi.js.map +1 -1
  35. package/dist/commands/deviceControl/info.d.ts.map +1 -1
  36. package/dist/commands/deviceControl/info.js +115 -29
  37. package/dist/commands/deviceControl/info.js.map +1 -1
  38. package/dist/commands/deviceControl/intensity.d.ts.map +1 -1
  39. package/dist/commands/deviceControl/intensity.js +86 -2
  40. package/dist/commands/deviceControl/intensity.js.map +1 -1
  41. package/dist/commands/deviceControl/power.d.ts.map +1 -1
  42. package/dist/commands/deviceControl/power.js +120 -29
  43. package/dist/commands/deviceControl/power.js.map +1 -1
  44. package/dist/commands/deviceControl/status.d.ts.map +1 -1
  45. package/dist/commands/deviceControl/status.js +184 -21
  46. package/dist/commands/deviceControl/status.js.map +1 -1
  47. package/dist/commands.d.ts.map +1 -1
  48. package/dist/commands.js +2 -8
  49. package/dist/commands.js.map +1 -1
  50. package/dist/daylightSimulation/privacyUtil.d.ts +13 -0
  51. package/dist/daylightSimulation/privacyUtil.d.ts.map +1 -0
  52. package/dist/daylightSimulation/privacyUtil.js +30 -0
  53. package/dist/daylightSimulation/privacyUtil.js.map +1 -0
  54. package/dist/daylightSimulation/textSchedule.d.ts +1 -1
  55. package/dist/daylightSimulation/textSchedule.d.ts.map +1 -1
  56. package/dist/daylightSimulation/textSchedule.js +3 -18
  57. package/dist/daylightSimulation/textSchedule.js.map +1 -1
  58. package/dist/deviceControl/lightControl.d.ts +2 -5
  59. package/dist/deviceControl/lightControl.d.ts.map +1 -1
  60. package/dist/deviceControl/lightControl.js +38 -23
  61. package/dist/deviceControl/lightControl.js.map +1 -1
  62. package/dist/deviceControl/types.d.ts +33 -1
  63. package/dist/deviceControl/types.d.ts.map +1 -1
  64. package/dist/test/MockLightServer.d.ts.map +1 -1
  65. package/dist/test/MockLightServer.js +6 -5
  66. package/dist/test/MockLightServer.js.map +1 -1
  67. package/package.json +1 -1
  68. package/dist/commands/deviceControl/firmware.d.ts +0 -5
  69. package/dist/commands/deviceControl/firmware.d.ts.map +0 -1
  70. package/dist/commands/deviceControl/firmware.js +0 -68
  71. package/dist/commands/deviceControl/firmware.js.map +0 -1
@@ -3,11 +3,141 @@ import { addStandardOptions, runDeviceAction } from '../cmdUtils.js';
3
3
  export function registerHsi(program, deps) {
4
4
  const { asyncCommand } = deps;
5
5
  addStandardOptions(program
6
- .command('hsi <hue> <saturation> <intensity> [device]')
7
- .description('Set HSI color (hue: 0-360, saturation: 0-100, intensity: 0-100). Omit device or use "all" to set all lights.')).action(asyncCommand(handleHsi(deps)));
6
+ .command('hsi [hue] [saturation] [intensity] [device]')
7
+ .description('Set or get HSI color (hue: 0-360, saturation: 0-100, intensity: 0-100). Omit device or use "all" for all lights.'))
8
+ .option('-g, --get', 'Get current HSI color instead of setting')
9
+ .action(asyncCommand(handleHsi(deps)));
8
10
  }
9
11
  function handleHsi(deps) {
10
12
  return async (hueStr, satStr, intStr, deviceQuery, options) => {
13
+ if (options.get) {
14
+ // If getting, handle potential argument shifting
15
+ // If only the first arg is provided, it's likely the device name
16
+ let targetDevice = deviceQuery;
17
+ if (!targetDevice && hueStr && !satStr && !intStr) {
18
+ targetDevice = hueStr;
19
+ }
20
+ return runDeviceAction({
21
+ deps,
22
+ options,
23
+ deviceQuery: targetDevice,
24
+ actionName: 'get HSI color',
25
+ }, async (device, controller) => {
26
+ return new Promise((resolve) => {
27
+ controller.getNodeConfig(device.node_id, async (_success, _messagee, data) => {
28
+ const displayName = device.device_name || device.name || device.id || device.node_id || 'Unknown';
29
+ const config = data?.data ||
30
+ data ||
31
+ {};
32
+ const h = config.hue ?? config.h;
33
+ const s = config.saturation ??
34
+ config.sat ??
35
+ config.s;
36
+ let i = config.intensity ??
37
+ config.int ??
38
+ config.i;
39
+ // If state is missing, try explicit getters
40
+ // We skip getHSI as it is invalid on server
41
+ if (h === undefined && s === undefined) {
42
+ // Optimization: In CCT mode, we might not have hue/sat.
43
+ // But if the server provides no HSI getter, we can only rely on config or context.
44
+ // If config is empty, we try getting Intensity at least.
45
+ await new Promise((r) => {
46
+ controller.getIntensity(device.node_id, (ok, _msg, d) => {
47
+ if (ok) {
48
+ const inner = d?.data ?? d;
49
+ const val = typeof inner === 'number'
50
+ ? inner
51
+ : inner?.intensity;
52
+ if (val !== undefined)
53
+ i = val;
54
+ }
55
+ r();
56
+ });
57
+ });
58
+ }
59
+ let output = `✓ ${displayName}: `;
60
+ if (h !== undefined && s !== undefined) {
61
+ output += `H:${h} S:${s} I:${i !== undefined ? i / 10 : '?'}`;
62
+ }
63
+ else {
64
+ if (i !== undefined) {
65
+ output += `Intensity: ${i / 10}% (HSI unknown)`;
66
+ }
67
+ else {
68
+ output += 'Unknown state';
69
+ }
70
+ }
71
+ console.log(chalk.green(output));
72
+ resolve();
73
+ });
74
+ });
75
+ }, async (controller) => {
76
+ const devices = controller.getDevices();
77
+ if (devices.length === 0) {
78
+ console.log(chalk.yellow('No devices found'));
79
+ return;
80
+ }
81
+ // Filter for light devices only, skipping groups like 'ALL'
82
+ const lightDevices = devices.filter((d) => d.node_id?.includes('-') && d.node_id !== '00000000000000000000000000000000');
83
+ if (lightDevices.length === 0) {
84
+ console.log(chalk.yellow('No light devices found'));
85
+ return;
86
+ }
87
+ for (const device of lightDevices) {
88
+ if (device.node_id) {
89
+ await new Promise((resolve) => {
90
+ controller.getNodeConfig(device.node_id, async (_success, _messagee, data) => {
91
+ const displayName = device.device_name || device.name || device.id || device.node_id || 'Unknown';
92
+ const config = data?.data ||
93
+ data ||
94
+ {};
95
+ const h = config.hue ?? config.h;
96
+ const s = config.saturation ??
97
+ config.sat ??
98
+ config.s;
99
+ let i = config.intensity ??
100
+ config.int ??
101
+ config.i;
102
+ if (h === undefined && s === undefined) {
103
+ await new Promise((r) => {
104
+ controller.getIntensity(device.node_id, (ok, _msg, d) => {
105
+ if (ok) {
106
+ const inner = d?.data ?? d;
107
+ const val = typeof inner === 'number'
108
+ ? inner
109
+ : inner?.intensity;
110
+ if (val !== undefined)
111
+ i = val;
112
+ }
113
+ r();
114
+ });
115
+ });
116
+ }
117
+ let output = `✓ ${displayName}: `;
118
+ if (h !== undefined && s !== undefined) {
119
+ output += `H:${h} S:${s} I:${i !== undefined ? i / 10 : '?'}`;
120
+ }
121
+ else {
122
+ if (i !== undefined) {
123
+ output += `Intensity: ${i / 10}% (HSI unknown)`;
124
+ }
125
+ else {
126
+ output += 'Unknown state';
127
+ }
128
+ }
129
+ console.log(chalk.green(output));
130
+ resolve();
131
+ });
132
+ });
133
+ }
134
+ }
135
+ });
136
+ }
137
+ if (!hueStr || !satStr || !intStr) {
138
+ console.error(chalk.red('Hue, saturation, and intensity are required unless using --get'));
139
+ process.exit(1);
140
+ }
11
141
  const hue = parseInt(hueStr, 10);
12
142
  const saturation = parseInt(satStr, 10);
13
143
  const intensity = parseInt(intStr, 10);
@@ -1 +1 @@
1
- {"version":3,"file":"hsi.js","sourceRoot":"","sources":["../../../src/commands/deviceControl/hsi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hsi.js","sourceRoot":"","sources":["../../../src/commands/deviceControl/hsi.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../src/commands/deviceControl/info.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAA0B,MAAM,8BAA8B,CAAC;AAGxF,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,QAW/D;AAuDD,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../src/commands/deviceControl/info.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAsC,MAAM,8BAA8B,CAAC;AAGpG,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,QAc/D;AA4JD,eAAe,YAAY,CAAC"}
@@ -2,9 +2,11 @@ import chalk from 'chalk';
2
2
  import { addStandardOptions, runDeviceAction } from '../cmdUtils.js';
3
3
  export function registerInfo(program, deps) {
4
4
  const { asyncCommand } = deps;
5
- const info = program.command('info').description('Get detailed device info');
6
- addStandardOptions(info.command('device <device>').description('Get device hardware/firmware info')).action(asyncCommand(handleDeviceInfo(deps)));
7
- addStandardOptions(info.command('protocol').description('Get supported protocol versions')).action(asyncCommand(handleProtocolInfo(deps)));
5
+ const info = program.command('info [device]').description('Get detailed device info');
6
+ addStandardOptions(info).action(asyncCommand(handleDeviceInfo(deps)));
7
+ const firmware = program.command('firmware').description('Firmware management');
8
+ addStandardOptions(firmware.command('check <device>').description('Get device firmware info')).action(asyncCommand(handleFirmwareInfo(deps)));
9
+ addStandardOptions(firmware.command('update <device>').description('Update device firmware')).action(asyncCommand(handleFirmwareUpdate(deps)));
8
10
  }
9
11
  function handleDeviceInfo(deps) {
10
12
  return async (deviceQuery, options) => {
@@ -12,45 +14,129 @@ function handleDeviceInfo(deps) {
12
14
  deps,
13
15
  options,
14
16
  deviceQuery,
15
- actionName: 'get device info',
17
+ actionName: 'get device capabilities',
16
18
  }, (device, controller) => {
17
19
  return new Promise((resolve) => {
18
20
  const nodeId = device.node_id;
19
- // Parallel requests? Or sequential. Sequential is safer.
20
- controller.getDeviceInfo(nodeId, (success, message, info) => {
21
+ controller.getNodeConfig(nodeId, (success, message, data) => {
21
22
  if (success) {
22
- controller.getFirmwareVersion(nodeId, (fwSuccess, _, fwInfo) => {
23
- const displayName = device.device_name || device.name || 'Unknown';
24
- console.log(chalk.blue(`Information for ${displayName}:`));
25
- console.log('Device Info:', JSON.stringify(info, null, 2));
26
- if (fwSuccess) {
27
- console.log('Firmware:', JSON.stringify(fwInfo, null, 2));
28
- }
29
- resolve();
30
- });
23
+ displayConfig(device, data, options);
31
24
  }
32
25
  else {
33
- console.error(chalk.red(`✗ Failed to get device info: ${message}`));
26
+ console.error(chalk.red(`✗ Failed to get device capabilities for ${device.name || device.node_id}: ${message}`));
27
+ }
28
+ resolve();
29
+ });
30
+ });
31
+ }, async (controller) => {
32
+ const devices = controller.getDevices();
33
+ if (devices.length === 0) {
34
+ console.log(chalk.yellow('No devices found.'));
35
+ return;
36
+ }
37
+ for (const device of devices) {
38
+ await new Promise((resolve) => {
39
+ const nodeId = device.node_id;
40
+ controller.getNodeConfig(nodeId, (success, message, data) => {
41
+ if (success) {
42
+ displayConfig(device, data, options);
43
+ console.log(''); // Add a newline between devices
44
+ }
45
+ else {
46
+ console.error(chalk.red(`✗ Failed to get device capabilities for ${device.name || device.node_id}: ${message}`));
47
+ }
34
48
  resolve();
49
+ });
50
+ });
51
+ }
52
+ });
53
+ };
54
+ }
55
+ function displayConfig(device, data, _options) {
56
+ const nodeId = device.node_id;
57
+ const displayName = device.device_name || device.name || 'Unknown';
58
+ console.log(chalk.blue(`Capabilities for ${displayName} (${nodeId}):`));
59
+ let config = data;
60
+ if (config && typeof config === 'object' && 'data' in config) {
61
+ config = config.data;
62
+ }
63
+ // Normalize CCT range keys from Amaran API if needed
64
+ if (config && typeof config === 'object') {
65
+ if (config.product_cct_min !== undefined && config.cct_min === undefined) {
66
+ config.cct_min = config.product_cct_min;
67
+ }
68
+ if (config.product_cct_max !== undefined && config.cct_max === undefined) {
69
+ config.cct_max = config.product_cct_max;
70
+ }
71
+ }
72
+ if (config) {
73
+ // Formatting helper for booleans
74
+ const fmtBool = (val) => (val ? chalk.green('Yes') : chalk.red('No'));
75
+ console.log(chalk.bold('\nLighting Support:'));
76
+ const cctRange = config.cct_support ? ` (${config.cct_min}K - ${config.cct_max}K)` : '';
77
+ console.log(` Correlated Color Temperature (CCT): ${fmtBool(config.cct_support)}${cctRange}`);
78
+ console.log(` Hue, Saturation, Intensity (HSI): ${fmtBool(config.hsi_support)}`);
79
+ console.log(` Red, Green, Blue (RGB): ${fmtBool(config.rgb_support)}`);
80
+ const gmRange = config.gm_support ? ` (${config.gm_min} - ${config.gm_max})` : '';
81
+ console.log(` Green-Magenta (GM): ${fmtBool(config.gm_support)}${gmRange}`);
82
+ console.log(chalk.bold('\nAdvanced Features:'));
83
+ console.log(` CCT Extension: ${fmtBool(config.cct_extension_support)}`);
84
+ if (config.cct_extension_support) {
85
+ console.log(` CCT Ext Enabled: ${fmtBool(config.cct_extension_enabled)}`);
86
+ console.log(` CCT Ext Range: ${config.cct_extension_min}K - ${config.cct_extension_max}K`);
87
+ }
88
+ console.log(` Advanced HSI: ${fmtBool(config.advanced_hsi_support)}`);
89
+ console.log(` GM v2 Support: ${fmtBool(config.gm_v2_support)}`);
90
+ }
91
+ else {
92
+ console.log(chalk.yellow(' No capability data returned.'));
93
+ }
94
+ }
95
+ function handleFirmwareInfo(deps) {
96
+ return async (deviceQuery, options) => {
97
+ return runDeviceAction({
98
+ deps,
99
+ options,
100
+ deviceQuery,
101
+ actionName: 'get firmware info',
102
+ }, (device, controller) => {
103
+ return new Promise((resolve) => {
104
+ controller.getDeviceInfo(device.node_id, (success, message, data) => {
105
+ if (success) {
106
+ console.log(chalk.blue('Firmware Status:'));
107
+ console.log(chalk.gray(' Firmware is up to date'));
108
+ if (options.debug)
109
+ console.log(data);
35
110
  }
111
+ else {
112
+ console.error(chalk.red(`Error getting firmware info: ${message}`));
113
+ }
114
+ resolve();
36
115
  });
37
116
  });
38
117
  }, () => Promise.resolve());
39
118
  };
40
119
  }
41
- function handleProtocolInfo(deps) {
42
- const { createController } = deps;
43
- return async (options) => {
44
- const controller = await createController(options.url, options.clientId, options.debug);
45
- controller.getProtocolVersions((success, message, data) => {
46
- if (success) {
47
- console.log(chalk.blue('Supported Protocol Versions:'), data);
48
- }
49
- else {
50
- console.error(chalk.red(`Error getting protocols: ${message}`));
51
- }
52
- controller.disconnect();
53
- });
120
+ function handleFirmwareUpdate(deps) {
121
+ return async (deviceQuery, options) => {
122
+ return runDeviceAction({
123
+ deps,
124
+ options,
125
+ deviceQuery,
126
+ actionName: 'update firmware',
127
+ }, (device, controller) => {
128
+ return new Promise((resolve) => {
129
+ controller.updateFirmware(device.node_id, (success, message, data) => {
130
+ if (success) {
131
+ console.log(chalk.green('Firmware update started:'), data);
132
+ }
133
+ else {
134
+ console.error(chalk.red(`Error starting firmware update: ${message}`));
135
+ }
136
+ resolve();
137
+ });
138
+ });
139
+ }, () => Promise.resolve());
54
140
  };
55
141
  }
56
142
  export default registerInfo;
@@ -1 +1 @@
1
- {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/deviceControl/info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/deviceControl/info.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"intensity.d.ts","sourceRoot":"","sources":["../../../src/commands/deviceControl/intensity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAA0B,MAAM,8BAA8B,CAAC;AAGxF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,QAQpE;AAuCD,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"intensity.d.ts","sourceRoot":"","sources":["../../../src/commands/deviceControl/intensity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAA0B,MAAM,8BAA8B,CAAC;AAGxF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,QAUpE;AAqID,eAAe,iBAAiB,CAAC"}
@@ -3,11 +3,95 @@ import { addStandardOptions, runDeviceAction } from '../cmdUtils.js';
3
3
  export function registerIntensity(program, deps) {
4
4
  const { asyncCommand } = deps;
5
5
  addStandardOptions(program
6
- .command('intensity <value> [device]')
7
- .description('Set light intensity (0-100). Omit device or use "all" to set all lights.')).action(asyncCommand(handleIntensity(deps)));
6
+ .command('intensity [value] [device]')
7
+ .description('Set or get light intensity (0-100). Omit device or use "all" for all lights.'))
8
+ .option('-g, --get', 'Get current intensity instead of setting')
9
+ .action(asyncCommand(handleIntensity(deps)));
8
10
  }
9
11
  function handleIntensity(deps) {
10
12
  return async (intensityStr, deviceQuery, options) => {
13
+ if (options.get) {
14
+ return runDeviceAction({
15
+ deps,
16
+ options,
17
+ deviceQuery,
18
+ actionName: 'get intensity',
19
+ }, async (device, controller) => {
20
+ return new Promise((resolve) => {
21
+ controller.getIntensity(device.node_id, (success, message, data) => {
22
+ if (!success)
23
+ throw new Error(message);
24
+ const displayName = device.device_name || device.name || device.id || device.node_id || 'Unknown';
25
+ // Handle potential nesting: { data: { data: 500 } }
26
+ let state = data;
27
+ if (state && typeof state === 'object' && 'data' in state) {
28
+ const innerData = state.data;
29
+ // If nested data is just a number, that's our intensity
30
+ if (typeof innerData === 'number') {
31
+ state = innerData;
32
+ }
33
+ else {
34
+ // Fallback if it's an object inside data
35
+ state = innerData;
36
+ }
37
+ }
38
+ // biome-ignore lint/suspicious/noExplicitAny: Data from server is dynamic
39
+ const s = state;
40
+ // Some servers return the value directly
41
+ const intensityVal = typeof state === 'number' ? state : s?.intensity;
42
+ const displayIntensity = typeof intensityVal === 'number' ? intensityVal / 10 : 'unknown';
43
+ console.log(chalk.green(`✓ ${displayName}: ${displayIntensity}%`));
44
+ resolve();
45
+ });
46
+ });
47
+ }, async (controller) => {
48
+ const devices = controller.getDevices();
49
+ if (devices.length === 0) {
50
+ console.log(chalk.yellow('No devices found'));
51
+ return;
52
+ }
53
+ // Filter for light devices only, skipping groups like 'ALL'
54
+ const lightDevices = devices.filter((d) => d.node_id?.includes('-') && d.node_id !== '00000000000000000000000000000000');
55
+ if (lightDevices.length === 0) {
56
+ console.log(chalk.yellow('No light devices found'));
57
+ return;
58
+ }
59
+ for (const device of lightDevices) {
60
+ if (device.node_id) {
61
+ await new Promise((resolve) => {
62
+ controller.getIntensity(device.node_id, (success, message, data) => {
63
+ const displayName = device.device_name || device.name || device.id || device.node_id || 'Unknown';
64
+ if (success) {
65
+ let state = data;
66
+ if (state && typeof state === 'object' && 'data' in state) {
67
+ const innerData = state.data;
68
+ if (typeof innerData === 'number') {
69
+ state = innerData;
70
+ }
71
+ else {
72
+ state = innerData;
73
+ }
74
+ }
75
+ // biome-ignore lint/suspicious/noExplicitAny: Data from server is dynamic
76
+ const s = state;
77
+ const intensityVal = typeof state === 'number' ? state : s?.intensity;
78
+ const displayIntensity = typeof intensityVal === 'number' ? intensityVal / 10 : 'unknown';
79
+ console.log(chalk.green(`✓ ${displayName}: ${displayIntensity}%`));
80
+ }
81
+ else {
82
+ console.error(chalk.red(`✗ ${displayName}: Failed to get intensity: ${message}`));
83
+ }
84
+ resolve();
85
+ });
86
+ });
87
+ }
88
+ }
89
+ });
90
+ }
91
+ if (!intensityStr) {
92
+ console.error(chalk.red('Error: value is required unless using --get'));
93
+ process.exit(1);
94
+ }
11
95
  const intensity = parseInt(intensityStr, 10);
12
96
  if (Number.isNaN(intensity) || intensity < 0 || intensity > 100) {
13
97
  console.error(chalk.red('Intensity must be a number between 0 and 100'));
@@ -1 +1 @@
1
- {"version":3,"file":"intensity.js","sourceRoot":"","sources":["../../../src/commands/deviceControl/intensity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAErE,MAAM,UAAU,iBAAiB,CAAC,OAAgB,EAAE,IAAiB;IACnE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAE9B,kBAAkB,CAChB,OAAO;SACJ,OAAO,CAAC,4BAA4B,CAAC;SACrC,WAAW,CAAC,0EAA0E,CAAC,CAC3F,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,eAAe,CAAC,IAAiB;IACxC,OAAO,KAAK,EAAE,YAAoB,EAAE,WAA+B,EAAE,OAAuB,EAAE,EAAE;QAC9F,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;YAChE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC;YACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,+CAA+C;QAC/C,MAAM,YAAY,GAAG,SAAS,GAAG,EAAE,CAAC;QAEpC,OAAO,eAAe,CACpB;YACE,IAAI;YACJ,OAAO;YACP,WAAW;YACX,UAAU,EAAE,eAAe;YAC3B,SAAS,EAAE,CAAC,MAAc,EAAE,EAAE,CAC5B,KAAK,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO,IAAI,SAAS,qBAAqB,SAAS,GAAG;SACtH,EACD,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE;YACrB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,OAAiB,EAAE,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;oBACnF,IAAI,CAAC,OAAO;wBAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;oBACvC,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,EACD,KAAK,EAAE,UAAU,EAAE,EAAE;YACnB,MAAM,UAAU,CAAC,wBAAwB,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;gBAC3E,IAAI,CAAC,OAAO;oBAAE,OAAO,CAAC,KAAK,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"intensity.js","sourceRoot":"","sources":["../../../src/commands/deviceControl/intensity.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"power.d.ts","sourceRoot":"","sources":["../../../src/commands/deviceControl/power.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAA0B,MAAM,8BAA8B,CAAC;AAGxF,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,QAiBhE;AAmFD,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"power.d.ts","sourceRoot":"","sources":["../../../src/commands/deviceControl/power.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAA0B,MAAM,8BAA8B,CAAC;AAGxF,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,QAqBhE;AAsLD,eAAe,aAAa,CAAC"}