通用物模型
大约 6 分钟
物模型的具体介绍
1.概述
物模型是产品数字化的描述,定义了产品的功能,物模型将不同品牌不同品类的产品功能抽象归纳,形成“标准物模型”,便于各方用统一的语言描述、控制、理解产品功能。 物模型由若干条“参数”组成,参数按描述的功能类型不同,又分为属性、功能和事件。
2.功能说明
物模型是物理空间中的实体(如传感器设备、消防装置、园区、工厂等)在云端的数字化表示,属性、功能、事件三个维度,分别描述了该实体是什么、能做什么、可以对外提供哪些信息、可以自定义补充哪些信息。定义了物模型的这三个维度,即完成了产品功能的定义。
类型 | 说明 |
---|---|
属性 | 用于描述设备运行时具体信息和状态。例如,环境监测设备所读取的当前环境温度、智能灯开关状态、电风扇风力等级等。属性可分为读、写和上报三种类型,即支持读取、设置属性、设备上报属性。 当属性数据来源为“规则”时,则称该属性为规则属性。 |
功能 | 指设备可供外部调用的指令或方法。服务调用中可设置输入和输出参数。输入参数是服务执行时的参数,输出参数是服务执行后的结果。相比于属性,服务可通过一条指令实现更复杂的业务逻辑,例如执行某项特定的任务。 |
事件 | 设备运行时,主动上报给云端的信息,一般包含需要被外部感知和处理的信息、告警和故障。事件中可包含多个输出参数。例如,某项任务完成后的通知信息;设备发生故障时的温度、时间信息;设备告警时的运行状态等。事件可以被订阅和推送。 |
3.物模型支持的数据类型
参数 | 说明 | 示例 |
---|---|---|
int | 整型 | 100 |
double | 小数型 | 100.45 |
boolean | 布尔型。采用0(false)或1(true)来定义布尔值 | 1表示是、0表示否 |
enum | 枚举型。定义枚举项的参数值和参数描述。 | [{key:1,value:1}] |
string | 字符串 | 你好!fastbee平台 |
array | 数组。需声明数组内的元素类型、数组元素个数。需确保同一个数组元素类型相同。 | [1, 2, 3, 4, 5, 6] |
Object | 对象型 | [{id:"Object",name:"对象",datatype:{type:"object",params:[{key1:value1}]}}] |
4.操作步骤
1.登陆fastbee物联网平台。
2.左侧导航栏,选择设备管理>产品管理,进入产品详情页>产品模型
3.点击 "新增" 或 "导入通用物模型" 按钮,根据设备实际情况,合理设计物模型
4.1.物模型定义
在接入一个设备时,首先根据设备以及设备接入文档(报文说明), 将设备物模型的属性、功能以及事件设计好。
属性用于定义一些指标数据,如:电压,温度等。 属性都应该是简单的数据类型
功能用于定义设备具有的一些可执行动作
事件用于定义设备在特定条件时,发生的动作
4.2.物模型新增
配置项 | 说明 |
---|---|
模型名称 | 必填,物模型名称 |
模型标识 | 必填,后端识别的标识符 |
模型排序 | 必填,物模型展示顺序 |
模型类别 | 必选,属性、功能、事件 |
模型特性 | 勾选,属性:图表展示,实时监测,是否只读数据,历史存储,分享权限(注意:图表展示、实时监测仅支持整数和小数)。 功能:是否只读数据,是否进行历史存储,分享权限。 事件:默认只读,是否进行历史存储,分享权限 |
数据类型 | 单选下拉框,整数、小数、布尔、枚举、字符串、数组、对象 |
取值范围 | 仅整数和小数显示,取值区间,最小值和最大值 |
单位 | 仅整数和小数显示,如:元,℃ |
步长 | 仅整数和小数显示,取值间隔,步长是指设备上报或下发数值时,递增或递减的间隔。 |
计算公式 | 仅整数和小数显示,加减乘除计算 |
布尔值 | 布尔类型显示,0、1对应文本(打开或关闭) |
展示方式 | 仅枚举类型显示,单选下拉框 |
枚举项 | [{key:1,value:1}] |
最大长度 | 仅字符串类型显示,字符串的最大长度 |
元素个数 | 仅数组类型显示,数组元素个数 |
数组类型 | 仅数组类型显示,单选,整数、小数、字符串、对象 |
对象参数 | 仅 数组--对象 类型显示,在数组中添加具体的对象参数 |
5.配置物模型
配置设备模型分为: 属性properties,功能functions,事件events。
设备模型使用场景:
1. 前端通过模型定义动态展示设备运行状态或者设备操作界面
2. 服务端可通过统一的API获取设备模型并进行相关操作,如:在发送设备消息时进行参数校验, 在收到设备消息进行类型转换处理。
数据结构:
{
"properties":[...属性],
"functions":[...功能],
"events":[...事件],
"tags":[...标签]
}
属性
用于定义设备属性,描述设备运行时的具体信息和状态。
例如: 设备温度,co2等。 平台可主动下发指令获取设备属性,设备也可以通过消息上报属性。
数据结构
{
"properties": [
{
"id": "co2",
"name": "二氧化碳",
"isChart": 1,
"isMonitor": 1,
"isHistory": 1,
"isSharePerm": 0,
"isReadonly": 1,
"datatype": {
"max": 6000,
"min": 100,
"step": 1,
"type": "integer",
"unit": "ppm"
}
},
{
"id": "temperature",
"name": "空气温度",
"isChart": 1,
"isMonitor": 1,
"isHistory": 1,
"isSharePerm": 0,
"isReadonly": 1,
"datatype": {
"max": 120,
"min": -20,
"step": 0.1,
"type": "decimal",
"unit": "℃"
}
}
]
}
功能
根据设备可供外部调用的指令或方法,定义设备功能。平台可主动调用设备功能。例如:设备运行档位、开关操作等。
数据结构:
{
"functions": [
{
"id": "status",
"name": "上报状态",
"isHistory": 0,
"isSharePerm": 0,
"isReadonly": 0,
"datatype": {
"type": "enum",
"showWay": "button",
"enumList": [
{
"text": "更新状态",
"value": "update_status"
}
]
}
},
{
"id": "irc",
"name": "射频遥控",
"isHistory": 1,
"isSharePerm": 0,
"isReadonly": 0,
"datatype": {
"type": "enum",
"showWay": "button",
"enumList": [
{
"text": "遥控学习",
"value": "FFXX01"
},
{
"text": "遥控清码",
"value": "FFXX02"
},
{
"text": "打开开关",
"value": "FFXX03"
},
{
"text": "关闭开关",
"value": "FFXX04"
},
{
"text": "暂停",
"value": "FFXX05"
},
{
"text": "锁定",
"value": "FFXX06"
}
]
}
},
{
"id": "report_monitor",
"name": "上报数据",
"isHistory": 0,
"isSharePerm": 0,
"isReadonly": 0,
"datatype": {
"max": 10,
"min": 1,
"step": 1,
"type": "integer",
"unit": "次数"
}
},
{
"id": "switch",
"name": "设备开关",
"isHistory": 1,
"isSharePerm": 0,
"isReadonly": 0,
"datatype": {
"type": "bool",
"trueText": "打开",
"falseText": "关闭"
}
},
{
"id": "gear",
"name": "运行档位",
"isHistory": 1,
"isSharePerm": 0,
"isReadonly": 0,
"datatype": {
"type": "enum",
"showWay": "select",
"enumList": [
{
"text": "低速档位",
"value": "0"
},
{
"text": "中速档位",
"value": "1"
},
{
"text": "中高速档位",
"value": "2"
},
{
"text": "高速档位",
"value": "3"
}
]
}
},
{
"id": "message",
"name": "屏显消息",
"isHistory": 1,
"isSharePerm": 0,
"isReadonly": 0,
"datatype": {
"type": "string",
"maxLength": 1024
}
},
{
"id": "reset",
"name": "设备重启",
"isHistory": 1,
"isSharePerm": 0,
"isReadonly": 0,
"datatype": {
"type": "enum",
"showWay": "button",
"enumList": [
{
"text": "重启",
"value": "restart"
}
]
}
},
{
"id": "light_color",
"name": "灯光色值",
"isHistory": 1,
"isSharePerm": 0,
"isReadonly": 0,
"datatype": {
"type": "array",
"arrayType": "integer",
"arrayCount": "3"
}
}
]
}
事件
用于设备的额外属性,添加拓展字段。例如:环境温度过高、设备发生异常等。
数据结构:
{
"functions": [],
"events": [
{
"id": "height_temperature",
"name": "环境温度过高",
"isHistory": 1,
"isSharePerm": 0,
"isReadonly": 0,
"datatype": {
"max": 100,
"min": 0,
"step": 0.1,
"type": "decimal",
"unit": "℃"
}
},
{
"id": "exception",
"name": "设备发生异常",
"isHistory": 1,
"isSharePerm": 0,
"isReadonly": 0,
"datatype": {
"type": "string",
"maxLength": 1024
}
}
]
}
6.产品与设备物模型关系
产品有物模型配置。一个产品可以添加多个设备。设备会继承产品下所有的物模型配置。