File size: 14,284 Bytes
60be3de c5af1a9 60be3de c5af1a9 699bb01 60be3de fd06a12 699bb01 c5af1a9 699bb01 fd06a12 b30312a fd06a12 b30312a fd06a12 b30312a c5af1a9 b30312a fd06a12 326e2ad fd06a12 4dbe61e fd06a12 326e2ad fd06a12 699bb01 4dbe61e fd06a12 326e2ad fd06a12 699bb01 326e2ad fd06a12 19a2af6 0e3f2eb 6ed5b09 06a6f96 f7f01c8 8a1f05c 3bc695f 90a9b9f b03d17a c256ff2 5f422a0 19a2af6 0361684 19a2af6 4051ebd 19a2af6 fd06a12 699bb01 326e2ad fd06a12 60be3de fd06a12 60be3de fd06a12 60be3de | 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 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 | <!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>Reachy Mini for Home Assistant</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<div class="hero">
<div class="hero-content">
<div class="app-icon">π€β‘</div>
<h1>Reachy Mini for Home Assistant</h1>
<p class="tagline">Control your Home Assistant with voice using Reachy Mini robot</p>
</div>
</div>
<div class="container">
<div class="main-card">
<div class="app-details">
<h2>What is this?</h2>
<p style="text-align: center; color: #475569; line-height: 1.8; margin-bottom: 2rem;">
This app integrates your <strong>Reachy Mini robot</strong> with <strong>Home Assistant</strong>.
Speak to Reachy Mini, and it will control your smart home devices through Home Assistant's voice commands.
Reachy Mini provides visual feedback with head movements and antenna animations while listening and responding.
</p>
<h2>Installation</h2>
<div class="how-to-use">
<h3>Install from Reachy Mini Dashboard:</h3>
<div class="steps">
<div class="step">
<div class="step-number">1</div>
<div>
<h4>Open Reachy Mini Dashboard</h4>
<p>Navigate to the Applications section in your browser</p>
</div>
</div>
<div class="step">
<div class="step-number">2</div>
<div>
<h4>Show Community Apps</h4>
<p>Check the "Show community apps" checkbox to see third-party applications</p>
</div>
</div>
<div class="step">
<div class="step-number">3</div>
<div>
<h4>Find and Install</h4>
<p>Search for "Reachy Mini for Home Assistant" and click Install</p>
</div>
</div>
<div class="step">
<div class="step-number">4</div>
<div>
<h4>Connect to Home Assistant</h4>
<p>The app will be automatically discovered by Home Assistant via mDNS</p>
</div>
</div>
</div>
</div>
<h2>Features</h2>
<div class="template-info">
<div class="info-box">
<h3>π€ Voice & Tap Wake</h3>
<p>Say "Okay Nabu" or tap Reachy Mini's head to activate. Multiple wake options for convenience.</p>
</div>
<div class="info-box">
<h3>π Smart Home Control</h3>
<p>Home Assistant processes your voice commands and controls your smart home devices automatically.</p>
</div>
<div class="info-box">
<h3>π Face Tracking</h3>
<p>YOLO-based face detection enables Reachy Mini to look at you during conversations for natural interaction.</p>
</div>
<div class="info-box">
<h3>π Facial Expressions</h3>
<p>Automatic emotional feedback with head movements and antenna animations while listening and responding.</p>
</div>
<div class="info-box">
<h3>πΉ Camera Streaming</h3>
<p>MJPEG video stream available in Home Assistant as a Generic Camera for real-time monitoring.</p>
</div>
<div class="info-box">
<h3>π Sendspin Audio</h3>
<p>Multi-room audio support via Sendspin protocol. Sync playback with other speakers in your home.</p>
</div>
<div class="info-box">
<h3>ποΈ 30+ Control Entities</h3>
<p>Complete robot control via Home Assistant: motors, head position, LEDs, emotions, tap sensitivity, and more.</p>
</div>
</div>
<h2>Changelog</h2>
<div class="how-to-use changelog-container">
<div class="changelog-scroll">
<div class="changelog-entry">
<span class="version">v0.5.11</span>
<span class="date">2026-01-10</span>
<ul>
<li>Fix: Reset feature extractors when switching wake words to prevent false triggers</li>
<li>Fix: Add refractory period after wake word switch</li>
</ul>
</div>
<div class="changelog-entry">
<span class="version">v0.5.10</span>
<span class="date">2026-01-10</span>
<ul>
<li>Fix: Wake word models now have 'id' attribute set correctly</li>
<li>Fix: Wake word switching from Home Assistant now actually works</li>
<li>Fix: _update_wake_words_list properly filters by active_wake_words</li>
</ul>
</div>
<div class="changelog-entry">
<span class="version">v0.5.9</span>
<span class="date">2026-01-10</span>
<ul>
<li>New: Default wake word changed to "Hey Reachy"</li>
<li>Fix: Wake word switching from Home Assistant now works correctly</li>
<li>Fix: All selected wake words are loaded (was only loading first one)</li>
</ul>
</div>
<div class="changelog-entry">
<span class="version">v0.5.8</span>
<span class="date">2026-01-09</span>
<ul>
<li>Fix: Tap detection now waits for emotion playback to complete (polls daemon API)</li>
<li>Fix: Prevents false tap triggers during long emotion animations</li>
<li>New: DOA turn-to-sound at wakeup (robot turns toward speaker)</li>
<li>New: DOA angle and speech_detected entities in Home Assistant</li>
</ul>
</div>
<div class="changelog-entry">
<span class="version">v0.5.7</span>
<span class="date">2026-01-09</span>
<ul>
<li>Fix: DOA direction inversion corrected (left/right now correct)</li>
<li>Fix: Home Assistant shows raw DOA angle (0-180Β°)</li>
<li>Fix: EntityRegistry 'state' attribute error in tap_sensitivity</li>
</ul>
</div>
<div class="changelog-entry">
<span class="version">v0.5.6</span>
<span class="date">2026-01-09</span>
<ul>
<li>Fix: Better pipeline state tracking to prevent duplicate audio playback</li>
<li>Fix: Ignore duplicate RUN_END events during network lag</li>
<li>Fix: Stop previous TTS if new pipeline starts unexpectedly</li>
</ul>
</div>
<div class="changelog-entry">
<span class="version">v0.5.5</span>
<span class="date">2026-01-09</span>
<ul>
<li>Fix: Prevent concurrent pipelines (only one conversation at a time)</li>
<li>New: Play prompt sound when ready for next input in continuous conversation</li>
</ul>
</div>
<div class="changelog-entry">
<span class="version">v0.5.4</span>
<span class="date">2026-01-09</span>
<ul>
<li>Fix: Wait for RUN_END event before starting new conversation</li>
<li>Fix: Prevents APIConnectionError during continuous conversation</li>
</ul>
</div>
<div class="changelog-entry">
<span class="version">v0.5.3</span>
<span class="date">2026-01-09</span>
<ul>
<li>Fix: Continuous conversation now uses conversation_id for context tracking</li>
<li>Fix: Conversation state properly cleared when conversation ends</li>
<li>Improve: conversation_id reused within 5-minute timeout (same as ESPHome)</li>
</ul>
</div>
<div class="changelog-entry">
<span class="version">v0.5.2</span>
<span class="date">2026-01-09</span>
<ul>
<li>Fix: Home Assistant pose control restored (head, antennas, body yaw)</li>
<li>Fix: Continuous conversation (tap-to-wake) now properly continues after TTS</li>
<li>Fix: Emotion mapping updated to use available robot emotions</li>
<li>New: 50+ emotions available in Home Assistant emotion selector</li>
<li>Rename: Project renamed to "Reachy Mini for Home Assistant"</li>
</ul>
</div>
<div class="changelog-entry">
<span class="version">v0.5.1</span>
<span class="date">2026-01-08</span>
<ul>
<li>Fix: Sendspin now connects to music_player (fixes music not resuming after voice conversation)</li>
<li>Fix: tap_sensitivity persistence - saved to preferences.json and restored on startup</li>
<li>Fix: Audio conflict prevention - Sendspin pauses during voice assistant wakeup</li>
<li>Fix: AttributeError for _camera_server in satellite.py</li>
<li>Fix: tap_sensitivity default changed from 2.0g to 0.5g</li>
<li>Optimize: ReSpeaker 16kHz prioritized in Sendspin supported formats</li>
</ul>
</div>
<div class="changelog-entry">
<span class="version">v0.5.0</span>
<span class="date">2026-01-07</span>
<ul>
<li>Face tracking offset compensation (pitch +9Β°, yaw -7Β°)</li>
<li>Adaptive face tracking: high freq (15fps) during conversation, low freq (3fps) when idle</li>
<li>Auto switch to low-power mode after 10s without face detection</li>
<li>Optimized shutdown mechanism (reduced timeout from ~7s to ~2s)</li>
<li>Sendspin multi-room audio integration (PLAYER role)</li>
<li>Audio resampling for Sendspin (44.1/48kHz β 16kHz)</li>
<li>Pose composition using SDK's compose_world_offset</li>
<li>Noise suppression default reduced to 15%</li>
<li>Fix: Replace non-existent clear_output_buffer with stop_playing</li>
</ul>
</div>
<div class="changelog-entry">
<span class="version">v0.4.0</span>
<span class="date">2026-01-07</span>
<ul>
<li>Daemon stability fixes and microphone optimization</li>
<li>Face tracking enabled by default</li>
<li>Tap detection logging improvements</li>
<li>SDK compose_world_offset for proper pose composition</li>
</ul>
</div>
<div class="changelog-entry">
<span class="version">v0.3.0</span>
<span class="date">2026-01-06</span>
<ul>
<li>Tap sensitivity slider entity for Home Assistant</li>
<li>Face tracking optimization</li>
<li>Music Assistant compatibility fixes</li>
<li>Reduced noise suppression for better mic sensitivity</li>
<li>Tap-to-wake blocking fixes</li>
</ul>
</div>
<div class="changelog-entry">
<span class="version">v0.2.x</span>
<span class="date">2026-01-05 ~ 2026-01-06</span>
<ul>
<li>v0.2.21: Fix daemon crash - reduce control loop to 2Hz</li>
<li>v0.2.18: Fix audio playback - restore wakeup sound</li>
<li>v0.2.17: Remove head_joints/passive_joints, move error_message to diagnostic</li>
<li>v0.2.16: Fix TTS playback - pause recording during playback</li>
<li>v0.2.12: Disable breathing animation to prevent serial port overflow</li>
<li>v0.2.9: Remove DOA/speech detection - replaced by face tracking</li>
<li>v0.2.8: Replace DOA with YOLO face tracking</li>
<li>v0.2.6: Thread-safe ReSpeaker USB access</li>
<li>v0.2.4: Fix microphone volume control via daemon HTTP API</li>
<li>v0.2.3: Fix daemon crash from conflicting pose commands</li>
<li>v0.2.2: Fix second conversation motion failure</li>
<li>v0.2.1: Fix daemon crash and optimize code</li>
</ul>
</div>
<div class="changelog-entry">
<span class="version">v0.2.0</span>
<span class="date">2026-01-05</span>
<ul>
<li>Automatic facial expressions during conversation</li>
<li>Emotion playback integration with MovementManager</li>
<li>Event loop blocking fixes</li>
<li>SDK compliance refactoring</li>
<li>Improved shutdown and connection error handling</li>
</ul>
</div>
<div class="changelog-entry">
<span class="version">v0.1.x</span>
<span class="date">2026-01-04</span>
<ul>
<li>v0.1.5: Code optimization and crash fixes</li>
<li>Reachy Mini 3D visualization card for Home Assistant</li>
<li>Home Assistant Material Design styling</li>
<li>Initial release with voice assistant functionality</li>
</ul>
</div>
<div class="changelog-entry">
<span class="version">v0.0.0</span>
<span class="date">2026-01-01</span>
<ul>
<li>Initial project setup</li>
<li>Basic Home Assistant voice satellite integration</li>
<li>Reachy Mini SDK integration</li>
<li>Wake word detection ("Okay Nabu")</li>
<li>MJPEG camera streaming</li>
<li>30+ Home Assistant control entities</li>
</ul>
</div>
</div>
</div>
<h2>Usage</h2>
<div class="how-to-use">
<h3>After Installation:</h3>
<div class="steps">
<div class="step">
<div class="step-number">1</div>
<div>
<h4>Automatic Discovery (Recommended)</h4>
<p>Home Assistant will automatically discover your Reachy Mini via mDNS. A notification will appear - just click to add.</p>
</div>
</div>
<div class="step">
<div class="step-number">2</div>
<div>
<h4>Manual Setup (if needed)</h4>
<p>Settings β Devices & Services β Add Integration β ESPHome β Enter Reachy Mini IP:6053</p>
</div>
</div>
<div class="step">
<div class="step-number">3</div>
<div>
<h4>Start Using</h4>
<p>Say "Okay Nabu" or tap Reachy Mini's head, then speak your command (e.g., "turn on the lights")</p>
</div>
</div>
</div>
</div>
<h2>Links</h2>
<div class="template-info">
<div class="info-box">
<h3>π¦ Source Code</h3>
<p><a href="https://huggingface.co/spaces/djhui5710/reachy_mini_ha_voice/tree/main" target="_blank">View on HuggingFace</a></p>
</div>
<div class="info-box">
<h3>π§ Original Project</h3>
<p><a href="https://github.com/OHF-Voice/linux-voice-assistant" target="_blank">OHF-Voice/linux-voice-assistant</a></p>
</div>
<div class="info-box">
<h3>π€ Pollen Robotics</h3>
<p><a href="https://www.pollen-robotics.com/" target="_blank">Visit Website</a></p>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<p>
π€ Reachy Mini HA Voice β’
<a href="https://github.com/pollen-robotics" target="_blank">Pollen Robotics</a> β’
<a href="https://huggingface.co/spaces/pollen-robotics/reachy-mini-landing-page#apps" target="_blank">Browse More Apps</a>
</p>
</div>
</body>
</html> |