@switchbot/homebridge-switchbot 3.8.3 → 4.0.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.
Files changed (205) hide show
  1. package/.github/npm-version-script.cjs +81 -0
  2. package/.github/workflows/beta-release.yml +12 -4
  3. package/CHANGELOG.md +15 -1
  4. package/config.schema.json +583 -937
  5. package/dist/device/blindtilt.d.ts +1 -4
  6. package/dist/device/blindtilt.d.ts.map +1 -1
  7. package/dist/device/blindtilt.js +68 -66
  8. package/dist/device/blindtilt.js.map +1 -1
  9. package/dist/device/bot.d.ts +1 -4
  10. package/dist/device/bot.d.ts.map +1 -1
  11. package/dist/device/bot.js +63 -59
  12. package/dist/device/bot.js.map +1 -1
  13. package/dist/device/ceilinglight.d.ts +1 -4
  14. package/dist/device/ceilinglight.d.ts.map +1 -1
  15. package/dist/device/ceilinglight.js +56 -65
  16. package/dist/device/ceilinglight.js.map +1 -1
  17. package/dist/device/colorbulb.d.ts +1 -4
  18. package/dist/device/colorbulb.d.ts.map +1 -1
  19. package/dist/device/colorbulb.js +73 -80
  20. package/dist/device/colorbulb.js.map +1 -1
  21. package/dist/device/contact.d.ts +1 -4
  22. package/dist/device/contact.d.ts.map +1 -1
  23. package/dist/device/contact.js +38 -38
  24. package/dist/device/contact.js.map +1 -1
  25. package/dist/device/curtain.d.ts +1 -4
  26. package/dist/device/curtain.d.ts.map +1 -1
  27. package/dist/device/curtain.js +60 -60
  28. package/dist/device/curtain.js.map +1 -1
  29. package/dist/device/device.d.ts +6 -6
  30. package/dist/device/device.d.ts.map +1 -1
  31. package/dist/device/device.js +86 -20
  32. package/dist/device/device.js.map +1 -1
  33. package/dist/device/fan.d.ts +1 -4
  34. package/dist/device/fan.d.ts.map +1 -1
  35. package/dist/device/fan.js +50 -51
  36. package/dist/device/fan.js.map +1 -1
  37. package/dist/device/hub.d.ts +1 -4
  38. package/dist/device/hub.d.ts.map +1 -1
  39. package/dist/device/hub.js +48 -48
  40. package/dist/device/hub.js.map +1 -1
  41. package/dist/device/humidifier.d.ts +1 -4
  42. package/dist/device/humidifier.d.ts.map +1 -1
  43. package/dist/device/humidifier.js +53 -55
  44. package/dist/device/humidifier.js.map +1 -1
  45. package/dist/device/iosensor.d.ts +1 -4
  46. package/dist/device/iosensor.d.ts.map +1 -1
  47. package/dist/device/iosensor.js +35 -35
  48. package/dist/device/iosensor.js.map +1 -1
  49. package/dist/device/lightstrip.d.ts +1 -4
  50. package/dist/device/lightstrip.d.ts.map +1 -1
  51. package/dist/device/lightstrip.js +57 -65
  52. package/dist/device/lightstrip.js.map +1 -1
  53. package/dist/device/lock.d.ts +1 -4
  54. package/dist/device/lock.d.ts.map +1 -1
  55. package/dist/device/lock.js +38 -39
  56. package/dist/device/lock.js.map +1 -1
  57. package/dist/device/meter.d.ts +1 -4
  58. package/dist/device/meter.d.ts.map +1 -1
  59. package/dist/device/meter.js +35 -35
  60. package/dist/device/meter.js.map +1 -1
  61. package/dist/device/meterplus.d.ts +1 -4
  62. package/dist/device/meterplus.d.ts.map +1 -1
  63. package/dist/device/meterplus.js +35 -35
  64. package/dist/device/meterplus.js.map +1 -1
  65. package/dist/device/motion.d.ts +1 -4
  66. package/dist/device/motion.d.ts.map +1 -1
  67. package/dist/device/motion.js +27 -27
  68. package/dist/device/motion.js.map +1 -1
  69. package/dist/device/plug.d.ts +1 -4
  70. package/dist/device/plug.d.ts.map +1 -1
  71. package/dist/device/plug.js +32 -32
  72. package/dist/device/plug.js.map +1 -1
  73. package/dist/device/robotvacuumcleaner.d.ts +1 -4
  74. package/dist/device/robotvacuumcleaner.d.ts.map +1 -1
  75. package/dist/device/robotvacuumcleaner.js +39 -40
  76. package/dist/device/robotvacuumcleaner.js.map +1 -1
  77. package/dist/device/waterdetector.d.ts +1 -4
  78. package/dist/device/waterdetector.d.ts.map +1 -1
  79. package/dist/device/waterdetector.js +28 -28
  80. package/dist/device/waterdetector.js.map +1 -1
  81. package/dist/irdevice/airconditioner.d.ts +1 -1
  82. package/dist/irdevice/airconditioner.d.ts.map +1 -1
  83. package/dist/irdevice/airconditioner.js +31 -32
  84. package/dist/irdevice/airconditioner.js.map +1 -1
  85. package/dist/irdevice/airpurifier.d.ts +1 -1
  86. package/dist/irdevice/airpurifier.d.ts.map +1 -1
  87. package/dist/irdevice/airpurifier.js +11 -12
  88. package/dist/irdevice/airpurifier.js.map +1 -1
  89. package/dist/irdevice/camera.d.ts +1 -1
  90. package/dist/irdevice/camera.d.ts.map +1 -1
  91. package/dist/irdevice/camera.js +9 -10
  92. package/dist/irdevice/camera.js.map +1 -1
  93. package/dist/irdevice/fan.d.ts +1 -1
  94. package/dist/irdevice/fan.d.ts.map +1 -1
  95. package/dist/irdevice/fan.js +22 -23
  96. package/dist/irdevice/fan.js.map +1 -1
  97. package/dist/irdevice/irdevice.d.ts +6 -6
  98. package/dist/irdevice/irdevice.d.ts.map +1 -1
  99. package/dist/irdevice/irdevice.js +28 -14
  100. package/dist/irdevice/irdevice.js.map +1 -1
  101. package/dist/irdevice/light.d.ts +1 -1
  102. package/dist/irdevice/light.d.ts.map +1 -1
  103. package/dist/irdevice/light.js +12 -13
  104. package/dist/irdevice/light.js.map +1 -1
  105. package/dist/irdevice/other.d.ts +1 -1
  106. package/dist/irdevice/other.d.ts.map +1 -1
  107. package/dist/irdevice/other.js +12 -15
  108. package/dist/irdevice/other.js.map +1 -1
  109. package/dist/irdevice/tv.d.ts +1 -1
  110. package/dist/irdevice/tv.d.ts.map +1 -1
  111. package/dist/irdevice/tv.js +27 -28
  112. package/dist/irdevice/tv.js.map +1 -1
  113. package/dist/irdevice/vacuumcleaner.d.ts +1 -1
  114. package/dist/irdevice/vacuumcleaner.d.ts.map +1 -1
  115. package/dist/irdevice/vacuumcleaner.js +9 -10
  116. package/dist/irdevice/vacuumcleaner.js.map +1 -1
  117. package/dist/irdevice/waterheater.d.ts +1 -1
  118. package/dist/irdevice/waterheater.d.ts.map +1 -1
  119. package/dist/irdevice/waterheater.js +9 -10
  120. package/dist/irdevice/waterheater.js.map +1 -1
  121. package/dist/platform.d.ts +9 -22
  122. package/dist/platform.d.ts.map +1 -1
  123. package/dist/platform.js +154 -260
  124. package/dist/platform.js.map +1 -1
  125. package/dist/settings.d.ts +64 -82
  126. package/dist/settings.d.ts.map +1 -1
  127. package/dist/settings.js +0 -20
  128. package/dist/settings.js.map +1 -1
  129. package/dist/utils.d.ts +1 -102
  130. package/dist/utils.d.ts.map +1 -1
  131. package/dist/utils.js +0 -105
  132. package/dist/utils.js.map +1 -1
  133. package/docs/assets/highlight.css +42 -0
  134. package/docs/assets/main.js +1 -1
  135. package/docs/functions/default.html +1 -1
  136. package/docs/index.html +61 -50
  137. package/docs/media/security-privacy-bluetooth.png +0 -0
  138. package/package.json +5 -7
  139. package/src/device/blindtilt.ts +74 -74
  140. package/src/device/bot.ts +68 -67
  141. package/src/device/ceilinglight.ts +59 -70
  142. package/src/device/colorbulb.ts +79 -88
  143. package/src/device/contact.ts +40 -43
  144. package/src/device/curtain.ts +66 -68
  145. package/src/device/device.ts +86 -40
  146. package/src/device/fan.ts +52 -56
  147. package/src/device/hub.ts +50 -53
  148. package/src/device/humidifier.ts +56 -61
  149. package/src/device/iosensor.ts +37 -40
  150. package/src/device/lightstrip.ts +62 -72
  151. package/src/device/lock.ts +41 -45
  152. package/src/device/meter.ts +37 -40
  153. package/src/device/meterplus.ts +37 -40
  154. package/src/device/motion.ts +29 -32
  155. package/src/device/plug.ts +34 -37
  156. package/src/device/robotvacuumcleaner.ts +41 -49
  157. package/src/device/waterdetector.ts +30 -33
  158. package/src/irdevice/airconditioner.ts +33 -35
  159. package/src/irdevice/airpurifier.ts +12 -13
  160. package/src/irdevice/camera.ts +10 -11
  161. package/src/irdevice/fan.ts +24 -25
  162. package/src/irdevice/irdevice.ts +31 -27
  163. package/src/irdevice/light.ts +14 -15
  164. package/src/irdevice/other.ts +14 -17
  165. package/src/irdevice/tv.ts +28 -29
  166. package/src/irdevice/vacuumcleaner.ts +10 -11
  167. package/src/irdevice/waterheater.ts +10 -11
  168. package/src/platform.ts +178 -287
  169. package/src/settings.ts +67 -88
  170. package/src/utils.ts +2 -106
  171. package/dist/types/bledevicestatus.d.ts +0 -281
  172. package/dist/types/bledevicestatus.d.ts.map +0 -1
  173. package/dist/types/bledevicestatus.js +0 -2
  174. package/dist/types/bledevicestatus.js.map +0 -1
  175. package/dist/types/devicelist.d.ts +0 -89
  176. package/dist/types/devicelist.d.ts.map +0 -1
  177. package/dist/types/devicelist.js +0 -6
  178. package/dist/types/devicelist.js.map +0 -1
  179. package/dist/types/deviceresponse.d.ts +0 -13
  180. package/dist/types/deviceresponse.d.ts.map +0 -1
  181. package/dist/types/deviceresponse.js +0 -2
  182. package/dist/types/deviceresponse.js.map +0 -1
  183. package/dist/types/devicestatus.d.ts +0 -149
  184. package/dist/types/devicestatus.d.ts.map +0 -1
  185. package/dist/types/devicestatus.js +0 -3
  186. package/dist/types/devicestatus.js.map +0 -1
  187. package/dist/types/devicewebhookstatus.d.ts +0 -156
  188. package/dist/types/devicewebhookstatus.d.ts.map +0 -1
  189. package/dist/types/devicewebhookstatus.js +0 -2
  190. package/dist/types/devicewebhookstatus.js.map +0 -1
  191. package/dist/types/irdevicelist.d.ts +0 -10
  192. package/dist/types/irdevicelist.d.ts.map +0 -1
  193. package/dist/types/irdevicelist.js +0 -2
  194. package/dist/types/irdevicelist.js.map +0 -1
  195. package/dist/types/pushbody.d.ts +0 -6
  196. package/dist/types/pushbody.d.ts.map +0 -1
  197. package/dist/types/pushbody.js +0 -2
  198. package/dist/types/pushbody.js.map +0 -1
  199. package/src/types/bledevicestatus.ts +0 -303
  200. package/src/types/devicelist.ts +0 -124
  201. package/src/types/deviceresponse.ts +0 -14
  202. package/src/types/devicestatus.ts +0 -178
  203. package/src/types/devicewebhookstatus.ts +0 -191
  204. package/src/types/irdevicelist.ts +0 -15
  205. package/src/types/pushbody.ts +0 -9
package/src/settings.ts CHANGED
@@ -4,10 +4,11 @@
4
4
  */
5
5
  import type { IClientOptions } from 'async-mqtt'
6
6
  import type { PlatformConfig } from 'homebridge'
7
- import type { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from 'node-switchbot'
8
-
9
- import type { device } from './types/devicelist'
10
- import type { irdevice } from './types/irdevicelist'
7
+ /*
8
+ * For Testing Locally:
9
+ * import type { device, irdevice, SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '/Users/Shared/GitHub/OpenWonderLabs/node-switchbot/dist/index.js';
10
+ */
11
+ import type { device, irdevice, SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from 'node-switchbot'
11
12
  /**
12
13
  * This is the name of the platform that users will use to register the plugin in the Homebridge config.json
13
14
  */
@@ -18,41 +19,16 @@ export const PLATFORM_NAME = 'SwitchBot'
18
19
  */
19
20
  export const PLUGIN_NAME = '@switchbot/homebridge-switchbot'
20
21
 
21
- /**
22
- * This is the main url used to access SwitchBot API
23
- */
24
- export const Devices = 'https://api.switch-bot.com/v1.1/devices'
25
-
26
- /**
27
- * This is the updateWebhook url used to access SwitchBot API
28
- */
29
- export const setupWebhook = 'https://api.switch-bot.com/v1.1/webhook/setupWebhook'
30
-
31
- /**
32
- * This is the updateWebhook url used to access SwitchBot API
33
- */
34
- export const queryWebhook = 'https://api.switch-bot.com/v1.1/webhook/queryWebhook'
35
-
36
- /**
37
- * This is the updateWebhook url used to access SwitchBot API
38
- */
39
- export const updateWebhook = 'https://api.switch-bot.com/v1.1/webhook/updateWebhook'
40
-
41
- /**
42
- * This is the deleteWebhook url used to access SwitchBot API
43
- */
44
- export const deleteWebhook = 'https://api.switch-bot.com/v1.1/webhook/deleteWebhook'
45
-
46
22
  // Config
47
23
  export interface SwitchBotPlatformConfig extends PlatformConfig {
48
24
  credentials?: credentials
49
25
  options?: options
26
+ deviceConfig?: { [deviceType: string]: devicesConfig }
50
27
  }
51
28
  interface credentials {
52
- token?: any
53
- secret?: any
54
- notice?: any
55
- openToken?: any
29
+ token?: string
30
+ secret?: string
31
+ notice?: string
56
32
  }
57
33
 
58
34
  export interface options {
@@ -63,6 +39,9 @@ export interface options {
63
39
  mqttOptions?: IClientOptions
64
40
  mqttPubOptions?: IClientOptions
65
41
  BLE?: boolean
42
+ discoverBLE?: boolean
43
+ disableLogsforBLE?: boolean
44
+ disableLogsforOpenAPI?: boolean
66
45
  webhookURL?: string
67
46
  maxRetries?: number
68
47
  delayBetweenRetries?: number
@@ -72,7 +51,9 @@ export interface options {
72
51
  logging?: string
73
52
  };
74
53
 
75
- export interface devicesConfig extends device {
54
+ export type devicesConfig = botConfig | meterConfig | indoorOutdoorSensorConfig | humidifierConfig | curtainConfig | blindTiltConfig | contactConfig | motionConfig | waterDetectorConfig | colorBulbConfig | stripLightConfig | ceilingLightConfig | lockConfig | hubConfig
55
+
56
+ export interface BaseDeviceConfig extends device {
76
57
  bleMac?: string
77
58
  model: string
78
59
  bleModel: SwitchBotBLEModel
@@ -101,50 +82,41 @@ export interface devicesConfig extends device {
101
82
  mqttPubOptions?: IClientOptions
102
83
  history?: boolean
103
84
  webhook?: boolean
104
- bot?: bot
105
- meter?: meter
106
- iosensor?: iosensor
107
- humidifier?: humidifier
108
- curtain?: curtain
109
- blindTilt?: blindTilt
110
- contact?: contact
111
- motion?: motion
112
- waterdetector?: waterdetector
113
- colorbulb?: colorbulb
114
- striplight?: striplight
115
- ceilinglight?: ceilinglight
116
- plug?: plug
117
- lock?: lock
118
- hub?: hub
119
85
  }
120
86
 
121
- interface meter {
87
+ export interface botConfig extends BaseDeviceConfig {
88
+ configDeviceType: 'Bot'
89
+ mode?: string
90
+ type: string
91
+ doublePress?: number
92
+ pushRatePress?: number
93
+ allowPush?: boolean
94
+ multiPress?: boolean
95
+ };
96
+
97
+ export interface meterConfig extends BaseDeviceConfig {
98
+ configDeviceType: 'Meter' | 'MeterPlus'
122
99
  hide_temperature?: boolean
123
100
  convertUnitTo?: string
124
101
  hide_humidity?: boolean
125
102
  };
126
103
 
127
- interface iosensor {
104
+ export interface indoorOutdoorSensorConfig extends BaseDeviceConfig {
105
+ configDeviceType: 'IOSensor'
128
106
  hide_temperature?: boolean
129
107
  convertUnitTo?: string
130
108
  hide_humidity?: boolean
131
109
  };
132
110
 
133
- interface bot {
134
- mode?: string
135
- deviceType?: string
136
- doublePress?: number
137
- pushRatePress?: number
138
- allowPush?: boolean
139
- multiPress?: boolean
140
- };
141
-
142
- interface humidifier {
111
+ export interface humidifierConfig extends BaseDeviceConfig {
112
+ configDeviceType: 'Humidifier'
143
113
  hide_temperature?: boolean
114
+ convertUnitTo?: string
144
115
  set_minStep?: number
145
116
  };
146
117
 
147
- interface curtain {
118
+ export interface curtainConfig extends BaseDeviceConfig {
119
+ configDeviceType: 'Curtain' | 'Curtain3'
148
120
  disable_group?: boolean
149
121
  hide_lightsensor?: boolean
150
122
  set_minLux?: number
@@ -157,7 +129,9 @@ interface curtain {
157
129
  silentModeSwitch?: boolean
158
130
  };
159
131
 
160
- interface blindTilt {
132
+ export interface blindTiltConfig extends BaseDeviceConfig {
133
+ configDeviceType: 'Blind Tilt'
134
+ disable_group?: boolean
161
135
  mode?: string
162
136
  hide_lightsensor?: boolean
163
137
  set_minLux?: number
@@ -170,54 +144,64 @@ interface blindTilt {
170
144
  silentModeSwitch?: boolean
171
145
  };
172
146
 
173
- interface contact {
147
+ export interface contactConfig extends BaseDeviceConfig {
148
+ configDeviceType: 'Contact Sensor'
174
149
  hide_lightsensor?: boolean
175
150
  set_minLux?: number
176
151
  set_maxLux?: number
177
152
  hide_motionsensor?: boolean
178
153
  };
179
154
 
180
- interface motion {
155
+ export interface motionConfig extends BaseDeviceConfig {
156
+ configDeviceType: 'Motion Sensor'
181
157
  hide_lightsensor?: boolean
182
158
  set_minLux?: number
183
159
  set_maxLux?: number
184
160
  };
185
161
 
186
- interface waterdetector {
162
+ export interface waterDetectorConfig extends BaseDeviceConfig {
163
+ configDeviceType: 'Water Detector'
187
164
  hide_leak?: boolean
188
165
  dry?: boolean
189
166
  };
190
167
 
191
- interface colorbulb {
168
+ export interface colorBulbConfig extends BaseDeviceConfig {
169
+ configDeviceType: 'Color Bulb'
192
170
  set_minStep?: number
193
171
  adaptiveLightingShift?: number
194
172
  };
195
173
 
196
- interface striplight {
174
+ export interface stripLightConfig extends BaseDeviceConfig {
175
+ configDeviceType: 'Strip Light'
197
176
  set_minStep?: number
198
177
  adaptiveLightingShift?: number
199
178
  };
200
179
 
201
- interface ceilinglight {
180
+ export interface ceilingLightConfig extends BaseDeviceConfig {
181
+ configDeviceType: 'Ceiling Light' | 'Ceiling Light Pro'
202
182
  set_minStep?: number
203
183
  adaptiveLightingShift?: number
204
184
  };
205
185
 
206
- type plug = object
207
-
208
- interface lock {
186
+ export interface lockConfig extends BaseDeviceConfig {
187
+ configDeviceType: 'Lock' | 'Lock Pro'
209
188
  hide_contactsensor?: boolean
210
189
  activate_latchbutton?: boolean
211
190
  };
212
191
 
213
- interface hub {
192
+ export interface hubConfig extends BaseDeviceConfig {
193
+ configDeviceType: 'Hub2'
214
194
  hide_temperature?: boolean
215
195
  convertUnitTo?: string
216
196
  hide_humidity?: boolean
217
197
  hide_lightsensor?: boolean
198
+ set_minLux?: number
199
+ set_maxLux?: number
218
200
  };
219
201
 
220
- export interface irDevicesConfig extends irdevice {
202
+ export type irDevicesConfig = irFanConfig | irLightConfig | irAirConfig | irOtherConfig
203
+
204
+ export interface irBaseDeviceConfig extends irdevice {
221
205
  configDeviceName?: string
222
206
  configRemoteType?: string
223
207
  connectionType?: string
@@ -233,18 +217,10 @@ export interface irDevicesConfig extends irdevice {
233
217
  disablePushOn?: boolean
234
218
  disablePushOff?: boolean
235
219
  disablePushDetail?: boolean
236
- irfan?: irfan
237
- irair?: irair
238
- irpur?: Record<any, any>
239
- ircam?: Record<any, any>
240
- irlight?: irlight
241
- irvc?: Record<any, any>
242
- irwh?: Record<any, any>
243
- irtv?: Record<any, any>
244
- other?: other
245
220
  }
246
221
 
247
- interface irfan {
222
+ export interface irFanConfig extends irBaseDeviceConfig {
223
+ configRemoteType?: 'Fan' | 'DIY Fan'
248
224
  swing_mode?: boolean
249
225
  rotation_speed?: boolean
250
226
  set_minStep?: number
@@ -252,11 +228,13 @@ interface irfan {
252
228
  set_min?: number
253
229
  };
254
230
 
255
- interface irlight {
231
+ export interface irLightConfig extends irBaseDeviceConfig {
232
+ configRemoteType?: 'Light' | 'DIY Light'
256
233
  stateless?: boolean
257
234
  };
258
235
 
259
- interface irair {
236
+ export interface irAirConfig extends irBaseDeviceConfig {
237
+ configRemoteType?: 'Air Conditioner' | 'DIY Air Conditioner'
260
238
  hide_automode?: boolean
261
239
  set_max_heat?: number
262
240
  set_min_heat?: number
@@ -267,6 +245,7 @@ interface irair {
267
245
  meterUuid?: string
268
246
  };
269
247
 
270
- interface other {
271
- deviceType?: string
248
+ export interface irOtherConfig extends irBaseDeviceConfig {
249
+ configRemoteType?: 'Others'
250
+ type?: string
272
251
  };
package/src/utils.ts CHANGED
@@ -2,113 +2,9 @@
2
2
  *
3
3
  * util.ts: @switchbot/homebridge-switchbot platform class.
4
4
  */
5
- import type { devicesConfig } from './settings.js'
6
- import type { blindTilt, curtain, curtain3, device } from './types/devicelist.js'
7
-
8
- export enum SwitchBotModel {
9
- HubMini = 'W0202200',
10
- HubPlus = 'SwitchBot Hub S1',
11
- Hub2 = 'W3202100',
12
- Bot = 'SwitchBot S1',
13
- Curtain = 'W0701600',
14
- Curtain3 = 'W2400000',
15
- Humidifier = 'W0801800',
16
- Plug = 'SP11', // Currently only available in Japan
17
- Meter = 'SwitchBot MeterTH S1',
18
- MeterPlusJP = 'W2201500',
19
- MeterPlusUS = 'W2301500',
20
- OutdoorMeter = 'W3400010',
21
- MotionSensor = 'W1101500',
22
- ContactSensor = 'W1201500',
23
- ColorBulb = 'W1401400',
24
- StripLight = 'W1701100',
25
- PlugMiniUS = 'W1901400/W1901401',
26
- PlugMiniJP = 'W2001400/W2001401',
27
- Lock = 'W1601700',
28
- LockPro = 'W3500000',
29
- Keypad = 'W2500010',
30
- KeypadTouch = 'W2500020',
31
- K10 = 'K10+',
32
- WoSweeper = 'WoSweeper',
33
- WoSweeperMini = 'WoSweeperMini',
34
- RobotVacuumCleanerS1 = 'W3011000', // Currently only available in Japan.
35
- RobotVacuumCleanerS1Plus = 'W3011010', // Currently only available in Japan.
36
- RobotVacuumCleanerS10 = 'W3211800',
37
- Remote = 'Remote',
38
- UniversalRemote = 'UniversalRemote',
39
- CeilingLight = 'W2612230/W2612240', // Currently only available in Japan.
40
- CeilingLightPro = 'W2612210/W2612220', // Currently only available in Japan.
41
- IndoorCam = 'W1301200',
42
- PanTiltCam = 'W1801200',
43
- PanTiltCam2K = 'W3101100',
44
- BlindTilt = 'W2701600',
45
- BatteryCirculatorFan = 'W3800510',
46
- WaterDetector = 'W4402000',
47
- Unknown = 'Unknown',
48
- }
49
-
50
- export enum SwitchBotBLEModel {
51
- Bot = 'H',
52
- Curtain = 'c',
53
- Curtain3 = '{',
54
- Humidifier = 'e',
55
- Meter = 'T',
56
- MeterPlus = 'i',
57
- Hub2 = 'v',
58
- OutdoorMeter = 'w',
59
- MotionSensor = 's',
60
- ContactSensor = 'd',
61
- ColorBulb = 'u',
62
- StripLight = 'r',
63
- PlugMiniUS = 'g',
64
- PlugMiniJP = 'j',
65
- Lock = 'o',
66
- CeilingLight = 'q', // Currently only available in Japan.
67
- CeilingLightPro = 'n', // Currently only available in Japan.
68
- BlindTilt = 'x',
69
- Unknown = 'Unknown',
70
- }
5
+ import type { blindTilt, curtain, curtain3, device } from 'node-switchbot'
71
6
 
72
- export enum SwitchBotBLEModelName {
73
- Bot = 'WoHand',
74
- Hub2 = 'WoHub2',
75
- ColorBulb = 'WoBulb',
76
- Curtain = 'WoCurtain',
77
- Curtain3 = 'WoCurtain3',
78
- Humidifier = 'WoHumi',
79
- Meter = 'WoSensorTH',
80
- Lock = 'WoSmartLock',
81
- PlugMini = 'WoPlugMini',
82
- StripLight = 'WoStrip',
83
- MeterPlus = 'WoSensorTHPlus',
84
- OutdoorMeter = 'WoIOSensorTH',
85
- ContactSensor = 'WoContact',
86
- MotionSensor = 'WoMotion',
87
- BlindTilt = 'WoBlindTilt',
88
- Unknown = 'Unknown',
89
- }
90
-
91
- export enum SwitchBotBLEModelFriendlyName {
92
- Bot = 'Bot',
93
- Hub2 = 'Hub 2',
94
- ColorBulb = 'Color Bulb',
95
- Curtain = 'Curtain',
96
- Curtain3 = 'Curtain 3',
97
- Humidifier = 'Humidifier',
98
- Meter = 'Meter',
99
- Lock = 'Lock',
100
- LockPro = 'Lock Pro',
101
- PlugMini = 'Plug Mini',
102
- StripLight = 'Strip Light',
103
- MeterPlus = 'Meter Plus',
104
- OutdoorMeter = 'Outdoor Meter',
105
- ContactSensor = 'Contact Sensor',
106
- MotionSensor = 'Motion Sensor',
107
- BlindTilt = 'Blind Tilt',
108
- CeilingLight = 'Ceiling Light',
109
- CeilingLightPro = 'Ceiling Light Pro',
110
- Unknown = 'Unknown',
111
- }
7
+ import type { devicesConfig } from './settings.js'
112
8
 
113
9
  export enum BlindTiltMappingMode {
114
10
  OnlyUp = 'only_up',
@@ -1,281 +0,0 @@
1
- import type { MacAddress } from 'homebridge';
2
- import type { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from 'node-switchbot';
3
- export interface switchbot {
4
- discover: (arg0: {
5
- duration?: any;
6
- model: string;
7
- quick: boolean;
8
- id?: MacAddress;
9
- }) => Promise<any>;
10
- wait: (arg0: number) => any;
11
- }
12
- export interface ad {
13
- id: string;
14
- address: string;
15
- rssi: number;
16
- serviceData: botServiceData | colorBulbServiceData | contactSensorServiceData | curtainServiceData | curtain3ServiceData | stripLightServiceData | lockServiceData | lockProServiceData | meterServiceData | meterPlusServiceData | motionSensorServiceData | outdoorMeterServiceData | plugMiniUSServiceData | plugMiniJPServiceData | blindTiltServiceData | ceilingLightServiceData | ceilingLightProServiceData | hub2ServiceData | batteryCirculatorFanServiceData | waterLeakDetectorServiceData | humidifierServiceData | robotVacuumCleanerServiceData;
17
- }
18
- interface serviceData {
19
- model: string;
20
- modelName: string;
21
- }
22
- export type botServiceData = serviceData & {
23
- model: SwitchBotBLEModel.Bot;
24
- modelName: SwitchBotBLEModelName.Bot;
25
- modelFriendlyName: SwitchBotBLEModelFriendlyName.Bot;
26
- mode: string;
27
- state: boolean;
28
- battery: number;
29
- };
30
- export type colorBulbServiceData = serviceData & {
31
- model: SwitchBotBLEModel.ColorBulb;
32
- modelName: SwitchBotBLEModelName.ColorBulb;
33
- modelFriendlyName: SwitchBotBLEModelFriendlyName.ColorBulb;
34
- color_temperature: number;
35
- power: boolean;
36
- state: boolean;
37
- red: number;
38
- green: number;
39
- blue: number;
40
- brightness: number;
41
- delay: number;
42
- preset: number;
43
- color_mode: number;
44
- speed: number;
45
- loop_index: number;
46
- };
47
- export type contactSensorServiceData = serviceData & {
48
- model: SwitchBotBLEModel.ContactSensor;
49
- modelName: SwitchBotBLEModelName.ContactSensor;
50
- modelFriendlyName: SwitchBotBLEModelFriendlyName.ContactSensor;
51
- movement: boolean;
52
- tested: boolean;
53
- battery: number;
54
- contact_open: boolean;
55
- contact_timeout: boolean;
56
- lightLevel: string;
57
- button_count: number;
58
- doorState: string;
59
- };
60
- export type curtainServiceData = serviceData & {
61
- model: SwitchBotBLEModel.Curtain;
62
- modelName: SwitchBotBLEModelName.Curtain;
63
- modelFriendlyName: SwitchBotBLEModelFriendlyName.Curtain;
64
- calibration: boolean;
65
- battery: number;
66
- inMotion: boolean;
67
- position: number;
68
- lightLevel: number;
69
- deviceChain: number;
70
- };
71
- export type curtain3ServiceData = serviceData & {
72
- model: SwitchBotBLEModel.Curtain3;
73
- modelName: SwitchBotBLEModelName.Curtain3;
74
- modelFriendlyName: SwitchBotBLEModelFriendlyName.Curtain3;
75
- calibration: boolean;
76
- battery: number;
77
- inMotion: boolean;
78
- position: number;
79
- lightLevel: number;
80
- deviceChain: number;
81
- };
82
- export type stripLightServiceData = serviceData & {
83
- model: SwitchBotBLEModel.StripLight;
84
- modelName: SwitchBotBLEModelName.StripLight;
85
- modelFriendlyName: SwitchBotBLEModelFriendlyName.StripLight;
86
- power: boolean;
87
- state: boolean;
88
- red: number;
89
- green: number;
90
- blue: number;
91
- brightness: number;
92
- delay: number;
93
- preset: number;
94
- color_mode: number;
95
- speed: number;
96
- loop_index: number;
97
- };
98
- export type lockServiceData = serviceData & {
99
- model: SwitchBotBLEModel.Lock;
100
- modelName: SwitchBotBLEModelName.Lock;
101
- modelFriendlyName: SwitchBotBLEModelFriendlyName.Lock;
102
- battery: number;
103
- calibration: boolean;
104
- status: string;
105
- update_from_secondary_lock: boolean;
106
- door_open: string;
107
- double_lock_mode: boolean;
108
- unclosed_alarm: boolean;
109
- unlocked_alarm: boolean;
110
- auto_lock_paused: boolean;
111
- night_latch: boolean;
112
- };
113
- export type lockProServiceData = serviceData & {
114
- model: SwitchBotBLEModel.LockPro;
115
- modelName: SwitchBotBLEModelName.LockPro;
116
- modelFriendlyName: SwitchBotBLEModelFriendlyName.LockPro;
117
- battery: number;
118
- calibration: boolean;
119
- status: string;
120
- update_from_secondary_lock: boolean;
121
- door_open: string;
122
- double_lock_mode: boolean;
123
- unclosed_alarm: boolean;
124
- unlocked_alarm: boolean;
125
- auto_lock_paused: boolean;
126
- night_latch: boolean;
127
- };
128
- export type meterServiceData = serviceData & {
129
- model: SwitchBotBLEModel.Meter;
130
- modelName: SwitchBotBLEModelName.Meter;
131
- modelFriendlyName: SwitchBotBLEModelFriendlyName.Meter;
132
- celsius: number;
133
- fahrenheit: number;
134
- fahrenheit_mode: boolean;
135
- humidity: number;
136
- battery: number;
137
- };
138
- export type meterPlusServiceData = serviceData & {
139
- model: SwitchBotBLEModel.MeterPlus;
140
- modelName: SwitchBotBLEModelName.MeterPlus;
141
- modelFriendlyName: SwitchBotBLEModelFriendlyName.MeterPlus;
142
- celsius: number;
143
- fahrenheit: number;
144
- fahrenheit_mode: boolean;
145
- humidity: number;
146
- battery: number;
147
- };
148
- export type outdoorMeterServiceData = serviceData & {
149
- model: SwitchBotBLEModel.OutdoorMeter;
150
- modelName: SwitchBotBLEModelName.OutdoorMeter;
151
- modelFriendlyName: SwitchBotBLEModelFriendlyName.OutdoorMeter;
152
- celsius: number;
153
- fahrenheit: number;
154
- fahrenheit_mode: boolean;
155
- humidity: number;
156
- battery: number;
157
- };
158
- export type motionSensorServiceData = serviceData & {
159
- model: SwitchBotBLEModel.MotionSensor;
160
- modelName: SwitchBotBLEModelName.MotionSensor;
161
- modelFriendlyName: SwitchBotBLEModelFriendlyName.MotionSensor;
162
- tested: boolean;
163
- movement: boolean;
164
- battery: number;
165
- led: number;
166
- iot: number;
167
- sense_distance: number;
168
- lightLevel: string;
169
- is_light: boolean;
170
- };
171
- export type plugMiniUSServiceData = serviceData & {
172
- model: SwitchBotBLEModel.PlugMiniUS;
173
- modelName: SwitchBotBLEModelName.PlugMini;
174
- modelFriendlyName: SwitchBotBLEModelFriendlyName.PlugMini;
175
- state: string;
176
- delay: boolean;
177
- timer: boolean;
178
- syncUtcTime: boolean;
179
- wifiRssi: number;
180
- overload: boolean;
181
- currentPower: number;
182
- };
183
- export type plugMiniJPServiceData = serviceData & {
184
- model: SwitchBotBLEModel.PlugMiniUS;
185
- modelName: SwitchBotBLEModelName.PlugMini;
186
- modelFriendlyName: SwitchBotBLEModelFriendlyName.PlugMini;
187
- state: string;
188
- delay: boolean;
189
- timer: boolean;
190
- syncUtcTime: boolean;
191
- wifiRssi: number;
192
- overload: boolean;
193
- currentPower: number;
194
- };
195
- export type blindTiltServiceData = serviceData & {
196
- model: SwitchBotBLEModel.BlindTilt;
197
- modelName: SwitchBotBLEModelName.BlindTilt;
198
- modelFriendlyName: SwitchBotBLEModelFriendlyName.BlindTilt;
199
- calibration: boolean;
200
- battery: number;
201
- inMotion: boolean;
202
- tilt: number;
203
- lightLevel: number;
204
- };
205
- export type ceilingLightServiceData = serviceData & {
206
- model: SwitchBotBLEModel.CeilingLight;
207
- modelName: SwitchBotBLEModelName.CeilingLight;
208
- modelFriendlyName: SwitchBotBLEModelFriendlyName.CeilingLight;
209
- color_temperature: number;
210
- power: boolean;
211
- state: boolean;
212
- red: number;
213
- green: number;
214
- blue: number;
215
- brightness: number;
216
- delay: number;
217
- preset: number;
218
- color_mode: number;
219
- speed: number;
220
- loop_index: number;
221
- };
222
- export type ceilingLightProServiceData = serviceData & {
223
- model: SwitchBotBLEModel.CeilingLightPro;
224
- modelName: SwitchBotBLEModelName.CeilingLightPro;
225
- modelFriendlyName: SwitchBotBLEModelFriendlyName.CeilingLightPro;
226
- color_temperature: number;
227
- power: boolean;
228
- state: boolean;
229
- red: number;
230
- green: number;
231
- blue: number;
232
- brightness: number;
233
- delay: number;
234
- preset: number;
235
- color_mode: number;
236
- speed: number;
237
- loop_index: number;
238
- };
239
- export type hub2ServiceData = serviceData & {
240
- model: SwitchBotBLEModel.Hub2;
241
- modelName: SwitchBotBLEModelName.Hub2;
242
- modelFriendlyName: SwitchBotBLEModelFriendlyName.Hub2;
243
- celsius: number;
244
- fahrenheit: number;
245
- fahrenheit_mode: boolean;
246
- humidity: number;
247
- lightLevel: number;
248
- };
249
- export type batteryCirculatorFanServiceData = serviceData & {
250
- model: SwitchBotBLEModel.Unknown;
251
- modelName: SwitchBotBLEModelName.Unknown;
252
- modelFriendlyName: SwitchBotBLEModelFriendlyName.Unknown;
253
- state: string;
254
- fanSpeed: number;
255
- };
256
- export type waterLeakDetectorServiceData = serviceData & {
257
- model: SwitchBotBLEModel.Unknown;
258
- modelName: SwitchBotBLEModelName.Unknown;
259
- modelFriendlyName: SwitchBotBLEModelFriendlyName.Unknown;
260
- state: boolean;
261
- status: number;
262
- battery: number;
263
- };
264
- export type humidifierServiceData = serviceData & {
265
- model: SwitchBotBLEModel.Humidifier;
266
- modelName: SwitchBotBLEModelName.Humidifier;
267
- modelFriendlyName: SwitchBotBLEModelFriendlyName.Humidifier;
268
- onState: boolean;
269
- autoMode: boolean;
270
- percentage: number;
271
- humidity: number;
272
- };
273
- export type robotVacuumCleanerServiceData = serviceData & {
274
- model: SwitchBotBLEModel.Unknown;
275
- modelName: SwitchBotBLEModelName.Unknown;
276
- modelFriendlyName: SwitchBotBLEModelFriendlyName.Unknown;
277
- state: string;
278
- battery: number;
279
- };
280
- export {};
281
- //# sourceMappingURL=bledevicestatus.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bledevicestatus.d.ts","sourceRoot":"","sources":["../../src/types/bledevicestatus.ts"],"names":[],"mappings":"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"}