# lc_device_uniapp **Repository Path**: Rinaloving/lc_device_uniapp ## Basic Information - **Project Name**: lc_device_uniapp - **Description**: lc_device 对应的 uniapp 页面 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-06-14 - **Last Updated**: 2024-10-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # lc_device_uniapp #### 介绍 Uniapp 调用 uniplugin_lcdevice-release.aar 插件,实现操作乐橙设备功能 #### 软件架构 无 #### 安装教程 1. 直接引入项目即可 #### 使用说明 1. 插件目录结构 ![输入图片说明](https://foruda.gitee.com/images/1719321901680343698/b351acea_2023933.png "屏幕截图") 2. package.json配置 ```json { "name": "乐橙设备操作", "id": "lcdevice-module", "version": "v1.0.2024.06.16", "description": "乐橙设备插件,联系QQ:1426429456@qq.com", "_dp_type": "nativeplugin", "_dp_nativeplugin": { "android": { "plugins": [{ "type": "module", "name": "lcdevice-module", "class": "com.example.uniplugin_lcdevice.LCDeviceModule" } ], "dependencies": [ "androidx.appcompat:appcompat:1.0.0-alpha1" ], "integrateType": "aar", "minSdkVersion": "21", "abis": [ "armeabi-v7a" ], "useAndroidX": true, "permissions": [ "android.permission.REBOOT", "android.permission.SHUTDOWN", "android.permission.DEVICE_POWER", "android.permission.READ_EXTERNAL_STORAGE", "android.permission.WRITE_EXTERNAL_STORAG", "android.permission.WRITE_SETTINGS", "android.permission.BLUETOOTH_CONNECT", "android.permission.BLUETOOTH_SCAN" ] } } } ``` 3. 运行效果 ![输入图片说明](QQ%E5%9B%BE%E7%89%8720240626152323.jpg) # 接口文档 #### 1. 获取管理员token * 说明 根据管理员账号appId和appSecret获取accessToken,appId和appSecret可以在控制台-我的应用-应用信息中找到 > 注意
1、获取到的管理员token有效期是3天,请在即将过期或者接口报错TK1002时重新获取,每个管理员token具备独立的3天生命周期,请勿频繁调用避免占用过多接口调用次数。
2、获取到的管理员token超过2天但未满3天,此时再请求accessToken接口时,会返回新的管理员token,老token和新token生命周期相互独立,且都可以正常使用。 * 方法名 `accessToken` * 参数 |参数名|必填|类型|默认值|合法直|说明| |:----- |:-----|:----- |:-----|:----- |----- |appSecret |是 |string|| |appSecret | |appId |是 |string ||| appId | * 返回示例 ```json {"accessToken":"At_0000hz4f2902a9ec2f461c89fdb6f308","msg":"success"} ``` * 返回参数说明 |参数名|类型|说明| |:----- |:-----|----- |accessToken |string| 管理员token | |msg |string| 返回消息 | #### 账户对接 ###### 创建子账号 * 方法名 `createSubAccount` * 参数 |参数名|必填|类型|默认值|合法直|说明| |:----- |:-----|:----- |:-----|:----- |----- |token|是 |string|| |管理员accessToken | |account|是 |string ||| 手机号或者邮箱 | |appSecret |是 |string|| |appSecret | |appId |是 |string ||| appId | * 返回示例 ```json {"token":"At_0000hz4f2902a9ec2f461c89fdb6f308","account":"1875*******54","openId":"","msg":"com.example.uniplugin_lcdevice.mobilecommon.AppConsume.BusinessException: SUB1010子账号创建失败,账号已存在。"} ``` * 返回参数说明 |参数名|类型|说明| |:----- |:-----|----- |accessToken |string| 管理员token | |msg |string| 返回消息 | ###### 根据子账号获取openId * 方法名 `getOpenIdByAccount` * 参数 |参数名|必填|类型|默认值|合法直|说明| |:----- |:-----|:----- |:-----|:----- |----- |token|是 |string|| |管理员accessToken | |account|是 |string ||| 手机号或者邮箱 | |appSecret |是 |string|| |appSecret | |appId |是 |string ||| appId | * 返回示例 ```json {"openId":"18959d97d8bd45a68aecba4bb1e564ae07","msg":"success"} ``` * 返回参数说明 |参数名|类型|说明| |:----- |:-----|----- |openId |string| 子账号Id | |msg |string| 返回消息 | ###### 获取子账号token * 方法名 `getOpenIdByAccount` * 参数 |参数名|必填|类型|默认值|合法直|说明| |:----- |:-----|:----- |:-----|:----- |----- |token|是 |string|| |管理员accessToken | |openId|是 |string ||| 子账户ID | |appSecret |是 |string|| |appSecret | |appId |是 |string ||| appId | * 返回示例 ```json {"accessToken":"St_0000hzc9c5fe669ef44e07ab596ef884","msg":"success"} ``` * 返回参数说明 |参数名|类型|说明| |:----- |:-----|----- |accessToken |string| 子账号accessToken | |msg |string| 返回消息 | ###### 添加子账号权限 * 说明 > 此接口目前只给设备授权配置权限(更多权限,下版本更新) * 方法名 `addPolicy` * 参数 |参数名|必填|类型|默认值|合法直|说明| |:----- |:-----|:----- |:-----|:----- |----- |token|是 |string|| |管理员accessToken | |openId|是 |string ||| 子账户ID | |appSecret |是 |string|| |appSecret | |appId |是 |string ||| appId | |deviceId |是 |string ||| 设备S/N | * 返回示例 无 data 返回 ```json {"code":"0","msg":"success"} ``` * 返回参数说明 |参数名|类型|说明| |:----- |:-----|----- |code |string| | |msg |string| 返回消息 | #### 设备管理 ###### 绑定设备 * 说明 > 将设备绑定在指定账号下 * 方法名 `bindDevice` * 参数 |参数名|必填|类型|默认值|合法直|说明| |:----- |:-----|:----- |:-----|:----- |----- |token|是 |string|| |管理员accessToken | |appSecret |是 |string|| |appSecret | |appId |是 |string ||| appId | |code|是 |string ||code统称为设备验证码,针对不同的场景传的code值也会不一样,如下:1、如果未修改过设备密码,则传设备底部标签中(或二维码中)8位数字的安全码;2、如果修改了设备密码,则传修改后的设备密码;3、如果未修改过设备密码,且该设备底部标签中(或二维码中)没有8位数字的安全码,则code值传空即可。| 设备验证码 | |deviceId |是 |string ||| 设备S/N | * 返回示例 ```json {"data":"{\"msg\":\"操作成功。\",\"code\":\"0\"}","msg":"success"} ``` * 返回参数说明 |参数名|类型|说明| |:----- |:-----|----- |data |string| 返回数据 | |msg |string| 返回消息 | ###### 解绑设备 * 说明 > 备注:1、设备解绑后,报警消息立即删除
2、云录像不会马上删除,而是过期自动删除
3、设备解绑时已开通的云存储套餐会自动返回开发者账号下,可以继承给该账号下其他设备
4、传subDeviceId解绑子设备时,是解除子设备和上层网关设备deviceId的关联关系,网关设备不会解绑 * 方法名 `unBindDevice` * 参数 |参数名|必填|类型|默认值|合法直|说明| |:----- |:-----|:----- |:-----|:----- |----- |token|是 |string|| |管理员accessToken | |appSecret |是 |string|| |appSecret | |appId |是 |string ||| appId | |deviceId |是 |string ||| 设备S/N | |productId |否 |string ||可通过listDeviceDetailsByIds、listDeviceDetailsByPage获取| 设备产品id,解绑 子设备 时必填 | |subDeviceId |否 |string ||可通过listDeviceDetailsByIds、listDeviceDetailsByPage获取| 子设备序列号,解绑 子设备 时必填 | * 返回示例 ```json {"data":"{\"msg\":\"操作成功。\",\"code\":\"0\"}","msg":"success"} ``` * 返回参数说明 |参数名|类型|说明| |:----- |:-----|----- |data |string| 返回数据 | |msg |string| 返回消息 | #### 设备配置 ###### 设备当前连接热点信息 * 方法名 `currentDeviceWifi` * 参数 |参数名|必填|类型|默认值|合法直|说明| |:----- |:-----|:----- |:-----|:----- |----- |token|是 |string|| |管理员accessToken | |appSecret |是 |string|| |appSecret | |appId |是 |string ||| appId | |deviceId |是 |string ||| 设备S/N | * 返回示例 ```json {"data":"{\"intensity\":\"4\",\"ssid\":\"Redmi_B171\",\"linkEnable\":true}","msg":"success"} ``` * 返回参数说明 |参数名|类型|说明| |:----- |:-----|----- |data |string| 返回数据 | |intensity |int| 强度,0最弱,5最强 | |ssid |string| 当前连接的热点名称 | |linkEnable |boolean| 是否连接了wifi,true:是,false:否 | |msg |string| 返回消息 | #### 设备查询 ###### 分页查询设备详细信息 * 方法名 `listDeviceDetailsByPage` * 参数 |参数名|必填|类型|默认值|合法直|说明| |:----- |:-----|:----- |:-----|:----- |----- |token|是 |string|| |管理员accessToken | |appSecret |是 |string|| |appSecret | |appId |是 |string ||| appId | |page |是 |int ||| 查询页码,从1开始 | |pageSize |是 |int ||| 每页条目数,范围:1~50 | |source |是 |string |bindAndShare|bind:获取绑定的设备 share:获取分享的设备 bindAndShare:获取绑定及分享的设备| 关系类型,子账号传该参数不起作用 | * 返回示例 ```json { "data": "{\"count\":2,\"deviceList\":[{\"catalog\":\"\",\"source\":\"bind\",\"multiFlag\":false,\"deviceId\":\"8CF681FFFEF50FCF\",\"deviceName\":\"IOT-ZP1-CN-0FCF\",\"deviceStatus\":\"online\",\"accessType\":\"PaaS\",\"channelList\":[],\"p2pPort\":\"554\",\"encryptMode\":\"0\",\"tlsPrivatePort\":\"37778\",\"parentDeviceId\":\"59DAEACPSF00002\",\"brand\":\"lechange\",\"devicePassword\":\"lHo34HQePoBmv/KKnt6YHQ==\",\"playToken\":\"aFacsWGj36TPuTQnH9lSZlJ8fx2UOlKEjHVVWp2HYIZImeAWlPJQ5nXmRgjAeiZsahzQZSDm6IME4Wq2SsqLl63dQVxEupLYCUmYB7KCXzCPfPy2mnAuL2TeHavbUFjGJHRKr0z3JMGVkBW6g0/fPyR86Yl5BKx41HalyjzANYcxXwuvy9zO77UVc6wZsyYdJ44qr4bRORipS5M6kjgWc4c/G8i2h10mn9wqCIWwXYhCv5v7SDuD+fJfwRqvIzox0rNxmbtlvjbTjxZcKfLxtg==\",\"deviceUsername\":\"I9geFS1oQiWVr7MdrZOOoQ==\",\"expandChanNum\":\"\",\"parentProductId\":\"Z8vP1yHQ\",\"productId\":\"rQ1SMVkC\",\"trackFollowStatus\":\"\",\"httpPort\":\"80\",\"privatePort\":\"\",\"rtspPort\":\"554\",\"deviceVersion\":\"IR100_v1.2.0\",\"wifiConfigMode\":\"accessory\",\"deviceAbility\":\"\",\"port\":\"37777\",\"wifiConfigModeOptional\":false,\"defaultWifiConfigMode\":\"accessory\",\"lastOffLineTime\":\"\",\"tlsEnable\":false,\"deviceModel\":\"ZP1-CN\",\"hwId\":\"\",\"isSubDevice\":true,\"canBeUpgrade\":false},{\"subDeviceList\":[{\"subDeviceStatus\":\"online\",\"subDeviceProductId\":\"rQ1SMVkC\",\"subDeviceModel\":\"ZP1-CN\",\"subDeviceName\":\"IOT-ZP1-CN-0FCF\",\"subDeviceId\":\"8CF681FFFEF50FCF\"}],\"catalog\":\"\",\"source\":\"bind\",\"multiFlag\":false,\"deviceId\":\"59DAEACPSF00002\",\"deviceName\":\"ZG1-CN0002\",\"deviceStatus\":\"online\",\"accessType\":\"PaaS\",\"channelList\":[],\"p2pPort\":\"554\",\"encryptMode\":\"0\",\"tlsPrivatePort\":\"37778\",\"brand\":\"lechange\",\"devicePassword\":\"TEvUXDfdPAzoza3ypkBAKw==\",\"playToken\":\"CcexKkvMtRHs+OH4praQjLsIDtrAagNE41naRWFhOCyT+gA8qM4m4a2Y3D6Pen1F1jwuuU7m57Mdwk99TkaKbgnrAMxQZUeP0u+/MWVBphqkHis4xx+sc+OQIY5VJNqwA4JS2lfgszdnvWnfOQkglERL8Up1KBglqORLXJIQzWoVulMH9GW04/BtigkC6QqLFS+9gn9bNTot92KYnedFHNG2YJbAK9d7O/WJEDNpA2w=\",\"deviceUsername\":\"ZQrp2lsHu2fC1Ib9H+4i4g==\",\"expandChanNum\":\"\",\"productId\":\"Z8vP1yHQ\",\"trackFollowStatus\":\"\",\"httpPort\":\"80\",\"privatePort\":\"\",\"rtspPort\":\"554\",\"deviceVersion\":\"1.1.0\",\"wifiConfigMode\":\"lan,wifi\",\"deviceAbility\":\"\",\"port\":\"37777\",\"wifiConfigModeOptional\":false,\"defaultWifiConfigMode\":\"wifi\",\"lastOffLineTime\":\"20240604T181756Z\",\"tlsEnable\":false,\"deviceModel\":\"ZG1-CN\",\"hwId\":\"\",\"isSubDevice\":false,\"canBeUpgrade\":false}]}", "msg": "success" } ``` * 返回参数说明 |参数名|类型|说明| |:----- |:-----|----- |data |string| 返回数据 | |msg |string| 返回消息 | #### 推送配置 ###### 设置报警回调地址 * 方法名 `setMessageCallback` * 参数 |参数名|必填|类型|默认值|合法直|说明| |:----- |:-----|:----- |:-----|:----- |----- |token|是 |string|| |管理员accessToken | |appSecret |是 |string|| |appSecret | |appId |是 |string ||| appId | |status |是 |string ||"on","off"| 是否订阅消息 | |callbackUrl |否 |int |""|消息回调URL status为on时,必填;status为off时,可为空;| 开发者接收设备消息的地址,需要可以被外网访问 | |callbackFlag |否 |string |""|alarm:设备告警消息推送;deviceStatus:设备上下线消息推送;iot:IoT物联网设备消息;numberstat:设备客流数据消息推送;faceAnalysis:设备人脸智能消息推送| 回调类型标识,回调类型可选填以上的其中一个或者多个(中间用逗号分隔)。status为on时,必填;status为off时,可为空。 | |basePush |否 |string |"2"|"1":推送;"2":不推送| 标示开发者账号下关联的乐橙APP设备消息是否推送 | * 返回示例 ```json {"data":"{\"msg\":\"操作成功。\",\"code\":\"0\"}","msg":"success"} ``` * 返回参数说明 |参数名|类型|说明| |:----- |:-----|----- |data |string| 返回数据 | |msg |string| 返回消息 | #### LCOpenSDK ###### 开始蓝牙配网 * 说明 > 备注:
1、需要开启手机蓝牙
2、需要开启手机定位和存储 ![输入图片说明](Snipaste_2024-06-26_19-15-44.png) * 方法名 `startBleConfig` * 参数 |参数名|必填|类型|默认值|合法直|说明| |:----- |:-----|:----- |:-----|:----- |----- |deviceId|是 |string|| | 设备序列号(S/N) | |productId |是 |string|| |设备密码 (扫设备上二维码可获取) | |ssid |是 |string ||| wifi名称 | |wifiPwd |是 |string ||| wifi密码 | * 返回示例 ```json {"data":"","msg":"success"} ``` * 返回参数说明 |参数名|类型|说明| |:----- |:-----|----- |data |string| 返回数据 | |msg |string| 返回消息 |