智能主机与云服务之间的通信方法与流程

文档序号:12694745阅读:420来源:国知局
智能主机与云服务之间的通信方法与流程

本发明涉及领域智能家居领域,尤其涉及一种智能家居系统的智能主机与云服务之间的通信方法。



背景技术:

随着信息科技的快速发展,智能家居系统由于其便利性,其应用越来越普及。由于传统的智能家居系统的控制中心采用家用个人电脑(PC机)和协调器等设备作为控制中心,基于传统客户端/服务器(C/S)架构的智能家居系统需要保持一台个人电脑(PC机)运行作为中间件才能达到随时控制的目的,通过个人电脑(PC机)保持与服务器的连接,使用户的控制终端(如手机、可穿戴设备遥控器等)能够获取到当前的智能家居系统的底层设备状态。

如图4所示,上述应用的客户端/服务器架构的传统智能家居系统的设备控制步骤包括:

步骤一:开启一台个人电脑(PC机)保证其能一直连接互联网,启动个人电脑(PC机)内的本地服务器定时3S去访问云服务,并且与网关基于局域网Socket保持长连接。

步骤二:启动一个网关与个人电脑(PC机)通过局域网Socket保持长连接,启动一个线程并对底层设备接收/发送控制数据。

步骤三:云服务收到一个用户发送的带有底层设备唯一编号的设备控制指令,并存储下来。

步骤四:个人电脑(PC机)定时3S主动向云服务发送一个带有底层设备唯一编号的请求最新数据指令。

步骤五:云服务收到外来的个人电脑(PC机)的连接请求之后。先获取个人电脑(PC机)请求连接的底层设备唯一标志,确定是已注册的个人电脑(PC机)连接请求,则获取当前的底层设备唯一编号,并将云服务存储的当前的底层设备唯一编号的设备控制指令反馈给个人电脑(PC机);如果不对,丢弃不处理,继续监听个人电脑(PC机)连接请求。

步骤六:个人电脑(PC机)请求云服务获取最新数据指令,在云服务认证确认通过之后,个人电脑(PC机)收到云服务反馈的最新数据指令。解析出来,并通过局域网Socket通信发送给网关,网关收到设备控制指令,下发控制指令控制设备(例如:开灯)。

以上采用智能家居采用客户端/服务器(C/S)架构的智能家居系统,需要采用一个单独的个人电脑(PC机)与云服务通信,其系统实现成本较高。同时,由于个人电脑(PC机)是定时去访问服务器,用户控制底层设备到底层设备响应并改变状态的实时性较差。整套智能家居系统中使用单独的个人电脑(PC机),增加了耦合度,使所述智能家居系统控制时受网络的稳定性影响加大。



技术实现要素:

本发明实施例的目的在于提供一种实时性较好且相对较为安全的应用于智能家居系统的智能主机与云服务之间的通信方法,用于解决上述技术问题。

一种智能主机与云服务之间的通信方法,应用于智能家居系统,所述智能家居系统包括底层设备、智能主机、云服务以及控制终端,所述控制终端用于与所述云服务通信,并通过所述云服务及所述智能主机控制所述底层设备工作。所述智能主机与云服务之间的通信方法包括步骤:所述智能主机向所述云服务发送连接请求报文请求连接;所述云服务接收并读取连接请求报文,向所述智能主机回复请求确认报文;以及所述智能主机接收请求确认报文,并与所述云服务保持长连接。所述智能主机在与所述云服务保持连接的过程中,每间隔预定时间向云服务发送一条心跳报文,以确认所述智能主机与所述云服务之间是否保持连接;其中,所述报文为二进制字节流报文。

在其中一种实施方式中,当所述云服务收到所述智能主机发送的心跳报文时,所述云服务判断该条心跳报文与同一智能主机的上一条心跳报文的时间差,若时间差在预设时间范围内,则所述云服务直接回复一条心跳确认报文,从而使所述云服务与所述智能主机继续保持长连接。

在其中一种实施方式中,若所述云服务判断该条心跳报文与同一智能主机的上一条心跳报文的时间差超出预设时间范围,则所述云服务主动断开与所述智能主机的长连接。

在其中一种实施方式中,当所述云服务主动断开与智能主机的长连接后,所述智能主机再次发送连接请求报文请求连接。

