发明内容
本发明所要解决的技术问题提供一种基于SDMP协议的智能设备的云平台控制方法,能够通过云平台对家中的各类型各品牌的智能设备实现实时的智能控制。
本发明解决技术问题所采用的技术方案是:一种基于SDMP协议的智能设备的云平台控制方法,以SDMP格式的通信协议在智能设备和云平台服务器之间建立通信,并包括以下通信步骤:
1)注册查询:智能设备通电后与云平台服务器建立通信并查询其在云平台服务器上的注册状态,如果该智能设备在云平台服务器上已注册,则进入智能控制步骤,由云平台服务器对智能设备进行智能控制,如果该智能设备在云平台服务器上未注册,则智能设备会周期性发送查看注册状态请求直至发现智能设备已注册或者断电。
2)智能控制:已注册的智能设备采集其工作状态信息和环境状态信息发送给云平台服务器,云平台服务器发送控制指令给已注册的智能设备对其进行智能控制;云平台服务器根据智能设备所采集的信息判断智能设备的现有状态以及预期状态,生成相应的控制指令从而控制智能设备从现有状态切换至预期状态;智能控制的内容包括智能设备的开关、温度调节、亮度调节、湿度调节等,根据不同智能设备的特性,智能控制的内容也有所不同。
3)终端控制:用户通过智能控制终端向云平台服务器发送控制指令,通过云平台服务器与智能设备之间的通信对智能设备进行手动控制。
SDMP协议的全称是SMART DEVICE MANAGEMENT PROTOCOL,中文是智能设备管理协议,SDMP协议所定义的格式包括消息ID、设备ID、加密的PDU和摘要码等,报文格式结构如图7所示,通过SDMP协议定义了云平台服务器与各品牌各类型的智能设备之间的标准通信格式,能够在云平台服务器和各品牌各类型的智能设备之间建立通讯,实现云平台服务器与智能设备之间的互通。
SDMP报文以ASN.1进行标记,详细定义如下:
SDMPv1MessageSyntax DEFINITIONS IMPLICIT TAGS ::= BEGIN
SDMPv1Message ::= SEQUENCE {
--版本号
msgVersion INTEGER (0 .. 2147483647),
--设备ID
msgAuthoritativeEngineID OCTET STRING,
--PDU部分
msgData ScopedPduData
--摘要码
msgAuthenticationParameters OCTET STRING
}
ScopedPduData ::= CHOICE {
--加密的scopedPDU
encryptedPDU OCTET STRING
}
ScopedPDU ::= SEQUENCE {
--消息ID
msgID INTEGER(0 .. 2147483647),
--请求类型
requestType INTEGER(0 .. 2147483647),
操作类型
actionType INTEGER(0 .. 2147483647),
VarBind(键值对)列表
variable-bindings VarBindList
}
VarBindList ::= SEQUENCE(SIZE(0 .. max-bindings)) OF VarBind
VarBind ::= SEQUENCE {
--键
name ObjectName,
--值
value ObjectName
}
END
协议字段如表1所示,以下1开始后面的属于键值对,具备可扩展性。
表1
其中,msgVersion:智能设备内嵌入式程序版本号。
msgID:msgID用来在云服务平台和智能设备直接协调请求和应答消息。MsgID不应该重用已经用过的值,这样在一定程度上防御重放攻击。
msgSecurityParameters:是通信双方与安全模型有关的参数,用来消息认证。
scopedPduData:是经过加密处理的scopedPDU。
scopedPDU:包含消息ID、请求类型、指令类型、以及name/value串。
SDMP协议中采用ber编码格式进行编码。在协议里存在两种形式的数据表示:一是单独存在的,直接用来表示某一个值,例如MsgVersion、MsgID等。第二种则是以键值对(Key-Value)的形式存在,入电量值、功率值等。
对于Ber编码,其针对每一个数值都采用“类型+长度+数值”的表示形式。
对于第一类数据,1字节的MsgVersion,编码之后如表2所示,
表2
对于4字节的MsgID,编码后如表3所示,
表3
对于第二种以键值对(Key-Value)的形式的数据,编码后如表4所示,
表4
在采用上述技术方案的同时,本发明还可以采用或者组合采用以下进一步的技术方案:
所述注册查询包括以下步骤:
1.1智能设备发出查看注册状态请求;
1.2智能设备按SDMP协议组装查看注册状态请求数据;
1.3智能设备将组装后的请求数据发送给云平台服务器;
1.4云平台接收智能设备发送的数据并按照SDMP协议的格式进行解析;
1.5云平台服务器查询智能设备注册状态;
1.6云平台服务器按照SDMP协议组装注册状态数据;
1.7云平台服务器将组装后的注册状态数据发送给智能设备;
1.8智能设备按照SDMP协议解析注册状态数据并判断是否已注册,如智能设备已注册,则进入智能控制步骤,如智能设备未注册,则在一段时间后自动进入步骤1.1。
所述智能控制包括以下步骤:
2.1智能设备采集信息,所述信息包括智能设备的工作状态信息和环境状态信息,并生成信息数据;
2.2智能设备按照SDMP协议组装智能设备所采集的信息数据;
2.3智能设备向云平台服务器发送组装后的数据;
2.4云平台服务器接收智能设备发送的数据并按照SDMP协议解析数据;
2.5云平台服务器根据接收到的信息生成控制指令数据;
2.6云平台服务器按照SDMP协议组装控制指令数据;
2.7云平台服务器将组装的控制指令数据发送给智能设备;
2.8智能设备接收云平台服务器发送的控制指令数据并按照SDMP协议解析数据;
2.9智能设备执行控制指令并生成执行结果数据;
2.10智能设备按照SDMP协议组装执行结果数据;
2.11智能设备将执行结果数据发送给云平台服务器;
2.12云平台服务器接收执行结果数据并按照SDMP协议解析数据。
通过智能控制步骤,智能设备和云平台服务器按照SDMP协议的格式进行通信,并且,云平台服务器根据智能设备所采集并发送的信息对其进行智能控制,无需人工干预即实现智能启动关闭以及调节,起到方便节能的效果。
在所述智能控制的步骤2.4中,云平台服务器对解析后的数据进行实时存储,供云平台服务器其他单元进行数据分析及处理。
在所述智能控制的步骤2.6中,云平台服务器对按照SDMP协议组装后的控制指令数据进行实时存储,便于其他流程的读取和调用。
所述终端控制包括以下步骤:
1)用户通过智能控制终端向云平台服务器发送控制指令数据;
2)云平台服务器按照SDMP协议组装控制指令数据;
3)云平台服务器将组装的控制指令数据发送给智能设备;
4)智能设备接收云平台服务器发送的控制指令数据并按照SDMP协议解析数据;
5)智能设备执行控制指令并生成执行结果数据;
6)智能设备按照SDMP协议组装执行结果数据;
7)智能设备将执行结果数据发送给云平台服务器;
8)云平台服务器接收执行结果数据并按照SDMP协议解析数据;
9)云平台服务器向智能控制终端反馈执行结果数据。
用户可以通过智能控制终端连接云平台服务器,并借助云平台服务器与智能设备之间的通信,对智能设备实现手动控制或者查看智能设备的运行状态。
所述智能控制还包括控制指令重发流程,所述控制指令重发流程包括以下步骤:
1)云平台服务器在发送控制指令给智能设备的同时启动定时器;
2)云平台服务器读取存储的控制指令数据;
3)云平台服务器判断是否发送次数过多,如果是则删除该控制指令数据,否则向智能设备发送该控制指令数据。
云平台服务器发出控制指令是根据智能设备所采集的感应信息数据进行实时分析并判断是否满足条件需要发出,云平台服务器的控制指令通过SDMP协议的格式发送到智能设备端后,智能设备在执行指令后会生成执行结果数据发回给云平台服务器,云平台服务器会得到智能设备端的反馈,删除已经执行的控制指令,避免重复发送,如果云平台服务器没有及时收到反馈,说明未执行或者未完全执行,则云平台服务器会间隔一定时间进行数次重发,直到该控制指令被正确执行,这就是指令重发流程的作用。
所述控制方法在所述注册查询之前还包括智能设备注册流程,所述智能设备注册流程包括以下步骤:
1)用户通过智能控制终端向云平台服务器发送智能设备的注册请求;
2)云平台服务器处理注册请求;
3)云平台服务器判断是否处理成功,如果是,则云平台服务器将该智能设备设为已注册状态;
4)云平台服务器返回注册信息给智能控制终端。
所述注册是指:用户通过智能控制终端扫描智能设备唯一身份标识并添加之后,云平台服务器对唯一身份标识进行注册认证,更新云平台服务器存储单元上该智能设备为已注册状态,此后该智能设备向云平台服务器发送查看注册状态请求,云平台服务器才会返回智能设备已注册的信息,但因为智能控制终端扫描的时间存在不确定性,所以智能设备端需要周期性的发送注册请求给云平台服务器,这属于合法设备的正常校验;进行注册查询可以防止非法设备篡改了设备ID来接入云平台服务器,非法篡改的设备ID在云平台服务器肯定无合法信息,所以永远不会得到该智能设备已注册的信息。
所述智能设备包括第一接收单元、第一发送单元、第一编码单元、第一解码单元、指令执行单元、数据生成单元,所述第一接收单元用于接收所述云平台服务器发送的信息,并发送给所述第一解码单元,所述第一解码单元对接收到的信息按照SDMP协议格式进行解码后发送给指令执行单元,指令执行单元将执行结果的信息发送给第一编码单元,数据生成单元接收各类传感器所采集的信息,生成数据发送给第一编码单元,第一编码单元对所接收的信息按照SDMP协议格式进行编码并发送给第一发送单元,第一发送单元通过无线路由器将编码后的信息发送给云平台服务器。
所述云平台服务器包括第二接收单元、第二发送单元、第二编码单元、第二解码单元、数据存储单元、智能处理单元、业务处理单元。所述第二接收单元用于接收智能设备所发送的信息,并发送给第二解码单元,第二解码单元对接收到的信息按照SDMP协议格式进行解码后,发送给数据存储单元、智能处理单元,智能处理单元根据解码后的信息生成控制指令,发送给第二编码单元,第二编码单元按照SDMP协议格式对控制指令进行编码,并通过第二发送单元发送给智能设备;业务处理单元用于向用户反馈数据信息。
其中,第一发送单元、第二发送单元和第一接收单元、第二接收单元在发送和接收数据时会分别进行加密步骤和解密步骤,所述加密步骤和解密步骤是指:云平台服务器首先生成智能设备的设备ID与密钥,每个智能设备都配备唯一的设备ID与密钥,智能设备在生产之前要从云平台服务器获取这些密钥(线下进行),智能设备生产时,将智能设备的设备ID与密钥保存在智能设备的存储单元中,在数据发送时,用该密钥进行AES加密和MD5签名;在接收数据时用该密钥进行MD5签名验证和AES解密。
第一编码单元和第二编码单元的编码步骤是:
1)按照SDMP协议组装数据;
2)按照BER编码格式进行编码;
3)用智能设备的密钥对PDU数据进行AES加密;
4)MD5生成摘要码。
第一解码单元和第二解码单元的解码步骤是:
1)MD5验证摘要码;
2)用密钥对PDU数据进行AES解密;
3)按照BER编码格式进行解码;
4)按照SDMP协议解析数据。
本发明的有益效果是:本发明的控制方法采用云平台服务器通过互联网与生产和生活中的各类智能设备建立连接,并对其进行控制,超越了通常的智能设备控制平台局限于局域网内各单元独立控制的限制,开阔了智能设备的控制渠道,拓展了智能设备控制平台的应用范围,在本发明的控制方法下,若干智能设备的使用者可以通过广域网共用一个云平台服务器作为其所有的智能设备的控制平台,无需各自建立内部的服务器;本发明的控制方法为各品牌各类型的智能设备与云平台服务器之间的通信定义了一个标准通信协议,即SDMP智能设备管理协议,使得本发明的云平台服务器与各品牌各类型的智能设备均能够建立连接并实现控制,该协议简单、安全、易扩展、易实现,为各种智能设备与云平台之间的可靠交互提供了良好的通道。
具体实施方式
本发明的基于SDMP协议的智能设备的云平台控制方法,包括安装在各生产生活场所中的智能设备1、云平台服务器2和直接面向用户的智能控制终端3,智能设备1通过无线路由器4接入互联网,从而与云平台服务器2连接,智能控制终端3通过互联网与云平台服务器2连接。
云平台服务器2和智能设备1之间按照SDMP协议所定义的格式进行通信,使得云平台服务器2可以对智能设备1进行智能控制,用户也可以从智能控制终端3向云平台服务器2发送控制指令,通过云平台服务器2对智能设备1进行手动控制。
云平台服务器2会生成智能设备1的设备ID和密钥,智能设备生产时,将智能设备的设备ID和密钥保存在其存储单元中,每个智能设备1都配备唯一的设备ID和密钥。
智能设备1包括第一接收单元101、第一发送单元102、第一编码单元103、第一解码单元104、指令执行单元105、数据生成单元106,云平台服务器2包括第二接收单元201、第二发送单元202、第二编码单元203、第二解码单元204、数据存储单元205、智能处理单元206、业务处理单元207。
本发明的控制方法包括以下过程:
一、智能设备注册。
由于云平台服务器2只能对在其上已注册的智能设备1进行智能控制,因此,首先要在云平台服务器2上对智能设备1进行注册,具体包括以下步骤:
步骤301,用户通过智能控制终端3向云平台服务器2发送智能设备1的注册请求,
步骤302,云平台服务器2处理注册请求;
步骤303,云平台服务器2判断是否处理成功,如果处理成功,则云平台服务器2将智能设备1的状态改为已注册,并将该信息存储在数据存储单元205中;
步骤304,云平台服务器2返回注册信息给智能控制终端3。用户可以通过智能控制终端3查看智能设备1的注册状态。
用户通过智能控制终端扫描智能设备二维码并添加之后,云平台服务器对二维码进行注册认证,更新云平台服务器存储单元上该智能设备为已注册状态,此后该智能设备向云平台服务器发送查看注册状态请求,云平台服务器才会返回智能设备已注册的信息,但因为智能控制终端扫描的时间存在不确定性,所以智能设备端需要周期性的发送注册请求给云平台服务器,这属于合法设备的正常校验;进行注册查询可以防止非法设备篡改了设备ID来接入云平台服务器,非法篡改的设备ID在云平台服务器肯定无合法信息,所以永远不会得到该智能设备已注册的信息。
二、智能设备与云平台服务器的交互控制流程。
本发明的控制方法包括以下步骤:
步骤401,智能设备1通电后发出查看注册状态请求;
步骤402,智能设备1的第一编码单元103按照SDMP协议组装查看注册状态请求数据,并发送至第一发送单元102;
步骤403,第一发送单元102将组装后的数据发送至云平台服务器2;
步骤404,云平台服务器2的第二接收单元201接收数据,并发送至第二解码单元204;
步骤405,第二解码单元204按照SDMP协议解析数据并发送至智能处理单元206;
步骤406,智能处理单元206向数据存储单元205查询智能设备1的注册状态并将查询到的注册状态数据发送给第二编码单元203;
步骤407,第二编码单元203按照SDMP协议的格式组装注册状态数据并发送至第二发送单元202;
步骤408,第二发送单元202将组装后的注册状态数据发送给智能设备1;
步骤409,第一接收单元101接收注册状态数据并发送至第一解码单元104;
步骤410,第一解码单元104按照SDMP协议的格式解析数据;
步骤411,智能设备1根据接收到的数据判断是否已注册,如果是,则进入下一步,如果否,则回到步骤401;
步骤412,已注册的智能设备1采集其工作状态和环境状态信息,并由数据生成单元106生成信息数据发送至第一编码单元103;
步骤413,第一编码单元103按照SDMP协议组装信息数据并发送至第一发送单元102;
步骤414,第一发送单元102向云平台服务器2发送组装后的信息数据;
步骤415,第二接收单元201接收上述信息数据并发送至第二解码单元204;
步骤416,第二解码单元204解析信息数据并发送至数据存储单元205和智能处理单元206;
步骤416a,数据存储单元205存储上述解析后的信息数据;
步骤417,智能处理单元206根据信息数据生成对智能设备1的控制指令数据并发送至第二编码单元203;
步骤418,第二编码单元203根据SDMP协议组装控制指令数据并发送至数据存储单元205和第二发送单元202;
步骤418a,数据存储单元205存储上述编码后的控制指令数据,以备调用;
步骤419,第二发送单元202将组装后的控制指令数据发送至智能设备1;
步骤420,第一接收单元101接收上述控制指令数据并发送至第一解码单元104;
步骤421,第一解码单元104按照SDMP协议解析上述控制指令数据并发送至指令执行单元105;
步骤422,指令执行单元105执行控制指令并生成执行结果数据;
步骤423,指令执行单元105将执行结果数据发送至第一编码单元103;
步骤424,第一编码单元103按照SDMP协议组装执行结果数据并发送至第一发送单元102;
步骤425,第一发送单元102将组装后的执行结果数据发送至云平台服务器2;
步骤426,第二接收单元201接收上述执行结果数据并发送至第二解码单元204;
步骤427,第二解码单元204按照SDMP协议解析执行结果数据并发送至智能处理单元206和数据存储单元205;
步骤428,云平台服务器2确认执行结果并从数据存储单元205上删除该控制指令数据,以防止重复执行。
上述步骤中,步骤401~411为智能设备的注册步骤,步骤412~428为智能控制,一旦注册成功后,智能控制步骤不间断循环进行,智能设备1注册成功后实时采集其工作状态和环境状态信息发送给云平台服务器2,云平台服务器2根据收到的信息实时判断并发出控制指令,从而实现对智能设备1的实时智能控制。
第一编码单元103和第二编码单元203的编码(即组装数据)步骤为:
步骤501,根据SDMP协议格式整合数据;
步骤502,按照BER编码格式编码;
步骤503,用智能设备1的密钥对PDU数据进行AES加密;
步骤504,MD5生成摘要码。
第一解码单元104和第二解码单元204的解码(即解析数据)步骤为:
步骤601,MD5验证摘要码;
步骤602,用智能设备1的密钥对PDU数据进行AES解密;
步骤603,按照BER编码格式解码;
步骤604,按照SDMP协议格式解析数据。
本发明的控制方法在智能控制过程中还伴随有指令重发流程,指令重发流程包括以下步骤:
步骤701,在步骤419的同时,云平台服务器2开启定时器,定时时间到则进入步骤702;
步骤702,云平台服务器2读取数据存储单元205上的控制指令数据;
步骤703,云平台服务器2判断控制指令数据的发送次数是否过多,如果是,则进入步骤428,如果否,则进入步骤704;
步骤704,云平台服务器2将读取的控制指令数据发送给智能设备1,并进入步骤420。
指令重发流程能够避免在发送过程中造成控制指令的缺失或者遗漏,保证每个控制指令都准确无误地发送给智能设备1并得到执行,确保智能控制过程的精确稳定。
本发明的控制方法中,用户还可以通过智能控制终端3对智能设备1进行手动控制,其控制方法包括以下步骤:
步骤801,用户通过智能控制终端3向云平台服务器2发送控制指令数据;之后进入步骤418、419…427,其中,在步骤427中,第二解码单元204按照SDMP协议解析执行结果数据并发送至业务处理单元207;
步骤802,业务处理单元207向智能控制终端3反馈执行结果数据。
用户可以通过智能控制终端3查看智能设备1的执行结果及智能设备1的工作状态。
采用本发明的控制方法,在整个控制过程中,智能设备1和云平台服务器2始终遵循SDMP协议进行通信,云平台服务器2能够与各种品牌各种类型的智能设备建立通信,生产和生活中的用电设备多种多样,建立这样一套云平台的控制方法能够与任何设备建立通信并进行智能控制,方便实用、成本低,易于推广,具有广阔的发展前景。
在本发明中,智能设备1的控制指令根据设备类型的不同而有所不同,例如空调的控制指令包括:开启、关闭、模式调整、温度调整等,照明电器的控制指令包括开启、关闭等,根据本发明的协议和控制方法,则能够实现各类型各品牌设备的智能控制。
上述实施例用于对本发明作进一步说明,但不应将本发明局限于这些具体实施方式。本领域技术人员应该认识到,本发明涵盖了权利要求书范围内所可能包括的所有备选方案、改进方案和等效方案。