diff --git a/pyproject.toml b/pyproject.toml index 1803d94af1..74cb9fd55e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "home-assistant-frontend" -version = "20241127.2" +version = "20241127.3" license = {text = "Apache-2.0"} description = "The Home Assistant frontend" readme = "README.md" diff --git a/src/components/ha-target-picker.ts b/src/components/ha-target-picker.ts index 460e8740da..f7ba2fd5ca 100644 --- a/src/components/ha-target-picker.ts +++ b/src/components/ha-target-picker.ts @@ -345,7 +345,7 @@ export class HaTargetPicker extends SubscribeMixin(LitElement) { "ui.components.target-picker.expand" )} .path=${mdiUnfoldMoreVertical} - hideTooltip + hideTitle .id=${id} .type=${type} @click=${this._handleExpand} @@ -361,7 +361,7 @@ export class HaTargetPicker extends SubscribeMixin(LitElement) { class="mdc-chip__icon mdc-chip__icon--trailing" .label=${this.hass.localize("ui.components.target-picker.remove")} .path=${mdiClose} - hideTooltip + hideTitle .id=${id} .type=${type} @click=${this._handleRemove} diff --git a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-local.ts b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-local.ts index 69c50ef571..cd00187d5a 100644 --- a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-local.ts +++ b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-local.ts @@ -24,6 +24,7 @@ import type { HomeAssistant } from "../../types"; import { documentationUrl } from "../../util/documentation-url"; import { AssistantSetupStyles } from "./styles"; import { STEP } from "./voice-assistant-setup-dialog"; +import { nextRender } from "../../common/util/render-status"; @customElement("ha-voice-assistant-setup-step-local") export class HaVoiceAssistantSetupStepLocal extends LitElement { @@ -138,6 +139,7 @@ export class HaVoiceAssistantSetupStepLocal extends LitElement { } if (this._localTts.length && this._localStt.length) { this._pickOrCreatePipelineExists(); + return; } if (!isComponentLoaded(this.hass, "hassio")) { this._state = "NOT_SUPPORTED"; @@ -148,38 +150,30 @@ export class HaVoiceAssistantSetupStepLocal extends LitElement { const { addons } = await fetchHassioAddonsInfo(this.hass); const whisper = addons.find((addon) => addon.slug === "core_whisper"); const piper = addons.find((addon) => addon.slug === "core_piper"); - if (piper && !this._localTts.length) { - if (piper.state !== "started") { + if (!this._localTts.length) { + if (!piper) { + this._detailState = "Installing Piper add-on"; + await installHassioAddon(this.hass, "core_piper"); + } + if (!piper || piper.state !== "started") { this._detailState = "Starting Piper add-on"; await startHassioAddon(this.hass, "core_piper"); } this._detailState = "Setting up Piper"; await this._setupConfigEntry("piper"); } - if (whisper && !this._localStt.length) { - if (whisper.state !== "started") { + if (!this._localStt.length) { + if (!whisper) { + this._detailState = "Installing Whisper add-on"; + await installHassioAddon(this.hass, "core_whisper"); + } + if (!whisper || whisper.state !== "started") { this._detailState = "Starting Whisper add-on"; await startHassioAddon(this.hass, "core_whisper"); } this._detailState = "Setting up Whisper"; await this._setupConfigEntry("whisper"); } - if (!piper) { - this._detailState = "Installing Piper add-on"; - await installHassioAddon(this.hass, "core_piper"); - this._detailState = "Starting Piper add-on"; - await startHassioAddon(this.hass, "core_piper"); - this._detailState = "Setting up Piper"; - await this._setupConfigEntry("piper"); - } - if (!whisper) { - this._detailState = "Installing Whisper add-on"; - await installHassioAddon(this.hass, "core_whisper"); - this._detailState = "Starting Whisper add-on"; - await startHassioAddon(this.hass, "core_whisper"); - this._detailState = "Setting up Whisper"; - await this._setupConfigEntry("whisper"); - } this._detailState = "Creating assistant"; await this._findEntitiesAndCreatePipeline(); } catch (e: any) { @@ -259,6 +253,9 @@ export class HaVoiceAssistantSetupStepLocal extends LitElement { this._localTts[0].entity_id, this._localStt[0].entity_id ); + + // wait a render so the `hui-select-entity-row` is also updated and doesn't undo the select action + await nextRender(); } await this.hass.callService( @@ -340,6 +337,9 @@ export class HaVoiceAssistantSetupStepLocal extends LitElement { this._localStt[0].entity_id ); + // wait a render so the `hui-select-entity-row` is also updated and doesn't undo the select action + await nextRender(); + await this.hass.callService( "select", "select_option", diff --git a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-pipeline.ts b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-pipeline.ts index d008d312f0..781802d348 100644 --- a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-pipeline.ts +++ b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-pipeline.ts @@ -17,6 +17,7 @@ import type { HomeAssistant } from "../../types"; import { AssistantSetupStyles } from "./styles"; import { STEP } from "./voice-assistant-setup-dialog"; import { documentationUrl } from "../../util/documentation-url"; +import { nextRender } from "../../common/util/render-status"; @customElement("ha-voice-assistant-setup-step-pipeline") export class HaVoiceAssistantSetupStepPipeline extends LitElement { @@ -240,6 +241,9 @@ export class HaVoiceAssistantSetupStepPipeline extends LitElement { wake_word_entity: null, wake_word_id: null, }); + + // wait a render so the `hui-select-entity-row` is also updated and doesn't undo the select action + await nextRender(); } await this.hass.callService( diff --git a/src/translations/en.json b/src/translations/en.json index 193d38ce1a..bdb721c507 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -3896,14 +3896,14 @@ "devices": { "header": "Devices", "introduction": "Add the devices that you want to be included in your scene. Set all entities in each device to the state you want for this scene.", - "introduction_review": "To add the devices that you want to be included in your scene turn on the Live Preview mode.", + "introduction_review": "To add the devices that you want to be included in your scene switch to the Live Edit mode.", "add": "Add a device", "delete": "Delete device" }, "entities": { "header": "Entities", "introduction": "Individual entities can be added here.", - "introduction_review": "To add individual entities to your scene turn on the Live Preview mode.", + "introduction_review": "To add individual entities to your scene switch to the Live Edit mode.", "without_device": "Entities", "add": "Add an entity", "delete": "Delete entity"