diff --git a/src/data/input_datetime.ts b/src/data/input_datetime.ts index 16a2f1b09d..08af492afd 100644 --- a/src/data/input_datetime.ts +++ b/src/data/input_datetime.ts @@ -1,3 +1,4 @@ +import { HassEntity } from "home-assistant-js-websocket"; import { HomeAssistant } from "../types"; export interface InputDateTime { @@ -17,6 +18,19 @@ export interface InputDateTimeMutableParams { has_date: boolean; } +export const stateToIsoDateString = (entityState: HassEntity) => + `${entityState.attributes.year || "1970"}-${String( + entityState.attributes.month || "01" + ).padStart(2, "0")}-${String(entityState.attributes.day || "01").padStart( + 2, + "0" + )}T${String(entityState.attributes.hour || "00").padStart(2, "0")}:${String( + entityState.attributes.minute || "00" + ).padStart(2, "0")}:${String(entityState.attributes.second || "00").padStart( + 2, + "0" + )}`; + export const setInputDateTimeValue = ( hass: HomeAssistant, entityId: string, diff --git a/src/dialogs/more-info/controls/more-info-input_datetime.ts b/src/dialogs/more-info/controls/more-info-input_datetime.ts index a0f11eb726..2bcb5f534e 100644 --- a/src/dialogs/more-info/controls/more-info-input_datetime.ts +++ b/src/dialogs/more-info/controls/more-info-input_datetime.ts @@ -4,7 +4,10 @@ import { customElement, property } from "lit/decorators"; import "../../../components/ha-date-input"; import "../../../components/ha-time-input"; import { UNAVAILABLE_STATES, UNKNOWN } from "../../../data/entity"; -import { setInputDateTimeValue } from "../../../data/input_datetime"; +import { + setInputDateTimeValue, + stateToIsoDateString, +} from "../../../data/input_datetime"; import type { HomeAssistant } from "../../../types"; @customElement("more-info-input_datetime") @@ -24,7 +27,7 @@ class MoreInfoInputDatetime extends LitElement { ? html` diff --git a/src/panels/lovelace/entity-rows/hui-input-datetime-entity-row.ts b/src/panels/lovelace/entity-rows/hui-input-datetime-entity-row.ts index 393f0bc7b1..f542b2ec6d 100644 --- a/src/panels/lovelace/entity-rows/hui-input-datetime-entity-row.ts +++ b/src/panels/lovelace/entity-rows/hui-input-datetime-entity-row.ts @@ -9,7 +9,10 @@ import { import { customElement, property, state } from "lit/decorators"; import "../../../components/ha-date-input"; import { UNAVAILABLE_STATES, UNKNOWN } from "../../../data/entity"; -import { setInputDateTimeValue } from "../../../data/input_datetime"; +import { + setInputDateTimeValue, + stateToIsoDateString, +} from "../../../data/input_datetime"; import type { HomeAssistant } from "../../../types"; import { hasConfigOrEntityChanged } from "../common/has-changed"; import "../components/hui-generic-entity-row"; @@ -65,7 +68,7 @@ class HuiInputDatetimeEntityRow extends LitElement implements LovelaceRow { .label=${stateObj.attributes.has_time ? name : undefined} .locale=${this.hass.locale} .disabled=${UNAVAILABLE_STATES.includes(stateObj.state)} - .value=${`${stateObj.attributes.year}-${stateObj.attributes.month}-${stateObj.attributes.day}`} + .value=${stateToIsoDateString(stateObj)} @value-changed=${this._dateChanged} >