caiyun-weather

Query Caiyun (ColorfulClouds) weather API for mainland China — real-time conditions, minute-level precipitation, hourly/daily forecasts, severe weather alerts, air quality (AQI), and GCJ-02 coordinate conversion.

Requirements

Requires curl and CAIYUN_API_TOKEN environment variable.

Install

npx skills add whtsky/skills -s caiyun-weather

彩云天气 Skill

中国大陆天气查询首选。数据来源包括中国气象局、ECMWF。

配置

Set the following environment variable:

export CAIYUN_API_TOKEN="your-token"

API 调用

两种查询方式

方式1:经纬度(精确,推荐山区/景点)

https://api.caiyunapp.com/v2.6/{TOKEN}/{经度},{纬度}/{endpoint}

注意:经度在前,纬度在后,使用 GCJ-02 坐标系。

方式2:adcode 行政区划编码(城市级别)

https://api.caiyunapp.com/v2.6/{TOKEN}/weather.json?adcode={adcode}

adcode 只提供城市中心点坐标,空间精度较差。适合查城市天气概览。 参考对照表:https://docs.caiyunapp.com/weather-api/20240617-adcode.csv

综合天气查询(最常用)

# 经纬度方式 - 北京: 116.4074,39.9042
TOKEN="${CAIYUN_API_TOKEN}"
curl -s --compressed "https://api.caiyunapp.com/v2.6/${TOKEN}/116.4074,39.9042/weather?alert=true&dailysteps=7&hourlysteps=24"
# adcode 方式 - 北京市: 110100
curl -s --compressed "https://api.caiyunapp.com/v2.6/${TOKEN}/weather.json?adcode=110100&alert=true&dailysteps=7&hourlysteps=24"

返回包含 realtime + hourly + daily + alert 的完整数据。

实时天气

curl -s --compressed "https://api.caiyunapp.com/v2.6/${TOKEN}/116.4074,39.9042/realtime"

分钟级降水预报

curl -s --compressed "https://api.caiyunapp.com/v2.6/${TOKEN}/116.4074,39.9042/minutely"

历史数据

仅支持过去1天:在请求 URL 后加 dailystart=-1。不支持更早的历史数据。

天气代码 (skycon)

代码含义
CLEAR_DAY / CLEAR_NIGHT
PARTLY_CLOUDY_DAY / PARTLY_CLOUDY_NIGHT多云
CLOUDY
LIGHT_HAZE / MODERATE_HAZE / HEAVY_HAZE
LIGHT_RAIN小雨
MODERATE_RAIN中雨
HEAVY_RAIN大雨
STORM_RAIN暴雨
FOG
LIGHT_SNOW小雪
MODERATE_SNOW中雪
HEAVY_SNOW大雪
STORM_SNOW暴雪
DUST浮尘
SAND沙尘
WIND大风

常用坐标

地点经度,纬度
北京116.4074,39.9042
上海121.4737,31.2304
天津117.1901,39.1256
怀柔/慕田峪116.5704,40.4319
昌平/居庸关116.0711,40.2915
延庆115.9747,40.4567
婺源117.8613,29.2484
景德镇117.1786,29.2687

其他地点用经纬度(可从高德/Google Maps 获取)。

返回数据结构

result.realtime         — 实时天气
result.hourly           — 逐小时预报
result.daily            — 每日预报
  .temperature[]        — {date, max, min}
  .skycon[]             — {date, value}
  .precipitation[]      — {date, max, min, avg, probability}
  .wind[]               — {date, max{speed,direction}, min, avg}
  .humidity[]           — {date, max, min, avg}
  .life_index           — 生活指数
    .ultraviolet[]
    .comfort[]
    .coldRisk[]         — 感冒指数
    .dressing[]         — 穿衣指数
result.alert.content[]  — 预警信息

辅助脚本

bash scripts/weather.sh <经度,纬> [天数:7]
bash scripts/weather.sh 116.4074,39.9042 7

天气展示注意

注意

View source on GitHub →