@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
@@ -1,191 +0,0 @@
1
- /* Copyright(C) 2017-2024, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
- *
3
- * devicestatus.ts: @switchbot/homebridge-switchbot platform class.
4
- */
5
- interface deviceWebhook {
6
- eventType: string
7
- eventVersion: string
8
- context: deviceWebhookContext
9
- }
10
-
11
- export { deviceWebhook }
12
-
13
- export interface deviceWebhookContext {
14
- // properties on all devices
15
- deviceMac: string
16
- deviceType: string
17
- timeOfSample: number
18
- }
19
-
20
- export type botWebhookContext = deviceWebhookContext & {
21
- power: string // "on"or"off"
22
- battery: number
23
- deviceMode: 'pressMode' | 'switchMode' | 'customizeMode'
24
- }
25
-
26
- export type curtainWebhookContext = deviceWebhookContext & {
27
- calibrate: boolean
28
- group: boolean
29
- slidePosition: number // 0~100
30
- battery: number
31
- }
32
-
33
- export type curtain3WebhookContext = deviceWebhookContext & {
34
- calibrate: boolean
35
- group: boolean
36
- slidePosition: number // 0~100
37
- battery: number
38
- }
39
-
40
- export type motionSensorWebhookContext = deviceWebhookContext & {
41
- detectionState: 'NOT_DETECTED' | 'DETECTED'
42
- }
43
-
44
- export type contactSensorWebhookContext = deviceWebhookContext & {
45
- detectionState: 'NOT_DETECTED' | 'DETECTED'
46
- doorMode: 'IN_DOOR' | 'OUT_DOOR'
47
- brightness: 'dim' | 'bright'
48
- openState: 'open' | 'close' | 'timeOutNotClose'
49
- }
50
-
51
- export type waterLeakDetectorWebhookContext = deviceWebhookContext & {
52
- detectionState: 0 | 1
53
- battery: number // 0~100
54
- }
55
-
56
- export type meterWebhookContext = deviceWebhookContext & {
57
- temperature: number
58
- scale: 'CELSIUS' | 'FAHRENHEIT'
59
- humidity: number
60
- }
61
-
62
- export type meterPlusWebhookContext = deviceWebhookContext & {
63
- temperature: number
64
- scale: 'CELSIUS' | 'FAHRENHEIT'
65
- humidity: number
66
- }
67
-
68
- export type outdoorMeterWebhookContext = deviceWebhookContext & {
69
- temperature: number
70
- scale: 'CELSIUS' | 'FAHRENHEIT'
71
- humidity: number
72
- }
73
-
74
- export type lockWebhookContext = deviceWebhookContext & {
75
- lockState: 'UNLOCKED' | 'LOCKED' | 'JAMMED'
76
- }
77
-
78
- export type lockProWebhookContext = deviceWebhookContext & {
79
- lockState: 'UNLOCKED' | 'LOCKED' | 'JAMMED'
80
- }
81
-
82
- export type indoorCameraWebhookContext = deviceWebhookContext & {
83
- detectionState: 'DETECTED'
84
- }
85
-
86
- export type panTiltCamWebhookContext = deviceWebhookContext & {
87
- detectionState: 'DETECTED'
88
- }
89
-
90
- export type colorBulbWebhookContext = deviceWebhookContext & {
91
- powerState: 'ON' | 'OFF'
92
- brightness: number
93
- color: string // RGB 255:255:255
94
- colorTemperature: number // 2700~6500
95
- }
96
-
97
- export type stripLightWebhookContext = deviceWebhookContext & {
98
- powerState: 'ON' | 'OFF'
99
- brightness: number
100
- color: string // RGB 255:255:255
101
- }
102
-
103
- export type plugWebhookContext = deviceWebhookContext & {
104
- powerState: 'ON' | 'OFF'
105
- }
106
-
107
- export type plugMiniUSWebhookContext = deviceWebhookContext & {
108
- powerState: 'ON' | 'OFF'
109
- }
110
-
111
- export type plugMiniJPWebhookContext = deviceWebhookContext & {
112
- powerState: 'ON' | 'OFF'
113
- }
114
-
115
- export type robotVacuumCleanerS1WebhookContext = deviceWebhookContext & {
116
- workingStatus: 'Standby' | 'Clearing' | 'Paused' | 'GotoChargeBase' | 'Charging' | 'ChargeDone' | 'Dormant' | 'InTrouble' | 'InRemoteControl' | 'InDustCollecting'
117
- onlineStatus: 'online' | 'offline'
118
- battery: number // 0~100
119
- }
120
-
121
- export type robotVacuumCleanerS1PlusWebhookContext = deviceWebhookContext & {
122
- workingStatus: 'Standby' | 'Clearing' | 'Paused' | 'GotoChargeBase' | 'Charging' | 'ChargeDone' | 'Dormant' | 'InTrouble' | 'InRemoteControl' | 'InDustCollecting'
123
- onlineStatus: 'online' | 'offline'
124
- battery: number // 0~100
125
- }
126
-
127
- export type floorCleaningRobotS10WebhookContext = deviceWebhookContext & {
128
- workingStatus: 'Standby' | 'Clearing' | 'Paused' | 'GotoChargeBase' | 'Charging' | 'ChargeDone' | 'Dormant' | 'InTrouble' | 'InRemoteControl' | 'InDustCollecting'
129
- onlineStatus: 'online' | 'offline'
130
- battery: number // 0~100
131
- waterBaseBattery: number // 0~100
132
- taskType: 'standBy' | 'explore' | 'cleanAll' | 'cleanArea' | 'cleanRoom' | 'fillWater' | 'deepWashing' | 'backToCharge' | 'markingWaterBase' | 'drying' | 'collectDust' | 'remoteControl' | 'cleanWithExplorer' | 'fillWaterForHumi' | 'markingHumi'
133
- }
134
-
135
- export type ceilingLightWebhookContext = deviceWebhookContext & {
136
- powerState: 'ON' | 'OFF'
137
- brightness: number
138
- colorTemperature: number // 2700~6500
139
- }
140
-
141
- export type ceilingLightProWebhookContext = deviceWebhookContext & {
142
- powerState: 'ON' | 'OFF'
143
- brightness: number
144
- colorTemperature: number // 2700~6500
145
- }
146
-
147
- export type keypadWebhookContext = deviceWebhookContext & {
148
- eventName: 'createKey' | 'deleteKey'
149
- commandId: string
150
- result: 'success' | 'failed' | 'timeout'
151
- }
152
-
153
- export type keypadTouchWebhookContext = deviceWebhookContext & {
154
- eventName: 'createKey' | 'deleteKey'
155
- commandId: string
156
- result: 'success' | 'failed' | 'timeout'
157
- }
158
-
159
- export type hub2WebhookContext = deviceWebhookContext & {
160
- temperature: number
161
- humidity: number
162
- lightLevel: number
163
- scale: 'CELSIUS' | 'FAHRENHEIT'
164
- }
165
-
166
- export type batteryCirculatorFanWebhookContext = deviceWebhookContext & {
167
- mode: 'direct' | 'natural' | 'sleep' | 'baby'
168
- version: string
169
- battery: number
170
- powerState: 'ON' | 'OFF'
171
- nightStatus: 'off' | 1 | 2
172
- oscillation: 'on' | 'off'
173
- verticalOscillation: 'on' | 'off'
174
- chargingStatus: 'charging' | 'uncharged'
175
- fanSpeed: number // 1~100
176
- }
177
-
178
- export type blindTiltWebhookContext = deviceWebhookContext & {
179
- version: string
180
- calibrate: boolean
181
- group: boolean
182
- direction: string
183
- slidePosition: number // 0~100
184
- battery: number
185
- }
186
-
187
- export type humidifierWebhookContext = deviceWebhookContext & {
188
- temperature: number
189
- humidity: number
190
- scale: 'CELSIUS' | 'FAHRENHEIT'
191
- }
@@ -1,15 +0,0 @@
1
- /* Copyright(C) 2017-2024, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
- *
3
- * irdevicelist.ts: @switchbot/homebridge-switchbot platform class.
4
- */
5
- // a list of virtual infrared remote devices that are linked to SwitchBot Hubs.
6
- export interface infraredRemoteList {
7
- device: irdevice[]
8
- }
9
-
10
- export interface irdevice {
11
- deviceId?: string
12
- deviceName: string
13
- remoteType: string
14
- hubDeviceId: string
15
- }
@@ -1,9 +0,0 @@
1
- /* Copyright(C) 2017-2024, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
- *
3
- * pushbody.ts: @switchbot/homebridge-switchbot platform class.
4
- */
5
- export interface body {
6
- command: string
7
- parameter: string
8
- commandType: string
9
- }