CN112579053A - 超轻量嵌入式物联网规则引擎的设计架构 - Google Patents
超轻量嵌入式物联网规则引擎的设计架构 Download PDFInfo
- Publication number
- CN112579053A CN112579053A CN202011444192.7A CN202011444192A CN112579053A CN 112579053 A CN112579053 A CN 112579053A CN 202011444192 A CN202011444192 A CN 202011444192A CN 112579053 A CN112579053 A CN 112579053A
- Authority
- CN
- China
- Prior art keywords
- rule
- things
- internet
- data
- action
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Selective Calling Equipment (AREA)
Abstract
本发明公开了一种超轻量嵌入式物联网规则引擎的设计架构。具备以下优势:1、不依赖云平台,可完全离线工作;2、只需要极少的系统资源(内存不超过5K,Flash不超过34K),与现有技术相比系统资源占用降低两个数量级,可轻松运行在常规物联网MCU(如:STM32)上。实现类似的功能,应用本方法的物联网设备成本更低、体积更小、功耗更低;3、功能全面,以极小的资源就能支持时间计划、复合规则、多场景、组合动作以及数据统计,而现有技术要实现类似功能通常需要物联网设备有很高硬件配置或者借助云平台参与;4、执行效率高,规则的匹配和触发时间在50ms内,执行时间则低于10ms,比现有技术提高了一到两个数量级。
Description
技术领域
本发明涉及物联网领域,具体涉及一种超轻量嵌入式物联网规则引擎的设计架构。
背景技术
总体上,物联网设备通常由传感器(Sensors)、执行器(Actuators)和控制器(Controller)三部分组成。物联网设备朝着更加智能化方向的发展,对控制器(Controller)需要加载的组件越来越多、需要处理的业务逻辑也越来越复杂,控制器已成为物联网设备最核心的模块。另一方面,大部分物联网终端都受到体积、功耗、成本等多方面限制,其运算能力和存储空间都非常有限,与PC、甚至智能手机相差至少两个数量级。针对上述矛盾,目前在设计物联网控制器时需要有所取舍,通常有三种方式:
1、简化物联网控制器本身的处理逻辑,控制器只处理简单的逻辑规则
2、将主要处理逻辑放在服务器或者云平台上
3、采用性能更强大的物联网处理器,并增加存储空间
上述办法的局限性非常明显,1、牺牲了功能,做不到智能化;2、依赖服务器或云平台,无法离线工作,响应速度也受影响;3、成本提高、功耗增加。
随着用户对物联网设备的智能化要求越来越高,规则引擎的功能和性能已成为决定物联网系统智能化程度的重要指标。然而,物联网终端受到体积、功耗、成本等多方面限制,其运算能力和存储空间都非常有限,难以承载常规的规则引擎。现有技术在应对上述矛盾时都有不足之处:
相当一部分物联网系统将规则引擎放在服务器或者云平台上,虽然这样不受运算和存储资源限制,但是设备无法离线工作,同时网络传输延时也会影响系统的实时性和可靠性。因此,对离线工作、实时性和可靠性要求高的物联网设备就需要能完全在本地执行的嵌入式规则引擎。而现有的嵌入式规则引擎不仅对物联网设备的硬件有较高要求,造成设备的体积大、功耗高、成本贵;并且现有的嵌入式规则引擎提供的功能不全面、性能也不够好。
发明内容
本发明要解决的技术问题是提供一种超轻量嵌入式物联网规则引擎的设计架构,功能、效率和成本方面都具有明显优势。
为了解决上述技术问题,本发明提供了一种超轻量嵌入式物联网规则引擎的设计架构,所述规则引擎包括:场景、定时器、动作、规则和统计报表五类对象;其中,所述场景对应某个特定的用户上下文环境,在此环境下,相关环境参数需要达到设定值,或者说需要控制相关设备对环境参数进行调节;所述定时器用于定时控制,可以设定单次触发或者周期触发的定时器,周期触发支持设置结束时间;所述动作是对一个或多个节点控制消息的集合;所述规则将场景、定时器和动作关联在一起,并可以指定触发条件;规则定义了什么时间、在什么情况下,做什么动作;规则的属性中,场景和动作二选一;而定时器和触发条件至少需要一个;所述统计报表用来设定对特定的传感器数据、执行器状态以及规则执行情况进行数据统计,统计报表的数据不仅可用于分析展现,而且可以作为规则的触发条件。
本发明的有益效果:
1、资源要求低:只需要极少的系统资源(内存不超过5K,Flash不超过34K),与现有技术相比系统资源占用降低两个数量级,可轻松运行在常规物联网MCU(如:STM32)上;2、体积小、功耗低:实现类似的功能,应用本方法的物联网设备成本更低、体积更小、功耗更低;3、功能全面:以极小的资源就能支持时间计划、复合规则、多场景、组合动作以及数据统计,而现有技术要实现类似功能通常需要物联网设备有很高硬件配置或者借助云平台参与;4、执行效率高:规则的匹配和触发时间在50ms内,执行时间则低于10ms,此外也避免了云端通讯耗时,性能比现有技术提高了一到两个数量级。5、适应性高、可靠性高:使用“SMART”模型的物联网设备结构精简,可完全离线工作,规则执行不受网络影响,软硬件可靠性都显著提升。
在其中一个实施例中,规则引擎中与本物联网设备关联的所有传感器和执行器,无论内置的还是外部的,都用一个节点ID标识;对于需要规则引擎管理的传感器和执行器,NodeID是必须的,此外,还可以给分配一个可选的子节点ID;同一类型的节点,可以使用独立的NodeID、也可以共享相同的NodeID;传感器或执行器共享相同的NodeID时,可以通过SubID进行进一步选择;NodeID和SubID各占1个字节,其中,NodeID取值范围为1-254;SubID采用位掩码方式,因此支持单选和多选;在规则引擎的设定或控制消息中,节点选择/匹配的算法如下:首先匹配NodeID,包括两种情况:目标NodeID与被选传感器和执行器的NodeID一致,或者目标NodeID为255,既广播,则所有传感器和执行器都会被选中;其次匹配SubID,此步骤是可选的,只有当规则引擎的设定或控制消息指定了目标SubID才进行;如果目标SubID>0,则计算目标SubID与被选传感器或执行器SubID的位与,只有当位与为“真”时选中该传感器或执行器。
在其中一个实施例中,如果一条规则只设定了定时器而没有设定触发条件,则此规则被称为“定时器驱动的规则”,既表示在规定的时间,执行动作或切换场景;如果一条规则包含触发条件,则无论是否设定了定时器,此规则都被称为“条件驱动的规则”,既表示在满足规定的条件、且在规定的时间,执行执行动作或切换场景;触发条件可以是一个或多个,多个条件之间通过“or”或者“and”条件连接符表明逻辑关系。
在其中一个实施例中,定时器驱动的规则由定时器实例作为触发源:扫描所有规则中有引用的定时器运行实例,如果有定时器触发,且触发间隔符合设定,则触发该规则;条件驱动的规则“数据接口”作为触发源:(1)数据接口接收内部和外部传感器数据,以及统计数据;(2)如果数据发生变化,则依次扫描与改数据项关联的数据改变句柄,找到对应的规则对象;(3)判断规则中的条件,如果条件全部满足,且触发间隔符合设定,则触发该规则。
在其中一个实施例中,所述规则触发的具体操作包括:(1)根据规则属性切换场景,场景中包括修改系统级开关以及执行动作;或者(2)根据规则属性直接执行动作。
在其中一个实施例中,所述执行动作的具体操作包括:(1)根据动作标识查找动作索引,判断动作的命令列表是否已加载,如果已加载,则执行动作;(2)如果命令列表未加载,则判断命令列表缓冲区是否已满,如果未满,则加载命令列表,并执行;(3)如果命令列表缓冲区已满,则将动作索引中总执行次数最小的命令列表空间标记为未使用,加载将要执行动作的命令列表到此空间,并标记为已使用,然后执行;(4)执行后该动作的总执行次数增加1。
在其中一个实施例中,所述规则引擎启动时加载模型数据,其中场景、定时器、规则,以及动作和统计报表的索引全部加载到内存中,动作的命令列表和统计数据项则按需动态加载;
一个场景占用8字节、一个定时器占用8字节、一个动作占用512字节且最多包括16条命令、一条规则占用32字节、一个统计报表包括当前数据和历史数据,最大占用512字节;
所述规则引擎标准配置支持32个场景、16个定时器、32个动作、32组规则以及32个统计报表,此配置下需要的FLASH存储不到34K,内存占用不超过5K;
所述规则引擎支持根据实际需要增加或减少模型规模,以更有效地利用物联网设备的资源。
在其中一个实施例中,所述规则引擎的配置接口允许对对象进行配置,配置操作包括查询、新增、修改和删除;接口格式包括JSON、串口协议和二进制数据包;所述规则引擎如果收到模型“配置”消息,则进行模型数据更新和保存,并更新定时器实例和数据改变回调句柄。
在其中一个实施例中,物联网设备通过规则引擎的“数据接口”向规则引擎传递数据,数据包括但不限于物联网设备的内置传感器数据和内置执行器数据,以及通过物联网设备通讯模块接收到的外部传感器和外部执行器数据;规则引擎通过“命令接口”指示物联网设备执行有关操作,操作对象包括物联网设备内置执行器,以及通过物联网设备通讯模块控制的外部执行器;
在其中一个实施例中,所述内置和外部传感器包括但不限于温湿度、亮度、人体红外、噪声、压力、震动、PM2.5、PM10、二氧化碳、甲醛、TVOC、烟雾、电表和水表;所述内置和外部执行器包括但不限于灯光控制、窗帘控制、空调控制、风扇控制、新风系统控制、门禁控制、电源开关、阀门等;所述物联网通讯模块包括Wi-Fi、RF2.4、RF433、蓝牙、ZigBee、LoRa和NB-IoT。
附图说明
图1是本发明超轻量嵌入式物联网规则引擎的设计架构及其在一个典型物联网设备中的位置示意图。
图2是本发明超轻量嵌入式物联网规则引擎的设计架构中SMART模型的存储分配示意图。
图3是本发明超轻量嵌入式物联网规则引擎的设计架构中SMART引擎加载模型数据的完整流程示意图。
图4是本发明超轻量嵌入式物联网规则引擎的设计架构中SMART规则引擎的工作流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
本发明公开了一种超轻量嵌入式物联网规则引擎的设计架构及实现方法,该规则引擎只需很少的系统资源就能实现时间计划、复合规则、多场景、组合动作以及数据统计等功能,执行效率高、支持离线工作。
(一)超轻量嵌入式物联网规则引擎的总体架构:“SMART”模型本发明公开的规则引擎其系统架构可概括为“SMART”模型:S代表场景(Scenario);M代表定时器(alarm&timer);A代表动作(Action);R代表规则(Rule);T代表统计报表(Table&report)。其在一个典型物联网设备中的总体架构如图1所示,所述典型物联网设备包括但不限于物联网终端和物联网网关。
如图1所示,“SMART”嵌入式规则引擎在物联网设备中的基本工作流程为:
1、“SMART”超轻量规则引擎嵌入物联网设备,占用内存不超过5K,Flash不超过34K,详见表2“SMART模型的对象数据结构”和图2“SMART模型的存储分配”。
2、物联网设备通过“SMART”规则引擎的“数据接口”向规则引擎传递数据,数据包括但不限于物联网设备的内置传感器数据和内置执行器数据,以及通过物联网设备通讯模块接收到的外部传感器和外部执行器数据。
3、“SMART”规则引擎通过“命令接口”指示物联网设备执行有关操作,操作对象包括但不限于物联网设备内置执行器,以及通过物联网设备通讯模块控制的外部执行器。
4、所述内置和外部传感器包括但不限于温湿度、亮度、人体红外、噪声、压力、震动、PM2.5、PM10、二氧化碳、甲醛、TVOC、烟雾、电表、水表等;所述内置和外部执行器包括但不限于灯光控制、窗帘控制、空调控制、风扇控制、新风系统控制、门禁控制、电源开关、阀门等。所述物联网通讯模块包括但不限于Wi-Fi、RF2.4、RF433、蓝牙、ZigBee、LoRa、NB-IoT等。
5、“SMART”规则引擎的配置接口允许对“SMART”对象进行配置,配置操作包括查询、新增、修改、删除;配置内容详见表2“SMART模型的对象数据结构”。
(二)“SMART”模型中传感器和执行器的标识
在“SMART”规则引擎中,与本物联网设备关联的所有传感器和执行器,无论内置的还是外部的,都用一个节点ID(NodeID)标识。对于需要规则引擎管理的传感器和执行器,NodeID是必须的,此外,还可以给分配一个可选的子节点ID(SubID)。同一类型的节点,可以使用独立的NodeID、也可以共享相同的NodeID。传感器或执行器共享相同的NodeID时,可以通过SubID进行进一步选择。
NodeID和SubID各占1个字节,其中,NodeID取值范围为1-254(0和255为系统保留,0表示此物联网设备本身,255表示所有节点既广播)。特别地,SubID采用位掩码方式,因此支持单选和多选。在规则引擎的设定或控制消息中,节点选择/匹配的算法如下:
1、首先匹配NodeID,包括两种情况:目标NodeID与被选传感器和执行器的NodeID一致(如:目标NodeID为8,则只会选中NodeID为8的传感器和执行器),或者目标NodeID为255,既广播,则所有传感器和执行器都会被选中;
2、其次匹配SubID,此步骤是可选的,只有当规则引擎的设定或控制消息指定了目标SubID(非0)才进行。如果目标SubID>0,则计算目标SubID与被选传感器或执行器SubID的位与(C语言的“&”操作),只有当位与为“真”时选中该传感器或执行器。
上述算法举例说明如表1所示:
表1:“SMART”规则引擎选择传感器和执行器的算法示例
(三)“SMART”模型的对象
本发明公开的超轻量嵌入式物联网规则引擎规则其核心架构为“SMART”模型,此模型主要由5类对象组成:S代表场景(Scenario);M代表定时器(alarm&timer);A代表动作(Action);R代表规则(Rule);T代表统计报表(Table&report)。具体说明如下:
1、场景(S):对应某个特定的用户上下文环境,在此环境下,相关环境参数需要达到设定值,或者说需要控制相关设备对环境参数进行调节。所述环境参数包括但不限于亮度、色温、温度、湿度、空气质量、设备状态等。
2、定时器(M):用于定时控制,可以设定单次触发或者周期触发的定时器,周期触发支持设置结束时间;
3、动作(A):一个或多个节点(NodeID)控制消息的集合。一个动作可以包括最大16条控制消息,一条控制消息对应一个NodeID(必选)和一个SubID(可选);
4、规则(R):规则将场景、定时器和动作关联在一起,并可以指定触发条件,如:传感器NodeID、数据项、门限值、条件运算符和条件连接符等。直观理解规则就是定义了什么时间、在什么情况(条件)下,做什么动作(改变场景、发控制消息等)。规则的属性中,场景(S)和动作(A)二选一;而定时器(M)和触发条件至少需要一个。特别地,
如果一条规则只设定了定时器(M)而没有设定触发条件,则此规则被称为“定时器驱动的规则”,既表示在规定的时间,执行动作(A)或切换场景(S);
如果一条规则包含触发条件,则无论是否设定了定时器(M),此规则都被称为“条件驱动的规则”,既表示在满足规定的条件、且在规定的时间(如果有),执行执行动作(A)或切换场景(S)。触发条件可以是一个或多个,多个条件之间通过“or”或者“and”条件连接符表明逻辑关系。
5、统计报表(T):用来设定对特定的传感器数据、执行器状态以及规则(R)执行情况进行数据统计,统计指标包括但不限于极值、平均值、累计值、方差等,统计周期包括但不限于小时、日、周、月。“SMART”规则引擎根据设定自动进行数据汇总和清理。统计报表(T)的数据不仅可用于分析展现,而且可以作为规则(R)的触发条件,也就是说可以将某个统计值定义为触发条件的数据项(此时NodeID=0,表示本物联网设备的系统数据项),规定当该统计数据达到特定值时,触发此规则(R)。
表2:“SMART”模型的对象数据结构
(四)“SMART”模型数据的存储设计
作为一种超轻量嵌入物联网规则引擎,“SMART”引擎占用内存不超过5K,Flash不超过34K,并且可根据实际需要灵活调整“SMART”模型的容量配置,实现更小的存储资源占用。图2以34K存储空间配置为例描述了“SMART模型的存储分配”,并注明了可调整部分。
按图2配置的“SMART”引擎可支持32个场景、16个定时器、32个动作(每个动作可包括16条命令)、32组规则以及32个统计报表,基本可满足大多数物联网边缘设备的智能化控制需求。而此配置下需要的FLASH存储不到34K,内存占用不超过5K。
并且,“SMART”引擎支持根据实际需要增加或减少模型规模,以更有效地利用物联网设备的资源。例如,如果规则、动作和统计报表数量减少到8个,则需要的FLASH和内存将分别降低到9K和3K以内,此配置适用于微型智能物联网设备。而对于非常复杂的规则需求,根据数据结构定义“SMART”引擎可无缝扩展到最大256个规则、动作、统计报表、场景等,即使如此规模,所需FLASH和内存分别也不超过268K和24K。
此外,需注意动作(A)中的命令列表是根据每个动作调用次数(calledTimes)加载在内存中。每次触发动作时,如果该动作的命令列表尚未加载,则从现有列表中移除调用次数最少的动作的命令列表,然后加载需要的新命令列表。
场景(S)、定时器(M)和规则(R)则是在程序启动时全部加载到内存中;统计报表的索引和当前统计数据项也是在程序启动时全部加载到内存中,而统计报表的历史统计数据仅在需要更新时加载,更新的同时判别触发条件。
“SMART”引擎加载模型数据的完整流程如图3所示。
上述存储设计和内存加载方式可有效利用系统资源。
(五)“SMART”规则引擎的处理流程
参阅图4所示,“SMART”规则引擎的工作流程:“SMART”规则引擎由场景(S)、定时器(M)、动作(A)、规则(R)和统计报表(T)五类对象组成,规则引擎启动时加载模型数据,其中场景、定时器、规则,以及动作和统计报表的索引全部加载到内存中,动作的命令列表和统计数据项则按需动态加载。
模型加载完毕后,对定时器驱动的规则,创建定时器实例;对条件驱动的规则,为每一个传感器及统计数据项添加数据改变回调句柄。
“SMART”规则引擎具有模型“配置”接口,接口格式包括但不限于JSON、串口协议、二进制数据包(与“SMART”对象数据结构对应)等。规则引擎如果收到模型“配置”消息,则进行模型数据更新和保存,并更新(包括增加、修改和删除)定时器实例和数据改变回调句柄。
条件驱动的规则由“数据接口”作为触发源:
(1)数据接口接收内部和外部传感器数据,以及统计数据(视为一类特殊的“传感器”);
(2)如果数据发生变化,则依次扫描与改数据项关联的数据改变句柄,找到对应的规则对象;
(3)判断规则中的条件,如果条件全部满足,且触发间隔符合设定,则触发该规则。
定时器驱动的规则由定时器实例作为触发源:扫描所有规则(R)中有引用的定时器运行实例,如果有定时器触发,且触发间隔符合设定,则触发该规则。
规则触发的具体操作包括:
(1)根据规则属性切换场景,场景中包括修改系统级开关以及执行动作;
或者(2)根据规则属性直接执行动作。
执行动作的具体操作包括:
(1)根据动作标识(A_uid)查找动作索引,判断动作的命令列表是否已加载,如果已加载,则执行动作;
(2)如果命令列表未加载,则判断命令列表缓冲区是否已满,如果未满,则加载命令列表,并执行;
(3)如果命令列表缓冲区已满,则替换动作索引中calledTimes最小的命令列表,并执行。
下面给出本发明的一个具体应用场景:
实施例一:智能网关
在本实施例中,“SMART”超轻量嵌入式物联网规则引擎被应用在一个以STM32F103TB MCU为核心的物联网网关内。该型号MCU有20K内存和128K Flash,因为“SMART”引擎的简洁性和高效性,仅占用不到5K内存和34K Flash,剩余资源足够网关其他功能模块使用。因此,该物联网网关不仅结构简单、成本低、功耗小,其体积不到一个火柴盒大小,安装部署非常方便,并且规则引擎可以完全离线工作,支持多达32个场景、16个定时器、32个动作、32组规则以及32个统计报表,在一些网络不稳定甚至无网环境也能很好地实现自动控制。例如:在教室环境实现对照明、空调、窗帘、风扇、投影仪、新风系统等的场景化控制,实现规则包括:定时开关设备、恒照度照明、人体感应控制、照明和窗帘与投影联动、空气质量与新风联动等等。
实施例二:智能传感器
在本实施例中,“SMART”超轻量嵌入式物联网规则引擎被应用在一个以STM32L151C6 MCU为核心的智能传感器内。该型号MCU有10K内存和32K Flash,因为“SMART”引擎的简洁性和高效性,仅占用不到3K内存和9K Flash,支持32个场景、8个规则、8个定时器、8个动作以及8个统计报表。该智能传感器结构简单、成本低、功耗小,安装部署非常方便,本身能够采集温湿度、光线强度、二氧化碳浓度、甲醛浓度、PM2.5浓度等指标,并且凭借内置的“SMART”规则引擎,能够直接对外围电器设备,如:空气开关、继电器、窗帘电机等,进行智能化控制,无需额外的网关设备和复杂的集成,系统成本大大降低。
本发明的关键技术概括如下:
本发明公开了一种超轻量嵌入式物联网规则引擎“SMART”的设计架构及实现方法,该规则引擎只需很少的系统资源就能实现时间计划、复合规则、多场景、组合动作以及数据统计等功能,执行效率高、支持离线工作,该算法可运行在主流32位单片机(MCU)上,如:STM32,“SMART”规则引擎由场景(S)、定时器(M)、动作(A)、规则(R)和统计报表(T)五类对象组成。
场景(S)对应某个特定的用户上下文环境,在此环境下,相关环境参数需要达到设定值,或者说需要控制相关设备对环境参数进行调节。所述环境参数包括但不限于亮度、色温、温度、湿度、空气质量、设备状态等。
定时器(M)用于定时控制,可以设定单次触发或者周期触发的定时器,周期触发支持设置结束时间。
动作(A)是对一个或多个节点(NodeID)控制消息的集合,一个动作可以包括最大16条控制消息,一条控制消息对应一个NodeID(必选)和一个SubID(可选)。
规则(R)将场景、定时器和动作关联在一起,并可以指定触发条件,如:传感器NodeID、数据项、门限值、条件运算符和条件连接符等。规则定义了什么时间、在什么情况(条件)下,做什么动作(改变场景、发控制消息等)。规则的属性中,场景(S)和动作(A)二选一;而定时器(M)和触发条件至少需要一个。
统计报表(T)用来设定对特定的传感器数据、执行器状态以及规则(R)执行情况进行数据统计,统计指标包括但不限于极值、平均值、累计值、方差等,统计周期包括但不限于小时、日、周、月。“SMART”规则引擎根据设定自动进行数据汇总和清理。统计报表(T)的数据不仅可用于分析展现,而且可以作为规则(R)的触发条件,也就是说可以将某个统计值定义为触发条件的数据项(此时NodeID=0,表示本物联网设备的系统数据项),规定当该统计数据达到特定值时,触发此规则(R)。
“SMART”规则引擎中与本物联网设备关联的所有传感器和执行器,无论内置的还是外部的,都用一个节点ID(NodeID)标识。对于需要规则引擎管理的传感器和执行器,NodeID是必须的,此外,还可以给分配一个可选的子节点ID(SubID)。同一类型的节点,可以使用独立的NodeID、也可以共享相同的NodeID。传感器或执行器共享相同的NodeID时,可以通过SubID进行进一步选择。NodeID和SubID各占1个字节,其中,NodeID取值范围为1-254(0和255为系统保留,0表示此物联网设备本身,255表示所有节点既广播)。特别地,SubID采用位掩码方式,因此支持单选和多选。在规则引擎的设定或控制消息中,节点选择/匹配的算法如下:首先匹配NodeID,包括两种情况:目标NodeID与被选传感器和执行器的NodeID一致(如:目标NodeID为8,则只会选中NodeID为8的传感器和执行器),或者目标NodeID为255,既广播,则所有传感器和执行器都会被选中;其次匹配SubID,此步骤是可选的,只有当规则引擎的设定或控制消息指定了目标SubID(非0)才进行。如果目标SubID>0,则计算目标SubID与被选传感器或执行器SubID的位与(C语言的“&”操作),只有当位与为“真”时选中该传感器或执行器。
如果一条规则只设定了定时器(M)而没有设定触发条件,则此规则被称为“定时器驱动的规则”,既表示在规定的时间,执行动作(A)或切换场景(S)。
如果一条规则包含触发条件,则无论是否设定了定时器(M),此规则都被称为“条件驱动的规则”,既表示在满足规定的条件、且在规定的时间(如果有),执行执行动作(A)或切换场景(S)。触发条件可以是一个或多个,多个条件之间通过“or”或者“and”条件连接符表明逻辑关系。
定时器驱动的规则由定时器实例作为触发源:扫描所有规则(R)中有引用的定时器运行实例,如果有定时器触发,且触发间隔符合设定,则触发该规则。
条件驱动的规则“数据接口”作为触发源:(1)数据接口接收内部和外部传感器数据,以及统计数据(视为一类特殊的“传感器”);(2)如果数据发生变化,则依次扫描与改数据项关联的数据改变句柄,找到对应的规则对象;(3)判断规则中的条件,如果条件全部满足,且触发间隔符合设定,则触发该规则。
规则触发的具体操作包括:(1)根据规则属性切换场景,场景中包括修改系统级开关以及执行动作;或者(2)根据规则属性直接执行动作。
执行动作的具体操作包括:(1)根据动作标识(A_uid)查找动作索引,判断动作的命令列表是否已加载,如果已加载,则执行动作;(2)如果命令列表未加载,则判断命令列表缓冲区是否已满,如果未满,则加载命令列表,并执行;(3)如果命令列表缓冲区已满,则将动作索引中总执行次数(calledTimes)最小的命令列表空间标记为未使用,加载将要执行动作的命令列表到此空间,并标记为已使用,然后执行。(4)执行后该动作的总执行次数(calledTimes)增加1。
“SMART”规则引擎启动时加载模型数据,其中场景、定时器、规则,以及动作和统计报表的索引全部加载到内存中,动作的命令列表和统计数据项则按需动态加载。
一个场景(S)占用8字节、一个定时器(M)占用8字节、一个动作占用512字节且最多包括16条命令、一条规则占用32字节、一个统计报表包括当前数据和历史数据,最大占用512字节,具体数据结构见表2:“SMART”模型的对象数据结构。
“SMART”引擎标准配置支持32个场景、16个定时器、32个动作(每个动作可包括16条命令)、32组规则以及32个统计报表,此配置下需要的FLASH存储不到34K,内存占用不超过5K。
“SMART”引擎支持根据实际需要增加或减少模型规模,以更有效地利用物联网设备的资源。例如,如果规则、动作和统计报表数量减少到8个,则需要的FLASH和内存将分别降低到9K和3K以内,此配置适用于微型智能物联网设备。而对于非常复杂的规则需求,根据数据结构定义“SMART”引擎可无缝扩展到最大256个规则、动作、统计报表、场景等,所需FLASH和内存分别不超过268K和24K。
物联网设备通过“SMART”规则引擎的“数据接口”向规则引擎传递数据,数据包括但不限于物联网设备的内置传感器数据和内置执行器数据,以及通过物联网设备通讯模块接收到的外部传感器和外部执行器数据。
“SMART”规则引擎通过“命令接口”指示物联网设备执行有关操作,操作对象包括但不限于物联网设备内置执行器,以及通过物联网设备通讯模块控制的外部执行器。
所述内置和外部传感器包括但不限于温湿度、亮度、人体红外、噪声、压力、震动、PM2.5、PM10、二氧化碳、甲醛、TVOC、烟雾、电表、水表等;所述内置和外部执行器包括但不限于灯光控制、窗帘控制、空调控制、风扇控制、新风系统控制、门禁控制、电源开关、阀门等。所述物联网通讯模块包括但不限于Wi-Fi、RF2.4、RF433、蓝牙、ZigBee、LoRa、NB-IoT等。
“SMART”规则引擎的配置接口允许对“SMART”对象进行配置,配置操作包括查询、新增、修改、删除;接口格式包括但不限于JSON、串口协议、二进制数据包(与“SMART”对象数据结构对应)等。规则引擎如果收到模型“配置”消息,则进行模型数据更新和保存,并更新(包括增加、修改和删除)定时器实例和数据改变回调句柄。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
Claims (10)
1.一种超轻量嵌入式物联网规则引擎的设计架构,其特征在于,所述规则引擎包括:场景、定时器、动作、规则和统计报表五类对象;其中,所述场景对应某个特定的用户上下文环境,在此环境下,相关环境参数需要达到设定值,或者说需要控制相关设备对环境参数进行调节;所述定时器用于定时控制,可以设定单次触发或者周期触发的定时器,周期触发支持设置结束时间;所述动作是对一个或多个节点控制消息的集合;所述规则将场景、定时器和动作关联在一起,并可以指定触发条件;规则定义了什么时间、在什么情况下,做什么动作;规则的属性中,场景和动作二选一;而定时器和触发条件至少需要一个;所述统计报表用来设定对特定的传感器数据、执行器状态以及规则执行情况进行数据统计,统计报表的数据不仅可用于分析展现,而且可以作为规则的触发条件。
2.如权利要求1所述的超轻量嵌入式物联网规则引擎的设计架构,其特征在于,规则引擎中与本物联网设备关联的所有传感器和执行器,无论内置的还是外部的,都用一个节点ID标识;对于需要规则引擎管理的传感器和执行器,NodeID是必须的,此外,还可以给分配一个可选的子节点ID;同一类型的节点,可以使用独立的NodeID、也可以共享相同的NodeID;传感器或执行器共享相同的NodeID时,可以通过SubID进行进一步选择;NodeID和SubID各占1个字节,其中,NodeID取值范围为1-254;SubID采用位掩码方式,因此支持单选和多选;在规则引擎的设定或控制消息中,节点选择/匹配的算法如下:首先匹配NodeID,包括两种情况:目标NodeID与被选传感器和执行器的NodeID一致,或者目标NodeID为255,既广播,则所有传感器和执行器都会被选中;其次匹配SubID,此步骤是可选的,只有当规则引擎的设定或控制消息指定了目标SubID才进行;如果目标SubID>0,则计算目标SubID与被选传感器或执行器SubID的位与,只有当位与为“真”时选中该传感器或执行器。
3.如权利要求1所述的超轻量嵌入式物联网规则引擎的设计架构,其特征在于,如果一条规则只设定了定时器而没有设定触发条件,则此规则被称为“定时器驱动的规则”,既表示在规定的时间,执行动作或切换场景;如果一条规则包含触发条件,则无论是否设定了定时器,此规则都被称为“条件驱动的规则”,既表示在满足规定的条件、且在规定的时间,执行执行动作或切换场景;触发条件可以是一个或多个,多个条件之间通过“or”或者“and”条件连接符表明逻辑关系。
4.如权利要求3所述的超轻量嵌入式物联网规则引擎的设计架构,其特征在于,定时器驱动的规则由定时器实例作为触发源:扫描所有规则中有引用的定时器运行实例,如果有定时器触发,且触发间隔符合设定,则触发该规则;条件驱动的规则“数据接口”作为触发源:(1)数据接口接收内部和外部传感器数据,以及统计数据;(2)如果数据发生变化,则依次扫描与改数据项关联的数据改变句柄,找到对应的规则对象;(3)判断规则中的条件,如果条件全部满足,且触发间隔符合设定,则触发该规则。
5.如权利要求3所述的超轻量嵌入式物联网规则引擎的设计架构,其特征在于,所述规则触发的具体操作包括:(1)根据规则属性切换场景,场景中包括修改系统级开关以及执行动作;或者(2)根据规则属性直接执行动作。
6.如权利要求5所述的超轻量嵌入式物联网规则引擎的设计架构,其特征在于,所述执行动作的具体操作包括:(1)根据动作标识查找动作索引,判断动作的命令列表是否已加载,如果已加载,则执行动作;(2)如果命令列表未加载,则判断命令列表缓冲区是否已满,如果未满,则加载命令列表,并执行;(3)如果命令列表缓冲区已满,则将动作索引中总执行次数最小的命令列表空间标记为未使用,加载将要执行动作的命令列表到此空间,并标记为已使用,然后执行;(4)执行后该动作的总执行次数增加1。
7.如权利要求1所述的超轻量嵌入式物联网规则引擎的设计架构,其特征在于,所述规则引擎启动时加载模型数据,其中场景、定时器、规则,以及动作和统计报表的索引全部加载到内存中,动作的命令列表和统计数据项则按需动态加载;
一个场景占用8字节、一个定时器占用8字节、一个动作占用512字节且最多包括16条命令、一条规则占用32字节、一个统计报表包括当前数据和历史数据,最大占用512字节;
所述规则引擎标准配置支持32个场景、16个定时器、32个动作、32组规则以及32个统计报表,此配置下需要的FLASH存储不到34K,内存占用不超过5K;
所述规则引擎支持根据实际需要增加或减少模型规模,以更有效地利用物联网设备的资源。
8.如权利要求1所述的超轻量嵌入式物联网规则引擎的设计架构,其特征在于,所述规则引擎的配置接口允许对对象进行配置,配置操作包括查询、新增、修改和删除;接口格式包括JSON、串口协议和二进制数据包;所述规则引擎如果收到模型“配置”消息,则进行模型数据更新和保存,并更新定时器实例和数据改变回调句柄。
9.如权利要求1所述的超轻量嵌入式物联网规则引擎的设计架构,其特征在于,物联网设备通过规则引擎的“数据接口”向规则引擎传递数据,数据包括但不限于物联网设备的内置传感器数据和内置执行器数据,以及通过物联网设备通讯模块接收到的外部传感器和外部执行器数据;规则引擎通过“命令接口”指示物联网设备执行有关操作,操作对象包括物联网设备内置执行器,以及通过物联网设备通讯模块控制的外部执行器。
10.如权利要求9所述的超轻量嵌入式物联网规则引擎的设计架构,其特征在于,所述内置和外部传感器包括但不限于温湿度、亮度、人体红外、噪声、压力、震动、PM2.5、PM10、二氧化碳、甲醛、TVOC、烟雾、电表和水表;所述内置和外部执行器包括但不限于灯光控制、窗帘控制、空调控制、风扇控制、新风系统控制、门禁控制、电源开关、阀门等;所述物联网通讯模块包括Wi-Fi、RF2.4、RF433、蓝牙、ZigBee、LoRa和NB-IoT。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011444192.7A CN112579053A (zh) | 2020-12-11 | 2020-12-11 | 超轻量嵌入式物联网规则引擎的设计架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011444192.7A CN112579053A (zh) | 2020-12-11 | 2020-12-11 | 超轻量嵌入式物联网规则引擎的设计架构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112579053A true CN112579053A (zh) | 2021-03-30 |
Family
ID=75130843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011444192.7A Pending CN112579053A (zh) | 2020-12-11 | 2020-12-11 | 超轻量嵌入式物联网规则引擎的设计架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112579053A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114915642A (zh) * | 2022-05-09 | 2022-08-16 | 安徽农业大学 | 基于云平台的多用户多终端物联网感控系统 |
WO2023280028A1 (zh) * | 2021-07-08 | 2023-01-12 | 杭州萤石软件有限公司 | 物联网设备的联动控制方法、终端、网关设备及系统 |
-
2020
- 2020-12-11 CN CN202011444192.7A patent/CN112579053A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023280028A1 (zh) * | 2021-07-08 | 2023-01-12 | 杭州萤石软件有限公司 | 物联网设备的联动控制方法、终端、网关设备及系统 |
CN114915642A (zh) * | 2022-05-09 | 2022-08-16 | 安徽农业大学 | 基于云平台的多用户多终端物联网感控系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110493270B (zh) | 物联网设备接入融合控制方法及其装置 | |
US11782590B2 (en) | Scene-operation method, electronic device, and non-transitory computer readable medium | |
CN112579053A (zh) | 超轻量嵌入式物联网规则引擎的设计架构 | |
CN110531633B (zh) | 基于智能家居操作系统的协同控制方法及装置、存储介质 | |
CN109753034B (zh) | 一种控制方法、装置、电子设备及存储介质 | |
CN105573135A (zh) | 一种智能家电的控制方法及装置 | |
CN108234562B (zh) | 一种设备控制方法、控制设备和受控设备 | |
CN110113232A (zh) | 设备控制方法、装置、系统、电子设备及存储介质 | |
CN111654844A (zh) | 设备配对方法以及相关设备、装置 | |
CN112327732A (zh) | 智慧建筑内微边缘服务控制方法、系统和电子设备 | |
CN115793481A (zh) | 设备控制方法、装置、电子设备及存储介质 | |
CN110296514B (zh) | 空调的智能化控制方法、装置及空调 | |
CN113986349A (zh) | 数据处理方法、装置、计算机可读存储介质和计算机设备 | |
CN113031452A (zh) | 一种批量处理智能家居设备控制指令的方法和系统 | |
CN114385276A (zh) | 信息处理方法、装置和存储介质 | |
Rehman et al. | IoT-enabled smart socket | |
CN116996546A (zh) | 物联网设备的控制方法、装置、设备及存储介质 | |
CN108700325A (zh) | 一种基于物联网智慧控制空调的交互管理系统 | |
CN113777939B (zh) | 一种智能家居场景设置方法及系统 | |
CN106102274B (zh) | 一种路灯控制系统 | |
CN205158005U (zh) | 智能家居系统的智能开关 | |
CN111736551B (zh) | 一种集中控制装置、电器系统及其集中控制方法 | |
CN114035442B (zh) | 一种智能家电语音联动系统及使用方法 | |
JP2001014386A (ja) | 設備管理システム | |
CN115616931B (zh) | 控制方法、控制装置、控制器、控制系统和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |