weather · diff

git:20260216.d78e23b to git:20260220.f68ff33

99 added, 27 removed. Audit A to A.

---
name: weather
description: 查询当前天气和天气预报(无需 API 密钥)。
- homepage: https://wttr.in/:help
+ homepage: https://open-meteo.com/
metadata: {"finchbot":{"emoji":"🌤️","requires":{"bins":["curl"]}}}
---
# 天气查询
- 使用两个免费服务查询天气,无需 API 密钥。
+ 使用免费服务查询天气,无需 API 密钥。
- ## wttr.in(主要服务)
+ ## 推荐服务:Open-Meteo
+ 稳定可靠,响应快,数据详细,支持 JSON 格式。
+
+ ### 当前天气
+ ```bash
+ curl -s "https://api.open-meteo.com/v1/forecast?latitude=39.9&longitude=116.4&current=temperature_2m,relative_humidity_2m,wind_speed_10m&timezone=Asia/Shanghai"
+ ```
+
+ ### 未来3天预报
+ ```bash
+ curl -s "https://api.open-meteo.com/v1/forecast?latitude=39.9&longitude=116.4&daily=temperature_2m_max,temperature_2m_min,precipitation_probability&timezone=Asia/Shanghai&forecast_days=3"
+ ```
+
+ ### 小时级预报
+ ```bash
+ curl -s "https://api.open-meteo.com/v1/forecast?latitude=39.9&longitude=116.4&hourly=temperature_2m,precipitation_probability&timezone=Asia/Shanghai&forecast_days=2"
+ ```
+
+ ### 可用参数
+ - `temperature_2m` - 温度(°C)
+ - `relative_humidity_2m` - 相对湿度(%)
+ - `wind_speed_10m` - 风速(km/h)
+ - `wind_direction_10m` - 风向(°)
+ - `precipitation_probability` - 降水概率(%)
+ - `weather_code` - WMO 天气代码
+ - `surface_pressure` - 气压(hPa)
+
+ ### 常用城市坐标
+
+ | 城市 | 纬度 | 经度 |
+ |------|------|------|
+ | 北京 | 39.9 | 116.4 |
+ | 上海 | 31.2 | 121.5 |
+ | 广州 | 23.1 | 113.3 |
+ | 深圳 | 22.5 | 114.1 |
+ | 香港 | 22.3 | 114.2 |
+ | 台北 | 25.0 | 121.5 |
+ | 东京 | 35.7 | 139.7 |
+ | 纽约 | 40.7 | -74.0 |
+ | 伦敦 | 51.5 | -0.1 |
+
+ ### WMO 天气代码
+
+ | 代码 | 天气 |
+ |------|------|
+ | 0 | 晴天 |
+ | 1-2 | 少云/部分多云 |
+ | 3 | 阴天 |
+ | 45-48 | 雾 |
+ | 51-57 | 毛毛雨 |
+ | 61-67 | 雨 |
+ | 71-77 | 雪 |
+ | 80-82 | 阵雨 |
+ | 95-99 | 雷暴 |
+
+ 文档:https://open-meteo.com/en/docs
+
+ ## 备选服务:wttr.in
+
+ 适合快速查看天气,支持图片和月相。
+
+ > **注意**:
+ > - 使用英文城市名(Beijing 而非 北京),中文支持不稳定
+ > - 服务器响应较慢,需添加 `--connect-timeout 30` 参数
+ > - PNG 图片功能可能因网络问题失败
+
### 快速查询
```bash
- curl -s "wttr.in/北京?format=3"
- # 输出: 北京: ⛅️ +8°C
+ curl -s --connect-timeout 30 "http://wttr.in/Beijing?format=3"
+ # 输出: Beijing: ⛅️ +1°C
```
- ### 紧凑格式
+ ### 详细格式
```bash
- curl -s "wttr.in/北京?format=%l:+%c+%t+%h+%w"
- # 输出: 北京: ⛅️ +8°C 71% ↙5km/h
+ curl -s --connect-timeout 30 "http://wttr.in/Beijing?format=%l:+%c+%t+%h+%w"
+ # 输出: Beijing: ⛅️ +1°C 51% ↓6km/h
```
- ### 完整预报
+ ### 今日预报
```bash
- curl -s "wttr.in/北京?T"
+ curl -s --connect-timeout 30 "http://wttr.in/Beijing?1"
```
+ ### 月相查询
+ ```bash
+ curl -s --connect-timeout 30 "http://wttr.in/Beijing?format=%m"
+ # 输出: 🌒
+ ```
+
+ ### 机场代码
+ ```bash
+ curl -s --connect-timeout 30 "http://wttr.in/JFK?format=3"
+ # 输出: JFK: 🌦 +4°C
+ ```
+
+ ### PNG 图片输出
+ ```bash
+ curl -s --connect-timeout 30 "http://wttr.in/Beijing.png" -o "$WORKSPACE/weather/beijing.png"
+ ```
+
+ > **重要**:图片文件保存到工作区的 `weather/` 子目录,路径格式:`$WORKSPACE/weather/{城市名}.png`
+
### 格式代码
- - `%c` 天气状况
+ - `%c` 天气状况(图标)
- `%t` 温度
- `%h` 湿度
- `%w` 风速
- `%l` 位置
- `%m` 月相
- ### 使用提示
- - 空格需要 URL 编码:`wttr.in/New+York`
- - 机场代码:`wttr.in/JFK`
- - 单位:`?m`(公制)`?u`(英制)
- - 仅今天:`?1` · 仅当前:`?0`
- - PNG 图片:`curl -s "wttr.in/上海.png" -o /tmp/weather.png`
-
- ## Open-Meteo(备用服务,JSON 格式)
-
- 免费服务,无需密钥,适合程序调用:
- ```bash
- curl -s "https://api.open-meteo.com/v1/forecast?latitude=39.9&longitude=116.4&current_weather=true"
- ```
-
- 先找到城市的经纬度,然后查询。返回包含温度、风速、天气代码的 JSON。
+ ## 使用建议
- 文档:https://open-meteo.com/en/docs
+ 1. **优先使用 Open-Meteo**:稳定可靠,响应快
+ 2. **快速查询用 wttr.in**:输出直观,但需英文城市名
+ 3. **程序调用用 Open-Meteo**:JSON 格式便于解析