From 75b07f90eab2dff2f564550f3536df41936b45dd Mon Sep 17 00:00:00 2001 From: Nikfinn99 Date: Sun, 10 Jan 2021 17:27:20 +0000 Subject: [PATCH 1/2] Automation - State Condition display 'for:' in frontend --- src/data/automation.ts | 1 + .../types/ha-automation-condition-state.ts | 27 ++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/data/automation.ts b/src/data/automation.ts index 272416abb011..058ea73223f9 100644 --- a/src/data/automation.ts +++ b/src/data/automation.ts @@ -157,6 +157,7 @@ export interface StateCondition { entity_id: string; attribute?: string; state: string | number; + for?: string | number | ForDict; } export interface NumericStateCondition { 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 2b42b536300c..9886fc8ac46a 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 @@ -2,7 +2,7 @@ import "@polymer/paper-input/paper-input"; import { customElement, html, LitElement, property } from "lit-element"; import "../../../../../components/entity/ha-entity-attribute-picker"; import "../../../../../components/entity/ha-entity-picker"; -import { StateCondition } from "../../../../../data/automation"; +import { ForDict, StateCondition } from "../../../../../data/automation"; import { HomeAssistant } from "../../../../../types"; import { ConditionElement, @@ -21,6 +21,23 @@ export class HaStateCondition extends LitElement implements ConditionElement { protected render() { const { entity_id, attribute, state } = this.condition; + let trgFor = this.condition.for; + + if ( + trgFor && + ((trgFor as ForDict).hours || + (trgFor as ForDict).minutes || + (trgFor as ForDict).seconds) + ) { + // If the trigger was defined using the yaml dict syntax, convert it to + // the equivalent string format + let { hours = 0, minutes = 0, seconds = 0 } = trgFor as ForDict; + hours = hours.toString().padStart(2, "0"); + minutes = minutes.toString().padStart(2, "0"); + seconds = seconds.toString().padStart(2, "0"); + + trgFor = `${hours}:${minutes}:${seconds}`; + } return html` + `; } From 6865a2db094123fb22f8abdc6b171e8f3b01bcad Mon Sep 17 00:00:00 2001 From: Nikfinn99 Date: Mon, 11 Jan 2021 15:03:14 +0000 Subject: [PATCH 2/2] rename variable to better name --- .../types/ha-automation-condition-state.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) 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 9886fc8ac46a..d0f18b1ab72a 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 @@ -21,22 +21,22 @@ export class HaStateCondition extends LitElement implements ConditionElement { protected render() { const { entity_id, attribute, state } = this.condition; - let trgFor = this.condition.for; + let forTime = this.condition.for; if ( - trgFor && - ((trgFor as ForDict).hours || - (trgFor as ForDict).minutes || - (trgFor as ForDict).seconds) + forTime && + ((forTime as ForDict).hours || + (forTime as ForDict).minutes || + (forTime as ForDict).seconds) ) { // If the trigger was defined using the yaml dict syntax, convert it to // the equivalent string format - let { hours = 0, minutes = 0, seconds = 0 } = trgFor as ForDict; + let { hours = 0, minutes = 0, seconds = 0 } = forTime as ForDict; hours = hours.toString().padStart(2, "0"); minutes = minutes.toString().padStart(2, "0"); seconds = seconds.toString().padStart(2, "0"); - trgFor = `${hours}:${minutes}:${seconds}`; + forTime = `${hours}:${minutes}:${seconds}`; } return html` @@ -71,7 +71,7 @@ export class HaStateCondition extends LitElement implements ConditionElement { "ui.panel.config.automation.editor.triggers.type.state.for" )} .name=${"for"} - .value=${trgFor} + .value=${forTime} @value-changed=${this._valueChanged} > `;