情景状态的快速同步方法及装置与流程

文档序号:11250177
情景状态的快速同步方法及装置与流程

本发明涉及智能家居领域,特别涉及一种情景状态的快速同步方法及装置。



背景技术:

在物联网、智能家居系统中,情景是一种经常采用的控制模式,例如离家模式需要实现灯光全关,用餐模式需要开启餐厅照明灯,并调到合适的亮度等等。当我们从手机APP发出情景命令后,或者通过开关按键开关灯时,我们需要将开关的状态采集回来去更新APP上开关的状态,实现APP上开关状态与实际开关状态的同步。目前很多APP或网关采用的方法是逐一读取开关状态的方法,当节点较多时,将会逐一读取设备的状态,获取一遍状态将需要很长的时间,此时就会出现开关设备的状态更新较慢的情况,造成用户体验差的问题。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种能快速读取开关设备的状态并实现同步、增强用户的体验的情景状态的快速同步方法及装置。

本发明解决其技术问题所采用的技术方案是:构造一种情景状态的快速同步方法,应用于智能家居控制系统,所述智能家居控制系统包括主机、移动终端、开关面板和情景面板,所述移动终端上安装有智能家居控制APP,所述移动终端通过无线通讯方式与主机进行通讯,所述开关面板和情景面板通过一条或多条路由与所述主机连接,所述方法包括如下步骤:

A)当所述主机上电时,所述主机逐一读取开关设备的状态进行首次同步;

B)对所述开关设备进行注册,建立设备表并将其保存在所述主机的EEPROM中;

C)建立绑定表并将其保存在所述主机的EEPROM中;

D)建立状态表并将其保存在所述主机的RAM中;

E)判断所述主机是否收到按键命令,如是,对所述按键命令进行解析并提取情景号,执行步骤F);否则,继续进行本步骤的判断;

F)查找所述设备表中含有所述情景号的开关设备;

G)判断所述按键命令是否是智能家居控制APP情景命令,如是,根据所述情景表更新所有含有所述情景号的开关设备的状态,执行步骤J);否则,执行步骤H);

H)判断所述按键命令是否是开关面板命令,如是,根据所述按键命令更新对应开关设备的状态,执行步骤J);否则,执行步骤I);

I)判断所述按键命令是否是情景面板命令,如是,根据所述绑定表更新所有含有所述情景号的开关设备的状态,执行步骤J);否则,执行步骤J);

J)所述智能家居控制APP从所述主机一次性读取所有开关设备的状态完成同步;

K)在每个指定的间隔时间内对没有动作的开关设备读取一次其状态,检测出故障节点。

在本发明所述的情景状态的快速同步方法中,所述设备表中记录有注册的开关设备的ID、开关设备的唤醒模式、情景表和最大开关设备数。

在本发明所述的情景状态的快速同步方法中,所述绑定表中记录有绑定开关设备的地址、情景命令和绑定的情景号。

在本发明所述的情景状态的快速同步方法中,所述状态表中记录有开关设备的当前状态。

在本发明所述的情景状态的快速同步方法中,所述间隔时间为24小时。

本发明还涉及一种实现上述情景状态的快速同步方法的装置,应用于智能家居控制系统,所述智能家居控制系统包括主机、移动终端、开关面板和情景面板,所述移动终端上安装有智能家居控制APP,所述移动终端通过无线通讯方式与主机进行通讯,所述开关面板和情景面板通过一条或多条路由与所述主机连接,所述装置包括:

首次同步单元:用于当所述主机上电时,所述主机逐一读取开关设备的状态进行首次同步;

设备表建立单元:用于对所述开关设备进行注册,建立设备表并将其保存在所述主机的EEPROM中;

绑定表建立单元:用于建立绑定表并将其保存在所述主机的EEPROM中;

状态表建立单元:用于建立状态表并将其保存在所述主机的RAM中;

按键命令判断单元:用于判断所述主机是否收到按键命令,如是,对所述按键命令进行解析并提取情景号;否则,继续进行判断;

开关设备查找单元:用于查找所述设备表中含有所述情景号的开关设备;

情景命令判断单元:用于判断所述按键命令是否是智能家居控制APP情景命令,如是,根据所述情景表更新所有含有所述情景号的开关设备的状态;否则,转到开关面板命令判断单元;

开关面板命令判断单元:用于判断所述按键命令是否是开关面板命令,如是,根据所述按键命令更新对应开关设备的状态;否则,转到情景面板命令判断单元;

情景面板命令判断单元:用于判断所述按键命令是否是情景面板命令,如是,根据所述绑定表更新所有含有所述情景号的开关设备的状态;否则,转到状态读取同步单元;

状态读取同步单元:用于使所述智能家居控制APP从所述主机一次性读取所有开关设备的状态完成同步;

状态读取检测单元:用于在每个指定的间隔时间内对没有动作的开关设备读取一次其状态,检测出故障节点。

在本发明所述的装置中,所述设备表中记录有注册的开关设备的ID、开关设备的唤醒模式、情景表和最大开关设备数。

在本发明所述的装置中,所述绑定表中记录有绑定开关设备的地址、情景命令和绑定的情景号。

在本发明所述的装置中,所述状态表中记录有开关设备的当前状态。

在本发明所述的装置中,所述间隔时间为24小时。

实施本发明的情景状态的快速同步方法及装置,具有以下有益效果:由于采用设备表、情景表和绑定表,根据事先的情景确定开关设备的状态,直接更新开关设备的状态,当智能家居控制APP发出情景命令后,主机直接根据该情景下的开关设备的状态更新状态表,而不需逐一读取该情景下开关设备的状态,因此能快速读取开关设备的状态并实现同步、增强用户的体验。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明情景状态的快速同步方法及装置一个实施例中方法的流程图;

图2为所述实施例中智能家居控制系统的结构示意图;

图3为所述实施例中装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明情景状态的快速同步方法及装置实施例中,该情景状态的快速同步方法的流程图如图1所示。该情景状态的快速同步方法应用于智能家居控制系统,图2为该智能家居控制系统的结构示意图。图2中,该智能家居控制系统包括主机、移动终端、开关面板和情景面板,移动终端上安装有智能家居控制APP,移动终端通过无线通讯方式与主机进行通讯,开关面板和情景面板通过一条或多条路由与主机连接。

主机可以是RF设备、ZIGBEE设备或ZWAVE设备,开关面板和情景面板的个数均为多个,图2中作为例子只画出了五个开关面板和两个情景面板,开关面板可以直接与所述主机连接,也可以通过另一个开关面板与主机连接,情景面板可以直接与主机连接,也可以通过开关面板与主机连接。开关面板可以是插座、调光器或窗帘等设备。上述开关面板指的是开关设备上的开关面板,情景面板指的是开关设备上的情景面板。

值得一提的是,本实施例中,情景命令是下行命令,对于ZIGBEE、ZWAVE等通信协议都是以广播的模式发出的,经过多条路由到达节点,为此要确保每个开关设备的通信成功率达到100%,通信的稳定性需要通信协议来保证。如果某些节点的通信成功率较低,则要增加路由节点。对于星型网络,采用CSMA竞争后转发,在指定的时间将放弃转发。

图1中,该情景状态的快速同步方法包括如下步骤:

步骤S01当主机上电时,主机逐一读取开关设备的状态进行首次同步:本步骤中,当主机上电时,主机逐一读取开关设备的状态,实现首次同步。

步骤S02对开关设备进行注册,建立设备表并将其保存在主机的EEPROM中:本步骤中,对开关设备进行注册,建立设备表,并将该设备表保存在主机的EEPROM中。在停电后数据可以长期保存,设备表中记录有注册的开关设备的ID、开关设备的唤醒模式、情景表和最大开关设备数。

本实施例中,建立设备表的源代码如下:

步骤S03建立绑定表并将其保存在主机的EEPROM中:本步骤中,建立绑定表,并将该绑定表保存在主机的EEPROM中,该绑定表用于绑定情景面板的按键对应的情景。绑定表中记录有绑定开关设备的地址、情景命令和绑定的情景号。

