From 79e1fbe0768123bd6e884c3cc1cd767d01b43bf2 Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Thu, 3 Aug 2023 00:58:06 -0700 Subject: [PATCH 1/6] Fix device config dialog when disabled (#17464) --- src/panels/config/devices/ha-config-device-page.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/panels/config/devices/ha-config-device-page.ts b/src/panels/config/devices/ha-config-device-page.ts index 3c3f513507..2719a70c25 100644 --- a/src/panels/config/devices/ha-config-device-page.ts +++ b/src/panels/config/devices/ha-config-device-page.ts @@ -1295,6 +1295,11 @@ export class HaConfigDevicePage extends LitElement { } } } + } else if ( + updates.disabled_by !== null && + updates.disabled_by !== "user" + ) { + delete updates.disabled_by; } try { await updateDeviceRegistryEntry(this.hass, this.deviceId, updates); From 220767b34778964487d6e207434f93825c4bddfe Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Fri, 4 Aug 2023 11:11:54 +0200 Subject: [PATCH 2/6] Use service translations in logbook (#17461) --- src/panels/logbook/ha-logbook-renderer.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/panels/logbook/ha-logbook-renderer.ts b/src/panels/logbook/ha-logbook-renderer.ts index 83293b562b..fe5f955637 100644 --- a/src/panels/logbook/ha-logbook-renderer.ts +++ b/src/panels/logbook/ha-logbook-renderer.ts @@ -38,6 +38,7 @@ import { import { loadVirtualizer } from "../../resources/virtualizer"; import { HomeAssistant } from "../../types"; import { brandsUrl } from "../../util/brands-url"; +import { domainToName } from "../../data/integration"; declare global { interface HASSDomEvents { @@ -89,6 +90,8 @@ class HaLogbookRenderer extends LitElement { (!this.hasUpdated && this.virtualize) || (changedProps.has("virtualize") && this.virtualize) ) { + this.hass.loadBackendTranslation("services"); + this.hass.loadBackendTranslation("title"); loadVirtualizer(); } } @@ -399,7 +402,16 @@ class HaLogbookRenderer extends LitElement { return html`${this.hass.localize( "ui.components.logbook.triggered_by_service" )} - ${item.context_domain}.${item.context_service}`; + ${item.context_domain && item.context_service + ? `${domainToName(this.hass.localize, item.context_domain)}: + ${ + this.hass.localize( + `component.${item.context_domain}.services.${item.context_service}.name` + ) || + this.hass.services[item.context_domain]?.[item.context_service]?.name || + item.context_service + }` + : ""}`; } if ( !item.context_message || From d6de29ca8aedb1f0f972b26006af04ab409dbf35 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Fri, 4 Aug 2023 15:06:41 +0200 Subject: [PATCH 3/6] Change logic to determine if forecast is hourly (#17486) --- src/data/weather.ts | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/src/data/weather.ts b/src/data/weather.ts index d18c41ccab..1c2b23939d 100644 --- a/src/data/weather.ts +++ b/src/data/weather.ts @@ -525,6 +525,7 @@ export const weatherIcon = (state?: string, nightTime?: boolean): string => ? mdiWeatherNightPartlyCloudy : weatherIcons[state]; +const EIGHT_HOURS = 28800000; const DAY_IN_MILLISECONDS = 86400000; const isForecastHourly = ( @@ -535,6 +536,20 @@ const isForecastHourly = ( const date2 = new Date(forecast[2].datetime); const timeDiff = date2.getTime() - date1.getTime(); + return timeDiff < EIGHT_HOURS; + } + + return undefined; +}; + +const isForecastTwiceDaily = ( + forecast?: ForecastAttribute[] +): boolean | undefined => { + if (forecast && forecast?.length && forecast?.length > 2) { + const date1 = new Date(forecast[1].datetime); + const date2 = new Date(forecast[2].datetime); + const timeDiff = date2.getTime() - date1.getTime(); + return timeDiff < DAY_IN_MILLISECONDS; } @@ -565,19 +580,16 @@ const getLegacyForecast = ( } | undefined => { if (weather_attributes?.forecast && weather_attributes.forecast.length > 2) { - const hourly = isForecastHourly(weather_attributes.forecast); - if (hourly === true) { - const dateFirst = new Date(weather_attributes.forecast![0].datetime); - const datelast = new Date( - weather_attributes.forecast![ - weather_attributes.forecast!.length - 1 - ].datetime - ); - const dayDiff = datelast.getTime() - dateFirst.getTime(); - const dayNight = dayDiff > DAY_IN_MILLISECONDS; + if (isForecastHourly(weather_attributes.forecast)) { return { forecast: weather_attributes.forecast, - type: dayNight ? "twice_daily" : "hourly", + type: "hourly", + }; + } + if (isForecastTwiceDaily(weather_attributes.forecast)) { + return { + forecast: weather_attributes.forecast, + type: "twice_daily", }; } return { forecast: weather_attributes.forecast, type: "daily" }; From 060e67397abdcc0fcad3aeea3fdc7f14968ab728 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Fri, 4 Aug 2023 15:09:20 +0200 Subject: [PATCH 4/6] Prevent voice settings to override entity registry settings dialog (#17485) --- src/dialogs/more-info/ha-more-info-dialog.ts | 96 +++++++++---------- .../entity-registry-settings-editor.ts | 5 +- 2 files changed, 52 insertions(+), 49 deletions(-) diff --git a/src/dialogs/more-info/ha-more-info-dialog.ts b/src/dialogs/more-info/ha-more-info-dialog.ts index 748d51d1c0..080d10cb1e 100644 --- a/src/dialogs/more-info/ha-more-info-dialog.ts +++ b/src/dialogs/more-info/ha-more-info-dialog.ts @@ -411,54 +411,54 @@ export class MoreInfoDialog extends LitElement { @entity-entry-updated=${this._entryUpdated} @toggle-edit-mode=${this._handleToggleInfoEditModeEvent} > - ${this._childView - ? html` -
- ${dynamicElement(this._childView.viewTag, { - hass: this.hass, - entry: this._entry, - params: this._childView.viewParams, - })} -
- ` - : cache( - this._currView === "info" - ? html` - - ` - : this._currView === "history" - ? html` - - ` - : this._currView === "settings" - ? html` - - ` - : this._currView === "related" - ? html` - - ` - : nothing - )} + ${cache( + this._childView + ? html` +
+ ${dynamicElement(this._childView.viewTag, { + hass: this.hass, + entry: this._entry, + params: this._childView.viewParams, + })} +
+ ` + : this._currView === "info" + ? html` + + ` + : this._currView === "history" + ? html` + + ` + : this._currView === "settings" + ? html` + + ` + : this._currView === "related" + ? html` + + ` + : nothing + )} `; diff --git a/src/panels/config/entities/entity-registry-settings-editor.ts b/src/panels/config/entities/entity-registry-settings-editor.ts index 940ea5de59..593a6d417f 100644 --- a/src/panels/config/entities/entity-registry-settings-editor.ts +++ b/src/panels/config/entities/entity-registry-settings-editor.ts @@ -186,7 +186,10 @@ export class EntityRegistrySettingsEditor extends LitElement { protected willUpdate(changedProperties: PropertyValues) { super.willUpdate(changedProperties); - if (!changedProperties.has("entry")) { + if ( + !changedProperties.has("entry") || + changedProperties.get("entry")?.id === this.entry.id + ) { return; } From 1a15c8da8c9b887c3380115391b324cd31201e58 Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Mon, 7 Aug 2023 03:01:04 -0700 Subject: [PATCH 5/6] Fix default precision display in entity settings (#17491) --- src/panels/config/entities/entity-registry-settings-editor.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/panels/config/entities/entity-registry-settings-editor.ts b/src/panels/config/entities/entity-registry-settings-editor.ts index 593a6d417f..e6c8f17f63 100644 --- a/src/panels/config/entities/entity-registry-settings-editor.ts +++ b/src/panels/config/entities/entity-registry-settings-editor.ts @@ -264,7 +264,7 @@ export class EntityRegistrySettingsEditor extends LitElement { private precisionLabel(precision?: number, stateValue?: string) { const stateValueNumber = Number(stateValue); - const value = !isNaN(stateValueNumber) ? stateValueNumber : 0; + const value = !isNaN(stateValueNumber) ? stateValue! : 0; return formatNumber(value, this.hass.locale, { minimumFractionDigits: precision, maximumFractionDigits: precision, From 593b176ab8302bb630aca4c1664ffbfc5bdc13ce Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Fri, 18 Aug 2023 11:18:24 +0200 Subject: [PATCH 6/6] Bump version to 20230802.1 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 50d335eed6..871fc808fb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "home-assistant-frontend" -version = "20230802.0" +version = "20230802.1" license = {text = "Apache-2.0"} description = "The Home Assistant frontend" readme = "README.md"