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输出多个内容是中间用逗号隔开就好…...
高精度光照检测
光线检测仪,kotlin开发,调用手机感光模块检测室内外光照强度,用途多多,我主要用途孩子写作业检测光照保护视力。 食用方法∶打开即测,速度快,无广告,手机平视即可,无须直视光线。 买…...
为什么你的DeepSeek微调loss震荡不止?(Meta/DeepSeek联合团队未公开的梯度裁剪+LoRA初始化双校准协议)
更多请点击: https://codechina.net 第一章:DeepSeek微调loss震荡的根本归因剖析 DeepSeek系列模型在微调过程中频繁出现loss剧烈震荡现象,其本质并非单一因素所致,而是数据、优化器、梯度动态与模型结构四者耦合失稳的系统性表现…...
告别KITTI!用TartanAir数据集在Unreal Engine仿真环境里“虐”你的VSLAM算法(附保姆级下载与使用指南)
用TartanAir数据集在Unreal Engine中打造VSLAM算法的"极限考场"当你的视觉SLAM算法在KITTI数据集上跑出98%的准确率时,是否意味着它已经准备好应对真实世界的复杂场景?现实往往会给乐观的开发者当头一棒——实验室里的"优等生"在遇到…...
前馈补偿技术:用数字预失真驯服放大器非线性失真
1. 项目概述:用前馈补偿驯服放大器失真在音频发烧友和硬件工程师的圈子里,追求“高保真”几乎是一种信仰。我们总希望从扬声器里传出的声音,是录音现场或音乐制作人意图的完美复刻,纤毫毕现,不带一丝杂质。然而&#x…...
鸿蒙HarmonyOS 5与Unity跨运行时通信实战指南
1. 这不是“调个API”那么简单:为什么鸿蒙Unity通信总在临门一脚卡住我第一次把Unity打包的AR模块塞进HarmonyOS 5 App里时,信心满满——毕竟文档里写着“支持JS/ArkTS调用Native能力”,Unity也标榜“跨平台通用”。结果呢?App一启…...
AI算法工程师如何进行数据预处理?这5个步骤让你的数据更优质
在AI模型开发与测试的全流程中,数据质量直接决定了最终模型的效果上限——哪怕是最先进的大语言模型,用劣质数据训练出来也只能输出劣质结果。对于软件测试从业者来说,不管是参与AI模型的功能测试、性能测试,还是负责测试数据集的…...
终极艾尔登法环存档迁移指南:3分钟学会角色无损转移
终极艾尔登法环存档迁移指南:3分钟学会角色无损转移 【免费下载链接】EldenRingSaveCopier 项目地址: https://gitcode.com/gh_mirrors/el/EldenRingSaveCopier 还在为《艾尔登法环》存档迁移而烦恼吗?当游戏版本更新后,你辛辛苦苦培…...
Unity开发者速查手册:Sora 2模型权重量化适配指南(INT8精度损失<0.3%,已验证于RTX 4090/Apple M3 Ultra)
更多请点击: https://codechina.net 第一章:Sora 2与Unity整合概述 Sora 2 是 OpenAI 推出的下一代视频生成模型,具备高保真时序建模与物理感知能力;而 Unity 作为主流实时3D开发引擎,广泛用于游戏、仿真与数字孪生场…...
浏览器端音频解密技术:如何让加密音乐在本地重获新生?
浏览器端音频解密技术:如何让加密音乐在本地重获新生? 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目…...
让B站缓存视频重获自由:一个简单实用的格式转换工具
让B站缓存视频重获自由:一个简单实用的格式转换工具 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 还记得那个周末的下午吗…...
