Locations Tracked
{{ stats.locationsTracked || 0 }}
Weather API Calls
{{ stats.weatherApiCalls || 0 }}
Cache Hits
{{ stats.cacheHits || 0 }}
Uptime
{{ formatUptime(stats.uptimeSeconds) }}
API Usage (1 min)
{{ apiUsage.callsLastMinute }}/{{ apiUsage.callsLimit }}
{{ apiUsage.skippedLastMinute }} skipped
Configuration
{{ config.openweatherConfigured ? 'Configured' : 'Not Set' }}
Batch Weather Fetcher
Status:
{{ batchStatus.running ? 'Running' : 'Stopped' }}
Last Run:
{{ formatTime(batchStatus.lastRunAt) }}
Next Run:
{{ formatTime(batchStatus.nextRunAt) }}
Locations Fetched:
{{ batchStatus.locationsFetched || 0 }}
{{ intervalSaving ? 'Saving...' : formatInterval(intervalSteps[intervalSliderIndex]) }}
Active Locations
| Location | Coordinates | POA (W/m²) | Weather | Last Requested |
|---|---|---|---|---|
| {{ loc.name || `Location ${index + 1}` }} | {{ loc.lat?.toFixed(4) || '-' }}, {{ loc.lon?.toFixed(4) || '-' }} | {{ loc.poaTotalWm2?.toFixed(0) || '-' }} | {{ formatWeather(loc) }} | {{ formatTime(loc.lastRequested) }} |