@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.
- package/.github/npm-version-script.cjs +81 -0
- package/.github/workflows/beta-release.yml +12 -4
- package/CHANGELOG.md +15 -1
- package/config.schema.json +583 -937
- package/dist/device/blindtilt.d.ts +1 -4
- package/dist/device/blindtilt.d.ts.map +1 -1
- package/dist/device/blindtilt.js +68 -66
- package/dist/device/blindtilt.js.map +1 -1
- package/dist/device/bot.d.ts +1 -4
- package/dist/device/bot.d.ts.map +1 -1
- package/dist/device/bot.js +63 -59
- package/dist/device/bot.js.map +1 -1
- package/dist/device/ceilinglight.d.ts +1 -4
- package/dist/device/ceilinglight.d.ts.map +1 -1
- package/dist/device/ceilinglight.js +56 -65
- package/dist/device/ceilinglight.js.map +1 -1
- package/dist/device/colorbulb.d.ts +1 -4
- package/dist/device/colorbulb.d.ts.map +1 -1
- package/dist/device/colorbulb.js +73 -80
- package/dist/device/colorbulb.js.map +1 -1
- package/dist/device/contact.d.ts +1 -4
- package/dist/device/contact.d.ts.map +1 -1
- package/dist/device/contact.js +38 -38
- package/dist/device/contact.js.map +1 -1
- package/dist/device/curtain.d.ts +1 -4
- package/dist/device/curtain.d.ts.map +1 -1
- package/dist/device/curtain.js +60 -60
- package/dist/device/curtain.js.map +1 -1
- package/dist/device/device.d.ts +6 -6
- package/dist/device/device.d.ts.map +1 -1
- package/dist/device/device.js +86 -20
- package/dist/device/device.js.map +1 -1
- package/dist/device/fan.d.ts +1 -4
- package/dist/device/fan.d.ts.map +1 -1
- package/dist/device/fan.js +50 -51
- package/dist/device/fan.js.map +1 -1
- package/dist/device/hub.d.ts +1 -4
- package/dist/device/hub.d.ts.map +1 -1
- package/dist/device/hub.js +48 -48
- package/dist/device/hub.js.map +1 -1
- package/dist/device/humidifier.d.ts +1 -4
- package/dist/device/humidifier.d.ts.map +1 -1
- package/dist/device/humidifier.js +53 -55
- package/dist/device/humidifier.js.map +1 -1
- package/dist/device/iosensor.d.ts +1 -4
- package/dist/device/iosensor.d.ts.map +1 -1
- package/dist/device/iosensor.js +35 -35
- package/dist/device/iosensor.js.map +1 -1
- package/dist/device/lightstrip.d.ts +1 -4
- package/dist/device/lightstrip.d.ts.map +1 -1
- package/dist/device/lightstrip.js +57 -65
- package/dist/device/lightstrip.js.map +1 -1
- package/dist/device/lock.d.ts +1 -4
- package/dist/device/lock.d.ts.map +1 -1
- package/dist/device/lock.js +38 -39
- package/dist/device/lock.js.map +1 -1
- package/dist/device/meter.d.ts +1 -4
- package/dist/device/meter.d.ts.map +1 -1
- package/dist/device/meter.js +35 -35
- package/dist/device/meter.js.map +1 -1
- package/dist/device/meterplus.d.ts +1 -4
- package/dist/device/meterplus.d.ts.map +1 -1
- package/dist/device/meterplus.js +35 -35
- package/dist/device/meterplus.js.map +1 -1
- package/dist/device/motion.d.ts +1 -4
- package/dist/device/motion.d.ts.map +1 -1
- package/dist/device/motion.js +27 -27
- package/dist/device/motion.js.map +1 -1
- package/dist/device/plug.d.ts +1 -4
- package/dist/device/plug.d.ts.map +1 -1
- package/dist/device/plug.js +32 -32
- package/dist/device/plug.js.map +1 -1
- package/dist/device/robotvacuumcleaner.d.ts +1 -4
- package/dist/device/robotvacuumcleaner.d.ts.map +1 -1
- package/dist/device/robotvacuumcleaner.js +39 -40
- package/dist/device/robotvacuumcleaner.js.map +1 -1
- package/dist/device/waterdetector.d.ts +1 -4
- package/dist/device/waterdetector.d.ts.map +1 -1
- package/dist/device/waterdetector.js +28 -28
- package/dist/device/waterdetector.js.map +1 -1
- package/dist/irdevice/airconditioner.d.ts +1 -1
- package/dist/irdevice/airconditioner.d.ts.map +1 -1
- package/dist/irdevice/airconditioner.js +31 -32
- package/dist/irdevice/airconditioner.js.map +1 -1
- package/dist/irdevice/airpurifier.d.ts +1 -1
- package/dist/irdevice/airpurifier.d.ts.map +1 -1
- package/dist/irdevice/airpurifier.js +11 -12
- package/dist/irdevice/airpurifier.js.map +1 -1
- package/dist/irdevice/camera.d.ts +1 -1
- package/dist/irdevice/camera.d.ts.map +1 -1
- package/dist/irdevice/camera.js +9 -10
- package/dist/irdevice/camera.js.map +1 -1
- package/dist/irdevice/fan.d.ts +1 -1
- package/dist/irdevice/fan.d.ts.map +1 -1
- package/dist/irdevice/fan.js +22 -23
- package/dist/irdevice/fan.js.map +1 -1
- package/dist/irdevice/irdevice.d.ts +6 -6
- package/dist/irdevice/irdevice.d.ts.map +1 -1
- package/dist/irdevice/irdevice.js +28 -14
- package/dist/irdevice/irdevice.js.map +1 -1
- package/dist/irdevice/light.d.ts +1 -1
- package/dist/irdevice/light.d.ts.map +1 -1
- package/dist/irdevice/light.js +12 -13
- package/dist/irdevice/light.js.map +1 -1
- package/dist/irdevice/other.d.ts +1 -1
- package/dist/irdevice/other.d.ts.map +1 -1
- package/dist/irdevice/other.js +12 -15
- package/dist/irdevice/other.js.map +1 -1
- package/dist/irdevice/tv.d.ts +1 -1
- package/dist/irdevice/tv.d.ts.map +1 -1
- package/dist/irdevice/tv.js +27 -28
- package/dist/irdevice/tv.js.map +1 -1
- package/dist/irdevice/vacuumcleaner.d.ts +1 -1
- package/dist/irdevice/vacuumcleaner.d.ts.map +1 -1
- package/dist/irdevice/vacuumcleaner.js +9 -10
- package/dist/irdevice/vacuumcleaner.js.map +1 -1
- package/dist/irdevice/waterheater.d.ts +1 -1
- package/dist/irdevice/waterheater.d.ts.map +1 -1
- package/dist/irdevice/waterheater.js +9 -10
- package/dist/irdevice/waterheater.js.map +1 -1
- package/dist/platform.d.ts +9 -22
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +154 -260
- package/dist/platform.js.map +1 -1
- package/dist/settings.d.ts +64 -82
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +0 -20
- package/dist/settings.js.map +1 -1
- package/dist/utils.d.ts +1 -102
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +0 -105
- package/dist/utils.js.map +1 -1
- package/docs/assets/highlight.css +42 -0
- package/docs/assets/main.js +1 -1
- package/docs/functions/default.html +1 -1
- package/docs/index.html +61 -50
- package/docs/media/security-privacy-bluetooth.png +0 -0
- package/package.json +5 -7
- package/src/device/blindtilt.ts +74 -74
- package/src/device/bot.ts +68 -67
- package/src/device/ceilinglight.ts +59 -70
- package/src/device/colorbulb.ts +79 -88
- package/src/device/contact.ts +40 -43
- package/src/device/curtain.ts +66 -68
- package/src/device/device.ts +86 -40
- package/src/device/fan.ts +52 -56
- package/src/device/hub.ts +50 -53
- package/src/device/humidifier.ts +56 -61
- package/src/device/iosensor.ts +37 -40
- package/src/device/lightstrip.ts +62 -72
- package/src/device/lock.ts +41 -45
- package/src/device/meter.ts +37 -40
- package/src/device/meterplus.ts +37 -40
- package/src/device/motion.ts +29 -32
- package/src/device/plug.ts +34 -37
- package/src/device/robotvacuumcleaner.ts +41 -49
- package/src/device/waterdetector.ts +30 -33
- package/src/irdevice/airconditioner.ts +33 -35
- package/src/irdevice/airpurifier.ts +12 -13
- package/src/irdevice/camera.ts +10 -11
- package/src/irdevice/fan.ts +24 -25
- package/src/irdevice/irdevice.ts +31 -27
- package/src/irdevice/light.ts +14 -15
- package/src/irdevice/other.ts +14 -17
- package/src/irdevice/tv.ts +28 -29
- package/src/irdevice/vacuumcleaner.ts +10 -11
- package/src/irdevice/waterheater.ts +10 -11
- package/src/platform.ts +178 -287
- package/src/settings.ts +67 -88
- package/src/utils.ts +2 -106
- package/dist/types/bledevicestatus.d.ts +0 -281
- package/dist/types/bledevicestatus.d.ts.map +0 -1
- package/dist/types/bledevicestatus.js +0 -2
- package/dist/types/bledevicestatus.js.map +0 -1
- package/dist/types/devicelist.d.ts +0 -89
- package/dist/types/devicelist.d.ts.map +0 -1
- package/dist/types/devicelist.js +0 -6
- package/dist/types/devicelist.js.map +0 -1
- package/dist/types/deviceresponse.d.ts +0 -13
- package/dist/types/deviceresponse.d.ts.map +0 -1
- package/dist/types/deviceresponse.js +0 -2
- package/dist/types/deviceresponse.js.map +0 -1
- package/dist/types/devicestatus.d.ts +0 -149
- package/dist/types/devicestatus.d.ts.map +0 -1
- package/dist/types/devicestatus.js +0 -3
- package/dist/types/devicestatus.js.map +0 -1
- package/dist/types/devicewebhookstatus.d.ts +0 -156
- package/dist/types/devicewebhookstatus.d.ts.map +0 -1
- package/dist/types/devicewebhookstatus.js +0 -2
- package/dist/types/devicewebhookstatus.js.map +0 -1
- package/dist/types/irdevicelist.d.ts +0 -10
- package/dist/types/irdevicelist.d.ts.map +0 -1
- package/dist/types/irdevicelist.js +0 -2
- package/dist/types/irdevicelist.js.map +0 -1
- package/dist/types/pushbody.d.ts +0 -6
- package/dist/types/pushbody.d.ts.map +0 -1
- package/dist/types/pushbody.js +0 -2
- package/dist/types/pushbody.js.map +0 -1
- package/src/types/bledevicestatus.ts +0 -303
- package/src/types/devicelist.ts +0 -124
- package/src/types/deviceresponse.ts +0 -14
- package/src/types/devicestatus.ts +0 -178
- package/src/types/devicewebhookstatus.ts +0 -191
- package/src/types/irdevicelist.ts +0 -15
- 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
|
-
|
|
8
|
-
|
|
9
|
-
import type { device } from '
|
|
10
|
-
|
|
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?:
|
|
53
|
-
secret?:
|
|
54
|
-
notice?:
|
|
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
|
|
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
|
|
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
|
|
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
|
|
134
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
231
|
+
export interface irLightConfig extends irBaseDeviceConfig {
|
|
232
|
+
configRemoteType?: 'Light' | 'DIY Light'
|
|
256
233
|
stateless?: boolean
|
|
257
234
|
};
|
|
258
235
|
|
|
259
|
-
interface
|
|
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
|
|
271
|
-
|
|
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 {
|
|
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
|
-
|
|
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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"}
|