ThingsBoard规则链节点:GPS Geofencing Events节点详解
引言
1. GPS Geofencing Events 节点简介
2. 节点配置
3. 使用场景
3.1 物流跟踪
3.2 资产管理
3.3 安全监控
3.4 农业监测
4. 实际项目中的应用
4.1 项目背景
4.2 项目需求
4.3 实现步骤
5. 总结
引言
GPS Geofencing Events 是 ThingsBoard 规则链中的一个重要节点,用于处理基于地理位置的事件。通过这个节点,可以定义地理围栏(Geofence),并检测设备是否进入或离开这些围栏区域。
ThingsBoard从入门到实战课程,深入透析底层原理,快速搭建自己的IOT平台_哔哩哔哩_bilibiliThingsBoard从入门到实战课程,深入透析底层原理,快速搭建自己的IOT平台共计33条视频,包括:1、ThingsBoard项目介绍、2、ThingsBoard前端Vue版本代码编译、3、ThingsBoard本地后端源码编译等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV1CH36egEDM/?spm_id_from=333.999.0.0
1. GPS Geofencing Events 节点简介
GPS Geofencing Events 节点的主要作用是根据设备的位置数据,判断设备是否进入或离开预定义的地理围栏区域,并触发相应的事件。这种功能在物流跟踪、资产管理、安全监控等领域非常有用。
2. 节点配置
- Geofences:定义一个或多个地理围栏区域。每个地理围栏由一个名称和一组多边形坐标组成。
- Event Types:选择需要触发的事件类型,如
ENTER
和LEAVE
。 - Device ID or Device Attribute:指定用于获取设备位置信息的设备ID或设备属性。
- Output Metadata:设置输出消息的元数据,以便后续节点使用。
3. 使用场景
GPS Geofencing Events 节点在多种场景下都非常有用,特别是在需要基于地理位置进行监控和管理时。以下是一些具体的应用场景:
3.1 物流跟踪
在物流行业中,可以通过地理围栏来监控货物的运输情况。例如:
- 当货车进入某个仓库区域时,触发入库事件。
- 当货车离开某个仓库区域时,触发出库事件。
{"geofences": [{"name": "Warehouse A","coordinates": [[37.7749, -122.4194],[37.7750, -122.4195],[37.7751, -122.4196],[37.7752, -122.4197]]}],"eventTypes": ["ENTER", "LEAVE"],"deviceId": "${device.id}","outputMetadata": {"geofenceName": "${geofence.name}","eventType": "${event.type}"}
}
3.2 资产管理
在资产管理中,可以通过地理围栏来监控重要资产的位置。例如:
- 当贵重设备被移动到未经授权的区域时,触发警报。
- 当设备从维修区域返回到正常工作区域时,记录维护完成事件。
{"geofences": [{"name": "Authorized Area","coordinates": [[37.7749, -122.4194],[37.7750, -122.4195],[37.7751, -122.4196],[37.7752, -122.4197]]},{"name": "Maintenance Area","coordinates": [[37.7755, -122.4198],[37.7756, -122.4199],[37.7757, -122.4200],[37.7758, -122.4201]]}],"eventTypes": ["ENTER", "LEAVE"],"deviceId": "${device.id}","outputMetadata": {"geofenceName": "${geofence.name}","eventType": "${event.type}"}
}
3.3 安全监控
在安全监控中,可以通过地理围栏来监控人员或车辆的活动。例如:
- 当有人进入禁区时,触发警报。
- 当有车辆离开停车场时,记录离场时间。
{"geofences": [{"name": "Restricted Area","coordinates": [[37.7749, -122.4194],[37.7750, -122.4195],[37.7751, -122.4196],[37.7752, -122.4197]]},{"name": "Parking Lot","coordinates": [[37.7755, -122.4198],[37.7756, -122.4199],[37.7757, -122.4200],[37.7758, -122.4201]]}],"eventTypes": ["ENTER", "LEAVE"],"deviceId": "${device.id}","outputMetadata": {"geofenceName": "${geofence.name}","eventType": "${event.type}"}
}
3.4 农业监测
在农业领域,可以通过地理围栏来监控牲畜的活动范围。例如:
- 当牲畜进入或离开特定区域时,记录其活动轨迹。
- 当牲畜离开放牧区域时,发送通知给农场主。
{"geofences": [{"name": "Grazing Area","coordinates": [[37.7749, -122.4194],[37.7750, -122.4195],[37.7751, -122.4196],[37.7752, -122.4197]]}],"eventTypes": ["ENTER", "LEAVE"],"deviceId": "${device.id}","outputMetadata": {"geofenceName": "${geofence.name}","eventType": "${event.type}"}
}
4. 实际项目中的应用
下面是一个实际项目中的例子,展示如何在智能物流系统中使用 GPS Geofencing Events 节点。
4.1 项目背景
假设我们正在开发一个智能物流系统,该系统需要实时监控货车的位置,并在货车进入或离开仓库区域时触发相应的事件。此外,还需要记录货车的进出时间,并发送通知给相关人员。
4.2 项目需求
- 监控货车的位置。
- 当货车进入或离开仓库区域时,触发相应事件。
- 记录货车的进出时间。
- 发送通知给相关人员。
4.3 实现步骤
- 定义地理围栏:
- 创建一个地理围栏,表示仓库区域。
{"name": "Warehouse A","coordinates": [[37.7749, -122.4194],[37.7750, -122.4195],[37.7751, -122.4196],[37.7752, -122.4197]]
}
-
创建规则链:
- 添加 GPS Geofencing Events 节点,配置地理围栏和事件类型。
- 添加后续节点,处理触发的事件,如记录时间和发送通知。
-
配置规则链:
- 配置 GPS Geofencing Events 节点,设置地理围栏和事件类型。
{"geofences": [{"name": "Warehouse A","coordinates": [[37.7749, -122.4194],[37.7750, -122.4195],[37.7751, -122.4196],[37.7752, -122.4197]]}],"eventTypes": ["ENTER", "LEAVE"],"deviceId": "${device.id}","outputMetadata": {"geofenceName": "${geofence.name}","eventType": "${event.type}"}
}
- 处理事件:
- 当货车进入仓库区域时,记录进入时间,并发送通知给相关人员。
- 当货车离开仓库区域时,记录离开时间,并发送通知给相关人员。
// 进入仓库
{"type": "SEND_EMAIL","to": "logistics@company.com","subject": "Truck Entered Warehouse A","body": "Truck with ID ${device.id} has entered Warehouse A at ${ts}."
}// 离开仓库
{"type": "SEND_EMAIL","to": "logistics@company.com","subject": "Truck Left Warehouse A","body": "Truck with ID ${device.id} has left Warehouse A at ${ts}."
}
-
前端界面:
- 开发一个前端界面,显示货车的实时位置和历史轨迹。
- 提供一个界面,让用户能够查看和管理地理围栏。
-
数据查询:
- 使用 ThingsBoard 的 REST API 或 GraphQL 查询,获取货车的历史轨迹和进出记录。
GET /api/plugins/telemetry/DEVICE/{deviceId}/values/timeseries?keys=latitude,longitude&startTs={startTimestamp}&endTs={endTimestamp}
5. 总结
GPS Geofencing Events 节点在 ThingsBoard 规则链中是一个非常强大的工具,可以帮助你基于地理位置进行监控和管理。通过合理地使用这个节点,你可以更好地管理和自动化系统中的各种操作。无论是在物流跟踪、资产管理、安全监控还是农业监测等方面,GPS Geofencing Events 节点都能发挥重要作用。
相关文章:

