diff --git a/src/data/automation.ts b/src/data/automation.ts index a2ff8e2654..cf4ce18ebf 100644 --- a/src/data/automation.ts +++ b/src/data/automation.ts @@ -120,7 +120,7 @@ export type Trigger = | DeviceTrigger; export interface LogicalCondition { - condition: "and" | "or"; + condition: "and" | "not" | "or"; conditions: Condition[]; } diff --git a/src/panels/config/automation/condition/ha-automation-condition-editor.ts b/src/panels/config/automation/condition/ha-automation-condition-editor.ts index 506b7bb8c8..242f5b2085 100644 --- a/src/panels/config/automation/condition/ha-automation-condition-editor.ts +++ b/src/panels/config/automation/condition/ha-automation-condition-editor.ts @@ -11,6 +11,7 @@ import type { HomeAssistant } from "../../../../types"; import "../../../../components/ha-yaml-editor"; import "./types/ha-automation-condition-and"; import "./types/ha-automation-condition-device"; +import "./types/ha-automation-condition-not"; import "./types/ha-automation-condition-numeric_state"; import "./types/ha-automation-condition-or"; import "./types/ha-automation-condition-state"; @@ -23,6 +24,7 @@ const OPTIONS = [ "device", "and", "or", + "not", "state", "numeric_state", "sun", diff --git a/src/panels/config/automation/condition/types/ha-automation-condition-not.ts b/src/panels/config/automation/condition/types/ha-automation-condition-not.ts new file mode 100644 index 0000000000..586346765e --- /dev/null +++ b/src/panels/config/automation/condition/types/ha-automation-condition-not.ts @@ -0,0 +1,11 @@ +import { customElement } from "lit-element"; +import { HaLogicalCondition } from "./ha-automation-condition-logical"; + +@customElement("ha-automation-condition-not") +export class HaNotCondition extends HaLogicalCondition {} + +declare global { + interface HTMLElementTagNameMap { + "ha-automation-condition-not": HaNotCondition; + } +} diff --git a/src/translations/en.json b/src/translations/en.json index 883374aea1..2326c6bcd8 100755 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -868,6 +868,9 @@ "for": "Duration" } }, + "not": { + "label": "Not" + }, "numeric_state": { "label": "[%key:ui::panel::config::automation::editor::triggers::type::numeric_state::label%]", "above": "[%key:ui::panel::config::automation::editor::triggers::type::numeric_state::above%]",