当前位置: 首页 > news >正文

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账号。icon-default.png?t=O83Ahttps://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 实现步骤
  1. 定义地理围栏
    • 创建一个地理围栏,表示仓库区域。
{"name": "Warehouse A","coordinates": [[37.7749, -122.4194],[37.7750, -122.4195],[37.7751, -122.4196],[37.7752, -122.4197]]
}
  1. 创建规则链

    • 添加 GPS Geofencing Events 节点,配置地理围栏和事件类型。
    • 添加后续节点,处理触发的事件,如记录时间和发送通知。
  2. 配置规则链

    • 配置 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}"}
}
  1. 处理事件
    • 当货车进入仓库区域时,记录进入时间,并发送通知给相关人员。
    • 当货车离开仓库区域时,记录离开时间,并发送通知给相关人员。
// 进入仓库
{"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}."
}
  1. 前端界面

    • 开发一个前端界面,显示货车的实时位置和历史轨迹。
    • 提供一个界面,让用户能够查看和管理地理围栏。
  2. 数据查询

    • 使用 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 新建一个数据库&#xff0c;名称必须为数字&#xff0c;测试一下是否可以连接&#xff0c;连接成功后选择确定 pom.xml导入redis <depende…...

Python基础学习------第一天

print("hello world") 1.括号和引号&#xff0c;必须使用的是英文 被双引号包围起来的称为字符串。 python注释&#xff1a;单行注释&#xff1a;1.井号# 2.多行注释 &#xff1a;""" """ print输出多个内容是中间用逗号隔开就好…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!

本文介绍了一种名为AnomalyAny的创新框架&#xff0c;该方法利用Stable Diffusion的强大生成能力&#xff0c;仅需单个正常样本和文本描述&#xff0c;即可生成逼真且多样化的异常样本&#xff0c;有效解决了视觉异常检测中异常样本稀缺的难题&#xff0c;为工业质检、医疗影像…...

手动给中文分词和 直接用神经网络RNN做有什么区别

手动分词和基于神经网络&#xff08;如 RNN&#xff09;的自动分词在原理、实现方式和效果上有显著差异&#xff0c;以下是核心对比&#xff1a; 1. 实现原理对比 对比维度手动分词&#xff08;规则 / 词典驱动&#xff09;神经网络 RNN 分词&#xff08;数据驱动&#xff09…...

spring boot使用HttpServletResponse实现sse后端流式输出消息

1.以前只是看过SSE的相关文章&#xff0c;没有具体实践&#xff0c;这次接入AI大模型使用到了流式输出&#xff0c;涉及到给前端流式返回&#xff0c;所以记录一下。 2.resp要设置为text/event-stream resp.setContentType("text/event-stream"); resp.setCharacter…...