@quec/rn-device-module 1.9.13 → 2.16.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 (80) hide show
  1. package/.vscode/settings.json +3 -0
  2. package/QuecRNDeviceModule.podspec +54 -0
  3. package/README.md +1535 -1043
  4. package/android/build.gradle +119 -0
  5. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  6. package/android/gradle/wrapper/gradle-wrapper.properties +5 -0
  7. package/android/gradle.properties +23 -0
  8. package/android/gradlew +185 -0
  9. package/android/gradlew.bat +89 -0
  10. package/android/old-info.properties +2 -0
  11. package/android/proguard-rules.pro +21 -0
  12. package/android/publishInfo.properties +4 -0
  13. package/android/settings.gradle +3 -0
  14. package/android/src/main/AndroidManifest.xml +6 -0
  15. package/android/src/main/java/com/quectel/smart/rnplugin/quecrndevicemodule/IQuecRNDeviceModuleSpec.java +1352 -0
  16. package/android/src/main/java/com/quectel/smart/rnplugin/quecrndevicemodule/QuecRNDeviceModule.java +2423 -0
  17. package/android/src/main/java/com/quectel/smart/rnplugin/quecrndevicemodule/QuecRNDeviceModulePackage.java +23 -0
  18. package/android/src/main/java/com/quectel/smart/rnplugin/quecrndevicemodule/bean/DataInfo.java +25 -0
  19. package/android/src/main/java/com/quectel/smart/rnplugin/quecrndevicemodule/bean/DataRes.java +31 -0
  20. package/android/src/main/java/com/quectel/smart/rnplugin/quecrndevicemodule/bean/DeviceDpsUpdateModel.java +18 -0
  21. package/android/src/main/java/com/quectel/smart/rnplugin/quecrndevicemodule/bean/ModelBridgeBasic.java +86 -0
  22. package/android/src/main/java/com/quectel/smart/rnplugin/quecrndevicemodule/bean/OtaUpgradePlanModel.java +292 -0
  23. package/android/src/main/java/com/quectel/smart/rnplugin/quecrndevicemodule/bean/ShareInfo.java +166 -0
  24. package/android/src/main/java/com/quectel/smart/rnplugin/quecrndevicemodule/bean/UserInfo.java +137 -0
  25. package/android/src/main/java/com/quectel/smart/rnplugin/quecrndevicemodule/bean/WriteCmdWithId.java +10 -0
  26. package/android/src/main/java/com/quectel/smart/rnplugin/quecrndevicemodule/utils/AnalysisChannelDataUtils.java +82 -0
  27. package/android/src/main/java/com/quectel/smart/rnplugin/quecrndevicemodule/utils/DataConvertUtils.kt +130 -0
  28. package/android/src/main/java/com/quectel/smart/rnplugin/quecrndevicemodule/utils/ErrorCode.java +26 -0
  29. package/android/src/main/java/com/quectel/smart/rnplugin/quecrndevicemodule/utils/ErrorUtils.java +11 -0
  30. package/android/src/main/java/com/quectel/smart/rnplugin/quecrndevicemodule/utils/IpcUtil.java +75 -0
  31. package/android/src/main/java/com/quectel/smart/rnplugin/quecrndevicemodule/utils/NetUtils.java +85 -0
  32. package/android/src/main/java/com/quectel/smart/rnplugin/quecrndevicemodule/utils/OnConnectListener.java +22 -0
  33. package/android/src/main/java/com/quectel/smart/rnplugin/quecrndevicemodule/utils/ParamsValueUtils.java +79 -0
  34. package/android/src/main/java/com/quectel/smart/rnplugin/quecrndevicemodule/utils/QuecIotChannelMode.java +8 -0
  35. package/android/src/main/java/com/quectel/smart/rnplugin/quecrndevicemodule/utils/ReactNativeJson.java +199 -0
  36. package/android/src/main/java/com/quectel/smart/rnplugin/quecrndevicemodule/utils/ResponseUtils.java +156 -0
  37. package/android/src/main/res/values/strings.xml +4 -0
  38. package/android/src/main/res/values-en/strings.xml +4 -0
  39. package/android/src/main/res/values-zh/strings.xml +4 -0
  40. package/android/src/test/java/com/quectel/smart/template/ExampleUnitTest.java +17 -0
  41. package/build.gradle +1 -0
  42. package/gradle/wrapper/gradle-wrapper.jar +0 -0
  43. package/gradle/wrapper/gradle-wrapper.properties +6 -0
  44. package/ios/Example/Podfile +17 -0
  45. package/ios/Example/QuecRNDeviceModule/AppDelegate.h +13 -0
  46. package/ios/Example/QuecRNDeviceModule/AppDelegate.m +46 -0
  47. package/ios/Example/QuecRNDeviceModule/Base.lproj/LaunchScreen.storyboard +31 -0
  48. package/ios/Example/QuecRNDeviceModule/Base.lproj/Main.storyboard +31 -0
  49. package/ios/Example/QuecRNDeviceModule/Images.xcassets/AppIcon.appiconset/Contents.json +98 -0
  50. package/ios/Example/QuecRNDeviceModule/QuecRNDeviceModule-Info.plist +40 -0
  51. package/ios/Example/QuecRNDeviceModule/QuecRNDeviceModule-Prefix.pch +16 -0
  52. package/ios/Example/QuecRNDeviceModule/ViewController.h +12 -0
  53. package/ios/Example/QuecRNDeviceModule/ViewController.m +29 -0
  54. package/ios/Example/QuecRNDeviceModule/en.lproj/InfoPlist.strings +2 -0
  55. package/ios/Example/QuecRNDeviceModule/main.m +15 -0
  56. package/ios/Example/QuecRNDeviceModule.xcodeproj/project.pbxproj +583 -0
  57. package/ios/Example/QuecRNDeviceModule.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  58. package/ios/Example/QuecRNDeviceModule.xcodeproj/xcshareddata/xcschemes/QuecRNDeviceModule-Example.xcscheme +101 -0
  59. package/ios/Example/QuecRNDeviceModule.xcworkspace/contents.xcworkspacedata +10 -0
  60. package/ios/Example/QuecRNDeviceModule.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  61. package/ios/LICENSE +4 -0
  62. package/ios/QuecRNDeviceModule/Assets/.gitkeep +0 -0
  63. package/ios/QuecRNDeviceModule/Classes/QuecRNDeviceModule+Ext.h +27 -0
  64. package/ios/QuecRNDeviceModule/Classes/QuecRNDeviceModule+Impl.h +1137 -0
  65. package/ios/QuecRNDeviceModule/Classes/QuecRNDeviceModule+Impl.m +1524 -0
  66. package/ios/QuecRNDeviceModule/Classes/QuecRNDeviceModule.h +157 -0
  67. package/ios/QuecRNDeviceModule/Classes/QuecRNDeviceModule.m +721 -0
  68. package/ios/README.md +20 -0
  69. package/{.prettierrc.js → js/.prettierrc.js} +11 -11
  70. package/js/README.md +1535 -0
  71. package/js/package.json +25 -0
  72. package/{src → js/src}/index.ts +12 -12
  73. package/{src → js/src}/module.ts +1332 -939
  74. package/{src → js/src}/viewCommon.ts +3 -3
  75. package/js/tsconfig.json +26 -0
  76. package/js/yarn.lock +4 -0
  77. package/package.json +10 -26
  78. package/plugin.ts +1180 -0
  79. package/settings.gradle +2 -0
  80. package/tsconfig.json +9 -0
