Install
openclaw skills install sunsetbot-monitor-cn查询中国国内火烧云/晚霞/朝霞预报 (sunsetbot.top)。 当用户询问火烧云预报、设置定时火烧云通知时使用。
openclaw skills install sunsetbot-monitor-cn基于 sunsetbot.top JSON API,纯 HTTP 请求获取火烧云预报数据。无需浏览器,单次查询 ~0.6秒。
Core Pipeline: web_fetch API → JSON 解析 → 等级判定 → 阈值通知
[!CAUTION]
🚨 全局执行准则
- config.json 优先:通知目标(飞书 Open ID)必须从
config/config.json读取userOpenId字段,禁止在 SKILL.md 或 payload 中硬编码- 阈值通知:鲜艳度 ≥ 0.2 才发飞书通知,< 0.2 仅写日志不打扰用户
- 双格式日志:每次查询必须同时写入 JSONL(
data/sunsetbot-monitor.log)和 Markdown(data/log.md),追加不覆盖
| 工具 | 用途 | 命令格式 |
|---|---|---|
web_fetch | 查询火烧云数据 | web_fetch(url="https://sunsetbot.top/?intend=select_city&query_city={城市}&event={事件}&model={数据源}") |
message | 发送飞书通知 | message(channel="feishu", to="<config.json userOpenId>", message="...") |
🚧 GATE: 确认查询参数(城市、日期类型、数据源)
API URL 模板:
https://sunsetbot.top/?intend=select_city&query_city={城市}&event={事件}&model={数据源}
| 参数 | 说明 | 可选值 |
|---|---|---|
query_city | 城市名称 | 深圳、上海、北京、广州、杭州等 |
event | 日期类型 | rise_1(今天日出) set_1(今天日落) rise_2(明天日出) set_2(明天日落) |
model | 数据源 | GFS EC |
intend | 固定值 | select_city |
💡 GFS 更新节奏:大更新 7:30-8:30 和 19:30-20:30,小更新 13:30 和 1:30。建议 cron 在 9:00(早间大更新后)和 21:00(晚间大更新后)触发。
一次 web_fetch 即可,返回 JSON:
web_fetch(url="https://sunsetbot.top/?intend=select_city&query_city=深圳&event=set_2&model=GFS")
{
"status": "ok",
"display_city_name": "广东省-深圳",
"display_event_name_cn": "日落",
"tb_quality": "0.36(中小烧)",
"tb_aod": "0.245(还不错)",
"tb_event_time": "2026-05-20 18:57:50",
"display_times_str": "2026051900z"
}
提取规则:
tb_quality 提取数字:正则 /^([\d.]+)/ → 0.36tb_aod 提取数字:同样方式 → 0.245display_event_name_cn 直接使用tb_event_time 直接使用| 鲜艳度 | 等级 | 通知标题 |
|---|---|---|
| < 0.2 | 不烧 | —(无需通知) |
| 0.2 - 0.5 | 中小烧 | 【注意:明日中小烧】 |
| 0.5 - 1.0 | 中大烧 | 【号外!中大烧】 |
| 1.0 - 2.0 | 大烧 | 【大烧!大烧】 |
| > 2.0 | 世纪大烧 | 【世纪大烧!冲!冲!冲!】 |
💡 日出和日落取鲜艳度最大值判定。最大值 < 0.2 时不发通知(仅写日志)。
🚧 GATE: 鲜艳度 ≥ 0.2
先从 config/config.json 读取 userOpenId 作为通知目标。
通知格式:
{通知标题}
📍 {城市} {日期类型}
⏰ {时间}
🔥 鲜艳度: {数值}
🌫️ 气溶胶: {数值}
🔗 https://sunsetbot.top/
⚠️ 日出和日落都有烧时取最大值那次,只发一次通知。
✅ Checkpoint — 通知已发送(或无需通知已跳过)。
无论是否通知,同时写入两种格式:
文件:data/sunsetbot-monitor.log
{"ts":"2026-05-14 13:13","date":"2026-05-15","city":"深圳","type":"🌅日落","c":0.36,"a":0.413,"notify":true}
| 字段 | 说明 |
|---|---|
ts | 查询时间 YYYY-MM-DD HH:mm |
date | 预报日期 YYYY-MM-DD |
city | 城市名 |
type | 🌄日出 或 🌅日落 |
c | 鲜艳度数值 |
a | 气溶胶数值 |
notify | 是否已通知 |
文件:data/log.md
追加一行表格,有烧时加 🔥 标记:
## 火烧云监控日志
| 时间 | 预报 | 城市 | 类型 | 鲜艳度 | 气溶胶 | 等级 |
|------|------|------|------|--------|--------|------|
| 0514 13:13 | 0515 | 深圳 | 🌅日落 | 0.36 | 0.41 | 🔥中小烧 |
| 0519 15:50 | 0520 | 深圳 | 🌄日出 | 0.017 | 0.24 | — |
💡 首次写入时创建文件头(标题 + 表头),后续追加数据行。
✅ Checkpoint — 日志已写入。
{
"name": "sunset-monitor-morning",
"agentId": "main",
"enabled": true,
"schedule": {
"kind": "cron",
"expr": "0 9 * * *",
"tz": "Asia/Shanghai"
},
"sessionTarget": "isolated",
"wakeMode": "now",
"payload": {
"kind": "agentTurn",
"message": "使用 sunsetbot 技能查询深圳明天火烧云(日出+日落),读取 config.json 获取通知配置,按 SKILL.md 流程执行。"
},
"delivery": { "mode": "none" }
}
💡 两个 cron job(早 9:00 / 晚 21:00),payload 相同。
配置文件 config/config.json:
{
"notifyChannel": "feishu",
"userOpenId": "你的飞书Open ID"
}
| 字段 | 说明 |
|---|---|
notifyChannel | 通知渠道(当前仅支持 feishu) |
userOpenId | 飞书用户 Open ID,从飞书开发者后台获取 |
| 配置 | 默认值 |
|---|---|
| 城市 | 深圳 |
| 数据源 | GFS |
| 查询日期 | 明天日出 + 明天日落 |
| 通知渠道 | 飞书 |
| 版本 | 日期 | 说明 |
|---|---|---|
| v1.0.0 | 2026-04-15 | 初始版本,基于 browser 工具执行 DOM 操作获取数据 |
| v1.1.0 | 2026-04-18 | 尝试 web_fetch 重写(check_web_fetch.js),但调用方式有误未生效 |
| v2.0.0 | 2026-05-19 | 重大重构:发现 sunsetbot.top JSON API,完全移除 browser 依赖;纯 web_fetch 调用,0.6 秒/次;双格式日志(JSONL + Markdown);config.json 独立管理通知配置,SKILL.md 零隐私泄露 |