AI PLAY玩法更新持续收录
← 回到更新流

2026-09-29 · 原文发布日

n8n自动排定高尔夫球场分区灌溉计划

这个免费n8n模板面向球场养护场景:传感器网关按日POST球场坐标和各分区土壤湿度读数到Webhook,工作流抓取Open-Meteo逐小时预报,逐区计算土壤缺水量和蒸散调整后的需水量,降雨概率高则跳过;对5天内喷过农药的分区,用GPT-4o-mini从标签文字提取再进入间隔和距水缓冲区要求,受限分区灌溉时长清零。最后汇总成控制器可用的负载推送灌溉控制器API,被跳过的分区通过Telegram通知员工。

原文要点

原模板面向高尔夫球场灌溉:传感器网关每日向webhook POST球场经纬度和分区数组(含土壤湿度、分区类型、距上次施药天数、农药标签文字、距水体距离等);工作流从Open-Meteo拉逐小时预报(含ET0和降水概率),逐区计算土壤缺水量与蒸散调整后的需水量,降水概率高则跳过;对5天内施过药的分区,用GPT-4o-mini从标签文字提取再进入间隔(REI)小时数和距水缓冲区要求,受限分区灌溉时长清零;最后按分区类型排优先级汇总成控制器负载POST到灌溉控制器API,被跳过分区通过Telegram通知员工。外部API节点带3次重试、间隔2秒;AI提取仅对近5天施药分区触发。模板标注适配n8n 1.6x及以上。

这次做成什么

搭一条“传感器批次→天气校正→农药合规检查→灌溉计划下发”的每日流程。本站设计一个三分区虚构演练,分别命中正常灌溉、降雨跳过和农药受限三种分支。

准备什么

  • n8n 1.6x或更新版本的实例,能接收公网webhook
  • OpenAI API密钥,用于GPT-4o-mini标签提取节点
  • 灌溉控制器API地址及HTTP Header Auth凭据,演练时用mock端点
  • Telegram机器人token及目标群组ID(环境变量GROUNDS_CREW_TELEGRAM_CHAT_ID)
  • 能按日POST分区读数的传感器网关或等效数据源

具体怎么做

  1. 接通webhook与天气预报

    复制webhook触发节点的生产URL(路径/golf-zone-sensor-batch),配到传感器网关。演练时用curl手动POST材料2的测试负载。后续HTTP节点按负载里的course_lat、course_lon请求Open-Meteo逐小时预报,取ET0与降水概率字段;Open-Meteo免费无需密钥,也可换成场内气象站。

  2. 计算分区需水量

    用Split Out节点把zones数组拆成单项,逐项计算:土壤缺水量=目标湿度减当前湿度(默认目标greens 28%、fairways 22%、roughs 16%,可在节点里按草种调整),再乘分区面积与作物系数、结合ET0得到需水量;降水概率超过阈值时该区标记跳过、时长置零。

  3. 农药标签合规提取

    加IF节点筛出days_since_pesticide_app小于等于5的分区,仅这些项进入GPT-4o-mini Information Extractor,用材料1的schema从label_text提取rei_hours和buffer_ft;当前时间距施药时间小于REI,或分区距水体小于buffer_ft时判定受限,灌溉时长清零并记入compliance例外。

  4. 汇总下发与通知

    把各分区聚合回单个计划:按分区类型排优先级(如greens先于fairways),附总时长与合规例外列表,POST到控制器API(Header Auth)。若有被跳过或受限分区,Telegram节点向GROUNDS_CREW_TELEGRAM_CHAT_ID发送分区清单及原因。外部API节点保留3次重试、间隔2秒。

可直接复制的材料

农药标签提取schema提示词

本站独立编写;原模板用Information Extractor节点加GPT-4o-mini,可在schema里直接定义这两个字段。null的兜底策略需在原模板核对并按自家合规规则设定。

从下面的农药标签文字中提取两项合规参数,严格只输出JSON:{"rei_hours": 24, "buffer_ft": 50}
规则:rei_hours为标签规定的再进入间隔小时数,找不到则输出null;buffer_ft为标签要求的距水体(湖泊、溪流、池塘)最小缓冲距离英尺数,找不到则输出null;不要根据常识推测数值,只提取标签中明确写出的数字。
标签文字:{{$json.label_text}}

传感器批次测试负载

本站虚构演练数据,字段名与原模板列出的必需字段一致;控制器端点请用mock地址,勿对真实设备下发。

{
  "course_lat": 33.749,
  "course_lon": -84.388,
  "zones": [
    {"zone_id": "G3", "zone_type": "green", "area_sqm": 450, "soil_moisture_pct": 19, "crop_coefficient": 0.85, "days_since_pesticide_app": 9, "pesticide_applied_at": null, "pesticide_product": null, "label_text": null, "distance_to_water_ft": 300},
    {"zone_id": "F7", "zone_type": "fairway", "area_sqm": 5200, "soil_moisture_pct": 15, "crop_coefficient": 0.75, "days_since_pesticide_app": 12, "pesticide_applied_at": null, "pesticide_product": null, "label_text": null, "distance_to_water_ft": 180},
    {"zone_id": "R2", "zone_type": "rough", "area_sqm": 3800, "soil_moisture_pct": 11, "crop_coefficient": 0.65, "days_since_pesticide_app": 2, "pesticide_applied_at": "2026-09-27T06:30:00Z", "pesticide_product": "示例除草剂A", "label_text": "Do not enter treated area for 48 hours after application. Maintain a 75 ft buffer from lakes and streams.", "distance_to_water_ft": 60}
  ]
}

输入与输出示例

本站虚构演示,未真实请求Open-Meteo、OpenAI或控制器;分钟数为示意计算,不代表真实灌溉建议。

输入

2026-09-29 05:00手动POST上述负载;Open-Meteo预报当日降水概率70%、ET0 4.2毫米;R2分区施药后仅过47小时且距水体60英尺。

对应输出

示意输出:G3按缺水量与ET0算得灌溉14分钟正常排入;F7因降水概率超阈值跳过、时长0;R2标签提取得rei_hours 48、buffer_ft 75,当前仍处REI内且距水体小于缓冲,时长清零并列入compliance例外。控制器收到计划:[{"zone":"G3","minutes":14}],总时长14分钟;Telegram通知:F7因高降水概率跳过,R2因农药REI与水体缓冲受限。

做完检查这些

  • 负载缺任一必需字段时能被识别并拒绝,不会进入计算环节
  • 三个测试分区分别落入正常灌溉、降雨跳过、农药受限三种结果,互不串扰
  • 标签提取只在近5天施药分区上触发,其余分区不产生模型调用
  • 控制器负载含总时长与合规例外列表,受限分区时长确实为0
  • 存在跳过或受限分区时Telegram消息列出分区ID与具体原因

容易卡住的地方

  • 农药合规规则因地区和产品而异,标签提取失败时的默认行为必须由自家农艺与合规人员确认,不能默认放行
  • 目标湿度、作物系数、降水概率阈值是业务参数,原文默认值仅为起点,需按草种和当地规定校准
  • 原文称外部API节点带3次重试间隔2秒,但控制器不可用时仍需人工兜底流程
  • AI从标签文字抽数字存在误读风险,关键合规参数建议保留人工抽查机制
  • 灌溉分钟数取决于喷头流量等未在负载中的设备参数,本方案的时长计算仅为相对示意

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Schedule golf course irrigation with Open-Meteo, GPT-4o-mini, and Telegram
原作者
Swapnil Mandloi
原始发布日期
2026-09-29T04:24:22.994Z
来源
https://n8n.io/workflows/20114