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

n8n实践-使用n8n搭建一个定时发送天气预报邮件的工作流

前言


传统的定时任务,一般是使用linux cron定时运行某个位置的某个脚本。

  1. 需要准备各种运行环境;
  2. 脚本比较分散,管理起来相对麻烦;
  3. 需要有一定的代码能力,比如常见的shell、python等等;
  4. 不方便接入ai, 更换ai也比较麻烦。

工作流的好处是:

  1. 把定时任务、触发任务等统一管理;
  2. 减少代码开发量,不会写代码也没关系,简单的代码也可以交给豆包这些ai去帮忙写;
  3. 调用ai处理数据过程简化,不必写底层调用ai的驱动;
  4. 可以运用各种插件,并且社区也会分享各种有趣好用的工作流。

上一篇记录了如何在debian11 上使用 podman 启动一个 n8n 容器,本篇准备记录一下搭建一个定制发送天气预报的工作流。虽然有点为了用而用的感觉,但也算某种意义上的 hello world 了。

正文


需求:
每天早上 7:30 自动获取天气数据,通过ai分析后生成通俗、生动的出行和生活提示,最后把提示通过邮件发送给自己。

大致流程:
每天早上 7:30 触发 -> 调用第三方平台接口获取天气数据 -> 将数据丢给ai分析 -> ai生成的数据整理一下,给自己发邮件

1. 创建工作流

点击首页右上角按钮,创建一个工作流

image

2. 添加触发器

触发器,也就是工作流的起点,有各种各样的触发条件,比如手动触发、计划触发等等。现在希望每天早上 7:30 触发,所以添加一个按计划触发的组件。

image

填写时间,选择触发周期为 Day, 触发间隔 1, 具体时间 7am, 具体分钟数 30, 对应每天早上 7:30 触发。
填写完毕后,点击执行步骤,右侧可以看到执行详情。

image

点击返回画布,返回主页面。然后点击保存 (随时保存是一个好习惯。。)

3. 添加http请求组件

点击时间触发器后面的“+”号,选择 核心-> HTTP Request 组件
image

image

点击 Http Request 后,自动添加了一个组件,并弹出组件设置界面:
image

从组件界面上,可以看到分为了三部分:

  • 左边是上一个组件的输出数据,这里作为本组件的输入部分;
  • 中间是这个组件的配置
  • 右边是这个组件执行后的输出数据,作为下一个组件的输入。

下面开始配置组件。
保持这个界面不动,在浏览器新开一个页面,访问: https://www.apihz.cn/api/tqtqyb.html
image

这是接口盒子平台提供的一个免费查询天气的接口,需要先注册一下,获取到id和key, 注册完成后,再次访问此界面,界面会自动生成一个填写了个人id和key的示例url,url 和返回参数的说明接口盒子已经给了,这里不做赘述。一般只需要核对id、key, 然后把sheng改成自己的省、place改成自己的市即可。

https://cn.apihz.cn/api/tianqi/tqyb.php?id=88888888&key=88888888&sheng=四川&place=绵阳&day=1&hourtype=1

将这个url填入到n8n上面的Http Request组件中,method 选择get,点击执行步骤,右侧输出选择 JSON格式,结果如下:
image

此时,已经成功调用了接口盒子的接口,获取到了天气数据,包括调用接口时的实时数据以及当天的按小时划分的数据。可以添加一个筛选组件对数据的筛选和处理,可以自行探索,比如只要实时数据,可以查看参考中的链接[1].

这里目的是获取全天的天气预报,所以把所有数据丢给ai, 相信ai可以给出更全面的分析。

4. 添加并配置ai事务

同样,点击上一个组件的加号,添加新组件。人工智能-> AI Agent
image

image

添加完成后,弹出如下窗口
image

上面是如何选择上一步的数据,下面是这些数据用那个ai模型处理(Chat Model)、数据缓存(Memory)、工具(Tool)
这里不需要 Memory 以及 Tool,仅 Chat Model 就行。

点击 Chat Model 选择并配置模型,点击后,自动弹出界面:
image

