Skip to content

场景SDK:QuecSceneSdk

功能概述

SDK支持用户按照一定的规则, 使一个或者多个设备执行多个任务

kotlin
QuecSceneService

SDK集成方式

注意

场景SDK运行依赖核心库quec-iot-sdk, 请先按照快速集成文档集成核心库

引入依赖

groovy
implementation 'com.quectel.app.sdk:quec-scene-sdk:2.14.0'

场景管理

获取场景列表

接口说明

获取当前场景的场景列表

kotlin
fun getSceneList(pageNumber: Int, pageSize: Int, callback: QuecCallback<QuecPageResponse<QuecSceneModel>>)

参数说明

参数是否必传说明
pageNumber分页号
pageSize每一页的大小
callback请求回调

示例代码

kotlin
QuecSceneService.getSceneList(1, 10) {
    if (it.isSuccess) {
        //获取场景列表成功
        val data = it.data  //场景列表数据
    } else {
        //获取场景列表失败
        val code = it.code  //错误码
        val msg = it.msg    //错误信息
    }
}

QuecSceneModel属性定义

字段类型描述
fidString家庭id
isCommonboolean是否是常用场景
sceneInfoQuecSceneInfoModel场景详情

QuecSceneInfoModel属性定义

字段类型描述
executeResultint上次场景执行结果
iconString场景图标
idint场景执行结果
metaDataListList<QuecMetaDataModel>场景设备动作列表
nameString场景名称
sceneIdString场景Id

QuecMetaDataModel属性定义

字段类型描述
actionListList<QuecSceneActionModel>设备动作列表
deviceKeyString设备dk
productKeyString设备pk
deviceNameString设备名称
logoImageString设备icon
deviceTypeint设备类型 1 默认普通设备 2 群组

QuecSceneActionModel属性定义

字段类型描述
idint物模型功能ID
codeString物模型标志符
dataTypeString物模型数据类型
actionIdint执行动作Id
nameString物模型功能名称
subNameString物模型值subName
typeString物模型功能类型
subTypeString物模型subType
subTypeString物模型subType

添加场景

接口说明

添加一个新的场景

kotlin
fun addScene(sceneModel: QuecSceneModel, callback: QuecCallback<Unit>)

参数说明

参数是否必传说明
sceneModel场景属性
callback请求回调

示例代码

kotlin
val model = QuecSceneModel()
val sceneInfoModel = QuecSceneInfoModel()
val metaDataModel = QuecMetaDataModel()
val actionModel = QuecSceneActionModel()

model.isIsCommon = true
sceneInfoModel.name = "设备开灯"
sceneInfoModel.icon = "https://xxx/xxx.png"

actionModel.code = "switch"
actionModel.dataType = "BOOL"
actionModel.id = 1
actionModel.name = "开关"
actionModel.subName = "开灯"
actionModel.subType = "RW"
actionModel.type = "PROPERTY"
actionModel.value = true

metaDataModel.productKey = "pk"
metaDataModel.deviceKey = "dk"
metaDataModel.deviceType = 1

model.sceneInfo = sceneInfoModel
sceneInfoModel.metaDataList = listOf(metaDataModel)
metaDataModel.actionList = listOf(actionModel)

QuecSceneService.addScene(model) {
    if (it.isSuccess) {
        //添加场景成功
    } else {
        //添加场景失败
        val code = it.code  //错误码
        val msg = it.msg    //错误信息
    }
}

修改场景

接口说明

编写场景中的信息

kotlin
fun editScene(sceneModel: QuecSceneModel, callback: QuecCallback<Unit>)

参数说明

参数是否必传说明
sceneModel场景属性
callback请求回调

示例代码

kotlin
val model = QuecSceneModel() //从场景列表获取到的对象
model.sceneInfo.name = "新名称"
QuecSceneService.editScene(model) {
    if (it.isSuccess) {
        //修改场景成功
    } else {
        //修改场景失败
        val code = it.code  //错误码
        val msg = it.msg    //错误信息
    }
}

删除场景

接口说明

删除指定的场景

kotlin
fun deleteScene(sceneId: String, callback: QuecCallback<Unit>)

参数说明

参数是否必传说明
sceneId场景id
callback请求回调

示例代码

kotlin
QuecSceneService.deleteScene("sceneId") {
    if (it.isSuccess) {
        //删除场景成功
    } else {
        //删除场景失败
        val code = it.code  //错误码
        val msg = it.msg    //错误信息
    }
}

获取场景详情

接口说明

获取指定场景的场景详情

kotlin
fun getSceneInfo(sceneId: String, callback: QuecCallback<QuecSceneModel>)

参数说明

参数是否必传说明
sceneId场景id
callback请求回调

示例代码

kotlin
QuecSceneService.getSceneInfo("sceneId") {
    if (it.isSuccess) {
        //获取场景详情成功
    } else {
        //获取场景详情失败
        val code = it.code  //错误码
        val msg = it.msg    //错误信息
    }
}

场景执行

执行场景

接口说明

执行指定的场景

kotlin
fun executeScene(sceneId: String, callback: QuecCallback<QuecActionExecuteResultModel>)

参数说明

参数是否必传说明
sceneId场景id
callback请求回调

示例代码

kotlin
QuecSceneService.executeScene("sceneId") {
    if (it.isSuccess) {
        //执行场景成功
    } else {
        //执行场景失败
        val code = it.code  //错误码
        val msg = it.msg    //错误信息
    }
}

