# 操作手册
# 场景概述
本章节将以接入一个停车场车位管理设备为例,为您演示如何使用CIM-IOT接入平台接入物联网设备,并能进行数据的实时查看。
# 操作流程图
# 操作步骤
# 1.新建协议:
协议是设备与平台通信的一种标准,某个设备想与平台进行通信就必须按照某种协议标准进行规定上报的数据格式。协议管理将提供两类协议类型:jar包形式,脚本形式。定义了这两类中的其中一种,即完成了协议管理的定义。
开发设备接入协议,目前支持使用java语言开发。(推荐:如无特殊要求,可使用系统提供的标准协议,满足基础的物联网接入功能,不需要额外开发,直接进行下一步操作)
在左侧导航栏,选择【设备接入 --协议管理】,如下图:
点击【新建】,弹出新增协议的页面,如下图:
属性参数设置说明如下表。
参数 | 描述 |
---|---|
名称 | 协议的名称,支持中文、大小写字母、数字、短划线和下划线,且必须以中文、英文或数字开头,不超过32个字符。 |
类型 | jar:自定义协议打包成jar包,上传至平台中。 |
类名 | 上传的jar包所对应的java类的类名。 |
文件地址 | 上传的jar包在平台的文件路径。 |
描述 | 输入文字,对该功能进行说明或备注。长度限制为100字。 |
# 2.新建设备产品:
设备产品是一个JSON格式的文件。它是物理空间中的实体,如传感器、车载装置、楼宇、工厂等在云端的数字化表示,从属性、功能和事件三个维度,分别描述了该实体是什么,能做什么,可以对外提供哪些信息。定义了这三个维度,即完成了设备型号功能的定义。
设备型号将产品功能类型分为三类:属性、功能、和事件。定义了这三类功能,即完成了设备型号的定义。
功能类型 | 说明 |
---|---|
属性(Properties) | 一般用于描述设备运行时的状态,如环境监测设备所读取的当前环境温度等。属性支持GET和SET请求方式。应用系统可发起对属性的读取和设置请求。 |
功能(Functions) | 设备可被外部调用的能力或方法,可设置输入参数和输出参数。相比于属性,功能可通过一条指令实现更复杂的业务逻辑,如执行某项特定的任务。 |
事件(Event) | 设备运行时的事件。事件一般包含需要被外部感知和处理的通知信息,可包含多个输出参数。如,某项任务完成的信息,或者设备发生故障或告警时的温度等,事件可以被订阅和推送。 |
在左侧导航栏,选择【设备管理 --设备产品】,如下图:
点击【新建】,弹出如下面板:(【基础协议v1】为平台提供的标准协议,用户下拉选择消息协议时直接选择【基础协议v1】即可)
为设备产品创建【物模型】,点击【查看】按钮,如下图:
弹出设备产品详情信息,切换到【物模型】页面,进行模型属性字段的添加。
模型创建完成后,点击【发布】按钮,发布设备模型。
# 3.新增设备实例:
在左侧导航栏,选择【设备管理 --设备实例】,如下图:
点击【添加设备】,如下图:
为 设备实例添加认证配置,如下图;
# 4.设备实例数据上报:
如果用户没有实际设备,接下来的流程帮助用户进行数据模拟。
# 4.1.设备模拟软件安装:
安装提供的客户端软件:mqttfx-1.7.1-windows-x64.exe
安装成功后,打开软件,显示如下图:
# 4.2.停车位设备实例接入模拟:
打开设备模拟器,点击【设置】,如下图:
弹出如下面板,在此面板进行设备实例的信息录入,
【broker address、broker port】为设备的ip地址和对应端口号,模拟时ip地址为【124.70.68.64】,端口号为【1883】。
【client ID】为设备实例id,必须和步骤三创建的设备实例一一对应。
【user name、password】为设备实例的认证信息,必须和步骤三创建的设备实例一一对应。
信息录入完成后,点击【OK】,保存设备实例信息,返回到上级页面,点击【connect】,进行设备的上线。
连接成功后,如下图:
同时,返回物联网设备接入平台,刷新该设备,设备状态会由【离线】变为【在线】,如下图:
# 4.3.停车位设备数据上报模拟:
录入设备信息,进行数据的模拟发送,如下图:
实例数据参考下文:
Topic : /report-property
{ "properties": { "total":3, "empty":1, "list":[{"id":"space-001","status":true},{"id":"space-002","status":false},{"id":"space-003","status":true}] }, "code": "", "messageId": "", "deviceId": "", "headers": {}, "timestamp": 0 }
复制成功
2
3
4
5
6
7
8
9
10
11
12
13
点击【publish】,数据发送成功,如下图:
返回物联网设备接入平台,切换到【设备实例】-【查看】-【运行状态】页面,如下图,可以看到发布的设备数据。
# 5.获取设备数据:
# 5.1:获取服务Token
curl --location --request POST 'https://apigate.glodon.com/cimiot/api/authorize/accessToken' \ --header 'Authorization: bearer <应用token,应用界面获取>' \ --header 'Content-Type: application/json' \ --data-raw '{"username":"AECORE用户名", "password":"AECORE密码" }' 例: curl --location --request POST 'https://apigate.glodon.com/cimiot/api/authorize/accessToken' \ --header 'Authorization: bearer cn-4e6edfd9-d9d0-4997-86bc-98ae5c0618ab' \ --header 'Content-Type: application/json' \ --data-raw '{"username":"xiaoguang@glodon.com", "password":"glodon" }'
复制成功
2
3
4
5
6
7
8
9
10
11
12
13
# 5.2:获取当前应用的设备实例列表
curl --location --request GET 'https://apigate.glodon.com/cimiot/api/device-instance/_query?pageSize=10&pageIndex=0' \ --header 'Authorization: bearer <应用token,应用界面获取>' \ --header 'x-access-token: <服务token,通过服务Token接口获取>' \ --header 'x-access-appcode: <应用标识>' 例: curl --location --request GET 'https://apigate.glodon.com/cimiot/api/device-instance/_query?pageSize=10&pageIndex=0' \ --header 'Authorization: bearer cn-b86ad11b-b15b-4c53-8792-8f277f0fd1c9' \ --header 'x-access-token: cn-4a724f30-a1f4-4f8b-a833-a395fb9cb4b5' \ --header 'x-access-appcode: TESTW2020'
复制成功
2
3
4
5
6
7
8
9
应用标识获取方式如下:
# 5.3:获取单个设备实例详细信息
curl --location --request GET 'https://apigate.glodon.com/cimiot/api/device/instance/{deviceId}/detail' \ --header 'Authorization: bearer <应用token,应用界面获取>' \ --header 'x-access-token: <服务token,通过服务Token接口获取>' \ 例: curl --location --request GET 'https://apigate.glodon.com/cimiot/api/device/instance/parking-http-0825-01/detail' \ --header 'Authorization: bearer cn-4e6edfd9-d9d0-4997-86bc-98ae5c0618ab' \ --header 'x-access-token: cn-ca60a011-0897-48c4-8c7d-27f2893f17c4'
复制成功
2
3
4
5
6
7
# 5.4:获取单个设备实例的历史数据
curl --location --request GET 'https://apigate.glodon.com/cimiot/api/device-instance/{deviceId}/properties/_query?pageIndex=0&pageSize=10&sorts[0].name=timestamp&sorts[0].order=desc&terms[0].column=property' \ --header 'Authorization: bearer <应用token,应用界面获取>' \ --header 'x-access-token: <服务token,通过服务Token接口获取>' \ 例: curl --location --request GET 'https://apigate.glodon.com/cimiot/api/device-instance/parking-http-0825-01/properties/_query?pageIndex=0&pageSize=10&sorts[0].name=timestamp&sorts[0].order=desc&terms[0].column=property' \ --header 'Authorization: bearer cn-4e6edfd9-d9d0-4997-86bc-98ae5c0618ab' \ --header 'x-access-token: cn-ca60a011-0897-48c4-8c7d-27f2893f17c4'
复制成功
2
3
4
5
6
7
# 5.5:获取单个设备实例的最新数据
curl --location --request GET 'https://apigate.glodon.com/cimiot/api/device-instance/{deviceId}/properties/latest' \ --header 'Authorization: bearer <应用token,应用界面获取>' \ --header 'x-access-token: <服务token,通过服务Token接口获取>' \ }' 例: curl --location --request GET 'https://apigate.glodon.com/cimiot/api/device-instance/parking-http-0825-01/properties/latest' \ --header 'Authorization: bearer cn-4e6edfd9-d9d0-4997-86bc-98ae5c0618ab' \ --header 'x-access-token: cn-ca60a011-0897-48c4-8c7d-27f2893f17c4'
复制成功
2
3
4
5
6
7
8
# 5.6:获取单个设备的实时数据
url: wss://aecore.glodon.com/cimiot/api/messaging/{通过5.1获取的服务token},
例: wss://aecore.glodon.com/cimiot/api/messaging/361a19fc11e03b06778e3f0c9268b059
- 订阅 设备属性实时信息
{"id":"instance-info-property-{deviceId}-{productId}","topic":"/dashboard/device/{productId}/properties/realTime","parameter":{"deviceId":"{deviceId}","history":1},"type":"sub"} 例: {"id":"instance-info-property-parking-space-li-0807-01-parking-space-simulation","topic":"/dashboard/device/parking-space-simulation/properties/realTime","parameter":{"deviceId":"parking-space-li-0807-01","history":1},"type":"sub"}
复制成功
2
3
参数描述:
【productId】:设备产品id;
【deviceId】:设备实例id。
- 解绑订阅 设备属性实时信息
{"id":"instance-info-property-{deviceId}-{productId}","type":"unsub"} 例: {"id":"instance-info-property-parking-space-li-0807-01-parking-space-simulation","type":"unsub"}
复制成功
2
3
- 发送ping( 无数据发送或接收时,需要发送ping,以维持长连接,间隔1分钟 )
{"type":"ping"}
复制成功
# 模拟器
点击获取模拟器
← 新手指南