余杭区5G物联网管理平台
设备接入与数据共享标准规范v1.1

**

目录
1 概括1
1.1 文档用途1
1.2 相关术语1
1.3 角色说明2
1.3.1 设备接入方3
1.3.2 数据共享方3
1.3.3 平台运营方4
2 南向设备接入5
2.1 前置说明5
2.1.1 设备接入要求5
2.1.2 设备接入技术咨询6
2.2 异构平台级联接入7
2.2.1 阿里云企业物联网平台(LP)接入8
2.2.2 移动物联网平台(OneNET Studio)接入15
2.2.3 电信物联网平台(CTWing)接入22
2.2.4 华为云物联网平台(IotDA)接入27
2.3 行业标准协议接入33
2.3.1 JT/T 809协议接入33
2.3.2 HJ 212协议接入35
2.3.3 SL 651协议接入37
2.4 云云对接接入38
2.4.1 接入流程38
2.4.2 注册设备源39
2.4.3 启用设备源40
2.4.4 设备接入40
2.5 设备接入实战41
2.5.1 单一产品接入场景41
2.5.2 大量产品接入场景43
3 北向数据服务45
3.1 应用注册45
3.1.1 创建应用46
3.1.2 设备授权46
3.1.3 API授权47
3.2 OPEN API调用47
3.3 数据推送47
3.3.1 HTTP方式推送48
3.3.2 MQ方式推送50
3.3.3 推送数据结构55
4 物联网平台接口说明64
4.1 API接口清单64
4.2 产品API详细描述65
4.2.1 queryCityProduct65
4.2.2 deleteCityProduct67
4.2.3 updateCityProduct68
4.2.4 createCityProduct70
4.2.5 queryCityProductList72
4.3 物模型API详细描述75
4.3.1 createCityThingModel75
4.3.2 deleteThingModel85
4.3.3 updateCityThingModel86
4.3.4 queryCityThingModel96
4.4 设备API详细描述101
4.4.1 setCityDeviceData101
4.4.2 queryCityDeviceList103
4.4.3 registerCityDevice106
4.4.4 deleteCityDevice107
4.4.5 queryCityDevice108
4.4.6 queryCityDeviceData110

**

1 概括

1.1 文档用途

本文档发布对象为5G物联网管理平台参与各方(特别是技术支撑团队),提供余杭区5G物联网管理平台设备接入与数据共享标准规范说明和技术指导。

1.2 相关术语

术语 术语说明
产品类型 产品类型是指行业内感知设备的通行分类,如“水位计”,是一系列产品集合。
产品 产品是指在某种产品类型下,由某一供应商生产的特定产品,通常指一组具有相同功能的设备集合,如产品类型:水位计。产品:XX型号水位计。生产厂商:XX公司。
设备 归属于某个产品下的具体部署的设备。如产品类型:水位计。产品:XX型号水位计。生产厂商:XX公司。设备:XX设备。
物模型 是对设备在云端的功能描述,包括设备的属性、服务和事件。5G物联网管理平台通过定义一种物的描述语言来描述物模型,称之为TSL(即 Thing Specification Language)。
属性 设备的功能模型之一,一般用于描述设备运行时的状态,如环境监测设备所读取的当前环境温度等。属性支持GET和SET请求方式。应用系统可发起对属性的读取和设置请求。
事件 设备的功能模型之一,设备运行时的事件。事件一般包含需要被外部感知和处理的通知信息,可包含多个输出参数。例如,某项任务完成的信息,或者设备发生故障或告警时的温度等,事件可以被订阅和推送。
服务 设备的功能模型之一,设备可被外部调用的能力或方法,可设置输入参数和输出参数。相比于属性,服务可通过一条指令实现更复杂的业务逻辑,如执行某项特定的任务。
主流异构平台 是指目前在行业中具有主流地位,行业通用的物联网平台,如阿里云企业物联网平台、移动onenet平台、电信ctwing平台、华为IoTDA平台。由于城市中大量设备已经接入行业主流平台,5G物联网管理平台主动适配此类异构平台,实现感知设备快速接入和物模型自动转换。
行业标准协议 在城市领域,由于行业相关政府部门为了业务应用需求,规范并制定了行业通行的数据标准和传输协议,如环保部颁发的HJ212协议,水利部颁发的SZY206、SL651协议,交通部颁发的JT808/809协议等。平台内置适配器对行业主流协议进行支持,实现行业主流协议快速接入和物模型自动转换。
私有协议 由于行业厂商或者地方部门,为了满足自身业务需求,定义的数据标准和通信协议,不具有普适性,不是行业企业准守的通行标准规范。
设备源 设备源是指接入余杭区5G物联网平台的设备来源,目前平台支持设备来源包括主流异构平台(阿里云企业物联网平台、移动onenet平台、电信ctwing平台、华为IoTDA平台)、行业标准协议(JT/T809、HJ212、SL651)、云云对接。
云云对接 通过平台提供云云对接适配器提供API接口,基于HTTP调用实现设备接入。
应用 应用系统一般指面向业务需求开发的软件系统,在平台中,特指需要从5G物联网管理平台获得感知数据外部系统,需要在平台上进行注册,并颁发认证
数据推送 5G物联网平台面向应用提供数据服务方式之一,通过HTTP或者MQ的方式将设备属性、事件的数据主动推送给应用,具有实时性高的特点,但是只能推送实时数据,无法推送历史数据。
API调用 5G物联网平台提供OPEN API和WEB API,实现设备源或者应用对5G物联网平台数据的操作。
设备源可调用API创建产品、设备、定义物模型并上报数据。
应用可调用API获得5G物联网平台汇聚的相关数据和事件,WEB API支持查询历史数据,由于API的查询机制,不适合用于对实时性要求较高场景。

