场景导入:别让“查天气”这种小事偷走你的专注力
笔者见过太多朋友,每天早上到了公司,第一件事就是打开手机查天气,然后纠结要不要带伞。如果只是顺手倒也罢了,但如果你像我一样,是个需要根据天气调整出行工具(开车还是骑车)、穿着(加不加外套)的人,这种重复的机械操作其实非常消耗心力。

真正的极客精神,不是把时间花在“执行”上,而是花在“设计”上。今天,N8N大学就带你用 n8n 搭建一个全自动工作流:每天早上 7 点,自动抓取你所在城市的天气预报,如果下雨就直接发一条通知到你的手机。这不仅是技术实战,更是对你生活效率的一次升级。
准备工作:你需要这三样东西
在开始之前,请确保你手头有以下资源。别担心,门槛很低:
- 一个 n8n 环境:可以是官方 Cloud 账号,也可以是本地部署(Docker 最推荐)。
- 一个天气 API:笔者推荐 WeatherAPI.com,它对新用户很友好,注册即可获得免费 Key。
- 一个通知渠道:为了演示,我们使用 Telegram(因为它对 n8n 集成最简单)。当然,钉钉、飞书、Bark(iOS)都同理。
核心实操:手把手搭建“天气闹钟”
我们将整个流程拆解为四个核心步骤。打开你的 n8n 编辑器,跟着笔者一步步来。
步骤一:设定定时触发器 (Cron)
自动化的第一步是“何时启动”。我们在画布上添加一个 Cron 节点。
点击节点,在右侧参数中设置 Trigger Times。假设我们想在工作日早上 7:30 获取天气,可以设置如下规则:
- Hour:
7 - Minute:
30 - Weekday:
Monday to Friday
这个节点就像闹钟,时间一到,就会向后发送一个信号。
步骤二:获取天气数据 (HTTP Request)
这是核心逻辑部分。添加一个 HTTP Request 节点。这里我们要调用天气 API。
在参数设置中:
- Authentication: 选择
Generic Credential Type->Query Auth(根据你的 API 文档调整,WeatherAPI 通常需要 Query 参数)。 - URL: 填入 API 地址,例如:
http://api.weatherapi.com/v1/forecast.json。 - Parameters: 添加两个参数:
- Key:
key, Value: 你的 API Key - Key:
q, Value: 你的城市代码(如Beijing)
- Key:
- Response Format: 务必选择
JSON。
测试一下,你应该能看到返回的 JSON 数据,里面包含了温度、湿度和 condition(天气状况)。
步骤三:逻辑判断 (IF)
我们不需要在晴天收到通知,只在下雨时需要。添加一个 IF 节点。
我们需要从上一步的 JSON 中提取天气描述并判断。假设 WeatherAPI 返回的条件在 current.condition.text 字段中(你可以通过点击上一步节点查看 Output 数据来确认路径)。
在 IF 节点中设置:
- Condition:
String - Operation:
contains - Value:
雨(注意:API 返回中文还是英文?如果是英文,这里填Rain)
这样,只有当天气描述包含“雨”字时,流程才会继续向下走。
步骤四:发送通知 (Telegram)
最后,我们需要把消息“推”到手机。添加一个 Telegram 节点。
首先需要在 n8n 中配置 Telegram Bot 的 Credentials(需要 BotFather 创建机器人并获取 Token,以及你的 Chat ID)。
在节点参数中:
- Chat ID: 填入你的个人或群组 ID。
- Text: 这里可以写入简单的文本,比如
⚠️ 注意!今天可能下雨,记得带伞!。为了更硬核,你甚至可以利用上一步获取的温度数据,拼接成:`今天温度是 {{ $('HTTP Request').item.json.current.temp_c }} 度,记得带伞!`。
连接好所有节点,点击右上角的 Execute Workflow。如果一切正常,你的手机应该会收到一条机器人发来的消息。
避坑指南:新手最容易卡住的两个地方
1. 时区问题(Timezone)
这是无数自动化流程的“隐形杀手”。默认情况下,n8n 的 Cron 节点可能使用的是 UTC 时间。如果你在中国,设置 `8:00` 可能会在凌晨 4 点触发。解决办法:在 Cron 节点设置中,找到 Timezone,手动选择 Asia/Shanghai。
2. JSON 路径解析错误
在 IF 节点或发送消息时,如果你直接复制网上的 `{{ $json.data.weather }}` 写法,很可能会报错。请务必使用 n8n 的“小魔法”:点击输入框旁边的 Expression 标签,然后在左侧点击上一步的节点,n8n 会自动帮你生成正确的路径(例如 `{{ $('HTTP Request').item.json.current.condition.text }}`),这能避免 90% 的路径错误。
FAQ 问答
Q1: 我没有 Telegram,可以用微信吗?
A: 微信对个人开发者非常不友好(接口申请繁琐)。推荐使用钉钉群机器人、飞书群机器人,或者 iOS 用户可以直接使用 Bark App(它生成一个 URL,n8n 请求这个 URL 就能推送通知),非常简单。
Q2: 如果我想获取多个城市的天气怎么办?
A: 可以在工作流开头添加一个 Spreadsheet File 节点读取城市列表,或者简单地复制几份 HTTP Request 节点。进阶玩法是使用 Loop 节点遍历城市列表。
Q3: 这个工作流免费吗?
A: n8n 本身是开源的,完全免费(自托管)。WeatherAPI 的免费版每天有 1000 次调用,对于个人自动查询完全够用。Telegram 也是免费的。
总结与资源
恭喜你!通过这四个步骤,你已经完成了从 0 到 1 的自动化思维转变。你不再被动地去“获取”信息,而是让信息主动“服务”于你。
这只是 n8n 强大能力的冰山一角。在 N8N大学,我们致力于把复杂的技术拆解成你能直接复用的积木。
资源推荐:
- n8n 官方文档:https://docs.n8n.io/
- WeatherAPI 文档:https://www.weatherapi.com/docs/