@switchbot/homebridge-switchbot 3.5.1-beta.2 → 3.5.1-beta.4

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 (187) hide show
  1. package/dist/device/blindtilt.d.ts +15 -6
  2. package/dist/device/blindtilt.d.ts.map +1 -1
  3. package/dist/device/blindtilt.js +203 -255
  4. package/dist/device/blindtilt.js.map +1 -1
  5. package/dist/device/bot.d.ts +9 -4
  6. package/dist/device/bot.d.ts.map +1 -1
  7. package/dist/device/bot.js +196 -218
  8. package/dist/device/bot.js.map +1 -1
  9. package/dist/device/ceilinglight.d.ts +9 -4
  10. package/dist/device/ceilinglight.d.ts.map +1 -1
  11. package/dist/device/ceilinglight.js +202 -247
  12. package/dist/device/ceilinglight.js.map +1 -1
  13. package/dist/device/colorbulb.d.ts +10 -5
  14. package/dist/device/colorbulb.d.ts.map +1 -1
  15. package/dist/device/colorbulb.js +329 -378
  16. package/dist/device/colorbulb.js.map +1 -1
  17. package/dist/device/contact.d.ts +9 -4
  18. package/dist/device/contact.d.ts.map +1 -1
  19. package/dist/device/contact.js +99 -142
  20. package/dist/device/contact.js.map +1 -1
  21. package/dist/device/curtain.d.ts +19 -7
  22. package/dist/device/curtain.d.ts.map +1 -1
  23. package/dist/device/curtain.js +203 -264
  24. package/dist/device/curtain.js.map +1 -1
  25. package/dist/device/device.d.ts +28 -32
  26. package/dist/device/device.d.ts.map +1 -1
  27. package/dist/device/device.js +186 -225
  28. package/dist/device/device.js.map +1 -1
  29. package/dist/device/fan.d.ts +9 -4
  30. package/dist/device/fan.d.ts.map +1 -1
  31. package/dist/device/fan.js +198 -227
  32. package/dist/device/fan.js.map +1 -1
  33. package/dist/device/hub.d.ts +9 -5
  34. package/dist/device/hub.d.ts.map +1 -1
  35. package/dist/device/hub.js +106 -231
  36. package/dist/device/hub.js.map +1 -1
  37. package/dist/device/humidifier.d.ts +12 -4
  38. package/dist/device/humidifier.d.ts.map +1 -1
  39. package/dist/device/humidifier.js +192 -232
  40. package/dist/device/humidifier.js.map +1 -1
  41. package/dist/device/iosensor.d.ts +9 -4
  42. package/dist/device/iosensor.d.ts.map +1 -1
  43. package/dist/device/iosensor.js +91 -157
  44. package/dist/device/iosensor.js.map +1 -1
  45. package/dist/device/lightstrip.d.ts +10 -5
  46. package/dist/device/lightstrip.d.ts.map +1 -1
  47. package/dist/device/lightstrip.js +287 -367
  48. package/dist/device/lightstrip.js.map +1 -1
  49. package/dist/device/lock.d.ts +10 -5
  50. package/dist/device/lock.d.ts.map +1 -1
  51. package/dist/device/lock.js +171 -216
  52. package/dist/device/lock.js.map +1 -1
  53. package/dist/device/meter.d.ts +9 -4
  54. package/dist/device/meter.d.ts.map +1 -1
  55. package/dist/device/meter.js +93 -158
  56. package/dist/device/meter.js.map +1 -1
  57. package/dist/device/meterplus.d.ts +9 -4
  58. package/dist/device/meterplus.d.ts.map +1 -1
  59. package/dist/device/meterplus.js +94 -155
  60. package/dist/device/meterplus.js.map +1 -1
  61. package/dist/device/motion.d.ts +9 -4
  62. package/dist/device/motion.d.ts.map +1 -1
  63. package/dist/device/motion.js +84 -142
  64. package/dist/device/motion.js.map +1 -1
  65. package/dist/device/plug.d.ts +9 -4
  66. package/dist/device/plug.d.ts.map +1 -1
  67. package/dist/device/plug.js +99 -124
  68. package/dist/device/plug.js.map +1 -1
  69. package/dist/device/robotvacuumcleaner.d.ts +9 -6
  70. package/dist/device/robotvacuumcleaner.d.ts.map +1 -1
  71. package/dist/device/robotvacuumcleaner.js +170 -253
  72. package/dist/device/robotvacuumcleaner.js.map +1 -1
  73. package/dist/device/waterdetector.d.ts +12 -4
  74. package/dist/device/waterdetector.d.ts.map +1 -1
  75. package/dist/device/waterdetector.js +102 -128
  76. package/dist/device/waterdetector.js.map +1 -1
  77. package/dist/irdevice/airconditioner.d.ts +2 -1
  78. package/dist/irdevice/airconditioner.d.ts.map +1 -1
  79. package/dist/irdevice/airconditioner.js.map +1 -1
  80. package/dist/irdevice/airpurifier.d.ts +2 -1
  81. package/dist/irdevice/airpurifier.d.ts.map +1 -1
  82. package/dist/irdevice/airpurifier.js.map +1 -1
  83. package/dist/irdevice/camera.d.ts +2 -1
  84. package/dist/irdevice/camera.d.ts.map +1 -1
  85. package/dist/irdevice/camera.js.map +1 -1
  86. package/dist/irdevice/fan.d.ts +2 -1
  87. package/dist/irdevice/fan.d.ts.map +1 -1
  88. package/dist/irdevice/fan.js.map +1 -1
  89. package/dist/irdevice/irdevice.d.ts +2 -1
  90. package/dist/irdevice/irdevice.d.ts.map +1 -1
  91. package/dist/irdevice/irdevice.js +1 -1
  92. package/dist/irdevice/irdevice.js.map +1 -1
  93. package/dist/irdevice/light.d.ts +2 -1
  94. package/dist/irdevice/light.d.ts.map +1 -1
  95. package/dist/irdevice/light.js.map +1 -1
  96. package/dist/irdevice/other.d.ts +2 -1
  97. package/dist/irdevice/other.d.ts.map +1 -1
  98. package/dist/irdevice/other.js.map +1 -1
  99. package/dist/irdevice/tv.d.ts +2 -1
  100. package/dist/irdevice/tv.d.ts.map +1 -1
  101. package/dist/irdevice/tv.js.map +1 -1
  102. package/dist/irdevice/vacuumcleaner.d.ts +2 -1
  103. package/dist/irdevice/vacuumcleaner.d.ts.map +1 -1
  104. package/dist/irdevice/vacuumcleaner.js.map +1 -1
  105. package/dist/irdevice/waterheater.d.ts +2 -1
  106. package/dist/irdevice/waterheater.d.ts.map +1 -1
  107. package/dist/irdevice/waterheater.js.map +1 -1
  108. package/dist/platform.d.ts +5 -7
  109. package/dist/platform.d.ts.map +1 -1
  110. package/dist/platform.js +51 -34
  111. package/dist/platform.js.map +1 -1
  112. package/dist/settings.d.ts +49 -191
  113. package/dist/settings.d.ts.map +1 -1
  114. package/dist/settings.js +19 -0
  115. package/dist/settings.js.map +1 -1
  116. package/dist/types/bledevicestatus.d.ts +279 -0
  117. package/dist/types/bledevicestatus.d.ts.map +1 -0
  118. package/dist/types/bledevicestatus.js +2 -0
  119. package/dist/types/bledevicestatus.js.map +1 -0
  120. package/dist/types/devicelist.d.ts +89 -0
  121. package/dist/types/devicelist.d.ts.map +1 -0
  122. package/dist/types/devicelist.js +6 -0
  123. package/dist/types/devicelist.js.map +1 -0
  124. package/dist/types/deviceresponse.d.ts +13 -0
  125. package/dist/types/deviceresponse.d.ts.map +1 -0
  126. package/dist/types/deviceresponse.js +2 -0
  127. package/dist/types/deviceresponse.js.map +1 -0
  128. package/dist/types/devicestatus.d.ts +149 -0
  129. package/dist/types/devicestatus.d.ts.map +1 -0
  130. package/dist/types/devicestatus.js +3 -0
  131. package/dist/types/devicestatus.js.map +1 -0
  132. package/dist/types/devicewebhookstatus.d.ts +156 -0
  133. package/dist/types/devicewebhookstatus.d.ts.map +1 -0
  134. package/dist/types/devicewebhookstatus.js +2 -0
  135. package/dist/types/devicewebhookstatus.js.map +1 -0
  136. package/dist/types/irdevicelist.d.ts +10 -0
  137. package/dist/types/irdevicelist.d.ts.map +1 -0
  138. package/dist/types/irdevicelist.js +2 -0
  139. package/dist/types/irdevicelist.js.map +1 -0
  140. package/dist/types/pushbody.d.ts +6 -0
  141. package/dist/types/pushbody.d.ts.map +1 -0
  142. package/dist/types/pushbody.js +2 -0
  143. package/dist/types/pushbody.js.map +1 -0
  144. package/dist/utils.d.ts +25 -0
  145. package/dist/utils.d.ts.map +1 -1
  146. package/dist/utils.js +28 -0
  147. package/dist/utils.js.map +1 -1
  148. package/package.json +10 -10
  149. package/src/device/blindtilt.ts +224 -264
  150. package/src/device/bot.ts +208 -221
  151. package/src/device/ceilinglight.ts +210 -257
  152. package/src/device/colorbulb.ts +334 -397
  153. package/src/device/contact.ts +111 -146
  154. package/src/device/curtain.ts +220 -283
  155. package/src/device/device.ts +194 -245
  156. package/src/device/fan.ts +214 -230
  157. package/src/device/hub.ts +126 -246
  158. package/src/device/humidifier.ts +216 -243
  159. package/src/device/iosensor.ts +114 -166
  160. package/src/device/lightstrip.ts +302 -377
  161. package/src/device/lock.ts +187 -221
  162. package/src/device/meter.ts +116 -177
  163. package/src/device/meterplus.ts +117 -174
  164. package/src/device/motion.ts +99 -144
  165. package/src/device/plug.ts +110 -128
  166. package/src/device/robotvacuumcleaner.ts +189 -252
  167. package/src/device/waterdetector.ts +120 -138
  168. package/src/irdevice/airconditioner.ts +2 -1
  169. package/src/irdevice/airpurifier.ts +2 -1
  170. package/src/irdevice/camera.ts +2 -1
  171. package/src/irdevice/fan.ts +2 -1
  172. package/src/irdevice/irdevice.ts +3 -2
  173. package/src/irdevice/light.ts +2 -1
  174. package/src/irdevice/other.ts +2 -1
  175. package/src/irdevice/tv.ts +2 -1
  176. package/src/irdevice/vacuumcleaner.ts +2 -1
  177. package/src/irdevice/waterheater.ts +2 -1
  178. package/src/platform.ts +52 -34
  179. package/src/settings.ts +30 -239
  180. package/src/types/bledevicestatus.ts +305 -0
  181. package/src/types/devicelist.ts +124 -0
  182. package/src/types/deviceresponse.ts +15 -0
  183. package/src/types/devicestatus.ts +178 -0
  184. package/src/types/devicewebhookstatus.ts +196 -0
  185. package/src/types/irdevicelist.ts +15 -0
  186. package/src/types/pushbody.ts +9 -0
  187. package/src/utils.ts +33 -0
