diff --git a/src/components/entity/ha-entity-picker.ts b/src/components/entity/ha-entity-picker.ts index 5968b4a103..ef39a4ef14 100644 --- a/src/components/entity/ha-entity-picker.ts +++ b/src/components/entity/ha-entity-picker.ts @@ -386,6 +386,7 @@ export class HaEntityPicker extends LitElement { return html` + schema?.map((field) => ({ + ...field, + ...(Object.values((field as HaFormSelector)?.selector ?? {})[0]?.read_only + ? { disabled: true } + : {}), + })) + ); + protected render(): TemplateResult { const step = this.step; const stepData = this._stepDataProcessed; @@ -53,7 +66,9 @@ class StepFlowForm extends LitElement { .data=${stepData} .disabled=${this._loading} @value-changed=${this._stepDataChanged} - .schema=${autocompleteLoginFields(step.data_schema)} + .schema=${autocompleteLoginFields( + this.handleReadOnlyFields(step.data_schema) + )} .error=${step.errors} .computeLabel=${this._labelCallback} .computeHelper=${this._helperCallback} @@ -178,8 +193,10 @@ class StepFlowForm extends LitElement { Object.keys(stepData).forEach((key) => { const value = stepData[key]; const isEmpty = [undefined, ""].includes(value); - - if (!isEmpty) { + const field = this.step.data_schema?.find((f) => f.name === key); + const selector = (field as HaFormSelector)?.selector ?? {}; + const read_only = (Object.values(selector)[0] as any)?.read_only; + if (!isEmpty && !read_only) { toSendData[key] = value; } });