89 lines
3.2 KiB
HTML
89 lines
3.2 KiB
HTML
<!doctype html>
|
|
<html lang="de">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>Home-Bro Client | Satellite Config</title>
|
|
<link rel="stylesheet" href="/static/style.css" />
|
|
<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=Inter:wght@300;400;600;800&family=Outfit:wght@400;700&display=swap"
|
|
rel="stylesheet"
|
|
/>
|
|
</head>
|
|
<body>
|
|
<div class="background-glow"></div>
|
|
<main class="container">
|
|
<header>
|
|
<div class="logo">
|
|
<span class="logo-icon">🛰️</span>
|
|
<h1>Home-Bro <span>Satellite</span></h1>
|
|
</div>
|
|
<div id="status-badge" class="badge checking">Verbindung prüfen...</div>
|
|
</header>
|
|
|
|
<section class="card">
|
|
<h2>Konfiguration</h2>
|
|
<p class="subtitle">Verbinde diesen Satelliten mit dem Gehirn.</p>
|
|
|
|
<div class="input-group">
|
|
<label for="bro-name">Home-Bro Name</label>
|
|
<input type="text" id="bro-name" placeholder="z.B. Chiller-Bro" />
|
|
<span class="input-hint">Wie soll dein Mitbewohner heißen?</span>
|
|
</div>
|
|
|
|
<div class="input-group">
|
|
<label for="pico-key">Picovoice API Key</label>
|
|
<input type="password" id="pico-key" placeholder="Dein Picovoice Access Key" />
|
|
<span class="input-hint">Benötigt für die Wake-Word Erkennung.</span>
|
|
</div>
|
|
|
|
<div class="input-group">
|
|
<label for="brain-url">Brain API URL</label>
|
|
<input
|
|
type="text"
|
|
id="brain-url"
|
|
placeholder="http://192.168.1.50:8000"
|
|
/>
|
|
<span class="input-hint">Die IP-Adresse deines Home-Bro Brains.</span>
|
|
</div>
|
|
|
|
<div class="input-group">
|
|
<label for="wake-word">Wake-Word (Porcupine)</label>
|
|
<select id="wake-word">
|
|
<option value="porcupine">Porcupine</option>
|
|
<option value="bumblebee">Bumblebee</option>
|
|
<option value="grasshopper">Grasshopper</option>
|
|
<option value="picovoice">Picovoice</option>
|
|
<option value="custom">Custom (.ppn File Path)</option>
|
|
</select>
|
|
<input type="text" id="custom-wake-word" placeholder="/path/to/file.ppn" style="display: none; margin-top: 10px;" />
|
|
</div>
|
|
|
|
<button id="save-btn" class="primary-btn">
|
|
<span class="btn-text">Einstellungen speichern</span>
|
|
<span class="loader"></span>
|
|
</button>
|
|
</section>
|
|
|
|
<section class="card secondary">
|
|
<h2>Systemstatus</h2>
|
|
<div class="status-grid">
|
|
<div class="status-item">
|
|
<span class="label">Uptime</span>
|
|
<span id="uptime" class="value">00:00:00</span>
|
|
</div>
|
|
<div class="status-item">
|
|
<span class="label">Kamera</span>
|
|
<span id="camera-status" class="value">Inaktiv</span>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<div id="toast" class="toast">Gespeichert!</div>
|
|
</main>
|
|
<script src="/static/script.js"></script>
|
|
</body>
|
|
</html>
|