@@ -0,0 +1,305 @@
1
+ /* Copyright(C) 2017-2024, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * bledevicestatus.ts: @switchbot/homebridge-switchbot platform class.
4
+ */
5
+ import type { MacAddress } from 'homebridge';
6
+ import type { SwitchBotBLEModel, SwitchBotBLEModelName, SwitchBotBLEModelFriendlyName } from 'node-switchbot';
7
+
8
+ export type switchbot = {
9
+ discover: (arg0: { duration?: any; model: string; quick: boolean; id?: MacAddress }) => Promise<any>;
10
+ wait: (arg0: number) => any;
11
+ };
12
+
13
+ export type ad = {
14
+ id: string;
15
+ address: string;
16
+ rssi: number;
17
+ serviceData: botServiceData | colorBulbServiceData | contactSensorServiceData |
18
+ curtainServiceData | curtain3ServiceData | stripLightServiceData | lockServiceData |
19
+ lockProServiceData | meterServiceData | meterPlusServiceData | motionSensorServiceData |
20
+ plugMiniUSServiceData | plugMiniJPServiceData | blindTiltServiceData;
21
+ };
22
+
23
+ type serviceData = {
24
+ model: string,
25
+ modelName: string,
26
+ };
27
+
28
+ export type botServiceData = serviceData & {
29
+ model: SwitchBotBLEModel.Bot,
30
+ modelName: SwitchBotBLEModelName.Bot,
31
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.Bot,
32
+ mode: string;
33
+ state: boolean;
34
+ battery: number;
35
+ };
36
+
37
+ export type colorBulbServiceData = serviceData & {
38
+ model: SwitchBotBLEModel.ColorBulb,
39
+ modelName: SwitchBotBLEModelName.ColorBulb,
40
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.ColorBulb,
41
+ color_temperature: number;
42
+ power: boolean;
43
+ state: boolean;
44
+ red: number;
45
+ green: number;
46
+ blue: number;
47
+ brightness: number;
48
+ delay: number;
49
+ preset: number;
50
+ color_mode: number;
51
+ speed: number;
52
+ loop_index: number;
53
+ };
54
+
55
+ export type contactSensorServiceData = serviceData & {
56
+ model: SwitchBotBLEModel.ContactSensor,
57
+ modelName: SwitchBotBLEModelName.ContactSensor,
58
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.ContactSensor,
59
+ movement: boolean;
60
+ tested: boolean;
61
+ battery: number;
62
+ contact_open: boolean;
63
+ contact_timeout: boolean;
64
+ lightLevel: string;
65
+ button_count: number;
66
+ doorState: string;
67
+ };
68
+
69
+ export type curtainServiceData = serviceData & {
70
+ model: SwitchBotBLEModel.Curtain,
71
+ modelName: SwitchBotBLEModelName.Curtain,
72
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.Curtain,
73
+ calibration: boolean;
74
+ battery: number;
75
+ inMotion: boolean;
76
+ position: number;
77
+ lightLevel: number;
78
+ deviceChain: number;
79
+ };
80
+
81
+ export type curtain3ServiceData = serviceData & {
82
+ model: SwitchBotBLEModel.Curtain3,
83
+ modelName: SwitchBotBLEModelName.Curtain3,
84
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.Curtain3,
85
+ calibration: boolean;
86
+ battery: number;
87
+ inMotion: boolean;
88
+ position: number;
89
+ lightLevel: number;
90
+ deviceChain: number;
91
+ };
92
+
93
+ export type stripLightServiceData = serviceData & {
94
+ model: SwitchBotBLEModel.StripLight,
95
+ modelName: SwitchBotBLEModelName.StripLight,
96
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.StripLight,
97
+ power: boolean;
98
+ state: boolean;
99
+ red: number;
100
+ green: number;
101
+ blue: number;
102
+ brightness: number;
103
+ delay: number;
104
+ preset: number;
105
+ color_mode: number;
106
+ speed: number;
107
+ loop_index: number;
108
+ };
109
+
110
+ export type lockServiceData = serviceData & {
111
+ model: SwitchBotBLEModel.Lock,
112
+ modelName: SwitchBotBLEModelName.Lock,
113
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.Lock,
114
+ battery: number;
115
+ calibration: boolean;
116
+ status: string;
117
+ update_from_secondary_lock: boolean;
118
+ door_open: string;
119
+ double_lock_mode: boolean;
120
+ unclosed_alarm: boolean;
121
+ unlocked_alarm: boolean;
122
+ auto_lock_paused: boolean;
123
+ night_latch: boolean;
124
+ };
125
+
126
+ export type lockProServiceData = serviceData & {
127
+ model: SwitchBotBLEModel.LockPro,
128
+ modelName: SwitchBotBLEModelName.LockPro,
129
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.LockPro,
130
+ battery: number;
131
+ calibration: boolean;
132
+ status: string;
133
+ update_from_secondary_lock: boolean;
134
+ door_open: string;
135
+ double_lock_mode: boolean;
136
+ unclosed_alarm: boolean;
137
+ unlocked_alarm: boolean;
138
+ auto_lock_paused: boolean;
139
+ night_latch: boolean;
140
+ };
141
+
142
+ export type meterServiceData = serviceData & {
143
+ model: SwitchBotBLEModel.Meter,
144
+ modelName: SwitchBotBLEModelName.Meter,
145
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.Meter,
146
+ temperature: temperature;
147
+ fahrenheit: boolean;
148
+ humidity: number;
149
+ battery: number;
150
+ };
151
+
152
+ export type meterPlusServiceData = serviceData & {
153
+ model: SwitchBotBLEModel.MeterPlus,
154
+ modelName: SwitchBotBLEModelName.MeterPlus,
155
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.MeterPlus,
156
+ temperature: temperature;
157
+ fahrenheit: boolean;
158
+ humidity: number;
159
+ battery: number;
160
+ };
161
+
162
+ export type outdoorMeterServiceData = serviceData & {
163
+ model: SwitchBotBLEModel.OutdoorMeter,
164
+ modelName: SwitchBotBLEModelName.OutdoorMeter,
165
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.OutdoorMeter,
166
+ temperature: temperature;
167
+ fahrenheit: boolean;
168
+ humidity: number;
169
+ battery: number;
170
+ };
171
+
172
+ export type motionSensorServiceData = serviceData & {
173
+ model: SwitchBotBLEModel.MotionSensor,
174
+ modelName: SwitchBotBLEModelName.MotionSensor,
175
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.MotionSensor,
176
+ tested: boolean;
177
+ movement: boolean;
178
+ battery: number;
179
+ led: number;
180
+ iot: number;
181
+ sense_distance: number;
182
+ lightLevel: string;
183
+ is_light: boolean;
184
+ };
185
+
186
+ export type plugMiniUSServiceData = serviceData & {
187
+ model: SwitchBotBLEModel.PlugMiniUS,
188
+ modelName: SwitchBotBLEModelName.PlugMini,
189
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.PlugMini,
190
+ state: string;
191
+ delay: boolean;
192
+ timer: boolean;
193
+ syncUtcTime: boolean;
194
+ wifiRssi: number;
195
+ overload: boolean;
196
+ currentPower: number;
197
+ };
198
+
199
+ export type plugMiniJPServiceData = serviceData & {
200
+ model: SwitchBotBLEModel.PlugMiniUS,
201
+ modelName: SwitchBotBLEModelName.PlugMini,
202
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.PlugMini,
203
+ state: string;
204
+ delay: boolean;
205
+ timer: boolean;
206
+ syncUtcTime: boolean;
207
+ wifiRssi: number;
208
+ overload: boolean;
209
+ currentPower: number;
210
+ };
211
+
212
+ export type blindTiltServiceData = serviceData & {
213
+ model: SwitchBotBLEModel.BlindTilt,
214
+ modelName: SwitchBotBLEModelName.BlindTilt,
215
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.BlindTilt,
216
+ calibration: boolean;
217
+ battery: number;
218
+ inMotion: boolean;
219
+ tilt: number;
220
+ lightLevel: number;
221
+ };
222
+
223
+ export type ceilingLightServiceData = serviceData & {
224
+ model: SwitchBotBLEModel.CeilingLight,
225
+ modelName: SwitchBotBLEModelName.CeilingLight,
226
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.CeilingLight,
227
+ color_temperature: number;
228
+ power: boolean;
229
+ state: boolean;
230
+ red: number;
231
+ green: number;
232
+ blue: number;
233
+ brightness: number;
234
+ delay: number;
235
+ preset: number;
236
+ color_mode: number;
237
+ speed: number;
238
+ loop_index: number;
239
+ };
240
+
241
+ export type ceilingLightProServiceData = serviceData & {
242
+ model: SwitchBotBLEModel.CeilingLightPro,
243
+ modelName: SwitchBotBLEModelName.CeilingLightPro,
244
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.CeilingLightPro,
245
+ color_temperature: number;
246
+ power: boolean;
247
+ state: boolean;
248
+ red: number;
249
+ green: number;
250
+ blue: number;
251
+ brightness: number;
252
+ delay: number;
253
+ preset: number;
254
+ color_mode: number;
255
+ speed: number;
256
+ loop_index: number;
257
+ };
258
+
259
+ export type hub2ServiceData = serviceData & {
260
+ model: SwitchBotBLEModel.Hub2,
261
+ modelName: SwitchBotBLEModelName.Hub2,
262
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.Hub2,
263
+ temperature: temperature;
264
+ fahrenheit: boolean;
265
+ humidity: number;
266
+ lightLevel: number;
267
+ };
268
+
269
+ export type batteryCirculatorFanServiceData = serviceData & {
270
+ model: SwitchBotBLEModel.Unknown,
271
+ modelName: SwitchBotBLEModelName.Unknown,
272
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.Unknown,
273
+ state: string;
274
+ };
275
+
276
+ export type waterLeakDetectorServiceData = serviceData & {
277
+ model: SwitchBotBLEModel.Unknown,
278
+ modelName: SwitchBotBLEModelName.Unknown,
279
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.Unknown,
280
+ state: boolean;
281
+ status: number;
282
+ battery: number;
283
+ };
284
+
285
+ export type humidifierServiceData = serviceData & {
286
+ model: SwitchBotBLEModel.Humidifier,
287
+ modelName: SwitchBotBLEModelName.Humidifier,
288
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.Humidifier,
289
+ onState: boolean;
290
+ autoMode: boolean;
291
+ percentage: number;
292
+ };
293
+
294
+ export type robotVacuumCleanerServiceData = serviceData & {
295
+ model: SwitchBotBLEModel.Unknown,
296
+ modelName: SwitchBotBLEModelName.Unknown,
297
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.Unknown,
298
+ state: string;
299
+ battery: number;
300
+ };
301
+
302
+ export type temperature = {
303
+ c: number;
304
+ f: number;
305
+ };
@@ -0,0 +1,124 @@
1
+ /* Copyright(C) 2017-2024, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * devicelist.ts: @switchbot/homebridge-switchbot platform class.
4
+ */
5
+
6
+ export type deviceList = {
7
+ device: device[];
8
+ };
9
+
10
+ export type device = {
11
+ deviceId: string;
12
+ deviceName: string;
13
+ deviceType: string;
14
+ enableCloudService: boolean;
15
+ hubDeviceId: string;
16
+ version?: number;
17
+ };
18
+
19
+ export type bot = device & {};
20
+
21
+ export type curtain = device & {
22
+ curtainDevicesIds: string[];
23
+ calibrate: boolean;
24
+ group: boolean;
25
+ master: boolean;
26
+ openDirection: string;
27
+ };
28
+
29
+ export type curtain3 = device & {
30
+ curtainDevicesIds: string[];
31
+ calibrate: boolean;
32
+ group: boolean;
33
+ master: boolean;
34
+ openDirection?: string;
35
+ };
36
+
37
+ export type hub2 = device & {};
38
+
39
+ export type meter = device & {};
40
+
41
+ export type meterPlus = device & {};
42
+
43
+ export type outdoorMeter = device & {};
44
+
45
+ export type lock = device & {
46
+ group: boolean;
47
+ master: boolean;
48
+ groupName: string;
49
+ lockDevicesIds: string[];
50
+ };
51
+
52
+ export type lockPro = device & {
53
+ group: boolean;
54
+ master: boolean;
55
+ groupName: string;
56
+ lockDevicesIds: string[];
57
+ };
58
+
59
+ export type keypad = device & {
60
+ remoteType: string;
61
+ lockDeviceId: string;
62
+ keyList: keyList
63
+ };
64
+
65
+ export type keypadTouch = device & {
66
+ remoteType: string;
67
+ lockDeviceId: string;
68
+ keyList: keyList
69
+ };
70
+
71
+ type keyList = {
72
+ id: number;
73
+ name: string;
74
+ type: string;
75
+ password: string;
76
+ iv: string;
77
+ status: string;
78
+ createTime: number;
79
+ };
80
+
81
+ export type remote = device & {};
82
+
83
+ export type motionSensor = device & {};
84
+
85
+ export type contactSensor = device & {};
86
+
87
+ export type waterLeakDetector = device & {};
88
+
89
+ export type ceilingLight = device & {};
90
+
91
+ export type ceilingLightPro = device & {};
92
+
93
+ export type plug = device & {};
94
+
95
+ export type plugMini = device & {};
96
+
97
+ export type stripLight = device & {};
98
+
99
+ export type colorBulb = device & {};
100
+
101
+ export type robotVacuumCleanerS1 = device & {};
102
+
103
+ export type robotVacuumCleanerS1Plus = device & {};
104
+
105
+ export type floorCleaningRobotS10 = device & {};
106
+
107
+ export type humidifier = device & {};
108
+
109
+ export type indoorCam = device & {};
110
+
111
+ export type pantiltCam = device & {};
112
+
113
+ export type pantiltCam2k = device & {};
114
+
115
+ export type blindTilt = device & {
116
+ blindTiltDevicesIds: string[];
117
+ calibrate: boolean;
118
+ group: boolean;
119
+ master: boolean;
120
+ direction: string;
121
+ slidePosition: number;
122
+ };
123
+
124
+ export type batteryCirculatorFan = device & {};
@@ -0,0 +1,15 @@
1
+ import type { deviceList } from './devicelist';
2
+ import type { infraredRemoteList } from './irdevicelist';
3
+
4
+
5
+ //json response from SwitchBot API
6
+ export type devices = {
7
+ statusCode: 100 | 190 | 'n/a';
8
+ message: string;
9
+ body: body;
10
+ };
11
+
12
+ type body = {
13
+ deviceList: deviceList;
14
+ infraredRemoteList: infraredRemoteList;
15
+ };
@@ -0,0 +1,178 @@
1
+ import type { device } from './devicelist';
2
+
3
+ /* Copyright(C) 2017-2024, donavanbecker (https://github.com/donavanbecker). All rights reserved.
4
+ *
5
+ * devicestatus.ts: @switchbot/homebridge-switchbot platform class.
6
+ */
7
+ export type deviceStatusRequest = {
8
+ statusCode: number;
9
+ message: string;
10
+ body: deviceStatus;
11
+ };
12
+
13
+ export interface deviceStatus extends device {
14
+ //properties on all devices
15
+ deviceId: string;
16
+ deviceType: string;
17
+ hubDeviceId: string;
18
+ version: number;
19
+ };
20
+
21
+ export type botStatus = deviceStatus & {
22
+ power: string;
23
+ battery: number;
24
+ mode: 'pressMode' | 'switchMode' | 'customizeMode';
25
+ };
26
+
27
+ export type curtainStatus = deviceStatus & {
28
+ calibrate: boolean;
29
+ group: boolean;
30
+ moving: boolean;
31
+ battery: number;
32
+ slidePosition: number;
33
+ lightLevel?: 'bright' | 'dim';
34
+ };
35
+
36
+ export type meterStatus = deviceStatus & {
37
+ temperature: number;
38
+ battery: number;
39
+ humidity: number;
40
+ };
41
+
42
+ export type meterPlusStatus = deviceStatus & {
43
+ temperature: number;
44
+ battery: number;
45
+ humidity: number;
46
+ };
47
+
48
+ export type outdoorMeterStatus = deviceStatus & {
49
+ battery: number;
50
+ temperature: number;
51
+ humidity: number;
52
+ };
53
+
54
+ export type lockStatus = deviceStatus & {
55
+ lockState: string;
56
+ doorState: string;
57
+ moveDetected: boolean;
58
+ battery: number;
59
+ };
60
+
61
+ export type lockProStatus = deviceStatus & {
62
+ lockState: string;
63
+ doorState: string;
64
+ moveDetected: boolean;
65
+ battery: number;
66
+ };
67
+
68
+ export type motionSensorStatus = deviceStatus & {
69
+ battery: number;
70
+ moveDetected: boolean;
71
+ brightness: 'bright' | 'dim';
72
+ };
73
+
74
+ export type contactSensorStatus = deviceStatus & {
75
+ battery: number;
76
+ moveDetected: boolean;
77
+ openState: 'open' | 'close' | 'timeOutNotClose';
78
+ brightness: 'bright' | 'dim';
79
+ };
80
+
81
+ export type waterLeakDetectorStatus = deviceStatus & {
82
+ battery: number;
83
+ status: 0 /*dry*/ | 1 /*leak detected*/;
84
+ };
85
+
86
+ export type ceilingLightStatus = deviceStatus & {
87
+ power: boolean;
88
+ brightness: number;
89
+ colorTemperature: number;
90
+ };
91
+
92
+ export type ceilingLightProStatus = deviceStatus & {
93
+ power: boolean;
94
+ brightness: number;
95
+ colorTemperature: number;
96
+ };
97
+
98
+ export type plugStatus = deviceStatus & {
99
+ power: string;
100
+ version: string;
101
+ };
102
+
103
+ export type plugMiniStatus = deviceStatus & {
104
+ voltage: Float64Array;
105
+ weight: Float64Array;
106
+ electricityOfDay: number;
107
+ electricCurrent: Float64Array;
108
+ power: string;
109
+ };
110
+
111
+ export type stripLightStatus = deviceStatus & {
112
+ power: string;
113
+ brightness: number;
114
+ color: string;
115
+ };
116
+
117
+ export type colorBulbStatus = deviceStatus & {
118
+ power: string;
119
+ brightness: number;
120
+ color: string;
121
+ colorTemperature: number;
122
+ };
123
+
124
+ export type robotVacuumCleanerS1Status = deviceStatus & {
125
+ workingStatus: string;
126
+ onlineStatus: string;
127
+ battery: number;
128
+ };
129
+
130
+ export type robotVacuumCleanerS1PlusStatus = deviceStatus & {
131
+ workingStatus: string;
132
+ onlineStatus: string;
133
+ battery: number;
134
+ };
135
+
136
+ export type floorCleaningRobotS10Status = deviceStatus & {
137
+ workingStatus: string;
138
+ onlineStatus: string;
139
+ battery: number;
140
+ waterBaseBattery: number;
141
+ taskType: string;
142
+ };
143
+
144
+ export type humidifierStatus = deviceStatus & {
145
+ power: string;
146
+ humidity: number;
147
+ temperature: number;
148
+ nebulizationEfficiency: number;
149
+ auto: boolean;
150
+ childLock: boolean;
151
+ sound: boolean;
152
+ lackWater: boolean;
153
+ };
154
+
155
+ export type blindTiltStatus = deviceStatus & {
156
+ calibrate: boolean;
157
+ battery: boolean;
158
+ direction: string;
159
+ slidePosition: string;
160
+ lightLevel?: 'bright' | 'dim';
161
+ };
162
+
163
+ export type hub2Status = deviceStatus & {
164
+ temperature: number;
165
+ lightLevel: number;
166
+ humidity: number;
167
+ };
168
+
169
+ export type batteryCirculatorFanStatus = deviceStatus & {
170
+ mode: 'direct' | 'natural' | 'sleep' | 'baby';
171
+ battery: number;
172
+ power: string;
173
+ nightStatus: number;
174
+ oscillation: string;
175
+ verticalOscillation: string;
176
+ chargingStatus: string;
177
+ fanSpeed: number;
178
+ };