一种告警方法及设备与流程

文档序号:22685209发布日期:2020-10-28 12:51阅读:157来源:国知局
一种告警方法及设备与流程

本发明涉及通信技术领域,尤指一种告警方法及设备。



背景技术:

随着网络和计算机技术的发展,物联网技术得到了很快的发展,越来越多的设备都可以连入网络,以实现对设备的智能监测和控制。在物联网发展的过程中,会出现多种多样的物联设备,而在物联设备使用的过程中,物联设备状态异常时需要及时通知所属用户,即向用户告警。

那么,如何向用户告警,是本领域技术人员亟待解决的技术问题。



技术实现要素:

本发明实施例提供了一种告警方法及设备,用以在物联设备状态异常时,向用户告警。

第一方面,本发明实施例提供了一种设备的告警方法,包括:

在收到包括所述设备的多个参数的状态值的异常状态消息时,从缓存中获取所述设备的历史告警列表;其中,所述历史告警列表包括:所述设备的标识信息、已推送的告警消息中携带的参数、以及该参数对应的预设告警规则的标识信息;

在根据所述历史告警列表,判断出所述多个参数中存在满足对应的所述预设告警规则的第一类参数时,生成携带有所述设备的标识信息、所述第一类参数和对应状态值的告警消息,并推送至用户。

第二方面,本发明实施例提供了一种告警设备,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的所述程序指令,按照获得的程序执行:

在收到包括所述设备的多个参数的状态值的异常状态消息时,从缓存中获取所述设备的历史告警列表;其中,所述历史告警列表包括:所述设备的标识信息、已推送的告警消息中携带的参数、以及该参数对应的预设告警规则的标识信息;

在根据所述历史告警列表,判断出所述多个参数中存在满足对应的所述预设告警规则的第一类参数时,生成携带有所述设备的标识信息、所述第一类参数和对应状态值的告警消息,并推送至用户。

第三方面,本发明实施例提供了一种可读性存储介质,所述可读性存储介质存储有告警设备可执行指令,所述告警设备可执行指令用于使告警设备执行上述告警方法。

本发明有益效果如下:

本发明实施例提供的一种告警方法及设备,在收到包括设备的多个参数的状态值的异常状态消息时,可以从缓存中一次性获取设备的全部信息,即获取设备对应的历史告警列表,进而可以确定出满足对应的预设告警规则的第一类参数时,可以生成对应的告警消息,并推送至用户,从而实现向用户告警,提醒用户设备的当前异常状态;并且,由于从缓存中一次性获取设备的全部信息,可以减少对缓存的访问次数,即使第一类参数包括多个参数,依然只是访问缓存一次,从而可以避免因访问次数过多而造成访问超时的问题出现,提高了告警设备的稳定性和可靠性。

附图说明

图1为本发明实施例中提供的一种告警方法的流程图;

图2为本发明实施例中提供的具体实施例的流程图;

图3为采用本发明实施例提供的告警方法时,缓存的访问次数的增长态势图;

图4为本发明实施例中提供的一种告警设备的结构示意图;

图5为本发明实施例中提供的一种云端服务器的结构示意图。

具体实施方式

下面将结合附图,对本发明实施例提供的一种告警方法及设备的具体实施方式进行详细地说明。需要说明的是,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种设备的告警方法,如图1所示,可以包括:

s101、在收到包括设备的多个参数的状态值的异常状态消息时,从缓存中获取设备的历史告警列表;其中,历史告警列表包括:设备的标识信息、已推送的告警消息中携带的参数、以及该参数对应的预设告警规则的标识信息;

具体地,历史告警列表,可以具体包括:

标记数据(即key数据)和对应的参考数据(即value数据);

标记数据为设备的标识信息;

参考数据包括:已推送的告警消息中携带的参数、以及该参数对应的预设告警规则的标识信息。

s102、在根据历史告警列表,判断出多个参数中存在满足对应的预设告警规则的第一类参数时,生成携带有设备的标识信息、第一类参数和对应状态值的告警消息,并推送至用户。

