- 最新动态
- 产品介绍
- 快速入门
- 用户指南
- 开发指南
-
API参考
- 北向API参考
- 北向JAVA SDK API参考
- 北向PHP SDK API参考
- 北向Python SDK API参考
- Agent Lite API参考(Android)
- Agent Lite API参考(C)
- Agent Lite API参考(Java)
- MQTT接口参考
-
常见问题
- 常见问题导航
- 产品规格
- 产品使用
-
二次开发
-
产品开发常见问题
- Profile定义
- 插件开发
-
设备开发
- 在物联网平台注册完设备,真实设备无法接入物联网平台
- 终端设备接入物联网平台时,出现513错误
- 物联网平台支持的DTLS加密算法有哪些
- AT+CGDCONT=1,"IP","CTNB" 中 CTNB 是什么
- 设备如何选择PSM、DRX、eDRX模式
- 设备收不到平台下发的命令
- 设备已经上报数据,但是物联网平台未收到
- 设备上报了数据,且日志无报错,但在历史数据中没有数据
- 设备收到命令需要多长时间
- 设备上报数据后,收不到物联网平台回复的数据上报响应
- 设备在一个位置上报数据成功,在另一个位置上报失败
- 设备上报了命令执行结果,但是命令状态未切换为成功
- 物联网平台支持大小端模式切换吗
- 省电模式DRX模式,设备1-2天未上报数据,下发命令失败
-
应用开发常见问题
-
接口调用
- 本地可以成功调用物联网平台的鉴权接口,但是在应用服务器调用失败
- 应用服务器调用接口报错如何定位
- 在线应用模拟器下发命令失败
- 模拟器下发命令成功,调用API下发命令失败
- 应用服务器下发命令失败,收到403的错误,提示回调地址冲突
- 应用服务器如何下发缓存命令
- 历史命令中显示的超期是什么意思
- 物联网平台下发命令有重发机制吗
- 历史命令中显示超时是什么意思
- 平台能批量下发命令吗
- 平台接口只能用Java调用吗
- 物联网平台的命令状态总共有几种
- 调用注册设备接口失败
- 之前调用接口成功,一段时间后参数不变,但是调用接口失败
- 之前对单个设备下发命令成功,一段时间后下发命令失败
- 历史数据中有数据,但是调用查询设备历史数据接口没有返回值
- 通过调用接口在物联网平台注册设备,一段时间后注册设备被平台删除
-
订阅与推送
- 调用订阅接口时,提示回调地址不合法
- 调用删除单个订阅接口时,subscriptionId如何获取
- 应用服务器收不到平台推送的数据
- 如何导出https推送证书
- 设备数据变化通知和批量设备数据变化通知的区别是什么
- 应用服务器如何获取设备的IMEI号
- 应用服务器收到数据,但是平台显示推送失败
- 历史数据中有数据,但是有时能推送到应用服务器,有时推不到
- 应用服务器如何获取物联网平台推送消息时使用的地址
- 物联网平台是否具有重推机制
- 应用服务器如何收到命令状态变化的通知
- 已订阅消息确认通知和命令响应通知,为何应用服务器收不到推送消息
- 物联网平台只支持HTTPS的回调地址吗
- 在同一个应用下,物联网平台可以将不同设备上报的数据,推送到两个服务器吗
- 订阅地址可以用域名吗
- 回调地址可以修改吗
- 调用订阅接口时,回调地址如何获取
-
接口调用
- 软/固件升级常见问题
- 其他常见问题
-
产品开发常见问题
- 通用参考
链接复制成功!
设备Profile写作
设备的Profile文件为json格式的文件,需要包含如下信息:
设备型号识别属性:设备类型、厂商、型号、协议类型。
服务列表:具体的功能服务说明列表。
命名规范
在Profile文件的开发过程中,需要遵循如下命名规范:
- 设备类型(deviceType)、服务类型(serviceType)、服务标识(serviceId)采用单词首字母大写的命名法。例如:WaterMeter、Battery。
- 属性使用第一个单词首字母小写,其余单词的首字母大写的命名法。例如:batteryLevel、internalTemperature。
- 命令使用所有字母大写,单词间用下划线连接的格式。例如:DISCOVERY,CHANGE_COLOR。
- 设备能力描述json文件固定命名devicetype-capability.json。
- 服务能力描述json文件固定命名servicetype-capability.json。
- 厂商ID/厂商名称和设备型号唯一标识一款设备,故这些信息的组合在不同的Profile文件中不能重复,且仅支持英文。
- 要注重名称的通用性,简洁性;对于服务能力描述,还要考虑其功能性。例如:对于多传感器设备,可以命名为MultiSensor;对于具有显示电量的服务,可以命名为Battery。
在一些Profile样例中,您可能会遇到命名为devicetype-display.json或servicetype-display.json的文件,这些文件是用于智慧家庭领域的一些场景中的,如果物联网平台服务商与您在方案交流中未涉及,则在您的Profile中可以不包含这些文件。
如果您需要制作智慧家庭领域的Profile文件,可以向物联网平台支撑人员咨询。
设备Profile
将一款新设备接入到物联网平台,首先需要编写这款设备的Profile。物联网平台提供了一些Profile文件模板,如果新增接入设备的类型和功能服务已经在物联网平台提供的设备Profile文件模板中包含,则可以直接选择使用;如果在物联网平台提供的设备Profile文件模板中未包含,则需要自己定义。
例如:接入一款水表 ,可以直接选择物联网平台上对应的Profile文件模板,修改设备型号标识属性和设备服务列表。
物联网平台提供的Profile文件模板会不断更新,如下表格列举设备类型和服务类型示例,仅供参考。
设备型号识别属性:
属性 |
Profile中key |
属性值 |
---|---|---|
设备类型 |
deviceType |
WaterMeter |
制造商ID |
manufacturerId |
TestUtf8ManuId |
制造商名称 |
manufacturerName |
HZYB |
设备型号 |
model |
NBIoTDevic |
协议类型 |
protocolType |
CoAP |
设备的服务列表
服务描述 |
服务标识(serviceId) |
服务类型(serviceType) |
选项(option) |
---|---|---|---|
水表的基本功能 |
WaterMeterBasic |
Water |
Mandatory |
告警服务 |
WaterMeterAlarm |
Battery |
Mandatory |
电池服务 |
Battery |
Battery |
Optional |
数据的上报规则 |
DeliverySchedule |
DeliverySchedule |
Mandatory |
水表的连通性 |
Connectivity |
Connectivity |
Mandatory |
完整样例参见附录一 WaterMeter Profile样例。您可以根据需要,对服务的定义进行实例化修改,如:可以调整属性的取值范围、或枚举值等。
开发者可以通过咨询物联网平台支撑人员,以判断物联网平台是否支持自己的设备类型。如果开发者的设备类型或服务类型已经支持,则开发者可以向物联网平台支撑人员获取设备及服务的Profile文件参考。
设备型号建议由产品类型ID和产品ID组合构成,例如一家厂商水表的ProductTypeId为0x0168,ProductId为0x0188,则设备型号对应为“0168-0188”。
Profile打包
Profile写作完成后,需要按如下层级结构打包:
Profile打包需要遵循如下几点要求:
- Profile文件的目录层级结构必须如图1所示,不能增删。例如:第二层级只能有“profile”和“service”两个文件夹,每个服务下面必须包含“profile”文件夹等。
- 图1中橙色的命名不能改动。
- Profile文件以zip形式压缩。
- Profile文件的命名必须按照deviceType_manufacturerId_model的格式命名,其中的deviceType、manufacturerId、model必须与devicetype-capability.json中对应字段的定义一致。例如:本实例中devicetype-capability.json的主要字段如下:
{ "devices": [ { "manufacturerId": "TestUtf8ManuId", "manufacturerName": "HZYB", "model": "NBIoTDevice", "protocolType": "CoAP", "deviceType": "WaterMeter", "serviceTypeCapabilities": **** } ] }
- 图1中的WaterMeterBasic、WaterMeterAlarm、Battery等都是devicetype-capability.json中定义的服务。
- Profile文件中的文档格式都是json,在编写完成后可以在互联网上查找一些格式校验网站,检查json的合法性。