{"current":{"ecowitt":{"id":105236,"source":"ecowitt","timestamp":"2026-06-23 19:00:00","data":{"temperature":70.2,"temperatureUnit":"ºF","humidity":94,"indoorTemperature":73.6,"indoorHumidity":51,"windSpeed":1.3,"windSpeedUnit":"mph","windDirection":200,"windGust":2.2,"pressure":1006.7737470000001,"pressureUnit":"mb","rainRate":0,"rainRateUnit":"in/hr","rainDaily":0.87,"rainEvent":1.8,"rainHourly":0.02,"rainWeekly":1.8,"rainMonthly":3.26,"solarRadiation":147.8,"uvi":1,"sensorTime":"2026-06-23T19:00:00.000Z"}},"purpleair":{"id":105237,"source":"purpleair","timestamp":"2026-06-23 19:00:00","data":{"pm25":2.2,"aqi":9,"aqiLevel":{"label":"Good","color":"#00e400"},"humidity":68,"temperature":80,"sensorTime":"2026-06-23T18:59:17.000Z"}},"airgradient":{"id":105238,"source":"airgradient","timestamp":"2026-06-23 19:00:01","data":{"co2":503,"pm25":0,"pm01":0,"pm10":0,"tvocIndex":281,"noxIndex":1,"temperature":76.8,"humidity":53,"sensorTime":"2026-06-23T18:59:22.000Z"}}},"forecast":{"hours":[{"time":"2026-06-23T15:00","temperature":69,"precipitationProbability":37,"weatherCode":3,"windSpeed":5.2},{"time":"2026-06-23T16:00","temperature":70.8,"precipitationProbability":32,"weatherCode":3,"windSpeed":4.6},{"time":"2026-06-23T17:00","temperature":71.3,"precipitationProbability":24,"weatherCode":3,"windSpeed":4.2},{"time":"2026-06-23T18:00","temperature":71.4,"precipitationProbability":30,"weatherCode":3,"windSpeed":4.3},{"time":"2026-06-23T19:00","temperature":70.7,"precipitationProbability":17,"weatherCode":3,"windSpeed":2.1},{"time":"2026-06-23T20:00","temperature":69.1,"precipitationProbability":5,"weatherCode":3,"windSpeed":3.5},{"time":"2026-06-23T21:00","temperature":67.3,"precipitationProbability":2,"weatherCode":3,"windSpeed":4},{"time":"2026-06-23T22:00","temperature":66.5,"precipitationProbability":1,"weatherCode":3,"windSpeed":3.8},{"time":"2026-06-23T23:00","temperature":65.9,"precipitationProbability":1,"weatherCode":3,"windSpeed":4.5},{"time":"2026-06-24T00:00","temperature":65.7,"precipitationProbability":1,"weatherCode":0,"windSpeed":6.2},{"time":"2026-06-24T01:00","temperature":64.8,"precipitationProbability":1,"weatherCode":1,"windSpeed":6.7},{"time":"2026-06-24T02:00","temperature":65,"precipitationProbability":2,"weatherCode":3,"windSpeed":7},{"time":"2026-06-24T03:00","temperature":63.9,"precipitationProbability":1,"weatherCode":2,"windSpeed":7.5},{"time":"2026-06-24T04:00","temperature":63.7,"precipitationProbability":0,"weatherCode":3,"windSpeed":8.1},{"time":"2026-06-24T05:00","temperature":62.5,"precipitationProbability":0,"weatherCode":3,"windSpeed":5.7},{"time":"2026-06-24T06:00","temperature":61.7,"precipitationProbability":0,"weatherCode":1,"windSpeed":7.1},{"time":"2026-06-24T07:00","temperature":64,"precipitationProbability":0,"weatherCode":0,"windSpeed":7.2},{"time":"2026-06-24T08:00","temperature":67,"precipitationProbability":0,"weatherCode":2,"windSpeed":8.8},{"time":"2026-06-24T09:00","temperature":68.6,"precipitationProbability":0,"weatherCode":3,"windSpeed":7.9},{"time":"2026-06-24T10:00","temperature":71.2,"precipitationProbability":0,"weatherCode":2,"windSpeed":8.2},{"time":"2026-06-24T11:00","temperature":73.5,"precipitationProbability":0,"weatherCode":0,"windSpeed":7.8},{"time":"2026-06-24T12:00","temperature":75.3,"precipitationProbability":0,"weatherCode":0,"windSpeed":8.1},{"time":"2026-06-24T13:00","temperature":77,"precipitationProbability":0,"weatherCode":0,"windSpeed":6.1},{"time":"2026-06-24T14:00","temperature":79.4,"precipitationProbability":0,"weatherCode":0,"windSpeed":8.3},{"time":"2026-06-24T15:00","temperature":81.3,"precipitationProbability":0,"weatherCode":0,"windSpeed":8.4},{"time":"2026-06-24T16:00","temperature":82.2,"precipitationProbability":0,"weatherCode":0,"windSpeed":8.9},{"time":"2026-06-24T17:00","temperature":81.9,"precipitationProbability":0,"weatherCode":0,"windSpeed":7.9},{"time":"2026-06-24T18:00","temperature":81.4,"precipitationProbability":0,"weatherCode":0,"windSpeed":8},{"time":"2026-06-24T19:00","temperature":80.1,"precipitationProbability":0,"weatherCode":1,"windSpeed":5.5},{"time":"2026-06-24T20:00","temperature":76.2,"precipitationProbability":0,"weatherCode":0,"windSpeed":2.7},{"time":"2026-06-24T21:00","temperature":73.4,"precipitationProbability":0,"weatherCode":0,"windSpeed":4.5},{"time":"2026-06-24T22:00","temperature":71.4,"precipitationProbability":0,"weatherCode":0,"windSpeed":5.8},{"time":"2026-06-24T23:00","temperature":69.2,"precipitationProbability":0,"weatherCode":3,"windSpeed":3.7},{"time":"2026-06-25T00:00","temperature":68.4,"precipitationProbability":0,"weatherCode":3,"windSpeed":0.5},{"time":"2026-06-25T01:00","temperature":67.3,"precipitationProbability":0,"weatherCode":0,"windSpeed":1.1},{"time":"2026-06-25T02:00","temperature":66.5,"precipitationProbability":0,"weatherCode":0,"windSpeed":4.3},{"time":"2026-06-25T03:00","temperature":65.7,"precipitationProbability":0,"weatherCode":0,"windSpeed":5},{"time":"2026-06-25T04:00","temperature":64.9,"precipitationProbability":0,"weatherCode":2,"windSpeed":5.3},{"time":"2026-06-25T05:00","temperature":63.7,"precipitationProbability":0,"weatherCode":3,"windSpeed":2.9},{"time":"2026-06-25T06:00","temperature":63.5,"precipitationProbability":0,"weatherCode":3,"windSpeed":4.2},{"time":"2026-06-25T07:00","temperature":66.6,"precipitationProbability":0,"weatherCode":3,"windSpeed":2.3},{"time":"2026-06-25T08:00","temperature":70,"precipitationProbability":0,"weatherCode":3,"windSpeed":2.3},{"time":"2026-06-25T09:00","temperature":74,"precipitationProbability":0,"weatherCode":3,"windSpeed":4.4},{"time":"2026-06-25T10:00","temperature":77.8,"precipitationProbability":0,"weatherCode":3,"windSpeed":6.8},{"time":"2026-06-25T11:00","temperature":80.8,"precipitationProbability":0,"weatherCode":0,"windSpeed":10},{"time":"2026-06-25T12:00","temperature":82.6,"precipitationProbability":0,"weatherCode":0,"windSpeed":10.8},{"time":"2026-06-25T13:00","temperature":84.4,"precipitationProbability":0,"weatherCode":0,"windSpeed":11.6},{"time":"2026-06-25T14:00","temperature":85.9,"precipitationProbability":0,"weatherCode":0,"windSpeed":12.3},{"time":"2026-06-25T15:00","temperature":84.8,"precipitationProbability":4,"weatherCode":3,"windSpeed":13.4},{"time":"2026-06-25T16:00","temperature":80.1,"precipitationProbability":4,"weatherCode":51,"windSpeed":13.3},{"time":"2026-06-25T17:00","temperature":81.5,"precipitationProbability":4,"weatherCode":51,"windSpeed":16.3},{"time":"2026-06-25T18:00","temperature":78.5,"precipitationProbability":4,"weatherCode":51,"windSpeed":15.3},{"time":"2026-06-25T19:00","temperature":72.9,"precipitationProbability":4,"weatherCode":53,"windSpeed":13.5},{"time":"2026-06-25T20:00","temperature":72.4,"precipitationProbability":4,"weatherCode":53,"windSpeed":11},{"time":"2026-06-25T21:00","temperature":70.7,"precipitationProbability":33,"weatherCode":53,"windSpeed":7.4},{"time":"2026-06-25T22:00","temperature":69.5,"precipitationProbability":33,"weatherCode":80,"windSpeed":8.1},{"time":"2026-06-25T23:00","temperature":68.8,"precipitationProbability":33,"weatherCode":55,"windSpeed":6.5},{"time":"2026-06-26T00:00","temperature":68.4,"precipitationProbability":33,"weatherCode":81,"windSpeed":5.4},{"time":"2026-06-26T01:00","temperature":67.7,"precipitationProbability":33,"weatherCode":51,"windSpeed":7},{"time":"2026-06-26T02:00","temperature":66.6,"precipitationProbability":33,"weatherCode":51,"windSpeed":8.5},{"time":"2026-06-26T03:00","temperature":66.2,"precipitationProbability":59,"weatherCode":3,"windSpeed":6.7},{"time":"2026-06-26T04:00","temperature":66.2,"precipitationProbability":59,"weatherCode":3,"windSpeed":5.3},{"time":"2026-06-26T05:00","temperature":66.1,"precipitationProbability":59,"weatherCode":3,"windSpeed":4.8},{"time":"2026-06-26T06:00","temperature":66.1,"precipitationProbability":59,"weatherCode":3,"windSpeed":3.6},{"time":"2026-06-26T07:00","temperature":67,"precipitationProbability":59,"weatherCode":3,"windSpeed":3.5},{"time":"2026-06-26T08:00","temperature":68.9,"precipitationProbability":59,"weatherCode":3,"windSpeed":4.5},{"time":"2026-06-26T09:00","temperature":71.3,"precipitationProbability":28,"weatherCode":3,"windSpeed":5.3},{"time":"2026-06-26T10:00","temperature":73.4,"precipitationProbability":28,"weatherCode":3,"windSpeed":6.3},{"time":"2026-06-26T11:00","temperature":75.2,"precipitationProbability":28,"weatherCode":3,"windSpeed":5.7},{"time":"2026-06-26T12:00","temperature":75.8,"precipitationProbability":28,"weatherCode":3,"windSpeed":7.2},{"time":"2026-06-26T13:00","temperature":76.9,"precipitationProbability":28,"weatherCode":3,"windSpeed":6.8},{"time":"2026-06-26T14:00","temperature":76.9,"precipitationProbability":28,"weatherCode":3,"windSpeed":6.7},{"time":"2026-06-26T15:00","temperature":78.7,"precipitationProbability":20,"weatherCode":3,"windSpeed":8.1},{"time":"2026-06-26T16:00","temperature":78.1,"precipitationProbability":20,"weatherCode":3,"windSpeed":6.3},{"time":"2026-06-26T17:00","temperature":75.1,"precipitationProbability":20,"weatherCode":3,"windSpeed":7.6},{"time":"2026-06-26T18:00","temperature":73.4,"precipitationProbability":20,"weatherCode":3,"windSpeed":11},{"time":"2026-06-26T19:00","temperature":71.3,"precipitationProbability":20,"weatherCode":3,"windSpeed":6.5},{"time":"2026-06-26T20:00","temperature":70.7,"precipitationProbability":20,"weatherCode":3,"windSpeed":7.1},{"time":"2026-06-26T21:00","temperature":68.8,"precipitationProbability":40,"weatherCode":51,"windSpeed":6.7},{"time":"2026-06-26T22:00","temperature":66.8,"precipitationProbability":40,"weatherCode":53,"windSpeed":6.2},{"time":"2026-06-26T23:00","temperature":65.3,"precipitationProbability":40,"weatherCode":63,"windSpeed":4.7},{"time":"2026-06-27T00:00","temperature":65.7,"precipitationProbability":40,"weatherCode":61,"windSpeed":2.5},{"time":"2026-06-27T01:00","temperature":66.1,"precipitationProbability":40,"weatherCode":51,"windSpeed":3},{"time":"2026-06-27T02:00","temperature":65.9,"precipitationProbability":40,"weatherCode":51,"windSpeed":3.3},{"time":"2026-06-27T03:00","temperature":65.7,"precipitationProbability":66,"weatherCode":53,"windSpeed":3.5},{"time":"2026-06-27T04:00","temperature":65.5,"precipitationProbability":66,"weatherCode":51,"windSpeed":3.4},{"time":"2026-06-27T05:00","temperature":65.5,"precipitationProbability":66,"weatherCode":3,"windSpeed":3.4},{"time":"2026-06-27T06:00","temperature":65.3,"precipitationProbability":66,"weatherCode":3,"windSpeed":3.4},{"time":"2026-06-27T07:00","temperature":65.2,"precipitationProbability":66,"weatherCode":53,"windSpeed":2.7},{"time":"2026-06-27T08:00","temperature":65,"precipitationProbability":66,"weatherCode":53,"windSpeed":3.4},{"time":"2026-06-27T09:00","temperature":65.9,"precipitationProbability":55,"weatherCode":3,"windSpeed":3.4},{"time":"2026-06-27T10:00","temperature":66.2,"precipitationProbability":55,"weatherCode":3,"windSpeed":2.9},{"time":"2026-06-27T11:00","temperature":67,"precipitationProbability":55,"weatherCode":3,"windSpeed":1.9},{"time":"2026-06-27T12:00","temperature":69.1,"precipitationProbability":55,"weatherCode":3,"windSpeed":1.7},{"time":"2026-06-27T13:00","temperature":71.3,"precipitationProbability":55,"weatherCode":3,"windSpeed":2.2},{"time":"2026-06-27T14:00","temperature":73.8,"precipitationProbability":55,"weatherCode":3,"windSpeed":3},{"time":"2026-06-27T15:00","temperature":73.8,"precipitationProbability":41,"weatherCode":3,"windSpeed":4.3},{"time":"2026-06-27T16:00","temperature":76.3,"precipitationProbability":41,"weatherCode":3,"windSpeed":4.5},{"time":"2026-06-27T17:00","temperature":77.8,"precipitationProbability":41,"weatherCode":2,"windSpeed":4.3},{"time":"2026-06-27T18:00","temperature":77.9,"precipitationProbability":41,"weatherCode":1,"windSpeed":4.1},{"time":"2026-06-27T19:00","temperature":77.2,"precipitationProbability":41,"weatherCode":3,"windSpeed":4.8},{"time":"2026-06-27T20:00","temperature":74.2,"precipitationProbability":41,"weatherCode":3,"windSpeed":4.8},{"time":"2026-06-27T21:00","temperature":71.6,"precipitationProbability":10,"weatherCode":0,"windSpeed":4.3},{"time":"2026-06-27T22:00","temperature":70.6,"precipitationProbability":10,"weatherCode":0,"windSpeed":3.9},{"time":"2026-06-27T23:00","temperature":69.7,"precipitationProbability":10,"weatherCode":1,"windSpeed":3},{"time":"2026-06-28T00:00","temperature":69.1,"precipitationProbability":10,"weatherCode":2,"windSpeed":2.9},{"time":"2026-06-28T01:00","temperature":68.6,"precipitationProbability":10,"weatherCode":0,"windSpeed":3.2},{"time":"2026-06-28T02:00","temperature":68,"precipitationProbability":10,"weatherCode":0,"windSpeed":2.8},{"time":"2026-06-28T03:00","temperature":67.7,"precipitationProbability":5,"weatherCode":0,"windSpeed":2.9},{"time":"2026-06-28T04:00","temperature":67.1,"precipitationProbability":5,"weatherCode":0,"windSpeed":1.1},{"time":"2026-06-28T05:00","temperature":66.6,"precipitationProbability":5,"weatherCode":0,"windSpeed":1.5},{"time":"2026-06-28T06:00","temperature":66.6,"precipitationProbability":5,"weatherCode":0,"windSpeed":1.8},{"time":"2026-06-28T07:00","temperature":68.8,"precipitationProbability":5,"weatherCode":0,"windSpeed":2.9},{"time":"2026-06-28T08:00","temperature":71.3,"precipitationProbability":5,"weatherCode":0,"windSpeed":4.6},{"time":"2026-06-28T09:00","temperature":73.9,"precipitationProbability":4,"weatherCode":1,"windSpeed":5.2},{"time":"2026-06-28T10:00","temperature":76.9,"precipitationProbability":4,"weatherCode":2,"windSpeed":5.6},{"time":"2026-06-28T11:00","temperature":79.7,"precipitationProbability":4,"weatherCode":3,"windSpeed":5.6},{"time":"2026-06-28T12:00","temperature":82.6,"precipitationProbability":4,"weatherCode":3,"windSpeed":5.1},{"time":"2026-06-28T13:00","temperature":85.5,"precipitationProbability":4,"weatherCode":3,"windSpeed":4.3},{"time":"2026-06-28T14:00","temperature":87.3,"precipitationProbability":4,"weatherCode":3,"windSpeed":2.9},{"time":"2026-06-28T15:00","temperature":87.7,"precipitationProbability":4,"weatherCode":3,"windSpeed":2},{"time":"2026-06-28T16:00","temperature":87.1,"precipitationProbability":4,"weatherCode":3,"windSpeed":3.8},{"time":"2026-06-28T17:00","temperature":85.9,"precipitationProbability":4,"weatherCode":2,"windSpeed":5.6},{"time":"2026-06-28T18:00","temperature":83.7,"precipitationProbability":4,"weatherCode":3,"windSpeed":6},{"time":"2026-06-28T19:00","temperature":80.8,"precipitationProbability":4,"weatherCode":3,"windSpeed":5.9},{"time":"2026-06-28T20:00","temperature":78.3,"precipitationProbability":4,"weatherCode":3,"windSpeed":5.6},{"time":"2026-06-28T21:00","temperature":76.7,"precipitationProbability":1,"weatherCode":3,"windSpeed":5.1},{"time":"2026-06-28T22:00","temperature":75.4,"precipitationProbability":1,"weatherCode":3,"windSpeed":4.9},{"time":"2026-06-28T23:00","temperature":74.3,"precipitationProbability":1,"weatherCode":3,"windSpeed":4.8},{"time":"2026-06-29T00:00","temperature":73.4,"precipitationProbability":1,"weatherCode":3,"windSpeed":4.7},{"time":"2026-06-29T01:00","temperature":72.7,"precipitationProbability":1,"weatherCode":3,"windSpeed":4.5},{"time":"2026-06-29T02:00","temperature":71.8,"precipitationProbability":1,"weatherCode":3,"windSpeed":3.6},{"time":"2026-06-29T03:00","temperature":70.5,"precipitationProbability":4,"weatherCode":2,"windSpeed":1.8},{"time":"2026-06-29T04:00","temperature":68.9,"precipitationProbability":4,"weatherCode":1,"windSpeed":1.6},{"time":"2026-06-29T05:00","temperature":68.2,"precipitationProbability":4,"weatherCode":0,"windSpeed":3.3},{"time":"2026-06-29T06:00","temperature":68.6,"precipitationProbability":4,"weatherCode":0,"windSpeed":4},{"time":"2026-06-29T07:00","temperature":69.6,"precipitationProbability":4,"weatherCode":1,"windSpeed":4.5},{"time":"2026-06-29T08:00","temperature":71.3,"precipitationProbability":4,"weatherCode":2,"windSpeed":4.8},{"time":"2026-06-29T09:00","temperature":73.9,"precipitationProbability":3,"weatherCode":3,"windSpeed":4.6},{"time":"2026-06-29T10:00","temperature":77,"precipitationProbability":3,"weatherCode":3,"windSpeed":4},{"time":"2026-06-29T11:00","temperature":79.9,"precipitationProbability":3,"weatherCode":3,"windSpeed":3.5},{"time":"2026-06-29T12:00","temperature":82.4,"precipitationProbability":3,"weatherCode":3,"windSpeed":4.3},{"time":"2026-06-29T13:00","temperature":84.7,"precipitationProbability":3,"weatherCode":3,"windSpeed":5.5},{"time":"2026-06-29T14:00","temperature":85.9,"precipitationProbability":3,"weatherCode":3,"windSpeed":6.7},{"time":"2026-06-29T15:00","temperature":85.3,"precipitationProbability":5,"weatherCode":3,"windSpeed":7.9},{"time":"2026-06-29T16:00","temperature":83.6,"precipitationProbability":5,"weatherCode":3,"windSpeed":10.1},{"time":"2026-06-29T17:00","temperature":81.7,"precipitationProbability":5,"weatherCode":3,"windSpeed":11.8},{"time":"2026-06-29T18:00","temperature":79.6,"precipitationProbability":5,"weatherCode":2,"windSpeed":11.5},{"time":"2026-06-29T19:00","temperature":77.4,"precipitationProbability":5,"weatherCode":2,"windSpeed":10.3},{"time":"2026-06-29T20:00","temperature":75.6,"precipitationProbability":5,"weatherCode":1,"windSpeed":9.2},{"time":"2026-06-29T21:00","temperature":74.5,"precipitationProbability":6,"weatherCode":2,"windSpeed":8.3},{"time":"2026-06-29T22:00","temperature":73.9,"precipitationProbability":6,"weatherCode":3,"windSpeed":7.4},{"time":"2026-06-29T23:00","temperature":73.3,"precipitationProbability":6,"weatherCode":3,"windSpeed":6.5},{"time":"2026-06-30T00:00","temperature":72.4,"precipitationProbability":6,"weatherCode":3,"windSpeed":6.1},{"time":"2026-06-30T01:00","temperature":71.5,"precipitationProbability":6,"weatherCode":3,"windSpeed":5.6},{"time":"2026-06-30T02:00","temperature":70.7,"precipitationProbability":6,"weatherCode":3,"windSpeed":5.1},{"time":"2026-06-30T03:00","temperature":69.7,"precipitationProbability":6,"weatherCode":3,"windSpeed":4.3},{"time":"2026-06-30T04:00","temperature":68.8,"precipitationProbability":6,"weatherCode":3,"windSpeed":3.7},{"time":"2026-06-30T05:00","temperature":68.6,"precipitationProbability":6,"weatherCode":3,"windSpeed":3.5},{"time":"2026-06-30T06:00","temperature":69.2,"precipitationProbability":6,"weatherCode":3,"windSpeed":3.6},{"time":"2026-06-30T07:00","temperature":70.6,"precipitationProbability":6,"weatherCode":3,"windSpeed":4},{"time":"2026-06-30T08:00","temperature":72.5,"precipitationProbability":6,"weatherCode":3,"windSpeed":4.6},{"time":"2026-06-30T09:00","temperature":75.4,"precipitationProbability":8,"weatherCode":3,"windSpeed":5.4},{"time":"2026-06-30T10:00","temperature":78.9,"precipitationProbability":8,"weatherCode":3,"windSpeed":6.5},{"time":"2026-06-30T11:00","temperature":81.9,"precipitationProbability":8,"weatherCode":3,"windSpeed":7.5},{"time":"2026-06-30T12:00","temperature":84.2,"precipitationProbability":8,"weatherCode":3,"windSpeed":8.9},{"time":"2026-06-30T13:00","temperature":86.1,"precipitationProbability":8,"weatherCode":2,"windSpeed":10.6},{"time":"2026-06-30T14:00","temperature":87.1,"precipitationProbability":8,"weatherCode":2,"windSpeed":11.8}],"days":[{"date":"2026-06-23","tempMax":71.4,"tempMin":65.9,"weatherCode":53,"precipitationProbabilityMax":59},{"date":"2026-06-24","tempMax":82.2,"tempMin":61.7,"weatherCode":3,"precipitationProbabilityMax":2},{"date":"2026-06-25","tempMax":85.9,"tempMin":63.5,"weatherCode":80,"precipitationProbabilityMax":33},{"date":"2026-06-26","tempMax":78.7,"tempMin":65.3,"weatherCode":81,"precipitationProbabilityMax":59},{"date":"2026-06-27","tempMax":77.9,"tempMin":65,"weatherCode":61,"precipitationProbabilityMax":66},{"date":"2026-06-28","tempMax":87.7,"tempMin":66.6,"weatherCode":3,"precipitationProbabilityMax":10},{"date":"2026-06-29","tempMax":85.9,"tempMin":68.2,"weatherCode":3,"precipitationProbabilityMax":6}]},"forecastError":null,"version":"2.6.1"}