From d121c1cd18d80e58ec5de1e07cadf79b3e0b0e6e Mon Sep 17 00:00:00 2001 From: Philip Allgaier Date: Wed, 14 Dec 2022 09:44:43 +0100 Subject: [PATCH 1/4] Classify binary sensor locks active state as alert (= red) (#14761) fixes undefined --- src/common/entity/color/binary_sensor_color.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/common/entity/color/binary_sensor_color.ts b/src/common/entity/color/binary_sensor_color.ts index f3458214fd..90f7247be4 100644 --- a/src/common/entity/color/binary_sensor_color.ts +++ b/src/common/entity/color/binary_sensor_color.ts @@ -6,6 +6,7 @@ const ALERTING_DEVICE_CLASSES = new Set([ "carbon_monoxide", "gas", "heat", + "lock", "moisture", "problem", "safety", From 614496d65ccb4637fef30844705d2ce482a03c40 Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Wed, 14 Dec 2022 11:35:41 +0100 Subject: [PATCH 2/4] Add pulse animation for jammed state for lock (#14766) --- src/common/style/icon_color_css.ts | 7 ++++--- src/components/entity/state-badge.ts | 2 -- src/panels/lovelace/cards/hui-button-card.ts | 1 - src/panels/lovelace/cards/hui-entity-card.ts | 1 - 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/common/style/icon_color_css.ts b/src/common/style/icon_color_css.ts index fef56682b5..2b717c13cc 100644 --- a/src/common/style/icon_color_css.ts +++ b/src/common/style/icon_color_css.ts @@ -1,9 +1,10 @@ import { css } from "lit"; export const iconColorCSS = css` - ha-state-icon[data-active][data-domain="alarm_control_panel"][data-state="pending"], - ha-state-icon[data-active][data-domain="alarm_control_panel"][data-state="arming"], - ha-state-icon[data-active][data-domain="alarm_control_panel"][data-state="triggered"] { + ha-state-icon[data-domain="alarm_control_panel"][data-state="pending"], + ha-state-icon[data-domain="alarm_control_panel"][data-state="arming"], + ha-state-icon[data-domain="alarm_control_panel"][data-state="triggered"], + ha-state-icon[data-domain="lock"][data-state="jammed"] { animation: pulse 1s infinite; } diff --git a/src/components/entity/state-badge.ts b/src/components/entity/state-badge.ts index abbcc52b73..972ea11ea7 100644 --- a/src/components/entity/state-badge.ts +++ b/src/components/entity/state-badge.ts @@ -59,11 +59,9 @@ export class StateBadge extends LitElement { } const domain = stateObj ? computeStateDomain(stateObj) : undefined; - const active = this._stateColor && stateObj ? stateActive(stateObj) : false; return html` Date: Thu, 15 Dec 2022 11:09:49 +0100 Subject: [PATCH 3/4] Check if area exists during default dashboard generation (#14767) --- .../common/generate-lovelace-config.ts | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/src/panels/lovelace/common/generate-lovelace-config.ts b/src/panels/lovelace/common/generate-lovelace-config.ts index 12dd3fc537..07b99cb22d 100644 --- a/src/panels/lovelace/common/generate-lovelace-config.ts +++ b/src/panels/lovelace/common/generate-lovelace-config.ts @@ -47,6 +47,7 @@ interface SplittedByAreaDevice { } const splitByAreaDevice = ( + areaEntries: HomeAssistant["areas"], deviceEntries: HomeAssistant["devices"], entityEntries: HomeAssistant["entities"], entities: HassEntities @@ -55,25 +56,21 @@ const splitByAreaDevice = ( const areasWithEntities: SplittedByAreaDevice["areasWithEntities"] = {}; const devicesWithEntities: SplittedByAreaDevice["devicesWithEntities"] = {}; - const areaDevices = new Set( - Object.values(deviceEntries) - .filter((device) => device.area_id) - .map((device) => device.id) - ); for (const entity of Object.values(entityEntries)) { - if ( - (entity.area_id || - (entity.device_id && areaDevices.has(entity.device_id))) && - entity.entity_id in allEntities - ) { - const areaId = - entity.area_id || deviceEntries[entity.device_id!].area_id!; + const areaId = + entity.area_id || + (entity.device_id && deviceEntries[entity.device_id].area_id); + if (areaId && areaId in areaEntries && entity.entity_id in allEntities) { if (!(areaId in areasWithEntities)) { areasWithEntities[areaId] = []; } areasWithEntities[areaId].push(allEntities[entity.entity_id]); delete allEntities[entity.entity_id]; - } else if (entity.device_id && entity.entity_id in allEntities) { + } else if ( + entity.device_id && + entity.device_id in deviceEntries && + entity.entity_id in allEntities + ) { if (!(entity.device_id in devicesWithEntities)) { devicesWithEntities[entity.device_id] = []; } @@ -460,6 +457,7 @@ export const generateDefaultViewConfig = ( } const splittedByAreaDevice = splitByAreaDevice( + areaEntries, deviceEntries, entityEntries, states From 43ea175a1a7c12267bebddac20282765aa6fe2c3 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Thu, 15 Dec 2022 16:13:20 +0100 Subject: [PATCH 4/4] Bumped version to 20221213.1 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 5641dfcf15..3d836f6999 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "home-assistant-frontend" -version = "20221213.0" +version = "20221213.1" license = {text = "Apache-2.0"} description = "The Home Assistant frontend" readme = "README.md"