@switchbot/homebridge-switchbot 3.0.0-beta.0 → 3.0.0
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 +1 -1
- package/dist/device/blindtilt.d.ts +2 -2
- package/dist/device/blindtilt.d.ts.map +1 -1
- package/dist/device/blindtilt.js +4 -3
- package/dist/device/blindtilt.js.map +1 -1
- package/dist/device/bot.d.ts +2 -2
- package/dist/device/bot.d.ts.map +1 -1
- package/dist/device/bot.js +2 -2
- package/dist/device/bot.js.map +1 -1
- package/dist/device/ceilinglight.d.ts +2 -2
- package/dist/device/ceilinglight.d.ts.map +1 -1
- package/dist/device/ceilinglight.js +2 -2
- package/dist/device/ceilinglight.js.map +1 -1
- package/dist/device/colorbulb.d.ts +2 -2
- package/dist/device/colorbulb.d.ts.map +1 -1
- package/dist/device/colorbulb.js +2 -2
- package/dist/device/colorbulb.js.map +1 -1
- package/dist/device/contact.d.ts +2 -2
- package/dist/device/contact.d.ts.map +1 -1
- package/dist/device/contact.js +2 -2
- package/dist/device/contact.js.map +1 -1
- package/dist/device/curtain.d.ts +2 -2
- package/dist/device/curtain.d.ts.map +1 -1
- package/dist/device/curtain.js +4 -3
- package/dist/device/curtain.js.map +1 -1
- package/dist/device/hub.d.ts +2 -2
- package/dist/device/hub.d.ts.map +1 -1
- package/dist/device/hub.js +3 -2
- package/dist/device/hub.js.map +1 -1
- package/dist/device/humidifier.d.ts +2 -2
- package/dist/device/humidifier.d.ts.map +1 -1
- package/dist/device/humidifier.js +2 -2
- package/dist/device/humidifier.js.map +1 -1
- package/dist/device/iosensor.d.ts +2 -2
- package/dist/device/iosensor.d.ts.map +1 -1
- package/dist/device/iosensor.js +4 -3
- package/dist/device/iosensor.js.map +1 -1
- package/dist/device/lightstrip.d.ts +2 -2
- package/dist/device/lightstrip.d.ts.map +1 -1
- package/dist/device/lightstrip.js +2 -2
- package/dist/device/lightstrip.js.map +1 -1
- package/dist/device/lock.d.ts +2 -2
- package/dist/device/lock.d.ts.map +1 -1
- package/dist/device/lock.js +2 -2
- package/dist/device/lock.js.map +1 -1
- package/dist/device/meter.d.ts +2 -2
- package/dist/device/meter.d.ts.map +1 -1
- package/dist/device/meter.js +4 -3
- package/dist/device/meter.js.map +1 -1
- package/dist/device/meterplus.d.ts +2 -2
- package/dist/device/meterplus.d.ts.map +1 -1
- package/dist/device/meterplus.js +4 -3
- package/dist/device/meterplus.js.map +1 -1
- package/dist/device/motion.d.ts +2 -2
- package/dist/device/motion.d.ts.map +1 -1
- package/dist/device/motion.js +2 -2
- package/dist/device/motion.js.map +1 -1
- package/dist/device/plug.d.ts +2 -2
- package/dist/device/plug.d.ts.map +1 -1
- package/dist/device/plug.js +2 -2
- package/dist/device/plug.js.map +1 -1
- package/dist/device/robotvacuumcleaner.d.ts +2 -2
- package/dist/device/robotvacuumcleaner.d.ts.map +1 -1
- package/dist/device/robotvacuumcleaner.js +2 -2
- package/dist/device/robotvacuumcleaner.js.map +1 -1
- package/dist/irdevice/airconditioner.d.ts +2 -2
- package/dist/irdevice/airconditioner.d.ts.map +1 -1
- package/dist/irdevice/airconditioner.js +1 -1
- package/dist/irdevice/airconditioner.js.map +1 -1
- package/dist/irdevice/airpurifier.d.ts +2 -2
- package/dist/irdevice/airpurifier.d.ts.map +1 -1
- package/dist/irdevice/airpurifier.js +1 -1
- package/dist/irdevice/airpurifier.js.map +1 -1
- package/dist/irdevice/camera.d.ts +2 -2
- package/dist/irdevice/camera.d.ts.map +1 -1
- package/dist/irdevice/camera.js +1 -1
- package/dist/irdevice/camera.js.map +1 -1
- package/dist/irdevice/fan.d.ts +2 -2
- package/dist/irdevice/fan.d.ts.map +1 -1
- package/dist/irdevice/fan.js +1 -1
- package/dist/irdevice/fan.js.map +1 -1
- package/dist/irdevice/light.d.ts +2 -2
- package/dist/irdevice/light.d.ts.map +1 -1
- package/dist/irdevice/light.js +1 -1
- package/dist/irdevice/light.js.map +1 -1
- package/dist/irdevice/other.d.ts +2 -2
- package/dist/irdevice/other.d.ts.map +1 -1
- package/dist/irdevice/other.js +1 -1
- package/dist/irdevice/other.js.map +1 -1
- package/dist/irdevice/tv.d.ts +2 -2
- package/dist/irdevice/tv.d.ts.map +1 -1
- package/dist/irdevice/tv.js +1 -1
- package/dist/irdevice/tv.js.map +1 -1
- package/dist/irdevice/vacuumcleaner.d.ts +2 -2
- package/dist/irdevice/vacuumcleaner.d.ts.map +1 -1
- package/dist/irdevice/vacuumcleaner.js +1 -1
- package/dist/irdevice/vacuumcleaner.js.map +1 -1
- package/dist/irdevice/waterheater.d.ts +2 -2
- package/dist/irdevice/waterheater.d.ts.map +1 -1
- package/dist/irdevice/waterheater.js +1 -1
- package/dist/irdevice/waterheater.js.map +1 -1
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +31 -27
- package/dist/platform.js.map +1 -1
- package/package.json +3 -2
- package/src/device/blindtilt.ts +5 -4
- package/src/device/bot.ts +3 -3
- package/src/device/ceilinglight.ts +3 -3
- package/src/device/colorbulb.ts +3 -3
- package/src/device/contact.ts +3 -3
- package/src/device/curtain.ts +5 -4
- package/src/device/hub.ts +4 -3
- package/src/device/humidifier.ts +3 -3
- package/src/device/iosensor.ts +5 -4
- package/src/device/lightstrip.ts +3 -3
- package/src/device/lock.ts +3 -3
- package/src/device/meter.ts +5 -4
- package/src/device/meterplus.ts +5 -4
- package/src/device/motion.ts +3 -3
- package/src/device/plug.ts +3 -3
- package/src/device/robotvacuumcleaner.ts +3 -3
- package/src/irdevice/airconditioner.ts +2 -2
- package/src/irdevice/airpurifier.ts +2 -2
- package/src/irdevice/camera.ts +2 -2
- package/src/irdevice/fan.ts +2 -2
- package/src/irdevice/light.ts +2 -2
- package/src/irdevice/other.ts +2 -2
- package/src/irdevice/tv.ts +2 -2
- package/src/irdevice/vacuumcleaner.ts +2 -2
- package/src/irdevice/waterheater.ts +2 -2
- package/src/platform.ts +31 -27
- package/.github/npm-version-script.cjs +0 -81
package/src/device/blindtilt.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { request } from 'undici';
|
|
2
|
-
import { sleep } from '../utils';
|
|
2
|
+
import { sleep } from '../utils.js';
|
|
3
3
|
import { MqttClient } from 'mqtt';
|
|
4
4
|
import { interval, Subject } from 'rxjs';
|
|
5
|
-
import
|
|
6
|
-
import { SwitchBotPlatform } from '../platform';
|
|
5
|
+
import asyncmqtt from 'async-mqtt';
|
|
6
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
7
7
|
import { debounceTime, skipWhile, take, tap } from 'rxjs/operators';
|
|
8
8
|
import { Service, PlatformAccessory, CharacteristicValue, Logging, API, HAP } from 'homebridge';
|
|
9
|
-
import { device, devicesConfig, serviceData, deviceStatus, ad, Devices, SwitchBotPlatformConfig } from '../settings';
|
|
9
|
+
import { device, devicesConfig, serviceData, deviceStatus, ad, Devices, SwitchBotPlatformConfig } from '../settings.js';
|
|
10
10
|
|
|
11
11
|
enum BlindTiltMappingMode {
|
|
12
12
|
OnlyUp = 'only_up',
|
|
@@ -943,6 +943,7 @@ export class BlindTilt {
|
|
|
943
943
|
async setupMqtt(device: device & devicesConfig): Promise<void> {
|
|
944
944
|
if (device.mqttURL) {
|
|
945
945
|
try {
|
|
946
|
+
const { connectAsync } = asyncmqtt;
|
|
946
947
|
this.mqttClient = await connectAsync(device.mqttURL, device.mqttOptions || {});
|
|
947
948
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} MQTT connection has been established successfully.`);
|
|
948
949
|
this.mqttClient.on('error', (e: Error) => {
|
package/src/device/bot.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { request } from 'undici';
|
|
2
|
-
import { sleep } from '../utils';
|
|
2
|
+
import { sleep } from '../utils.js';
|
|
3
3
|
import { interval, Subject } from 'rxjs';
|
|
4
|
-
import { SwitchBotPlatform } from '../platform';
|
|
4
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
5
5
|
import { debounceTime, skipWhile, take, tap } from 'rxjs/operators';
|
|
6
6
|
import { Service, PlatformAccessory, CharacteristicValue, API, Logging, HAP } from 'homebridge';
|
|
7
|
-
import { device, devicesConfig, deviceStatus, ad, serviceData, Devices, SwitchBotPlatformConfig } from '../settings';
|
|
7
|
+
import { device, devicesConfig, deviceStatus, ad, serviceData, Devices, SwitchBotPlatformConfig } from '../settings.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Platform Accessory
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { request } from 'undici';
|
|
2
|
-
import { sleep } from '../utils';
|
|
2
|
+
import { sleep } from '../utils.js';
|
|
3
3
|
import { interval, Subject } from 'rxjs';
|
|
4
|
-
import { SwitchBotPlatform } from '../platform';
|
|
4
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
5
5
|
import { debounceTime, skipWhile, take, tap } from 'rxjs/operators';
|
|
6
|
-
import { device, devicesConfig, deviceStatus, hs2rgb, rgb2hs, m2hs, serviceData, ad, Devices, SwitchBotPlatformConfig } from '../settings';
|
|
6
|
+
import { device, devicesConfig, deviceStatus, hs2rgb, rgb2hs, m2hs, serviceData, ad, Devices, SwitchBotPlatformConfig } from '../settings.js';
|
|
7
7
|
import {
|
|
8
8
|
Service, PlatformAccessory, CharacteristicValue, ControllerConstructor, Controller, ControllerServiceMap, API, Logging, HAP,
|
|
9
9
|
} from 'homebridge';
|
package/src/device/colorbulb.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { request } from 'undici';
|
|
2
|
-
import { sleep } from '../utils';
|
|
2
|
+
import { sleep } from '../utils.js';
|
|
3
3
|
import { interval, Subject } from 'rxjs';
|
|
4
|
-
import { SwitchBotPlatform } from '../platform';
|
|
4
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
5
5
|
import { debounceTime, skipWhile, take, tap } from 'rxjs/operators';
|
|
6
|
-
import { device, devicesConfig, deviceStatus, hs2rgb, rgb2hs, m2hs, serviceData, ad, Devices, SwitchBotPlatformConfig } from '../settings';
|
|
6
|
+
import { device, devicesConfig, deviceStatus, hs2rgb, rgb2hs, m2hs, serviceData, ad, Devices, SwitchBotPlatformConfig } from '../settings.js';
|
|
7
7
|
import {
|
|
8
8
|
Service, PlatformAccessory, CharacteristicValue, ControllerConstructor, Controller, ControllerServiceMap, API, Logging, HAP,
|
|
9
9
|
} from 'homebridge';
|
package/src/device/contact.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { request } from 'undici';
|
|
2
|
-
import { sleep } from '../utils';
|
|
2
|
+
import { sleep } from '../utils.js';
|
|
3
3
|
import { interval, Subject } from 'rxjs';
|
|
4
4
|
import { skipWhile } from 'rxjs/operators';
|
|
5
|
-
import { SwitchBotPlatform } from '../platform';
|
|
5
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
6
6
|
import { Service, PlatformAccessory, CharacteristicValue, API, Logging, HAP } from 'homebridge';
|
|
7
|
-
import { device, devicesConfig, serviceData, deviceStatus, ad, Devices, SwitchBotPlatformConfig } from '../settings';
|
|
7
|
+
import { device, devicesConfig, serviceData, deviceStatus, ad, Devices, SwitchBotPlatformConfig } from '../settings.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Platform Accessory
|
package/src/device/curtain.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { request } from 'undici';
|
|
2
|
-
import { sleep } from '../utils';
|
|
2
|
+
import { sleep } from '../utils.js';
|
|
3
3
|
import { MqttClient } from 'mqtt';
|
|
4
4
|
import { interval, Subject } from 'rxjs';
|
|
5
|
-
import
|
|
6
|
-
import { SwitchBotPlatform } from '../platform';
|
|
5
|
+
import asyncmqtt from 'async-mqtt';
|
|
6
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
7
7
|
import { debounceTime, skipWhile, take, tap } from 'rxjs/operators';
|
|
8
8
|
import { Service, PlatformAccessory, CharacteristicValue, CharacteristicChange, API, Logging, HAP } from 'homebridge';
|
|
9
|
-
import { device, devicesConfig, serviceData, deviceStatus, ad, Devices, SwitchBotPlatformConfig } from '../settings';
|
|
9
|
+
import { device, devicesConfig, serviceData, deviceStatus, ad, Devices, SwitchBotPlatformConfig } from '../settings.js';
|
|
10
10
|
import { hostname } from 'os';
|
|
11
11
|
|
|
12
12
|
export class Curtain {
|
|
@@ -966,6 +966,7 @@ export class Curtain {
|
|
|
966
966
|
async setupMqtt(device: device & devicesConfig): Promise<void> {
|
|
967
967
|
if (device.mqttURL) {
|
|
968
968
|
try {
|
|
969
|
+
const { connectAsync } = asyncmqtt;
|
|
969
970
|
this.mqttClient = await connectAsync(device.mqttURL, device.mqttOptions || {});
|
|
970
971
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} MQTT connection has been established successfully.`);
|
|
971
972
|
this.mqttClient.on('error', (e: Error) => {
|
package/src/device/hub.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import asyncmqtt from 'async-mqtt';
|
|
2
2
|
import { CharacteristicValue, PlatformAccessory, Service, Units, API, Logging, HAP } from 'homebridge';
|
|
3
3
|
import { MqttClient } from 'mqtt';
|
|
4
4
|
import { hostname } from 'os';
|
|
5
5
|
import { interval } from 'rxjs';
|
|
6
6
|
import { request } from 'undici';
|
|
7
|
-
import { SwitchBotPlatform } from '../platform';
|
|
8
|
-
import { Devices, device, deviceStatus, devicesConfig, SwitchBotPlatformConfig } from '../settings';
|
|
7
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
8
|
+
import { Devices, device, deviceStatus, devicesConfig, SwitchBotPlatformConfig } from '../settings.js';
|
|
9
9
|
|
|
10
10
|
export class Hub {
|
|
11
11
|
public readonly api: API;
|
|
@@ -555,6 +555,7 @@ export class Hub {
|
|
|
555
555
|
async setupMqtt(device: device & devicesConfig): Promise<void> {
|
|
556
556
|
if (device.mqttURL) {
|
|
557
557
|
try {
|
|
558
|
+
const { connectAsync } = asyncmqtt;
|
|
558
559
|
this.mqttClient = await connectAsync(device.mqttURL, device.mqttOptions || {});
|
|
559
560
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} MQTT connection has been established successfully.`);
|
|
560
561
|
this.mqttClient.on('error', (e: Error) => {
|
package/src/device/humidifier.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { request } from 'undici';
|
|
2
|
-
import { sleep } from '../utils';
|
|
2
|
+
import { sleep } from '../utils.js';
|
|
3
3
|
import { interval, Subject } from 'rxjs';
|
|
4
|
-
import { SwitchBotPlatform } from '../platform';
|
|
4
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
5
5
|
import { debounceTime, skipWhile, take, tap } from 'rxjs/operators';
|
|
6
6
|
import { Service, PlatformAccessory, CharacteristicValue, API, Logging, HAP } from 'homebridge';
|
|
7
|
-
import { device, devicesConfig, serviceData, ad, deviceStatus, Devices, SwitchBotPlatformConfig } from '../settings';
|
|
7
|
+
import { device, devicesConfig, serviceData, ad, deviceStatus, Devices, SwitchBotPlatformConfig } from '../settings.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Platform Accessory
|
package/src/device/iosensor.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { hostname } from 'os';
|
|
2
2
|
import { request } from 'undici';
|
|
3
|
-
import { sleep } from '../utils';
|
|
3
|
+
import { sleep } from '../utils.js';
|
|
4
4
|
import { MqttClient } from 'mqtt';
|
|
5
|
-
import
|
|
5
|
+
import asyncmqtt from 'async-mqtt';
|
|
6
6
|
import { interval, Subject } from 'rxjs';
|
|
7
7
|
import { skipWhile } from 'rxjs/operators';
|
|
8
|
-
import { SwitchBotPlatform } from '../platform';
|
|
8
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
9
9
|
import { Service, PlatformAccessory, Units, CharacteristicValue, API, Logging, HAP } from 'homebridge';
|
|
10
|
-
import { device, devicesConfig, serviceData, ad, temperature, deviceStatus, Devices, SwitchBotPlatformConfig } from '../settings';
|
|
10
|
+
import { device, devicesConfig, serviceData, ad, temperature, deviceStatus, Devices, SwitchBotPlatformConfig } from '../settings.js';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Platform Accessory
|
|
@@ -503,6 +503,7 @@ export class IOSensor {
|
|
|
503
503
|
async setupMqtt(device: device & devicesConfig): Promise<void> {
|
|
504
504
|
if (device.mqttURL) {
|
|
505
505
|
try {
|
|
506
|
+
const { connectAsync } = asyncmqtt;
|
|
506
507
|
this.mqttClient = await connectAsync(device.mqttURL, device.mqttOptions || {});
|
|
507
508
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} MQTT connection has been established successfully.`);
|
|
508
509
|
this.mqttClient.on('error', (e: Error) => {
|
package/src/device/lightstrip.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { request } from 'undici';
|
|
2
|
-
import { sleep } from '../utils';
|
|
2
|
+
import { sleep } from '../utils.js';
|
|
3
3
|
import { interval, Subject } from 'rxjs';
|
|
4
|
-
import { SwitchBotPlatform } from '../platform';
|
|
4
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
5
5
|
import { debounceTime, skipWhile, take, tap } from 'rxjs/operators';
|
|
6
6
|
import {
|
|
7
7
|
Service, PlatformAccessory, CharacteristicValue, ControllerConstructor, Controller, ControllerServiceMap, API, Logging, HAP,
|
|
8
8
|
} from 'homebridge';
|
|
9
|
-
import { device, devicesConfig, hs2rgb, rgb2hs, deviceStatus, ad, serviceData, m2hs, Devices, SwitchBotPlatformConfig } from '../settings';
|
|
9
|
+
import { device, devicesConfig, hs2rgb, rgb2hs, deviceStatus, ad, serviceData, m2hs, Devices, SwitchBotPlatformConfig } from '../settings.js';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Platform Accessory
|
package/src/device/lock.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { request } from 'undici';
|
|
2
|
-
import { sleep } from '../utils';
|
|
2
|
+
import { sleep } from '../utils.js';
|
|
3
3
|
import { interval, Subject } from 'rxjs';
|
|
4
|
-
import { SwitchBotPlatform } from '../platform';
|
|
4
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
5
5
|
import { debounceTime, skipWhile, take, tap } from 'rxjs/operators';
|
|
6
6
|
import { Service, PlatformAccessory, CharacteristicValue, API, Logging, HAP } from 'homebridge';
|
|
7
|
-
import { device, devicesConfig, deviceStatus, ad, Devices, serviceData, SwitchBotPlatformConfig } from '../settings';
|
|
7
|
+
import { device, devicesConfig, deviceStatus, ad, Devices, serviceData, SwitchBotPlatformConfig } from '../settings.js';
|
|
8
8
|
|
|
9
9
|
export class Lock {
|
|
10
10
|
public readonly api: API;
|
package/src/device/meter.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import asyncmqtt from 'async-mqtt';
|
|
2
2
|
import { CharacteristicValue, PlatformAccessory, Service, Units, API, Logging, HAP } from 'homebridge';
|
|
3
3
|
import { MqttClient } from 'mqtt';
|
|
4
4
|
import { hostname } from 'os';
|
|
5
5
|
import { interval } from 'rxjs';
|
|
6
6
|
import { request } from 'undici';
|
|
7
|
-
import { SwitchBotPlatform } from '../platform';
|
|
8
|
-
import { Devices, ad, device, deviceStatus, devicesConfig, serviceData, temperature, SwitchBotPlatformConfig } from '../settings';
|
|
9
|
-
import { sleep } from '../utils';
|
|
7
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
8
|
+
import { Devices, ad, device, deviceStatus, devicesConfig, serviceData, temperature, SwitchBotPlatformConfig } from '../settings.js';
|
|
9
|
+
import { sleep } from '../utils.js';
|
|
10
10
|
|
|
11
11
|
export class Meter {
|
|
12
12
|
public readonly api: API;
|
|
@@ -496,6 +496,7 @@ export class Meter {
|
|
|
496
496
|
async setupMqtt(device: device & devicesConfig): Promise<void> {
|
|
497
497
|
if (device.mqttURL) {
|
|
498
498
|
try {
|
|
499
|
+
const { connectAsync } = asyncmqtt;
|
|
499
500
|
this.mqttClient = await connectAsync(device.mqttURL, device.mqttOptions || {});
|
|
500
501
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} MQTT connection has been established successfully.`);
|
|
501
502
|
this.mqttClient.on('error', (e: Error) => {
|
package/src/device/meterplus.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import asyncmqtt from 'async-mqtt';
|
|
2
2
|
import { CharacteristicValue, PlatformAccessory, Service, Units, API, Logging, HAP } from 'homebridge';
|
|
3
3
|
import { MqttClient } from 'mqtt';
|
|
4
4
|
import { hostname } from 'os';
|
|
5
5
|
import { interval } from 'rxjs';
|
|
6
6
|
import { request } from 'undici';
|
|
7
|
-
import { SwitchBotPlatform } from '../platform';
|
|
8
|
-
import { Devices, ad, device, deviceStatus, devicesConfig, serviceData, temperature, SwitchBotPlatformConfig } from '../settings';
|
|
9
|
-
import { sleep } from '../utils';
|
|
7
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
8
|
+
import { Devices, ad, device, deviceStatus, devicesConfig, serviceData, temperature, SwitchBotPlatformConfig } from '../settings.js';
|
|
9
|
+
import { sleep } from '../utils.js';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Platform Accessory
|
|
@@ -501,6 +501,7 @@ export class MeterPlus {
|
|
|
501
501
|
async setupMqtt(device: device & devicesConfig): Promise<void> {
|
|
502
502
|
if (device.mqttURL) {
|
|
503
503
|
try {
|
|
504
|
+
const { connectAsync } = asyncmqtt;
|
|
504
505
|
this.mqttClient = await connectAsync(device.mqttURL, device.mqttOptions || {});
|
|
505
506
|
this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} MQTT connection has been established successfully.`);
|
|
506
507
|
this.mqttClient.on('error', (e: Error) => {
|
package/src/device/motion.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { request } from 'undici';
|
|
2
|
-
import { sleep } from '../utils';
|
|
2
|
+
import { sleep } from '../utils.js';
|
|
3
3
|
import { interval, Subject } from 'rxjs';
|
|
4
4
|
import { skipWhile } from 'rxjs/operators';
|
|
5
|
-
import { SwitchBotPlatform } from '../platform';
|
|
5
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
6
6
|
import { Service, PlatformAccessory, CharacteristicValue, API, Logging, HAP } from 'homebridge';
|
|
7
|
-
import { device, devicesConfig, serviceData, deviceStatus, ad, Devices, SwitchBotPlatformConfig } from '../settings';
|
|
7
|
+
import { device, devicesConfig, serviceData, deviceStatus, ad, Devices, SwitchBotPlatformConfig } from '../settings.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Platform Accessory
|
package/src/device/plug.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { request } from 'undici';
|
|
2
|
-
import { sleep } from '../utils';
|
|
2
|
+
import { sleep } from '../utils.js';
|
|
3
3
|
import { interval, Subject } from 'rxjs';
|
|
4
|
-
import { SwitchBotPlatform } from '../platform';
|
|
4
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
5
5
|
import { debounceTime, skipWhile, take, tap } from 'rxjs/operators';
|
|
6
6
|
import { Service, PlatformAccessory, CharacteristicValue, API, Logging, HAP } from 'homebridge';
|
|
7
|
-
import { device, devicesConfig, deviceStatus, ad, serviceData, Devices, SwitchBotPlatformConfig } from '../settings';
|
|
7
|
+
import { device, devicesConfig, deviceStatus, ad, serviceData, Devices, SwitchBotPlatformConfig } from '../settings.js';
|
|
8
8
|
|
|
9
9
|
export class Plug {
|
|
10
10
|
public readonly api: API;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { request } from 'undici';
|
|
2
|
-
import { sleep } from '../utils';
|
|
2
|
+
import { sleep } from '../utils.js';
|
|
3
3
|
import { interval, Subject } from 'rxjs';
|
|
4
|
-
import { SwitchBotPlatform } from '../platform';
|
|
4
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
5
5
|
import { debounceTime, skipWhile, take, tap } from 'rxjs/operators';
|
|
6
6
|
import { Service, PlatformAccessory, CharacteristicValue, API, Logging, HAP } from 'homebridge';
|
|
7
|
-
import { device, devicesConfig, deviceStatus, ad, serviceData, Devices, SwitchBotPlatformConfig } from '../settings';
|
|
7
|
+
import { device, devicesConfig, deviceStatus, ad, serviceData, Devices, SwitchBotPlatformConfig } from '../settings.js';
|
|
8
8
|
|
|
9
9
|
export class RobotVacuumCleaner {
|
|
10
10
|
public readonly api: API;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CharacteristicValue, PlatformAccessory, Service, API, Logging, HAP } from 'homebridge';
|
|
2
2
|
import { request } from 'undici';
|
|
3
|
-
import { SwitchBotPlatform } from '../platform';
|
|
4
|
-
import { Devices, irDevicesConfig, irdevice, SwitchBotPlatformConfig } from '../settings';
|
|
3
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
4
|
+
import { Devices, irDevicesConfig, irdevice, SwitchBotPlatformConfig } from '../settings.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Platform Accessory
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CharacteristicValue, PlatformAccessory, Service, API, Logging, HAP } from 'homebridge';
|
|
2
2
|
import { request } from 'undici';
|
|
3
|
-
import { SwitchBotPlatform } from '../platform';
|
|
4
|
-
import { Devices, irDevicesConfig, irdevice, SwitchBotPlatformConfig } from '../settings';
|
|
3
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
4
|
+
import { Devices, irDevicesConfig, irdevice, SwitchBotPlatformConfig } from '../settings.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Platform Accessory
|
package/src/irdevice/camera.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CharacteristicValue, PlatformAccessory, Service, API, Logging, HAP } from 'homebridge';
|
|
2
2
|
import { request } from 'undici';
|
|
3
|
-
import { SwitchBotPlatform } from '../platform';
|
|
4
|
-
import { Devices, irDevicesConfig, irdevice, SwitchBotPlatformConfig } from '../settings';
|
|
3
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
4
|
+
import { Devices, irDevicesConfig, irdevice, SwitchBotPlatformConfig } from '../settings.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Platform Accessory
|
package/src/irdevice/fan.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CharacteristicValue, PlatformAccessory, Service, API, Logging, HAP } from 'homebridge';
|
|
2
2
|
import { request } from 'undici';
|
|
3
|
-
import { SwitchBotPlatform } from '../platform';
|
|
4
|
-
import { Devices, irDevicesConfig, irdevice, SwitchBotPlatformConfig } from '../settings';
|
|
3
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
4
|
+
import { Devices, irDevicesConfig, irdevice, SwitchBotPlatformConfig } from '../settings.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Platform Accessory
|
package/src/irdevice/light.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CharacteristicValue, PlatformAccessory, Service, API, Logging, HAP } from 'homebridge';
|
|
2
2
|
import { request } from 'undici';
|
|
3
|
-
import { SwitchBotPlatform } from '../platform';
|
|
4
|
-
import { Devices, irDevicesConfig, irdevice, SwitchBotPlatformConfig } from '../settings';
|
|
3
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
4
|
+
import { Devices, irDevicesConfig, irdevice, SwitchBotPlatformConfig } from '../settings.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Platform Accessory
|
package/src/irdevice/other.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CharacteristicValue, PlatformAccessory, Service, API, Logging, HAP } from 'homebridge';
|
|
2
2
|
import { request } from 'undici';
|
|
3
|
-
import { SwitchBotPlatform } from '../platform';
|
|
4
|
-
import { Devices, irDevicesConfig, irdevice, SwitchBotPlatformConfig } from '../settings';
|
|
3
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
4
|
+
import { Devices, irDevicesConfig, irdevice, SwitchBotPlatformConfig } from '../settings.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Platform Accessory
|
package/src/irdevice/tv.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CharacteristicValue, PlatformAccessory, Service, API, Logging, HAP } from 'homebridge';
|
|
2
2
|
import { request } from 'undici';
|
|
3
|
-
import { SwitchBotPlatform } from '../platform';
|
|
4
|
-
import { Devices, irDevicesConfig, irdevice, SwitchBotPlatformConfig } from '../settings';
|
|
3
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
4
|
+
import { Devices, irDevicesConfig, irdevice, SwitchBotPlatformConfig } from '../settings.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Platform Accessory
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CharacteristicValue, PlatformAccessory, Service, API, Logging, HAP } from 'homebridge';
|
|
2
2
|
import { request } from 'undici';
|
|
3
|
-
import { SwitchBotPlatform } from '../platform';
|
|
4
|
-
import { Devices, irDevicesConfig, irdevice, SwitchBotPlatformConfig } from '../settings';
|
|
3
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
4
|
+
import { Devices, irDevicesConfig, irdevice, SwitchBotPlatformConfig } from '../settings.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Platform Accessory
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CharacteristicValue, PlatformAccessory, Service, API, Logging, HAP } from 'homebridge';
|
|
2
2
|
import { request } from 'undici';
|
|
3
|
-
import { SwitchBotPlatform } from '../platform';
|
|
4
|
-
import { Devices, irDevicesConfig, irdevice, SwitchBotPlatformConfig } from '../settings';
|
|
3
|
+
import { SwitchBotPlatform } from '../platform.js';
|
|
4
|
+
import { Devices, irDevicesConfig, irdevice, SwitchBotPlatformConfig } from '../settings.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Platform Accessory
|
package/src/platform.ts
CHANGED
|
@@ -4,41 +4,41 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { API, DynamicPlatformPlugin, Logging, PlatformAccessory } from 'homebridge';
|
|
6
6
|
import { PLATFORM_NAME, PLUGIN_NAME, irdevice, device, SwitchBotPlatformConfig, devicesConfig, irDevicesConfig, Devices } from './settings.js';
|
|
7
|
-
import { Bot } from './device/bot';
|
|
8
|
-
import { Plug } from './device/plug';
|
|
9
|
-
import { Lock } from './device/lock';
|
|
10
|
-
import { Meter } from './device/meter';
|
|
11
|
-
import { Motion } from './device/motion';
|
|
12
|
-
import { Hub } from './device/hub';
|
|
13
|
-
import { Contact } from './device/contact';
|
|
14
|
-
import { Curtain } from './device/curtain';
|
|
15
|
-
import { IOSensor } from './device/iosensor';
|
|
16
|
-
import { MeterPlus } from './device/meterplus';
|
|
17
|
-
import { ColorBulb } from './device/colorbulb';
|
|
18
|
-
import { CeilingLight } from './device/ceilinglight';
|
|
19
|
-
import { StripLight } from './device/lightstrip';
|
|
20
|
-
import { Humidifier } from './device/humidifier';
|
|
21
|
-
import { RobotVacuumCleaner } from './device/robotvacuumcleaner';
|
|
22
|
-
import { TV } from './irdevice/tv';
|
|
23
|
-
import { Fan } from './irdevice/fan';
|
|
24
|
-
import { Light } from './irdevice/light';
|
|
25
|
-
import { Others } from './irdevice/other';
|
|
26
|
-
import { Camera } from './irdevice/camera';
|
|
27
|
-
import { BlindTilt } from './device/blindtilt';
|
|
28
|
-
import { AirPurifier } from './irdevice/airpurifier';
|
|
29
|
-
import { WaterHeater } from './irdevice/waterheater';
|
|
30
|
-
import { VacuumCleaner } from './irdevice/vacuumcleaner';
|
|
31
|
-
import { AirConditioner } from './irdevice/airconditioner';
|
|
7
|
+
import { Bot } from './device/bot.js';
|
|
8
|
+
import { Plug } from './device/plug.js';
|
|
9
|
+
import { Lock } from './device/lock.js';
|
|
10
|
+
import { Meter } from './device/meter.js';
|
|
11
|
+
import { Motion } from './device/motion.js';
|
|
12
|
+
import { Hub } from './device/hub.js';
|
|
13
|
+
import { Contact } from './device/contact.js';
|
|
14
|
+
import { Curtain } from './device/curtain.js';
|
|
15
|
+
import { IOSensor } from './device/iosensor.js';
|
|
16
|
+
import { MeterPlus } from './device/meterplus.js';
|
|
17
|
+
import { ColorBulb } from './device/colorbulb.js';
|
|
18
|
+
import { CeilingLight } from './device/ceilinglight.js';
|
|
19
|
+
import { StripLight } from './device/lightstrip.js';
|
|
20
|
+
import { Humidifier } from './device/humidifier.js';
|
|
21
|
+
import { RobotVacuumCleaner } from './device/robotvacuumcleaner.js';
|
|
22
|
+
import { TV } from './irdevice/tv.js';
|
|
23
|
+
import { Fan } from './irdevice/fan.js';
|
|
24
|
+
import { Light } from './irdevice/light.js';
|
|
25
|
+
import { Others } from './irdevice/other.js';
|
|
26
|
+
import { Camera } from './irdevice/camera.js';
|
|
27
|
+
import { BlindTilt } from './device/blindtilt.js';
|
|
28
|
+
import { AirPurifier } from './irdevice/airpurifier.js';
|
|
29
|
+
import { WaterHeater } from './irdevice/waterheater.js';
|
|
30
|
+
import { VacuumCleaner } from './irdevice/vacuumcleaner.js';
|
|
31
|
+
import { AirConditioner } from './irdevice/airconditioner.js';
|
|
32
32
|
import * as http from 'http';
|
|
33
33
|
import { Buffer } from 'buffer';
|
|
34
34
|
import { request } from 'undici';
|
|
35
35
|
import { MqttClient } from 'mqtt';
|
|
36
36
|
import { queueScheduler } from 'rxjs';
|
|
37
37
|
import fakegato from 'fakegato-history';
|
|
38
|
-
import
|
|
38
|
+
import asyncmqtt from 'async-mqtt';
|
|
39
39
|
import crypto, { randomUUID } from 'crypto';
|
|
40
40
|
import { readFileSync, writeFileSync } from 'fs';
|
|
41
|
-
import
|
|
41
|
+
import hbLib from 'homebridge-lib';
|
|
42
42
|
|
|
43
43
|
|
|
44
44
|
/**
|
|
@@ -75,6 +75,8 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
|
|
|
75
75
|
// Plugin options into our config variables.
|
|
76
76
|
this.config = {
|
|
77
77
|
platform: 'SwitchBotPlatform',
|
|
78
|
+
name: config.name,
|
|
79
|
+
credentials: config.credentials as object,
|
|
78
80
|
url: config.url as string,
|
|
79
81
|
port: config.port as number,
|
|
80
82
|
hostname: config.hostname as string,
|
|
@@ -104,6 +106,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
|
|
|
104
106
|
}
|
|
105
107
|
|
|
106
108
|
// import fakegato-history module and EVE characteristics
|
|
109
|
+
const { EveHomeKitTypes } = hbLib;
|
|
107
110
|
this.fakegatoAPI = fakegato(api);
|
|
108
111
|
this.eve = new EveHomeKitTypes(api);
|
|
109
112
|
|
|
@@ -136,6 +139,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
|
|
|
136
139
|
async setupMqtt(): Promise<void> {
|
|
137
140
|
if (this.config.options?.mqttURL) {
|
|
138
141
|
try {
|
|
142
|
+
const { connectAsync } = asyncmqtt;
|
|
139
143
|
this.mqttClient = await connectAsync(this.config.options?.mqttURL, this.config.options.mqttOptions || {});
|
|
140
144
|
this.debugLog('MQTT connection has been established successfully.');
|
|
141
145
|
this.mqttClient.on('error', (e: Error) => {
|
|
@@ -1,81 +0,0 @@
|
|
|
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.cjs <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));
|