一种基于设备快照的物联网智能设备状态同步方法及系统与流程

文档序号:11236847阅读:1112来源:国知局
一种基于设备快照的物联网智能设备状态同步方法及系统与流程

本发明涉及物联网技术领域,尤其涉及一种基于设备快照的物联网智能设备状态同步方法及系统。



背景技术:

物联网平台指的是将无处不在的末端设备和设施,包括具备物联网技术“内在智能”的传感器、移动终端、工业系统、数控系统、家庭智能设施、视频监控系统等,如贴上rfid的各种资产、携带无线终端的个人与车辆等等“智能化物件”,通过各种无线或有线的长距离或短距离通讯网络实现互联互通(m2m)、应用大集成、以及基于云计算的saas营运等模式,在内网、专网、互联网环境下,采用适当的信息安全保障机制,提供安全可控乃至个性化的实时在线监测、定位追溯、报警联动、调度指挥、预案管理、远程控制、安全防范、远程维保、在线升级、统计报表、决策支持等管理和服务功能,实现对“万物”的“高效、节能、安全、环保”的“管、控、营”一体化的平台。

物联网技术中,由于会同时控制多个智能设备,因此对智能设备的状态监控及同步尤为重要。

如申请号为cn201310581025.0的专利文献公开的“设备状态同步控制方法和家电设备”,该发明提供了一种设备状态同步控制方法和一种家电设备,其中设备状态同步控制方法包括:记录多个与家电设备建立通信连接的控制终端的在线信息;在家电设备的状态信息被更新时,根据记录的在线信息,将家电设备的最新状态信息通知每一控制终端,供每一控制终端显示。

又如申请号为cn201410706098.2的专利文献公开的“一种调整智能家居设备运行状态的方法及装置”,该发明是关于一种调整智能家居设备运行状态的方法及装置,用以提高用户调整智能家居设备运行状态的便利性。所述方法包括:监听所述移动终端上的用于控制所述智能家居设备的应用上的设备列表;在监听到用户在所述设备列表中选定的智能家居设备的创建快捷方式的第一按键消息时,在所述移动终端的桌面上创建用于控制所述智能家居设备的所述快捷按键;通过控制所述快捷按键调整所述智能家居设备的当前状态。

实际应用中,智能设备的状态信息需要同步到手机app,比如空调上的室内温度,比如门锁的开关状态,或者是sd卡格式化的进度等等。

如果利用现有技术,直接让智能设备发送消息给手机app同步信息,会存在以下问题:

(1)一台智能设备可能会有多个绑定者,状态的同步是不能只同步给一个绑定者的,所以用发消息的方案会需要知道所有绑定者,然后需要挨个发送一遍。

(2)状态的变更有可能是频繁的,很多情况下最后一次的状态才是最重要的,而消息通道往往是以可靠不丢消息为设计目标的,这就意味着用户可能在早晨起床唤起手机app后收到上千条状态消息。



技术实现要素:

针对上述现有技术的现状,本发明目的在于提供一种基于设备快照的物联网智能设备状态同步方法及系统,可解决过多的设备状态消息发送给用户的问题以及多个用户不能同时收到设备状态消息的问题。

本发明解决上述技术问题所采用的技术方案为:

一种基于设备快照的物联网智能设备状态同步方法,包括步骤:

s1.获取智能设备当前状态信息;

s2.获取状态偏差信息,所述状态偏差信息包括:智能设备状态改变请求、智能设备状态改变控制命令;

s3.接收并通过所述智能设备状态改变请求,根据所述智能设备状态改变控制命令更改所述智能设备状态。

进一步地,步骤s1具体为:

a1.智能设备基于mqtt协议建立与云端的通信连接;

a2.智能设备发送当前状态信息至云端设备快照;

a3.云端设备快照接收智能设备发送的当前状态信息,并将所述当前状态信息保存至云端数据库内。

进一步地,步骤a1具体为:

a11.智能设备使用控制台申请的密钥进行签名请求授权;

a12.云端服务器验证签名是否合法,若合法,则返回pubkey证书;

a13.智能设备使用pubkey证书tls协议连接mqtt。