在其中一种实施方式中,所述智能主机与所述云服务连接成功后,所述智能主机向所述云服务发送当前与所述智能主机连接下的所有底层设备的设备状态。

在其中一种实施方式中,每当有底层设备状态变化时,所述智能主机将该底层设备的设备状态通过报文的形式发送给所述云服务。

在其中一种实施方式中,所述智能主机在请求连接的过程中,持续监听能否与所述云服务连接,且持续向所述云服务请求连接,直到与所述云服务保持长连接。

在其中一种实施方式中,所述云服务在部署在云服务器上时,即持续保持监听等待所述智能主机的连接请求和接收所述智能主机发送的报文。

在其中一种实施方式中,所述云服务接收所述智能主机发送的报文后,首先获取报文中的报文类型信息,并根据报文类型回复一个相应的报文给所述智能主机。

在其中一种实施方式中,所述报文包括用于区分其他报文的报头以及用于搭载控制信息的数据体。

相对于现有技术,本发明实施例提供的智能主机与云服务之间的通信方法中,所述智能主机与所述云服务保持长连接,所述云服务收到用户发送的设备控制指令,所述智能主机能够立刻收到,从用户控制到底层设备响应几乎一瞬间完成,实时性强。同时,所述智能主机与所述云服务通过二进制字节流的报文交互,安全保密性强。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的智能家居系统的框架示意图;

图2是本发明实施例提供的智能主机与云服务之间的通信报文的结构示意图;

图3是本发明实施例提供的智能主机与云服务之间的交互流程示意图;

图4是本发明背景技术的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请同时参阅图1至图3,本发明实施例提供一种如图3所示的智能主机与云服务之间的通信方法,应用于如图1所示的智能家居系统中。所述智能家居系统包括控制终端、远程服务器、家庭控制中心以及底层设备,所述控制终端用于接收用户的操作指令,并用于将所述控制指令发送至所述远程服务器;所述远程服务器用于与所述家庭控制中心交互,并用于将所述控制指令发送至所述家庭控制中心;所述家庭控制中心用于与所述底层设备交互,并根据所述控制指令控制所述底层设备工作。其中,所述底层设备为智能家居设备,包括但不限于为灯光、插座、门磁、红外等。

在本发明实施方式中,所述家庭控制中心为智能主机,所述智能主机与所述底层设备及所述远程服务器通信连接。所述智能主机包括具有网关功能的硬件,所述硬件用于发送、接收所述底层设备的信号,并能够与所述远程服务器保持长连接。所述智能主机与所述底层设备之间的通信基于ZigBee协议。应当理解的是,ZigBee是一种低速短距离传输的无线网络协议。ZigBee协议从下到上分别为物理层(PHY)、媒体访问控制层(MAC)、传输层(TL)、网络层(NWK)、应用层(APL)等。其中物理层和媒体访问控制层遵循IEEE 802.15.4标准的规定。所述长连接应当理解为长期与所述远程服务器连接、收发数据。所述底层设备控制中心与所述底层设备之间的连接基于传感器网络连接,其中,所述传感器网络可以通过ZigBee、Wi-Fi等无线通信技术组建。

在本发明实施方式中,所述远程服务器为云服务,该云服务应当理解为部署在云服务器上的主从服务器。

在本发明实施方式中,所述控制终端所可以为但不限于为手机、平板电脑、可穿戴设备、遥控器等智能便携式终端,所述控制终端同时具备网络通信功能。用户能够通过所述控制终端实现对所述底层设备的控制,用户的控制模式包括本地模式及远程模式。

所述本地模式应当理解为基于局域网控制模式:所述控制终端与所述智能主机连接于同一局域网,并与所述智能主机进行交互并将控制指令发送至所述智能主机,以使所述控制终端能够通过所述智能主机控制所述底层设备。所述远程模式应当理解为基于互联网模式:所述控制终端连接于通信网络,并与所述云服务进行交互,所述控制终端将控制指令发送至所述云服务后,所述云服务将控制指令发送至所述智能主机,以使所述控制终端能够通过所述云服务、所述智能主机控制所述底层设备。其中,所述控制终端与所述云服务之间、所述云服务与所述智能主机之间的通信协议为TCP/IP协议。

