File size: 11,119 Bytes
60be3de 422425a 60be3de 12ab5fa c5af1a9 422425a 12ab5fa 60be3de 12ab5fa 9a84c9f 12ab5fa 422425a 9d13c1a 60be3de 12ab5fa 9a84c9f 3018439 12ab5fa a6bc00c 699bb01 12ab5fa 86ee96a 422425a 86ee96a fd06a12 12ab5fa 422425a a1c6db9 422425a 35a5d5c b2da21c fd06a12 12ab5fa 76f3628 19a2af6 12ab5fa 19a2af6 1f0f11f 80f542b 1f0f11f 80f542b 1f0f11f 12ab5fa 15b1e64 12ab5fa c8977fb 12ab5fa 422425a f3f955c 422425a 12ab5fa 422425a 12ab5fa 9a84c9f 12ab5fa 422425a 9a84c9f fd06a12 12ab5fa fd06a12 4bec2bb 12ab5fa 422425a 12ab5fa 422425a 12ab5fa 1434398 12ab5fa 422425a 12ab5fa 60be3de 12ab5fa 60be3de 1434398 9d13c1a 1434398 422425a 1434398 12ab5fa 7635cbd 12ab5fa b2da21c 12ab5fa 422425a 12ab5fa 422425a 12ab5fa 7635cbd 9a84c9f 7635cbd c53da40 7635cbd 3018439 12ab5fa 3018439 12ab5fa 60be3de 12ab5fa | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 | <!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Reachy Mini for Home Assistant</title>
<meta name="description" content="Voice assistant integration for Reachy Mini robot with Home Assistant. Control your smart home with voice commands and expressive robot movements.">
<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=Space+Grotesk:wght@400;500;600;700&family=Manrope:wght@400;500;600&display=swap" rel="stylesheet">
<link rel="stylesheet" href="style.css" />
</head>
<body>
<header class="hero">
<div class="topline">
<div class="brand">
<span class="logo">π€</span>
<span class="brand-name">Reachy Mini for Home Assistant</span>
</div>
<div class="pill">Voice Β· Gestures Β· Smart Home</div>
<div class="version-pill" id="version-pill">v0.8.3</div>
</div>
<div class="hero-grid">
<div class="hero-copy">
<p class="eyebrow">Reachy Mini App</p>
<h1>Your robot meets your Home Assistant.</h1>
<p class="lede">
Transform Reachy Mini Wi-Fi into a voice-controlled smart home hub. Natural conversations, expressive movements, gesture recognition β all seamlessly connected to Home Assistant.
</p>
<div class="hero-actions">
<a class="btn primary" href="#requirements">Requirements</a>
<a class="btn ghost" href="#install">Quick Start</a>
<a class="btn ghost" href="#features">Features</a>
</div>
<div class="hero-badges">
<span>π€ Wake Word</span>
<span>π Face Tracking</span>
<span>π Body Following</span>
<span>π€ 18 Gestures</span>
<span>π Multi-room Audio</span>
<span>β‘ Zero Config</span>
<span>π Dashboard Card</span>
</div>
</div>
<div class="hero-visual">
<div class="video-container">
<iframe src="https://www.youtube.com/embed/OuhTSTKB25o" title="Reachy Mini for Home Assistant Demo" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div>
</div>
</div>
</header>
<section id="requirements" class="section">
<div class="section-header">
<p class="eyebrow">Before You Start</p>
<h2>Requirements</h2>
<p class="intro">Make sure you have everything ready for a smooth setup.</p>
</div>
<div class="requirements-grid">
<div class="requirement-card">
<span class="icon">π€</span>
<h3>Reachy Mini Wi-Fi</h3>
<p>This app requires the <strong>Wi-Fi version</strong> of Reachy Mini. The USB version has not been validated</p>
</div>
<div class="requirement-card">
<span class="icon">π </span>
<h3>Home Assistant</h3>
<p>A running Home Assistant instance </p>
</div>
<div class="requirement-card">
<span class="icon">πΆ</span>
<h3>Same Network</h3>
<p>Both Reachy Mini and Home Assistant must be on the <strong>same local network</strong>.</p>
</div>
<div class="requirement-card">
<span class="icon">ποΈ</span>
<h3>Voice Pipeline</h3>
<p>Configure a <strong>Voice Assistant pipeline</strong> in Home Assistant (STT + TTS).</p>
</div>
</div>
</section>
<section id="install" class="section story">
<div class="section-header">
<p class="eyebrow">Getting Started</p>
<h2>Quick Start</h2>
<p class="intro">Install and connect in under a minute. No configuration needed.</p>
</div>
<div class="story-grid">
<div class="story-card">
<p class="eyebrow">Installation</p>
<h3>Up and running in 1 minutes</h3>
<ul class="story-list">
<li><span>1οΈβ£</span> Open Reachy Mini Dashboard β Applications</li>
<li><span>2οΈβ£</span> Enable "Show community apps"</li>
<li><span>3οΈβ£</span> Install "Reachy Mini for Home Assistant"</li>
<li><span>4οΈβ£</span> Home Assistant discovers automatically</li>
</ul>
</div>
<div class="story-card secondary">
<p class="eyebrow">How it works</p>
<h3>Seamless integration</h3>
<p class="story-text">
This Reachy Mini app uses ESPHome protocol to communicate with Home Assistant β no ESPHome device needed. Home Assistant discovers it via mDNS and adds all 45+ entities automatically. Voice commands are processed by your Home Assistant instance β STT, intent recognition, and TTS all happen there.
</p>
<div class="chips">
<span class="chip">ESPHome Protocol</span>
<span class="chip">mDNS Discovery</span>
<span class="chip">45+ Entities</span>
<span class="chip">Zero Config</span>
</div>
</div>
</div>
</section>
<section id="features" class="section features">
<div class="section-header">
<p class="eyebrow">Capabilities</p>
<h2>Everything you need for smart home control</h2>
<p class="intro">45+ Home Assistant entities. Zero configuration. Auto-discovery via mDNS.</p>
</div>
<div class="feature-grid">
<div class="feature-card">
<span class="icon">π€</span>
<h3>Voice Wake</h3>
<p>Local wake word detection with MicroWakeWord and OpenWakeWord. Say "Okay Nabu" or "Hey Reachy" to activate.</p>
</div>
<div class="feature-card">
<span class="icon">π </span>
<h3>Smart Home Control</h3>
<p>Full Home Assistant integration. Control lights, switches, climate, media β anything in your Home Assistant.</p>
</div>
<div class="feature-card">
<span class="icon">π</span>
<h3>Face Tracking</h3>
<p>YOLO-based face detection with body following. Head and body move together naturally to track you during conversations.</p>
</div>
<div class="feature-card">
<span class="icon">π€</span>
<h3>Gesture Detection</h3>
<p>HaGRID ONNX models recognize 18 hand gestures: ππβοΈπ€πβπ€π€« and more.</p>
</div>
<div class="feature-card">
<span class="icon">π</span>
<h3>Expressive Motion</h3>
<p>280+ emotion keywords trigger 35 expressions. Real-time audio-driven animations with natural head sway during conversations.</p>
</div>
<div class="feature-card">
<span class="icon">πΉ</span>
<h3>Camera Stream</h3>
<p>MJPEG video stream as ESPHome Camera entity. Real-time monitoring in Home Assistant dashboard.</p>
</div>
<div class="feature-card">
<span class="icon">π</span>
<h3>Multi-room Audio</h3>
<p>Sendspin protocol support. Sync audio playback with other speakers throughout your home.</p>
</div>
<div class="feature-card">
<span class="icon">β‘</span>
<h3>Zero Configuration</h3>
<p>Install and go. mDNS auto-discovery means Home Assistant finds your robot automatically.</p>
</div>
<div class="feature-card">
<span class="icon">π</span>
<h3>Dashboard Card</h3>
<p>Custom Lovelace card for Home Assistant. Real-time 3D visualization of robot pose and status.</p>
</div>
</div>
</section>
<section id="changelog" class="section">
<div class="section-header">
<p class="eyebrow">Updates</p>
<h2>Changelog</h2>
</div>
<div id="changelog-grid" class="changelog-grid"></div>
<div class="changelog-more">
<details id="changelog-details">
<summary>View older versions</summary>
<div id="changelog-older" class="changelog-grid older"></div>
</details>
</div>
</section>
<script>
const VISIBLE_COUNT = 6;
fetch('changelog.json')
.then(res => res.json())
.then(data => {
// Update version pill with latest version
if (data.length > 0) {
const versionPill = document.getElementById('version-pill');
if (versionPill) {
versionPill.textContent = `v${data[0].version}`;
}
}
// Populate changelog grid
const mainGrid = document.getElementById('changelog-grid');
const olderGrid = document.getElementById('changelog-older');
data.forEach((item, index) => {
const card = document.createElement('div');
card.className = 'changelog-card';
card.innerHTML = `
<div class="version-badge">v${item.version}</div>
<span class="date">${item.date}</span>
<ul>${item.changes.map(c => `<li>${c}</li>`).join('')}</ul>
`;
(index < VISIBLE_COUNT ? mainGrid : olderGrid).appendChild(card);
});
if (data.length <= VISIBLE_COUNT) {
document.getElementById('changelog-details').style.display = 'none';
}
})
.catch(err => console.error('Failed to load changelog:', err));
</script>
<section class="section links">
<div class="section-header">
<p class="eyebrow">Resources</p>
<h2>Links & References</h2>
</div>
<div class="links-grid">
<a href="https://github.com/Desmond-Dong/ha-reachy-mini" target="_blank" class="link-card">
<span class="icon">π</span>
<h3>HA Dashboard Card</h3>
<p>Lovelace Card for HA</p>
</a>
<a href="https://huggingface.co/spaces/djhui5710/reachy_mini_ha_voice/tree/main" target="_blank" class="link-card">
<span class="icon">π¦</span>
<h3>Source Code</h3>
<p>HuggingFace Spaces</p>
</a>
<a href="https://www.pollen-robotics.com/" target="_blank" class="link-card">
<span class="icon">π€</span>
<h3>Pollen Robotics</h3>
<p>Reachy Mini Creator</p>
</a>
<a href="https://www.home-assistant.io/" target="_blank" class="link-card">
<span class="icon">π </span>
<h3>Home Assistant</h3>
<p>Smart Home Platform</p>
</a>
<a href="https://esphome.io/" target="_blank" class="link-card">
<span class="icon">β‘</span>
<h3>ESPHome Protocol</h3>
<p>Communication Protocol</p>
</a>
<a href="https://github.com/OHF-Voice/linux-voice-assistant" target="_blank" class="link-card">
<span class="icon">π€</span>
<h3>linux-voice-assistant</h3>
<p>Voice Assistant Base</p>
</a>
<a href="https://github.com/kahrendt/microWakeWord" target="_blank" class="link-card">
<span class="icon">π</span>
<h3>microWakeWord</h3>
<p>Wake Word Detection</p>
</a>
<a href="https://huggingface.co/AdamCodd/YOLOv11n-face-detection" target="_blank" class="link-card">
<span class="icon">π</span>
<h3>YOLOv11n-face</h3>
<p>Face Detection Model</p>
</a>
<a href="https://github.com/ai-forever/dynamic_gestures" target="_blank" class="link-card">
<span class="icon">β</span>
<h3>Dynamic Gestures</h3>
<p>ONNX Models</p>
</a>
<a href="https://github.com/Sendspin/sendspin-cli" target="_blank" class="link-card">
<span class="icon">π</span>
<h3>Sendspin</h3>
<p>Multi-room Audio</p>
</a>
<a href="https://huggingface.co/spaces/pollen-robotics/reachy-mini-landing-page#apps" target="_blank" class="link-card">
<span class="icon">π</span>
<h3>Reachy Mini App Store</h3>
<p>More Apps</p>
</a>
</div>
</section>
<footer class="footer">
<p>Built by <a href="https://github.com/Desmond-Dong" target="_blank">Desmond</a></p>
</footer>
</body>
</html>
|