================================================================================
  Simple Question SQ6: Minimal Open-Meteo REST API Ingestion (Weather & Air Quality)
================================================================================

FULL QUESTION:
SQ6. Minimal External API Test: Query live Kochi weather and air-quality data directly from Open-Meteo REST API using requests and parse key metrics.
Use this simpler program to verify your internet connectivity and verify the response structure before embedding API calls inside CoAP servers or dashboards.

SHORT QUESTION:
Minimal Open-Meteo REST API Query Test.

================================================================================
README & SETUP INSTRUCTIONS:
================================================================================
# SQ6: Minimal Open-Meteo REST API Test

## Purpose
Directly fetch real-time environmental data for Kochi (`lat=9.93, lon=76.27`) without CoAP or MQTT wrappers.

## Requirements
```bash
pip install requests
```

## How to Run
```bash
python test_api.py
```

================================================================================
SOURCE CODE FILES:
================================================================================

1. test_api.py
--------------------------------------------------------------------------------
import requests

WEATHER_URL = "https://api.open-meteo.com/v1/forecast?latitude=9.93&longitude=76.27&current=temperature_2m,relative_humidity_2m,surface_pressure,wind_speed_10m"
AIR_QUALITY_URL = "https://air-quality-api.open-meteo.com/v1/air-quality?latitude=9.93&longitude=76.27&current=pm10,pm2_5,nitrogen_dioxide,sulphur_dioxide,ozone"

def fetch_weather():
    print("Querying Kochi Weather API...")
    resp = requests.get(WEATHER_URL, timeout=5)
    if resp.status_code == 200:
        cur = resp.json().get("current", {})
        print("  Temperature   :", cur.get("temperature_2m"), "°C")
        print("  Humidity      :", cur.get("relative_humidity_2m"), "%")
        print("  Pressure      :", cur.get("surface_pressure"), "hPa")
        print("  Wind Speed    :", cur.get("wind_speed_10m"), "m/s")
        return True
    print(f"  [ERROR] Status: {resp.status_code}")
    return False

def fetch_air_quality():
    print("\nQuerying Kochi Air Quality API...")
    resp = requests.get(AIR_QUALITY_URL, timeout=5)
    if resp.status_code == 200:
        cur = resp.json().get("current", {})
        print("  PM2.5         :", cur.get("pm2_5"), "µg/m³")
        print("  PM10          :", cur.get("pm10"), "µg/m³")
        print("  NO2           :", cur.get("nitrogen_dioxide"), "µg/m³")
        print("  SO2           :", cur.get("sulphur_dioxide"), "µg/m³")
        print("  O3            :", cur.get("ozone"), "µg/m³")
        return True
    print(f"  [ERROR] Status: {resp.status_code}")
    return False

if __name__ == "__main__":
    print("=" * 60)
    print("  SQ6: Open-Meteo REST API Ingestion Test")
    print("=" * 60)
    w_ok = fetch_weather()
    aq_ok = fetch_air_quality()
    if w_ok and aq_ok:
        print("\n[SUCCESS] Open-Meteo REST APIs reachable and functioning!")
--------------------------------------------------------------------------------
