@switchbot/homebridge-switchbot 2.8.2-beta.0 → 2.8.2-beta.2
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/config.schema.json +1 -1
- package/dist/device/blindtilt.d.ts +2 -1
- package/dist/device/blindtilt.d.ts.map +1 -1
- package/dist/device/blindtilt.js +26 -14
- package/dist/device/blindtilt.js.map +1 -1
- package/dist/device/bot.d.ts +2 -1
- package/dist/device/bot.d.ts.map +1 -1
- package/dist/device/bot.js +19 -15
- package/dist/device/bot.js.map +1 -1
- package/dist/device/ceilinglight.d.ts +2 -1
- package/dist/device/ceilinglight.d.ts.map +1 -1
- package/dist/device/ceilinglight.js +16 -14
- package/dist/device/ceilinglight.js.map +1 -1
- package/dist/device/colorbulb.d.ts +2 -1
- package/dist/device/colorbulb.d.ts.map +1 -1
- package/dist/device/colorbulb.js +21 -14
- package/dist/device/colorbulb.js.map +1 -1
- package/dist/device/contact.d.ts +2 -1
- package/dist/device/contact.d.ts.map +1 -1
- package/dist/device/contact.js +16 -14
- package/dist/device/contact.js.map +1 -1
- package/dist/device/curtain.d.ts +2 -1
- package/dist/device/curtain.d.ts.map +1 -1
- package/dist/device/curtain.js +19 -14
- package/dist/device/curtain.js.map +1 -1
- package/dist/device/hub.d.ts +2 -1
- package/dist/device/hub.d.ts.map +1 -1
- package/dist/device/hub.js +16 -14
- package/dist/device/hub.js.map +1 -1
- package/dist/device/humidifier.d.ts +5 -4
- package/dist/device/humidifier.d.ts.map +1 -1
- package/dist/device/humidifier.js +16 -14
- package/dist/device/humidifier.js.map +1 -1
- package/dist/device/iosensor.d.ts +2 -1
- package/dist/device/iosensor.d.ts.map +1 -1
- package/dist/device/iosensor.js +16 -14
- package/dist/device/iosensor.js.map +1 -1
- package/dist/device/lightstrip.d.ts +2 -1
- package/dist/device/lightstrip.d.ts.map +1 -1
- package/dist/device/lightstrip.js +21 -14
- package/dist/device/lightstrip.js.map +1 -1
- package/dist/device/lock.d.ts +2 -1
- package/dist/device/lock.d.ts.map +1 -1
- package/dist/device/lock.js +16 -14
- package/dist/device/lock.js.map +1 -1
- package/dist/device/meter.d.ts +3 -2
- package/dist/device/meter.d.ts.map +1 -1
- package/dist/device/meter.js +35 -26
- package/dist/device/meter.js.map +1 -1
- package/dist/device/meterplus.d.ts +3 -2
- package/dist/device/meterplus.d.ts.map +1 -1
- package/dist/device/meterplus.js +33 -23
- package/dist/device/meterplus.js.map +1 -1
- package/dist/device/motion.d.ts +5 -4
- package/dist/device/motion.d.ts.map +1 -1
- package/dist/device/motion.js +16 -14
- package/dist/device/motion.js.map +1 -1
- package/dist/device/plug.d.ts +2 -1
- package/dist/device/plug.d.ts.map +1 -1
- package/dist/device/plug.js +17 -14
- package/dist/device/plug.js.map +1 -1
- package/dist/device/robotvacuumcleaner.d.ts +2 -1
- package/dist/device/robotvacuumcleaner.d.ts.map +1 -1
- package/dist/device/robotvacuumcleaner.js +19 -13
- package/dist/device/robotvacuumcleaner.js.map +1 -1
- package/dist/irdevice/airconditioner.d.ts +7 -19
- package/dist/irdevice/airconditioner.d.ts.map +1 -1
- package/dist/irdevice/airconditioner.js +36 -18
- package/dist/irdevice/airconditioner.js.map +1 -1
- package/dist/irdevice/airpurifier.d.ts +4 -7
- package/dist/irdevice/airpurifier.d.ts.map +1 -1
- package/dist/irdevice/airpurifier.js +26 -12
- package/dist/irdevice/airpurifier.js.map +1 -1
- package/dist/irdevice/camera.d.ts +4 -7
- package/dist/irdevice/camera.d.ts.map +1 -1
- package/dist/irdevice/camera.js +24 -12
- package/dist/irdevice/camera.js.map +1 -1
- package/dist/irdevice/fan.d.ts +4 -7
- package/dist/irdevice/fan.d.ts.map +1 -1
- package/dist/irdevice/fan.js +23 -12
- package/dist/irdevice/fan.js.map +1 -1
- package/dist/irdevice/light.d.ts +4 -7
- package/dist/irdevice/light.d.ts.map +1 -1
- package/dist/irdevice/light.js +24 -12
- package/dist/irdevice/light.js.map +1 -1
- package/dist/irdevice/other.d.ts +4 -7
- package/dist/irdevice/other.d.ts.map +1 -1
- package/dist/irdevice/other.js +24 -12
- package/dist/irdevice/other.js.map +1 -1
- package/dist/irdevice/tv.d.ts +5 -10
- package/dist/irdevice/tv.d.ts.map +1 -1
- package/dist/irdevice/tv.js +27 -14
- package/dist/irdevice/tv.js.map +1 -1
- package/dist/irdevice/vacuumcleaner.d.ts +4 -7
- package/dist/irdevice/vacuumcleaner.d.ts.map +1 -1
- package/dist/irdevice/vacuumcleaner.js +24 -12
- package/dist/irdevice/vacuumcleaner.js.map +1 -1
- package/dist/irdevice/waterheater.d.ts +6 -16
- package/dist/irdevice/waterheater.d.ts.map +1 -1
- package/dist/irdevice/waterheater.js +28 -16
- package/dist/irdevice/waterheater.js.map +1 -1
- package/package.json +2 -2
- package/src/device/blindtilt.ts +28 -16
- package/src/device/bot.ts +21 -15
- package/src/device/ceilinglight.ts +20 -14
- package/src/device/colorbulb.ts +23 -14
- package/src/device/contact.ts +20 -14
- package/src/device/curtain.ts +22 -15
- package/src/device/hub.ts +20 -14
- package/src/device/humidifier.ts +23 -17
- package/src/device/iosensor.ts +20 -14
- package/src/device/lightstrip.ts +23 -14
- package/src/device/lock.ts +20 -14
- package/src/device/meter.ts +39 -27
- package/src/device/meterplus.ts +38 -26
- package/src/device/motion.ts +24 -23
- package/src/device/plug.ts +20 -14
- package/src/device/robotvacuumcleaner.ts +21 -13
- package/src/irdevice/airconditioner.ts +36 -18
- package/src/irdevice/airpurifier.ts +26 -12
- package/src/irdevice/camera.ts +24 -12
- package/src/irdevice/fan.ts +23 -12
- package/src/irdevice/light.ts +24 -12
- package/src/irdevice/other.ts +24 -12
- package/src/irdevice/tv.ts +27 -14
- package/src/irdevice/vacuumcleaner.ts +24 -12
- package/src/irdevice/waterheater.ts +28 -16
|
@@ -12,6 +12,7 @@ export declare class WaterHeater {
|
|
|
12
12
|
device: irdevice & irDevicesConfig;
|
|
13
13
|
valveService: Service;
|
|
14
14
|
Active: CharacteristicValue;
|
|
15
|
+
FirmwareRevision: CharacteristicValue;
|
|
15
16
|
deviceLogging: string;
|
|
16
17
|
disablePushOn?: boolean;
|
|
17
18
|
disablePushOff?: boolean;
|
|
@@ -27,12 +28,8 @@ export declare class WaterHeater {
|
|
|
27
28
|
pushWaterHeaterOffChanges(): Promise<void>;
|
|
28
29
|
pushChanges(bodyChange: any): Promise<void>;
|
|
29
30
|
updateHomeKitCharacteristics(): Promise<void>;
|
|
30
|
-
disablePushOnChanges(
|
|
31
|
-
|
|
32
|
-
}): Promise<void>;
|
|
33
|
-
disablePushOffChanges({ device }: {
|
|
34
|
-
device: irdevice & irDevicesConfig;
|
|
35
|
-
}): Promise<void>;
|
|
31
|
+
disablePushOnChanges(device: irdevice & irDevicesConfig): Promise<void>;
|
|
32
|
+
disablePushOffChanges(device: irdevice & irDevicesConfig): Promise<void>;
|
|
36
33
|
commandType(): Promise<string>;
|
|
37
34
|
commandOn(): Promise<string>;
|
|
38
35
|
commandOff(): Promise<string>;
|
|
@@ -40,17 +37,10 @@ export declare class WaterHeater {
|
|
|
40
37
|
apiError({ e }: {
|
|
41
38
|
e: any;
|
|
42
39
|
}): Promise<void>;
|
|
43
|
-
|
|
44
|
-
accessory: PlatformAccessory;
|
|
45
|
-
device: irdevice & irDevicesConfig;
|
|
46
|
-
}): string;
|
|
40
|
+
setFirmwareRevision(accessory: PlatformAccessory, device: irdevice & irDevicesConfig): string;
|
|
47
41
|
context(): Promise<void>;
|
|
48
|
-
config(
|
|
49
|
-
|
|
50
|
-
}): Promise<void>;
|
|
51
|
-
logs({ device }: {
|
|
52
|
-
device: irdevice & irDevicesConfig;
|
|
53
|
-
}): Promise<void>;
|
|
42
|
+
config(device: irdevice & irDevicesConfig): Promise<void>;
|
|
43
|
+
logs(device: irdevice & irDevicesConfig): Promise<void>;
|
|
54
44
|
/**
|
|
55
45
|
* Logging for Device
|
|
56
46
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"waterheater.d.ts","sourceRoot":"","sources":["../../src/irdevice/waterheater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAW,eAAe,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEjE;;;;GAIG;AACH,qBAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"waterheater.d.ts","sourceRoot":"","sources":["../../src/irdevice/waterheater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAW,eAAe,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEjE;;;;GAIG;AACH,qBAAa,WAAW;IAcpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,SAAS;IACV,MAAM,EAAE,QAAQ,GAAG,eAAe;IAd3C,YAAY,EAAG,OAAO,CAAC;IAGvB,MAAM,EAAG,mBAAmB,CAAC;IAC7B,gBAAgB,EAAG,mBAAmB,CAAC;IAGvC,aAAa,EAAG,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;gBAGN,QAAQ,EAAE,iBAAiB,EACpC,SAAS,EAAE,iBAAiB,EAC7B,MAAM,EAAE,QAAQ,GAAG,eAAe;IAoCrC,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAa1D;;;;;OAKG;IACG,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBzC,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB1C,WAAW,CAAC,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAwC3C,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB7C,oBAAoB,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAQvE,qBAAqB,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxE,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAU9B,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAU5B,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAU7B,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwC7C,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE;QAAE,CAAC,EAAE,GAAG,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,MAAM;IAiBvF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQxB,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCzD,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB7D;;OAEG;IACH,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM5B,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM5B,YAAY,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAQjC,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM7B,aAAa,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAQlC,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAU7B,qBAAqB,IAAI,OAAO;CAGjC"}
|
|
@@ -14,20 +14,20 @@ class WaterHeater {
|
|
|
14
14
|
this.accessory = accessory;
|
|
15
15
|
this.device = device;
|
|
16
16
|
// default placeholders
|
|
17
|
-
this.logs(
|
|
17
|
+
this.logs(device);
|
|
18
18
|
this.context();
|
|
19
|
-
this.disablePushOnChanges(
|
|
20
|
-
this.disablePushOffChanges(
|
|
21
|
-
this.config(
|
|
19
|
+
this.disablePushOnChanges(device);
|
|
20
|
+
this.disablePushOffChanges(device);
|
|
21
|
+
this.config(device);
|
|
22
22
|
// set accessory information
|
|
23
23
|
accessory
|
|
24
24
|
.getService(this.platform.Service.AccessoryInformation)
|
|
25
25
|
.setCharacteristic(this.platform.Characteristic.Manufacturer, 'SwitchBot')
|
|
26
26
|
.setCharacteristic(this.platform.Characteristic.Model, device.remoteType)
|
|
27
27
|
.setCharacteristic(this.platform.Characteristic.SerialNumber, device.deviceId)
|
|
28
|
-
.setCharacteristic(this.platform.Characteristic.FirmwareRevision, this.
|
|
28
|
+
.setCharacteristic(this.platform.Characteristic.FirmwareRevision, this.setFirmwareRevision(accessory, device))
|
|
29
29
|
.getCharacteristic(this.platform.Characteristic.FirmwareRevision)
|
|
30
|
-
.updateValue(this.
|
|
30
|
+
.updateValue(this.setFirmwareRevision(accessory, device));
|
|
31
31
|
// get the Television service if it exists, otherwise create a new Television service
|
|
32
32
|
// you can create multiple services for each accessory
|
|
33
33
|
(this.valveService = accessory.getService(this.platform.Service.Valve) || accessory.addService(this.platform.Service.Valve)),
|
|
@@ -126,6 +126,7 @@ class WaterHeater {
|
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
128
|
async updateHomeKitCharacteristics() {
|
|
129
|
+
// Active
|
|
129
130
|
if (this.Active === undefined) {
|
|
130
131
|
this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Active: ${this.Active}`);
|
|
131
132
|
}
|
|
@@ -134,8 +135,19 @@ class WaterHeater {
|
|
|
134
135
|
this.valveService?.updateCharacteristic(this.platform.Characteristic.Active, this.Active);
|
|
135
136
|
this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} updateCharacteristic Active: ${this.Active}`);
|
|
136
137
|
}
|
|
138
|
+
// FirmwareRevision
|
|
139
|
+
if (this.FirmwareRevision === undefined) {
|
|
140
|
+
this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} FirmwareRevision: ${this.FirmwareRevision}`);
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
this.accessory.context.FirmwareRevision = this.FirmwareRevision;
|
|
144
|
+
this.accessory.getService(this.platform.Service.AccessoryInformation)
|
|
145
|
+
.updateCharacteristic(this.platform.Characteristic.FirmwareRevision, this.FirmwareRevision);
|
|
146
|
+
this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} `
|
|
147
|
+
+ `updateCharacteristic FirmwareRevision: ${this.FirmwareRevision}`);
|
|
148
|
+
}
|
|
137
149
|
}
|
|
138
|
-
async disablePushOnChanges(
|
|
150
|
+
async disablePushOnChanges(device) {
|
|
139
151
|
if (device.disablePushOn === undefined) {
|
|
140
152
|
this.disablePushOn = false;
|
|
141
153
|
}
|
|
@@ -143,7 +155,7 @@ class WaterHeater {
|
|
|
143
155
|
this.disablePushOn = device.disablePushOn;
|
|
144
156
|
}
|
|
145
157
|
}
|
|
146
|
-
async disablePushOffChanges(
|
|
158
|
+
async disablePushOffChanges(device) {
|
|
147
159
|
if (device.disablePushOff === undefined) {
|
|
148
160
|
this.disablePushOff = false;
|
|
149
161
|
}
|
|
@@ -217,21 +229,21 @@ class WaterHeater {
|
|
|
217
229
|
async apiError({ e }) {
|
|
218
230
|
this.valveService.updateCharacteristic(this.platform.Characteristic.Active, e);
|
|
219
231
|
}
|
|
220
|
-
|
|
221
|
-
let FirmwareRevision;
|
|
232
|
+
setFirmwareRevision(accessory, device) {
|
|
222
233
|
this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName}` + ` accessory.context.FirmwareRevision: ${accessory.context.FirmwareRevision}`);
|
|
223
234
|
this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} device.firmware: ${device.firmware}`);
|
|
224
235
|
this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} this.platform.version: ${this.platform.version}`);
|
|
225
236
|
if (accessory.context.FirmwareRevision) {
|
|
226
|
-
FirmwareRevision = accessory.context.FirmwareRevision;
|
|
237
|
+
this.FirmwareRevision = accessory.context.FirmwareRevision;
|
|
227
238
|
}
|
|
228
239
|
else if (device.firmware) {
|
|
229
|
-
FirmwareRevision = device.firmware;
|
|
240
|
+
this.FirmwareRevision = device.firmware;
|
|
230
241
|
}
|
|
231
242
|
else {
|
|
232
|
-
FirmwareRevision = this.platform.version;
|
|
243
|
+
this.FirmwareRevision = this.platform.version;
|
|
233
244
|
}
|
|
234
|
-
|
|
245
|
+
this.debugWarnLog(`${this.device.remoteType}: ${this.accessory.displayName} setFirmwareRevision: ${this.FirmwareRevision}`);
|
|
246
|
+
return JSON.stringify(this.FirmwareRevision);
|
|
235
247
|
}
|
|
236
248
|
async context() {
|
|
237
249
|
if (this.Active === undefined) {
|
|
@@ -241,7 +253,7 @@ class WaterHeater {
|
|
|
241
253
|
this.Active = this.accessory.context.Active;
|
|
242
254
|
}
|
|
243
255
|
}
|
|
244
|
-
async config(
|
|
256
|
+
async config(device) {
|
|
245
257
|
let config = {};
|
|
246
258
|
if (device.irwh) {
|
|
247
259
|
config = device.irwh;
|
|
@@ -274,7 +286,7 @@ class WaterHeater {
|
|
|
274
286
|
this.debugWarnLog({ log: [`${this.device.remoteType}: ${this.accessory.displayName} Config: ${JSON.stringify(config)}`] });
|
|
275
287
|
}
|
|
276
288
|
}
|
|
277
|
-
async logs(
|
|
289
|
+
async logs(device) {
|
|
278
290
|
if (this.platform.debugMode) {
|
|
279
291
|
this.deviceLogging = this.accessory.context.logging = 'debugMode';
|
|
280
292
|
this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Using Debug Mode Logging: ${this.deviceLogging}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"waterheater.js","sourceRoot":"","sources":["../../src/irdevice/waterheater.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"waterheater.js","sourceRoot":"","sources":["../../src/irdevice/waterheater.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"displayName": "Homebridge SwitchBot",
|
|
3
3
|
"name": "@switchbot/homebridge-switchbot",
|
|
4
|
-
"version": "2.8.2-beta.
|
|
4
|
+
"version": "2.8.2-beta.2",
|
|
5
5
|
"description": "The [Homebridge](https://homebridge.io) SwitchBot plugin allows you to access your [SwitchBot](https://www.switch-bot.com) device(s) from HomeKit.",
|
|
6
6
|
"author": "SwitchBot <support@wondertechlabs.com> (https://github.com/SwitchBot)",
|
|
7
7
|
"license": "ISC",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
72
|
"@types/crypto-js": "^4.1.1",
|
|
73
|
-
"@types/node": "^20.5.
|
|
73
|
+
"@types/node": "^20.5.6",
|
|
74
74
|
"@typescript-eslint/eslint-plugin": "^6.4.1",
|
|
75
75
|
"@typescript-eslint/parser": "^6.4.1",
|
|
76
76
|
"eslint": "^8.47.0",
|
package/src/device/blindtilt.ts
CHANGED
|
@@ -29,6 +29,7 @@ export class BlindTilt {
|
|
|
29
29
|
TargetPosition!: CharacteristicValue;
|
|
30
30
|
CurrentPosition!: CharacteristicValue;
|
|
31
31
|
StatusLowBattery!: CharacteristicValue;
|
|
32
|
+
FirmwareRevision!: CharacteristicValue;
|
|
32
33
|
CurrentAmbientLightLevel?: CharacteristicValue;
|
|
33
34
|
TargetHorizontalTiltAngle!: CharacteristicValue;
|
|
34
35
|
CurrentHorizontalTiltAngle!: CharacteristicValue;
|
|
@@ -114,9 +115,9 @@ export class BlindTilt {
|
|
|
114
115
|
.setCharacteristic(this.platform.Characteristic.Manufacturer, 'SwitchBot')
|
|
115
116
|
.setCharacteristic(this.platform.Characteristic.Model, 'W2701600')
|
|
116
117
|
.setCharacteristic(this.platform.Characteristic.SerialNumber, device.deviceId)
|
|
117
|
-
.setCharacteristic(this.platform.Characteristic.FirmwareRevision, this.
|
|
118
|
+
.setCharacteristic(this.platform.Characteristic.FirmwareRevision, this.setFirmwareRevision(accessory, device))
|
|
118
119
|
.getCharacteristic(this.platform.Characteristic.FirmwareRevision)
|
|
119
|
-
.updateValue(this.
|
|
120
|
+
.updateValue(this.setFirmwareRevision(accessory, device));
|
|
120
121
|
|
|
121
122
|
// get the WindowCovering service if it exists, otherwise create a new WindowCovering service
|
|
122
123
|
// you can create multiple services for each accessory
|
|
@@ -428,6 +429,9 @@ export class BlindTilt {
|
|
|
428
429
|
}
|
|
429
430
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} CurrentAmbientLightLevel: ${this.CurrentAmbientLightLevel}`);
|
|
430
431
|
}
|
|
432
|
+
|
|
433
|
+
// FirmwareRevision
|
|
434
|
+
this.FirmwareRevision = JSON.stringify(this.OpenAPI_FirmwareRevision);
|
|
431
435
|
}
|
|
432
436
|
|
|
433
437
|
async refreshStatus(): Promise<void> {
|
|
@@ -782,7 +786,7 @@ export class BlindTilt {
|
|
|
782
786
|
|
|
783
787
|
async updateHomeKitCharacteristics(): Promise<void> {
|
|
784
788
|
await this.setMinMax();
|
|
785
|
-
|
|
789
|
+
// CurrentHorizontalTiltAngle
|
|
786
790
|
if (this.mappingMode === BlindTiltMappingMode.UseTiltForDirection) {
|
|
787
791
|
if (this.CurrentHorizontalTiltAngle === undefined || Number.isNaN(this.CurrentHorizontalTiltAngle)) {
|
|
788
792
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} CurrentHorizontalTiltAngle: ${this.CurrentHorizontalTiltAngle}`);
|
|
@@ -799,7 +803,7 @@ export class BlindTilt {
|
|
|
799
803
|
updateCharacteristic CurrentHorizontalTiltAngle: ${this.CurrentHorizontalTiltAngle}`);
|
|
800
804
|
}
|
|
801
805
|
}
|
|
802
|
-
|
|
806
|
+
// CurrentPosition
|
|
803
807
|
if (this.CurrentPosition === undefined || Number.isNaN(this.CurrentPosition)) {
|
|
804
808
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} CurrentPosition: ${this.CurrentPosition}`);
|
|
805
809
|
} else {
|
|
@@ -810,6 +814,7 @@ export class BlindTilt {
|
|
|
810
814
|
this.windowCoveringService.updateCharacteristic(this.platform.Characteristic.CurrentPosition, Number(this.CurrentPosition));
|
|
811
815
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} updateCharacteristic CurrentPosition: ${this.CurrentPosition}`);
|
|
812
816
|
}
|
|
817
|
+
// PositionState
|
|
813
818
|
if (this.PositionState === undefined) {
|
|
814
819
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} PositionState: ${this.PositionState}`);
|
|
815
820
|
} else {
|
|
@@ -820,6 +825,7 @@ export class BlindTilt {
|
|
|
820
825
|
this.windowCoveringService.updateCharacteristic(this.platform.Characteristic.PositionState, Number(this.PositionState));
|
|
821
826
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} updateCharacteristic PositionState: ${this.PositionState}`);
|
|
822
827
|
}
|
|
828
|
+
// TargetPosition
|
|
823
829
|
if (this.TargetPosition === undefined || Number.isNaN(this.TargetPosition)) {
|
|
824
830
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} TargetPosition: ${this.TargetPosition}`);
|
|
825
831
|
} else {
|
|
@@ -830,6 +836,7 @@ export class BlindTilt {
|
|
|
830
836
|
this.windowCoveringService.updateCharacteristic(this.platform.Characteristic.TargetPosition, Number(this.TargetPosition));
|
|
831
837
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} updateCharacteristic TargetPosition: ${this.TargetPosition}`);
|
|
832
838
|
}
|
|
839
|
+
// CurrentAmbientLightLevel
|
|
833
840
|
if (!this.device.blindTilt?.hide_lightsensor) {
|
|
834
841
|
if (this.CurrentAmbientLightLevel === undefined || Number.isNaN(this.CurrentAmbientLightLevel)) {
|
|
835
842
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} CurrentAmbientLightLevel: ${this.CurrentAmbientLightLevel}`);
|
|
@@ -845,6 +852,7 @@ export class BlindTilt {
|
|
|
845
852
|
);
|
|
846
853
|
}
|
|
847
854
|
}
|
|
855
|
+
// BatteryLevel
|
|
848
856
|
if (this.BatteryLevel === undefined) {
|
|
849
857
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} BatteryLevel: ${this.BatteryLevel}`);
|
|
850
858
|
} else {
|
|
@@ -855,6 +863,7 @@ export class BlindTilt {
|
|
|
855
863
|
this.batteryService?.updateCharacteristic(this.platform.Characteristic.BatteryLevel, this.BatteryLevel);
|
|
856
864
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} updateCharacteristic BatteryLevel: ${this.BatteryLevel}`);
|
|
857
865
|
}
|
|
866
|
+
// StatusLowBattery
|
|
858
867
|
if (this.StatusLowBattery === undefined) {
|
|
859
868
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} StatusLowBattery: ${this.StatusLowBattery}`);
|
|
860
869
|
} else {
|
|
@@ -866,14 +875,17 @@ export class BlindTilt {
|
|
|
866
875
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} updateCharacteristic StatusLowBattery: ${this.StatusLowBattery}`);
|
|
867
876
|
}
|
|
868
877
|
// FirmwareRevision
|
|
869
|
-
if (this.
|
|
870
|
-
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} FirmwareRevision: ${this.
|
|
878
|
+
if (this.FirmwareRevision === undefined) {
|
|
879
|
+
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} FirmwareRevision: ${this.FirmwareRevision}`);
|
|
871
880
|
} else {
|
|
872
|
-
this.
|
|
881
|
+
if (this.device.mqttURL) {
|
|
882
|
+
this.mqttPublish('FirmwareRevision', this.FirmwareRevision);
|
|
883
|
+
}
|
|
884
|
+
this.accessory.context.FirmwareRevision = this.FirmwareRevision;
|
|
873
885
|
this.accessory.getService(this.platform.Service.AccessoryInformation)!
|
|
874
|
-
.updateCharacteristic(this.platform.Characteristic.FirmwareRevision, this.
|
|
886
|
+
.updateCharacteristic(this.platform.Characteristic.FirmwareRevision, this.FirmwareRevision);
|
|
875
887
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} `
|
|
876
|
-
+ `updateCharacteristic FirmwareRevision: ${this.
|
|
888
|
+
+ `updateCharacteristic FirmwareRevision: ${this.FirmwareRevision}`);
|
|
877
889
|
}
|
|
878
890
|
}
|
|
879
891
|
|
|
@@ -1107,23 +1119,23 @@ export class BlindTilt {
|
|
|
1107
1119
|
//throw new this.platform.api.hap.HapStatusError(HAPStatus.SERVICE_COMMUNICATION_FAILURE);
|
|
1108
1120
|
}
|
|
1109
1121
|
|
|
1110
|
-
|
|
1111
|
-
let FirmwareRevision: string;
|
|
1122
|
+
setFirmwareRevision(accessory: PlatformAccessory<Context>, device: device & devicesConfig): CharacteristicValue {
|
|
1112
1123
|
this.debugLog(
|
|
1113
1124
|
`${this.device.deviceType}: ${this.accessory.displayName}` + ` accessory.context.FirmwareRevision: ${accessory.context.FirmwareRevision}`,
|
|
1114
1125
|
);
|
|
1115
1126
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} device.firmware: ${device.firmware}`);
|
|
1116
1127
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} this.platform.version: ${this.platform.version}`);
|
|
1117
1128
|
if (device.firmware) {
|
|
1118
|
-
FirmwareRevision = device.firmware;
|
|
1129
|
+
this.FirmwareRevision = device.firmware;
|
|
1119
1130
|
} else if (device.version) {
|
|
1120
|
-
FirmwareRevision = JSON.stringify(device.version);
|
|
1131
|
+
this.FirmwareRevision = JSON.stringify(device.version);
|
|
1121
1132
|
} else if (accessory.context.FirmwareRevision) {
|
|
1122
|
-
FirmwareRevision = accessory.context.FirmwareRevision;
|
|
1133
|
+
this.FirmwareRevision = accessory.context.FirmwareRevision;
|
|
1123
1134
|
} else {
|
|
1124
|
-
FirmwareRevision = this.platform.version;
|
|
1135
|
+
this.FirmwareRevision = this.platform.version;
|
|
1125
1136
|
}
|
|
1126
|
-
|
|
1137
|
+
this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} setFirmwareRevision: ${this.FirmwareRevision}`);
|
|
1138
|
+
return this.FirmwareRevision;
|
|
1127
1139
|
}
|
|
1128
1140
|
|
|
1129
1141
|
async context() {
|
package/src/device/bot.ts
CHANGED
|
@@ -29,6 +29,7 @@ export class Bot {
|
|
|
29
29
|
// Characteristic Values
|
|
30
30
|
On!: CharacteristicValue;
|
|
31
31
|
BatteryLevel!: CharacteristicValue;
|
|
32
|
+
FirmwareRevision!: CharacteristicValue;
|
|
32
33
|
StatusLowBattery!: CharacteristicValue;
|
|
33
34
|
|
|
34
35
|
// OpenAPI Status
|
|
@@ -92,9 +93,9 @@ export class Bot {
|
|
|
92
93
|
.setCharacteristic(this.platform.Characteristic.Manufacturer, 'SwitchBot')
|
|
93
94
|
.setCharacteristic(this.platform.Characteristic.Model, 'SWITCHBOT-BOT-S1')
|
|
94
95
|
.setCharacteristic(this.platform.Characteristic.SerialNumber, device.deviceId!)
|
|
95
|
-
.setCharacteristic(this.platform.Characteristic.FirmwareRevision, this.
|
|
96
|
+
.setCharacteristic(this.platform.Characteristic.FirmwareRevision, this.setFirmwareRevision(accessory, device))
|
|
96
97
|
.getCharacteristic(this.platform.Characteristic.FirmwareRevision)
|
|
97
|
-
.updateValue(this.
|
|
98
|
+
.updateValue(this.setFirmwareRevision(accessory, device));
|
|
98
99
|
|
|
99
100
|
// get the service if it exists, otherwise create a new service
|
|
100
101
|
// you can create multiple services for each accessory
|
|
@@ -464,6 +465,9 @@ export class Bot {
|
|
|
464
465
|
this.BatteryLevel = 100;
|
|
465
466
|
}
|
|
466
467
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} BatteryLevel: ${this.BatteryLevel}`);
|
|
468
|
+
|
|
469
|
+
// FirmwareRevision
|
|
470
|
+
this.FirmwareRevision = JSON.stringify(this.OpenAPI_FirmwareRevision);
|
|
467
471
|
}
|
|
468
472
|
|
|
469
473
|
/**
|
|
@@ -822,6 +826,7 @@ export class Bot {
|
|
|
822
826
|
* Updates the status for each of the HomeKit Characteristics
|
|
823
827
|
*/
|
|
824
828
|
async updateHomeKitCharacteristics(): Promise<void> {
|
|
829
|
+
// State
|
|
825
830
|
if (this.device.bot?.deviceType === 'garagedoor') {
|
|
826
831
|
if (this.On === undefined) {
|
|
827
832
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} On: ${this.On}`);
|
|
@@ -1008,7 +1013,7 @@ export class Bot {
|
|
|
1008
1013
|
}
|
|
1009
1014
|
}
|
|
1010
1015
|
this.accessory.context.On = this.On;
|
|
1011
|
-
//
|
|
1016
|
+
// BatteryLevel
|
|
1012
1017
|
if (this.BatteryLevel === undefined) {
|
|
1013
1018
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} BatteryLevel: ${this.BatteryLevel}`);
|
|
1014
1019
|
} else {
|
|
@@ -1016,6 +1021,7 @@ export class Bot {
|
|
|
1016
1021
|
this.batteryService?.updateCharacteristic(this.platform.Characteristic.BatteryLevel, this.BatteryLevel);
|
|
1017
1022
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} updateCharacteristic BatteryLevel: ${this.BatteryLevel}`);
|
|
1018
1023
|
}
|
|
1024
|
+
// StatusLowBattery
|
|
1019
1025
|
if (this.StatusLowBattery === undefined) {
|
|
1020
1026
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} StatusLowBattery: ${this.StatusLowBattery}`);
|
|
1021
1027
|
} else {
|
|
@@ -1024,14 +1030,14 @@ export class Bot {
|
|
|
1024
1030
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} updateCharacteristic StatusLowBattery: ${this.StatusLowBattery}`);
|
|
1025
1031
|
}
|
|
1026
1032
|
// FirmwareRevision
|
|
1027
|
-
if (this.
|
|
1028
|
-
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} FirmwareRevision: ${this.
|
|
1033
|
+
if (this.FirmwareRevision === undefined) {
|
|
1034
|
+
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} FirmwareRevision: ${this.FirmwareRevision}`);
|
|
1029
1035
|
} else {
|
|
1030
|
-
this.accessory.context.
|
|
1036
|
+
this.accessory.context.FirmwareRevision = this.FirmwareRevision;
|
|
1031
1037
|
this.accessory.getService(this.platform.Service.AccessoryInformation)!
|
|
1032
|
-
.updateCharacteristic(this.platform.Characteristic.FirmwareRevision, this.
|
|
1038
|
+
.updateCharacteristic(this.platform.Characteristic.FirmwareRevision, this.FirmwareRevision);
|
|
1033
1039
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} `
|
|
1034
|
-
+ `updateCharacteristic FirmwareRevision: ${this.
|
|
1040
|
+
+ `updateCharacteristic FirmwareRevision: ${this.FirmwareRevision}`);
|
|
1035
1041
|
}
|
|
1036
1042
|
}
|
|
1037
1043
|
|
|
@@ -1324,23 +1330,23 @@ export class Bot {
|
|
|
1324
1330
|
this.batteryService?.updateCharacteristic(this.platform.Characteristic.StatusLowBattery, e);
|
|
1325
1331
|
}
|
|
1326
1332
|
|
|
1327
|
-
|
|
1328
|
-
let FirmwareRevision: string;
|
|
1333
|
+
setFirmwareRevision(accessory: PlatformAccessory<Context>, device: device & devicesConfig): CharacteristicValue {
|
|
1329
1334
|
this.debugLog(
|
|
1330
1335
|
`${this.device.deviceType}: ${this.accessory.displayName}` + ` accessory.context.FirmwareRevision: ${accessory.context.FirmwareRevision}`,
|
|
1331
1336
|
);
|
|
1332
1337
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} device.firmware: ${device.firmware}`);
|
|
1333
1338
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} this.platform.version: ${this.platform.version}`);
|
|
1334
1339
|
if (device.firmware) {
|
|
1335
|
-
FirmwareRevision = device.firmware;
|
|
1340
|
+
this.FirmwareRevision = device.firmware;
|
|
1336
1341
|
} else if (device.version) {
|
|
1337
|
-
FirmwareRevision = JSON.stringify(device.version);
|
|
1342
|
+
this.FirmwareRevision = JSON.stringify(device.version);
|
|
1338
1343
|
} if (accessory.context.FirmwareRevision) {
|
|
1339
|
-
FirmwareRevision = accessory.context.FirmwareRevision;
|
|
1344
|
+
this.FirmwareRevision = accessory.context.FirmwareRevision;
|
|
1340
1345
|
} else {
|
|
1341
|
-
FirmwareRevision = this.platform.version;
|
|
1346
|
+
this.FirmwareRevision = this.platform.version;
|
|
1342
1347
|
}
|
|
1343
|
-
|
|
1348
|
+
this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} setFirmwareRevision: ${this.FirmwareRevision}`);
|
|
1349
|
+
return this.FirmwareRevision;
|
|
1344
1350
|
}
|
|
1345
1351
|
|
|
1346
1352
|
async context() {
|
|
@@ -23,6 +23,7 @@ export class CeilingLight {
|
|
|
23
23
|
Saturation!: CharacteristicValue;
|
|
24
24
|
Brightness!: CharacteristicValue;
|
|
25
25
|
ColorTemperature?: CharacteristicValue;
|
|
26
|
+
FirmwareRevision!: CharacteristicValue;
|
|
26
27
|
|
|
27
28
|
// OpenAPI Status
|
|
28
29
|
OpenAPI_On: deviceStatus['power'];
|
|
@@ -88,9 +89,9 @@ export class CeilingLight {
|
|
|
88
89
|
.setCharacteristic(this.platform.Characteristic.Manufacturer, 'SwitchBot')
|
|
89
90
|
.setCharacteristic(this.platform.Characteristic.Model, this.model(device))
|
|
90
91
|
.setCharacteristic(this.platform.Characteristic.SerialNumber, device.deviceId!)
|
|
91
|
-
.setCharacteristic(this.platform.Characteristic.FirmwareRevision, this.
|
|
92
|
+
.setCharacteristic(this.platform.Characteristic.FirmwareRevision, this.setFirmwareRevision(accessory, device))
|
|
92
93
|
.getCharacteristic(this.platform.Characteristic.FirmwareRevision)
|
|
93
|
-
.updateValue(this.
|
|
94
|
+
.updateValue(this.setFirmwareRevision(accessory, device));
|
|
94
95
|
|
|
95
96
|
// get the Lightbulb service if it exists, otherwise create a new Lightbulb service
|
|
96
97
|
// you can create multiple services for each accessory
|
|
@@ -301,6 +302,9 @@ export class CeilingLight {
|
|
|
301
302
|
this.ColorTemperature = Math.max(Math.min(this.ColorTemperature, 500), 140);
|
|
302
303
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} ColorTemperature: ${this.ColorTemperature}`);
|
|
303
304
|
}
|
|
305
|
+
|
|
306
|
+
// FirmwareRevision
|
|
307
|
+
this.FirmwareRevision = JSON.stringify(this.OpenAPI_FirmwareRevision);
|
|
304
308
|
}
|
|
305
309
|
|
|
306
310
|
/**
|
|
@@ -842,15 +846,16 @@ export class CeilingLight {
|
|
|
842
846
|
this.lightBulbService.updateCharacteristic(this.platform.Characteristic.Saturation, this.Saturation);
|
|
843
847
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} updateCharacteristic Saturation: ${this.Saturation}`);
|
|
844
848
|
}
|
|
849
|
+
|
|
845
850
|
// FirmwareRevision
|
|
846
|
-
if (this.
|
|
847
|
-
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} FirmwareRevision: ${this.
|
|
851
|
+
if (this.FirmwareRevision === undefined) {
|
|
852
|
+
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} FirmwareRevision: ${this.FirmwareRevision}`);
|
|
848
853
|
} else {
|
|
849
|
-
this.accessory.context.
|
|
854
|
+
this.accessory.context.FirmwareRevision = this.FirmwareRevision;
|
|
850
855
|
this.accessory.getService(this.platform.Service.AccessoryInformation)!
|
|
851
|
-
.updateCharacteristic(this.platform.Characteristic.FirmwareRevision, this.
|
|
856
|
+
.updateCharacteristic(this.platform.Characteristic.FirmwareRevision, this.FirmwareRevision);
|
|
852
857
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} `
|
|
853
|
-
+ `updateCharacteristic FirmwareRevision: ${this.
|
|
858
|
+
+ `updateCharacteristic FirmwareRevision: ${this.FirmwareRevision}`);
|
|
854
859
|
}
|
|
855
860
|
}
|
|
856
861
|
|
|
@@ -1008,23 +1013,24 @@ export class CeilingLight {
|
|
|
1008
1013
|
this.lightBulbService.updateCharacteristic(this.platform.Characteristic.ColorTemperature, e);
|
|
1009
1014
|
}
|
|
1010
1015
|
|
|
1011
|
-
|
|
1012
|
-
|
|
1016
|
+
setFirmwareRevision(accessory: PlatformAccessory<Context>, device: device & devicesConfig): CharacteristicValue {
|
|
1017
|
+
|
|
1013
1018
|
this.debugLog(
|
|
1014
1019
|
`${this.device.deviceType}: ${this.accessory.displayName}` + ` accessory.context.FirmwareRevision: ${accessory.context.FirmwareRevision}`,
|
|
1015
1020
|
);
|
|
1016
1021
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} device.firmware: ${device.firmware}`);
|
|
1017
1022
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} this.platform.version: ${this.platform.version}`);
|
|
1018
1023
|
if (device.firmware) {
|
|
1019
|
-
FirmwareRevision = device.firmware;
|
|
1024
|
+
this.FirmwareRevision = device.firmware;
|
|
1020
1025
|
} else if (device.version) {
|
|
1021
|
-
FirmwareRevision = JSON.stringify(device.version);
|
|
1026
|
+
this.FirmwareRevision = JSON.stringify(device.version);
|
|
1022
1027
|
} else if (accessory.context.FirmwareRevision) {
|
|
1023
|
-
FirmwareRevision = accessory.context.FirmwareRevision;
|
|
1028
|
+
this.FirmwareRevision = accessory.context.FirmwareRevision;
|
|
1024
1029
|
} else {
|
|
1025
|
-
FirmwareRevision = this.platform.version;
|
|
1030
|
+
this.FirmwareRevision = this.platform.version;
|
|
1026
1031
|
}
|
|
1027
|
-
|
|
1032
|
+
this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} setFirmwareRevision: ${this.FirmwareRevision}`);
|
|
1033
|
+
return this.FirmwareRevision;
|
|
1028
1034
|
}
|
|
1029
1035
|
|
|
1030
1036
|
async context() {
|