1.3 角色说明

余杭区5G物联网平台参与方主要有设备接入方、数据共享方和平台运营方三类。

1.3.1 设备接入方

定位:面向余杭区5G物联网管理平台的感知设备提供方,负责设备开发、部署、运维等工作。包括物联网设备资产拥有的委办局、事业单位、下属企业以及感知应用开发商、感知设备供应商。
具体工作:
1、负责感知设备及应用开发部署,确认设备接入方案,并提供设备源信息给到平台运营方;
2、按照要求将设备数据接入到余杭区5G物联网管理平台(开发、调试);
3、负责设备的运维,并提供设备告警信息配置规则给到平台运营方,同时处理平台侧推送的设备告警事件,保障设备的正常运行;

1.3.2 数据共享方

定位:需要共享余杭区5G物联网管理平台感知数据的数据需求方,负责数据对接、应用开发、部署、运维等工作。包括有感知数据需求的委办局、事业单位、下属企业以及感知应用开发商。
具体工作:
1、提供数据共享应用基础信息,提供给平台运营方进行应用创建,提供感知数据需求,由平台运营进行授权配置。若采用数据推送,则需要提供数据推送地址。
2、通过平台API接口和数据推送工具,获得感知实时数据、设备状态以及实时事件,完成上层业务应用开发。

1.3.3 平台运营方

定位:负责5G物联网管理平台的运营工作,协调设备供应商将、软件供应商来完成软硬件设备接入、数据共享服务。
具体工作:
1、针对南向设备接入
负责设备源的配置(设备源信息由设备接入方提供)。
负责设备告警规则配置(由设备接入方提供告警规则)。
负责根据实际业务诉求进行设备信息编辑,如设备权属机构等。
负责设备接入方在设备接入过程的技术指导与技术支持。
2、针对应用数据共享
帮助数据共享方创建应用,分配Appkey,AppSecret。
给应用进行授权(授权可以访问的设备、API等)。
帮助数据共享方配置数据推送目的地(由数据共享方提供推送目的地)。
3、其他运营工作
负责配置平台账号、角色、权限、组织机构、行政区域等基础数据。
负责配置事件触发规则、处置规则等。

2 南向设备接入

2.1 前置说明

为了满足余杭区各级各类感知设备接入需求,余杭区5G物联网管理平台提供异构平台级联接入、行业标准协议接入以及云云对接接入三种设备接入方式,实现感知设备快速接入汇聚。
设备接入方根据实际情况选择合适接入方式,并通知平台运营方建立设备源,设备接入方需提供设备源相关基础信息以及配置信息。平台运营方根据设备接入方提供信息创建并启用设备源。同时将设备源相关认证信息提供给设备接入方,设备接入方根据平台提供的工具方法,并按照平台接入设备要求将相关设备统一接入汇聚至余杭区5G物联网管理平台。

2.1.1 设备接入要求

设备接入方在接入设备时需重点关注以下要求:
1、设备源配置要求
设备源名称定义一般建议为设备接入的项目名称或系统名称。如“智慧安监局一期项目”或者“污染源在线监测系统”。
同时明确设备源归属权属机构,权属机构由平台运营方负责创建。
供应商名称需填写该设备源供应商(若项目则为集成商,若系统则为应用系统开发商)营业执照上公司名称全称。
2、产品定义要求
产品定义中产品ID、产品名称、产品类型、连网类型、协议类型和供应商名称是必填字段。其中产品ID、产品名称规则,由设备源定义命名规则,产品名称采用产品标准全称,非特殊不要缩写简写。
产品供应商需填写该产品生产厂商,也可与设备源供应商为同一家。
3、设备定义要求
设备创建时,产品ID、设备ID、权属机构、设备部署地址、设备部署经纬度是必填字段。其中设备的权属机构与产品的权属机构相同。
设备部署地址描述,针对室内设备,采用道路+号/门牌+ 小区/栋+楼号+楼层+ 室号+房间+位置等具体参数描述;针对室外设备,应以道路、河道、门牌为参照,使用方 位、距离等方式描述。
设备部署经纬度描述,目前平台支持WGS84、GCJ02、CGCS2000、BD09四种坐标系,设备经纬度上报需明确基于哪种坐标系。
对于移动设备(比如车载GPS),可以在设备的物模型中定义相应的代表经纬度的属性(GeoLocation),由设备自动上报经纬度即可。

2.1.2 设备接入技术咨询

针对设备接入中遇到的技术问题,通过阅读本文档仍未解决解决,可加入以下钉钉群获得帮助。

2.2 异构平台级联接入

由于城市部分物联网设备通过运营商平台进行接入,特别NB类设备大多数情况下需要先接入运营商平台,因此余杭区5G物联网管理平台为了解决此问题,对业界主流异构平台进行适配,通过本平台内置的级连适配器,实现异构平台和余杭区5G物联网管理平台之间的上下行数据的自动转换功能,无需开发即可实现物联网平台设备的快速汇聚,对上层应用屏蔽异构物联网平台协议的差异性。
目前支持阿里云企业物联网平台、移动OneNet Studio平台、电信CTWing AEP平台、华为IoTDA平台四种行业主流异构物联网平台。
接入模式如下图所示:

2.2.1 阿里云企业物联网平台(LP)接入

2.2.1.1 接入流程

阿里云企业物联网平台接入余杭区5G物联网管理平台流程如下图所示:

2.2.1.2 注册设备源

注册设备源由平台运营方完成,设备接入方需提供创建设备源需要的基础信息和平台信息

1、基础信息
设备源名称:新增设备源的名称
权属机构:新增设备源关联的机构(机构创建在系统设置-组织机构)
供应商:新增设备源的供应商名称
2、平台信息
由于阿里云企业物联网平台分企业实例和公共实例两种类型,不同实例类型需要的平台信息不同。
公共实例需要的平台信息如下图所示:
企业实例需要的平台信息如下图所示:
如何判断设备接入方使用哪种实例类型,以下方法可供参考:
下图为公共实例截图。
下图为企业实例截图。
AccessKey ID+AccessKey Secret
设备接入方需提供AccessKey ID+AccessKey Secret,获取方式如下:
区域
设备接入方需获取平台所属区域,获取如下:
阿里云账号ID(选择公共实例时需要填写)
AMQP消费组ID
按照实际情况填写AMQP消费组ID,一般选择默认消费组-填入DEFAULT_GROUP
AMQP接入域名
参考文档:
https://help.aliyun.com/document_detail/147356.htm?spm=a2c4g.11186623.0.0.107e1d2eVt8Ffi#section-7lj-bvu-re8

1.1.1.1 启用设备源