ThingsBoard规则链节点:GPS Geofencing Events节点详解
引言 1. GPS Geofencing Events 节点简介 2. 节点配置 3. 使用场景 3.1 物流跟踪 3.2 资产管理 3.3 安全监控 3.4 农业监测 4. 实际项目中的应用 4.1 项目背景 4.2 项目需求 4.3 实现步骤 5. 总结 引言 GPS Geofencing Events 是 ThingsBoard 规则链中的一个重要节…...

Jmeter基础篇(19)JSR223预处理器
前言 JSR223预处理器是Apache JMeter中的一个组件,它允许用户使用任何支持Java Scripting API (JSR 223) 的脚本语言来执行预处理任务。这个功能非常强大,因为它让测试人员能够利用如Groovy、JavaScript(Nashorn引擎)、BeanShell…...
通过js控制css变量
在JavaScript中,你可以通过操作CSS变量(也称为自定义属性)来动态改变样式。CSS变量在CSS中使用 – 前缀定义,例如 --main-color: red;。在JavaScript中,你可以使用 document.documentElement.style.setProperty 方法来…...

Docker:容器化和虚拟化
虚拟化 虚拟化是一种资源管理技术,它将计算机的各种实体资源(如CPU、内存、磁盘空间、网络适配器等)予以抽象、转换后呈现出来,并可供分割、组合为一个或多个电脑配置环境。这些资源的新虚拟部分是不受现有资源的架设方式、地域或…...

OpenSSL
OpenSSL 概述 OpenSSL 是一个开源的、安全传输协议实现工具,广泛应用于数据加密与解密、证书生成与管理以及其他安全性相关的任务。在现代网络安全中,OpenSSL 被用于构建和维护 SSL/TLS 通信,确保数据在传输过程中的机密性和完整性。 简单来…...
CSS 常见选择器
1. 基础选择器 元素选择器 选择所有指定类型的 HTML 元素。 p {color: blue; }选择所有 p 标签,并将文字颜色设为蓝色。 类选择器 选择带有特定类名的元素,类名前加 .。 .container {margin: 20px; }选择类名为 container 的所有元素。 ID 选择器 选…...

