有奖捉虫:行业应用 & 管理与支持文档专题 HOT

物模型简介

物模型是腾讯云物联网开发平台为同一类设备即产品定义的一套数字模型,通过属性、事件、行为三种功能类型对产品进行数字化描述。
功能类型
功能描述
属性
指设备在运行过程中的各类参数、状态数据。如温湿度传感器采集的温度、湿度值;电器类设备的开关状态值、车载设备采集的当前速度、经纬度值。属性支持读写和只读两类,读写表示该属性即可从设备端上报到平台也可从平台发起控制,只读表示该属性只从设备向平台上报。
事件
指设备运行时由设备发起需要用户业务系统感知的数据,包括信息、告警、故障三种事件类型。例如设备运行出现故障,需要将故障信息及故障发生时的相关数据发送到平台
行为
指设备为应用提供的调用方法,用于业务发起请求,需要设备端处理完成后返回处理结果,业务系统能同步或异步获取结果的场景。例如:
停车场用户在支付完停车费后,系统需要立刻打开道闸放行,业务系统需要获取道闸的最终状态同步操作是否成功。
云打印场景用户下发打印行为后,行为的入餐包含订单ID、打印单据内容等,出参包括打印结果编码、

物模型类别

产品的功能包括标准功能和自定义功能。
功能分类
功能描述
标准功能
标准功能指腾讯云物联网平台提供的一些常用设备品类物模型,用户可以使用,也可按需选择不使用
自定义功能
自定义功能指腾讯云物联网平台提供的让用户自由定义产品物模型的功能。用户可以根据设备的规格特性自由创建、删除和编辑物模型功能。
高级功能
高级功能指腾讯云物联网为用户提供的增值服务功能,如实时音视频服务可应用于可视对讲、云广播实时喊话、一对多紧急呼叫场景;高级功能一般会自动生成对应的标准功能。

操作步骤

添加标准功能

标准功能腾讯云物联网预设品类默认的物模型定义以及高级功能对应的默认物模型。
1. 登录 物联网开发平台,进入实例列表页,选择已生成的企业实例
2. 单击企业实例,进入实例内页,点击左侧菜单中的产品开发,进入产品列表,并选择某个“产品”,进入物模型定义
3. 点击标准功能 标签页的 添加标准功能。



4. 其他产品品类为用户所选择品类的同一级品类的系统预设物模型,用户可以按需选择添加,确定后选择的物模型将会添加到“自定义功能”中。

自定义添加物模型属性

自定义功能是可让用户根据设备的规格自由定义物模型,交给用户充分的自由权定义。
1. 登录 物联网开发平台,进入实例列表页,选择已生成的企业实例
2. 单击企业实例,进入实例内页,点击左侧菜单中的产品开发,进入产品列表,并选择某个“产品”,进入物模型定义
3. 点击自定义功能 标签页的 添加自定义功能 按钮。



4. 在弹出窗口中按需选择“功能类型”,例如照明类产品会有个属性开关,则功能名称输入“开关”、标识符必须在该产品下所有物模型中保持唯一,选择数据类型即可保存。




自定义添加物模型事件

1. 登录 物联网开发平台,进入实例列表页,选择已生成的企业实例
2. 单击企业实例,进入实例内页,点击左侧菜单中的产品开发,进入产品列表,并选择某个“产品”,进入物模型定义
3. 点击自定义功能 标签页的 添加自定义功能 按钮。
4. 在弹出窗口中按需选择“事件”,再次选择“事件类型”为“信息”,用户可自由定义设备向物联网平台发生的事件信息。




自定义添加物模型行为

1. 登录 物联网开发平台,进入实例列表页,选择已生成的企业实例
2. 单击企业实例,进入实例内页,点击左侧菜单中的产品开发,进入产品列表,并选择某个“产品”,进入物模型定义
3. 点击自定义功能 标签页的 添加自定义功能 按钮。
4. 在弹出窗口中按需选择“行为”,在自助零售场景、共享支付类场景或停车场景经常遇见的支付完毕后需要立刻由业务系统经过物联网平台下发开门、开锁、开闸等功能,这些功能业务系统需要实时得到设备侧实时处理的结果,当没有及时响应,业务系统需要对该交易做出取消操作,例如发起退款。
5. 上述功能场景需要在功能名称录入对应的行为名称,例如“开锁”,标识符为“Open”。请求参数需要由用户定义,例如可以定义一个订单ID的字符串类型,这样业务系统可以跟踪到每笔订单在设备侧的处理情况;返回参数是设备侧执行完开锁后上报到物联网平台的参数,则也可以添加订单ID以及设备最终开锁状态结果的字段code,如果开锁成功,则返回code为0,失败则为1.当业务系统接收到code为1时,则要么在业务允许的情况下重试,重试多次失败后则发起退款操作。