配置完成后,由设备接入方通知平台运营方启用设备源。(如果提示失败,检查填入参数)。

2.2.2 移动物联网平台(OneNET Studio)接入

2.2.2.1 接入流程

移动物联网平台(onenet)接入余杭区5G物联网管理平台流程如下图所示:

2.2.2.2 注册设备源

注册设备源由平台运营方完成,设备接入方需提供创建设备源需要的基础信息和平台信息
1、基础信息
设备源名称:新增设备源的名称
权属机构:新增设备源关联的机构(机构创建在系统设置-组织机构)
供应商:新增设备源的供应商名称
2、平台信息
(1)用户ID配置
(2)AccessKey配置
(3)项目ID配置
(4)AesKey配置
OneNET的api调用加密key,填入随机字符串,也可以后续步骤移动端生成后改写。

2.2.2.3 OneNet新增HTTP推送实例

本步骤由设备接入方完成,在设备接入方的OneNet实例中配置Http推送。
实例名称
推送实例名称
推送地址
由余杭区5G物联网管理平台生成,平台运营方保存完设备源后,见平台地址。设备接入方向平台运营方进行获取。
Token
由余杭5G物联网管理平台生成,保存完设备源后,见平台Token。设备接入方向平台运营方进行获取。
AesKey
与创建设备源时填入的AesKey联动,可以直接使用余杭5G物联网管理平台创建设备源中填写的AesKey(平台运营方提供),后更新此处。
也可以这边随机生成后修改AesKey,然后通知平台运营方修改设备源的AesKey。
编辑AesKey方法如下图:

2.2.2.4 启用设备源

配置完成后,由设备接入方通知平台运营方启用设备源。(如果提示失败,检查填入参数)。

2.2.2.5 OneNet验证HTTP推送实例

设备源启动后,设备接入方对Http数据推送进行验证,验证通过则表示接入完成。如果验证失败,需检测填入参数。

2.2.3 电信物联网平台(CTWing)接入

2.2.3.1 接入流程

电信物联网平台(CTWing)接入余杭区5G物联网管理平台流程如下图所示:

2.2.3.2 注册设备源

注册设备源由平台运营方完成,设备接入方需提供创建设备源需要的基础信息和平台信息。
1、基础信息
设备源名称:新增设备源的名称
权属机构:新增设备源关联的机构(机构创建在系统设置-组织机构)
供应商:新增设备源的供应商名称
2、平台信息
平台信息配置需要获取电信CTWing颁发的App Key和App Secret。获取流程如下:
(1)创建应用
(2)获取AppKey、AppSecret
(3)授权api

2.2.3.3 CTWing新增数据推送

设备接入方需在CTW ing中配置新增数据推送,将数据推送至余杭区5G物联网管理平台。具体操作流程如下:
1、新增消息目的地
URL
由余杭区5G物联网管理平台生成,平台运营方保存完设备源后,见平台地址。设备接入方向平台运营方进行获取。
消息加密
启用
Token
由余杭5G物联网管理平台生成,保存完设备源后,见平台Token。设备接入方向平台运营方进行获取。
2、新增消息路由
设备接入方需在CTW ing中配置新增消息路由。具体操作流程如下:
在目的地配置中选择配置的目的地地址URL,同设备源中的“平台地址”。

1.1.1.2 启用设备源

配置完成后,由设备接入方通知平台运营方启用设备源。(如果提示失败,检查填入参数)。

2.2.4 华为云物联网平台(IotDA)接入

2.2.4.1 接入流程

华为云物联网平台(IotDA)接入余杭区5G物联网管理平台流程如下图所示:

2.2.4.2 注册设备源

注册设备源由平台运营方完成,设备接入方需提供创建设备源需要的基础信息和平台信息。
1、基础信息
设备源名称:新增设备源的名称
权属机构:新增设备源关联的机构(机构创建在系统设置-组织机构)
供应商:新增设备源的供应商名称
2、平台信息
区域
固定华北-北京四
项目ID
APPID(非必填)
AK+SK
新增秘钥

2.2.4.3 IoTDA添加数据转发规则

