diff --git a/src/data/script.ts b/src/data/script.ts index da780038a4..abe31f5f0c 100644 --- a/src/data/script.ts +++ b/src/data/script.ts @@ -222,6 +222,7 @@ export interface StopAction extends BaseAction { export interface SequenceAction extends BaseAction { sequence: (ManualScriptConfig | Action)[]; + metadata?: {}; } export interface ParallelAction extends BaseAction { @@ -479,6 +480,7 @@ export const migrateAutomationAction = ( } if (typeof action === "object" && action !== null && "sequence" in action) { + delete (action as SequenceAction).metadata; for (const sequenceAction of (action as SequenceAction).sequence) { migrateAutomationAction(sequenceAction); } diff --git a/src/panels/config/automation/action/ha-automation-action-row.ts b/src/panels/config/automation/action/ha-automation-action-row.ts index 66a087b68d..521e2309ca 100644 --- a/src/panels/config/automation/action/ha-automation-action-row.ts +++ b/src/panels/config/automation/action/ha-automation-action-row.ts @@ -588,7 +588,11 @@ export default class HaAutomationActionRow extends LitElement { ...this._clipboard, action: deepClone(this.action), }; - copyToClipboard(dump(this.action)); + let action = this.action; + if ("sequence" in action) { + action = { ...this.action, metadata: {} }; + } + copyToClipboard(dump(action)); } private _onDisable = () => { diff --git a/src/panels/config/script/manual-script-editor.ts b/src/panels/config/script/manual-script-editor.ts index 25a8a8124d..1833c2a346 100644 --- a/src/panels/config/script/manual-script-editor.ts +++ b/src/panels/config/script/manual-script-editor.ts @@ -371,7 +371,11 @@ export class HaManualScriptEditor extends LitElement { } } - if (!["sequence", "unknown"].includes(getActionType(config))) { + const actionType = getActionType(config); + if ( + !["sequence", "unknown"].includes(actionType) || + (actionType === "sequence" && "metadata" in config) + ) { config = { sequence: [config] }; }