 }
 
 void display_forecast(struct Forecast &f) {
-
   tft.fillScreen(WHITE);
   tft.setTextColor(BLACK);
 

  time_t epoch;
  char city[48];
  int wind_degrees;

} conditions;

bool update_conditions(JsonObject &root, struct Conditions &c) {

  JsonObject& current_observation = root[F("current_observation")];
  time_t epoch = (time_t)atoi(current_observation[F("observation_epoch")]);
  if (epoch == c.epoch)
    return false;
  c.epoch = epoch;
  strncpy(c.icon, current_observation[F("icon")], sizeof(c.icon));
  strncpy(c.weather, current_observation[F("weather")], sizeof(c.weather));

  void configure(JsonObject &o);
} cfg;

void config::configure(JsonObject &o) {
  strncpy(ssid, o[F("ssid")] | "", sizeof(ssid));
  strncpy(password, o[F("password")] | "", sizeof(password));
  strncpy(key, o[F("key")] | "", sizeof(key));
  strncpy(station, o[F("station")] | "", sizeof(station));
  strncpy(hostname, o[F("hostname")] | "", sizeof(hostname));
  conditions_interval = 1000 * (int)o[F("conditions_interval")];
  forecasts_interval = 1000 * (int)o[F("forecasts_interval")];
  metric = (bool)o[F("metric")];
