upLogicEngineModule 基本属性和相关接口

模块概述

upLogicEngineModule模块提供网器设备相关操作,包含设备上报状态获取,命令下发过程;

通过upLogicEngineModule模块获取的设备状态带有读写状态、取值范围、下发方式等属性状态;

通过upLogicEngineModule模块下发命令时,逻辑引擎会辅助计算;

在实际使用过程中,初始化时,可调用 getBaseInfoPromise、getInitialAttributeListPromise、getAttributeListPromise和getCautionsPromise方法获取设备状态,方便初始化页面

随后调用attachPromise方法订阅设备,获取最新设备数据,做后续状态订阅,刷新页面UI状态


方法列表

  • getBaseInfoPromise (获取基本信息)
  • getInitialAttributeListPromise (获取初始化属性列表)
  • getAttributeListPromise (获取属性列表)
  • getAttributeByNamePromise (通过属性名称获取指定属性)
  • getCautionsPromise (获取告警信息)
  • attachPromise (订阅设备状态信息)
  • detachPromise (取消订阅设备状态信息)
  • calculatePromise (计算单命令)
  • calculateAllPromise (计算组命令)
  • operatePromise (下发命令)
  • attachLazy (只添加设备状态变化的监听器,不做查询设备全属性状态的操作)
  • getDeviceBusinessFunctionList (查询设备业务功能列表的方法)
  • startDeviceBusinessFunction(开启设备业务功能的方法)
  • modifyBusinessFunction (修改业务功能的属性。)
  • getBusinessFunctionCachedAttributes (查询当前启用的业务功能缓存的属性)
  • executeBusinessFunction (执行业务功能命令的方法)

公共属性

  • 设备基本信息
属性名 数据类型 说明
connection Stirng 设备连接状态(UNCONNECT,OFFLINE,CONNECTING,CONNECTED,READY;READY认为是在线状态,其他都是离线状态)
deviceId String 设备mac地址(数字与字母组合串)
deviceType String 设备类别
model String 设备型号
typeId String 设备typeId
onlineStateV2 String 设备融合在离线状态(OFFLINE,ONLINE_NOT_READY,ONLINE_READY)
  • connection属性说明
属性名 数据类型 说明
UNCONNECT Stirng 设备未连接
OFFLINE Stirng 设备离线
CONNECTING Stirng 设备连接中
CONNECTED Stirng 设备已连接
READY Stirng 设备准备就绪(只有此状态认为设备在线,剩下都为离线)
  • 设备属性信息
属性名 数据类型 说明
code Array 属性code码
defaultValue Stirng 属性默认值
desc Stirng 属性描述
invisible Boolean 属性是否隐藏
name Stirng 属性名
operationType Stirng 属性下发方式
readable Boolean 属性是否可读
value Stirng 属性值
valueRange Object 属性取值范围
writable Boolean 属性是否可写
  • 告警属性信息
属性名 数据类型 说明
name Stirng 告警名称
code Stirng 告警code码
desc Stirng 告警描述
clear Boolean 告警清楚标识
  • 设备BusinessAttr属性信息
属性名 数据类型 说明
name Stirng 业务功能属性的名称
desc Stirng 业务功能属性的描述,易于人们阅读的文字描述,也可用于界面显示。
desc1 Stirng 业务功能属性的描述,自定义字段1。
desc2 Stirng 业务功能属性的描述,自定义字段2。
desc3 Stirng 业务功能属性的描述,自定义字段3。
desc4 Stirng 业务功能属性的描述,自定义字段4。
detailDesc Stirng 业务功能属性的详细描述,易于人们阅读的文字描述,也可用于界面显示。
alias string 业务功能属性的别名。
cmdPara CmdPara 属性命令参数类
  • 设备CmdPara属性信息
属性名 数据类型 说明
cmdName Stirng 命令的名称
attrNameList array 命令名称集
  • 设备AttrNameList属性信息
