基于NWS警报、雷达图像和Home Assistant的AI生成天气分析
高级
这是一个Personal Productivity, AI Summarization领域的自动化工作流,包含 20 个节点。主要使用 Set, Code, Merge, Filter, Webhook 等节点。 基于NWS警报、雷达图像和Home Assistant的AI生成天气分析
前置要求
- •HTTP Webhook 端点(n8n 会自动生成)
- •可能需要目标 API 的认证凭证
- •OpenAI API Key
使用的节点 (20)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "kJfDku2rYe5QZdCO",
"meta": {
"instanceId": "99d73f46ce25facbb6a315b9049061902fa3a045876ce7aa2b16534051157fdd",
"templateCredsSetupCompleted": true
},
"name": "国家气象局 AI 分析",
"tags": [],
"nodes": [
{
"id": "a72e2042-fd53-46b4-b366-c522ef3044ab",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
-32,
16
],
"webhookId": "b74e13cd-ad2f-4ef1-8350-ff6b915e5485",
"parameters": {
"path": "b74e13cd-ad2f-4ef1-8350-ff6b915e5485",
"options": {},
"httpMethod": "POST",
"responseData": "allEntries",
"responseMode": "lastNode"
},
"typeVersion": 2
},
{
"id": "31d8e7b5-c47a-42af-abb0-02f9c2482201",
"name": "获取 NWS 警报",
"type": "n8n-nodes-base.httpRequest",
"position": [
192,
16
],
"parameters": {
"url": "https://api.weather.gov/alerts",
"options": {
"response": {
"response": {
"fullResponse": true,
"responseFormat": "json"
}
}
},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "status",
"value": "actual"
},
{
"name": "point",
"value": "={{ $json.body.latitude }},{{ $json.body.longitude }}"
}
]
}
},
"typeVersion": 4.2,
"alwaysOutputData": false
},
{
"id": "b1938edb-79be-4399-a815-dc90ffd1f240",
"name": "拆分输出",
"type": "n8n-nodes-base.splitOut",
"position": [
384,
16
],
"parameters": {
"options": {},
"fieldToSplitOut": "body.features"
},
"typeVersion": 1
},
{
"id": "bc5b7d6c-e2ad-43ab-aad1-d947799243e5",
"name": "移除不相关字段",
"type": "n8n-nodes-base.set",
"position": [
576,
16
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "c1e43be8-8b6c-4eb6-a344-251473f78dbf",
"name": "id",
"type": "string",
"value": "={{ $json.id }}"
},
{
"id": "26551b00-b7a6-43e6-85d2-23921e5b9c75",
"name": "properties.areaDesc",
"type": "string",
"value": "={{ $json.properties.areaDesc }}"
},
{
"id": "d4a19262-2c9e-4b45-bb79-9aa97da77e69",
"name": "properties.effective",
"type": "string",
"value": "={{ $json.properties.effective }}"
},
{
"id": "40fdf9b8-e594-405c-88cc-6e8a80fcfa60",
"name": "properties.expires",
"type": "string",
"value": "={{ $json.properties.expires }}"
},
{
"id": "715541f6-bcdf-4152-9427-dba110a4ee9e",
"name": "properties.severity",
"type": "string",
"value": "={{ $json.properties.severity }}"
},
{
"id": "b4851577-2d71-4ab6-bd8c-e6bf3db412f1",
"name": "properties.certainty",
"type": "string",
"value": "={{ $json.properties.certainty }}"
},
{
"id": "43aba50b-4e09-4e26-8ded-328c1ead3469",
"name": "properties.status",
"type": "string",
"value": "={{ $json.properties.status }}"
},
{
"id": "aab46fc5-e6c3-45c6-b12f-da4d11d82b25",
"name": "properties.headline",
"type": "string",
"value": "={{ $json.properties.headline }}"
},
{
"id": "ab826652-b359-4047-a1fa-4da9797a54d2",
"name": "properties.description",
"type": "string",
"value": "={{ $json.properties.description }}"
},
{
"id": "e0ffea55-c055-44d2-952f-5785e7c7d3c2",
"name": "properties.instruction",
"type": "string",
"value": "={{ $json.properties.instruction }}"
},
{
"id": "205b4373-515c-40d9-8d02-e2a5e3ddc7f4",
"name": "properties.parameters.NWSheadline",
"type": "array",
"value": "={{ $json.properties.parameters.NWSheadline }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "e0ce90cb-a447-4b5c-a3e7-6ea2ccfa4efe",
"name": "按严重性过滤",
"type": "n8n-nodes-base.filter",
"position": [
960,
16
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "7dde0a87-93ff-482b-9c53-d13a191f982b",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.properties.severity }}",
"rightValue": "Moderate"
},
{
"id": "28ed779f-d676-4619-bff4-12877b696415",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.properties.severity }}",
"rightValue": "Severe"
},
{
"id": "a28503c7-f468-4cbf-800e-edfa05d405ce",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.properties.severity }}",
"rightValue": "Extreme"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "e5272333-90a2-4bfa-969f-0cd6e2d50ad8",
"name": "按生效时间过滤",
"type": "n8n-nodes-base.filter",
"position": [
1152,
16
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "f99f25cf-d59b-4739-be7f-269ecb07f76f",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ new Date($json.properties.effective).getTime() <= new Date().getTime() }}",
"rightValue": "true"
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.2
},
{
"id": "4b05f80a-b851-4286-9618-86dd11600faa",
"name": "按状态过滤",
"type": "n8n-nodes-base.filter",
"position": [
768,
16
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "2b51bbc7-927f-40a5-b43b-d12e23b6ea5c",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.properties.status }}",
"rightValue": "Actual"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "fe639674-9bfe-4344-b4dc-3141f90cbf9f",
"name": "获取 Weather.gov 雷达循环图",
"type": "n8n-nodes-base.httpRequest",
"position": [
576,
608
],
"parameters": {
"url": "https://radar.weather.gov/ridge/standard/KAMX_loop.gif",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "7a966d42-eae1-4aaf-ad35-2dff15b62e68",
"name": "按过期时间过滤",
"type": "n8n-nodes-base.filter",
"position": [
1344,
16
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "f99f25cf-d59b-4739-be7f-269ecb07f76f",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ new Date($json.properties.expires).getTime() >= new Date().getTime() }}",
"rightValue": "true"
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.2
},
{
"id": "a071bf45-dd82-41d0-9130-3c8ef6891ded",
"name": "分析雷达图像",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
960,
496
],
"parameters": {
"text": "=This is the latest weather radar animation for the monitored area. The AI should analyze precipitation patterns, storm intensity, and movement.\n\nA local weather sensor reports precipitation type: {{ $json.state }}. This sensor takes precedence over radar-based assumptions when determining real-time weather conditions.\n\nDark greens, yellows, and reds indicate stronger precipitation. If storms are present, assess their movement and potential impact on the area. When describing weather, use cautious language like \"it is likely raining\" rather than making definitive statements unless radar data is conclusive.\n\nConsider storm progression over time and estimate when precipitation may begin or end based on timestamps in the radar animation.\n\nProvide a clear, concise summary of current conditions based on the radar and local weather sensor input.",
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "GPT-4O-MINI"
},
"options": {},
"resource": "image",
"inputType": "base64",
"operation": "analyze"
},
"credentials": {
"openAiApi": {
"id": "bDmccS2kILl6lfr2",
"name": "OpenAi account"
}
},
"typeVersion": 1.8
},
{
"id": "ac0ae58a-1c40-421d-ad53-9f2e560319df",
"name": "映射 JSON 响应",
"type": "n8n-nodes-base.set",
"position": [
1152,
496
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "ad4a9a05-20b8-4eda-a477-344d385b4a1e",
"name": "radar_summary",
"type": "string",
"value": "={{ $json.content }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "4bea6742-c424-4250-9d1d-74b4cd46cff4",
"name": "获取本地天气降水",
"type": "n8n-nodes-base.homeAssistant",
"position": [
576,
416
],
"parameters": {
"entityId": "sensor.local_weather_precipitation_type",
"resource": "state"
},
"credentials": {
"homeAssistantApi": {
"id": "nhKk0HXRsf8saByq",
"name": "Home Assistant account"
}
},
"typeVersion": 1
},
{
"id": "a7d3e335-a2ae-459d-829f-f0047f7c1cbb",
"name": "合并 JSON 与图像",
"type": "n8n-nodes-base.merge",
"position": [
768,
496
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3.2
},
{
"id": "72fe8625-4631-4912-9db7-7ca721638431",
"name": "合并雷达分析与 NWS 数据",
"type": "n8n-nodes-base.merge",
"position": [
1344,
272
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3.2
},
{
"id": "dd7f1b53-dba0-4532-98e3-bfcc9c0a8681",
"name": "OpenAI 聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1536,
464
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "bDmccS2kILl6lfr2",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "90f46158-41ed-4811-baa6-efac8beff957",
"name": "代码",
"type": "n8n-nodes-base.code",
"position": [
384,
256
],
"parameters": {
"jsCode": "let idx = 0\nlet alerts = []\n\nfor (const item of $input.all()) {\n for (const alert of item.json.alerts) {\n idx++\n\n let template = `Alert ${idx}:\n **Headline:** ${alert.properties.headline}\n **Severity:** ${alert.properties.severity}\n **Description:** ${alert.properties.description}\n **Instructions:** ${alert.properties.instruction}\n`\n\n alerts.push(template)\n }\n\n item.json = { nws_alerts: alerts.join('\\n\\n'), nws_alerts_count: alerts.length }\n}\n\nreturn $input.all();"
},
"typeVersion": 2
},
{
"id": "bceccd50-f2f3-4ff4-b378-6030c8b680cd",
"name": "聚合",
"type": "n8n-nodes-base.aggregate",
"position": [
192,
256
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData",
"destinationFieldName": "alerts"
},
"typeVersion": 1
},
{
"id": "642995c2-a4f4-43a4-bc58-ed2faebe1426",
"name": "生成摘要",
"type": "@n8n/n8n-nodes-langchain.chainSummarization",
"position": [
1536,
272
],
"parameters": {
"options": {
"summarizationMethodAndPrompts": {
"values": {
"prompt": "=It is critically important to limit your response to 255 characters or less, including spaces.\n\nAI Weather Assistant Alert: A new weather alert has been issued for this location. Summarize the alert details concisely. Include only essential information, such as severe conditions, timing, and affected areas.\n\nThe number of active weather alerts is: {{ $json.nws_alerts_count }}.\n\n# Reviewing all Moderate and Severe alerts:\n\n{{ $json.nws_alerts }}\n\n# Radar Analysis:\n\n{{ $json.radar_summary }}\n",
"summarizationMethod": "stuff"
}
}
},
"operationMode": "nodeInputBinary"
},
"typeVersion": 2.1
},
{
"id": "73e4af91-061d-44a7-a3aa-f8efad62e8c9",
"name": "映射 JSON 到响应",
"type": "n8n-nodes-base.set",
"position": [
1920,
272
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e290b262-1443-43ce-8761-1131cbc2cce2",
"name": "summary",
"type": "string",
"value": "={{ $json.output.text }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "25f096aa-457e-4e9e-8394-e0054dc7ed55",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-640,
-32
],
"parameters": {
"width": 544,
"height": 832,
"content": "# 概述"
},
"typeVersion": 1
}
],
"active": true,
"pinData": {
"Webhook": [
{
"json": {
"body": {
"latitude": 0,
"longitude": 0
}
}
}
]
},
"settings": {
"executionOrder": "v1"
},
"versionId": "77f65303-990f-4463-bc6a-0949b7cb9cf6",
"connections": {
"90f46158-41ed-4811-baa6-efac8beff957": {
"main": [
[
{
"node": "4bea6742-c424-4250-9d1d-74b4cd46cff4",
"type": "main",
"index": 0
},
{
"node": "fe639674-9bfe-4344-b4dc-3141f90cbf9f",
"type": "main",
"index": 0
},
{
"node": "72fe8625-4631-4912-9db7-7ca721638431",
"type": "main",
"index": 0
}
]
]
},
"a72e2042-fd53-46b4-b366-c522ef3044ab": {
"main": [
[
{
"node": "31d8e7b5-c47a-42af-abb0-02f9c2482201",
"type": "main",
"index": 0
}
]
]
},
"bceccd50-f2f3-4ff4-b378-6030c8b680cd": {
"main": [
[
{
"node": "90f46158-41ed-4811-baa6-efac8beff957",
"type": "main",
"index": 0
}
]
]
},
"b1938edb-79be-4399-a815-dc90ffd1f240": {
"main": [
[
{
"node": "bc5b7d6c-e2ad-43ab-aad1-d947799243e5",
"type": "main",
"index": 0
}
]
]
},
"31d8e7b5-c47a-42af-abb0-02f9c2482201": {
"main": [
[
{
"node": "b1938edb-79be-4399-a815-dc90ffd1f240",
"type": "main",
"index": 0
}
]
]
},
"4b05f80a-b851-4286-9618-86dd11600faa": {
"main": [
[
{
"node": "e0ce90cb-a447-4b5c-a3e7-6ea2ccfa4efe",
"type": "main",
"index": 0
}
]
]
},
"7a966d42-eae1-4aaf-ad35-2dff15b62e68": {
"main": [
[
{
"node": "bceccd50-f2f3-4ff4-b378-6030c8b680cd",
"type": "main",
"index": 0
}
]
]
},
"ac0ae58a-1c40-421d-ad53-9f2e560319df": {
"main": [
[
{
"node": "72fe8625-4631-4912-9db7-7ca721638431",
"type": "main",
"index": 1
}
]
]
},
"dd7f1b53-dba0-4532-98e3-bfcc9c0a8681": {
"ai_languageModel": [
[
{
"node": "642995c2-a4f4-43a4-bc58-ed2faebe1426",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"e0ce90cb-a447-4b5c-a3e7-6ea2ccfa4efe": {
"main": [
[
{
"node": "e5272333-90a2-4bfa-969f-0cd6e2d50ad8",
"type": "main",
"index": 0
}
]
]
},
"642995c2-a4f4-43a4-bc58-ed2faebe1426": {
"main": [
[
{
"node": "73e4af91-061d-44a7-a3aa-f8efad62e8c9",
"type": "main",
"index": 0
}
]
]
},
"a071bf45-dd82-41d0-9130-3c8ef6891ded": {
"main": [
[
{
"node": "ac0ae58a-1c40-421d-ad53-9f2e560319df",
"type": "main",
"index": 0
}
]
]
},
"e5272333-90a2-4bfa-969f-0cd6e2d50ad8": {
"main": [
[
{
"node": "7a966d42-eae1-4aaf-ad35-2dff15b62e68",
"type": "main",
"index": 0
}
]
]
},
"73e4af91-061d-44a7-a3aa-f8efad62e8c9": {
"main": [
[]
]
},
"a7d3e335-a2ae-459d-829f-f0047f7c1cbb": {
"main": [
[
{
"node": "a071bf45-dd82-41d0-9130-3c8ef6891ded",
"type": "main",
"index": 0
}
]
]
},
"bc5b7d6c-e2ad-43ab-aad1-d947799243e5": {
"main": [
[
{
"node": "4b05f80a-b851-4286-9618-86dd11600faa",
"type": "main",
"index": 0
}
]
]
},
"fe639674-9bfe-4344-b4dc-3141f90cbf9f": {
"main": [
[
{
"node": "a7d3e335-a2ae-459d-829f-f0047f7c1cbb",
"type": "main",
"index": 1
}
]
]
},
"4bea6742-c424-4250-9d1d-74b4cd46cff4": {
"main": [
[
{
"node": "a7d3e335-a2ae-459d-829f-f0047f7c1cbb",
"type": "main",
"index": 0
}
]
]
},
"72fe8625-4631-4912-9db7-7ca721638431": {
"main": [
[
{
"node": "642995c2-a4f4-43a4-bc58-ed2faebe1426",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 个人效率, AI 摘要总结
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
在可视化参考库中探索n8n节点
在可视化参考库中探索n8n节点
If
Ftp
Set
+
If
Ftp
Set
113 节点I versus AI
其他
AI工时表生成器 - 集成Gmail、日历和GitHub到Google表格
AI工时表生成器 - 集成Gmail、日历和GitHub到Google表格
If
Set
Code
+
If
Set
Code
31 节点Luka Zivkovic
个人效率
使用GPT和TTS通过WhatsApp将网站转换为音频摘要
使用GPT和TTS通过WhatsApp将网站转换为音频摘要
If
Set
Code
+
If
Set
Code
23 节点Anthony
个人效率
潜在客户开发与邮件工作流
使用Google Maps、SendGrid和AI自动化B2B潜在客户开发与邮件营销
If
Set
Code
+
If
Set
Code
141 节点Ezema Kingsley Chibuzo
潜在客户开发
使用VEXA、OpenAI和Mem0自动化会议智能分析
使用VEXA、OpenAI和Mem0自动化会议对话洞察分析
Set
Code
Merge
+
Set
Code
Merge
26 节点Stephan Koning
文档提取
基于 Apollo、LinkedIn 和 GPT-4o 的全面联系人信息丰富化
基于 Apollo、LinkedIn 和 GPT-4o 的全面联系人信息丰富化,适用于 HubSpot
If
Set
Code
+
If
Set
Code
24 节点Interlock GTM
潜在客户开发