From 772a2658cbbca8b8dde2675a7b0391713fc88aaa Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Wed, 26 Mar 2025 02:13:06 -0700 Subject: [PATCH] Allow passing data as template in devtools/action (#24737) --- src/panels/developer-tools/action/developer-tools-action.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/panels/developer-tools/action/developer-tools-action.ts b/src/panels/developer-tools/action/developer-tools-action.ts index 30047c43b8..de909e652f 100644 --- a/src/panels/developer-tools/action/developer-tools-action.ts +++ b/src/panels/developer-tools/action/developer-tools-action.ts @@ -9,7 +9,7 @@ import memoizeOne from "memoize-one"; import { storage } from "../../../common/decorators/storage"; import { computeDomain } from "../../../common/entity/compute_domain"; import { computeObjectId } from "../../../common/entity/compute_object_id"; -import { hasTemplate } from "../../../common/string/has-template"; +import { hasTemplate, isTemplate } from "../../../common/string/has-template"; import type { LocalizeFunc } from "../../../common/translations/localize"; import { extractSearchParam } from "../../../common/url/search-params"; import { copyToClipboard } from "../../../common/util/copy-clipboard"; @@ -349,8 +349,11 @@ class HaPanelDevAction extends LitElement { `ui.panel.developer-tools.tabs.actions.errors.${errorCategory}.invalid_action` ); } + const dataIsTemplate = + typeof serviceData.data === "string" && isTemplate(serviceData.data); if ( target && + !dataIsTemplate && !serviceData.target && !serviceData.data?.entity_id && !serviceData.data?.device_id && @@ -363,6 +366,7 @@ class HaPanelDevAction extends LitElement { for (const field of fields) { if ( field.required && + !dataIsTemplate && (!serviceData.data || serviceData.data[field.key] === undefined) ) { return localize(