行为功能设置完毕后,可在腾讯云提供的开发者资源 API Explorer 3.0 中实现设备行为调用,API 调用时,填入对应的 ActionId 和输入参数进行测试。


设备端收到 Action 消息后,配合实现对应的动作,C-SDK 提供数据模板的自动代码生成及属性、事件、动作的响应框架。

物模型高级功能

物模型高级功能是腾讯云物联网开发平台的增值付费功能,如设备与用户需要实时音视频、语音AI、音乐内容服务场景,例如实时音视频服务可应用于可视对讲、云广播实时喊话、一对多紧急呼叫场景,高级功能一般会自动生成对应的标准功能。如需使用,请 提交申请 进行业务咨询,工作人员将会与您对接服务购买事宜。

查看物模型JSON

1. 添加完标准功能、自定义功能后,用户可以点击“查看物模型JSON”,可以查看物模型对应的JSON格式。



2. 用户可以复制或下载JSON物模型。复制的JSON可以用导入物模型功能用于产品之间的物模型定义的复制,如下图所示:




导入物模型

1. 复制完某个产品的物模型JSON后,可以使用“导入物模型”功能,将JSON复制到下图文本框中。
2. 点击“导入”按钮将覆盖原产品的物模型,若是已量产产品需要慎用物模型导入功能。




物模型格式参考

以下为智能灯的物模型JSON描述说明,包括各种数据类型和事件类型。示例JSON如下:
{
"version": "1.0",
"profile": {
"ProductId": "2300UMK31M",
"CategoryId": "3"
},
"properties": [
{
"id": "power_switch",
"name": "电灯开关",
"desc": "控制电灯开灭",
"required": true,
"mode": "rw",
"define": {
"type": "bool",
"mapping": {
"0": "关",
"1": "开"
}
}
},
{
"id": "color",
"name": "颜色",
"desc": "灯光颜色",
"mode": "rw",
"define": {
"type": "enum",
"mapping": {
"0": "Red",
"1": "Green",
"2": "Blue"
}
}
},
{
"id": "brightness",
"name": "亮度",
"desc": "灯光亮度",
"mode": "rw",
"define": {
"type": "int",
"unit": "%",
"step": "1",
"min": "0",
"max": "100",
"start": "1"
}
},
{
"id": "name",
"name": "灯位置名称",
"desc": "灯位置名称:书房、客厅等",
"mode": "rw",
"required": false,
"define": {
"type": "string",
"min": "0",
"max": "64"
}
}
],
"events": [
{
"id": "status_report",
"name": "DeviceStatus",
"desc": "Report the device status",
"type": "info",
"required": false,
"params": [
{
"id": "status",
"name": "running_state",
"desc": "Report current device running state",
"define": {
"type": "bool",
"mapping": {
"0": "normal",
"1": "fault"
}
}
},
{
"id": "message",
"name": "Message",
"desc": "Some extra message",
"define": {
"type": "string",
"min": "0",
"max": "64"
}
}
]
},
{
"id": "low_voltage",
"name": "LowVoltage",
"desc": "Alert for device voltage is low",
"type": "alert",
"required": false,
"params": [
{
"id": "voltage",
"name": "Voltage",
"desc": "Current voltage",
"define": {
"type": "float",
"unit": "V",
"step": "1",
"min": "0.0",
"max": "24.0",
"start": "1"
}
}
]
},
{
"id": "hardware_fault",
"name": "Hardware_fault",
"desc": "Report hardware fault",
"type": "fault",
"required": false,
"params": [
{
"id": "name",
"name": "Name",
"desc": "Name like: memory,tf card, censors ...",
"define": {
"type": "string",
"min": "0",
"max": "64"
}
},
{
"id": "error_code",
"name": "Error_Code",
"desc": "Error code for fault",
"define": {
"type": "int",
"unit": "",
"step": "1",
"min": "0",
"max": "2000",
"start": "1"
}
}
]
}
],
"actions": [
{
"id": "unlock",
"name": "开灯行为检测",
"desc": "用于描述开灯的动作",
"input": [
{
"id": "open",
"name": "开关",
"define": {
"type": "bool",
"mapping": {
"0": "关",
"1": "开"
}
}
},
{
"id": "user",
"name": "用户",
"define": {
"type": "string",
"min": "0",
"max": "2048"
}
}
],
"output": [
{
"id": "user",
"name": "用户",
"define": {
"type": "string",
"min": "0",
"max": "2048"
}
},
{
"id": "time",
"name": "开灯时间",
"define": {
"type": "timestamp"
}
},
{
"id": "state",
"name": "灯的状态",
"define": {
"type": "bool",
"mapping": {
"0": "关",
"1": "开"
}
}
}
],
"required": false
}
]
}

相关文档

了解物模型协议,请参考物模型协议