@switchbot/homebridge-switchbot 1.4.1-beta.0 → 1.4.1-beta.4
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/CHANGELOG.md +20 -0
- package/config.schema.json +83 -11
- package/dist/devices/bots.d.ts +12 -2
- package/dist/devices/bots.d.ts.map +1 -1
- package/dist/devices/bots.js +155 -89
- package/dist/devices/bots.js.map +1 -1
- package/dist/devices/colorbulb.d.ts +12 -2
- package/dist/devices/colorbulb.d.ts.map +1 -1
- package/dist/devices/colorbulb.js +153 -84
- package/dist/devices/colorbulb.js.map +1 -1
- package/dist/devices/contact.d.ts +12 -2
- package/dist/devices/contact.d.ts.map +1 -1
- package/dist/devices/contact.js +116 -52
- package/dist/devices/contact.js.map +1 -1
- package/dist/devices/curtains.d.ts +13 -4
- package/dist/devices/curtains.d.ts.map +1 -1
- package/dist/devices/curtains.js +191 -124
- package/dist/devices/curtains.js.map +1 -1
- package/dist/devices/humidifiers.d.ts +12 -2
- package/dist/devices/humidifiers.d.ts.map +1 -1
- package/dist/devices/humidifiers.js +171 -108
- package/dist/devices/humidifiers.js.map +1 -1
- package/dist/devices/meters.d.ts +12 -2
- package/dist/devices/meters.d.ts.map +1 -1
- package/dist/devices/meters.js +113 -49
- package/dist/devices/meters.js.map +1 -1
- package/dist/devices/motion.d.ts +12 -2
- package/dist/devices/motion.d.ts.map +1 -1
- package/dist/devices/motion.js +101 -37
- package/dist/devices/motion.js.map +1 -1
- package/dist/devices/plugs.d.ts +12 -2
- package/dist/devices/plugs.d.ts.map +1 -1
- package/dist/devices/plugs.js +95 -31
- package/dist/devices/plugs.js.map +1 -1
- package/dist/irdevices/airconditioners.d.ts +10 -2
- package/dist/irdevices/airconditioners.d.ts.map +1 -1
- package/dist/irdevices/airconditioners.js +77 -37
- package/dist/irdevices/airconditioners.js.map +1 -1
- package/dist/irdevices/airpurifiers.d.ts +10 -2
- package/dist/irdevices/airpurifiers.d.ts.map +1 -1
- package/dist/irdevices/airpurifiers.js +65 -25
- package/dist/irdevices/airpurifiers.js.map +1 -1
- package/dist/irdevices/cameras.d.ts +10 -2
- package/dist/irdevices/cameras.d.ts.map +1 -1
- package/dist/irdevices/cameras.js +61 -21
- package/dist/irdevices/cameras.js.map +1 -1
- package/dist/irdevices/fans.d.ts +10 -2
- package/dist/irdevices/fans.d.ts.map +1 -1
- package/dist/irdevices/fans.js +71 -30
- package/dist/irdevices/fans.js.map +1 -1
- package/dist/irdevices/lights.d.ts +10 -2
- package/dist/irdevices/lights.d.ts.map +1 -1
- package/dist/irdevices/lights.js +62 -22
- package/dist/irdevices/lights.js.map +1 -1
- package/dist/irdevices/others.d.ts +10 -2
- package/dist/irdevices/others.d.ts.map +1 -1
- package/dist/irdevices/others.js +68 -28
- package/dist/irdevices/others.js.map +1 -1
- package/dist/irdevices/tvs.d.ts +10 -2
- package/dist/irdevices/tvs.d.ts.map +1 -1
- package/dist/irdevices/tvs.js +78 -38
- package/dist/irdevices/tvs.js.map +1 -1
- package/dist/irdevices/vacuumcleaners.d.ts +10 -2
- package/dist/irdevices/vacuumcleaners.d.ts.map +1 -1
- package/dist/irdevices/vacuumcleaners.js +61 -21
- package/dist/irdevices/vacuumcleaners.js.map +1 -1
- package/dist/irdevices/waterheaters.d.ts +10 -2
- package/dist/irdevices/waterheaters.d.ts.map +1 -1
- package/dist/irdevices/waterheaters.js +61 -21
- package/dist/irdevices/waterheaters.js.map +1 -1
- package/dist/platform.d.ts +10 -10
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +290 -307
- package/dist/platform.js.map +1 -1
- package/dist/settings.d.ts +4 -1
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js.map +1 -1
- package/nodemon.json +1 -1
- package/package.json +10 -6
- package/src/devices/bots.ts +161 -89
- package/src/devices/colorbulb.ts +161 -86
- package/src/devices/contact.ts +122 -52
- package/src/devices/curtains.ts +199 -128
- package/src/devices/humidifiers.ts +177 -109
- package/src/devices/meters.ts +119 -49
- package/src/devices/motion.ts +106 -36
- package/src/devices/plugs.ts +99 -31
- package/src/irdevices/airconditioners.ts +81 -36
- package/src/irdevices/airpurifiers.ts +69 -24
- package/src/irdevices/cameras.ts +65 -20
- package/src/irdevices/fans.ts +75 -30
- package/src/irdevices/lights.ts +66 -21
- package/src/irdevices/others.ts +72 -27
- package/src/irdevices/tvs.ts +82 -37
- package/src/irdevices/vacuumcleaners.ts +65 -20
- package/src/irdevices/waterheaters.ts +65 -20
- package/src/platform.ts +285 -302
- package/src/settings.ts +4 -1
- package/dist/devices/indoorcam.d.ts +0 -64
- package/dist/devices/indoorcam.d.ts.map +0 -1
- package/dist/devices/indoorcam.js +0 -249
- package/dist/devices/indoorcam.js.map +0 -1
- package/src/devices/indoorcam.ts +0 -309
package/dist/devices/curtains.js
CHANGED
|
@@ -13,18 +13,18 @@ class Curtain {
|
|
|
13
13
|
this.platform = platform;
|
|
14
14
|
this.accessory = accessory;
|
|
15
15
|
this.device = device;
|
|
16
|
-
this.deviceDebug = this.platform.config.options?.debug === 'device' || this.platform.debugMode;
|
|
17
|
-
this.debugDebug = this.platform.config.options?.debug === 'debug' || this.platform.debugMode;
|
|
18
|
-
// Curtain Config
|
|
19
|
-
this.platform.device(`Curtain: ${this.accessory.displayName} Config: (ble: ${device.ble}, disable_group: ${device.curtain?.disable_group},`
|
|
20
|
-
+ ` hide_lightsensor: ${device.curtain?.hide_lightsensor}, set_minLux: ${device.curtain?.set_minLux}, set_maxLux: `
|
|
21
|
-
+ `${device.curtain?.set_maxLux}, refreshRate: ${device.curtain?.refreshRate}, set_max: ${device.curtain?.set_max}, set_min: `
|
|
22
|
-
+ `${device.curtain?.set_min}, set_minStep: ${device.curtain?.set_minStep})`);
|
|
23
16
|
// default placeholders
|
|
17
|
+
this.refreshRate();
|
|
18
|
+
this.logs();
|
|
24
19
|
this.setMinMax();
|
|
25
20
|
this.CurrentPosition = 0;
|
|
26
21
|
this.TargetPosition = 0;
|
|
27
22
|
this.PositionState = this.platform.Characteristic.PositionState.STOPPED;
|
|
23
|
+
// Curtain Config
|
|
24
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} Config: (ble: ${device.ble}, disable_group: ${device.curtain?.disable_group},`
|
|
25
|
+
+ ` hide_lightsensor: ${device.curtain?.hide_lightsensor}, set_minLux: ${device.curtain?.set_minLux}, set_maxLux: `
|
|
26
|
+
+ `${device.curtain?.set_maxLux}, refreshRate: ${device.curtain?.refreshRate}, set_max: ${device.curtain?.set_max}, set_min: `
|
|
27
|
+
+ `${device.curtain?.set_min}, set_minStep: ${device.curtain?.set_minStep})`);
|
|
28
28
|
// this is subject we use to track when we need to POST changes to the SwitchBot API
|
|
29
29
|
this.doCurtainUpdate = new rxjs_1.Subject();
|
|
30
30
|
this.curtainUpdateInProgress = false;
|
|
@@ -72,36 +72,36 @@ class Curtain {
|
|
|
72
72
|
.onSet(this.TargetPositionSet.bind(this));
|
|
73
73
|
// Light Sensor Service
|
|
74
74
|
if (device.curtain?.hide_lightsensor) {
|
|
75
|
-
this.
|
|
75
|
+
this.debugLog(`Curtain: ${accessory.displayName} Removing Light Sensor Service`);
|
|
76
76
|
this.lightSensorService = this.accessory.getService(this.platform.Service.LightSensor);
|
|
77
77
|
accessory.removeService(this.lightSensorService);
|
|
78
78
|
}
|
|
79
79
|
else if (!this.lightSensorService) {
|
|
80
|
-
this.
|
|
80
|
+
this.debugLog(`Curtain: ${accessory.displayName} Add Light Sensor Service`);
|
|
81
81
|
(this.lightSensorService =
|
|
82
82
|
this.accessory.getService(this.platform.Service.LightSensor) ||
|
|
83
83
|
this.accessory.addService(this.platform.Service.LightSensor)), `${accessory.displayName} Light Sensor`;
|
|
84
84
|
this.lightSensorService.setCharacteristic(this.platform.Characteristic.Name, `${accessory.displayName} Light Sensor`);
|
|
85
85
|
}
|
|
86
86
|
else {
|
|
87
|
-
this.
|
|
87
|
+
this.debugLog(`Curtain: ${accessory.displayName} Light Sensor Service Not Added`);
|
|
88
88
|
}
|
|
89
89
|
// Update Homekit
|
|
90
90
|
this.updateHomeKitCharacteristics();
|
|
91
91
|
// Start an update interval
|
|
92
|
-
(0, rxjs_1.interval)(this.
|
|
92
|
+
(0, rxjs_1.interval)(this.deviceRefreshRate * 1000)
|
|
93
93
|
.pipe((0, operators_1.skipWhile)(() => this.curtainUpdateInProgress))
|
|
94
94
|
.subscribe(() => {
|
|
95
95
|
this.refreshStatus();
|
|
96
96
|
});
|
|
97
97
|
// update slide progress
|
|
98
|
-
(0, rxjs_1.interval)(this.curtainRefreshRate
|
|
98
|
+
(0, rxjs_1.interval)(this.curtainRefreshRate * 1000)
|
|
99
99
|
.pipe((0, operators_1.skipWhile)(() => this.curtainUpdateInProgress))
|
|
100
100
|
.subscribe(() => {
|
|
101
101
|
if (this.PositionState === this.platform.Characteristic.PositionState.STOPPED) {
|
|
102
102
|
return;
|
|
103
103
|
}
|
|
104
|
-
this.
|
|
104
|
+
this.debugLog(`Curtain: ${accessory.displayName} Refresh Status When Moving, PositionState: ${this.PositionState}`);
|
|
105
105
|
this.refreshStatus();
|
|
106
106
|
});
|
|
107
107
|
// Watch for Curtain change events
|
|
@@ -115,13 +115,13 @@ class Curtain {
|
|
|
115
115
|
await this.pushChanges();
|
|
116
116
|
}
|
|
117
117
|
catch (e) {
|
|
118
|
-
this.
|
|
119
|
-
if (this.
|
|
120
|
-
this.
|
|
118
|
+
this.errorLog(`Curtain: ${this.accessory.displayName} failed pushChanges`);
|
|
119
|
+
if (this.deviceLogging === 'debug') {
|
|
120
|
+
this.errorLog(`Curtain: ${this.accessory.displayName} failed pushChanges,`
|
|
121
121
|
+ ` Error Message: ${JSON.stringify(e.message)}`);
|
|
122
122
|
}
|
|
123
|
-
if (this.
|
|
124
|
-
this.
|
|
123
|
+
if (this.platform.debugMode) {
|
|
124
|
+
this.errorLog(`Curtain: ${this.accessory.displayName} failed pushChanges,`
|
|
125
125
|
+ ` Error: ${JSON.stringify(e)}`);
|
|
126
126
|
}
|
|
127
127
|
this.apiError();
|
|
@@ -129,23 +129,59 @@ class Curtain {
|
|
|
129
129
|
this.curtainUpdateInProgress = false;
|
|
130
130
|
});
|
|
131
131
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
132
|
+
refreshRate() {
|
|
133
|
+
// refreshRate
|
|
134
|
+
if (this.device.refreshRate) {
|
|
135
|
+
this.deviceRefreshRate = this.accessory.context.refreshRate = this.device.refreshRate;
|
|
136
|
+
if (this.platform.debugMode) {
|
|
137
|
+
this.warnLog(`Using Device Config refreshRate: ${this.deviceRefreshRate}`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
else if (this.platform.config.options.refreshRate) {
|
|
141
|
+
this.deviceRefreshRate = this.accessory.context.refreshRate = this.platform.config.options.refreshRate;
|
|
142
|
+
if (this.platform.debugMode) {
|
|
143
|
+
this.warnLog(`Using Platform Config refreshRate: ${this.deviceRefreshRate}`);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// curtainRefreshRate
|
|
139
147
|
if (this.device?.curtain?.refreshRate) {
|
|
140
|
-
this.
|
|
148
|
+
this.curtainRefreshRate = this.device?.curtain?.refreshRate;
|
|
149
|
+
if (this.platform.debugMode) {
|
|
150
|
+
this.warnLog(`Using Device Config Curtain refreshRate: ${this.deviceRefreshRate}`);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
this.curtainRefreshRate = 5;
|
|
155
|
+
if (this.deviceLogging === 'debug') {
|
|
156
|
+
this.warnLog(`Curtain: ${this.accessory.displayName} Using Default Curtain Refresh Rate.`);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
logs() {
|
|
161
|
+
if (this.device.logging) {
|
|
162
|
+
this.deviceLogging = this.accessory.context.logging = this.device.logging;
|
|
163
|
+
if (this.platform.debugMode) {
|
|
164
|
+
this.warnLog(`Using Device Config Logging: ${this.deviceLogging}`);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
else if (this.platform.config.options?.logging) {
|
|
168
|
+
this.deviceLogging = this.accessory.context.logging = this.platform.config.options?.logging;
|
|
169
|
+
if (this.platform.debugMode) {
|
|
170
|
+
this.warnLog(`Using Platform Config Logging: ${this.deviceLogging}`);
|
|
171
|
+
}
|
|
141
172
|
}
|
|
142
173
|
else {
|
|
143
|
-
this.
|
|
144
|
-
if (this.platform.
|
|
145
|
-
this.
|
|
174
|
+
this.deviceLogging = this.accessory.context.logging = 'standard';
|
|
175
|
+
if (this.platform.debugMode) {
|
|
176
|
+
this.warnLog('Using Device Standard Logging');
|
|
146
177
|
}
|
|
147
178
|
}
|
|
148
|
-
|
|
179
|
+
}
|
|
180
|
+
connectBLE() {
|
|
181
|
+
const switchbot = new node_switchbot_1.default();
|
|
182
|
+
this.device.bleMac = ((this.device.deviceId.match(/.{1,2}/g)).join(':')).toLowerCase();
|
|
183
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} BLE Address: ${this.device.bleMac}`);
|
|
184
|
+
return switchbot;
|
|
149
185
|
}
|
|
150
186
|
minStep() {
|
|
151
187
|
if (this.device.curtain?.set_minStep) {
|
|
@@ -183,37 +219,37 @@ class Curtain {
|
|
|
183
219
|
}
|
|
184
220
|
}
|
|
185
221
|
async BLEparseStatus() {
|
|
186
|
-
this.
|
|
222
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} BLE parseStatus`);
|
|
187
223
|
this.setMinMax();
|
|
188
224
|
this.CurrentPosition = 100 - Number(this.position);
|
|
189
|
-
this.
|
|
225
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} CurrentPosition ${this.CurrentPosition}`);
|
|
190
226
|
if (this.setNewTarget) {
|
|
191
|
-
this.
|
|
227
|
+
this.infoLog(`Curtain: ${this.accessory.displayName} Checking Status ...`);
|
|
192
228
|
}
|
|
193
229
|
if (this.setNewTarget) {
|
|
194
230
|
this.setMinMax();
|
|
195
231
|
if (this.TargetPosition > this.CurrentPosition) {
|
|
196
|
-
this.
|
|
232
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} Closing, CurrentPosition: ${this.CurrentPosition}`);
|
|
197
233
|
this.PositionState = this.platform.Characteristic.PositionState.INCREASING;
|
|
198
234
|
}
|
|
199
235
|
else if (this.TargetPosition < this.CurrentPosition) {
|
|
200
|
-
this.
|
|
236
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} Opening, CurrentPosition: ${this.CurrentPosition}`);
|
|
201
237
|
this.PositionState = this.platform.Characteristic.PositionState.DECREASING;
|
|
202
238
|
}
|
|
203
239
|
else {
|
|
204
|
-
this.
|
|
240
|
+
this.debugLog(`Curtain: ${this.CurrentPosition} Standby, CurrentPosition: ${this.CurrentPosition}`);
|
|
205
241
|
this.PositionState = this.platform.Characteristic.PositionState.STOPPED;
|
|
206
242
|
}
|
|
207
243
|
}
|
|
208
244
|
else {
|
|
209
|
-
this.
|
|
245
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} Standby, CurrentPosition: ${this.CurrentPosition}`);
|
|
210
246
|
if (!this.setNewTarget) {
|
|
211
247
|
// If Curtain calibration distance is short, there will be an error between the current percentage and the target percentage.
|
|
212
248
|
this.TargetPosition = this.CurrentPosition;
|
|
213
249
|
this.PositionState = this.platform.Characteristic.PositionState.STOPPED;
|
|
214
250
|
}
|
|
215
251
|
}
|
|
216
|
-
this.
|
|
252
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} CurrentPosition: ${this.CurrentPosition},`
|
|
217
253
|
+ ` TargetPosition: ${this.TargetPosition}, PositionState: ${this.PositionState},`);
|
|
218
254
|
if (!this.device.curtain?.hide_lightsensor) {
|
|
219
255
|
this.set_minLux = this.minLux();
|
|
@@ -223,47 +259,47 @@ class Curtain {
|
|
|
223
259
|
switch (this.lightLevel) {
|
|
224
260
|
case 1:
|
|
225
261
|
this.CurrentAmbientLightLevel = this.set_minLux;
|
|
226
|
-
this.
|
|
262
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} LightLevel: ${this.lightLevel}`);
|
|
227
263
|
break;
|
|
228
264
|
case 2:
|
|
229
265
|
this.CurrentAmbientLightLevel = ((this.set_maxLux - this.set_minLux) / this.spaceBetweenLevels);
|
|
230
|
-
this.
|
|
266
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} LightLevel: ${this.lightLevel},`
|
|
231
267
|
+ ` Calculation: ${((this.set_maxLux - this.set_minLux) / this.spaceBetweenLevels)}`);
|
|
232
268
|
break;
|
|
233
269
|
case 3:
|
|
234
270
|
this.CurrentAmbientLightLevel = (((this.set_maxLux - this.set_minLux) / this.spaceBetweenLevels) * 2);
|
|
235
|
-
this.
|
|
271
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} LightLevel: ${this.lightLevel}`);
|
|
236
272
|
break;
|
|
237
273
|
case 4:
|
|
238
274
|
this.CurrentAmbientLightLevel = (((this.set_maxLux - this.set_minLux) / this.spaceBetweenLevels) * 3);
|
|
239
|
-
this.
|
|
275
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} LightLevel: ${this.lightLevel}`);
|
|
240
276
|
break;
|
|
241
277
|
case 5:
|
|
242
278
|
this.CurrentAmbientLightLevel = (((this.set_maxLux - this.set_minLux) / this.spaceBetweenLevels) * 4);
|
|
243
|
-
this.
|
|
279
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} LightLevel: ${this.lightLevel}`);
|
|
244
280
|
break;
|
|
245
281
|
case 6:
|
|
246
282
|
this.CurrentAmbientLightLevel = (((this.set_maxLux - this.set_minLux) / this.spaceBetweenLevels) * 5);
|
|
247
|
-
this.
|
|
283
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} LightLevel: ${this.lightLevel}`);
|
|
248
284
|
break;
|
|
249
285
|
case 7:
|
|
250
286
|
this.CurrentAmbientLightLevel = (((this.set_maxLux - this.set_minLux) / this.spaceBetweenLevels) * 6);
|
|
251
|
-
this.
|
|
287
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} LightLevel: ${this.lightLevel}`);
|
|
252
288
|
break;
|
|
253
289
|
case 8:
|
|
254
290
|
this.CurrentAmbientLightLevel = (((this.set_maxLux - this.set_minLux) / this.spaceBetweenLevels) * 7);
|
|
255
|
-
this.
|
|
291
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} LightLevel: ${this.lightLevel}`);
|
|
256
292
|
break;
|
|
257
293
|
case 9:
|
|
258
294
|
this.CurrentAmbientLightLevel = (((this.set_maxLux - this.set_minLux) / this.spaceBetweenLevels) * 8);
|
|
259
|
-
this.
|
|
295
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} LightLevel: ${this.lightLevel}`);
|
|
260
296
|
break;
|
|
261
297
|
case 10:
|
|
262
298
|
default:
|
|
263
299
|
this.CurrentAmbientLightLevel = this.set_maxLux;
|
|
264
|
-
this.
|
|
300
|
+
this.debugLog();
|
|
265
301
|
}
|
|
266
|
-
this.
|
|
302
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} LightLevel: ${this.lightLevel},`
|
|
267
303
|
+ ` CurrentAmbientLightLevel: ${this.CurrentAmbientLightLevel}`);
|
|
268
304
|
}
|
|
269
305
|
// Battery
|
|
@@ -274,42 +310,42 @@ class Curtain {
|
|
|
274
310
|
else {
|
|
275
311
|
this.StatusLowBattery = this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_NORMAL;
|
|
276
312
|
}
|
|
277
|
-
this.
|
|
313
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} BatteryLevel: ${this.BatteryLevel}, StatusLowBattery: ${this.StatusLowBattery}`);
|
|
278
314
|
}
|
|
279
315
|
async openAPIparseStatus() {
|
|
280
316
|
if (this.platform.config.credentials?.openToken) {
|
|
281
|
-
this.
|
|
317
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} OpenAPI parseStatus`);
|
|
282
318
|
// CurrentPosition
|
|
283
319
|
this.setMinMax();
|
|
284
320
|
this.CurrentPosition = 100 - this.deviceStatus.body.slidePosition;
|
|
285
|
-
this.
|
|
321
|
+
this.debugLog(`Curtain ${this.accessory.displayName} CurrentPosition: ${this.CurrentPosition}`);
|
|
286
322
|
if (this.setNewTarget) {
|
|
287
|
-
this.
|
|
323
|
+
this.infoLog(`Checking ${this.accessory.displayName} Status ...`);
|
|
288
324
|
}
|
|
289
325
|
if (this.deviceStatus.body.moving) {
|
|
290
326
|
this.setMinMax();
|
|
291
327
|
if (this.TargetPosition > this.CurrentPosition) {
|
|
292
|
-
this.
|
|
328
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} Closing, CurrentPosition: ${this.CurrentPosition} `);
|
|
293
329
|
this.PositionState = this.platform.Characteristic.PositionState.INCREASING;
|
|
294
330
|
}
|
|
295
331
|
else if (this.TargetPosition < this.CurrentPosition) {
|
|
296
|
-
this.
|
|
332
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} Opening, CurrentPosition: ${this.CurrentPosition} `);
|
|
297
333
|
this.PositionState = this.platform.Characteristic.PositionState.DECREASING;
|
|
298
334
|
}
|
|
299
335
|
else {
|
|
300
|
-
this.
|
|
336
|
+
this.debugLog(`Curtain: ${this.CurrentPosition} Standby, CurrentPosition: ${this.CurrentPosition}`);
|
|
301
337
|
this.PositionState = this.platform.Characteristic.PositionState.STOPPED;
|
|
302
338
|
}
|
|
303
339
|
}
|
|
304
340
|
else {
|
|
305
|
-
this.
|
|
341
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} Standby, CurrentPosition: ${this.CurrentPosition}`);
|
|
306
342
|
if (!this.setNewTarget) {
|
|
307
343
|
/*If Curtain calibration distance is short, there will be an error between the current percentage and the target percentage.*/
|
|
308
344
|
this.TargetPosition = this.CurrentPosition;
|
|
309
345
|
this.PositionState = this.platform.Characteristic.PositionState.STOPPED;
|
|
310
346
|
}
|
|
311
347
|
}
|
|
312
|
-
this.
|
|
348
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} CurrentPosition: ${this.CurrentPosition},`
|
|
313
349
|
+ ` TargetPosition: ${this.TargetPosition}, PositionState: ${this.PositionState},`);
|
|
314
350
|
if (!this.device.curtain?.hide_lightsensor) {
|
|
315
351
|
this.set_minLux = this.minLux();
|
|
@@ -323,7 +359,7 @@ class Curtain {
|
|
|
323
359
|
default:
|
|
324
360
|
this.CurrentAmbientLightLevel = this.set_maxLux;
|
|
325
361
|
}
|
|
326
|
-
this.
|
|
362
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} CurrentAmbientLightLevel: ${this.CurrentAmbientLightLevel}`);
|
|
327
363
|
}
|
|
328
364
|
}
|
|
329
365
|
}
|
|
@@ -336,7 +372,7 @@ class Curtain {
|
|
|
336
372
|
}
|
|
337
373
|
}
|
|
338
374
|
async BLERefreshStatus() {
|
|
339
|
-
this.
|
|
375
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} BLE refreshStatus`);
|
|
340
376
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
341
377
|
const switchbot = this.connectBLE();
|
|
342
378
|
// Start to monitor advertisement packets
|
|
@@ -351,16 +387,16 @@ class Curtain {
|
|
|
351
387
|
this.battery = ad.serviceData.battery;
|
|
352
388
|
this.position = ad.serviceData.position;
|
|
353
389
|
this.lightLevel = ad.serviceData.lightLevel;
|
|
354
|
-
this.
|
|
355
|
-
this.
|
|
390
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} serviceData: ${JSON.stringify(ad.serviceData)}`);
|
|
391
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} calibration: ${ad.serviceData.calibration}, `
|
|
356
392
|
+ `position: ${ad.serviceData.position}, lightLevel: ${ad.serviceData.lightLevel}, battery: ${ad.serviceData.battery}`);
|
|
357
393
|
if (this.serviceData) {
|
|
358
394
|
this.connected = true;
|
|
359
|
-
this.
|
|
395
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} connected: ${this.connected}`);
|
|
360
396
|
}
|
|
361
397
|
else {
|
|
362
398
|
this.connected = false;
|
|
363
|
-
this.
|
|
399
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} connected: ${this.connected}`);
|
|
364
400
|
}
|
|
365
401
|
};
|
|
366
402
|
// Wait 10 seconds
|
|
@@ -373,24 +409,24 @@ class Curtain {
|
|
|
373
409
|
this.updateHomeKitCharacteristics();
|
|
374
410
|
}
|
|
375
411
|
else {
|
|
376
|
-
this.
|
|
412
|
+
this.errorLog(`Curtain: ${this.accessory.displayName} wasn't able to establish BLE Connection`);
|
|
377
413
|
if (this.platform.config.credentials?.openToken) {
|
|
378
|
-
this.
|
|
414
|
+
this.warnLog(`Curtain: ${this.accessory.displayName} Using OpenAPI Connection`);
|
|
379
415
|
await this.openAPIRefreshStatus();
|
|
380
416
|
}
|
|
381
417
|
}
|
|
382
418
|
}).catch(async (e) => {
|
|
383
|
-
this.
|
|
384
|
-
if (this.
|
|
385
|
-
this.
|
|
419
|
+
this.errorLog(`Curtain: ${this.accessory.displayName} failed refreshStatus with BLE Connection`);
|
|
420
|
+
if (this.deviceLogging === 'debug') {
|
|
421
|
+
this.errorLog(`Curtain: ${this.accessory.displayName} failed refreshStatus with BLE Connection,`
|
|
386
422
|
+ ` Error Message: ${JSON.stringify(e.message)}`);
|
|
387
423
|
}
|
|
388
|
-
if (this.
|
|
389
|
-
this.
|
|
424
|
+
if (this.platform.debugMode) {
|
|
425
|
+
this.errorLog(`Curtain: ${this.accessory.displayName} failed refreshStatus with BLE Connection,`
|
|
390
426
|
+ ` Error: ${JSON.stringify(e)}`);
|
|
391
427
|
}
|
|
392
428
|
if (this.platform.config.credentials?.openToken) {
|
|
393
|
-
this.
|
|
429
|
+
this.warnLog(`Curtain: ${this.accessory.displayName} Using OpenAPI Connection`);
|
|
394
430
|
await this.openAPIRefreshStatus();
|
|
395
431
|
}
|
|
396
432
|
this.apiError();
|
|
@@ -398,21 +434,21 @@ class Curtain {
|
|
|
398
434
|
}
|
|
399
435
|
async openAPIRefreshStatus() {
|
|
400
436
|
if (this.platform.config.credentials?.openToken) {
|
|
401
|
-
this.
|
|
437
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} OpenAPI refreshStatus`);
|
|
402
438
|
try {
|
|
403
439
|
this.deviceStatus = (await this.platform.axios.get(`${settings_1.DeviceURL}/${this.device.deviceId}/status`)).data;
|
|
404
|
-
this.
|
|
440
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} refreshStatus: ${JSON.stringify(this.deviceStatus)}`);
|
|
405
441
|
this.parseStatus();
|
|
406
442
|
this.updateHomeKitCharacteristics();
|
|
407
443
|
}
|
|
408
444
|
catch (e) {
|
|
409
|
-
this.
|
|
410
|
-
if (this.
|
|
411
|
-
this.
|
|
445
|
+
this.errorLog(`Curtain: ${this.accessory.displayName} failed refreshStatus with OpenAPI Connection`);
|
|
446
|
+
if (this.deviceLogging === 'debug') {
|
|
447
|
+
this.errorLog(`Curtain: ${this.accessory.displayName} failed refreshStatus with OpenAPI Connection,`
|
|
412
448
|
+ ` Error Message: ${JSON.stringify(e.message)}`);
|
|
413
449
|
}
|
|
414
|
-
if (this.
|
|
415
|
-
this.
|
|
450
|
+
if (this.platform.debugMode) {
|
|
451
|
+
this.errorLog(`Curtain: ${this.accessory.displayName} failed refreshStatus with OpenAPI Connection,`
|
|
416
452
|
+ ` Error: ${JSON.stringify(e)}`);
|
|
417
453
|
}
|
|
418
454
|
this.apiError();
|
|
@@ -435,67 +471,67 @@ class Curtain {
|
|
|
435
471
|
}
|
|
436
472
|
async BLEpushChanges() {
|
|
437
473
|
if (this.TargetPosition !== this.CurrentPosition) {
|
|
438
|
-
this.
|
|
474
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} BLE pushChanges`);
|
|
439
475
|
const switchbot = this.connectBLE();
|
|
440
476
|
switchbot.discover({ model: 'c', quick: true, id: this.device.bleMac }).then((device_list) => {
|
|
441
|
-
this.
|
|
477
|
+
this.infoLog(`${this.accessory.displayName} Target Position: ${this.TargetPosition}`);
|
|
442
478
|
return device_list[0].runToPos(100 - Number(this.TargetPosition));
|
|
443
479
|
}).then(() => {
|
|
444
|
-
this.
|
|
480
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} Done.`);
|
|
445
481
|
}).catch(async (e) => {
|
|
446
|
-
this.
|
|
447
|
-
if (this.
|
|
448
|
-
this.
|
|
482
|
+
this.errorLog(`Curtain: ${this.accessory.displayName} failed pushChanges with BLE Connection`);
|
|
483
|
+
if (this.deviceLogging === 'debug') {
|
|
484
|
+
this.errorLog(`Curtain: ${this.accessory.displayName} failed pushChanges with BLE Connection,`
|
|
449
485
|
+ ` Error Message: ${JSON.stringify(e.message)}`);
|
|
450
486
|
}
|
|
451
|
-
if (this.
|
|
452
|
-
this.
|
|
487
|
+
if (this.platform.debugMode) {
|
|
488
|
+
this.errorLog(`Curtain: ${this.accessory.displayName} failed pushChanges with BLE Connection,`
|
|
453
489
|
+ ` Error: ${JSON.stringify(e)}`);
|
|
454
490
|
}
|
|
455
491
|
if (this.platform.config.credentials?.openToken) {
|
|
456
|
-
this.
|
|
492
|
+
this.warnLog(`Curtain: ${this.accessory.displayName} Using OpenAPI Connection`);
|
|
457
493
|
await this.OpenAPIpushChanges();
|
|
458
494
|
}
|
|
459
495
|
this.apiError();
|
|
460
496
|
});
|
|
461
497
|
}
|
|
462
498
|
else {
|
|
463
|
-
this.
|
|
499
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} No BLE Changes, CurrentPosition & TargetPosition Are the Same.`
|
|
464
500
|
+ ` CurrentPosition: ${this.CurrentPosition}, TargetPosition ${this.TargetPosition}`);
|
|
465
501
|
}
|
|
466
502
|
}
|
|
467
503
|
async OpenAPIpushChanges() {
|
|
468
504
|
if (this.platform.config.credentials?.openToken) {
|
|
469
505
|
try {
|
|
470
|
-
this.
|
|
506
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} OpenAPI pushChanges`);
|
|
471
507
|
if (this.TargetPosition !== this.CurrentPosition) {
|
|
472
|
-
this.
|
|
508
|
+
this.debugLog(`Pushing ${this.TargetPosition}`);
|
|
473
509
|
const adjustedTargetPosition = 100 - Number(this.TargetPosition);
|
|
474
510
|
const payload = {
|
|
475
511
|
commandType: 'command',
|
|
476
512
|
command: 'setPosition',
|
|
477
513
|
parameter: `0,ff,${adjustedTargetPosition}`,
|
|
478
514
|
};
|
|
479
|
-
this.
|
|
515
|
+
this.infoLog(`Curtain: ${this.accessory.displayName} Sending request to SwitchBot API. command: ${payload.command},`
|
|
480
516
|
+ ` parameter: ${payload.parameter}, commandType: ${payload.commandType}`);
|
|
481
517
|
// Make the API request
|
|
482
518
|
const push = (await this.platform.axios.post(`${settings_1.DeviceURL}/${this.device.deviceId}/commands`, payload));
|
|
483
|
-
this.
|
|
519
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} pushchanges: ${JSON.stringify(push.data)}`);
|
|
484
520
|
this.statusCode(push);
|
|
485
521
|
}
|
|
486
522
|
else {
|
|
487
|
-
this.
|
|
523
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} No OpenAPI Changes, CurrentPosition & TargetPosition Are the Same.`
|
|
488
524
|
+ ` CurrentPosition: ${this.CurrentPosition}, TargetPosition ${this.TargetPosition}`);
|
|
489
525
|
}
|
|
490
526
|
}
|
|
491
527
|
catch (e) {
|
|
492
|
-
this.
|
|
493
|
-
if (this.
|
|
494
|
-
this.
|
|
528
|
+
this.errorLog(`Curtain: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection`);
|
|
529
|
+
if (this.deviceLogging === 'debug') {
|
|
530
|
+
this.errorLog(`Curtain: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,`
|
|
495
531
|
+ ` Error Message: ${JSON.stringify(e.message)}`);
|
|
496
532
|
}
|
|
497
|
-
if (this.
|
|
498
|
-
this.
|
|
533
|
+
if (this.platform.debugMode) {
|
|
534
|
+
this.errorLog(`Curtain: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,`
|
|
499
535
|
+ ` Error: ${JSON.stringify(e)}`);
|
|
500
536
|
}
|
|
501
537
|
this.apiError();
|
|
@@ -505,49 +541,49 @@ class Curtain {
|
|
|
505
541
|
updateHomeKitCharacteristics() {
|
|
506
542
|
this.setMinMax();
|
|
507
543
|
if (this.CurrentPosition === undefined || Number.isNaN(this.CurrentPosition)) {
|
|
508
|
-
this.
|
|
544
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} CurrentPosition: ${this.CurrentPosition}`);
|
|
509
545
|
}
|
|
510
546
|
else {
|
|
511
547
|
this.service.updateCharacteristic(this.platform.Characteristic.CurrentPosition, Number(this.CurrentPosition));
|
|
512
|
-
this.
|
|
548
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} updateCharacteristic CurrentPosition: ${this.CurrentPosition}`);
|
|
513
549
|
}
|
|
514
550
|
if (this.PositionState === undefined) {
|
|
515
|
-
this.
|
|
551
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} PositionState: ${this.PositionState}`);
|
|
516
552
|
}
|
|
517
553
|
else {
|
|
518
|
-
this.
|
|
554
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} updateCharacteristic PositionState: ${this.PositionState}`);
|
|
519
555
|
}
|
|
520
556
|
if (this.TargetPosition === undefined || Number.isNaN(this.TargetPosition)) {
|
|
521
|
-
this.
|
|
557
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} TargetPosition: ${this.TargetPosition}`);
|
|
522
558
|
}
|
|
523
559
|
else {
|
|
524
560
|
this.service.updateCharacteristic(this.platform.Characteristic.TargetPosition, Number(this.TargetPosition));
|
|
525
|
-
this.
|
|
561
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} updateCharacteristic TargetPosition: ${this.TargetPosition}`);
|
|
526
562
|
}
|
|
527
563
|
if (!this.device.curtain?.hide_lightsensor) {
|
|
528
564
|
if (this.CurrentAmbientLightLevel === undefined || Number.isNaN(this.CurrentAmbientLightLevel)) {
|
|
529
|
-
this.
|
|
565
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} CurrentAmbientLightLevel: ${this.CurrentAmbientLightLevel}`);
|
|
530
566
|
}
|
|
531
567
|
else {
|
|
532
568
|
this.lightSensorService?.updateCharacteristic(this.platform.Characteristic.CurrentAmbientLightLevel, this.CurrentAmbientLightLevel);
|
|
533
|
-
this.
|
|
569
|
+
this.debugLog(`Curtain: ${this.accessory.displayName}`
|
|
534
570
|
+ ` updateCharacteristic CurrentAmbientLightLevel: ${this.CurrentAmbientLightLevel}`);
|
|
535
571
|
}
|
|
536
572
|
}
|
|
537
573
|
if (this.device.ble) {
|
|
538
574
|
if (this.BatteryLevel === undefined) {
|
|
539
|
-
this.
|
|
575
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} BatteryLevel: ${this.BatteryLevel}`);
|
|
540
576
|
}
|
|
541
577
|
else {
|
|
542
578
|
this.batteryService?.updateCharacteristic(this.platform.Characteristic.BatteryLevel, this.BatteryLevel);
|
|
543
|
-
this.
|
|
579
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} updateCharacteristic BatteryLevel: ${this.BatteryLevel}`);
|
|
544
580
|
}
|
|
545
581
|
if (this.StatusLowBattery === undefined) {
|
|
546
|
-
this.
|
|
582
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} StatusLowBattery: ${this.StatusLowBattery}`);
|
|
547
583
|
}
|
|
548
584
|
else {
|
|
549
585
|
this.batteryService?.updateCharacteristic(this.platform.Characteristic.StatusLowBattery, this.StatusLowBattery);
|
|
550
|
-
this.
|
|
586
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} updateCharacteristic StatusLowBattery: ${this.StatusLowBattery}`);
|
|
551
587
|
}
|
|
552
588
|
}
|
|
553
589
|
}
|
|
@@ -557,52 +593,52 @@ class Curtain {
|
|
|
557
593
|
statusCode(push) {
|
|
558
594
|
switch (push.data.statusCode) {
|
|
559
595
|
case 151:
|
|
560
|
-
this.
|
|
596
|
+
this.errorLog(`Curtain: ${this.accessory.displayName} Command not supported by this device type.`);
|
|
561
597
|
break;
|
|
562
598
|
case 152:
|
|
563
|
-
this.
|
|
599
|
+
this.errorLog(`Curtain: ${this.accessory.displayName} Device not found.`);
|
|
564
600
|
break;
|
|
565
601
|
case 160:
|
|
566
|
-
this.
|
|
602
|
+
this.errorLog(`Curtain: ${this.accessory.displayName} Command is not supported.`);
|
|
567
603
|
break;
|
|
568
604
|
case 161:
|
|
569
|
-
this.
|
|
605
|
+
this.errorLog(`Curtain: ${this.accessory.displayName} Device is offline.`);
|
|
570
606
|
break;
|
|
571
607
|
case 171:
|
|
572
|
-
this.
|
|
608
|
+
this.errorLog(`Curtain: ${this.accessory.displayName} Hub Device is offline. Hub: ${this.device.hubDeviceId}`);
|
|
573
609
|
break;
|
|
574
610
|
case 190:
|
|
575
|
-
this.
|
|
611
|
+
this.errorLog(`Curtain: ${this.accessory.displayName} Device internal error due to device states not synchronized with server,`
|
|
576
612
|
+ ` Or command: ${JSON.stringify(push.data)} format is invalid`);
|
|
577
613
|
break;
|
|
578
614
|
case 100:
|
|
579
|
-
this.
|
|
615
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} Command successfully sent.`);
|
|
580
616
|
break;
|
|
581
617
|
default:
|
|
582
|
-
this.
|
|
618
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} Unknown statusCode.`);
|
|
583
619
|
}
|
|
584
620
|
}
|
|
585
621
|
/**
|
|
586
622
|
* Handle requests to set the value of the "Target Position" characteristic
|
|
587
623
|
*/
|
|
588
624
|
TargetPositionSet(value) {
|
|
589
|
-
this.
|
|
625
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} TargetPosition: ${value}`);
|
|
590
626
|
this.TargetPosition = value;
|
|
591
627
|
this.setMinMax();
|
|
592
628
|
if (value > this.CurrentPosition) {
|
|
593
629
|
this.PositionState = this.platform.Characteristic.PositionState.INCREASING;
|
|
594
630
|
this.setNewTarget = true;
|
|
595
|
-
this.
|
|
631
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} value: ${value}, CurrentPosition: ${this.CurrentPosition}`);
|
|
596
632
|
}
|
|
597
633
|
else if (value < this.CurrentPosition) {
|
|
598
634
|
this.PositionState = this.platform.Characteristic.PositionState.DECREASING;
|
|
599
635
|
this.setNewTarget = true;
|
|
600
|
-
this.
|
|
636
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} value: ${value}, CurrentPosition: ${this.CurrentPosition}`);
|
|
601
637
|
}
|
|
602
638
|
else {
|
|
603
639
|
this.PositionState = this.platform.Characteristic.PositionState.STOPPED;
|
|
604
640
|
this.setNewTarget = false;
|
|
605
|
-
this.
|
|
641
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} value: ${value}, CurrentPosition: ${this.CurrentPosition}`);
|
|
606
642
|
}
|
|
607
643
|
this.service.setCharacteristic(this.platform.Characteristic.PositionState, this.PositionState);
|
|
608
644
|
this.service.getCharacteristic(this.platform.Characteristic.PositionState).updateValue(this.PositionState);
|
|
@@ -613,7 +649,7 @@ class Curtain {
|
|
|
613
649
|
clearTimeout(this.setNewTargetTimer);
|
|
614
650
|
if (this.setNewTarget) {
|
|
615
651
|
this.setNewTargetTimer = setTimeout(() => {
|
|
616
|
-
this.
|
|
652
|
+
this.debugLog(`Curtain: ${this.accessory.displayName} setNewTarget ${this.setNewTarget} timeout`);
|
|
617
653
|
this.setNewTarget = false;
|
|
618
654
|
}, 10000);
|
|
619
655
|
}
|
|
@@ -631,6 +667,37 @@ class Curtain {
|
|
|
631
667
|
}
|
|
632
668
|
}
|
|
633
669
|
}
|
|
670
|
+
/**
|
|
671
|
+
* Logging for Device
|
|
672
|
+
*/
|
|
673
|
+
infoLog(...log) {
|
|
674
|
+
if (this.enablingDeviceLogging()) {
|
|
675
|
+
this.platform.log.info(String(...log));
|
|
676
|
+
}
|
|
677
|
+
}
|
|
678
|
+
warnLog(...log) {
|
|
679
|
+
if (this.enablingDeviceLogging()) {
|
|
680
|
+
this.platform.log.warn(String(...log));
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
errorLog(...log) {
|
|
684
|
+
if (this.enablingDeviceLogging()) {
|
|
685
|
+
this.platform.log.error(String(...log));
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
debugLog(...log) {
|
|
689
|
+
if (this.enablingDeviceLogging()) {
|
|
690
|
+
if (this.deviceLogging === 'debug') {
|
|
691
|
+
this.platform.log.info('[DEBUG]', String(...log));
|
|
692
|
+
}
|
|
693
|
+
else {
|
|
694
|
+
this.platform.log.debug(String(...log));
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
}
|
|
698
|
+
enablingDeviceLogging() {
|
|
699
|
+
return this.deviceLogging === 'debug' || this.deviceLogging === 'standard';
|
|
700
|
+
}
|
|
634
701
|
}
|
|
635
702
|
exports.Curtain = Curtain;
|
|
636
703
|
//# sourceMappingURL=curtains.js.map
|