属性名 数据类型 说明
name Stirng 命令的名称
valueType Stirng 业务功能对属性的取值范围修改分为三种1:固定值2:设备上报3:用户填写。
defaultValue Stirng 属性的默认值。
valueRange Object 属性的可取值的信息对象。
  • LeDeviceAttribute属性信息
属性名 数据类型 说明
name Stirng 属性名称
value Stirng 属性值

模块变更记录

  • V3.7.0

    • 数据模型变更:
      • BusinessAttr 中新增字段:desc1,desc2,desc3,desc4
      • DataStep新增字段:unit
  • V3.0.0

    • 方法变更:
      • 模块名由logicEngineModule修改为upLogicEngineModule
      • operatePromise方法新增第二个入参commands,可直接使用operatePromise下发指令
  • V3.2.0

    • 逻辑引擎模块未定义的retCode编码按照通用数据规定变为990001,操作失败retCode变为000001,非法参数错误retCode变为000002
  • V3.7.0

    • 新增接口: attachLazy (只添加设备状态变化的监听器,不做查询设备全属性状态的操作) getDeviceBusinessFunctionList (查询设备业务功能列表的方法) startDeviceBusinessFunction(开启设备业务功能的方法) modifyBusinessFunction (修改业务功能的属性。) getBusinessFunctionCachedAttributes (查询当前启用的业务功能缓存的属性) executeBusinessFunction (执行业务功能命令的方法)

方法说明

  • getBaseInfoPromise (获取基本信息)

    getBaseInfoPromise(params)
适用性
容器 cordova APICloud Nebula
支持情况
APP版本 5.0.0 及以上 5.3.0 及以上 6.12.0 及以上
params 输入参数:
属性名 数据类型 是否必填 说明
mac String 设备mac地址
错误返回 retCode说明:

按照通用

正确返回 retData说明:
属性名 数据类型 说明
connection String 设备连接状态(UNCONNECT,OFFLINE,CONNECTING,CONNECTED,READY;READY认为是在线状态,其他都是离线状态)
deviceId String 设备mac地址
deviceType String 设备类别
model String 设备型号
typeId String 设备typeId
示例
uplusapi.upLogicEngineModule.getBaseInfoPromise('0008228FDEB9').then((result) => {
  console.log('result',result);
},(err) =>{
  console.log('err',err);
});
  • getInitialAttributeListPromise (获取初始化属性列表)

    getInitialAttributeListPromise(params)
适用性
容器 cordova APICloud Nebula
支持情况
APP版本 5.0.0 及以上 5.3.0 及以上 6.12.0 及以上
params 输入参数:
属性名 数据类型 是否必填 说明
mac String 设备mac地址
错误返回 retCode说明:

按照通用

正确返回 retData说明:
{
    "retCode":"000000",
    "retInfo":"操作成功",
    "retData":[dataObject] //请见公共属性中的设备属性信息
}
示例
uplusapi.upLogicEngineModule.getInitialAttributeListPromise('0008228FDEB9').then((result) => {
  console.log('result',result);
},(err) =>{
  console.log('err',err);
});
  • getAttributeListPromise (获取属性列表)

    getAttributeListPromise(params)
适用性
容器 cordova APICloud Nebula
支持情况
APP版本 5.0.0 及以上 5.3.0 及以上 6.12.0 及以上
params 输入参数:
属性名 数据类型 是否必填 说明
mac String 设备mac地址
错误返回 retCode说明:

按照通用

正确返回 retData说明:
{
    "retCode":"000000",
    "retInfo":"操作成功",
    "retData":[dataObject] //请见公共属性中的设备属性信息
}
示例
uplusapi.upLogicEngineModule.getAttributeListPromise('0008228FDEB9').then((result) => {
  console.log('result',result);
},(err) =>{
  console.log('err',err);
});
  • getAttributeByNamePromise (通过属性名称获取指定属性)

    getAttributeByNamePromise(params)
适用性
容器 cordova APICloud Nebula
支持情况
APP版本 5.0.0 及以上 5.3.0 及以上 6.12.0 及以上
params 输入参数:
属性名 数据类型 是否必填 说明
mac String 设备mac地址
name String 设备属性名
错误返回 retCode说明:

