华为云用户手册

  • 申请发布产品 产品在通过所有测试用例后,单击“申请发布”。 系统自动完成厂商信息和产品信息完整性的检查。如果没有重要信息缺失,则单击“发布”。 黄色信息缺失提示:部分信息不完整,不影响发布产品,但发布到产品中心可能会审核不通过,建议补充。 红色信息缺失提示:重要信息缺失,需补充完整才能发布产品。 选择发布方式:“公开发布”或“私有发布”,单击“发布”,提交发布申请。 注:一旦发布不可修改发布方式。 查看产品是否发布到产品中心。 登录认证产品中心,选择“产品”,在产品列表查看通过审核的产品。 (可选)申请关联云市场产品,以便用户通过产品中心直接购买该产品。 进入认证产品中心,鼠标移至右上角的用户名,单击下拉列表中的“我的产品”。 在产品列表,单击产品右侧的“云市场发布”。 系统弹出“云市场发布”窗口,单击“填入商品ID”,然后单击“确定”。 注:“商品ID”为云市场产品的产品ID,在产品审核上架后,可在云市场中该产品的商品详情页面获取。云市场发布产品请参考云市场商品接入。
  • 在线开发Profile(联通用户专用) 非联通用户请查看 设备接入服务 。 在线创建Profile前需要先创建项目并定义产品。创建产品需要输入manufactureId、manufactureName、deviceType、Model等信息,Profile会使用这些信息作为设备能力字段取值。在产品创建时,如果选择使用系统模板,则系统将会自动使用相应的Profile模板,您可以直接使用或在此基础上进行修改;如果选择自定义产品模板,则需要完整定义Profile。 本节定义包含一个服务的Profile为示例,该Profile包含设备上报数据、下发命令、下发命令响应、软固件升级等场景的服务和字段。 在“产品开发”界面选择产品,选择具体产品,进入该产品的开发空间。 在产品开发空间,点击“Profile定义”,然后点击“新建服务”。 在“新建服务”区域,对服务名称、属性和命令进行定义。每个服务下,可以包含属性和命令,也可以只包含其中之一,请根据此类设备的实际情况进行配置。 填写“服务名称”,“服务名称”采用首字母大写的命名方式,比如:WaterMeter、Battery。 点击“添加属性”,在弹出窗口中配置属性的各项参数,点击“确定”。 名称:首位必须为字母,建议采用驼峰形式,如batteryLevel、internalTemperature。 数据类型:配置可参考如下原则: int:当上报的数据为整数或布尔值时,可以配置为此类型。 decimal:当上报的数据为小数时,可以配置为此类型。配置“经纬度”属性时,数据类型建议使用“decimal”。 string:当上报的数据为字符串、枚举值或布尔值时,可以配置为此类型。如果为枚举值或布尔值,值之间需要用英文逗号(“,”)分隔。 DateTime:当上报的数据为日期时,可以配置为此类型。 jsonObject:当上报的数据为json结构体时,可以配置为此类型。 访问模式:设置应用服务器通过接口访问数据的模式: R:通过接口可以查询该属性。 W:通过接口可以修改该属性值。 E:应用服务器订阅了数据变化通知后,设备上报了属性,应用服务器会收到推送通知。 是否必选:设备上报的这个属性是不是必选。 点击“添加命令”,在弹出窗口中配置“命令名称”,点击“确定”。“命令名称”首位必须为字母,建议采用全大写形式,单词间用下划线连接的命名方式,如DISCOVERY,CHANGE_STATUS。 点击“添加下发命令字段”,在弹出窗口中配置下发命令字段的各项参数,点击“确定”。“下发命令字段名称”首位必须为字母,建议采用第一个单词首字母小写,其余单词的首字母大写的命名方式,比如valueChange;其余参数,请根据此类设备的实际情况进行配置。 如果要添加命令响应,点击“添加响应命令字段”,在弹出窗口中配置响应命令字段的各项参数,点击“确定”。“响应命令字段名称”首位必须为字母,建议采用第一个单词首字母小写,其余单词的首字母大写的命名方式,比如valueResult;其余参数,请根据此类设备的实际情况进行配置。 如果要添加软件/固件升级能力,在“维护能力配置 ”下,开启“软件升级”/“固件升级”。 提交后,Profile中会自动多出一个“DM服务”应用于升级。 父主题: 开发Profile
  • 数组及可变长数组数据类型 如果该烟感设备需要支持描述信息上报功能,描述信息描述信息支持数组和可变长度数组两种类型,则按照以下步骤创建消息。 Profile定义 在烟感产品的开发空间完成Profile定义。 编解码插件开发 在烟感产品的开发空间,选择“编解码插件开发”。 配置数据上报消息,上报数组类型的描述信息。 添加messageId字段,表示消息种类。在本场景中,0x0用于标识上报火灾等级和温度的消息,0x1用于标识只上报温度的消息,0x2用于标识上报描述信息(数组类型)的消息。 添加other_info字段,表示数组类型的描述信息。在本场景中,“长度”配置为5个字节。 配置数据上报消息,上报可变长度数组类型的描述信息。 添加messageId字段,表示消息种类。在本场景中,0x0用于标识上报火灾等级和温度的消息,0x1用于标识只上报温度的消息,0x3用于标识上报描述信息(可变长度数组类型)的消息。 添加length字段,表示数组长度。“数据类型”根据可变长度数组的长度进行配置,长度在255以内,配置为“int8u”。 添加other_info字段,表示可变长度数组类型的描述信息。“长度关联字段”选择“length”,“长度关联字段差值”和“数值长度”自动填充。 拖动右侧“设备模型”区域的属性字段,与数据上报消息的相应字段建立映射关系。 点击“保存”,并在插件保存成功后点击“部署”,将编解码插件部署到 物联网平台 。 调测编解码插件 在烟感产品的开发空间,选择“在线调测”,使用虚拟设备调试编解码插件。 勾选“没有真实的物理设备”,点击“创建”。 使用设备模拟器上报数组类型的描述信息。 十六进制码流示例:0211223344。02表示messageId,此消息上报数组类型的描述信息;11223344表示描述信息,长度为4个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=null}。描述信息不足5个字节,编解码插件无法解析。 十六进制码流示例:021122334455。02表示messageId,此消息上报数组类型的描述信息;1122334455表示描述信息,长度为5个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=ESIzRF=}。描述信息长度为5个字节,编解码插件解析成功。 十六进制码流示例:02112233445566。02表示messageId,此消息上报数组类型的描述信息;112233445566表示描述信息,长度为6个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=ESIzRF=}。描述信息长度超过5个字节,编解码插件截取前5个字节进行解析。 使用设备模拟器上报可变长度数组类型的描述信息。 十六进制码流示例:030101。03表示messageId,此消息上报可变长度数组类型的描述信息;01表示描述信息长度(1个字节),长度为1个字节;01表示描述信息,长度为1个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=AQ==}。AQ==是01经过base64编码后的值。 十六进制码流示例:03020102。03表示messageId,此消息上报可变长度数组类型的描述信息;02表示描述信息长度(2个字节),长度为1个字节;0102表示描述信息,长度为2个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=AQI=}。AQI=是01经过base64编码后的值。 十六进制码流示例:03030102。03表示messageId,此消息上报可变长度数组类型的描述信息;03表示描述信息长度(3个字节),长度为1个字节;0102表示描述信息,长度为2个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=null}。描述信息长度不足3个字节,编解码插件解析失败。 十六进制码流示例:0303010203。03表示messageId,此消息上报可变长度数组类型的描述信息;03表示描述信息长度(3个字节),长度为1个字节;010203表示描述信息,长度为3个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=AQID}。AQID是010203经过base64编码后的值。 十六进制码流示例:030301020304。03表示messageId,此消息上报可变长度数组类型的描述信息;03表示描述信息长度(3个字节),长度为1个字节;01020304表示描述信息,长度为4个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=AQID}。描述信息长度超过3个字节,编解码插件截取前3个字节进行解析,AQID是010203经过base64编码后的值。 base64编码方式说明 base64编码方式会把3个8位字节(3*8=24)转化为4个6位字节(4*6=24),并在每个6位字节前补两个0,构成4个8位字节的形式。如果要进行编码的码流不足3个字节,则在码流后用0填充,使用0填充的字节经编码输出的字符为“=”。 base64可以将16进制码流当做字符或者数值进行编码,两种方式获得的编码结果不同。以16进制码流01为例进行说明: 把01当作字符,不足3个字符,补1个0,得到010。通过查询ASCII码表,将字符转换为8位二进制数,即:0转换为00110000、1转换为00110001,因此010可以转换为001100000011000100110000(3*8=24)。再转换为4个6位字节:001100、000011、000100、110000,并在每个6位字节前补两个0,得到:00001100、00000011、00000100、00110000。这4个8位字节对应的10进制数分别为12、3、4、48,通过查询base64编码表,获得M(12)、D(3)、E(4),由于3个字符中,最后一个字符通过补0获得,因此第4个8位字节使用“=”表示。最终,把01当做字符,通过base64编码得到MDE=。 把01当作数值(即1),不足3个字符,补两个0,得到100。将数值转换为8位2进制数,即:0转换为00000000、1转换为00000001,因此100可以转换为000000010000000000000000(3*8=24)。在转换为4个6位字节:000000、010000、000000、000000,并在每个6位字节前补两个0,得到:00000000、00010000、00000000、00000000。这4个8位字节对应的10进制数分别为:0、16、0、0,通过查询base64编码表,获得A(0)、Q(16),由于3个数值中,最后两个数值通过补0获得,因此第3、4个8位字节使用“=”表示。最终,把01当作数值,通过base64编码得到AQ==。 总结 当数据类型为数组或可变长度数组时,插件是按照base64进行编解码的:上报数据时,将16进制码流进行base64编码,比如:01编码为“AQ==”;命令下发时,将字符进行base64解码,比如:“AQ==”解码为01。 当某字段的数据类型为可变长度数组时,该字段需要关联长度字段,长度字段的数据类型必须为int。 针对可变长度数组,命令下发和数据上报的编解码插件开发方式相同。 在线开发的编解码插件使用base64进行编码时,是将16进制码流当做数值进行编码。
  • 字符串及可变长字符串的编解码插件在线开发 如果该烟感设备需要支持描述信息上报功能,描述信息支持字符串和可变长度字符串两种类型,则按照以下步骤创建消息。 Profile定义 在烟感产品的开发空间完成Profile定义。 编解码插件开发 在烟感产品的开发空间,选择“编解码插件开发”。 配置数据上报消息,上报字符串类型的描述信息。 添加messageId字段,表示消息种类。在本场景中,0x0用于标识上报火灾等级和温度的消息,0x1用于标识只上报温度的消息,0x2用于标识上报描述信息(字符串类型)的消息。 添加other_info字段,表示字符串类型的描述信息。在本场景中,“长度”配置 6个字节。 配置数据上报消息,上报可变长度字符串类型的描述信息。 添加messageId字段,表示消息种类。在本场景中,0x0用于标识上报火灾等级和温度的消息,0x1用于标识只上报温度的消息,0x3用于标识上报描述信息(可变长度字符串类型)的消息。 添加length字段,表示字符串长度。“数据类型”根据可变长度字符串的长度进行配置,长度在255以内,配置为“int8u”。 添加other_info字段,表示可变长度字符串类型的描述信息。“长度关联字段”选择“length”,“长度关联字段差值”和“数值长度”自动填充。 拖动右侧“设备模型”区域的属性字段,与数据上报消息的相应字段建立映射关系。 点击“保存”,并在插件保存成功后点击“部署”,将编解码插件部署到物联网平台。 调测编解码插件 在烟感产品的开发空间,选择“在线调测”,使用虚拟设备调试编解码插件。 勾选“没有真实的物理设备”,点击“创建”。 使用设备模拟器上报字符串类型的描述信息。 十六进制码流示例:0231。02表示messageId,此消息上报字符串类型的描述信息;31表示描述信息,长度为1个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=null}。描述信息不足6个字节,编解码插件无法解析。 十六进制码流示例:02313233343536。02表示messageId,此消息上报字符串类型的描述信息;313233343536表示描述信息,长度为6个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=123456}。描述信息长度为6个字节,编解码插件解析成功。 十六进制码流示例:023132333435363738。02表示messageId,此消息上报字符串类型的描述信息;3132333435363738表示描述信息,长度为8个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=123456}。描述信息长度超过6个字节,编解码插件截取前6个字节进行解析。 十六进制码流示例:02013132333435。02表示messageId,此消息上报字符串类型的描述信息;013132333435表示描述信息,长度为6个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=\u000112345}。01在ASCII码表里表示“标题开始”,无法用具体字符表示,因此编解码插件解析为\u0001。 使用设备模拟器上报可变长度字符串类型的描述信息。 十六进制码流示例:030141。03表示messageId,此消息上报可变长度字符串类型的描述信息;01表示描述信息长度(1个字节),长度为1个字节;41表示描述信息,长度为1个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=A}。41是A的十六进制ASCII码。 十六进制码流示例:03024142。03表示messageId,此消息上报可变长度字符串类型的描述信息;02表示描述信息长度(2个字节),长度为1个字节;4142表示描述信息,长度为2个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=AB}。4142是AB的十六进制ASCII码。 十六进制码流示例:030341424344。03表示messageId,此消息上报可变长度字符串类型的描述信息;03表示描述信息长度(3个字节),长度为1个字节;41424344表示描述信息,长度为4个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=ABC}。描述信息长度超过3个字节,编解码插件截取前3个字节进行解析,414243是ABC的十六进制ASCII码。 十六进制码流示例:0304414243。03表示messageId,此消息上报可变长度字符串类型的描述信息;04表示字符串长度(4个字节),长度为1个字节;414243表示描述信息,长度为4个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=null}。描述信息长度不足4个字节,编解码插件解析失败。 总结 当数据类型为字符串或可变长度字符串时,插件是按照ASCII码进行编解码的:上报数据时,将16进制码流解码为对应字符串,比如:21解析为“!”、31解析为“1”、41解析为“A”;下发命令时,将字符串编码对应的16进制码流,比如:“!”编码为21,“1”编码为31,“A”编码为41。 当某字段的数据类型为可变长度字符串时,该字段需要关联长度字段,长度字段的数据类型必须为int。 针对可变长度字符串,命令下发和数据上报的编解码插件开发方式相同。 在线开发的编解码插件使用ASCII码16进制的标准表对字符串和可变长度字符串进行编解码。解码时(数据上报),如果解析结果无法使用具体字符表示,如:标题开始、正文开始、正文结束等,则使用\u+2字节码流值表示(例如:01解析为\u0001,02解析为\u0002);如果解析结果可以使用具体字符表示,则使用具体字符。
  • 多条数据上报消息 如果该烟感设备需要支持同时上报烟雾报警(火灾等级)和温度,也支持单独上报温度,则按照以下步骤创建消息。 编解码插件开发 在烟感产品的开发空间,选择“编解码插件开发”。 配置数据上报消息,上报火灾等级和温度。 添加messageId字段,表示消息种类。 在本场景中,数据上报消息有两种,所以需要用messageId来标识消息种类。 “数据类型”根据数据上报消息种类的数量进行配置。在本场景中,仅有两种数据上报消息,配置为“int8u”即可满足需求。 “默认值”可以修改,但必须为十六进制格式,且数据上报消息的对应字段必须和默认值保持一致。在本场景中,用0x0标识上报火灾等级和温度的消息。 添加level字段,表示火灾级别。 “字段名”只能输入包含字母、数字、_和$,且不能以数字开头的字符。 “数据类型”根据设备上报数据的实际情况进行配置,需要和Profile相应字段的定义相匹配。 “长度”和“偏移值”根据“数据类型”的配置自动填充。 添加temperature字段,表示温度。在Profile中,temperature属性最大值1000,因此在插件中定义temperature字段的“数据类型”为“int16u”,以满足temperature属性的取值范围。 配置数据上报消息,只上报温度。 添加messageId字段,表示消息种类。在本场景中,用0x1标识只上报温度的消息。 添加temperature字段,表示温度。 配置命令下发消息。 添加value字段,表示下发命令的参数值。 拖动右侧“设备模型”区域的属性字段和命令字段,与数据上报消息和命令下发消息的相应字段建立映射关系。 level字段和temperature字段分别与Profile中的对应属性建立映射关系,messageId用于帮插件识别消息种类,不需要建立映射关系。 点击“保存”,并在插件保存成功后点击“部署”,将编解码插件部署到物联网平台。 调测编解码插件 在烟感产品的开发空间,选择“在线调测”,使用虚拟设备调试编解码插件。 勾选“没有真实的物理设备”,点击“创建”。 使用设备模拟器进行数据上报。 十六进制码流示例:000100F1。00表示messageId,此消息上报火灾等级和温度;01表示火灾级别,长度为1个字节;00F1表示温度,长度为2个字节。 在“应用模拟器”区域查看数据上报的结果:{level=1, temperature=241}。1为十六进制数01转换为十进制的数值;241为十六进制数00F1转换为十进制的数值。 十六进制码流示例:0100F1。01表示messageId,此消息只上报火灾温度;00F1表示温度,长度为2个字节。 在“应用模拟器”区域查看数据上报的结果:{temperature=241}。241为十六进制数00F1转换为十进制的数值。 使用应用模拟器进行命令下发:{ "serviceId": "Smoke", "method": "SET_ALARM", "paras": "{\"value\":1}" }。 在“设备模拟器”区域查看命令接收的结果:01。01为十进制数1转换为十六进制的数值。
  • 数据上报和命令下发 场景说明 有一款烟感设备,具有如下特征: 具有烟雾报警功能(火灾等级)和温度上报功能。 支持远程控制命令,可远程打开报警功能。比如火灾现场温度,远程打开烟雾报警,提醒住户疏散。 Profile定义 在烟感产品的开发空间,完成Profile定义。 level:火灾级别,用于表示火灾的严重程度。 temperature:温度,用于表示火灾现场温度。 SET_ALARM:打开或关闭告警命令,value=0表示关闭,value=1表示打开。 编解码插件开发 在烟感产品的开发空间,选择“编解码插件开发”。 配置数据上报消息。 添加level字段,表示火灾级别。 “字段名”只能输入包含字母、数字、_和$,且不能以数字开头的字符。 “数据类型”根据设备上报数据的实际情况进行配置,需要和Profile相应字段的定义相匹配。 “长度”和“偏移值”根据“数据类型”的配置自动填充。 添加temperature字段,表示温度。在Profile中,temperature属性最大值1000,因此在插件中定义temperature字段的“数据类型”为“int16u”,以满足temperature属性的取值范围。 配置命令下发消息。 添加value字段,表示下发命令的参数值。 拖动右侧“设备模型”区域的属性字段和命令字段,数据上报消息和命令下发消息的相应字段建立映射关系。 点击“保存”,并在插件保存成功后点击“部署”,将编解码插件部署到物联网平台。 调测编解码插件 在烟感产品的开发空间,选择“在线调测”,使用虚拟设备调试编解码插件。 勾选“没有真实的物理设备”,点击“创建”。 使用设备模拟器进行数据上报。十六进制码流示例:02013A。02表示火灾级别,长度为1个字节;013A表示温度,长度为2个字节。 在“应用模拟器”区域查看数据上报的结果:{level=2, temperature=314}。2为十六进制数02转换为十进制的数值;314为十六进制数013A转换为十进制的数值。 使用应用模拟器进行命令下发:{ "serviceId": "Smoke", "method": "SET_ALARM", "paras": "{\"value\":1}" }。 在“设备模拟器”区域查看命令接收的结果:01。01为十进制数1转换为十六进制的数值。
  • AT指令集 AT指令用于控制设备。如下AT命令仅供参考,具体命令集请向相应的模组厂商获取。 AT命令 作用 备注 AT+CMEE=1 报错查询。 标准AT指令 AT+CFUN=0 关机。设置IMEI和平台IP端口前要先关机。 标准AT指令 AT+CGSN=1 查询IMEI。IMEI为设备标识,应用服务器调用API接口注册设备时,nodeId/verifyCode都需要设置为IMEI。 标准AT指令 AT+NTSETID=1,xxxx xxxx为IMEI。如果查询不到可自行设置IMEI,IMEI必须是唯一的,不能与其他设备重复,且只能设置一次。 IMEI为设备标识,应用服务器调用API接口注册设备时,如果设备使用海思芯片,则nodeId/verifyCode都需要设置成IMEI;如果设备使用高通芯片,则nodeId/verifyCode都需要设置成urn:imei:IMEI。 海思芯片私有AT指令,在flash中保存IMEI。应用服务器在向平台进行设备注册时,使用此参数,其他芯片或模组厂商可参考实现。 AT+NCDP="IP","port" 设置设备对接的物联网平台的IP地址和端口号,5683为非加密端口,5684为DTLS加密端口。 海思芯片私有AT指令,在flash中保存IP和端口。应用服务器在向平台进行设备注册时,使用此参数,其他芯片或模组厂商可参考实现。 AT+CFUN=1 开机。 标准AT指令 AT+NBAND=频段 设置频段。 海思芯片私有AT指令,在flash中保存频段。设备在入网时,使用此参数,其他芯片或模组厂商可参考实现。 AT+CGDCONT=1,"IP","CTNB" 设置核心网APN。APN与设备的休眠、保活等模式有关,需要与运营商确认。 标准AT指令 AT+CGATT=1 入网。 标准AT指令 AT+CGPADDR 获取终端IP地址。 标准AT指令 AT+NMGS=x,xxxx 发送上行数据。第1个参数为字节数,第2个参数为上报的16进制业务码流。 海思芯片私有AT指令,初次发送数据时,完成设备注册;后续发送数据时,仅发送数据。其他芯片或模组厂商可参考实现。 AT+NQMGR 接收下行数据。 海思芯片私有AT指令,查询接收buffer中可以接收的数据量,以及当前总共接收的消息数和丢弃的消息数。其他芯片或模组厂商可参考实现。 AT+NMGR 读取数据。 海思芯片私有AT指令,读取从物联网平台(LWM2M SERVER)接收到的数据。其他芯片或模组厂商可参考实现。
  • 接入流程 测试场景:平台提供LoRaWAN协议的测试环境,多个用户共用一个Network Server,您可以通过提工单的方式获取测试账号,目前账号使用期限为7天,到期回收。 商用场景:LoRa服务商在华为云为每个客户部署一个Network Server。 前置条件: 在LoRaWAN设备接入物联网平台前,您需要完成以下前置条件: 选择LoRa服务商:选择一个LoRa服务商并与其达成合作关系,您可以通过提交工单咨询华为云物联网平台当前支持的LoRa服务商。 完成LoRa网络的对接调试:在选择LoRa服务商后,您需要根据LoRa服务商的要求和指导,完成LoRaWAN设备、LoRa网关和LoRa Server的对接调试。 接入流程: 步骤 说明 对接LoRa Server LoRa Server作为一个MQTT设备在物联网平台上注册并上线。 创建LoRa网关 LoRa网关作为LoRa Server下的一个子设备,在物联网平台上注册。 创建LoRaWAN设备 LoRaWAN设备作为LoRa Server下的一个子设备,在物联网平台上注册。 业务调试 对接入物联网平台的LoRaWAN设备进行数据上报和命令下发测试,具体操作可参考数据上报和命令下发。
  • 概述 LoRa(Long Range Radio)是当前应用较广的一种物联网无线接入技术,它最大的特点就是在同样功耗条件下比其他无线接入方式传播的距离更远,实现了低功耗和远距离的统一,它在同样的功耗下比传统的无线射频通信距离扩大3-5倍。而LoRaWAN是为LoRa远距离通信网络设计的一套通讯协议和系统架构。 物联网平台支持设备通过LoRa网络接入,但LoRaWAN设备不能直连物联网平台,需要经过LoRa服务商提供的LoRa Server接入物联网平台,如下图所示。 LoRa Server:由LoRa服务商提供的LoRa接入服务器,LoRa Server与物联网平台之间通过MQTT协议对接,与LoRa网关之间通过标准IP网络对接。 LoRa网关:LoRa网关向设备提供LoRa网络接入,设备通过LoRa网关对接到LoRa Server。LoRa网关通常也由LoRa服务商提供。 LoRaWAN设备:LoRaWAN设备即LoRa节点,其通过LoRa网络接入LoRa网关,然后通过LoRa Server最终接入到物联网平台。LoRaWAN设备可以通过以下几种方式获取: 直接购买合适的LoRaWAN设备。 购买LoRa模组,并集成到设备中。 LoRaWAN设备和LoRa网关并无一一对应关系,LoRaWAN设备可通过LoRa网络向任一个LoRa网关发送数据。若多个LoRa网关同时接收到一个LoRaWAN设备的数据并上报到LoRa Server,LoRa Server会进行数据去重。
  • 认证概述 华为IoT技术认证是华为面向合作伙伴提供的IoT技术认证服务,旨在通过严谨而专业的检测技术帮助合作伙伴发现并解决自身产品的不足,缩短产品上市周期,同时联合合作伙伴向共同的客户提供经过验证的方案。通过该认证的伙伴产品将获得华为颁发的IoT技术认证证书,该证书标志着华为对双方物联网产品预集成的技术认可。 技术认证特点: 权威性:提供华为商业化平台认证服务、国家/区域重要法规认证服务、重要行业安全标准认证服务,得到许多行业客户以及运营商的认可。 全面性:完备的测试环境和专业的测试服务,从功能、性能、可靠性、安全、可维护性等为物联网产品提供端到端的软硬件能力测试,高效打造优质产品。 多渠道推广:达到一定标准的产品可以在产品中心发布,获得证书的产品不仅可以在产品中心、华为云市场发布,而且还可以享受华为提供的商业推广机会,例如展会活动、联合营销等。 方便快捷 :OpenLab认证实验室全球覆盖、线上一站式申请、线下专业人员指导,为全球合作伙伴提供贴身的技术认证服务。 华为会针对行业特点对认证产品的安全进行必要的验证,但不承担合作伙伴所属产品的安全责任。
  • 认证分类 根据产品的认证方式、认证测试内容和认证目的不同,分为Enabled和Compatible两种认证证书。 因为设备的通信技术和集成方式不同,所以将Compatible证书细化为NB-IoT Compatible、Agent Lite Compatible和Agent Tiny Compatible三种认证类型。 认证证书 认证类型 认证对象 认证测试指导 Enabled Enabled 业务应用 测试指导请参考自助测试(联通用户专用)。 Compatible NB-IoT Compatible 使用NB-IoT通信技术的设备 测试指导请参考OpenLab现场测试。 Agent Lite Compatible 集成Agent Lite SDK的设备 Agent Tiny Compatible 集成LiteOS SDK的设备 如需申请技术认证请联系oceanconnect@huawei.com。
  • OpenLab现场测试 合作伙伴在物联网平台上完成产品开发(包括平台侧开发、设备侧开发和应用侧开发)后,然后才可以进行OpenLab技术认证,认证流程如下。 关键操作 说明 相关资源 成为合作伙伴 提交企业相关信息,成为合作伙伴,可以申请合作伙伴的权益。 注:如果未 注册华为账号 ,需先进行华为账号注册。 成为合作伙伴 合作方案构建 合作伙伴根据华为提供的构建指导书,提交合作方案资料。通过专业检测服务完成该方案的构建和优化。 - 合作方案技术认证 合作方案完成构建后,合作伙伴可以申请华为技术认证。通过认证的方案,将获得华为颁发的技术认证证书,同时该技术认证结果将公布到华为技术认证证书网站供合作伙伴和客户查询。 华为IoT应用认证指导(Enabled) 华为NB-IoT终端认证指导(Compatible) 华为IoT Agent Lite终端认证指导(Compatible) 华为IoT Agent Tiny终端认证指导(Compatible)
  • 应用开发资源 为了降低应用的开发难度、提升开发效率,物联网平台开放了丰富的Restful API和SDK包。应用通过调用物联网平台的API,实现安全接入、设备管理、数据采集、命令下发等业务场景。 资源包名 描述 下载 应用侧开发 API JAVA Demo 物联网平台为应用服务器提供了Restful API,能够让开发者快速验证Restful接口开放的能力,体验业务功能,熟悉业务流程。 使用指南可以参考IoT平台应用侧API参考。 API JAVA Demo 应用侧开发 Java SDK Java SDK提供JAVA方法调用物联网平台Restful接口与平台通信,Demo提供调用SDK接口的样例代码。 使用指南可以参考IoT平台应用侧JAVA SDK API参考和JAVA SDK 使用指南 JAVA SDK JAVA SDK Demo 应用侧开发 Python SDK Python SDK提供Python方法调用平台Restful接口与平台通信,Demo提供调用SDK接口的样例代码。 使用指南可以参考IoT平台应用侧Python SDK API参考和Python SDK使用指南。 Python SDK Python SDK Demo
  • 证书资源 在设备和应用对接物联网平台的部分场景中,需要在设备侧和应用侧集成相应证书。请点击获取证书文件。 此证书文件只适用于华为云物联网平台。 证书类型,证书格式,以及适用开发语言,用途详见下表。 证书包名称 一级目录 二级目录 三级目录 说明 certificate Northbound API code Java 应用服务器通过HTTPS协议调用物联网平台接口,用于校验物联网平台的合法性时,使用该目录下的证书。请根据应用服务器侧的编程语言选择相应目录下的证书文件,并置于应用服务器侧。 PHP Python postman - Postman通过HTTPS协议调试物联网平台接口时,使用该目录下的证书。 Agent Lite Android - 终端设备或网关通过集成Agent Lite SDK接入物联网平台时,使用该目录下的证书。请根据终端设备或网关侧的编程语言选择相应目录下的证书文件,并置于终端设备或网关侧。 C-Linux - Java -
  • 设备开发资源 物联网平台支持设备通过MQTT协议和LWM2M/CoAP协议进行接入,设备可以通过调用设备侧的接口或者集成SDK的方式接入到物联网平台。 资源包名 描述 下载路径 Agent Lite SDK(Linux C) 设备可以通过集成Agent Lite SDK接入物联网平台, Demo提供了调用SDK接口的样例代码。 使用指导可以参考 Agent Lite API参考(C)和Agent Lite SDK使用指南(C)。 Agent Lite SDK(Linux通用) Agent Lite SDK(指定工具链) Agent Lite Demo(C-Linux) Agent Lite SDK(Windows C) 设备可以通过集成Agent Lite SDK接入物联网平台, Demo提供了调用SDK接口的样例代码。 使用指导可以参考 Agent Lite API参考(C)和Agent Lite SDK使用指南(C)。 Agent Lite SDK(Windows) Agent Lite Demo(C-Windows) 说明: Demo的libs文件夹下为32位SDK,若需要使用64位SDK,请下载并替换Demo中的SDK。 Agent Lite SDK(Java) 设备可以通过集成Agent Lite SDK接入物联网平台, Demo提供了调用SDK接口的样例代码。 使用指导可以参考 Agent Lite API参考(Java)和Agent Lite SDK使用指南(Java)。 Agent Lite Demo(Java) 说明: SDK在Demo的libs文件夹下。 Agent Lite Demo(Java)仅适用于Windows系统环境。 Agent Lite SDK(Android) 设备可以通过集成Agent Lite SDK接入物联网平台, Demo提供了调用SDK接口的样例代码。 使用指导可以参考 Agent Lite API参考(Android)和Agent Lite SDK使用指南(Android)。 Agent Lite Demo(Android) 说明: SDK在Demo的libs文件夹下。 LiteOS SDK 设备可以通过集成LiteOS SDK接入物联网平台,Demo提供了调用SDK接口的样例代码。 LiteOS SDK Profile模板 Profile模板中包含了典型场景的Profile样例,开发者可以在模板基础进行修改,定义自己需要的Profile。 使用指导可以参考离线开发Profile。 Profile开发示例 编解码插件样例 编解码插件的代码样例工程,开发者可以基于该样例工程进行二次开发。 使用指导可以参考离线开发插件。 编解码插件开发样例 编解码插件检测工具 用于检测离线开发的编解码插件的编解码能力是否正常。 编解码插件检测工具 NB-IoT设备模拟器 用于模拟以CoAP/LWM2M协议接入物联网平台的NB设备,实现数据上报和命令下发功能。 使用指导可以参考体验开发中心。 NB-IoT设备模拟器 IoT Studio IoT Studio是基于LiteOS嵌入式系统软件开发的工具,支持C,C++、汇编等多种开发语言,提供了代码编辑、编译、烧录及调试等一站式开发体验。 使用指导可以参考设备侧开发实践。 IoT Studio
  • 业务接口调用方法 设置好NorthApiClient实例后才能调用其他业务接口。以如下几个接口为例说明如何调用业务接口。 关于哪些参数需要设置,请查看《应用侧JAVA SDK API参考》。对于可选参数,如果业务不需要,可以不设置或者设置为null。 鉴权 1 2 3 4 5 6 7 8 9 //得到NorthApiClient实例后,再使用northApiClient得到鉴权类实例 Authentication authentication = new Authentication(northApiClient); //调用鉴权类实例authentication提供的业务接口,如getAuthToken AuthOutDTO authOutDTO = authentication.getAuthToken(); //从返回的结构体authOutDTO中获取需要的参数,如accessToken,不同接口的token是通用的,只用获取一次,token有效期为1小时。在即将到1小时前,可调用刷新鉴权接口重新获取token String accessToken = authOutDTO.getAccessToken(); 订阅 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 //得到NorthApiClient实例后,再使用northApiClient得到订阅类实例 SubscriptionManagement subscriptionManagement = new SubscriptionManagement(northApiClient); //先设置好subDeviceData的第一个入参SubDeviceDataInDTO结构体 SubDeviceDataInDTO sddInDTO = new SubDeviceDataInDTO(); sddInDTO.setNotifyType("deviceDataChanged"); //需要根据实际情况修改回调的ip和端口 ddInDTO.setCallbackUrl("https://XXX.XXX.XXX.XXX:8099/v1.0.0/messageReceiver"); try { //调用订阅类实例subscriptionManagement提供的业务接口,如subDeviceData SubscriptionDTO subDTO = subscriptionManagement.subDeviceData(sddInDTO, null, accessToken); System.out.println(subDTO.toString()); } catch (NorthApiException e) { System.out.println(e.toString()); } 注册设备 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 //得到NorthApiClient实例后,再使用northApiClient得到设备管理类实例 DeviceManagement deviceManagement = new DeviceManagement(northApiClient); //设置好注册设备接口的第一个入参RegDirectDeviceInDTO2结构体 RegDirectDeviceInDTO2 rddInDTO = new RegDirectDeviceInDTO2(); String nodeid = "86370303XXXXXX"; //this is a test imei String verifyCode = nodeid; rddInDTO.setNodeId(nodeid); rddInDTO.setVerifyCode(verifyCode); rddInDTO.setTimeout(timeout); //调用设备管理类实例deviceManagement提供的业务接口,如regDirectDevice RegDirectDeviceOutDTO rddod = deviceManagement.regDirectDevice(rddInDTO, null, accessToken); //从返回的结构体rddod中获取需要的参数,如deviceId String deviceId = rddod.getDeviceId();
  • SDK独立运行测试 SDK包中提供了可独立运行的jar包,用于测试平台Restful接口。可独立运行测试的jar包在testSDK目录下: 图1 可独立运行的jar包 修改config.properties后再双击运行runMe.bat即可进行测试。 图2 修改config.properties 如果使用商用证书,请直接将证书放在testSDK目录下面(证书名字不可以与ca.jks或者outgoing.CertwithKey.pkcs12相同),并在config.properties中配置证书名及密码;如果使用测试证书,则不需要修改config.properties中的证书信息。 测试结果会在最前面输出:[y]表示测试通过;[x]则表示出错,请仔细查看该行的错误提示或说明。 运行jar包需要依赖JDK,请确认已安装JDK并设置了系统环境变量。 运行runMe.bat的结果如下:
  • 开发环境要求 开发平台 开发环境 配套要求 推荐的操作系统 IoT 1) J2EE for Java Developers 2) Maven插件:m2e - Maven Integration for Eclipse (includes Incubating components) JDK 1.8及以上版本 Windows7 SDK包为纯JAVA的JAR包,在使用上没有特殊限制,JDK在1.8及以上版本即可。
  • 初始化及证书配置 新建一个NorthApiClient实例,设置好ClientInfo(包括平台IP、端口、appId和密码),再初始化证书。 平台IP、端口、appId和密码都是从配置文件./src/main/resources/application.properties中读取的,因此,当这些信息发生变化时,只要修改配置文件,不用修改应用服务器的代码。本章节所指的证书是平台提供的,在调用平台接口过程中使用;一般情况下,与回调使用的证书不一样。 使用测试证书: 1 2 3 4 5 6 7 8 9 10 11 12 NorthApiClient northApiClient = new NorthApiClient(); PropertyUtil.init("./src/main/resources/application.properties"); ClientInfo clientInfo = new ClientInfo(); clientInfo.setPlatformIp(PropertyUtil.getProperty("platformIp")); clientInfo.setPlatformPort(PropertyUtil.getProperty("platformPort")); clientInfo.setAppId(PropertyUtil.getProperty("appId")); clientInfo.setSecret(PropertyUtil.getProperty("secret")); northApiClient.setClientInfo(clientInfo); northApiClient.initSSLConfig();//默认使用测试证书,且不进行主机名校验 如果不使用测试证书,可使用指定证书(如商用证书): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 NorthApiClient northApiClient = new NorthApiClient(); PropertyUtil.init("./src/main/resources/application.properties"); ClientInfo clientInfo = new ClientInfo(); clientInfo.setPlatformIp(PropertyUtil.getProperty("platformIp")); clientInfo.setPlatformPort(PropertyUtil.getProperty("platformPort")); clientInfo.setAppId(PropertyUtil.getProperty("appId")); clientInfo.setSecret(getAesPropertyValue("secret")); SSLConfig sslConfig= new SSLConfig(); sslConfig.setTrustCAPath(PropertyUtil.getProperty("newCaFile")); slConfig.setTrustCAPwd(getAesPropertyValue("newCaPassword")); slConfig.setSelfCertPath(PropertyUtil.getProperty("newClientCertFile")); slConfig.setSelfCertPwd(getAesPropertyValue("newClientCertPassword")); northApiClient.setClientInfo(clientInfo); northApiClient.initSSLConfig(sslconfig); //使用指定的证书,且默认使用严格主机名校验 使用指定证书时,如果不使用严格主机名校验,在调用northApiClient.initSSLConfig(sslconfig)之前可以自行设置主机名校验方法: 1 2 3 4 5 6 7 northApiClient.setHostnameVerifier(new HostnameVerifier() { public boolean verify(String arg0, SSLSession arg1) { // 自定义主机名校验 …… return true; } }); 主机名校验方法应以安全为原则,不应该直接返回true。
  • 使用真实设备调测 请先参照设备侧开发将设备接入开发中心,开发中心的接入地址请参照平台对接信息获取。 确保设备上报的数据信息与Profile中定义的一致,且如果设备上报的是二进制码流,请确保已经开发了编解码插件。 在产品开发空间,点击“在线调测”。 在“设备列表”区域,点击“新增测试设备”。 系统将弹出“新增测试设备”窗口,勾选“有真实的物理设备”,完成各项参数配置后,点击“创建”。 “设备名称”只允许大小写字母、数字和下划线,需要在产品下保持唯一。 “设备标识”需要在产品下保持唯一,如设备的IMEI、mac等。 “验证码加密”根据设备的实际情况进行配置。 设备创建成功后,将返回“设备ID”和“PSK码”。如果设备使用DTLS协议接入物联网平台,请妥善保存PSK码。 在设备列表中,选择新创建的真实设备,进入调试界面。 将真实设备接入到物联网平台,并进行数据上报,在“应用模拟器”区域查看数据上报的结果,在“消息跟踪”区域查看物联网平台处理日志。 在“应用模拟器”区域进行命令下发,在“消息跟踪”区域查看物联网平台处理日志,在真实设备上查看接收到的命令。
  • 使用虚拟设备调测 在产品开发空间,点击“在线调测”。 在“设备列表”区域,点击“新增测试设备”。 系统将弹出“新增测试设备”窗口,勾选“没有真实的物理设备”,点击“创建”。 在设备列表中,选择新创建的虚拟设备,进入调试界面。虚拟设备名称组成为:“产品名称”+“Simulator”,每款产品下只能够创建一个虚拟设备。 在“设备模拟器”区域,输入十六进制码流或者JSON数据(以十六进制码流为例),点击“发送”,在“应用模拟器”区域查看数据上报的结果,在“消息跟踪”区域查看物联网平台处理日志。 在“应用模拟器”区域进行命令下发,在“设备模拟器”区域查看接收到的命令(以十六进制码流为例),在“消息跟踪”区域查看物联网平台处理日志。
  • 设备管理 平台为每一个注册到平台上的设备生成了一个deviceId,这是设备在平台上的唯一ID,在接口调用时,每个与设备的相关操作都需要deviceId。开发中心的“设备管理”功能模块呈现本项目中的所有产品下的真实设备和虚拟设备,并提供分类统计、在线调测、设备日志等功能,以便于进行设备管理和问题定位。 在“设备管理”新增真实设备,设备名称由开发者定义。当设备侧开发已经完成时,您可以在开发中心创建真实设备,对真实物理设备、编解码插件、应用服务器等进行端到端调试。 在“设备管理”新增虚拟设备,设备名称由系统生成,名称组成为:“产品名称”+“Simulator”,每款产品下只能够创建一个虚拟设备。当设备侧开发还未完成时,您可以在开发中心创建虚拟设备,对编解码插件、应用服务器等进行调测。
  • 迁移应用 迁移应用是指将对接了开发中心(测试环境)的应用服务器迁移到设备管理服务(商用环境)中去,您需要完成以下步骤: 为了使应用服务器能对接这个业务使用空间,您需要将对接的平台地址修改为“设备管理服务”的应用对接地址,应用对接地址获取请参考平台对接信息。 在“设备管理服务”中,应用对应的是开发中心的项目。为了使应用服务器能调用平台的接口,您需要将应用服务器中设定的应用ID和应用密钥修改为新的值。 如果应用服务器调用“鉴权”接口成功,表明应用服务器已对接到商用环境。
  • 迁移设备 迁移设备是指将对接了开发中心(测试环境)的设备迁移到设备管理服务(商用环境)中去。迁移对接的过程中,开发中心数据不割接,由应用服务器负责保存设备在开发中心的历史数据。 您需要将设备根据通信协议修改对接的平台地址为“设备管理服务”的设备对接地址,设备对接地址获取请参考平台对接信息。 您需要在“设备管理服务”中注册设备,可以使用应用服务器调用平台注册设备接口,也可以在界面上注册设备。 平台为每一个注册到平台上的设备生成了一个deviceId,这是设备在平台上的唯一ID,您需要将设备和ID映射关系刷新为新的ID。
  • 开始使用 物联网平台设备提供海量设备的接入和管理能力,配合华为云其他产品同时使用,帮助快速构筑物联网应用,简化海量设备管理复杂性,节省人工操作,提升管理效率。 功能 简介 应用管理 应用可以理解为在物联网平台中为用户的业务划分一个项目空间,当用户在开发中心、线下环境里完成应用服务器侧的开发、物联网平台侧的开发以及设备侧的开发后,就需要在控制台上创建应用,将开发完的应用服务器与真实设备接入到这个项目空间中,实现设备的数据采集和设备管理。 产品模型 又称Profile,用于定义一款接入设备所具备的属性(如颜色、大小、采集的数据、可识别的指令或者设备上报的事件等信息),然后通过厂家、设备类型和设备型号,唯一标识一款设备,便于平台识别。产品模型可通过开发中心进行无码化开发。 设备注册鉴权 物联网平台对接入平台的设备进行鉴权认证。待真实设备上电后,设备可以上报数据到物联网平台,物联网平台根据应用服务器的订阅消息类型,把消息推送给应用服务器。 订阅推送 订阅:是指应用服务器通过调用物联网平台的API接口,向平台获取发生变更的设备业务信息(如设备注册、设备数据上报、设备状态等)和管理信息(软固件升级状态和升级结果)。 推送:是指订阅成功后,物联网平台根据应用服务器订阅的数据类型,将对应的变更信息推送给指定的URL地址。 数据上报 当设备完成和物联网平台对接后,一旦设备上电,设备基于在设备定义上的业务逻辑进行数据采集和上报,可以是基于周期或者事件触发。 命令下发 为能有效地对设备进行管理,设备的产品模型中定义了物联网平台可向设备下发的命令,应用服务器可以调用物联网平台开放的API接口向单个设备或批量设备下发命令,或者用户通过物联网平台直接向单个设备下发命令,配置或修改设备的服务属性值,以实现对设备的远程控制。 设备配置更新 物联网平台提供设备配置更新功能,即用户可通过控制台对单个设备或批量设备的设备属性值进行修改,满足用户频繁、快捷、方便的管理设备的诉求。 设备影子 设备影子是一个JSON文件,用于存储设备的在线状态、设备最近一次上报的设备属性、应用服务器期望下发的配置。每个设备有且只有一个设备影子,设备可以获取和设置设备影子以此来同步状态,这个同步可以是影子同步给设备,也可以是设备同步给影子。 规则引擎 指用户可以在物联网平台上可以对接入平台的设备设定相应的规则,在条件满足所设定的规则后,平台会触发相应的动作来满足用户需求。包含设备联动和数据转发两种类型。 群组与标签 群组是一系列设备的集合,用户可以对应用下所有设备,根据区域、类型等不同规则进行分类建立群组,以便处理对海量设备的批量管理和操作。 物联网平台支持定义不同的标签,并对设备打标签,通过标签,可以快速筛选设备。 设备监控 提供查看设备详情、设备状态管理、查看报表、查看操作记录、查看审计日志、告警管理、设备消息跟踪等设备监控与运维能力,提升设备的可维护性。 远程诊断 支持用户对接入的设备进行远程维护操作,快速定位问题及恢复业务,减少近端维护引入的高成本。当前支持的远程维护操作包括设备的运行日志收集、重启模组。 固件升级 用户可以通过OTA的方式对支持LWM2M协议的设备进行固件升级,升级协议为LWM2M协议。 软件升级 用户可以通过OTA的方式支持对LWM2M协议的设备进行软件升级,升级协议为PCP协议。 网关与子设备 物联网平台支持设备直连,也支持设备挂载在网关上,作为网关的子设备,由网关直连,通过网关进行数据转发。
  • 使用限制 描述 限制 支持的MQTT协议版本 3.1.1 与标准MQTT协议的区别 支持Qos 0和Qos 1 不支持QoS2 不支持will、retain msg 不支持Topic自定义 MQ TTS 支持的安全等级 采用TCP通道基础 + TLS协议(TLSV1、 TLSV1.1和TLSV1.2 版本) 单帐号每秒最大MQTT连接请求数 无限制 单个设备每分钟支持的最大MQTT连接数 1 单个MQTT连接每秒的吞吐量,即带宽,包含直连设备和网关 3KB/s MQTT单个发布消息最大长度,超过此大小的发布请求将被直接拒绝 1MB MQTT连接心跳时间建议值 心跳时间限定为30至1200秒,推荐设置为120秒 产品是否支持自定义Topic 不支持 消息发布与订阅 设备只能对自己的Topic进行消息发布与订阅 每个订阅请求的最大订阅数 无限制
  • 接口介绍 API分组 应用场景 应用安全接入 本部分接口提供“鉴权”以及“刷新token”两个接口。应用服务器通过调用这两个接口获取鉴权令牌,是调用其他平台API的前提,其他接口调用都需要在请求的Header中携带参数app_key和Authorization。 app_key取值与请求参数中appId相同。 Authorization的格式为Authorization: Bearer {accessToken}。 关于应用安全接入的接口一般有两种调用模式,一种是每次业务处理前都调用一下鉴权接口重新获取token,然后用token来调用其他业务接口;另外一种是应用服务器有一个有效管理机制,通过定期地刷新token,保证在调用其他业务接口前token都是有效的。 设备管理 本部分接口提供设备管理的相关功能。设备作为一种资源,设备管理接口提供了注册设备,删除设备,修改设备信息、位置信息等。查询设备信息的接口归类在“数据采集”中。 平台的接入的设备有两种,直连设备和非直连设备。 直连设备指已实现TCP/IP协议栈的设备,它可以直接与平台进行通信,常见的设备包括网关、以太网设备、NB-IoT设备等。 非直连设备指未实现TCP/IP协议栈的设备,只能基于一些简单的近场通信协议如ZigBee、ZWave、Bluetooth或者是其他的一些非IP有线方式传输协议如串口、并口等接入,此时需要一个网关设备,先让设备接入到网关,再通过网关与华为物联网平台通信。 设备管理的接口中提供了发现非直连设备、删除非直连设备等接口。如果您的方案中不包含非直连设备,则不需要调用这两个接口。 数据采集 数据采集接口提供设备的查询、批量设备查询、设备历史数据和历史命令的查询、设备能力(即profile中定义的设备能力)查询。 当应用服务器向平台查询设备的历史数据和历史命令时,这些数据已经存储在物联网平台上,因此与设备是否在线无关。 订阅管理 物联网平台允许应用服务器订阅其所关注的事件,每一种事件的每一次订阅都会生成一个subscriptionId,应用服务器可以使用subscriptionId对本次订阅进行查询、更新、删除等操作。 平台是通过Restful接口向应用服务器推送数据的,因此应用服务器需要开发一个Restful接口来接收推送数据,这个接口的URL也需要在订阅时提供给物联网平台。由于不同事件的推送消息结构不同,因此应用服务器可以考虑为每一种事件实现一个Restful接口。 注意事项: 关于平台上的事件种类和推送的消息样例,请参考推送通知。 https推送的前提是先在平台上上传应用服务器的CA证书。 命令下发 本部分接口提供命令的创建、删除、查询、批量创建等功能。 批量处理 目前仅支持创建批量下发缓存命令任务,您也可以查询批量任务信息。 设备组管理 应用服务器可以通过本部分接口在物联网平台上管理设备组。设备组是把设备进行分组管理。一个设备可以归属到多个设备组内。 在对设备进行某些操作时(如升级设备软固件、批量下发命令等),可通过设备组来指定要进行操作的设备。 设备升级 若需要对设备进行软固件版本升级,应用服务器可调用本部分接口为多个设备创建升级任务,升级前请确保目标版本包已经上传到物联网平台。当前仅支持对CoAP接入的设备进行软固件版本升级。
  • 调测“查询设备”接口 应用服务器需要查询在物联网平台注册的设备详情时,可以调用此接口。 应用服务器需要构造一个HTTP请求,请求示例如下: GET https://iotdm.cn-north-4.myhuaweicloud.com/v5/iot/{project_id}/devices/{device_id} Content-Type: application/json X-Auth-Token: ******** 接下来参考API文档,调测物联网平台“查询设备”接口。 注:在以下步骤中,只呈现样例调测用到的参数。 配置“查询设备”接口的HTTP方法、URL和Headers。 点击“Send”,在下方查看返回码和响应消息内容。
  • 调测“获取 IAM 用户Token”接口 在访问物联网平台业务接口前,应用服务器需要调用“获取IAM用户Token”接口鉴权,华为云认证通过后向应用服务器返回鉴权令牌X-Subject-Token。 应用服务器需要构造一个HTTP请求,请求示例如下: POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxx" } } } } 接下来参考API文档,调测“获取IAM用户Token”接口。 配置“获取IAM用户Token”接口的HTTP方法、URL和Headers。 配置“获取IAM用户Token”接口的Body。 点击“Send”,在下方查看返回码和响应消息内容。 请将返回头域中的的X-Subject-Token更新到“OcceanConnect”环境的“X-Auth-Token”参数中,以便于在调用其它接口时使用。若超过令牌有效时间,需要重新调用鉴权接口。 这里我们已经在postman中自动更新了“X-Auth-Token”参数,使用时无需手动操作。
  • 调测“查询产品”接口 应用服务器如果需要查询之前创建的产品详情,可以调用此接口。 应用服务器需要构造一个请求,请求示例如下: GET https://iotdm.cn-north-4.myhuaweicloud.com/v5/iot/{project_id}/products/{product_id} Content-Type: application/json X-Auth-Token: ********
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全