SkillHub

hefengweather

v0.0.1

提供基于和风天气API的全面气象数据查询服务,包括实时天气、多天预报、逐小时预报、空气质量、生活指数、气象预警、天文数据、分钟级降水预报、格点天气和地理信息查询。当用户需要查询天气信息、空气质量、气象预警或天文数据时触发此技能。

Sourced from ClawHub, Authored by fengyucn

Installation

Please help me install the skill `hefengweather` from SkillHub official store. npx skills add fengyucn/hefengweather

和风天气查询 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密钥"
  • 如果网络请求失败,返回"网络请求失败,请稍后重试"
  • 如果参数错误,返回"参数错误,请检查输入"

参考资料

  • 和风天气官方文档
  • 和风天气API参考
  • 项目仓库: hefeng-weather-skill