智能家居系统的控制方法及装置与流程智能家居是利用先进的计算机技术、网络通讯技术、综合布线技术、医疗电子技术,依照工程学原理,融合个性需求,将与家居有关的各个子系统,例如:安防、灯光控制、窗帘控制、煤气阀控制、信息家电、场景联动、地板采暖、健康保健、卫生防疫等有机地结合在一起,通过网络化综合智能控制和管理,实现以人为本的全新家居体验。
目前,相关技术中所提供的智能家居系统通常仅具备一种比较单一的组合控制方式。图1是根据相关技术的智能家居系统的组合控制方式示意图。如图1所示,其具体表现为:通过前置命令的执行结果来控制后续命令是否执行,从而达到系统化控制的目的,例如:可以根据关闭智能门窗的命令执行结果来控制是否开启室内温控系统,即在关闭智能门窗的命令执行成功后,只能去启动一个单一的后续命令(例如:打开室内温控系统)的执行。
图2是根据相关技术的组合控制命令编辑过程的流程图。如图2所示,该编辑过程如下:可以预先在用户终端中编辑组合控制命令流,其用途在于:用户白天出门上班之前,为了给室内通风换气,则可以遥控开启智能门窗;等到用户下班回家后,则可以通过执行上述预先编辑的组合控制命令流,例如:控制命令a(例如:关闭智能门窗的命令),控制命令b(例如:开启地板采暖的命令),控制命令c(例如:开启灯光控制的命令),...,从而进入下班后的夜间生活。
图3是根据相关技术的基于图2的组合控制命令执行过程的流程图。如图3所示,可以将组合命令通过导入模块导入智能家居系统的系统端,然后由系统端对组合控制命令流进行调度执行。具体执行过程如下:由于上述编辑的控制命令a(例如:关闭智能门窗的命令),控制命令b(例如:开启底板采暖的命令),控制命令c(例如:开启灯光控制的命令),以及后续命令均采用串行执行的方式,因此,首先需要执行控制命令a,然后根据控制命令a返回的执行结果(例如:关闭智能门窗的命令是否执行成功)来确定是否需要继续执行控制命令b或者停止执行;如果控制命令a执行成功,则需要继续执行控制命令b,然后根据控制命令b返回的执行结果(例如:开启底板 采暖的命令是否执行成功)来确定是否需要继续执行控制命令c或者停止执行;如果控制命令b执行成功,则需要继续执行控制命令c,然后根据控制命令c返回的执行结果(例如:开启灯光控制的命令是否执行成功)来确定是否需要继续执行后续命令或者停止执行;以此类推。
然而,相关技术中所提供的单流程组合控制命令的执行方式需要依次执行预先编辑的组合控制命令流中的每条命令,只有在前序控制命令执行成功才能接续执行后序控制命令,由此易造成控制命令的执行过程灵活性较差、无法实现个性化执行配置。
本发明实施例提供了一种智能家居系统的控制方法及装置,以至少解决相关技术中的单流程组合控制命令的执行方式单一、缺乏灵活性的问题。
根据本发明实施例的智能家居系统的控制方法包括:获取组合控制命令流,其中,组合控制命令流是由多个控制命令节点按照预设算法编辑而成,每个控制命令节点分别对应智能家居系统中不同的智能设备,且组合控制命令流中的至少一个控制命令节点存在多个邻接的控制命令节点;根据组合控制命令流对智能家居系统中的部分或全部智能设备进行控制。
根据本发明实施例的智能家居系统的控制装置包括:获取模块,用于获取组合控制命令流,其中,组合控制命令流是由多个控制命令节点按照预设算法编辑而成,每个控制命令节点分别对应智能家居系统中不同的智能设备,且组合控制命令流中的至少一个控制命令节点存在多个邻接的控制命令节点;控制模块,用于根据组合控制命令流对智能家居系统中的部分或全部智能设备进行控制。
通过本发明实施例,采用获取组合控制命令流,其中,组合控制命令流是由多个控制命令节点按照预设算法编辑而成,每个控制命令节点分别对应智能家居系统中不同的智能设备,且组合控制命令流中的至少一个控制命令节点存在多个邻接的控制命令节点;根据组合控制命令流对智能家居系统中的部分或全部智能设备进行控制,解决了相关技术中的单流程组合控制命令的执行方式单一、缺乏灵活性的问题,进而实现对智能家居系统更加便捷和多样化的组合控制方式。
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图10是根据本发明优选实施例的智能家居系统中通过用户终端与系统端相互配合实现控制过程的示意图。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方 法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的步骤或单元。
本发明提供了一种智能家居系统的控制方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图4是本发明实施例的一种运行智能家居系统的控制方法的移动终端的硬件结构框图米乐M6官网。如图4所示,移动终端1可以包括一个或多个(图中仅示出一个)处理器402(处理器402可以包括但不限于微处理器(MCU)或可编程逻辑器件(FPGA)等的处理装置)、用于存储数据的存储器404、以及用于通信功能的传输装置406。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端1还可包括比图4中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器404可用于存储应用软件的软件程序以及模块,如本发明实施例中的智能家居系统的控制方法对应的控制指令/模块,处理器402通过运行存储在存储器404内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的智能家居系统的控制方法。存储器404可以包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器404可进一步包括相对于处理器402远程设置的存储器,这些远程存储器可以通过网络连接至移动终端1。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置406用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端1的通信供应商提供的无线网络。在一个实例中,传输装置406包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置406可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在上述运行环境下,本申请提供了如图5所示的智能家居系统的控制方法。图5是根据本发明实施例的智能家居系统的控制方法的流程图。如图5所示,该方法可以包括以下处理步骤:
步骤S502:获取组合控制命令流,其中,组合控制命令流是按照预设算法由多个控制命令节点编辑而成,每个控制命令节点分别对应智能家居系统中不同的智能设备,且组合控制命令流中的至少一个控制命令节点存在多个邻接的控制命令节点;
本申请上述步骤中的S502中的每个控制命令节点分别对应智能家居系统中的一种类型命令,例如:灯光控制命令(用于控制灯光开启与关闭或者用于控制灯光变亮与变暗)、窗帘控制命令(用于控制拉上窗帘或者打开窗帘)、室温控制命令(用于控制地暖开启与关闭或者用于控制温度调高与调低);上述智能设备可以包括但不限于以下至少之一:灯光控制设备、窗帘控制设备、室温控制设备。
在本申请上述步骤中的S504中,由于智能家居系统中提供的控制命令多种多样,而用户在日常生活中通常只需要使用其中一小部分控制命令来控制部分智能设备。当然,由于智能家居系统的生产商众多,有些生产商出于节约成本的考虑或者技术研发水平受到限制,其仅能提供使用功能较为单一的智能设备,因此,用户也可能在一次使用中需要使用全部控制命令对全部智能设备进行控制操作。例如:如果用户在冬季下班回家之后通常需要执行以下操作:打开室内的常用电灯以提供照明→拉上室内的窗帘以保护隐私→开启地暖以提高室内温度,为此,用户为了避免执行重复操作,可以预先编辑组合控制指令,即灯光控制命令→窗帘控制命令→室温控制命令。以后,每日只需按序执行上述操作即可。当然,如果用户家中还设置有防盗监控系统以防止家中无人时个人财产失窃,那么在用户开门后,执行灯光控制命令的同时还编辑有安全控制命令,此时,可以在两者之间做出选择,既可以先关闭防盗系统再打开电灯,也可以先打开电灯再关闭防盗系统。
基于上述描述,通过采用上述实施例一中所提供的智能家居系统的控制方法,对现有的组合控制方式以及其使用场景进行了扩展,不再局限于相关技术中所提供的全部控制命令均采用串行执行的方式,而是在部分控制命令节点处采用同一个控制命令节点经由相通路径与多个后序控制命令节点相连并按照预设算法(例如:深度优先遍历算法或广度优先遍历算法)及其配套规则(例如:优先级调度模式)确定多个后序控制命令节点的执行次序。由此,解决了相关技术中的单流程组合控制命令的执行方式单一、缺乏灵活性的问题,进而实现对智能家居系统更加便捷和多样化的组合控制方式。
在本申请上述实施例一提供的方案中,步骤S504中实现的根据组合控制命令流对 部分或全部智能设备进行控制可以包括以下操作:
步骤S1:解析组合控制命令流,获取多个控制命令节点按照预设算法设置的编辑方式,其中,编辑方式为从多个控制命令节点中选取起始控制命令节点,并沿着起始控制命令节点的连通路径依次探寻每个可到达的控制命令节点,直至搜索到全部可到达的控制命令节点,以确定多个控制命令节点的拓扑排序关系;
相比于目前相关技术中所采用的多个串行执行的控制命令而言,本申请上述实施例一中所提供的技术方案更能够按照预设算法设计出以“树”形结构为主的组合控制命令的编辑方式。即编辑方式中的部分或全部控制命令节点并非如相关技术中所采用的串行单一方向模式,而是拥有一个入边且拥有至少两个出边来连通多个邻接的控制命令节点,最终确定“树”形结构中每个控制命令节点的排序关系。例如:相关技术中往往采用控制命令1、控制命令2、控制命令3、控制命令4依次执行的编辑方式,即控制命令1只有一个出边连通控制命令2,控制命令2只有一个出边连通控制命令3,控制命令3只有一个出边连通控制命令4,其更像是“树”形结构的一个分支。只有在前一个控制命令执行成功的情况下再继续执行下一个控制命令。而采用本申请上述实施例1中所提供的编辑方式,控制命令1可以有两个出边分别连通控制命令2和控制命令3,而控制命令2只有一个出边连通控制命令4,其为“树”形结构。因而,通过对组合控制命令流进行解析便可得到上述多个控制命令节点的编辑方式。
本申请上述实施例一提供的方案中,步骤S1中实现的多个控制命令节点按照预设算法设置的编辑方式可以包括以下之一:
方式一、多个控制命令节点按照深度优先遍历算法设置编辑方式,其中,多个控制命令节点中的部分或全部控制命令节点预先设置有优先级,优先级用于确定与同一个控制命令节点路径相通的多个邻接控制命令节点的先后执行次序;
在用户给定的“树”形结构组成的多个控制命令节点中,初始状态是所有的控制命令节点均未被访问过,因此,可以从中选取一个控制命令节点作为初始点对其余未访问的控制命令节点进行访问。如果当前访问过的控制命令节点通过出边连通有两个或者更多邻接的控制命令节点,此时,在没有设定特殊判定条件的情况下,可以按照上述两个或者更多邻接的控制命令节点编辑次序或者在执行过程中进入队列的先后顺序来确定优先执行哪个控制命令节点。
本申请上述实施例一提供的方案中,进一步地,在支持优先级设置与判定的智能家居系统中,每个控制命令节点均可以设置对应的优先级。优先级可以根据实际需求进行设置并可以实时进行调整,例如:可以预先将家居智能系统中的部分或全部控制 命令设置为10个等级(Lev1-Lev10),Lev1为最高优先级命令,Lev10为最低优先级命令,Lev1-Lev10的优先级依次降低。基于上述如果用户家中还设置有防盗监控系统以防止家中无人时个人财产失窃的示例,那么在用户开门后,执行灯光控制命令的同时还编辑有安全控制命令,此时,如果未预先设定灯光控制命令以及安全控制命令的优先级,那么用于控制的终端可以结合接收到的命令队列的顺序(例如:灯光控制命令先于安全控制命令进入队列),那么就可以先打开电灯再关闭防盗系统。然而,如果预先设定灯光控制命令以及安全控制命令的优先级(假设预先设定灯光控制命令的优先级为Lev1以及安全控制命令的优先级为Lev2,并且Lev1的优先级要高于Lev2),则如果执行同时出现灯光控制命令以及安全控制命令需要判定执行两者的先后顺序,便可以根据两者预先设定的优先级,先打开电灯再关闭防盗系统。
需要说明的是,如果出现一条控制命令并未预先设置优先级时,智能家居系统将会为其赋予一个默认优先级。例如:智能家居系统接收到控制命令1、控制命令2、控制命令3以及控制命令4,如果按照上述控制命令1可以有两个出边分别连通控制命令2和控制命令3,而控制命令2只有一个出边连通控制命令4的拓扑连接关系,那么假设控制命令2预先被分配的优先级为Lev2,而控制命令3并没有被预先分配优先级,此处,智能家居系统则可以为控制命令3分配一个默认的优先级(例如:Lev3),进而由于控制命令2的优先级高于控制命令3的优先级,故而需要先执行控制命令2再执行控制命令3。
图6是根据本发明优选实施例的在用户终端上进行支持基于优先级的控制命令流的编辑过程流程图。如图6所示,在经过编辑的控制命令流中,第一个分支点(即命令流起始点)可以分为控制命令a和控制命令x两个分支,其均可以称为起始点的后序命令(当然也可以从控制命令a和控制命令x中任选其中一个作为起始点,而没有前序命令),并且控制命令a和控制命令x的优先级都设置为Lev1。控制命令a和控制命令x的前序命令均为“起始命令”,而“起始命令”并不存在前序命令。此时,由于控制命令a和控制命令x的优先级均为Lev1,因此,可以任意选择其中之一加以执行,此时假设选择执行控制命令a所在分支,则具体执行过程如下:如果控制命令a执行成功,则需要继续执行第二个分支点,否则,将停止继续执行当前分支。在第二分支点处,控制命令b的优先级设置为Lev1,控制命令d的优先级设置为Lev2,并且控制命令b和控制命令d均为控制命令a的后序命令,即控制命令b和控制命令d的前序命令均为控制命令a。此时,由于控制命令b的优先级Lev1高于控制命令d的优先级Lev2,则需要优先执行控制命令b所在分支,如果控制命令b执行成功,则可以继续执行控制命令c,然后再依次执行后序命令,直至整个分支上的控制命令全部执 行完毕,或者,在执行到特定控制命令时并未成功进而停止执行。然后再执行控制命令d所在分支,如果控制命令d执行成功,则可以继续执行第三个分支点,否则,停止执行当前分支。在第二分支点处,控制命令e的优先级设置为Lev1,控制命令f的优先级设置为Lev2,控制命令f和控制命令e均为控制命令d的后序命令,控制命令f和控制命令e的前序命令均为控制命令d。此时,由于控制命令e的优先级Lev1高于控制命令f的优先级Lev2,则需要优先执行控制命令e所在分支,如果控制命令e执行成功,则可以继续执行后续命令,直至整个分支上的命令全部执行完毕,或者,在执行到特定控制命令时并未成功进而停止执行。然后再执行控制命令f所在分支,如果控制命令f执行成功,则可以继续执行后续命令,直至整个分支上的控制命令全部执行完毕,或者,在执行到特定控制命令时并未成功进而停止执行。当控制命令a所在分支全部执行完毕后,然后再执行控制命令x所在的分支,直至整个分支上的控制命令全部执行完毕,或者,在执行到特定控制命令时并未成功进而停止执行。至此,在用户终端上编辑的控制命令流全部执行完毕。
方式二、多个控制命令节点按照广度优先遍历算法设置编辑方式,其中,多个控制命令节点中的部分或全部控制命令节点预先设置有优先级,优先级用于确定位于同一层级的不同邻接控制命令节点的先后执行次序。
在用户给定的“树”形结构组成的多个控制命令节点中,初始状态是所有的控制命令节点均未被访问过,因此,可以从中选取一个控制命令节点作为初始点对其余未访问的控制命令节点进行访问。通过起始点沿出边向外扩展通过路径长度界定控制命令节点之间的层级关系,即可以将起始点作为第一层,将与起始点之间的路径长度为1的子节点作为第二层,再将与起始点之间的路径长度为2的子节点作为第三层,以此类推,其中,控制命令节点所在层级可以通过路径长度加1来获得。
如果当前访问过的控制命令节点(假设位于第n层)通过出边连通有两个或者更多邻接的控制命令节点(位于第n+1层),此时,在没有设定特殊判定条件的情况下,可以按照上述位于第n+1层的两个或者更多邻接的控制命令节点编辑次序或者在执行过程中进入队列的先后顺序来确定优先执行哪个控制命令节点。
本申请上述实施例一提供的方案中,进一步地,同样可以在支持优先级设置与判定的智能家居系统中,为每个控制命令节点设置对应的优先级。优先级同样可以根据实际需求进行设置并可以实时进行调整,例如:可以预先将家居智能系统中的部分或全部控制命令设置为10个等级(Lev1-Lev10),Lev1为最高优先级命令,Lev10为最低优先级命令,Lev1-Lev10的优先级依次降低。例如:智能家居系统接收来自于用户 终端的控制命令1、控制命令2、控制命令3、控制命令4以及控制命令5,其中,控制命令1是控制命令2、控制命令3的父节点,控制命令2是控制命令4、控制命令5的父节点。此时,可以将控制命令1作为第一层,那么控制命令2、控制命令3由于与控制命令1之间的路径长度为1,则作为第二层,而控制命令4、控制命令5由于与控制命令1之间的路径长度为2,则作为第三层。假设控制命令1的优先级为Lev1,控制命令2的优先级为Lev3,控制命令3的优先级为Lev2,控制命令4的优先级为Lev3,控制命令5的优先级为Lev2,那么按照上述配置的优先级,控制命令1、控制命令2、控制命令3、控制命令4以及控制命令5的执行次序依次为:控制命令1、控制命令3、控制命令2、控制命令5以及控制命令4。
在优选实施例中,具体到上述图6,如果采用广度优先遍历算法进行编辑,那么在经过编辑的控制命令流中,可以将控制命令a和控制命令x设置为第一层级,并且控制命令a和控制命令x的优先级都设置为Lev1。此时,由于控制命令a和控制命令x的优先级均为Lev1,因此,可以任意选择其中之一加以执行,此时假设选择执行控制命令a,那么在执行完控制命令a后则需要继续执行控制命令x。当位于第一层级的控制命令a和控制命令x均执行完毕后,则继续执行第二层级。在第二层级中,控制命令b的优先级设置为Lev1,控制命令d的优先级设置为Lev2,此时,由于控制命令b的优先级Lev1高于控制命令d的优先级Lev2,则需要优先执行控制命令b,然后再执行控制命令d。如果控制命令d执行完毕,则可以继续执行第三层级。在第三层级中,控制命令e的优先级设置为Lev1,控制命令f的优先级设置为Lev2,而由于控制命令c并没有预先设置优先级,则需要由智能家居系统为控制命令c分配一个优先级(假设为控制命令c分配的优先级为Lev3),此时,由于控制命令e的优先级Lev1高于控制命令f的优先级Lev2,而控制命令f的优先级Lev2又高于控制命令c的优先级Lev3,则需要优先执行控制命令e,再执行控制命令f,最后执行控制命令c,直至后续控制命令全部执行完毕。
需要说明的是,上述多个控制命令节点按照深度优先遍历算法进行编辑中提到的深度优先遍历算法以及上述多个控制命令节点按照广度优先遍历算法进行编辑中提到的广度优先遍历算法仅为本发明实施例中所提供的预设算法的两个优选算法,其并不构成对本发明的不当限制,本发明实施例完全还可以采用其他类型的图遍历算法来匹配不同的适用场景。
步骤S2:通过编辑方式获取多个控制命令节点中已经成功执行的控制命令节点,并按照已经成功执行的控制命令节点中每个控制命令节点相互间的执行先后顺序对部 分或全部智能设备进行控制。
由于通过本申请实施例一中提到的上述步骤,多个控制命令节点的编辑方式以及执行顺序已经十分明确。因此,可以按照各个控制命令相互间的编辑方式和执行顺序来按序控制相应地智能设备。例如:已经确定灯光控制命令、窗帘控制命令、室温控制命令、安全控制命令相互间的编辑方式如下:灯光控制命令为一条分支的起始控制命令节点,依次连接窗帘控制命令、室温控制命令;而安全控制命令为另一条分支的起始控制命令节点。另外,根据优先级判定结果,各个控制命令执行顺序如下:安全控制命令→灯光控制命令→窗帘控制命令→室温控制命令,因此,在执行具体控制操作过程中,先关闭防盗系统、再打开室内电灯、然后拉上室内窗帘,最后开启地暖供热。
在本申请上述实施例一提供的方案中,步骤S2中其中一种实现的根据编辑方式对部分或全部智能设备进行控制可以包括以下步骤:
步骤S21:按照通过深度优先遍历算法得到的编辑方式判断是否存在待执行的控制命令节点;如果是,则继续执行步骤S22;如果否,则继续执行步骤S23;
在优选实施过程中,按照通过深度优先遍历算法得到的编辑方式判断是否存在待执行的控制命令节点可以具体包括如下操作:确定多个控制命令节点已经按照深度优先遍历算法进行编排,得到编辑方式;判断编辑方式是否存在作为根节点的待执行的控制命令节点,或者,是否存在从根节点沿连通路径出发与当前执行完毕的控制命令节点相邻接的待执行的控制命令节点。
例如:组合控制命令流由控制命令1、控制命令2、控制命令3和控制命令4构成,其中,控制命令1为根节点,控制命令2和控制命令3为控制命令1的叶子节点,控制命令4又为控制命令2的叶子节点。在具体执行过程中,需要判断当前待执行的位置处于控制命令1的根节点处,还是处于控制命令2、控制命令3或者控制命令4的叶子节点处。首次执行时,位于控制命令1的根节点处,此时便可执行根节点的控制命令1;如果是非首次执行,则可以按照上述编辑方式依次执行上述控制命令2、控制命令3和控制命令4。
步骤S23:判断当前执行完毕的控制命令节点是否存在先前执行的前序控制命令节点;如果是,则返回步骤S21;如果否,则结束。
在优选实施例中,在将上述经过编辑的控制命令流导入智能家居控制系统的系统端后,智能家居控制系统的系统端采用基于优先级的深度遍历算法来执行该控制命令流。智能家居控制系统的系统端调度执行命令流的过程如下:
图7是根据本发明优选实施例的基于图6的控制命令流的执行过程流程图。如图7所示,智能家居控制系统的系统端在执行起始点时,其发现并执行的是“开始命令”,该命令并不存在“前序命令”。首先,执行“开始命令”是一个初始化的过程,然后获取后序控制命令a和控制命令x,进而选择优先级最高的未执行命令,由于控制命令a和控制命令x优先级相同,因此,可以随机选择执行控制命令a和控制命令x中任意一条控制命令。此处假设优先选择控制命令a,即执行图7中的流程1;当控制命令a执行后,即(根据执行结果情况)开始执行控制命令a的后序命令,获取到控制命令b和控制命令d。由于控制命令b的优先级Lev1高于控制命令d的优先级Lev2,因此,选择优先级较高的控制命令b开始执行,即执行图7中的流程1.1。待控制命令b及其控制命令b的后序命令c执行完毕后,然后开始执行控制命令a的另一条后序控制命令d及其后序控制命令,即执行图7中的流程1.2;当控制命令d执行成功后,由于控制命令e的优先级Lev1高于控制命令f的优先级Lev2,因此,又会按照优先级先执行图7中的流程1.2.1,然后再执行图6中的流程1.2.2。在控制命令a以及控制命令a的后序命令全部执行完毕后,才开始执行“开始命令”的另一条后序控制命令x,即执行图7中的流程2。
在本申请上述实施例一提供的方案中,步骤S2中另外一种实现的根据编辑方式逐次对部分或全部智能设备进行控制可以包括以下步骤:
步骤S24:按照通过广度优先遍历算法得到的编辑方式判断当前层级是否存在待执行的控制命令节点;如果是,则继续执行步骤S25;如果否,则继续执行步骤S26;
在优选实施过程中,按照通过所述广度优先遍历算法得到的所述编辑方式判断所述当前层级是否存在所述待执行的控制命令节点可以具体包括如下操作:确定所述多个控制命令节点已经按照所述广度优先遍历算法进行编排,得到所述编辑方式;判断所述编辑方式是否存在作为根节点的所述待执行的控制命令节点,或者,是否存在从所述根节点沿连通路径出发位于同一层级的兄弟节点之间所述待执行的控制命令节点。
例如:组合控制命令流由控制命令1、控制命令2、控制命令3和控制命令4构成,其中,控制命令1为根节点且位于第一层级,控制命令2和控制命令3为控制命令1的叶子节点且属于第二层级的兄弟节点,控制命令4又为控制命令2的叶子节点且位 于第三层级。在具体执行过程中,需要判断当前待执行的位置处于控制命令1的根节点处,还是处于控制命令2、控制命令3或者控制命令4的叶子节点处。首次执行时,位于控制命令1的根节点处,此时便可执行根节点的控制命令1;如果是非首次执行,则可以按照上述编辑方式依次执行上述控制命令2、控制命令3和控制命令4。
步骤S26:判断当前执行完毕的控制命令节点是否存在下一层级的后序控制命令节点;如果是,则返回步骤S24;如果否,则结束。
在优选实施例中,在将上述经过编辑的控制命令流导入智能家居控制系统的系统端后,智能家居控制系统的系统端采用基于优先级的广度遍历算法来执行该控制命令流。智能家居控制系统的系统端调度执行命令流的过程如下:
智能家居控制系统的系统端在执行起始点时,其发现并执行的是“开始命令”。首先,执行“开始命令”是一个初始化的过程,然后获取位于第一层级的控制命令a和控制命令x,进而选择优先级最高的未执行命令,由于控制命令a和控制命令x优先级相同,因此,可以随机选择执行控制命令a和控制命令x中任意一条命令。此处假设优先选择控制命令a,当命令a执行后,即(根据执行结果情况)开始执行控制命令x,并在执行完控制命令x后,确定位于第一层级的控制命令a和控制命令x全部执行完毕。接下来,获取到位于第二层级的控制命令b和控制命令d。由于控制命令b的优先级Lev1高于控制命令d的优先级Lev2,因此,选择优先级较高的控制命令b开始执行,并待控制命令b执行完毕后,然后开始执行控制命令d;当控制命令d执行成功后,确定位于第二层级的控制命令b和控制命令d全部执行完毕。接下来,获取位于第三层级的控制命令c、控制命令e和控制命令f。而由于控制命令c并没有预先设置优先级,则需要由智能家居系统为控制命令c分配一个优先级(假设为控制命令c分配的优先级为Lev3),此时,由于控制命令e的优先级Lev1高于控制命令f的优先级Lev2,而控制命令f的优先级Lev2又高于控制命令c的优先级Lev3,则需要按照优先级由高到低的顺序优先执行控制命令e,再执行控制命令f,最后执行控制命令c,直至后续控制命令全部执行完毕。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块 并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
根据本发明实施例,还提供了一种用于实施上述方法实施例的装置实施例。图8是根据本发明实施例的智能家居系统的控制装置的示意图。
其中,获取模块10,用于获取组合控制命令流,其中,组合控制命令流是按照预设算法由多个控制命令节点编辑而成,每个控制命令节点分别对应智能家居系统中不同的智能设备,且组合控制命令流中的至少一个控制命令节点存在多个邻接的控制命令节点;控制模块20,用于根据组合控制命令流对智能家居系统中的部分或全部智能设备进行控制。
由此可知,本申请提供的装置实施例,该装置可以应用于智能家居系统端,可以通过从客户端接收组合控制命令流,该组合控制命令流可以在用户终端进行编辑,然后再将组合控制命令流导入智能家居系统端。通过对现有的组合控制方式以及其使用场景进行了扩展,不再局限于相关技术中所提供的全部控制命令均采用串行执行的方式,而是在部分控制命令节点处采用同一个控制命令节点经由相通路径与多个后序控制命令节点相连并按照预设算法(例如:深度优先遍历算法或广度优先遍历算法)及其配套规则(例如:优先级调度模式)确定多个后序控制命令节点的执行次序。由此,解决了相关技术中的单流程组合控制命令的执行方式单一、缺乏灵活性的问题,进而实现对智能家居系统更加便捷和多样化的组合控制方式。
此处需要说明的是,本申请上述实施例提供的获取模块10和控制模块20与实施例一中提供的方法步骤S502至步骤S504具有相同的应用场景,但不限于方法提供的示例。而且上述各个模块可以作为硬件的一部分运行在移动终端1中。
其中,获取单元200,用于解析组合控制命令流,获取多个控制命令节点按照预设算法设置的编辑方式,其中,编辑方式为从多个控制命令节点中选取起始控制命令节点,并沿着起始控制命令节点的连通路径依次探寻每个可到达的控制命令节点,直至搜索到全部可到达的控制命令节点,以确定多个控制命令节点的拓扑排序关系;控制单元202,用于通过编辑方式获取多个控制命令节点中已经成功执行的控制命令节点,并按照已经成功执行的控制命令节点中每个控制命令节点相互间的执行先后顺序对部分或全部智能设备进行控制。
此处需要说明的是,本申请上述实施例提供的获取单元200和控制单元202与实施例一中提供的方法步骤S1至步骤S2具有相同的应用场景,但不限于方法提供的示例。而且上述各个单元可以作为硬件的一部分运行在移动终端1中。
方式一、将多个控制命令节点按照深度优先遍历算法设置编辑方式,其中,多个控制命令节点中的部分或全部控制命令节点预先设置有优先级,优先级用于确定与同一个控制命令节点路径相通的多个邻接控制命令节点的先后执行次序;
方式二、将多个控制命令节点按照广度优先遍历算法设置编辑方式,其中,多个控制命令节点中的部分或全部控制命令节点预先设置有优先级,优先级用于确定位于同一层级的不同邻接控制命令节点的先后执行次序。
此处需要说明的是,本申请上述实施例提供的第一获取子单元和第二获取子单元与实施例一中提供的获取编辑方式的方式一和方式二具有相同的应用场景,但不限于方法提供的示例。而且上述各个单元可以作为硬件的一部分运行在移动终端1中。
其中,第一判断子单元(图中未示出),用于按照通过深度优先遍历算法得到的编辑方式判断是否存在待执行的控制命令节点;第一选取子单元(图中未示出),用于在第一判断子单元输出为是时,从待执行的控制命令节点中选取优先级最高的控制命令节点并执行,然后将执行结果反馈至第一判断子单元;第二判断子单元(图中未示出),用于在第一判断子单元输出为否时,继续判断当前执行完毕的控制命令节点是否存在先前执行的前序控制命令节点,并在自身输出结果为是时,反馈该输出结果至第一判断子单元,否则,停止执行。
在优选实施过程中,第一判断子单元(图中未示出),用于确定多个控制命令节点已经按照深度优先遍历算法进行编排以得到编辑方式,并判断编辑方式是否存在作为根节点的待执行的控制命令节点,或者,是否存在从根节点沿连通路径出发与当前执行完毕的控制命令节点相邻接的待执行的控制命令节点。
此处需要说明的是,本申请上述实施例提供的第一判断子单元、第一选取子单元和第二判断子单元与实施例一中提供的方法步骤S21至步骤S23具有相同的应用场景,但不限于方法提供的示例。而且上述各个单元可以作为硬件的一部分运行在移动终端1中。
其中,第三判断子单元(图中未示出),用于按照通过广度优先遍历算法得到的编辑方式判断当前层级是否存在待执行的控制命令节点;第二选取子单元(图中未示出),用于在第三判断子单元输出为是时,从待执行的控制命令节点中选取优先级最高的控制命令节点并执行,然后将执行结果反馈至第三判断子单元;第四判断子单元(图中未示出),用于在第三判断子单元输出为否时,继续判断当前执行完毕的控制命令节点是否存在下一层级的后序控制命令节点,并在自身输出结果为是时,反馈该输出结果至第三判断子单元,否则,停止执行。
在优选实施过程中,第三判断子单元,用于确定多个控制命令节点已经按照广度优先遍历算法进行编排以得到编辑方式,并判断编辑方式是否存在作为根节点的待执行的控制命令节点,或者,是否存在从根节点沿连通路径出发位于同一层级的兄弟节点之间待执行的控制命令节点。
此处需要说明的是,本申请上述实施例提供的第三判断子单元、第二选取子单元和第四判断子单元与实施例一中提供的方法步骤S24至步骤S26具有相同的应用场景,但不限于方法提供的示例。而且上述各个单元可以作为硬件的一部分运行在移动终端1中。
作为本发明的一个优选实施例,图10是根据本发明优选实施例的智能家居系统中通过用户终端与系统端相互配合实现控制过程的示意图。如图10所示,该智能家居系统可以包括:用户终端和系统端以及多个执行可定制、可扩展的执行部件(每个执行部件对应一种智能设备),其中,用户终端可以包括:命令编辑模块,系统端可以包括:命令导入模块(可以用来实现上述存储器404对从用户终端接收到的组合控制命令流进行存储的功能)、调度控制模块(可以用来实现上述处理器402和传输装置406根据 组合控制命令流对智能家居系统中的部分或全部智能设备进行控制的功能)。该智能家居系统通过引入深度优先遍历以及命令优先级判定的机制,对现有的组合控制方式以及其使用场景进行了扩展,以支持更复杂的使用场景。通过深度遍历,可以实现多流程复合遍历,完成更加便捷和多样化的组合控制。在用户终端上的命令编辑模块可以编辑控制命令流,例如:起始命令为关闭智能门窗命令,后序命令为高优先级的开启室内温控系统的命令、中优先级的调节室内灯光的命令以及低优先级的其他执行命令。然后,通过系统端上的命令导入模块将上述经过编辑的命令控制流导入至系统端。最后,由调度控制模块执行上述经过编辑的命令控制流,其可以根据关闭智能门窗命令的执行结果判断是否需要继续执行后序命令。如果执行失败,则停止继续执行;如果执行成功,则首先去遍历高优先级的开启室内温控系统的命令,以执行开启室内温控系统以及后续命令,然后再遍历中优先级的调节室内灯光的命令,以执行调整室内灯光以及后续命令,最后再遍历低优先级的其他执行命令。
此外,需要说明的是,为了能够更加简化用户的操作,可以在智能家居系统端设置定时器,以便周期性地执行预先设定的多项操作。例如:假设用户通常在晚上18:00左右下班回家,那么就可以通过设置定时器,约定每天晚上18:00智能家居系统自动执行用户预先设定的组合控制命令流,自动开启室内灯光、关闭防盗系统、拉上室内窗帘以及开启地暖调节室温。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的移动终端,可通过的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以 是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。