@switchbot/openapi-cli 1.2.0 → 1.3.1
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/dist/commands/batch.js +24 -14
- package/dist/commands/batch.js.map +1 -1
- package/dist/commands/device-meta.d.ts +2 -0
- package/dist/commands/device-meta.js +142 -0
- package/dist/commands/device-meta.js.map +1 -0
- package/dist/commands/devices.js +42 -9
- package/dist/commands/devices.js.map +1 -1
- package/dist/commands/expand.d.ts +2 -0
- package/dist/commands/expand.js +195 -0
- package/dist/commands/expand.js.map +1 -0
- package/dist/commands/plan.d.ts +2 -1
- package/dist/commands/plan.js +29 -13
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/watch.js +3 -1
- package/dist/commands/watch.js.map +1 -1
- package/dist/devices/cache.d.ts +5 -1
- package/dist/devices/cache.js +40 -6
- package/dist/devices/cache.js.map +1 -1
- package/dist/devices/device-meta.d.ts +15 -0
- package/dist/devices/device-meta.js +57 -0
- package/dist/devices/device-meta.js.map +1 -0
- package/dist/lib/devices.js +1 -1
- package/dist/lib/devices.js.map +1 -1
- package/dist/utils/name-resolver.d.ts +17 -0
- package/dist/utils/name-resolver.js +79 -0
- package/dist/utils/name-resolver.js.map +1 -0
- package/dist/utils/output.d.ts +7 -0
- package/dist/utils/output.js +29 -0
- package/dist/utils/output.js.map +1 -1
- package/dist/utils/quota.d.ts +2 -0
- package/dist/utils/quota.js +75 -5
- package/dist/utils/quota.js.map +1 -1
- package/dist/utils/string.d.ts +2 -0
- package/dist/utils/string.js +23 -0
- package/dist/utils/string.js.map +1 -0
- package/package.json +1 -1
package/dist/commands/batch.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { printJson, isJsonMode, handleError } from '../utils/output.js';
|
|
2
2
|
import { fetchDeviceList, executeCommand, isDestructiveCommand, buildHubLocationMap, } from '../lib/devices.js';
|
|
3
|
+
import { createClient } from '../api/client.js';
|
|
3
4
|
import { parseFilter, applyFilter, FilterSyntaxError } from '../utils/filter.js';
|
|
4
5
|
import { isDryRun } from '../utils/flags.js';
|
|
5
6
|
import { DryRunSignal } from '../api/client.js';
|
|
7
|
+
import { getCachedTypeMap } from '../devices/cache.js';
|
|
6
8
|
const DEFAULT_CONCURRENCY = 5;
|
|
7
9
|
/** Run `task(x)` for every element with at most `concurrency` running at once. */
|
|
8
10
|
async function runPool(items, concurrency, task) {
|
|
@@ -24,7 +26,7 @@ async function runPool(items, concurrency, task) {
|
|
|
24
26
|
await Promise.all(workers);
|
|
25
27
|
return results;
|
|
26
28
|
}
|
|
27
|
-
async function resolveTargetIds(options) {
|
|
29
|
+
async function resolveTargetIds(options, getClient) {
|
|
28
30
|
const explicit = [];
|
|
29
31
|
if (options.ids) {
|
|
30
32
|
for (const id of options.ids.split(',').map((s) => s.trim()).filter(Boolean)) {
|
|
@@ -46,19 +48,16 @@ async function resolveTargetIds(options) {
|
|
|
46
48
|
if (explicit.length === 0 && !hasFilter) {
|
|
47
49
|
throw new Error('No target devices supplied — provide --ids, --filter, or pass "-" to read deviceIds from stdin.');
|
|
48
50
|
}
|
|
49
|
-
|
|
50
|
-
// and (b) build a deviceId → deviceType map for destructive/validation
|
|
51
|
-
// checks regardless of how the ids were provided.
|
|
52
|
-
const body = await fetchDeviceList();
|
|
53
|
-
const hubLoc = buildHubLocationMap(body.deviceList);
|
|
54
|
-
const typeMap = new Map();
|
|
55
|
-
for (const d of body.deviceList)
|
|
56
|
-
if (d.deviceType)
|
|
57
|
-
typeMap.set(d.deviceId, d.deviceType);
|
|
58
|
-
for (const ir of body.infraredRemoteList)
|
|
59
|
-
typeMap.set(ir.deviceId, ir.remoteType);
|
|
51
|
+
const typeMap = getCachedTypeMap(explicit);
|
|
60
52
|
let ids;
|
|
61
53
|
if (hasFilter) {
|
|
54
|
+
const body = await fetchDeviceList(getClient?.());
|
|
55
|
+
const hubLoc = buildHubLocationMap(body.deviceList);
|
|
56
|
+
for (const d of body.deviceList)
|
|
57
|
+
if (d.deviceType)
|
|
58
|
+
typeMap.set(d.deviceId, d.deviceType);
|
|
59
|
+
for (const ir of body.infraredRemoteList)
|
|
60
|
+
typeMap.set(ir.deviceId, ir.remoteType);
|
|
62
61
|
const clauses = parseFilter(options.filter);
|
|
63
62
|
const matched = applyFilter(clauses, body.deviceList, body.infraredRemoteList, hubLoc);
|
|
64
63
|
const filteredIds = new Set(matched.map((m) => m.deviceId));
|
|
@@ -67,6 +66,15 @@ async function resolveTargetIds(options) {
|
|
|
67
66
|
}
|
|
68
67
|
else {
|
|
69
68
|
ids = explicit;
|
|
69
|
+
const missingTypeInfo = ids.some((id) => !typeMap.has(id));
|
|
70
|
+
if (missingTypeInfo) {
|
|
71
|
+
const body = await fetchDeviceList(getClient?.());
|
|
72
|
+
for (const d of body.deviceList)
|
|
73
|
+
if (d.deviceType)
|
|
74
|
+
typeMap.set(d.deviceId, d.deviceType);
|
|
75
|
+
for (const ir of body.infraredRemoteList)
|
|
76
|
+
typeMap.set(ir.deviceId, ir.remoteType);
|
|
77
|
+
}
|
|
70
78
|
}
|
|
71
79
|
return { ids, typeMap };
|
|
72
80
|
}
|
|
@@ -116,13 +124,15 @@ Examples:
|
|
|
116
124
|
// Trailing "-" sentinel selects stdin mode.
|
|
117
125
|
const extra = commandObj.args ?? [];
|
|
118
126
|
const readStdin = Boolean(options.stdin) || extra.includes('-');
|
|
127
|
+
let client;
|
|
128
|
+
const getClient = () => (client ??= createClient());
|
|
119
129
|
let resolved;
|
|
120
130
|
try {
|
|
121
131
|
resolved = await resolveTargetIds({
|
|
122
132
|
filter: options.filter,
|
|
123
133
|
ids: options.ids,
|
|
124
134
|
readStdin,
|
|
125
|
-
});
|
|
135
|
+
}, getClient);
|
|
126
136
|
}
|
|
127
137
|
catch (error) {
|
|
128
138
|
if (error instanceof FilterSyntaxError) {
|
|
@@ -204,7 +214,7 @@ Examples:
|
|
|
204
214
|
const startedAt = Date.now();
|
|
205
215
|
const outcomes = await runPool(resolved.ids, concurrency, async (id) => {
|
|
206
216
|
try {
|
|
207
|
-
const result = await executeCommand(id, cmd, parsedParam, effectiveType);
|
|
217
|
+
const result = await executeCommand(id, cmd, parsedParam, effectiveType, getClient());
|
|
208
218
|
if (!isJsonMode()) {
|
|
209
219
|
console.log(`✓ ${id}: ${cmd}`);
|
|
210
220
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch.js","sourceRoot":"","sources":["../../src/commands/batch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"batch.js","sourceRoot":"","sources":["../../src/commands/batch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { handleError, isJsonMode, printJson, printTable, UsageError } from '../utils/output.js';
|
|
2
|
+
import { loadDeviceMeta, setDeviceMeta, clearDeviceMeta, getDeviceMeta, getMetaFilePath, } from '../devices/device-meta.js';
|
|
3
|
+
export function registerDevicesMetaCommand(devices) {
|
|
4
|
+
const meta = devices
|
|
5
|
+
.command('meta')
|
|
6
|
+
.description('Manage local device metadata (alias, hide, notes) stored in ~/.switchbot/device-meta.json');
|
|
7
|
+
// switchbot devices meta set <deviceId>
|
|
8
|
+
meta
|
|
9
|
+
.command('set')
|
|
10
|
+
.description('Set local metadata for a device (alias, hide/show, notes)')
|
|
11
|
+
.argument('<deviceId>', 'Target device ID')
|
|
12
|
+
.option('--alias <name>', 'Local alias for the device (used with --name flag)')
|
|
13
|
+
.option('--hide', 'Hide this device from "devices list"')
|
|
14
|
+
.option('--show', 'Un-hide this device')
|
|
15
|
+
.option('--notes <text>', 'Freeform notes shown in "devices describe"')
|
|
16
|
+
.action((deviceId, options) => {
|
|
17
|
+
try {
|
|
18
|
+
if (options.hide && options.show) {
|
|
19
|
+
throw new UsageError('--hide and --show cannot be used together.');
|
|
20
|
+
}
|
|
21
|
+
if (!options.alias && !options.hide && !options.show && !options.notes) {
|
|
22
|
+
throw new UsageError('Specify at least one of: --alias, --hide, --show, --notes');
|
|
23
|
+
}
|
|
24
|
+
const patch = {};
|
|
25
|
+
if (options.alias !== undefined)
|
|
26
|
+
patch.alias = options.alias;
|
|
27
|
+
if (options.notes !== undefined)
|
|
28
|
+
patch.notes = options.notes;
|
|
29
|
+
if (options.hide)
|
|
30
|
+
patch.hidden = true;
|
|
31
|
+
if (options.show)
|
|
32
|
+
patch.hidden = false;
|
|
33
|
+
setDeviceMeta(deviceId, patch);
|
|
34
|
+
const updated = getDeviceMeta(deviceId);
|
|
35
|
+
if (isJsonMode()) {
|
|
36
|
+
printJson({ ok: true, deviceId, meta: updated });
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
console.log(`✓ Metadata updated for ${deviceId}`);
|
|
40
|
+
if (updated?.alias)
|
|
41
|
+
console.log(` alias: ${updated.alias}`);
|
|
42
|
+
if (updated?.hidden)
|
|
43
|
+
console.log(` hidden: true`);
|
|
44
|
+
if (updated?.notes)
|
|
45
|
+
console.log(` notes: ${updated.notes}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
handleError(error);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
// switchbot devices meta get <deviceId>
|
|
53
|
+
meta
|
|
54
|
+
.command('get')
|
|
55
|
+
.description('Show local metadata for a device')
|
|
56
|
+
.argument('<deviceId>', 'Target device ID')
|
|
57
|
+
.action((deviceId) => {
|
|
58
|
+
try {
|
|
59
|
+
const entry = getDeviceMeta(deviceId);
|
|
60
|
+
if (!entry) {
|
|
61
|
+
if (isJsonMode()) {
|
|
62
|
+
printJson({ deviceId, meta: null });
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
console.log(`No local metadata for ${deviceId}`);
|
|
66
|
+
}
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (isJsonMode()) {
|
|
70
|
+
printJson({ deviceId, meta: entry });
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
if (entry.alias)
|
|
74
|
+
console.log(`alias: ${entry.alias}`);
|
|
75
|
+
if (entry.hidden !== undefined)
|
|
76
|
+
console.log(`hidden: ${entry.hidden}`);
|
|
77
|
+
if (entry.notes)
|
|
78
|
+
console.log(`notes: ${entry.notes}`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
handleError(error);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
// switchbot devices meta list
|
|
86
|
+
meta
|
|
87
|
+
.command('list')
|
|
88
|
+
.description('List all devices with local metadata')
|
|
89
|
+
.option('--hidden-only', 'Show only hidden devices')
|
|
90
|
+
.action((options) => {
|
|
91
|
+
try {
|
|
92
|
+
const file = loadDeviceMeta();
|
|
93
|
+
let entries = Object.entries(file.devices);
|
|
94
|
+
if (options.hiddenOnly)
|
|
95
|
+
entries = entries.filter(([, m]) => m.hidden);
|
|
96
|
+
if (entries.length === 0) {
|
|
97
|
+
if (isJsonMode()) {
|
|
98
|
+
printJson([]);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
console.log('No local metadata entries.');
|
|
102
|
+
console.log(`File: ${getMetaFilePath()}`);
|
|
103
|
+
}
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (isJsonMode()) {
|
|
107
|
+
printJson(entries.map(([id, m]) => ({ deviceId: id, ...m })));
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
const rows = entries.map(([id, m]) => [
|
|
111
|
+
id,
|
|
112
|
+
m.alias ?? '—',
|
|
113
|
+
m.hidden ? 'yes' : '—',
|
|
114
|
+
m.notes ?? '—',
|
|
115
|
+
]);
|
|
116
|
+
printTable(['deviceId', 'alias', 'hidden', 'notes'], rows);
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
handleError(error);
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
// switchbot devices meta clear <deviceId>
|
|
123
|
+
meta
|
|
124
|
+
.command('clear')
|
|
125
|
+
.description('Remove all local metadata for a device')
|
|
126
|
+
.argument('<deviceId>', 'Target device ID')
|
|
127
|
+
.action((deviceId) => {
|
|
128
|
+
try {
|
|
129
|
+
clearDeviceMeta(deviceId);
|
|
130
|
+
if (isJsonMode()) {
|
|
131
|
+
printJson({ ok: true, deviceId });
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
console.log(`✓ Metadata cleared for ${deviceId}`);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
handleError(error);
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=device-meta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device-meta.js","sourceRoot":"","sources":["../../src/commands/device-meta.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/devices.js
CHANGED
|
@@ -2,10 +2,14 @@ import { printTable, printKeyValue, printJson, isJsonMode, handleError, UsageErr
|
|
|
2
2
|
import { resolveFormat, resolveFields, renderRows } from '../utils/format.js';
|
|
3
3
|
import { findCatalogEntry, getEffectiveCatalog } from '../devices/catalog.js';
|
|
4
4
|
import { getCachedDevice } from '../devices/cache.js';
|
|
5
|
+
import { loadDeviceMeta } from '../devices/device-meta.js';
|
|
6
|
+
import { resolveDeviceId } from '../utils/name-resolver.js';
|
|
5
7
|
import { fetchDeviceList, fetchDeviceStatus, executeCommand, describeDevice, validateCommand, isDestructiveCommand, getDestructiveReason, buildHubLocationMap, DeviceNotFoundError, } from '../lib/devices.js';
|
|
6
8
|
import { registerBatchCommand } from './batch.js';
|
|
7
9
|
import { registerWatchCommand } from './watch.js';
|
|
8
10
|
import { registerExplainCommand } from './explain.js';
|
|
11
|
+
import { registerExpandCommand } from './expand.js';
|
|
12
|
+
import { registerDevicesMetaCommand } from './device-meta.js';
|
|
9
13
|
import { isDryRun } from '../utils/flags.js';
|
|
10
14
|
export function registerDevicesCommand(program) {
|
|
11
15
|
const devices = program
|
|
@@ -64,22 +68,26 @@ Examples:
|
|
|
64
68
|
$ switchbot devices list --json | jq '[.deviceList[], .infraredRemoteList[]] | group_by(.familyName)'
|
|
65
69
|
`)
|
|
66
70
|
.option('--wide', 'Show all columns (controlType, family, roomID, room, hub, cloud)')
|
|
71
|
+
.option('--show-hidden', 'Include devices hidden via "devices meta set --hide"')
|
|
67
72
|
.action(async (options) => {
|
|
68
73
|
try {
|
|
69
74
|
const body = await fetchDeviceList();
|
|
70
75
|
const { deviceList, infraredRemoteList } = body;
|
|
71
76
|
const fmt = resolveFormat();
|
|
77
|
+
const deviceMeta = loadDeviceMeta();
|
|
72
78
|
if (fmt === 'json' && process.argv.includes('--json')) {
|
|
73
79
|
printJson(body);
|
|
74
80
|
return;
|
|
75
81
|
}
|
|
76
82
|
const hubLocation = buildHubLocationMap(deviceList);
|
|
77
83
|
const narrowHeaders = ['deviceId', 'deviceName', 'type', 'category'];
|
|
78
|
-
const wideHeaders = ['deviceId', 'deviceName', 'type', 'category', 'controlType', 'family', 'roomID', 'room', 'hub', 'cloud'];
|
|
84
|
+
const wideHeaders = ['deviceId', 'deviceName', 'type', 'category', 'controlType', 'family', 'roomID', 'room', 'hub', 'cloud', 'alias'];
|
|
79
85
|
const userFields = resolveFields();
|
|
80
86
|
const headers = userFields ? wideHeaders : (options.wide ? wideHeaders : narrowHeaders);
|
|
81
87
|
const rows = [];
|
|
82
88
|
for (const d of deviceList) {
|
|
89
|
+
if (!options.showHidden && deviceMeta.devices[d.deviceId]?.hidden)
|
|
90
|
+
continue;
|
|
83
91
|
rows.push([
|
|
84
92
|
d.deviceId,
|
|
85
93
|
d.deviceName,
|
|
@@ -91,9 +99,12 @@ Examples:
|
|
|
91
99
|
d.roomName || '—',
|
|
92
100
|
!d.hubDeviceId || d.hubDeviceId === '000000000000' ? '—' : d.hubDeviceId,
|
|
93
101
|
d.enableCloudService,
|
|
102
|
+
deviceMeta.devices[d.deviceId]?.alias ?? '—',
|
|
94
103
|
]);
|
|
95
104
|
}
|
|
96
105
|
for (const d of infraredRemoteList) {
|
|
106
|
+
if (!options.showHidden && deviceMeta.devices[d.deviceId]?.hidden)
|
|
107
|
+
continue;
|
|
97
108
|
const inherited = hubLocation.get(d.hubDeviceId);
|
|
98
109
|
rows.push([
|
|
99
110
|
d.deviceId,
|
|
@@ -106,13 +117,15 @@ Examples:
|
|
|
106
117
|
inherited?.room || '—',
|
|
107
118
|
d.hubDeviceId,
|
|
108
119
|
null,
|
|
120
|
+
deviceMeta.devices[d.deviceId]?.alias ?? '—',
|
|
109
121
|
]);
|
|
110
122
|
}
|
|
111
123
|
if (rows.length === 0 && fmt === 'table') {
|
|
112
124
|
console.log('No devices found');
|
|
113
125
|
return;
|
|
114
126
|
}
|
|
115
|
-
|
|
127
|
+
const defaultFields = options.wide ? undefined : narrowHeaders;
|
|
128
|
+
renderRows(wideHeaders, rows, fmt, userFields ?? defaultFields);
|
|
116
129
|
if (fmt === 'table') {
|
|
117
130
|
console.log(`\nTotal: ${deviceList.length} physical device(s), ${infraredRemoteList.length} IR remote device(s)`);
|
|
118
131
|
console.log(`Tip: 'switchbot devices describe <deviceId>' shows a device's supported commands.`);
|
|
@@ -126,7 +139,8 @@ Examples:
|
|
|
126
139
|
devices
|
|
127
140
|
.command('status')
|
|
128
141
|
.description('Query the real-time status of a specific device')
|
|
129
|
-
.argument('
|
|
142
|
+
.argument('[deviceId]', 'Device ID from "devices list" (or use --name)')
|
|
143
|
+
.option('--name <query>', 'Resolve device by fuzzy name instead of deviceId')
|
|
130
144
|
.addHelpText('after', `
|
|
131
145
|
Status fields vary by device type. To discover them without a live call:
|
|
132
146
|
|
|
@@ -137,13 +151,15 @@ all field names returned by your specific device, then narrow with --fields.
|
|
|
137
151
|
|
|
138
152
|
Examples:
|
|
139
153
|
$ switchbot devices status ABC123DEF456
|
|
154
|
+
$ switchbot devices status --name "客厅空调"
|
|
140
155
|
$ switchbot devices status ABC123DEF456 --json
|
|
141
156
|
$ switchbot devices status ABC123DEF456 --format yaml
|
|
142
157
|
$ switchbot devices status ABC123DEF456 --format tsv --fields power,battery
|
|
143
158
|
$ switchbot devices status ABC123DEF456 --json | jq '.battery'
|
|
144
159
|
`)
|
|
145
|
-
.action(async (
|
|
160
|
+
.action(async (deviceIdArg, options) => {
|
|
146
161
|
try {
|
|
162
|
+
const deviceId = resolveDeviceId(deviceIdArg, options.name);
|
|
147
163
|
const body = await fetchDeviceStatus(deviceId);
|
|
148
164
|
const fmt = resolveFormat();
|
|
149
165
|
if (fmt === 'json' && process.argv.includes('--json')) {
|
|
@@ -167,9 +183,10 @@ Examples:
|
|
|
167
183
|
devices
|
|
168
184
|
.command('command')
|
|
169
185
|
.description('Send a control command to a device')
|
|
170
|
-
.argument('
|
|
186
|
+
.argument('[deviceId]', 'Target device ID (or use --name)')
|
|
171
187
|
.argument('<cmd>', 'Command name, e.g. turnOn, turnOff, setColor, setBrightness, setAll, startClean')
|
|
172
188
|
.argument('[parameter]', 'Command parameter. Omit for commands like turnOn/turnOff (defaults to "default"). Format depends on the command (see below).')
|
|
189
|
+
.option('--name <query>', 'Resolve device by fuzzy name instead of deviceId')
|
|
173
190
|
.option('--type <commandType>', 'Command type: "command" for built-in commands (default), "customize" for user-defined IR buttons', 'command')
|
|
174
191
|
.option('--yes', 'Confirm a destructive command (Smart Lock unlock, Garage open, …). --dry-run is always allowed without --yes.')
|
|
175
192
|
.addHelpText('after', `
|
|
@@ -217,7 +234,8 @@ Examples:
|
|
|
217
234
|
$ switchbot devices command ABC123 "MyButton" --type customize
|
|
218
235
|
$ switchbot devices command <lockId> unlock --yes
|
|
219
236
|
`)
|
|
220
|
-
.action(async (
|
|
237
|
+
.action(async (deviceIdArg, cmd, parameter, options) => {
|
|
238
|
+
const deviceId = resolveDeviceId(deviceIdArg, options.name);
|
|
221
239
|
const validation = validateCommand(deviceId, cmd, parameter, options.type);
|
|
222
240
|
if (!validation.ok) {
|
|
223
241
|
const err = validation.error;
|
|
@@ -281,11 +299,20 @@ Examples:
|
|
|
281
299
|
}
|
|
282
300
|
}
|
|
283
301
|
const body = await executeCommand(deviceId, cmd, parsedParam, options.type);
|
|
302
|
+
const isIr = getCachedDevice(deviceId)?.category === 'ir';
|
|
284
303
|
if (isJsonMode()) {
|
|
285
|
-
|
|
304
|
+
const result = { ok: true, command: cmd, deviceId };
|
|
305
|
+
if (isIr)
|
|
306
|
+
result.subKind = 'ir-no-feedback';
|
|
307
|
+
if (body && typeof body === 'object' && Object.keys(body).length > 0) {
|
|
308
|
+
Object.assign(result, body);
|
|
309
|
+
}
|
|
310
|
+
printJson(result);
|
|
286
311
|
return;
|
|
287
312
|
}
|
|
288
313
|
console.log(`✓ Command sent: ${cmd}`);
|
|
314
|
+
if (isIr)
|
|
315
|
+
console.log(' Note: IR command sent — no device confirmation (fire-and-forget).');
|
|
289
316
|
if (body && typeof body === 'object' && Object.keys(body).length > 0) {
|
|
290
317
|
printKeyValue(body);
|
|
291
318
|
}
|
|
@@ -375,7 +402,8 @@ Examples:
|
|
|
375
402
|
devices
|
|
376
403
|
.command('describe')
|
|
377
404
|
.description('Describe a device by ID: metadata + supported commands + status fields (1 API call)')
|
|
378
|
-
.argument('
|
|
405
|
+
.argument('[deviceId]', 'Target device ID (or use --name)')
|
|
406
|
+
.option('--name <query>', 'Resolve device by fuzzy name instead of deviceId')
|
|
379
407
|
.option('--live', 'Also fetch live status values and merge them into capabilities (costs 1 extra API call)')
|
|
380
408
|
.addHelpText('after', `
|
|
381
409
|
Makes a GET /v1.1/devices call to look up the device's type, then prints its
|
|
@@ -405,8 +433,9 @@ Examples:
|
|
|
405
433
|
$ switchbot devices describe ABC123DEF456 --json
|
|
406
434
|
$ switchbot devices describe <lockId> --json | jq '.capabilities.commands[] | select(.destructive)'
|
|
407
435
|
`)
|
|
408
|
-
.action(async (
|
|
436
|
+
.action(async (deviceIdArg, options) => {
|
|
409
437
|
try {
|
|
438
|
+
const deviceId = resolveDeviceId(deviceIdArg, options.name);
|
|
410
439
|
const result = await describeDevice(deviceId, options);
|
|
411
440
|
const { device, isPhysical, typeName, controlType, catalog, capabilities, source, suggestedActions: picks } = result;
|
|
412
441
|
if (isJsonMode()) {
|
|
@@ -485,6 +514,10 @@ Examples:
|
|
|
485
514
|
registerWatchCommand(devices);
|
|
486
515
|
// switchbot devices explain <id>
|
|
487
516
|
registerExplainCommand(devices);
|
|
517
|
+
// switchbot devices expand <id> <cmd> [semantic flags]
|
|
518
|
+
registerExpandCommand(devices);
|
|
519
|
+
// switchbot devices meta set/get/list/clear
|
|
520
|
+
registerDevicesMetaCommand(devices);
|
|
488
521
|
}
|
|
489
522
|
function renderCatalogEntry(entry) {
|
|
490
523
|
console.log(`Type: ${entry.type}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devices.js","sourceRoot":"","sources":["../../src/commands/devices.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"devices.js","sourceRoot":"","sources":["../../src/commands/devices.ts"],"names":[],"mappings":"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"}
|