Biomekka 1.8.21 Solar fallback/self-heal refinement: - Fresh daily solar updates now require both configured locations to fetch and pass sanity checks. - If either fetch fails, Biomekka keeps using the last known good solar schedule instead of switching to a fixed schedule or half-trusting one location. - Last known good solar schedule is stored in ESP32 Preferences/NVS after a successful fresh update, so it survives reboot/power loss. - On boot, Biomekka loads the stored last-good schedule first and marks it as fallback until fresh API data succeeds. - Fixed schedule is now only the dead-man fallback if no stored last-good schedule exists yet. - Self-heal retry continues while fallback/sanity warning is active. - Daily refresh failure no longer hammers the API every loop after 02:05; it falls back to the self-heal retry interval. - Dashboard /status now exposes solar_active_date so fallback date/source can be checked. Safety notes: - Preferences writes are only attempted when a fresh valid schedule differs from the stored copy, avoiding constant flash writes. - No pin, relay, heater, fan, storm, mist, spray, rain, MQTT, Grafana database, or LED index changes.