@switchbot/homebridge-switchbot 2.5.3 → 2.6.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,81 @@
1
+ #!/bin/env node
2
+
3
+ /**
4
+ * This scripts queries the npm registry to pull out the latest version for a given tag.
5
+ */
6
+
7
+ const fs = require("fs");
8
+ const semver = require("semver");
9
+ const child_process = require("child_process");
10
+ const assert = require("assert");
11
+
12
+ const BRANCH_VERSION_PATTERN = /^([A-Za-z]*)-(\d+.\d+.\d+)$/
13
+
14
+ // Load the contents of the package.json file
15
+ const packageJSON = JSON.parse(fs.readFileSync("package.json", "utf8"));
16
+
17
+ let refArgument = process.argv[2];
18
+ let tagArgument = process.argv[3] || "latest";
19
+
20
+ if (refArgument == null) {
21
+ console.error("ref argument is missing");
22
+ console.error("Usage: npm-version-script.js <ref> [tag]");
23
+ process.exit(1);
24
+ }
25
+
26
+ /**
27
+ * Queries the NPM registry for the latest version for the provided tag.
28
+ * @param tag The tag to query for.
29
+ * @returns {string} Returns the version.
30
+ */
31
+ function getTagVersionFromNpm(tag) {
32
+ try {
33
+ return child_process.execSync(`npm info ${packageJSON.name} version --tag="${tag}"`).toString("utf8").trim();
34
+ } catch (e) {
35
+ throw e;
36
+ }
37
+ }
38
+
39
+ function desiredTargetVersion(ref) {
40
+ // ref is a GitHub action ref string
41
+ if (ref.startsWith("refs/pull/")) {
42
+ throw Error("The version script was executed inside a PR!");
43
+ }
44
+
45
+ assert(ref.startsWith("refs/heads/"))
46
+ let branchName = ref.slice("refs/heads/".length);
47
+
48
+ let results = branchName.match(BRANCH_VERSION_PATTERN);
49
+ if (results != null) {
50
+ if (results[1] !== tagArgument) {
51
+ console.warn(`The base branch name (${results[1]}) differs from the tag name ${tagArgument}`);
52
+ }
53
+
54
+ return results[2];
55
+ }
56
+
57
+ // legacy mode were we use the `betaVersion` property in the package.json
58
+ if (branchName === "beta" && packageJSON.betaVersion) {
59
+ return packageJSON.betaVersion
60
+ }
61
+
62
+ throw new Error("Malformed branch name for ref: " + ref + ". Can't derive the base version. Use a branch name like: beta-x.x.x!");
63
+ }
64
+
65
+ // derive the base version from the branch ref
66
+ const baseVersion = desiredTargetVersion(refArgument);
67
+
68
+ // query the npm registry for the latest version of the provided tag name
69
+ const latestReleasedVersion = getTagVersionFromNpm(tagArgument); // e.g. 0.7.0-beta.12
70
+ const latestReleaseBase = semver.inc(latestReleasedVersion, "patch"); // will produce 0.7.0 (removing the preid, needed for the equality check below)
71
+
72
+ let publishTag;
73
+ if (semver.eq(baseVersion, latestReleaseBase)) { // check if we are releasing another version for the latest beta
74
+ publishTag = latestReleasedVersion; // set the current latest beta to be incremented
75
+ } else {
76
+ publishTag = baseVersion; // start of with a new beta version
77
+ }
78
+
79
+ // save the package.json
80
+ packageJSON.version = publishTag;
81
+ fs.writeFileSync("package.json", JSON.stringify(packageJSON, null, 2));
package/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. This project uses [Semantic Versioning](https://semver.org/)
4
4
 
5
+ ## [Beta-Version 2.6.0](https://github.com/OpenWonderLabs/homebridge-switchbot/releases/tag/v2.6.0) (2023-04-XX)
6
+
7
+ ## What's Changed
8
+
9
+ - Add Support for Hub 2 Humidity and Temperature Sensor, Thanks [@alvie](https://github.com/alvie). [#700](https://github.com/OpenWonderLabs/homebridge-switchbot/pull/700)
10
+
11
+ **Full Changelog**: https://github.com/OpenWonderLabs/homebridge-switchbot/compare/v2.5.3....v2.6.0
12
+
5
13
  ## [Version 2.5.3](https://github.com/OpenWonderLabs/homebridge-switchbot/releases/tag/v2.5.3) (2023-04-08)
6
14
 
7
15
  ## What's Changed
@@ -96,6 +96,11 @@
96
96
  "title": "Motion Sensor",
97
97
  "enum": ["Motion Sensor"]
98
98
  },
99
+
100
+ {
101
+ "title": "Hub 2",
102
+ "enum": ["Hub 2"]
103
+ },
99
104
  {
100
105
  "title": "Contact Sensor",
101
106
  "enum": ["Contact Sensor"]
@@ -184,7 +189,7 @@
184
189
  ],
185
190
  "description": "Bluetooth (BLE) API is only available for the following Device Types: Humidifier, Meter, MeterPlus, Curtain, Bot, Motion Sensor, Contact Sensor, Plug Mini (US), Plug Mini (JP), & Color Bulb",
186
191
  "condition": {
187
- "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].deviceId && !model.options.devices[arrayIndices].hide_device);"
192
+ "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].deviceId && !model.options.devices[arrayIndices].hide_device && model.options.devices[arrayIndices].configDeviceType !== 'Hub 2');"
188
193
  }
189
194
  },
