 	if (!current_observation.success())
 		return false;
 	time_t epoch = (time_t)atoi(current_observation[F("observation_epoch")] | "0");
-	if (epoch <= c.epoch)
-		return false;
+	bool update = epoch > c.epoch;
 
 	c.epoch = epoch;
 	strlcpy(c.icon, current_observation[F("icon")] | "", sizeof(c.icon));

			tft.fillScreen(BLACK);
			fade = cfg.dim;
		}
	} else if (swtch && now - display_on > 500) {
		swtch = false;
		if (screen > 5)
			screen = 0;
		else
			screen++;
		update_display(screen);
	}

	fetch(now, F("astronomy/conditions"), cbytes, last_fetch_conditions, cfg.conditions_interval, [] (JsonObject &root) {
		if (update_conditions(root, conditions) && (cfg.dimmable || fade == cfg.bright))

			if (cfg.dimmable)
				update_display(screen);
		}
	} else if (ontime > cfg.on_time) {
		if (cfg.dimmable) {
			analogWrite(TFT_LED, --fade);
			delay(25);