设备接入方需在IoTDA中添加数据转发规则,具体方式如下:
需要添加多个规则,核心包括设备属性上报、设备状态变更
第三方推送URL
第三方推送URL由余杭区5G物联网管理平台生成,平台运营方保存完设备源后,见平台地址。设备接入方向平台运营方进行获取。

1.1.1.3 启用设备源

配置完成后,由设备接入方通知平台运营方启用设备源。(如果提示失败,检查填入参数)。

2.3 行业标准协议接入

针对城市物联网场景中,特别是环保、水利、交通等行业标准相对完善领域,平台提供行业主流标准协议适配接入能力。目前平台支持JT/T809、HJ212、SL651三类行业主流标准协议接入。接入方式如下:

2.3.1 JT/T 809协议接入

余杭区5G物联网管理平台支持通过交通部JT/T 809协议,接入各类车辆GPS定位数据。
接入步骤如下:

2.3.1.1 注册设备源

注册设备源由平台运营方完成,设备接入方需提供创建设备源需要的基础信息
基础信息包括:
设备源名称:新增设备源的名称
权属机构:新增设备源关联的机构(机构创建在系统设置-组织机构)
供应商:新增设备源的供应商名称

2.3.1.2 启用设备源

配置完成后,由平台运营方启用设备源(如果提示失败,检查填入参数),并将平台给定的ip端口、用户密码、接入码,提供给设备接入方。

2.3.1.3 设备接入

设备接入方根据平台给定的ip端口、用户密码、接入码,基于JT/T809协议将设备数据上报至余杭区5G物联网管理平台。

2.3.2 HJ 212协议接入

2.3.2.1 注册设备源

注册设备源由平台运营方完成,设备接入方需提供创建设备源需要的基础信息

基础信息包括:
设备源名称:新增设备源的名称
权属机构:新增设备源关联的机构(机构创建在系统设置-组织机构)
供应商:新增设备源的供应商名称

2.3.2.2 启用设备源

配置完成后,由平台运营方启用设备源(如果提示失败,检查填入参数),并将平台给定的ip端口、密码接入,提供给设备接入方。

2.3.2.3 设备接入

设备接入方根据平台给定的ip端口、密码,基于HJ212协议将设备数据上报至余杭区5G物联网管理平台。

2.3.3 SL 651协议接入

2.3.3.1 注册设备源

注册设备源由平台运营方完成,设备接入方需提供创建设备源需要的基础信息

基础信息包括:
设备源名称:新增设备源的名称
权属机构:新增设备源关联的机构(机构创建在系统设置-组织机构)
供应商:新增设备源的供应商名称

2.3.3.2 启用设备源

配置完成后,由平台运营方启用设备源(如果提示失败,检查填入参数),并将平台给定的ip端口、密码接入,提供给设备接入方。

2.3.3.3 设备接入

设备接入方根据平台给定的ip端口、密码,基于SL651协议将设备数据上报至余杭区5G物联网管理平台。

2.4 云云对接接入

由于各委办局前期已经建立了大量感知设备,部分感知设备采用厂商私有或者部门定义的私有协议,针对此类存量设备,或者通过私有协议接入的感知设备,平台提供设备对接的api,通过云云对接的方式实现设备快速接入汇聚。
云云对接基于余杭区5G物联网管理平台的 OpenApi 和 SDK 通过 HTTP(S) 的方式将设备数据上报到平台。云云对接方式如下:

2.4.1 接入流程

云云对接接入余杭区5G物联网管理平台流程如下图所示:

2.4.2 注册设备源

注册设备源由平台运营方完成,设备接入方需提供创建设备源需要的基础信息和平台信息
设备接入方需提供一下基础信息:
设备源名称:新增设备源的名称
权属机构:新增设备源关联的机构(机构创建在系统设置-组织机构)
供应商:新增设备源的供应商名称

2.4.3 启用设备源

注册完成后,有平台运营方启用运营对接设备源,并向设备接入方提供Appkey和AppSecret。

2.4.4 设备接入

设备接入方获得Appkey和AppSecret后,调用余杭区5G物联网平台的api接口,实现设备快速接入。API说明详见本文档“物联网平台接口说明”章节。

2.5 设备接入实战

