iqair

TotalClaw 作者 totalclaw

从 IQAir API 获取全球任何地点的实时空气质量数据。返回带有视觉指示器和质量级别的 AQI(空气质量指数)。当被问及特定城市/地点的空气质量、污染水平或 AQI 时使用(例如,“里加的空气怎么样?”、“北京外出安全吗?”、“空气质量怎么样?”)。当被问及一般天气时,也可以使用空气质量信息来补充天气数据(例如,“布达佩斯的天气怎么样?”、“今天的天气怎么样?”)。

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install totalclaw:totalclaw~atesluks-iqair
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~atesluks-iqair/file -o atesluks-iqair.md
## 概述(中文)

从 IQAir API 获取全球任何地点的实时空气质量数据。返回带有视觉指示器和质量级别的 AQI(空气质量指数)。当被问及特定城市/地点的空气质量、污染水平或 AQI 时使用(例如,“里加的空气怎么样?”、“北京外出安全吗?”、“空气质量怎么样?”)。当被问及一般天气时,也可以使用空气质量信息来补充天气数据(例如,“布达佩斯的天气怎么样?”、“今天的天气怎么样?”)。

## 原文

# IQAir Air Quality Checker

Get real-time air quality data from the IQAir API with formatted output including AQI score, emoji indicator, and quality level.

## Prerequisites

**API Key Required**: User must have a free IQAir API key stored in the `IQAIR_API_KEY` environment variable.

If the key is not set, guide the user:
1. Visit https://dashboard.iqair.com/personal/api-keys
2. Sign up/sign in and subscribe to the free Community plan
3. Copy the API key
4. Set it: `export IQAIR_API_KEY="your_key_here"`

## Quick Usage

**By city name:**
```bash
python scripts/get_aqi.py Riga Latvia
python scripts/get_aqi.py London "United Kingdom"
python scripts/get_aqi.py Budapest Hungary
```

**By coordinates (most reliable):**
```bash
python scripts/get_aqi.py --lat 56.9496 --lon 24.1052
```

**Nearest city (based on IP):**
```bash
python scripts/get_aqi.py --nearest
```

## How to Respond to User Queries

When a user asks about air quality:

1. **Determine the location** - Extract city/country from their query
2. **Run the script** - Use `scripts/get_aqi.py` with appropriate arguments
3. **Return formatted output** - The script provides emoji, AQI value, level, and location

**Example interaction:**

User: "How good is air in Riga?"

Response process:
- Location: Riga, Latvia
- Run: `python scripts/get_aqi.py Riga Latvia`
- Output: `🟢 19 - Good\nRiga, Latvia`
- Reply: "Air quality in Riga is currently excellent! 🟢 19 (Good)"

## Handling Location Names

**City/country names**:
- Use exact names as they appear in IQAir's database
- Capital cities: Often the state/province matches the city name
- If city lookup fails, try coordinates instead

**Common location patterns**:
- Riga, Latvia → `Riga Latvia` (state defaults to city)
- London, UK → `London "United Kingdom"` (quote if spaces)
- New York, USA → `"New York" "United States" "New York"` (city, country, state)

**When in doubt**: Use coordinate-based lookup with `--lat` and `--lon` (more reliable).

## Output Format

The script returns a concise, formatted string:
```
🟢 45 - Good
Riga, Latvia
```

Customize your response based on the AQI level:
- **0-50 (🟢 Good)**: "Excellent", "Perfect for outdoor activities"
- **51-100 (🟡 Moderate)**: "Acceptable", "Sensitive people should limit prolonged outdoor exertion"
- **101-150 (🟠 USG)**: "Unhealthy for sensitive groups", "Children and people with respiratory issues should reduce outdoor exertion"
- **151-200 (🔴 Unhealthy)**: "Everyone may experience health effects", "Reduce outdoor activities"
- **201-300 (🟣 Very Unhealthy)**: "Health alert", "Avoid outdoor activities"
- **301+ (🟤 Hazardous)**: "Emergency conditions", "Stay indoors"

## Technical Details

For API specifications, endpoints, and error handling, see `references/api.md`.

## Rate Limits

Free Community plan limits:
- 5 calls/minute
- 500 calls/day
- 10,000 calls/month

Avoid making repeated calls for the same location within short time periods.