Linux使用Dockerfile部署Tomcat以及jdk
资源准备 首先提供本教程所有资源包。 当然也可以根据自己需求去官网下载。 链接:百度网盘 请输入提取码 提取码:f31y #我们开始吧 首先我们需要一台linux操作系统的机器,当然windows也是可以的,本系列教程是基于Linux的&#…...

LC20. 有效的括号
用来熟悉一下栈的应用之括号匹配 题目链接 下面是大致思路 1.初始化:创建一个空栈,用于存储左括号。(LC这题不用,自己写完整的需要) 2.遍历字符串:从左到右依次扫描字符串中的每个字符。 3.处理左括号:如果是左括号,将其压入栈中。 4.处理右…...

基于springboot企业微信SCRM管理系统源码带本地搭建教程
系统是前后端分离的架构,前端使用Vue2,后端使用SpringBoot2。 技术框架:SpringBoot2.0.0 Mybatis1.3.2 Shiro swagger-ui jpa lombok Vue2 Mysql5.7 运行环境:jdk8 IntelliJ IDEA maven 宝塔面板 系统与功能介绍 基…...

【MTMSA】不确定缺失模态下基于情态翻译的多模态情感分析
MTMSA是基于TATE改进的,大致框架都和他一样,区别在于MTMSA没有提到tag,并且在多头注意力的部分进行了改进,也就是文中模态翻译模块,此外还加了两个损失函数。在TATE中有一章是不同设置的影响,里面有多个证明…...
【php常用公共函数】php获取指定时间段中有那几年并输出年份的起始时间和结束时间
php获取指定时间段中有那几年并输出年份的起始时间和结束时间 实现思路实现代码输出结果 实现思路 解析输入的时间:将输入的时间字符串转换为DateTime对象。计算年份范围:从开始年份到结束年份,生成一个包含所有年份的数组。输出年份的起始和…...
CTF-PWN: 什么是_IO_FILE?
重要概念:fopen()返回的是一个结构体的指针 _IO_FILE 结构体在什么时候被创建? _IO_FILE 结构体的实例是在程序使用标准 I/O 函数(如 fopen、fclose、fread、fwrite 等)时创建和管理的。这个结构体实际上是 GNU C Library (glibc) 用于处理…...

前端八股文第二篇
11.事件循环 事件循环(Event Loop)是 JavaScript 运行时中的一种机制,用于处理异步操作和事件驱动的编程。在浏览器环境中,事件循环是指浏览器通过事件队列(Event Queue)来管理和调度异步任务的执行顺序。…...

springboot汽车保修服务管理系统-计算机毕业设计源码00052
摘 要 随着汽车数量的不断增加和汽车保修服务需求的日益增长,建立一套高效的汽车保修服务管理系统变得至关重要。基于Spring Boot框架的汽车保修服务管理系统旨在整合汽车保修流程,简化管理流程,提高服务质量和用户体验未来,我们将…...

分布式架构搭建博客网站
目录 运行环境基础配置需求准备工作配置静态ip修改主机名及host映射开启防火墙时间同步配置免密ssh登录 环境搭建Server-Web端安装LNMP环境软件Server-NFS-DNS端上传博客软件Server-NFS-DNS端设置NFS共享Server-Web设置挂载远程共享目录nginx设置在数据库中创建数据库和用户重启…...

python-opencv给图片或视频去水印
文章目录 引言inpaint函数的使用方法鼠标事件回调函数cv2.setMouseCallback介绍去水印步骤实现代码 引言 本文主要基于cv2.inpaint函数实现图片的水印去除。 inpaint函数基于图像修复算法,通过对缺陷区域周围像素的分析和插值,生成合适的像素值来填充缺…...

免费送源码:Java+ssm+Springboot Springboot手办定制销售系统 计算机毕业设计原创定制
Springboot手办定制销售系统 摘 要 随着人们生活水平的提高和互联网的发展,人们消费思想和消费方式的逐渐改变,使得消费者开始追求自身品味和个性。手办定制就是在这种条件下应运而生。手办定制是基于客户需求来定制产品,满足客户对其功能、结…...
卡夫卡的使用
关于消息队列的使用 一、消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveM…...

mac|maven项目在idea中连接redis
安装maven brew install maven idea-setting导入redis插件 idea新建maven项目 构建系统选择maven 项目右侧数据库图标导入redis 新建一个数据库,名称必须为数字,测试一下是否可以连接,连接成功后选择确定 pom.xml导入redis <depende…...

Python基础学习------第一天
print("hello world") 1.括号和引号,必须使用的是英文 被双引号包围起来的称为字符串。 python注释:单行注释:1.井号# 2.多行注释 :""" """ print输出多个内容是中间用逗号隔开就好…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...

STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...

基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...

Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)
目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...