物模型品类定义
本文档旨在明确物模型品类定义以及解释相关概念。
1 概述
1.1 编写目的
本文档是智慧社区项目物模型品类标准。
1.2 名词解释
名词 | 解释 |
IoT | 物联网 |
2 品类应用
2.1 与设备关联
在阿里云IoT 应用服务平台创建的设备会自动把品类名称和品类编码写入设备标签。 品类名称标签的key为“CategoryName”,value为品类名称三级路径
品类编码标签的key为“CategoryCode”,value为品类编码三级路径。
设备能力标签的key为 "Capability",value为能力定义List。
只有基于门禁一体机品类创建的设备才支持设备能力标签,用来标识该设备具备哪些能力
示例: 二维码门禁标签:
"CategoryName" : "智慧社区/人员通行/二维码门禁"
"CategoryCode" : "community/ people/qrcode"
设备能力标签:
"Capability" :["face","qrcode"]
2.2 云端查询设备标签接口
路径 | /app/thing/prop/get |
版本号 | 1.0.1 |
协议 | HTTP, HTTPS |
请求方法 | POST |
授权类型 | app签名 |
超时时间 | 3000 |
请求参数
名称 | 类型 | 是否必选 | 描述 |
iotId | String | 否 | 物的唯一标识 |
productKey | String | 否 | 物的产品标识 |
deviceName | String | 否 | 物的名称 |
lpInstanceId | 字符串 | 否 | LP实例ID |
返回数据
名称 | 类型 | 描述 |
code | Int | 接口返回码。200表示成功。 |
message | String | 调用失败时,返回的出错信息。 |
localizedMsg | String | 本地语言的错误消息。 |
props | String | 设备标签属性,json String结构 |
示例
请求示例:
// https://github.com/aliyun/iotx-api-gateway-client
IoTApiClientBuilderParams ioTApiClientBuilderParams = new IoTApiClientBuilderParams();
ioTApiClientBuilderParams.setAppKey("你的<AppKey>");
ioTApiClientBuilderParams.setAppSecret("你的<AppSecret>");
SyncApiClient syncApiClient = new SyncApiClient(ioTApiClientBuilderParams);
IoTApiRequest request = new IoTApiRequest();
// 设置请求ID
String uuid = UUID.randomUUID().toString();
String id = uuid.replace("-", "");
request.setId(id);
// 设置API版本号
request.setApiVer("1.0.1");
// 设置参数
request.putParam("iotId","value1");
request.putParam("productKey","value2");
request.putParam("deviceName","value3");
request.putParam("lpInstanceId","value4");
// 如果需要,设置headers
Map<String, String> headers = new HashMap<String, String>(8);
// headers.put("你的<header", "你的<value>");
// 设置请求参数域名、path、request , isHttps, headers
ApiResponse response = syncApiClient.postBody("api.link.aliyun.com", "/app/thing/prop/get", request, true, headers);
System.out.println(
"response code = " + response.getCode()
+ " response = " + new String(response.getBody(), "UTF-8")
+ " headers = " + response.getHeaders().toString()
);
2.3 边缘查询设备标签接口
参考文档:边缘应用 Link IoT Edge对接
获取分组设备列表Topic:{srcApp}/request/linkedge/getDeviceList 获取网关设备列表Topic:{srcApp}/request/linkedge/{pk}/{dn}/getDeviceList 请求Payload:
{
"requestId": "0bc458b5-47f6-472f-bd88-3624696e9777", # [Required]
"timestamp": 157121985, #ms [Optional]
"timeout":3, # 最少1s,最多120s [Optional: default 4s]
"version": "1.0" # [Optional]
}
获取分组设备列表应答Topic:linkedge/response/{srcApp}/getDeviceList 应答Payload
{
"params":[ #数组,包含所有网关下的子设备
{
"gwProductKey":"a1PQ9828qvr", #网关的productkey
"gwDeviceName":"yinlong_gw_dev1",#网关的devicename
"code":0,
"message":"success",
"deviceList":[ #设备列表
{
"productKey":"a1KRepmC2XJ", #设备的productkey
"deviceName":"modbus_tcp_dev_1", #设备的devicename
"localOnline":"false", #设备与网关的连接状态
"cloudOnline":"false", #设备与云端的连接状态
"activationState":"notActivated",#设备在云端是否被激活
"nickName":"xxx", #设备别名
"tags":[ #设备包含的标签
]
},
{
"productKey":"a1ZJTVsqj2y",
"deviceName":"lightDevNoSpecial",
"localOnline":"true",
"cloudOnline":"true",
"activationState":"activated",
"nickName":"xxx", #设备别名
"tags":[
]
},
{
"productKey":"a1ZJTVsqj2y",
"deviceName":"LightDev2",
"localOnline":"false",
"cloudOnline":"false",
"activationState":"notActivated",
"nickName":"xxx", #设备别名
"tags":[ #设备包含的标签
{
"key":"type", #设备标签的key
"value":"light" #设备标签的value
},
{
"key":"owner",
"value":"yinlong"
},
{
"key":"location",
"value":"master bedroom"
},
{
"key":"color",
"value":"red"
}
]
}
]
}
],
"requestId":"0bc458b5-47f6-472f-bd88-3624696e9777",
"version":"1.0",
"timestamp":157225013,
"code":0,
"message":"success"
}
获取网关设备列表应答Topic:linkedge/response/{srcApp}
/{pk}/{dn}/getDeviceList
应答Payload:
{
"requestId":"0bc458b5-47f6-472f-bd88-3624696e9777",
"timestamp": 157121985,
"version":"1.0",
"code":0,
"message":"success",
"params":[ #设备列表
{
"productKey":"a1Mtx4p2fHG", #设备的productkey
"deviceName":"device1", #设备的devicename
"localOnline":"true", #设备和网关的连接状态
"cloudOnline":"true", #设备和云端的连接状态
"activationState": "activated/notActivated/activationFailed", #设备在云端的激活状态
"tag":[
{
"key":"coordinate",
"value":"0:0"
}
]
}
]
}
附录1 智慧社区品类定义
详细定义参见下表:
分组 | 品类 | 模型 |
name:智慧社区 code:community | name:车辆通行 code:car | name:车辆道闸 code: barke |
name:车牌识别摄像头 code:lprc | ||
name:费用显示屏 code:screen | ||
name:人员通行 code:people | name:二维码门禁 code:qrcode | |
name:加密二维码门禁 code:rsa_qrcode | ||
name:人脸门禁 code:face | ||
name:测温人脸门禁 code:temp_face | ||
name:蓝牙门禁 code: bluetooth | ||
name:可视对讲 code:video | ||
name:刷卡门禁 code:card | ||
name:梯控设备 code:elevator | ||
name:梯控网关 code:elevators | ||
name:门禁一体机 code:aio | ||
name:电梯控制器 code:elc | ||
name:视频安防 code: security | name:周界报警主机 code:perimeter | |
name:普通NVR code:nnvr | ||
name:智能分析NVR code: invr | ||
name:人脸识别NVR code: frnvr | ||
name:普通摄像头 code: ipcamera | ||
name:违停球相机 code: tptzcamera | ||
name:人脸抓拍机 code: frcamera | ||
name:周界相机 code: pmcamera | ||
name:设备设施 code: eba | name:超声波流量计 code: flowmeter | |
name:智能电力仪表 code: powermeter | ||
name:压力传感器 code: pressure | ||
name:液位传感器 code: liquid | ||
name:温湿度传感器 code: temhum | ||
name:水侵传感器 code: waterlog | ||
name:温度传感器 code: temper | ||
name:遥信遥控智能仪表 code: rcii | ||
name:照明回路 code:light | ||
name:风机 code:spf | ||
name:气体感测器 code:gd |
附录2 设备能力标签
基于门禁一体机品类创建的设备支持能力标签,用来标识该设备具备哪些能力
例如某个门禁一体机设备具备人脸识别、二维码功能的能力标签定义如下:
Capability: ["face","qrcode"],
目前支持的6种能力值定义如下:
能力值名称 | 能力值含义 |
face_temperature | 测温:表示该门禁设备具备测温功能 |
card | 刷卡:表示该门禁具备刷卡通行的能力 |
intercom | 可视对讲:表示该门禁具备可视对讲的能力 |
bluetooth | 蓝牙:表示该门禁具备蓝牙通行的能力 |
face | 人脸:表示该门禁具备人脸识别通行的能力 |
qrcode | 二维码:表示该门禁具备二维码识别通行的能力 |
elevator_gateway | 梯控网关:表示该设备为梯控网关 |
elevator_gateway_with_rule | 支持联动规则的梯控网关:表示该设备为支持联动规则的梯控网关 |