diff --git a/src/panels/lovelace/components/hui-generic-entity-row.ts b/src/panels/lovelace/components/hui-generic-entity-row.ts
index 3d1c1e0d0c..347457cb3a 100644
--- a/src/panels/lovelace/components/hui-generic-entity-row.ts
+++ b/src/panels/lovelace/components/hui-generic-entity-row.ts
@@ -85,7 +85,7 @@ class HuiGenericEntityRow extends LitElement {
tabindex=${ifDefined(pointer ? "0" : undefined)}
>
${!this.hideName
- ? html`
+
@@ -59,9 +57,7 @@ class HuiDateEntityRow extends LitElement implements LovelaceRow {
}
private _dateChanged(ev: CustomEvent<{ value: string }>): void {
- const stateObj = this.hass!.states[this._config!.entity];
-
- setDateValue(this.hass!, stateObj.entity_id, ev.detail.value);
+ setDateValue(this.hass!, this._config!.entity, ev.detail.value);
}
}
diff --git a/src/panels/lovelace/entity-rows/hui-datetime-entity-row.ts b/src/panels/lovelace/entity-rows/hui-datetime-entity-row.ts
index bf6b2845e8..e4aecd4cbf 100644
--- a/src/panels/lovelace/entity-rows/hui-datetime-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-datetime-entity-row.ts
@@ -18,6 +18,7 @@ import "../components/hui-generic-entity-row";
import { createEntityNotFoundWarning } from "../components/hui-warning";
import type { EntityConfig, LovelaceRow } from "./types";
import "../../../components/ha-time-input";
+import { computeStateName } from "../../../common/entity/compute_state_name";
@customElement("hui-datetime-entity-row")
class HuiInputDatetimeEntityRow extends LitElement implements LovelaceRow {
@@ -51,30 +52,35 @@ class HuiInputDatetimeEntityRow extends LitElement implements LovelaceRow {
`;
}
- const dateObj = new Date(stateObj.state);
- const time = format(dateObj, "HH:mm:ss");
- const date = format(dateObj, "yyyy-MM-dd");
+ const unavailable = isUnavailableState(stateObj.state);
+
+ const dateObj = unavailable ? undefined : new Date(stateObj.state);
+ const time = dateObj ? format(dateObj, "HH:mm:ss") : "";
+ const date = dateObj ? format(dateObj, "yyyy-MM-dd") : "";
return html`
-
-
-
+
+
+
+
+
`;
}
@@ -103,12 +109,17 @@ class HuiInputDatetimeEntityRow extends LitElement implements LovelaceRow {
static get styles(): CSSResultGroup {
return css`
- ha-date-input + ha-time-input {
+ ha-time-input {
margin-left: 4px;
margin-inline-start: 4px;
margin-inline-end: initial;
direction: var(--direction);
}
+ div {
+ display: flex;
+ justify-content: flex-end;
+ width: 100%;
+ }
`;
}
}
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 bd595bd4f7..287ea60886 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
@@ -62,33 +62,39 @@ class HuiInputDatetimeEntityRow extends LitElement implements LovelaceRow {
.hideName=${stateObj.attributes.has_date &&
stateObj.attributes.has_time}
>
- ${stateObj.attributes.has_date
- ? html`
-
-
- `
- : ``}
- ${stateObj.attributes.has_time
- ? html`
-
- `
- : ``}
+
+ ${stateObj.attributes.has_date
+ ? html`
+
+
+ `
+ : ``}
+ ${stateObj.attributes.has_time
+ ? html`
+
+ `
+ : ``}
+
`;
}
@@ -126,6 +132,11 @@ class HuiInputDatetimeEntityRow extends LitElement implements LovelaceRow {
margin-inline-end: initial;
direction: var(--direction);
}
+ div.both {
+ display: flex;
+ justify-content: flex-end;
+ width: 100%;
+ }
`;
}
}
diff --git a/src/panels/lovelace/entity-rows/hui-time-entity-row.ts b/src/panels/lovelace/entity-rows/hui-time-entity-row.ts
index f6fceb3829..66cf5c68b1 100644
--- a/src/panels/lovelace/entity-rows/hui-time-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-time-entity-row.ts
@@ -42,16 +42,14 @@ class HuiTimeEntityRow extends LitElement implements LovelaceRow {
`;
}
+ const unavailable = isUnavailableState(stateObj.state);
+
return html`
-
+