diff --git a/src/dialogs/config-flow/step-flow-create-entry.ts b/src/dialogs/config-flow/step-flow-create-entry.ts
index 1615a6c451..06eab5c85b 100644
--- a/src/dialogs/config-flow/step-flow-create-entry.ts
+++ b/src/dialogs/config-flow/step-flow-create-entry.ts
@@ -65,7 +65,8 @@ class StepFlowCreateEntry extends LitElement {
if (
devices.length !== 1 ||
- devices[0].primary_config_entry !== this.step.result?.entry_id
+ devices[0].primary_config_entry !== this.step.result?.entry_id ||
+ this.step.result.domain === "voip"
) {
return;
}
diff --git a/src/dialogs/voice-assistant-setup/voice-assistant-setup-dialog.ts b/src/dialogs/voice-assistant-setup/voice-assistant-setup-dialog.ts
index eadf4a901a..81ed1c1113 100644
--- a/src/dialogs/voice-assistant-setup/voice-assistant-setup-dialog.ts
+++ b/src/dialogs/voice-assistant-setup/voice-assistant-setup-dialog.ts
@@ -47,6 +47,8 @@ export class HaVoiceAssistantSetupDialog extends LitElement {
@state() private _assistConfiguration?: AssistSatelliteConfiguration;
+ @state() private _error?: string;
+
private _previousSteps: STEP[] = [];
private _nextStep?: STEP;
@@ -165,79 +167,86 @@ export class HaVoiceAssistantSetupDialog extends LitElement {
"update"
)}
>`
- : assistEntityState?.state === UNAVAILABLE
- ? this.hass.localize(
- "ui.panel.config.voice_assistants.satellite_wizard.not_available"
- )
- : this._step === STEP.CHECK
- ? html``
- : this._step === STEP.WAKEWORD
- ? html`${this._error}`
+ : assistEntityState?.state === UNAVAILABLE
+ ? html`${this.hass.localize(
+ "ui.panel.config.voice_assistants.satellite_wizard.not_available"
+ )}`
+ : this._step === STEP.CHECK
+ ? html``
- : this._step === STEP.CHANGE_WAKEWORD
- ? html`
-
- `
- : this._step === STEP.AREA
+ >`
+ : this._step === STEP.WAKEWORD
+ ? html``
+ : this._step === STEP.CHANGE_WAKEWORD
? html`
-
- `
- : this._step === STEP.PIPELINE
- ? html``
- : this._step === STEP.CLOUD
- ? html`
+ `
+ : this._step === STEP.AREA
+ ? html`
+ `
- : this._step === STEP.LOCAL
- ? html`
+ `
+ : this._step === STEP.PIPELINE
+ ? html``
+ : this._step === STEP.CLOUD
+ ? html``
- : this._step === STEP.SUCCESS
- ? html``
+ : this._step === STEP.LOCAL
+ ? html``
- : nothing}
+ >`
+ : this._step === STEP.SUCCESS
+ ? html``
+ : nothing}
`;
}
private async _fetchAssistConfiguration() {
- this._assistConfiguration = await fetchAssistSatelliteConfiguration(
- this.hass,
- this._findDomainEntityId(
- this._params!.deviceId,
- this.hass.entities,
- "assist_satellite"
- )!
- );
- return this._assistConfiguration;
+ try {
+ this._assistConfiguration = await fetchAssistSatelliteConfiguration(
+ this.hass,
+ this._findDomainEntityId(
+ this._params!.deviceId,
+ this.hass.entities,
+ "assist_satellite"
+ )!
+ );
+ } catch (err: any) {
+ this._error = err.message;
+ }
}
private _goToPreviousStep() {
@@ -293,6 +302,10 @@ export class HaVoiceAssistantSetupDialog extends LitElement {
.skip-btn {
margin-top: 6px;
}
+ ha-alert {
+ margin: 24px;
+ display: block;
+ }
`,
];
}
diff --git a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-success.ts b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-success.ts
index d6416e312d..e9db911f49 100644
--- a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-success.ts
+++ b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-success.ts
@@ -85,7 +85,7 @@ export class HaVoiceAssistantSetupStepSuccess extends LitElement {
${this.assistConfiguration &&
this.assistConfiguration.available_wake_words.length > 1
- ? html`
+ ? html`
`
: nothing}
- `;
+ ${this.assistConfiguration &&
+ this.assistConfiguration.available_wake_words.length > 1
+ ? html``
+ : nothing}`;
}
private async _listenWakeWord() {
diff --git a/src/panels/config/devices/ha-config-device-page.ts b/src/panels/config/devices/ha-config-device-page.ts
index ad7e23738f..84d72920e0 100644
--- a/src/panels/config/devices/ha-config-device-page.ts
+++ b/src/panels/config/devices/ha-config-device-page.ts
@@ -1073,7 +1073,14 @@ export class HaConfigDevicePage extends LitElement {
(ent) => computeDomain(ent.entity_id) === "assist_satellite"
);
+ const domains = this._integrations(
+ device,
+ this.entries,
+ this.manifests
+ ).map((int) => int.domain);
+
if (
+ !domains.includes("voip") &&
assistSatellite &&
assistSatelliteSupportsSetupFlow(
this.hass.states[assistSatellite.entity_id]
@@ -1088,12 +1095,6 @@ export class HaConfigDevicePage extends LitElement {
});
}
- const domains = this._integrations(
- device,
- this.entries,
- this.manifests
- ).map((int) => int.domain);
-
if (domains.includes("mqtt")) {
const mqtt = await import(
"./device-detail/integration-elements/mqtt/device-actions"