     }
     f.ave_humidity = day[F("avehumidity")];
     f.wind_degrees = day[F("avewind")][F("degrees")];
-    strncpy(f.wind_dir, day[F("avewind")][F("dir")] | "", sizeof(f.wind_dir));
-    strncpy(f.conditions, day[F("conditions")] | "", sizeof(f.conditions));
-    strncpy(f.icon, day[F("icon")] | "", sizeof(f.icon));
+    strlcpy(f.wind_dir, day[F("avewind")][F("dir")] | "", sizeof(f.wind_dir));
+    strlcpy(f.conditions, day[F("conditions")] | "", sizeof(f.conditions));
+    strlcpy(f.icon, day[F("icon")] | "", sizeof(f.icon));
   }
 }
 

    JsonObject &day = days[i];
    struct Forecast &f = forecasts[i];
    f.epoch = (time_t)atoi(day[F("date")][F("epoch")]);
    strncpy(f.day, day[F("date")][F("weekday_short")] | "", sizeof(f.day));
    if (cfg.metric) {
      f.temp_high = atoi(day[F("high")][F("celsius")] | "0");
      f.temp_low = atoi(day[F("low")][F("celsius")] | "0");

    return false;

  c.epoch = epoch;
  strlcpy(c.icon, current_observation[F("icon")] | "", sizeof(c.icon));
  strlcpy(c.weather, current_observation[F("weather")] | "", sizeof(c.weather));
  if (cfg.metric) {
    c.temp = current_observation[F("temp_c")];
    c.feelslike = atoi(current_observation[F("feelslike_c")] | "0");