package/plugin.ts ADDED
@@ -0,0 +1,1180 @@
1
+ import * as d from '@quec/quec-rnplugin-meta/lib/decorators'
2
+ import * as t from '@quec/quec-rnplugin-meta/lib/types'
3
+
4
+ /**
5
+ * 设备桥组件
6
+ */
7
+ @d.Plugin("QuecRNDeviceModule", "3.2.0", t.PluginType.Module, ["vic.huang@quectel.com"], t.Platforms.All)
8
+ export class QuecRNPlugin {
9
+
10
+ /**
11
+ 获取当前设备WS订阅通道状态,订阅状态为true,不代表设备在线,只代表app和云端对当前设备进行了订阅
12
+ @param promise 回调 callback {"subscribe": true/false }
13
+ */
14
+ @d.Method('1.8.0')
15
+ isWebSocketSubscribe(promise: t.PromiseCb) {
16
+ }
17
+
18
+ /**
19
+ 获取设备通道连接中状态
20
+ @param promise 回调 callback {"connectingState": 0/1/2/3/4/5/6/7}
21
+ * onlineStateMaskWS = 1 << 0,
22
+ * onlineStateMaskWifi = 1 << 1,
23
+ * onlineStateMaskBle = 1 << 2,
24
+ * (0: all offline, 1: websocket online, 2 : wifi online, 3: wifi + websocket online, 4: ble online, 5: websocket + ble online, 6: ble + wifi online , 7: wifi + ble + ws online)
25
+ */
26
+ @d.Method('1.8.0')
27
+ getDeviceConnectingState(promise: t.PromiseCb) {
28
+ }
29
+
30
+ /**
31
+ * 设备链路连接状态状态通知
32
+ * @param object 事件数据 {"connectingState": 0/1/2/3/4/5/6/7}
33
+ * connectingStateMaskWS = 1 << 0,
34
+ * connectingStateMaskWifi = 1 << 1,
35
+ * connectingStateMaskBle = 1 << 2,
36
+ * (0: all offline, 1: websocket online, 2 : wifi online, 3: wifi + websocket online, 4: ble online, 5: websocket + ble online, 6: ble + wifi online , 7: wifi + ble + ws online)
37
+ */
38
+ @d.Event('1.8.0')
39
+ onDeviceConnectingState(object: Object) {
40
+ }
41
+
42
+ /**
43
+ writeDpsByHttp
44
+ @param dps – dps 确保code和value不为空 [ {id:0, code:"electric" type:BOOL, value:false} ,{id:1, code:"electric2", type:INT, value:2}]
45
+ @param deviceList – deviceList 设备列表 [{"deviceKey":"", "productKey":""}]
46
+ @param type - 类型 1:透传 2:属性 3:服务
47
+ @param extraData – {
48
+ dataFormat 数据类型 1:Hex 2:Text(当type为透传时,需要指定 dataFormat)
49
+ cacheTime 缓存时间,单位为秒,缓存时间范围 1-7776000 秒,启用缓存时必须设置缓存时间
50
+ isCache 是否启用缓存 1:启用 2:不启用,默认不启用
51
+ isCover 是否覆盖之前发送的相同的命令 1:覆盖 2:不覆盖,默认不覆盖,启用缓存时此参数有效
52
+
53
+ **查看接口定义
54
+ }
55
+ @param promise 回调 callback
56
+ */
57
+ @d.Method('1.8.0')
58
+ writeDpsByHttp(dps: Array<Object>, deviceList: Array<Object>, type: t.Integer, extraData: Object, promise: t.PromiseCb) {
59
+ }
60
+
61
+ /**
62
+ read data points
63
+ @param dps – dps [ {id:0, type:BOOL, value:false} ,{id:1, type:INT, value:2}]
64
+ @param extraData – map
65
+ cacheTime number 指令缓存时间,ws通道有效,单位是s
66
+ msgId number 消息Id,ws通道有效
67
+ @param promise 回调 callback
68
+ */
69
+ @d.Method('1.6.8')
70
+ readDpsWithExtraData(dps: Array<Object>, extraData: Object, promise: t.PromiseCb) {
71
+ }
72
+
73
+ /**
74
+ read data points
75
+ @param dps – dps [ {id:0, type:BOOL, value:false} ,{id:1, type:INT, value:2}]
76
+ @param extraData – map
77
+ cacheTime number 指令缓存时间,ws通道有效,单位是s
78
+ msgId number 消息Id,ws通道有效
79
+ @param mode – mode 下发模式: 0 auto,1: websocket 2:wifi 3:ble
80
+ @param promise 回调 callback
81
+ */
82
+ @d.Method('1.6.8')
83
+ readDpsWithExtraDataAndMode(dps: Array<Object>, extraData: Object, mode: t.Integer, promise: t.PromiseCb) {
84
+ }
85
+
86
+ /**
87
+ write data points
88
+ @param dps – dps [ {id:0, type:BOOL, value:false} ,{id:1, type:INT, value:2}]
89
+ @param extraData – map
90
+ cacheTime number 指令缓存时间,ws通道有效,单位是s
91
+ msgId number 消息Id,ws通道有效
92
+ @param promise 回调 callback
93
+ */
94
+ @d.Method('1.6.8')
95
+ writeDpsWithExtraData(dps: Array<Object>, extraData: Object, promise: t.PromiseCb) {
96
+ }
97
+
98
+
99
+ /**
100
+ write data points
101
+ @param dps – dps [ {id:0, type:BOOL, value:false} ,{id:1, type:INT, value:2}]
102
+ @param extraData – map
103
+ cacheTime number 指令缓存时间,ws通道有效,单位是s
104
+ msgId number 消息Id,ws通道有效
105
+ @param mode – mode 下发模式: 0 auto,1: websocket 2:wifi 3:ble
106
+ @param promise 回调 callback
107
+ */
108
+ @d.Method('1.6.8')
109
+ writeDpsWithExtraDataAndMode(dps: Array<Object>, extraData: Object, mode: t.Integer, promise: t.PromiseCb) {
110
+ }
111
+
112
+ /**
113
+ 获取设备通道状态
114
+ @param promise 回调 callback {"state": 0/1/2}
115
+ * (0: 未开启, 1: 未授权, 2 : 可用)
116
+ */
117
+ @d.Method('1.4.0')
118
+ getBleState(promise: t.PromiseCb) {
119
+ }
120
+
121
+ /**
122
+ 获取物模型以及属性值
123
+ @param params map
124
+ productKey string 产品key
125
+ deviceKey string 设备key
126
+ codeList string 非必填 查询的属性标识符
127
+ gatewayDk string 网关设备的 Device Key
128
+ gatewayPk string 网关设备的 Product Key
129
+ 和查询类型配合使用,如果查询多个属性,使用英文逗号分隔
130
+
131
+ type string 非必填 查询类型
132
+ 1 查询设备基础属性
133
+ 2 查询物模型属性
134
+ 3 查询定位信息
135
+ 查询类型可以单选和多选,如果需要查询多个类型的属性值,使用英文逗号分隔
136
+
137
+ filterType 过滤类型
138
+ 0: 仅获取属性定义(默认行为)
139
+ 1: 获取属性和事件定义
140
+ 2: 获取属性,事件和服务定义 (为后续预留)
141
+ @param promise promise 执行回调
142
+ */
143
+ @d.Method('2.16.0')
144
+ getTslAndAttrs(params: Object, promise: t.PromiseCb) {
145
+ }
146
+
147
+ /**
148
+ read data points
149
+ @param dps – dps [ {id:0, type:BOOL, value:false} ,{id:1, type:INT, value:2}]
150
+ @param promise 回调 callback
151
+ */
152
+ @d.Method('1.4.0')
153
+ readDps(dps: Array<Object>, promise: t.PromiseCb) {
154
+ }
155
+
156
+ /**
157
+ write data points
158
+ @param dps – dps [ {id:0, type:BOOL, value:false} ,{id:1, type:INT, value:2}]
159
+ @param promise 回调 callback
160
+ */
161
+ @d.Method('1.4.0')
162
+ writeDps(dps: Array<Object>, promise: t.PromiseCb) {
163
+ }
164
+
165
+ /**
166
+ * write transparent data
167
+ * @param data 透传数据, 二进制base64转换的字符串
168
+ * @param mode 发送模式
169
+ * @param extraData 额外参数(预留)
170
+ * @param promise 回调callback
171
+ */
172
+ @d.Method('1.7.0')
173
+ writeTransparent(data: String, mode: t.Integer, extraData: Object, promise: t.PromiseCb) {
174
+ }
175
+
176
+ /**
177
+ read data points
178
+ @param dps – dps [ {id:0, type:BOOL, value:false} ,{id:1, type:INT, value:2}]
179
+ @param mode – mode 下发模式: 0 auto,1: websocket 2:wifi 3:ble
180
+ @param promise 回调 callback
181
+ */
182
+ @d.Method('1.4.0')
183
+ readDpsWithMode(dps: Array<Object>, mode: t.Integer, promise: t.PromiseCb) {
184
+ }
185
+
186
+ /**
187
+ write data points
188
+ @param dps – dps [ {id:0, type:BOOL, value:false} ,{id:1, type:INT, value:2}]
189
+ @param mode – mode 下发模式: 0 auto,1: websocket 2:wifi 3:ble
190
+ @param promise 回调 callback
191
+ */
192
+ @d.Method('1.4.0')
193
+ writeDpsWithMode(dps: Array<Object>, mode: t.Integer, promise: t.PromiseCb) {
194
+ }
195
+
196
+ /**
197
+ 获取设备通道状态
198
+ @param promise 回调 callback {"onlineState": 0/1/2/3/4/5/6/7}
199
+ * onlineStateMaskWS = 1 << 0,
200
+ * onlineStateMaskWifi = 1 << 1,
201
+ * onlineStateMaskBle = 1 << 2,
202
+ * (0: all offline, 1: websocket online, 2 : wifi online, 3: wifi + websocket online, 4: ble online, 5: websocket + ble online, 6: ble + wifi online , 7: wifi + ble + ws online)
203
+ */
204
+ @d.Method('1.4.0')
205
+ getOnlineState(promise: t.PromiseCb) {
206
+ }
207
+
208
+
209
+ /**
210
+ 建立通道,(设备会自动根据设备通道能力capabilitiesBitmask建立通道,此API用于手动切换指定通道)
211
+ @param mode – mode 建立通道模式: 0 auto,1: websocket 2:wifi 3:ble
212
+ * 注意:1,建立的通通与已连接通道不同时,已连接通道会断开。
213
+ * 2,当设备不具备相应通道,建立其不具备的通道会失败。不会再自动建立其他通道
214
+ */
215
+ @d.Method('1.4.0')
216
+ connectChannel(mode: t.Integer) {
217
+ }
218
+
219
+ /**
220
+ 断开通道,(
221
+ @param type – type 通道类型,0: 关闭所有通道(关闭wifi和ble), 2:wifi 3:ble
222
+ */
223
+ @d.Method('1.4.0')
224
+ disconnectChannel(type: t.Integer) {
225
+ }
226
+
227
+ /**
228
+ * 设备在离线状态通知
229
+ * @param object 事件数据 {"onlineState": 0/1/2/3/4/5/6/7}
230
+ * onlineStateMaskWS = 1 << 0,
231
+ * onlineStateMaskWifi = 1 << 1,
232
+ * onlineStateMaskBle = 1 << 2,
233
+ * (0: all offline, 1: websocket online, 2 : wifi online, 3: wifi + websocket online, 4: ble online, 5: websocket + ble online, 6: ble + wifi online , 7: wifi + ble + ws online)
234
+ */
235
+ @d.Event('1.4.0')
236
+ onDeviceOnlineState(object: Object) {
237
+ }
238
+
239
+ /**
240
+ * 设备dps更新 (尽量)
241
+ * @param object 事件数据 {
242
+ * type: (1:ws 2: wifi 3: ble,)
243
+ * action: {
244
+ * 1.读取消息(面板不需要处理)
245
+ * 2.设备上报-读响应
246
+ * 3.发生消息(面板不需要处理)
247
+ * 4.设备上报-写响应
248
+ * 5.调用 EXE-SERV2服务 (面板暂时不需要处理)
249
+ * 6.设备上报-服务调用
250
+ * 7.设备告警-info
251
+ * 8.设备告警-warn
252
+ * 9.设备告警-error
253
+ * 10.位置信息LOCATION
254
+ * 11.发生RAW (面板暂时不需要处理)
255
+ * 12.接受RAW (面板暂时不需要处理)
256
+ * 13.设备上报-自动上报
257
+ * 14.设备在线状态 (面板不需要处理)
258
+ * 15.设备上报-信号量
259
+ * 16.设备上报-设备
260
+ * 17.设备上报-设备被移除(value: 1 解绑, 2.重置, 3.分享过期, 4.取消分享, 5.覆盖分享, 6. 用户注销, 7. 从设备组中移除)
261
+ * 18.设备状态信息回复
262
+ * 19.透传数据方向 app → iot
263
+ * 20.透传数据 方向 iot→ app
264
+ * }
265
+ * pk: "xxxx",
266
+ * dk: "xxxx",
267
+ * "dps": [{id: 0, type:BOOL, value, true/false},{id: 1, type:INT, value, 1}, ...]
268
+ * "transparent": "xxx"(二进制数据base64后转字符串),
269
+ * }
270
+ */
271
+ @d.Event('1.4.0')
272
+ onDeviceDpsUpdate(object: Object) {
273
+ }
274
+
275
+ /**
276
+ * 设备信息更新
277
+ * @param object 事件数据
278
+ */
279
+ @d.Event('1.4.0')
280
+ onDeviceInfoUpdate(object: Object) {
281
+ }
282
+
283
+
284
+
285
+
286
+ /**
287
+ 获取websocket是否登录成功
288
+ @param isLoginCallback Func 接受是否登录websocket回调 已登录成功 true 登录失败 false
289
+ */
290
+ @d.Method('1.0.0', t.Platforms.All, true)
291
+ isWebSocketLoginCallback(isLoginCallback: t.SuccessCb) {
292
+ }
293
+
294
+ /**
295
+ 订阅设备
296
+ @param list 订阅设备列表,订阅结果QuecDeviceServiceWebSocketDelegate返回
297
+ [
298
+ {
299
+ "deviceKey": "1234567890",
300
+ "messageType": [
301
+ "ONLINE"
302
+ ],
303
+ "productKey": "p12345"
304
+ },
305
+ {
306
+ "deviceKey": "1234567890",
307
+ "messageType": [
308
+ "ONLINE",
309
+ "STATUS"
310
+ ],
311
+ "productKey": "p12345"
312
+ }
313
+ ]
314
+ */
315
+ @d.Method('1.0.0', t.Platforms.All, true)
316
+ subscribeDevicesWithList(list: Array<Object>) {
317
+ }
318
+
319
+ /**
320
+ 取消订阅设备
321
+ @param list 取消订阅设备列表,取消订阅结果QuecDeviceServiceWebSocketDelegate返回
322
+ [
323
+ {
324
+ "deviceKey": "1234567890",
325
+ "productKey": "p12345"
326
+ },
327
+ {
328
+ "deviceKey": "1234567890",
329
+ "productKey": "p12345"
330
+ }
331
+ ]
332
+ */
333
+ @d.Method('1.0.0', t.Platforms.All, true)
334
+ unSubscribeDevicesWithList(list: Array<Object>) {
335
+ }
336
+
337
+ /**
338
+ 获取设备业务属性值
339
+
340
+ @param params 发送数据,需要在delegate的websocketDidOpen回调之后才能调用
341
+ 透传
342
+ {
343
+ "cmd": "send",
344
+ "data": {
345
+ "cacheTime": 3600,
346
+ "dataFormat": "Text",
347
+ "deviceKey": "866123456789015",
348
+ "isCache": true,
349
+ "productKey": "p12345",
350
+ "raw": "123456",
351
+ "type": "RAW"
352
+ }
353
+ }
354
+ 物模型
355
+ {
356
+ "cmd": "send",
357
+ "data": {
358
+ "deviceKey": "1234567890",
359
+ "kv": "[{\"id\":5,\"name\":\"openapi\",\"type\":\"BOOL\",\"value\":\"true\"}]",
360
+ "productKey": "p12345",
361
+ "type": "WRITE-ATTR"
362
+ }
363
+ }
364
+ */
365
+ @d.Method('1.0.0', t.Platforms.All, true)
366
+ sendDataToDeviceByWebSocketWithDataDict(params: Object) {
367
+ }
368
+
369
+ /**
370
+ 获取设备列表
371
+ @param pageNumber number 页码
372
+ @param pageSize number 页大小
373
+ @param promise promise 执行回调
374
+ callback {"data": {"list" : [], "total" : 12}}
375
+ */
376
+ @d.Method('1.0.0', t.Platforms.All, true)
377
+ getDeviceListWithPageNumber(pageNumber: t.Integer, pageSize: t.Integer, promise: t.PromiseCb) {
378
+ }
379
+
380
+ /**
381
+ 获取设备业务物模型属性值
382
+ @param params map
383
+ productKey string 产品key
384
+ deviceKey string 设备key
385
+ codeList string 非必填 查询的属性标识符
386
+ gatewayDk string 网关设备的 Device Key
387
+ gatewayPk string 网关设备的 Product Key
388
+ 和查询类型配合使用,如果查询多个属性,使用英文逗号分隔
389
+ type string 非必填 查询类型
390
+ 1 查询设备基础属性
391
+ 2 查询物模型属性
392
+ 3 查询定位信息
393
+ 查询类型可以单选和多选,如果需要查询多个类型的属性值,使用英文逗号分隔
394
+ @param promise promise 执行回调
395
+ */
396
+ @d.Method('1.0.0', t.Platforms.All, true)
397
+ getProductTSLWithProductKey(params: Object, promise: t.PromiseCb) {
398
+ }
399
+
400
+ /**
401
+ 获取设备业务属性值
402
+ @param params map
403
+ productKey string 产品key
404
+ deviceKey string 设备key
405
+ codeList string 非必填 查询的属性标识符
406
+ 和查询类型配合使用,如果查询多个属性,使用英文逗号分隔
407
+ type string 非必填 查询类型
408
+ 1 查询设备基础属性
409
+ 2 查询物模型属性
410
+ 3 查询定位信息
411
+ 查询类型可以单选和多选,如果需要查询多个类型的属性值,使用英文逗号分隔
412
+ @param promise promise 执行回调
413
+ */
414
+ @d.Method('1.0.0', t.Platforms.All, true)
415
+ getDeviceBusinessAttributesWithProductKey(params: Object, promise: t.PromiseCb) {
416
+ }
417
+
418
+ /**
419
+ 更改分享设备名称
420
+ @param deviceName string 设备名称
421
+ @param shareCode string 分享码
422
+ @param promise promise 执行回调
423
+ */
424
+ @d.Method('1.0.0', t.Platforms.All, true)
425
+ updateDeviceNameByShareUserWithDeviceName(deviceName: string, shareCode: string, promise: t.PromiseCb) {
426
+ }
427
+
428
+ /**
429
+ 更改分享设备名称
430
+ @param deviceName string deviceName
431
+ @param productKey string product key
432
+ @param deviceKey string deviceKey
433
+ @param promise promise 执行回调
434
+ */
435
+ @d.Method('1.0.0', t.Platforms.All, true)
436
+ updateDeviceName(deviceName: string, productKey: string, deviceKey: string, promise: t.PromiseCb) {
437
+ }
438
+
439
+ /**
440
+ 查询网关设备下子设备列表
441
+ @param params
442
+ deviceKey string 必传 网关设备deviceKey
443
+ productKey string 必传 网关设备productKey
444
+ pageNumber number 必传 页码
445
+ pageSize number 必传 页大小
446
+ @param promise promise 执行回调
447
+ callback {"data": {"list" : [], "total" : 12}}
448
+ */
449
+ @d.Method('1.0.0', t.Platforms.All, true)
450
+ getGatewayDeviceChildListWithParams(params: Object, promise: t.PromiseCb) {
451
+ }
452
+
453
+ /**
454
+ 设备解绑
455
+ @param deviceKey string device key
456
+ @param productKey string product key
457
+ @param promise promise 执行回调
458
+ */
459
+ @d.Method('1.0.0', t.Platforms.All, true)
460
+ unbindDeviceWithDeviceKey(deviceKey: string, productKey: string, promise: t.PromiseCb) {
461
+ }
462
+
463
+ /**
464
+ 设备解绑
465
+ @param shareCode string 分享码
466
+ @param promise promise 执行回调
467
+ */
468
+ @d.Method('1.0.0', t.Platforms.All, true)
469
+ unShareDeviceByShareUserWithShareCode(shareCode: string, promise: t.PromiseCb) {
470
+ }
471
+
472
+ /**
473
+ 获取设备属性图表列表
474
+ @param params
475
+ productKey 产品key
476
+ deviceKey 设备key
477
+ startTimestamp 开始时间(毫秒时间戳)
478
+ endTimestamp 结束时间(毫秒时间戳)
479
+ attributeCode 物模型属性标识符,查询多个属性时使用英文逗号分隔
480
+ gatewayDk 网关设备的 Device Key
481
+ gatewayPk 网关设备的 Product Key
482
+ countType 聚合类型(默认3):1-最大值 2-最小值 3-平均值 4-差值 5-总值
483
+ timeGranularity 统计时间粒度(默认2):1-月 2-日 3-小时 4-分钟 5-秒
484
+ callback {"data": []}
485
+ @param promise promise 执行回调
486
+ */
487
+ @d.Method('1.1.0')
488
+ getPropertyChartListWithParams(params: Object, promise: t.PromiseCb) {
489
+ }
490
+
491
+ /**
492
+ 获取设备分享人列表
493
+ @param deviceKey string 设备名称
494
+ @param productKey string 产品key
495
+ @param promise promise 执行回调
496
+ */
497
+ @d.Method('1.1.0')
498
+ getDeviceShareUserListWithDeviceKey(deviceKey: string, productKey: string, promise: t.PromiseCb) {
499
+ }
500
+
501
+ /**
502
+ 分享人设置分享信息
503
+ @param params
504
+ deviceKey string 设备key
505
+ productKey string 产品key
506
+ acceptingExpireTime number 分享二维码种子失效时间 时间戳(毫秒),表示该分享在此时间戳时间内没有使用,会失效
507
+ coverMark number 覆盖标志:1 直接覆盖上条有效分享(默认)(覆盖原有的分享码);2 直接添加,允许多条并存;3 只有分享时间延长了,才允许覆盖上条分享
508
+ isSharingAlwaysValid bool 设备是否永久有效
509
+ sharingExpireTime number 设备使用到期时间 时间戳(毫秒),表示该分享的设备,被分享人可以使用的时间,isSharingAlwaysValid为YES时该参数无效
510
+ @param promise promise 执行回调
511
+ */
512
+ @d.Method('1.1.0')
513
+ setShareInfoByOwnerWithDeviceKey(params: Object, promise: t.PromiseCb) {
514
+ }
515
+
516
+ /**
517
+ 分享人取消分享
518
+ @param shareCode string 分享码
519
+ @param promise promise 执行回调
520
+ */
521
+ @d.Method('1.1.0')
522
+ unShareDeviceByOwnerWithShareCode(shareCode: string, promise: t.PromiseCb) {
523
+ }
524
+
525
+ /**
526
+ 获取设备历史轨迹
527
+ @param params
528
+ productKey 产品key
529
+ deviceKey 设备key
530
+ startTimestamp 开始时间(毫秒时间戳)
531
+ endTimestamp 结束时间(毫秒时间戳)
532
+ gatewayDk 网关设备的 Device Key
533
+ gatewayPk 网关设备的 Product Key
534
+ locateTypes 定位类型(默认查询所有类型的定位),查询多种定位时使用英文逗号分隔
535
+ GNSS-全球导航卫星系统
536
+ GPS-美国导航定位系统
537
+ GL-俄罗斯格洛纳导航定位系统
538
+ GA-欧盟伽利略卫星导航系统
539
+ BD/PQ-中国导航定位系统
540
+ LBS-基于通信运营商的基站定位系统
541
+ @param promise
542
+ */
543
+ @d.Method('1.1.0')
544
+ getLocationHistoryWithParams(params: Object, promise: t.PromiseCb) {
545
+ }
546
+
547
+ /**
548
+ * 获取设备信息
549
+ * @param deviceKey string 设备key
550
+ * @param productKey string 产品key
551
+ * @param promise promise 执行回调
552
+ */
553
+ @d.Method('1.2.0')
554
+ getDeviceInfoByDeviceKey(deviceKey: string, productKey: string, promise: t.PromiseCb) {
555
+ }
556
+
557
+ /**
558
+ * 获取设备属性信息
559
+ * @param params map
560
+ productKey 产品key
561
+ deviceKey 设备key
562
+ startTimestamp 开始时间(毫秒时间戳)
563
+ endTimestamp 结束时间(毫秒时间戳)
564
+ attributeCode 物模型属性标识符,查询多个属性时使用英文逗号分隔
565
+ gatewayDk 网关设备的 Device Key
566
+ gatewayPk 网关设备的 Product Key
567
+ pageNumber 当前页,默认为第 1 页
568
+ pageSize 页大小,默认为 10 条
569
+ * @param promise promise 执行回调
570
+ */
571
+ @d.Method('1.2.0')
572
+ getPropertyDataListWithParams(params: Object, promise: t.PromiseCb) {
573
+ }
574
+
575
+ /**
576
+ * 获取设备属性环比统计数据
577
+ * @param params map
578
+ productKey 产品key
579
+ deviceKey 设备key
580
+ currentTimestamp 当前时间(毫秒时间戳
581
+ attributeCode 物模型属性标识符,查询多个属性时使用英文逗号分隔
582
+ gatewayDk 网关设备的 Device Key
583
+ gatewayPk 网关设备的 Product Key
584
+ countType 聚合类型(默认3):1-最大值 2-最小值 3-平均值 4-差值 5-总值
585
+ timeGranularities 统计时间粒度,查询多个粒度时使用英文逗号分隔(默认1):1-日 2-周 3-月 4-年
586
+ callback {"data": []}
587
+ * @param promise promise 执行回调
588
+ */
589
+ @d.Method('1.2.0')
590
+ getPropertyStatisticsWithParams(params: Object, promise: t.PromiseCb) {
591
+ }
592
+
593
+ /**
594
+ * WebSocket 已打开事件
595
+ * @param object 事件数据 data = {"code":"this is code", @"message":" this is reason"}
596
+ * reminder.data = {}
597
+ */
598
+ @d.Event('1.0.0')
599
+ onWebSocketDidOpen(object: Object) {
600
+ }
601
+
602
+ /**
603
+ * WebSocket 错误事件
604
+ * @param object 事件数据 data = {"code":"this is code", @"message":" this is reason"}
605
+ */
606
+ @d.Event('1.0.0')
607
+ onWebSocketDidError(object: Object) {
608
+ }
609
+
610
+
611
+ /**
612
+ * WebSocket 消息事件
613
+ * @param object 事件数据
614
+ * object.data = {
615
+ * "cmd": "message",
616
+ * "data": {
617
+ * "createdAt": 1609316592000,
618
+ * "data": {
619
+ * "value": 1
620
+ * },
621
+ * "deviceKey": "866123456789015",
622
+ * "productKey": "123456",
623
+ * "ticket": "5f9924d171977c33bc5ad1b1",
624
+ * "type": "ONLINE"
625
+ * }
626
+ * }
627
+ * error
628
+ * {
629
+ * cmd = error;
630
+ * data = {
631
+ * code = 4010;
632
+ * msg = "user not logged in";
633
+ * reqMsg = "";
634
+ * };
635
+ */
636
+ @d.Event('1.0.0')
637
+ onWebSocketDidReceiveMessage(object: Object) {
638
+ }
639
+
640
+ /**
641
+ * 通过分享码查询设备信息
642
+ * @param shareCode 分享码
643
+ * @param promise 回调
644
+ */
645
+ @d.Method('1.3.0')
646
+ getDeviceInfoByShareCode(shareCode: string, promise: t.PromiseCb) {
647
+ }
648
+
649
+ /**
650
+ 获取设备列表-根据设备名称搜索
651
+ @param deviceName 设备名称
652
+ @param pageNumber number 页码
653
+ @param pageSize number 页大小
654
+ @param promise 回调 callback {"data": {"list" : [], "total" : 12}}
655
+ */
656
+ @d.Method('1.3.0')
657
+ getDeviceListByDeviceName(deviceName: string, pageNumber: t.Integer, pageSize: t.Integer, promise: t.PromiseCb) {
658
+ }
659
+
660
+ /**
661
+ 通过SN绑定设备
662
+ @param serialNumber string 设备SN码
663
+ @param productKey string 产品key
664
+ @param deviceName string 设备名称
665
+ @param promise 回调 callback
666
+ */
667
+ @d.Method('1.3.0')
668
+ bindDeviceBySerialNumber(serialNumber: string, productKey: string, deviceName: string, promise: t.PromiseCb) {
669
+ }
670
+
671
+ /**
672
+ 通过authCode绑定设备
673
+ 可用于wifi/wifi+蓝牙设备绑定
674
+ @param params Map 包含以下属性
675
+ authCode string 设备authCode
676
+ productKey string 产品key
677
+ deviceKey string 设备key
678
+ deviceName string 设备名称
679
+ @param promise 回调 callback
680
+ */
681
+ @d.Method('1.3.0')
682
+ bindDeviceByAuthCode(params: object, promise: t.PromiseCb) {
683
+ }
684
+
685
+ /**
686
+ 通过authCode + password绑定设备
687
+ 可用于蓝牙设备绑定
688
+ @param params Map 包含以下属性
689
+ authCode string 设备authCode
690
+ productKey string 产品key
691
+ deviceKey string 设备key
692
+ password string 设备password
693
+ deviceName string 设备名称
694
+ @param promise 回调 callback
695
+ */
696
+ @d.Method('1.3.0')
697
+ bindDeviceByPSWAuthCode(params: object, promise: t.PromiseCb) {
698
+ }
699
+
700
+ /**
701
+ 查询设备升级信息
702
+ @param productKey string 产品key
703
+ @param deviceKey string 设备key
704
+ @param params map 其他信息 非必传
705
+ batteryLevelLimit number 设备剩余电量百分比
706
+ mcuVersions array 固件信息 componentNo string 升级组件标识 version string 升级组件版本
707
+ minSignalIntensity number 设备最小信号量 dbM
708
+ moduleVersion string 模组版本
709
+ upgradeTime number 升级时间时间戳,默认为当前时间戳
710
+ useSpace number 所需磁盘空间,KB
711
+ {'batteryLevelLimit':1, 'mcuVersions':[{'componentNo': '', 'version': ''}], 'minSignalIntensity':1, 'moduleVersion':'', 'upgradeTime':1, 'useSpace':1}
712
+ @param promise 回调 callback
713
+ */
714
+ @d.Method('1.3.0')
715
+ getFetchPlanWithProductKey(productKey: string, deviceKey: string, params: object, promise: t.PromiseCb) {
716
+ }
717
+
718
+ /**
719
+ 上报设备升级信息
720
+ @param params map
721
+ productKey string 产品key
722
+ deviceKey string 设备key
723
+ componentNo string 升级固件标识
724
+ reportStatus number 升级状态 0 - 1 2
725
+ @param promise 回调 callback
726
+ */
727
+ @d.Method('1.3.0')
728
+ reportDeviceUpgradeStatusWithProductKey(params: object, promise: t.PromiseCb) {
729
+ }
730
+
731
+ /**
732
+ 设备批量控制
733
+ @param params Map
734
+ data 遵循tsl格式的json string [{"id":62,"value":99,"type":"INT","name":"温度(temp)"},{"id":63,"value":"true","type":"BOOL","name":"开关机状态(powerstate)"}]
735
+ deviceList 设备列表 [{"deviceKey":"", "productKey":""}]
736
+ type number 类型 1:透传 2:属性 3:服务
737
+ dataFormat number 数据类型 1:Hex 2:Text(当type为透传时,需要指定 dataFormat)
738
+ cacheTime number 非必传 缓存时间,单位为秒,缓存时间范围 1-7776000 秒,启用缓存时必须设置缓存时间
739
+ isCache number 非必传 是否启用缓存 1:启用 2:不启用,默认不启用
740
+ isCover number 非必传 是否覆盖之前发送的相同的命令 1:覆盖 2:不覆盖,默认不覆盖,启用缓存时此参数有效
741
+ @param promise 回调 callback
742
+ */
743
+ @d.Method('1.3.0')
744
+ sendDataToDevicesByHttpWithData(params: object, promise: t.PromiseCb) {
745
+ }
746
+
747
+ /**
748
+ 创建定时任务
749
+ @param params productKey – string 必传 产品key
750
+ deviceKey – string 必传 设备key
751
+ type – string 必传 定时任务类型,once: 执行一次,day-repeat: 每天重复,custom-repeat: 自定义重复,multi-section: 多段执行,random: 随机执行,delay: 延迟执行(倒计时)
752
+ timers:[{
753
+ action – string 必传 定时任务执行的命令,格式:物模型的 json 字符串,
754
+ time – string 非必传 执行时间,格式为 HH:mm:ss, 当 type = once || day-repeat || custom-repeat ||
755
+ multi-section 时必填,
756
+ startTime – string 非必传 当 type 为 random 时必填,格式为 "HH:mm:ss",如 "12:00:00"
757
+ endTime – string 非必传 当 type 为 random 时必填,格式为 "HH:mm:ss",如 "12:00:00"
758
+ delay – number 非必传 延迟执行时间,单位为秒, 当 type = delay 时必填,单位为 s
759
+ }]
760
+ enabled – 定时任务状态:false-停止(默认) true-启动
761
+ dayOfWeek – string 非必传 周几执行:1-周一 2-周二 3-周三 4-周四 5-周五 6-周六 7-周日, 可以多选,传多个值时使用英文逗号分隔, 当 type = custom-repeat || multi-section || random 时必填
762
+ @param promise 回调 callback {"data": {}}
763
+ */
764
+ @d.Method('1.3.0')
765
+ addCornJob(params: object, promise: t.PromiseCb) {
766
+ }
767
+
768
+ /**
769
+ 修改定时任务
770
+ @param params
771
+ productKey – string 必传 产品key
772
+ deviceKey – string 必传 设备key
773
+ ruleId – string 必传 规则唯一标识,修改规则实例信息时必填
774
+ type – string 必传 定时任务类型,once: 执行一次,day-repeat: 每天重复,custom-repeat: 自定义重复,multi-section: 多段执行,random: 随机执行,delay: 延迟执行(倒计时)
775
+ timers:[{
776
+ action – string 必传 定时任务执行的命令,格式:物模型的 json 字符串,
777
+ time – string 非必传 执行时间,格式为 HH:mm:ss, 当 type = once || day-repeat || custom-repeat ||
778
+ multi-section 时必填,
779
+ startTime – string 非必传 当 type 为 random 时必填,格式为 "HH:mm:ss",如 "12:00:00"
780
+ endTime – string 非必传 当 type 为 random 时必填,格式为 "HH:mm:ss",如 "12:00:00"
781
+ delay – number 非必传 延迟执行时间,单位为秒, 当 type = delay 时必填,单位为 s
782
+ }]
783
+ enabled – 定时任务状态:false-停止(默认) true-启动
784
+ dayOfWeek – string 非必传 周几执行:1-周一 2-周二 3-周三 4-周四 5-周五 6-周六 7-周日, 可以多选,传多个值时使用英文逗号分隔, 当 type = custom-repeat || multi-section || random 时必填
785
+ @param promise 回调 callback {"data": {}}
786
+ */
787
+ @d.Method('1.3.0')
788
+ setCronJob(params: object, promise: t.PromiseCb) {
789
+ }
790
+
791
+ /**
792
+ 查询设备下定时任务列表
793
+ @param params
794
+ productKey – string 必传 产品key
795
+ deviceKey – string 必传 设备key
796
+ type – string 必传 定时任务类型,once: 执行一次,day-repeat: 每天重复,custom-repeat: 自定义重复,multi-section: 多段执行,random: 随机执行,delay: 延迟执行(倒计时)
797
+ page – number 分页页码,默认: 1
798
+ pageSize – number 分页大小,默认: 10
799
+ @param promise 回调 callback {"data": {"list" : [], "total" : 12}}
800
+ */
801
+ @d.Method('1.3.0')
802
+ getCronJobList(params: object, promise: t.PromiseCb) {
803
+ }
804
+
805
+ /**
806
+ 查询定时任务详情
807
+ @param ruleId – string 必传 定时任务ID
808
+ @param promise 回调 callback {"data": {}}
809
+ */
810
+ @d.Method('1.3.0')
811
+ getCronJobInfo(ruleId: string, promise: t.PromiseCb) {
812
+ }
813
+
814
+ /**
815
+ 批量删除定时任务
816
+ @param params – {ruleIdList:[] String[] 必传 定时任务ID}
817
+ @param promise 回调 callback {"data": {}}
818
+ */
819
+ @d.Method('1.3.0')
820
+ batchDeleteCronJob(params: object, promise: t.PromiseCb) {
821
+ }
822
+
823
+ /**
824
+ 查询产品下定时任务限制数
825
+ @param productKey – string 必传 产品key
826
+ @param promise 回调callback {"data": {}}
827
+ */
828
+ @d.Method('1.3.0')
829
+ getProductCornJobLimit(productKey: string, promise: t.PromiseCb) {
830
+ }
831
+
832
+ /**
833
+ 打开websocket
834
+ */
835
+ @d.Method('1.3.0')
836
+ openWebSocket() {
837
+ }
838
+
839
+ /**
840
+ 关闭websocket
841
+ */
842
+ @d.Method('1.3.0')
843
+ closeWebSocket() {
844
+ }
845
+
846
+ /**
847
+ *
848
+ * 查询产品的tls模型
849
+ * @param param -{productKey:String } --必传
850
+ * @param promise -{callback:{data:{}}
851
+ */
852
+ @d.Method('1.5.0')
853
+ getProductTSLWithCacheByProductKey(param: object, promise: t.PromiseCb) {
854
+ }
855
+
856
+
857
+ /**
858
+ * 门锁事件日志
859
+ * @param params {codeList:["",""],productKey:"",deviceKey:"",startTime:long,endTime:long,pageNumber:1,pageSize:10}
860
+ * @param promise
861
+ */
862
+ @d.Method('1.9.0')
863
+ listDeviceEvent(params: Object, promise: t.PromiseCb) {
864
+ }
865
+
866
+ /**
867
+ 设备解绑
868
+ @param pk string 产品id
869
+ @param dk string 设备id
870
+ @param shareCode string 分享码
871
+ @param promise promise 执行回调
872
+ */
873
+ @d.Method('1.9.6', t.Platforms.All, true)
874
+ unShareDeviceByShareUserWithShareCodeIpc(pk: string, dk: string, shareCode: string, promise: t.PromiseCb) {
875
+ }
876
+
877
+ /**
878
+ 订阅设备(非当前面板设备)
879
+ @param pk string 产品id
880
+ @param dk string 设备id
881
+ @param promise promise 执行回调
882
+ */
883
+ @d.Method('2.0.0', t.Platforms.All)
884
+ subscribeDevice(pk: string, dk: string) {
885
+ }
886
+
887
+
888
+ /**
889
+ 取消订阅 (非当前面板设备)
890
+ @param pk string 产品id
891
+ @param dk string 设备id
892
+ @param promise promise 执行回调
893
+ */
894
+ @d.Method('2.0.0', t.Platforms.All)
895
+ unSubscribeDevice(pk: string, dk: string) {
896
+ }
897
+
898
+ /**
899
+ 设置主从设备关联关系
900
+ @param list - array<DeviceModel> 关联设备列表
901
+ [
902
+ {
903
+ "deviceKey": "1234567890",
904
+ "productKey": "p12345",
905
+ ...设备其他信息
906
+ },
907
+ {
908
+ "deviceKey": "1234567890",
909
+ "productKey": "p12345"
910
+ ...设备其他信息
911
+ }
912
+ ]
913
+
914
+ @param master - DeviceModel Object 主设备信息
915
+ @param fid - string 家庭 id, 没有传空
916
+ @param promise promise 执行回调
917
+ */
918
+ @d.Method('2.0.0', t.Platforms.All)
919
+ deviceAssociationWithList(list: Array<Object>, master: Object, fid: string, promise: t.PromiseCb) {
920
+ }
921
+
922
+ /**
923
+ 设备关联关系查询
924
+ @param master - DeviceModel Object 主设备信息
925
+ @param fid - string 家庭 id, 没有传空
926
+ @param codelist - string 物模型code, 用逗号分隔
927
+ @param promise promise 执行回调
928
+ */
929
+ @d.Method('2.0.0', t.Platforms.All)
930
+ deviceAssociation(master: Object, fid: string, codelist: string, promise: t.PromiseCb) {
931
+ }
932
+
933
+ /**
934
+ 设备关联关系解除
935
+ @param device - DeviceModel Object 从设备信息
936
+ @param fid - string 家庭 id, 没有传空
937
+ @param promise promise 执行回调
938
+ */
939
+ @d.Method('2.0.0', t.Platforms.All)
940
+ deviceDisassociation(device: Object, fid: string, promise: t.PromiseCb) {
941
+ }
942
+
943
+ /**
944
+ 设备关联关系配置查询
945
+ @param pk string 主设备pk
946
+ @param promise promise 执行回调
947
+ */
948
+ @d.Method('2.0.0', t.Platforms.All)
949
+ deviceAssociationConfig(pk: string, promise: t.PromiseCb) {
950
+ }
951
+
952
+ /**
953
+ 通过设备dk,pk获取指定设备设备通道状态
954
+ @param pk - string 设备 productkey
955
+ @param dk - string 设备 devicekey
956
+ @param promise 回调 callback {"onlineState": 0/1/2/3/4/5/6/7}
957
+ * onlineStateMaskWS = 1 << 0,
958
+ * onlineStateMaskWifi = 1 << 1,
959
+ * onlineStateMaskBle = 1 << 2,
960
+ * (0: all offline, 1: websocket online, 2 : wifi online, 3: wifi + websocket online, 4: ble online, 5: websocket + ble online, 6: ble + wifi online , 7: wifi + ble + ws online)
961
+ */
962
+ @d.Method('2.0.0')
963
+ getDeviceOnlineState(pk: string, dk: string, promise: t.PromiseCb) {
964
+ }
965
+
966
+
967
+ /**
968
+ 设备关联选中的设备
969
+ @param list 设备列表数组,Object是devcie model
970
+ */
971
+ @d.Event('2.0.0')
972
+ deviceAssociationSelected(list: Array<Object>) {
973
+ }
974
+
975
+ /**
976
+ 设置离线提醒开关
977
+ @param enableOfflineReminder number 开关 0关闭1开启
978
+ @param productKey - string productKey
979
+ @param deviceKey - string deviceKey
980
+ @param promise promise回调
981
+ */
982
+ @d.Method('2.4.0', t.Platforms.All)
983
+ setOfflineReminder(enableOfflineReminder: t.Integer, productKey: string, deviceKey: string, promise: t.PromiseCb) {
984
+ }
985
+
986
+ /**
987
+ 离线提醒开关查询
988
+ @param productKey - string productKey
989
+ @param deviceKey - string deviceKey
990
+ @param promise promise 回调
991
+ */
992
+ @d.Method('2.4.0', t.Platforms.All)
993
+ getOfflineReminderInfo(productKey: string, deviceKey: string, promise: t.PromiseCb) {
994
+ }
995
+
996
+ /**
997
+ 获取设备是否有OTA计划
998
+ @param device - DeviceModel Object 设备信息
999
+ @param promise promise 回调
1000
+ */
1001
+ @d.Method('2.4.0', t.Platforms.All)
1002
+ checkDeviceUpdatePlan(device: Object, promise: t.PromiseCb) {
1003
+ }
1004
+
1005
+ /**
1006
+ 打开设备OTA详情
1007
+ @param productKey - string productKey
1008
+ @param deviceKey - string deviceKey
1009
+ @param promise promise 回调
1010
+ */
1011
+ @d.Method('2.4.0', t.Platforms.All)
1012
+ openDeviceOTAPage(productKey: string, deviceKey: string, promise: t.PromiseCb) {
1013
+ }
1014
+
1015
+ /**
1016
+ 获取当前手机设置时区
1017
+ @param promise promise 执行回调
1018
+ */
1019
+ @d.Method('2.5.7', t.Platforms.All)
1020
+ getTimeDifferenceWithGMT(promise: t.PromiseCb) {
1021
+ }
1022
+
1023
+ /**
1024
+ 获取当前设备设置时区
1025
+ @param productKey - string productKey
1026
+ @param deviceKey - string deviceKey
1027
+ @param promise promise 执行回调
1028
+ */
1029
+ @d.Method('2.5.7', t.Platforms.All)
1030
+ getDeviceTimeZone(productKey: string, deviceKey: string, promise: t.PromiseCb) {
1031
+ }
1032
+
1033
+ /**
1034
+ 设置设备时区
1035
+ @param productKey - string productKey
1036
+ @param deviceKey - string deviceKey
1037
+ @param timezone - string 时区
1038
+ @param promise promise 执行回调
1039
+ */
1040
+ @d.Method('2.5.7', t.Platforms.All)
1041
+ setDeviceTimeZone(productKey: string, deviceKey: string, timezone: string, promise: t.PromiseCb) {
1042
+ }
1043
+
1044
+ /**
1045
+ 获取设备当前连接WiFi信息
1046
+ @param productKey - string productKey
1047
+ @param deviceKey - string deviceKey
1048
+ @param promise promise 执行回调
1049
+ */
1050
+ @d.Method('2.10.0', t.Platforms.All)
1051
+ getDeviceStateInfo(productKey: string, deviceKey: string, promise: t.PromiseCb) {
1052
+ }
1053
+
1054
+ /**
1055
+ 跳转WiFi列表页
1056
+ @param productKey - string productKey
1057
+ @param deviceKey - string deviceKey
1058
+ @param oldSsid - string 已连接ssid
1059
+ @param signal_strength - string 信号强度
1060
+ @param supportOnlineWiFiScan - boolean 设备是否支持在线WiFi扫描
1061
+ @param promise promise 执行回调
1062
+ */
1063
+ @d.Method('2.10.0', t.Platforms.All)
1064
+ jumpDeviceWiFiListPage(productKey: string, deviceKey: string, oldSsid: string, signal_strength: string, supportOnlineWiFiScan: boolean, promise: t.PromiseCb) {
1065
+ }
1066
+
1067
+
1068
+ /**
1069
+ 获取产品说明书地址
1070
+ @param productKey - string productKey
1071
+ @param deviceKey - string deviceKey
1072
+ @param promise promise 执行回调 { "data":{"url": "https://xxx.pdf"}}
1073
+ */
1074
+ @d.Method('2.10.0', t.Platforms.All)
1075
+ getProductDescription(productKey: string, promise: t.PromiseCb) {
1076
+ }
1077
+
1078
+ /**
1079
+ * 设备信息更新
1080
+ * @param object 设备状态数据
1081
+ */
1082
+ @d.Event('2.10.0')
1083
+ onDeviceStatusUpdate(object: Object) {
1084
+ }
1085
+
1086
+ /**
1087
+ 获取设备列表
1088
+ @param pageNumber number 页码
1089
+ @param pageSize number 页大小
1090
+ @param promise promise 执行回调
1091
+ callback {"data": {"list" : [], "total" : 12}}
1092
+ */
1093
+ @d.Method('2.11.5', t.Platforms.All)
1094
+ getFamilyDeviceList(pageNumber: t.Integer, pageSize: t.Integer, promise: t.PromiseCb) {
1095
+ }
1096
+
1097
+ /**
1098
+ * 设备校时 only pure bt
1099
+ * @param productKey - string productKey
1100
+ * @param deviceKey - string deviceKey
1101
+ * @param promise 回调
1102
+ */
1103
+ @d.Method('2.11.0', t.Platforms.All)
1104
+ timeZoneSync(productKey: string, deviceKey: string, promise: t.PromiseCb) {
1105
+ }
1106
+
1107
+ /**
1108
+ * 纯蓝牙设备解绑
1109
+ * @param productKey - string productKey
1110
+ * @param deviceKey - string deviceKey
1111
+ * @param isInit - boolean 是否重置设备
1112
+ * @param random - string 非必传 random
1113
+ * @param pureBtResetCredentials - string 非必传 重置凭证
1114
+ * @param promise 回调
1115
+ */
1116
+ @d.Method('2.11.0', t.Platforms.All)
1117
+ unbindlingPureBtDevice(productKey: string, deviceKey: string, isInit: boolean, random: string, pureBtResetCredentials: string, promise: t.PromiseCb) {
1118
+ }
1119
+
1120
+ /**
1121
+ 获取产品物模型(无网络获取缓存)
1122
+ @param productKey - string productKey
1123
+ @param promise promise 执行回调
1124
+ */
1125
+ @d.Method('2.11.0', t.Platforms.All)
1126
+ getTsl(productKey: string, promise: t.PromiseCb) {
1127
+ }
1128
+
1129
+ /**
1130
+ * 激活设备(设备配网)
1131
+ * @param productKey productKey
1132
+ * @param deviceKey deviceKey
1133
+ * @param promise 执行结果
1134
+ */
1135
+ @d.Method('2.12.0', t.Platforms.All)
1136
+ startVerifyDevice(productKey: string, deviceKey: string, promise: t.PromiseCb) {
1137
+ }
1138
+
1139
+ /**
1140
+ * 已绑定设备配网
1141
+ * @param productKey productKey
1142
+ * @param deviceKey deviceKey
1143
+ * @param promise 执行结果
1144
+ */
1145
+ @d.Method('2.14.5', t.Platforms.All)
1146
+ startNetConfigDevice(productKey: string, deviceKey: string, promise: t.PromiseCb) {
1147
+ }
1148
+
1149
+ /**
1150
+ * 被分享人查询分享权限
1151
+ * @param shareCodeList 分享码列表
1152
+ * @param promise 执行结果
1153
+ */
1154
+ @d.Method('2.19.0', t.Platforms.All)
1155
+ getSharePermList(shareCodeList: Array<string>, promise: t.PromiseCb) {
1156
+ }
1157
+
1158
+ /**
1159
+ * 立刻上传设备历史数据
1160
+ * @param productKey productKey
1161
+ * @param deviceKey deviceKey
1162
+ * @param promise 执行结果
1163
+ */
1164
+ @d.Method('3.1.0', t.Platforms.All)
1165
+ uploadDeviceHistoricalData(productKey: string, deviceKey: string, promise: t.PromiseCb) {
1166
+ }
1167
+
1168
+ /**
1169
+ * 获取产品语音技能支持
1170
+ * @param productKey productKey
1171
+ * @param uid 终端用户id
1172
+ * @param account 当前用户的账号(优先邮箱 没有就手机号, 都没有就不传)
1173
+ * @param promise 执行结果 callback {"supportAlexa": true/false, "supportAssistant": true/false,}
1174
+ * supportAlexa 是否支持Alexa 语音
1175
+ * supportAssistant 是否支持google assistant
1176
+ */
1177
+ @d.Method('3.2.0', t.Platforms.All)
1178
+ getVoiceSupport(productKey: string, uid: string, account: string, promise: t.PromiseCb) {
1179
+ }
1180
+ }