Weather

manifest.json 49 lines

Files · 9
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849{
  "id": "com.lattice.weather",
  "name": "Weather",
  "icon": "🌤️",
  "color": "#f97316",
  "description": "View current weather, five-day forecasts and history for saved locations. Daily forecasts include local dates, conditions, high and low temperatures in Celsius, and total precipitation in millimeters.",
  "requested_permissions": {
    "storage": ["kv", "sql"],
    "network": {
      "allowlist": ["https://api.open-meteo.com/*"]
    },
    "notifications": true,
    "events": {
      "weather-updated": {
        "description": "Current weather and the daily forecasts table were refreshed for a saved location.",
        "schema": {
          "type": "object",
          "properties": {
            "location": { "type": "string", "description": "Saved location name." },
            "temperature_c": { "type": "number", "description": "Air temperature at 2 meters, degrees Celsius." },
            "feels_like_c": { "type": ["number", "null"], "description": "Apparent temperature, degrees Celsius; absent or null means unavailable." },
            "humidity_pct": { "type": "number", "description": "Relative humidity at 2 meters, percent (0–100)." },
            "wind_speed_kmh": { "type": "number", "description": "Wind speed at 10 meters, kilometers per hour." },
            "condition": { "type": "string", "description": "English weather condition; Unknown means unrecognized weather code.", "enum": ["Clear", "Partly cloudy", "Fog", "Drizzle", "Freezing drizzle", "Rain", "Freezing rain", "Snow", "Showers", "Snow showers", "Thunderstorm", "Unknown"] },
            "uv_index": { "type": ["number", "null"], "description": "Dimensionless UV index; absent or null means unavailable." },
            "fetched_at": { "type": "string", "description": "Fetch time, UTC ISO 8601 timestamp." }
          },
          "required": ["location", "temperature_c", "humidity_pct", "wind_speed_kmh", "condition", "fetched_at"]
        }
      },
      "weather-alert": {
        "description": "A refresh reported rain, snow, showers or thunderstorms (weather code ≥65).",
        "schema": {
          "type": "object",
          "properties": {
            "location": { "type": "string", "description": "Saved location name." },
            "alert_type": { "type": "string", "description": "English weather condition, same as condition.", "enum": ["Rain", "Freezing rain", "Snow", "Showers", "Snow showers", "Thunderstorm", "Unknown"] },
            "message": { "type": "string", "description": "Alert text with location, rounded Celsius temperature and km/h wind speed." },
            "temperature_c": { "type": "number", "description": "Air temperature at 2 meters, degrees Celsius." },
            "condition": { "type": "string", "description": "English weather condition; Unknown means unrecognized weather code.", "enum": ["Rain", "Freezing rain", "Snow", "Showers", "Snow showers", "Thunderstorm", "Unknown"] },
            "triggered_at": { "type": "string", "description": "Alert time, UTC ISO 8601 timestamp; equals corresponding fetched_at." }
          },
          "required": ["location", "alert_type", "message", "temperature_c", "condition", "triggered_at"]
        }
      }
    },
    "listeners": {}
  }
}