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"