其中,在向用户推送告警消息时,可以通过以下方式实现:

方式1:通过短信息的方式推送。

具体地,可以将告警消息编辑成短信息的格式传输至短信息服务模块,然后通过短信息服务模块将告警消息对应的短信息发送至短信网关,再由短信网关将告警消息对应的短信息发送至用户的终端设备中。

方式2:通过消息的方式推送。

具体地,可以将告警消息推送至用户的终端设备中的应用软件中,以实现实时推送;

若在实时推送的过程中,推送失败,即用户的终端设备的应用软件未收到该告警消息时,还可以将该告警消息存储至告警数据库中,以便于用户的终端设备的应用软件,可以通过消息拉取模块从数据库中拉取离线的告警消息,以实现向用户推送。

当然,向用户推送告警消息的方式,并不限于上述方式1和方式2,还可以是本领域技术人员所熟知的其他可以实现推送的方式,在此并不限定。

因此,在本发明实施例中,在收到包括设备的多个参数的状态值的异常状态消息时,可以从缓存中一次性获取设备的全部信息,即获取设备对应的历史告警列表,进而可以确定出满足对应的预设告警规则的第一类参数时,可以生成对应的告警消息,并推送至用户,从而实现向用户告警,提醒用户设备的当前异常状态;并且,由于从缓存中一次性获取设备的全部信息,可以减少对缓存的访问次数,即使第一类参数包括多个参数,依然只是访问缓存一次,从而可以避免因访问次数过多而造成访问超时的问题出现,提高了告警设备的稳定性和可靠性。

可选地,在本发明实施例中,历史告警列表采用以下方式确定:

在从缓存中获取设备的历史告警列表失败时,从告警数据库中获取设备的标识信息、已推送的告警消息中携带的参数、以及该参数对应的预设告警规则的标识信息后,构建历史告警列表,并存储至缓存中。

在实际情况中,缓存中可能不存在设备(假设为设备a)的历史告警列表,此时则需要从告警数据库中获取相关数据并构建历史告警列表,并存储至缓存中,以便于在后续再次接收到同一设备(即设备a)的异常状态消息时,可以从缓存中获取该设备的历史告警列表。

如此,不仅可以保证能够有效获取到历史告警列表,还可以有利于减少对缓存的访问次数,以及对数据库的访问次数,提高告警设备的稳定性和可靠性。

可选地,在本发明实施例中,任一参数对应的预设告警规则包括:

该参数的状态值不小于对应的预设告警阈值;

该参数的状态为突发性状态;或,该参数的状态为非突发性状态,且该参数对应的预设告警规则的标识信息不存在于获取到的历史告警列表中。

其中,以参数为温度为例,温度对应的预设告警规则可以包括:

温度不小于预设告警阈值(如40℃);

温度的状态为突发性状态,其中,突发性状态即突然地、间歇性地、非连续地出现的状态,也可以理解为暂态;或者,温度的状态为非突发性状态(即稳态,设备持续地、连续地上报异常的状态),且温度对应的预设告警规则的标识信息不存在于历史告警列表中。

并且,预设告警规则的标识信息可以由数字、字母和特殊符号构成,同理,前述内容中提及的设备的标识信息同样可以由数字、字母和特殊符号构成,可以根据实际需要设置标识,在此并不限定。

此外,对于突发性状态而言,可以理解为:

若收到设备a的异常状态消息时,假设设备a包括三个参数,分别表示为参数a、参数b和参数c,且参数a超标,参数b和参数c均符合要求时,针对参数a而言:

可以判断上一次收到的设备a的异常状态消息中参数a是否超标;

若是,说明设备a的参数a在持续地上报异常,此时可以确定参数a的状态为非突发性状态,即稳态;

若否,说明设备a的参数a并未在持续地上报异常,只是突然地上报异常,此时可以确定参数a的状态为突发性状态,即暂态。

如此,通过对参数对应的预设告警规则的设置,可以确定出哪些或哪个参数满足对应的预设告警规则,哪些或哪个不满足对应的预设告警规则,从而有利于生成满足对应的预设告警规则的参数对应的告警消息,以推送至用户,告知用户设备的某个参数出现了异常,以便于用户采取及时有效地错误解决异常,保证设备的安全性。

具体地,在本发明实施例中,预设告警阈值可以设置为:通过条件表达式实现,其中条件表达式可以包括:

1、状态名称:可以从设备类别的状态项中进行选择。

例如,以设备为空调为例,空调的状态可以选择co2数值的状态位、pm2.5超标的状态位等。

2、逻辑运算符:

可以支持等于、不等于、大于、小于、大于等于、以及小于等于等逻辑关系。

3、状态值:

状态值从选择的状态项的状态参数中选择,也可以直接配置数值。

例如,co2浓度超标推送可配置为二氧化碳数值为1500。

也就是说,预设告警阈值对应的条件表达式,可以设置为:空调的co2浓度的状态值超过1500。

对于预设复位阈值的设置,可以与预设告警阈值设置的方式类似,同样可以设置为条件表达式的方式,具体可参见上述内容,重复之处不再赘述。

可选地,在本发明实施例中,在判断出多个参数中存在满足对应的预设告警规则的第一类参数时,且在生成告警消息之前,还包括:

若第一类参数的状态为非突发性状态,形成设备的第一类参数对应的告警记录,并将告警记录存储至告警数据库中,且对缓存中设备对应的历史告警列表进行清除处理;

其中,告警记录包括:设备的标识信息、第一类参数、第一类参数的状态值、以及第一类参数对应的预设告警规则的标识信息。

具体地,在告警数据库中,一般存储有告警记录和不同设备的不同参数对应的预设告警规则及对应的标识信息。

对于告警记录,例如但不限于:若向用户已经推送过设备的某个参数对应的告警消息时,且该参数的类型为非突发性状态时,可以同时形成一条告警记录存储至数据库中,以表示已经向用户推送过相关的告警消息。

因此,在从缓存中获取设备的历史告警列表失败时,可以从告警数据库中获取相关数据并构建历史告警列表,然后将该历史告警列表存储至缓存中,以便于后续过程中使用。

具体地,在本发明实施例中,将多个参数中不满足对应的预设告警规则的参数定义为第二类参数时,还包括以下过程:

过程1:在判断出第二类参数小于对应的预设告警阈值时,判断是否存在第二类参数对应的预设复位规则;若是,执行过程2;若否,执行过程4;

过程2:判断第二类参数是否满足对应的预设复位规则;若是,执行过程3;若否,执行过程4;

过程3:分别对缓存中设备对应的历史告警列表、以及告警数据库中设备的第二类参数对应的告警记录进行清除处理;

过程4:保持缓存和告警数据库的当前状态。

如此,可以满足对应的预设复位规则时,清除缓存中设备对应的历史告警记录,以便于后续获取最新的数据;同时,清除告警数据库中第二类参数对应的告警记录(例如但不限于温度对应的告警记录),实现对设备的第二类参数进行复位,以便于后续重新判断设备的第二类参数是否异常,保证了告警数据库中的数据的有效性,提高告警的准确性。

具体地,在本发明实施例中,任一参数对应的预设复位规则包括:

该参数的状态值不小于对应的预设复位阈值;

该参数的状态为非突发性状态;

该参数对应的预设告警规则的标识存在于获取到的历史告警列表中。

如此,对预设复位规则的设置,可以确定出何时对设备的某个参数或某些参数进行复位操作,以便于后续重新判断设备参数是否异常,有利于保证告警数据库中的数据的有效性,提高告警的准确性。

可选地,在本发明实施例中,将多个参数中不满足对应的预设告警规则的参数定义为第二类参数时,还包括:

在判断出第二类参数对应的预设告警规则的标识存在于获取到的历史告警列表中时,保持缓存和告警数据库的当前状态。

如此,可以避免频繁地向用户推送告警,进而避免出现告警冗余,从而提高用户的体验感受。

可选地,在本发明实施例中,第一类参数包括多个参数时,还包括:

依次生成携带有设备的标识信息、以及第一类参数中的其中一个参数的告警消息。

例如,第一类参数具有两个,分别为温度和湿度时,可以首先生成温度对应的告警消息,再生成湿度对应的告警消息;或者,首先生成湿度对应的告警消息,再生成温度对应的告警消息。

如此,可以保证一个参数对应一个告警消息,并将多个告警消息依次推送至用户,从而使得用户可以获悉哪些参数出现了告警,以便于用户采取有效措施,保证设备的安全性。

下面结合具体实施例,对本发明实施例提供的上述告警过程进行说明。

结合图2所示。

s201、在告警数据库中加载全部设备对应的预设告警规则,并存储至内存中;

其中,内存可以认为是告警设备自身的存储空间,该内存不同于告警数据库和缓存。

并且,在告警数据库中存储有各设备的各参数对应的告警记录,告警设备可以从告警数据库中获取相应的数据(若告警设备当前接收到设备a的异常状态消息,告警设备则可以从告警数据库中获取设备a相关的告警记录,并构建历史告警列表存储至缓存和自己的内存中,以便于后续再收到设备a的异常状态消息时,无需访问告警数据库,告警设备可以从缓存中获取设备a的历史告警列表)并构建历史告警列表(如下面的表1所示),存储到缓存中,以及自身的内存中。

s202、收到设备a的包括各个参数的状态值的异常状态消息;

其中,某个参数的状态值可能是超标的,其他参数的状态值可能是正常的。

例如,以设备a为空调为例,空调的对应参数可以包括:温度、湿度和co2浓度,其中,在这三个参数中:

可能温度是超标的,如当前温度为40℃;

或者,可能湿度是超标的,如当前湿度为70%;

又或者,可能co2浓度是超标的,如当前co2浓度为50%。

s203、启动温度告警处理任务的线程;

其中,为了保证实时性,不同任务对应的线程可以并行执行,不需要串行。

并且,每接收到一个设备的异常状态消息,即可启动一个设备对应的线程。

例如,当前接收到设备a的异常状态消息,则启动一个设备a对应的线程,如线程1;

若紧接着接收到设备a的异常状态消息,则再启动一个设备a对应的线程,如线程2;

若接下来接收到设备b的异常状态消息,则又启动一个设备b对应的线程,如线程3;

且线程1、线程2和线程3可以是并行执行的。

s204、从缓存中获取设备a对应的历史告警列表,并存储至内存中;

其中,该历史告警列表可以包括:设备a的标识信息、已经向用户推送过告警消息对应的参数、以及该参数对应的预设告警规则的标识。

例如,若之前已经向用户推送过温度和湿度对应的告警消息,那么,在获取到的历史告警列表中,则包括:

设备a的标识信息、温度参数及对应的预设告警规则的标识、以及湿度参数及对应的预设告警规则的标识。

需要说明的是,在具体实施时,若第一次执行设备a的线程时,缓存中可能不存在设备a对应的历史告警列表,所以需要告警设备从告警数据库中获取相关数据,以构建出历史告警列表后,分别存储至缓存和自身的内存中;

或者,当前并不是第一次执行设备a的线程,但是在这之前,已经向用户推送过告警消息,并清除了缓存中设备a对应的历史告警列表时,使得当前缓存中同样不存在设备a对应的历史告警列表,所以仍然需要告警设备从告警数据库中获取相关数据,以构建出历史告警列表后,分别存储至缓存和自身的内存中;

又或者,当前并不是第一次执行设备a的线程,但是在这之前,对设备a的某个参数(如参数a)执行了复位操作,使得缓存中同样不存在设备a对应的历史告警列表,所以依然需要告警设备从告警数据库中获取相关数据,以构建出历史告警列表后,分别存储至缓存和自身的内存中。

当然,若是第n次(n为大于1的整数)执行处理设备a的线程时,且缓存中存在设备a对应的历史告警列表时,则可以从缓存中直接获取历史告警列表即可;并且,一个设备仅访问一次缓存,即使该设备中多个参数出现了超标的情况,也只是访问一次缓存,从而可以大大减少访问缓存的次数,避免访问超时的问题出现。

其中,如表1所示,表示一个设备对应的历史告警列表,以该设备为空调为例。

表1

当然,在表1中,设备的标识信息可以为一个字符串,但不限于22001,此处只是以22001为例进行说明。

说明一点,每接收到一个设备的异常状态消息时,均需要重新获取该设备对应的历史告警列表,直至该设备对应的线程结束,即可将获取到的历史告警列表释放掉,释放告警设备的内存空间,减少内存空间的占用。

s205、判断加载的全部预设告警规则中是否包括设备a对应的预设告警规则;若是,执行s206;若否,结束流程;

其中,在该任务线程进行的过程中,通过用户手动操作,或者用户的预先配置,可能会删掉告警数据库中设备a的某个参数(如参数a)对应的预设告警规则,所以此处需要判断设备a的参数a对应的预设告警规则是否还存在。

并且,只有设备a的参数a对应的预设告警规则存在,即说明需要对设备a进行告警设置,所以需要执行后续过程。

s206、判断获取到的异常状态消息中其中一个参数的状态值是否小于预设告警阈值;若否,执行s207;若是,执行s212;

s207、判断该参数的状态是否为暂态;若是,执行s208;若否,执行s210;

s208、形成携带有设备a的标识信息、该参数和对应的状态值的告警消息,并推送给用户;

其中,从s207到s208时,可以将告警消息直接推送至用户,不需要形成告警记录存储至告警数据库中,这是由于当前该参数的状态为突发性状态,这种情况出现较少,所以不会引起告警风暴,进而无需进行复杂处理,需要告警时直接告警即可。

s209、判断是否存在未被处理的参数;若是,回到步骤s205,继续对下一个参数进行相应的处理过程;若否,结束当前线程;

其中,一个线程可以包括对多个参数的处理。

例如,以设备为空调为例,收到空调的异常状态消息中包括温度参数、湿度参数和co2浓度参数,其中,温度参数的状态值超标,湿度参数的状态值超标,co2浓度参数的状态值正常;那么:

在处理完温度参数之后,回到s205,继续对湿度参数进行处理,直至这两个超标的参数处理完,即完成当前任务线程。

s210、判断获取到的历史告警列表中是否包括该参数对应的预设告警规则的标识;若是,回到s205,继续对下一个参数进行相应的处理过程;若否,执行s211;

其中,在列表中存在该参数对应的预设告警规则的标识时,说明已经向用户推送了该参数对应的告警消息,所以此时无需再次告警,以消除告警冗余。

s211、形成一条包括时间、设备a的标识信息、该参数对应的状态值和对应的预设告警规则的标识的告警记录,存储至告警数据库中,并清除缓存中设备a的历史告警列表;回到s208;

其中,该步骤说明形成了一条告警记录存到告警数据库中,同时清除缓存中对应的历史告警列表,表示已经向用户告警了。

需要注意的是,在清除缓存中的数据时,按照key来清除,即清除的是设备a对应的历史告警列表,而不是设备a中的某个参数对应的告警规则的标识。

s212、判断是否设置了该参数对应的复位阈值;若是,执行s213;若否,执行s216;

s213、判断该参数的状态值是否小于复位阈值;若否,执行s214;若是,回到s205;

s214、判断该参数的状态是否为稳态;若否,回到s205;若是,执行s215;

s215、判断获取到的历史告警列表中是否包括该参数对应的预设告警规则的标识;若是,执行s216;若否,回到s205;

s216、清除缓存中设备a的历史告警列表,以及清除告警数据库中设备a的该参数对应的告警记录;回到s205。

