{
  "schema_version": "public_weather_detail_v1",
  "updated_at": "2026-06-08T15:00:21.348Z",
  "city": {
    "id": "xian_yanta",
    "name": "西安雁塔区",
    "label": "长翠路",
    "timezone": "Asia/Shanghai"
  },
  "current": {
    "time": "2026-06-08T22:57:29+08:00",
    "temperatureC": 21,
    "apparentTemperatureC": 23,
    "humidityPercent": 58,
    "pressureHpa": 963,
    "weatherCode": 1,
    "weatherText": "晴",
    "windSpeedKmh": 9,
    "visibilityM": null
  },
  "today": {
    "weatherCode": 1,
    "weatherText": "晴",
    "temperatureMinC": 16,
    "temperatureMaxC": 28,
    "precipitationProbabilityMax": 0,
    "precipitationSum": null,
    "windGustKmh": 9
  },
  "tomorrow": {
    "weatherCode": 1,
    "weatherText": "晴",
    "temperatureMinC": 17,
    "temperatureMaxC": 30,
    "precipitationProbabilityMax": 0,
    "precipitationSum": null,
    "windGustKmh": 14.15
  },
  "hourly": {
    "times": [
      "2026-06-08T23:00:00.000+08:00",
      "2026-06-09T00:00:00.000+08:00",
      "2026-06-09T01:00:00.000+08:00",
      "2026-06-09T02:00:00.000+08:00",
      "2026-06-09T03:00:00.000+08:00",
      "2026-06-09T04:00:00.000+08:00",
      "2026-06-09T05:00:00.000+08:00",
      "2026-06-09T06:00:00.000+08:00",
      "2026-06-09T07:00:00.000+08:00",
      "2026-06-09T08:00:00.000+08:00",
      "2026-06-09T09:00:00.000+08:00",
      "2026-06-09T10:00:00.000+08:00",
      "2026-06-09T11:00:00.000+08:00",
      "2026-06-09T12:00:00.000+08:00",
      "2026-06-09T13:00:00.000+08:00",
      "2026-06-09T14:00:00.000+08:00",
      "2026-06-09T15:00:00.000+08:00",
      "2026-06-09T16:00:00.000+08:00",
      "2026-06-09T17:00:00.000+08:00",
      "2026-06-09T18:00:00.000+08:00",
      "2026-06-09T19:00:00.000+08:00",
      "2026-06-09T20:00:00.000+08:00",
      "2026-06-09T21:00:00.000+08:00"
    ],
    "temperaturesC": [
      20,
      20,
      19,
      18,
      18,
      18,
      17,
      18,
      20,
      21,
      24,
      25,
      26,
      29,
      29,
      30,
      30,
      30,
      30,
      30,
      28,
      26,
      25
    ],
    "weatherCodes": [
      1,
      1,
      1,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      1,
      1,
      1,
      1,
      1,
      1,
      1
    ],
    "precipitationProbabilities": [],
    "description": null
  },
  "minutely": {
    "pubTime": "2026-06-08T23:00:21+08:00",
    "text": "未来两小时不会下雨，您可以放心出门~",
    "shortText": "2小时内无降雨",
    "probabilityDesc": "2小时内无降雨",
    "maxProbabilityDesc": "2小时内无降雨",
    "headIconType": "rain_0",
    "rainDistanceKm": 0,
    "startTime": null,
    "peakTime": null,
    "endTime": null,
    "startOffsetMinutes": null,
    "isActive": false,
    "values": [
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0
    ]
  },
  "alerts": [],
  "derived": {
    "state": "normal",
    "severity": "none",
    "hazards": [],
    "abnormalStartingSoon": false,
    "upcomingHazards": [],
    "alertIds": [],
    "rainProbabilityNext1h": 0,
    "weatherText": "晴",
    "advice": [
      "天气整体平稳，按常规安排即可"
    ],
    "polling": {
      "suggestedPollingMode": "normal_60m",
      "suggestedNextRunSeconds": 3600,
      "reason": "天气整体平稳"
    }
  },
  "event": {
    "eventType": "state_unchanged",
    "shouldNotify": false,
    "notificationText": "",
    "dedupeKey": "xian_yanta|state_unchanged|2026-06-08",
    "reason": "状态无须通知"
  },
  "notification": {
    "status": "skipped_no_notify_target",
    "provider": "none"
  },
  "freshness": {
    "isStale": false,
    "lastSuccessAt": "2026-06-08T15:00:21.348Z",
    "staleReason": null,
    "staleSeconds": 0,
    "sourceUpdatedAt": "2026-06-08T15:00:21.348Z"
  },
  "daily_series": [
    {
      "label": "今天",
      "weatherText": "晴",
      "minC": 16,
      "maxC": 28,
      "precipitationProbabilityMax": 0
    },
    {
      "label": "明天",
      "weatherText": "晴",
      "minC": 17,
      "maxC": 30,
      "precipitationProbabilityMax": 0
    },
    {
      "label": "后天",
      "weatherText": "多云",
      "minC": 18,
      "maxC": 31,
      "precipitationProbabilityMax": 0
    },
    {
      "label": "第4天",
      "weatherText": "多云",
      "minC": 22,
      "maxC": 33,
      "precipitationProbabilityMax": 0
    },
    {
      "label": "第5天",
      "weatherText": "晴",
      "minC": 20,
      "maxC": 34,
      "precipitationProbabilityMax": 0
    }
  ],
  "current_extras": {
    "wind_direction_deg": 208,
    "uv_index": 0,
    "visibility_km": null
  },
  "aqi": {
    "aqi": 38,
    "primary": "",
    "pub_time": "2026-06-08T22:00:00+08:00",
    "suggest": "空气很好，快呼吸新鲜空气，拥抱大自然吧",
    "pm25": 16,
    "pm10": 35,
    "no2": 37,
    "so2": 5,
    "o3": 68,
    "co": 0.64
  },
  "sun_cycle": {
    "today_sunrise": "2026-06-08T05:32:00+08:00",
    "today_sunset": "2026-06-08T19:54:00+08:00",
    "tomorrow_sunrise": "2026-06-09T05:32:00+08:00",
    "tomorrow_sunset": "2026-06-09T19:55:00+08:00"
  },
  "source_summary": {
    "current": {
      "feelsLike": "weatherbj(locationKey=101110113)",
      "weather": "weatherbj(locationKey=101110113)",
      "temperature": "weatherbj(locationKey=101110113)",
      "humidity": "weatherbj(locationKey=101110113)",
      "pressure": "weatherbj(locationKey=101110113)",
      "windDir": "caiyun(locationKey=101110113)",
      "windSpeed": "caiyun(locationKey=101110113)",
      "uvIndex": "caiyun(locationKey=34.221,108.939,locale=zh_CN)"
    },
    "daily": {
      "preciProbability": "caiyun(locationKey=34.221,108.939,locale=zh_CN)",
      "weather": "weatherbj(locationKey=101110113)",
      "temperature": "weatherbj(locationKey=101110113)",
      "sunRiseSet": "weatherbj(locationKey=101110113)",
      "aqi": "caiyun(locationKey=34.221,108.939,locale=zh_CN)",
      "wind": "caiyun(locationKey=34.221,108.939)"
    },
    "hourly": {
      "precipitationProbability": "caiyun(locationKey=34.221,108.939,locale=zh_CN)",
      "weather": "weatherbj(locationKey=101110113)",
      "temperature": "weatherbj(locationKey=101110113)",
      "aqi": "caiyun(locationKey=34.221,108.939,locale=zh_CN)",
      "wind": "caiyun(locationKey=34.221,108.939, latitude=null, longitude=null)",
      "desc": "caiyun(locationKey=34.221,108.939, latitude=null, longitude=null)"
    },
    "client_info": {
      "appVersion": 16000717,
      "isLocated": true,
      "isGlobal": false,
      "appKey": "weather20151024",
      "locale": "zh_CN"
    }
  },
  "hourly_temperature_series": [
    {
      "label": "23:00",
      "value": 21
    },
    {
      "label": "23:00",
      "value": 20
    },
    {
      "label": "00:00",
      "value": 20
    },
    {
      "label": "01:00",
      "value": 19
    },
    {
      "label": "02:00",
      "value": 18
    },
    {
      "label": "03:00",
      "value": 18
    },
    {
      "label": "04:00",
      "value": 18
    },
    {
      "label": "05:00",
      "value": 17
    },
    {
      "label": "06:00",
      "value": 18
    },
    {
      "label": "07:00",
      "value": 20
    },
    {
      "label": "08:00",
      "value": 21
    },
    {
      "label": "09:00",
      "value": 24
    }
  ],
  "hourly_weather_series": [
    {
      "label": "23:00",
      "text": "晴",
      "code": 1,
      "precipitationProbability": null,
      "tone": "plain",
      "isCurrent": true
    },
    {
      "label": "23:00",
      "text": "晴",
      "code": 1,
      "precipitationProbability": null,
      "tone": "plain",
      "isCurrent": false
    },
    {
      "label": "00:00",
      "text": "晴",
      "code": 1,
      "precipitationProbability": null,
      "tone": "plain",
      "isCurrent": false
    },
    {
      "label": "01:00",
      "text": "晴",
      "code": 1,
      "precipitationProbability": null,
      "tone": "plain",
      "isCurrent": false
    },
    {
      "label": "02:00",
      "text": "晴",
      "code": 0,
      "precipitationProbability": null,
      "tone": "plain",
      "isCurrent": false
    },
    {
      "label": "03:00",
      "text": "晴",
      "code": 0,
      "precipitationProbability": null,
      "tone": "plain",
      "isCurrent": false
    },
    {
      "label": "04:00",
      "text": "晴",
      "code": 0,
      "precipitationProbability": null,
      "tone": "plain",
      "isCurrent": false
    },
    {
      "label": "05:00",
      "text": "晴",
      "code": 0,
      "precipitationProbability": null,
      "tone": "plain",
      "isCurrent": false
    },
    {
      "label": "06:00",
      "text": "晴",
      "code": 0,
      "precipitationProbability": null,
      "tone": "plain",
      "isCurrent": false
    },
    {
      "label": "07:00",
      "text": "晴",
      "code": 0,
      "precipitationProbability": null,
      "tone": "plain",
      "isCurrent": false
    },
    {
      "label": "08:00",
      "text": "晴",
      "code": 0,
      "precipitationProbability": null,
      "tone": "plain",
      "isCurrent": false
    },
    {
      "label": "09:00",
      "text": "晴",
      "code": 0,
      "precipitationProbability": null,
      "tone": "plain",
      "isCurrent": false
    }
  ],
  "hourly_combined_series": [
    {
      "label": "23:00",
      "temperatureC": 21,
      "weatherText": "晴",
      "precipitationProbability": null,
      "precipitationAmountMm": null,
      "tone": "plain",
      "glyph": "☼",
      "isCurrent": true
    },
    {
      "label": "23:00",
      "temperatureC": 20,
      "weatherText": "晴",
      "precipitationProbability": null,
      "precipitationAmountMm": null,
      "tone": "plain",
      "glyph": "☼",
      "isCurrent": false
    },
    {
      "label": "00:00",
      "temperatureC": 20,
      "weatherText": "晴",
      "precipitationProbability": null,
      "precipitationAmountMm": null,
      "tone": "plain",
      "glyph": "☼",
      "isCurrent": false
    },
    {
      "label": "01:00",
      "temperatureC": 19,
      "weatherText": "晴",
      "precipitationProbability": null,
      "precipitationAmountMm": null,
      "tone": "plain",
      "glyph": "☼",
      "isCurrent": false
    },
    {
      "label": "02:00",
      "temperatureC": 18,
      "weatherText": "晴",
      "precipitationProbability": null,
      "precipitationAmountMm": null,
      "tone": "plain",
      "glyph": "☼",
      "isCurrent": false
    },
    {
      "label": "03:00",
      "temperatureC": 18,
      "weatherText": "晴",
      "precipitationProbability": null,
      "precipitationAmountMm": null,
      "tone": "plain",
      "glyph": "☼",
      "isCurrent": false
    },
    {
      "label": "04:00",
      "temperatureC": 18,
      "weatherText": "晴",
      "precipitationProbability": null,
      "precipitationAmountMm": null,
      "tone": "plain",
      "glyph": "☼",
      "isCurrent": false
    },
    {
      "label": "05:00",
      "temperatureC": 17,
      "weatherText": "晴",
      "precipitationProbability": null,
      "precipitationAmountMm": null,
      "tone": "plain",
      "glyph": "☼",
      "isCurrent": false
    }
  ],
  "alert_summary": {
    "count": 0,
    "active": false,
    "items": []
  }
}