按照通用

正确返回 retData说明:
{
    "retCode":"000000",
    "retInfo":"操作成功",
    "retData":data //请见公共属性中的设备属性信息
}
示例
uplusapi.upLogicEngineModule.getAttributeByNamePromise('0008228FDEB9','holidayMode').then((result) => {
  console.log('result',result);
},(err) =>{
  console.log('err',err);
});
  • getCautionsPromise (获取告警信息)

    getCautionsPromise(params)
适用性
容器 cordova APICloud Nebula
支持情况
APP版本 5.0.0 及以上 5.3.0 及以上 6.12.0 及以上
params 输入参数:
属性名 数据类型 是否必填 说明
mac String 设备mac地址
错误返回 retCode说明:

按照通用

正确返回 retData说明:
{
    "retCode":"000000",
    "retInfo":"操作成功",
    "retData":data //请见公共属性中的设备告警信息
}
示例
uplusapi.upLogicEngineModule.getCautionsPromise('0008228FDEB9').then((result) => {
  console.log('result',result);
},(err) =>{
  console.log('err',err);
});
  • attachPromise (连接逻辑引擎)

    attachPromise(params)
适用性
容器 cordova APICloud Nebula
支持情况
APP版本 5.0.0 及以上 5.3.0 及以上 6.12.0 及以上
params 输入参数:
属性名 数据类型 是否必填 说明
mac String 设备mac地址
deviceChangeListener Function 监听函数
deviceChangeListener监听函数回调参数

每次监听函数触发时,四个参数不一定全部返回,设备无告警时,cautions不返回,设备未就绪时,attributes无返回

参数名 说明
mac 当前设备mac地址
baseInfo 设备基本信息
attributes 设备属性信息
cautions 设备告警信息
错误返回 retCode说明:

按照通用

正确返回 retData说明:

示例
uplusapi.upLogicEngineModule.attachPromise('0008228FDEB9', (mac, baseInfo, attributes, cautions)=>{
  console.log('mac',mac);
  console.log('baseInfo',baseInfo);
  console.log('attributes',attributes);
  console.log('cautions',cautions);
});
  • detachPromise (断开逻辑引擎)

    detachPromise(params)
适用性
容器 cordova APICloud Nebula
支持情况
APP版本 5.0.0 及以上 5.3.0 及以上 6.12.0 及以上
params 输入参数:
属性名 数据类型 是否必填 说明
mac String 设备mac地址
错误返回 retCode说明:

按照通用

正确返回 retData说明:

示例
uplusapi.upLogicEngineModule.detachPromise('0008228FDEB9').then((result) => {
  console.log('result',result);
},(err) =>{
  console.log('err',err);
});
  • calculatePromise (计算单命令)

    calculatePromise(params)
适用性
容器 cordova APICloud Nebula
支持情况
APP版本 5.0.0 及以上 5.3.0 及以上 6.12.0 及以上
params 输入参数:
属性名 数据类型 是否必填 说明
mac String 设备mac地址
name String 单命令属性名
value String 单命令属性值
错误返回 retCode说明:
retCode编码 retInfo说明
120001 操作无效
120002 操作超时
120003 JSON转换错误
120004 逻辑引擎不存在
120005 逻辑对象属性错误
120007 逻辑引擎未准备好
正确返回 retData说明:

示例
uplusapi.upLogicEngineModule.calculatePromise('0008228FDEB9', 'healthMdoe', 'true').then((result) => {
  console.log('result',result);
},(err) =>{
  console.log('err',err);
});
  • calculateAllPromise (计算组命令)

    calculateAllPromise(params)
适用性
容器 cordova APICloud Nebula
支持情况
APP版本 5.0.0 及以上 5.3.0 及以上 6.12.0 及以上
params 输入参数:
属性名 数据类型 是否必填 说明
mac String 设备mac地址
commands Array 下发命令数组
commands 参数说明:
属性名 数据类型 是否必填 说明
name String 属性名
value String 属性值
错误返回 retCode说明:
retCode编码 retInfo说明
120001 操作无效
120002 操作超时
120003 JSON转换错误
120004 逻辑引擎不存在
120005 逻辑对象属性错误
120007 逻辑引擎未准备好
正确返回 retData说明:

