中国电信物联网开放平台常见问题.docx
- 文档编号:7314828
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:40
- 大小:887.74KB
中国电信物联网开放平台常见问题.docx
《中国电信物联网开放平台常见问题.docx》由会员分享,可在线阅读,更多相关《中国电信物联网开放平台常见问题.docx(40页珍藏版)》请在冰豆网上搜索。
中国电信物联网开放平台常见问题
中国电信物联网开放平台_常见问题
(V1)
中国电信股份有限公司物联网分公司
二〇一九年二月
编制单位:
编制单位
中国电信股份有限公司物联网分公司平台运营部
修订记录:
版本号
日期
描述
01
2018/12/17
中国电信物联网开放平台_常见问题
目录
1产品开发常见问题1
1.1Profile定义1
1.1.1如何进行Profile开发1
1.1.2在开发中心上传Profile,无法按上传按钮2
1.1.3在开发中心上传Profile,弹窗提示“文件输入格式有误”3
1.1.4在开发中心上传Profile,弹窗提示厂商ID和设备型号已存在3
1.1.5在线开发Profile时,如何选择数据类型4
1.1.6编辑Profile时,提示此产品已锁定,无法编辑4
1.2插件开发4
1.2.1如何进行编解码插件开发4
1.2.2在线开发的插件部署失败5
1.2.3在线开发的插件字段类型为string和varstring类型的编解码规则5
1.2.4在线开发的插件字段为数组和可变长数组类型的编解码规则6
1.2.5在线开发的插件是否支持透传7
1.2.6在线开发插件中地址域(messageId)如何使用7
1.2.7在线开发的插件中如何实现命令下发响应7
1.2.8离线开发的插件部署失败7
1.2.9离线开发的插件上传失败8
1.2.10离线开发的插件包通过了工具检测,但上传到物联网平台时,提示找不到插件8
1.2.11离线开发的插件包通过了工具检测,上传到物联网平台后,在编解码时设备日志提示异常9
1.2.12离线插件签名失败10
1.3设备开发10
1.3.1在物联网平台注册完设备,真实设备无法接入物联网平台10
1.3.2终端设备接入物联网平台时,出现513错误。
11
1.3.3物联网平台支持的DTLS加密算法有哪些11
1.3.4AT+CGDCONT=1,"IP","CTNB"中CTNB是什么11
1.3.5设备如何选择PSM、DRX、eDRX模式11
1.3.6设备收不到平台下发的命令12
1.3.7设备已经上报数据,但是物联网平台未收到13
1.3.8设备上报了数据,且日志无报错,但在历史数据中没有数据13
1.3.9设备收到命令需要多长时间14
1.3.10设备上报数据后,收不到物联网平台回复的数据上报响应14
1.3.11设备在一个位置上报数据成功,在另一个位置上报失败15
1.3.12设备上报了命令执行结果,但是命令状态未切换为成功15
1.3.13物联网平台支持大小端模式切换吗15
1.3.14省电模式DRX模式,设备1-2天未上报数据,下发命令失败15
2应用开发常见问题16
2.1接口调用16
2.1.1本地可以成功调用物联网平台的鉴权接口,但是在应用服务器调用失败16
2.1.2应用服务器调用接口报错如何定位16
2.1.3在线应用模拟器下发命令失败17
2.1.4模拟器下发命令成功,调用API下发命令失败17
2.1.5应用服务器下发命令失败,收到403的错误,提示回调地址冲突18
2.1.6应用服务器如何下发缓存命令18
2.1.7历史命令中显示的超期是什么意思18
2.1.8物联网平台下发命令有重发机制吗18
2.1.9历史命令中显示超时是什么意思19
2.1.10平台能批量下发命令吗19
2.1.11平台接口只能用Java调用吗19
2.1.12物联网平台的命令状态总共有几种20
2.1.13调用注册设备接口失败20
2.1.14之前调用接口成功,一段时间后参数不变,但是调用接口失败21
2.1.15之前对单个设备下发命令成功,一段时间后下发命令失败21
2.1.16历史数据中有数据,但是调用查询设备历史数据接口没有返回值21
2.1.17通过调用接口在物联网平台注册设备,一段时间后注册设备被平台删除21
2.2订阅与推送22
2.2.1调用订阅接口时,提示的回调地址不合法22
2.2.2调用订阅接口时,提示地址冲突22
2.2.3调用删除单个订阅接口时,subscriptionId如何获取22
2.2.4应用服务器收不到平台推送的数据22
2.2.5如何制作正确的https推送证书22
2.2.6设备数据变化通知和批量设备数据变化通知的区别是什么28
2.2.7应用服务器如何获取设备的IMEI号29
2.2.8应用服务器收到数据,但是平台显示推送失败29
2.2.9历史数据中有数据,但是有时能推送到应用服务器,有时推不到29
2.2.10应用服务器如何获取物联网平台推送消息时使用的地址29
2.2.11物联网平台是否具有重推机制29
2.2.12应用服务器如何收到命令状态变化的通知30
2.2.13已订阅“消息确认”通知和“命令响应”通知,为何应用服务器收不到推送消息30
2.2.14物联网平台只支持HTTPS的回调地址吗30
2.2.15在同一个应用下,物联网平台可以将不同设备上报的数据,推送到两个服务器吗30
2.2.16订阅地址可以用域名吗30
2.2.17回调地址可以修改吗31
3软/固件升级常见问题32
3.1软/固件升级是升级什么32
3.2物联网平台支持从第三方服务器下载软/固件包吗32
3.3可以从高版本升级到低版本吗32
3.4软/固件包及其版本号如何获取33
3.5为什么创建了软固件升级任务后,任务立即结束33
3.6在SPPortal上传固件包时需要填写的源版本是什么34
3.7设备每次上报数据都会收到平台下发的软/固件版本查询命令34
3.8在软/固件升级任务中,业务处理是否会中断35
3.9常见的软/固件升级错误有哪些35
3.10升级任务有重试策略,当群组中有部分设备升级失败后,是如何重试的36
3.11平台给设备发送软/固件包的时候,是否支持断点续传功能36
4其他常见问题37
4.1物联网平台支持批量注册设备吗37
4.2物联网平台对应用侧和设备侧有消息流控吗38
4.3应用服务器如何获取设备上报到物联网平台的数据38
4.4物联网平台的应用和设备可以无限创建吗38
4.5之前是在线的设备,为何一段时间之后变为了异常或者离线状态38
4.6设备变为异常或者离线后,命令下发和数据上报会成功吗38
4.7eDRX模式下,设备收到立即下发命令要多长时间38
4.8数据在平台的保存时间是多久38
4.9物联网平台允许一个IMEI号注册多个设备吗39
4.10设备选择的是DRX模式,在物联网平台上是否可以配置为PSM或者eDRX模式39
1产品开发常见问题
1.1Profile定义
1.1.1在开发中心上传Profile,无法按上传按钮
步骤1检查Profile文件的名称是否符合“deviceType_manufacturerId_model.zip”格式,并检查“deviceType”、“manufacturerId”、“model”三个字段是否和“devicetype-capability.json”中的定义一致。
步骤2检查Profile文件是否压缩为zip格式。
如非zip格式,请解压后,重新压缩、上传。
----结束
1.1.2在开发中心上传Profile,弹窗提示“文件输入格式有误”
步骤1检查每个json文件的格式是否正确,可以使用W3Cschool的在线JSON校验格式化工具。
步骤2检查servicetype-capability.json中commands/properties的值是否为数组格式(值是否包含在中括号之内)。
步骤3检查Profile的压缩包是否存在隐藏文件,如果存在隐藏文件,则删除后重新上传。
以Mac为例,说明隐藏文件的查看方法:
1.打开“终端”应用程序。
2.输入如下命令:
defaultswritecom.apple.finderAppleShowAllFiles-booleantrue;killallFinder
3.按下“Return”键确认,Finder窗口将会显示隐藏的文件和文件夹。
如果需要再次恢复隐藏设置,则需要使用如下命令:
defaultswritecom.apple.finderAppleShowAllFiles-booleanfalse;killallFinder
----结束
1.1.3在开发中心上传Profile,弹窗提示厂商ID和设备型号已存在
当系统提示此信息时,说明在物联网平台已经存在相同设备型号和厂商ID的Profile和插件。
可选择下面两种方法中的一种进行处理:
●删除另一个应用或账户下的该插件和Profile(先删除插件),再导入Profile即可。
●修改设备型号和厂商ID后,再导入Profile。
1.1.4在线开发Profile时,如何选择数据类型
数据类型的配置可以参考如下原则:
●int:
当上报的数据为整数或布尔值时,可以匹配为此类型。
插件开发中可匹配int型或array类型。
●decimal:
当上报的数据为小数时,可以匹配为此类型。
插件开发中可匹配string或者int或者array类型。
●string:
当上报的数据为字符串、枚举值或布尔值时,可以配置为此类型。
如果为枚举值或布尔值,值之间需要用英文逗号(“,”)分隔。
插件开发中可匹配string类型或者array类型。
●DateTime:
当上报的数据为日期时,可以配置为此类型。
插件开发中可匹配string类型或者array类型。
●jsonObject:
当上报的数据为json结构体时,可以配置为此类型。
插件开发者可匹配string或者array类型。
1.1.5编辑Profile时,提示此产品已锁定,无法编辑
当该产品下已经存在注册设备时,Profile无法编辑,需要将注册设备删除后再进行编辑。
1.2插件开发
1.2.1在线开发的插件部署失败
在插件开发界面,下载编解码插件:
●如果插件下载失败,则插件部署失败存在如下可能原因:
−同类消息的(例如:
两种数据上报的消息)messageId的值设置重复或在消息中的位置不一致。
−messageId的数据类型设置为非int型。
−存在字段的默认值设置为非16进制数。
−存在字段名字设置为java关键字,比如type、int等。
●如果插件下载成功,但插件部署失败,则可能为网络问题导致,请检查网络状态。
1.2.2在线开发的插件字段类型为string和varstring类型的编解码规则
在线开发编解码插件时,如果某字段的数据类型为字符串或可变长度字符串,则按照ACSII码进行编解码。
对应的插件在线开发可参考字符串及可变长字符串的编解码插件在线开发实例。
图1-1字符串和可变长度字符串
1.2.3在线开发的插件字段为数组和可变长数组类型的编解码规则
在线开发编解码插件时,如果某字段的数据类型为数组或可变长度数组,则按照base64进行编解码。
对应的插件在线开发可参考数组及可变长数组的编解码插件在线开发实例。
图1-1数组和可变长度数组
1.2.4在线开发的插件是否支持透传
不支持。
1.2.5在线开发插件中地址域(messageId)如何使用
当有相同类型的消息时(例如:
两种数据上报的消息),需要添加地址域字段,用于区分不同的消息,且该字段在字段列表的位置必须一致。
场景如下:
●有两条及以上的数据上报消息或命令下发消息。
●命令响应消息可看作一种数据上报消息,因此如果存在命令响应消息,则需要在数据上报消息中添加地址域。
●数据上报响应消息可看作一种命令下发消息,因此如果存在数据上报响应消息,则需要在命令下发消息中添加地址域。
在线开发编解码插件时,messageId的使用实例详见多条上下行消息的编解码插件在线开发。
1.2.6在线开发的插件中如何实现命令下发响应
设备在接收到命令后,可以上报两类消息:
ACK和命令下发响应。
ACK用于表示命令已经到达设备,命令下发响应用于表示设备执行命令的结果。
如果需要设备在接到命令后,需要返回命令下发响应,则:
●需要在数据上报消息和命令响应消息中均定义地址域字段(messageId),并且该字段在两种消息的字段列表中的位置必须相同,使编解码插件可以对数据上报消息和命令响应消息进行区分。
●需要在命令下发消息和命令响应消息中定义响应标识字段(mid),并且该字段在两种消息的字段列表中的位置必须相同,使编解码插件可以将命令下发消息和对应的命令响应消息进行关联。
在线开发编解码插件时,命令下发响应的实现实例详见命令执行结果的编解码插件在线开发。
1.2.7离线开发的插件部署失败
步骤1请使用编解码插件检测工具对插件进行检测。
步骤2根据检测工具返回的错误码进行处理,错误码处理建议详见检测工具包内的《NB-IoT编解码插件检测工具使用说明》。
----结束
1.2.8离线开发的插件上传失败
离线开发的插件需要先通过编解码插件检测工具检测后,再上传到平台。
请使用编解码插件检测工具对插件包进行检测,并按照工具的错误提示进行修改。
1.2.9离线开发的插件包通过了工具检测,但上传到物联网平台时,提示找不到插件
步骤1使用反编译工具打开preload文件夹下jar包,检查OSGI-INF->CodecProvideHandler.xml是否为xml格式,且不存在乱码。
图1-1CodecProvideHandler.xml样例
步骤2检查name和implementationclass的路径是否插件代码的路径一致。
----结束
1.2.10离线开发的插件包通过了工具检测,上传到物联网平台后,在编解码时设备日志提示异常
步骤1该异常是运行插件代码抛出的异常,一般是相关依赖没有引入或者代码逻辑有误,可根据日志中的Java异常提示进行处理。
步骤2在离线插件关键代码处(例如decode函数入口处,出口处等)打印日志,并联系物联网平台支撑人员在后台获取日志,辅助定位问题。
图1-1打印日志样例
----结束
1.2.11离线插件签名失败
工具、插件存放的路径含有中文字符时,会造成验签失败。
请将工具和插件存放在不含中文字符的路径下进行验签。
1.3设备开发
1.3.1在物联网平台注册完设备,真实设备无法接入物联网平台
步骤1在模组执行AT+CGATT=1,查看是否报错。
如果报错:
●需要向NB网络运营商确认NB卡的状态。
●需要向模组厂家确认模组的状态。
步骤2如果执行AT+CGATT=1后,设备入网成功,则需确认设备接入时,使用的物联网平台的IP和端口是否正确。
IP和端口从物联网平台服务商获取,5683端口为非加密方式接入端口,5684端口为加密方式接入端口。
----结束
1.3.2终端设备接入物联网平台时,出现513错误。
终端设备每次上电后,都会向物联网平台发起TUP注册流程。
TUP协议为华为私有协议,包装在CoAP协议之上,与LWM2M协议类似。
海思芯片设置TUP注册过程不能超过4s,如果在4s内未完成TUP注册,则上报513错误。
当出现此513错误时,可以按照如下方法进行处理:
步骤1当网络环境状态不佳时,会导致注册过程概率性超过4s,从而出现513错误。
请联系NB网络运营商检查网络状态。
步骤2通过AT+NMGS发送业务数据会触发注册,如果4秒钟内没有收到t/d资源(收发业务数据资源)的订阅,就会返回错误,但依赖CoAP层的重传继续注册,最长160秒后还是没有收到t/d资源的订阅,这次注册就会失败。
160s基本可以保障终端设备能够注册成功,4s返回ERROR只会丢掉第一包的数据。
建议设备重启并再发送AT+NMGS触发上述注册流程。
可通过AT+NMSTATUS?
查询注册状态,返回+NMSTATUS:
MO_DATA_ENABLED表示成功注册。
----结束
1.3.3物联网平台支持的DTLS加密算法有哪些
平台支持预共享秘钥的安全模式,支持的加密套包括:
●TLS_PSK_WITH_AES_128_CCM_8,asdefinedin[RFC6655]。
●TLS_PSK_WITH_AES_128_CBC_SHA256,asdefinedin[RFC5487]。
1.3.4AT+CGDCONT=1,"IP","CTNB"中CTNB是什么
CTNB指设备中NB卡的APN,目前NB卡不支持自定义模式,APN需从NB网络服务商获取。
1.3.5设备如何选择PSM、DRX、eDRX模式
NB-IoT场景包含PSM、DRX、eDRX三种省电模式,物联网平台默认的省电模式为PSM模式。
三种省电模式的说明如下:
模式
说明
命令下发机制
PSM
powersavingmode,省电模式。
对下行业务时延无要求,对于下行业务消息,可等待设备发送上行数据进入连接态后再发送,以进一步节省终端功耗。
立即下发(expireTime=0):
当命令为立即下发时,平台将收到的下发命令立即下发,如果此时,设备处于PSM态,设备将不能收到下发命令,设备处于激活态或空闲态将能够收到下发命令。
缓存下发(expireTime>0):
当命令为缓存下发时,平台将收到的下发命令缓存,等设备上报数据时,按顺序将缓存的命令全部下发。
DRX
discontinuousreception,不连续接收模式。
对下行业务时延要求高,可认为设备一直在线,消息能够立即下发。
立即下发(expireTime=0):
当命令为立即下发时,平台将收到的下发命令立即下发,不等待。
缓存下发(expireTime>0):
当命令为缓存下发时,平台将收到的下发命令缓存,按照写入队列的先后顺序串行下发,前一个命令送达设备或超时(超时时间固定)后,开始下发后一个缓存命令。
eDRX
extendeddiscontinuousreception,扩展不连续接收模式。
DRX的扩展模式,对下行业务时延有较高要求,可根据系统配置立即下发消息或者缓存消息。
立即下发(expireTime=0):
当命令为立即下发时,平台将收到的下发命令立即下发,设备能够收到命令。
缓存下发(expireTime>0):
当命令为缓存下发时,平台将收到的下发命令缓存,按照写入队列的先后顺序串行下发,前一个命令送达设备或超时(超时时间可配置)后,开始下发后一个缓存命令。
如果需要修改省电模式,请登录SPPortal,进入“应用管理>应用>省电模式配置”界面进行修改。
●省电模式需要与网络侧保持一致,配置信息请向网络运营商获取。
●当省电模式选择eDRX模式时,eDRX周期的设置需要与网络侧的一致,配置信息请向网络运营商获取。
●当使用DRX或eDRX模式,设备需要每隔25小时上报一次心跳数据。
1.3.6设备收不到平台下发的命令
在开发中心的“设备管理>历史命令”中查看命令状态:
●如果命令状态为失败,则:
−检查设备日志,如果存在编码失败的提示(Encodeerror),则说明为编解码插件的问题,需要使用编解码检测工具检查编解码插件的正确性。
−在“设备管理”中检查设备状态,如果设备状态为异常或者离线,则需要保证设备为在线状态,可尝试上报一条数据。
●如果命令状态为已发送或超时,说明命令已经由物联网平台送出,请联系运营商检查网络侧和联系模组厂家检查设备侧。
●如果命令状态为已送达,说明物联网平台已经收到模组返回的ACK,物联网平台与模组之间的通信正常,请获取模组日志进行分析。
●如果命令状态为等待,并且省电模式为PSM,则下发的是缓存命令,需上报一条数据才能收到命令。
设备侧的省电模式需要联系运营商确认,物联网平台侧的省电模式配置可在SPPortal的“应用管理>应用”中查看。
1.3.7设备已经上报数据,但是物联网平台未收到
在开发中心的“设备管理”中选择具体设备,检查“设备日志”中是否打印相关信息:
●如果设备日志未打印相关信息,说明消息没有到达物联网平台,请检查网络侧和设备侧。
●如果设备日志打印相关信息,则查看日志中是否存在解码失败的提示(例如decodefailed)。
如果存在,则检查编解码插件是否正确。
1.3.8设备上报了数据,且日志无报错,但在历史数据中没有数据
●在开发中心的“对接信息”中,将“应用能力”设置为“规则引擎”
●在SPPortal的“应用>应用定义”中,将“平台能力”设置为“存储模式”。
1.3.9设备收到命令需要多长时间
在开发中心的“设备管理>历史命令”中查看命令详情,已发送的时间为命令离开物联网平台的时间,已送达的时间为物联网平台收到设备返回的ACK的时间。
开发者可以据此推算命令下发到设备需要的大概时间,该数据受NB网络状态的影响。
1.3.10设备上报数据后,收不到物联网平台回复的数据上报响应
●如果插件为在线开发,则插件的数据上报消息中需要勾选“添加响应字段”。
●如果插件为离线开发,则插件代码中需要定义cloudRsp逻辑。
1.3.11设备在一个位置上报数据成功,在另一个位置上报失败
请联系NB网络运营商,确认NB卡是否有地域限制,以及当地NB网络状态。
1.3.12设备上报了命令执行结果,但是命令状态未切换为成功
在开发中心的“设备管理>设备日志”中,打开日志功能。
在设备上报命令执行结果后:
●如果没有日志打印,说明消息没有到达平台。
请检查网络侧和设备侧。
●如果有日志打印,并且日志中没有错误提示,则可能插件中mid字段的配置有误。
mid的使用方法请参考命令执行结果的编解码插件在线开发。
1.3.13物联网平台支持大小端模式切换吗
不支持,物联网平台为大端模式。
1.3.14省电模式DRX模式,设备1-2天未上报数据,下发命令失败
在DRX模式下,如果设备在25小时内未上报数据,则设备状态转换为异常;如果设备在49小时内未上报数据,则设备状态转换为离线。
因此,在DRX模式下,设备需要每25小时内至少上报一次心跳保证设备在线。
2应用开发常见问题
2.1接口调用
2.1.1本地可以成功调用物联网平台的鉴权接口,但是在应用服务器调用失败
步骤1建议用物联网平台提供的Demo(点击获取)或者SDK(点击获取)调用接口。
步骤2检查jdk是否为1.8及以上版本(TLS为1.2版本)。
以Linux系统为例:
4.查找使用的jdk安装后的目录
echo$JAVA_HOME;
假设为:
/opt/soft/java
5.进入到jdk安装目录下面的bin目录
cd/opt/soft/java/bin
6.在上面的目录中查看jdk版本
./java-version
步骤3检查应用服务
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中国 信物 联网 开放 平台 常见问题
![提示](https://static.bdocx.com/images/bang_tan.gif)