added weather forecast fetch from open-meteo

This commit is contained in:
2026-06-24 21:23:03 +03:00
parent 4917f57d16
commit f143c16c25
7 changed files with 381 additions and 25 deletions
+37
View File
@@ -0,0 +1,37 @@
#ifndef WEATHER_FORECAST_H
#define WEATHER_FORECAST_H
#include <Arduino.h>
struct WeatherForecastInfo
{
bool valid;
float currentTemperatureC;
float minTemperatureC;
float maxTemperatureC;
float precipitationMm;
uint8_t precipitationProbabilityPercent;
int weatherCode;
};
class WeatherForecast
{
public:
WeatherForecast();
void update(unsigned long now, bool wifiConnected);
WeatherForecastInfo info() const;
bool consumeDirty();
private:
void fetch(unsigned long now);
bool readResponse(String &body);
bool parseForecast(const String &body, WeatherForecastInfo &forecast) const;
bool parseFloatArray(const String &body, const char *name, float *values, size_t maxCount, size_t &count) const;
bool parseIntArray(const String &body, const char *name, int *values, size_t maxCount, size_t &count) const;
WeatherForecastInfo current_;
unsigned long nextAttempt_;
bool dirty_;
};
#endif