 	strlcpy(c.moonrise_minute, moon[F("moonrise")][F("minute")] | "", sizeof(c.moonrise_minute));
 	strlcpy(c.moonset_hour, moon[F("moonset")][F("hour")] | "", sizeof(c.moonset_hour));
 	strlcpy(c.moonset_minute, moon[F("moonset")][F("minute")] | "", sizeof(c.moonset_minute));
+
+	struct tm *tm = localtime(&epoch);
+	const char *icon = current_observation[F("icon")] | "";
+	if (!tm || (tm->tm_hour >= c.sunrise_hour && tm->tm_hour <= c.sunset_hour))
+		strlcpy(c.icon, icon, sizeof(c.icon));
+	else {
+		strcpy_P(c.icon, PSTR("nt_"));
+		strlcat(c.icon, icon, sizeof(c.icon)-3);
+	}
 	return true;
 }
 

	int wind_degrees;
	int ave_humidity;
	char conditions[32];
	char icon[16];
} forecasts[4];

void update_forecasts(JsonObject &root) {

}

struct Conditions {
	char icon[20];
	char weather[32];
	int temp, feelslike;
	int humidity;
