- 最新动态
- 产品介绍
- 价格说明
- 快速入门
- 开发指南
- 用户指南
- 最佳实践
- API参考
-
SDK参考
- SDK介绍(联通用户专用)
- 应用侧JAVA SDK API参考(联通用户专用)
- 应用侧Python SDK API参考(联通用户专用)
- 设备侧Agent Lite API参考(C)(联通用户专用)
- 设备侧Agent Lite API参考(Android)(联通用户专用)
- 设备侧Agent Lite API参考(Java)(联通用户专用)
-
常见问题
- 热门问题(联通用户专用)
-
方案咨询(联通用户专用)
- 开发中心、设备接入和设备管理的差异是什么?
- IAM子用户或子项目是否可以开通物联网平台服务?
- 物联网平台支持在华为云的哪些区域开通?
- 如何成为华为IoT生态合作伙伴?
- 物联网平台支持哪些接入方式和协议?
- 华为是否提供模组/硬件终端/应用软件等?
- 设备接入模拟器HubSimulator是否能在设备管理使用?
- 设备接入服务如何获取设备数据?
- 物联网平台的应用和设备可以无限创建吗?
- 物联网平台支持批量注册设备吗?
- 物联网平台对应用和设备有消息流控吗?
- 开发中心单个应用允许接入设备数是多少?
- 数据在物联网平台的保存时间是多久?
- 物联网平台支持的DTLS加密算法有哪些?
- 物联网平台支持二进制大小端模式切换吗?
- 什么是NB-IoT?
- 物联网平台支持的硬件架构和使用的相关组件有哪些?
-
设备集成(联通用户专用)
- 如何获取设备和应用对接地址?
- 如何下载LiteOS IDE/IoT Studio?
- 物联网平台允许一个IMEI号注册多个设备吗?
- 如何设置设备名称?
- IoT设备如何激活?
- 物联网平台如何切换设备的在线/离线状态?
- 通过网关接入的子设备,平台如何识别是哪一个设备?
- deviceId、nodeId和IMEI有什么对应关系?
- Agent Lite和Agent Tiny有什么区别?
- 使用Agent Lite接入的网关设备gwbindinfo.json文件丢失如何处理?
- 运行Agent Lite Java Demo报UnsatisfiedLinkError错误怎么处理?
- 设备如何发送文件至物联网平台?
- 开发中心模拟设备如何上报负数?
- 开发中心支持哪几种省电模式?
- 开发中心支持数据转发吗?
- 开发中心没有设备分组和批量添加设备,怎么办?
- 如何检测NB网络信号?
- NB模组附着网络失败如何处理?
- NB模组绑定设备失败怎么办?
- NB模组无法正常上报数据怎么办?
- NB设备上报数据为字符串时如何转换为二进制编码?
- NB设备接入时,出现513错误?
- 为什么执行AT+CUFN=1会返回error?
- 平台向NB-IoT设备缓存下发命令,为什么设备一直收到同一条控制命令?
- AT+CGDCONT=1, CTNB是什么?
- NB-IoT设备如何选择PSM、DRX、eDRX模式?
- 应用集成(联通用户专用)
-
订阅推送(联通用户专用)
- 调用订阅接口时,回调地址如何获取?
- 应用服务器如何收到命令状态变化的通知?
- 如何获取证书?
- 回调地址可以使用域名吗?
- 订阅后消息推送失败,例如提示503如何处理?
- 应用服务器收到数据,但是平台显示推送失败?
- 应用服务器只有内网地址,能否订阅成功?
- 调用订阅接口时,提示回调地址不合法?
- 物联网平台只支持HTTPS的回调地址吗?
- 回调地址可以修改吗?
- 推送证书失效怎么处理?
- 调用删除单个订阅接口时,subscriptionId如何获取?
- 设备数据变化通知和批量设备数据变化通知的区别是什么?
- 应用服务器如何获取物联网平台推送消息时使用的地址?
- 物联网平台订阅推送是否具有重推机制?
- 为什么设备上报一条数据后应用服务器会收到多条推送?
- 在同一个应用下,平台可以将不同设备上报的数据,推送到两个服务器吗?
- NB-IoT设备已订阅消息确认和命令响应通知,为何应用服务器收不到推送消息?
- 数据上报(联通用户专用)
- 命令下发(联通用户专用)
- 产品模型/Profile(联通用户专用)
- 编解码插件(联通用户专用)
- 软/固件升级(联通用户专用)
- 文档下载
- 通用参考
链接复制成功!
设备快速接入(联通用户专用)
非联通用户请查看设备接入服务。
本文档以MQTT.fx为例,介绍以MQTT原生协议接入物联网平台。MQTT.fx是目前主流的MQTT客户端,可以快速验证是否可以与物联网平台服务交互发布或订阅消息。
获取设备接入信息
在设备接入服务控制台获取应用接入所需的信息。
- 登录华为云官方网站,访问设备接入服务。
- 进入管理控制台后,查看设备接入信息,记录域名和端口。针对不支持用域名接入的设备,通过在cmd命令框中执行“ping 域名”获取IP地址,用IP地址接入平台。由于IP地址不固定,用户需要将IP地址做成可配置项。
注:设备管理服务基于设备接入服务,因此设备管理服务的接入地址与设备接入服务相同。
新增产品模型和注册设备
- 点击控制台左侧导航的“设备管理”切换到设备管理页面,再点击界面右上角的“进入设备管理服务”。
- 在设备接入管理单击页面左下角的
切换左侧菜单,打开“产品模型”页面,点击页面右上角的“新增产品模型 > 手动创建”。如果已有MQTT设备产品模型,可跳过此步骤。
- 填写产品基本信息,点击“确定”。创建一个MQTT协议的产品。
- 选择“设备 > 设备注册”。单击右上角“创建”,按照如下表格填写参数后,单击“确定”
参数名称
配置原则
选择产品
选择要注册的产品名称,产品选择MQTT产品模型。
设备标识码
设备唯一物理标识,如IMEI、MAC地址等,用于设备在接入物联网平台时携带该标识信息完成接入鉴权。
预置密钥
用于设备接入物联网平台的密钥校验。
确认密钥
再次填写预置密钥。
注:也可以记录下产品模型的产品ID,通过调用平台开放的应用侧接口注册设备。
- 保存设备ID和密钥,后续将用于设备接入。
连接鉴权
参考连接鉴权接口文档,使用MQTT.fx工具接入物联网平台。
- 访问MQTT.fx下载页面,下载并安装MQTT.fx。
- 下载连接信息生成工具,运行“MqttClientIdGenerator.jar”,填写设备ID和密钥,生成连接信息。
参数
必选/可选
类型
参数描述
clientId
必选
String(256)
- 一机一密的设备clientId由4个部分组成:设备ID、设备身份标识类型、密码签名类型、时间戳。通过下划线“_”分隔,设备身份标识类型固定值为0。
- 密码签名类型:长度1字节,当前支持2种类型:
- “0”代表HMACSHA256不校验时间戳。
- “1”代表HMACSHA256校验时间戳。
- 时间戳:为设备连接平台时的UTC时间,格式为YYYYMMDDHH,如UTC 时间2018/7/24 17:56:20 则应表示为2018072417。
- 密码签名类型:长度1字节,当前支持2种类型:
Username
必选
String(256)
设备ID。
Password
必选
String(256)
Password的值为使用“HMACSHA256”算法以时间戳为密钥,对secret进行加密后的值。
secret为注册设备时平台返回的secret。
设备通过MQTT协议的connect消息进行鉴权,对于构造clientId的各个部分信息都必须包括进去,平台收到connect消息时,会判断设备的鉴权类型和密码摘要算法。
- 当采用“HMACSHA256”校验时间戳方式时,会先校验消息时间戳与平台时间是否一致,再判断密码是否正确。
- 当采用“HMACSHA256”不校验时间戳方式时,鉴权消息也必须带时间戳,但不检验时间是否准确,仅判断密码是否正确。
connect消息鉴权失败时,平台会返回错误,并自动断开MQTT链路。
- 一机一密的设备clientId由4个部分组成:设备ID、设备身份标识类型、密码签名类型、时间戳。通过下划线“_”分隔,设备身份标识类型固定值为0。
- 打开MQTT.fx软件,单击设置图标。
- 填写物联网平台MQTT设备接入地址,并配置鉴权参数。
- 下载并配置证书(解压后在“certificate -> Agent Lite -> Java”目录下)。
- 点击“Connect”,设备鉴权成功后,在物联网平台可以看到设备处于在线状态。
上报数据
参考设备上报数据接口文档,使用MQTT.fx工具向物联网平台上报数据。
设备若通过MQTT通道上报数据,需要发给指定的topic,上报消息的topic格式为:“$oc/devices/{device_id}/sys/properties/report”,其中“deviceId”的值,对一机一密设备,使用deviceId接入时填写为设备注册成功后返回的“deviceId”值。
- 填写接口地址,此处以“$oc/devices/{device_id}/sys/properties/report”为例。
- 填写上报的数据。
请求参数
字段名
必选/可选
类型
参数描述
services
必选
List<ServiceProperty>
设备服务数据列表(具体结构参考下表ServiceData定义表)
ServiceProperty定义表:
字段名
必选/可选
类型
参数描述
service_id
必选
String
设备服务的ID。
properties
必选
Object
设备服务的属性列表,具体字段在设备关联的产品模型中定义。
eventTime
可选
String
设备采集数据UTC时间(格式:yyyyMMddTHHmmssZ),如:20161219T114920Z。
设备上报数据不带该参数或参数格式错误时,则数据上报时间以平台时间为准。
请求示例
{ "services": [{ "service_id": "Temperature", "properties": { "value": 57 }, "event_time": "20151212T121212Z" }, { "service_id": "Battery", "properties": { "level": 80 }, "event_time": "20151212T121212Z" } ] }
- 点击“Publish”,可以在物联网平台上查看设备是否成功上报数据。
进阶体验
按照本页面的指导,使用MQTT.fx模拟MQTT设备接入物联网平台后,您应该已经基本了解MQTT设备如何通过MQTTS协议调用物联网平台开放的接口与平台交互。
若您想要进一步体验设备管理服务,可参考开发指南开发真实应用和真实设备,并接入物联网平台,体验更多功能。