这里选择 DeepSeek 模型, 选择完成后,保持此界面。浏览器新开一个界面,申请一个deepseek api key:
访问:https://platform.deepseek.com/
登录后,点击 Api Keys -> 创建 api key
image

创建完成后,复制key (注意,这里key复制完成后,再次刷新页面,无法复制key,所以key要保存好)
然后,充值。。。可以充值几块钱,基本上每次调用花几分钱。

回到n8n界面,在deepseek 组件配置中,点击创建新凭证,这里如果之前其他项目配置过,可以直接复用。
image

将上面的key填入配置后,页面提示连接成功,表示 key 生效了。
image

返回画布,重新点击打开 ai agent 组件:
image

第一个选项,信息源选择 Define below,意思是按照下面的选项自定义信息源。
第二的选项,输入 {{ $json }}, 意识是取上一个Http Request 组件获取到的全部 json 数据,如果想要取部分数据,可以直接用鼠标从左侧json数据中拖动。
点击 Add Option, 选择 System Message,作为ai提示词。也就是给ai立设定,让它进入或扮演某个角色。

添加完毕后,点击执行步骤,等一会可以看到右侧有处理好的数据:
image

5.将数据转换为html

同样,在AI Agent组件后面,添加一个组件 Markdown,可以直接搜索组件名称,也可以通过 数据转换-> Markdown 找到。这个组件的作用是将Markdown转换成html,或者将 html 转换为 Markdown.

这里的目的是将Markdown转换为html。因为ai一般输出格式是Markdown,包括字体大小、表格、代码高亮等等,但是要求显示时支持Markdown渲染,邮件客户端不一定支持Markdown渲染,所以需要将Markdown转换为html,html 可以很好地保留Markdown的格式。

配置时:
Mode 选择 Markdown to HTML,然后将左侧的数据中的"output"使用鼠标直接拖拽到第二的选项中,第三个选项使用默认的data
点击执行步骤后,输出到右侧。

image

6. 发送邮件

添加组件:Send Mail

image

现在需要配置邮件的账号信息。以QQ邮箱为例:
在网页登录QQ邮箱,依次找到设置->安全设置
开启SMTP服务(参考页面提示配置方法),点击生成授权码(后续作为发邮件时的密码)
image

回到n8n Send Email 组件配置,点击创建新凭证(如果之前已经添加过,直接可以复用凭证)
User 填写邮箱账号:xxx@qq.com
Password 填写上面的授权码
Host 填写 smtp.qq.com
Port 使用默认的 465
下面的不用管,点击保存。
image

接下来继续配置 Send mail
Operation 选择 Send
From Email 填写你自己的QQ邮箱地址
To Email 填写要邮件接收者的邮箱地址
Subject 邮箱主题:比如天气
Email Format 选择 Html
将上一步Markdown 输出的data字段拖拽到 HTML框中
image

点击执行步骤,如果收到了邮件,表示发送成功。

最后,回到画布,然后修改左上角的工作流名称为 天气提示;在右上角点击保存、激活,然后一个工作流就设计完成了。
image

参考


[1]. n8n 就像拼乐高 ,手把手搭建高效 AI 信息搜集流!

相关文章:

n8n实践-使用n8n搭建一个定时发送天气预报邮件的工作流

前言传统的定时任务,一般是使用linux cron定时运行某个位置的某个脚本。需要准备各种运行环境; 脚本比较分散,管理起来相对麻烦; 需要有一定的代码能力,比如常见的shell、python等等; 不方便接入ai, 更换ai也比较麻烦。工作流的好处是:把定时任务、触发任务等统一管理; …...

Cython-编程学习指南第二版-全-

Cython 编程学习指南第二版(全)原文:zh.annas-archive.org/md5/0bc691743f26fcdcabcb6840b706a834 译者:飞龙 协议:CC BY-NC-SA 4.0前言 Cython 是一个工具,它使得编写 Python 的原生扩展变得和编写 Python 代码一样简单。对于那些不知道的人来说,你可以将 Python 模块实…...

印度尼西亚股票数据API对接实现

