@switchbot/homebridge-switchbot 1.15.1-beta.7 → 1.15.1-beta.8
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/.prettierrc +1 -1
- package/dist/device/bot.d.ts +8 -7
- package/dist/device/bot.d.ts.map +1 -1
- package/dist/device/bot.js +83 -11
- package/dist/device/bot.js.map +1 -1
- package/dist/device/colorbulb.d.ts +8 -7
- package/dist/device/colorbulb.d.ts.map +1 -1
- package/dist/device/colorbulb.js +182 -23
- package/dist/device/colorbulb.js.map +1 -1
- package/dist/device/contact.d.ts +3 -3
- package/dist/device/contact.d.ts.map +1 -1
- package/dist/device/contact.js +50 -7
- package/dist/device/contact.js.map +1 -1
- package/dist/device/curtain.d.ts +9 -8
- package/dist/device/curtain.d.ts.map +1 -1
- package/dist/device/curtain.js +86 -14
- package/dist/device/curtain.js.map +1 -1
- package/dist/device/humidifier.d.ts +8 -7
- package/dist/device/humidifier.d.ts.map +1 -1
- package/dist/device/humidifier.js +152 -27
- package/dist/device/humidifier.js.map +1 -1
- package/dist/device/lock.d.ts +8 -7
- package/dist/device/lock.d.ts.map +1 -1
- package/dist/device/lock.js +84 -12
- package/dist/device/lock.js.map +1 -1
- package/dist/device/meter.d.ts +4 -4
- package/dist/device/meter.d.ts.map +1 -1
- package/dist/device/meter.js +51 -8
- package/dist/device/meter.js.map +1 -1
- package/dist/device/meterplus.d.ts +3 -3
- package/dist/device/meterplus.d.ts.map +1 -1
- package/dist/device/meterplus.js +49 -6
- package/dist/device/meterplus.js.map +1 -1
- package/dist/device/motion.d.ts +3 -3
- package/dist/device/motion.d.ts.map +1 -1
- package/dist/device/motion.js +49 -9
- package/dist/device/motion.js.map +1 -1
- package/dist/device/plug.d.ts +8 -7
- package/dist/device/plug.d.ts.map +1 -1
- package/dist/device/plug.js +83 -11
- package/dist/device/plug.js.map +1 -1
- package/dist/device/striplight.d.ts +8 -7
- package/dist/device/striplight.d.ts.map +1 -1
- package/dist/device/striplight.js +149 -19
- package/dist/device/striplight.js.map +1 -1
- package/dist/irdevice/airconditioner.d.ts +5 -4
- package/dist/irdevice/airconditioner.d.ts.map +1 -1
- package/dist/irdevice/airconditioner.js +40 -6
- package/dist/irdevice/airconditioner.js.map +1 -1
- package/dist/irdevice/airpurifier.d.ts +5 -4
- package/dist/irdevice/airpurifier.d.ts.map +1 -1
- package/dist/irdevice/airpurifier.js +40 -6
- package/dist/irdevice/airpurifier.js.map +1 -1
- package/dist/irdevice/camera.d.ts +5 -4
- package/dist/irdevice/camera.d.ts.map +1 -1
- package/dist/irdevice/camera.js +40 -6
- package/dist/irdevice/camera.js.map +1 -1
- package/dist/irdevice/fan.d.ts +7 -6
- package/dist/irdevice/fan.d.ts.map +1 -1
- package/dist/irdevice/fan.js +40 -6
- package/dist/irdevice/fan.js.map +1 -1
- package/dist/irdevice/light.d.ts +5 -4
- package/dist/irdevice/light.d.ts.map +1 -1
- package/dist/irdevice/light.js +40 -6
- package/dist/irdevice/light.js.map +1 -1
- package/dist/irdevice/other.d.ts +5 -4
- package/dist/irdevice/other.d.ts.map +1 -1
- package/dist/irdevice/other.js +40 -6
- package/dist/irdevice/other.js.map +1 -1
- package/dist/irdevice/tv.d.ts +7 -6
- package/dist/irdevice/tv.d.ts.map +1 -1
- package/dist/irdevice/tv.js +40 -6
- package/dist/irdevice/tv.js.map +1 -1
- package/dist/irdevice/vacuumcleaner.d.ts +5 -4
- package/dist/irdevice/vacuumcleaner.d.ts.map +1 -1
- package/dist/irdevice/vacuumcleaner.js +40 -6
- package/dist/irdevice/vacuumcleaner.js.map +1 -1
- package/dist/irdevice/waterheater.d.ts +5 -4
- package/dist/irdevice/waterheater.d.ts.map +1 -1
- package/dist/irdevice/waterheater.js +40 -6
- package/dist/irdevice/waterheater.js.map +1 -1
- package/dist/platform.d.ts +3 -5
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +141 -95
- package/dist/platform.js.map +1 -1
- package/dist/settings.d.ts +2 -16
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +3 -3
- package/dist/settings.js.map +1 -1
- package/package.json +6 -7
- package/src/device/bot.ts +87 -15
- package/src/device/colorbulb.ts +186 -41
- package/src/device/contact.ts +49 -10
- package/src/device/curtain.ts +92 -19
- package/src/device/humidifier.ts +164 -30
- package/src/device/lock.ts +88 -16
- package/src/device/meter.ts +51 -12
- package/src/device/meterplus.ts +48 -9
- package/src/device/motion.ts +48 -12
- package/src/device/plug.ts +87 -15
- package/src/device/striplight.ts +161 -24
- package/src/irdevice/airconditioner.ts +43 -8
- package/src/irdevice/airpurifier.ts +43 -8
- package/src/irdevice/camera.ts +43 -8
- package/src/irdevice/fan.ts +44 -9
- package/src/irdevice/light.ts +43 -8
- package/src/irdevice/other.ts +43 -8
- package/src/irdevice/tv.ts +44 -9
- package/src/irdevice/vacuumcleaner.ts +43 -8
- package/src/irdevice/waterheater.ts +43 -8
- package/src/platform.ts +154 -108
- package/src/settings.ts +6 -10
package/src/platform.ts
CHANGED
|
@@ -18,13 +18,13 @@ import { AirPurifier } from './irdevice/airpurifier';
|
|
|
18
18
|
import { WaterHeater } from './irdevice/waterheater';
|
|
19
19
|
import { VacuumCleaner } from './irdevice/vacuumcleaner';
|
|
20
20
|
import { AirConditioner } from './irdevice/airconditioner';
|
|
21
|
+
import https from 'https';
|
|
21
22
|
import crypto from 'crypto';
|
|
22
23
|
import { Buffer } from 'buffer';
|
|
23
24
|
import fakegato from 'fakegato-history';
|
|
24
25
|
import { readFileSync, writeFileSync } from 'fs';
|
|
25
|
-
import axios, { AxiosInstance, AxiosRequestConfig } from 'axios';
|
|
26
26
|
import { API, DynamicPlatformPlugin, Logger, PlatformAccessory, Service, Characteristic } from 'homebridge';
|
|
27
|
-
import { PLATFORM_NAME, PLUGIN_NAME,
|
|
27
|
+
import { PLATFORM_NAME, PLUGIN_NAME, irdevice, device, SwitchBotPlatformConfig, devicesConfig, DevicePath, HostDomain } from './settings';
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
30
|
* HomebridgePlatform
|
|
@@ -38,12 +38,8 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
|
|
|
38
38
|
// this is used to track restored cached accessories
|
|
39
39
|
public readonly accessories: PlatformAccessory[] = [];
|
|
40
40
|
|
|
41
|
-
public axios: AxiosInstance = axios.create({
|
|
42
|
-
responseType: 'json',
|
|
43
|
-
});
|
|
44
|
-
|
|
45
41
|
version = require('../package.json').version || '1.12.8'; // eslint-disable-line @typescript-eslint/no-var-requires
|
|
46
|
-
deviceStatus!:
|
|
42
|
+
deviceStatus!: any;
|
|
47
43
|
registeringDevice!: boolean;
|
|
48
44
|
debugMode!: boolean;
|
|
49
45
|
platformLogging?: string;
|
|
@@ -52,15 +48,6 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
|
|
|
52
48
|
|
|
53
49
|
constructor(public readonly log: Logger, public readonly config: SwitchBotPlatformConfig, public readonly api: API) {
|
|
54
50
|
this.logs();
|
|
55
|
-
const token = this.config.credentials?.token;
|
|
56
|
-
const secret = this.config.credentials?.secret;
|
|
57
|
-
const t = Date.now().toString();
|
|
58
|
-
const nonce = '';
|
|
59
|
-
const data = token + t + nonce;
|
|
60
|
-
const signTerm = crypto.createHmac('sha256', secret)
|
|
61
|
-
.update(Buffer.from(data, 'utf-8'))
|
|
62
|
-
.digest();
|
|
63
|
-
const sign = Buffer.from(String(signTerm), 'binary').toString('base64');
|
|
64
51
|
|
|
65
52
|
this.debugLog('Finished initializing platform:', this.config.name);
|
|
66
53
|
// only load if configured
|
|
@@ -85,16 +72,6 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
|
|
|
85
72
|
return;
|
|
86
73
|
}
|
|
87
74
|
|
|
88
|
-
// setup axios interceptor to add headers / api key to each request
|
|
89
|
-
this.axios.interceptors.request.use((request: AxiosRequestConfig) => {
|
|
90
|
-
request.headers!.Authorization = token;
|
|
91
|
-
request.headers!.sign = sign;
|
|
92
|
-
request.headers!.t = t;
|
|
93
|
-
request.headers!.nonce = nonce;
|
|
94
|
-
request.headers!['Content-Type'] = 'application/json; charset=utf8';
|
|
95
|
-
return request;
|
|
96
|
-
});
|
|
97
|
-
|
|
98
75
|
// import fakegato-history module
|
|
99
76
|
this.fakegatoAPI = fakegato(api);
|
|
100
77
|
|
|
@@ -299,90 +276,128 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
|
|
|
299
276
|
async discoverDevices() {
|
|
300
277
|
try {
|
|
301
278
|
if (this.config.credentials?.token) {
|
|
302
|
-
const
|
|
303
|
-
|
|
304
|
-
this.
|
|
279
|
+
const t = Date.now();
|
|
280
|
+
const nonce = 'requestID';
|
|
281
|
+
const data = this.config.credentials?.token + t + nonce;
|
|
282
|
+
const signTerm = crypto.createHmac('sha256', this.config.credentials?.secret).update(Buffer.from(data, 'utf-8')).digest();
|
|
283
|
+
const sign = signTerm.toString('base64');
|
|
284
|
+
this.debugLog(sign);
|
|
285
|
+
const options = {
|
|
286
|
+
hostname: HostDomain,
|
|
287
|
+
port: 443,
|
|
288
|
+
path: DevicePath,
|
|
289
|
+
method: 'GET',
|
|
290
|
+
headers: {
|
|
291
|
+
'Authorization': this.config.credentials?.token,
|
|
292
|
+
'sign': sign,
|
|
293
|
+
'nonce': nonce,
|
|
294
|
+
't': t,
|
|
295
|
+
'Content-Type': 'application/json',
|
|
296
|
+
},
|
|
297
|
+
};
|
|
298
|
+
const req = https.request(options, (res) => {
|
|
299
|
+
this.debugLog(`statusCode: ${res.statusCode}`);
|
|
300
|
+
this.debugLog(`headers: ${JSON.stringify(res.headers)}`);
|
|
301
|
+
let rawData = '';
|
|
302
|
+
res.on('data', (d) => {
|
|
303
|
+
rawData += d;
|
|
304
|
+
this.debugLog(`d: ${d}`);
|
|
305
|
+
});
|
|
306
|
+
res.on('end', () => {
|
|
307
|
+
try {
|
|
308
|
+
const devicesAPI = JSON.parse(rawData);
|
|
309
|
+
this.debugLog(`devicesAPI: ${JSON.stringify(devicesAPI.body)}`);
|
|
310
|
+
|
|
311
|
+
// SwitchBot Devices
|
|
312
|
+
if (devicesAPI.body.deviceList.length !== 0) {
|
|
313
|
+
this.infoLog(`Total SwitchBot Devices Found: ${devicesAPI.body.deviceList.length}`);
|
|
314
|
+
} else {
|
|
315
|
+
this.debugLog(`Total SwitchBot Devices Found: ${devicesAPI.body.deviceList.length}`);
|
|
316
|
+
}
|
|
317
|
+
const deviceLists = devicesAPI.body.deviceList;
|
|
318
|
+
if (!this.config.options?.devices) {
|
|
319
|
+
this.debugLog(`SwitchBot Device Config Not Set: ${JSON.stringify(this.config.options?.devices)}`);
|
|
320
|
+
const devices = deviceLists.map((v: any) => v);
|
|
321
|
+
for (const device of devices) {
|
|
322
|
+
if (device.deviceType) {
|
|
323
|
+
if (device.configDeviceName) {
|
|
324
|
+
device.deviceName = device.configDeviceName;
|
|
325
|
+
}
|
|
326
|
+
this.createDevice(device);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
} else if (this.config.credentials?.token && this.config.options.devices) {
|
|
330
|
+
this.debugLog(`SwitchBot Device Config Set: ${JSON.stringify(this.config.options?.devices)}`);
|
|
331
|
+
const deviceConfigs = this.config.options?.devices;
|
|
332
|
+
|
|
333
|
+
const mergeBydeviceId = (a1: { deviceId: string }[], a2: any[]) =>
|
|
334
|
+
a1.map((itm: { deviceId: string }) => ({
|
|
335
|
+
...a2.find(
|
|
336
|
+
(item: { deviceId: string }) =>
|
|
337
|
+
item.deviceId.toUpperCase().replace(/[^A-Z0-9]+/g, '') === itm.deviceId.toUpperCase().replace(/[^A-Z0-9]+/g, '') && item,
|
|
338
|
+
),
|
|
339
|
+
...itm,
|
|
340
|
+
}));
|
|
341
|
+
|
|
342
|
+
const devices = mergeBydeviceId(deviceLists, deviceConfigs);
|
|
343
|
+
this.debugLog(`SwitchBot Devices: ${JSON.stringify(devices)}`);
|
|
344
|
+
for (const device of devices) {
|
|
345
|
+
if (device.deviceType) {
|
|
346
|
+
if (device.configDeviceName) {
|
|
347
|
+
device.deviceName = device.configDeviceName;
|
|
348
|
+
}
|
|
349
|
+
this.createDevice(device);
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
} else {
|
|
353
|
+
this.errorLog('SwitchBot Token Supplied, Issue with Auth.');
|
|
354
|
+
}
|
|
305
355
|
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
}
|
|
312
|
-
const deviceLists = devicesAPI.body.deviceList;
|
|
313
|
-
if (!this.config.options?.devices) {
|
|
314
|
-
this.debugLog(`SwitchBot Device Config Not Set: ${JSON.stringify(this.config.options?.devices)}`);
|
|
315
|
-
const devices = deviceLists.map((v: any) => v);
|
|
316
|
-
for (const device of devices) {
|
|
317
|
-
if (device.deviceType) {
|
|
318
|
-
if (device.configDeviceName) {
|
|
319
|
-
device.deviceName = device.configDeviceName;
|
|
356
|
+
// IR Devices
|
|
357
|
+
if (devicesAPI.body.infraredRemoteList.length !== 0) {
|
|
358
|
+
this.infoLog(`Total IR Devices Found: ${devicesAPI.body.infraredRemoteList.length}`);
|
|
359
|
+
} else {
|
|
360
|
+
this.debugLog(`Total IR Devices Found: ${devicesAPI.body.infraredRemoteList.length}`);
|
|
320
361
|
}
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
(
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
362
|
+
const irDeviceLists = devicesAPI.body.infraredRemoteList;
|
|
363
|
+
if (!this.config.options?.irdevices) {
|
|
364
|
+
this.debugLog(`IR Device Config Not Set: ${JSON.stringify(this.config.options?.irdevices)}`);
|
|
365
|
+
const devices = irDeviceLists.map((v: any) => v);
|
|
366
|
+
for (const device of devices) {
|
|
367
|
+
if (device.remoteType) {
|
|
368
|
+
this.createIRDevice(device);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
} else {
|
|
372
|
+
this.debugLog(`IR Device Config Set: ${JSON.stringify(this.config.options?.irdevices)}`);
|
|
373
|
+
const irDeviceConfig = this.config.options?.irdevices;
|
|
374
|
+
|
|
375
|
+
const mergeIRBydeviceId = (a1: { deviceId: string }[], a2: any[]) =>
|
|
376
|
+
a1.map((itm: { deviceId: string }) => ({
|
|
377
|
+
...a2.find(
|
|
378
|
+
(item: { deviceId: string }) =>
|
|
379
|
+
item.deviceId.toUpperCase().replace(/[^A-Z0-9]+/g, '') === itm.deviceId.toUpperCase().replace(/[^A-Z0-9]+/g, '') && item,
|
|
380
|
+
),
|
|
381
|
+
...itm,
|
|
382
|
+
}));
|
|
383
|
+
|
|
384
|
+
const devices = mergeIRBydeviceId(irDeviceLists, irDeviceConfig);
|
|
385
|
+
this.debugLog(`IR Devices: ${JSON.stringify(devices)}`);
|
|
386
|
+
for (const device of devices) {
|
|
387
|
+
if (device.remoteType) {
|
|
388
|
+
this.createIRDevice(device);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
343
391
|
}
|
|
344
|
-
|
|
392
|
+
} catch (e:any) {
|
|
393
|
+
this.errorLog(e.message);
|
|
345
394
|
}
|
|
346
|
-
}
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
this.infoLog(`Total IR Devices Found: ${devicesAPI.body.infraredRemoteList.length}`);
|
|
353
|
-
} else {
|
|
354
|
-
this.debugLog(`Total IR Devices Found: ${devicesAPI.body.infraredRemoteList.length}`);
|
|
355
|
-
}
|
|
356
|
-
const irDeviceLists = devicesAPI.body.infraredRemoteList;
|
|
357
|
-
if (!this.config.options?.irdevices) {
|
|
358
|
-
this.debugLog(`IR Device Config Not Set: ${JSON.stringify(this.config.options?.irdevices)}`);
|
|
359
|
-
const devices = irDeviceLists.map((v: any) => v);
|
|
360
|
-
for (const device of devices) {
|
|
361
|
-
if (device.remoteType) {
|
|
362
|
-
this.createIRDevice(device);
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
} else {
|
|
366
|
-
this.debugLog(`IR Device Config Set: ${JSON.stringify(this.config.options?.irdevices)}`);
|
|
367
|
-
const irDeviceConfig = this.config.options?.irdevices;
|
|
368
|
-
|
|
369
|
-
const mergeIRBydeviceId = (a1: { deviceId: string }[], a2: any[]) =>
|
|
370
|
-
a1.map((itm: { deviceId: string }) => ({
|
|
371
|
-
...a2.find(
|
|
372
|
-
(item: { deviceId: string }) =>
|
|
373
|
-
item.deviceId.toUpperCase().replace(/[^A-Z0-9]+/g, '') === itm.deviceId.toUpperCase().replace(/[^A-Z0-9]+/g, '') && item,
|
|
374
|
-
),
|
|
375
|
-
...itm,
|
|
376
|
-
}));
|
|
377
|
-
|
|
378
|
-
const devices = mergeIRBydeviceId(irDeviceLists, irDeviceConfig);
|
|
379
|
-
this.debugLog(`IR Devices: ${JSON.stringify(devices)}`);
|
|
380
|
-
for (const device of devices) {
|
|
381
|
-
if (device.remoteType) {
|
|
382
|
-
this.createIRDevice(device);
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
}
|
|
395
|
+
});
|
|
396
|
+
});
|
|
397
|
+
req.on('error', (error) => {
|
|
398
|
+
this.errorLog(error);
|
|
399
|
+
});
|
|
400
|
+
req.end();
|
|
386
401
|
} else if (!this.config.credentials?.token && this.config.options?.devices) {
|
|
387
402
|
this.debugLog(`SwitchBot Device Manual Config Set: ${JSON.stringify(this.config.options?.devices)}`);
|
|
388
403
|
const deviceConfigs = this.config.options?.devices;
|
|
@@ -1755,7 +1770,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
|
|
|
1755
1770
|
this.warnLog(`Removing existing accessory from cache: ${existingAccessory.displayName}`);
|
|
1756
1771
|
}
|
|
1757
1772
|
|
|
1758
|
-
public deviceListInfo(devices
|
|
1773
|
+
public deviceListInfo(devices) {
|
|
1759
1774
|
if (this.platformLogging?.includes('debug')) {
|
|
1760
1775
|
this.warnLog(`deviceListInfoStatus: ${JSON.stringify(devices)}`);
|
|
1761
1776
|
}
|
|
@@ -1764,7 +1779,38 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
|
|
|
1764
1779
|
public async deviceInfo(device: (irdevice & devicesConfig) | (device & devicesConfig)) {
|
|
1765
1780
|
if (this.platformLogging?.includes('debug')) {
|
|
1766
1781
|
this.warnLog(JSON.stringify(device));
|
|
1767
|
-
|
|
1782
|
+
|
|
1783
|
+
const t = Date.now();
|
|
1784
|
+
const nonce = 'requestID';
|
|
1785
|
+
const data = this.config.credentials?.token + t + nonce;
|
|
1786
|
+
const signTerm = crypto.createHmac('sha256', this.config.credentials?.secret).update(Buffer.from(data, 'utf-8')).digest();
|
|
1787
|
+
const sign = signTerm.toString('base64');
|
|
1788
|
+
this.debugLog(sign);
|
|
1789
|
+
const options = {
|
|
1790
|
+
hostname: HostDomain,
|
|
1791
|
+
port: 443,
|
|
1792
|
+
path: `${DevicePath}/${device.deviceId}/status`,
|
|
1793
|
+
method: 'GET',
|
|
1794
|
+
headers: {
|
|
1795
|
+
Authorization: this.config.credentials?.token,
|
|
1796
|
+
sign: sign,
|
|
1797
|
+
nonce: nonce,
|
|
1798
|
+
t: t,
|
|
1799
|
+
'Content-Type': 'application/json',
|
|
1800
|
+
},
|
|
1801
|
+
};
|
|
1802
|
+
const req = https.request(options, (res) => {
|
|
1803
|
+
this.debugLog(`statusCode: ${res.statusCode}`);
|
|
1804
|
+
res.on('data', (d) => {
|
|
1805
|
+
process.stdout.write(d);
|
|
1806
|
+
});
|
|
1807
|
+
});
|
|
1808
|
+
req.on('error', (error) => {
|
|
1809
|
+
this.errorLog(error);
|
|
1810
|
+
});
|
|
1811
|
+
req.end();
|
|
1812
|
+
|
|
1813
|
+
this.deviceStatus = req;
|
|
1768
1814
|
if (this.deviceStatus.message === 'success') {
|
|
1769
1815
|
this.warnLog(`${device.deviceName} deviceInfoStatus: ${JSON.stringify(this.deviceStatus)}`);
|
|
1770
1816
|
} else {
|
package/src/settings.ts
CHANGED
|
@@ -13,12 +13,12 @@ export const PLUGIN_NAME = '@switchbot/homebridge-switchbot';
|
|
|
13
13
|
/**
|
|
14
14
|
* This is the main url used to access SwitchBot API
|
|
15
15
|
*/
|
|
16
|
-
export const
|
|
16
|
+
export const HostDomain = 'api.switch-bot.com';
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* This is the main url used to access SwitchBot API
|
|
20
20
|
*/
|
|
21
|
-
export const
|
|
21
|
+
export const DevicePath = '/v1.1/devices';
|
|
22
22
|
|
|
23
23
|
//Config
|
|
24
24
|
export interface SwitchBotPlatformConfig extends PlatformConfig {
|
|
@@ -183,16 +183,12 @@ export type payload = {
|
|
|
183
183
|
command: string;
|
|
184
184
|
};
|
|
185
185
|
|
|
186
|
-
|
|
187
|
-
params?: Record<string, unknown>;
|
|
188
|
-
headers?: any;
|
|
189
|
-
}
|
|
190
|
-
|
|
186
|
+
/*
|
|
191
187
|
export type deviceResponses = {
|
|
192
188
|
statusCode: number | string;
|
|
193
189
|
message: string;
|
|
194
190
|
body: deviceList | infraredRemoteList;
|
|
195
|
-
}
|
|
191
|
+
};*/
|
|
196
192
|
|
|
197
193
|
//a list of physical devices.
|
|
198
194
|
export type deviceList = {
|
|
@@ -236,11 +232,11 @@ export type irdevice = {
|
|
|
236
232
|
hubDeviceId: string; //remote device's parent Hub ID
|
|
237
233
|
};
|
|
238
234
|
|
|
239
|
-
export type deviceStatusResponse = {
|
|
235
|
+
/*export type deviceStatusResponse = {
|
|
240
236
|
statusCode: number;
|
|
241
237
|
message: string;
|
|
242
238
|
body: deviceStatus;
|
|
243
|
-
}
|
|
239
|
+
};*/
|
|
244
240
|
|
|
245
241
|
export type deviceStatus = {
|
|
246
242
|
//device ID.
|