diff --git a/src/panels/config/automation/condition/types/ha-automation-condition-state.ts b/src/panels/config/automation/condition/types/ha-automation-condition-state.ts index 701bc2868920..abebbda172d8 100644 --- a/src/panels/config/automation/condition/types/ha-automation-condition-state.ts +++ b/src/panels/config/automation/condition/types/ha-automation-condition-state.ts @@ -10,8 +10,10 @@ import { optional, string, union, + array, } from "superstruct"; import { createDurationData } from "../../../../../common/datetime/create_duration_data"; +import { ensureArray } from "../../../../../common/array/ensure-array"; import { fireEvent } from "../../../../../common/dom/fire_event"; import "../../../../../components/ha-form/ha-form"; import type { SchemaUnion } from "../../../../../components/ha-form/types"; @@ -25,7 +27,7 @@ const stateConditionStruct = object({ condition: literal("state"), entity_id: optional(string()), attribute: optional(string()), - state: optional(string()), + state: optional(union([string(), array(string())])), for: optional(union([number(), string(), forDictStruct])), enabled: optional(boolean()), }); @@ -69,7 +71,7 @@ const SCHEMA = [ name: "state", required: true, selector: { - state: {}, + state: { multiple: true }, }, context: { filter_entity: "entity_id", @@ -88,7 +90,7 @@ export class HaStateCondition extends LitElement implements ConditionElement { @property({ type: Boolean }) public disabled = false; public static get defaultConfig(): StateCondition { - return { condition: "state", entity_id: "", state: "" }; + return { condition: "state", entity_id: "", state: [] }; } public shouldUpdate(changedProperties: PropertyValues) { @@ -105,7 +107,11 @@ export class HaStateCondition extends LitElement implements ConditionElement { protected render() { const trgFor = createDurationData(this.condition.for); - const data = { ...this.condition, for: trgFor }; + const data = { + ...this.condition, + state: ensureArray(this.condition.state) || [], + for: trgFor, + }; return html`