-
本文为该系列第三篇,在开发者对NB-IoT方案的对接开发流程有一个大致了解后,让我们来看看对于对接流程中涉及的4个主要组件,华为提供了哪些资源可以利用,从而加速对接开发流程。首先介绍两篇对开发者的方案设计很有帮助的文档:《华为IoT OceanConnect生态集成开发入门》《华为IoT Platform北向应用开发指南》1,设备Profile文件开发指南:《华为IoT设备能力描述文件profile开发指南》Demo:设备描述文件profile模板Profile自动检测工具:(内测中,可通过私信申请)2,编解码插件开发文档:华为IoT平台编解码库开发指南Demo:华为NB-IoT设备编解码插件样例3,南向设备SoftRadio使用指南:随SoftRadio软件一同提供NB模组相关文档(请向模组提供商索取)4,北向应用接口文档:《华为IoT Platform API参考(北向)》本系列后续文章将分别针对这4个模块开发中的问题,进行总结,输出FAQ,帮助大家更好理解。
-
在开发者通过阅读本系列首篇帖子,对NB-IoT方案有一个基本的了解后,本文将指导开发者如何开展对接工作。对接准备:1,申请加入IoT解决方案伙伴计划可通过以下网址的“开发概述”获取相关流程介绍https://support.huaweicloud.com/productdesc-IoT/iot_04_0002.html 2,获取华为物联网平台OceanConnect的IP和Port,申请SoftRadio软件获取到伙伴计划资质后,凭借相关邮件回复,可以申请华为物联网平台OceanConnect的相关资源。只有获得相关资源,才可以展开后续的对接工作。而SoftRadio软件是一个PC端软件,可以在缺乏NB模组或缺乏NB实网的情况下,优先展开南向设备和北向应用的对接研发工作。(也可通过以下网址的“开发概述”获取相关流程介绍)https://support.huaweicloud.com/productdesc-IoT/iot_04_0002.html设备接入 与 数据上报:1,通过SP Portal在平台上创建“应用”,获得appid和secretSP Portal是OceanConnect物联网平台呈现给开发者使用的前台界面,可以完成一些基本的应用管理、设备管理(直接添加设备无效)、数据查看、信令查看等功能。开发者首先需要登录SP Portal(账户名、密码会随着平台资源一同下发),创建一个“应用”。这个“应用”可以理解成开发者的北向应用在平台的一个映射。应用创建完成后,平台会返回appid和secret。开发者需要妥善保存好这两个值。(下发平台资源时,华为研发平台管理员有可能已经为开发者创建了一个初始的应用,并提供了appid和secret,此时直接跳过创建应用步骤即可)2,设备Profile:完成开发,并上传到平台设备Profile文件定义了设备的基本信息和服务能力,只有上传了设备Profile文件,才能正确的绑定设备,接收数据,发送信令。根据华为提供的文档和Demo示例,开发设备Profile文件,并按指定格式压缩成zip包。之后开发者可以自行通过SP Portal,将设备Profile描述文件的zip包上传到平台已经创建的应用中。(也可以寻找华为支持人员帮助进行初步的检查和上传)3,北向应用:首先实现鉴权、注册直连设备、修改设备信息根据华为提供的文档、Lite Demo示例、图形化Demo示例等资源,进行北向应用的开发。为了南北对接联调,应该首先完成以下3个功能接口:鉴权、注册直连设备、设置设备信息。完成了上述3个功能接口后,将可以在平台上创建一个离线设备。可以通过SP Portal查看设备是否创建成功,设备各项信息是否设置完整正确。4,编解码器:完成开发,并上传到平台编解码器要实现2个主要接口(解码与编码),承担4个任务:对上报的数据进行解码;对上报的信令响应进行解码;对下发的信令进行编码;对下发的数据响应进行编码;开发者可以根据华为提供的文档和Demo示例程序,进行开发。开发过程中,强烈建议开发者不要轻易修改目录结构和依赖库,而只是修改encode和decode两个接口的具体实现。在验证完上述4个任务,对各种输入的16进制码流和json数据进行完整测试后,如果测试的输出符合开发者要求,则可将编解码插件提交给华为平台支持人员,代为上传。同时,需要提交公钥和设备profile文件。5,南向设备:发起绑定请求在SP Portal上能查看到一个离线设备后,且设备的各项信息完整正确,profile和对应的编解码插件都已上传,此时可以开始南向设备的绑定操作。方法一:使用SoftRadio进行模拟NB模块、基站、NB核心网,通过图形化界面进行绑定;(详见SoftRadio使用指南)方法二:直接使用NB模块(在有NB实网的情况下),通过配置平台信息和发送数据,完成设备的绑定。(详见相应模块的AT命令手册)设备绑定成功后,可以从SP Portal上看到设备状态从离线变为在线。6,南向设备:发送数据南向设备使用AT+NMGS命令,通过串口,向NB模块或者SoftRadio发送数据。数据的发送格式务必和编解码插件中的定义匹配。数据如果发送成功,可以在SP Portal的设备event一栏看到相关的内容。如果event内没有内容,则数据上传失败,具体原因需要结合实际情况进行分析,可在【自调试】系列中查找答案。7,北向应用:通过数据查询接口或者消息订阅获取数据北向服务器端应用可以通过事先订阅数据变化消息,或者通过数据查询接口,获取到南向设备发送到平台的数据。信令下发:1,北向应用:创建信令 ,并下发北向应用创建一条信令,信令的各个参数,请符合设备Profile文件中定义的内容。2,南向设备:信令接收南向设备要接收到信令,有以下几个前提条件:在信令的有效时间内,南向设备在线或上报一次数据,平台才会将信令发送给设备;南向设备发送AT+NMGR,读取模块或者SoftRadio的缓冲区数据,如果不读取,则信令和数据上报的响应都会存在缓冲区,默认情况下不会自动推送到设备端;南向设备发送的AT+NMGR的频率一定要高于数据上报的频率,否则缓冲区将囤积大量的数据上报响应,而下发的信令将无法及时到达设备。(通过设置AT+NNMI=1,SoftRadio或NB模块会自动通过串口推送缓冲区数据到设备)3,南向设备:信令执行完毕,返回信令执行结果信令执行完毕,务必返回信令执行结果给平台。否则信令在下一次数据上报时,仍将继续下发。信令执行结果的返回格式,请与编解码插件的实现保持一致。其他功能模块的开发:根据需求,完成其他功能,例如批量处理、规则引擎等
-
(转自 https://developer.huawei.com/ict/forum/thread-19045.html )希望通过最简化的介绍,让开发者对整个方案从总体上有所了解,明白方案中涉及的各个组件的作用和依赖关系,从而便于之后研发工作的开展。名词解释:* 南向设备:开发者自行开发的终端硬件设备(包含多个传感器和MCU)。* 北向应用:开发者自行开发的服务端应用(基于华为OceanConnect物联网平台提供的RESTful接口)。* NB-IoT:窄带物联网,华为等公司主推的物联网通讯用蜂巢网络。* NB芯片/模组:类似于3G/4G通信模组,将设备端数据打包发送到指定平台的硬件模块。* SoftRadio:用于模拟NB模组、基站、核心网的PC端软件,可用于在缺乏NB模组和NB实网环境时的设备对接调试。* OceanConnect:华为物联网全联接平台,南向设备和北向应用通过该平台交换数据和信令。* 设备Profile文件:描述设备“是什么”、“能干什么”的json格式文件,上传到OceanConnect平台(上传时是zip包格式),设备绑定平台和提供服务的关键配置文件。* 编解码插件:用来对NB设备上报的数据进行解码,同时对下发给NB设备的信令进行编码的插件,对接前需上传到OceanConnect平台。基本业务:1,数据上报* 概念:数据上报是物联网业务中最基础的一项。终端设备将需要上报的数据通过NB-IoT网络发送到华为物联网平台,而后北向应用通过RESTful接口获取这些数据(或平台主动推送已订阅的数据)。* 流程:1, 南向设备采集数据、并将数据按自定义规则进行编码,例如:将温湿度实时数据编码成000102;2,设备通过串口,以AT命令的形式,发送已编码数据到NB-IoT模组或SoftRadio模拟器,例如:发送”AT+NMGS=3,000102/r/n”;3, NB-IoT芯片/模组或SoftRadio模拟器,接收到AT命令后,将payload(例如:000102)后,自动封装为CoAP协议的消息,并发送给事先配置的华为物联网平台;4, 华为物联网平台收到数据后,自动解析CoAP协议包,根据设备profile文件,找到匹配的编解码插件,对payload(例如:000102)进行解析,解析为与设备profile中描述的service匹配的json数据,并存于平台之上;5, 应用服务器通过北向数据查询接口(RESTful)获取平台上的数据;同时也可以提前调用订阅接口,对数据变化进行订阅,则之后所有的数据变化,平台都会通过POST消息,发送到制定的服务器。2,信令下发* 概念:信令下发是另一个物联网的基本业务。应用服务器通过物联网平台,发送信令到南向设备,而设备也将做出一些对应的响应。* 流程:1, 应用创建信令(命令的相关项需要和设备Profile中的描述一致),发送到平台;2, 如果平台判断设备在线,则立即下发信令;如果平台判断设备离线,则信令将缓存于平台的数据库中;3, 南向设备在某时刻上报数据,平台收到数据后,将检索对应设备在数据库中是否存在有效未下发的信令,如有,则下发该信令;4, 信令通过编解码插件进行编码(json到16进制码流),并被发送到设备端;5, 设备收到信令,执行完毕,返回信令执行结果;6, 平台收到上述执行结果,通过编解码插件的解析,获取信令执行的结果,修改对应的信令状态。开发者到底有哪些组件需要开发?通过上述两个基本业务的介绍,主要是为了让开发者明白以下4个组件是如何配合完成工作的:* 南向设备* 设备Profile文件* 编解码插件* 北向服务器端应用而开发者的主要开发工作,也就是围绕上述4个组件展开的
-
NB模块绑定设备失败怎么办?SoftRadio调试后,自然要切换到NB模组和实网的调测,调测过程中,又会遇到很多新的问题。这里先谈一下NB模块绑定设备失败的问题如何定位。1,北向应用是否注册了以NB模块IMEI号为nodeid和verifycode的直连设备?timeout设置的时间是否够长。这里北向应用注册直连设备的时候,不再使用SoftRadio中要求的TEST$_开头的格式为nodeid和verifycode。而后必须直接使用NB模块的IMEI号作为nodeid和verifycode。同时,timeout设置的时间,也必须足够南向设备发送绑定请求。2,北向应用注册直连设备后,是否调用设置设备信息接口,修改设备基本信息?设备注册完毕后,获得deviceId。而后应调用设备设备信息的接口,修改设备的manufacturerId\model\deviceType\protocolType项。且上述4项,必须与开发者上传的设备Profile中的内容完全一致。3,NB模块是否能收到NB基站的信号?NB模块,通过AT+CSQ?命令查询NB信号强度。没有信号或强度过低,需要联系运营商进行调整。4,NB模块是否能够附着网络?NB模块,通过AT+CEREG?获取注册网络信息,如果返回状态为未注册或者注册被拒绝,则联系运营商,进行沟通。可能是NB模块的版本与运营商基站的版本不匹配。5,NB模块是否能够ping通华为物联网平台?NB模块,通过AT+NPING命令,尝试ping华为物联网平台。如果无法ping通,则说明运营商网络无法连接到公网。则需要联系运营商或者华为一线支撑人员,询问该地运营商的核心网是否没有连到公网,是否只能连接该地运营商的物联网平台。或者与运营商和华为一线支撑人员协商,看怎么能够打通隧道,连到公网。6,NB模块是否正确设置的平台的IP和端口?NB模块,通过AT+NCDP命令,设置连接的华为物联网平台的ip和端口。注意端口应该是南向设备的coap通讯端口,默认是5683,具体设置见iotadmin@huawei.com。7,发送的AT命令是否以\r\n结尾?8,NB模块检测发送的数据上报状态。NB模块,通过AT+NQMGS,检查已经发送的命令状态。PENDING,表示数据发出,但是平台没有进行相应。SENT,表示数据发出,平台进行了响应。ERROR,表示数据上报异常。如果是PENDING和ERROR,一般来说是网络问题,需要从基站和核心网进行分析;如果是SENT,说明数据到达了平台,则继续下一个步骤9的分析。9,发送的AT+NMGS数据是否能够被自己的编解码器解析。请先用华为提供的编解码插件检测工具,对自己即将发送的码流进行验证。10,如果上述流程都正确,还是无法在SP Portal上看到数据,则可以通过 devcenter.huawei.com 提交问题单。并注明你已经做过的测试的测试结果,华为的平台支撑人员将通过后台的log为你解开谜团。
-
咨询IOT方面的问题,到底是去哪个社区或论坛,太多了,像迷宫!提单的回答也找不到!!着急
-
对于大多数NB-IoT开发者来说,如果能在正式开发之前,快速体验NB-IoT的上报数据和命令下发流程,有利于加深对华为NB-IoT解决方案的理解,对于后续的开发、调试工作将是事半功倍的。按照本帖的操作流程指导,开发者可以利用已有Demo快速接入华为OceanConnect平台,零代码体验NB-IoT的数据上报和命令下发全流程。基于模组进行NB-IoT业务流程体验,要求具备以下条件:1. 已购买NB模组,对硬件有一定的了解。2. 调试地有NB网络覆盖。声明:由于利用NB模组调试涉及网络等不确定性问题,定位起来较为困难。如果在操作过程中无法确保入网成功,可提供模组日志给华为开发人员帮您排查。1 准备资源1.1 平台资源申请OceanConnect平台资源的方式:https://www.huaweicloud.com/product/iot.html11.2 NB模组需自行向NB模组厂商购买。目前NB-IOT模组(集成华为NB-IOT芯片)由两家合作伙伴提供,分别是上海移远和杭州利尔达。您可以直接向他们咨询获取模组,详细规格信息可以访问对应网站。移远:http://www.quectel.com/cn/product/list/LPWAIoTModule.htm利尔达: http://www.lierda.com/product/id/94/list.html1.3 SIM卡核心网注册的SIM卡一张,找运营商获取。1.4 Profile文件DemoMultiSensor_eSDK_v01.zip,请下载附件后上传至OceanConnect平台使用,无须修改。1.5 编解码插件Demo与MultiSensor_eSDK_v01.zip配套的编解码插件已由华为人员上传至OceanConnect平台,可直接使用 ,无须关注。1.6 GUI Demo模拟北向应用。下载&使用方法:https://bbs.huaweicloud.com/forum/thread-13266-1-1.html 1.7 串口助手串口助手——SSCOM,可自行百度下载。NB-IoT方案,创建应用时,以下选项不能有误:“所属行业”必须选择“公用事业(NB-IoT)”。“关联API包”必须勾选“基础API包”和“公用事业(NB-IoT)API包”,建议全部勾选。“应用能力”必须选择“规则引擎”。注意:1. 如果下发OceanConnect资源邮件时,系统已创建好应用,可直接使用。2. 如果创建应用时以上某项选择错误,需要删除应用后重新创建,修改无效。 注册设备至平台2 上传开发组件 2.1 上传profile文件至OceanConnect平台将已下载的profile文件MultiSensor_eSDK_v01.zip上传至OceanConnect平台。具体方法如下:Step 1 使用邮件中的“平台Portal链接”和“登录账号/密码”信息登录OceanConnect平台,选择菜单“Profile开发 > 导入Profile”。 Step 2 单击右上角“导入”图标,上传文件时选中Profile资源文件MultiSensor_eSDK_v01.zip,设备类型、厂家ID和设备型号无须修改,单击“上传”。 2.2 上传编解码插件至OceanConnect平台与MultiSensor_eSDK_v01.zip配套的编解码插件已上传至IoT平台,您可直接使用,无须重复上传。注意:在后续业务开发过程中,您需要根据业务需要开发自己的编解码插件并上传至OceanConnect平台 3 注册设备Step 1 登录OceanConnect平台,单击“我的设备 > 注册设备”,即可看到应用下所有已上传的Profile,单击选中需要注册设备对应的Profile。 Step 2 在Profile详情页,填写“设备名称”和“设备标识码”,单击“注册”按钮注册设备。设备名称:用于区分不同设备,名称可自定义(如MultiSensor-02)。设备标识码:设备唯一标识。使用NB模组对接时,填写模组的IMEI号码。IMEI号为15位数,一般以86开头,贴于NB模组标签上,或可通过AT+CGSN=1指令查询得到。注册设备成功后返回的设备ID和PSK码请牢记。Step 3 单击“我的设备”,查看对应设备是否注册成功。如果注册成功,可以看到设备处于“OFFLINE”状态。4 终端入网实现终端入网,需要在SSCOM中通过一系列AT指令来控制NB模组。SSCOM中的各项设置说明如下:串口号:选择与NB模组进行通信的实际物理com口,并确保打开串口。波特率:选择9600。NB模组内置的华为NB芯片仅支持波特率9600。发送AT指令时确保勾选“发送新行”,不勾选“DTR”和“RTS”。其他参数保持默认。终端入网的详细步骤如下所示:Step 1:终端上电,执行“AT+NRB”复位终端。如果返回OK,表示终端正常运行。Step 2:执行“AT+CFUN=0”关闭功能开关。如果执行成功,返回OK。 Step 3:执行“AT+NTSETID=1,设备ID”设置设备ID。设备ID为NB模组的IMEI号,如果执行成功,返回OK。 Step 4:执行“AT+NCDP=IP, PORT”设置需要对接IoT平台的地址,端口为5683。如果执行成功,返回OK。 Step 5:执行“AT+CFUN=1”开启功能开关。如果执行成功,返回OK。 Step 6:执行“AT+NBAND=频段”设置频段。如果执行成功,返回OK。频段信息可以咨询NB模组厂商。 Step 7:执行“AT+CGDCONT=1,“IP”,“APN”设置核心网APN。如果执行成功,返回 OK。核心网APN可联系运营商(与运营商网络对接时)或者OpenLab负责人(与OpenLab网络对接时)进行获取。Step 8:执行“AT+CGATT=1”进行终端入网。如果执行成功,返回OK。 Step 9:执行“AT+CGPADDR”查询终端是否获取到核心网分配的IP地址,如果获取到IP地址,表示终端入网成功。 Step 10:执行“AT+NNMI=1”设置下行数据通知功能,如果执行成功,返回OK。5 数据上报 5.1 串口工具中上报数据执行“AT+NMGS=5,00012E1F63”发送上行数据,如果上行数据发送成功,返回OK。由于设置了 “AT+NNMI=1”,如果编解码插件中写了OceanConnect平台对上报数据的应答,则上行数据发送成功后会自动获取应答数据。上报数据的AT命令为:AT+NMGS=5,00012E1F63。具体解析如下:1. AT+NMGS=N,XXXXXXXXXX为上报数据的AT命令格式,其中“N”表示一共上报几个字节,后面为具体的上报字节内容,以十六进制字符串表示。这些需要提前在编解码插件中写好。2. 本例中,一共上报5个字节,分别为“00”、“01”、“2E”、“1F”、“63”。其中,第一个字节“00”表示上报数据,第二个字节“01”表示上报数据对应的serviceId为Humidity(湿度),第三个字节“2E”表示HumidityCur(当前湿度),第四个字节“1F”表示HumidityMinToday(当天湿度最小值),第五个字节“63”表示HumidityMaxToday(当天湿度最大值)。这些内容与profile文件和编解码插件是一一对应的。由于本例中的编解码插件写了上报数据应答,在上报数据成功后会收到“+NNMI 1,01”的应答。5.2 OceanConnect平台中查看数据 Step 1 登录OceanConnect平台,点击“我的设备”进入设备列表页,根据deviceId选择对应注册的在线设备,单击进入。Step 2 在设备详情页,选择”历史数据”项,即可看到已经上报且被解析后的json数据。 在实际应用中,数据到达OceanConnect平台后,可以通过两种方式在北向应用服务器中接收数据:1. 调用数据查询类接口,查询OceanConnect平台中缓存的数据。2. 调用订阅接口,设置好推送地址,数据到达OceanConnect平台后会按照既定的IP地址主动将数据推送至北向应用服务器。6 命令下发 Step 1 解压IoT_OceanConnect_North_GUI_APPDemo.zip(简称GUI Demo)压缩包,打开application文件夹,直接双击运行Demo.jar文件。 Step 2 根据华为下发的OceanConnect平台资源邮件内容填写对应配置项后,单击“Login”按钮登录。注意:如果Demo.jar文件无法打开,请确认本机是否配置了JDK开发环境。 Step 3 在“Module Choose”选项框中,“Solution”选择“NB-IoT”,“Module”选择“Command Manager”。 在“Post Asyne Command”选项框中,输入deviceId,单击“Get Command”按钮,获取该deviceId对应设备所具备的服务和命令。说明:这些服务和命令是在profile中定义好的。 Step 4 设置具体参数,选择需要下发的服务和命令后,单击“Post Command“。各参数含义及设置方法如下: Service:设备提供的服务ID,只能从下拉框中选择。以“Temperature“为例。 Command:该服务所具备的命令,只能从下拉框中选择。选定后会出现该命令可选的参数名(如Period或Value)。以“HIGH_TEMPERATURE_WARNING“为例,参数选择”Value”。 Value:参数名对应的参数值。以设置“50“为例。 Expire Time:命令的超期时间,单位为秒。如果在设置时间内,命令还缓存在平台没有下发就会超期作废。以设置“200“为例。 Step 5 登录OceanConnect平台,在设备详情页的“历史命令“项中,可以查看刚下发的命令状态。分为两种情况:1) 如果此时NB模组处于connect态,命令会立即下发,命令状态为“已送达”。2) 如果此时NB模组处于非connect态,命令会缓存下发,命令状态为“等待”。这种情况下,需要上报一条数据激活设备,才能收到下发的命令。Step 6 参照“5.1 SSCOM中发送数据“,发送一条AT命令:AT+NMGS=5,00012E1F63,此时刷新历史命令,可以看到命令状态切换为“已送达”,表明命令已下发。关于IoT平台的各命令状态,请参阅:https://bbs.huaweicloud.com/forum/thread-13244-1-1.html 7 着手开发 在利用Demo熟悉数据上报和命令下发流程,并理解业务后,可以着手进行自身业务的开发。主要需要开发的四大组件包括:profile,编解码插件,南向设备,北向应用。具体开发方法和参考文档、Demo请查阅:https://support.huaweicloud.com/devg-IoT/iot_02_3003.html 在Demo体验或实际开发过程中,遇到任何技术问题,建议通过论坛寻求帮忙,都会有专业的华为技术人员帮您解答。8 附件MultiSensor_eSDK_v01.zip
-
(转自https://developer.huawei.com/ict/forum/thread-24221.html)
-
以下内容为消息追踪里面抓取,想请教一下各位,日志是什么意思。为什么会出现这种日志,我是大菜鸟!问题一业务类型DATA_REPORT业务步骤iocm can not notify event, callbackUrl is null业务描述"notifyType = deviceInfoChanged4Event cannot be pushed to app server, callbackUrl is null. the appId :8h3r9UPtoFmSNE3Dqku8wvH206Ma, the event: UpdateDeviceInfoNotifyDTOCloud2NA [deviceId=2e04****1d55, gatewayId=2e04****1d55, topology=null, deviceInfo=DeviceInfo [nodeId=null, name=高雅智慧_王家老庄, description=null, manufacturerId=null, manufacturerName=null, mac=null, location=null, deviceType=null, model=null, swVersion=null, fwVersion=null, hwVersion=null, protocolType=null, bridgeId=null, status=null, statusDetail=null, mute=null, supportedSecurity=null, isSecurity=null, signalStrength=null, sigVersion=null, serialNumber=null, batteryLevel=null], notifyType=deviceInfoChanged4]"节点名称IOCM节点地址172.16.1.9记录时间2018-12-12 19:53:12.503其中一个终端设备只会产生如上的日志,是信号不好造成的还是其他原因。2.问题二0176aDATA_REPORTiocm found no serviceType in profile by serviceIdNo serviceType corresponding to serviceId was found on the platform, serviceId:RawData172.16.1.9IOCM[sps_portal]2018-12-12T11:41:27.067Z0176aDATA_REPORTiocm receives data from cig by kafkaUpdateDeviceDatasDTOGW2Cloud [header=Header [requestId=null, method=POST, timestamp=null,hasMore = false], body=Body [services=[DeviceServiceA [serviceId=RawData, eventTime=20181212T114127Z]]]] templateId = ruleEngine172.16.1.9IOCM[sps_portal]2018-12-12T11:41:27.065Z91013DATA_REPORTcig send data to kafka success[DeviceData{ reportType= DATA, service= RawData, datas= {rawData=[B@24e3db7b}, time= 20181212T114127Z, hasMore=false }]172.16.1.16CIG[sps_portal]2018-12-12T11:41:27.047Z91013DATA_REPORTcig get plug-in failed!platform can not find the matched plugin,but platform support to report binaryData without plugin.please verify that you have upload the matched plugin or not!, ManufactorId = Fencer, Model = IoTDeviceG6X172.16.1.16CIG[sps_portal]2018-12-12T11:41:27.046Z91013DATA_REPORTcig starts to report data to iocm binaryData = [104, 0, 46, 104, 2, 1, 11, 5, 3, 1, 64, 1, 0, 3, 17, -120, -120, -87, -97, -57, 0, 2, -66, -128, 0, 0, 0, 2, 63, 19, 57, 52, 2, 86, 0, 0, 0, 0, 2, 87, 63, -128, 0, 0, 2, 67, 0, 0, 0, 0, 65, 22]172.16.1.16CIG2018-12-12T11:41:27.046Z91013DATA_REPORTcig received message from deviceueId = 8637****4279172.16.1.16CIG[sps_portal]2018-12-12T11:41:27.045Z91013DATA_REPORTcig starts to decode datadeviceId =d9df****c676, ManufactorId = Fencer, Model = IoTDeviceG6X, binaryData = [104, 0, 46, 104, 2, 1, 11, 5, 3, 1, 64, 1, 0, 3, 17, -120, -120, -87, -97, -57, 0, 2, -66, -128, 0, 0, 0, 2, 63, 19, 57, 52, 2, 86, 0, 0, 0, 0, 2, 87, 63, -128, 0, 0, 2, 67, 0, 0, 0, 0, 65, 22]172.16.1.16CIG2018-12-12T11:41:27.045Zf7b4eCMD_SENDiocm fetch command from queuetriggered by kafka topic "CIG.DEVICE.V1.Data.ruleEngine"172.16.1.9IOCM[sps_portal]2018-12-12T11:31:56.788Zf7b4eCMD_SENDiocm find out there is no command in the queuetriggered by kafka topic "CIG.DEVICE.V1.Data.ruleEngine"172.16.1.9IOCM[sps_portal]2018-12-12T11:31:56.788Z42cb0DATA_REPORTiocm found no serviceType in profile by serviceIdNo serviceType corresponding to serviceId was found on the platform, serviceId:RawData172.16.1.9IOCM[sps_portal]2018-12-12T11:31:56.788Z42cb0DATA_REPORTiocm receives data from cig by kafkaUpdateDeviceDatasDTOGW2Cloud [header=Header [requestId=null, method=POST, timestamp=null,hasMore = false], body=Body [services=[DeviceServiceA [serviceId=RawData, eventTime=20181212T113156Z]]]] templateId = ruleEngine172.16.1.9IOCM[sps_portal]2018-12-12T11:31:56.786Z12119DATA_REPORTcig send data to kafka success[DeviceData{ reportType= DATA, service= RawData, datas= {rawData=[B@457127bc}, time= 20181212T113156Z, hasMore=false }]172.16.1.16CIG[sps_portal]2018-12-12T11:31:56.758Z12119DATA_REPORTcig starts to decode datadeviceId =d9df****c676, ManufactorId = Fencer, Model = IoTDeviceG6X, binaryData = [104, 0, 99, 104, 2, 1, 3, 1, 6, 1, 80, 30, 0, 3, 17, -120, -120, -87, -97, -57, 78, 66, 73, 79, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, -66, 127, -81, -5, 0, 0, 0, 0, 63, -128, 0, 0, 2, 68, 97, 116, 97, 32, 87, 97, 114, 110, 105, 110, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 22]172.16.1.16CIG2018-12-12T11:31:56.757Z12119DATA_REPORTcig get plug-in failed!platform can not find the matched plugin,but platform support to report binaryData without plugin.please verify that you have upload the matched plugin or not!, ManufactorId = Fencer, Model = IoTDeviceG6X172.16.1.16CIG[sps_portal]2018-12-12T11:31:56.757Z12119DATA_REPORTcig starts to report data to iocm binaryData = [104, 0, 99, 104, 2, 1, 3, 1, 6, 1, 80, 30, 0, 3, 17, -120, -120, -87, -97, -57, 78, 66, 73, 79, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, -66, 127, -81, -5, 0, 0, 0, 0, 63, -128, 0, 0, 2, 68, 97, 116, 97, 32, 87, 97, 114, 110, 105, 110, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 22]172.16.1.16CIG2018-12-12T11:31:56.757Z12119DATA_REPORTcig received message from deviceueId = 8637****4279172.16.1.16CIG[sps_portal]2018-12-12T11:31:56.756Z9528dDATA_REPORTiocm found no serviceType in profile by serviceIdNo serviceType corresponding to serviceId was found on the platform, serviceId:RawData172.16.1.9IOCM[sps_portal]2018-12-12T11:31:55.331Zeef28CMD_SENDiocm fetch command from queuetriggered by kafka topic "CIG.DEVICE.V1.Data.ruleEngine"172.16.1.9IOCM[sps_portal]2018-12-12T11:31:55.328Zeef28CMD_SENDiocm find out there is no command in the queuetriggered by kafka topic "CIG.DEVICE.V1.Data.ruleEngine"172.16.1.9IOCM[sps_portal]2018-12-12T11:31:55.328Z9528dDATA_REPORTiocm receives data from cig by kafkaUpdateDeviceDatasDTOGW2Cloud [header=Header [requestId=null, method=POST, timestamp=null,hasMore = false], body=Body [services=[DeviceServiceA [serviceId=RawData, eventTime=20181212T113155Z]]]] templateId = ruleEngine172.16.1.9IOCM[sps_portal]2018-12-12T11:31:55.326Z15328DATA_REPORTcig send data to kafka success[DeviceData{ reportType= DATA, service= RawData, datas= {rawData=[B@536b5289}, time= 20181212T113155Z, hasMore=false }]172.16.1.16CIG[sps_portal]2018-12-12T11:31:55.296Z15328DATA_REPORTcig starts to decode datadeviceId =d9df****c676, ManufactorId = Fencer, Model = IoTDeviceG6X, binaryData = [104, 0, 46, 104, 2, 1, 11, 5, 3, 1, 64, 1, 0, 3, 17, -120, -120, -87, -97, -57, 0, 2, -66, -128, 0, 0, 0, 2, 63, 24, -59, -116, 2, 86, 0, 0, 0, 0, 2, 87, 63, -128, 0, 0, 2, 67, 0, 0, 0, 0, 42, 22]172.16.1.16CIG2018-12-12T11:31:55.295Z15328DATA_REPORTcig get plug-in failed!platform can not find the matched plugin,but platform support to report binaryData without plugin.please verify that you have upload the matched plugin or not!, ManufactorId = Fencer, Model = IoTDeviceG6X172.16.1.16CIG[sps_portal]2018-12-12T11:31:55.295Z15328DATA_REPORTcig starts to report data to iocm binaryData = [104, 0, 46, 104, 2, 1, 11, 5, 3, 1, 64, 1, 0, 3, 17, -120, -120, -87, -97, -57, 0, 2, -66, -128, 0, 0, 0, 2, 63, 24, -59, -116, 2, 86, 0, 0, 0, 0, 2, 87, 63, -128, 0, 0, 2, 67, 0, 0, 0, 0, 42, 22]172.16.1.16CIG2018-12-12T11:31:55.295Z15328DATA_REPORTcig received message from deviceueId = 8637****4279172.16.1.16CIG[sps_portal]2018-12-12T11:31:55.294Z97d67CMD_SENDiocm fetch command from queuetriggered by kafka topic "IOCM.DEVICE.V1.registerRoute"172.16.1.9IOCM[sps_portal]2018-12-12T11:31:55.103Z97d67CMD_SENDiocm find out there is no command in the queueprocessed in kafka handler "IOCM.DEVICE.V1.registerRoute"172.16.1.9IOCM[sps_portal]2018-12-12T11:31:55.103Z很多设备在正常上传数据后,不知道为什么会突然无法上传数据,日志中不断出现如上记录。问题3设备安装的地方会存在信号不好地方,大家如如何确保能够正常连接的。场景如下:设备安装的地方,NB模块可以搜索到2个基站,其中基站A的信号比较强,NB模块连接基站A,但是基站A无法正常上网,基站B可以正常上网,大神是如何解让NB模块选择基站A后,发现无法正常上网,然后会切换到基站B。在连接的过程中,是如何判断连接是否成功,设备注册到平台,大家是如何让NB终端知道自己有没有掉线,不采用心跳包的形式。问题4
-
演示接口功能:给定设备唯一标识deviceId查询设备的激活状态,激活状态可分为激活态和非激活态,也可理解设备是否可用。例如只进行北向注册设备,而南向未进行绑定那么设备就不能用,只有设备可用才能谈设备的ONLINE/OFFLINE,南向设备上报过数据,与北向开户的设备进行绑定设备才能处于激活态。关于接口的说明,请参考《华为IoT联接管理平台北向接口文档(for NB-IoT).doc》 调用接口工具:restclient-ui-3.4.2.jar(可网上搜索直接下载)1:设置请求URL,请求方式:GET2:设置请求Header, key:Content-Type, value:application/x-www-form-urlencoded;key:app_key,value:*****;key: Authorization,value: Bearer ***3:配置SSL,其中Truststore/Keystore文件及密码由华为IoT平台方提供4:点击调用按钮,观察响应参数,由于没有进行南向绑定所以响应的激活态activated:false.
-
一、IoT平台在中间起到应用服务器和设备之间的联接作用和数据管理作用。IoT平台的全称是IoT联接管理平台。其中的“联接”,可以理解为IoT平台就是一个管道,起应用和设备的联接作用。有了IoT平台,设备和应用可以更快、更安全的接入,对于应用,可以不必关注设备如何接入、协议处理等问题,根据IoT平台开发的API就可以获取到设备的全量信息,并且对设备进行控制。对于设备,可以通过集成/使用华为agent、模组等快速接入。其中的“管理”,即IoT平台还提供数据管理的作用,通过IoT平台的web页面,可以对设备、应用的数据进行维护管理,IoT平台提供的报表功能可以减少应用服务器的开发量等。二、设备必然归属于一个应用服务器。AppId和secret是IoT平台分配给应用服务器的账户信息,deviceId是IoT平台分配设备的身份识别。在使用AppId/secret应用登录IoT平台后,在该账户下注册绑定设备,然后该应用使用其他API对设备进行管理控制。其他的应用服务器不能控制该设备。IoT平台和应用服务器是一对多(一个账号下可创建多个应用),应用服务器和设备是是一对多,IoT平台和设备是一对多。
-
从iot平台历史记录看,设备上报的都收到了,但是北向应用总是丢包,不知道是iot平台没有推送给北向应用,还是北向应用收到了没处理
-
合作伙伴在接入OpenLab进行端测时需要提前做好哪些准备? 大类自检项详细内容完成要求描述完成要求终端AT命令AT+NTSETID设置IMEI必须AT+NCDP设置IoT平台服务器IP必须AT+NMGS发送数据必须基本程序入网初始化、发送数据等流程在接入无线网络时,基本流程可运行必须应用服务器环境准备配置HTTPS服务器支持应用服务器以HTTPS访问IoT平台, 支持IoT平台以HTTPS访问应用服务器必须JDK版本要求JDK1.8必须TLS协议1.1或1.2必须profile文件根据设备数据定义profile模型必须加载profile文件在sp portal完成profile的加载必须编解码插件根据编解码开发指南和profile完成插件开发并完成验证必须基本功能登录接口应用服务器访问IoT必须注册设备接口应用服务器注册新设备必须设置设备信息应用服务器更新设备信息必须订阅设备信息应用服务器接收设备数据变化通知必须向设备投递异步命令应用服务器向设备发送命令必须端到端测试上行传输支持终端设备信息上报,应用服务器接收数据必须下行传输支持服务器数据下发功能,终端收到控制命令
-
IoT平台可以简单理解为是一个通道,它联接了应用服务器(APP Server)和设备。如图一。图一 NB-IoT解决方案在IoT平台上添加一个设备,总体流程是先北向注册后南向绑定。下面以水表为例介绍。添加一个设备,首先需要应用服务器调用IoT平台注册设备接口,使用设备的唯一标识(一般是MAC或IMEI)来注册设备。接口会返回一个deviceId,这是IoT平台对设备分配的唯一标识(后续会有帖子专门介绍deviceId)。后续涉及到具体设备的业务操作,以deviceId进行设备识别。北向添加NB-IoT设备后,目前需要应用服务器调用IoT平台的设置设备信息接口,将model、manufacturerId、manufacturerName、protocolType等设备信息修改进IoT平台的设备信息中,这样设备就能根据这个信息找到该设备相关的服务能力(在profile文件中定义)。所以在北向注册设备前,需要将该设备的profile文件上传到IoT平台中。应用服务器调用北向接口注册设备并设置设备信息后,就需要设备来IoT平台进行绑定了。NB-IoT设备的绑定是通过设备上报数据来实现的。上报的数据会与之前北向注册设备所使用的MAC或IMEI号对应起来,这样该设备的数据与北向注册的设备就对应起来了。对于NB-IoT设备注册的正常流程,在设备绑定前需要将设备的编解码组件上传到IoT平台,建立一个编解码组件与设备信息的映射。设备绑定后,设备才算是完全添加到IoT平台上。若是仅仅进行过北向应用设备注册而没有进行南向设备绑定,这种设备添加是无效的,设备会显示离线。设备添加完毕之后,就可以进行设备相关的业务调试了
-
在集成厂商设备/应用服务器时,最基本的两个场景是应用服务器获取设备数据与异步命令下发。这里讲分别进行说明。一、应用服务器获取设备数据简略业务流程图如下:方案1 应用服务器订阅IoT平台的deviceDataChanged或deviceDatasChanged的事件,设备上报到IoT平台后,IoT平台主动给应用服务器推送。方案2 设备上报到IoT平台后,应用服务器主动来平台查询。由于应用服务器不知道什么时候设备上报数据,因此一般是定时来IoT平台查询数据。图中的1和2两种应用服务器获取设备的方案相互不冲突,可以并存。二、应用服务器下发异步命令简略流程如下方案3 下发异步命令到IoT平台,然后平台缓存这些命令,待设备上报数据的时候再将命令下发下去。这种方案一般适用于有休眠功能的设备,应用下发命令时不必考虑设备是否处于休眠状态,命令在IoT平台缓存一下。设备上报数据时已经被唤醒,因此IoT平台再将命令下发下去。方案4 下发异步命令到IoT平台,平台不再缓存这个命令,直接下发给设备。这种方案适用于应用服务器已经确定设备处于唤醒状态。如果设备处于休眠状态,命令直接下发下去就会报错。
-
在北向接口文档中的有“注册直连设备”,“发现非直连设备”的接口,直连设备和非直连设备的区别是什么?如下图所示对上图进行几点说明:1、 图中省略了基站、核心网等节点;2、 图中的直连设备,设备1是指网关(敏捷物联网关、智慧家庭网关等),大部分集成了华为agent。<span style="font-family:Arial, 微软雅黑, "">对于网关设备,具备设备管理能力,能够管理多个非直连设备(添加、删除、服务能力上报、服务数据上报、服务命令分发);设备2包含通过基站/核心网、softradio等接入的水表、燃气表、路灯以及其他设备。3、 图中的非直连设备是需要通过网关接入IoT平台的设备。比如,一个家庭中包含门磁、温度传感器、摄像头等传感器,它们通过统一的网关接入IoT平台。
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签