对接流程
一、联系获取api必需参数
a) 提供以下信息给码全同学创建设备源
接入平台名称、权属机构、供应商
b) 获得参数
- appKey: — appKey(设备源详情获取)
- AppSecret: — AppSecret(设备源详情获取)
- sourcePlatformId: — 设备源id(设备源详情获取)
- organizationId: —所属机构(组织机构获取)
- sourcePlatformType:cloud2 —设备源类型(云云对接)
二、调用api
1.createCityProduct 创建产品
- createCityThingModel 给产品创建物模型
2.queryCityProductList 获取产品列表
3.registerCityDevice 产品下注册设备
4.setCityDeviceData 上报数据
三、联系确定数据是否正常
完结撒花
名词解释
名词 | 描述 |
---|---|
产品 | 设备的集合,通常指一组具有相同功能的设备。物联网平台为每个产品颁发全局唯一的ProductKey。 |
设备 | 归属于某个产品下的具体设备。物联网平台为设备颁发产品内唯一的证书DeviceName。 |
Alink协议 | 阿里云定义的设备与云端之间的通信协议。 |
物模型 | 是对设备在云端的功能描述,包括设备的属性、服务和事件。 |
属性 | 设备的功能模型之一,一般用于描述设备运行时的状态,如环境监测设备所读取的当前环境温度等。 |
服务 | 设备的功能模型之一,设备可被外部调用的能力或方法,可设置输入参数和输出参数。 |
事件 | 设备的功能模型之一,设备运行时的事件。事件一般包含需要被外部感知和处理的通知信息,可包含多个输出参数。 |
实例 | 物联网平台提供的产品、设备等资源管理功能。当前支持的实例类型有:华为物联网平台、移动物联网平台,电信物联网平台,阿里云物联网平台,云云对接,其他等 |
SDK
https://github.com/aliyun/iotx-api-gateway-client
<dependency>
<groupId>com.aliyun.iotx</groupId>
<artifactId>iotx-api-gateway-client</artifactId>
<version>1.0.3</version>
</dependency>
调用示例
查询设备信息
JAVA
public class OpenApiDemo {
static final String HOST = "218.108.75.171:9080";
// static final String PREFIX = "/api/integrated/gateway/";
static final String PREFIX = "/openapi";
static final String APP_KEY = "";
static final String APP_SECRET = "";
public static void main(String[] args) {
IoTApiClientBuilderParams params = new IoTApiClientBuilderParams();
params.setAppKey(APP_KEY);
params.setAppSecret(APP_SECRET);
SyncApiClient syncApiClient = new SyncApiClient(params);
String param1 = " {\"deviceName\": \"d896e0ff000117f3\"}";
String param2 = " { \"pageNo\": 1, \"pageSize\": 10 }";
IoTApiRequest request = new IoTApiRequest();
request.setVersion("1.0.0");
request.setApiVer("1.0.0");
request.putParam("deviceQueryParam", JSON.parseObject(param1));
request.putParam("pagination", JSON.parseObject(param2));
/*
* 调用 web api需要自行验证登录态
* 并将当前用户的identityId放入header中
*/
Map<String, String> headers = new HashMap<>(8);
try {
ApiResponse response = syncApiClient.postBody(
HOST,
PREFIX + "platform/device/paged/queryDevice",
request,
false,
headers
);
System.out.println("response code = " + response.getCode() + " response = " + new String(response.getBody(), StandardCharsets.UTF_8));
} catch (Exception e) {
e.printStackTrace();
} finally {
syncApiClient.shutdown();
}
}
}
NODE
'use strict';
const Client = require('aliyun-api-gateway').Client;
const client = new Client('appKey','AppSecret');
async function post() {
var url = 'https://host/openapi/cityhub/device/data/query';
var result = await client.post(url, {
data: {
'request':{'apiVer': '1.0.0'},
'params': {
'productKey': 'productKey',
'deviceName':'deviceName'
}
},
headers: {
accept: 'application/json'
}
});
console.log(JSON.stringify(result));
}
post().catch((err) => {
console.log(err.stack);
});
返回值示例
成功返回
{
"id": "4de2c367-c1db-417c-aa15-8c585e595d92",
"code": 200,
"message": null,
"localizedMsg": null,
// 具体返回类型参考实际接口
"data": {}
}
成功返回(分页)
{
"id": "4de2c367-c1db-417c-aa15-8c585e595d92",
"code": 200,
"message": null,
"localizedMsg": null,
"data": {
total:1000,
items:[{},{}],
pageSize:1,
pageNum:1
}
}
失败返回
{
"id": "37f7e5fa-d6a5-4efe-8abf-5bf23dca6284",
"code": 403,
"message": "request forbidden.",
"localizedMsg": "请求被禁止",
"data": null
}
物联网平台接口说明
API接口清单
类别 | 接口 | Path | 版本 | 描述 |
---|---|---|---|---|
产品 | queryCityProduct | /openapi/cityhub/product/query | 1.0.0 | 调用该接口查询指定产品的基础信息 |
deleteCityProduct | /openapi/cityhub/product/delete | 1.0.0 | 调用该接口删除指定产品 | |
updateCityProduct | /openapi/cityhub/product/update | 1.0.0 | 调用该接口修改指定产品的基础信息 | |
createCityProduct | /openapi/cityhub/product/create | 1.0.0 | 调用该接口创建产品(产品基础信息) | |
queryCityProductList | /openapi/cityhub/product/list | 1.0.0 | 调用该接口查看当前平台中所有产品列表 | |
物模型 | createCityThingModel | /openapi/cityhub/thingmodel/create | 1.0.0 | 调用该接口为指定产品创建物模型 |
deleteCityThingModel | /openapi/cityhub/thingmodel/delete | 1.0.0 | 删除平台的物模型 | |
updateCityThingModel | /openapi/cityhub/thingmodel/update | 1.0.0 | 调用该接口为指定产品更新物模型 | |
queryCityThingModel | /openapi/cityhub/thingmodel/query | 1.0.0 | 调用该接口查看指定产品物模型中的功能定义 | |
设备 | setCityDeviceData | /openapi/cityhub/device/data/set | 1.0.0 | 调用该接口设置设备当前数据的值 |
queryCityDeviceList | /openapi/cityhub/device/list | 1.0.0 | 调用该接口查询某个产品的所有设备列表 | |
registerCityDevice | /openapi/cityhub/device/register | 1.0.0 | 调用该接口在指定产品下注册设备 | |
deleteCityDevice | /openapi/cityhub/device/delete | 1.0.0 | 调用该接口删除设备 | |
queryCityDevice | /openapi/cityhub/device/query | 1.0.0 | 调用该接口查询指定设备的基础信息 | |
queryCityDeviceData | /openapi/cityhub/device/data/query | 1.0.0 | 调用该接口返回设备当前所有实时数据的值 |
1.2 产品 API 详细描述
1.2.1 queryCityProduct
入参列表
入参名称 | 数据类型 | 是否必须 | 缺省默认值 | 入参描述 |
---|---|---|---|---|
productKey | 字符串 | 是 | 产品ID |
出参列表
参数名称 | 数据类型 | 后端参数名称 | 参数描述 |
---|---|---|---|
code | 整型 | code | 响应码, 200: 成功 |
message | 字符串 | message | 错误消息 |
localizedMsg | 字符串 | localizedMsg | 本地语言错误消息 |
data | JSON | data | 产品信息 |
productKey | 字符串 | productKey | 产品ID |
name | 字符串 | name | 产品名称 |
sourceProductId | 字符串 | sourceProductId | 设备源产品ID |
sourcePlatformName | 字符串 | sourcePlatformName | 设备源名称 |
categoryKey | 字符串 | categoryKey | 产品所属的类目id |
categoryName | 字符串 | categoryName | 品类中文名 |
netType | 字符串 | netType | 产品入网类型 |
protocolType | 字符串 | protocolType | 接入协议 |
supplier | 字符串 | supplier | 供应商 |
description | 字符串 | description | 描述 |
extInfo | JSON | extInfo | 扩展信息 |
请求示例
{
"productKey":"产品pk"
}
{
"code":200,
"message":"success",
"localizedMsg":"成功",
"data":{
"netType":"OTHER",
"supplier":null,
"name":"智慧路灯",
"categoryKey":"xxx",
"description":"",
"protocolType":"ALINK",
"productKey":"产品pk",
"sourceProductId":"xxx",
"sourcePlatformName":"xxx",
"categoryName":"移动产品",
"extInfo":null
}
}
返回示例
1.2.2 deleteCityProduct
入参列表
入参名称 | 数据类型 | 是否必须 | 缺省默认值 | 入参描述 |
---|---|---|---|---|
productKey | 字符串 | 是 | 产品ID |
出参列表
参数名称 | 数据类型 | 后端参数名称 | 参数描述 |
---|---|---|---|
code | 整型 | code | 响应码, 200: 成功 |
message | 字符串 | message | 错误消息 |
localizedMsg | 字符串 | localizedMsg | 本地语言错误消息 |
请求示例
{
"productKey":"产品pk"
}
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null,
"data": null
}
1.2.3 updateCityProduct
入参列表
入参名称 | 数据类型 | 是否必须 | 缺省默认值 | 入参描述 |
---|---|---|---|---|
productKey | 字符串 | 是 | 产品ID | |
name | 字符串 | 否 | 产品名称 | |
categoryKey | 字符串 | 否 | 产品品类 | |
netType | 字符串 | 否 | 设备入网类型 | |
protocolType | 字符串 | 否 | 设备接入协议 | |
supplier | 字符串 | 否 | 供应商 | |
description | 字符串 | 否 | 描述 | |
extInfo | JSON | 否 | 扩展信息 |
出参列表
参数名称 | 数据类型 | 后端参数名称 | 参数描述 |
---|---|---|---|
code | 整型 | code | 响应码, 200: 成功 |
message | 字符串 | message | 错误消息 |
localizedMsg | 字符串 | localizedMsg | 本地语言错误消息 |
请求示例
{
"productKey":"产品pk",
"netType":"OTHER",
"supplier":null,
"name":"智慧路灯",
"categoryKey":"xxx",
"description":"测试",
"protocolType":"ALINK",
"extInfo":null
}
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null,
"data": null
}
1.2.4 createCityProduct
入参列表
入参名称 | 数据类型 | 是否必须 | 缺省默认值 | 入参描述 |
---|---|---|---|---|
name | 字符串 | 是 | 产品名称 | |
sourceProductId | 字符串 | 是 | 设备源产品ID | |
sourcePlatformType | 字符串 | 是 | 设备源类型 | |
sourcePlatformId | 字符串 | 是 | 设备源ID | |
categoryKey | 字符串 | 是 | 产品所属的类目id | |
categoryName | 字符串 | 是 | 品类中文名 | |
netType | 字符串 | 是 | 设备入网类型 | |
protocolType | 字符串 | 是 | 设备接入协议 | |
supplier | 字符串 | 是 | 供应商 | |
description | 字符串 | 否 | 描述 |
出参列表
参数名称 | 数据类型 | 结构类型 | 后端参数名称 | 参数描述 |
---|---|---|---|---|
code | 整型 | code | 响应码, 200: 成功 | |
message | 字符串 | message | 错误消息 | |
localizedMsg | 字符串 | localizedMsg | 本地语言错误消息 | |
data | 字符串 | data | 产品PK |
请求示例
{
"netType":"OTHER",
"supplier":null,
"name":"智慧路灯",
"categoryKey":"xxx",
"description":"",
"protocolType":"ALINK",
"sourceProductId":"产品pk",
"sourcePlatformType":"xxx",
"sourcePlatformId":"xxxx",
"categoryName":"自定义产品",
"extInfo":null
}
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null,
"data":"产品pk"
}
1.2.5 queryCityProductList
入参列表
入参名称 | 数据类型 | 是否必须 | 缺省默认值 | 入参描述 |
---|---|---|---|---|
productKey | 字符串 | 否 | 产品ID | |
name | 字符串 | 否 | 产品名称 | |
sourceProductId | 字符串 | 否 | 源产品ID | |
sourcePlatformType | 字符串 | 否 | 设备源类型 | |
sourcePlatformId | 字符串 | 否 | 设备源ID,需要与 sourcePlatformType绑定使用 |
|
categoryKey | 字符串 | 否 | 产品品类 | |
pageNo | 整型 | 是 | 1 | 页数 |
pageSize | 整型 | 是 | 10 | 分页大小 |
出参列表
参数名称 | 数据类型 | 后端参数名称 | 参数描述 |
---|---|---|---|
code | 整型 | code | 响应码, 200: 成功 |
message | 字符串 | message | 错误消息 |
localizedMsg | 字符串 | localizedMsg | 本地语言错误消息 |
data | JSON | data | 响应结果 |
total | 长整型 | total | 总数 |
items | JSONARRAY | items | 产品信息列表 |
productKey | 字符串 | productKey | 产品ID |
name | 字符串 | name | 产品名称 |
sourceProductId | 字符串 | sourceProductId | 设备源产品ID |
sourcePlatformName | 字符串 | sourcePlatformName | 设备源名称 |
categoryKey | 字符串 | categoryKey | 产品所属的类目id |
categoryName | 字符串 | categoryName | 品类中文名 |
netType | 字符串 | netType | 设备入网类型 |
protocolType | 字符串 | protocolType | 设备接入协议 |
supplier | 字符串 | supplier | 供应商 |
description | 字符串 | description | 描述 |
请求示例
{
"pageNo":1,
"name":"智慧路灯",
"categoryKey":"xxx",
"pageSize":10,
"productKey":"产品pk",
"sourceProductId":"xxx",
"sourcePlatformId":"xxx",
"sourcePlatformType":"xxx"
}
返回示例
{
"code":200,
"message":"success",
"localizedMsg":"成功",
"data":{
"total":1,
"pageNo":1,
"pageSize":10,
"items":[
{
"netType":"OTHER",
"supplier":null,
"name":"智慧路灯",
"categoryKey":"xxx",
"description":"",
"protocolType":"ALINK",
"productKey":"产品pk",
"sourceProductId":"xxx",
"sourcePlatformName":"xxx",
"categoryName":"自定义产品",
"extInfo":null
}
]
}
}
1.3 物模型 API 详细描述
1.3.1 createCityThingModel
入参列表
入参名称 | 数据类型 | 是否必须 | 缺省默认值 | 入参描述 |
---|---|---|---|---|
productKey | 字符串 | 是 | 产品ID | |
thingModelProperties | JSONARRAY | 否 | 属性列表 | |
name | 字符串 | 否 | 属性名称 | |
identifier | 字符串 | 否 | 属性标识符 | |
dataType | 字符串 | 否 | 属性数据类型 | |
rwFlag | 字符串 | 否 | 读写类型 | |
unit | 字符串 | 否 | 单位 | |
unitName | 字符串 | 否 | 单位名称 | |
description | 字符串 | 否 | 描述 | |
dataSpecs | 字符串 | 否 | 数据定义 | |
thingModelEvents | JSON | 否 | 事件列表 | |
eventName | 字符串 | 否 | 事件名称 | |
identifier | 字符串 | 否 | 事件标识符 | |
eventType | 字符串 | 否 | 事件类型 | |
description | 字符串 | 否 | 描述 | |
outputData | JSON | 否 | 输出参数 | |
name | 字符串 | 否 | 参数名称 | |
dataType | 字符串 | 否 | 数据类型 | |
paraOrder | 整型 | 否 | 参数序号 | |
identifier | 字符串 | 否 | 标识符 | |
dataSpecs | 字符串 | 否 | 数据定义 | |
thingModelServices | JSON | 否 | 服务列表 | |
serviceName | 字符串 | 否 | 服务名称 | |
identifier | 字符串 | 否 | 服务标识符 | |
description | 字符串 | 否 | 描述 | |
callType | 字符串 | 否 | 调用方式 | |
inputParams | JSON | 否 | 入参信息 | |
name | 字符串 | 否 | 参数名称 | |
dataType | 字符串 | 否 | 数据类型 | |
paraOrder | 整型 | 否 | 参数序号 | |
identifier | 字符串 | 否 | 标识符 | |
dataSpecs | 字符串 | 否 | 数据定义 | |
outputParams | JSON | 否 | 出参信息 | |
name | 字符串 | 否 | 参数名称 | |
dataType | 字符串 | 否 | 数据类型 | |
paraOrder | 整型 | 否 | 参数序号 | |
identifier | 字符串 | 否 | 标识符 | |
dataSpecs | 字符串 | 否 | 数据定义 |
出参列表
参数名称 | 数据类型 | 后端参数名称 | 参数描述 |
---|---|---|---|
code | 整型 | code | 响应码, 200: 成功 |
message | 字符串 | message | 错误消息 |
localizedMsg | 字符串 | localizedMsg | 本地语言错误消息 |
请求示例
{
"thingModelProperties": [
{
"identifier": "define1",
"dataSpecs": "[{\"identifier\":\"TestNum\",\"dataSpecs\":\"{\\\"unit\\\":\\\"cP\\\",\\\"min\\\":\\\"1\\\",\\\"unitName\\\":\\\"厘泊\\\",\\\"max\\\":\\\"122\\\",\\\"custom\\\":true,\\\"dataType\\\":\\\"INT\\\",\\\"step\\\":\\\"1\\\"}\",\"dataType\":\"INT\",\"name\":\"TestNum\"},{\"identifier\":\"TestEnum\",\"dataSpecs\":\"{\\\"1\\\":\\\"a\\\",\\\"2\\\":\\\"b\\\"}\",\"dataType\":\"ENUM\",\"name\":\"TestEnum\"},{}]",
"unit": null,
"unitName": null,
"dataType": "ARRAY",
"rwFlag": "READ_WRITE",
"name": "自定义功能点1",
"description": null
},
{
"identifier": "define2",
"dataSpecs": "{}",
"unit": null,
"unitName": null,
"dataType": "DATE",
"rwFlag": "READ_WRITE",
"name": "自定义功能点2",
"description": null
},
{
"identifier": "define3",
"dataSpecs": "{\"min\":\"0\",\"max\":\"100\"}",
"unit": null,
"unitName": null,
"dataType": "INT",
"rwFlag": "READ_WRITE",
"name": "自定义功能点3",
"description": null
},
{
"identifier": "define6",
"dataSpecs": "{\"false\":\"3\",\"true\":\"8\"}",
"unit": null,
"unitName": null,
"dataType": "BOOL",
"rwFlag": "READ_WRITE",
"name": "自定义6",
"description": null
},
{
"identifier": "define7",
"dataSpecs": "{\"length\":\"10\"}",
"unit": null,
"unitName": null,
"dataType": "TEXT",
"rwFlag": "READ_WRITE",
"name": "自定义7",
"description": null
},
{
"identifier": "define8",
"dataSpecs": "{\"define\":[{\"0\":\"0\",\"1\":\"1\",\"bit\":0},{\"0\":\"2\",\"1\":\"3\",\"bit\":1}],\"length\":2}",
"unit": null,
"unitName": null,
"dataType": "BITMAP",
"rwFlag": "READ_WRITE",
"name": "自定义8",
"description": null
},
{
"identifier": "define9",
"dataSpecs": "{\"min\":\"0\",\"max\":\"2000\"}",
"unit": null,
"unitName": null,
"dataType": "INT",
"rwFlag": "READ_WRITE",
"name": "自定义9",
"description": null
},
{
"identifier": "definite4",
"dataSpecs": "[{\"identifier\":\"struct\",\"dataSpecs\":\"{\\\"min\\\":\\\"0\\\",\\\"max\\\":\\\"200\\\"}\",\"dataType\":\"INT\",\"name\":\"结构体\"},{\"identifier\":\"struct2\",\"dataSpecs\":\"{\\\"min\\\":\\\"0\\\",\\\"max\\\":\\\"200\\\"}\",\"dataType\":\"FLOAT\",\"name\":\"结构体2\"},{\"identifier\":\"struct3\",\"dataSpecs\":\"{\\\"min\\\":\\\"0\\\",\\\"max\\\":\\\"100\\\"}\",\"dataType\":\"INT\",\"name\":\"结构体3\"}]",
"unit": null,
"unitName": null,
"dataType": "STRUCT",
"rwFlag": "READ_WRITE",
"name": "自定义功能点5",
"description": null
},
{
"identifier": "WaterConsumption",
"dataSpecs": "{\"unit\":\"m³\",\"min\":\"0\",\"unitName\":\"立方米\",\"max\":\"2147483647\",\"step\":\"0.1\"}",
"unit": null,
"unitName": null,
"dataType": "FLOAT",
"rwFlag": "READ_ONLY",
"name": "用水量",
"description": ""
},
{
"identifier": "WaterMeterState",
"dataSpecs": "{\"0\":\"通信正常\",\"1\":\"通信失败\",\"2\":\"设备异常\",\"3\":\"低电量\"}",
"unit": null,
"unitName": null,
"dataType": "ENUM",
"rwFlag": "READ_ONLY",
"name": "水表模块状态",
"description": ""
}
],
"thingModelServices": [
{
"identifier": "fuwu1",
"outputParams": [],
"inputParams": [
{
"identifier": "fuwu1",
"dataSpecs": "{\"length\":\"80\"}",
"paraOrder": 0,
"dataType": "TEXT",
"name": "服务1"
}
],
"description": null,
"serviceName": "服务1",
"callType": "SYNC"
}
],
"productKey": "产品pk",
"thingModelEvents": [
{
"outputData": [
{
"identifier": "aaa",
"dataSpecs": "{\"min\":\"0\",\"max\":\"100\"}",
"paraOrder": 0,
"dataType": "INT",
"name": "aaa"
}
],
"identifier": "aaa",
"eventName": "啊啊啊",
"description": null,
"eventType": "INFO"
},
{
"outputData": [
{
"identifier": "alert1",
"dataSpecs": "{\"min\":\"0\",\"max\":\"100\"}",
"paraOrder": 0,
"dataType": "INT",
"name": "告警1"
}
],
"identifier": "define4",
"eventName": "告警1",
"description": null,
"eventType": "ALERT"
},
{
"outputData": [
{
"identifier": "alert1",
"dataSpecs": "{\"length\":\"90\"}",
"paraOrder": 0,
"dataType": "TEXT",
"name": "告警1"
}
],
"identifier": "shijian1",
"eventName": "事件1",
"description": null,
"eventType": "ALERT"
}
]
}
返回示例
{
"code":200,
"message":"success",
"localizedMsg":"成功",
"data":null
}
1.3.2 deleteThingModel
入参列表
入参名称 | 数据类型 | 是否必须 | 缺省默认值 | 入参描述 |
---|---|---|---|---|
productKey | 字符串 | 是 | 产品ID |
出参列表
参数名称 | 数据类型 | 后端参数名称 | 参数描述 |
---|---|---|---|
code | 整型 | code | 响应码, 200: 成功 |
message | 字符串 | message | 错误消息 |
localizedMsg | 字符串 | localizedMsg | 本地语言错误消息 |
请求示例
{
"productKey":"产品pk"
}
返回示例
{
"code":200,
"message":"success",
"localizedMsg":"成功",
"data":null
}
1.3.3 updateCityThingModel
入参列表
入参名称 | 数据类型 | 是否必须 | 缺省默认值 | 入参描述 |
---|---|---|---|---|
productKey | 字符串 | 是 | 产品ID | |
thingModelProperties | JSONARRAY | 否 | 属性 | |
name | 字符串 | 否 | 属性名称 | |
identifier | 字符串 | 否 | 属性标识符 | |
dataType | 字符串 | 否 | 属性数据类型 | |
rwFlag | 字符串 | 否 | 读写类型 | |
unit | 字符串 | 否 | 单位 | |
unitName | 字符串 | 否 | 单位名称 | |
description | 字符串 | 否 | 描述 | |
dataSpecs | 字符串 | 否 | 数据定义 | |
thingModelEvents | JSONARRAY | 否 | 事件 | |
eventName | 字符串 | 否 | 事件名称 | |
identifier | 字符串 | 否 | 事件标识符 | |
eventType | 字符串 | 否 | 事件类型 | |
description | 字符串 | 否 | 描述 | |
outputData | JSONARRAY | 否 | 输出参数 | |
name | 字符串 | 否 | 参数名称 | |
dataType | 字符串 | 否 | 数据类型 | |
paraOrder | 整型 | 否 | 参数序号 | |
identifier | 字符串 | 否 | 标识符 | |
dataSpecs | 字符串 | 否 | 数据定义 | |
thingModelServices | JSONARRAY | 否 | 服务 | |
serviceName | 字符串 | 否 | 服务名称 | |
identifier | 字符串 | 否 | 服务标识符 | |
description | 字符串 | 否 | 描述 | |
callType | 字符串 | 否 | 调用方式 | |
inputParams | JSONARRAY | 否 | 入参信息 | |
name | 字符串 | 否 | 参数名称 | |
dataType | 字符串 | 否 | 数据类型 | |
paraOrder | 整型 | 否 | 参数序号 | |
identifier | 字符串 | 否 | 标识符 | |
dataSpecs | 字符串 | 否 | 数据定义 | |
outputParams | JSONARRAY | 否 | 出参信息 | |
name | 字符串 | 否 | 参数名称 | |
dataType | 字符串 | 否 | 数据类型 | |
paraOrder | 整型 | 否 | 参数序号 | |
identifier | 字符串 | 否 | 标识符 | |
dataSpecs | 字符串 | 否 | 数据定义 |
出参列表
参数名称 | 数据类型 | 后端参数名称 | 参数描述 |
---|---|---|---|
code | 整型 | code | 响应码, 200: 成功 |
message | 字符串 | message | 错误消息 |
localizedMsg | 字符串 | localizedMsg | 本地语言错误消息 |
请求示例
{
"thingModelProperties": [
{
"identifier": "define1",
"dataSpecs": "[{\"identifier\":\"TestNum\",\"dataSpecs\":\"{\\\"unit\\\":\\\"cP\\\",\\\"min\\\":\\\"1\\\",\\\"unitName\\\":\\\"厘泊\\\",\\\"max\\\":\\\"122\\\",\\\"custom\\\":true,\\\"dataType\\\":\\\"INT\\\",\\\"step\\\":\\\"1\\\"}\",\"dataType\":\"INT\",\"name\":\"TestNum\"},{\"identifier\":\"TestEnum\",\"dataSpecs\":\"{\\\"1\\\":\\\"a\\\",\\\"2\\\":\\\"b\\\"}\",\"dataType\":\"ENUM\",\"name\":\"TestEnum\"},{}]",
"unit": null,
"unitName": null,
"dataType": "ARRAY",
"rwFlag": "READ_WRITE",
"name": "自定义功能点1",
"description": null
},
{
"identifier": "define2",
"dataSpecs": "{}",
"unit": null,
"unitName": null,
"dataType": "DATE",
"rwFlag": "READ_WRITE",
"name": "自定义功能点2",
"description": null
},
{
"identifier": "define3",
"dataSpecs": "{\"min\":\"0\",\"max\":\"100\"}",
"unit": null,
"unitName": null,
"dataType": "INT",
"rwFlag": "READ_WRITE",
"name": "自定义功能点3",
"description": null
},
{
"identifier": "define6",
"dataSpecs": "{\"false\":\"3\",\"true\":\"8\"}",
"unit": null,
"unitName": null,
"dataType": "BOOL",
"rwFlag": "READ_WRITE",
"name": "自定义6",
"description": null
},
{
"identifier": "define7",
"dataSpecs": "{\"length\":\"10\"}",
"unit": null,
"unitName": null,
"dataType": "TEXT",
"rwFlag": "READ_WRITE",
"name": "自定义7",
"description": null
},
{
"identifier": "define8",
"dataSpecs": "{\"define\":[{\"0\":\"0\",\"1\":\"1\",\"bit\":0},{\"0\":\"2\",\"1\":\"3\",\"bit\":1}],\"length\":2}",
"unit": null,
"unitName": null,
"dataType": "BITMAP",
"rwFlag": "READ_WRITE",
"name": "自定义8",
"description": null
},
{
"identifier": "define9",
"dataSpecs": "{\"min\":\"0\",\"max\":\"2000\"}",
"unit": null,
"unitName": null,
"dataType": "INT",
"rwFlag": "READ_WRITE",
"name": "自定义9",
"description": null
},
{
"identifier": "definite4",
"dataSpecs": "[{\"identifier\":\"struct\",\"dataSpecs\":\"{\\\"min\\\":\\\"0\\\",\\\"max\\\":\\\"200\\\"}\",\"dataType\":\"INT\",\"name\":\"结构体\"},{\"identifier\":\"struct2\",\"dataSpecs\":\"{\\\"min\\\":\\\"0\\\",\\\"max\\\":\\\"200\\\"}\",\"dataType\":\"FLOAT\",\"name\":\"结构体2\"},{\"identifier\":\"struct3\",\"dataSpecs\":\"{\\\"min\\\":\\\"0\\\",\\\"max\\\":\\\"100\\\"}\",\"dataType\":\"INT\",\"name\":\"结构体3\"}]",
"unit": null,
"unitName": null,
"dataType": "STRUCT",
"rwFlag": "READ_WRITE",
"name": "自定义功能点5",
"description": null
},
{
"identifier": "WaterConsumption",
"dataSpecs": "{\"unit\":\"m³\",\"min\":\"0\",\"unitName\":\"立方米\",\"max\":\"2147483647\",\"step\":\"0.1\"}",
"unit": null,
"unitName": null,
"dataType": "FLOAT",
"rwFlag": "READ_ONLY",
"name": "用水量",
"description": ""
},
{
"identifier": "WaterMeterState",
"dataSpecs": "{\"0\":\"通信正常\",\"1\":\"通信失败\",\"2\":\"设备异常\",\"3\":\"低电量\"}",
"unit": null,
"unitName": null,
"dataType": "ENUM",
"rwFlag": "READ_ONLY",
"name": "水表模块状态",
"description": ""
}
],
"thingModelServices": [
{
"identifier": "fuwu1",
"outputParams": [],
"inputParams": [
{
"identifier": "fuwu1",
"dataSpecs": "{\"length\":\"80\"}",
"paraOrder": 0,
"dataType": "TEXT",
"name": "服务1"
}
],
"description": null,
"serviceName": "服务1",
"callType": "SYNC"
}
],
"productKey": "产品pk",
"thingModelEvents": [
{
"outputData": [
{
"identifier": "aaa",
"dataSpecs": "{\"min\":\"0\",\"max\":\"100\"}",
"paraOrder": 0,
"dataType": "INT",
"name": "aaa"
}
],
"identifier": "aaa",
"eventName": "啊啊啊",
"description": null,
"eventType": "INFO"
},
{
"outputData": [
{
"identifier": "alert1",
"dataSpecs": "{\"min\":\"0\",\"max\":\"100\"}",
"paraOrder": 0,
"dataType": "INT",
"name": "告警1"
}
],
"identifier": "define4",
"eventName": "告警1",
"description": null,
"eventType": "ALERT"
},
{
"outputData": [
{
"identifier": "alert1",
"dataSpecs": "{\"length\":\"90\"}",
"paraOrder": 0,
"dataType": "TEXT",
"name": "告警1"
}
],
"identifier": "shijian1",
"eventName": "事件1",
"description": null,
"eventType": "ALERT"
}
]
}
返回示例
{
"code":200,
"message":"success",
"localizedMsg":"成功",
"data":null
}
1.3.4 queryCityThingModel
入参列表
入参名称 | 数据类型 | 是否必须 | 缺省默认值 | 入参描述 |
---|---|---|---|---|
productKey | 字符串 | 是 | 产品ID |
出参列表
参数名称 | 数据类型 | 后端参数名称 | 参数描述 |
---|---|---|---|
code | 整型 | code | 响应码, 200: 成功 |
message | 字符串 | message | 错误消息 |
localizedMsg | 字符串 | localizedMsg | 本地语言错误消息 |
data | JSONARRAY | data | 响应结果 |
thingModelProperties | JSONARRAY | thingModelPropertyDtos | 属性 |
thingModelEvents | JSONARRAY | thingModelEventDtos | 事件 |
thingModelServices | JSONARRAY | thingModelServiceDtos | 服务 |
请求示例
{
"productKey":"产品pk"
}
返回示例
{
"code": 200,
"message": "success",
"localizedMsg": "成功",
"data": {
"thingModelEventDtos": [
{
"outputData": [
{
"identifier": "CarNum",
"dataSpecs": "{\"gmtModified\":1551711022000,\"dataType\":\"TEXT\",\"custom\":true,\"length\":16,\"id\":117522,\"gmtCreate\":1551711022000}",
"paraOrder": 0,
"dataType": "TEXT",
"name": "车牌号"
},
{
"identifier": "DectTime",
"dataSpecs": "{\"gmtModified\":1551711022000,\"dataType\":\"DATE\",\"custom\":true,\"length\":13,\"id\":117521,\"gmtCreate\":1551711022000}",
"paraOrder": 1,
"dataType": "DATE",
"name": "识别时间"
}
],
"identifier": "PlateDect",
"eventName": "车牌检测",
"description": "检测到车辆到达出入口需要上报",
"eventType": "INFO",
"productKey": "产品pk"
}
],
"thingModelPropertyDtos": [
{
"identifier": "CarNum",
"dataSpecs": "{\"gmtModified\":1551710980000,\"dataType\":\"TEXT\",\"custom\":true,\"length\":16,\"id\":117520,\"gmtCreate\":1551710980000}",
"unit": null,
"unitName": null,
"dataType": "TEXT",
"rwFlag": "READ_ONLY",
"name": "车牌号",
"description": "检测到车辆到达出入口需要上报",
"productKey": "产品pk"
},
{
"identifier": "DectTime",
"dataSpecs": "{\"gmtModified\":1551710992000,\"dataType\":\"DATE\",\"custom\":true,\"length\":13,\"id\":117519,\"gmtCreate\":1551710992000}",
"unit": null,
"unitName": null,
"dataType": "DATE",
"rwFlag": "READ_ONLY",
"name": "识别时间",
"description": "检测到车辆到达出入口需要上报",
"productKey": "产品pk"
},
{
"identifier": "GeoLocation",
"dataSpecs": "[{\"identifier\":\"Altitude\",\"dataType\":\"DOUBLE\",\"name\":\"海拔\"},{\"identifier\":\"Latitude\",\"dataType\":\"DOUBLE\",\"name\":\"纬度\"},{\"identifier\":\"CoordinateSystem\",\"dataSpecs\":\"{\\\"1\\\":\\\"WGS_84\\\",\\\"2\\\":\\\"GCJ_02\\\"}\",\"dataType\":\"ENUM\",\"name\":\"坐标系统\"},{\"identifier\":\"Longitude\",\"dataType\":\"DOUBLE\",\"name\":\"经度\"}]",
"unit": null,
"unitName": null,
"dataType": "STRUCT",
"rwFlag": "READ_ONLY",
"name": "地理位置",
"description": "",
"productKey": "产品pk"
}
],
"thingModelServiceDtos": []
}
}
1.4 设备 API 详细描述
1.4.1 setCityDeviceData
入参列表
入参名称 | 数据类型 | 是否必须 | 缺省默认值 | 入参描述 |
---|---|---|---|---|
productKey | 字符串 | 是 | 产品ID | |
deviceName | 字符串 | 是 | 设备名称 | |
propertyContents | JSONARRAY | 否 | 属性值 | |
identifier | 字符串 | 否 | 标识符 | |
name | 字符串 | 否 | 名称 | |
time | 长整型 | 否 | 时间 | |
value | 字符串 | 否 | 值 | |
eventContents | JSON | 否 | 事件值 | |
identifier | 字符串 | 否 | 标识符 | |
time | 长整型 | 否 | 时间 | |
name | 字符串 | 否 | 名称 | |
type | 字符串 | 否 | 事件类型 | |
value | JSON | 否 | 事件值 |
出参列表
参数名称 | 数据类型 | 后端参数名称 | 参数描述 |
---|---|---|---|
code | 整型 | code | 响应码, 200: 成功 |
message | 字符串 | message | 错误消息 |
localizedMsg | 字符串 | localizedMsg | 本地语言错误消息 |
请求示例
{
"propertyContents": [
{
"identifier": "CarNum",
"name": "车牌号",
"time": 1629873463429,
"value": "苏B11111"
}
],
"productKey": "产品pk",
"deviceName": "设备dn"
}
返回示例
{
"code":200,
"message":"success",
"localizedMsg":"成功",
"data":null
}
1.4.2 queryCityDeviceList
入参列表
入参名称 | 数据类型 | 是否必须 | 缺省默认值 | 入参描述 |
---|---|---|---|---|
productKey | 字符串 | 否 | 产品ID | |
deviceName | 字符串 | 否 | 设备名称 | |
alias | 字符串 | 否 | 设备别名 | |
organizationIds | JSONARRAY | 否 | 所属组织机构,List |
|
status | 字符串 | 否 | 设备状态 | |
categoryKey | 字符串 | 否 | 产品品类 | |
supplier | 字符串 | 否 | 供应商 | |
nodeType | 字符串 | 否 | 节点类型 | |
netType | 字符串 | 否 | 设备入网类型 | |
protocolType | 字符串 | 否 | 协议类型 | |
sourcePlatformType | 字符串 | 否 | 设备源平台类型 | |
sourcePlatformId | 字符串 | 否 | 设备源ID | |
pageNo | 整型 | 是 | 1 | 页数 |
pageSize | 整型 | 是 | 10 | 分页大小 |
出参列表
参数名称 | 数据类型 | 后端参数名称 | 参数描述 |
---|---|---|---|
code | 整型 | code | 响应码, 200: 成功 |
message | 字符串 | message | 错误消息 |
localizedMsg | 字符串 | localizedMsg | 本地语言错误消息 |
data | JSON | data | 响应结果 |
total | 长整型 | total | 数据总数 |
items | JSONARRAY | items | 设备列表 |
productKey | 字符串 | productKey | 产品ID |
deviceName | 字符串 | deviceName | 设备名称 |
alias | 字符串 | alias | 设备别名 |
organizationId | 字符串 | organizationId | 组织机构 |
description | 字符串 | description | 描述 |
请求示例
{
"netType": "OTHER",
"categoryKey": "469",
"pageSize": 10,
"protocolType": "ALINK",
"productKey": "产品pk",
"nodeType": "DEVICE",
"deviceName": "设备dn",
"sourcePlatformId": "xxx",
"organizationIds": [
"xxx"
],
"pageNo": 1,
"supplier": "",
"alias": "",
"sourcePlatformType": "cloud2",
"status": "INIT"
}
返回示例
{
"code": 200,
"message": "success",
"localizedMsg": "成功",
"data": {
"total": 1,
"pageNo": 1,
"pageSize": 10,
"items": [
{
"organizationId": "xxx",
"alias": null,
"description": null,
"productKey": "产品pk",
"deviceName": "设备dn"
}
]
}
}
1.4.3 registerCityDevice
入参列表
入参名称 | 数据类型 | 是否必须 | 缺省默认值 | 入参描述 |
---|---|---|---|---|
productKey | 字符串 | 是 | 产品ID | |
deviceName | 字符串 | 是 | 设备ID | |
alias | 字符串 | 否 | 设备别名 | |
organizationId | 字符串 | 是 | 所属机构 | |
description | 字符串 | 否 | 描述 | |
deviceLocation | JSON | 否 | 地址信息 | |
altitude | 整型 | 否 | ||
districtCode | 字符串 | 否 | ||
address | 字符串 | 否 | ||
latitude | 双精度浮点型 | 否 | ||
coordinateSystem | 字符串 | 否 | ||
longitude | 双精度浮点型 | 否 |
出参列表
参数名称 | 数据类型 | 后端参数名称 | 参数描述 |
---|---|---|---|
code | 整型 | code | 响应码, 200: 成功 |
message | 字符串 | message | 错误消息 |
localizedMsg | 字符串 | localizedMsg | 本地语言错误消息 |
请求示例
{
"productKey": "产品pk",
"deviceName": "设备dn",
"organizationId":"xxx"
}
返回示例
{
"code": 200,
"message": "success",
"localizedMsg": "成功",
"data": null
}
1.4.4 modifyCityDevice
入参列表
入参名称 | 数据类型 | 是否必须 | 缺省默认值 | 入参描述 |
---|---|---|---|---|
productKey | 字符串 | 是 | 产品ID | |
deviceName | 字符串 | 是 | 设备ID | |
alias | 字符串 | 否 | 设备别名 | |
organizationId | 字符串 | 否 | 所属机构 | |
description | 字符串 | 否 | 描述 | |
deviceLocation | JSON | 否 | 地址信息 | |
altitude | 整型 | 否 | ||
districtCode | 字符串 | 否 | ||
address | 字符串 | 否 | ||
latitude | 双精度浮点型 | 否 | ||
coordinateSystem | 字符串 | 否 | ||
longitude | 双精度浮点型 | 否 |
出参列表
参数名称 | 数据类型 | 后端参数名称 | 参数描述 |
---|---|---|---|
code | 整型 | code | 响应码, 200: 成功 |
message | 字符串 | message | 错误消息 |
localizedMsg | 字符串 | localizedMsg | 本地语言错误消息 |
请求示例
{
"productKey": "产品pk",
"deviceName": "设备dn",
"organizationId":"xxx"
}
返回示例
{
"code": 200,
"message": "success",
"localizedMsg": "成功",
"data": null
}
1.4.5 deleteCityDevice
入参列表
入参名称 | 数据类型 | 是否必须 | 缺省默认值 | 入参描述 |
---|---|---|---|---|
productKey | 字符串 | 是 | 产品ID | |
deviceName | 字符串 | 是 | 设备名称 |
出参列表
参数名称 | 数据类型 | 后端参数名称 | 参数描述 |
---|---|---|---|
code | 整型 | code | 响应码, 200: 成功 |
message | 字符串 | message | 错误消息 |
localizedMsg | 字符串 | localizedMsg | 本地语言错误消息 |
请求示例
{
"productKey": "产品pk",
"deviceName": "设备dn"
}
返回示例
{
"code": 200,
"message": "success",
"localizedMsg": "成功",
"data": null
}
1.4.6 queryCityDevice
入参列表
入参名称 | 数据类型 | 是否必须 | 缺省默认值 | 入参描述 |
---|---|---|---|---|
productKey | 字符串 | 是 | 产品ID | |
deviceName | 字符串 | 是 | 设备名称 |
出参列表
参数名称 | 数据类型 | 后端参数名称 | 参数描述 |
---|---|---|---|
code | 整型 | code | 响应码, 200: 成功 |
message | 字符串 | message | 错误消息 |
localizedMsg | 字符串 | localizedMsg | 本地语言错误消息 |
data | JSON | data | 设备信息 |
productKey | 字符串 | productKey | 产品ID |
deviceName | 字符串 | deviceName | 设备名称 |
alias | 字符串 | alias | 设备昵称 |
organizationId | 字符串 | organizationId | 所属组织机构 |
description | 字符串 | description | 描述 |
请求示例
{
"productKey": "产品pk",
"deviceName": "设备dn"
}
返回示例
{
"code": 200,
"message": "success",
"localizedMsg": "成功",
"data": {
"organizationId": "xxx",
"alias": null,
"description": null,
"productKey": "产品pk",
"deviceName": "设备dn"
}
}
1.4.7 queryCityDeviceData
入参列表
入参名称 | 数据类型 | 是否必须 | 缺省默认值 | 入参描述 |
---|---|---|---|---|
productKey | 字符串 | 是 | 产品ID | |
deviceName | 字符串 | 是 | 设备名称 |
出参列表
参数名称 | 数据类型 | 后端参数名称 | 参数描述 |
---|---|---|---|
code | 整型 | code | 响应码, 200: 成功 |
message | 字符串 | message | 错误消息 |
localizedMsg | 字符串 | localizedMsg | 本地语言错误消息 |
data | JSONARRAY | data | 响应结果 |
identifier | 字符串 | identifier | 标识符 |
name | 字符串 | name | 名称 |
value | 字符串 | value | 值 |
请求示例
{
"productKey": "产品pk",
"deviceName": "设备dn"
}
返回示例
{
"code": 200,
"message": "success",
"localizedMsg": "成功",
"data": [
{
"identifier": "ssid",
"name": "热点ssid",
"time": 1629875068355,
"value": "3-2-602"
},
{
"identifier": "device_id",
"name": "设备编号",
"time": 1629875068355,
"value": "7036094530003b9b15968"
},
{
"identifier": "rssi",
"name": "场强",
"time": 1629875068355,
"value": "71"
},
{
"identifier": "channel",
"name": "热点频道",
"time": 1629875068355,
"value": "11"
},
{
"identifier": "type",
"name": "数据类型",
"time": 1629875068355,
"value": "热点"
},
{
"identifier": "ap_mac",
"name": "终端连接热点MAC",
"time": 1629875063866,
"value": "4C-B1-CD-BB-BF-E8"
},
{
"identifier": "mac",
"name": "MAC地址",
"time": 1629875068355,
"value": "F4-2A-7D-C9-B0-A0"
},
{
"identifier": "GeoLocation",
"name": "地理位置",
"time": 1629875068355,
"value": "{\"altitude\":0.0,\"latitude\":30.288881,\"coordinateSystem\":1,\"longitude\":120.000926}"
},
{
"identifier": "gpstype",
"name": "经纬度类型",
"time": 1629875068355,
"value": "gps"
},
{
"identifier": "his",
"name": "终端历史连接SSID",
"time": 1629875064057,
"value": "CMCC-123456789"
},
{
"identifier": "gtime",
"name": "采集时间",
"time": 1629875068355,
"value": "1629874622000"
},
{
"identifier": "encrypt_type",
"name": "热点加密类型",
"time": 1629875068355,
"value": "psk"
}
]
}
相关扩展说明
设备源相关
设备源类型
Key | 描述 |
---|---|
lp | 阿里云 |
onenet | 移动物联网 |
ctwing | 电信物联网 |
huawei | 华为物联 |
cloud2 | 云云对接 |
linkbridge-jt809 | jt809协议 |
linkbridge-hj212 | hj212协议 |
产品相关
设备接入协议
Key | 描述 |
---|---|
ALINK | |
MQTT | |
LWM2M | |
HTTP | |
TCP | |
UDP | |
COAP | |
MODBUS | |
OPC_UA | |
OTHER |
设备入网类型
Key | 描述 |
---|---|
LORA | |
GPRS | |
NB_IOT | |
WIFI | |
ZIGBEE | |
BT | 蓝牙 |
CELLULAR | |
ETHERNET | HTTP |
OTHER |
物模型相关
数据类型
Key | 描述 |
---|---|
ENUM | 枚举型 |
BOOL | 布尔型 |
FLOAT | 浮点型 |
DOUBLE | 双精度浮点型 |
INT | 整数型 |
LONG | 长整型 |
TEXT | 字符型 |
DATE | 时间型 |
STRUCT | 对象型 |
ARRAY | 数组型 |
BITMAP | 位图型 |
OTHER | 其他 |
UNKNOWN | 未知 |
读写类型
Key | 描述 |
---|---|
READ_WRITE | 读写 |
WRITE_ONLY | 只写 |
READ_ONLY | 只读 |
事件类型
Key | 描述 |
---|---|
INFO | 信息 |
ALERT | 告警 |
ERROR | 故障 |
调用方式
Key | 描述 |
---|---|
ASYNC | 异步调用 |
SYNC | 同步调用 |
数据定义
数据定义为属性的扩展描述,按照类型不同分为不同格式,ps.实际内容需要转为字符串
基本类型(包括:FLOAT,DOUBLE,INT,TEXT,DATE,LONG)
{
"unit":"m³",
"min":"0",
"unitName":"立方米",
"max":"2147483647",
"step":"0.1"
}
枚举类型(包括:ENUM,BOOL)
[
{
"0":"通信正常",
"1":"通信失败",
"2":"设备异常",
"3":"低电量"
}
]
结构体类型(包括:STRUCT,ARRAY)
结构体中不可嵌套结构体
[
{
"identifier":"Altitude",
"dataType":"DOUBLE",
"name":"海拔",
"dataSpecs":"{\"unit\":\"m\",\"min\":\"0\",\"unitName\":\"米\",\"max\":\"10000\",\"step\":\"1\"}"
},
{
"identifier":"Latitude",
"dataType":"DOUBLE",
"name":"纬度"
},
{
"identifier":"CoordinateSystem",
"dataSpecs":"{\"1\":\"WGS_84\",\"2\":\"GCJ_02\"}",
"dataType":"ENUM",
"name":"坐标系统"
},
{
"identifier":"Longitude",
"dataType":"DOUBLE",
"name":"经度"
}
]
位图(包括:BITMAP)
{
"define": [
{
"0": "0",
"1": "1",
"bit": 0
},
{
"0": "2",
"1": "3",
"bit": 1
}
],
"length": 2
}
设备相关
设备状态
Key | 描述 |
---|---|
INIT | 初始化 |
ONLINE | 在线 |
OFFLINE | 离线 |
节点类型
Key | 描述 |
---|---|
DEVICE | 设备 |
GATEWAY� | 网关 |