{
  "updatedAt": "2026-04-10T14:15:18.471Z",
  "city": {
    "id": "xian_yanta",
    "name": "西安雁塔区",
    "latitude": 34.23,
    "longitude": 108.945,
    "timezone": "Asia/Shanghai",
    "sourceOrder": [
      "xiaomi_weather",
      "open_meteo"
    ],
    "dailyReportEnabled": true,
    "deliveryChannelKey": "tg-life",
    "debugDeliveryChannelKey": "tg-log"
  },
  "payload": {
    "sourceName": "xiaomi_weather",
    "city": {
      "id": "xian_yanta",
      "name": "西安雁塔区",
      "latitude": 34.23,
      "longitude": 108.945,
      "timezone": "Asia/Shanghai",
      "sourceOrder": [
        "xiaomi_weather",
        "open_meteo"
      ],
      "dailyReportEnabled": true,
      "deliveryChannelKey": "tg-life",
      "debugDeliveryChannelKey": "tg-log"
    },
    "current": {
      "time": "2026-04-10T22:04:09+08:00",
      "temperatureC": 16,
      "apparentTemperatureC": 19,
      "humidityPercent": 54,
      "pressureHpa": 963,
      "weatherCode": 2,
      "weatherText": "局部多云",
      "windSpeedKmh": 3,
      "visibilityM": null
    },
    "today": {
      "weatherCode": 2,
      "weatherText": "局部多云",
      "temperatureMinC": 13,
      "temperatureMaxC": 23,
      "precipitationProbabilityMax": 0,
      "precipitationSum": null,
      "windGustKmh": 3
    },
    "tomorrow": {
      "weatherCode": 2,
      "weatherText": "局部多云",
      "temperatureMinC": 13,
      "temperatureMaxC": 21,
      "precipitationProbabilityMax": 6,
      "precipitationSum": null,
      "windGustKmh": 11.66
    },
    "minutely": {
      "text": null,
      "shortText": null,
      "values": []
    },
    "alerts": [],
    "raw": {
      "current": {
        "feelsLike": {
          "unit": "℃",
          "value": "19"
        },
        "humidity": {
          "unit": "%",
          "value": "54"
        },
        "pressure": {
          "unit": "hPa",
          "value": "963"
        },
        "pubTime": "2026-04-10T22:04:09+08:00",
        "temperature": {
          "unit": "℃",
          "value": "16"
        },
        "uvIndex": "0",
        "visibility": {
          "unit": "km",
          "value": ""
        },
        "weather": "2",
        "wind": {
          "direction": {
            "unit": "°",
            "value": "96.04"
          },
          "speed": {
            "unit": "km/h",
            "value": "3.0"
          }
        }
      },
      "forecastDaily": {
        "aqi": {
          "brandInfo": {
            "brands": [
              {
                "brandId": "caiyun",
                "logo": "http://f5.market.mi-img.com/download/MiSafe/07fa34263d698a7a9a8050dde6a7c63f8f243dbf3/a.webp",
                "names": {
                  "zh_TW": "彩雲天氣",
                  "en_US": "彩云天气",
                  "zh_CN": "彩云天气"
                },
                "url": ""
              }
            ]
          },
          "pubTime": "2026-04-10T00:00:00+08:00",
          "status": 0,
          "value": [
            70,
            78,
            69,
            72,
            69,
            69,
            67,
            42,
            62,
            64,
            49,
            47,
            51,
            57,
            59
          ]
        },
        "moonPhase": null,
        "precipitationProbability": {
          "status": 0,
          "value": [
            "0",
            "6",
            "14",
            "25",
            "56"
          ]
        },
        "pubTime": "2026-04-10T20:00:00+08:00",
        "status": 0,
        "sunRiseSet": {
          "status": 0,
          "value": [
            {
              "from": "2026-04-10T06:21:00+08:00",
              "to": "2026-04-10T19:11:00+08:00"
            },
            {
              "from": "2026-04-11T06:19:00+08:00",
              "to": "2026-04-11T19:12:00+08:00"
            },
            {
              "from": "2026-04-12T06:18:00+08:00",
              "to": "2026-04-12T19:13:00+08:00"
            },
            {
              "from": "2026-04-13T06:17:00+08:00",
              "to": "2026-04-13T19:14:00+08:00"
            },
            {
              "from": "2026-04-14T06:15:00+08:00",
              "to": "2026-04-14T19:15:00+08:00"
            },
            {
              "from": "2026-04-15T06:14:00+08:00",
              "to": "2026-04-15T19:15:00+08:00"
            },
            {
              "from": "2026-04-16T06:13:00+08:00",
              "to": "2026-04-16T19:16:00+08:00"
            },
            {
              "from": "2026-04-17T06:12:00+08:00",
              "to": "2026-04-17T19:17:00+08:00"
            },
            {
              "from": "2026-04-18T06:10:00+08:00",
              "to": "2026-04-18T19:18:00+08:00"
            },
            {
              "from": "2026-04-19T06:09:00+08:00",
              "to": "2026-04-19T19:18:00+08:00"
            },
            {
              "from": "2026-04-20T06:07:00+08:00",
              "to": "2026-04-20T19:19:00+08:00"
            },
            {
              "from": "2026-04-21T06:06:00+08:00",
              "to": "2026-04-21T19:19:00+08:00"
            },
            {
              "from": "2026-04-22T06:05:00+08:00",
              "to": "2026-04-22T19:20:00+08:00"
            },
            {
              "from": "2026-04-23T06:04:00+08:00",
              "to": "2026-04-23T19:21:00+08:00"
            },
            {
              "from": "2026-04-24T06:03:00+08:00",
              "to": "2026-04-24T19:22:00+08:00"
            }
          ]
        },
        "temperature": {
          "status": 0,
          "unit": "℃",
          "value": [
            {
              "from": "23",
              "to": "13"
            },
            {
              "from": "21",
              "to": "13"
            },
            {
              "from": "25",
              "to": "15"
            },
            {
              "from": "24",
              "to": "13"
            },
            {
              "from": "22",
              "to": "13"
            },
            {
              "from": "24",
              "to": "13"
            },
            {
              "from": "24",
              "to": "12"
            },
            {
              "from": "27",
              "to": "14"
            },
            {
              "from": "29",
              "to": "16"
            },
            {
              "from": "30",
              "to": "17"
            },
            {
              "from": "26",
              "to": "11"
            },
            {
              "from": "25",
              "to": "13"
            },
            {
              "from": "26",
              "to": "13"
            },
            {
              "from": "30",
              "to": "18"
            },
            {
              "from": "33",
              "to": "18"
            }
          ]
        },
        "weather": {
          "status": 0,
          "value": [
            {
              "from": "2",
              "to": "2"
            },
            {
              "from": "2",
              "to": "1"
            },
            {
              "from": "1",
              "to": "7"
            },
            {
              "from": "7",
              "to": "7"
            },
            {
              "from": "7",
              "to": "2"
            },
            {
              "from": "2",
              "to": "7"
            },
            {
              "from": "7",
              "to": "7"
            },
            {
              "from": "2",
              "to": "2"
            },
            {
              "from": "2",
              "to": "7"
            },
            {
              "from": "7",
              "to": "1"
            },
            {
              "from": "2",
              "to": "2"
            },
            {
              "from": "2",
              "to": "2"
            },
            {
              "from": "2",
              "to": "2"
            },
            {
              "from": "2",
              "to": "1"
            },
            {
              "from": "0",
              "to": "1"
            }
          ]
        },
        "wind": {
          "direction": {
            "status": 0,
            "unit": "°",
            "value": [
              {
                "from": "96.04",
                "to": "96.04"
              },
              {
                "from": "55.66",
                "to": "41.37"
              },
              {
                "from": "288.95",
                "to": "244.43"
              },
              {
                "from": "218.7",
                "to": "159.91"
              },
              {
                "from": "53.45",
                "to": "146.37"
              },
              {
                "from": "32.44",
                "to": "36.57"
              },
              {
                "from": "25.69",
                "to": "42.01"
              },
              {
                "from": "48.23",
                "to": "66.33"
              },
              {
                "from": "60.91",
                "to": "74.85"
              },
              {
                "from": "276.07",
                "to": "278.52"
              },
              {
                "from": "242.56",
                "to": "259.25"
              },
              {
                "from": "254.03",
                "to": "255.55"
              },
              {
                "from": "242.23",
                "to": "261.76"
              },
              {
                "from": "219.73",
                "to": "298.1"
              },
              {
                "from": "55.22",
                "to": "49.86"
              }
            ]
          },
          "speed": {
            "status": 0,
            "unit": "km/h",
            "value": [
              {
                "from": "3.0",
                "to": "3.0"
              },
              {
                "from": "5.26",
                "to": "11.66"
              },
              {
                "from": "5.71",
                "to": "11.09"
              },
              {
                "from": "8.2",
                "to": "11.42"
              },
              {
                "from": "6.95",
                "to": "9.3"
              },
              {
                "from": "6.19",
                "to": "8.34"
              },
              {
                "from": "5.48",
                "to": "7.8"
              },
              {
                "from": "5.26",
                "to": "9.87"
              },
              {
                "from": "6.25",
                "to": "15.29"
              },
              {
                "from": "9.98",
                "to": "21.88"
              },
              {
                "from": "7.82",
                "to": "12.93"
              },
              {
                "from": "6.41",
                "to": "8.51"
              },
              {
                "from": "3.96",
                "to": "8.04"
              },
              {
                "from": "5.93",
                "to": "12.61"
              },
              {
                "from": "9.56",
                "to": "22.05"
              }
            ]
          }
        }
      },
      "forecastHourly": {
        "aqi": {
          "brandInfo": {
            "brands": [
              {
                "brandId": "caiyun",
                "logo": "http://f5.market.mi-img.com/download/MiSafe/07fa34263d698a7a9a8050dde6a7c63f8f243dbf3/a.webp",
                "names": {
                  "zh_TW": "彩雲天氣",
                  "en_US": "彩云天气",
                  "zh_CN": "彩云天气"
                },
                "url": ""
              }
            ]
          },
          "pubTime": "2026-04-10T23:00:00+08:00",
          "status": 0,
          "value": [
            79,
            82,
            80,
            79,
            77,
            75,
            74,
            74,
            74,
            75,
            78,
            79,
            81,
            82,
            83,
            83,
            83,
            82,
            80,
            80,
            78,
            76,
            74
          ]
        },
        "desc": "逐小时预报",
        "status": 0,
        "temperature": {
          "pubTime": "2026-04-10T23:00:00+08:00",
          "status": 0,
          "unit": "℃",
          "value": [
            15,
            14,
            14,
            14,
            14,
            13,
            13,
            13,
            14,
            14,
            16,
            17,
            18,
            20,
            20,
            21,
            21,
            21,
            20,
            19,
            18,
            18,
            18
          ]
        },
        "weather": {
          "pubTime": "2026-04-10T23:00:00+08:00",
          "status": 0,
          "value": [
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            2,
            2,
            1,
            1,
            1,
            1
          ]
        },
        "wind": {
          "status": 0,
          "value": [
            {
              "datetime": "2026-04-10T23:00:00.000+08:00",
              "direction": "3.54",
              "speed": "4.08"
            },
            {
              "datetime": "2026-04-11T00:00:00.000+08:00",
              "direction": "17.76",
              "speed": "3.89"
            },
            {
              "datetime": "2026-04-11T01:00:00.000+08:00",
              "direction": "20.26",
              "speed": "3.22"
            },
            {
              "datetime": "2026-04-11T02:00:00.000+08:00",
              "direction": "340.84",
              "speed": "3.62"
            },
            {
              "datetime": "2026-04-11T03:00:00.000+08:00",
              "direction": "285.77",
              "speed": "3.18"
            },
            {
              "datetime": "2026-04-11T04:00:00.000+08:00",
              "direction": "263.13",
              "speed": "3.01"
            },
            {
              "datetime": "2026-04-11T05:00:00.000+08:00",
              "direction": "225.0",
              "speed": "3.05"
            },
            {
              "datetime": "2026-04-11T06:00:00.000+08:00",
              "direction": "228.63",
              "speed": "3.21"
            },
            {
              "datetime": "2026-04-11T07:00:00.000+08:00",
              "direction": "226.49",
              "speed": "2.93"
            },
            {
              "datetime": "2026-04-11T08:00:00.000+08:00",
              "direction": "283.28",
              "speed": "2.66"
            },
            {
              "datetime": "2026-04-11T09:00:00.000+08:00",
              "direction": "3.99",
              "speed": "3.1"
            },
            {
              "datetime": "2026-04-11T10:00:00.000+08:00",
              "direction": "326.31",
              "speed": "3.89"
            },
            {
              "datetime": "2026-04-11T11:00:00.000+08:00",
              "direction": "352.29",
              "speed": "4.83"
            },
            {
              "datetime": "2026-04-11T12:00:00.000+08:00",
              "direction": "43.64",
              "speed": "5.37"
            },
            {
              "datetime": "2026-04-11T13:00:00.000+08:00",
              "direction": "62.18",
              "speed": "5.86"
            },
            {
              "datetime": "2026-04-11T14:00:00.000+08:00",
              "direction": "55.99",
              "speed": "7.08"
            },
            {
              "datetime": "2026-04-11T15:00:00.000+08:00",
              "direction": "52.69",
              "speed": "8.37"
            },
            {
              "datetime": "2026-04-11T16:00:00.000+08:00",
              "direction": "45.47",
              "speed": "9.29"
            },
            {
              "datetime": "2026-04-11T17:00:00.000+08:00",
              "direction": "41.37",
              "speed": "11.66"
            },
            {
              "datetime": "2026-04-11T18:00:00.000+08:00",
              "direction": "77.74",
              "speed": "8.99"
            },
            {
              "datetime": "2026-04-11T19:00:00.000+08:00",
              "direction": "96.97",
              "speed": "6.53"
            },
            {
              "datetime": "2026-04-11T20:00:00.000+08:00",
              "direction": "105.69",
              "speed": "4.52"
            },
            {
              "datetime": "2026-04-11T21:00:00.000+08:00",
              "direction": "150.3",
              "speed": "5.59"
            }
          ]
        }
      },
      "indices": {
        "indices": [
          {
            "type": "uvIndex",
            "value": "2"
          },
          {
            "type": "humidity",
            "value": "54"
          },
          {
            "type": "feelsLike",
            "value": "19"
          },
          {
            "type": "pressure",
            "value": "963"
          },
          {
            "type": "carWash",
            "value": "0"
          },
          {
            "type": "sports",
            "value": "0"
          }
        ],
        "pubTime": "",
        "status": 0
      },
      "alerts": [],
      "yesterday": {
        "aqi": "105",
        "date": "2026-04-09T11:00:00+08:00",
        "status": 0,
        "sunRise": "2026-04-09T06:22:00+08:00",
        "sunSet": "2026-04-09T19:11:00+08:00",
        "tempMax": "25",
        "tempMin": "13",
        "weatherEnd": "1",
        "weatherStart": "2",
        "windDircEnd": "229.19",
        "windDircStart": "229.19",
        "windSpeedEnd": "8.0",
        "windSpeedStart": "8.0"
      },
      "url": {
        "weathercn": "",
        "caiyun": ""
      },
      "brandInfo": {
        "brands": [
          {
            "brandId": "caiyun",
            "logo": "http://f5.market.mi-img.com/download/MiSafe/069835733640846b1b2613a855328d2b6df404343/a.webp",
            "names": {
              "zh_TW": "彩雲天氣",
              "en_US": "彩云天气",
              "zh_CN": "彩云天气"
            },
            "url": ""
          },
          {
            "brandId": "weatherbj",
            "logo": "",
            "names": {
              "zh_TW": "北京气象局",
              "en_US": "北京气象局",
              "zh_CN": "北京气象局"
            },
            "url": ""
          }
        ]
      },
      "preHour": [
        {
          "feelsLike": {
            "unit": "℃",
            "value": "19"
          },
          "humidity": {
            "unit": "%",
            "value": "53"
          },
          "pressure": {
            "unit": "hPa",
            "value": "963"
          },
          "pubTime": "2026-04-10T22:00:00+08:00",
          "temperature": {
            "unit": "℃",
            "value": "16"
          },
          "uvIndex": "0",
          "visibility": {
            "unit": "km",
            "value": ""
          },
          "weather": "2",
          "wind": {
            "direction": {
              "unit": "°",
              "value": "96.04"
            },
            "speed": {
              "unit": "km/h",
              "value": "3.0"
            }
          },
          "aqi": {
            "aqi": "62",
            "brandInfo": {
              "brands": [
                {
                  "brandId": "CNEMC",
                  "logo": "",
                  "names": {
                    "zh_TW": "中國環境監測總站",
                    "en_US": "CNEMC",
                    "zh_CN": "中国环境监测总站"
                  },
                  "url": ""
                }
              ]
            },
            "co": "0.5",
            "no2": "28",
            "o3": "90",
            "pm10": "66",
            "pm25": "17",
            "primary": "",
            "pubTime": "2026-04-10T21:00:00+08:00",
            "so2": "7",
            "src": "中国环境监测总站",
            "status": 0,
            "suggest": "空气质量可以接受，可能对少数异常敏感的人群健康有较弱影响",
            "pm25Desc": "PM2.5的主要来源是燃料、木材和其他生物质燃料的燃烧",
            "pm10Desc": "PM10对人的影响要大于其他任何污染物，长期暴露于污染环境可能导致罹患心血管和呼吸道疾病甚至肺癌",
            "no2Desc": "二氧化氮是硝酸盐气溶胶的主要来源，是构成PM2.5和紫外线作用下产生臭氧的主要成分",
            "so2Desc": "二氧化硫是一种无色气体，当空气中SO2达到一定浓度时，空气中会有刺鼻的气味",
            "coDesc": "一氧化碳是无色，无臭，无味气体，但吸入对人体有十分大的危害",
            "o3Desc": "空气中过多臭氧可能导致呼吸问题，引发哮喘，降低肺功能并引起肺部疾病，对人类健康影响较大"
          }
        }
      ],
      "sourceMaps": {
        "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)"
        },
        "indices": {
          "feelsLikeV1": "weatherbj(locationKey=101110113)",
          "pressureV1": "weatherbj(locationKey=101110113)",
          "uvIndexV1": "weatherbj(locationKey=101110113)",
          "sportsV1": "weatherbj(locationKey=101110113)",
          "carWashV1": "weatherbj(locationKey=101110113)"
        },
        "daily": {
          "preciProbability": "accu(locationKey=1921951,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)"
        },
        "clientInfo": {
          "appVersion": 17000313,
          "isLocated": true,
          "isGlobal": false,
          "appKey": "weather20151024",
          "locale": "zh_CN"
        },
        "hourly": {
          "precipitationProbability": "moji(locationKey=34.221,108.939)",
          "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)"
        }
      },
      "updateTime": 1775830245462,
      "aqi": {
        "aqi": "70",
        "brandInfo": {
          "brands": [
            {
              "brandId": "CNEMC",
              "logo": "",
              "names": {
                "zh_TW": "中國環境監測總站",
                "en_US": "CNEMC",
                "zh_CN": "中国环境监测总站"
              },
              "url": ""
            }
          ]
        },
        "co": "0.62",
        "no2": "40",
        "o3": "69",
        "pm10": "78",
        "pm25": "16",
        "primary": "",
        "pubTime": "2026-04-10T21:00:00+08:00",
        "so2": "6",
        "src": "中国环境监测总站",
        "status": 0,
        "suggest": "空气质量可以接受，可能对少数异常敏感的人群健康有较弱影响",
        "pm25Desc": "PM2.5指的是直径小于或等于2.5微米的颗粒物，又称为细颗粒物",
        "pm10Desc": "PM10对人的影响要大于其他任何污染物，长期暴露于污染环境可能导致罹患心血管和呼吸道疾病甚至肺癌",
        "no2Desc": "短期浓度超过200微克/立方米时，二氧化氮是一种引起呼吸道严重发炎的有毒气体",
        "so2Desc": "二氧化硫是一种无色气体，当空气中SO2达到一定浓度时，空气中会有刺鼻的气味",
        "coDesc": "一氧化碳是无色，无臭，无味气体，但吸入对人体有十分大的危害",
        "o3Desc": "空气中过多臭氧可能导致呼吸问题，引发哮喘，降低肺功能并引起肺部疾病，对人类健康影响较大"
      }
    }
  },
  "derived": {
    "state": "normal",
    "severity": "none",
    "hazards": [],
    "abnormalStartingSoon": false,
    "upcomingHazards": [],
    "alertIds": [],
    "rainProbabilityNext1h": 0,
    "weatherText": "局部多云",
    "advice": [
      "天气整体平稳，按常规安排即可"
    ],
    "polling": {
      "suggestedPollingMode": "normal_60m",
      "suggestedNextRunSeconds": 3600,
      "reason": "天气整体平稳"
    }
  },
  "event": {
    "eventType": "debug_report",
    "shouldNotify": true,
    "notificationText": "西安雁塔区调试报告：source=xiaomi_weather，state=normal，severity=none。当前 局部多云，温度 16°C，体感 19°C。今日 13~23°C，降水 概率峰值 0%，阵风 3 km/h。轮询：normal_60m / 3600s。建议：天气整体平稳，按常规安排即可",
    "dedupeKey": "xian_yanta|debug_report|2026-04-10T14:15:18.471Z",
    "reason": "调试模式开启，每次执行都发送报告",
    "forceNotify": true
  },
  "notification": {
    "status": "delivered",
    "provider": "telegram"
  },
  "lightState": {
    "lastFetchAt": "2026-04-10T14:15:18.471Z",
    "lastHash": "xian_yanta|debug_report|2026-04-10T14:15:18.471Z",
    "lastPushedHash": "xian_yanta|debug_report|2026-04-10T14:15:18.471Z",
    "errorCount": 0,
    "health": "ok",
    "lastSuccessAt": "2026-04-10T14:15:18.471Z",
    "lastEventType": "debug_report",
    "lastNotifyAt": "2026-04-10T14:15:18.471Z",
    "lastSuccessfulDeliveryAt": "2026-04-10T14:15:18.471Z",
    "lastSuccessfulDeliveryEventType": "debug_report",
    "severity": "none",
    "hazards": [],
    "abnormalStartingSoon": false,
    "upcomingHazards": [],
    "alertIds": [],
    "morningReportSentOn": "2026-04-10",
    "eveningReportSentOn": null,
    "nextDueAt": "2026-04-10T16:15:18.471Z",
    "pollingMode": "normal_60m",
    "pollingReason": "调试模式下按 7200s 发送调试报告"
  },
  "freshness": {
    "isStale": false,
    "lastSuccessAt": "2026-04-10T14:15:18.471Z",
    "staleReason": null,
    "staleSeconds": 0,
    "sourceUpdatedAt": "2026-04-10T14:15:18.471Z"
  }
}