@switchbot/homebridge-switchbot 1.12.7-beta.4 → 1.12.7-beta.7
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/device/bot.js +2 -2
- package/dist/device/bot.js.map +1 -1
- package/dist/device/colorbulb.d.ts +0 -6
- package/dist/device/colorbulb.d.ts.map +1 -1
- package/dist/device/colorbulb.js +74 -89
- package/dist/device/colorbulb.js.map +1 -1
- package/dist/device/curtain.js +1 -1
- package/dist/device/curtain.js.map +1 -1
- package/dist/device/humidifier.js +2 -2
- package/dist/device/humidifier.js.map +1 -1
- package/dist/device/lock.js +1 -1
- package/dist/device/lock.js.map +1 -1
- package/dist/device/meter.d.ts +0 -1
- package/dist/device/meter.d.ts.map +1 -1
- package/dist/device/meter.js +1 -14
- package/dist/device/meter.js.map +1 -1
- package/dist/device/meterplus.d.ts +76 -0
- package/dist/device/meterplus.d.ts.map +1 -0
- package/dist/device/meterplus.js +464 -0
- package/dist/device/meterplus.js.map +1 -0
- package/dist/device/plug.js +1 -1
- package/dist/device/plug.js.map +1 -1
- package/dist/device/striplight.d.ts +90 -0
- package/dist/device/striplight.d.ts.map +1 -0
- package/dist/device/striplight.js +487 -0
- package/dist/device/striplight.js.map +1 -0
- package/dist/platform.d.ts +2 -0
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +119 -9
- package/dist/platform.js.map +1 -1
- package/package.json +2 -2
- package/src/device/bot.ts +2 -2
- package/src/device/colorbulb.ts +74 -89
- package/src/device/curtain.ts +1 -1
- package/src/device/humidifier.ts +2 -2
- package/src/device/lock.ts +1 -1
- package/src/device/meter.ts +1 -13
- package/src/device/meterplus.ts +518 -0
- package/src/device/plug.ts +1 -1
- package/src/device/striplight.ts +583 -0
- package/src/platform.ts +127 -9
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"striplight.d.ts","sourceRoot":"","sources":["../../src/device/striplight.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,487 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StripLight = void 0;
|
|
4
|
+
const rxjs_1 = require("rxjs");
|
|
5
|
+
const operators_1 = require("rxjs/operators");
|
|
6
|
+
const settings_1 = require("../settings");
|
|
7
|
+
/**
|
|
8
|
+
* Platform Accessory
|
|
9
|
+
* An instance of this class is created for each accessory your platform registers
|
|
10
|
+
* Each accessory may expose multiple services of different service types.
|
|
11
|
+
*/
|
|
12
|
+
class StripLight {
|
|
13
|
+
constructor(platform, accessory, device) {
|
|
14
|
+
this.platform = platform;
|
|
15
|
+
this.accessory = accessory;
|
|
16
|
+
this.device = device;
|
|
17
|
+
// default placeholders
|
|
18
|
+
this.logs(device);
|
|
19
|
+
this.refreshRate(device);
|
|
20
|
+
this.config(device);
|
|
21
|
+
if (this.On === undefined) {
|
|
22
|
+
this.On = false;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
this.On = this.accessory.context.On;
|
|
26
|
+
}
|
|
27
|
+
this.Hue = 0;
|
|
28
|
+
this.Brightness = 0;
|
|
29
|
+
this.Saturation = 0;
|
|
30
|
+
this.minKelvin = 2000;
|
|
31
|
+
this.maxKelvin = 9000;
|
|
32
|
+
// this is subject we use to track when we need to POST changes to the SwitchBot API
|
|
33
|
+
this.doColorBulbUpdate = new rxjs_1.Subject();
|
|
34
|
+
this.colorBulbUpdateInProgress = false;
|
|
35
|
+
// Retrieve initial values and updateHomekit
|
|
36
|
+
this.refreshStatus();
|
|
37
|
+
// set accessory information
|
|
38
|
+
accessory
|
|
39
|
+
.getService(this.platform.Service.AccessoryInformation)
|
|
40
|
+
.setCharacteristic(this.platform.Characteristic.Manufacturer, 'SwitchBot')
|
|
41
|
+
.setCharacteristic(this.platform.Characteristic.Model, 'W1701100')
|
|
42
|
+
.setCharacteristic(this.platform.Characteristic.SerialNumber, device.deviceId);
|
|
43
|
+
// get the Lightbulb service if it exists, otherwise create a new Lightbulb service
|
|
44
|
+
// you can create multiple services for each accessory
|
|
45
|
+
(this.lightBulbService = accessory.getService(this.platform.Service.Lightbulb) || accessory.addService(this.platform.Service.Lightbulb)),
|
|
46
|
+
`${accessory.displayName} Strip Light`;
|
|
47
|
+
// To avoid "Cannot add a Service with the same UUID another Service without also defining a unique 'subtype' property." error,
|
|
48
|
+
// when creating multiple services of the same type, you need to use the following syntax to specify a name and subtype id:
|
|
49
|
+
// accessory.getService('NAME') ?? accessory.addService(this.platform.Service.Outlet, 'NAME', 'USER_DEFINED_SUBTYPE');
|
|
50
|
+
// set the service name, this is what is displayed as the default name on the Home app
|
|
51
|
+
// in this example we are using the name we stored in the `accessory.context` in the `discoverDevices` method.
|
|
52
|
+
this.lightBulbService.setCharacteristic(this.platform.Characteristic.Name, accessory.displayName);
|
|
53
|
+
// handle on / off events using the On characteristic
|
|
54
|
+
this.lightBulbService.getCharacteristic(this.platform.Characteristic.On).onSet(this.OnSet.bind(this));
|
|
55
|
+
// handle Brightness events using the Brightness characteristic
|
|
56
|
+
this.lightBulbService
|
|
57
|
+
.getCharacteristic(this.platform.Characteristic.Brightness)
|
|
58
|
+
.setProps({
|
|
59
|
+
minStep: this.minStep(device),
|
|
60
|
+
minValue: 0,
|
|
61
|
+
maxValue: 100,
|
|
62
|
+
validValueRanges: [0, 100],
|
|
63
|
+
})
|
|
64
|
+
.onGet(() => {
|
|
65
|
+
return this.Brightness;
|
|
66
|
+
})
|
|
67
|
+
.onSet(this.BrightnessSet.bind(this));
|
|
68
|
+
// handle Hue events using the Hue characteristic
|
|
69
|
+
this.lightBulbService
|
|
70
|
+
.getCharacteristic(this.platform.Characteristic.Hue)
|
|
71
|
+
.setProps({
|
|
72
|
+
minValue: 0,
|
|
73
|
+
maxValue: 360,
|
|
74
|
+
validValueRanges: [0, 360],
|
|
75
|
+
})
|
|
76
|
+
.onGet(() => {
|
|
77
|
+
return this.Hue;
|
|
78
|
+
})
|
|
79
|
+
.onSet(this.HueSet.bind(this));
|
|
80
|
+
// handle Hue events using the Hue characteristic
|
|
81
|
+
this.lightBulbService
|
|
82
|
+
.getCharacteristic(this.platform.Characteristic.Saturation)
|
|
83
|
+
.setProps({
|
|
84
|
+
minValue: 0,
|
|
85
|
+
maxValue: 100,
|
|
86
|
+
validValueRanges: [0, 100],
|
|
87
|
+
})
|
|
88
|
+
.onGet(() => {
|
|
89
|
+
return this.Saturation;
|
|
90
|
+
})
|
|
91
|
+
.onSet(this.SaturationSet.bind(this));
|
|
92
|
+
// Update Homekit
|
|
93
|
+
this.updateHomeKitCharacteristics();
|
|
94
|
+
// Start an update interval
|
|
95
|
+
(0, rxjs_1.interval)(this.deviceRefreshRate * 1000)
|
|
96
|
+
.pipe((0, operators_1.skipWhile)(() => this.colorBulbUpdateInProgress))
|
|
97
|
+
.subscribe(async () => {
|
|
98
|
+
await this.refreshStatus();
|
|
99
|
+
});
|
|
100
|
+
// Watch for Bulb change events
|
|
101
|
+
// We put in a debounce of 100ms so we don't make duplicate calls
|
|
102
|
+
this.doColorBulbUpdate
|
|
103
|
+
.pipe((0, operators_1.tap)(() => {
|
|
104
|
+
this.colorBulbUpdateInProgress = true;
|
|
105
|
+
}), (0, operators_1.debounceTime)(this.platform.config.options.pushRate * 1000))
|
|
106
|
+
.subscribe(async () => {
|
|
107
|
+
try {
|
|
108
|
+
await this.pushChanges();
|
|
109
|
+
}
|
|
110
|
+
catch (e) {
|
|
111
|
+
this.errorLog(`Strip Light: ${this.accessory.displayName} failed pushChanges`);
|
|
112
|
+
if (this.deviceLogging.includes('debug')) {
|
|
113
|
+
this.errorLog(`Strip Light: ${this.accessory.displayName} failed pushChanges,` + ` Error Message: ${JSON.stringify(e.message)}`);
|
|
114
|
+
}
|
|
115
|
+
this.apiError(e);
|
|
116
|
+
}
|
|
117
|
+
this.colorBulbUpdateInProgress = false;
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
async parseStatus() {
|
|
121
|
+
switch (this.power) {
|
|
122
|
+
case 'on':
|
|
123
|
+
this.On = true;
|
|
124
|
+
break;
|
|
125
|
+
default:
|
|
126
|
+
this.On = false;
|
|
127
|
+
}
|
|
128
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} On: ${this.On}`);
|
|
129
|
+
// Brightness
|
|
130
|
+
this.Brightness = Number(this.brightness);
|
|
131
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} Brightness: ${this.Brightness}`);
|
|
132
|
+
// Color, Hue & Brightness
|
|
133
|
+
if (this.color) {
|
|
134
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} color: ${JSON.stringify(this.color)}`);
|
|
135
|
+
const [red, green, blue] = this.color.split(':');
|
|
136
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} red: ${JSON.stringify(red)}`);
|
|
137
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} green: ${JSON.stringify(green)}`);
|
|
138
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} blue: ${JSON.stringify(blue)}`);
|
|
139
|
+
const [hue, saturation] = (0, settings_1.rgb2hs)(Number(red), Number(green), Number(blue));
|
|
140
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} hs: ${JSON.stringify((0, settings_1.rgb2hs)(Number(red), Number(green), Number(blue)))}`);
|
|
141
|
+
// Hue
|
|
142
|
+
this.Hue = hue;
|
|
143
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} Hue: ${this.Hue}`);
|
|
144
|
+
// Saturation
|
|
145
|
+
this.Saturation = saturation;
|
|
146
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} Saturation: ${this.Saturation}`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
async refreshStatus() {
|
|
150
|
+
try {
|
|
151
|
+
this.deviceStatus = (await this.platform.axios.get(`${settings_1.DeviceURL}/${this.device.deviceId}/status`)).data;
|
|
152
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} refreshStatus: ${JSON.stringify(this.deviceStatus)}`);
|
|
153
|
+
this.power = this.deviceStatus.body.power;
|
|
154
|
+
this.color = this.deviceStatus.body.color;
|
|
155
|
+
this.brightness = this.deviceStatus.body.brightness;
|
|
156
|
+
this.parseStatus();
|
|
157
|
+
this.updateHomeKitCharacteristics();
|
|
158
|
+
}
|
|
159
|
+
catch (e) {
|
|
160
|
+
this.errorLog(`Strip Light: ${this.accessory.displayName} failed refreshStatus with OpenAPI Connection`);
|
|
161
|
+
if (this.deviceLogging.includes('debug')) {
|
|
162
|
+
this.errorLog(`Strip Light: ${this.accessory.displayName} failed refreshStatus with OpenAPI Connection,` +
|
|
163
|
+
` Error Message: ${JSON.stringify(e.message)}`);
|
|
164
|
+
}
|
|
165
|
+
this.apiError(e);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Pushes the requested changes to the SwitchBot API
|
|
170
|
+
* deviceType commandType Command command parameter Description
|
|
171
|
+
* Strip Light - "command" "turnOn" "default" = set to ON state |
|
|
172
|
+
* Strip Light - "command" "turnOff" "default" = set to OFF state |
|
|
173
|
+
* Strip Light - "command" "toggle" "default" = toggle state |
|
|
174
|
+
* Strip Light - "command" "setBrightness" "`{1-100}`" = set brightness |
|
|
175
|
+
* Strip Light - "command" "setColor" "`"{0-255}:{0-255}:{0-255}"`" = set RGB color value |
|
|
176
|
+
*
|
|
177
|
+
*/
|
|
178
|
+
async pushChanges() {
|
|
179
|
+
try {
|
|
180
|
+
if (this.On !== this.OnCached) {
|
|
181
|
+
// Push On Update
|
|
182
|
+
const payload = {
|
|
183
|
+
commandType: 'command',
|
|
184
|
+
parameter: 'default',
|
|
185
|
+
};
|
|
186
|
+
if (this.On) {
|
|
187
|
+
payload.command = 'turnOn';
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
payload.command = 'turnOff';
|
|
191
|
+
}
|
|
192
|
+
this.infoLog(`Strip Light: ${this.accessory.displayName} Sending request to SwitchBot API. command: ${payload.command},` +
|
|
193
|
+
` parameter: ${payload.parameter}, commandType: ${payload.commandType}`);
|
|
194
|
+
// Make the API request
|
|
195
|
+
const push = await this.platform.axios.post(`${settings_1.DeviceURL}/${this.device.deviceId}/commands`, payload);
|
|
196
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} pushChanges: ${JSON.stringify(push.data)}`);
|
|
197
|
+
this.statusCode(push);
|
|
198
|
+
this.OnCached = this.On;
|
|
199
|
+
this.accessory.context.On = this.OnCached;
|
|
200
|
+
}
|
|
201
|
+
// Push Brightness Update
|
|
202
|
+
if (this.On) {
|
|
203
|
+
await this.pushBrightnessChanges();
|
|
204
|
+
}
|
|
205
|
+
// Push Hue & Saturation Update
|
|
206
|
+
if (this.On) {
|
|
207
|
+
await this.pushHueSaturationChanges();
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
catch (e) {
|
|
211
|
+
this.errorLog(`Strip Light: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection`);
|
|
212
|
+
if (this.deviceLogging.includes('debug')) {
|
|
213
|
+
this.errorLog(`Strip Light: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,` +
|
|
214
|
+
` Error Message: ${JSON.stringify(e.message)}`);
|
|
215
|
+
}
|
|
216
|
+
this.apiError(e);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
async pushHueSaturationChanges() {
|
|
220
|
+
try {
|
|
221
|
+
if (this.Hue !== this.HueCached || this.Saturation !== this.SaturationCached) {
|
|
222
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} Hue: ${JSON.stringify(this.Hue)}`);
|
|
223
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} Saturation: ${JSON.stringify(this.Saturation)}`);
|
|
224
|
+
const [red, green, blue] = (0, settings_1.hs2rgb)(Number(this.Hue), Number(this.Saturation));
|
|
225
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} rgb: ${JSON.stringify([red, green, blue])}`);
|
|
226
|
+
const payload = {
|
|
227
|
+
commandType: 'command',
|
|
228
|
+
command: 'setColor',
|
|
229
|
+
parameter: `${red}:${green}:${blue}`,
|
|
230
|
+
};
|
|
231
|
+
this.infoLog(`Strip Light: ${this.accessory.displayName} Sending request to SwitchBot API. command: ${payload.command},` +
|
|
232
|
+
` parameter: ${payload.parameter}, commandType: ${payload.commandType}`);
|
|
233
|
+
// Make the API request
|
|
234
|
+
const push = await this.platform.axios.post(`${settings_1.DeviceURL}/${this.device.deviceId}/commands`, payload);
|
|
235
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} pushChanges: ${JSON.stringify(push.data)}`);
|
|
236
|
+
this.statusCode(push);
|
|
237
|
+
this.HueCached = this.Hue;
|
|
238
|
+
this.SaturationCached = this.Saturation;
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} No Changes.` +
|
|
242
|
+
`Hue: ${this.Hue}, HueCached: ${this.HueCached}, Saturation: ${this.Saturation}, SaturationCached: ${this.SaturationCached}`);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
catch (e) {
|
|
246
|
+
this.errorLog(`Strip Light: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection`);
|
|
247
|
+
if (this.deviceLogging.includes('debug')) {
|
|
248
|
+
this.errorLog(`Strip Light: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,` +
|
|
249
|
+
` Error Message: ${JSON.stringify(e.message)}`);
|
|
250
|
+
}
|
|
251
|
+
this.apiError(e);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
async pushBrightnessChanges() {
|
|
255
|
+
try {
|
|
256
|
+
if (this.Brightness !== this.BrightnessCached) {
|
|
257
|
+
const payload = {
|
|
258
|
+
commandType: 'command',
|
|
259
|
+
command: 'setBrightness',
|
|
260
|
+
parameter: `${this.Brightness}`,
|
|
261
|
+
};
|
|
262
|
+
this.infoLog(`Strip Light: ${this.accessory.displayName} Sending request to SwitchBot API. command: ${payload.command},` +
|
|
263
|
+
` parameter: ${payload.parameter}, commandType: ${payload.commandType}`);
|
|
264
|
+
// Make the API request
|
|
265
|
+
const push = await this.platform.axios.post(`${settings_1.DeviceURL}/${this.device.deviceId}/commands`, payload);
|
|
266
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} pushChanges: ${JSON.stringify(push.data)}`);
|
|
267
|
+
this.statusCode(push);
|
|
268
|
+
this.BrightnessCached = this.Brightness;
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} No Changes.` +
|
|
272
|
+
`Brightness: ${this.Brightness}, BrightnessCached: ${this.BrightnessCached}`);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
catch (e) {
|
|
276
|
+
this.errorLog(`Strip Light: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection`);
|
|
277
|
+
if (this.deviceLogging.includes('debug')) {
|
|
278
|
+
this.errorLog(`Strip Light: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,` +
|
|
279
|
+
` Error Message: ${JSON.stringify(e.message)}`);
|
|
280
|
+
}
|
|
281
|
+
this.apiError(e);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
async updateHomeKitCharacteristics() {
|
|
285
|
+
if (this.On === undefined) {
|
|
286
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} On: ${this.On}`);
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
this.lightBulbService.updateCharacteristic(this.platform.Characteristic.On, this.On);
|
|
290
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} updateCharacteristic On: ${this.On}`);
|
|
291
|
+
}
|
|
292
|
+
if (this.Brightness === undefined) {
|
|
293
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} Brightness: ${this.Brightness}`);
|
|
294
|
+
}
|
|
295
|
+
else {
|
|
296
|
+
this.lightBulbService.updateCharacteristic(this.platform.Characteristic.Brightness, this.Brightness);
|
|
297
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} updateCharacteristic Brightness: ${this.Brightness}`);
|
|
298
|
+
}
|
|
299
|
+
if (this.Hue === undefined) {
|
|
300
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} Hue: ${this.Hue}`);
|
|
301
|
+
}
|
|
302
|
+
else {
|
|
303
|
+
this.lightBulbService.updateCharacteristic(this.platform.Characteristic.Hue, this.Hue);
|
|
304
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} updateCharacteristic Hue: ${this.Hue}`);
|
|
305
|
+
}
|
|
306
|
+
if (this.Saturation === undefined) {
|
|
307
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} Saturation: ${this.Saturation}`);
|
|
308
|
+
}
|
|
309
|
+
else {
|
|
310
|
+
this.lightBulbService.updateCharacteristic(this.platform.Characteristic.Saturation, this.Saturation);
|
|
311
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} updateCharacteristic Saturation: ${this.Saturation}`);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
apiError(e) {
|
|
315
|
+
this.lightBulbService.updateCharacteristic(this.platform.Characteristic.On, e);
|
|
316
|
+
this.lightBulbService.updateCharacteristic(this.platform.Characteristic.Hue, e);
|
|
317
|
+
this.lightBulbService.updateCharacteristic(this.platform.Characteristic.Brightness, e);
|
|
318
|
+
this.lightBulbService.updateCharacteristic(this.platform.Characteristic.Saturation, e);
|
|
319
|
+
//throw new this.platform.api.hap.HapStatusError(HAPStatus.SERVICE_COMMUNICATION_FAILURE);
|
|
320
|
+
}
|
|
321
|
+
statusCode(push) {
|
|
322
|
+
switch (push.data.statusCode) {
|
|
323
|
+
case 151:
|
|
324
|
+
this.errorLog(`Strip Light: ${this.accessory.displayName} Command not supported by this device type.`);
|
|
325
|
+
break;
|
|
326
|
+
case 152:
|
|
327
|
+
this.errorLog(`Strip Light: ${this.accessory.displayName} Device not found.`);
|
|
328
|
+
break;
|
|
329
|
+
case 160:
|
|
330
|
+
this.errorLog(`Strip Light: ${this.accessory.displayName} Command is not supported.`);
|
|
331
|
+
break;
|
|
332
|
+
case 161:
|
|
333
|
+
this.errorLog(`Strip Light: ${this.accessory.displayName} Device is offline.`);
|
|
334
|
+
this.offlineOff();
|
|
335
|
+
break;
|
|
336
|
+
case 171:
|
|
337
|
+
this.errorLog(`Strip Light: ${this.accessory.displayName} is offline. Hub: ${this.device.hubDeviceId}`);
|
|
338
|
+
this.offlineOff();
|
|
339
|
+
break;
|
|
340
|
+
case 190:
|
|
341
|
+
this.errorLog(`Strip Light: ${this.accessory.displayName} Device internal error due to device states not synchronized with server,` +
|
|
342
|
+
` Or command: ${JSON.stringify(push.data)} format is invalid`);
|
|
343
|
+
break;
|
|
344
|
+
case 100:
|
|
345
|
+
if (this.platform.debugMode) {
|
|
346
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} Command successfully sent.`);
|
|
347
|
+
}
|
|
348
|
+
break;
|
|
349
|
+
default:
|
|
350
|
+
if (this.platform.debugMode) {
|
|
351
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} Unknown statusCode.`);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
async offlineOff() {
|
|
356
|
+
if (this.device.offline) {
|
|
357
|
+
this.On = false;
|
|
358
|
+
this.lightBulbService.getCharacteristic(this.platform.Characteristic.On).updateValue(this.On);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Handle requests to set the value of the "On" characteristic
|
|
363
|
+
*/
|
|
364
|
+
async OnSet(value) {
|
|
365
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} On: ${value}`);
|
|
366
|
+
this.On = value;
|
|
367
|
+
this.doColorBulbUpdate.next();
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Handle requests to set the value of the "Brightness" characteristic
|
|
371
|
+
*/
|
|
372
|
+
async BrightnessSet(value) {
|
|
373
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} Brightness: ${value}`);
|
|
374
|
+
this.Brightness = value;
|
|
375
|
+
this.doColorBulbUpdate.next();
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Handle requests to set the value of the "Hue" characteristic
|
|
379
|
+
*/
|
|
380
|
+
async HueSet(value) {
|
|
381
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} Hue: ${value}`);
|
|
382
|
+
this.Hue = value;
|
|
383
|
+
this.doColorBulbUpdate.next();
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* Handle requests to set the value of the "Saturation" characteristic
|
|
387
|
+
*/
|
|
388
|
+
async SaturationSet(value) {
|
|
389
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} Saturation: ${value}`);
|
|
390
|
+
this.Saturation = value;
|
|
391
|
+
this.doColorBulbUpdate.next();
|
|
392
|
+
}
|
|
393
|
+
async config(device) {
|
|
394
|
+
let config = {};
|
|
395
|
+
if (device.colorbulb) {
|
|
396
|
+
config = device.colorbulb;
|
|
397
|
+
}
|
|
398
|
+
if (device.ble) {
|
|
399
|
+
config['ble'] = device.ble;
|
|
400
|
+
}
|
|
401
|
+
if (device.logging !== undefined) {
|
|
402
|
+
config['logging'] = device.logging;
|
|
403
|
+
}
|
|
404
|
+
if (device.refreshRate !== undefined) {
|
|
405
|
+
config['refreshRate'] = device.refreshRate;
|
|
406
|
+
}
|
|
407
|
+
if (device.scanDuration !== undefined) {
|
|
408
|
+
config['scanDuration'] = device.scanDuration;
|
|
409
|
+
}
|
|
410
|
+
if (device.offline !== undefined) {
|
|
411
|
+
config['offline'] = device.offline;
|
|
412
|
+
}
|
|
413
|
+
if (Object.entries(config).length !== 0) {
|
|
414
|
+
this.infoLog(`Strip Light: ${this.accessory.displayName} Config: ${JSON.stringify(config)}`);
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
async refreshRate(device) {
|
|
418
|
+
if (device.refreshRate) {
|
|
419
|
+
this.deviceRefreshRate = this.accessory.context.refreshRate = device.refreshRate;
|
|
420
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} Using Device Config refreshRate: ${this.deviceRefreshRate}`);
|
|
421
|
+
}
|
|
422
|
+
else if (this.platform.config.options.refreshRate) {
|
|
423
|
+
this.deviceRefreshRate = this.accessory.context.refreshRate = this.platform.config.options.refreshRate;
|
|
424
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} Using Platform Config refreshRate: ${this.deviceRefreshRate}`);
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
async logs(device) {
|
|
428
|
+
if (this.platform.debugMode) {
|
|
429
|
+
this.deviceLogging = this.accessory.context.logging = 'debugMode';
|
|
430
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} Using Debug Mode Logging: ${this.deviceLogging}`);
|
|
431
|
+
}
|
|
432
|
+
else if (device.logging) {
|
|
433
|
+
this.deviceLogging = this.accessory.context.logging = device.logging;
|
|
434
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} Using Device Config Logging: ${this.deviceLogging}`);
|
|
435
|
+
}
|
|
436
|
+
else if (this.platform.config.options?.logging) {
|
|
437
|
+
this.deviceLogging = this.accessory.context.logging = this.platform.config.options?.logging;
|
|
438
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} Using Platform Config Logging: ${this.deviceLogging}`);
|
|
439
|
+
}
|
|
440
|
+
else {
|
|
441
|
+
this.deviceLogging = this.accessory.context.logging = 'standard';
|
|
442
|
+
this.debugLog(`Strip Light: ${this.accessory.displayName} Logging Not Set, Using: ${this.deviceLogging}`);
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
minStep(device) {
|
|
446
|
+
if (device.colorbulb?.set_minStep) {
|
|
447
|
+
this.set_minStep = device.colorbulb?.set_minStep;
|
|
448
|
+
}
|
|
449
|
+
else {
|
|
450
|
+
this.set_minStep = 1;
|
|
451
|
+
}
|
|
452
|
+
return this.set_minStep;
|
|
453
|
+
}
|
|
454
|
+
/**
|
|
455
|
+
* Logging for Device
|
|
456
|
+
*/
|
|
457
|
+
infoLog(...log) {
|
|
458
|
+
if (this.enablingDeviceLogging()) {
|
|
459
|
+
this.platform.log.info(String(...log));
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
warnLog(...log) {
|
|
463
|
+
if (this.enablingDeviceLogging()) {
|
|
464
|
+
this.platform.log.warn(String(...log));
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
errorLog(...log) {
|
|
468
|
+
if (this.enablingDeviceLogging()) {
|
|
469
|
+
this.platform.log.error(String(...log));
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
debugLog(...log) {
|
|
473
|
+
if (this.enablingDeviceLogging()) {
|
|
474
|
+
if (this.deviceLogging === 'debug') {
|
|
475
|
+
this.platform.log.info('[DEBUG]', String(...log));
|
|
476
|
+
}
|
|
477
|
+
else {
|
|
478
|
+
this.platform.log.debug(String(...log));
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
enablingDeviceLogging() {
|
|
483
|
+
return this.deviceLogging.includes('debug') || this.deviceLogging === 'standard';
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
exports.StripLight = StripLight;
|
|
487
|
+
//# sourceMappingURL=striplight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"striplight.js","sourceRoot":"","sources":["../../src/device/striplight.ts"],"names":[],"mappings":"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"}
|
package/dist/platform.d.ts
CHANGED
|
@@ -41,6 +41,7 @@ export declare class SwitchBotPlatform implements DynamicPlatformPlugin {
|
|
|
41
41
|
private createHumidifier;
|
|
42
42
|
private createBot;
|
|
43
43
|
private createMeter;
|
|
44
|
+
private createMeterPlus;
|
|
44
45
|
private createMotion;
|
|
45
46
|
private createContact;
|
|
46
47
|
private createCurtain;
|
|
@@ -48,6 +49,7 @@ export declare class SwitchBotPlatform implements DynamicPlatformPlugin {
|
|
|
48
49
|
private createPlug;
|
|
49
50
|
private createLock;
|
|
50
51
|
private createColorBulb;
|
|
52
|
+
private createStripLight;
|
|
51
53
|
private createTV;
|
|
52
54
|
private createFan;
|
|
53
55
|
private createLight;
|
package/dist/platform.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAoBA,OAAc,EAAE,aAAa,EAAsB,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5G,OAAO,EAAyC,QAAQ,EAAE,MAAM,EAAE,uBAAuB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE9I;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,qBAAqB;aAiBjC,GAAG,EAAE,MAAM;aAAkB,MAAM,EAAE,uBAAuB;aAAkB,GAAG,EAAE,GAAG;IAhBlH,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAGpF,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAM;IAE/C,KAAK,EAAE,aAAa,CAExB;IAEH,OAAO,MAAsC;IAC7C,YAAY,EAAG,eAAe,CAAC;IAC/B,iBAAiB,EAAG,OAAO,CAAC;IAC5B,SAAS,EAAG,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;gBAEG,GAAG,EAAE,MAAM,EAAkB,MAAM,EAAE,uBAAuB,EAAkB,GAAG,EAAE,GAAG;IAkDlH,IAAI;IAoBJ;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAO/C;;OAEG;IACH,YAAY;IAgFZ;;OAEG;IACG,eAAe;IA0GrB,WAAW,CAAC,CAAC,EAAE,GAAG;IA0ClB,OAAO,CAAC,YAAY;IAqEpB,OAAO,CAAC,cAAc;IA+DtB,OAAO,CAAC,cAAc;YAiBR,gBAAgB;YAwDhB,SAAS;YA4DT,WAAW;YAuDX,eAAe;YAuDf,YAAY;YAuDZ,aAAa;YAuDb,aAAa;IAkE3B,OAAO,CAAC,gBAAgB;YAeV,UAAU;YAuDV,UAAU;YAuDV,eAAe;YAuDf,gBAAgB;YAuDhB,QAAQ;YAsDR,SAAS;YAwDT,WAAW;YAuDX,oBAAoB;YAuDpB,iBAAiB;YAuDjB,iBAAiB;YAuDjB,mBAAmB;YAuDnB,YAAY;YAuDZ,YAAY;IAuDb,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,SAAS,EAAE,iBAAiB;IAQvF,+BAA+B,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,iBAAiB,EAAE,iBAAiB;IAQpG,4BAA4B,CAAC,SAAS,EAAE,iBAAiB;IAIzD,iCAAiC,CAAC,iBAAiB,EAAE,iBAAiB;IAI5E,6BAA6B,CAAC,iBAAiB,EAAE,iBAAiB;IAMlE,cAAc,CAAC,OAAO,EAAE,eAAe;IAMjC,UAAU,CAAC,MAAM,EAAE,CAAC,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,GAAG,aAAa,CAAC;IAcrF,UAAU;IAaV;;;OAGG;IACH,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM5B,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM5B,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM7B,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAU7B,uBAAuB,IAAI,OAAO;CAGnC"}
|