为了更好说明设备接入过程,让设备接入方更加理解平台设备接入机制。以下以云云对接为实例,提供设备接入实战示范。

2.5.1 单一产品接入场景

2.5.1.1 场景描述

针对需要接入产品种类比较少的场景,为了减少操作复杂性,推荐在平台上预先创建产品。

2.5.1.2 主要步骤

1、平台运营方创建设备源,面向设备接入方提供AppKey/AppSecret。作为设备接入方调用API的凭据。
2、平台运营方创建产品并导入物模型(物模型需设备接入方定义)。
以下为物模型定义模板示例,实际场景定义依据设备实际业务需求。
3、创建设备
设备接入方调用接口 registerCityDevice 创建设备。
接口需要的organizationId 询问平台运营方。
4、通过 API 上报设备数据
调用接口 setCityDeviceData 上报数据。
API说明详见本文档“物联网平台接口说明”章节。

2.5.2 大量产品接入场景

2.5.2.1 场景描述

针对接入产品种类比较多或者经常需要变动的场景,页面操作变的繁琐,推荐使用API实现产品、物模型、设备的创建。

2.5.2.2 主要步骤

1、平台运营方创建设备源,面向设备接入方提供AppKey/AppSecret。作为设备接入方调用API的凭据
2.创建产品
设备接入方调用接口 createCityProduct 创建产品。
设备接入方调用接口需要的 sourcePlatformId(设备源id) ,sourcePlatformType(设备源类型)询问平台运营方。
3.定义物模型
设备接入方调用接口 createCityThingModel 创建产品。
4.创建设备
设备接入方调用接口 registerCityDevice 创建设备。
设备接入方接口需要的organizationId 询问平台运营方。
5.通过 API 上报设备数据
设备接入方调用接口 setCityDeviceData 上报数据。
API说明详见本文档“物联网平台接口说明”章节。

2.5.2.3 注意事项

不建议使用一个大字段上报所有属性,这将无法使用其他扩展服务,比如事件、告警。

3 北向数据服务

本文主要介绍基于余杭区5G物联网管理平台汇聚的感知数据,如何面向数据共享方应用提供感知数据服务。目前主要提供OpenAPI的调用和数据推送两种方式。

3.1 应用注册

为了保障数据安全性,获得余杭区5G物联网平台数据的应用系统,需在平台先行进行应用注册。由数据共享方提供对接应用系统的基本信息,由平台运营方对应用进行注册,由平台颁发AppKey和AppSecret。
同时平台运营方根据数据共享方需求,配置设备授权和API授权,明确数据共享方应用看系统可操作的设备范围和API调用范围,在“最小可控”前提下保证数据安全共享。

3.1.1 创建应用

由平台运营方负责创建应用,数据共享方需提供应用基础信息,具体如下图所示:
应用创建完成后,平台为应用颁发AppKey和AppSecrte,由平台运营方提供给数据共享方。

3.1.2 设备授权

设备授权有三个不同的维度,根据实际需要选择对应的维度进行设备授权。

3.1.3 API授权

设置API调用范围,并且可以查看API详情获得调用域名。

3.2 OPEN API调用

创建应用及应用授权成功后,调用相关API(如:查询设备信息)可以参考,实现接口调用。
API说明详见本文档“物联网平台接口说明”章节。

3.3 数据推送

余杭区5G物联网管理平台借助数据推送功能,当应用配置了数据推送(HTTP/MQ)后,有设备属性、事件上报到平台时,平台会将上报的数据根据配置的数据推送发送至数据共享方应用系统(应用只需订阅相关Topic后,即可接收到上报的数据)。
推送流程如下图所示:

3.3.1 HTTP方式推送

若需要推送数据的设备量不大,可以采用HTTP方式推送,但是数据推送的稳定性依赖数据共享方应用系统。(HTTP方式推送,若半小时推送失败率超过50%,此方式会被中断半小时,半小时后恢复再恢复推送)。

3.3.1.1 创建数据推送配置

3.3.1.2 新增数据推送配置

平台运营方根据数据共享方需求,配置推送的数据类型以及HTTP地址,地址由数据共享方提供。

3.3.2 MQ方式推送

