dsh-weather-panel
Sidebar weather panel: current conditions, 5-day and 24-hour forecasts, an hourly rain chart, temperature history, CMA alerts with graded reminders and county-level matching, a radar mosaic, FY-4B satellite imagery, typhoon tracks, and ECMWF / NW Pacific sea surface temperature charts.
Install
dsh plugin --profile web add dsh-weather-panel
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✓ |
| 2 list | ✓ |
| 3 mount | ✓ |
| 4 boot | — |
Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
<div align="center">
<img src="https://raw.githubusercontent.com/python3603/dsh-weather-panel/main/docs/assets/hero.svg" alt="dsh-weather-panel — 天气、预警与台风,装进 DeepSeek Harness" width="100%" />
</div>
<h1 align="center">dsh-weather-panel · 天气面板</h1>
<h3 align="center">「工作时也不能忘记天气情况哦!」</h3>
<p align="center">
<a href="LICENSE"><img alt="License" src="https://img.shields.io/badge/license-MIT-4f6ef7?style=flat-square"/></a>
<a href="https://www.npmjs.com/package/dsh-weather-panel"><img alt="npm" src="https://img.shields.io/npm/v/dsh-weather-panel?style=flat-square&color=cb3837&logo=npm&logoColor=white"/></a>
<a href="https://github.com/deepseek-ai"><img alt="DeepSeek Harness" src="https://img.shields.io/badge/DeepSeek%20Harness-0.2.x-38bdf8?style=flat-square"/></a>
<img alt="No API key" src="https://img.shields.io/badge/API%20key-not%20required-10b981?style=flat-square"/>
<img alt="Tests" src="https://img.shields.io/badge/tests-142%20passing-brightgreen?style=flat-square"/>
<img alt="Platform" src="https://img.shields.io/badge/surface-Web%20UI-8b5cf6?style=flat-square"/>
</p>
<div align="center">
<img src="https://raw.githubusercontent.com/python3603/dsh-weather-panel/main/docs/assets/memes/jiaban.webp" alt="加班中的鲸鱼娘" width="118" />
<img src="https://raw.githubusercontent.com/python3603/dsh-weather-panel/main/docs/assets/memes/ok.webp" alt="OK" width="118" />
<img src="https://raw.githubusercontent.com/python3603/dsh-weather-panel/main/docs/assets/memes/bixin.webp" alt="比心" width="118" />
</div>
呜啾~ 这里是主人的天气小管家
主人又在对着屏幕敲代码了吧。窗外是晴是雨、要不要带伞、有没有台风——这些小事就交给我盯着好啦。
侧边栏多一个小小的天气图标,点开来就能看到当前城市的气温、风、湿度和未来几天的变化;开 DSH 的时候如果今天会下雨、或者中央气象台发了预警,我会先跳出来提醒主人的,主人点一下「知道了」就好啦。呜啾~
下面开始是严谨部分:数据来自哪里、怎么保证兼容、性能如何、怎样自己构建。可爱到此为止,技术描述不再卖萌。
一张图看懂数据流
<div align="center">
<img src="https://raw.githubusercontent.com/python3603/dsh-weather-panel/main/docs/assets/data-flow.svg" alt="定位、天气、预警与台风数据汇入同一个天气面板" width="100%" />
</div>
数据链路(严谨版):浏览器端并发定位(三个 IP 源竞速,可选系统高精度定位)→ BigDataCloud 逆地理得到城市名 → 以该坐标向 Open-Meteo 请求当前 / 逐时 / 逐日数据;同一轮并行拉取中央气象台全国预警(按市 → 省匹配标题)与台风列表/轨迹;全部结果进入一个共享 store,供面板与启动提醒共用,缓存写入 localStorage。
功能
区块 · 内容
当前天气 · 温度、天气现象(WMO 码本地化)、体感、今日最高/最低
主要参数 · 湿度、海平面气压、风向+风速、阵风、降水、云量、紫外线(含等级)、降水概率、日出、日落、观测时刻
未来 5 天 · 每天最高/最低、天气现象、降水概率、降水量、最大风速、紫外线最大值
未来 24 小时 · 逐时温度、天气图标、降水概率
逐小时降水图 · 24 小时降水柱状图 + 降水概率虚线,右侧带 0 / 50 / 100% 概率刻度,悬停显示每个小时的具体数值
气象预警 · 独立「预警」页签:按本区/县 → 本市 → 本省三级精度匹配;列表只给等级、类型、时间,点开才展开要点摘要 + 防范要点,末尾才是官方原文链接;同市其他区县的预警单列「参考」组,不弹窗、不打扰
分级提醒 · 蓝/黄/橙/红每级独立开关提醒;再单独标记「加强」,被标记的等级弹窗会换成该等级的配色、加顶部警示条与脉冲圆点
台风路径 · 活跃台风或最近一次:离线海岸线底图、轨迹、预报路径、强度配色、带等级标注的风圈(7 / 10 / 12 级);可点选轨迹点看当时气压/风速/移动,一键「回到当前时刻」;中央气象台无活跃台风时显示「近期无活跃台风」并可查看最近一次
启动提醒 · 降水改为滚动 12 小时窗口(凌晨下过、早上起来已经停的雨不再提示);达到你设定等级的预警照常弹窗;同一天同一事件确认一次后不再打扰
提醒设置 · 面板新增「设置」标签页(右上角齿轮也能进):提醒频率(默认每 3 小时最多一次,可改每次/1h/6h/12h/每天)、免打扰时段、每日天气提醒、预警等级开关与加强、预览弹窗;「预警」页的折叠设置保持原样
位置 · 网络定位(公网 IP)/ 系统定位(浏览器高精度,持久生效)二选一,随时切回;手动搜索支持精确到区县(内置 2895 个区县索引,「徐汇区」「浦东新区」都能直接搜到,离线可用);副标题标明来源、IP 与精度
代理提示 · 出口 IP 不在中国大陆时,顶部提示「可能开了代理/VPN,请手动切换城市」
雷达 · 官方雷达拼图:全国 + 华北/东北/华东/华中/华南/西南/西北,与 nmc.cn 相同的产品划分;时次滑杆 + 播放动画,图片直连 image.nmc.cn
历史气温 · 天气页底部:近 7 天 / 近 30 天(默认 7 天)日最高、最低与平均气温折线,带温度带与极值标注(不是 K 线)
卫星云图 · 国家卫星气象中心官方产品(6 个):FY-4B 中国区域(伪彩 / 真彩 72h 回看)、FY-4B 全圆盘(自然色 / 长波红外)、FY-2G 中国区可见光、全球红外 15 分钟;按官方 XML 清单逐帧,滑杆、上一帧/下一帧、点击放大
专业(Pro) · 西北太平洋海表温度(8 个海域、按日回看 15 天)+ ECMWF 中国区域天气图(4 种产品、00Z/12Z 两个起报时次、0–240h 时效),图片可点击放大
交互 · 刷新、°C/°F 与 km/h / mph 切换(持久化)、关闭面板;数据每 10 分钟自动刷新(页面隐藏时暂停,切回补刷)
实际界面
<div align="center">
<img src="https://raw.githubusercontent.com/python3603/dsh-weather-panel/main/docs/screenshots/panel-weather.webp" alt="天气页:当前天气、8 项气象参数、未来 5 天、逐小时降水与历史气温" width="100%" />
<br/>
<sub>天气页 · 当前天气 + 8 项气象参数 + 未来 5 天 + 逐小时降水 + 历史气温(示例定位为手动选择的上海)</sub>
</div>
<div align="center">
<img src="https://raw.githubusercontent.com/python3603/dsh-weather-panel/main/docs/screenshots/panel-alerts.webp" alt="预警页:分级列表、同城参考组与提醒设置" width="100%" />
<br/>
<sub>预警页 · 按本区/本市/本省匹配,点开看要点摘要与防范要点,下方是分级提醒设置</sub>
</div>
<div align="center">
<img src="https://raw.githubusercontent.com/python3603/dsh-weather-panel/main/docs/screenshots/panel-satellite.webp" alt="卫星云图页:FY-4B 中国区域伪彩色云图" width="100%" />
<br/>
<sub>卫星云图 · 国家卫星气象中心 FY-4B / FY-2G 共六个产品,逐帧滑杆与点击放大</sub>
</div>
<div align="center">
<img src="https://raw.githubusercontent.com/python3603/dsh-weather-panel/main/docs/screenshots/panel-radar.webp" alt="雷达页:全国雷达拼图" width="100%" />
<br/>
<sub>雷达拼图 · 全国 + 七大分区,6 分钟时次,逐帧播放</sub>
</div>
<div align="center">
<img src="https://raw.githubusercontent.com/python3603/dsh-weather-panel/main/docs/screenshots/panel-typhoon.webp" alt="台风页:实况轨迹、预报路径、强度配色与带等级的风圈" width="100%" />
<br/>
<sub>台风页 · 实况轨迹(按强度着色)+ 预报路径 + 7 / 10 / 12 级风圈 + 参考城市与经纬网</sub>
</div>
<div align="center">
<img src="https://raw.githubusercontent.com/python3603/dsh-weather-panel/main/docs/screenshots/panel-pro.webp" alt="专业页:西北太平洋海表温度与 ECMWF 中国区域天气图" width="100%" />
<br/>
<sub>专业栏 · 西北太平洋海表温度(按日回看 15 天)+ ECMWF 中国区域天气图(00Z / 12Z、0–240h)</sub>
</div>
界面说明
- 预警页:本区/本市 + 省级预警列表,点开看要点摘要与防范指南,末尾给官方原文;下方是分级提醒设置与「预览弹窗」(按当前定位生成示例预警)。
- 天气页:当前天气大卡(含 8 项参数)+ 未来 5 天卡片 + 逐小时降水图与 24 小时条带 + 历史气温(近 7 / 30 天折线)。
- 卫星页:国家卫星气象中心六个产品(FY-4B 中国区域 / 全圆盘、FY-2G、全球红外 15 分钟),按官方 XML 清单逐帧读取,滑杆 + 上一帧/下一帧 + 点击放大。
- 雷达页:中央气象台雷达拼图,产品划分与 nmc.cn 一致(全国 + 七大分区);时次按官方 6 分钟规则生成,滑杆逐帧 + 播放动画,未发布的时次自动回退。
- 台风页:活跃台风或最近一次;实况轨迹按强度着色、预报路径虚线、7/10/12 级风圈按颜色区分;无活跃台风时显示「近期无活跃台风」,仍可查看最近一次。
- 专业栏:西北太平洋海表温度(8 个海域、按日回看 15 天)+ ECMWF 中国区域天气图(4 种产品、00Z/12Z 起报、0–240h),图片均可点击放大。
- 启动提醒:降水按未来 12 小时判断(现在有雨 / 预计几点到几点有雨),预警按等级提醒;弹窗会测量当前文字颜色,取反极性绘制不透明表面(对比度 ≥ 7:1),尺寸 560 px,浅色 / 深色 / 液态玻璃主题下都能读。
- 每日提醒:可选的定时天气摘要(默认关闭),每天在你设定的时间弹一次,内容是当前天气 + 今日高低温 + 未来 12 小时降水。
安装
要求:DeepSeek Harness 0.2.x 的 Web UI,本机 Node.js ≥ 22(只用于安装与构建,插件本身跑在浏览器)。
**
…(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::14,最后更新 2026-11-06