@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.
Files changed (132) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/device/blindtilt.d.ts +2 -2
  3. package/dist/device/blindtilt.d.ts.map +1 -1
  4. package/dist/device/blindtilt.js +4 -3
  5. package/dist/device/blindtilt.js.map +1 -1
  6. package/dist/device/bot.d.ts +2 -2
  7. package/dist/device/bot.d.ts.map +1 -1
  8. package/dist/device/bot.js +2 -2
  9. package/dist/device/bot.js.map +1 -1
  10. package/dist/device/ceilinglight.d.ts +2 -2
  11. package/dist/device/ceilinglight.d.ts.map +1 -1
  12. package/dist/device/ceilinglight.js +2 -2
  13. package/dist/device/ceilinglight.js.map +1 -1
  14. package/dist/device/colorbulb.d.ts +2 -2
  15. package/dist/device/colorbulb.d.ts.map +1 -1
  16. package/dist/device/colorbulb.js +2 -2
  17. package/dist/device/colorbulb.js.map +1 -1
  18. package/dist/device/contact.d.ts +2 -2
  19. package/dist/device/contact.d.ts.map +1 -1
  20. package/dist/device/contact.js +2 -2
  21. package/dist/device/contact.js.map +1 -1
  22. package/dist/device/curtain.d.ts +2 -2
  23. package/dist/device/curtain.d.ts.map +1 -1
  24. package/dist/device/curtain.js +4 -3
  25. package/dist/device/curtain.js.map +1 -1
  26. package/dist/device/hub.d.ts +2 -2
  27. package/dist/device/hub.d.ts.map +1 -1
  28. package/dist/device/hub.js +3 -2
  29. package/dist/device/hub.js.map +1 -1
  30. package/dist/device/humidifier.d.ts +2 -2
  31. package/dist/device/humidifier.d.ts.map +1 -1
  32. package/dist/device/humidifier.js +2 -2
  33. package/dist/device/humidifier.js.map +1 -1
  34. package/dist/device/iosensor.d.ts +2 -2
  35. package/dist/device/iosensor.d.ts.map +1 -1
  36. package/dist/device/iosensor.js +4 -3
  37. package/dist/device/iosensor.js.map +1 -1
  38. package/dist/device/lightstrip.d.ts +2 -2
  39. package/dist/device/lightstrip.d.ts.map +1 -1
  40. package/dist/device/lightstrip.js +2 -2
  41. package/dist/device/lightstrip.js.map +1 -1
  42. package/dist/device/lock.d.ts +2 -2
  43. package/dist/device/lock.d.ts.map +1 -1
  44. package/dist/device/lock.js +2 -2
  45. package/dist/device/lock.js.map +1 -1
  46. package/dist/device/meter.d.ts +2 -2
  47. package/dist/device/meter.d.ts.map +1 -1
  48. package/dist/device/meter.js +4 -3
  49. package/dist/device/meter.js.map +1 -1
  50. package/dist/device/meterplus.d.ts +2 -2
  51. package/dist/device/meterplus.d.ts.map +1 -1
  52. package/dist/device/meterplus.js +4 -3
  53. package/dist/device/meterplus.js.map +1 -1
  54. package/dist/device/motion.d.ts +2 -2
  55. package/dist/device/motion.d.ts.map +1 -1
  56. package/dist/device/motion.js +2 -2
  57. package/dist/device/motion.js.map +1 -1
  58. package/dist/device/plug.d.ts +2 -2
  59. package/dist/device/plug.d.ts.map +1 -1
  60. package/dist/device/plug.js +2 -2
  61. package/dist/device/plug.js.map +1 -1
  62. package/dist/device/robotvacuumcleaner.d.ts +2 -2
  63. package/dist/device/robotvacuumcleaner.d.ts.map +1 -1
  64. package/dist/device/robotvacuumcleaner.js +2 -2
  65. package/dist/device/robotvacuumcleaner.js.map +1 -1
  66. package/dist/irdevice/airconditioner.d.ts +2 -2
  67. package/dist/irdevice/airconditioner.d.ts.map +1 -1
  68. package/dist/irdevice/airconditioner.js +1 -1
  69. package/dist/irdevice/airconditioner.js.map +1 -1
  70. package/dist/irdevice/airpurifier.d.ts +2 -2
  71. package/dist/irdevice/airpurifier.d.ts.map +1 -1
  72. package/dist/irdevice/airpurifier.js +1 -1
  73. package/dist/irdevice/airpurifier.js.map +1 -1
  74. package/dist/irdevice/camera.d.ts +2 -2
  75. package/dist/irdevice/camera.d.ts.map +1 -1
  76. package/dist/irdevice/camera.js +1 -1
  77. package/dist/irdevice/camera.js.map +1 -1
  78. package/dist/irdevice/fan.d.ts +2 -2
  79. package/dist/irdevice/fan.d.ts.map +1 -1
  80. package/dist/irdevice/fan.js +1 -1
  81. package/dist/irdevice/fan.js.map +1 -1
  82. package/dist/irdevice/light.d.ts +2 -2
  83. package/dist/irdevice/light.d.ts.map +1 -1
  84. package/dist/irdevice/light.js +1 -1
  85. package/dist/irdevice/light.js.map +1 -1
  86. package/dist/irdevice/other.d.ts +2 -2
  87. package/dist/irdevice/other.d.ts.map +1 -1
  88. package/dist/irdevice/other.js +1 -1
  89. package/dist/irdevice/other.js.map +1 -1
  90. package/dist/irdevice/tv.d.ts +2 -2
  91. package/dist/irdevice/tv.d.ts.map +1 -1
  92. package/dist/irdevice/tv.js +1 -1
  93. package/dist/irdevice/tv.js.map +1 -1
  94. package/dist/irdevice/vacuumcleaner.d.ts +2 -2
  95. package/dist/irdevice/vacuumcleaner.d.ts.map +1 -1
  96. package/dist/irdevice/vacuumcleaner.js +1 -1
  97. package/dist/irdevice/vacuumcleaner.js.map +1 -1
  98. package/dist/irdevice/waterheater.d.ts +2 -2
  99. package/dist/irdevice/waterheater.d.ts.map +1 -1
  100. package/dist/irdevice/waterheater.js +1 -1
  101. package/dist/irdevice/waterheater.js.map +1 -1
  102. package/dist/platform.d.ts.map +1 -1
  103. package/dist/platform.js +31 -27
  104. package/dist/platform.js.map +1 -1
  105. package/package.json +3 -2
  106. package/src/device/blindtilt.ts +5 -4
  107. package/src/device/bot.ts +3 -3
  108. package/src/device/ceilinglight.ts +3 -3
  109. package/src/device/colorbulb.ts +3 -3
  110. package/src/device/contact.ts +3 -3
  111. package/src/device/curtain.ts +5 -4
  112. package/src/device/hub.ts +4 -3
  113. package/src/device/humidifier.ts +3 -3
  114. package/src/device/iosensor.ts +5 -4
  115. package/src/device/lightstrip.ts +3 -3
  116. package/src/device/lock.ts +3 -3
  117. package/src/device/meter.ts +5 -4
  118. package/src/device/meterplus.ts +5 -4
  119. package/src/device/motion.ts +3 -3
  120. package/src/device/plug.ts +3 -3
  121. package/src/device/robotvacuumcleaner.ts +3 -3
  122. package/src/irdevice/airconditioner.ts +2 -2
  123. package/src/irdevice/airpurifier.ts +2 -2
  124. package/src/irdevice/camera.ts +2 -2
  125. package/src/irdevice/fan.ts +2 -2
  126. package/src/irdevice/light.ts +2 -2
  127. package/src/irdevice/other.ts +2 -2
  128. package/src/irdevice/tv.ts +2 -2
  129. package/src/irdevice/vacuumcleaner.ts +2 -2
  130. package/src/irdevice/waterheater.ts +2 -2
  131. package/src/platform.ts +31 -27
  132. package/.github/npm-version-script.cjs +0 -81
@@ -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 { connectAsync } from 'async-mqtt';
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';
@@ -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';
@@ -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
@@ -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 { connectAsync } from 'async-mqtt';
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 { connectAsync } from 'async-mqtt';
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) => {
@@ -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
@@ -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 { connectAsync } from 'async-mqtt';
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) => {
@@ -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
@@ -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;
@@ -1,12 +1,12 @@
1
- import { connectAsync } from 'async-mqtt';
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) => {
@@ -1,12 +1,12 @@
1
- import { connectAsync } from 'async-mqtt';
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) => {
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 { connectAsync } from 'async-mqtt';
38
+ import asyncmqtt from 'async-mqtt';
39
39
  import crypto, { randomUUID } from 'crypto';
40
40
  import { readFileSync, writeFileSync } from 'fs';
41
- import { EveHomeKitTypes } from 'homebridge-lib';
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));