值得一提的是,本实施例中,情景面板、开关面板的按键命令是上报命令,经过单条或多条路由后到达主机,对于情景面板的命令,主机会检查绑定表,然后再采用广播的方式发出情景命令,情景面板的命令必须要经过主机解析后才发出,否则状态会失步。对于上报命令要做到通信成功率100%。

本实施例中,建立绑定表的源代码如下:

本实施例中,智能家居控制APP需要事先将情景命令写到主机的绑定表,通过智能家居控制APP写绑定表到主机的过程如下:

(1)智能家居控制APP发:=999999999,VR# //清除全部情景;

(2)主机回:=999999999,y1# //将接下来的命令绑定到情景1;

(3)智能家居控制APP发:=730000172,m10# //将情景面板1键绑定到情景1;

(4)智能家居控制APP发:=999999999,y2# //将接下来的命令绑定到情景2;

(5)智能家居控制APP发:=730000172,m70# //这个情景面板的按键7绑定到情景2,等等。

写情景命令的内容如下:

(1)&后面的数值:1-32分别表示1-32的情景寄存器,!后面的数值:0-255为控制字;

(2)对于3回路开关情景是0-63,控制字在智能家居控制APP上合成其b5b4(回路3)b3b2(回路2)b1b0(回路1),对应的回路的值:00=取消,01=不改写,10=开,11=关;

例如:=730000172,&1!63# //全关;

例如:=730000172,&2!42# //全开;

例如:=750000123,&1!36# //控制字10 01 10=36表示只改写第3路为开,第2路保持不变,第1路不起作用。

步骤S04建立状态表并将其保存在主机的RAM中:本步骤中,建立状态表,状态表中记录有开关设备的当前状态。将该状态表保存在主机的RAM中,后续可以用于状态表的实时更新。当按下某个开关设备的状态时,主机监视上报的状态,并立即更新状态表。例如:当情景面板上的按键按下后,主机根据绑定表中的情景号直接更新状态表。另外,当移动终端的智能家居控制APP通过主机发将情景命令写入指定的开关设备时,主机将记录开关设备对应这个情景的状态。

本实施例中,建立状态表的源代码如下:

步骤S05判断主机是否收到按键命令:本步骤中,判断主机是否收到按键命令,如果判断的结果为是,则执行步骤S06;否则,继续进行本步骤的判断。

步骤S06对按键命令进行解析并提取情景号:如果上述步骤S05的判断结果为是,则执行本步骤。本步骤中,主机对按键命令进行解析,并从中提取出情景号。执行完本步骤,执行步骤S07。

步骤S07查找设备表中含有情景号的开关设备:本步骤中,在取得情景号后,逐一判断每个开关设备是否有该情景号,如果有,则对该开关设备的状态进行更新,如果没有,则跳转到下一个开关设备进行判断,直至查找到设备表中所有含有上述所提取出的情景号的开关设备。执行完本步骤,执行步骤S08。

步骤S08判断按键命令是否是智能家居控制APP情景命令:本步骤中,判断按键命令是否是智能家居控制APP情景命令,如果判断的结果为是,则执行步骤S09;否则,执行步骤S10。

步骤S09根据情景表更新所有含有情景号的开关设备的状态:如果上述步骤S08的判断结果为是,则执行本步骤。本步骤中,根据情景表更新所有含有情景号的开关设备的状态。执行完本步骤,执行步骤S14。

步骤S10判断按键命令是否是开关面板命令:如果上述步骤S08的判断结果为否,则执行本步骤。本步骤中,判断按键命令是否是开关面板命令,如果判断的结果为是,则执行步骤S11;否则,执行步骤S12。

步骤S11根据按键命令更新对应开关设备的状态:如果上述步骤S10的判断结果为是,则执行本步骤。本步骤中,根据按键命令更新对应开关设备的状态。执行完本步骤,执行步骤S14。

步骤S12判断按键命令是否是情景面板命令:如果上述步骤S10的判断结果为否,则执行本步骤。本步骤中,判断按键命令是否是情景面板命令,如果判断的结果为是,则执行步骤S13;否则,执行步骤S14。

步骤S13根据绑定表更新所有含有情景号的开关设备的状态:如果上述步骤S12判断的结果为是,则执行本步骤。本步骤中,根据绑定表更新所有含有情景号的开关设备的状态。执行完本步骤,执行步骤S14。

步骤S14智能家居控制APP从主机一次性读取所有开关设备的状态完成同步:本步骤中,智能家居控制APP从主机一次性读取所有开关设备的状态完成同步。

步骤S15在每个指定的间隔时间内对没有动作的开关设备读取一次其状态,检测出故障节点:本步骤中,在每个指定的间隔时间内对没有动作的开关设备读取一次其状态,从而检测出故障节点。该间隔时间为24小时,当然,在本实施例的一些情况下,该间隔时间也可以为其他值。

本实施例中,当开关面板的按键被按下时,命令上报到主机,主机根据该命令(包含有状态)的内容,解析出状态,然后更新状态表。当情景面板的按键被按下时,这个命令送到主机,主机检测绑定表,如果情景有效则以广播的方式发出情景命令到所有的开关设备。如果是智能家居控制APP发出的情景命令,则根据情景表更新状态。本发明的方法在实际产品中采用,其成本较低,同步速度较快,200个开关设备的同步时间不超过1秒。因此本发明的方法能快速读取开关设备的状态并实现同步、增强用户的体验。

本实施例还涉及一种实现上述情景状态的快速同步方法的装置,该装置应用于上述智能家居控制系统。该装置的结构示意图如图3所示。图3中,该装置包括首次同步单元1、设备表建立单元2、绑定表建立单元3、状态表建立单元4、按键命令判断单元5、开关设备查找单元6、情景命令判断单元7、开关面板命令判断单元8、情景面板命令判断单元9、状态读取同步单元10和状态读取检测单元11;其中,首次同步单元1用于当主机上电时,主机逐一读取开关设备的状态进行首次同步;设备表建立单元2用于对开关设备进行注册,建立设备表并将其保存在主机的EEPROM中;设备表中记录有注册的开关设备的ID、开关设备的唤醒模式、情景表和最大开关设备数;绑定表建立单元3用于建立绑定表并将其保存在主机的EEPROM中;绑定表中记录有绑定开关设备的地址、情景命令和绑定的情景号;状态表建立单元4用于建立状态表并将其保存在主机的RAM中;状态表中记录有开关设备的当前状态。

按键命令判断单元5用于判断主机是否收到按键命令,如是,对按键命令进行解析并提取情景号;否则,继续进行判断;开关设备查找单元6用于查找设备表中含有上述情景号的开关设备;情景命令判断单元7用于判断按键命令是否是智能家居控制APP情景命令,如是,根据情景表更新所有含有情景号的开关设备的状态;否则,转到开关面板命令判断单元8;开关面板命令判断单元8用于判断按键命令是否是开关面板命令,如是,根据按键命令更新对应开关设备的状态;否则,转到情景面板命令判断单元9;情景面板命令判断单元9用于判断按键命令是否是情景面板命令,如是,根据绑定表更新所有含有情景号的开关设备的状态;否则,转到状态读取同步单元10;状态读取同步单元10用于使智能家居控制APP从主机一次性读取所有开关设备的状态完成同步;状态读取检测单元11用于在每个指定的间隔时间内对没有动作的开关设备读取一次其状态,检测出故障节点。上述间隔时间为24小时,当然,在本实施例的一些情况下,该间隔时间也可以为其他值。本发明的装置能快速读取开关设备的状态并实现同步、增强用户的体验。

总之,本实施例中,主机能快速获取开关设备的状态,其可以可靠地实现下行通信,且能实现与节点数量无关的快速状态更新,本发明的方法快速、稳定,能解决智能家居普遍存在的状态更新慢的问题。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1