进一步地,步骤s2具体为:

b1.应用程序向云端设备快照请求获取所述智能设备的当前状态信息;

b2.云端设备快照接收请求后,从云端数据库内获取所述智能设备的当前状态信息,并发送所述当前状态信息至应用程序;

b3.应用程序接收所述智能设备当前状态信息后,将所述当前状态信息与预期状态信息比对,获取状态偏差信息,并将所述状态偏差信息发送至云端设备快照。

进一步地,步骤s3具体为:

c1.云端设备快照接收并通过所述应用程序发送的智能设备状态改变请求;

c2.若所述智能设备为在线状态,则云端设备快照发送所述智能设备状态改变控制命令至所述智能设备;

c3.智能设备接收所述智能设备状态改变控制命令,并做对应状态改变。

进一步地,步骤c2还包括:

若所述智能设备为离线状态,则云端设备快照保存所述智能设备状态改变控制命令。

进一步地,当智能设备上线后,判断所述智能设备是否存在状态改变:

若不存在,则云端设备快照将所述保存的智能设备状态改变控制命令发送至所述智能设备;

若存在,则云端设备快照获取所述智能设备的新的当前状态信息,发送所述新的当前状态信息至应用程序,并返回步骤b3。

一种基于设备快照的物联网智能设备状态同步系统,包括云端设备快照模块、智能设备sdk模块、移动终端应用程序sdk模块;

所述云端设备快照模块包括:

第一获取单元,用于获取智能设备当前状态信息;

第二获取单元,用于获取状态偏差信息,所述状态偏差信息包括:智能设备状态改变请求、智能设备状态改变控制命令;

执行单元,用于接收并通过所述智能设备状态改变请求,根据所述智能设备状态改变控制命令更改所述智能设备状态;

所述智能设备sdk模块用于与云端进行通信,并发送智能设备当前状态信息至云端设备快照模块;

所述移动终端应用程序sdk模块用于将所述当前状态信息与预期状态信息比对,获取状态偏差信息,并将所述状态偏差信息发送至云端设备快照。

进一步地,所述智能设备sdk模块包括:

通信单元,用于基于mqtt协议建立与云端的通信连接;

第一发送单元,用于发送智能设备当前状态信息至云端设备快照。

进一步地,所述移动终端应用程序sdk模块包括:

请求单元,用于向云端设备快照模块请求获取智能设备的当前状态信息;

对比单元,用于在接收智能设备的当前状态信息后,将所述当前状态信息与预期状态信息比对,获取状态偏差信息;

第二发送单元,用于将所述状态偏差信息发送至云端设备快照模块。

本发明提供一种基于设备快照的物联网智能设备状态同步方法及系统,可解决过多的设备状态消息发送给用户的问题,此外,通过设置智能设备预期状态信息,能有效对智能设备进行状态监测及控制。

附图说明

图1为本发明实施例中一种基于设备快照的物联网智能设备状态同步方法流程图;

图2为本发明实施例中一种基于设备快照的物联网智能设备状态同步系统结构图;

图3为本发明实施例一中云端设备快照模块结构图;

图4为本发明实施例一中智能设备sdk模块结构图;

图5为本发明实施例一中移动终端应用程序sdk模块结构图。

具体实施方式

以下是本发明的具体实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。

本发明基于设备快照来保存设备的最新状态或者app希望的最新状态在云端,然后当设备或app连接上来时,同步状态给设备或app。

本发明涉及到三个模块,第一是智能设备sdk模块,此模块负责将当前状态上报至一个或多个设备快照,并可从设备快照获取期望的状态;第二是云端设备快照模块,此模块负责管理状态偏差、预期状态、上报状态、元数据和版本;第三是移动终端的appsdk模块,此模块负责改变设备状态、获取设备最后一次上报的状态和删除设备快照。

以下为本发明具体实施例。

实施例一

如图1所示为本实施例中一种基于设备快照的物联网智能设备状态同步方法流程图,该方法包括步骤:

s1.获取智能设备当前状态信息;

s2.获取状态偏差信息,所述状态偏差信息包括:智能设备状态改变请求、智能设备状态改变控制命令;

