{"current":{"ecowitt":{"id":156959,"source":"ecowitt","timestamp":"2026-08-22 17:45:00","data":{"temperature":79.3,"temperatureUnit":"ºF","humidity":75,"indoorTemperature":71.8,"indoorHumidity":52,"windSpeed":null,"windSpeedUnit":"mph","windDirection":130,"windGust":1.6,"pressure":1011.5146930000001,"pressureUnit":"mb","rainRate":0,"rainRateUnit":"in/hr","rainDaily":0,"rainEvent":0,"rainHourly":0,"rainWeekly":0.7,"rainMonthly":4.59,"solarRadiation":177.7,"uvi":1,"sensorTime":"2026-08-22T17:45:00.000Z"}},"purpleair":{"id":156960,"source":"purpleair","timestamp":"2026-08-22 17:45:00","data":{"pm25":12.6,"aqi":52,"aqiLevel":{"label":"Moderate","color":"#ffff00"},"humidity":51,"temperature":88,"sensorTime":"2026-08-22T17:44:54.000Z"}},"airgradient":{"id":156961,"source":"airgradient","timestamp":"2026-08-22 17:45:01","data":{"co2":750,"pm25":2.7,"aqi":11,"aqiLevel":{"label":"Good","color":"#00e400"},"pm01":0.7,"pm10":2.7,"tvocIndex":124,"noxIndex":4,"temperature":75.9,"humidity":52,"sensorTime":"2026-08-22T17:44:18.000Z"}}},"forecast":{"hours":[{"time":"2026-08-22T13:00","temperature":74.5,"precipitationProbability":1,"weatherCode":2,"windSpeed":5.6},{"time":"2026-08-22T14:00","temperature":75.3,"precipitationProbability":1,"weatherCode":2,"windSpeed":4.1},{"time":"2026-08-22T15:00","temperature":75.6,"precipitationProbability":1,"weatherCode":1,"windSpeed":6.5},{"time":"2026-08-22T16:00","temperature":76.8,"precipitationProbability":1,"weatherCode":1,"windSpeed":5.7},{"time":"2026-08-22T17:00","temperature":76.1,"precipitationProbability":4,"weatherCode":3,"windSpeed":7.6},{"time":"2026-08-22T18:00","temperature":75,"precipitationProbability":4,"weatherCode":0,"windSpeed":7.4},{"time":"2026-08-22T19:00","temperature":72.9,"precipitationProbability":5,"weatherCode":3,"windSpeed":6.6},{"time":"2026-08-22T20:00","temperature":71.7,"precipitationProbability":6,"weatherCode":3,"windSpeed":5.4},{"time":"2026-08-22T21:00","temperature":70.6,"precipitationProbability":3,"weatherCode":2,"windSpeed":5.5},{"time":"2026-08-22T22:00","temperature":69.2,"precipitationProbability":2,"weatherCode":3,"windSpeed":5.2},{"time":"2026-08-22T23:00","temperature":68.7,"precipitationProbability":2,"weatherCode":2,"windSpeed":4.3},{"time":"2026-08-23T00:00","temperature":68.2,"precipitationProbability":6,"weatherCode":2,"windSpeed":3.1},{"time":"2026-08-23T01:00","temperature":67.6,"precipitationProbability":8,"weatherCode":3,"windSpeed":2.9},{"time":"2026-08-23T02:00","temperature":67.3,"precipitationProbability":13,"weatherCode":3,"windSpeed":2.2},{"time":"2026-08-23T03:00","temperature":66.9,"precipitationProbability":20,"weatherCode":3,"windSpeed":3.4},{"time":"2026-08-23T04:00","temperature":67.3,"precipitationProbability":16,"weatherCode":3,"windSpeed":3.2},{"time":"2026-08-23T05:00","temperature":67.7,"precipitationProbability":13,"weatherCode":3,"windSpeed":3.8},{"time":"2026-08-23T06:00","temperature":67.2,"precipitationProbability":15,"weatherCode":3,"windSpeed":4.8},{"time":"2026-08-23T07:00","temperature":67.7,"precipitationProbability":17,"weatherCode":3,"windSpeed":5.3},{"time":"2026-08-23T08:00","temperature":69.4,"precipitationProbability":17,"weatherCode":3,"windSpeed":5.2},{"time":"2026-08-23T09:00","temperature":71,"precipitationProbability":15,"weatherCode":3,"windSpeed":4},{"time":"2026-08-23T10:00","temperature":72.3,"precipitationProbability":19,"weatherCode":2,"windSpeed":7},{"time":"2026-08-23T11:00","temperature":73.9,"precipitationProbability":28,"weatherCode":3,"windSpeed":7.8},{"time":"2026-08-23T12:00","temperature":77.5,"precipitationProbability":12,"weatherCode":1,"windSpeed":7.9},{"time":"2026-08-23T13:00","temperature":78.8,"precipitationProbability":7,"weatherCode":1,"windSpeed":10.7},{"time":"2026-08-23T14:00","temperature":79.3,"precipitationProbability":9,"weatherCode":0,"windSpeed":8.5},{"time":"2026-08-23T15:00","temperature":80.5,"precipitationProbability":8,"weatherCode":1,"windSpeed":8.9},{"time":"2026-08-23T16:00","temperature":82.2,"precipitationProbability":9,"weatherCode":0,"windSpeed":9.8},{"time":"2026-08-23T17:00","temperature":82.8,"precipitationProbability":6,"weatherCode":0,"windSpeed":10.6},{"time":"2026-08-23T18:00","temperature":81.6,"precipitationProbability":2,"weatherCode":0,"windSpeed":10.1},{"time":"2026-08-23T19:00","temperature":75.9,"precipitationProbability":2,"weatherCode":3,"windSpeed":10.6},{"time":"2026-08-23T20:00","temperature":73.6,"precipitationProbability":1,"weatherCode":0,"windSpeed":5.7},{"time":"2026-08-23T21:00","temperature":71.5,"precipitationProbability":0,"weatherCode":0,"windSpeed":6.5},{"time":"2026-08-23T22:00","temperature":69.7,"precipitationProbability":0,"weatherCode":0,"windSpeed":6},{"time":"2026-08-23T23:00","temperature":68.3,"precipitationProbability":0,"weatherCode":0,"windSpeed":5},{"time":"2026-08-24T00:00","temperature":67.3,"precipitationProbability":0,"weatherCode":0,"windSpeed":3.8},{"time":"2026-08-24T01:00","temperature":66.5,"precipitationProbability":1,"weatherCode":0,"windSpeed":3.5},{"time":"2026-08-24T02:00","temperature":65.9,"precipitationProbability":1,"weatherCode":0,"windSpeed":3.8},{"time":"2026-08-24T03:00","temperature":64.1,"precipitationProbability":0,"weatherCode":0,"windSpeed":4.5},{"time":"2026-08-24T04:00","temperature":63.1,"precipitationProbability":0,"weatherCode":0,"windSpeed":4.1},{"time":"2026-08-24T05:00","temperature":62.4,"precipitationProbability":0,"weatherCode":0,"windSpeed":2.6},{"time":"2026-08-24T06:00","temperature":63.5,"precipitationProbability":0,"weatherCode":0,"windSpeed":3.1},{"time":"2026-08-24T07:00","temperature":65.3,"precipitationProbability":0,"weatherCode":0,"windSpeed":4.7},{"time":"2026-08-24T08:00","temperature":68.8,"precipitationProbability":0,"weatherCode":0,"windSpeed":6.7},{"time":"2026-08-24T09:00","temperature":72.2,"precipitationProbability":1,"weatherCode":0,"windSpeed":8.6},{"time":"2026-08-24T10:00","temperature":75.4,"precipitationProbability":1,"weatherCode":0,"windSpeed":9.5},{"time":"2026-08-24T11:00","temperature":78.7,"precipitationProbability":1,"weatherCode":0,"windSpeed":11.4},{"time":"2026-08-24T12:00","temperature":80.6,"precipitationProbability":1,"weatherCode":0,"windSpeed":13.3},{"time":"2026-08-24T13:00","temperature":81.9,"precipitationProbability":1,"weatherCode":0,"windSpeed":13.3},{"time":"2026-08-24T14:00","temperature":83.2,"precipitationProbability":1,"weatherCode":0,"windSpeed":13.3},{"time":"2026-08-24T15:00","temperature":83.3,"precipitationProbability":0,"weatherCode":0,"windSpeed":14},{"time":"2026-08-24T16:00","temperature":82.4,"precipitationProbability":0,"weatherCode":3,"windSpeed":14.5},{"time":"2026-08-24T17:00","temperature":81.4,"precipitationProbability":0,"weatherCode":3,"windSpeed":14.2},{"time":"2026-08-24T18:00","temperature":79.2,"precipitationProbability":0,"weatherCode":3,"windSpeed":14.1},{"time":"2026-08-24T19:00","temperature":76.9,"precipitationProbability":0,"weatherCode":3,"windSpeed":11.2},{"time":"2026-08-24T20:00","temperature":75.2,"precipitationProbability":0,"weatherCode":0,"windSpeed":9},{"time":"2026-08-24T21:00","temperature":72.9,"precipitationProbability":0,"weatherCode":0,"windSpeed":7.6},{"time":"2026-08-24T22:00","temperature":70,"precipitationProbability":0,"weatherCode":0,"windSpeed":8.1},{"time":"2026-08-24T23:00","temperature":69.1,"precipitationProbability":0,"weatherCode":0,"windSpeed":4.2},{"time":"2026-08-25T00:00","temperature":69.3,"precipitationProbability":0,"weatherCode":0,"windSpeed":1.8},{"time":"2026-08-25T01:00","temperature":69.3,"precipitationProbability":0,"weatherCode":0,"windSpeed":2.8},{"time":"2026-08-25T02:00","temperature":68.9,"precipitationProbability":0,"weatherCode":0,"windSpeed":3.8},{"time":"2026-08-25T03:00","temperature":68.4,"precipitationProbability":0,"weatherCode":0,"windSpeed":5},{"time":"2026-08-25T04:00","temperature":67.9,"precipitationProbability":0,"weatherCode":0,"windSpeed":6.5},{"time":"2026-08-25T05:00","temperature":67.1,"precipitationProbability":0,"weatherCode":0,"windSpeed":7.5},{"time":"2026-08-25T06:00","temperature":66.6,"precipitationProbability":0,"weatherCode":3,"windSpeed":7.6},{"time":"2026-08-25T07:00","temperature":67,"precipitationProbability":0,"weatherCode":2,"windSpeed":7.9},{"time":"2026-08-25T08:00","temperature":68.9,"precipitationProbability":0,"weatherCode":0,"windSpeed":9.9},{"time":"2026-08-25T09:00","temperature":71.6,"precipitationProbability":0,"weatherCode":0,"windSpeed":11},{"time":"2026-08-25T10:00","temperature":74.5,"precipitationProbability":0,"weatherCode":0,"windSpeed":12.3},{"time":"2026-08-25T11:00","temperature":77.2,"precipitationProbability":0,"weatherCode":0,"windSpeed":12},{"time":"2026-08-25T12:00","temperature":79.9,"precipitationProbability":0,"weatherCode":0,"windSpeed":11.9},{"time":"2026-08-25T13:00","temperature":81.4,"precipitationProbability":0,"weatherCode":0,"windSpeed":13.3},{"time":"2026-08-25T14:00","temperature":80.6,"precipitationProbability":0,"weatherCode":0,"windSpeed":14.1},{"time":"2026-08-25T15:00","temperature":81.9,"precipitationProbability":0,"weatherCode":0,"windSpeed":13.4},{"time":"2026-08-25T16:00","temperature":81.2,"precipitationProbability":0,"weatherCode":1,"windSpeed":13.4},{"time":"2026-08-25T17:00","temperature":80.5,"precipitationProbability":0,"weatherCode":0,"windSpeed":12},{"time":"2026-08-25T18:00","temperature":79,"precipitationProbability":0,"weatherCode":2,"windSpeed":10.9},{"time":"2026-08-25T19:00","temperature":77.6,"precipitationProbability":0,"weatherCode":0,"windSpeed":7.8},{"time":"2026-08-25T20:00","temperature":75.8,"precipitationProbability":0,"weatherCode":0,"windSpeed":6.2},{"time":"2026-08-25T21:00","temperature":73.8,"precipitationProbability":1,"weatherCode":3,"windSpeed":6.6},{"time":"2026-08-25T22:00","temperature":72.4,"precipitationProbability":1,"weatherCode":0,"windSpeed":6.9},{"time":"2026-08-25T23:00","temperature":70.9,"precipitationProbability":1,"weatherCode":0,"windSpeed":7.1},{"time":"2026-08-26T00:00","temperature":69.7,"precipitationProbability":1,"weatherCode":3,"windSpeed":6.6},{"time":"2026-08-26T01:00","temperature":68.6,"precipitationProbability":1,"weatherCode":1,"windSpeed":4.9},{"time":"2026-08-26T02:00","temperature":68,"precipitationProbability":1,"weatherCode":0,"windSpeed":3.7},{"time":"2026-08-26T03:00","temperature":67.5,"precipitationProbability":0,"weatherCode":0,"windSpeed":3.7},{"time":"2026-08-26T04:00","temperature":66.8,"precipitationProbability":0,"weatherCode":0,"windSpeed":3.8},{"time":"2026-08-26T05:00","temperature":66.1,"precipitationProbability":0,"weatherCode":0,"windSpeed":3.3},{"time":"2026-08-26T06:00","temperature":65.7,"precipitationProbability":0,"weatherCode":0,"windSpeed":3.2},{"time":"2026-08-26T07:00","temperature":66.2,"precipitationProbability":0,"weatherCode":0,"windSpeed":3.4},{"time":"2026-08-26T08:00","temperature":68.6,"precipitationProbability":0,"weatherCode":0,"windSpeed":3.8},{"time":"2026-08-26T09:00","temperature":71.8,"precipitationProbability":0,"weatherCode":0,"windSpeed":4},{"time":"2026-08-26T10:00","temperature":75.6,"precipitationProbability":0,"weatherCode":0,"windSpeed":4},{"time":"2026-08-26T11:00","temperature":78.8,"precipitationProbability":0,"weatherCode":0,"windSpeed":4.1},{"time":"2026-08-26T12:00","temperature":81.4,"precipitationProbability":0,"weatherCode":0,"windSpeed":5},{"time":"2026-08-26T13:00","temperature":83.3,"precipitationProbability":0,"weatherCode":0,"windSpeed":6},{"time":"2026-08-26T14:00","temperature":85.1,"precipitationProbability":0,"weatherCode":0,"windSpeed":6.4},{"time":"2026-08-26T15:00","temperature":86.2,"precipitationProbability":2,"weatherCode":3,"windSpeed":7.5},{"time":"2026-08-26T16:00","temperature":86.6,"precipitationProbability":2,"weatherCode":0,"windSpeed":8.4},{"time":"2026-08-26T17:00","temperature":86,"precipitationProbability":2,"weatherCode":0,"windSpeed":9},{"time":"2026-08-26T18:00","temperature":84.6,"precipitationProbability":2,"weatherCode":0,"windSpeed":9.1},{"time":"2026-08-26T19:00","temperature":82.1,"precipitationProbability":2,"weatherCode":0,"windSpeed":8.2},{"time":"2026-08-26T20:00","temperature":79.2,"precipitationProbability":2,"weatherCode":3,"windSpeed":7.9},{"time":"2026-08-26T21:00","temperature":77.4,"precipitationProbability":2,"weatherCode":0,"windSpeed":8.1},{"time":"2026-08-26T22:00","temperature":76.7,"precipitationProbability":2,"weatherCode":3,"windSpeed":6.7},{"time":"2026-08-26T23:00","temperature":76,"precipitationProbability":2,"weatherCode":3,"windSpeed":5.6},{"time":"2026-08-27T00:00","temperature":75.2,"precipitationProbability":2,"weatherCode":1,"windSpeed":4},{"time":"2026-08-27T01:00","temperature":74.9,"precipitationProbability":2,"weatherCode":3,"windSpeed":2.9},{"time":"2026-08-27T02:00","temperature":74,"precipitationProbability":2,"weatherCode":0,"windSpeed":3.4},{"time":"2026-08-27T03:00","temperature":73.6,"precipitationProbability":6,"weatherCode":3,"windSpeed":4.1},{"time":"2026-08-27T04:00","temperature":73.1,"precipitationProbability":6,"weatherCode":3,"windSpeed":3.8},{"time":"2026-08-27T05:00","temperature":72.5,"precipitationProbability":6,"weatherCode":3,"windSpeed":3.5},{"time":"2026-08-27T06:00","temperature":72,"precipitationProbability":6,"weatherCode":3,"windSpeed":2.8},{"time":"2026-08-27T07:00","temperature":72.5,"precipitationProbability":6,"weatherCode":3,"windSpeed":1.4},{"time":"2026-08-27T08:00","temperature":74.3,"precipitationProbability":6,"weatherCode":3,"windSpeed":3.4},{"time":"2026-08-27T09:00","temperature":77,"precipitationProbability":20,"weatherCode":3,"windSpeed":5.2},{"time":"2026-08-27T10:00","temperature":80.5,"precipitationProbability":20,"weatherCode":3,"windSpeed":7.4},{"time":"2026-08-27T11:00","temperature":83.3,"precipitationProbability":20,"weatherCode":3,"windSpeed":9.5},{"time":"2026-08-27T12:00","temperature":85.1,"precipitationProbability":20,"weatherCode":2,"windSpeed":10.9},{"time":"2026-08-27T13:00","temperature":86.4,"precipitationProbability":20,"weatherCode":1,"windSpeed":12.1},{"time":"2026-08-27T14:00","temperature":86.8,"precipitationProbability":20,"weatherCode":1,"windSpeed":12.5},{"time":"2026-08-27T15:00","temperature":85.9,"precipitationProbability":27,"weatherCode":1,"windSpeed":12.6},{"time":"2026-08-27T16:00","temperature":84.3,"precipitationProbability":27,"weatherCode":2,"windSpeed":12.2},{"time":"2026-08-27T17:00","temperature":82.6,"precipitationProbability":27,"weatherCode":2,"windSpeed":11.6},{"time":"2026-08-27T18:00","temperature":81,"precipitationProbability":27,"weatherCode":2,"windSpeed":11},{"time":"2026-08-27T19:00","temperature":79.4,"precipitationProbability":27,"weatherCode":2,"windSpeed":10.2},{"time":"2026-08-27T20:00","temperature":77.9,"precipitationProbability":27,"weatherCode":2,"windSpeed":9.5},{"time":"2026-08-27T21:00","temperature":76.9,"precipitationProbability":38,"weatherCode":1,"windSpeed":8.3},{"time":"2026-08-27T22:00","temperature":76.1,"precipitationProbability":38,"weatherCode":1,"windSpeed":7},{"time":"2026-08-27T23:00","temperature":75.4,"precipitationProbability":38,"weatherCode":0,"windSpeed":5.7},{"time":"2026-08-28T00:00","temperature":74.6,"precipitationProbability":38,"weatherCode":51,"windSpeed":4.5},{"time":"2026-08-28T01:00","temperature":73.9,"precipitationProbability":38,"weatherCode":51,"windSpeed":3.2},{"time":"2026-08-28T02:00","temperature":73.3,"precipitationProbability":38,"weatherCode":51,"windSpeed":2.4},{"time":"2026-08-28T03:00","temperature":72.6,"precipitationProbability":29,"weatherCode":51,"windSpeed":1.9},{"time":"2026-08-28T04:00","temperature":72.2,"precipitationProbability":29,"weatherCode":51,"windSpeed":1.5},{"time":"2026-08-28T05:00","temperature":72,"precipitationProbability":29,"weatherCode":51,"windSpeed":1.6},{"time":"2026-08-28T06:00","temperature":72.1,"precipitationProbability":29,"weatherCode":0,"windSpeed":2.1},{"time":"2026-08-28T07:00","temperature":72.5,"precipitationProbability":29,"weatherCode":0,"windSpeed":2.9},{"time":"2026-08-28T08:00","temperature":73.6,"precipitationProbability":29,"weatherCode":0,"windSpeed":2.9},{"time":"2026-08-28T09:00","temperature":75.9,"precipitationProbability":17,"weatherCode":1,"windSpeed":1.6},{"time":"2026-08-28T10:00","temperature":78.8,"precipitationProbability":17,"weatherCode":2,"windSpeed":2.2},{"time":"2026-08-28T11:00","temperature":81.5,"precipitationProbability":17,"weatherCode":2,"windSpeed":4},{"time":"2026-08-28T12:00","temperature":83.7,"precipitationProbability":17,"weatherCode":3,"windSpeed":4.8},{"time":"2026-08-28T13:00","temperature":85.5,"precipitationProbability":17,"weatherCode":3,"windSpeed":5.1},{"time":"2026-08-28T14:00","temperature":86.6,"precipitationProbability":17,"weatherCode":3,"windSpeed":5.2},{"time":"2026-08-28T15:00","temperature":86.8,"precipitationProbability":27,"weatherCode":3,"windSpeed":5.6},{"time":"2026-08-28T16:00","temperature":86.4,"precipitationProbability":27,"weatherCode":3,"windSpeed":6.5},{"time":"2026-08-28T17:00","temperature":85.5,"precipitationProbability":27,"weatherCode":3,"windSpeed":6.9},{"time":"2026-08-28T18:00","temperature":83.9,"precipitationProbability":27,"weatherCode":51,"windSpeed":6.1},{"time":"2026-08-28T19:00","temperature":81.8,"precipitationProbability":27,"weatherCode":51,"windSpeed":4.5},{"time":"2026-08-28T20:00","temperature":79.7,"precipitationProbability":27,"weatherCode":51,"windSpeed":3.4},{"time":"2026-08-28T21:00","temperature":77.8,"precipitationProbability":18,"weatherCode":51,"windSpeed":3.8},{"time":"2026-08-28T22:00","temperature":76,"precipitationProbability":18,"weatherCode":51,"windSpeed":4.9},{"time":"2026-08-28T23:00","temperature":74.3,"precipitationProbability":18,"weatherCode":51,"windSpeed":5.6},{"time":"2026-08-29T00:00","temperature":73.2,"precipitationProbability":18,"weatherCode":3,"windSpeed":5.4},{"time":"2026-08-29T01:00","temperature":72.4,"precipitationProbability":18,"weatherCode":3,"windSpeed":5.4},{"time":"2026-08-29T02:00","temperature":71.6,"precipitationProbability":18,"weatherCode":3,"windSpeed":5.4},{"time":"2026-08-29T03:00","temperature":71,"precipitationProbability":8,"weatherCode":3,"windSpeed":4.8},{"time":"2026-08-29T04:00","temperature":70.5,"precipitationProbability":8,"weatherCode":3,"windSpeed":4.3},{"time":"2026-08-29T05:00","temperature":70.2,"precipitationProbability":8,"weatherCode":3,"windSpeed":3.8},{"time":"2026-08-29T06:00","temperature":70.1,"precipitationProbability":8,"weatherCode":3,"windSpeed":3.8},{"time":"2026-08-29T07:00","temperature":70.3,"precipitationProbability":8,"weatherCode":3,"windSpeed":4},{"time":"2026-08-29T08:00","temperature":71.5,"precipitationProbability":8,"weatherCode":3,"windSpeed":4.4},{"time":"2026-08-29T09:00","temperature":74.3,"precipitationProbability":7,"weatherCode":3,"windSpeed":4.2},{"time":"2026-08-29T10:00","temperature":78.3,"precipitationProbability":7,"weatherCode":3,"windSpeed":3.6},{"time":"2026-08-29T11:00","temperature":81.9,"precipitationProbability":7,"weatherCode":2,"windSpeed":2.9},{"time":"2026-08-29T12:00","temperature":84.9,"precipitationProbability":7,"weatherCode":1,"windSpeed":2.1}],"days":[{"date":"2026-08-22","tempMax":76.8,"tempMin":67.2,"weatherCode":3,"precipitationProbabilityMax":6},{"date":"2026-08-23","tempMax":82.8,"tempMin":66.9,"weatherCode":3,"precipitationProbabilityMax":28},{"date":"2026-08-24","tempMax":83.3,"tempMin":62.4,"weatherCode":3,"precipitationProbabilityMax":1},{"date":"2026-08-25","tempMax":81.9,"tempMin":66.6,"weatherCode":3,"precipitationProbabilityMax":1},{"date":"2026-08-26","tempMax":86.6,"tempMin":65.7,"weatherCode":3,"precipitationProbabilityMax":2},{"date":"2026-08-27","tempMax":86.8,"tempMin":72,"weatherCode":3,"precipitationProbabilityMax":38},{"date":"2026-08-28","tempMax":86.8,"tempMin":72,"weatherCode":51,"precipitationProbabilityMax":38}]},"forecastError":null,"version":"2.8.0"}