add web ui
This commit is contained in:
119
cmd/ingestd/web/index.html
Normal file
119
cmd/ingestd/web/index.html
Normal file
@@ -0,0 +1,119 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Weatherstation Console</title>
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600&family=Space+Grotesk:wght@400;600&display=swap" rel="stylesheet">
|
||||
<link rel="stylesheet" href="/styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="bg"></div>
|
||||
<header class="topbar">
|
||||
<div>
|
||||
<div class="title">Weatherstation Console</div>
|
||||
<div class="subtitle" id="site-meta">Loading...</div>
|
||||
</div>
|
||||
<div class="controls">
|
||||
<button class="btn" data-range="6h">6h</button>
|
||||
<button class="btn active" data-range="24h">24h</button>
|
||||
<button class="btn" data-range="72h">72h</button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main class="layout">
|
||||
<section class="panel hero">
|
||||
<div class="panel-header">
|
||||
<div class="panel-title">Live Snapshot</div>
|
||||
<div class="panel-meta" id="last-updated">--</div>
|
||||
</div>
|
||||
<div class="live-grid">
|
||||
<div class="metric">
|
||||
<div class="label">Temp C</div>
|
||||
<div class="value" id="live-temp">--</div>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<div class="label">Humidity</div>
|
||||
<div class="value" id="live-rh">--</div>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<div class="label">Wind m/s</div>
|
||||
<div class="value" id="live-wind">--</div>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<div class="label">Gust m/s</div>
|
||||
<div class="value" id="live-gust">--</div>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<div class="label">Wind Dir deg</div>
|
||||
<div class="value" id="live-wdir">--</div>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<div class="label">UVI</div>
|
||||
<div class="value" id="live-uvi">--</div>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<div class="label">Light Lux</div>
|
||||
<div class="value" id="live-lux">--</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="callouts">
|
||||
<div class="callout">
|
||||
<div class="callout-title">Deviation Commentary</div>
|
||||
<div class="callout-body" id="commentary">Waiting for forecast data...</div>
|
||||
</div>
|
||||
<div class="callout">
|
||||
<div class="callout-title">Observation Summary</div>
|
||||
<div class="callout-body" id="obs-summary">--</div>
|
||||
</div>
|
||||
<div class="callout">
|
||||
<div class="callout-title">Forecast Summary</div>
|
||||
<div class="callout-body" id="forecast-summary">--</div>
|
||||
</div>
|
||||
<div class="callout">
|
||||
<div class="callout-title">Forecast Request</div>
|
||||
<div class="callout-body">
|
||||
<a id="forecast-url" class="mono" href="#" target="_blank" rel="noreferrer">--</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="panel charts">
|
||||
<div class="panel-header">
|
||||
<div class="panel-title">Metrics</div>
|
||||
<div class="panel-meta" id="forecast-meta">--</div>
|
||||
</div>
|
||||
<div class="charts-grid">
|
||||
<div class="chart-card">
|
||||
<div class="chart-title">Temperature (obs vs forecast)</div>
|
||||
<canvas id="chart-temp"></canvas>
|
||||
</div>
|
||||
<div class="chart-card">
|
||||
<div class="chart-title">Wind (obs vs forecast)</div>
|
||||
<canvas id="chart-wind"></canvas>
|
||||
</div>
|
||||
<div class="chart-card">
|
||||
<div class="chart-title">Humidity (obs vs forecast)</div>
|
||||
<canvas id="chart-rh"></canvas>
|
||||
</div>
|
||||
<div class="chart-card">
|
||||
<div class="chart-title">UV Index and Light</div>
|
||||
<canvas id="chart-light"></canvas>
|
||||
</div>
|
||||
<div class="chart-card wide">
|
||||
<div class="chart-title">Precipitation (forecast)</div>
|
||||
<canvas id="chart-precip"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.1/dist/chart.umd.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chartjs-adapter-date-fns@3.0.0/dist/chartjs-adapter-date-fns.bundle.min.js"></script>
|
||||
<script src="/app.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user