QuecActionExecuteResultModel属性定义

字段类型描述
executeResultboolean执行结果
failActionListList<QuecFailActionModel>失败结果列表
failCountint失败结果数
successCountint成功结果数

QuecFailActionModelModel属性定义

字段类型描述
productKeyString设备pk
deviceKeyString设备dk
deviceNameString设备名
imageLogoString设备logo
reasonString原因

测试场景

接口说明

测试场景配置的执行情况, 在未保存场景状态到云端的情况下, 也可执行

kotlin
fun executeTestScene(sceneInfoModel: QuecSceneModel, callback: QuecCallback<QuecActionExecuteResultModel>)

参数说明

参数是否必传说明
sceneModel场景属性
callback请求回调

示例代码

kotlin
val model = QuecSceneModel() //从场景列表获取到的对象
QuecSceneService.executeTestScene(model) {
    if (it.isSuccess) {
        //执行场景测试成功
    } else {
        //执行场景测试失败
        val code = it.code  //错误码
        val msg = it.msg    //错误信息
    }
}

常用场景

获取常用场景列表

接口说明

获取常用场景列表

kotlin
fun getCommonSceneList(pageNumber: Int, pageSize: Int, callback: QuecCallback<QuecPageResponse<QuecSceneModel>>)

参数说明

参数是否必传说明
pageNumber分页号
pageSize每一页的大小
callback请求回调

示例代码

kotlin
QuecSceneService.getCommonSceneList(1, 10) {
    if (it.isSuccess) {
        //获取常用场景列表成功
    } else {
        //获取常用场景列表失败
        val code = it.code  //错误码
        val msg = it.msg    //错误信息
    }
}

批量添加常用场景

接口说明

批量添加常用场景

kotlin
fun batchAddCommonScene(sceneIdList: List<String>, callback: QuecCallback<QuecAddCommonSceneIdModel>)

参数说明

参数是否必传说明
sceneIdList场景id列表,必传
callback请求回调

示例代码

kotlin
QuecSceneService.batchAddCommonScene(listOf("sceneId1", "sceneId2")) {
    if (it.isSuccess) {
        //添加常用场景成功
    } else {
        //添加常用场景失败
        val code = it.code  //错误码
        val msg = it.msg    //错误信息
    }
}

批量删除常用场景

接口说明

批量删除常用场景

kotlin
fun batchDeleteCommonScene(sceneIdList: List<String>, callback: QuecCallback<QuecAddCommonSceneIdModel>)

参数说明

参数是否必传说明
sceneIdList场景id列表,必传
callback请求回调

示例代码

kotlin
QuecSceneService.batchDeleteCommonScene(listOf("sceneId1", "sceneId2")) {
    if (it.isSuccess) {
        //删除常用场景成功
    } else {
        //删除常用场景失败
        val code = it.code  //错误码
        val msg = it.msg    //错误信息
    }
}

场景日志

获取场景日志列表

接口说明

获取场景日志列表

kotlin
fun getSceneLogList(lastExecutionId: Long, limit: Int, callback: QuecCallback<List<QuecSceneLogItemModel>>)

参数说明

参数是否必传说明
lastExecutionId最后一条执行日志的id
limit查询的数据数量
callback请求回调

示例代码

kotlin
QuecSceneService.getSceneLogList(80, 10) {
    if (it.isSuccess) {
        //查询日志列表成功
        val data = it.data //列表数据
    } else {
        //查询日志列表失败
        val code = it.code  //错误码
        val msg = it.msg    //错误信息
    }
}

QuecSceneLogItemModel属性定义

字段类型描述
sceneIdString场景ID
sceneNameString场景名称
sceneIconString场景icon
executionIdlong执行id
executionTimelong执行时间
executionResultint执行结果
executionListList<QuecSceneLogExecutionModel>执行结果列表

QuecSceneLogExecutionModel属性定义

字段类型描述
productKeyString设备pk
deviceKeyString设备dk
deviceNameString设备名称
logoImageString设备logo
executionResultString执行结果
actionResultListList<QuecSceneLogActionModel>场景ID

QuecSceneLogActionModel属性定义

字段类型描述
resultboolean执行结果
reasonString原因
createTimeString时间戳
actionQuecSceneActionModel物模型

获取场景日志详情

接口说明

获取场景日志详情

kotlin
fun getSceneLogDetailInfo(executionId: Long, callback: QuecCallback<QuecSceneLogItemModel>)

参数说明

参数是否必传说明
executionId场景日志id
callback请求回调

示例代码

kotlin
QuecSceneService.getSceneLogDetailInfo(1000) {
    if (it.isSuccess) {
        //查询日志详情成功
        val data = it.data //详情数据
    } else {
        //查询日志详情失败
        val code = it.code  //错误码
        val msg = it.msg    //错误信息
    }
}

清除场景日志

接口说明

清除场景日志

kotlin
fun clearSceneLog(callback: QuecCallback<Unit>)

参数说明

参数是否必传说明
callback请求回调

示例代码

kotlin
QuecSceneService.clearSceneLog() {
    if (it.isSuccess) {
        //清除日志成功
    } else {
        //清除日志失败
        val code = it.code  //错误码
        val msg = it.msg    //错误信息
    }
}