【发明内容】
有鉴于此,本发明提供了一种的用于物联网的智能设备控制方法、装置和设备,以便于满足智能硬件简单快速的需求。
具体技术方案如下:
本发明提供了一种用于物联网的智能设备控制方法,该方法包括:
云端设备向智能设备发送第一消息,所述第一消息包括动作标识;
接收智能设备返回的第二消息,所述第二消息包括所述动作标识和动作状态,所述动作状态用于指示所述智能设备针对所述第一消息的动作执行状况。
根据本发明一优选实施方式,所述向智能设备发送第一消息包括:
所述云端设备接收控制设备发送的控制指令;
依据预设的控制指令与动作标识之间的对应关系,确定接收到的控制指令对应的动作标识,将确定的动作标识包含在所述第一消息中发送给所述智能设备。
根据本发明一优选实施方式,所述向智能设备发送第一消息包括:
所述云端设备依据所述控制指令中携带的目的设备标识信息,向与该目的设备标识信息对应的智能设备发送第一消息。
根据本发明一优选实施方式,所述向智能设备发送第一消息包括:
所述云端设备接收智能设备上报的事件;
依据预设的事件与动作标识之间的对应关系,确定接收到的事件对应的动作标识,将确定的动作标识包含在所述第一消息中发送给所述智能设备。
根据本发明一优选实施方式,所述向智能设备发送第一消息包括:
所述云端设备接收另一智能设备上报的事件;
依据预设的事件与动作标识、目的设备标识信息之间的对应关系,将与所述事件对应的动作标识包含在所述第一消息中发送给所述目的设备标识信息对应的智能设备。
根据本发明一优选实施方式,该方法还包括:
所述云端设备接收开发设备发送的设备配置文件;
依据所述设备配置文件,注册动作标识,或者注册动作标识以及动作标识对应的控制参数。
根据本发明一优选实施方式,若所述云端设备注册动作标识以及动作标识对应的控制参数,则在确定出动作标识后,还包括:
获取注册的所述确定出的动作标识对应的控制参数,将该控制参数包含在所述第一消息中。
根据本发明一优选实施方式,在发送所述第一消息之前,还包括:
判断所述第一消息对应的目的终端设备的标识信息是否为合法的设备标识,如果否,则禁止向所述智能设备发送第一消息。
根据本发明一优选实施方式,所述动作状态包括:
指示接收到所述第一消息的第一状态;或者,
指示依据所述动作标识对应的控制参数执行动作的准备工作已完成的第二状态;或者,
指示依据所述动作标识对应的控制参数执行动作已完毕的第三状态;或者,
指示依据所述动作标识对应的控制参数执行动作出现异常的第四状态。
根据本发明一优选实施方式,该方法还包括:
若在发送所述第一消息后的第一设定时长内未接收到包含所述第一状态的第二消息,则重发所述第一消息;或者,
若在接收到包含所述第一状态的第二消息后,在第二设定时长内未接收到包含所述第二状态的第二消息,则重发所述第一消息;或者,
若在接收到包含所述第二状态的第二消息后,在第三设定时长内未接收到包含所述第三状态的第二消息,则重发所述第一消息;或者,
若接收到包含所述第四状态的第二消息,则重发所述第一消息,或者记录异常状况,或者将异常状况提供给控制设备。
本发明还提供了一种用于物联网的智能设备控制方法,该方法包括:
智能设备接收云端设备发送的第一消息,所述第一消息包括动作标识;
向所述云端设备返回第二消息,所述第二消息包括所述动作标识和动作状态,所述动作状态用于指示所述智能设备针对所述第一消息的动作执行状况。
根据本发明一优选实施方式,在所述智能设备接收云端设备发送的第一消息之前,还包括:
所述智能设备向所述云端设备上报事件。
根据本发明一优选实施方式,该方法还包括:
所述智能设备接收开发设备发送的设备配置文件;
依据所述设备配置文件,注册动作标识以及动作标识对应的控制参数。
根据本发明一优选实施方式,该方法还包括:
所述智能设备利用所述第一消息中包含的动作标识,确定注册的该动作标识对应的控制参数,以便利用所述控制参数执行相应动作。
根据本发明一优选实施方式,所述第一消息中还包括所述动作标识对应的控制参数;
所述智能设备利用所述控制参数执行相应动作。
根据本发明一优选实施方式,该方法还包括:
所述智能设备接收开发设备发送的设备配置文件;
依据所述设备配置文件,在本地注册动作标识。
根据本发明一优选实施方式,该方法还包括:
所述智能设备获取开发设备发送的或者预置于智能设备的功能模块注册文件;
依据所述功能模块注册文件,进行功能模块的注册。
根据本发明一优选实施方式,所述功能模块注册文件包括:
各功能模块的初始化流程信息,用于在智能设备系统启动时自动运行各功能模块的初始化过程;或者,
各功能模块支持的动作标识。
根据本发明一优选实施方式,所述动作状态包括:
指示接收到所述第一消息的第一状态;或者,
指示依据所述动作标识对应的控制参数执行动作的准备工作已完成的第二状态;或者,
指示依据所述动作标识对应的控制参数执行动作已完毕的第三状态;或者,
指示依据所述动作标识对应的控制参数执行动作出现异常的第四状态。
本发明还提供了一种用于物联网的智能设备控制装置,设置于云端设备,该装置包括:
消息发送单元,用于向智能设备发送第一消息,所述第一消息包括动作标识;
消息接收单元,用于接收智能设备返回的第二消息,所述第二消息包括所述动作标识和动作状态,所述动作状态用于指示所述智能设备针对所述第一消息的动作执行状况。
根据本发明一优选实施方式,该装置还包括:
指令接收单元,用于接收控制设备发送的控制指令;
第一确定单元,用于依据预设的控制指令与动作标识之间的对应关系,确定接收到的控制指令对应的动作标识,将确定的动作标识提供给所述消息发送单元。
根据本发明一优选实施方式,所述消息发送单元,具体用于依据所述控制指令中携带的目的设备标识信息,向与该目的设备标识信息对应的智能设备发送第一消息。
根据本发明一优选实施方式,该装置还包括:
事件接收单元,用于接收智能设备上报的事件;
第二确定单元,用于依据预设的事件与动作标识之间的对应关系,确定所述事件接收单元接收到的事件对应的动作标识,将确定的动作标识提供给所述消息发送单元。
根据本发明一优选实施方式,该装置还包括:
事件接收单元,用于接收另一智能设备上报的事件;
第三确定单元,用于依据预设的事件与动作标识、目的设备标识信息之间的对应关系,将与所述事件对应的动作标识提供给所述消息发送单元。
根据本发明一优选实施方式,该装置还包括:
注册接口,用于接收开发设备发送的设备配置文件;
注册单元,用于依据所述设备配置文件,注册动作标识,或者注册动作标识以及动作标识对应的控制参数。
根据本发明一优选实施方式,若所述注册单元注册动作标识以及动作标识对应的控制参数,则该装置还包括:
第四确定单元,用于获取注册的所述确定出的动作标识对应的控制参数,将该控制参数提供给所述消息发送单元;
所述消息发送单元发送的所述第一消息还包括所述控制参数。
根据本发明一优选实施方式,该装置还包括:
身份验证单元,用于判断所述第一消息对应的目的终端设备的标识信息是否为合法的设备标识,如果否,则禁止所述消息发送单元向所述智能设备发送第一消息。
根据本发明一优选实施方式,所述动作状态包括:
指示接收到所述第一消息的第一状态;或者,
指示依据所述动作标识对应的控制参数执行动作的准备工作已完成的第二状态;或者,
指示依据所述动作标识对应的控制参数执行动作已完毕的第三状态;或者,
指示依据所述动作标识对应的控制参数执行动作出现异常的第四状态。
根据本发明一优选实施方式,所述消息发送单元,还用于:
若在发送所述第一消息后的第一设定时长内所述消息接收单元未接收到包含所述第一状态的第二消息,则重发所述第一消息;或者,
若在所述消息接收单元接收到包含所述第一状态的第二消息后,在第二设定时长内未接收到包含所述第二状态的第二消息,则重发所述第一消息;或者,
若在所述消息接收单元接收到包含所述第二状态的第二消息后,在第三设定时长内未接收到包含所述第三状态的第二消息,则重发所述第一消息;或者,
若所述消息接收单元接收到包含所述第四状态的第二消息,则重发所述第一消息。
本发明还提供了一种用于物联网的智能设备控制装置,设置于智能设备,该装置包括:
消息接收单元,用于接收云端设备发送的第一消息,所述第一消息包括动作标识;
消息发送单元,用于向所述云端设备返回第二消息,所述第二消息包括所述动作标识和动作状态,所述动作状态用于指示所述智能设备针对所述第一消息的动作执行状况。
根据本发明一优选实施方式,该装置还包括:
事件上报单元,用于向所述云端设备上报事件。
根据本发明一优选实施方式,该装置还包括:
注册接口,用于接收开发设备发送的设备配置文件;
注册单元,用于依据所述设备配置文件,在所述智能设备注册动作标识以及动作标识对应的控制参数。
根据本发明一优选实施方式,该装置还包括:
确定单元,用于利用所述第一消息中包含的动作标识,确定注册的该动作标识对应的控制参数,以便所述智能设备利用所述控制参数执行相应动作。
根据本发明一优选实施方式,所述第一消息中还包括所述动作标识对应的控制参数;
所述智能设备利用所述控制参数执行相应动作。
根据本发明一优选实施方式,该装置还包括:
注册接口,用于接收开发设备发送的设备配置文件;
注册单元,用于依据所述设备配置文件,在所述智能设备注册动作标识。
根据本发明一优选实施方式,该装置还包括:
注册接口,用于获取开发设备发送的或者预置于智能设备的功能模块注册文件;
注册单元,用于依据所述功能模块注册文件,进行功能模块的注册。
根据本发明一优选实施方式,所述功能模块注册文件包括:
各功能模块的初始化流程信息,用于在智能设备系统启动时自动运行各功能模块的初始化过程;或者,
各功能模块支持的动作标识。
根据本发明一优选实施方式,所述动作状态包括:
指示接收到所述第一消息的第一状态;或者,
指示依据所述动作标识对应的控制参数执行动作的准备工作已完成的第二状态;或者,
指示依据所述动作标识对应的控制参数执行动作已完毕的第三状态;或者,
指示依据所述动作标识对应的控制参数执行动作出现异常的第四状态。
本发明还提供了一种设备,包括
一个或者多个处理器;
存储器;
一个或者多个程序,所述一个或者多个程序存储在所述存储器中,被所述一个或者多个处理器执行以实现如下操作:
向智能设备发送第一消息,所述第一消息包括动作标识;
接收智能设备返回的第二消息,所述第二消息包括所述动作标识和动作状态,所述动作状态用于指示所述智能设备针对所述第一消息的动作执行状况。
本发明还提供了一种设备,包括
一个或者多个处理器;
存储器;
一个或者多个程序,所述一个或者多个程序存储在所述存储器中,被所述一个或者多个处理器执行以实现如下操作:
接收云端设备发送的第一消息,所述第一消息包括动作标识;
向所述云端设备返回第二消息,所述第二消息包括所述动作标识和动作状态,所述动作状态用于指示所述智能设备针对所述第一消息的动作执行状况。
由以上技术方案可以看出,本发明通过包含Action标识的第一Action消息,以及包含Action标识和Action状态的第二Action消息实现云端设备与智能设备之间的控制交互,相比较通过传统通信协议的方式,更加简单快捷。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
为了方便对本发明的理解,首先对于本发明所基于的系统架构进行简单描述。如图1中所示,该系统至少包括云端设备和智能设备,其中云端设备可以是云端的一个服务器,也可以是由多个服务器构成的服务器集群。智能设备可以是诸如智能家电设备、智能网络设备、智能汽车、智能穿戴式设备、智能医疗设备等。其中智能家电设备可以包括诸如智能电视、智能空调、智能热水器、智能电灯、智能门窗、智能冰箱、智能空气净化器等搭载了智能硬件的家电设备。智能网络设备可以包括诸如搭载了智能硬件的交换机、无线AP等。智能穿戴式设备可以包括诸如搭载了智能硬件的智能手表、智能眼镜、智能手环、智能头盔、AR设备、VR设备等等。智能医疗设备可以包括诸如搭载了智能硬件的智能体温计、智能血压仪、智能血糖仪等。
除此之外,该系统还可以包括控制设备和/或开发设备。其中控制设备负责向云端发送针对智能设备的控制指令,开发设备负责针对智能设备的开发工作,在本发明中体现为向云端设备发送设备配置文件。具体将在后续实施例中详细描述。
本发明提供的方式主要用于实现云端设备与智能设备之间的信息交互,图2为本发明实施例提供的主要方法流程图,如图2中所示,该方法可以包括以下步骤:
在201中,云端设备向智能设备发送第一Action消息,该第一Action消息包括Action标识。
需要说明的是,第一Action消息和第二Action消息为本发明实施例中列举的第一消息和第二消息的名称,但本发明实施例并不限于这种消息名称。
云端设备向智能设备发送第一Action消息可以但不限于以下两种情况下触发:
第一种情况:云端设备受到控制设备的触发,即云端设备接收到控制设备发送的控制指令。例如,该控制设备可以是诸如智能手机、PC、笔记本电脑等任意用户可以使用的智能终端,在该控制设备上可以向用户提供针对智能设备的控制界面,通过该控制界面可以向云端发送针对特定智能设备的控制指令。
在该控制指令中包含控制设备获取到的智能设备的设备标识。该智能设备的设备标识可以是任意的能够唯一标识智能设备的信息,优选地,可以采用由标识分配设备统一分配给各智能设备的、唯一的物联网ID,该ID在出厂时被固化于智能设备的芯片中,不可篡改和非法获取。云端设备利用该控制指令中携带的目的设备标识信息,向与该目的设备标识信息对应的智能设备发送第一Action消息。
在这种情况下,可以在云端预先设置各控制指令与Action标识之间的对应关系,每一种控制指令存在与其对应的Action标识,Action标识可以预先在云端设备本地和智能设备端进行注册,若在云端设备仅注册了Action标识,在第一Action消息中仅包括Action标识,则在智能设备端可以注册Action标识以及Action标识对应的控制参数。若在云端设备注册了Action标识和Action标识对应的控制参数,则在第一Action消息中还可以包括Action标识对应的控制参数,则智能设备端就可以仅注册Action标识。也可以在云端设备和智能设备都注册Action标识以及Action标识对应的控制参数,则在第一Action消息中可以包括控制参数,也可以不包括控制参数。总的原则就是,只要智能设备能够获取到第一Action消息包含的Action标识对应的控制参数即可。在后续实施例中均以两边都注册Action标识以及Action标识对应的控制参数为例。其中Action标识可以包括任何可以用于确定该动作的描述信息,例如可以采用Action id或Action名称等形式。
具体的注册过程将在后续实施例中详述。云端接收到控制设备发送的控制指令后,依据控制指令与Action标识之间的对应关系,确定出对应的Action标识,将Action标识包含在第一Action消息中下发。或者在确定出对应的Action标识后,再依据预先在本地注册的信息,将Action标识及其对应的控制参数通过第一Action消息下发给智能终端。
第二种情况:云端设备受到智能设备端的触发,即接收到智能设备上报的Event后,触发第一Action消息的下发。在一些业务逻辑中,云端设备对智能设备的控制是基于一些特定事件的,例如控制语音录制的Event会触发云端设备进行语音识别后,下发对应的控制。
在这种情况下,云端设备可以接收到一个智能设备上报的Event后,向该智能设备下发第一Action消息。
当智能设备向云端设备上报该Event时,云端设备查询与该Event相关的业务逻辑。可以预先在云端设备设置Event与Action标识之间的对应关系,在查询与该Event相关的业务逻辑时,实际上就是确定该Event对应的Action标识,然后再依据预先在本地注册的信息,将Action标识及其对应的控制参数通过第一Action消息下发给智能终端。
还存在这样的情况:云端设备接收到一个智能设备上报的Event后,向另一个智能设备下发第一Action消息。
当智能设备向云端上报该Event时,云端设备查询与该Event相关的业务逻辑。这里的业务逻辑实际上是预置的Event与Action标识以及目的设备标识信息之间的对应关系。也就是说,通过Event一方面可以确定出对应的Action标识,另一方面可以确定出目的设备标识,然后将该Action标识包含在第一Action消息中发送给该目的设备标识对应的智能设备。
对于上述两种情况,云端设备在发送第一Action消息之前,可以首先判断该第一Action消息对应的目的终端设备的标识信息(控制指令中携带的目的设备标识信息、发送Event的智能设备的标识信息或者已注册的与Event对应的目的设备标识信息),是否为合法的设备标识,如果否,则禁止向智能设备发送第一Action消息;如果是,才允许向智能设备发送第一Action消息。
其中,在云端设备处可以预先设置合法的设备标识,若智能设备的设备标识由标识分配设备统一分配,则云端设备可以预先从标识分配设备处获取合法的设备标识。
当然除了上述两种情况的触发之外,还可以存在其他触发方式,例如云端设备定期的Action下发,在此不再一一列举。
对于第一Action消息而言,除了包括Action标识、控制参数、智能设备的标识信息之外,还可以包含其他内容字段,本发明对此不加以限制。
在202中,云端设备接收智能设备返回的第二Action消息,该第二Action消息包括上述Action标识和Action状态。
其中,第二Action消息中的Action标识与第一Action消息中的Action标识一致,用以指示该第二Action消息与第一Action消息之间的关联。Action状态用于指示智能设备针对第一Action消息的动作执行状况,鉴于动作执行的不同阶段,Action状态可以包括但不限于:
第一状态:指示接收到第一Action消息。
第二状态:指示依据第一Action消息中的Action标识所对应的控制参数执行动作的准备工作已完成。
第三状态:指示依据第一Action消息中的Action标识所对应的控制参数执行动作已完毕。
第四状态:指示依据第一Action消息中的Action标识所对应的控制参数执行动作出现异常。
针对这几种状态的第二Action消息的发送情况,将在后续实施例中进行详细描述。
在上面图2所示的实施例中已经提及关于Action注册的机制,下面通过具体实施例对Action注册的机制进行详细描述。本发明实施例中涉及的Action可以理解为云端设备下发给智能设备的控制信息,其对应的是智能设备提供的各种功能,云端设备下发的Action可以对应一个动作,也可以对应一个动作序列。Action消息可以理解为针对Action在云端设备和智能设备之间交互的消息。
为了区分不同的动作,在本发明实施例中,可以采用Action标识来标识和区分各Action。Action标识与具体的控制参数对应,其中控制参数可以包括动作类型,例如播放、暂停等。诸如暂停等一些Action仅需要动作类型即可,但还有一些诸如播放、调高音量等Action需要一些其他的参数,例如播放对象、调高音量的幅度。这些Action标识及其对应的控制参数可以通过设备配置文件(Device Profile)进行定义。Device Profile中可以采用这样的格式:“Action标识:控制参数”,其中多个控制参数可以采用逗号隔开,例如:
action1name:play,args:“小苹果”
action2name:pause
其中,action1name对应的动作是播放小苹果;action2name对应的动作是暂停。
另外,Device Profile除了可以定义Action标识及其对应的控制参数之外,还可以定义Event标识及其对应的事件参数。采用的格式可以为“Event标识:事件参数”,例如:
event1name:power_low args:10%
表示电量低于10%的事件。
开发者可以针对自己的智能硬件(即智能设备)定义Device Profile,然后通过开发设备将Device Profile发送给云端设备和智能设备,如图3所示。通过这种方式,智能设备的开发者就能够实现远程的Action和Event的配置。在本发明实施例中,可以针对某一类智能设备提供一个通用的Device Profile,例如A智能音箱开发者和B智能音箱开发者提供的智能音箱都有播放、暂停、恢复、音量设置等功能,这两种智能音箱就可以共用这个Device Profile。对于两种智能音箱各自有特色的功能,则可以通过分别的DeviceProfile进行定义。这种方式可以减少智能硬件开发的重复劳动,形成累积,同时也降低了智能硬件的开发门槛,便于智能硬件开发的普及。
Device Profile可以通过一个文档来说明,更优地,可以通过树形的头文件目录形式进行组织。在该树形的头文件目录中,各节点的子节点是该节点的子功能,如图4中所示。根节点为智能设备(device),其子节点包括:电源模块(power)、音频模块(audio)、视频模块(video)……,还可以存在更多层次的子节点,在此图中不一一穷举。在电源模块、音频模块、视频模块对应的节点上分别存储电源模块、音频模块、视频模块所对应的配置信息,包括Action标识及其对应控制参数、Event标识及其对应参数。如图4中所示,power上可以包括电源管理相关的配置信息(power_manage.h),audio上可以包括声音控制相关的配置信息(voice_control.h)、播放列表相关的配置信息(play_list.h)、播放控制相关的配置信息(play_control.h),vedio上可以包括亮度控制相关的配置信息(light_control.h)、图像相关的配置信息(image.h)。其中,“.h”为配置信息的格式后缀。
在云端的注册过程主要是:解析某类型智能设备的Device Profile,针对该类型智能设备在本地注册Device Profile所包含的各Action标识以及Action标识对应的控制参数、Event标识以及Event标识对应的事件参数。这样云端设备就能够进行Action消息的下发和Event消息的接收、处理。
在智能设备端的注册过程主要是:智能设备的控制中枢解析Device Profile,在本地注册Device Profile所包含的各Action标识以及Action标识对应的控制参数、Event标识以及Event标识对应的事件参数。这样,智能设备就能够针对Action消息进行接收、处理和发送,以及对Event消息进行发送和处理。
另外,与云端设备的注册不太一样的是,在智能设备端的注册除了包含Action注册和Event注册之外,还可以包含功能模块的注册,所谓功能模块指的是智能设备中具有特定功能的部分,例如电源模块、控制模块、检测模块等。开发者通过开发设备能够将功能模块注册文件发送给智能设备的控制中枢中,或者直接预置于智能设备的控制中枢,智能设备的控制中枢能够依据该功能模块注册文件进行功能模块的注册。其中功能模块注册文件可以包括各功能模块的初始化流程信息,使得智能设备在系统启动时能够自动运行各功能模块的初始化过程。另外,功能模块注册文件还可以包括各功能模块支持的Action标识,使得控制中枢接收到第一Action指令后,能够依据其中的Action标识确定执行动作的功能模块,并将该Action标识对应的控制参数提供给相应的功能模块以执行动作。
通过上述注册机制,开发者对智能设备的升级更加简单,例如当有新的Action标识时,可以将包含该新的Action标识及对应控制参数的Device Profile发送给云端设备和智能设备,云端设备和智能设备通过上述的注册机制,就能够轻松实现新的Action的升级。其中云端设备和智能设备在注册过程中,可以对Device Profile包含的所有Action标识均进行注册,也可以仅注册尚未注册的Action标识,对于本地已经存在的Action标识可以跳过。
在上面图2所示的实施例中以及提及关于第二Action消息的几种情况,下面结合一个具体实施例对云端设备和智能设备之间的Action消息交互进行详细描述。图5为本发明实施例提供的云端设备与智能设备之间的Action消息交互流程图,如图5中所示,该流程可以具体包括以下步骤:
在501中,云端设备向智能设备发送包含Action标识和控制参数的第一Action消息,图中以动作(Action)消息进行表示。
在该第一Action消息(对应于图2所示实施例中的第一Action消息)中,通过Action标识进行唯一标识。
在502中,智能设备接收到第一Action消息后,向云端设备返回包括上述Action标识和第一状态信息的第二Action消息,图中以动作_已接收(Action_received)消息表示。
本步骤中的第二Action消息通过Action标识和第一状态信息进行唯一标识,其中第一状态指示接收到第一Action消息。
在503中,智能设备在依据第一Action消息中的控制参数完成执行动作的准备工作候,向云端设备返回包括上述Action标识和第二状态信息的第二Action消息,图中以动作_执行中(Action_doing)表示。
本步骤中的第二Action消息通过Action标识和第二状态信息进行唯一标识,其中第二状态指示依据第一Action消息中的控制参数执行动作的准备工作已完成。
在504中,智能设备在依据控制参数执行动作完毕后,向云端设备返回包括上述Action标识和第三状态信息的第二Action消息,图中以动作_已完成(Action_done)消息表示。
本步骤中的第二Action消息通过Action标识和第三状态信息进行唯一标识,其中第三状态指示依据第一Action消息中的控制参数执行动作完毕。
在505中,智能设备在依据控制参数执行动作发生异常时,向云端设备返回包括上述Action标识和第四状态信息的第二Action消息,图中以动作_异常(Action_exception)消息表示。
本步骤中的第二Action消息通过Action标识和第四状态信息进行唯一标识,其中第四状态指示依据第一Action消息中的控制参数执行动作出现异常。需要说明的是,步骤505并不一定出现于步骤504之后,其可能产生于步骤502之后的任何时间中,只要发生异常,就可能会执行。
对于云端设备而言,若在发送Action的设定时长内未接收到Action_received,则重发Action。若在接收到Action_received的设定时长内未接收到Action_doing,则重发Action。若在接收到Action_doing的设定时长内未接收到Action_done,则重发Action。若接收到Action_exception,则重发Action。另外,也可以设置Action的重发次数上限,达到该重发次数上限后,不再重发Action。
另外,对于云端设备接收到的各种Action状态,可以返回给发送控制指令的控制设备。
以上是对本发明所提供的方法进行的详细描述,下面结合具体实施例对本发明所提供的装置进行详细描述。
图6为本发明实施例提供的设置于云端设备的装置结构图,该装置可以设置于云端设备,用以完成上述实施例中云端设备所执行的操作。如图6所示,该装置可以包括:消息发送单元01和消息接收单元02,还可以进一步包括:第一确定单元03、事件接收单元04、第二确定单元05、第三确定单元06、注册接口07、注册单元08和第四确定单元09。各组成单元的主要功能如下:
消息发送单元01负责向智能设备发送第一Action消息,第一Action消息中至少包括Action标识。
消息接收单元02负责接收智能设备返回的第二Action消息,第二Action消息包括Action标识和Action状态,Action状态用于指示智能设备针对第一Action消息的动作执行状况。一组Action标识和Action状态能够对一个第二Action消息进行唯一标识。
其中,对于云端设备而言,向智能设备发送第一Action消息可以受以下两种情况触发,但并不限于以下两种情况:
第一种情况:指令接收单元02接收控制设备发送的控制指令。例如,该控制设备可以是诸如智能手机、PC、笔记本电脑等任意用户可以使用的智能终端,在该控制设备上可以向用户提供针对智能设备的控制界面,通过该控制界面可以向云端发送针对特定智能设备的控制指令。
在该控制指令中包含控制设备获取到的智能设备的设备标识。该智能设备的设备标识可以是任意的能够唯一标识智能设备的信息,优选地,可以采用由标识分配设备统一分配给各智能设备的、唯一的物联网ID,该ID在出厂时被固化于智能设备的芯片中,不可篡改和非法获取。消息发送单元01可以利用该控制指令中携带的目的设备标识信息,向与该目的设备标识信息对应的智能设备发送第一Action消息。
第一确定单元03负责依据预设的控制指令与Action标识之间的对应关系,确定接收到的控制指令对应的Action标识,将确定的Action标识提供给消息发送单元。
第二种情况:云端设备受到智能设备端的触发,即接收到智能设备上报的Event后,触发第一Action消息的下发。在一些业务逻辑中,云端设备对智能设备的控制是基于一些特定事件的,例如控制语音录制的Event会触发云端设备进行语音识别后,下发对应的控制。
在第二种情况下,又可以分为两种类型:
一种类型是,收到一个智能设备上报的Event后,下发对该同一智能设备控制。即事件接收单元04接收智能设备上报的Event。第二确定单元05依据预设的Event与Action标识之间的对应关系,确定事件接收单元04接收到的Event对应的Action标识,将确定的Action标识提供给消息发送单元01。
另一种类型是,上报Event的智能设备和下发控制所针对的智能设备并不是同一个智能设备。即事件接收单元04接收另一智能设备上报的Event;第三确定单元06依据预设的Event与Action标识、目的设备标识信息之间的对应关系,将与Event对应的Action标识提供给消息发送单元01。
在本装置中,可以通过向开发设备开放注册接口的方式,实现Action的远程注册。即该装置中的注册接口07接收开发设备发送的设备配置文件,然后注册单元08依据设备配置文件,在本地注册Action标识,或者在本地注册Action标识以及Action标识对应的控制参数。
若注册单元08在本地注册Action标识以及Action标识对应的控制参数,则第四确定单元09可以获取确定出的Action标识在本地注册的对应的控制参数,将该控制参数提供给消息发送单元01。此时,消息发送单元01发送的第一Action消息还可以进一步包括控制参数。
无论采用上述那种情况,为了保证交互安全性,身份验证单元(图中未示出)可以判断第一Action消息对应的目的终端设备的标识信息是否为合法的设备标识,如果否,则禁止消息发送单元01向智能设备发送第一Action消息。若第一Action消息的发送由控制设备的控制消息触发,则第一Action消息对应的目的终端设备为控制消息所包含的目的设备标识所对应的智能设备。若第一Action消息的发送由同一智能设备的Event触发,则发送该Event的智能设备即为第一Action消息对应的目的终端设备。若第一Action消息的发送由另一智能设备的Event触发,则根据该Event确定出的目的设备标识所对应的智能设备即为第一Action消息对应的目的终端设备。
其中,在云端设备处可以预先设置合法的设备标识,该合法的设备标识可以由标识分配设备统一分配给各智能设备的、唯一的物联网ID,该ID在出厂时被固化于智能设备的芯片中,不可篡改和非法获取。若智能设备的设备标识由标识分配设备统一分配,则云端设备可以预先从标识分配设备处获取合法的设备标识。
其中,消息接收单元02接收到的第二Action消息所包含的Action状态可以包括但不限于以下几种:
第一状态:指示接收到第一Action消息。
第二状态:指示依据第一Action消息中的Action标识所对应的控制参数执行动作的准备工作已完成。
第三状态:指示依据第一Action消息中的Action标识所对应的控制参数执行动作已完毕。
第四状态:指示依据第一Action消息中的Action标识所对应的控制参数执行动作出现异常。
若在消息发送单元01发送第一Action消息后的第一设定时长内消息接收单元02未接收到包含第一状态的第二Action消息,则消息发送单元01可以重发第一Action消息。
若在消息接收单元02接收到包含第一状态的第二Action消息后,在第二设定时长内未接收到包含第二状态的第二Action消息,则消息发送单元01可以重发第一Action消息。
若在消息接收单元02接收到包含第二状态的第二Action消息后,在第三设定时长内未接收到包含第三状态的第二Action消息,则消息发送单元01可以重发第一Action消息。
若消息接收单元02接收到包含第四状态的第二Action消息,则消息发送单元01可以重发第一Action消息。
另外,也可以设置Action的重发次数上限,达到该重发次数上限后,不再重发Action。
图7为本发明实施例提供的设置于智能设备的装置结构图,该装置用于实现上述方法实施例中智能设备的功能,该装置对应于方法实施例中涉及的控制中枢。如图7所示,该装置可以包括:消息接收单元11和消息发送单元12,还可以进一步包括:事件上报单元13、注册接口14、注册单元15和确定单元16。
消息接收单元11负责接收云端设备发送的第一Action消息,第一Action消息至少包括Action标识。
消息发送单元12负责向云端设备返回第二Action消息,第二Action消息包括Action标识和Action状态,Action状态用于指示智能设备针对第一Action消息的动作执行状况。其中,一组Action标识和Action状态能够唯一标识一个第二Action消息。
事件上报单元13负责向云端设备上报Event。
智能设备可以向开发者开放接口进行Action的注册,即注册接口14接收开发设备发送的设备配置文件。注册单元15依据设备配置文件,在智能设备本地注册Action标识,或者注册Action标识以及Action标识对应的控制参数。关于设备配置文件的组成和结构可以参见方法实施例中的相关描述,在此不再赘述。
若第一Action消息中不包含Action标识对应的控制参数,则在上述注册过程中,需要注册Action标识以及Action标识对应的控制参数,确定单元16利用第一Action消息中包含的Action标识,确定在本地注册的该Action标识对应的控制参数,以便智能设备利用控制参数执行相应动作。
若第一Action消息中除了包含Action标识之外,还包括Action标识对应的控制参数;则在上述注册过程中,仅需要在智能设备本地注册Action标识即可,智能设备利用第一Action消息携带的控制参数执行相应动作。
另外,除了Action注册之外,该装置还可以实现功能模块的注册:
注册接口14获取开发设备发送的或者预置于智能设备的功能模块注册文件,注册单元15依据功能模块注册文件,进行功能模块的注册。
其中功能模块注册文件可以包括:各功能模块的初始化流程信息,用于在智能设备系统启动时自动运行各功能模块的初始化过程。
或者,可以包括各功能模块支持的Action标识,使得该装置能够依据第一Action指令中的Action标识确定执行动作的功能模块,并将该Action标识对应的控制参数提供给相应的功能模块以执行动作。
上述第二Action消息中包含的Action状态可以包括但不限于以下几种:
第一状态:指示接收到第一Action消息。
第二状态:指示依据第一Action消息中的Action标识所对应的控制参数执行动作的准备工作已完成。
第三状态:指示依据第一Action消息中的Action标识所对应的控制参数执行动作已完毕。
第四状态:指示依据第一Action消息中的Action标识所对应的控制参数执行动作出现异常。
本发明实施例提供的上述方法和装置可以以设置并运行于设备中的计算机程序体现。该设备可以包括一个或多个处理器,还包括存储器和一个或多个程序,如图8中所示。其中该一个或多个程序存储于存储器中,被上述一个或多个处理器执行以实现本发明上述实施例中所示的方法流程和/或装置操作。例如,被上述一个或多个处理器执行的方法流程,可以包括:
向智能设备发送第一Action消息,第一Action消息包括Action标识;
接收智能设备返回的第二Action消息,第二Action消息包括Action标识和Action状态,Action状态用于指示智能设备针对第一Action消息的动作执行状况。
或者,包括:
接收云端设备发送的第一Action消息,第一Action消息包括Action标识;
向云端设备返回第二Action消息,第二Action消息包括Action标识和Action状态,Action状态用于指示智能设备针对第一Action消息的动作执行状况。
下面列举两个本发明的应用场景实例:
应用场景1:
用户手机通过云端向智能音响发送播放“小苹果”音频的控制指令。在云端设备预先存储有action标识与控制指令之间的对应关系。云端设备接收到用户手机发送来的播放“小苹果”音频的控制指令后,依据上述对应关系,确定该指令对应的action标识,例如该action标识为:
action name1:play,args:“小苹果”。
其中action name1为action标识,play和args:“小苹果”为控制参数。
然后,云端设备依据该控制指令中包含的ID2(一种由标识分配设备统一分配的、唯一标识智能设备的物联网ID)确定目的终端设备,即智能音响,向智能音响发送第一Action消息。该第一Action消息中可以包含以下字段:action标识和控制参数。
智能音响接收到第一Action消息后,向云端设备返回包含状态为action_received的第二Action消息。该第二Action消息中可以包含以下字段:action name1以及本次action状态(即action_received),这两个字段可以唯一标识智能音响本次返回的消息。
如果云端设备在设定时长内未接收到智能音响返回的包含状态为action_received的第二Action消息,则可以重新发送第一Action消息。
智能音响向云端设备返回包含状态为action_received的第二Action消息后,开始依据第一Action消息中的控制参数进行动作执行的准备工作。待准备工作完成后,向云端返回包含状态为action_doing的第二Action消息。该包含状态为action_doing的第二Action消息中可以包含以下字段:action name1以及本次action状态(即action_doing),这两个字段可以唯一标识智能音响本次返回的消息。
智能音响执行播放“小苹果”音频的动作后,向云端设备返回包含状态为action_done的第二Action消息。该包含状态为action_done的第二Action消息中可以包含以下字段:action name1以及本次action状态(即action_done),这两个字段可以唯一标识智能音响本次返回的指令。
智能音响若在动作执行过程中出现异常,则可以向云端返回包含状态为action_exception的第二Action消息。该包含状态为action_exception的第二Action消息中可以包含以下字段:action name1和本次action状态(即action_exception),这两个字段可以唯一标识智能音响本次返回的指令。另外该包含状态为action_exception的第二Action消息还可以包括指示具体异常类型的参数字段。
云端设备可以依据智能音响返回的action状态,获知智能音响对Action的动作执行状态,从而确保了云端设备下发的控制在智能硬件设备上执行的各个状态都在监控中,保证了动作执行的完整性和追查性。另外,云端设备还可以将智能音响返回的action状态返回给发送控制指令的智能手机,以便用户能够及时获知动作的执行状态。
应用场景2:
该应用场景是智能设备与云端设备之间的Event机制。
由于开发者预先将智能音响中语音控制模块的相关Event注册到了智能硬件中的IDJS CORE(控制中枢),并且该相关Event也预先注册到了云端设备。其中一种Event为控制语音录制。当智能音响的控制语音录制Event被触发时,智能音响将该Event发送给云端。云端对于该Event本身可以不做任何确认,但可以基于该Event进行后续处理,例如对该Event所包含的控制语音进行识别,依据控制语音确定相应的Action标识和控制参数,并携带在第一Action消息中下发。
应用场景3:
智能门窗检测到开门的Event后,将该Event上报给云端设备。云端设备确定该Event对应的Action标识、控制参数和目的终端设备。例如,确定的Action标识为:Actionname2,控制参数为:light,目的终端设备为智能电灯。则云端设备通过第一Action消息将Action name2及其对应的控制参数发送给智能电灯,智能电灯接收到该第一Action消息后,可以依据其中的Action name2及其对应的控制参数,进行智能电灯的点亮。并可以返回不同状态的第二Action消息。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。