环境准备 首先安装必要的依赖包: pip install requests websocket-client pandas numpy基础配置 import requests import json import websocket import threading import time from datetime import datetime# API配置 API_KEY = "YOUR_API_KEY" # 替换为您的实际…...

OpenBMB 发布无分词器 TTS VoxCPM;儿童口语硬件 Dex 融资 480 万美元:拍摄真实物体,对话学习外语丨日报

开发者朋友们大家好:这里是 「RTE 开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的技术」、「有亮点的产品」、「有思考的文章」、「有态度的观点」、「有看点的活动」,但内容仅代表编辑的个人观点…...

一天一款实用的AI工具,第1期,AI标题生成工具

本期介绍的是一款专业的标题生成工具,它能帮你产出高质量标题,让点击率提升,让内容被看见。现实问题 在内容创作的世界里,有句话特别扎心: 好的标题=成功的一半。 很多创作者都遇到过这样的困境: 花了一下午写好一篇文章,结果标题平平无奇,点击量惨淡。 明明内容不错,…...

重组蛋白表达避坑指南

重组蛋白表达避坑指南重组蛋白表达是分子生物学、生物技术以及生物医学研究中非常基础却经常“出问题”的环节。一个合适的蛋白表达方案,不仅要能产生足够的产量,还要确保蛋白正确折叠、具有功能、具有良好的纯度与稳定性。一、选择表达系统与宿主:第一个关键决策常见问题不…...

易被忽略的vim中视图模式

常见的都是vim三种模式,但视图模式也不可忽略,主要进行批量操作在 Vim 中,可视模式(Visual Mode)是一种强大的文本选择和编辑模式,允许你高亮选中一段文本,然后对其进行操作(如复制、删除、替换、注释等)。 一:三种可视模式1.字符可视模式 用途: 精确选择字符或单词…...

电商核心业务 - 指南

电商核心业务 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size: 14p…...

一言

一些日常的感想,为了节约时间,为了不暴露太多东西,为了不挑起矛盾,内容会很简洁,在合适的时候公布详情。9.17 说好的向阳而生呢?冷静啊,兄弟。 9.18 你们不相信我,我必将证明我,夺回属于我的荣耀。...

ai

https://qsqs.life/login?redirect=/system/dashboard本文来自博客园,作者:zjxgdq,转载请注明原文链接:https://www.cnblogs.com/zjxzhj/p/19098509...

LlamaIndex 项目深度技术分析 - 详解

LlamaIndex 项目深度技术分析 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important;…...

深入解析:css消除图片下的白边

深入解析:css消除图片下的白边pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font…...

linux增加网卡ip地址

linux增加网卡ip地址example ip addr add 192.168.5.124/24 dev eth0 label eth0:5 ifconfig eth0:5 up ip addr del 192.168.1.100/24 dev eth0 example ip addr add 192.168.10.199/24 dev eth0 label eth0:10 route add default gw 192.168.10.254reference: https://blog.c…...

Python 包与环境管理简史:从混乱到优雅

自动包管理工具的先驱:easy_install 在一切规范化工具出现之前,Python 的包管理是相当原始的。开发者们需要把第三方库的源码下载下来,手动放到项目目录里。 为了解决自动安装包的问题,easy_install 应运而生。 2004年:easy_install——从 0 到 1 的突破 easy_install 是 …...

qoj853 Flat Organization

SOLUTION FROM WUMIN4 题意 给出一个 \(n\) 个点的带权竞赛图(定向完全图),你可以进行任意次操作,每次操作反转一条边,代价为边权,求使得图强连通的最小代价和与方案,或输出无解。 \(n\le 2000\)。 思路 我们先考虑算出这张图的所有 SCC 并进行缩点,容易发现缩点后图是…...

shell命令中循环执行操作的命令

shell命令中循环执行操作的命令reference: for i in $(seq 1 10000); do echo "Iteration $i" && echo "Iteration $i"; done for i in $(seq 1 10000); do cat /sys/class/net/eth0/carrier && sleep 1; done for i in $(seq 1 999999); …...

