CN110535889B - 一种物联网交互系统 - Google Patents
一种物联网交互系统 Download PDFInfo
- Publication number
- CN110535889B CN110535889B CN201910977810.5A CN201910977810A CN110535889B CN 110535889 B CN110535889 B CN 110535889B CN 201910977810 A CN201910977810 A CN 201910977810A CN 110535889 B CN110535889 B CN 110535889B
- Authority
- CN
- China
- Prior art keywords
- control command
- internet
- gateway
- things
- data message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及物联网技术领域,公开了一种物联网交互系统,用以解决终端和服务器数据交互频繁流造成量大、延时高的问题。本发明当网关在接收到云服务器转发的控制命令后,首先采用链表的形式存储控制命令,再将接收到控制命令下发给其对应的物联网设备,若控制指令下发给物联网设备失败,则把该条控制命令标记为异常,并存储到网关本地;网关会将物联网设备上报的状态数据消息与控制命令链表的控制命令进行匹配,如果匹配到相应的控制命令,则将该条消息标记为匹配控制成功数据消息,同时删除对应的控制命令;如果没有匹配到相应的控制命令,则将该条状态数据消息标记为心跳数据消息并保存。本发明适用于物联网消息追踪。
Description
技术领域
本发明涉及物联网技术领域,特别涉及一种物联网交互系统。
背景技术
在物联网交互场景中,一般涉及到三个角色:APP、云服务器和终端。而整个数据交互大多数都是基于设备控制的。物联网通讯过程中,对于网络质量要求较大。网络抖动会导致通讯受到干扰,因此整个业务流程的监控统计则显得尤为重要。交互控制流程具体是app发送控制命令到云端,云端通过长连接转发给路由器子网下的网关网关。网关然后接收到该控制命令后再下发给其物联网设备。物联网设备状态然后再通关网关逐一上报。传统的业务监控解决方案中,通常由云端统计app下发的控制命令,采用队列缓存后,在根据物联网设备上报的状态进行逐条匹配。由于网络传输,无法避免存在延时,乱序等问题。
发明内容
本发明要解决的技术问题是:提供一种物联网交互系统,用以避免用户部分操作的敏感隐私数据上传到云服务器,解决终端和服务器数据交互频繁流造成量大、延时高的一系列问题。
为解决上述问题,本发明采用的技术方案是:一种物联网交互系统,包括app端、云服务器、网关以及物联网设备;所述app端用于发起物联网设备的控制命令;所述云服务器用于接收app端发出的控制命令,并将接收到控制命令转发给网关;
所述网关在接收到云服务器转发的控制命令后,首先采用链表的形式存储控制命令,在本地得到一个控制命令链表,然后再将接收到控制命令下发给其对应的物联网设备,若控制指令下发给物联网设备失败,则把该条控制命令标记为异常,并存储到网关本地;
所述网关还用于接收物联网设备上报的状态数据消息,并将该状态数据消息与控制命令链表的控制命令进行匹配,如果匹配到相应的控制命令,则将该条状态数据消息标记为匹配控制成功数据消息,同时删除控制命令链表中对应的控制命令;如果没有匹配到相应的控制命令,则将该条状态数据消息标记为心跳数据消息,同时将该条状态数据消息的id设置为“时间戳+设备id”的形式并保存。
进一步的,为了规范检测过程中传递的信息,所述控制命令封装方式可使用JSON数据格式。
进一步的,所述控制命令链表可包括以下字段:时间戳、设备序列号、设备类型、控制命令类型和具体值。
进一步的,为防止本地储存的数据溢出问题,若网关在规定时间内没有收到某条控制指令所对应的匹配控制成功数据消息,则可删除控制命令链表中该条控制命令。
本发明的有益效果:本发明将控制命令的管理放在网关中进行,可以减少端、云交互,从而减小云服务器的负荷。并且由于判断处理逻辑在网关终端进行本地处理,数据分析会更加实时,更加准确。
附图说明
图1是实施例的结构框架图。
图2是实施例的交互流程图。
具体实施方式
为了解决云服务对数据管理解决方案的成本花费高,避免用户部分操作的敏感隐私数据上传到云服务器,终端和服务器数据交互频繁流造成量大、延时高的一系列问题。本发明提供了一种物联网交互系统,包括app端、云服务器、网关以及物联网设备;
所述app端用于发起物联网设备的控制命令;
所述云服务器用于接收app端发出的控制命令,并将接收到控制命令转发给网关;
所述网关在接收到云服务器转发的控制命令后,首先采用链表的形式存储控制命令,在本地得到一个控制命令链表,然后再将接收到控制命令下发给其对应的物联网设备,若控制指令下发给物联网设备失败,则把该条控制命令标记为异常,并存储到网关本地;
所述网关还用于接收物联网设备上报的状态数据消息,并将该状态数据消息与控制命令链表的控制命令进行匹配,如果匹配到相应的控制命令,则将该条状态数据消息标记为匹配控制成功数据消息,同时删除控制命令链表中对应的控制命令;如果没有匹配到相应的控制命令,则将该条状态数据消息标记为心跳数据消息,同时将该条状态数据消息的id设置为“时间戳+设备id”的形式并保存。
进一步的,为了规范检测过程中传递的信息,所述控制命令封装方式可使用JSON数据格式。
进一步的,所述控制命令链表可包括以下字段:时间戳、设备序列号、设备类型、控制命令类型和具体值。
进一步的,为防止本地储存的数据溢出问题,若网关在规定时间内没有收到某条控制指令所对应的匹配控制成功数据消息,则可删除控制命令链表中该条控制命令。
基于以上系统,本发明的具体工作原理如下:
S01.整个交互场景的发起点为app端首先发送控制设备的命令。
S02.云服务器接收到该条app消息后,只是作为消息透传,通过长连接转发该控制命令。不在云服务器增加其他额外的逻辑判断处理。
S03.网关接收到云服务器转发的控制命令后下,首先采用链表的方式存储命令。并使用时间戳+设备ID来作为该条消息的唯一标志。为了规范检测过程中传递的信息,控制命令的封装方式可使用JSON数据格式。具体控制命令的消息据封装协议如下表:
表1控制命令数据格式
键值KEY | 取值类型Value Type | 取值Value |
timeStamp | long int | 时间戳 |
deviceID | string | 设备序列号 |
deviceType | string | 设备类型 |
cmd | string | 控制命令类型 |
cmdValue | string | 控制命令具体值 |
status | string | 设备状态属性 |
statusValue | string | 设备状态属性具体值 |
S04.网关在本地链表中存储控制命令包含的时间戳、设备序列号、设备类型、控制命令类型和具体值这些字段,然后再将该条控制命令下发给其对应的物联网设备。
S05.在步骤SO4中若消息发送给物联网设备失败,则把该条控制命令标记为异常,并存储到网关本地;若消息发送成功则进入步骤S06。
S06.消息接收和发送这两个模块通常采用异步处理。因此网关收到的状态数据可能是控制物联网设备成功后,对应的物联网设备上报的;也有可能是物联网设备的心跳数据,与对应的控制后状态不一定相符。若是控制成功的状态上报,则根据表1中控制命令数据格式存储的编码表对应查询控制命令和状态上报互相映射的数据。即状态属性值和控制命令具体值匹配,则将上报后的消息id设置为时间戳+设备id,同时标记为表2中枚举的具体数值——匹配控制成功,并且删除链表中存储的控制命令数据。
S07.心跳数据包一般复用为状态上报数据,当网关收到状态上报数据时。若没有对应的控制命令,该条上行数据则是心跳数据上报,将上报的消息id设置为时间戳+设备id,并且采用表2中枚举的具体数值——非控制心跳上报。
表2控制命令匹配结果
值 | 取值类型Value Type | 取值Value |
e_cmd_success | enum | 匹配控制成功 |
e_cmd_timeOut | enum | 控制超时未响应 |
e_cmd_heartData | enum | 非控制心跳上报 |
S08.网关在步骤处理步骤SO6和步骤SO7判断后,对于标记位设置成异常处理的消息采用文件系统进行本地存储,所有控制流程的分析都在网关处理,不涉及到与云服务器的交互。
S09.针对存储的控制命令链表,需要再额外单独开启一个线程,进行循环遍历。对于在设置了规定时间内没有相应的状态数据与之相匹配的控制命令,则将该条控制命令标记为超时命令。即表2控制命令匹配结果中的控制超时未响应,对其标志位设置为超时异常,然后存储在网关本地,同时删除控制命令链表中该条控制命令。
S010.当用户或者运维人员需要该部分消息追踪日志,再根据网关提供的固定api进行查询,然后由网关上报,整个方案设计逻辑不需要app和云端增加其他额外的控制逻辑,和传输的消息字段,减少了端云之间频繁交互的次数,也避免了不必要的数据传输。
实施例
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明做进一步地详细描述:
现在市场上家庭网关大多数都是智能音箱之类的强终端wifi设备,可以app或者直接语音控制其子设备,在本方案列中采用安卓手机(APP)来控制智慧家庭网关下的zigbee灯控开关(物联网设备)这个常用的实际应用场景,场景结构框架如图1所示。
在图1所示的场景下,实施例完成信息交互的流程如图2所示,以下对信息交互的过程进行具体说明。
在步骤S01中,安卓APP进入灯控开关的ui界面,点击灯控开关的按钮,然后APP就会发送打开灯的控制命令。
在步骤S02中,目前物联网应用场景里作为消息中转站的云服务器,一般采用MQTT协议或者XMPP协议。比如在MQTT服务器中,手机会往规定好的主题发布控制命令。而MQTT服务器只是作为消息透传的通道,通过与网关建立的长连接,把该控制命令发送给网关订阅的主题。在完成了基本的消息发送后,此外不在MQTT服务器和手机APP增添其他额外逻辑的功能处理。
在步骤S03中,网关订阅到MQTT服务器发布的开灯控制命令后,自己在本地生成时间戳。将生成的时间戳与控制命令拼接,然后采用链表这个数据结构来存储这条消息。
在步骤S04中,网关将开灯这条命令解析成什么时候(时间戳),什么设备(设备序列号),什么类型即灯控(设备类型),什么控制即开关(命令类型),什么动作即打开(具体值)这些字段。在本地控制命令链表中存储这些数据字段,具体存储的消息如上述的表1所示,封装方式使用JSON数据格式。然后网关再将收到的这条控制命令——打开灯,下发给其对应的物联网设备——zigbee灯控开关。
在步骤SO5中,网关通过串口将命令发送给zigbee协调器,zigbee协调器在通过zigbee网络无线传输该控制命令。当灯控开关与协调器的zigbee物理链接断开或者抖动时,该打开灯的命令无法正常发送到zigbee灯控开关。此时网关则无法接收到灯上报打开的这个状态属性值,本地储存的控制命令超时后,则把打开灯这条控制命令标记为异常,然后采用文件io存储到网关本地。在zigbee网络通讯正常的情况下,zigbee灯控开关会成功接收到打开灯的命令。
在步骤SO6中,zigbee灯控开关通过协调器上报打开的状态,网关通过串口收到协调器传输的开灯状态后,网关然后去遍历本地储存的命令链表。根据表1中控制命令数据格式存储的编码表对应查询控制命令和状态上报互相映射的数据,查找到匹配的状态属性值和控制命令具体值。将开灯这条状态消息增加一个消息id字段,并且设置为匹配开灯命令中添加的时间戳+设备id,然后再将该条消息标志位标记为表2中匹配控制成功的枚举值。最后删除链表中存储的匹配打开灯的这条控制命令。
在步骤SO7中,zigbee子设备由于心跳机制,会定时上报状态数据来作为心跳包。当app没有控制灯控开关,网关经过一段时间收到灯控开关上报的状态时,也会按照步骤S06进行链表表查询。此时则不会有对应的控制命令,该条上行数据则是心跳上报。消息id的时间戳则再次由网关自主生成,然后再将该条消息标志位标记为表2中非控制心跳上报的枚举值。
在步骤SO8中,网关针对控制命令和状态上报处理判断后,对于分析的数据结果进行本地存储。
在步骤SO9中,为防止本地储存的数据溢出,因对存储的命令设置超时判断时间,对于在设置了规定时间内没有相应的状态数据与之相匹配的控制命令,则将该条控制命令标记为表2中的中的控制超时未响应的枚举值,对其标志位设置为超时异常,然后删除链表中存储的控制命令。
在步骤SO10中,网关储存了正常流程下打开灯这条开的命令,以及对应灯开的状态数据,以及有控制异常等枚举值。当用户或者运维人员需要该部分消息追踪日志时,根据网关提供的查询接口,然后由网关主动上报,整个消息追踪流程极大缩减了和云服务和手机端的数据交互。
Claims (4)
1.一种物联网交互系统,包括app端、云服务器、网关以及物联网设备;所述app端用于发起物联网设备的控制命令;所述云服务器用于接收app端发出的控制命令,并将接收到控制命令转发给网关;
其特征在于:
所述网关在接收到云服务器转发的控制命令后,首先采用链表的形式存储控制命令,在本地得到一个控制命令链表,然后再将接收到控制命令下发给其对应的物联网设备,若控制命令下发给物联网设备失败,则把该条控制命令标记为异常,并存储到网关本地;
所述网关还用于接收物联网设备上报的状态数据消息,并将该状态数据消息与控制命令链表的控制命令进行匹配,如果匹配到相应的控制命令,则将该条状态数据消息标记为匹配控制成功数据消息,同时删除控制命令链表中对应的控制命令;如果没有匹配到相应的控制命令,则将该条状态数据消息标记为心跳数据消息,同时将该条状态数据消息保存。
2.如权利要求1所述的一种物联网交互系统,其特征在于,所述控制命令封装方式使用JSON数据格式。
3.如权利要求1所述的一种物联网交互系统,其特征在于,所述控制命令链表包括以下字段:时间戳、设备序列号、设备类型、控制命令类型和具体值。
4.如权利要求1所述的一种物联网交互系统,其特征在于,若网关在规定时间内没有收到某条控制命令所对应的匹配控制成功数据消息,则删除控制命令链表中该条控制命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910977810.5A CN110535889B (zh) | 2019-10-15 | 2019-10-15 | 一种物联网交互系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910977810.5A CN110535889B (zh) | 2019-10-15 | 2019-10-15 | 一种物联网交互系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110535889A CN110535889A (zh) | 2019-12-03 |
CN110535889B true CN110535889B (zh) | 2021-05-25 |
Family
ID=68671872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910977810.5A Active CN110535889B (zh) | 2019-10-15 | 2019-10-15 | 一种物联网交互系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110535889B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111314468A (zh) * | 2020-02-19 | 2020-06-19 | 杭州涂鸦信息技术有限公司 | 一种设备监控方法及系统 |
CN111787031B (zh) * | 2020-08-03 | 2022-04-12 | 南京信息职业技术学院 | 一种基于分布式技术的物联网设备控制指令发送的方法 |
CN112087499A (zh) * | 2020-08-26 | 2020-12-15 | 武汉普利商用机器有限公司 | 一种物联网云管理方法及系统 |
CN112433867A (zh) * | 2020-11-25 | 2021-03-02 | 四川长虹电器股份有限公司 | 一种优化Android物联网APP请求设备列表的方法 |
CN113194148A (zh) * | 2021-05-08 | 2021-07-30 | 深圳市智胜网科技有限公司 | 一种物联网系统上位机和终端设备的数据交互方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102025577A (zh) * | 2011-01-06 | 2011-04-20 | 西安电子科技大学 | 物联网网络系统及数据处理方法 |
CN103532823A (zh) * | 2012-07-04 | 2014-01-22 | 中兴通讯股份有限公司 | 物联网消息处理方法、装置及系统 |
CN104244243A (zh) * | 2013-06-24 | 2014-12-24 | 中兴通讯股份有限公司 | 终端外设控制方法、机器对机器网关及通信系统 |
CN106027674A (zh) * | 2016-07-07 | 2016-10-12 | 苏州大学 | 一种互联网与智能制造相结合的架构系统 |
CN106100906A (zh) * | 2016-08-10 | 2016-11-09 | 成都秦川科技发展有限公司 | 物联网智能网关 |
CN108111378A (zh) * | 2017-12-22 | 2018-06-01 | 南京物联传感技术有限公司 | 一种智能家居的场景设定的冲突协调系统及工作方法 |
CN109541955A (zh) * | 2018-12-14 | 2019-03-29 | 陕西理工大学 | 智能家居设备管理方法及系统 |
CN109765833A (zh) * | 2019-01-16 | 2019-05-17 | 四川长虹电器股份有限公司 | 一种监控物联设备控制状态的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10867507B2 (en) * | 2017-07-16 | 2020-12-15 | Sure Universal Ltd. | Set-top box gateway architecture for universal remote controller |
-
2019
- 2019-10-15 CN CN201910977810.5A patent/CN110535889B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102025577A (zh) * | 2011-01-06 | 2011-04-20 | 西安电子科技大学 | 物联网网络系统及数据处理方法 |
CN103532823A (zh) * | 2012-07-04 | 2014-01-22 | 中兴通讯股份有限公司 | 物联网消息处理方法、装置及系统 |
CN104244243A (zh) * | 2013-06-24 | 2014-12-24 | 中兴通讯股份有限公司 | 终端外设控制方法、机器对机器网关及通信系统 |
CN106027674A (zh) * | 2016-07-07 | 2016-10-12 | 苏州大学 | 一种互联网与智能制造相结合的架构系统 |
CN106100906A (zh) * | 2016-08-10 | 2016-11-09 | 成都秦川科技发展有限公司 | 物联网智能网关 |
CN108111378A (zh) * | 2017-12-22 | 2018-06-01 | 南京物联传感技术有限公司 | 一种智能家居的场景设定的冲突协调系统及工作方法 |
CN109541955A (zh) * | 2018-12-14 | 2019-03-29 | 陕西理工大学 | 智能家居设备管理方法及系统 |
CN109765833A (zh) * | 2019-01-16 | 2019-05-17 | 四川长虹电器股份有限公司 | 一种监控物联设备控制状态的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110535889A (zh) | 2019-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110535889B (zh) | 一种物联网交互系统 | |
CN109450704B (zh) | 一种即插即用智能配变终端及配电数据通信系统 | |
US20170244792A1 (en) | Power-Line Carrier Terminal Control Apparatus, System, and Method | |
US10097397B2 (en) | System and method for managing CWSN with GUI | |
EP2713641A1 (en) | Method for receiving data, method for transmitting data, mobile terminal, and server | |
US20200153651A1 (en) | Nb-iot based wireless device group access method and terminal | |
CN109981668A (zh) | 基于mqtt泛化协议的通用设备物联网通信方法 | |
CN105450779B (zh) | 一家电设备连接多服务器的方法 | |
CN106993043B (zh) | 基于代理的数据通信系统和方法 | |
CN107741884B (zh) | 一种分层状态机实现消息推送的方法和装置 | |
EP2908497B1 (en) | Method, device and system for remote management of terminal peripheral | |
CN103312528A (zh) | 一种心跳消息发送方法及用户终端 | |
CN111277507A (zh) | 实现无线终端间信息交换的方法 | |
CN112423322B (zh) | 型号信息发送方法、装置、存储介质及电子装置 | |
CN103916424A (zh) | 一种管控应用程序心跳包的方法、通信终端和通信网络 | |
US10931529B2 (en) | Terminal device management method, server, and terminal device for managing terminal devices in local area network | |
CN113282587B (zh) | 状态数据的传输方法及装置、存储介质、电子装置 | |
CN102026215A (zh) | 一种m2m网络的监控方法、装置及系统 | |
CN104320322B (zh) | 一种报文控制方法和设备 | |
CN111200808B (zh) | 一种双协议网关数据传输方法及系统 | |
CN111092952B (zh) | 一种数据交互方法及相关产品 | |
CN105071986A (zh) | 一种监控系统运行状态的方法 | |
CN109040286B (zh) | 一种基于内存数据库的客户端在线状态维护方法 | |
CN113848834B (zh) | 一种基于边云协同的车间设备接入系统及方法 | |
CN111294358B (zh) | 报文的处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |