🤖⚡

Reachy Mini for Home Assistant

Control your Home Assistant with voice using Reachy Mini robot

What is this?

This app integrates your Reachy Mini robot with Home Assistant. 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.

Installation

Install from Reachy Mini Dashboard:

1

Open Reachy Mini Dashboard

Navigate to the Applications section in your browser

2

Show Community Apps

Check the "Show community apps" checkbox to see third-party applications

3

Find and Install

Search for "Reachy Mini for Home Assistant" and click Install

4

Connect to Home Assistant

The app will be automatically discovered by Home Assistant via mDNS

Features

🎤 Voice & Tap Wake

Say "Okay Nabu" or tap Reachy Mini's head to activate. Multiple wake options for convenience.

🏠 Smart Home Control

Home Assistant processes your voice commands and controls your smart home devices automatically.

👀 Face Tracking

YOLO-based face detection enables Reachy Mini to look at you during conversations for natural interaction.

😊 Facial Expressions

Automatic emotional feedback with head movements and antenna animations while listening and responding.

📹 Camera Streaming

MJPEG video stream available in Home Assistant as a Generic Camera for real-time monitoring.

🔊 Sendspin Audio

Multi-room audio support via Sendspin protocol. Sync playback with other speakers in your home.

🎛️ 30+ Control Entities

Complete robot control via Home Assistant: motors, head position, LEDs, emotions, tap sensitivity, and more.

Changelog

v0.5.11 2026-01-10
  • Fix: Reset feature extractors when switching wake words to prevent false triggers
  • Fix: Add refractory period after wake word switch
v0.5.10 2026-01-10
  • Fix: Wake word models now have 'id' attribute set correctly
  • Fix: Wake word switching from Home Assistant now actually works
  • Fix: _update_wake_words_list properly filters by active_wake_words
v0.5.9 2026-01-10
  • New: Default wake word changed to "Hey Reachy"
  • Fix: Wake word switching from Home Assistant now works correctly
  • Fix: All selected wake words are loaded (was only loading first one)
v0.5.8 2026-01-09
  • Fix: Tap detection now waits for emotion playback to complete (polls daemon API)
  • Fix: Prevents false tap triggers during long emotion animations
  • New: DOA turn-to-sound at wakeup (robot turns toward speaker)
  • New: DOA angle and speech_detected entities in Home Assistant
v0.5.7 2026-01-09
  • Fix: DOA direction inversion corrected (left/right now correct)
  • Fix: Home Assistant shows raw DOA angle (0-180°)
  • Fix: EntityRegistry 'state' attribute error in tap_sensitivity
v0.5.6 2026-01-09
  • Fix: Better pipeline state tracking to prevent duplicate audio playback
  • Fix: Ignore duplicate RUN_END events during network lag
  • Fix: Stop previous TTS if new pipeline starts unexpectedly
v0.5.5 2026-01-09
  • Fix: Prevent concurrent pipelines (only one conversation at a time)
  • New: Play prompt sound when ready for next input in continuous conversation
v0.5.4 2026-01-09
  • Fix: Wait for RUN_END event before starting new conversation
  • Fix: Prevents APIConnectionError during continuous conversation
v0.5.3 2026-01-09
  • Fix: Continuous conversation now uses conversation_id for context tracking
  • Fix: Conversation state properly cleared when conversation ends
  • Improve: conversation_id reused within 5-minute timeout (same as ESPHome)
v0.5.2 2026-01-09
  • Fix: Home Assistant pose control restored (head, antennas, body yaw)
  • Fix: Continuous conversation (tap-to-wake) now properly continues after TTS
  • Fix: Emotion mapping updated to use available robot emotions
  • New: 50+ emotions available in Home Assistant emotion selector
  • Rename: Project renamed to "Reachy Mini for Home Assistant"
v0.5.1 2026-01-08
  • Fix: Sendspin now connects to music_player (fixes music not resuming after voice conversation)
  • Fix: tap_sensitivity persistence - saved to preferences.json and restored on startup
  • Fix: Audio conflict prevention - Sendspin pauses during voice assistant wakeup
  • Fix: AttributeError for _camera_server in satellite.py
  • Fix: tap_sensitivity default changed from 2.0g to 0.5g
  • Optimize: ReSpeaker 16kHz prioritized in Sendspin supported formats
v0.5.0 2026-01-07
  • Face tracking offset compensation (pitch +9°, yaw -7°)
  • Adaptive face tracking: high freq (15fps) during conversation, low freq (3fps) when idle
  • Auto switch to low-power mode after 10s without face detection
  • Optimized shutdown mechanism (reduced timeout from ~7s to ~2s)
  • Sendspin multi-room audio integration (PLAYER role)
  • Audio resampling for Sendspin (44.1/48kHz → 16kHz)
  • Pose composition using SDK's compose_world_offset
  • Noise suppression default reduced to 15%
  • Fix: Replace non-existent clear_output_buffer with stop_playing
v0.4.0 2026-01-07
  • Daemon stability fixes and microphone optimization
  • Face tracking enabled by default
  • Tap detection logging improvements
  • SDK compose_world_offset for proper pose composition
v0.3.0 2026-01-06
  • Tap sensitivity slider entity for Home Assistant
  • Face tracking optimization
  • Music Assistant compatibility fixes
  • Reduced noise suppression for better mic sensitivity
  • Tap-to-wake blocking fixes
v0.2.x 2026-01-05 ~ 2026-01-06
  • v0.2.21: Fix daemon crash - reduce control loop to 2Hz
  • v0.2.18: Fix audio playback - restore wakeup sound
  • v0.2.17: Remove head_joints/passive_joints, move error_message to diagnostic
  • v0.2.16: Fix TTS playback - pause recording during playback
  • v0.2.12: Disable breathing animation to prevent serial port overflow
  • v0.2.9: Remove DOA/speech detection - replaced by face tracking
  • v0.2.8: Replace DOA with YOLO face tracking
  • v0.2.6: Thread-safe ReSpeaker USB access
  • v0.2.4: Fix microphone volume control via daemon HTTP API
  • v0.2.3: Fix daemon crash from conflicting pose commands
  • v0.2.2: Fix second conversation motion failure
  • v0.2.1: Fix daemon crash and optimize code
v0.2.0 2026-01-05
  • Automatic facial expressions during conversation
  • Emotion playback integration with MovementManager
  • Event loop blocking fixes
  • SDK compliance refactoring
  • Improved shutdown and connection error handling
v0.1.x 2026-01-04
  • v0.1.5: Code optimization and crash fixes
  • Reachy Mini 3D visualization card for Home Assistant
  • Home Assistant Material Design styling
  • Initial release with voice assistant functionality
v0.0.0 2026-01-01
  • Initial project setup
  • Basic Home Assistant voice satellite integration
  • Reachy Mini SDK integration
  • Wake word detection ("Okay Nabu")
  • MJPEG camera streaming
  • 30+ Home Assistant control entities

Usage

After Installation:

1

Automatic Discovery (Recommended)

Home Assistant will automatically discover your Reachy Mini via mDNS. A notification will appear - just click to add.

2

Manual Setup (if needed)

Settings → Devices & Services → Add Integration → ESPHome → Enter Reachy Mini IP:6053

3

Start Using

Say "Okay Nabu" or tap Reachy Mini's head, then speak your command (e.g., "turn on the lights")

Links

📦 Source Code

View on HuggingFace

🔧 Original Project

OHF-Voice/linux-voice-assistant

🤖 Pollen Robotics

Visit Website