Install
openclaw skills install @wittiot/wittiot-device-skillWittIoT气象站数据查询,支持WittStation系列气象站,提供实时温湿度、气压、光照、风速风向、降雨量等传感器数据查询,以及24小时/7天/30天历史趋势查询。也支持通过设备短码(shortcode)免登录查询公开气象站数据。
openclaw skills install @wittiot/wittiot-device-skillWittIoT 气象站数据查询服务,支持查询绑定在你账户下的 WittStation 气象站的实时与历史传感器数据,以及通过设备短码查询他人公开气象站的实时数据(无需登录)。
首次使用时需要配置 WittIoT API Key:
witt_sk_xxxx)export WITTIOT_API_KEY=witt_sk_your_key_hereconfig.json短码查询功能(
--action shortcode)无需 API Key,任何人都可以直接使用。
当用户表达了以下意图之一时,使用此 Skill:
根据用户意图判断操作类型:
| 用户意图 | 操作(--action) | 是否需要 API Key |
|---|---|---|
| 查询实时天气 | realtime | ✅ 需要 |
| 查询历史数据 | history | ✅ 需要 |
| 列出设备 | devices | ✅ 需要 |
| 通过短码查询公开数据 | shortcode | ❌ 不需要 |
WITTIOT_API_KEY 或本地 config.json 中有 apiKey,直接使用请求 API Key 的回复模板:
🔑 查询 WittIoT 气象站数据需要 API Key,请提供你的 Key。
(在 https://wittiot.com/index/apikey 可以免费创建,格式为 witt_sk_xxxx)
export WITTIOT_API_KEY=witt_sk_your_key_here
# 自动选择唯一设备(账户只有1台时)
python3 scripts/wittiot_query.py --action realtime
# 指定设备名称
python3 scripts/wittiot_query.py --action realtime --device-name "Backyard Station"
# 指定设备 ID
python3 scripts/wittiot_query.py --action realtime --device-id 1
# 24小时历史(默认)
python3 scripts/wittiot_query.py --action history --device-name "Backyard Station"
# 7天历史
python3 scripts/wittiot_query.py --action history --device-name "Backyard Station" --range 7d
# 30天历史
python3 scripts/wittiot_query.py --action history --device-id 1 --range 30d
python3 scripts/wittiot_query.py --action devices
python3 scripts/wittiot_query.py --action shortcode --code ABC123
{
"devices": [
{
"id": 1,
"name": "Backyard Station",
"model": "WS6900",
"sn": "WS6900-000001",
"online": true,
"visibility": "public"
}
]
}
以友好的方式列出设备,标注在线/离线状态和公开/私有模式。
{
"device_id": 1,
"device_name": "Backyard Station",
"online": true,
"sensors": {
"temperature": "23.5 °C",
"humidity": "68.2 %",
"pressure": "1013.2 hPa",
"light": "45.3 Klux",
"wind_speed": "3.2 m/s",
"wind_gust": "5.1 m/s",
"wind_direction": "270° (W)",
"rainfall": "0.0 mm"
},
"_raw": { ... }
}
以自然语言向用户汇报数据,例如:
🌡 你的「Backyard Station」气象站当前数据(在线):温度 23.5°C,湿度 68%,气压 1013.2 hPa,西风 3.2 m/s,无降雨。
当账户有多台设备且用户未指定时,脚本返回:
{"choose_device": [{"id": 1, "name": "Backyard Station"}, {"id": 2, "name": "Rooftop Station"}]}
此时应提示用户选择设备,然后用 --device-name 或 --device-id 重新运行。
提示用户选择设备的回复模板:
📡 你有以下气象站,请告诉我查询哪一台:
1. Backyard Station
2. Rooftop Station
{
"device_id": 1,
"range": "24h",
"count": 144,
"data": [
{"timestamp": 1743000000, "temperature": 22.1, "humidity": 65.0},
...
]
}
对历史数据进行趋势分析:最高/最低/平均值,并以自然语言描述趋势。
{
"shortcode": "ABC123",
"device_name": "Community Weather Station",
"model": "WS6900",
"online": true,
"sensors": {
"temperature": "21.0 °C",
"humidity": "72.0 %"
}
}
当脚本返回错误时,使用以下处理方式:
| 情况 | 处理 |
|---|---|
error: Missing API key | 提示用户提供 API Key(见第二步模板) |
error: HTTP 401 | 提示 API Key 无效,请重新获取 |
error: No devices found | 提示用户尚未绑定气象站,引导访问 https://wittiot.com/index/dashboard |
error: Device 'xxx' not found + available 列表 | 提示可用设备名称,请用户重新选择 |
error: Shortcode not found or device is private | 提示短码不存在或设备未设为公开 |
choose_device | 列出设备供用户选择(见第四步) |
设备 online: false | 告知用户设备当前离线,数据可能不是最新 |
401 固定回复文案:
🔑 API Key 无效或已过期,请访问 https://wittiot.com/index/apikey 重新生成后提供。
配置文件位于 config.json(参考 config.example.json):
{
"apiKey": "witt_sk_your_api_key_here"
}
设置 Key 的方式(优先级从高到低):
--api-key witt_sk_xxxexport WITTIOT_API_KEY=witt_sk_xxxconfig.json 中的 apiKey 字段wittiot_query.py — WittIoT 气象站数据查询脚本(Python 3,无外部依赖)api-spec.md — WittIoT API 端点规范与响应结构说明