MQ(消息中间件)方式进行消息数据推送,适合大量设备的数据推送,稳定性比较高,同时数据推送的稳定性不依赖数据共享方应用系统性能。
目前MQ方式只支持阿里云RocketMQ。

3.3.2.1 创建AccessKey

1.登录阿里云,选中右上角头像,进入AccessKey管理。
2. 选择使用子用户AccessKey。
3. 先创建用户后添加权限。
4. 搜索mq相关权限,添加发布和订阅权限。

3.3.2.2 创建MQ实例

  1. 进入MQ,选择实例列表,创建实例。
    2. 获取MQ Endpoint
    进入创建的MQ实例,选择实例详情。
    3. 创建TOPIC
    进入MQ实例,选择topic管理,创建topic。
    4. 创建GID
    进入MQ实例,选择Group管理,创建GID。
参数名称 说明 示例
AccessKey ID 发送消息用的阿里云ak xxxxxx
AccessKey Secret 发送消息用的阿里云sk xxxxxx
接入域名 消息队列接入点信息 http://mq-internet-access.mq-internet.aliyuncs.com:80
Topic 发送、接受用的队列名称 TEST_TOPIC
Producer ID 生产者id(新版阿里云消息队列MQ中为groupID,旧版为PID) TEST_PID

获取到这些信息后,将其配置到对应的应用中

3.3.2.3 配置MQ推送

3.3.3 推送数据结构

平台推送的数据结构如下:

3.3.3.1 设备属性上报

{
“tenantId”: “”,
“organizationId”: “”,
“platformKey”: “”,
“instanceId”: “”,
“foreignProductKey”: “”,
“deviceName”: “”,
“productKey”: “”,
“categoryKey”: “”,
“outerId”: “”,
“time”: “”,
“topicType”: “CITY_HUP_PROPERTY_POST”,
“onlineStatus”: “”,
“properties”: [
{
“identifier”: “”,
“name”: “”,
“time”: “”,
“value”: “” ,
“dataType”: “”
}
]
}

3.3.3.2 设备事件

{
“tenantId”: “”,
“organizationId”: “”,
“platformKey”: “”,
“instanceId”: “”,
“foreignProductKey”: “”,
“deviceName”: “”,
“productKey”: “”,
“categoryKey”: “”,
“outerId”: “”,
“time”: “”,
“topicType”: “CITY_HUP_EVENT_POST”,
“onlineStatus”: “”,
“events”: [
{
“time”: “”,
“identifier”: “”,
“name”: “”,
“type”: “”
}
]
}

3.3.3.3 设备状态变化

{
“anomalyId”: “”,
“status”: “”,
“startTime”: “”,
“endTime”: “”,
“anomalyName”: “”,
“content”: “”,
“tenantId”: “”,
“organizationId”: “”,
“productKey”: “”,
“deviceName”: “”,
“result”: false,
“ruleId”: “”,
“topicType”: “CITY_HUP_DEVICE_STATUS”,
“timestamp”: ,
“location”: {
“altitude”: ,
“latitude”: ,
“longitude”: ,
“address”: : “”
},
“devicePropertyAnomalies”: [
{
“tenantId”: “”,
“productKey”: “”,
“deviceName”: “”,
“timestamp”: ,
“identifier”: “”,
“ruleOrder”: ,
“result”: ,
“amount”: ,
“rate”: ,
“windowSize”: ,
“timeUnit”: “”
}
]
}

3.3.3.4 感知事件变化

{
“anomalyId”: “”,
“status”: “”,
“startTime”: “”,
“endTime”: “”,
“anomalyName”: “”,
“content”: “”,
“tenantId”: “”,
“organizationId”: “”,
“productKey”: “”,
“deviceName”: “”,
“result”: false,
“ruleId”: “”,
“topicType”: “CITY_HUP_EVENT_PERCEPTION_POST”,
“timestamp”: ,
“location”: {
“altitude”: ,
“latitude”: ,
“longitude”: ,
“address”: “”
},
“devicePropertyAnomalies”: [
{
“tenantId”: “”,
“productKey”: “”,
“deviceName”: “”,
“timestamp”: ,
“identifier”: “”,
“ruleOrder”: ,
“result”: ,
“amount”: ,
“rate”: ,
“windowSize”: ,
“timeUnit”: “” ,
“value” : ,
“startTimestamp”: ,
“endTimestamp”: ,
“messageSize”: ,
“anomalyMessageSize”: ,
“devicePropertyMessages”: [
{
“dataType”: “”,
“identifier”: “”,
“timestamp”: ,
“value”: ,
}
]
}
]
}

3.3.3.5 主要字段说明

字段名 子字段名 类型 字段说明
tenantId / String 租户ID
organizationId / String 组织ID
platformKey / String 来源平台ID
instanceId / String 来源平台实例ID
productKey / String 产品ID
foreignProductKey / String 外部产品ID
deviceName / String 设备名称
categoryKey / String 产品品类
outerId / String 外部ID, 如 iotId
topicType / String 消息类型
anomalyId / String 事件唯一标识
status / String 事件状态
startTime / Date 事件触发时间
endTime / Date 事件恢复时间
anomalyName / String 事件名称
content / String 事件内容
result / Boolen 感知事件变化、设备状态变化特有,true-告警 false-恢复
properties identifier String 属性标识符
name String 属性名
value String 属性值
dataType enum 数据类型
events identifier String 事件标识符
name String 事件名称
type String 事件类型
devicePropertyAnomalies timestamp long 时间戳
identifier String 属性值
ruleOrder String 规则序号
result boolen 感知事件变化、设备状态变化特有,true-告警 false-恢复
amount int 连续次数
rate int 占比 0到100 整数
windowSize int 窗口长度,分钟/小时
timeUnit String 窗口单位,minute/hour
value Object 告警设置值
startTimestamp long 告警开始时间
endTimestamp long 告警结束时间
messageSize long 消息数量
anomalyMessageSize long 告警消息数量
devicePropertyMessage dataType String 数据类型
identifier String 属性值
timestamp long 告警时间
value Object 告警实际值
location altitude double 海拔
latitude double 维度
longitude double 经度
address String 地址

4 物联网平台接口说明

4.1 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 调用该接口返回设备当前所有实时数据的值

4.2 产品 API 详细描述

4.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
}
}

4.2.2 deleteCityProduct

入参列表

入参名称 数据类型 是否必须 缺省默认值 入参描述
productKey 字符串
产品ID

出参列表

参数名称 数据类型 后端参数名称 参数描述
code 整型 code 响应码, 200: 成功
message 字符串 message 错误消息
localizedMsg 字符串 localizedMsg 本地语言错误消息

请求示例
{
“productKey”:”产品pk”
}
返回示例
{
“code”: 200,
“message”: null,
“localizedMsg”: null,
“data”: null
}

4.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
}

4.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”

}

4.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
}
]
}
}

4.3 物模型 API 详细描述

4.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
}

4.3.2 deleteThingModel

入参列表

入参名称 数据类型 是否必须 缺省默认值 入参描述
productKey 字符串
产品ID

出参列表

参数名称 数据类型 后端参数名称 参数描述
code 整型 code 响应码, 200: 成功
message 字符串 message 错误消息
localizedMsg 字符串 localizedMsg 本地语言错误消息

请求示例
{
“productKey”:”产品pk”
}
返回示例
{
“code”:200,
“message”:”success”,
“localizedMsg”:”成功”,
“data”:null
}

4.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
}

4.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”: []
}
}

4.4 设备 API 详细描述

4.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
}

4.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”
}
]
}
}

4.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
}

4.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
}

4.4.5 deleteCityDevice

入参列表

入参名称 数据类型 是否必须 缺省默认值 入参描述
productKey 字符串
产品ID
deviceName 字符串
设备名称

出参列表

参数名称 数据类型 后端参数名称 参数描述
code 整型 code 响应码, 200: 成功
message 字符串 message 错误消息
localizedMsg 字符串 localizedMsg 本地语言错误消息

请求示例
{
“productKey”: “产品pk”,
“deviceName”: “设备dn”
}
返回示例
{
“code”: 200,
“message”: “success”,
“localizedMsg”: “成功”,
“data”: null
}

4.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”
}
}

4.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”
}
]
}