ThingsBoard作为领先的开源物联网平台之一,提供了强大的规则引擎,其中的规则链通过六大核心模块节点——筛选器、属性集、变换、动作、外部、流(Flow)——实现了数据的精准处理与自动响应。本文将逐一解析这些节点,帮助您掌握构建复杂物联网应用的技能。
1 六大核心模块节点作用解析
1.1 筛选器(Filter):
功能:筛选器节点用于根据特定条件筛选消息。它可以检查消息的内容、设备的属性或元数据,并决定是否将消息传递到下一节点。
应用场景:例如,您可以使用筛选器节点来过滤掉不符合条件的遥测数据,或者只允许特定设备的消息通过。
> 更通俗的表达
- 功能:就像门卫检查来访者的身份证件,筛选器节点根据预设的条件检查每条消息,只有符合条件的消息才能通过。
- 应用场景:例如,如果温度传感器发送的数据低于20度,这条消息就被筛选器拦截下来,不会继续处理。
- 比方:想象你在公司门口设了一个门卫,只有带员工证的人才能进去。筛选器就是门卫,它检查每个人是否有员工证。
1.2 属性集(Enrichment):
- 功能:属性集节点用于从设备或其他来源获取附加信息,并将这些信息添加到消息中。这些附加信息可能包括设备的静态属性、元数据或相关的外部数据。
- 应用场景:例如,您可以从数据库中获取设备的位置信息并将其添加到传感器数据中,以便后续处理。
> 更通俗的表达
- 功能:像是在咖啡上加奶油,属性集节点会为每条消息添加更多的信息,让它更有“味道”或更有用。
- 应用场景:例如,一个温度传感器发送的数据中只有温度值,但通过属性集节点,你可以加上传感器的地理位置信息。
- 比方:你买了一杯咖啡(传感器数据),然后加了奶和糖(额外的属性信息),让它更符合你的口味。
1.3 变换(Transformation):
- 功能:变换节点用于修改或转换消息的内容。这可以包括改变数据的格式、进行数学计算、或将消息转换为另一种结构。
- 应用场景:例如,您可以使用变换节点来将原始传感器数据转换为标准单位,或者将消息内容从JSON格式转换为字符串格式。
> 更通俗的表达
- 功能:就像裁缝修改衣服的尺寸,变换节点改变消息的格式或内容,使其符合下游处理的要求。
- 应用场景:例如,传感器发送的数据是华氏度,但你的系统需要摄氏度,因此变换节点会将华氏度转换为摄氏度。
- 比方:你有一件衣服(数据),但它不合身(格式不对),所以你去找裁缝改一下(变换节点),让它更适合你穿。
1.4 动作(Action):
- 功能:动作节点用于执行某种操作或触发某种行为。常见的动作包括保存数据、发送通知、触发告警、执行RPC命令等。
- 应用场景:例如,您可以在温度超过某个阈值时触发一个告警,或者将处理后的数据保存到数据库中。
> 更通俗的表达
- 功能:像按下遥控器按钮,动作节点会执行某个预设的操作,比如保存数据、触发警报、发送通知等。
- 应用场景:例如,当温度超过30度时,动作节点可以触发一个警报并通知相关人员。
- 比方:你看到天气预报说会下雨,于是按下遥控器打开窗户。动作节点就是那个遥控器按钮,它能触发相应的动作。
1.5 外部(External):
- 功能:外部节点用于与系统外部的服务或系统交互。它可以向外部系统发送数据、调用外部API、或将消息转发到外部平台。
- 应用场景:例如,您可以将数据推送到第三方的云服务平台,或者通过HTTP API将数据发送到另一个系统进行进一步处理。
> 更通俗的表达
- 功能:就像打电话给外部的朋友,外部节点可以与外部系统或服务进行沟通,发送数据或请求操作。
- 应用场景:例如,系统可以通过外部节点将处理后的数据发送到云端或第三方平台。
- 比方:你完成了一份报告(处理后的数据),然后打电话(外部节点)给你的朋友,让他帮你发到老板那里(外部平台)。
1.6 流(Flow):
- 功能:流节点用于控制消息在规则链中的流动。这些节点可以控制消息的路由、分支、循环,甚至终止消息的流动。
- 应用场景:例如,您可以使用流节点来将消息根据不同条件路由到不同的处理路径,或者在某个条件满足时停止消息的进一步处理。
> 更通俗的表达
- 功能:像交通信号灯一样,流节点控制消息在规则链中的流动方向,决定消息是继续前进、分流还是停止。
- 应用场景:例如,温度数据可能会根据不同的值被路由到不同的处理路径:低温走一条路径,高温走另一条路径。
- 比方:你开车在十字路口,红绿灯(流节点)会告诉你是继续直行、转弯,还是停下等待。
2 应用场景示例
2.1 智能农业监控系统
目标:根据土壤湿度和天气预报自动调节灌溉系统。
- 筛选器节点:监测土壤湿度传感器的数据,只有当土壤湿度低于40%时,才触发后续操作。
- 属性集节点:获取天气预报信息,检查未来24小时是否有降雨。
- 变换节点:根据当前土壤湿度、作物类型和天气预报,计算所需的灌溉量。
- 动作节点:控制灌溉系统启动或暂停,并将灌溉计划发送至农场管理系统。
- 外部节点:与天气预报API交互,定期获取最新的天气信息。
- 流控制节点:根据作物的生长阶段调整灌溉频率和时间。
2.2 智能办公楼管理系统
目标:根据办公楼内的环境条件和人员活动自动调节空调和照明系统。
- 筛选器节点:检测办公室内的温度和二氧化碳浓度,只有当温度超过25℃或二氧化碳浓度高于1000 ppm时,才继续处理。
- 属性集节点:记录每个房间当前的占用情况,例如人员数量和最近的使用时间。
- 变换节点:根据房间的占用率和环境条件计算所需的空调功率和通风量。
- 动作节点:控制空调系统调节温度,并根据计算结果开启或关闭通风设备。同时通知楼宇管理人员异常情况(如二氧化碳浓度过高)。
- 外部节点:与楼宇自动化系统(BAS)交互,协调空调和照明系统的能耗,以优化整体能源使用。
- 流控制节点:根据工作日或周末(或者白天与夜晚)调整空调和照明系统的运行模式。
2.3 智能停车场管理系统
目标:根据停车场的使用情况和预约信息自动管理车位。
- 筛选器节点:检测停车场入口处的车牌识别摄像头数据,过滤出已预约车辆的信息。
- 属性集节点:从预约系统获取车辆的预订信息,包括预订时间、车位号等。
- 变换节点:根据当前停车场的使用情况和预约信息,分配合适的车位,并计算停车费用。
- 动作节点:显示车位分配信息在停车场入口屏幕上,并发送停车位信息到驾驶员的手机上。
- 外部节点:与城市交通管理系统交互,提供实时停车位使用信息,并接收交通流量预测数据,以调整停车场的管理策略。
- 流控制节点:根据停车场的使用率和交通流量预测,动态调整车位分配和费用策略。
2.4 智能物流仓储系统
目标:根据仓库内温度、湿度和物品的特性自动调节存储条件。
- 筛选器节点:监测仓库内温度和湿度传感器数据,当温度高于30℃或湿度高于70%时触发后续操作。
- 属性集节点:获取存储物品的敏感度信息,如某些物品对温度或湿度的特定要求。
- 变换节点:根据当前环境条件和物品特性,计算所需的空调或除湿机功率。
- 动作节点:控制空调系统降温或除湿机降低湿度,并通知仓库管理员可能存在的风险(如温度过高可能损坏物品)。
- 外部节点:与供应链管理系统交互,获取入库物品的计划信息,并根据存储条件的变化调整物品的存放位置。
- 流控制节点:根据仓库的区域和时间(如白天或夜间)调整空调和除湿系统的工作模式,以节省能源。