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>