场景联动的控制方法及系统、网关设备和存储介质
技术领域
本发明涉及智能网关技术领域,具体而言,涉及一种场景联动的控制方法、一种场景联动的控制系统、一种网关设备和一种计算机可读存储介质。
背景技术
一般地,智能家居厂家出售的智能家居设备只能被单独控制,多个智能家居设备之间无法形成相互联动,因此无法根据用户的需求设置不同的场景实现联动控制,也无法实现同时对多种智能家居设备的集中控制,导致智能家居设备的控制效率较低。
因此,目前亟需一种技术方案可以实现场景联动控制。
发明内容
本发明旨在至少解决现有技术或相关技术中存在的技术问题之一。
为此,本发明的第一方面提出一种场景联动的控制方法。
本发明的第二方面提出一种场景联动的控制系统。
本发明的第三方面提出一种网关设备。
本发明的第四方面提出一种计算机可读存储介质。
有鉴于此,本发明的第一方面提供了一种场景联动的控制方法,包括:确定目标场景,并获取目标场景对应的状态信息;基于状态信息满足目标场景的启动条件,发送目标场景对应设备的控制指令。
在该技术方案中,首先由场景执行方(如智能网关)确定需要执行的目标场景,其中场景数据存储于智能网关的数据库中,在确定目标场景后,对应获取待执行目标场景的状态信息,并判断该目标场景的状态信息是否满足场景的启动条件,如果目标场景的状态信息满足了对应的启动条件,则执行该目标场景,将该目标场景对应设备的控制指令分别发送至一个或多个对应设备。应用了本发明提供的技术方案,通过确定待运行的目标场景,并基于对应启动条件的判断结果执行目标场景,具体为向目标场景对应的一个或多个智能家居设备发送控制指令,使得智能家居设备可以根据设置好的目标场景联动控制,其中目标场景可根据用户需求自由设置,进而实现了对多种智能家居设备的集中控制,提高了智能家居系统的执行效率,极大地提升了用户体验。
具体地,用户通过移动终端或电脑终端编辑好需要执行的场景并上传至服务器,服务器对接收到的场景数据加密保存,并针对每一个待执行场景生成对应的场景识别代码,将场景数据(包括场景名、场景触发条件、场景启动条件、对应智能家居设备的设备信息和针对对应智能家居设备的控制指令等)发送至作为智能家居系统网络中继的智能网关,智能网关将场景数据保存至本地数据库存储器中。在智能网关确认到场景触发指令时(可由用户端发送触发指令,或根据预设的触发条件自动触发),确定待执行的目标场景,在确定目标场景后,判断该目标场景是否满足预设的启动条件,如果满足,向目标场景对应的多个智能家居设备发送控制指令,以使多个智能家居设备在根据预设的场景数据联动工作。
另外,本发明提供的上述技术方案中的场景联动的控制方法还可以具有如下附加技术特征:
在上述技术方案中,进一步地,确定目标场景的步骤具体包括:接收设备信息;根据所述设备信息在预存的场景列表中获取所述目标场景。
在该技术方案中,场景的联动方法为自运行场景,即由设备的属性变化触发对应的场景执行。具体地,当系统中某一设备属性发生变化时(如智能开关的开关状态发生变化),智能网关接收该设备的设备信息,并以此触发场景检测,具体地,根据获取到的设备信息在预存的场景列表中获取对应的目标场景,其中预存场景列表保存在智能网关的内存(RAM,Random Access Memory)中。举例来说,当“门廊灯智能开关”这一设备的属性由“关闭”转变为“开启”时,“门廊灯智能开关”将自身的设备信息发送至智能网关,智能网关接收到“门廊灯智能开关”发送的设备信息后触发场景检测。在预存的设备列表中,“客厅灯”、“起居室灯”、“空调器”和“电视机”是相对应的,智能网关在获取到上述对应的智能家居设备后,根据上述智能家居对应搜索查找预存的场景列表,其中的场景为IFTTT结构,即“ifthis then that”,其中this表示的场景启动条件,That表示执行的动作。条件和结果是相互独立的,也就是说条件的判断不依赖结果,不需要根据结果来搜索场景。获取到场景条件之后,可以确定对应场景的标识(sceneID)。条件满足时,直接根据sceneID执行动作。预存的场景列表中存在“回家”这一场景包含上述智能家居设备,由此可自动确定待执行的目标场景为“回家”。此时执行目标场景“回家”对应的状态信息是否满足对应启动条件的判断步骤,若判断满足执行条件,则执行“回家”这一场景,同步开启“客厅灯”和“起居室灯”,开启“空调器”并将目标温度设置为25℃,同时开启“电视机”并将频道锁定为“新闻频道”。
在上述任一技术方案中,进一步地,状态信息包括:设备信息和目标设备的属性信息;目标场景的启动条件具体包括:设备信息与目标设备的设备信息相匹配,且属性信息与目标设备的属性信息相匹配。
在该技术方案中,目标场景的状态信息包括预存设备列表中与设备信息相对应的目标设备的设备信息,以及该目标设备的属性信息。具体地,设备信息中包含了指示表示该设备目前是否存在的设备状态,如果设备状态为在线状态,说明当前目标设备存在于智能家居系统中,且目标设备未离线,如果设备状态为离线状态,则说明当前目标设备不存在于智能家居系统中,可能的原因是设备离线、设备故障或设备被移除等。设备的属性信息包括设备的识别信息,如设备的MAC(Media Access Control Address,媒体访问控制地址)地址、IP(Internet Protocol,网际协议)地址或设备软件识别信息,属性信息还包括设备的连接方式,比如该设备通过Wi-Fi(基于IEEE 802.11标准的无线局域网技术)连接、该设备通过ZigBee(紫蜂协议)连接、该设备通过RS485连接或通过BLE(Bluetooth Low Energy,蓝牙低能耗)连接。目标场景的联动方法为自运行场景,目标场景对应的目标设备的设备状态为在线状态,且在线的目标设备的属性信息,具体包括识别信息和连接方式与设备列表中对应的设备信息相匹配时,判定当前的状态信息满足目标场景的启动条件,此时自动启动目标场景,发送对应的控制指令至目标设备。
在上述任一技术方案中,进一步地,在发送目标场景对应设备的控制指令的步骤之后,场景联动的控制方法还包括:开启计时;基于计时时长未达到目标时长,且状态信息再次满足目标场景的启动条件,再次发送控制指令,将计时时长置零并重新开启计时。
在该技术方案中,场景为延时场景,在目标场景开启,向对应设备发出控制指令的同时开启计时,如在计时时长未达到目标时长时,智能网关再次确认当前状态信息满足目标场景的启动条件,则重新开始计时。举例来说,目标场景为“感应灯”场景,对应的设备为红外线人体接近传感器和智能灯,当红外线人体接近传感器检测到人体接近时,确定状态信息满足目标场景的启动条件,此时开启智能灯,同时计时2分钟,在2分钟内,如果红外线人体接近传感器没有再次检测到人体接近,则智能灯按时关闭以节约能源,如果在2分钟内再次检测到人体接近,则将计时时长清零,重新开启计时,直至智能灯开启的2分钟内没有人体接近,按时关闭智能灯。
在上述任一技术方案中,进一步地,确定目标场景的步骤,具体包括:接收场景指令并确认场景状态,根据场景指令确定目标场景和对应的目标运行时间,并在预存场景列表中获取目标场景。
在该技术方案中,目标场景的联动方法为普通运行场景或定时运行场景。智能网关接收场景指令并确认场景状态,场景指令具体可以为用户终端发送的即时启动命令,也可以是用户终端或服务器发送的定时启动场景。在智能网关接收到场景指令后,根据场景指令确定所要运行的目标场景,并在预存的场景列表中获取目标场景的场景数据以备运行,其中预存的场景列表保存在智能网关的数据库中;同时智能网关确认目标场景的场景状态,以及获取目标场景对应的目标运行时间,其中目标场景的场景状态包括使能状态和禁止状态,当场景的联动方式为普通运行场景时,目标运行时间即当前时间点,目标场景即时运行。
在上述任一技术方案中,进一步地,状态信息包括:场景指令的接收状态;和/或场景状态和当前系统时间;目标场景的启动条件具体包括:接收状态为已接收;和/或场景状态为使能状态,且当前系统时间与目标运行时间相匹配。
在该技术方案中,目标场景的状态信息包括场景指令的接收状态和/或当前系统时间。具体地,当智能网关接收到场景指令后,即刻将场景指令的接收状态设置为已接收的状态,在目标场景的联动方法为普通场景的情况下,场景指令的接收状态为已接收即判定目标场景满足启动条件,即时启动目标场景。在目标场景的联动方法为定时运行场景的情况下,确认目标场景的场景状态并获取当前的系统时间,如果目标场景的场景状态为使能状态,且当前系统时间与待启动的目标场景的目标运行时间相匹配,则判定目标场景满足启动条件,启动目标场景。
在上述任一技术方案中,进一步地,在确定目标场景的步骤之前,场景联动的控制方法还包括:生成预存场景列表中每一个场景对应的指针信息;以及在确定目标场景的步骤之后,场景联动的控制方法还包括:将目标场景对应的指针信息添加至缓存列表。
在该技术方案中,生成预存场景列表中每一个场景对应的指针信息,每一个指针信息指示单独一个场景,即指针与场景一一对应;在确定目标场景后,将指针信息添加至缓存列表,在判定状态信息满足启动条件后,根据指针信息查找目标场景的具体场景数据,并启动场景。通过以指针的形式保存缓存列表,所需储存空间小,可以有效地节约系统资源,且通过指针查找场景数据的查找速度更快,可以显著地提升场景的执行效率。
在上述任一技术方案中,进一步地,基于状态信息不满足目标场景的启动条件,场景联动的控制方法还包括:删除缓存列表中目标场景对应的指针。
在该技术方案中,如果当前状态信息不满足目标场景的启动条件时,对于一般场景的状态,可以认为此时不应该启动目标场景,因此在缓存列表中删除目标场景对应的指针,不再启动目标场景。或者,对于可延时启动的场景,则开启计时,每当计时时长达到预设的目标时长时,再次判断当前状态信息是否满足目标场景的启动条件,如不满足,则重新开启计时,直至启动条件被满足,场景启动。
本发明的第二方面提供了一种场景联动的控制系统,包括存储器,用于存储计算机程序;处理器,用于执行计算机程序以实现:确定目标场景,并获取目标场景对应的状态信息;基于状态信息满足目标场景的启动条件,发送目标场景对应设备的控制指令。
在该技术方案中,首先由场景执行方(如智能网关)确定需要执行的目标场景,其中场景数据存储于智能网关的数据库中,在确定目标场景后,对应获取待执行目标场景的状态信息,并判断该目标场景的状态信息是否满足场景的启动条件,如果目标场景的状态信息满足了对应的启动条件,则执行该目标场景,将该目标场景对应设备的控制指令分别发送至一个或多个对应设备。应用了本发明提供的技术方案,通过确定待运行的目标场景,并基于对应启动条件的判断结果执行目标场景,具体为向目标场景对应的一个或多个智能家居设备发送控制指令,使得智能家居设备可以根据设置好的目标场景联动控制,其中目标场景可根据用户需求自由设置,进而实现了对多种智能家居设备的集中控制,提高了智能家居系统的执行效率,极大地提升了用户体验。
在上述技术方案中,进一步地,处理器用于执行计算机程序以实现确定目标场景的步骤,具体包括:接收设备信息;根据所述设备信息在预存的场景列表中获取所述目标场景。
在该技术方案中,场景的联动方法为自运行场景,即由设备的属性变化触发对应的场景执行。具体地,当系统中某一设备属性发生变化时(如智能开关的开关状态发生变化),智能网关接收该设备的设备信息,并以此触发场景检测,具体地,根据获取到的设备信息在预存的场景列表中获取对应的目标场景,其中预存场景列表保存在智能网关的内存(RAM)中。举例来说,当“门廊灯智能开关”这一设备的属性由“关闭”转变为“开启”时,“门廊灯智能开关”将自身的设备信息发送至智能网关,智能网关接收到“门廊灯智能开关”发送的设备信息后触发场景检测。在预存的设备列表中,“客厅灯”、“起居室灯”、“空调器”和“电视机”是相对应的,智能网关在获取到上述对应的智能家居设备后,根据上述智能家居对应搜索查找预存的场景列表,其中的场景为IFTTT结构,即“if this then that”,其中this表示的场景启动条件,That表示执行的动作。条件和结果是相互独立的,也就是说条件的判断不依赖结果,不需要根据结果来搜索场景。获取到场景条件之后,可以确定对应场景的标识(sceneID)。条件满足时,直接根据sceneID执行动作。预存的场景列表中存在“回家”这一场景包含上述智能家居设备,由此可自动确定待执行的目标场景为“回家”。此时执行目标场景“回家”对应的状态信息是否满足对应启动条件的判断步骤,若判断满足执行条件,则执行“回家”这一场景,同步开启“客厅灯”和“起居室灯”,开启“空调器”并将目标温度设置为25℃,同时开启“电视机”并将频道锁定为“新闻频道”。
在上述任一技术方案中,进一步地,状态信息包括:设备信息和目标设备的属性信息;目标场景的启动条件具体包括:设备信息与目标设备的设备信息相匹配,且属性信息与目标设备的属性信息相匹配。
在该技术方案中,目标场景的状态信息包括预存设备列表中与设备信息相对应的目标设备的设备信息,以及该目标设备的属性信息。具体地,设备信息中包含了指示表示该设备目前是否存在的设备状态,如果设备状态为在线状态,说明当前目标设备存在于智能家居系统中,且目标设备未离线,如果设备状态为离线状态,则说明当前目标设备不存在于智能家居系统中,可能的原因是设备离线、设备故障或设备被移除等。设备的属性信息包括设备的识别信息,如设备的MAC(Media Access Control Address,媒体访问控制地址)地址、IP(Internet Protocol,网际协议)地址或设备软件识别信息,属性信息还包括设备的连接方式,比如该设备通过Wi-Fi连接、该设备通过ZigBee(紫蜂协议)连接、该设备通过RS485连接或通过BLE(Bluetooth Low Energy,蓝牙低能耗)连接。目标场景的联动方法为自运行场景,目标场景对应的目标设备的设备状态为在线状态,且在线的目标设备的属性信息,具体包括识别信息和连接方式与设备列表中对应的设备信息相匹配时,判定当前的状态信息满足目标场景的启动条件,此时自动启动目标场景,发送对应的控制指令至目标设备。
在上述任一技术方案中,进一步地,发送目标场景对应设备的控制指令的步骤之后,处理器还用于执行计算机程序以实现:开启计时;基于计时时长未达到目标时长,且状态信息再次满足目标场景的启动条件,再次发送控制指令,将计时时长置零并重新开启计时。
在该技术方案中,场景为延时场景,在目标场景开启,向对应设备发出控制指令的同时开启计时,如在计时时长未达到目标时长时,智能网关再次确认当前状态信息满足目标场景的启动条件,则重新开始计时。举例来说,目标场景为“感应灯”场景,对应的设备为红外线人体接近传感器和智能灯,当红外线人体接近传感器检测到人体接近时,确定状态信息满足目标场景的启动条件,此时开启智能灯,同时计时2分钟,在2分钟内,如果红外线人体接近传感器没有再次检测到人体接近,则智能灯按时关闭以节约能源,如果在2分钟内再次检测到人体接近,则将计时时长清零,重新开启计时,直至智能灯开启的2分钟内没有人体接近,按时关闭智能灯。
在上述任一技术方案中,进一步地,处理器用于执行计算机程序以实现确定目标场景的步骤,具体包括:接收场景指令并确认场景状态,根据场景指令确定目标场景和对应的目标运行时间,并在预存场景列表中获取目标场景。
在该技术方案中,目标场景的联动方法为普通运行场景或定时运行场景。智能网关接收场景指令并确认场景状态,场景指令具体可以为用户终端发送的即时启动命令,也可以是用户终端或服务器发送的定时启动场景。在智能网关接收到场景指令后,根据场景指令确定所要运行的目标场景,并在预存的场景列表中获取目标场景的场景数据以备运行,其中预存的场景列表保存在智能网关的数据库中;同时智能网关确认目标场景的场景状态,以及获取目标场景对应的目标运行时间,其中目标场景的场景状态包括使能状态和禁止状态,当场景的联动方式为普通运行场景时,目标运行时间即当前时间点,目标场景即时运行。
在上述任一技术方案中,进一步地,状态信息包括:场景指令的接收状态;和/或场景状态和当前系统时间;目标场景的启动条件具体包括:接收状态为已接收;和/或场景状态为使能状态,且当前系统时间与目标运行时间相匹配。
在该技术方案中,目标场景的状态信息包括场景指令的接收状态和/或当前系统时间。具体地,当智能网关接收到场景指令后,即刻将场景指令的接收状态设置为已接收的状态,在目标场景的联动方法为普通场景的情况下,场景指令的接收状态为已接收即判定目标场景满足启动条件,即时启动目标场景。在目标场景的联动方法为定时运行场景的情况下,确认目标场景的场景状态并获取当前的系统时间,如果目标场景的场景状态为使能状态,且当前系统时间与待启动的目标场景的目标运行时间相匹配,则判定目标场景满足启动条件,启动目标场景。
在上述任一技术方案中,进一步地,在确定目标场景的步骤之前,处理器还用于执行计算机程序以实现:生成预存场景列表中每一个场景对应的指针信息;以及处理器还用于执行计算机程序以实现在确定目标场景的步骤之后,将目标场景对应的指针信息添加至缓存列表。
在该技术方案中,生成预存场景列表中每一个场景对应的指针信息,每一个指针信息指示单独一个场景,即指针与场景一一对应;在确定目标场景后,将指针信息添加至缓存列表,在判定状态信息满足启动条件后,根据指针信息查找目标场景的具体场景数据,并启动场景。通过以指针的形式保存缓存列表,所需储存空间小,可以有效地节约系统资源,且通过指针查找场景数据的查找速度更快,可以显著地提升场景的执行效率。
在上述任一技术方案中,进一步地,处理器还用于执行计算机程序以实现:删除缓存列表中目标场景对应的指针。
在该技术方案中,如果当前状态信息不满足目标场景的启动条件时,对于一般场景的状态,可以认为此时不应该启动目标场景,因此在缓存列表中删除目标场景对应的指针,不再启动目标场景。或者,对于可延时启动的场景,则开启计时,每当计时时长达到预设的目标时长时,再次判断当前状态信息是否满足目标场景的启动条件,如不满足,则重新开启计时,直至启动条件被满足,场景启动。
本发明的第三方面提供了一种网关设备,该网关设备包括如上述任一技术方案中的场景联动的控制系统,因此,该网关设备包括如上述任一技术方案中的场景联动的控制系统的全部有益效果。
本发明的第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述任一技术方案中的场景联动的控制方法,因此,该计算机可读存储介质包括上述任一技术方案中的场景联动的控制方法的全部有益效果。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出了根据本发明的一个实施例的场景联动的控制方法的流程图;
图2示出了根据本发明的另一个实施例的场景联动方法的流程图;
图3示出了根据本发明的又一个实施例的场景联动的控制方法的流程图;
图4A示出了根据本发明的再一个实施例的场景联动的控制方法的流程图;
图4B示出了根据本发明的再一个实施例的场景联动的控制方法的流程图;
图5示出了根据本发明的一个实施例的普通场景的步骤示意图;
图6示出了根据本发明的一个实施例的自运行场景的步骤示意图;
图7示出了根据本发明的一个实施例的定时场景的步骤示意图;
图8示出了根据本发明的一个实施例的延时运行场景的步骤示意图;
图9示出了根据本发明的一个实施例的特定设备相关场景指针的场景链表的示意图;
图10示出了根据本发明的一个实施例的场景联动的控制系统的框图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
下面参照图1至图10描述根据本发明一些实施例所述场景联动的控制方法、场景联动的控制系统、网关设备和计算机可读存储介质。
如图1所示,在本发明第一方面的实施例中,提供了一种场景联动的控制方法,包括:
S102,确定目标场景,并获取目标场景对应的状态信息;
S104,基于状态信息满足目标场景的启动条件,发送目标场景对应设备的控制指令。
在该实施例中,首先由场景执行方(如智能网关)确定需要执行的目标场景,其中场景数据存储于智能网关的数据库中,在确定目标场景后,对应获取待执行目标场景的状态信息,并判断该目标场景的状态信息是否满足场景的启动条件,如果目标场景的状态信息满足了对应的启动条件,则执行该目标场景,将该目标场景对应设备的控制指令分别发送至一个或多个对应设备。应用了本发明提供的技术方案,通过确定待运行的目标场景,并基于对应启动条件的判断结果执行目标场景,具体为向目标场景对应的一个或多个智能家居设备发送控制指令,使得智能家居设备可以根据设置好的目标场景联动控制,其中目标场景可根据用户需求自由设置,进而实现了对多种智能家居设备的集中控制,提高了智能家居系统的执行效率,极大地提升了用户体验。
具体地,用户通过移动终端或电脑终端编辑好需要执行的场景并上传至服务器,服务器对接收到的场景数据加密保存,并针对每一个待执行场景生成对应的场景识别代码,将场景数据(包括场景名、场景触发条件、场景启动条件、对应智能家居设备的设备信息和针对相应智能家居设备的控制指令等)发送至作为智能家居系统网络中继的智能网关,智能网关将场景数据保存至本地数据库中。在智能网关确认到场景触发指令时(可由用户端发送触发指令,或根据预设的触发条件自动触发),确定待执行的目标场景,在确定目标场景后,判断该目标场景是否满足预设的启动条件,如果满足,向目标场景对应的多个智能家居设备发送控制指令,以使多个智能家居设备在根据预设的场景数据联动工作。
优选地,场景的启动条件为多个时,多个启动条件基于IFTTT(if this thenthat)思想,即当某个条件或者是多个条件被满足时,执行某一个对应动作或者多个动作。其中,使用if(this)标识场景条件,使用th(then、that)标识执行动作。在if对象里,多个条件之间可以为“与”的关系,即多个条件需要同时被满足,才可以视为启动条件被满足;多个条件之间也可为“或”的关系,即至少一个条件被满足的情况,就可以视为启动条件被满足。在th对象里,多个动作依次执行,包括了ZigBee设备(如烟雾报警器、水浸探测器、智能门锁、开关面板、灯具、窗帘等)、Wi-Fi设备(如空调、风扇、洗衣机等)、局域网设备(如音乐播放系统)、BLE设备(如智能门锁等)、RS485(如中央空调等)设备等相关动作。
在本发明的一个实施例中,进一步地,确定目标场景的步骤具体包括:接收设备信息;根据所述设备信息在预存的场景列表中获取所述目标场景。
在该实施例中,场景的联动方法为自运行场景,即由设备的属性变化触发对应的场景执行。具体地,当系统中某一设备属性发生变化时(如智能开关的开关状态发生变化),智能网关接收该设备的设备信息,并以此触发场景检测,具体地,根据获取到的设备信息在预存的场景列表中获取对应的目标场景,其中预存场景列表保存在智能网关的内存(RAM)中。举例来说,当“门廊灯智能开关”这一设备的属性由“关闭”转变为“开启”时,“门廊灯智能开关”将自身的设备信息发送至智能网关,智能网关接收到“门廊灯智能开关”发送的设备信息后触发场景检测。在预存的设备列表中,“客厅灯”、“起居室灯”、“空调器”和“电视机”是相对应的,智能网关在获取到上述对应的智能家居设备后,根据上述智能家居对应搜索查找预存的场景列表,其中的场景为IFTTT结构,即“if this then that”,其中this表示的场景启动条件,That表示执行的动作。条件和结果是相互独立的,也就是说条件的判断不依赖结果,不需要根据结果来搜索场景。获取到场景条件之后,可以确定对应场景的标识(sceneID)。条件满足时,直接根据sceneID执行动作。预存的场景列表中存在“回家”这一场景包含上述智能家居设备,由此可自动确定待执行的目标场景为“回家”。此时执行目标场景“回家”对应的状态信息是否满足对应启动条件的判断步骤,若判断满足执行条件,则执行“回家”这一场景,同步开启“客厅灯”和“起居室灯”,开启“空调器”并将目标温度设置为25℃,同时开启“电视机”并将频道锁定为“新闻频道”。
在本发明的一个实施例中,进一步地,状态信息包括:设备信息和目标设备的属性信息;目标场景的启动条件具体包括:设备信息与目标设备的设备信息相匹配,且属性信息与目标设备的属性信息相匹配。
在该实施例中,目标场景的状态信息包括预存设备列表中与设备信息相对应的目标设备的设备信息,以及该目标设备的属性信息。具体地,设备信息中包含了指示表示该设备目前是否存在的设备状态,如果设备状态为在线状态,说明当前目标设备存在于智能家居系统中,且目标设备未离线,如果设备状态为离线状态,则说明当前目标设备不存在于智能家居系统中,可能的原因是设备离线、设备故障或设备被移除等。设备的属性信息包括设备的识别信息,如设备的MAC(Media Access Control Address,媒体访问控制地址)地址、IP(Internet Protocol,网际协议)地址或设备软件识别信息,属性信息还包括设备的连接方式,比如该设备通过Wi-Fi(基于IEEE 802.11标准的无线局域网技术)连接、该设备通过ZigBee(紫蜂协议)连接、该设备通过RS485连接或通过BLE(Bluetooth Low Energy,蓝牙低能耗)连接。目标场景的联动方法为自运行场景,目标场景对应的目标设备的设备状态为在线状态,且在线的目标设备的属性信息,具体包括识别信息和连接方式与设备列表中对应的设备信息相匹配时,判定当前的状态信息满足目标场景的启动条件,此时自动启动目标场景,发送对应的控制指令至目标设备。
在本发明的一个实施例中,进一步地,如图2所示,在发送目标场景对应设备的控制指令的步骤之后,场景联动的控制方法还包括:
S202,开启计时;
S204,判断计时时长是否达到目标时长;
S206,基于计时时长未达到目标时长,且状态信息再次满足目标场景的启动条件,再次发送控制指令,将计时时长置零并重新开启计时。
在该实施例中,场景为延时场景,在目标场景开启,向对应设备发出控制指令的同时开启计时,如在计时时长未达到目标时长时,智能网关再次确认当前状态信息满足目标场景的启动条件,则重新开始计时。举例来说,目标场景为“感应灯”场景,对应的设备为红外线人体接近传感器和智能灯,当红外线人体接近传感器检测到人体接近时,确定状态信息满足目标场景的启动条件,此时开启智能灯,同时计时2分钟,在2分钟内,如果红外线人体接近传感器没有再次检测到人体接近,则智能灯按时关闭以节约能源,如果在2分钟内再次检测到人体接近,则将计时时长清零,重新开启计时,直至智能灯开启的2分钟内没有人体接近,按时关闭智能灯。
在本发明的一个实施例中,进一步地,确定目标场景的步骤,具体包括:接收场景指令并确认场景状态,根据场景指令确定目标场景和对应的目标运行时间,并在预存场景列表中获取目标场景。
在该实施例中,目标场景的联动方法为普通运行场景或定时运行场景。智能网关接收场景指令并确认场景状态,场景指令具体可以为用户终端发送的即时启动命令,也可以是用户终端或服务器发送的定时启动场景。在智能网关接收到场景指令后,根据场景指令确定所要运行的目标场景,并在预存的场景列表中获取目标场景的场景数据以备运行,其中预存的场景列表保存在智能网关的数据库中;同时智能网关确认目标场景的场景状态,以及获取目标场景对应的目标运行时间,其中目标场景的场景状态包括使能状态和禁止状态,当场景的联动方式为普通运行场景时,目标运行时间即当前时间点,目标场景即时运行。
在本发明的一个实施例中,进一步地,状态信息包括:场景指令的接收状态;和/或场景状态和当前系统时间;目标场景的启动条件具体包括:接收状态为已接收;和/或场景状态为使能状态,且当前系统时间与目标运行时间相匹配。
在该实施例中,目标场景的状态信息包括场景指令的接收状态和/或当前系统时间。具体地,当智能网关接收到场景指令后,即刻将场景指令的接收状态设置为已接收的状态,在目标场景的联动方法为普通场景的情况下,场景指令的接收状态为已接收即判定目标场景满足启动条件,即时启动目标场景。在目标场景的联动方法为定时运行场景的情况下,确认目标场景的场景状态并获取当前的系统时间,如果目标场景的场景状态为使能状态,且当前系统时间与待启动的目标场景的目标运行时间相匹配,则判定目标场景满足启动条件,启动目标场景。
在本发明的一个实施例中,进一步地,如图3所示,场景联动的控制方法包括:
S302,生成预存场景列表中每一个场景对应的指针信息;
S304,确定目标场景,将目标场景对应的指针信息添加至缓存列表;
S306,获取目标场景对应的状态信息;
S308,基于状态信息满足目标场景的启动条件,发送目标场景对应设备的控制指令。
在该实施例中,生成预存场景列表中每一个场景对应的指针信息,每一个指针信息指示单独一个场景,即指针与场景一一对应;在确定目标场景后,将指针信息添加至缓存列表,在判定状态信息满足启动条件后,根据指针信息查找目标场景的具体场景数据,并启动场景。通过以指针的形式保存缓存列表,所需储存空间小,可以有效地节约系统资源,且通过指针查找场景数据的查找速度更快,可以显著地提升场景的执行效率。
在本发明的一个实施例中,进一步地,如图4A所示,场景联动的控制方法包括:
S402,生成预存场景列表中每一个场景对应的指针信息;
S404,确定目标场景,将目标场景对应的指针信息添加至缓存列表;
S406,获取目标场景对应的状态信息;
S408,判断状态信息是否满足目标场景的启动条件;
S410,基于状态信息不满足目标场景的启动条件,开启计时,确定计时时长达到目标时长,返回S408;
S412,基于状态信息满足目标场景的启动条件,发送目标场景对应设备的控制指令。
在该实施例中,对于可延时启动的场景,则开启计时,每当计时时长达到预设的目标时长时,再次判断当前状态信息是否满足目标场景的启动条件,如不满足,则重新开启计时,直至启动条件被满足,场景启动。
在本发明的一个实施例中,进一步地,如图4B所示,场景联动的控制方法包括:
S402’,生成预存场景列表中每一个场景对应的指针信息;
S404’,确定目标场景,将目标场景对应的指针信息添加至缓存列表;
S406’,获取目标场景对应的状态信息;
S408’,判断状态信息是否满足目标场景的启动条件;
S410’,基于状态信息满足目标场景的启动条件,发送目标场景对应设备的控制指令;
S412’,基于状态信息不满足目标场景的启动条件,删除缓存列表中目标场景对应的指针信息。
在该实施例中,如果当前状态信息不满足目标场景的启动条件时,对于一般场景的状态,可以认为此时不应该启动目标场景,因此在缓存列表中删除目标场景对应的指针,不再启动目标场景。
在本发明的一个实施例中,用户在APP端编辑好需要执行的场景发送给服务器,服务器生成场景标识号(sceneID),用来唯一标识每个场景,服务器之后将场景数据推送给网关,网关将相应的场景数据加载到自身的内存(RAM)上,具有读取速度快的优点,使场景具有较高的执行效率。当网关收到指令时,网关的处理器运行相应程序,从内存(RAM)中读取相应的场景,并根据场景类型(scenetype)进行逻辑判断,执行相应场景,最后根据设备物理网络类型(networkType)与设备MAC地址下发指令到对应的网络中,控制相应的智能家居设备。
当场景的联动方法为普通场景类型时,具体如图5所示,控制流程如下:
在S510中,APP下发命令到云端,命令里包含了相应场景的sceneID。
在S520中,云端转发命令到网关。
在S530中,网关根据sceneID,在内存(RAM)中存储的场景链表中找到相应的场景,并添加到待执行场景链表中。
在S540中,最后网关处理待执行场景链表,执行相应场景。
在S550中,网关根据设备物理网络类型(networkType)与设备MAC地址下发指令到对应的网络中,控制相应的设备(ZigBee、Wi-Fi、BLE、局域网与RS485等设备)。
当场景的联动方法为自运行场景时,具体如图6所示,由设备属性变化来触发运行场景运行。具体步骤如下:
在S610中,对于ZigBee设备(如火灾报警器、开关面板),在上报属性(如属性开关:OnOff=1)到网关后,由网关进行处理。
在S620中,对于Wi-Fi设备(如洗衣机、冰箱),将属性改变(如属性温度CurrTemp:25)上报到云端,云端将属性变化推送到网关进行处理。
之后对于两种情况的处理相同。
在S630中,网关利用消息中的设备物理网络类型(networkType)与设备MAC地址在设备链表中找到该设备的结构体数据,更新设备属性值,并取出设备结构体中与该设备相关的场景链表,从中取出符合条件的场景结构体存入场景缓存链表中。
在S640中,网关从场景缓存链表中取出相关自运行场景数据结构体,判断上报属性条件与自运行场景中存储的IF条件之间的关系(二者间的判断标准分为大于、小于、等于或不等于),如有多个上报属性条件,则需要同时满足,即多个上报属性条件之间为“与”的关系(若为“或”场景,则只需要至少一个条件满足即可),即条件之间的关系为“与”。若判断结果为真,则将自运行场景存入待执行场景链表。
在S650中,网关处理待执行场景链表,执行相应场景。
在S660中,网关根据设备物理网络类型(networkType)与设备MAC地址下发指令到对应的网络中,控制相应的设备(ZigBee、Wi-Fi、BLE、局域网与RS485等设备)。
当场景的联动方法为定时场景时,如图7所示,具体步骤如下:
在S710中,网关在内存(RAM)存储的场景数据中查找定时场景,找到定时场景后加入定时场景链表中。
在S720中,网关处理定时场景链表,取出链表中的定时场景数据,从中取出定时条件结构体数据。判断场景使能状态(enableState),若处于使能状态,则将其中的预设定时时间与网关系统当前时间进行判断比较;
在S730中,如果场景预设定时时间小于网关内部系统当前时间,将场景执行标志(exeFlag)设置为未执行,等待到达预设时间后再由网关处理。
在S740中,如果场景预设定时时间等于网关内部系统当前时间,则判断场景执行标志(exeFlag),若为未执行,则将定时场景存入待执行链表,等待网关进一步处理。
在S750中,网关处理待执行场景链表,执行相应场景。
在S760中,网关根据设备物理网络类型(networkType)与设备MAC地址下发指令到对应的网络中,控制相应的设备(ZigBee、Wi-Fi、BLE、局域网与RS485等设备)。
在S770中,如果场景预设定时时间等于网关内部系统当前时间,且判断定时场景执行周期数为零,即每周内场景不会重复执行,则将场景状态(enableState)设置为禁止状态。
当场景的联动方法为延时运行场景时,如图8所示,具体步骤如下:
在S810中,智能家居设备上报属性,以门磁传感器为例,上报属性为ZoneStatus。
在S820中,门磁传感器在检测到一定时间内未关门,上报属性ZoneStatus=1,网关在内存中(RAM)查找延时场景,若检测到延时场景数据中的延时时间(delayTime)大于零,则将延时场景加入场景缓存链表。
在S830中,网关从场景缓存链表中取出延时场景进行判断,若网关内部系统当前时间与触发时间(triggerTime)的差值大于延时时间(delayTime),即则将延时场景加入待执行链表中等待执行,反之,则不执行延时场景。
在S840中,网关根据设备物理网络类型(networkType)与设备MAC地址下发指令到对应的网络中,控制相应的设备(ZigBee、Wi-Fi、BLE、局域网与RS485等设备)。
在S850中,若门磁传感器再次检测到一定时间内未关门,再次上报属性ZoneStatus=1,网关将会刷新延时场景中的延时时间(delayTime),再重复S420中的判断流程,处理延时场景。
优选地,如图9所示,在S910中,建立一个存储与某个特定设备相关场景指针的场景链表,用于存储与设备相关场景的指针,其中指针指向网关内存(RAM)中存储的场景,由于指针所需的存储空间小,且RAM的读取查找速度快,因此能够提升查找场景的速度,进而提升了场景的执行效率在S920中,网关内存(RAM)中存储了场景链表,链表中包含所有场景。
如图10所示,在本发明第二方面的实施例中,提供了一种场景联动的控制系统1000,包括存储器1002和处理器1004,存储器1002用于存储计算机程序;处理器1004用于执行计算机程序以实现:确定目标场景,并获取目标场景对应的状态信息;基于状态信息满足目标场景的启动条件,发送目标场景对应设备的控制指令。
在该实施例中,首先由场景执行方(如智能网关)确定需要执行的目标场景,其中场景数据存储于智能网关的数据库中,在确定目标场景后,对应获取待执行目标场景的状态信息,并判断该目标场景的状态信息是否满足场景的启动条件,如果目标场景的状态信息满足了对应的启动条件,则执行该目标场景,将该目标场景对应设备的控制指令分别发送至一个或多个对应设备。应用了本发明提供的技术方案,通过确定待运行的目标场景,并基于待运行的目标场景满足预设的对应启动条件的判断结果执行目标场景,具体为向目标场景对应的一个或多个智能家居设备发送控制指令,使得智能家居设备可以根据设置好的目标场景联动控制,其中目标场景可根据用户需求自由设置,进而实现了对多种智能家居设备的集中控制,提高了智能家居系统的执行效率,极大地提升了用户体验。
在本发明的一个实施例中,进一步地,处理器用于执行计算机程序以实现确定目标场景的步骤,具体包括:接收设备信息;根据所述设备信息在预存的场景列表中获取所述目标场景。
在该实施例中,场景的联动方法为自运行场景,即由设备的属性变化触发对应的场景执行。具体地,当系统中某一设备属性发生变化时(如智能开关的开关状态发生变化),智能网关接收该设备的设备信息,并以此触发场景检测,具体地,根据获取到的设备信息在预存的场景列表中获取对应的目标场景,其中预存场景列表保存在智能网关的内存(RAM)中。举例来说,当“门廊灯智能开关”这一设备的属性由“关闭”转变为“开启”时,“门廊灯智能开关”将自身的设备信息发送至智能网关,智能网关接收到“门廊灯智能开关”发送的设备信息后触发场景检测。在预存的设备列表中,“客厅灯”、“起居室灯”、“空调器”和“电视机”是相对应的,智能网关在获取到上述对应的智能家居设备后,根据上述智能家居对应搜索查找预存的场景列表,其中的场景为IFTTT结构,即“if this then that”,其中this表示的场景启动条件,That表示执行的动作。条件和结果是相互独立的,也就是说条件的判断不依赖结果,不需要根据结果来搜索场景。获取到场景条件之后,可以确定对应场景的标识(sceneID)。条件满足时,直接根据sceneID执行动作。预存的场景列表中存在“回家”这一场景包含上述智能家居设备,由此可自动确定待执行的目标场景为“回家”。此时执行目标场景“回家”对应的状态信息是否满足对应启动条件的判断步骤,若判断满足执行条件,则执行“回家”这一场景,同步开启“客厅灯”和“起居室灯”,开启“空调器”并将目标温度设置为25℃,同时开启“电视机”并将频道锁定为“新闻频道”。
在本发明的一个实施例中,进一步地,状态信息包括:设备信息和目标设备的属性信息;目标场景的启动条件具体包括:设备信息与目标设备的设备信息相匹配,且属性信息与目标设备的属性信息相匹配。
在该实施例中,目标场景的状态信息包括预存设备列表中与设备信息相对应的目标设备的设备信息,以及该目标设备的属性信息。具体地,设备信息中包含了指示表示该设备目前是否存在的设备状态,如果设备状态为在线状态,说明当前目标设备存在于智能家居系统中,且目标设备未离线,如果设备状态为离线状态,则说明当前目标设备不存在于智能家居系统中,可能的原因是设备离线、设备故障或设备被移除等。设备的属性信息包括设备的识别信息,如设备的MAC(Media Access Control Address,媒体访问控制地址)地址、IP(Internet Protocol,网际协议)地址或设备软件识别信息,属性信息还包括设备的连接方式,比如该设备通过Wi-Fi连接、该设备通过ZigBee(紫蜂协议)连接、该设备通过RS485连接或通过BLE(Bluetooth Low Energy,蓝牙低能耗)连接。目标场景的联动方法为自运行场景,目标场景对应的目标设备的设备状态为在线状态,且在线的目标设备的属性信息,具体包括识别信息和连接方式与设备列表中对应的设备信息相匹配时,判定当前的状态信息满足目标场景的启动条件,此时自动启动目标场景,发送对应的控制指令至目标设备。
在本发明的一个实施例中,进一步地,发送目标场景对应设备的控制指令的步骤之后,处理器还用于执行计算机程序以实现:开启计时;基于计时时长未达到目标时长,且状态信息再次满足目标场景的启动条件,再次发送控制指令,将计时时长置零并重新开启计时。
在该实施例中,场景为延时场景,在目标场景开启,向对应设备发出控制指令的同时开启计时,如在计时时长未达到目标时长时,智能网关再次确认当前状态信息满足目标场景的启动条件,则重新开始计时。举例来说,目标场景为“感应灯”场景,对应的设备为红外线人体接近传感器和智能灯,当红外线人体接近传感器检测到人体接近时,确定状态信息满足目标场景的启动条件,此时开启智能灯,同时计时2分钟,在2分钟内,如果红外线人体接近传感器没有再次检测到人体接近,则智能灯按时关闭以节约能源,如果在2分钟内再次检测到人体接近,则将计时时长清零,重新开启计时,直至智能灯开启的2分钟内没有人体接近,按时关闭智能灯。
在本发明的一个实施例中,进一步地,处理器用于执行计算机程序以实现确定目标场景的步骤,具体包括:接收场景指令并确认场景状态,根据场景指令确定目标场景和对应的目标运行时间,并在预存场景列表中获取目标场景。
在该实施例中,目标场景的联动方法为普通运行场景或定时运行场景。智能网关接收场景指令并确认场景状态,场景指令具体可以为用户终端发送的即时启动命令,也可以是用户终端或服务器发送的定时启动场景。在智能网关接收到场景指令后,根据场景指令确定所要运行的目标场景,并在预存的场景列表中获取目标场景的场景数据以备运行,其中预存的场景列表保存在智能网关的数据库中;同时智能网关确认目标场景的场景状态,以及获取目标场景对应的目标运行时间,其中目标场景的场景状态包括使能状态和禁止状态,当场景的联动方式为普通运行场景时,目标运行时间即当前时间点,目标场景即时运行。
在本发明的一个实施例中,进一步地,状态信息包括:场景指令的接收状态;和/或场景状态和当前系统时间;目标场景的启动条件具体包括:接收状态为已接收;和/或场景状态为使能状态,且当前系统时间与目标运行时间相匹配。
在该实施例中,目标场景的状态信息包括场景指令的接收状态和/或当前系统时间。具体地,当智能网关接收到场景指令后,即刻将场景指令的接收状态设置为已接收的状态,在目标场景的联动方法为普通场景的情况下,场景指令的接收状态为已接收即判定目标场景满足启动条件,即时启动目标场景。在目标场景的联动方法为定时运行场景的情况下,确认目标场景的场景状态并获取当前的系统时间,如果目标场景的场景状态为使能状态,且当前系统时间与待启动的目标场景的目标运行时间相匹配,则判定目标场景满足启动条件,启动目标场景。
在本发明的一个实施例中,进一步地,在确定目标场景的步骤之前,处理器还用于执行计算机程序以实现:生成预存场景列表中每一个场景对应的指针信息;以及处理器还用于执行计算机程序以实现在确定目标场景的步骤之后,将目标场景对应的指针信息添加至缓存列表。
在该实施例中,生成预存场景列表中每一个场景对应的指针信息,每一个指针信息指示单独一个场景,即指针与场景一一对应;在确定目标场景后,将指针信息添加至缓存列表,在判定状态信息满足启动条件后,根据指针信息查找目标场景的具体场景数据,并启动场景。通过以指针的形式保存缓存列表,所需储存空间小,可以有效地节约系统资源,且通过指针查找场景数据的查找速度更快,可以显著地提升场景的执行效率。
在本发明的一个实施例中,进一步地,处理器还用于执行计算机程序以实现:删除缓存列表中目标场景对应的指针。
在该实施例中,如果当前状态信息不满足目标场景的启动条件时,对于一般场景的状态,可以认为此时不应该启动目标场景,因此在缓存列表中删除目标场景对应的指针,不再启动目标场景。或者,对于可延时启动的场景,则开启计时,每当计时时长达到预设的目标时长时,再次判断当前状态信息是否满足目标场景的启动条件,如不满足,则重新开启计时,直至启动条件被满足,场景启动。
在本发明第三方面的实施例中,提供了一种网关设备,该网关设备包括如上述任一实施例中的场景联动的控制系统,因此,该网关设备包括如上述任一实施例中的场景联动的控制系统的全部有益效果。
在本发明第四方面的实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述任一实施例中的场景联动的控制方法,因此,该计算机可读存储介质包括上述任一实施例中的场景联动的控制方法的全部有益效果。
本发明的描述中,术语“多个”则指两个或两个以上,除非另有明确的限定,术语“上”、“下”等指示的方位或位置关系为基于附图所述的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制;术语“连接”、“安装”、“固定”等均应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明的描述中,术语“一个实施例”、“一些实施例”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明的至少一个实施例或示例中。在本发明中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。