🧪 Skills

Hefeng Weather - 和风天气

提供基于和风天气API的全面气象数据查询服务,包括实时天气、多天预报、逐小时预报、空气质量、生活指数、气象预警、天文数据、分钟级降水预报、

v0.0.1
❤️ 0
⬇️ 37
👁 1
Share

Description


name: 和风天气查询 description: 提供基于和风天气API的全面气象数据查询服务,包括实时天气、多天预报、逐小时预报、空气质量、生活指数、气象预警、天文数据、分钟级降水预报、格点天气和地理信息查询。当用户需要查询天气信息、空气质量、气象预警或天文数据时触发此技能。 author: fengyu version: 1.0.0 category: weather tags: [weather, forecast, air-quality, astronomy, qweather] dependencies: |

  • Python >= 3.11
  • httpx >= 0.25.0
  • python-dotenv >= 1.0.0
  • pyjwt >= 2.8.0 (可选,JWT认证)
  • cryptography >= 41.0.0 (可选,JWT认证) config: env:
    • HEFENG_API_HOST
    • HEFENG_API_KEY
    • HEFENG_PROJECT_ID (可选)
    • HEFENG_KEY_ID (可选)
    • HEFENG_PRIVATE_KEY_PATH (可选)

和风天气查询 Skill

概述

基于和风天气API的气象数据查询服务,提供全面的天气相关数据查询功能,支持实时天气、天气预报、空气质量、生活指数等多种气象数据查询。

前置配置

1. 获取和风天气API

访问 和风天气开发者平台 注册账号并获取API密钥。

2. 配置认证信息

使用以下 Python 脚本配置API认证:

python scripts/configure.py --api-host "your-domain.qweatherapi.com" --api-key "your_api_key"

或手动创建配置文件 ~/.config/qweather/.env:

HEFENG_API_HOST=your-domain.qweatherapi.com
HEFENG_API_KEY=your_api_key_here

核心功能

1. 基础天气查询

实时天气

查询指定城市的当前天气状况。

触发场景: 用户询问"今天天气怎么样"、"北京现在天气"、"当前气温"等

执行脚本:

python scripts/weather_now.py --city "北京"

参数:

  • --city: 城市名称(如"北京"、"上海")
  • --location: LocationID或经纬度(可选,与city二选一)
  • --lang: 语言(默认"zh")
  • --unit: 单位"m"公制或"i"英制(默认"m")

返回示例:

{
  "now": {
    "temp": "18",
    "text": "晴",
    "windDir": "东北风",
    "windScale": "3",
    "humidity": "45"
  }
}

天气预报

查询未来3-30天的天气预报。

触发场景: 用户询问"明天天气"、"未来一周天气"、"北京7天预报"等

执行脚本:

python scripts/weather.py --city "上海" --days "3d"

参数:

  • --city: 城市名称(必需)
  • --days: 预报天数,支持"3d"(默认)、"7d"、"10d"、"15d"、"30d"

逐小时预报

查询未来24/72/168小时的逐小时天气预报。

触发场景: 用户询问"今天下午天气"、"未来24小时天气"、"每小时预报"等

执行脚本:

python scripts/weather_hourly.py --city "北京" --hours "24h"

参数:

  • --city: 城市名称
  • --location: 经纬度坐标(与city二选一)
  • --hours: 预报小时数,"24h"(默认)、"72h"、"168h"

历史天气

查询最近10天的历史天气数据。

执行脚本:

python scripts/weather_history.py --city "北京" --days 7

2. 空气质量查询

实时空气质量

查询指定城市的实时空气质量指数(AQI)。

触发场景: 用户询问"空气质量怎么样"、"AQI多少"、"PM2.5"等

执行脚本:

python scripts/air_quality.py --city "北京"

参数:

  • --city: 城市名称(必需)

空气质量预报

查询逐小时或逐日的空气质量预报。

执行脚本:

# 逐小时预报
python scripts/air_quality_hourly.py --location "39.90,116.40" --hours "24h"

# 逐日预报
python scripts/air_quality_daily.py --location "39.90,116.40" --days "3d"

历史空气质量

查询最近10天的历史空气质量数据。

执行脚本:

python scripts/air_quality_history.py --city "北京" --days 7

3. 生活指数查询

查询天气生活指数,包括运动、洗车、穿衣、感冒、紫外线等16种指数。

触发场景: 用户询问"适合运动吗"、"要不要洗车"、"穿什么衣服"等

执行脚本:

python scripts/indices.py --city "上海" --days "1d"

参数:

  • --city: 城市名称(必需)
  • --days: 预报天数,"1d"(默认)或"3d"
  • --types: 指数类型ID(可选,默认全部16种)

指数类型:

  • 1:运动指数, 2:洗车指数, 3:穿衣指数, 4:感冒指数, 5:紫外线指数
  • 6:旅游指数, 7:花粉过敏指数, 8:舒适度指数, 9:交通指数, 10:防晒指数
  • 11:化妆指数, 12:空调开启指数, 13:晾晒指数, 14:钓鱼指数, 15:太阳镜指数
  • 16:空气污染扩散条件指数

4. 气象预警查询

查询气象灾害预警信息,包括台风、暴雨、高温等预警。

触发场景: 用户询问"有预警吗"、"天气预警"、"暴雨预警"等

执行脚本:

python scripts/warning.py --city "杭州"

5. 天文数据查询

日出日落时间

查询指定地点和日期的日出日落时间。

触发场景: 用户询问"几点日出"、"日落时间"、"今天太阳几点下山"等

执行脚本:

python scripts/astronomy_sun.py --location "北京" --date "20251029"

参数:

  • --location: 城市名、LocationID或经纬度(必需)
  • --date: 日期,格式yyyyMMdd(今天到未来60天)

月相数据

查询月升月落时间和24小时月相数据。

执行脚本:

python scripts/astronomy_moon.py --location "上海" --date "20251101"

6. 分钟级降水预报

查询未来2小时5分钟级的降水预报。

触发场景: 用户询问"会下雨吗"、"什么时候下雨"、"接下来两小时天气"等

执行脚本:

python scripts/minutely_5m.py --location "116.38,39.91"

7. 格点天气查询

提供高分辨率数值模式的格点天气数据(3-5公里分辨率)。

格点实时天气

python scripts/grid_weather_now.py --location "116.41,39.92"

格点每日预报

python scripts/grid_weather_daily.py --location "116.41,39.92" --days "3d"

格点逐小时预报

python scripts/grid_weather_hourly.py --location "116.41,39.92" --hours "24h"

8. 地理信息查询

热门城市列表

查询热门城市列表。

执行脚本:

python scripts/top_cities.py --number 10 --city-type "cn"

参数:

  • --number: 返回数量,1-100(默认10)
  • --city-type: 城市类型,"cn"(默认)、"world"、"overseas"

POI搜索

搜索兴趣点(景点、潮汐站点等)。

执行脚本:

# 关键词搜索
python scripts/search_poi.py --location "北京" --keyword "故宫" --poi-type "scenic"

# 范围搜索
python scripts/search_poi_range.py --location "116.38,39.91" --poi-type "scenic" --radius 5

POI类型:

  • "scenic": 景点
  • "TSTA": 潮汐站点

使用流程

  1. 识别用户需求: 根据用户问题判断需要查询的天气信息类型
  2. 选择对应脚本: 根据需求选择相应的Python脚本
  3. 构造参数: 从用户输入提取城市名称、日期等参数
  4. 执行脚本: 运行对应的Python脚本获取数据
  5. 格式化输出: 将返回的JSON数据转换为自然语言回复

示例对话

用户: 北京今天天气怎么样?

执行流程:

  1. 识别需求:查询实时天气
  2. 执行脚本:python scripts/weather_now.py --city "北京"
  3. 解析返回数据
  4. 生成回复:"北京当前天气晴,温度18°C,东北风3级,湿度45%"

用户: 明天上海会下雨吗?

执行流程:

  1. 识别需求:查询明日天气预报
  2. 执行脚本:python scripts/weather.py --city "上海" --days "3d"
  3. 提取明天的天气数据
  4. 生成回复:"根据天气预报,上海明天多云转阴,有阵雨,温度15-22°C"

用户: 现在的空气质量怎么样?

执行流程:

  1. 识别需求:查询空气质量(需先确定城市)
  2. 询问用户城市,或使用默认城市
  3. 执行脚本:python scripts/air_quality.py --city "北京"
  4. 生成回复:"当前AQI为65,空气质量良好,PM2.5浓度为45μg/m³"

错误处理

  • 如果城市名称无效,返回"未找到该城市,请检查城市名称"
  • 如果API配置错误,返回"API配置错误,请检查API密钥"
  • 如果网络请求失败,返回"网络请求失败,请稍后重试"
  • 如果参数错误,返回"参数错误,请检查输入"

参考资料

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs