{"current":{"ecowitt":{"id":208743,"source":"ecowitt","timestamp":"2026-10-21 16:30:00","data":{"indoorTemperature":null,"indoorHumidity":null,"sensorTime":"2026-10-21T16:30:00.000Z"}},"purpleair":{"id":208744,"source":"purpleair","timestamp":"2026-10-21 16:30:01","data":{"pm25":1.4,"aqi":6,"aqiLevel":{"label":"Good","color":"#00e400"},"humidity":39,"temperature":73,"sensorTime":"2026-10-20T16:13:36.000Z"}},"airgradient":{"id":208745,"source":"airgradient","timestamp":"2026-10-21 16:30:01","data":{"co2":467,"pm25":0,"aqi":0,"aqiLevel":{"label":"Good","color":"#00e400"},"pm01":0,"pm10":0,"tvocIndex":59,"noxIndex":1,"temperature":69.6,"humidity":49,"sensorTime":"2026-10-21T16:29:28.000Z"}}},"forecast":{"hours":[{"time":"2026-10-21T12:00","temperature":58.8,"precipitationProbability":0,"weatherCode":0,"windSpeed":12},{"time":"2026-10-21T13:00","temperature":61.5,"precipitationProbability":0,"weatherCode":0,"windSpeed":12.6},{"time":"2026-10-21T14:00","temperature":63.1,"precipitationProbability":0,"weatherCode":3,"windSpeed":11.5},{"time":"2026-10-21T15:00","temperature":63.3,"precipitationProbability":0,"weatherCode":3,"windSpeed":11.2},{"time":"2026-10-21T16:00","temperature":62.5,"precipitationProbability":0,"weatherCode":3,"windSpeed":10.5},{"time":"2026-10-21T17:00","temperature":61.7,"precipitationProbability":0,"weatherCode":0,"windSpeed":9.4},{"time":"2026-10-21T18:00","temperature":57.9,"precipitationProbability":0,"weatherCode":3,"windSpeed":6.1},{"time":"2026-10-21T19:00","temperature":55,"precipitationProbability":0,"weatherCode":3,"windSpeed":6},{"time":"2026-10-21T20:00","temperature":53.3,"precipitationProbability":0,"weatherCode":3,"windSpeed":6.5},{"time":"2026-10-21T21:00","temperature":51.9,"precipitationProbability":0,"weatherCode":3,"windSpeed":6.7},{"time":"2026-10-21T22:00","temperature":50.7,"precipitationProbability":0,"weatherCode":3,"windSpeed":6.7},{"time":"2026-10-21T23:00","temperature":49.7,"precipitationProbability":0,"weatherCode":3,"windSpeed":6.9},{"time":"2026-10-22T00:00","temperature":48.9,"precipitationProbability":0,"weatherCode":3,"windSpeed":7.6},{"time":"2026-10-22T01:00","temperature":48.2,"precipitationProbability":0,"weatherCode":3,"windSpeed":8.3},{"time":"2026-10-22T02:00","temperature":47.8,"precipitationProbability":0,"weatherCode":3,"windSpeed":8.9},{"time":"2026-10-22T03:00","temperature":47.2,"precipitationProbability":0,"weatherCode":3,"windSpeed":9.4},{"time":"2026-10-22T04:00","temperature":46.3,"precipitationProbability":0,"weatherCode":3,"windSpeed":8.6},{"time":"2026-10-22T05:00","temperature":44.8,"precipitationProbability":0,"weatherCode":0,"windSpeed":7.9},{"time":"2026-10-22T06:00","temperature":44.4,"precipitationProbability":0,"weatherCode":0,"windSpeed":9},{"time":"2026-10-22T07:00","temperature":43.9,"precipitationProbability":0,"weatherCode":0,"windSpeed":8.7},{"time":"2026-10-22T08:00","temperature":45.2,"precipitationProbability":0,"weatherCode":0,"windSpeed":9.8},{"time":"2026-10-22T09:00","temperature":49.2,"precipitationProbability":0,"weatherCode":0,"windSpeed":12.7},{"time":"2026-10-22T10:00","temperature":53,"precipitationProbability":0,"weatherCode":0,"windSpeed":12.7},{"time":"2026-10-22T11:00","temperature":56,"precipitationProbability":0,"weatherCode":0,"windSpeed":13.1},{"time":"2026-10-22T12:00","temperature":58.2,"precipitationProbability":0,"weatherCode":0,"windSpeed":13.9},{"time":"2026-10-22T13:00","temperature":60.5,"precipitationProbability":0,"weatherCode":0,"windSpeed":13.4},{"time":"2026-10-22T14:00","temperature":62.4,"precipitationProbability":0,"weatherCode":0,"windSpeed":12.3},{"time":"2026-10-22T15:00","temperature":63.4,"precipitationProbability":0,"weatherCode":0,"windSpeed":11.1},{"time":"2026-10-22T16:00","temperature":63.5,"precipitationProbability":0,"weatherCode":0,"windSpeed":10.7},{"time":"2026-10-22T17:00","temperature":62.4,"precipitationProbability":0,"weatherCode":0,"windSpeed":8.9},{"time":"2026-10-22T18:00","temperature":57.9,"precipitationProbability":0,"weatherCode":0,"windSpeed":5.9},{"time":"2026-10-22T19:00","temperature":55.3,"precipitationProbability":0,"weatherCode":0,"windSpeed":5.4},{"time":"2026-10-22T20:00","temperature":54.1,"precipitationProbability":0,"weatherCode":0,"windSpeed":6.1},{"time":"2026-10-22T21:00","temperature":52.6,"precipitationProbability":0,"weatherCode":0,"windSpeed":5.9},{"time":"2026-10-22T22:00","temperature":51.6,"precipitationProbability":0,"weatherCode":0,"windSpeed":9.7},{"time":"2026-10-22T23:00","temperature":50.3,"precipitationProbability":0,"weatherCode":0,"windSpeed":12.1},{"time":"2026-10-23T00:00","temperature":48.8,"precipitationProbability":0,"weatherCode":0,"windSpeed":10.6},{"time":"2026-10-23T01:00","temperature":47.3,"precipitationProbability":0,"weatherCode":0,"windSpeed":10.7},{"time":"2026-10-23T02:00","temperature":45.9,"precipitationProbability":0,"weatherCode":0,"windSpeed":11.2},{"time":"2026-10-23T03:00","temperature":44.7,"precipitationProbability":0,"weatherCode":0,"windSpeed":11},{"time":"2026-10-23T04:00","temperature":43.5,"precipitationProbability":0,"weatherCode":0,"windSpeed":9.2},{"time":"2026-10-23T05:00","temperature":42.4,"precipitationProbability":0,"weatherCode":0,"windSpeed":7.2},{"time":"2026-10-23T06:00","temperature":42.7,"precipitationProbability":0,"weatherCode":0,"windSpeed":8},{"time":"2026-10-23T07:00","temperature":43.2,"precipitationProbability":0,"weatherCode":0,"windSpeed":8.8},{"time":"2026-10-23T08:00","temperature":44.4,"precipitationProbability":0,"weatherCode":0,"windSpeed":8.8},{"time":"2026-10-23T09:00","temperature":47.2,"precipitationProbability":0,"weatherCode":0,"windSpeed":8.2},{"time":"2026-10-23T10:00","temperature":49.9,"precipitationProbability":0,"weatherCode":0,"windSpeed":8},{"time":"2026-10-23T11:00","temperature":52.6,"precipitationProbability":0,"weatherCode":0,"windSpeed":7.5},{"time":"2026-10-23T12:00","temperature":55.1,"precipitationProbability":0,"weatherCode":0,"windSpeed":7.1},{"time":"2026-10-23T13:00","temperature":56.9,"precipitationProbability":0,"weatherCode":0,"windSpeed":7.1},{"time":"2026-10-23T14:00","temperature":58.3,"precipitationProbability":0,"weatherCode":0,"windSpeed":7.2},{"time":"2026-10-23T15:00","temperature":59,"precipitationProbability":0,"weatherCode":0,"windSpeed":7.4},{"time":"2026-10-23T16:00","temperature":59,"precipitationProbability":0,"weatherCode":0,"windSpeed":7.9},{"time":"2026-10-23T17:00","temperature":58,"precipitationProbability":0,"weatherCode":0,"windSpeed":8.2},{"time":"2026-10-23T18:00","temperature":55.8,"precipitationProbability":0,"weatherCode":0,"windSpeed":7},{"time":"2026-10-23T19:00","temperature":54.3,"precipitationProbability":0,"weatherCode":3,"windSpeed":5.8},{"time":"2026-10-23T20:00","temperature":53.3,"precipitationProbability":0,"weatherCode":3,"windSpeed":5},{"time":"2026-10-23T21:00","temperature":52.3,"precipitationProbability":0,"weatherCode":3,"windSpeed":4.6},{"time":"2026-10-23T22:00","temperature":51.4,"precipitationProbability":0,"weatherCode":3,"windSpeed":4.6},{"time":"2026-10-23T23:00","temperature":50.5,"precipitationProbability":0,"weatherCode":3,"windSpeed":3.7},{"time":"2026-10-24T00:00","temperature":49.8,"precipitationProbability":0,"weatherCode":2,"windSpeed":3.9},{"time":"2026-10-24T01:00","temperature":49.1,"precipitationProbability":0,"weatherCode":0,"windSpeed":4.4},{"time":"2026-10-24T02:00","temperature":48.7,"precipitationProbability":0,"weatherCode":3,"windSpeed":5.2},{"time":"2026-10-24T03:00","temperature":48,"precipitationProbability":0,"weatherCode":3,"windSpeed":4.9},{"time":"2026-10-24T04:00","temperature":47.3,"precipitationProbability":0,"weatherCode":3,"windSpeed":4.9},{"time":"2026-10-24T05:00","temperature":46.8,"precipitationProbability":0,"weatherCode":3,"windSpeed":4.3},{"time":"2026-10-24T06:00","temperature":46.5,"precipitationProbability":0,"weatherCode":3,"windSpeed":4.5},{"time":"2026-10-24T07:00","temperature":46.2,"precipitationProbability":0,"weatherCode":3,"windSpeed":4.5},{"time":"2026-10-24T08:00","temperature":46.4,"precipitationProbability":0,"weatherCode":3,"windSpeed":4.5},{"time":"2026-10-24T09:00","temperature":48.3,"precipitationProbability":0,"weatherCode":3,"windSpeed":4.1},{"time":"2026-10-24T10:00","temperature":51.8,"precipitationProbability":0,"weatherCode":1,"windSpeed":3.2},{"time":"2026-10-24T11:00","temperature":55.1,"precipitationProbability":0,"weatherCode":0,"windSpeed":1.8},{"time":"2026-10-24T12:00","temperature":57.8,"precipitationProbability":0,"weatherCode":0,"windSpeed":0.3},{"time":"2026-10-24T13:00","temperature":59.8,"precipitationProbability":0,"weatherCode":0,"windSpeed":2.1},{"time":"2026-10-24T14:00","temperature":60.8,"precipitationProbability":0,"weatherCode":0,"windSpeed":3},{"time":"2026-10-24T15:00","temperature":61.6,"precipitationProbability":0,"weatherCode":0,"windSpeed":3},{"time":"2026-10-24T16:00","temperature":61.7,"precipitationProbability":0,"weatherCode":0,"windSpeed":3.3},{"time":"2026-10-24T17:00","temperature":61.4,"precipitationProbability":0,"weatherCode":0,"windSpeed":3.5},{"time":"2026-10-24T18:00","temperature":59.6,"precipitationProbability":0,"weatherCode":0,"windSpeed":4.2},{"time":"2026-10-24T19:00","temperature":58.1,"precipitationProbability":0,"weatherCode":0,"windSpeed":5.5},{"time":"2026-10-24T20:00","temperature":56.7,"precipitationProbability":0,"weatherCode":0,"windSpeed":5.4},{"time":"2026-10-24T21:00","temperature":55.6,"precipitationProbability":0,"weatherCode":0,"windSpeed":4.6},{"time":"2026-10-24T22:00","temperature":54.7,"precipitationProbability":0,"weatherCode":0,"windSpeed":3.6},{"time":"2026-10-24T23:00","temperature":53.8,"precipitationProbability":0,"weatherCode":0,"windSpeed":3.7},{"time":"2026-10-25T00:00","temperature":53,"precipitationProbability":0,"weatherCode":0,"windSpeed":3.8},{"time":"2026-10-25T01:00","temperature":52.2,"precipitationProbability":0,"weatherCode":0,"windSpeed":3.8},{"time":"2026-10-25T02:00","temperature":51.4,"precipitationProbability":0,"weatherCode":0,"windSpeed":3.6},{"time":"2026-10-25T03:00","temperature":50.4,"precipitationProbability":0,"weatherCode":0,"windSpeed":3.4},{"time":"2026-10-25T04:00","temperature":49.8,"precipitationProbability":0,"weatherCode":0,"windSpeed":2.9},{"time":"2026-10-25T05:00","temperature":49.1,"precipitationProbability":0,"weatherCode":0,"windSpeed":2.9},{"time":"2026-10-25T06:00","temperature":48.6,"precipitationProbability":0,"weatherCode":0,"windSpeed":2.7},{"time":"2026-10-25T07:00","temperature":48.1,"precipitationProbability":0,"weatherCode":0,"windSpeed":2.7},{"time":"2026-10-25T08:00","temperature":48.6,"precipitationProbability":0,"weatherCode":0,"windSpeed":2.5},{"time":"2026-10-25T09:00","temperature":51.2,"precipitationProbability":0,"weatherCode":0,"windSpeed":3.6},{"time":"2026-10-25T10:00","temperature":54.4,"precipitationProbability":0,"weatherCode":0,"windSpeed":5.1},{"time":"2026-10-25T11:00","temperature":57.4,"precipitationProbability":0,"weatherCode":0,"windSpeed":6},{"time":"2026-10-25T12:00","temperature":60.1,"precipitationProbability":0,"weatherCode":0,"windSpeed":6.6},{"time":"2026-10-25T13:00","temperature":62.6,"precipitationProbability":0,"weatherCode":0,"windSpeed":7},{"time":"2026-10-25T14:00","temperature":64.4,"precipitationProbability":0,"weatherCode":0,"windSpeed":7.1},{"time":"2026-10-25T15:00","temperature":65.5,"precipitationProbability":0,"weatherCode":0,"windSpeed":7.4},{"time":"2026-10-25T16:00","temperature":65.3,"precipitationProbability":0,"weatherCode":0,"windSpeed":7.9},{"time":"2026-10-25T17:00","temperature":64.1,"precipitationProbability":0,"weatherCode":0,"windSpeed":7.9},{"time":"2026-10-25T18:00","temperature":61.6,"precipitationProbability":0,"weatherCode":0,"windSpeed":6.7},{"time":"2026-10-25T19:00","temperature":59.9,"precipitationProbability":0,"weatherCode":0,"windSpeed":6.4},{"time":"2026-10-25T20:00","temperature":58.5,"precipitationProbability":0,"weatherCode":0,"windSpeed":5.7},{"time":"2026-10-25T21:00","temperature":57.3,"precipitationProbability":0,"weatherCode":0,"windSpeed":5.7},{"time":"2026-10-25T22:00","temperature":56.2,"precipitationProbability":0,"weatherCode":0,"windSpeed":5.7},{"time":"2026-10-25T23:00","temperature":55.1,"precipitationProbability":0,"weatherCode":0,"windSpeed":5.3},{"time":"2026-10-26T00:00","temperature":54,"precipitationProbability":0,"weatherCode":0,"windSpeed":5.3},{"time":"2026-10-26T01:00","temperature":53.2,"precipitationProbability":0,"weatherCode":0,"windSpeed":5.4},{"time":"2026-10-26T02:00","temperature":52.6,"precipitationProbability":0,"weatherCode":0,"windSpeed":5.8},{"time":"2026-10-26T03:00","temperature":51.9,"precipitationProbability":0,"weatherCode":1,"windSpeed":5.8},{"time":"2026-10-26T04:00","temperature":51.4,"precipitationProbability":0,"weatherCode":1,"windSpeed":5.8},{"time":"2026-10-26T05:00","temperature":50.9,"precipitationProbability":0,"weatherCode":2,"windSpeed":5.8},{"time":"2026-10-26T06:00","temperature":50.3,"precipitationProbability":0,"weatherCode":1,"windSpeed":5.7},{"time":"2026-10-26T07:00","temperature":49.8,"precipitationProbability":0,"weatherCode":1,"windSpeed":5.4},{"time":"2026-10-26T08:00","temperature":50.5,"precipitationProbability":0,"weatherCode":0,"windSpeed":5.2},{"time":"2026-10-26T09:00","temperature":53.3,"precipitationProbability":0,"weatherCode":0,"windSpeed":5.1},{"time":"2026-10-26T10:00","temperature":57.3,"precipitationProbability":0,"weatherCode":0,"windSpeed":5},{"time":"2026-10-26T11:00","temperature":61.2,"precipitationProbability":0,"weatherCode":0,"windSpeed":5.4},{"time":"2026-10-26T12:00","temperature":64.6,"precipitationProbability":0,"weatherCode":0,"windSpeed":6.4},{"time":"2026-10-26T13:00","temperature":67.8,"precipitationProbability":0,"weatherCode":0,"windSpeed":7.9},{"time":"2026-10-26T14:00","temperature":70,"precipitationProbability":0,"weatherCode":0,"windSpeed":9},{"time":"2026-10-26T15:00","temperature":70.9,"precipitationProbability":0,"weatherCode":0,"windSpeed":9.1},{"time":"2026-10-26T16:00","temperature":70.8,"precipitationProbability":0,"weatherCode":0,"windSpeed":8.6},{"time":"2026-10-26T17:00","temperature":70,"precipitationProbability":0,"weatherCode":0,"windSpeed":8.2},{"time":"2026-10-26T18:00","temperature":68.4,"precipitationProbability":0,"weatherCode":1,"windSpeed":8},{"time":"2026-10-26T19:00","temperature":66.2,"precipitationProbability":0,"weatherCode":2,"windSpeed":8.2},{"time":"2026-10-26T20:00","temperature":64,"precipitationProbability":0,"weatherCode":3,"windSpeed":8.6},{"time":"2026-10-26T21:00","temperature":62,"precipitationProbability":0,"weatherCode":3,"windSpeed":9.1},{"time":"2026-10-26T22:00","temperature":60,"precipitationProbability":0,"weatherCode":2,"windSpeed":9.9},{"time":"2026-10-26T23:00","temperature":58.3,"precipitationProbability":0,"weatherCode":2,"windSpeed":9.9},{"time":"2026-10-27T00:00","temperature":57.1,"precipitationProbability":0,"weatherCode":1,"windSpeed":8.5},{"time":"2026-10-27T01:00","temperature":56.3,"precipitationProbability":0,"weatherCode":1,"windSpeed":6.8},{"time":"2026-10-27T02:00","temperature":55.4,"precipitationProbability":0,"weatherCode":1,"windSpeed":6.3},{"time":"2026-10-27T03:00","temperature":54.5,"precipitationProbability":0,"weatherCode":1,"windSpeed":7.4},{"time":"2026-10-27T04:00","temperature":53.5,"precipitationProbability":0,"weatherCode":2,"windSpeed":9.3},{"time":"2026-10-27T05:00","temperature":52.6,"precipitationProbability":0,"weatherCode":2,"windSpeed":10.6},{"time":"2026-10-27T06:00","temperature":51.1,"precipitationProbability":0,"weatherCode":2,"windSpeed":10.7},{"time":"2026-10-27T07:00","temperature":49.6,"precipitationProbability":0,"weatherCode":1,"windSpeed":10.4},{"time":"2026-10-27T08:00","temperature":49,"precipitationProbability":0,"weatherCode":1,"windSpeed":9.9},{"time":"2026-10-27T09:00","temperature":49.9,"precipitationProbability":0,"weatherCode":1,"windSpeed":9.1},{"time":"2026-10-27T10:00","temperature":51.7,"precipitationProbability":0,"weatherCode":0,"windSpeed":8.3},{"time":"2026-10-27T11:00","temperature":53.5,"precipitationProbability":0,"weatherCode":0,"windSpeed":7.6},{"time":"2026-10-27T12:00","temperature":55.3,"precipitationProbability":0,"weatherCode":0,"windSpeed":6.8},{"time":"2026-10-27T13:00","temperature":57.1,"precipitationProbability":0,"weatherCode":0,"windSpeed":5.8},{"time":"2026-10-27T14:00","temperature":58.3,"precipitationProbability":0,"weatherCode":0,"windSpeed":5.2},{"time":"2026-10-27T15:00","temperature":58.7,"precipitationProbability":1,"weatherCode":0,"windSpeed":5.3},{"time":"2026-10-27T16:00","temperature":58.4,"precipitationProbability":1,"weatherCode":0,"windSpeed":5.7},{"time":"2026-10-27T17:00","temperature":57.8,"precipitationProbability":1,"weatherCode":0,"windSpeed":6},{"time":"2026-10-27T18:00","temperature":56.5,"precipitationProbability":1,"weatherCode":0,"windSpeed":5.9},{"time":"2026-10-27T19:00","temperature":54.9,"precipitationProbability":1,"weatherCode":1,"windSpeed":5.7},{"time":"2026-10-27T20:00","temperature":53.5,"precipitationProbability":1,"weatherCode":1,"windSpeed":5.6},{"time":"2026-10-27T21:00","temperature":52.5,"precipitationProbability":1,"weatherCode":1,"windSpeed":5.1},{"time":"2026-10-27T22:00","temperature":51.7,"precipitationProbability":1,"weatherCode":0,"windSpeed":4.7},{"time":"2026-10-27T23:00","temperature":51.1,"precipitationProbability":1,"weatherCode":0,"windSpeed":4.2},{"time":"2026-10-28T00:00","temperature":50.4,"precipitationProbability":1,"weatherCode":0,"windSpeed":4.1},{"time":"2026-10-28T01:00","temperature":49.8,"precipitationProbability":1,"weatherCode":1,"windSpeed":4.1},{"time":"2026-10-28T02:00","temperature":49.3,"precipitationProbability":1,"weatherCode":1,"windSpeed":4.1},{"time":"2026-10-28T03:00","temperature":49,"precipitationProbability":1,"weatherCode":1,"windSpeed":4.3},{"time":"2026-10-28T04:00","temperature":48.8,"precipitationProbability":1,"weatherCode":2,"windSpeed":4.4},{"time":"2026-10-28T05:00","temperature":48.7,"precipitationProbability":1,"weatherCode":2,"windSpeed":4.4},{"time":"2026-10-28T06:00","temperature":48.5,"precipitationProbability":1,"weatherCode":3,"windSpeed":4.4},{"time":"2026-10-28T07:00","temperature":48.4,"precipitationProbability":1,"weatherCode":3,"windSpeed":4.3},{"time":"2026-10-28T08:00","temperature":49.1,"precipitationProbability":1,"weatherCode":3,"windSpeed":3.7},{"time":"2026-10-28T09:00","temperature":51.3,"precipitationProbability":1,"weatherCode":3,"windSpeed":2.6},{"time":"2026-10-28T10:00","temperature":54.3,"precipitationProbability":1,"weatherCode":3,"windSpeed":2.8},{"time":"2026-10-28T11:00","temperature":56.9,"precipitationProbability":1,"weatherCode":3,"windSpeed":4}],"days":[{"date":"2026-10-21","tempMax":63.3,"tempMin":48.1,"weatherCode":3,"precipitationProbabilityMax":0},{"date":"2026-10-22","tempMax":63.5,"tempMin":43.9,"weatherCode":3,"precipitationProbabilityMax":0},{"date":"2026-10-23","tempMax":59,"tempMin":42.4,"weatherCode":3,"precipitationProbabilityMax":0},{"date":"2026-10-24","tempMax":61.7,"tempMin":46.2,"weatherCode":3,"precipitationProbabilityMax":0},{"date":"2026-10-25","tempMax":65.5,"tempMin":48.1,"weatherCode":0,"precipitationProbabilityMax":0},{"date":"2026-10-26","tempMax":70.9,"tempMin":49.8,"weatherCode":3,"precipitationProbabilityMax":0},{"date":"2026-10-27","tempMax":58.7,"tempMin":49,"weatherCode":2,"precipitationProbabilityMax":1}]},"forecastError":null,"version":"2.8.0"}