在本发明实施例中,所述智能主机作为所述底层设备控制和连接所述云服务的中间件,保证了所述底层设备与所述云服务的设备信息及控制设备响应的实时性。另外,由于不需要单独的个人电脑(PC机)作为中间件,降低了耦合度,从而降低了网络不稳定对控制所述底层设备带来的不良影响。

在本发明实施例中,所述智能家居系统的所述底层设备、所述智能主机、所述云服务及所述控制终端相互之间的通信通过收发报文的方式实现。

请参阅图2,图2示意性地示出了所述智能主机与所述云服务之间通信的报文的结构。所述智能主机与所述云服务之间通信的报文协议如下:整段报文由二进制的字节流组成,所述报文包括用于区分其他报文的报头及用于搭载控制信息的数据体。所述报头包括头部、时间戳、设备号、报文类型以及数据长度。所述头部用于区分其他报文,所述时间戳用于标示所述报文发送时间,所述设备号用于标示所述报文所对应的底层设备的设备号,所述报文长度用于标示所述数据体的长度。其中,所述数据体的长度在报头的数据长度中有,这样可以避免所述报文被恶意抓包获取数据信息。

请参阅图3,图3示意性地示出了所述云服务与所述智能主机之间的交互流程。当所述智能主机收到所述底层设备上报的设备状态等报文后,需要将所述底层设备的最新状态通过长连接发送给所述云服务,以允许所述云服务将所述底层设备的状态信息保存在数据库中。所述智能主机与云服务之间的通信方法包括以下步骤:

步骤一:所述智能主机每次接电开机,就启动与所述云服务通信的线程并向所述云服务发送连接请求报文。其中,所述智能主机在请求连接的过程中,持续监听能否与所述云服务连接,并且持续向所述云服务请求连接,直到与所述云服务保持长连接。

步骤二:当收到所述智能主机的连接请求报文时,所述云服务首先获取报文中的报文类型信息,若判断是连接请求报文时,所述云服务回复一个请求确认报文给所述智能主机。若判断是其他的报文,所述云服务回复一个相应的报文给所述智能主机。其中,所述云服务在部署于云服务器上的时候,就启动监听等待所述智能主机发送的连接请求和接收所述智能主机发送的报文,所述云服务器可以为阿里云服务器。

步骤三:当所述智能主机收到所述云服务回复的请求确认报文时,则表示所述智能主机与所述云服务连接成功。同时所述智能主机向所述云服务发送当前与所述智能主机连接下的所有底层设备(如插座,开关等)的设备状态。在所述智能主机与所述云服务保持连接的过程中,所述智能主机每间隔预定时间向所述云服务发送一条心跳报文,以确认二者之间是否保持连接。所述预定时间可以为0.1秒、0.5秒、1秒、1.5秒、2秒等等。每当有底层设备状态变化时,所述智能主机将该底层设备的设备状态通过报文的形式发送给所述云服务。

步骤四:所述云服务将请求确认报文回复至所述智能主机之后,持续监听接收所述智能接收主机的报文。当所述云服务收到底层设备状态报文,其存储底层设备状态信息。当所述云服务收到的智能主机的心跳确认报文时,所述云服务判断该条心跳报文与同一智能主机的上一条心跳报文的时间差,若时间差在预设时间范围内,则所述云服务直接回复一条心跳确认报文,从而使所述云服务与所述智能主机继续保持长连接;若所述云服务判断该条心跳报文与同一智能主机的上一条心跳报文的时间差超出预设时间范围,则所述云服务主动断开与所述智能主机的长连接。

步骤五:当所述云服务主动断开与所述智能主机的长连接后,所述智能主机再次发送连接请求报文请求连接,重复步骤一至四。

本发明实施例提供的智能家居系统的智能主机与云服务之间的通信方法中,采用了智能主机替代个人电脑成为家庭控制中心,降低了智能家居系统的实现成本。同时,所述智能主机与所述云服务保持长连接,所述云服务收到用户发送的设备控制指令,所述智能主机能够立刻收到,从用户控制到底层设备响应几乎一瞬间完成,实时性强。另外,所述智能主机与所述云服务通过二进制字节流的报文交互,安全保密性强。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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