190
195
  "customBLEaddress": {
@@ -203,6 +208,25 @@
203
208
  "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].deviceId && !model.options.devices[arrayIndices].hide_device && (model.options.devices[arrayIndices].connectionType === 'BLE' || model.options.devices[arrayIndices].connectionType === 'BLE/OpenAPI'));"
204
209
  }
205
210
  },
211
+ "hidHub": {
212
+ "type": "object",
213
+ "properties": {
214
+ "hide_temperature": {
215
+ "title": "Hide Hub 2's Temperature Sensor",
216
+ "type": "boolean",
217
+ "condition": {
218
+ "functionBody": "return (model.options && model.options.devices && !model.options.devices[arrayIndices].hide_device && (model.options.devices[arrayIndices].configDeviceType === 'Hub 2') && model.options.devices[arrayIndices].deviceId);"
219
+ }
220
+ },
221
+ "hide_humidity": {
222
+ "title": "Hide Hub 2's Humidity Sensor",
223
+ "type": "boolean",
224
+ "condition": {
225
+ "functionBody": "return (model.options && model.options.devices && !model.options.devices[arrayIndices].hide_device && (model.options.devices[arrayIndices].configDeviceType === 'Hub 2') && model.options.devices[arrayIndices].deviceId);"
226
+ }
227
+ }
228
+ }
229
+ },
206
230
  "bot": {
207
231
  "type": "object",
208
232
  "properties": {
@@ -1134,6 +1158,8 @@
1134
1158
  "options.devices[].hide_device",
1135
1159
  "options.devices[].configDeviceType",
1136
1160
  "options.devices[].connectionType",
1161
+ "options.devices[].hidHub.hide_temperature",
1162
+ "options.devices[].hidHub.hide_humidity",
1137
1163
  "options.devices[].scanDuration",
1138
1164
  "options.devices[].disableCaching",
1139
1165
  "options.devices[].maxRetry",
@@ -0,0 +1,65 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { Context } from "vm";
4
+ import { IncomingMessage } from "http";
5
+ import { SwitchBotPlatform } from "../platform";
6
+ import { Service, PlatformAccessory, CharacteristicValue } from "homebridge";
7
+ import { device, devicesConfig } from "../settings";
8
+ export declare class Hub {
9
+ private readonly platform;
10
+ private accessory;
11
+ device: device & devicesConfig;
12
+ hubTemperatureSensor: Service;
13
+ hubHumiditySensor: Service;
14
+ CurrentRelativeHumidity: number;
15
+ CurrentTemperature: number;
16
+ deviceStatus: any;
17
+ set_minStep: number;
18
+ updateRate: number;
19
+ set_minLux: number;
20
+ set_maxLux: number;
21
+ scanDuration: number;
22
+ deviceLogging: string;
23
+ deviceRefreshRate: number;
24
+ private readonly BLE;
25
+ private readonly OpenAPI;
26
+ constructor(platform: SwitchBotPlatform, accessory: PlatformAccessory, device: device & devicesConfig);
27
+ /**
28
+ * Parse the device status from the SwitchBot api
29
+ */
30
+ parseStatus(): Promise<void>;
31
+ openAPIparseStatus(): Promise<void>;
32
+ refreshStatus(): Promise<void>;
33
+ openAPIRefreshStatus(): Promise<void>;
34
+ retry({ max, fn }: {
35
+ max: number;
36
+ fn: {
37
+ (): any;
38
+ (): Promise<any>;
39
+ };
40
+ }): Promise<null>;
41
+ maxRetry(): number;
42
+ /**
43
+ * Handle requests to set the value of the "Target Position" characteristic
44
+ */
45
+ updateHomeKitCharacteristics(): Promise<void>;
46
+ statusCode({ res }: {
47
+ res: IncomingMessage;
48
+ }): Promise<void>;
49
+ offlineOff(): Promise<void>;
50
+ apiError(e: any): Promise<void>;
51
+ FirmwareRevision(accessory: PlatformAccessory<Context>, device: device & devicesConfig): CharacteristicValue;
52
+ refreshRate(device: device & devicesConfig): Promise<void>;
53
+ logs(device: device & devicesConfig): Promise<void>;
54
+ /**
55
+ * Logging for Device
56
+ */
57
+ infoLog(...log: any[]): void;
58
+ warnLog(...log: any[]): void;
59
+ debugWarnLog(...log: any[]): void;
60
+ errorLog(...log: any[]): void;
61
+ debugErrorLog(...log: any[]): void;
62
+ debugLog(...log: any[]): void;
63
+ enablingDeviceLogging(): boolean;
64
+ }
65
+ //# sourceMappingURL=hub.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../../src/device/hub.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAGvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,aAAa,EAA0B,MAAM,aAAa,CAAC;AAG5E,qBAAa,GAAG;IAyBF,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAAqB,OAAO,CAAC,SAAS;IAA4B,MAAM,EAAE,MAAM,GAAG,aAAa;IAvBrI,oBAAoB,EAAE,OAAO,CAAC;IAC9B,iBAAiB,EAAE,OAAO,CAAC;IAG3B,uBAAuB,EAAG,MAAM,CAAC;IACjC,kBAAkB,EAAG,MAAM,CAAC;IAG5B,YAAY,EAAG,GAAG,CAAC;IAGnB,WAAW,EAAG,MAAM,CAAC;IACrB,UAAU,EAAG,MAAM,CAAC;IACpB,UAAU,EAAG,MAAM,CAAC;IACpB,UAAU,EAAG,MAAM,CAAC;IACpB,YAAY,EAAG,MAAM,CAAC;IACtB,aAAa,EAAG,MAAM,CAAC;IACvB,iBAAiB,EAAG,MAAM,CAAC;IAG3B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAwF;IAC5G,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4F;gBAEvF,QAAQ,EAAE,iBAAiB,EAAU,SAAS,EAAE,iBAAiB,EAAS,MAAM,EAAE,MAAM,GAAG,aAAa;IA+FrI;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAW5B,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQnC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAS9B,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAwDrC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE;YAAE,IAAI,GAAG,CAAC;YAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAA;SAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3F,QAAQ,IAAI,MAAM;IAQlB;;OAEG;IAEG,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IAM7C,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE;QAAE,GAAG,EAAE,eAAe,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC5D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,QAAQ,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrC,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,mBAAmB;IAiBtG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB1D,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBzD;;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"}
@@ -0,0 +1,352 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Hub = void 0;
7
+ const https_1 = __importDefault(require("https"));
8
+ const crypto_1 = __importDefault(require("crypto"));
9
+ const rxjs_1 = require("rxjs");
10
+ const super_stringify_1 = __importDefault(require("super-stringify"));
11
+ const settings_1 = require("../settings");
12
+ const utils_1 = require("../utils");
13
+ class Hub {
14
+ constructor(platform, accessory, device) {
15
+ this.platform = platform;
16
+ this.accessory = accessory;
17
+ this.device = device;
18
+ // Connection
19
+ this.BLE = this.device.connectionType === "BLE" || this.device.connectionType === "BLE/OpenAPI";
20
+ this.OpenAPI = this.device.connectionType === "OpenAPI" || this.device.connectionType === "BLE/OpenAPI";
21
+ // default placeholders
22
+ this.logs(device);
23
+ this.refreshRate(device);
24
+ this.CurrentRelativeHumidity = accessory.context.CurrentRelativeHumidity;
25
+ this.CurrentTemperature = accessory.context.CurrentTemperature;
26
+ // Retrieve initial values and updateHomekit
27
+ this.refreshStatus();
28
+ // set accessory information
29
+ accessory
30
+ .getService(this.platform.Service.AccessoryInformation)
31
+ .setCharacteristic(this.platform.Characteristic.Manufacturer, "SwitchBot")
32
+ .setCharacteristic(this.platform.Characteristic.Model, accessory.context.model)
33
+ .setCharacteristic(this.platform.Characteristic.SerialNumber, device.deviceId)
34
+ .setCharacteristic(this.platform.Characteristic.FirmwareRevision, this.FirmwareRevision(accessory, device))
35
+ .getCharacteristic(this.platform.Characteristic.FirmwareRevision)
36
+ .updateValue(this.FirmwareRevision(accessory, device));
37
+ // get the WindowCovering service if it exists, otherwise create a new WindowCovering service
38
+ // you can create multiple services for each accessory
39
+ (this.hubTemperatureSensor =
40
+ accessory.getService(this.platform.Service.TemperatureSensor) || accessory.addService(this.platform.Service.TemperatureSensor)),
41
+ `${device.deviceName} ${device.deviceType}`;
42
+ (this.hubHumiditySensor =
43
+ accessory.getService(this.platform.Service.HumiditySensor) || accessory.addService(this.platform.Service.HumiditySensor)),
44
+ `${device.deviceName} ${device.deviceType}`;
45
+ // To avoid "Cannot add a Service with the same UUID another Service without also defining a unique 'subtype' property." error,
46
+ // when creating multiple services of the same type, you need to use the following syntax to specify a name and subtype id:
47
+ // accessory.getService('NAME') ?? accessory.addService(this.platform.Service.WindowCovering, 'NAME', 'USER_DEFINED_SUBTYPE');
48
+ // set the service name, this is what is displayed as the default name on the Home app
49
+ // in this example we are using the name we stored in the `accessory.context` in the `discoverDevices` method.
50
+ this.hubTemperatureSensor.setCharacteristic(this.platform.Characteristic.Name, accessory.displayName);
51
+ if (!this.hubTemperatureSensor.testCharacteristic(this.platform.Characteristic.ConfiguredName)) {
52
+ this.hubTemperatureSensor.addCharacteristic(this.platform.Characteristic.ConfiguredName, accessory.displayName);
53
+ }
54
+ this.hubHumiditySensor.setCharacteristic(this.platform.Characteristic.Name, accessory.displayName);
55
+ if (!this.hubHumiditySensor.testCharacteristic(this.platform.Characteristic.ConfiguredName)) {
56
+ this.hubHumiditySensor.addCharacteristic(this.platform.Characteristic.ConfiguredName, accessory.displayName);
57
+ }
58
+ // each service must implement at-minimum the "required characteristics" for the given service type
59
+ // see https://developers.homebridge.io/#/service/WindowCovering
60
+ // console.log(this.hubHumiditySensor);
61
+ // Humidity Sensor Service
62
+ if (device.hub?.hide_humidity) {
63
+ this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Removing Humidity Sensor Service`);
64
+ this.hubHumiditySensor = this.hubHumiditySensor.setCharacteristic(this.platform.Characteristic.CurrentRelativeHumidity, false);
65
+ accessory.removeService(this.hubHumiditySensor);
66
+ }
67
+ else if (!this.hubHumiditySensor) {
68
+ this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Add Humidity Sensor Service`);
69
+ (this.hubHumiditySensor =
70
+ accessory.getService(this.platform.Service.HumiditySensor) || accessory.addService(this.platform.Service.HumiditySensor)),
71
+ `${device.deviceName} ${device.deviceType}`;
72
+ this.hubHumiditySensor.setCharacteristic(this.platform.Characteristic.Name, `${accessory.displayName} Humidity Sensor`);
73
+ this.hubHumiditySensor.setCharacteristic(this.platform.Characteristic.ConfiguredName, `${accessory.displayName} Humidity Sensor`);
74
+ }
75
+ else {
76
+ this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Humidity Sensor Service Not Added`);
77
+ }
78
+ // Temperature Sensor Service
79
+ if (device.hub?.hide_temperature) {
80
+ this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Removing Temperature Sensor Service`);
81
+ this.hubTemperatureSensor = this.hubTemperatureSensor.setCharacteristic(this.platform.Characteristic.CurrentTemperature, false);
82
+ accessory.removeService(this.hubTemperatureSensor);
83
+ }
84
+ else if (!this.hubTemperatureSensor) {
85
+ this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Add Temperature Sensor Service`);
86
+ (this.hubTemperatureSensor =
87
+ accessory.getService(this.platform.Service.TemperatureSensor) || accessory.addService(this.platform.Service.TemperatureSensor)),
88
+ `${device.deviceName} ${device.deviceType}`;
89
+ this.hubTemperatureSensor.setCharacteristic(this.platform.Characteristic.Name, `${accessory.displayName} Temperature Sensor`);
90
+ this.hubTemperatureSensor.setCharacteristic(this.platform.Characteristic.ConfiguredName, `${accessory.displayName} Temperature Sensor`);
91
+ }
92
+ else {
93
+ this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Temperature Sensor Service Not Added`);
94
+ }
95
+ // Update Homekit
96
+ this.updateHomeKitCharacteristics();
97
+ // Start an update interval
98
+ (0, rxjs_1.interval)(this.deviceRefreshRate * 1000).subscribe(async () => {
99
+ await this.refreshStatus();
100
+ });
101
+ }
102
+ /**
103
+ * Parse the device status from the SwitchBot api
104
+ */
105
+ async parseStatus() {
106
+ if (this.OpenAPI && this.platform.config.credentials?.token) {
107
+ await this.openAPIparseStatus();
108
+ }
109
+ else {
110
+ await this.offlineOff();
111
+ this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} Connection Type:` + ` ${this.device.connectionType}, parseStatus will not happen.`);
112
+ }
113
+ }
114
+ async openAPIparseStatus() {
115
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} openAPIparseStatus`);
116
+ this.infoLog(`update temperature and humidity for ${this.accessory.displayName}`);
117
+ // this.infoLog(`temp: ${this.CurrentTemperature}, humidity: ${this.CurrentRelativeHumidity}`);
118
+ this.hubTemperatureSensor.setCharacteristic(this.platform.Characteristic.CurrentTemperature, this.CurrentTemperature);
119
+ this.hubHumiditySensor.setCharacteristic(this.platform.Characteristic.CurrentRelativeHumidity, this.CurrentRelativeHumidity);
120
+ }
121
+ async refreshStatus() {
122
+ if (this.OpenAPI && this.platform.config.credentials?.token) {
123
+ await this.openAPIRefreshStatus();
124
+ }
125
+ else {
126
+ await this.offlineOff();
127
+ this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} Connection Type: OpenAPI, refreshStatus will not happen.`);
128
+ }
129
+ }
130
+ async openAPIRefreshStatus() {
131
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} openAPIRefreshStatus`);
132
+ try {
133
+ const t = Date.now();
134
+ const nonce = "requestID";
135
+ const data = this.platform.config.credentials?.token + t + nonce;
136
+ const signTerm = crypto_1.default.createHmac("sha256", this.platform.config.credentials?.secret).update(Buffer.from(data, "utf-8")).digest();
137
+ const sign = signTerm.toString("base64");
138
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} sign: ${sign}`);
139
+ const options = {
140
+ hostname: settings_1.HostDomain,
141
+ port: 443,
142
+ path: `${settings_1.DevicePath}/${this.device.deviceId}/status`,
143
+ method: "GET",
144
+ headers: {
145
+ Authorization: this.platform.config.credentials?.token,
146
+ sign: sign,
147
+ nonce: nonce,
148
+ t: t,
149
+ "Content-Type": "application/json",
150
+ },
151
+ };
152
+ const req = https_1.default.request(options, (res) => {
153
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} statusCode: ${res.statusCode}`);
154
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName}: ${res}`);
155
+ let rawData = "";
156
+ res.on("data", (d) => {
157
+ rawData += d;
158
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} d: ${d}`);
159
+ });
160
+ res.on("end", () => {
161
+ try {
162
+ this.deviceStatus = JSON.parse(rawData);
163
+ this.CurrentTemperature = this.deviceStatus.body.temperature;
164
+ this.CurrentRelativeHumidity = this.deviceStatus.body.humidity;
165
+ this.infoLog(`${this.device.deviceType}: ${this.accessory.displayName} refreshStatus: ${(0, super_stringify_1.default)(this.deviceStatus)}`);
166
+ this.openAPIparseStatus();
167
+ this.updateHomeKitCharacteristics();
168
+ }
169
+ catch (e) {
170
+ this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} error message: ${e.message}`);
171
+ }
172
+ });
173
+ });
174
+ req.on("error", (e) => {
175
+ this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} error message: ${e.message}`);
176
+ });
177
+ req.end();
178
+ }
179
+ catch (e) {
180
+ this.apiError(e);
181
+ this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} failed openAPIRefreshStatus with ${this.device.connectionType}` +
182
+ ` Connection, Error Message: ${(0, super_stringify_1.default)(e.message)}`);
183
+ }
184
+ }
185
+ async retry({ max, fn }) {
186
+ return fn().catch(async (e) => {
187
+ if (max === 0) {
188
+ throw e;
189
+ }
190
+ this.infoLog(e);
191
+ this.infoLog(`${this.device.deviceType}: ${this.accessory.displayName} Retrying`);
192
+ await (0, utils_1.sleep)(1000);
193
+ return this.retry({ max: max - 1, fn });
194
+ });
195
+ }
196
+ maxRetry() {
197
+ if (this.device.maxRetry) {
198
+ return this.device.maxRetry;
199
+ }
200
+ else {
201
+ return 5;
202
+ }
203
+ }
204
+ /**
205
+ * Handle requests to set the value of the "Target Position" characteristic
206
+ */
207
+ async updateHomeKitCharacteristics() {
208
+ this.hubHumiditySensor?.updateCharacteristic(this.platform.Characteristic.CurrentRelativeHumidity, this.CurrentRelativeHumidity);
209
+ this.infoLog(this.CurrentRelativeHumidity);
210
+ this.hubTemperatureSensor?.updateCharacteristic(this.platform.Characteristic.CurrentTemperature, this.CurrentTemperature);
211
+ }
212
+ async statusCode({ res }) {
213
+ switch (res.statusCode) {
214
+ case 151:
215
+ this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} Command not supported by this device type.`);
216
+ break;
217
+ case 152:
218
+ this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} Device not found.`);
219
+ break;
220
+ case 160:
221
+ this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} Command is not supported.`);
222
+ break;
223
+ case 161:
224
+ this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} Device is offline.`);
225
+ this.offlineOff();
226
+ break;
227
+ case 171:
228
+ this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} Hub Device is offline. Hub: ${this.device.hubDeviceId}`);
229
+ this.offlineOff();
230
+ break;
231
+ case 190:
232
+ this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} Device internal error due to device states not synchronized with server,` +
233
+ ` Or command: ${(0, super_stringify_1.default)(res)} format is invalid`);
234
+ break;
235
+ case 100:
236
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Command successfully sent.`);
237
+ break;
238
+ default:
239
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Unknown statusCode.`);
240
+ }
241
+ }
242
+ async offlineOff() {
243
+ if (this.device.offline) {
244
+ await this.updateHomeKitCharacteristics();
245
+ }
246
+ }
247
+ async apiError(e) {
248
+ this.hubTemperatureSensor?.updateCharacteristic(this.platform.Characteristic.CurrentTemperature, e);
249
+ this.hubHumiditySensor?.updateCharacteristic(this.platform.Characteristic.CurrentRelativeHumidity, e);
250
+ }
251
+ FirmwareRevision(accessory, device) {
252
+ let FirmwareRevision;
253
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName}` + ` accessory.context.FirmwareRevision: ${accessory.context.FirmwareRevision}`);
254
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} device.firmware: ${device.firmware}`);
255
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} this.platform.version: ${this.platform.version}`);
256
+ if (accessory.context.FirmwareRevision) {
257
+ FirmwareRevision = accessory.context.FirmwareRevision;
258
+ }
259
+ else if (device.firmware) {
260
+ FirmwareRevision = device.firmware;
261
+ }
262
+ else {
263
+ FirmwareRevision = this.platform.version;
264
+ }
265
+ return FirmwareRevision;
266
+ }
267
+ async refreshRate(device) {
268
+ // refreshRate
269
+ if (device.refreshRate) {
270
+ this.deviceRefreshRate = this.accessory.context.refreshRate = device.refreshRate;
271
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Using Device Config refreshRate: ${this.deviceRefreshRate}`);
272
+ }
273
+ else if (this.platform.config.options.refreshRate) {
274
+ this.deviceRefreshRate = this.accessory.context.refreshRate = this.platform.config.options.refreshRate;
275
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Using Platform Config refreshRate: ${this.deviceRefreshRate}`);
276
+ }
277
+ // updateRate
278
+ if (device?.curtain?.updateRate) {
279
+ this.updateRate = device?.curtain?.updateRate;
280
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Using Device Config Curtain updateRate: ${this.updateRate}`);
281
+ }
282
+ else {
283
+ this.updateRate = 7;
284
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Using Default Curtain updateRate: ${this.updateRate}`);
285
+ }
286
+ }
287
+ async logs(device) {
288
+ if (this.platform.debugMode) {
289
+ this.deviceLogging = this.accessory.context.logging = "debugMode";
290
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Using Debug Mode Logging: ${this.deviceLogging}`);
291
+ }
292
+ else if (device.logging) {
293
+ this.deviceLogging = this.accessory.context.logging = device.logging;
294
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Using Device Config Logging: ${this.deviceLogging}`);
295
+ }
296
+ else if (this.platform.config.options?.logging) {
297
+ this.deviceLogging = this.accessory.context.logging = this.platform.config.options?.logging;
298
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Using Platform Config Logging: ${this.deviceLogging}`);
299
+ }
300
+ else {
301
+ this.deviceLogging = this.accessory.context.logging = "standard";
302
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Logging Not Set, Using: ${this.deviceLogging}`);
303
+ }
304
+ }
305
+ /**
306
+ * Logging for Device
307
+ */
308
+ infoLog(...log) {
309
+ if (this.enablingDeviceLogging()) {
310
+ this.platform.log.info(String(...log));
311
+ }
312
+ }
313
+ warnLog(...log) {
314
+ if (this.enablingDeviceLogging()) {
315
+ this.platform.log.warn(String(...log));
316
+ }
317
+ }
318
+ debugWarnLog(...log) {
319
+ if (this.enablingDeviceLogging()) {
320
+ if (this.deviceLogging?.includes("debug")) {
321
+ this.platform.log.warn("[DEBUG]", String(...log));
322
+ }
323
+ }
324
+ }
325
+ errorLog(...log) {
326
+ if (this.enablingDeviceLogging()) {
327
+ this.platform.log.error(String(...log));
328
+ }
329
+ }
330
+ debugErrorLog(...log) {
331
+ if (this.enablingDeviceLogging()) {
332
+ if (this.deviceLogging?.includes("debug")) {
333
+ this.platform.log.error("[DEBUG]", String(...log));
334
+ }
335
+ }
336
+ }
337
+ debugLog(...log) {
338
+ if (this.enablingDeviceLogging()) {
339
+ if (this.deviceLogging === "debug") {
340
+ this.platform.log.info("[DEBUG]", String(...log));
341
+ }
342
+ else {
343
+ this.platform.log.debug(String(...log));
344
+ }
345
+ }
346
+ }
347
+ enablingDeviceLogging() {
348
+ return this.deviceLogging.includes("debug") || this.deviceLogging === "standard";
349
+ }
350
+ }
351
+ exports.Hub = Hub;
352
+ //# sourceMappingURL=hub.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hub.js","sourceRoot":"","sources":["../../src/device/hub.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,7 @@ export declare class SwitchBotPlatform implements DynamicPlatformPlugin {
44
44
  private createBot;
45
45
  private createMeter;
46
46
  private createMeterPlus;
47
+ private createHub2;
47
48
  private createIOSensor;
48
49
  private createMotion;
49
50
  private createContact;
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":";AA+BA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5G,OAAO,EACiC,MAAM,EAAE,uBAAuB,EAAE,aAAa,EAA0B,eAAe,EAAE,MAAM,YAAY,CAAC;AACpJ,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAEvC;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,qBAAqB;aAajC,GAAG,EAAE,MAAM;aAAkB,MAAM,EAAE,uBAAuB;aAAkB,GAAG,EAAE,GAAG;IAZlH,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAGpF,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAM;IAEtD,OAAO,SAA8C;IACrD,SAAS,EAAG,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,SAAgB,WAAW,EAAE,GAAG,CAAC;gBAEL,GAAG,EAAE,MAAM,EAAkB,MAAM,EAAE,uBAAuB,EAAkB,GAAG,EAAE,GAAG;IAkDlH;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAO/C;;OAEG;IACG,YAAY;IA+ElB;;;;OAIG;IACG,WAAW;IAqDjB;;OAEG;IACG,eAAe;IAgJrB,OAAO,CAAC,YAAY;IAyFpB,OAAO,CAAC,cAAc;YAuER,gBAAgB;YAwDhB,SAAS;YA0DT,WAAW;YAwDX,eAAe;YAwDf,cAAc;YAwDd,YAAY;YAwDZ,aAAa;YAwDb,eAAe;YAmEf,aAAa;YAmEb,UAAU;YAwDV,UAAU;YAwDV,eAAe;YAwDf,kBAAkB;YAwDlB,gBAAgB;YAwDhB,wBAAwB;YAwDxB,QAAQ;YAkDR,SAAS;YAwDT,WAAW;YAwDX,oBAAoB;YAwDpB,iBAAiB;YAwDjB,iBAAiB;YAwDjB,mBAAmB;YAwDnB,YAAY;YAwDZ,YAAY;IAwDpB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa;IA2C/C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC;IAU5D,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa;IAsDtC,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,EAAE,SAAS,EAAE,iBAAiB;IAenF,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,SAAS,EAAE,iBAAiB;IAU/E,iBAAiB,CAAC,SAAS,EAAE,iBAAiB;IAIpD,6BAA6B,CAAC,iBAAiB,EAAE,iBAAiB;IAMnE,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE;QAAE,GAAG,EAAE,eAAe,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmClE,UAAU;IAeV,IAAI;IAcJ;;;OAGG;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,uBAAuB,IAAI,OAAO;CAGnC"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":";AAgCA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5G,OAAO,EACiC,MAAM,EAAE,uBAAuB,EAAE,aAAa,EAA0B,eAAe,EAAE,MAAM,YAAY,CAAC;AACpJ,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAEvC;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,qBAAqB;aAajC,GAAG,EAAE,MAAM;aAAkB,MAAM,EAAE,uBAAuB;aAAkB,GAAG,EAAE,GAAG;IAZlH,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAGpF,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAM;IAEtD,OAAO,SAA8C;IACrD,SAAS,EAAG,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,SAAgB,WAAW,EAAE,GAAG,CAAC;gBAEL,GAAG,EAAE,MAAM,EAAkB,MAAM,EAAE,uBAAuB,EAAkB,GAAG,EAAE,GAAG;IAkDlH;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAO/C;;OAEG;IACG,YAAY;IA+ElB;;;;OAIG;IACG,WAAW;IAqDjB;;OAEG;IACG,eAAe;IAgJrB,OAAO,CAAC,YAAY;IA0FpB,OAAO,CAAC,cAAc;YAuER,gBAAgB;YAwDhB,SAAS;YA0DT,WAAW;YAwDb,eAAe;YAyDb,UAAU;YAyDV,cAAc;YAwDd,YAAY;YAwDZ,aAAa;YAwDb,eAAe;YAmEf,aAAa;YAmEb,UAAU;YAwDV,UAAU;YAwDV,eAAe;YAwDf,kBAAkB;YAwDlB,gBAAgB;YAwDhB,wBAAwB;YAwDxB,QAAQ;YAkDR,SAAS;YAwDT,WAAW;YAwDX,oBAAoB;YAwDpB,iBAAiB;YAwDjB,iBAAiB;YAwDjB,mBAAmB;YAwDnB,YAAY;YAwDZ,YAAY;IAwDpB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa;IA2C/C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC;IAU5D,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa;IAsDtC,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,EAAE,SAAS,EAAE,iBAAiB;IAenF,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,SAAS,EAAE,iBAAiB;IAU/E,iBAAiB,CAAC,SAAS,EAAE,iBAAiB;IAIpD,6BAA6B,CAAC,iBAAiB,EAAE,iBAAiB;IAMnE,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE;QAAE,GAAG,EAAE,eAAe,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmClE,UAAU;IAeV,IAAI;IAcJ;;;OAGG;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,uBAAuB,IAAI,OAAO;CAGnC"}