用WorkBuddy 联动实时天气 · 通过一路ChipToAi开关实现自动控制开关 · 实战教程
WorkBuddy 自动化 · MCP · ChipToAi
用 WorkBuddy 定时自动化 +ChipToAi 一路AI开关,实现“室外气温 ≥ 35℃ 自动开灯,< 35℃ 自动关灯”。本教程覆盖设备配置、MCP 接入、自动化配置、运行调试全流程,照着做即可复刻。
本文在室内进行演示,仅用“灯”作为执行载体进行表达(方便演示),实际业务中会是水泵,风扇等其他业务设备。
目录
- 一、教程概览
- 二、整体架构
- 三、购买与接线
- 四、设备开箱配置
- 五、接入 WorkBuddy(MCP)
- 六、自动化逻辑详解
- 七、创建 WorkBuddy 自动化
- 八、运行与验证
- 九、常见问题与进阶
- 十、附录速查表
一、教程概览
1.1 你将学到什么
- 把一台ChipToAi 一路AI开关(成品,开箱即用)变成可被 AI 调用的“网络开关”。
- 把该开关通过 MCP 协议接入 WorkBuddy,让大模型能直接控制硬件。
- 用 WorkBuddy 自动化功能,按小时自动查实时气温并联动开关。
1.2 最终效果
每小时整点,WorkBuddy 自动:① 查询长沙实时气温 → ② 与阈值 35℃ 比较 → ③ 通过 MCP 调用relays.set打开/关闭“独立灯”(AI 开关的第 1 路)→ ④ 结果推送通知。全程无人值守。
💡本教程的真实运行案例
2026-08-01 17:43 触发:长沙实时气温 34℃(< 35℃)→ 自动关闭独立灯,设备返回changed:true。当天白天最高曾达 35.5℃ 并发布高温黄色预警,可见“按当前实时温度而非预报最高温度”判定的重要性。
1.3 适用场景
高温联动风扇/水帘降温低温联动加热雨天联动收衣架高湿联动除湿机PM2.5 联动新风
把“判定阈值”和“被控那一路”换一下即可迁移。
✅一句话理解
ChipToAi 一路AI开关 = 一个能联网、能被 AI 调用的智能插座/开关。你不用关心它内部怎么工作,只要买来、通电、配网、接入 WorkBuddy,就能用气温、股价、日程等任何条件自动控制它。
图:实际硬件接线及运行图
二、整体架构
整个系统由四部分串联,数据单向流动:
系统架构:天气数据源 → WorkBuddy 自动化 → ChipToAi 一路AI开关 → 被控设备
2.1 数据流时序
- WorkBuddy 定时触发(每小时),大模型读取任务 Prompt。
- 用
WebFetch抓取天气网站的实时气温(注意看时间戳,剔除历史/缓存数据)。 - 比较:气温 ≥ 35℃ →
state=on;< 35℃ →state=off。 - 通过 MCP 调用
relays.set,AI 开关控制内部继电器通断,灯随之亮/灭。 - 结果写入运行记录,并推送通知到微信。
三、购买与接线
✅开箱即用,无需刷机
ChipToAi 一路AI开关是成品设备,出厂已预装AI固件与 MCP 服务,买回来通电配网就能用。
3.1 物料清单
| 组件 | 说明 | 备注 |
|---|---|---|
| ChipToAi 一路AI开关 ×1 | 成品智能开关,内置联网模块+继电器+MCP服务 | 核心设备,买来即用 |
| 被控设备 | 台灯 / 风扇 / 排插等 | 低压设备更安全,便于演示 |
| 电源线 / 接线端子 | 给开关供电、把灯接入开关 | 按开关接线说明接 |
3.2 接线示意
AI 开关对外就是“一进一出”的开关:电源进开关,开关出线接灯。开关闭合=灯亮,断开=灯灭。无需关心内部电路。
[ 电源 ] ──电源进──▶ [ ChipToAi 一路AI开关 ] ──开关出→灯──▶ [ 被控设备(灯/风扇) ] 输入端 ← 电源 输出端(第1路) → 灯 内置继电器 + MCP服务 relay_1 = "独立灯"📌图 2 · 接线示意:电源接入 AI 开关,开关输出接灯;开关闭合灯亮,断开灯灭
3.3 接线步骤
- 给 AI 开关供电— 按说明书把电源接到开关的输入端(成品开关通常即插即用,或接接线端子)。
- 把灯接入开关— 把被控设备的电源线接到开关的输出端(第 1 路)。这样开关通断就等于灯的通断。
- 上电自检— 通电后用手机配网 App 或开关上的按键测试一次手动开/关,确认灯能正常亮灭,再进入下一步。
🚨安全提醒
涉及 220V 市电的接线、改装排插等,必须由持证电工操作,并加装漏电保护与熔断器。
四、设备开箱配置
内置强大AI固件
ChipToAi 一路AI开关出厂自带 MCP 服务固件。你要做的只是:通电 → 配网 → 记下 IP 和 Token,就可以接入 WorkBuddy 了。
4.1 通电与配网
- 通电— 给 AI 开关接好电源,指示灯亮起即开机。
- 配网— 按说明书用手机 App 或配网按键,把开关连到你家的 Wi-Fi(需与运行 WorkBuddy 的电脑同一局域网)。
- 记录 IP 与 Token— 配网成功后,在 App 里查看设备的局域网 IP(如
192.168.3.44)和鉴权 Token。MCP 端点为http://<设备IP>/mcpserver。
图:打开一路开关的配置页面,复制MCP的配置
4.2 设备上线确认
在浏览器或命令行里访问 MCP 端点,确认能响应:
# 简易连通性测试(Bearer 鉴权) curl -H "Authorization: Bearer <你的Token>" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' \ http://192.168.3.44/mcpserver💡AI 开关内置的 MCP 工具
relays.set(单个开关)、relays.set_many(批量)、relays.list(列出所有路及状态)、device.status(设备状态)、device.info(设备信息)、device.reboot(重启)。完整速查见附录。
五、接入 WorkBuddy(MCP)
5.1 编辑 MCP 配置
WorkBuddy 的 MCP 配置文件位于~/.workbuddy/mcp.json。把 AI 开关作为 streamable-HTTP 类型的 MCP Server 加进去:
{ "mcpServers": { "chiptoai-esp32": { "type": "streamable-http", "url": "http://192.168.3.44/mcpserver", "headers": { "Authorization": "Bearer <你的Token>" } } } }⚠️注意
不要覆盖文件里已有的其他 MCP 配置,只 merge 新增chiptoai-esp32这一项。URL 里的 IP 要替换成你设备的实际局域网 IP;WorkBuddy 运行的电脑需与 AI 开关在同一局域网。
图2:WorkBuddy设备连接成功
5.2 信任并启用
- 保存
mcp.json后,该 MCP 不会自动生效。 - 打开 WorkBuddy → 右上角「连接器管理」。
- 找到
chiptoai-esp32,点击「信任/Trust」启用。 - 状态变为「已连接」即接入成功。
5.3 测试工具可用
在 WorkBuddy 对话里直接说“列出继电器”或“打开独立灯”,确认大模型能调用到relays.list/relays.set并返回设备真实状态。
// relays.set 参数说明 { "id": "relay_1", // AI 开关的第 1 路,对应"独立灯" "state": "on" // "on" 打开 / "off" 关闭 } // 成功返回:{ "ok": true, "id": "relay_1", "state": "on", "changed": true }六、自动化逻辑详解
6.1 三个关键决策点
| 决策点 | 本案例做法 | 为什么 |
|---|---|---|
| 气温来源 | WebFetch 抓天气网站实时气温 | 预报最高温 ≠ 当前温度;要控当前状态必须取实时值 |
| 判定阈值 | ≥ 35℃ 开,< 35℃ 关 | 35℃ 是高温预警线,可按需调整 |
| 执行动作 | 调relays.set设置 relay_1 | 直接、幂等;已是目标状态时changed:false不重复动作 |
6.2 完整判定流程
flowchart TD S([定时触发 · 每小时]) --> A[WebFetch 抓取实时气温] A --> B{当前气温 ≥ 35℃ ?} B -->|是| C[relays.set state=on] B -->|否| D[relays.set state=off] C --> E[写记录 + 微信推送] D --> E📌图 3 · 自动化判定与执行流程
⚠️关于“实时气温”的坑
天气网站返回的数据常混入历史/缓存值(如 6 月、前一天的整点数据)。抓取后必须核对时间戳与日期,取“当前天气信息”区块里的实时温度,而非预报最高温或昨日整点。本案例就遇到过搜索结果里混入 6 月 17 日数据的情况。
七、创建 WorkBuddy 自动化
7.1 字段总览
| 字段 | 本案例取值 | 说明 |
|---|---|---|
| 名称 | 根据室外真实气温,自动控制开关打开 | 便于识别 |
| 计划类型 | recurring(周期) | 每小时重复 |
| RRULE | FREQ=HOURLY;INTERVAL=1 | 每 1 小时一次,全天 |
| 工作目录 | 本项目目录 | 自动化执行时的 cwd |
| 模型 | hy3(开启 thinking) | 需要联网抓取+推理,建议带思考能力 |
| 推送 | 微信推送开 | 每次执行结果通知到手机 |
7.2 任务 Prompt(可直接复制)
Prompt 只描述任务本身,不要把计划/目录写进去(那些由自动化字段提供)。一份清晰的 Prompt:
请查询当前长沙市实时气温,如果气温大于等于 35 摄氏度, 则打开 独立灯;如果小于 35 摄氏度,则关闭 独立灯。 要求: 抓取天气网站时取"当前天气信息"里的实时温度,并核对日期/时间戳, 剔除历史或缓存数据;不要用预报最高温代替当前温度。 "独立灯"对应 ChipToAi 一路AI开关的第 1 路(relay_1), 通过 chiptoai-esp32 MCP 的 relays.set 控制,state 取 on / off。 直接执行,简短回报:实时温度、判定结果、设备返回状态。7.3 创建方式
- A. 对话创建(最简单)— 直接对 WorkBuddy 说:“帮我建个自动化,每小时查长沙实时气温,≥35℃ 打开独立灯,<35℃ 关闭独立灯。” 它会用
automation_update工具自动建好。 - B. 界面创建— 在自动化设置页手动填名称、Prompt、计划(RRULE)、工作目录、模型,保存启用。
八、运行与验证
8.1 手动跑一次
创建后不必等整点,可在自动化列表里「立即运行」一次,或在对话里直接复述 Prompt 验证全链路。
8.2 预期输出
当前实时气温 34℃ (< 35℃) → 关闭独立灯(relay_1 off) 设备返回:{ "ok": true, "id": "relay_1", "state": "off", "changed": true }
8.3 调试清单
| 现象 | 排查 |
|---|---|
| 气温一直取不对 | 检查是否误读了历史/缓存数据;换数据源(weather.com.cn ↔ tianqi.so.com)交叉验证 |
| MCP 调用失败 | 确认 WorkBuddy 与 AI 开关同局域网、IP 未变、Token 正确、连接器已信任 |
| 灯没反应 | 先relays.list确认 id;再查接线、供电是否正常;最后看设备状态 |
| 状态没变化 changed:false | 正常,说明已是目标状态,避免重复动作 |
| 自动化没触发 | 检查状态为 ACTIVE、RRULE 正确、未超出 validFrom/validUntil 区间 |
九、常见问题与进阶
Q1:用预报温度还是实时温度?
控制当前开关状态用实时温度;若要“提前半小时打开”,可改用预报温度或提前触发。两者各有取舍,关键是 Prompt 里写清楚取哪个。
Q2:阈值想改怎么办?
改 Prompt 里的数字即可,比如“≥ 30℃ 开”。也可改成区间逻辑:“30–35℃ 开风扇,>35℃ 开空调”。
Q3:多个开关 / 多个城市?
- 多路:ChipToAi 也有多路 AI 开关,每一路是一个 relay(relay_1/2/3…),Prompt 里分别指明即可。
- 多城市:在 Prompt 里写多个城市,分别判定分别控制。
Q4:数据源更可靠的方式?
可接入付费气象 API(和风天气、彩云等)拿到结构化 JSON,避免网页抓取的时间戳陷阱;也可本地加一个温湿度传感器作为兜底。
Q5:能联动别的 MCP 吗?
当然。同一套思路可换成:空气质量 MCP 联动新风机、股价数据联动提示灯、日历 MCP 联动会议勿扰灯等。
🚨再次强调安全
1、控制市电设备务必由专业人员施工,做好绝缘、漏保与熔断。
2、AI 开关的通断能力有限,大功率负载需配交流接触器。3、在实际业务落地过程中,长期无人值守建议加温升/烟雾等告警联动,提升可靠性。
十、附录速查表
10.1 ChipToAi AI 开关 MCP 工具
| 工具 | 参数 | 作用 |
|---|---|---|
relays.set | id, state(on/off) | 设置某一路开关 |
relays.set_many | 批量项数组 | 一次设置多路 |
relays.list | — | 列出所有路及当前状态 |
device.status | — | 设备在线/运行状态 |
device.info | — | 设备信息(版本等) |
device.reboot | — | 重启设备 |
10.2 本案例关键参数
| 项 | 值 |
|---|---|
| 硬件 | ChipToAi 一路AI开关(成品,开箱即用) |
| MCP 名称 | chiptoai-esp32 |
| 端点 | http://192.168.3.44/mcpserver |
| 鉴权 | Bearer Token |
| 开关路 id | relay_1(“独立灯”) |
| 触发频率 | FREQ=HOURLY;INTERVAL=1 |
| 判定阈值 | ≥ 35℃ 开 / < 35℃ 关 |
天气联动 MCP 控制开关 · 实战教程 · 基于 WorkBuddy 自动化 + ChipToAi 一路AI开关 ·