s3.接收并通过所述智能设备状态改变请求,根据所述智能设备状态改变控制命令更改所述智能设备状态。

步骤s1具体为:

a1.智能设备基于mqtt协议建立与云端的通信连接;

a2.智能设备发送当前状态信息至云端设备快照;

本步骤中,智能设备发布当前状态给设备快照

智能设备发布消息到如以下格式的事件主题:

iot/event/event_id/state/format_string。

发布的消息符合上述定义的json字符串格式。

a3.云端设备快照接收智能设备发送的当前状态信息,并将所述当前状态信息保存至云端数据库内。

本步骤中,设备快照预先订阅好上述的topic,当设备发送状态消息后,消息broker会立即监听到并把消息转发给设备快照,设备快照收到json格式的消息后进行解析处理并保存数据到数据库。一年之内对设备的状态数据有过更新的历史都将保存。

设备快照是物联网平台在云端的软件系统,设备保留每台设备的最后报告状态和期望的未来状态,即便设备处于离线状态。

app可通过httpsapi获取设备的最后报告状态或设置期望的未来状态。在设置设备的期望未来状态时无需说明设备的当前状态。

设备sdk负责同步其设备自身状态及其设备快照状态,并响应通过设备快照设置的期望的未来状态。

设备快照存储设备状态最长时间为一年。如果至少每年更新一次状态,则设备快照将永久保留状态;否则状态将过期。

步骤s2具体为:

b1.应用程序向云端设备快照请求获取所述智能设备的当前状态信息;

本步骤中,app通过httpsapi请求账户所绑定的设备的当前状态,设备快照接收请求后从数据库中读取设备的最新状态并返回给app。同时,app也作为订阅者订阅了此设备快照的状态更新topic。多个账户的app可同时订阅单个设备快照的topic,消息broker可同时转发给这些订阅者消息。

b2.云端设备快照接收请求后,从云端数据库内获取所述智能设备的当前状态信息,并发送所述当前状态信息至应用程序;

本步骤中,app通过httpsapi请求改变账户所绑定的设备的状态,也就是给快照设置用户想要的预期的状态。app将json格式的数据发送给设备快照,json格式的数据中包含了状态改变的控制命令。

b3.应用程序接收所述智能设备当前状态信息后,将所述当前状态信息与预期状态信息比对,获取状态偏差信息,并将所述状态偏差信息发送至云端设备快照。

如图2所示为本实施例中一种基于设备快照的物联网智能设备状态同步系统结构图,该系统包括云端设备快照模块100、智能设备sdk模块200、移动终端应用程序sdk模块300;

云端设备快照模块100负责管理状态偏差、预期状态、上报状态、元数据和版本。

状态偏差指的是设备上报状态与预期状态的偏差;

元数据指的是设备的基本信息;

版本指的是设备固件的版本。

如图3所示为本实施例中云端设备快照模块100结构图,该结构包括:

第一获取单元110,用于获取智能设备当前状态信息;

第二获取单元120,用于获取状态偏差信息,所述状态偏差信息包括:智能设备状态改变请求、智能设备状态改变控制命令;

执行单元130,用于接收并通过所述智能设备状态改变请求,根据所述智能设备状态改变控制命令更改所述智能设备状态;

所述智能设备sdk模块200用于与云端进行通信,并发送智能设备当前状态信息至云端设备快照模块;

所述移动终端应用程序sdk模块300用于将所述当前状态信息与预期状态信息比对,获取状态偏差信息,并将所述状态偏差信息发送至云端设备快照。

如图4所示为本实施例中智能设备sdk模块200结构图,该结构包括:

通信单元210,用于基于mqtt协议建立与云端的通信连接;

第一发送单元220,用于发送智能设备当前状态信息至云端设备快照。

如图5所示为本实施例中移动终端应用程序sdk模块300结构图,该结构包括:

请求单元310,用于向云端设备快照模块请求获取智能设备的当前状态信息;

对比单元320,用于在接收智能设备的当前状态信息后,将所述当前状态信息与预期状态信息比对,获取状态偏差信息;

第二发送单元330,用于将所述状态偏差信息发送至云端设备快照模块。

本实施例提供一种基于设备快照的物联网智能设备状态同步方法及系统,可解决过多的设备状态消息发送给用户的问题,此外,通过设置智能设备预期状态信息,能有效对智能设备进行状态监测及控制。

实施例二

本实施例为智能设备接入云端并建立通信连接的具体介绍。

参考图1,本实施例中,一种基于设备快照的物联网智能设备状态同步方法包括步骤:

s1.获取智能设备当前状态信息;

s2.获取状态偏差信息,所述状态偏差信息包括:智能设备状态改变请求、智能设备状态改变控制命令;

s3.接收并通过所述智能设备状态改变请求,根据所述智能设备状态改变控制命令更改所述智能设备状态。

步骤s1中,智能设备基于mqtt协议建立与云端的通信连接。

mqtt协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:

1、使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;

2、对负载内容屏蔽的消息传输;

3、使用tcp/ip提供网络连接;

4、有三种消息发布服务质量:

“至多一次”,消息发布完全依赖底层tcp/ip网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。

“至少一次”,确保消息到达,但消息重复可能会发生。

“只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。

5、小型传输,开销很小(固定长度的头部是2字节),协议交换最小化,以降低网络流量;

6、使用lastwill和testament特性通知有关各方客户端异常中断的机制;

本实施例中,智能设备基于mqtt协议建立与云端的通信连接步骤具体为:

a11.智能设备使用控制台申请的密钥进行签名请求授权;

本步骤中,设备使用控制台申请的密钥进行签名请求授权,签名使用hmacmd5算法(可选hmacsha1、md5),签名内容=devieceid+appkey,使用key=appsecret+devicesecret。

a12.云端服务器验证签名是否合法,若合法,则返回pubkey证书;

本步骤中,服务器验证签名合法,并返回pubkey证书(x.509格式base64)。

a13.智能设备使用pubkey证书tls协议连接mqtt。

本步骤中,设备使用pubkey证书tls协议连接mqtt。

智能设备与云端的通信模式采用发布/订阅模式,基于topic进行消息的路由转发,让设备端或者服务端可以发布订阅消息,实现异步的通信。适用的场景有设备端与云端的异步通信,也可以适用m2m(设备与设备间通信)。

云端平台消息broker维护所有topic的发布订阅用户列表。当消息发送到topic,消息broker会检查该topic的所有订阅用户,然后将消息转发给所有具有订阅该topic权限的客户端或者服务端。

本实施例中,通信数据的格式采用json格式,包含期望状态、上报状态、状态偏差、元数据、版本等数据,举例定义如下:

实施例三

本实施例为控制智能设备进行状态改变的具体介绍。

参考图1,本实施例中,一种基于设备快照的物联网智能设备状态同步方法包括步骤:

s1.获取智能设备当前状态信息;

s2.获取状态偏差信息,所述状态偏差信息包括:智能设备状态改变请求、智能设备状态改变控制命令;

s3.接收并通过所述智能设备状态改变请求,根据所述智能设备状态改变控制命令更改所述智能设备状态。

步骤s3具体为:

c1.云端设备快照接收并通过所述应用程序发送的智能设备状态改变请求;

c2.若所述智能设备为在线状态,则云端设备快照发送所述智能设备状态改变控制命令至所述智能设备;

c3.智能设备接收所述智能设备状态改变控制命令,并做对应状态改变。

设备快照接收请求后,如果设备在线则通过mqtt协议下发给设备,如果设备离线,则保存此命令,以此状态作为app期望设备达到的状态。后续设备上线后,如果有状态变更,则设备快照忽略中间频繁的状态上报,以之前所设的预期的状态来确认设备状态的改变,并以此确认的状态发送给app。

步骤c2还包括:

若所述智能设备为离线状态,则云端设备快照保存所述智能设备状态改变控制命令。

当智能设备上线后,判断所述智能设备是否存在状态改变:

若不存在,则云端设备快照将所述保存的智能设备状态改变控制命令发送至所述智能设备;

若存在,则云端设备快照获取所述智能设备的新的当前状态信息,发送所述新的当前状态信息至应用程序,并返回实施例一中的步骤b3。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1