其中,该步骤说明对设备a的该参数恢复了原始设置,所以要将告警数据库中的告警记录删除,等后续再监测到设备a上报的异常状态消息,且在执行到s211时,再次形成告警记录存到告警数据库中。

综上,在实际情况中,由于白电设备上报异常状态比较频繁(约两秒上报一次),使得大部分都处于稳态,所以若在处理每个参数时均去访问缓存时,会使得访问缓存的次数大大增加。

在本发明实施例中,在收到包括设备的多个参数的状态值的异常状态消息时,可以从缓存中一次性获取设备的全部信息,即获取设备对应的历史告警列表,进而可以确定出满足对应的预设告警规则的第一类参数时,可以生成对应的告警消息,并推送至用户,从而实现向用户告警,提醒用户设备的当前异常状态;并且,由于从缓存中一次性获取设备的全部信息,可以减少对缓存的访问次数,即使第一类参数包括多个参数,依然只是访问缓存一次,从而可以避免因访问次数过多而造成访问超时的问题出现,提高了告警设备的稳定性和可靠性。

具体地,参见图3所示,缓存的访问次数的增长态势图,通过对缓存访问次数的优化,告警设备访问缓存的次数大大降低,如线2所示,并呈现平稳态势。

显然,通过本发明实施例提供的上述告警方法,可以大大减少缓存的访问次数,避免因访问次数过多而造成访问超时的问题出现,提高了告警设备的稳定性和可靠性。

基于同一发明构思,本发明实施例提供了一种告警设备,如图4所示,可以包括:

存储器401,用于存储程序指令;

处理器402,用于调用存储器401中存储的程序指令,按照获得的程序执行:

在收到包括设备的多个参数的状态值的异常状态消息时,从缓存中获取设备的历史告警列表;其中,历史告警列表包括:设备的标识信息、已推送的告警消息中携带的参数、以及该参数对应的预设告警规则的标识信息;

在根据历史告警列表,判断出多个参数中存在满足对应的预设告警规则的第一类参数时,生成携带有设备的标识信息、第一类参数和对应状态值的告警消息,并推送至用户。

可选地,在本发明实施例中,在出现异常状态消息的设备可以为智能家电设备,例如但不限于智能冰箱、智能空调等,并且,智能家电设备可以通过自身内部设置的通信模块向云端服务器上报异常消息,以便于云端服务器对智能家电设备上报的异常消息进行处理后,向用户推送告警消息。

其中,云端服务器500的具体架构,可以如图5所示,可以包括:

接收模块501,用于:接收智能家电设备上报的异常消息;

状态解析模块502,用于:对接收到的异常消息进行解析处理,得到异常状态消息,并将异常状态消息存储至消息队列1和告警数据库中;

告警设置模块503,用于:设置设备的参数对应的预设告警规则,并存储至告警数据库中;

状态监控和告警模块504,用于:从消息队列1中依次提取异常状态消息,并根据异常状态消息向用户推送告警消息;

短信息服务模块505,用于:向短信网关推送短信息;

推送消息模块506,用于:向用户的客户端推送实时的告警消息。

其中,状态监控和告警模块504可以将告警消息发送至消息队列1中,以便于推送消息模块506通过消息的方式推送至用户的客户端;或者,状态监控和告警模块504可以将告警消息发送至消息队列2中,以便于短信息服务模块505通过短信息的方式推送至短信网关,再通过短信网关发送至客户端,通知用户。

并且,对于上述内容提及的告警过程,执行告警过程的执行主体可以为状态监控和告警模块,也即上述内容中提及的告警设备可以理解为云端服务器中的状态监控和告警模块。

其中,对于消息队列而言,是类似于数据库一样的需要独立部署在服务器上的一种应用,可以提供接口给其他模块调用,以便于对消息队列中的各异常状态消息进行依次处理。

基于同一发明构思,本发明实施例提供了一种可读性存储介质,可读性存储介质存储有告警设备可执行指令,告警设备可执行指令用于使告警设备执行上述告警方法。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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