什么是物模型
物模型是指将物理设备的属性、服务、事件等信息进行抽象和建模,形成标准化的数据模型,以便于设备之间的互联互通和数据交换。在物联网中,物模型是设备接入平台和应用平台之间的重要桥梁,也是实现设备智能化的基础;
目前物联网行业普遍存在着设备孤岛、软硬开发强耦合的问题,需要构建模型统一描述语言、面向物理实体的统一建模,物模型作为物的抽象层屏蔽了底层终端差异,标准化了设备的能力表达和交互方式,极大降低了物联网应用开发和快速复制的成本。
基于共同的抽象特征,物模型可以让应用程序不再针对一个个的产品设备,而是同一类设备采用相同的处理逻辑。
功能类型 | 功能描述 |
---|---|
属性(Property) | 用于描述设备运行时具体信息和状态。比如夜灯开关状态,IPC摄像头ROI 允许的区域数量,电风扇的风力等级等等。属性可分为可读、可写、可上报类型;可读类型:仅支持读取属性值,应用端的代码中使用属性查询接口获取属性的值;可写类型:可通过物联网平台或者app为属性动态设置值,下发给设备;可上报类型:即设备可以将属性的值上报到云端;需要在产品的物模型页面中添加属性,包括属性的标识符、数据类型、读写权限等信息。添加完成后,你可以在设备端的代码中使用属性上报接口将属性的值上报到云端,也可以在应用端的代码中使用属性查询接口获取属性的值。注:属性三种类型可以随意搭配,比如夜灯的开关状态可为可读、可写;ipc摄像头ROI属性可为可读、可上报等等; |
服务(Service) | 也称为方法,指设备可供外部调用的指令或方法;例如开关、调节亮度、播放音乐、ipc摄像头获取云端AI算法集等;服务调用中可设置输入和输出参数。输入参数是服务执行时的参数,输出参数是服务执行后的结果,服务通常是可读写的,需要在产品的物模型页面中添加服务,包括服务的标识符、输入参数、输出参数等信息。添加完成后,设备可以接收来自云端的服务调用请求,并返回服务执行结果;也可以通过调用云端服务,获取配置结果集。 |
事件(Event) | 设备运行时,主动上报给云端的信息。例如IPC检测到火焰,上报火焰预警、检测到人经过,触发人行事件、按下灯按钮、故障告警等等。需要在产品的物模型页面中添加事件,包括事件的标识符、数据类型等信息。添加完成后,你可以在设备端的代码中使用事件上报接口将事件的发生上报到云端,也可以在云端的代码中使用事件订阅接口订阅设备的事件。 |
功能组(Module) | 功能组是指一组具有相似功能的属性、服务或事件的集合;一组功能定义的集合,就是一个功能组。多个功能组,彼此互不影响。产品的物模型页面中创建功能组,将相似的属性、服务或事件归为同一组。这样可以方便你在设备端的代码中对这些属性、服务或事件进行统一处理。物模型功能组,解决了工业场景中复杂的设备建模,便于在同一产品下,开发不同功能的设备。例如,电暖扇产品的功能属性有电源开关、档位(高、中、低)和室内温度,您可以在一个模块添加前2个属性,在另一个模块添加3个属性,然后分别在不同设备端,针对不同物模型模块功能进行开发。此时,该产品下不同设备就可以实现不同功能。 |
总结:通过上图,我们可以得知,系统先创建基础的功能组、基础属性、基础事件、基础服务;当需要对单个产品设置单独的物模型时,可以使用基础物模型为模板复制成新的模型,并单独设置私有属性,这样各个产品物模型相互独立,互不影响。
数据类型 | 说明 | 示例 |
---|---|---|
int | 整型。 | 10 |
float | 单精度浮点型。 | 1.1 |
double | 双精度浮点型。 | 1.23 |
string | 字符串,对应的数据长度不能超过10240字节。 | "startEventRecord" |
date | 时间戳。格式为String类型的UTC时间戳,单位:毫秒。 | "1635839462000" |
bool | 布尔型。采用0(false)或1(true)来定义布尔值,且0和1为int类型。 | 0表示关、1表示开。 |
enum | 枚举型。定义枚举项的参数值和参数描述,参数值必须为整数。 | 整数0表示红色,整数1表示蓝色,整数2表示绿色。 |
object | JSON对象。定义一个JSON结构体,结构体内元素类型支持int、float、double、text、date、bool和enum,不支持结构体嵌套。 | { "name":"Tom", "age":10 } |
array | 数组。需声明数组内的元素类型、数组元素个数。元素类型支持int、float、double、text或object,需确保同一个数组元素类型相同。元素个数限制为1~512个。 | [1, 2, 3, 4, 5, 6] |
IPC产品有个基础属性录影事件,也就是设备能侦测什么类型的事件,比如移动事件,人行事件,这个属于设备能力集,每个IPC设备都拥有该属性;
{
"id": "110170944444446",
"code": "cameraevent",//属性唯一标识符 code
"tenantId": "-1",
"serviceModuleId": null,
"parentId": null,
"version": null,
"name": "cameraEvent",//属性名称
"tags": null,
"apiLevel": null,
"developStatus": 0,
"reqParamType": 0,//请求参数格式:0 array ,1 object
"returnType": 0,//返回参数格式:0 array ,1 object
"propertyStatus": null,
"rwStatus": "RWU",//该属性可读 可写 可上报
"paramType": 3,//参数类型,0:int,1:float,2:bool,3:enum,4:string 5object 6 array
"minValue": "0",
"maxValue": "0",
"allowedValues": "[{\"description\":\"Motion\",\"value\":\"1\"},{\"description\":\"Human\",\"value\":\"2\"}]",//允许值列表
"description": "录影事件",//属性描述
"dpId": 160,
"usedFlag": 1,
"propertyId": null,
"status": null,
"useStatus": 2,
"step": null,
"paramValueType": 1,
"defaultValue": "1",
"jsonAllowedValue": "",
"unitId": "1",
"unit": "-",
"reportType": 0,
"key": null,
"propertyParamType": null,
"defaultName": null,
"baseFlag": true
}
IPC产品有个基础属性 ROI区域属于几边形,比如四边形、六边形,每个IPC设备都拥有该属性;
{
"id": "1372451189346271233",
"code": "RoiPoint",//属性唯一标识符 code
"tenantId": "-1",
"serviceModuleId": null,
"parentId": null,
"version": null,
"name": "RoiPoint",//属性名称
"tags": null,
"reqParamType": 1,//请求参数格式:0 array ,1 object
"returnType": 1,//返回参数格式:0 array ,1 object
"propertyStatus": 0,//属性状态,0:可选,1:必选
"rwStatus": "RU",,//该属性可读 可上报
"paramType": 0,//参数类型,0:int,1:float,2:bool,3:enum,4:string 5object 6 array
"minValue": "4",//最小值
"maxValue": "8",//最大值
"allowedValues": "[]",
"description": "几边形,值只能是偶数",
"dpId": 235,
"usedFlag": 1,
"propertyId": null,
"status": null,
"useStatus": 0,//使用状态 0 变更中 1待审核 2审核通过'
"step": "2",//步长
"paramValueType": null,//参数值类型 1:int 2:string
"defaultValue": "4",//默认值
"jsonAllowedValue": "",
"unitId": "6",
"unit": "watt",//单位
"reportType": 0,//上报类型 0:非记录型上报, 1:记录型上报
"key": null,
"propertyParamType": null,
"defaultName": null,
"baseFlag": true
}
IPC子产品M1配置录影事件私有属性为Motion - roi
{
"id": "1385434448196136962",
"parentId": null,
"tenantId": "2",
"serviceModuleId": null,
"version": null,
"name": "cameraEvent",
"code": "cameraevent",
"tags": null,
"apiLevel": null,
"developStatus": 1,
"reqParamType": 0,
"returnType": 0,
"propertyStatus": 0,
"rwStatus": "RWU",
"paramType": 3,//参数类型,0:int,1:float,2:bool,3:enum,4:string 5object 6 array
"minValue": "",
"maxValue": "",
"allowedValues": "[{\"defaultDescription\":\"Human detected\",\"defaultName\":\"Motion\",\"description\":\"Motion\",\"descriptionKey\":\"cameraevent_description_182_352\",\"id\":1386952828074803202,\"name\":\"Motion\",\"nameKey\":\"cameraevent_name_182_352\",\"value\":\"roi\"}]",
"description": "录影事件",
"propertyParentId": null,
"defaultName": "cameraEvent",
"baseFlag": false,
"step": null,
"paramValueType": 2,//参数值类型 1:int 2:string
"defaultValue": "roi",
"jsonAllowedValue": null,
"unitId": "1",
"unit": null,
"dpId": 160,
"whetherCheck": true,
"key": null
}
IPC子产品M1配置ROI区域私有属性为六边形
{
"id": "1385434448057724929",
"parentId": null,
"tenantId": "2",
"serviceModuleId": null,
"version": null,
"name": "RoiPoint",
"code": "RoiPoint",
"tags": null,
"apiLevel": null,
"developStatus": 1,
"reqParamType": 1,
"returnType": 1,
"propertyStatus": 0,
"rwStatus": "RU",
"paramType": 0,
"minValue": "4",
"maxValue": "8",
"allowedValues": "[]",
"description": "几边形,值只能是偶数",
"defaultName": "RoiPoint",
"baseFlag": false,
"step": "2",
"paramValueType": null,
"defaultValue": "6",//默认六边形
"jsonAllowedValue": null,
"unitId": "6",
"unit": "watt",
"dpId": 235,
"whetherCheck": true,
"key": null
}
烟感控制器产品有一个可燃气体探测器上报基础事件,并且关联了CH4基础属性,该属性允许值范围为
code | value | 描述 |
---|---|---|
no alarm(默认) | 0 | 当侦测到可燃气体不报警 |
alarm | 1 | 当侦测到可燃气体报警 |
{
"id": "1399606067533381633",
"parentId": null,
"tenantId": "-1",
"serviceModuleId": null,
"version": null,
"name": "CH4",//事件名称
"code": "CH4",//事件唯一code
"apiLevel": null,
"developStatus": null,
"propertyStatus": null,
"params": null,
"tags": null,
"description": "可燃气体探测器上报事件",
"status": null,
"eventId": null,
"dpId": 25200,
"operateLogResp": null,
"paramType": 0,//参数格式(0-array,1-object)
"usedFlag": 1,
"reportType": 0,//上报类型 0:非记录型上报, 1:记录型上报
"properties": [ //返回参数列表
{
"id": "1399605770165616642",
"code": "CH4",//属性唯一code
"tenantId": "-1",
"serviceModuleId": null,
"parentId": null,
"version": null,
"name": "CH4",//属性名称
"tags": null,
"apiLevel": null,
"developStatus": null,
"reqParamType": 0,//请求参数格式:0 array ,1 object
"returnType": 0,//返回参数格式:0 array ,1 object
"propertyStatus": null,
"rwStatus": "R",//只读模式
"paramType": 2,
"minValue": null,
"maxValue": null,
"allowedValues": "[{\"name\":\"no alarm\",\"description\":\"\",\"value\":\"0\"},{\"name\":\"alarm\",\"description\":\"\",\"value\":\"1\"}]",//允许值范围 0:不报警 1:报警
"testCase": null,
"description": "0 no alarm,1 alarm,[1-Active | 0-Inactive]",
"dpId": 2221,
"usedFlag": null,
"propertyId": "1399606068489682946",
"status": null,
"useStatus": 2,
"step": null,
"paramValueType": 1,
"defaultValue": "0",//默认不报警
"jsonAllowedValue": "",
"unitId": "1",
"unit": "-",
"reportType": 0,
"key": null,
"propertyParamType": null,
"defaultName": null,
"baseFlag": true//基础属性
}
]
}
烟感控制器子产品C1,关联了私有事件CH4,并且事件关联私有属性,默认当侦测到可燃气体上报报警事件;
{
"id": "1399606067533381633",
"parentId": null,
"tenantId": "-1",
"serviceModuleId": null,
"version": null,
"name": "CH4",//事件名称
"code": "CH4",//事件唯一code
"apiLevel": null,
"developStatus": null,
"propertyStatus": null,
"params": null,
"tags": null,
"description": "可燃气体探测器上报事件",
"status": null,
"eventId": null,
"dpId": 25200,
"operateLogResp": null,
"paramType": 0,//参数格式(0-array,1-object)
"usedFlag": 1,
"reportType": 0,//上报类型 0:非记录型上报, 1:记录型上报
"properties": [ //返回参数列表
{
"id": "1399605770165616642",
"code": "CH4",//属性唯一code
"tenantId": "-1",
"serviceModuleId": null,
"parentId": null,
"version": null,
"name": "CH4",//属性名称
"tags": null,
"apiLevel": null,
"developStatus": null,
"reqParamType": 0,//请求参数格式:0 array ,1 object
"returnType": 0,//返回参数格式:0 array ,1 object
"propertyStatus": null,
"rwStatus": "R",//只读模式
"paramType": 2,
"minValue": null,
"maxValue": null,
"allowedValues": "[{\"name\":\"no alarm\",\"description\":\"\",\"value\":\"0\"},{\"name\":\"alarm\",\"description\":\"\",\"value\":\"1\"}]",//允许值范围 0:不报警 1:报警
"testCase": null,
"description": "0 no alarm,1 alarm,[1-Active | 0-Inactive]",
"dpId": 2221,
"usedFlag": null,
"propertyId": "1399606068489682946",
"status": null,
"useStatus": 2,
"step": null,
"paramValueType": 1,
"defaultValue": "1",//报警
"jsonAllowedValue": "",
"unitId": "1",
"unit": "-",
"reportType": 0,
"key": null,
"propertyParamType": null,
"defaultName": null,
"baseFlag": fale//非基础属性
}
]
}
IPC产品有个云AI基础服务,该基础服务关联了边缘端算法和云端算法两个属性;
{
"id": "1398151374275022849",
"parentId": null,
"tenantId": "-1",
"version": null,
"name": "getAI",//服务名称
"code": "getAI",//服务唯一标识符code
"tags": null,
"apiLevel": null,
"developStatus": null,
"propertyStatus": null,
"reqParamType": 0,//请求参数格式:0 array ,1 object
"returnType": 1,//返回参数格式:0 array ,1 object
"params": null,
"returnDesc": "云AI",
"returns": null,
"description": "云AI",
"status": null,
"dpId": 15119,
"actionId": null,
"usedFlag": 1,
"useStatus": 2,
"properties": [//返回的参数列表
{
"id": "1398151839912689666",
"code": "algorithmCloud",//属性唯一code
"tenantId": "-1",
"serviceModuleId": null,
"parentId": null,
"version": null,
"name": "algorithmCloud",//云端算法
"tags": null,
"developStatus": null,
"reqParamType": 0,//请求参数格式:0 array ,1 object
"returnType": null,
"propertyStatus": null,
"rwStatus": "",
"paramType": 6,//参数类型,0:int,1:float,2:bool,3:enum,4:string 5object 6 array
"minValue": null,
"maxValue": null,
"allowedValues": "[]",
"testCase": null,
"description": "[{\"algorithm\": \"Human\",\"AIComputing\": 0},{\"algorithm\": \"License\",\"AIComputing\": 0},{\"algorithm\": \"Animal\",\"AIComputing\": 0}]",
"propertyType": 1,//property类型(0:property类型 1:参数类型)
"dpId": null,
"usedFlag": null,
"nameLangs": null,
"propertyId": "1398151844660641794",
"status": null,
"useStatus": 0,
"step": null,
"paramValueType": 1,//参数值类型 1:int 2:string
"defaultValue": null,
"jsonAllowedValue": "[]", //json串允许值 云端算法集
"unitId": "1",
"unit": "-",
"reportType": 0,//上报类型 0:非记录型上报, 1:记录型上报
"key": null,
"propertyParamType": 1,//property类型(0:入参 1:出参)
"defaultName": null,
"baseFlag": true
},
{
"id": "1398151678114598913",
"code": "algorithmLocal",//属性唯一code
"tenantId": "-1",
"serviceModuleId": null,
"parentId": null,
"version": null,
"name": "algorithmLocal",//边缘端算法
"tags": null,
"developStatus": null,
"reqParamType": 0,//请求参数格式:0 array ,1 object
"returnType": null,
"propertyStatus": null,
"rwStatus": "",
"paramType": 6,//参数类型,0:int,1:float,2:bool,3:enum,4:string 5object 6 array
"minValue": null,
"maxValue": null,
"allowedValues": "[]",
"testCase": null,
"description": "[{\"algorithm\":\"MotionLocal\", \"AIComputing\":0.5}, {\"algorithm\":\"HumanLocal\", \"AIComputing\":0.5}]",
"propertyType": 1,
"dpId": null,
"usedFlag": null,
"nameLangs": null,
"propertyId": "1398151683767140354",
"status": null,
"useStatus": 0,
"step": null,
"paramValueType": 1,//参数值类型 1:int 2:string
"defaultValue": null,
"jsonAllowedValue": "[{\"algorithm\":\"MotionLocal\", \"AIComputing\":0.5}, {\"algorithm\":\"HumanLocal\", \"AIComputing\":0.5}]",
//json串允许值 边缘端算集
"unitId": "1",
"unit": "-",
"reportType": 0,
"key": null,
"propertyParamType": 1,//property类型(0:入参 1:出参)
"defaultName": null,
"baseFlag": true//基础属性
}
]
}
IPC子产品M1配置的私有服务,该产品的设备边缘端算法集为Motion(移动侦测),云端算法集配置的为Animal,Fire,Human算法;
{
"id": "1410898669641592833",
"parentId": null,
"tenantId": "2",
"serviceModuleId": null,
"version": null,
"name": "getAI",
"code": "getAI",
"developStatus": 1,
"propertyStatus": 0,
"reqParamType": 0,
"returnType": 1,
"returnDesc": "云AI",
"description": "云AI",
"actionId": null,
"status": 0,
"dpId": 15119,
"defaultName": "getAI",
"usedFlag": null,
"baseFlag": false,//非基础属性
"useStatus": 0,
"properties": [
{
"id": "1410898669649981442",
"parentId": null,
"tenantId": "2",
"serviceModuleId": null,
"version": null,
"name": "algorithmLocal",
"code": "algorithmLocal",
"tags": null,
"apiLevel": null,
"developStatus": 1,
"reqParamType": 0,
"returnType": 0,
"propertyStatus": null,
"rwStatus": "",
"paramType": 6,
"minValue": "",
"maxValue": "",
"allowedValues": "[]",
"description": "[{\"algorithm\":\"MotionLocal\", \"AIComputing\":0.5}, {\"algorithm\":\"HumanLocal\", \"AIComputing\":0.5}]",
"propertyParentId": null,
"defaultName": "algorithmLocal",
"baseFlag": false,
"step": "0",
"paramValueType": 1,
"defaultValue": "",
"jsonAllowedValue": "[{\"algorithm\":\"MotionLocal\", \"AIComputing\":0.5}]",
//json串允许值 边缘端算法集
"unitId": "1",
"unit": null,
"dpId": null,
"whetherCheck": false,
"key": null
},
{
"id": "1410898669675147266",
"parentId": null,
"tenantId": "2",
"serviceModuleId": null,
"version": null,
"name": "algorithmCloud",
"code": "algorithmCloud",
"tags": null,
"developStatus": 1,
"reqParamType": 0,
"returnType": 0,
"propertyStatus": null,
"rwStatus": "",
"paramType": 6,
"minValue": "",
"maxValue": "",
"allowedValues": "[]",
"testCase": null,
"description": "[{\"algorithm\": \"Human\",\"AIComputing\": 0},{\"algorithm\": \"License\",\"AIComputing\": 0},{\"algorithm\": \"Animal\",\"AIComputing\": 0}]",
"propertyParentId": null,
"defaultName": "algorithmCloud",
"baseFlag": false,
"step": "0",
"paramValueType": 1,//参数值类型 1:int 2:string
"defaultValue": "",
"jsonAllowedValue": "[{\"algorithm\": \"Animal\",\"AIComputing\": 0},{\"algorithm\": \"Fire\",\"AIComputing\": 0},{\"algorithm\": \"Human\",\"AIComputing\": 0}]",
//json串允许值 云端算法集
"unitId": "1",
"unit": null,
"dpId": null,
"whetherCheck": false,
"key": null
}
]
}
基础功能组和私有功能组原理同上;下面例子描述的是IPC子产品M1的IPC/WifiBaseInfo私有功能组。该功能组关联获取wifi基本信息和开启设备配网服务,其服务关联关联产品私有属性;通过云端下发给设备,设备返回对应参数;
{
"id": "1410898667900956673",
"tenantId": "2",
"name": "IPC wifi信息",//功能组名称
"code": "IPC/WifiBaseInfo",//功能组唯一标识符code
"developStatus": 1,
"propertyStatus": 1,
"description": "IPC wifi信息",//功能组描述
"status": 1,
"baseFlag": false,
"useStatus": 2,
"otherId": null,
"whetherCheck": true,
"actionList": [//功能组关联的服务
{
"actionInfo": {
"id": "1410898667917733890",
"parentId": null,
"tenantId": "2",
"serviceModuleId": null,
"version": "V1.2.15",
"name": "获取wifi基本信息",
"code": "WifiBaseInfo",
"developStatus": 1,
"propertyStatus": 0,
"reqParamType": 0,
"returnType": 0,
"returnDesc": "无参数,返回值对应的 ssid、RSSI、Enctype(可选)",
"description": "获取wifi基本信息 ---请不要删",
"actionId": null,
"status": 0,
"dpId": 15039,
"defaultName": "获取wifi基本信息",
"usedFlag": null,
"baseFlag": false,
"useStatus": 0
},
"paramPropertyList": [],//请求参数
"returnPropertyList": [//返回参数
{
"id": "1410898667930316802",
"parentId": null,
"tenantId": "2",
"serviceModuleId": null,
"version": null,
"name": "SSID",
"code": "WifiBaseInfo_SSID",
"tags": null,
"apiLevel": null,
"developStatus": 1,
"reqParamType": 0,
"returnType": 0,
"propertyStatus": null,
"rwStatus": "",
"paramType": 4,
"minValue": "",
"maxValue": "",
"allowedValues": "[]",
"testCase": null,
"description": "wifi名称, 0,128字节",
"propertyParentId": null,
"defaultName": "SSID",
"baseFlag": false,
"step": null,
"paramValueType": null,
"defaultValue": null,
"jsonAllowedValue": null,
"unitId": null,
"unit": null,
"dpId": null,
"whetherCheck": false,
"key": null
},
{
"id": "1410898667959676930",
"parentId": null,
"tenantId": "2",
"serviceModuleId": null,
"version": null,
"name": "RSSI",
"code": "WifiBaseInfo_RSSI",
"developStatus": 1,
"reqParamType": 0,
"returnType": 0,
"propertyStatus": null,
"rwStatus": "",
"paramType": 0,
"minValue": "0",
"maxValue": "100",
"allowedValues": "[]",
"testCase": null,
"description": "wifi信号强度,0-100",,
"propertyParentId": null,
"defaultName": "RSSI",
"baseFlag": false,
"step": "1",
"paramValueType": null,
"defaultValue": "0",
"jsonAllowedValue": null,
"unitId": null,
"unit": null,
"dpId": null,
"whetherCheck": false,
"key": null
},
{
"id": "1410898667989037057",
"parentId": null,
"tenantId": "2",
"serviceModuleId": null,
"version": null,
"name": "Enctype",
"code": "WifiBaseInfo_Enctype",
"developStatus": 1,
"reqParamType": 0,
"returnType": 0,
"propertyStatus": null,
"rwStatus": "",
"paramType": 3,
"minValue": "",
"maxValue": "",
"allowedValues": "[]",
"description": "wifi加密方式 0-10对应 INVALID,OPEN,WEP,WPA_TKIP,WPA_AES,WPA2_TKIP,WPA2_AES,WPA_PSK_TKIP,WPA_PSK_AES,WPA2_PSK_TKIP,WPA2_PSK_AES",
"propertyParentId": null,
"defaultName": "Enctype",
"baseFlag": false,
"step": null,
"paramValueType": 1,//'参数值类型 1:int 2:string
"defaultValue": null,
"jsonAllowedValue": null,
"unitId": null,
"unit": null,
"dpId": null,
"whetherCheck": false,
"key": null
}
],
"actionParentId": null,
"whetherCheck": true
},
{
"actionInfo": {
"id": "1410898668035174402",
"parentId": null,
"tenantId": "2",
"serviceModuleId": null,
"version": null,
"name": "开启设备配网",
"code": "setConfigWifiMode",
"developStatus": 1,
"propertyStatus": 0,
"reqParamType": 1,
"returnType": 0,
"returnDesc": "无返回值",
"description": "IPC开启设备配网 参数in对应值0/1/2/3(ap配网、smartconfig配网、蓝牙配网、其他)",
"iftttType": 0,
"portalIftttType": 0,
"actionId": null,
"status": 0,
"dpId": 15079,
"defaultName": "开启设备配网",
"usedFlag": null,
"baseFlag": false,
"useStatus": 0,
"auditUserId": null
},
"paramPropertyList": [//请求参数
{
"id": "1410898668060340225",
"parentId": null,
"tenantId": "2",
"serviceModuleId": null,
"version": null,
"name": "in",
"code": "in",
"tags": null,
"apiLevel": null,
"developStatus": 1,
"reqParamType": 0,
"returnType": 0,
"propertyStatus": null,
"rwStatus": "",
"paramType": 3,//参数类型,0:int,1:float,2:bool,3:enum,4:string
"minValue": "",
"maxValue": "",
"allowedValues": "[]",
"testCase": null,
"description": "参数mode对应整形值0/1/2/3(ap配网、smartconfig配网、蓝牙配网、其他",
"propertyParentId": null,
"defaultName": "in",
"baseFlag": false,
"step": null,
"paramValueType": 1,
"defaultValue": null,
"jsonAllowedValue": null,
"unitId": null,
"unit": null,
"dpId": 178,
"whetherCheck": false,
"key": null
}
],
"returnPropertyList": [],
"actionParentId": null,
"whetherCheck": true
}
],
"eventList": [],
"propertyList": [],
"serviceModuleParenatId": null
}
产品定义物模型后,设备可以根据物模型中的定义上报属性、事件,并可对设备下发控制指令。物模型协议包括了以下几部分。
设备属性上报:设备端将定义的属性根据设备端的业务逻辑向云端上报。
设备属性上行请求 Topic:iot/v1/c/up/property/{ProductId}/{deviceId}
设备属性上行响应 Topic:iot/v1/s/down/property/{ProductId}/{deviceId}
设备远程控制:从云端向设备端下发控制指令,即从云端设置设备的可写属性。
下发 Topic:iot/v1/s/up/property/{ProductId}/{deviceId}
响应 Topic:iot/v1/c/down/property/{ProductId}/{deviceId}
获取设备最新上报信息:获取设备最新的上报数据。
请求 Topic:iot/v1/s/up/property/{ProductId}/{deviceId}
响应 Topic:iot/v1/c/down/property/{ProductId}/{deviceId}
设备事件上报:设备可根据定义的物模型中的事件,当事件被触发,则根据设备事件上报的协议上报告警、故障等事件信息。
设备事件上行请求 Topic:iot/v1/c/up/event/{ProductId}/{deviceId}
设备事件上行响应 Topic:iot/v1/s/down/event/{ProductId}/{deviceId}
设备行为调用:云端可以通过 RPC 的方式通知设备执行某个动作行为,适用于应用需要实时获取设备的执行结果的场景。
应用调用设备行为 Topic:iot/v1/s/down/action/{ProductId}/{deviceId}
设备响应行为执行结果 Topic:iot/v1/c/up/action/{ProductId}/{deviceId}
设备初始信息上报:设备连接平台时上报的初始信息,便于小程序或 App 展示设备详细信息,如设备 MAC 地址、IMEI 号。
上行请求 Topic:iot/v1/c/up/property/{ProductId}/{deviceId}
下行响应 Topic:iot/v1/s/down/property/{ProductId}/{deviceId}
用户删除设备:用户在App删除设备时由云端发送给设备的通知消息,便于设备重置或网关类设备清除子设备数据。
下发用户删除设备 Topic:iot/v1/s/down/service/{ProductId}/{deviceId}
用户绑定设备通知消息
下发用户绑定设备通知消息 Topic:iot/v1/s/down/service/{ProductId}/{deviceId}
位置服务-围栏告警消息下发
下发围栏告警消息Topic:iot/v1/s/down/service/{ProductId}/{deviceId}
设备响应回复 Topic:iot/v1/c/up/service/{ProductId}/{deviceId}
{
"ack": {
"code": 200,
"desc": "success"
},
"payload": {
},
"seq": "bdDtQVBOy9",
"service": "alarm",
"srcAddr": "9.5190decfa5da427f9cb82907f3cb6b5d",
"topic": "iot/v1/c/up/service/IPC1233/sdasd4454444",
}
·········· END ··············