Home Assistant: Assist Satellite Wizard Voice Update Bug
Hey everyone, let's dive into a peculiar issue spotted in Home Assistant's Assist Satellite Wizard. It seems like the voice field isn't updating correctly when you switch between different assistants. This can lead to some frustrating freezes and configuration problems. Let's break it down and see what's happening.
The Problem: Voice Field Not Updating
The main issue revolves around the Assist Satellite Wizard, particularly when dealing with multiple voice assistants. Imagine you have a couple of assistants set up, say, "Alexa" and "Jarvis." The wizard tends to prepopulate the first assistant it finds alphabetically, which in this case is Alexa. Even if Jarvis is your preferred assistant, Alexa gets the initial spotlight.
The Nitty-Gritty Details
So, here's the scenario: You open the wizard, and it defaults to Alexa. No biggie, right? But when you switch to Jarvis, the voice value either vanishes or doesn't refresh as it should. It's supposed to automatically select the voice defined in your Jarvis assistant profile. Instead, you're left with a blank field or the wrong voice selected.
Now, if you manually select the correct voice from the dropdown menu and hit "Try," things go south. The assistant freezes in a "Responding" state for what feels like an eternity (one to two minutes!). Eventually, it crawls back to an "Idle" state. Trying again? Buckle up for another long wait. And if you dare click "Done" in this state, it messes up your Jarvis profile, forcing you to manually fix the voice settings.
Why This Matters
Consistent voice selection is key for a seamless user experience. When the voice field doesn't update correctly, it can lead to confusion and frustration, especially for users who rely on voice commands for home automation.
Digging Deeper
Interestingly, this glitch doesn't rear its head when the wizard starts with the Alexa profile. Everything populates correctly, and the "Try" button works like a charm. This suggests the problem lies in how the wizard handles switching between assistants and loading their respective voice profiles.
Observations and Workarounds
Before we get too deep, here's a quick rundown of what's been observed and a temporary fix:
Observations:
- Initial Assistant Selection: The wizard defaults to the first assistant alphabetically, not the preferred one.
 - Voice Field Issue: Switching assistants doesn't refresh the voice field properly.
 - Freezing: Selecting a voice after switching assistants leads to a prolonged "Responding" state.
 
Workaround:
The good news is there's a workaround to get things running smoothly:
- Edit Assistant: Click "Edit" on the problematic assistant (e.g., Jarvis).
 - Select Voice: Manually choose the correct voice.
 - Update: Click "Update" to save the changes and return to the wizard.
 - Try: Now, the "Try" button should work without freezing.
 
This workaround confirms that manually setting the voice resolves the immediate issue, but it's not ideal for a seamless user experience.
Possible Cause: Voice File References
The theory is that the wizard only loads voice file references for the initially chosen assistant (Alexa, in this case). When you switch to Jarvis, it fails to load the necessary voice file references. So, even if you select a voice from the dropdown, it's trying to play a blank file, resulting in a silent error and the dreaded freeze.
Diving into the Technical Details
To further elaborate, the problem seems to stem from how the wizard initializes and manages voice profiles. When the wizard first loads, it grabs the voice configurations for the default assistant. However, when switching to another assistant, it doesn't properly load the new voice configurations, leading to a mismatch between the selected voice and the actual voice file being used.
This can be visualized as a scenario where the wizard has a map to the voice files for Alexa but doesn't have the corresponding map for Jarvis. So, when you tell Jarvis to speak, it's essentially trying to navigate with a blank map, leading to confusion and delay.
Technical Details
- Home Assistant Core Version: 2025.10.4
 - Installation Type: Home Assistant OS
 - Integration: Assist Satellite
 
Logs and Diagnostics
Unfortunately, the wizard doesn't offer any diagnostic data, and the issue doesn't seem to appear in any logs.
Additional Information and Potential Related Issues
There might be a connection to another issue involving wake word library updates. In a custom-built Linux Voice Assistant, updating the wake word library on the fly sometimes caused similar freezing issues. The solution involved triggering a UI update to reload the Satellite, which effectively refreshed the dropdown lists.
Wake Word Library Issue
Specifically, the wake word library issue manifested when trying to switch between different wake word libraries without a proper refresh. This resulted in the assistant freezing in a "Responding" state when a wake word was triggered. To resolve this, a UI update was necessary to reload the Satellite and update the available wake words in the dropdown menu.
Potential Link to Voice Field Issue
This suggests that there might be a broader issue with how Home Assistant handles updates to settings that affect dropdown boxes with different values. It's possible that a similar lack of refresh or reinitialization is occurring when switching between assistants in the Assist Satellite Wizard, leading to the voice field issue.
Deeper Dive into the Code
To understand this better, let's consider a simplified view of what might be happening under the hood:
- Wizard Initialization: When the wizard loads, it fetches the configuration for the default assistant (e.g., Alexa) and stores it in memory.
 - Assistant Switching: When the user switches to another assistant (e.g., Jarvis), the wizard should ideally:
- Clear the existing configuration.
 - Fetch the new configuration for Jarvis.
 - Update the UI elements (including the voice dropdown) with the new configuration.
 
 - Voice Selection: When the user selects a voice from the dropdown, the wizard should:
- Ensure that the selected voice file is valid and accessible.
 - Update the internal state to reflect the selected voice.
 
 - **