示例
uplusapi.upLogicEngineModule.calculateAllPromise('0008228FDEB9',[{name:'healthMdoe',value:'true'}]).then((result) => {
  console.log('result',result);
},(err) =>{
  console.log('err',err);
});
  • operatePromise (下发命令)

    operatePromise(params)
适用性
容器 cordova APICloud Nebula
支持情况
APP版本 5.0.0 及以上 5.3.0 及以上 6.12.0 及以上
params 输入参数:
属性名 数据类型 是否必填 说明
mac String 设备mac地址
commands Array 下发命令数组;
commands 参数说明:
属性名 数据类型 是否必填 说明
name String 属性名
value String 属性值
错误返回 retCode说明:
retCode编码 retInfo说明
120001 操作无效
120002 操作超时
120003 JSON转换错误
120004 逻辑引擎不存在
120005 逻辑对象属性错误
120007 逻辑引擎未准备好
正确返回 retData说明:

示例
uplusapi.upLogicEngineModule.operatePromise('0008228FDEB9',[{name:'healthMdoe',value:'true'}]).then((result) => {
  console.log('result',result);
},(err) =>{
  console.log('err',err);
});
  • attachLazy (只添加设备状态变化的监听器,不做查询设备全属性状态的操作)

    attachLazy(params)
适用性
容器 cordova APICloud Nebula
支持情况
APP版本 / / 6.23.0 及以上
params 输入参数:
属性名 数据类型 是否必填 说明
mac String 设备mac地址
deviceChangeListener Function 监听函数
deviceChangeListener监听函数回调参数

每次监听函数触发时,四个参数不一定全部返回,设备无告警时,cautions不返回,设备未就绪时,attributes无返回

参数名 说明
mac 当前设备mac地址
baseInfo 设备基本信息
attributes 设备属性信息
cautions 设备告警信息
错误返回 retCode说明:

按照通用

正确返回 retData说明:

示例
uplusapi.upLogicEngineModule.attachLazy('0008228FDEB9', (mac, baseInfo, attributes, cautions)=>{
  console.log('mac',mac);
  console.log('baseInfo',baseInfo);
  console.log('attributes',attributes);
  console.log('cautions',cautions);
});
  • getDeviceBusinessFunctionList (查询设备业务功能列表的方法)

    getDeviceBusinessFunctionList(params)
适用性
容器 cordova APICloud Nebula
支持情况
APP版本 / / 6.23.0 及以上
params 输入参数:
属性名 数据类型 是否必填 说明
mac String 设备mac地址
错误返回 retCode说明:

按照通用

正确返回 retData说明:
{
    "retCode":"000000",
    "retInfo":"操作成功",
    "retData":BusinessAttr[] //请见公共属性中的设备BusinessAttr信息
}
  • getBusinessFunctionCachedAttributes (查询当前启用的业务功能缓存的属性)

    getBusinessFunctionCachedAttributes(params)
适用性
容器 cordova APICloud Nebula
支持情况
APP版本 / / 6.23.0 及以上
params 输入参数:
属性名 数据类型 是否必填 说明
mac String 设备mac地址
错误返回 retCode说明:

按照通用

正确返回 retData说明:
{
    "retCode":"000000",
    "retInfo":"操作成功",
    "retData":LeDeviceAttribute[] //请见公共属性中的设备LeDeviceAttribute信息
}
示例
uplusapi.upLogicEngineModule.getBusinessFunctionCachedAttributes('2C37C50086C0').then((result) => {
    console.log("getBusinessFunctionCachedAttributes result",result);
  }).catch((err) => {
    console.log("getBusinessFunctionCachedAttributes err",err);
  });
  • startDeviceBusinessFunction(开启设备业务功能的方法)

    startDeviceBusinessFunction(params) 说明:该方法用于开启设备业务功能, 如果已启动某业务功能.再启动其他业务功能, 且清除命令缓存为false, 启动失败
适用性
容器 cordova APICloud Nebula
支持情况
APP版本 / / 6.23.0 及以上
params 输入参数:
属性名 数据类型 是否必填 说明
mac String 设备mac地址
name String 要开启的业务功能名称
clean boolean 是否清理之前的命令缓存
错误返回 retCode说明:

按照通用

正确返回 retData说明:

示例
uplusapi.upLogicEngineModule.startDeviceBusinessFunction('2C37C50086C0','name',true).then((result) => {
    console.log("startDeviceBusinessFunction result",result);
  }).catch((err) => {
    console.log("startDeviceBusinessFunction err",err);
  });
  • modifyBusinessFunction (修改业务功能的属性)

    modifyBusinessFunction(params) 说明:启用某个业务功能后可以根据该方法对业务功能配置的属性的值进行修改
适用性
容器 cordova APICloud Nebula
支持情况
APP版本 / / 6.23.0 及以上
params 输入参数:
属性名 数据类型 是否必填 说明
mac String 设备mac地址
name String 要修改的属性对象的名字
value String 要修改的属性对象的值
错误返回 retCode说明:

按照通用

正确返回 retData说明:

示例
uplusapi.upLogicEngineModule.modifyBusinessFunction('2C37C50086C0','name','value').then((result) => {
    console.log("modifyBusinessFunction result",result);
  }).catch((err) => {
    console.log("modifyBusinessFunction err",err);
  });
  • executeBusinessFunction (执行业务功能命令的方法)

    executeBusinessFunction(params) 说明:该方法先计算要执行的业务功能的属性信息,然后将命令下发给设备,业务功能通过该接口控制设备。
适用性
容器 cordova APICloud Nebula
支持情况
APP版本 / / 6.23.0 及以上
params 输入参数:
属性名 数据类型 是否必填 说明
mac String 设备mac地址
错误返回 retCode说明:

按照通用

正确返回 retData说明:

示例
uplusapi.upLogicEngineModule.executeBusinessFunction('2C37C50086C0').then((result) => {
    console.log("executeBusinessFunction result",result);
  }).catch((err) => {
    console.log("executeBusinessFunction err",err);
  });

常见问题

  • 常见的设备类H5页面的初始化流程:
  • H5页面进行初始化时,需要设备数据(连接状态,设备属性,告警信息)渲染UI组件,请调用getBaseInfoPromise、getInitialAttributeListPromise、getAttributeListPromise和getCautionsPromise 方法进行主动查询,拿到需要的设备数据后,渲染出乎首屏页面
  • 设备和前端H5页面的状态同步,可以通过attachPromise方法建立订阅连接,此处需要注意的是:attachPromise方法订阅成功后,不会马上回调设备数据,需要等到建立订阅连接后,设备主动上报,才能收到设备最新数据;attachPromise回调的baseInfo,attributes,cautions 参数只在发生变化后才有参数值返回,此参数状态如未发生改变,则为undefined
  • 设备控制下发流程:
  • 前端进行命令下发,需要先调用计算命令接口(calculatePromise或calculateAllPromise),计算接口回调成功后,方可调用operatePromise接口,将命令下发到设备
  • calculatePromise或calculateAllPromise如何选择:需要根据我们所要控制的设备功能属性对应的operationType字段来区分选择,当operationType字段为‘I’时,代表此功能属性为单命令下发,请使用calculatePromise接口进行计算;当operationType字段为‘G’时,代表此功能属性为组命令下发,请使用calculateAllPromise接口进行计算;当operationType字段为‘IG’时,代表此功能属性为单命令、组命令下发皆可,两种计算接口都可使用
  • 当设备功能属性的operationType字段为‘IG’时,只下发一个功能指令并使用calculateAllPromise计算接口进行计算,调用operatePromise进行命令下发,实际是采用单命令计算方法进行计算

results matching ""

    No results matching ""