2025年9月中国数据库排行榜:达梦挺进榜眼位,崖山首入前十强

9月墨天轮排行榜解读已出炉!本月前十变动较大,老将突围、新秀崛起,达梦凭借强劲势头跃升至第二位、TiDB排名上升、崖山首次闯入前十,此外还有一些产品表现亮眼!本月墨天轮社区的中国数据库排行榜再起波澜。达梦凭借强劲势头跃升至第二位,崖山则首次闯入前十,既展现了“老…...

基于QEMU模拟器搭建Builtroot下的QT开发环境

基于QEMU模拟器搭建Builtroot下的QT开发环境https://www.cnblogs.com/arnoldlu/p/17250728.html...

vlan

vlanhttps://zhuanlan.zhihu.com/p/385949949...

OpenSSH漏洞修复

前期准备 (先使用Telnet远程连接工具,连接服务器,确保Telnet连接正常,SSH连接后进行漏洞修复升级(防止修复失败,导致远程连接无法连接时,可以通过另一个远程工具连接进行恢复) telnet安装与开启:https://www.cnblogs.com/aerfazhe/p/19098482 准备离线升级安装包 Open…...

windosw 配置arp绑定

windosw 配置arp绑定配置静态arp绑定 netsh interface ipv4 add neighbors "以太网" "192.168.98.233" "aa-bb-cc-dd-ee-01" store=active...

2024年最受欢迎的渗透测试工具盘点

本文详细介绍了2024年最受欢迎的渗透测试工具,包括Certipy、BloodHound、Impacket等社区工具和CloudFox、Broken Hill等Bishop Fox自研工具,涵盖网络、云环境、API和LLM安全测试领域。我们最喜爱的渗透测试工具:2024版 又到了黑客工具盘点时间!我们征集了专家团队的意见,为…...

Unity学习 5.6 FBX

FBX保存了模型和纹理,没有贴图,贴图作为静态资源单独存在 FBX的使用 演示:选择*.fbx文件,直接拖到层级窗口 观察节点图标 选中节点,观察Inspector中的操作按钮select可以focus资源路径贴图路径有的模型需要贴图文件 贴图文件路径是约定好的与fbx相同目录,或者同级Texture…...

SEERC 2022 题面简要翻译

A. Append / 附件 你有两个字符串 \(s,t\),同时你还有一个字符串数组,这个数组中的第 \(i\) 个字符串是由 \(i\) 个 \(s\) 拼接而成,现在问最小的 \(p\) 使得 \(t\) 是这个字符串数组的第 \(p\) 个字符串。 \(1 \le |s|,|t| \le 5 \times 10^5\)。 时间限制:\(1\text{s}\)。…...

【稳定检索、线上线下参会、马理工主办】第十一届建筑、土木与水利工程国际学术会议(ICACHE 2025)

快速见刊,检索稳定! 第十一届建筑、土木与水利工程国际学术会议(ICACHE 2025) 2025 11th International Conference on Architectural, Civil and Hydraulic Engineering (ICACHE 2025) 在这里看会议官网详情 大会时间:2025年10月17-19日 大会地点:马来西亚 新山 截稿时…...

telnet安装与开启

在 CentOS 中,Telnet 是一种远程登录协议,默认情况下是关闭的。以下是开启 Telnet 服务的步骤。 # 首先检查是否已安装相关软件包 rpm -qa | grep telnet rpm -qa | grep xinetd # 以下命令安装: yum install -y telnet-server xinetd # 启用并启动服务 # 设置 Telnet 和 xi…...

20250917NOIP#21

20250917NOIP#21 T2 题意: 给定一个 \(n\) 个点的树,点上有一个非负整数点权 \(a_i\),表示这个点需要在操作序列中正好被经过 \(a_i\) 次,一次操作为选择两个顶点 \(u,v\) ,从 \(u\) 经过简单路径走到 \(v\) ,求最小操作数。 思路: 见到这个题第一眼想到贪心,可以具象化…...

又一个新项目完结,炸裂!

这是一套以 AI 开发实战 + 后端架构设计 为核心的项目教程。大家好,我是程序员鱼皮。又经过了一段时间的爆肝,我在编程导航的保姆级新项目教程 —— AI 零代码应用生成平台,完结啦! 这是一套以 AI 开发实战 + 后端架构设计 为核心的项目教程,基于 Spring Boot 3 + LangCha…...

阿里云防刷神器ESA搞活动免费领取

最近使用阿里云的边缘安全加速ESA,防刷、访攻击。 所有套餐支持一键防刷、安全事件分析、频次控制等。 最近搞活动,可以不限次数领取基础版代金券,免费领取链接:http://s.tb.cn/e6.0Fu67m测速效果...

报错TypeError: Unknown file extension .ts - broky

当出现这个TypeError: Unknown file extension ".ts"这个报错的时候,可以看看package.json里没有是不是有"type": "module"这个字段,有的话需要去掉...

抗 IgE 单克隆抗体联合变应原免疫治疗(AIT):过敏性疾病治疗的协同新策略

过敏性疾病(如哮喘、慢性荨麻疹、过敏性鼻炎)的发病率在全球范围内持续攀升,传统治疗手段(如抗组胺药、糖皮质激素)虽能缓解症状,却难以从根本上改变机体的过敏状态。变应原免疫治疗(AIT)作为唯一能 “重塑免疫耐受” 的病因治疗方法,通过逐渐增加变应原暴露剂量,诱导…...

php怎么关闭数据库连接

在PHP中,关闭数据库连接是一个很重要的步骤,它可以释放资源并防止不必要的连接浪费。下面是一些关闭数据库连接的常见方法:1. 使用mysqli_close()函数关闭连接:“`$conn = mysqli_connect($servername, $username, $password, $dbname);// 执行完数据库操作后,关闭连接mys…...

代码分析之污点分析 - 教程

代码分析之污点分析 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-siz…...

设计模式 7章

软件设计7大原则 开闭原则:是原则,在设计软件时保持扩展的开放性和修改的封闭性 里式替换原则:要求在继承时不要破坏父类的实现 单一职责原则:要求类的功能要单一 接口隔离原则:要求接口的设计要精简 依赖倒置原则:要求面向抽象编程,即面向接口编程 迪米特原则:提供一种…...

磁盘存储简介-轮子

https://blog.csdn.net/user2025/article/details/142364353...

洛谷 P1967 [NOIP 2013 提高组] 货车运输 题解

洛谷 P1967 [NOIP 2013 提高组] 货车运输 题解原题链接:货车运输 kruskal重构树+LCA做法,树剖不想写 很容易发现原图跑最短路可以解,但是复杂度难以承受,所以考虑如何简化该图。 发现原图边权维护的应该是(u,v)的最小值,并且最优选择是这个最小值最大,所以如果有多条(…...

cherry-pick 合并曾今某一次提交

确认当前分支 git checkout test 找到要合并提交的哈希值 git log --oneline 太长的话点击q 退出 切换到我们要合并的分支 git checkout dev 使用 cherry-pick 应用指定提交 git cherry-pick <提交哈希1> 推送到远程分支 git push origin dev...

向量数据库 FAISS、LanceDB 和 Milvus

FAISS (Facebook AI Similarity Search)本质:一个库 (Library),而不是一个数据库。定位:由 Meta (Facebook) AI 研发的、专注于高效相似性搜索的 C++/Python 库。它的核心使命只有一件事:在海量向量中快速找到最相似的 K 个向量。特点:它提供了极其丰富和灵活的索引算法(…...

ruoyi-vue自动生成代码

我看到这个ruoyi-vue有自动生成代码的功能,这里我们可以体验一下改如何实现。 还是首先在 ruoyi-admin 下面的文件夹target里面执行 java -jar ruoyi-admin.jar ,然后再 ruoyi-ui 下面执行 npm run dev 好,项目启动起来了,然后登录到后台里面去,点击系统工具里面的代码…...

拥抱新一代 Web 3D 引擎,Three.js 项目快速升级 Galacean 指南

本文从多个维度对比 Galacean 和 Three.js 两款Web3D 引擎的差异,并介绍拟我形象项目从Three.js 切换到 Galacean 以后带来的提升以及项目迁移的心得,为其他 Three.js 项目升级到 Galacean 提供参考。作者: vivo 互联网前端团队- Su Ning 本文从多个维度对比 Galacean 和 Th…...

Fast IO 模板

放在 using namespace std; 后面即可。 namespace fast_IO { #define FASTIO #define IOSIZE 100000char ibuf[IOSIZE], obuf[IOSIZE];char *p1 = ibuf, *p2 = ibuf, *p3 = obuf; #ifdef ONLINE_JUDGE #define getchar() ((p1==p2)and(p2=(p1=ibuf)+fread(ibuf,1,IOSIZE,stdin)…...

kylin V11安装mysql8.4.5(glibc.2.28版本)

环境:OS:kylin V11mysql:8.4.5 glibc2.28(建议不要安装glibc.2.17版本) 查看系统glibc版本[root@localhost soft]# ldd --versionldd (GNU libc) 2.38Copyright (C) 2023 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There…...

iOS 上架 App 流程全解析 苹果应用发布步骤、App Store 审核流程、ipa 文件上传与 uni-app 打包实战经验

本文系统解析 iOS 上架 app 流程,涵盖苹果应用从开发者账号注册、证书准备、uni-app 打包、ipa 上传、TestFlight 测试,到 App Store 审核与发布的完整步骤,结合多工具协作,总结高效实用的上架经验。对开发者来说,应用上线的最后一道门槛就是 iOS 上架 app 流程。 相比 An…...

P6801 花式围栏

题目传送门数学、计数类。题意 在 \(n\) 个同一底线上宽 \(w\),高 \(h\),给定的相邻矩形中,数出在方格上的任意形状的小矩形的个数。 \(1\leq n\leq 10^5,1\leq w,h \leq 10^9\) 题解 我们规定竖直方向上为高,水平方向上为的宽。 要研究 \(n\) 个,就要先研究一个。 我们考…...

ms sql dml 操作

ms sql dml 操作 --建表 select * into tablenew from tableold...

黑白染色方法

主要有 \(3\) 种方法:DFS / BFS / DSUDFS直接遍历整张图染色,判断是否产生冲突 init(){for(int i=1;i<=n;i++) col[i]=-1; } bool dfs(int u,int c){col[u]=c;for(auto v:e[u]){if(col[v]==-1) return dfs(v,c^1);else if(col[v]==c) return false;}return true; } ... bo…...

Windows 数字签名获取与验证详解

在 Windows 的安全体系中,数字签名扮演着“软件身份证”的角色。它可以证明一个程序确实来自某个发布者,并且在分发的过程中没有被篡改。 当下载一个系统更新、驱动程序,或者安装第三方应用时,操作系统往往会验证数字签名,确保软件来源合法、安全。那么,作为开发者或安全…...

转化率提升300%,火山引擎Data Agent以“一客一策”突破企业营销增长瓶颈

火山引擎近日分享了其企业级数据智能体Data Agent如何通过AI技术,解决企业营销增长中的核心问题。根据过去半年的客户实践,Data Agent在智能营销领域展现出显著成效,通过自然语言交互大幅降低工具使用门槛,并能深度整合企业内外部数据,实现从洞察到行动的闭环决策。面对企…...

矩阵模板

struct mat{int m[N][N];//将A.m[i][j] 改成 A[i][j] 这种格式int* operator [] (size_t i) {return m[i];}const int* operator [] (size_t i) const {return m[i];}mat() {memset(m,0,sizeof m);}//初始化矩阵mat operator * (const mat& b) const {//矩阵乘法mat res;fo…...

快读模板

int read(){int x=0,f=1;char c=getchar();while(c<48||c>57){if(c==-) f=-1;c=getchar();}while(c>47&&c<58) x=x*10+(c^48),c=getchar();return x*f; }本文来自博客园,作者:_AzureSky,转载请注明原文链接:https://www.cnblogs.com/-AzureSky-/p/1909…...