自发电开关及其处理方法、电子设备及控制系统与流程

文档序号:31664645发布日期:2022-09-27 23:42阅读:67来源:国知局
自发电开关及其处理方法、电子设备及控制系统与流程

1.本发明涉及开关领域,尤其涉及一种自发电开关及其处理方法、电子设备及控制系统。


背景技术:

2.无线开关,可理解为配置有无线通讯模块的开关,其中一种无线开关为自发电开关,在传统自发电开关中,其通常是通过射频通信模块对外通信的,例如,自发电开关可通过射频信号与各种接收端(例如灯具、墙壁开关等)通讯。
3.现有相关技术中,自发电开关可以与其配对的接收端实现简单的控制。而在需连接网络使用的控制场景中,通常需要先进行配网后才能使得自发电开关接入网络进而实现丰富的控制。然而,受制于自发电开关产生的电能有限,且接入不同网络对自发电开关的配网数据有着不同需求,使得自发电开关无法应对多种多样的配网需求,进而无法通过接入网络实现丰富的控制。


技术实现要素:

4.本发明提供一种自发电开关及其处理方法、电子设备及控制系统,以解决自发电开关无法应对多种多样的配网需求,进而无法通过接入网络实现丰富的控制的问题。
5.根据本发明的第一方面,提供了一种自发电开关,包括:
6.自发电电机;
7.按键,所述按键能够直接或间接触发所述自发电电机产生电能;
8.控制组件,其电连接所述自发电电机,并用于:
9.在接收到源自于所述自发电电机的电能时上电,所述电能能够支撑所述控制组件工作指定时间;
10.在配网模式下,响应于所述按键的至少一次操控产生的电能而对外发送至少第一配网消息和第二配网消息;所述第一配网消息和所述第二配网消息之间具备缓冲时间;所述缓冲时间匹配于所述自发电电机一次触发所产生的电能,以使得所述第一配网消息和所述第二配网消息能够在指定时间内被发送完毕,并在消息发送完毕后,所述自发电开关进入掉电状态;以使得:外部设备能够接收并基于所述第一配网消息和所述第二配网消息将所述自发电开关加入到指定网络;所述第一配网消息和所述第二配网信息不同。
11.根据本发明的第二方面,提供了一种自发电开关的处理方法,包括:
12.若所述自发电开关处于配网模式且所述自发电开关的按键发生了至少一次操控,则至少生成第一配网消息和第二配网消息,所述第一配网信息和所述第二配网信息不同;
13.对外发送至少所述第一配网消息和所述第二配网消息,所述第一配网消息和所述第二配网消息之间具备缓冲时间;所述缓冲时间匹配于所述自发电电机一次触发所产生的电能,以使得所述第一配网消息和所述第二配网消息能够在指定时间内被发送完毕,并在消息发送完毕后,所述自发电开关进入掉电状态;以使得:外部设备能够接收并基于所述第
一配网消息和所述第二配网消息将所述自发电开关加入到指定网络。
14.根据本发明的第三方面,提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并在所述处理器上运行的程序,其特征在于,所述处理器执行所述程序时实现如下步骤:
15.所述电子设备至少接收自发电开关发送的第一配网消息和第二配网消息,所述第一配网信息和所述第二配网信息是由所述自发电开关在配网模式下,响应于按键的至少一次操控产生的电能而对外发送的,所述第一配网消息和所述第二配网消息之间具备缓冲时间;所述缓冲时间匹配于所述自发电开关一次触发所产生的电能,以使得所述第一配网消息和所述第二配网消息能够在指定时间内被发送完毕,并在消息发送完毕后,所述自发电开关进入掉电状态,其中,所述第一配网信息和所述第二配网信息不同;
16.所述电子设备对至少所述第一配网信息和所述第二配网信息进行验证;
17.所述电子设备将验证通过后的所述自发电开关加入到指定网络。
18.根据本发明的第四方面,提供了一种控制系统,包括如上所述的自发电开关,以及如上所述的电子设备。
19.本发明提供的自发电开关及其处理方法、电子设备及控制系统中,在配网模式下,自发电电机产生的电能使得控制组件生成并对外发送不同的第一配网消息和第二配网消息,通过发送不同的配网消息能携带更多的配网数据,以及形成丰富的配网数据组合,以有效应对各种配网数据的需求,同时,通过设置所述第一配网消息和所述第二配网消息之间的缓冲时间;所述缓冲时间匹配于所述自发电电机一次触发所产生的电能,使得所述第一配网消息和所述第二配网消息能够在指定时间内被发送完毕,进而实现以所述自发电电机一次触发产生的有限电能足以支撑向外发出两个不同的配网消息,外部设备在接收到两个不同的配网消息后,即可根据两个不同的配网消息所携带的配网数据或其组合来完成自发电开关的配网,实现了自发电开关在电量有限的情况下能够进行有效地配网以应对多种多样的配网需求,进而通过接入网络实现丰富的控制。
附图说明
20.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
21.图1是本发明一实施例中控制系统的构造示意图一;
22.图2是本发明一实施例中控制系统的构造示意图二;
23.图3是本发明一实施例中接收端的信号接收扫描示意图;
24.图4是本发明一实施例中自发电开关发包与接收端接收扫描的示意图一;
25.图5是本发明一实施例中自发电开关发包与接收端接收扫描的示意图二;
26.图6是本发明一实施例中自发电开关的构造示意图一;
27.图7是本发明一实施例中自发电开关的构造示意图二;
28.图8是本发明一实施例中自发电开关的按键被按下过程中的按键抖动示意图;
29.图9是本发明一实施例中自发电开关循环读取键值的流程示意图;
30.图10是本发明一实施例中自发电开关发送的报文的数据结构示意图;
31.图11a是本发明一实施例中自发电开关发送的配网报文的数据结构示意图一;
32.图11b是本发明一实施例中自发电开关发送的配网报文的数据结构示意图二;
33.图11c是本发明一实施例中自发电开关发送的配网报文的数据结构示意图三;
34.图12是本发明一实施例中自发电开关发送的控制报文的数据结构示意图;
35.图13是本发明一实施例中自发电开关的处理方法的流程示意图;
36.图14是本发明一实施例中电子设备的构造示意图。
具体实施方式
37.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
38.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
39.下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
40.请参考图1至图2,本技术提供了一种控制系统,其中可包括自发电开关1、电子设备2、智能控制器3。在实际的控制系统中,自发电开关1、智能控制器3的数量均可以为多个,同时,自发电开关1、电子设备2、智能控制器3之间可以实现无线信号的传输,该无线信号可例如为蓝牙、射频、wifi、zigbee等。
41.其中的自发电开关1可以为能够基于无线通信而对外通信的开关,其中的无线通信可以是射频、蓝牙、wifi、zigbee等任意方式。自发电开关1所需的电能可以是自发电开关下按和/或回弹时产生的。一种举例中,自发电开关包括:自发电电机、按键及控制组件,所述按键能够直接或间接触发所述自发电电机产生电能;所述控制组件电连接所述自发电电机,并在接收到源自于所述自发电电机的电能时上电并发送报文。示例性地,所述自发电电机可以为电磁发电机或其他以机械能转电能形式的发电机。
42.其中的电子设备2可以为任意能够形成对应网络的网络设备,也可以是能够建立或接入网络的设备或设备的组合,其能够与自发电开关1、智能控制器3进行无线通讯。该电子设备2可包括网关、终端(如手机、电脑、平板电脑、计算机、车机等)、路由器等。该电子设备2建立的网络可以包括蓝牙网络、wifi网络、zigbee网络等。该电子设备2的数量可以为一个,也可以为多个,具体举例中,该电子设备2可以为蓝牙网关,但也不限于此。
43.其中的智能控制器3,可以为任意能够受控实现通断控制的设备或设备的组合,且其设有具备数据处理能力的模块,还设有具备无线通信能力的模块,其中一种举例中,其可
以为墙壁开关,其他举例中,智能控制器还可能是风扇、灯具、插座、垃圾处理设备等受控设备,或者与之连接的设备。智能控制器2对外的通信方式可以包含以下至少之一:射频、蓝牙、wifi、zigbee、移动网络等。
44.一种举例中,该电子设备2为蓝牙网关,对应的网络为蓝牙网络,其中,自发电开关1为基于蓝牙的自发电开关(其中的无线通信单元可以采用蓝牙射频单元),智能控制器3为基于蓝牙的各种受控的设备比如智能墙壁开关、窗帘、灯具组等。其中,自发电开关1可以发送蓝牙的控制报文如低功耗蓝牙信标报文,控制作为蓝牙接收器的智能控制器3(也可描述为蓝牙设备)。
45.此外,蓝牙设备可以与蓝牙网关通信,接收蓝牙网关的控制命令,上报自身状态到蓝牙网关。接入蓝牙网络的所有设备都会存储在蓝牙网关的设备列表中,自发电开关与蓝牙网关进行配网时,用户可以选择网关设备列表中的任意一个或多个设备作为自发电开关受控设备。
46.接入蓝牙网络的任意设备,可以选择是否开启代理功能。开启代理功能的蓝牙设备一旦收到已经配网的自发电开关发送的控制报文,就会向其所处的蓝牙网络中的其他成员转发自发电开关的控制报文。当自发电开关与受控设备距离太远导致受控设备无法直接收到自发电开关的控制报文时,通过蓝牙网络中的其他设备进行代理(中继)可以解决这个问题,增加控制距离。
47.进一步地,在一些实施例中,控制系统还包括服务器4,该服务器4可以为任意的具有数据存储能力、数据处理能力,并能与电子设备2交互的设备或设备的组合,具体可以例如是本地或云端的服务器,该服务器中可部署有所需的程序。
48.请参阅图6,本技术提供的自发电开关,包括:
49.自发电电机;
50.按键,所述按键能够直接或间接触发所述自发电电机产生电能;
51.控制组件,其电连接所述自发电电机,并用于:
52.在接收到源自于所述自发电电机的电能时上电,所述电能能够支撑所述控制组件工作指定时间;自发电开关在处于配网模式时,响应于所述按键的至少一次操控产生的电能而对外发送至少第一配网消息和第二配网消息;所述第一配网消息和所述第二配网消息之间具备缓冲时间;所述缓冲时间匹配于所述自发电电机一次触发所产生的电能,以使得所述第一配网消息和所述第二配网消息能够在指定时间内被发送完毕,并在消息发送完毕后,所述自发电开关进入掉电状态;以使得:外部设备能够接收并基于所述第一配网消息和所述第二配网消息将所述自发电开关加入到指定网络;所述第一配网消息和所述第二配网信息不同。
53.本技术中,若自发电开关受到特定的操控、软件触发、复位或重新上电等,可进入配网模式,该配网模式,可理解为用于实现自发电开关与电子设备和/或服务器间配网的一种模式,自发电开关在配网后,能够与电子设备和/或服务器进行通信。在配网模式下,自发电电机响应于所述按键的至少一次操控而产生电能,自发电开关向外发送至少两个不同的配网消息。
54.本技术的上述技术方案,能够使自发电开关在一次触发所产生的有限电能的情况下实现与网络服务器的配网,进而能够实现与连接于网络中的智能设备的互控。具体而言,
由于自发电开关的电量有限,因此大多采用低功耗通信协议(例如蓝牙、zigbee等),低功耗的通信协议的报文所能携带的有效数据的字节数有限,而现有的主流智能家居平台(例如小米、华为、涂鸦等)对接入的智能设备在配网过程的配网报文中携带的有效配网数据量要求较大,一般的低功耗通信协议很难通过一个报文将数据发送完毕,因此,现有的自发电开关一般无法直接接入智能家居平台的服务器。而本技术基于上述所公开的技术方案,可根据不同的智能家居平台对接入的自发电开关在配网时的配网数据量大小的需求,将配网时发送的配网数据拆分成多个不同的配网消息,从而使得自发电开关能够适应于不同配网数据量的配网需求,进而实现自发电开关通过低功耗通信协议与网络服务器之间进行配网连接。其中,多个配网消息即配网报文携带的数据可完全不同,也可有部分数据重复,多个配网报文携带的数据可组成所需的完整配网数据。
55.此外,智能家居平台对应的服务器对自发电开关接入网络时的安全性要求较高,基于上述技术方案,本技术可通过发送多个配网报文以携带更多的配网安全信息,或通过多个配网报文分别对各部分配网安全信息进行加密,进而满足更高的配网的安全性要求。
56.另外,考虑到本技术中在配网模式下,自发电开关的自发电电机一次触发所产生的电能需要向外发送至少两个不同的配网消息,因此,在向外发送的所述第一配网消息和所述第二配网消息之间配置缓冲时间,并将两个不同的配网消息之间的缓冲时间匹配于所述自发电电机一次触发所产生的电能,即通过设置缓冲时间能够使得至少两个不同的配网消息发送的总时间所需要的电量是在自发电电机触发一次所产生的能量范围内的,使得自发电开关能够在自发电电机一次触发所产生的有限电能的情况下成功的发送至少两个不同的配网消息。例如,在一些实施例中,若配网数据被拆分成数量较多的配网消息,自发电电机触发一次所产生的能量仅能支持发送完数量较多的配网消息,即每一配网消息仅能被发送一次,则根据自发电电机一次触发所产生的电能计算得到一个合适的缓冲时间,以使得自发电电机一次触发所产生的电能刚好能够发送完毕所有的配网消息。在另一些实施例中,若配网数据被拆分成数量较少的配网消息,则根据自发电电机一次触发所产生的电能计算得到一个合适的缓冲时间,以使得在自发电电机一次触发所产生的电能下至少一个配网消息能被多次发送或至少一个配网消息能够在多个频点或信道上被发送。只要是在自发电电机触发一次所产生的能量范围内使得至少两个不同的配网消息能够在指定时间内被发送完毕,均不脱离以上举例的范围。并在消息发送完毕后,所述自发电开关进入掉电状态,以节约自发电开关的电能。
57.本技术中,自发电开关在配网模式下,自发电电机产生的电能使得控制组件生成并对外发送不同的第一配网消息和第二配网消息,通过发送不同的配网消息能携带更多的配网数据,以及形成丰富的配网数据组合,以有效应对各种配网数据的需求,同时,通过设置所述第一配网消息和所述第二配网消息之间的缓冲时间;所述缓冲时间匹配于所述自发电电机一次触发所产生的电能,使得所述第一配网消息和所述第二配网消息能够在指定时间内被发送完毕,进而实现在所述自发电电机一次触发产生的有限电能足以支撑向外发出两个不同的配网消息,外部设备在接收到两个不同的配网消息后,即可根据两个不同的配网消息所携带的配网数据或其组合来完成自发电开关的配网,实现了自发电开关在电量有限的情况下能够进行有效地配网以应对多种多样的配网需求,进而通过接入网络实现丰富的控制。
58.进一步地,在一些实施例中,自发电开关在配网模式下,配网数据被拆分成多个配网消息,若自发电电机一次触发所产生的电能只能发送完拆分的多个配网消息中的部分配网消息,则在自发电电机再次触发时,利用其再次触发产生的电能发送完剩余部分配网消息。以在自发电电机一次触发所产生的电能无法支撑发送完所有配网消息时,通过多次触发来发送完不同的配网消息,从而实现有效地配网。
59.进一步地,在一些实施例中,所述缓冲时间被设置为n/m;n为所述外部设备的扫描窗口,m为大于1的非整数,和/或,所述外部设备的扫描窗口与扫描间隔的占空比设置为不小于80%,以降低配网报文的丢包率,进而能够提高自发电开关的配网成功率。换句话说,该实施例中,为了提高自发电开关的配网成功率,将所述缓冲时间配置为能够支撑自发电开关发送完毕所有配网报文的情况下,还能够使得配网消息在外部设备的扫描窗口内到达外部设备,以尽量错过外部设备的扫描盲区,使得基于所述自发电电机一次触发所产生的电能而向外发送的至少两个不同配网消息能够被外部设备即接收端所接收,以完成自发电开关的配网。其中,所述接收端包括以下至少之一:电子设备(如网关、终端、路由器等)、服务器、智能控制器。
60.具体地,在此以基于蓝牙通信协议的外部设备作为接收端进行举例说明。如图3所示,接收端可以在扫描窗口内接收自发电开关向外发出的蓝牙报文,而两个扫描窗口的起始时间差被定义为扫描间隔,该扫描间隔包括扫描窗口及扫描休眠的时间。接收端在扫描休眠的时间内无法接收报文。需要说明的是,本实施例中,自发电开关向外发送的蓝牙信号,例如可以2.4ghz为载频,通过指定的蓝牙频道分别传输数据包。具体而言,自发电开关使用低功耗蓝牙技术,在40个信道中发送数据。作为优选,在广播信道中发射数据。三个广播信道的频点分别是:37信道是2.402ghz;38信道是2.428ghz;39信道是2.480ghz。接收端也可在37、38、39信道来扫描接收蓝牙报文。
61.本技术中,由于自发电开关的自发电电机一次触发所产生的电能有限,且在有限的电能内需要发送至少两个不同配网消息,因此,接收端的扫描窗口与扫描休眠的占空比设置的较高,则自发电电机一次触发所发送的至少两个不同配网消息被接收端接收到的概率越高,且经过大量的创造性测试,自发电电机一次触发所产生的电能一般至少可发送3-10包数据,通过将接收端的扫描窗口与扫描间隔的占空比设置为不小于80%,可使得自发电电机一次触发所发送的至少两个不同配网消息能够被接收端在其扫描窗口内被接收,进而提高配网的成功率。优选的,为了尽可能减少系统的丢包率,本技术中将接收端的扫描窗口设成与扫描间隔的值一致,这样只要空间中存在蓝牙广播信号,无论哪个时间点接收端都能扫描得到蓝牙广播信号并成功接收,进一步地提高了自发电电机一次触发所发送的至少两个不同配网消息被接收端接收的概率。
62.此外,考虑到接收端要切换信道,切换信道要先关闭射频接收,然后设置新的接收信道,再开启射频接收。切换信道发生在前一个扫描窗口的结束和下一个扫描窗口起始的时间差,信道切换期间由于关闭了射频接收,所以此时是无法接收蓝牙数据的(这段时间称为接收端的扫描盲区),直到下一个扫描窗口开启之后,接收端才能恢复蓝牙接收功能。扫描盲区的时间取决于蓝牙芯片的硬件性能,盲区时间一般是1ms以内。若自发电开关向外发送两个不同配网消息的缓冲时间设置不当,则有可能使得自发电开关向外发送的配网消息落入到扫描盲区,造成丢包,进而导致配网失败。
63.在一些实施例中,如图4所示,本技术中通过增加扫描窗口和扫描间隔能提高接收端接收蓝牙信号的概率,如假设有一个广播事件刚好跟接收端的扫描盲区重合,但是由于扫描窗口较大,该重合的广播事件的前后两个广播事件都能落到扫描窗口中。理论上扫描窗口设的越大,自发电开关发送的广播事件与扫描盲区重合的概率越低。但是如果扫描窗口设的过大,意味着信道切换的频率降低。当设备周围存在同频干扰时,扫描窗口越大,通信的可靠性反而会越低。例如,假设扫描窗口和扫描间隔设为40ms,图中第2个和第4个广播事件就会与扫描盲区重合导致这两个广播事件丢失。因此,本实施例中所述缓冲时间被设置为n/m;n为所述外部设备的扫描窗口,m为大于1的非整数。即接收端的扫描窗口和扫描间隔数值的选取尽量避开自发电开关向外发送两个不同配网消息的缓冲时间的整数倍,这样,可有效避免在发送多个配网消息时落入到扫描盲区的情况,进而提高配网成功率。优选的,考虑到接收端的扫描窗口不宜设的过大,因此,经过多次试验,接收端的扫描窗口和扫描间隔被设置为是所述缓冲时间的1.5倍左右时,既能兼顾接收端受到的同频干扰较小,又能使得自发电开关的自发电电机一次触发所向外发送的至少两个不同配网消息能被接收端在扫描窗口内被接收到。
64.在一些实施例中,本技术中所述控制组件对外发送至少所述第一配网消息和所述第二配网消息时,包括:依次对外广播多组消息,所述第一配网消息和所述第二配网消息被设置于不同消息组中,每组消息包括多个相同的消息,相邻两组消息之间具备缓冲时间,三个相邻的缓冲时间中至少有两个是不相同的。示例性地,所述控制组件对外发送第一配网消息时,第一配网消息可在37、38、39信道上分别被发送,可视为一个广播事件,相当于对外广播消息组,该消息组中包括多个第一配网消息。由于接收端的前后两个扫描窗口之间存在扫描盲区,且在扫描窗口的时间固定时,扫描盲区也会固定间隔出现,若自发电开关在向外发出多组配网消息时,相邻两组配网消息之间设置的缓冲时间为一固定值,则当接收端的扫描窗口和缓冲时间一致如均为20ms,则有可能若自发电开关向外发出的一组配网消息刚好落入扫描盲区,由于缓冲时间固定,后续的多组配网消息均会落入扫描盲区,则导致自发电开关发出的多组配网消息均无法被接收端收到,造成丢包。因此,如图5所示,本技术中相邻两组消息之间的缓冲时间被配置为:三个相邻的缓冲时间中至少有两个是不相同的。通过针对性地设置不同的缓冲时间,可以避免配网消息落入扫描盲区,从而降低丢包的概率。且三个相邻的缓冲时间中可以只有两个是不同的,如只需三个相邻的缓冲时间中处于中间位置的缓冲时间与前后的两个缓冲时间不同即可,从而避免在自发电开关的自发电电机一次触发发送多个不同配网消息时,各个配网消息之间的缓冲时间跳跃过大对电能造成的额外损耗,以节约电能,使得自发电电机一次触发产生的电能足以支撑发送完毕多个不同配网消息,且能被接收端收到。在一种可选的实施方式中,还可以在所述缓冲时间中加入随机数(随机延时),使得自发电开关发送配网消息的缓冲时间在指定最小值与指定最大值的范围内随机跳变,以避开接收端的扫描盲区,降低丢包概率。
65.在一些实施例中,本技术中考虑到接收端的扫描盲区一般在1ms以内,同时,由于自发电电机一次触发产生的电能有限,自发电开关对功耗要求很高,更大的广播间隔意味着会引入更高的额外功耗,为尽可能的减少额外功耗,自发电开关发送配网消息的缓冲时间不超过30ms。即自发电开关发送配网消息的缓冲时间被设置为1ms至30ms之间。这样,能使得自发电开关发送的不同配网消息能避开接收端的扫描盲区,避免配网消息正好落入接
收端的扫描盲区,且能节约电能损耗。
66.基于此,本技术中自发电开关在配网模式下,自发电电机一次触发产生的电能使得控制组件生成并对外发送至少两个配网消息,且两个配网消息不同,用于携带更多的配网数据,保证配网过程的安全性。而由于两个配网消息不同,要保证两个配网消息均能够发送出去且被接收端接收到,因此设置了两个配网消息之间具备缓冲时间,缓冲时间的设置避免了两个配网消息落入接收端的扫描盲区,且能够使得两个配网消息发送的总时间所需要的电量是在自发电电机按压一次所产生的能量范围内的。从而实现了自发电开关在电量有限的情况下,通过低功耗的通信协议能够进行有效地配网以应对多种多样的配网需求,进而通过接入网络实现丰富的控制。
67.在一些实施例中,所述第一配网消息还包括第一验证标识,所述第二配网消息还包括第二验证标识,以供所述外部设备对至少所述第一配网信息、所述第二配网信息进行验证,例如,防止复制、伪造或重复配网等攻击的验证等,并在验证通过后将所述自发电开关加入到指定网络。其中的验证标识,可以为任意可适于实现验证的字符或字符的组合。本技术中,通过在不同配网消息中加入验证标识,可以提高配网的安全性,满足不同配网场景下对配网安全性的要求。其中,第一验证标识与第二验证标识可以相同,只是在不同配网消息中分别被加密,再被接收到配网消息的外部设备所解密验证。第一验证标识与第二验证标识也可以是不同的,接收到配网消息的外部设备可分别对第一验证标识与第二验证标识进行验证,也可将第一验证标识与第二验证标识进行组合后进行验证,从而提高配网的安全性。所述外部设备可包括但不限于电子设备(如网关、终端、路由器等)、服务器、智能控制器等。例如,自发电开关发送所述第一配网消息、所述第二配网消息后,可由网关对接收到的配网消息中的第一验证标识、第二验证标识进行验证,并在验证通过后将自发电开关加入所述网关的网络;还可以由网关将配网消息中的第一验证标识、第二验证标识透传至服务器,由服务器对第一验证标识、第二验证标识进行验证,并在验证通过后指示网关将自发电开关加入所述网关的网络;还可以由网关验证一部分,服务器验证一部分,如由网关对接收到的配网消息中的第一验证标识进行验证,并在验证通过后将配网消息中的第二验证标识发送至服务器,由服务器对第二验证标识进行验证,并在验证通过后指示网关将自发电开关加入所述网关的网络。只要是由外部设备对接收的所述第一配网信息、所述第二配网信息中的第一验证标识、第二验证标识进行验证,并在验证通过后将自发电开关加入网络,均不脱离本技术的保护范围。在一种举例中,所述控制组件还用于:在配网模式下,生成随机字符串;其中,所述随机字符串至少包括所述第一验证标识和所述第二验证标识。即本技术中所述控制组件在生成配网消息时,生成随机字符串,并将随机字符串进行拆分生成所述第一验证标识和所述第二验证标识,将所述第一验证标识和所述第二验证标识分别写入不同配网消息中。
68.在一些实施例中,所述第一配网消息还包括第一序列标识,所述第二配网消息还包括第二序列标识,所述第一序列标识和所述第二序列标识用于指示所述第一配网消息和所述第二配网消息之间具有关联。由于本技术中自发电开关在配网时需向外发送至少两个不同的配网消息,相比于现有的配网时发送的均为相同的配网消息,接收端无需进行排序区分,本技术中在配网消息中加入序列标识,以使得接收端在接收到配网消息后,可根据所述第一配网消息中的第一序列标识、所述第二配网消息中的第二序列标识对先后收到的多
个配网消息进行排序以提取出有效配网信息。其中,所述第一序列标识与所述第二序列标识用于指示所述第一配网消息和所述第二配网消息之间的顺序;或者所述第一序列标识与所述第二序列标识相同。例如,在一种可选的实施方式中,自发电开关发送的多个配网消息之间具有次序,需按照顺序对多个配网消息中的有效信息进行提取、组合才能形成完整的有效配网信息,则可通过配网消息中的不同序列标识来指示各个配网消息的顺序。在另一种可选的实施方式中,多个配网消息之间可以没有次序或无需设置严格的先后顺序,多个配网消息中的有效信息无需进行组合,则各个配网消息中的不同序列标识可以相同,或者是具备特定相同部分的标识。此外,所述第一配网消息和/或第二配网消息还包括消息类型指示信息,所述消息类型指示信息用于指示所述第一配网消息和/或第二配网消息的消息类型,该消息类型包括配网消息或控制消息。
69.在一些实施例中,所述第一配网消息包括第一明文域和第一密文域,所述第一序列标识承载在所述第一明文域中,或者承载在所述第一密文域中,或者承载在所述第一明文域和所述第一密文域中;所述第二配网消息包括第二明文域和第二密文域,所述第二序列标识承载在所述第二明文域中,或者承载在所述第二密文域中,或者承载在所述第二明文域和所述第二密文域中。所述第一密文域经由第一密钥加密生成;所述第二密文域经由所述第一密钥加密生成。其中,所述第一密钥可以被以存储或烧录的方式记录于所述自发电开关中。
70.在所述自发电开关加入到指定网络之后,所述控制组件还用于:生成第三消息,所述第三消息包括第三密文域,所述第三密文域经由第三密钥加密生成,所述第三密钥至少与所述第一密钥、所述第一验证标识和所述第二验证标识之间有关联。一种举例中,所述第三密钥至少根据所述第一密钥、所述第一验证标识和所述第二验证标识生成。本技术中在所述自发电开关加入到指定网络之后,所述控制组件生成的第三消息即控制消息中,用于加密的第三密钥可根据所述第一密钥、所述第一验证标识和所述第二验证标识生成。由此可见,本技术中自发电开关在配网模式下生成的用于供接收端验证的所述第一验证标识和所述第二验证标识,在配网成功后,还被用于在后续控制阶段中生成控制消息。这样,在每次重置配网后,重新配网时更新的验证标识也被用于后续的控制过程,即每次重置配网后的控制消息的相关参数也会进行更新,进一步提高了自发电开关配网以及控制的安全性。
71.进一步地,请参考图6,所述的按键101的至少部分部位被设置为能够响应外部动作地产生一位移,所述外部动作包括使按键发生下按的外部动作;还可包括使按键发生回弹的外部动作(例如撤去下按作用力的动作);进而,外部动作下,按键所可能发生的动作例如包括下按的动作与回弹的动作;
72.所述自发电电机103被设置为能够响应所述位移地至少一次将机械能转换为电能;
73.所述控制组件被电气连接至所述自发电电机103,由所述自发电电机103为所述控制组件提供工作电能;
74.其中,所述控制组件包括通信处理模块102、电能存储与转换模块104与存储模块105,所述自发电电机103可包括感应部与运动部;其中,运动部可理解为能够被按键、复位件等至少之一传动从而发生运动的部件或部件的组合,感应部可理解为能够与运动部相作用,从而在运动部发生运动时感应产生电能的部件或部件的组合,本领域任意可基于运动
而产生电能的结构,均可作为本技术实施例的一种可选方案。
75.具体举例中,自发电电机103中可配置有永磁部、导磁部与线圈部,线圈部可设于导磁部,进而,当永磁部与导磁部发生相对运动时,线圈部可产生感应电压。其中的线圈部可视作以上所提及的感应部,其中的永磁部或导磁部可视作以上所提及的运动部,即:部分举例中,永磁部发生运动,从而与按键、复位件等直接、间接传动,另部分举例中,导磁部发生运动,从而与按键、复位件等直接、间接传动。可见,感应部可能是随运动部一同运动的,也可能不随运动部一同运动。
76.所述通信处理模块102电连接所述存储模块105,所述自发电电机103的感应部电连接所述电能存储与转换模块104,所述电能存储与转换模块104电连接所述通信处理模块102与所述存储模块105。
77.所述按键101直接或间接传动于所述自发电电机103的运动部;其中:所述运动部被设置为能够在所述按键101被下按时被传动而发生第一方向的运动;所述感应部被设置为能够响应于所述运动部发生的所述第一方向而产生第一感应电压;所述电能存储与转换模块104用于将所述第一感应电压对应的第一电能整流后存储;进一步地,所述电能存储与转换模块104还用于将所存储的电能进行转换,以向所述通信处理模块102与所述存储模块105输出所需的供电电压,使得所述通信处理模块102与所述存储模块105上电。
78.部分方案中,请参考图7,自发电开关1,还包括:复位件106。所述复位件106被设置为直接或间接传动于所述自发电电机103的运动部,所述复位件106被设置为能够响应于所述运动部发生第一方向的运动而发生形变,并产生克服所述形变的复位作用力,所述复位件106还被设置为能够在使所述按键101被下按的作用力被撤去后,利用所述复位作用力传动所述运动部发生第二方向的运动,且所述按键101发生回弹;在所述运动部发生第二方向的运动时,可产生第二感应电压;所述电能存储与转换模块104还用于将所述第二感应电压对应的第二电能存储和/或转换为合适的电压。
79.其中一种实施方式中,参考图7,自发电开关1,还包括:模式识别模块107,所述模式识别模块107电连接所述通信处理模块102,所述模式识别模块107响应于目标触控操作,向所述通信处理模块102发送触发指令,所述通信处理模块102根据所述触发指令控制所述自发电开关进入配网模式;否则,所述通信处理模块102控制所述自发电开关进入控制模式。在一种举例中,所述模式识别模块107具体可采用配网按钮,其他举例中,也可采用微动开关、拨码开关、旋钮开关等任意方式实现。
80.在一种可选的实施方式中,配网时,用户先按住配网按钮,然后按压自发电开关的按键101,所述按键101能够直接或间接触发所述自发电电机103产生电能,所述电能存储与转换模块104将自发电电机103产生的脉冲电能整流后调节到适合所述通信处理模块102供电的电压后给所述通信处理模块102供电,所述通信处理模块102启动后先检测配网按钮,如果检测到配网按钮按下,则确定自发电开关当前处于配网模式,所述通信处理模块102将配网所需的数据拆分成至少两个配网消息即广播数据包,然后逐一加密并向外发送。
81.控制时,用户按压自发电开关的按键,所述按键101能够直接或间接触发所述自发电电机103产生电能,所述电能存储与转换模块104将自发电电机103产生的脉冲电能整流后调节到适合所述通信处理模块102供电的电压后给所述通信处理模块102供电,所述通信处理模块102启动后检测到配网按钮没有按下,则确定自发电开关当前处于控制模式,将控
制命令所需的数据组合成一个控制消息即蓝牙广播包,然后向外发送控制命令。
82.进一步地,在一些实施例中,当所述自发电开关处于控制模式时,获取当前操控信息与第三序列标识;所述当前操控信息包括键值,所述键值表征了以下至少之一:所述自发电开关当前接受到操控的按键;所述自发电开关中按键当前所接受到的操控动作;所述键值承载在所述第三密文域的参数字段;所述第三序列标识承载在所述控制消息的第三明文域中,或者承载在所述第三密文域中,或者承载在所述第三明文域和所述第三密文域中。其中,所述控制组件获取当前操控信息与第三序列标识,包括:
83.响应于针对所述自发电开关的当前操控,产生所述当前操控信息;
84.读取所存储的第三序列标识;
85.若所述当前操控属于目标操控,则以预设的变换规则将所述第三序列标识自第一数值变换为第二数值,所述第一数值不同于所述第二数值;所述目标操控包括下按操控和/或回弹操控。
86.在所述通信处理模块响应于针对所述自发电开关的当前操控而向外发送第三消息即当前控制报文时,所述当前控制报文记载了当前操控信息与所述当前序列标识,以使得:所述接收端验证所述当前控制报文中的当前序列标识与所存储的历史序列标识的关系是否匹配于预设的当前序列标识的变换规则,并在所述关系匹配于所述变换规则时,执行所述当前操控信息对应的控制事件,所述历史序列标识是根据所述自发电开关之前发给所述接收端的控制报文或配网报文中所记载的序列标识确定的。
87.所述当前操控信息表征了以下至少之一:所述自发电开关;所述自发电开关当前接受到操控的按键;所述自发电开关中按键当前所接受到的操控动作。
88.可见,由于下按的操控动作与回弹的操控动作是呈对、连续的,进而,下按之后,通常必然会发生回弹。进而,在以上方案中,可仅在发生下按的操控动作之后才更新当前序列标识,也可仅在发生回弹的操控动作之后才更新当前序列标识,还可既在下按的操控动作之后更新当前序列标识,又在回弹的操控动作之后更新当前序列标识。
89.具体举例中,当前操控信息可以包括开关标识,进而,开关标识可用于表征所述自发电开关,当前操控信息还可包括键值,进而利用键值表征所述自发电开关当前接受到操控的按键,以及所述自发电开关中按键当前所接受到的操控动作。
90.当前序列标识,可理解为是自发电开关当前发出的,与之对应的,历史序列标识可理解为在自发电开关发出之前接收端已存储的。
91.部分举例中,历史序列标识可以是自发电开关上次发生操控动作时发至接收端(随控制报文或配对报文发出的)并被接收端存储的当前序列标识,或根据其确定的,另部分举例时,历史序列标识也可以是自发电开关上次发生特定操控动作(例如下按的操控动作或回弹的操控动作)时发至接收端(随控制报文或配对报文发出的)并被接收端存储的当前序列标识,或根据其确定的。
92.其中一种实施方式中,参考图7,所述自发电开关1还包括下压检测模块108;所述下压检测模块108电连接所述自发电电机103(例如其感应部)与所述通信处理模块102。所述通信处理模块102还用于:通过所述下压检测模块108识别按键当前所发生的操控动作,并确定当前所发生的操控动作为目标操控,所述目标操控是下按的操控动作与回弹的操控动作中择一指定的。
93.其中一种实施方式中,请参考图7,所述自发电开关1还包括键值检测模块109,所述键值检测模块109电连接所述通信处理模块102;所述通信处理模块102在产生当前控制报文之前,还可用于:
94.自所述存储模块105读取表征所述自发电开关的开关标识;
95.若当前所发生的操控动作为下按的操控动作,则:通过所述键值检测模块109获取当前按键信息,并将所述当前按键信息更新于所述存储模块105;
96.若当前所发生的操控动作为回弹的操控动作,则:自所述存储模块105获取所存储的当前按键信息;
97.所述当前操控信息是基于所述开关标识、当前所发生的操控动作,以及所获取到的当前按键信息确定的,例如,可将开关标识写入当前控制报文,也可基于操控动作与当前按键信息确定键值,并将键值写入当前控制报文。
98.所述通信处理模块102还用于:
99.在接收到当前操控后,响应于针对于所述自发电开关的当前操控,产生所述当前操控信息;读取所存储的当前序列标识;判断所述当前操控是否属于目标操控;若是,则以预设的变换规则将所述当前序列标识自第一数值变换为第二数值,所述第一数值不同于所述第二数值;所述目标操控包括下按操控和/或回弹操控。具体举例中,目标操控可以是下按、回弹中择一确定的。其中一种实施方式中,所述变换规则,包括:在所述第一数值的基础上可累加,也可累减,也可乘或除以一个参考数值,得到所述第二数值。
100.当用户下按自发电开关的按键后,通常会希望立即获得控制效果的反馈。进而,若仅在回弹时才更新序列号(即目标操控为回弹的操控动作),这样下压的时候的全部电能都可以用于其他的任务,特别是发送信号,不用花费电能用于更新序列号。
101.具体举例中,自发电开关中携带序列号(即序列标识),每次按压时序列号自增(或自减),一个完整的下按+回弹操控后,序列号才自增一次;报文中携带表征是下按/弹起的信息(可理解为操控信息可表征出操控动作)。
102.具体的,每次自发电开关被下按后都会回弹,自发电电机在下按、回弹时都会动作发电,从而给后端电路(例如通信处理模块102、存储模块105等)供电。后端电路通过下压检测模块108可识别是下按的操控动作还是回弹的操控动作。
103.如果是下按的操控动作,则从存储模块105中读取序列号(即所存储的序列标识),然后序列号自增(其可理解为所述变换),然后读取按键信息,生成控制报文。再将序列号、按键信息写回存储模块105,进而可用于回弹的时候读取用,然后发送报文。其中,写回存储模块105和发送报文的顺序可以互换。
104.如果是回弹操控,则直接从存储模块105中读取序列号,不自增(即无需实施所述变换),同时按键信息也是直接从存储模块105中读取(而不是去读取开关器件的反馈信号)。
105.本技术中,接收端如受控设备接收当前控制报文后,可验证所述当前序列标识与所存储的历史序列标识的关系是否匹配于所述变换规则;并在所述关系匹配于所述变换规则时,执行所述当前控制报文对应的控制事件。
106.若所述关系不匹配于所述变换规则,则可丢弃对应的报文(例如当前控制报文);其中,对当前控制报文的丢弃,可理解为不基于当前控制报文做处理,例如:不执行当前控
制报文对应的控制事件,也不基于当前控制报文对历史序列标识等信息进行更新变化。
107.从而,通过在自发电开关与接收端的交互过程中引入当前序列标识,可以当前序列标识与历史序列标识的匹配验证作为执行控制事件的基础,避免执行复制报文的控制事件,实现了防复制攻击的效果。同时,通过当前序列标识与历史序列标识是否匹配于变换规则的匹配验证,还可以为重复报文的滤除提供依据。其中的复制攻击可理解为:攻击者先抓取一个合法的开关的报文,然后原封不动的发出来。通过序列标识的使用,可有效防止复制攻击,例如:接收端会存储上一次的收到的报文的序列号(即序列标识),收到新的报文之后,即使校验签名信息合法,也要继续核对序列号:不允许是之前下按或回弹时已经收到过的序列号,只能是比之前的大的序列号且落在一个窗口内(全部,或一个足够大的滑动窗口)。
108.进一步地,在一些实施例中,所述控制组件获取当前操控信息,包括:
109.响应于至少一个按键受到操控动作而生成的检测信号,所述控制组件按照设定的第一循环次数循环读取每一按键对应的检测信号,得到第一键值;
110.经过预设时间间隔后,所述控制组件按照设定的第二循环次数循环读取每一按键当前的检测信号,得到第二键值,将所述第二键值作为所述当前操控信息中的键值;所述第二键值与所述第一键值有关联关系。
111.本技术中,在自发电开关具有多个按键时,按下自发电开关的任意按键或多个按键同时按下,按键的下压力度都会驱动自发电电机启动,产生电能。通信处理模块响应电能上电工作后,轮询检测所有io口的电平,根据io口的电平来识别被按下的按键。例如,如果按键被按下,该按键所连接的io口就是低电平,否则是高电平。通信处理模块检测到按键按下,就会把该按键对应的键值位设为“1”,否则设为“0”。直到所有的io都检测完之后,通信处理模块就获取到了完整的键值,此时将键值信息添加到报文中,通过无线向外发送报文。
112.然而,当用户使用自发电开关的多键组合控制时,例如,同时按下多个按键来进行特定的操控。当用户同时按下多个按键,所述的“同时”为宏观上的同时操作,而在微观上按键按下是存在动作时间差的。即用户同时按下多个按键时,每个按键对应io口电平的接通都有时间差。而且,如图8所示,按键按下的时候,io电平会有抖动的问题,如果通信处理模块检测io电平的时候,刚好是按键下压的时间点,io电平存在抖动,就有可能按键漏读导致读到错误的键值,最终发出去的报文中是错误的键值,进而导致控制出错。
113.基于此,在一些实施例中,为解决按键抖动问题,通信处理模块检测按键的时候消抖方式是在检测到低电平之后延时10ms左右,再重新读io电平,如果还是低电平,则通信处理模块判断是有效按键事件,否则判断是信号干扰,忽略此低电平事件。虽然能解决按键抖动问题,识别出准确键值,但由于自发电开关电量有限,如果按照该消抖方式逐个io延时等待,将会消耗很大一部分电量,导致最终可用于向外发送报文的电量太少,从而导致发包数量不足甚至不发包。
114.进一步地,本技术中考虑到自发电开关的按键下压过程中,有可能存在自发电电机先动作,但是按键还没有接通的情况,此时通信处理模块中的程序已经启动运行,但是按键没接通,就会导致程序检测不到正确的键值,最终通过无线发出去的报文包含的是错误的键值。本技术中通信处理模块在响应于至少一个按键受到操控动作而生成的检测信号,即检测到有按键被按下后,按照设定的第一循环次数循环读取每一按键对应的检测信号,
得到第一键值,以规避同时按下多个按键时不同按键接通时间差带来的影响;并且,在经过预设时间间隔后,所述控制组件按照设定的第二循环次数循环读取每一按键当前的检测信号,得到第二键值,将所述第二键值作为所述当前操控信息中的键值。其中,所述第二键值与所述第一键值有关联关系,例如,所述第二键值可以是在所述第一键值的基础上读取的,或者,在读取所述第二键值后,利用所述第一键值作为比较对象进行比对,根据比对结果得到最终的键值,等。这样,在第一次循环读取得到第一键值时如果存在按键漏读的现象,则等待一定时间间隔后第二次循环读取得到的第二键值可作为键值漏读的补充,进而提高键值读取的准确性,有效地避免因按键抖动造成的键值读取出错问题。所述第一循环次数和所述第二循环次数可以相同,也可以不同,可根据实际应用进行自定义设定。
115.在一种举例中,如图9所示,通信处理模块在初始化io以及其射频单元完成后,将射频单元设置成低功耗模式,然后通信处理模块等待按键按下,如果没有按键按下,则会一直等待。通信处理模块检测到有按键按下之后,开始启动循环读键值,需要循环读多次来规避按键接通时间差带来的影响。按键接通之后,由于有电平抖动的问题,需要等待10ms,等待期间通信处理模块及其射频单元都处于低功耗模式,以减少电能消耗,超过10ms之后,通信处理模块唤醒重新读键值(循环读100次),然后配置其射频单元退出低功耗模式,接着发送无线报文。其中,第一次循环读按键100次时,可能处在图8中前沿抖动的时间点,采用按位或运算的方式可以减少前沿抖动带来的键值漏读的风险。第二次循环读键值时依然采用按位或运算的方式可以保留第一次读到的键值数据,同时如果第一次读键值时存在按键漏读的现象,第二次读键值可作为键值漏读的补充。
116.具体地,所述控制组件按照设定的第一循环次数循环读取每一按键对应的检测信号,得到第一键值,包括:
117.在每一次循环读取完所有按键对应的检测信号后,生成当前键值,并将所述当前键值与至少上一次循环读取所生成的历史键值进行或运算操作,在经过设定的第一循环次数循环读取操作后,得到第一键值。
118.在一种举例中,用二进制数据来表示多键自发电开关的键值,即1个比特来表示单个按键的状态,若按键为按下状态,该比特为1,若按键为未按下状态,该比特为0。自发电开关一共有6个按键,每个按键都分别连接到通信处理模块的一个io引脚上,每个按键与io引脚的对应关系如下表1所示:
[0119][0120]
表1
[0121]
通信处理模块读取io端口电平时会返回16bit的数据,每一个bit表示一个io的电平.假设按键1被按下,p0.3口是低电平,通信处理模块的程序读p0口键值的返回值是0bxxxxxxxxxxxx0xxx,即bit3是0(表示低电平),其余bit电平不确定。假设所有io都配置了上拉,则按键按下即低电平,未按下即高电平。此时若按键1按下,则程序读到的p0口电平返回键值为:0b1111111111110111;若按键2按下,则程序读到的p0口电平返回键值为:0b1111101111111111;若按键1、按键2和按键3同时按下,则程序读到的p0口电平返回键值
为:0b1111101111110110。
[0122]
假设定义1个uint8类型的变量keynum,为了实现1个字节表示键值,需要将每个io读到的键值进行移位整合处理后再赋值给键值字节。即,按键1读到的键值右移3位并取反之后再与键值字节keynum进行按位或运算,计算结果重新赋值给keynum;按键2读到的键值右移9位并取反之后再与键值字节keynum进行按位或运算,计算结果重新赋值给keynum;按键3读到的键值左移2位并取反之后再与键值字节keynum进行按位或运算,计算结果重新赋值给keynum;按键4读到的键值右移2位并取反之后再与键值字节keynum进行按位或运算,计算结果重新赋值给keynum;按键5读到的键值直接取反之后再与键值字节keynum进行按位或运算,计算结果重新赋值给keynum;按键6读到的键值右移1位并取反之后再与键值字节keynum进行按位或运算,计算结果重新赋值给keynum。
[0123]
经过上述处理之后,假设仅按键1按下,通信处理模块读到的键值为0x01;假设仅按键2按下,通信处理模块读到的键值为0x02;假设仅按键3按下,通信处理模块读到的键值为0x04;假设按键1、按键2和按键3同时按下,通信处理模块读到的键值为0x07。即读取的键值中每个按键的位置为确定的。这样,在每一次循环读取键值时,可将键值中每一个按键的值与上一次读取的键值中每一个按键的值进行按位或运算,在上一次读取键值时某一按键处于前沿抖动阶段而漏读时,后续通过多次循环读取并结合按位或运算的方式可以有效将漏读的按键进行纠偏,从而减少前沿抖动带来的键值漏读的风险。
[0124]
在一些实施例中,不同电子设备或服务器对自发电开关接入网络时要求的配网数据量较大,超出了自发电开关所能发出的一个报文携带的最大数据量,则可根据不同电子设备或服务器对自发电开关接入网络时配网数据量大小的不同,将配网数据拆分至多个配网报文中。
[0125]
一种举例中,自发电开关发送的蓝牙报文格式如图10所示,其中的preamble字段表征了前导码。access address字段表征了接入地址。pdu header字段表征了广播参数。payload字段表征了有效载荷部。source address表征了自发电开关的物理地址。ad structure字段表征了广播数据结构。length字段表征了广播数据的长度。ad type字段表征了ad类型。ad date字段表征了广播数据,在该广播数据中可视为包含了有效载荷数据。该有效载荷数据包括辅助数据及有效数据,该有效数据可承载于ad date字段中的params参数字段。由图中可知,一个蓝牙报文中params参数字段携带的数据最多为10个字节的数据,而在一些场景下,不同电子设备或服务器对自发电开关接入网络时要求配网报文发送的有效数据共有30个字节,超出了自发电开关发送的一个蓝牙报文所能携带的最多有效数据。基于此,自发电开关在配网时需要将30个字节的有效数据拆分至至少3个蓝牙报文中进行发送,不同电子设备或服务器收到完整的30个字节配网参数后才会执行添加自发电开关入网的操作。
[0126]
其中,自发电开关配网时拆分的3个蓝牙报文如图11a、11b、11c所示,其中,每个拆分后的蓝牙报文即配网报文包括明文域和密文域,其中明文域可视为报文的明文部分,密文域可视为报文的密文部分,所述第一序列标识或第二序列标识sn承载在报文的明文和密文中。明文中包括设备商标识字段company id,用于表征设备商id,其长度可以为2个字节。明文中还包括消息类型指示字段head,所述消息类型指示字段用于指示当前报文的消息类型,其中,所述消息类型包括配网消息类型和控制消息类型;即head字段用于指示当前报文
是配网报文还是控制报文,进而,还可指示出配网报文和控制报文中序列标识字段和params参数字段所承载的内容也不同;head字段的长度可以是1个字节。明文中还包括开关标识字段mac,所述开关标识字段用于指示所述自发电开关的标识信息,所述开关标识字段的长度可以为6个字节。密文中的参数字段承载有效数据,该有效数据可以包括配网数据、验证标识。其中,如上所述,由于配网数据、验证标识加起来超出了一个配网报文中参数字段所能承载的数据量,因此,将配网数据、验证标识拆分至3个配网报文的参数字段中,该拆分方式可以是随机拆分,也可以是按数据量大小来拆分,也可以是根据配网数据、验证标识的排布顺序来拆分,等,在此对拆分方式不作限定。而且,为了使得接收到3个配网报文的接收端能提取得到完整的配网数据、验证标识,通过序列标识来指示各个不同配网报文的顺序。
[0127]
可选的,配网数据包括产品类型标识pid、硬件版本号信息fw-ver、字节序转换类型信息kind、协议版本号信息protocol_ver、属性指示信息flags中至少之一或各种组合。验证标识可以是自发电开关配网时生成的随机字符串srand。将配网数据、验证标识拆分至3个配网报文的参数字段中,以形成3个配网报文。如图中所示,每个配网报文中可包括部分配网数据以及部分随机字符串srand,其中,所述产品类型标识pid的长度为8个字节,所述硬件版本号信息fw-ver的长度为1个字节,所述字节序转换类型信息kind的长度为2个字节,所述协议版本号信息protocol_ver的长度为1个字节,所述属性指示信息flags的长度为1个字节,所述随机字符串srand的长度为10个字节。此外,参数字段中还可包括预留信息rev,以便后续协议增加新的内容时可利用预留信息rev来承载新的内容,而无需对该报文格式进行较大的改动,提高了报文适用的灵活度。在拆分后的最后一个配网报文中参数字段的最后一字节还可承载有crc信息,该crc信息用于指示拆分的所有配网报文中参数字段内容的crc计算值,以便后续接收端对配网报文中参数字段内容进行crc校验,提高配网的准确性。
[0128]
在一些实施例中,密文中还包括crc字段,该crc字段中承载有针对参数字段和序列标识sn的crc计算值,以使得接收端在收到配网报文后,通过对crc字段的crc计算值进行校验来验证参数字段和序列标识sn的信息是否正确。密文中还包括传输指示字段transmit-params(tp),所述传输指示字段用于表征以下至少之一:
[0129]
配网报文与其他配网报文的关联信息;例如,若配网报文是拆分的配网报文中之一,则传输指示字段可指示该配网报文后续是否还有其他拆分的配网报文,以便接收端处理。
[0130]
转发信息,所述转发信息用于触发接收所述配网报文的外部设备向其他设备转发消息的功能。
[0131]
其中,所述参数字段的长度可以为10个字节,所述crc字段的长度可以为1个字节,所述传输指示字段的长度可以为1个字节。
[0132]
需要说明的是,配网模式时的第一序列标识、第二序列标识可以指示多个配网报文的顺序,当然,也可以具有防复制攻击的作用。而控制模式中第三序列标识主要起防复制攻击的作用,因此,在一种可选的实施方式中,配网时的第一序列标识、第二序列标识与控制时的第三序列标识可以在自发电开关中作为同一序列标识被存储和维护,从而基于操控而累加更新。两者的差别主要体现在是写入配网报文还是控制报文。
[0133]
在另一种可选的实施方式中,配网时的第一序列标识、第二序列标识与控制时的第三序列标识可以在自发电开关中作为区分开的序列标识被存储和维护。例如,配网时的第一序列标识、第二序列标识可仅用于指示多个配网报文的顺序,以使得接收端在接收到多个配网报文后,根据第一序列标识、第二序列标识对多个配网报文进行排序,以依此组合成完整的配网数据。第一序列标识、第二序列标识可不限制具有严格的递增变化,例如,自发电开关重置配网时,第一序列标识也可重置为0,多个配网报文中的序列标识可依此为1、2、3等。而当配网完成后,在控制模式时,控制报文中的第三序列标识基于目标操控如按下或弹起以预设的变换规则进行变化(递增或递减),且第三序列标识的变化基础是在控制模式中上一次受到目标操控产生的历史序列标识。第三序列标识需以预设的变换规则进行严格的递增或递减变化,以使得接收端根据第三序列标识对接收到的控制报文进行防复制攻击处理,并能进行去重过滤。
[0134]
在一种举例中,自发电开关的配网流程如下:
[0135]
配置手机app或者蓝牙网关进入配网模式;
[0136]
用户按下自发电开关的配网按钮的同时按压按键以操作自发电开关向外发送配网报文。配网报文的密文部分采用预先存储的第一密钥作为加密的密钥进行加密,加密数据内容中加入序列标识(如序列号)和验证标识(如随机字符串)用于防复制攻击。自发电开关将包含pid、mac地址、序列号和随机字符串等信息加密并分包处理后发送给手机app或者蓝牙网关,自发电开关将报文发送出去之后再根据第一密钥和刚生成的随机字符串计算生成第三密钥,并将第三密钥存储到非易失性的存储模块105中,此第三密钥用于后续配网完成后控制报文的数据加密。
[0137]
手机app或者蓝牙网关收到自发电开关发出的多个配网报文后,利用第二密钥对密文进行解密校验,其中,所述第二密钥匹配于所述第一密钥。第一密钥和第二密钥可以是相同的,其他举例中,两者也可以是不同的。手机app或者蓝牙网关对配网报文中的配网信息进行验证通过后,确定自发电开关为合法的设备信息,则将配网报文发送至服务器如云端,云端收到手机app或者蓝牙网关上报的配网报文后重新对其解密并校验,例如,云端利用第二密钥解密出配网报文的密文部分序列号是否与明文部分序列号一致,或对crc字段中的crc计算值进行校验,验证通过后,进一步地,云端还对配网报文中的随机字符串进行验证,例如,云端获取配网报文中的开关标识;验证至少所述开关标识、所述第一验证标识和所述第二验证标识的组合是否与所述云端存储的历史验证标识相匹配。即在自发电开关配网成功后,云端会记录有该自发电开关的开关标识与其配网时生成的随机字符串(即所述第一验证标识和所述第二验证标识的组合)。当云端接收到当前的配网报文时,会验证当前的配网报文中的开关标识与对应的随机字符串是否已记录在云端的历史数据中,以此,防止攻击者利用自发电开关的开关标识及对应的随机字符串进行复制攻击,而重复配网。若验证所述开关标识、所述第一验证标识和所述第二验证标识的组合并没有在云端上被记录过,则验证通过,并根据第一密钥(服务器上也可预先存储有第一密钥)、所述第一验证标识和所述第二验证标识生成第三密钥,将第三密钥下发至手机app或者蓝牙网关。手机app或者蓝牙网关在收到云端下发的第三密钥后,将第三密钥存储到自身的非易失性的存储器中并将自发电开关添加到网络中,从而完成自发电开关的配网。
[0138]
在自发电开关配网成功后,由于自发电开关在发送配网报文后生成的第三密钥与
云端下发至手机app或者蓝牙网关的第三密钥一致,因此,在控制模式下,自发电开关可以基于第三密钥对控制报文进行加密并与手机app或者蓝牙网关进行信息交互,从而实现通过网络对连接至手机app或者蓝牙网关的其他受控设备的控制。
[0139]
本技术中,由于第三密钥是自发电开关和云端的服务器各自生成的,并非自发电开关生成后经过广播发送至服务器的,所以降低了第三密钥在传输过程中被劫持并破解的危险;另外,第三密钥的生成过程中引入了随机字符串,该随机字符串是由自发电开关在配网时生成的,使得整个加密具备了更大的不确定性,外部想要破解的难度将大大增加,提高了数据传输、配网和控制的安全性。
[0140]
此外,第三密钥不是由自发电开关在配网时直接广播发送至网关,而是通过服务器验证通过后生成而下发至网关,网关只有接收到服务器下发的第三密钥才能将自发电开关加入至网络。增加了自发电开关配网时的验证复杂性,并实现自发电开关仅在联网状态(如需要有服务器的授权)下才能配网,在不联网状态下无法配网,进而提高配网的安全性。
[0141]
自发电开关配网成功后,可以通过发送控制报文实现对蓝牙mesh网络中的蓝牙设备进行控制。控制报文的格式如图12所示。自发电开关在控制报文的参数字段中可填充表征控制方式、控制类型、长度、键值等信息,进而通过在在手机app上配置场景,即可实现对网络中任意受控设备的场景控制。
[0142]
请参考图13,本技术还提供了一种自发电开关的处理方法,包括:
[0143]
s1301:若所述自发电开关处于配网模式且所述自发电开关的按键发生了至少一次操控,则至少生成第一配网消息和第二配网消息,所述第一配网信息和所述第二配网信息不同;
[0144]
s1302:对外发送至少所述第一配网消息和所述第二配网消息,所述第一配网消息和所述第二配网消息之间具备缓冲时间;所述缓冲时间匹配于所述自发电电机一次触发所产生的电能,以使得所述第一配网消息和所述第二配网消息能够在指定时间内被发送完毕,并在消息发送完毕后,所述自发电开关进入掉电状态;以使得:外部设备能够接收并基于所述第一配网消息和所述第二配网消息将所述自发电开关加入到指定网络。
[0145]
可选的,所述缓冲时间被设置为n/m;n为所述外部设备的扫描窗口,m为大于1的非整数,和/或,所述外部设备的扫描窗口与扫描间隔的占空比设置为不小于80%。
[0146]
可选的,所述缓冲时间被设置为1ms至30ms之间。
[0147]
可选的,所述的对外发送至少所述第一配网消息和所述第二配网消息,包括:
[0148]
依次对外广播多组消息,所述第一配网消息和所述第二配网消息被设置于不同消息组中,每组消息包括多个相同的消息,相邻两组消息之间具备缓冲时间,三个相邻的缓冲时间中至少有两个是不相同的。
[0149]
可选的,所述第一配网消息还包括第一验证标识,所述第二配网消息还包括第二验证标识,以供所述外部设备对至少所述第一配网信息、所述第二配网信息进行验证,并在验证通过后将所述自发电开关加入到指定网络。
[0150]
可选的,所述方法还包括:
[0151]
在配网模式下,生成随机字符串;其中,所述随机字符串至少包括所述第一验证标识和所述第二验证标识。
[0152]
可选的,所述第一配网消息还包括第一序列标识,所述第二配网消息还包括第二
序列标识,所述第一序列标识和所述第二序列标识用于指示所述第一配网消息和所述第二配网消息之间具有关联。
[0153]
可选的,所述第一序列标识与所述第二序列标识用于指示所述第一配网消息和所述第二配网消息之间的顺序;或者所述第一序列标识与所述第二序列标识相同。
[0154]
可选的,所述第一配网消息包括第一明文域和第一密文域,所述第一序列标识承载在所述第一明文域中,或者承载在所述第一密文域中,或者承载在所述第一明文域和所述第一密文域中;
[0155]
所述第二配网消息包括第二明文域和第二密文域,所述第二序列标识承载在所述第二明文域中,或者承载在所述第二密文域中,或者承载在所述第二明文域和所述第二密文域中。
[0156]
可选的,所述第一配网消息包括第一密文域,所述第一密文域经由第一密钥加密生成;所述第二配网消息包括第二密文域,所述第二密文域经由所述第一密钥加密生成。
[0157]
可选的,所述自发电开关加入到指定网络之后,所述方法还包括:生成第三消息,所述第三消息包括第三密文域,所述第三密文域经由第三密钥加密生成,所述第三密钥至少与所述第一密钥、所述第一验证标识和所述第二验证标识之间有关联。
[0158]
可选的,所述第三密钥至少根据所述第一密钥、所述第一验证标识和所述第二验证标识生成。
[0159]
请参考图14,本技术还提供了一种电子设备90,包括存储器92、处理器91以及存储在所述存储器92中并在所述处理器91上运行的程序,其中,处理器91能够通过总线93与存储器92通讯,所述处理器91执行所述程序时实现如下步骤:
[0160]
所述电子设备至少接收自发电开关发送的第一配网消息和第二配网消息,所述第一配网信息和所述第二配网信息不同;
[0161]
所述电子设备对至少所述第一配网信息和所述第二配网信息进行验证;
[0162]
所述电子设备将验证通过后的所述自发电开关加入到指定网络。
[0163]
可选的,所述电子设备能够与服务器通信,所述第一配网消息还包括第一验证标识,所述第二配网消息还包括第二验证标识;所述电子设备将验证通过后的所述自发电开关加入到指定网络之前,还包括:
[0164]
所述电子设备至少对所述第一配网信息和所述第二配网信息进行验证,并在验证通过后至少向服务器发送所述第一配网消息和所述第二配网消息,以使得:所述服务器至少对所述第一验证标识和所述第二验证标识进行验证,并在验证通过后,向所述电子设备反馈第三密钥;
[0165]
所述电子设备接收所述服务器反馈的第三密钥。
[0166]
可选的,所述第一配网消息包括第一密文域,所述第一密文域经由第一密钥加密生成;所述第三密钥至少与所述第一密钥、所述第一验证标识和所述第二验证标识之间有关联。
[0167]
可选的,所述电子设备将验证通过后的所述自发电开关加入到指定网络之后,还包括:
[0168]
所述电子设备接收所述自发电开关发送的第三消息;
[0169]
所述电子设备获取所述第三消息中的当前操控信息与第三序列标识;所述当前操
控信息包括键值,所述键值表征了以下至少之一:所述自发电开关当前接受到操控的按键;所述自发电开关中按键当前所接受到的操控动作;所述键值是经由所述第三密钥对所述第三消息解密得到的;
[0170]
所述电子设备验证所述第三序列标识通过后,执行所述当前操控信息对应的控制事件。
[0171]
本技术还提供了一种控制系统,包括上述实施例中的自发电开关以及电子设备。
[0172]
可选的,所述控制系统还包括服务器,所述服务器能够与所述电子设备通信,所述服务器用于:
[0173]
接收所述电子设备发送的第一配网消息和第二配网消息;
[0174]
对所述第一配网消息中的第一验证标识和所述第二配网消息中的第二验证标识进行验证;
[0175]
验证通过后,向所述电子设备反馈第三密钥。
[0176]
可选的,所述服务器对所述第一配网消息中的第一验证标识和所述第二配网消息中的第二验证标识进行验证时,包括:
[0177]
获取所述第一配网消息或所述第二配网消息中的开关标识;
[0178]
验证至少所述开关标识、所述第一验证标识和所述第二验证标识的组合是否与所述服务器存储的历史验证标识相匹配。
[0179]
可选的,所述第一配网消息包括第一明文域和第一密文域,所述第一密文域经由第一密钥加密生成;所述服务器对所述第一配网消息中的第一验证标识和所述第二配网消息中的第二验证标识进行验证之前,还用于:
[0180]
利用第二密钥对所述第一密文域中承载的第一序列标识进行解密,并验证解密得到的第一序列标识与所述第一明文域中承载的第一序列标识是否匹配;和/或,
[0181]
利用第二密钥对所述第一密文域中承载的crc计算值进行解密,并校验所述crc计算值;
[0182]
其中,所述第二密钥匹配于所述第一密钥。
[0183]
可选的,所述第三密钥由所述服务器至少根据所述第一密钥、所述第一验证标识和所述第二验证标识生成。
[0184]
可选的,所述控制系统还包括受控设备,所述受控设备能够与所述电子设备通信;
[0185]
所述自发电开关还用于向外发送第三消息;所述第三消息至少包括所述自发电开关的当前操控信息;
[0186]
所述电子设备还用于接收所述第三消息,并根据所述当前操控信息向所述受控设备发送控制消息;所述受控设备与所述自发电开关有关联关系;
[0187]
所述受控设备接收所述控制消息,并执行所述控制信息所指向的控制结果。
[0188]
以上所涉及的技术名词、技术特征、可选实施方式与技术效果可参照上述各个实施例的相关描述理解,对于重复的内容,在此不再累述。
[0189]
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0190]
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1