From 463d0b60cde4a4233ea9958f9d099c538861f31c Mon Sep 17 00:00:00 2001 From: Quentame Date: Tue, 23 Apr 2024 15:34:20 +0000 Subject: [PATCH 01/11] picture cards: add person image support --- gallery/public/images/paulus.jpg | Bin 0 -> 112613 bytes .../pages/lovelace/picture-elements-card.ts | 22 ++++++++++++++++++ .../src/pages/lovelace/picture-entity-card.ts | 11 +++++++++ .../src/pages/lovelace/picture-glance-card.ts | 18 ++++++++++++++ src/data/person.ts | 5 ++++ .../cards/hui-picture-elements-card.ts | 15 ++++++++++-- .../lovelace/cards/hui-picture-entity-card.ts | 13 ++++++++--- .../lovelace/cards/hui-picture-glance-card.ts | 15 ++++++++++-- src/panels/lovelace/cards/types.ts | 3 +++ .../common/generate-lovelace-config.ts | 2 +- .../hui-picture-glance-card-editor.ts | 2 ++ src/translations/en.json | 1 + 12 files changed, 99 insertions(+), 8 deletions(-) create mode 100644 gallery/public/images/paulus.jpg diff --git a/gallery/public/images/paulus.jpg b/gallery/public/images/paulus.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6ffa0fcdaaede9309c0f1bd40288b4ebcadf1aa8 GIT binary patch literal 112613 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 hass.callWS<{ storage: Person[]; diff --git a/src/panels/lovelace/cards/hui-picture-elements-card.ts b/src/panels/lovelace/cards/hui-picture-elements-card.ts index 09f0455c2adb..c0c3c6860a5e 100644 --- a/src/panels/lovelace/cards/hui-picture-elements-card.ts +++ b/src/panels/lovelace/cards/hui-picture-elements-card.ts @@ -16,6 +16,7 @@ import { LovelaceElement, LovelaceElementConfig } from "../elements/types"; import { LovelaceCard } from "../types"; import { createStyledHuiElement } from "./picture-elements/create-styled-hui-element"; import { PictureElementsCardConfig } from "./types"; +import { PersonEntity } from "../../../data/person"; @customElement("hui-picture-elements-card") class HuiPictureElementsCard extends LitElement implements LovelaceCard { @@ -66,6 +67,7 @@ class HuiPictureElementsCard extends LitElement implements LovelaceCard { !( config.image || config.image_entity || + config.person_entity || config.camera_image || config.state_image ) || @@ -116,9 +118,14 @@ class HuiPictureElementsCard extends LitElement implements LovelaceCard { return nothing; } - let stateObj: ImageEntity | undefined; + let stateObj: ImageEntity | PersonEntity | undefined; + let domain: string | undefined; if (this._config.image_entity) { stateObj = this.hass.states[this._config.image_entity] as ImageEntity; + domain = "image"; + } else if (this._config.person_entity) { + stateObj = this.hass.states[this._config.person_entity] as PersonEntity; + domain = "person"; } return html` @@ -126,7 +133,11 @@ class HuiPictureElementsCard extends LitElement implements LovelaceCard {

; @@ -406,6 +407,8 @@ export interface PictureGlanceCardConfig extends LovelaceCardConfig { entities: Array; title?: string; image?: string; + image_entity?: string; + person_entity?: string; camera_image?: string; camera_view?: HuiImage["cameraView"]; state_image?: Record; diff --git a/src/panels/lovelace/common/generate-lovelace-config.ts b/src/panels/lovelace/common/generate-lovelace-config.ts index f065215ce959..c2e8920fdeb2 100644 --- a/src/panels/lovelace/common/generate-lovelace-config.ts +++ b/src/panels/lovelace/common/generate-lovelace-config.ts @@ -115,7 +115,7 @@ export const computeSection = ( type: "tile", entity, show_entity_picture: - ["person", "camera", "image"].includes(computeDomain(entity)) || + ["camera", "image", "person"].includes(computeDomain(entity)) || undefined, }) as TileCardConfig ), diff --git a/src/panels/lovelace/editor/config-elements/hui-picture-glance-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-picture-glance-card-editor.ts index 1c74428d3848..59d36f52fee7 100644 --- a/src/panels/lovelace/editor/config-elements/hui-picture-glance-card-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-picture-glance-card-editor.ts @@ -23,6 +23,7 @@ const cardConfigStruct = assign( entity: optional(string()), image: optional(string()), image_entity: optional(string()), + person_entity: optional(string()), camera_image: optional(string()), camera_view: optional(string()), aspect_ratio: optional(string()), @@ -37,6 +38,7 @@ const SCHEMA = [ { name: "title", selector: { text: {} } }, { name: "image", selector: { image: {} } }, { name: "image_entity", selector: { entity: { domain: "image" } } }, + { name: "person_entity", selector: { entity: { domain: "person" } } }, { name: "camera_image", selector: { entity: { domain: "camera" } } }, { name: "", diff --git a/src/translations/en.json b/src/translations/en.json index 5eb543eb0cf5..3211f220136a 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -5910,6 +5910,7 @@ "attribute": "Attribute", "camera_image": "Camera entity", "image_entity": "Image entity", + "person_entity": "Person entity", "camera_view": "Camera view", "double_tap_action": "Double tap behavior", "entities": "Entities", From 415c36c745b972a14a345213fb249fef6b22d86d Mon Sep 17 00:00:00 2001 From: Quentame Date: Wed, 24 Apr 2024 12:26:26 +0000 Subject: [PATCH 02/11] fix: person attributes typing --- .../src/pages/lovelace/picture-elements-card.ts | 2 +- .../src/pages/lovelace/picture-entity-card.ts | 2 +- .../src/pages/lovelace/picture-glance-card.ts | 2 +- src/data/person.ts | 17 +++++++++++++++-- .../lovelace/cards/hui-picture-elements-card.ts | 2 +- .../lovelace/cards/hui-picture-entity-card.ts | 2 +- .../lovelace/cards/hui-picture-glance-card.ts | 2 +- 7 files changed, 21 insertions(+), 8 deletions(-) diff --git a/gallery/src/pages/lovelace/picture-elements-card.ts b/gallery/src/pages/lovelace/picture-elements-card.ts index b524b4982bb0..4082f7cc17a0 100644 --- a/gallery/src/pages/lovelace/picture-elements-card.ts +++ b/gallery/src/pages/lovelace/picture-elements-card.ts @@ -27,7 +27,7 @@ const ENTITIES = [ }), getEntity("person", "paulus", "home", { friendly_name: "Paulus", - picture: "/images/paulus.jpg", + entity_picture: "/images/paulus.jpg", }), getEntity("sensor", "battery", 35, { device_class: "battery", diff --git a/gallery/src/pages/lovelace/picture-entity-card.ts b/gallery/src/pages/lovelace/picture-entity-card.ts index 6ba18e2a6931..d97f41774659 100644 --- a/gallery/src/pages/lovelace/picture-entity-card.ts +++ b/gallery/src/pages/lovelace/picture-entity-card.ts @@ -14,7 +14,7 @@ const ENTITIES = [ }), getEntity("person", "paulus", "home", { friendly_name: "Paulus", - picture: "/images/paulus.jpg", + entity_picture: "/images/paulus.jpg", }), ]; diff --git a/gallery/src/pages/lovelace/picture-glance-card.ts b/gallery/src/pages/lovelace/picture-glance-card.ts index e991ba7054b6..72cc32eaa754 100644 --- a/gallery/src/pages/lovelace/picture-glance-card.ts +++ b/gallery/src/pages/lovelace/picture-glance-card.ts @@ -22,7 +22,7 @@ const ENTITIES = [ }), getEntity("person", "paulus", "home", { friendly_name: "Paulus", - picture: "/images/paulus.jpg", + entity_picture: "/images/paulus.jpg", }), getEntity("sensor", "battery", 35, { device_class: "battery", diff --git a/src/data/person.ts b/src/data/person.ts index 9f2297d1ecfe..cbaabf2c007c 100644 --- a/src/data/person.ts +++ b/src/data/person.ts @@ -1,4 +1,7 @@ -import { HassEntityBase } from "home-assistant-js-websocket"; +import { + HassEntityAttributeBase, + HassEntityBase, +} from "home-assistant-js-websocket"; import { HomeAssistant } from "../types"; export interface BasePerson { @@ -19,8 +22,18 @@ export interface PersonMutableParams { picture: string | null; } +interface PersonEntityAttributes extends HassEntityAttributeBase { + id: string; + user_id?: string; + device_trackers?: string[]; + editable?: boolean; + gps_accuracy?: number; + latitude?: number; + longitude?: number; +} + export interface PersonEntity extends HassEntityBase { - attributes: Person; + attributes: PersonEntityAttributes; } export const fetchPersons = (hass: HomeAssistant) => diff --git a/src/panels/lovelace/cards/hui-picture-elements-card.ts b/src/panels/lovelace/cards/hui-picture-elements-card.ts index c0c3c6860a5e..243d9ec627b5 100644 --- a/src/panels/lovelace/cards/hui-picture-elements-card.ts +++ b/src/panels/lovelace/cards/hui-picture-elements-card.ts @@ -136,7 +136,7 @@ class HuiPictureElementsCard extends LitElement implements LovelaceCard { .image=${domain === "image" ? computeImageUrl(stateObj as ImageEntity) : domain === "person" - ? (stateObj as PersonEntity).attributes.picture + ? (stateObj as PersonEntity).attributes.entity_picture : this._config.image} .stateImage=${this._config.state_image} .stateFilter=${this._config.state_filter} diff --git a/src/panels/lovelace/cards/hui-picture-entity-card.ts b/src/panels/lovelace/cards/hui-picture-entity-card.ts index 46ddf9cbbfba..3ba47daa0762 100644 --- a/src/panels/lovelace/cards/hui-picture-entity-card.ts +++ b/src/panels/lovelace/cards/hui-picture-entity-card.ts @@ -149,7 +149,7 @@ class HuiPictureEntityCard extends LitElement implements LovelaceCard { .image=${domain === "image" ? computeImageUrl(stateObj as ImageEntity) : domain === "person" - ? (stateObj as PersonEntity).attributes.picture + ? (stateObj as PersonEntity).attributes.entity_picture : this._config.image} .stateImage=${this._config.state_image} .stateFilter=${this._config.state_filter} diff --git a/src/panels/lovelace/cards/hui-picture-glance-card.ts b/src/panels/lovelace/cards/hui-picture-glance-card.ts index 44b6a5f5b9b3..661c366fbe46 100644 --- a/src/panels/lovelace/cards/hui-picture-glance-card.ts +++ b/src/panels/lovelace/cards/hui-picture-glance-card.ts @@ -219,7 +219,7 @@ class HuiPictureGlanceCard extends LitElement implements LovelaceCard { .image=${domain === "image" ? computeImageUrl(stateObj as ImageEntity) : domain === "person" - ? (stateObj as PersonEntity).attributes.picture + ? (stateObj as PersonEntity).attributes.entity_picture : this._config.image} .stateImage=${this._config.state_image} .stateFilter=${this._config.state_filter} From ce2bbf4f3930e9debe3ce6bbbd8d311eaa91cae8 Mon Sep 17 00:00:00 2001 From: Quentame Date: Fri, 14 Jun 2024 17:23:09 +0000 Subject: [PATCH 03/11] review: apply comment from @coderabbitai --- src/panels/lovelace/cards/hui-picture-entity-card.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/panels/lovelace/cards/hui-picture-entity-card.ts b/src/panels/lovelace/cards/hui-picture-entity-card.ts index 3ba47daa0762..8984bc36e9d5 100644 --- a/src/panels/lovelace/cards/hui-picture-entity-card.ts +++ b/src/panels/lovelace/cards/hui-picture-entity-card.ts @@ -110,10 +110,8 @@ class HuiPictureEntityCard extends LitElement implements LovelaceCard { return nothing; } - const stateObj = this.hass.states[this._config.entity] as - | CameraEntity - | ImageEntity - | PersonEntity; + const stateObj: CameraEntity | ImageEntity | PersonEntity | undefined = + this.hass.states[this._config.entity]; if (!stateObj) { return html` From 87c8eb79133542cca18475fd14c29659813d006f Mon Sep 17 00:00:00 2001 From: Quentame Date: Fri, 14 Jun 2024 17:57:21 +0000 Subject: [PATCH 04/11] fix lint:types --- src/data/person.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/person.ts b/src/data/person.ts index cbaabf2c007c..e8ee0ba25c2d 100644 --- a/src/data/person.ts +++ b/src/data/person.ts @@ -23,7 +23,7 @@ export interface PersonMutableParams { } interface PersonEntityAttributes extends HassEntityAttributeBase { - id: string; + id?: string; user_id?: string; device_trackers?: string[]; editable?: boolean; From b9998e7fec8b819dad83276914ad51bce64804a0 Mon Sep 17 00:00:00 2001 From: Quentame Date: Mon, 22 Jul 2024 07:53:00 +0000 Subject: [PATCH 05/11] review: put person domain in image_entity config --- .../pages/lovelace/picture-elements-card.ts | 2 +- .../src/pages/lovelace/picture-glance-card.ts | 2 +- .../cards/hui-picture-elements-card.ts | 31 ++++++++++--------- .../lovelace/cards/hui-picture-entity-card.ts | 17 +++++++--- .../lovelace/cards/hui-picture-glance-card.ts | 30 +++++++++--------- src/panels/lovelace/cards/types.ts | 2 -- .../hui-picture-glance-card-editor.ts | 4 +-- src/translations/en.json | 1 - 8 files changed, 48 insertions(+), 41 deletions(-) diff --git a/gallery/src/pages/lovelace/picture-elements-card.ts b/gallery/src/pages/lovelace/picture-elements-card.ts index 4082f7cc17a0..117e6c6beec6 100644 --- a/gallery/src/pages/lovelace/picture-elements-card.ts +++ b/gallery/src/pages/lovelace/picture-elements-card.ts @@ -136,7 +136,7 @@ const CONFIGS = [ heading: "Person entity", config: ` - type: picture-elements - person_entity: person.paulus + image_entity: person.paulus elements: - type: state-icon entity: sensor.battery diff --git a/gallery/src/pages/lovelace/picture-glance-card.ts b/gallery/src/pages/lovelace/picture-glance-card.ts index 72cc32eaa754..91f2e4dca5ac 100644 --- a/gallery/src/pages/lovelace/picture-glance-card.ts +++ b/gallery/src/pages/lovelace/picture-glance-card.ts @@ -103,7 +103,7 @@ const CONFIGS = [ heading: "Person entity", config: ` - type: picture-glance - person_entity: person.paulus + image_entity: person.paulus entities: - sensor.battery `, diff --git a/src/panels/lovelace/cards/hui-picture-elements-card.ts b/src/panels/lovelace/cards/hui-picture-elements-card.ts index 243d9ec627b5..b3534de4f723 100644 --- a/src/panels/lovelace/cards/hui-picture-elements-card.ts +++ b/src/panels/lovelace/cards/hui-picture-elements-card.ts @@ -8,6 +8,7 @@ import { } from "lit"; import { customElement, property, state } from "lit/decorators"; import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element"; +import { computeDomain } from "../../../common/entity/compute_domain"; import "../../../components/ha-card"; import { ImageEntity, computeImageUrl } from "../../../data/image"; import { HomeAssistant } from "../../../types"; @@ -67,7 +68,6 @@ class HuiPictureElementsCard extends LitElement implements LovelaceCard { !( config.image || config.image_entity || - config.person_entity || config.camera_image || config.state_image ) || @@ -118,14 +118,21 @@ class HuiPictureElementsCard extends LitElement implements LovelaceCard { return nothing; } - let stateObj: ImageEntity | PersonEntity | undefined; - let domain: string | undefined; - if (this._config.image_entity) { - stateObj = this.hass.states[this._config.image_entity] as ImageEntity; - domain = "image"; - } else if (this._config.person_entity) { - stateObj = this.hass.states[this._config.person_entity] as PersonEntity; - domain = "person"; + const stateObj: ImageEntity | PersonEntity | undefined = + this.hass.states[this._config.image_entity]; + const domain: string | undefined = this._config.image_entity + ? computeDomain(this._config.image_entity) + : undefined; + let image: string | undefined; + switch (domain) { + case "image": + image = computeImageUrl(stateObj); + break; + case "person": + image = stateObj.attributes.entity_picture; + break; + default: + image = this._config.image; } return html` @@ -133,11 +140,7 @@ class HuiPictureElementsCard extends LitElement implements LovelaceCard {
; @@ -408,7 +407,6 @@ export interface PictureGlanceCardConfig extends LovelaceCardConfig { title?: string; image?: string; image_entity?: string; - person_entity?: string; camera_image?: string; camera_view?: HuiImage["cameraView"]; state_image?: Record; diff --git a/src/panels/lovelace/editor/config-elements/hui-picture-glance-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-picture-glance-card-editor.ts index 59d36f52fee7..23d56b16859d 100644 --- a/src/panels/lovelace/editor/config-elements/hui-picture-glance-card-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-picture-glance-card-editor.ts @@ -23,7 +23,6 @@ const cardConfigStruct = assign( entity: optional(string()), image: optional(string()), image_entity: optional(string()), - person_entity: optional(string()), camera_image: optional(string()), camera_view: optional(string()), aspect_ratio: optional(string()), @@ -37,8 +36,7 @@ const cardConfigStruct = assign( const SCHEMA = [ { name: "title", selector: { text: {} } }, { name: "image", selector: { image: {} } }, - { name: "image_entity", selector: { entity: { domain: "image" } } }, - { name: "person_entity", selector: { entity: { domain: "person" } } }, + { name: "image_entity", selector: { entity: {} } }, // domain: "image" || "person" { name: "camera_image", selector: { entity: { domain: "camera" } } }, { name: "", diff --git a/src/translations/en.json b/src/translations/en.json index 3211f220136a..5eb543eb0cf5 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -5910,7 +5910,6 @@ "attribute": "Attribute", "camera_image": "Camera entity", "image_entity": "Image entity", - "person_entity": "Person entity", "camera_view": "Camera view", "double_tap_action": "Double tap behavior", "entities": "Entities", From b38d0f8ba00e16db80581b1eed7eced99f41bad7 Mon Sep 17 00:00:00 2001 From: Quentame Date: Mon, 22 Jul 2024 08:27:24 +0000 Subject: [PATCH 06/11] add picture card compatibility & exemple in gallery --- .../src/pages/lovelace/picture-card.markdown | 3 + gallery/src/pages/lovelace/picture-card.ts | 61 +++++++++++++++++++ src/panels/lovelace/cards/hui-picture-card.ts | 25 ++++++-- .../hui-picture-card-editor.ts | 2 +- 4 files changed, 85 insertions(+), 6 deletions(-) create mode 100644 gallery/src/pages/lovelace/picture-card.markdown create mode 100644 gallery/src/pages/lovelace/picture-card.ts diff --git a/gallery/src/pages/lovelace/picture-card.markdown b/gallery/src/pages/lovelace/picture-card.markdown new file mode 100644 index 000000000000..4c762c101b29 --- /dev/null +++ b/gallery/src/pages/lovelace/picture-card.markdown @@ -0,0 +1,3 @@ +--- +title: Picture Card +--- diff --git a/gallery/src/pages/lovelace/picture-card.ts b/gallery/src/pages/lovelace/picture-card.ts new file mode 100644 index 000000000000..5ad709e46fe2 --- /dev/null +++ b/gallery/src/pages/lovelace/picture-card.ts @@ -0,0 +1,61 @@ +import { html, LitElement, PropertyValues, TemplateResult } from "lit"; +import { customElement, query } from "lit/decorators"; +import { getEntity } from "../../../../src/fake_data/entity"; +import { provideHass } from "../../../../src/fake_data/provide_hass"; +import "../../components/demo-cards"; +import { mockIcons } from "../../../../demo/src/stubs/icons"; + +const ENTITIES = [ + getEntity("person", "paulus", "home", { + friendly_name: "Paulus", + entity_picture: "/images/paulus.jpg", + }), +]; + +const CONFIGS = [ + { + heading: "Image URL", + config: ` +- type: picture + image: /images/living_room.png + `, + }, + { + heading: "Person entity", + config: ` +- type: picture + image_entity: person.paulus + `, + }, + { + heading: "Error: Image required", + config: ` +- type: picture + entity: person.paulus + `, + }, +]; + +@customElement("demo-lovelace-picture-card") +class DemoPicture extends LitElement { + @query("#demos") private _demoRoot!: HTMLElement; + + protected render(): TemplateResult { + return html``; + } + + protected firstUpdated(changedProperties: PropertyValues) { + super.firstUpdated(changedProperties); + const hass = provideHass(this._demoRoot); + hass.updateTranslations(null, "en"); + hass.updateTranslations("lovelace", "en"); + hass.addEntities(ENTITIES); + mockIcons(hass); + } +} + +declare global { + interface HTMLElementTagNameMap { + "demo-lovelace-picture-card": DemoPicture; + } +} diff --git a/src/panels/lovelace/cards/hui-picture-card.ts b/src/panels/lovelace/cards/hui-picture-card.ts index be5902ba84ae..5202a95b7daa 100644 --- a/src/panels/lovelace/cards/hui-picture-card.ts +++ b/src/panels/lovelace/cards/hui-picture-card.ts @@ -10,6 +10,7 @@ import { customElement, property, state } from "lit/decorators"; import { classMap } from "lit/directives/class-map"; import { ifDefined } from "lit/directives/if-defined"; import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element"; +import { computeDomain } from "../../../common/entity/compute_domain"; import "../../../components/ha-card"; import { computeImageUrl, ImageEntity } from "../../../data/image"; import { ActionHandlerEvent } from "../../../data/lovelace/action_handler"; @@ -21,6 +22,7 @@ import { hasConfigChanged } from "../common/has-changed"; import { createEntityNotFoundWarning } from "../components/hui-warning"; import { LovelaceCard, LovelaceCardEditor } from "../types"; import { PictureCardConfig } from "./types"; +import { PersonEntity } from "../../../data/person"; @customElement("hui-picture-card") export class HuiPictureCard extends LitElement implements LovelaceCard { @@ -95,10 +97,10 @@ export class HuiPictureCard extends LitElement implements LovelaceCard { return nothing; } - let stateObj: ImageEntity | undefined; + let stateObj: ImageEntity | PersonEntity | undefined; if (this._config.image_entity) { - stateObj = this.hass.states[this._config.image_entity] as ImageEntity; + stateObj = this.hass.states[this._config.image_entity]; if (!stateObj) { return html` ${createEntityNotFoundWarning(this.hass, this._config.image_entity)} @@ -106,6 +108,21 @@ export class HuiPictureCard extends LitElement implements LovelaceCard { } } + const domain: string | undefined = this._config.image_entity + ? computeDomain(this._config.image_entity) + : undefined; + let image: string | undefined; + switch (domain) { + case "image": + image = computeImageUrl(stateObj); + break; + case "person": + image = stateObj.attributes.entity_picture; + break; + default: + image = this._config.image; + } + return html` `; diff --git a/src/panels/lovelace/editor/config-elements/hui-picture-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-picture-card-editor.ts index 20ff12e88b41..f8bdfcf24281 100644 --- a/src/panels/lovelace/editor/config-elements/hui-picture-card-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-picture-card-editor.ts @@ -25,7 +25,7 @@ const cardConfigStruct = assign( const SCHEMA = [ { name: "image", selector: { image: {} } }, - { name: "image_entity", selector: { entity: { domain: "image" } } }, + { name: "image_entity", selector: { entity: {} } }, // domain: "image" || "person" { name: "alt_text", selector: { text: {} } }, { name: "theme", selector: { theme: {} } }, { From 44c6b52a4ab51513b28a9461e0fc23ef5b4ae385 Mon Sep 17 00:00:00 2001 From: Quentame Date: Mon, 22 Jul 2024 08:48:04 +0000 Subject: [PATCH 07/11] fix lint --- src/panels/lovelace/cards/hui-picture-card.ts | 26 ++++++++-------- .../cards/hui-picture-elements-card.ts | 30 +++++++++---------- .../lovelace/cards/hui-picture-entity-card.ts | 8 ++--- .../lovelace/cards/hui-picture-glance-card.ts | 30 +++++++++---------- 4 files changed, 46 insertions(+), 48 deletions(-) diff --git a/src/panels/lovelace/cards/hui-picture-card.ts b/src/panels/lovelace/cards/hui-picture-card.ts index 5202a95b7daa..46d1b825629b 100644 --- a/src/panels/lovelace/cards/hui-picture-card.ts +++ b/src/panels/lovelace/cards/hui-picture-card.ts @@ -108,19 +108,19 @@ export class HuiPictureCard extends LitElement implements LovelaceCard { } } - const domain: string | undefined = this._config.image_entity - ? computeDomain(this._config.image_entity) - : undefined; - let image: string | undefined; - switch (domain) { - case "image": - image = computeImageUrl(stateObj); - break; - case "person": - image = stateObj.attributes.entity_picture; - break; - default: - image = this._config.image; + let image: string | undefined = this._config.image; + if (this._config.image_entity) { + const domain: string | undefined = computeDomain( + this._config.image_entity + ); + switch (domain) { + case "image": + image = computeImageUrl(stateObj as ImageEntity); + break; + case "person": + image = (stateObj as PersonEntity).attributes.entity_picture; + break; + } } return html` diff --git a/src/panels/lovelace/cards/hui-picture-elements-card.ts b/src/panels/lovelace/cards/hui-picture-elements-card.ts index b3534de4f723..aa5d6a3bcc29 100644 --- a/src/panels/lovelace/cards/hui-picture-elements-card.ts +++ b/src/panels/lovelace/cards/hui-picture-elements-card.ts @@ -118,21 +118,21 @@ class HuiPictureElementsCard extends LitElement implements LovelaceCard { return nothing; } - const stateObj: ImageEntity | PersonEntity | undefined = - this.hass.states[this._config.image_entity]; - const domain: string | undefined = this._config.image_entity - ? computeDomain(this._config.image_entity) - : undefined; - let image: string | undefined; - switch (domain) { - case "image": - image = computeImageUrl(stateObj); - break; - case "person": - image = stateObj.attributes.entity_picture; - break; - default: - image = this._config.image; + let image: string | undefined = this._config.image; + if (this._config.image_entity) { + const stateObj: ImageEntity | PersonEntity | undefined = + this.hass.states[this._config.image_entity]; + const domain: string | undefined = computeDomain( + this._config.image_entity + ); + switch (domain) { + case "image": + image = computeImageUrl(stateObj as ImageEntity); + break; + case "person": + image = (stateObj as PersonEntity).attributes.entity_picture; + break; + } } return html` diff --git a/src/panels/lovelace/cards/hui-picture-entity-card.ts b/src/panels/lovelace/cards/hui-picture-entity-card.ts index 7c4de07a1e75..7737322e85d7 100644 --- a/src/panels/lovelace/cards/hui-picture-entity-card.ts +++ b/src/panels/lovelace/cards/hui-picture-entity-card.ts @@ -139,16 +139,14 @@ class HuiPictureEntityCard extends LitElement implements LovelaceCard { } const domain = computeDomain(this._config.entity); - let image: string | undefined; + let image: string | undefined = this._config.image; switch (domain) { case "image": - image = computeImageUrl(stateObj); + image = computeImageUrl(stateObj as ImageEntity); break; case "person": - image = stateObj.attributes.entity_picture; + image = (stateObj as PersonEntity).attributes.entity_picture; break; - default: - image = this._config.image; } return html` diff --git a/src/panels/lovelace/cards/hui-picture-glance-card.ts b/src/panels/lovelace/cards/hui-picture-glance-card.ts index c6e8f85999e0..ce91aa86a9f2 100644 --- a/src/panels/lovelace/cards/hui-picture-glance-card.ts +++ b/src/panels/lovelace/cards/hui-picture-glance-card.ts @@ -184,21 +184,21 @@ class HuiPictureGlanceCard extends LitElement implements LovelaceCard { return nothing; } - const stateObj: ImageEntity | PersonEntity | undefined = - this.hass.states[this._config.image_entity]; - const domain: string | undefined = this._config.image_entity - ? computeDomain(this._config.image_entity) - : undefined; - let image: string | undefined; - switch (domain) { - case "image": - image = computeImageUrl(stateObj); - break; - case "person": - image = stateObj.attributes.entity_picture; - break; - default: - image = this._config.image; + let image: string | undefined = this._config.image; + if (this._config.image_entity) { + const stateObj: ImageEntity | PersonEntity | undefined = + this.hass.states[this._config.image_entity]; + const domain: string | undefined = computeDomain( + this._config.image_entity + ); + switch (domain) { + case "image": + image = computeImageUrl(stateObj as ImageEntity); + break; + case "person": + image = (stateObj as PersonEntity).attributes.entity_picture; + break; + } } return html` From c0d1213deefb97b4ecabeba6410691e9f2595ff0 Mon Sep 17 00:00:00 2001 From: Quentame Date: Mon, 22 Jul 2024 16:46:49 +0200 Subject: [PATCH 08/11] Allow only image or person domains on image_entity editor config Co-authored-by: Simon Lamon <32477463+silamon@users.noreply.github.com> --- .../editor/config-elements/hui-picture-card-editor.ts | 5 ++++- .../editor/config-elements/hui-picture-glance-card-editor.ts | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/panels/lovelace/editor/config-elements/hui-picture-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-picture-card-editor.ts index f8bdfcf24281..6bd9d93cba2a 100644 --- a/src/panels/lovelace/editor/config-elements/hui-picture-card-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-picture-card-editor.ts @@ -25,7 +25,10 @@ const cardConfigStruct = assign( const SCHEMA = [ { name: "image", selector: { image: {} } }, - { name: "image_entity", selector: { entity: {} } }, // domain: "image" || "person" + { + name: "image_entity", + selector: { entity: { domain: ["image", "person"] } }, + }, { name: "alt_text", selector: { text: {} } }, { name: "theme", selector: { theme: {} } }, { diff --git a/src/panels/lovelace/editor/config-elements/hui-picture-glance-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-picture-glance-card-editor.ts index 23d56b16859d..8ed4b388db9f 100644 --- a/src/panels/lovelace/editor/config-elements/hui-picture-glance-card-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-picture-glance-card-editor.ts @@ -36,7 +36,10 @@ const cardConfigStruct = assign( const SCHEMA = [ { name: "title", selector: { text: {} } }, { name: "image", selector: { image: {} } }, - { name: "image_entity", selector: { entity: {} } }, // domain: "image" || "person" + { + name: "image_entity", + selector: { entity: { domain: ["image", "person"] } }, + }, { name: "camera_image", selector: { entity: { domain: "camera" } } }, { name: "", From 75c16328fdd69cecfca11e9bb91b63739341c949 Mon Sep 17 00:00:00 2001 From: Quentame Date: Mon, 22 Jul 2024 14:55:58 +0000 Subject: [PATCH 09/11] fix domain type --- src/panels/lovelace/cards/hui-picture-card.ts | 4 +--- src/panels/lovelace/cards/hui-picture-elements-card.ts | 4 +--- src/panels/lovelace/cards/hui-picture-entity-card.ts | 2 +- src/panels/lovelace/cards/hui-picture-glance-card.ts | 4 +--- 4 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/panels/lovelace/cards/hui-picture-card.ts b/src/panels/lovelace/cards/hui-picture-card.ts index 46d1b825629b..8169d2cf0983 100644 --- a/src/panels/lovelace/cards/hui-picture-card.ts +++ b/src/panels/lovelace/cards/hui-picture-card.ts @@ -110,9 +110,7 @@ export class HuiPictureCard extends LitElement implements LovelaceCard { let image: string | undefined = this._config.image; if (this._config.image_entity) { - const domain: string | undefined = computeDomain( - this._config.image_entity - ); + const domain: string = computeDomain(this._config.image_entity); switch (domain) { case "image": image = computeImageUrl(stateObj as ImageEntity); diff --git a/src/panels/lovelace/cards/hui-picture-elements-card.ts b/src/panels/lovelace/cards/hui-picture-elements-card.ts index aa5d6a3bcc29..06267162ce4d 100644 --- a/src/panels/lovelace/cards/hui-picture-elements-card.ts +++ b/src/panels/lovelace/cards/hui-picture-elements-card.ts @@ -122,9 +122,7 @@ class HuiPictureElementsCard extends LitElement implements LovelaceCard { if (this._config.image_entity) { const stateObj: ImageEntity | PersonEntity | undefined = this.hass.states[this._config.image_entity]; - const domain: string | undefined = computeDomain( - this._config.image_entity - ); + const domain: string = computeDomain(this._config.image_entity); switch (domain) { case "image": image = computeImageUrl(stateObj as ImageEntity); diff --git a/src/panels/lovelace/cards/hui-picture-entity-card.ts b/src/panels/lovelace/cards/hui-picture-entity-card.ts index 7737322e85d7..aa3cc91b6531 100644 --- a/src/panels/lovelace/cards/hui-picture-entity-card.ts +++ b/src/panels/lovelace/cards/hui-picture-entity-card.ts @@ -138,7 +138,7 @@ class HuiPictureEntityCard extends LitElement implements LovelaceCard { footer = html``; } - const domain = computeDomain(this._config.entity); + const domain: string = computeDomain(this._config.entity); let image: string | undefined = this._config.image; switch (domain) { case "image": diff --git a/src/panels/lovelace/cards/hui-picture-glance-card.ts b/src/panels/lovelace/cards/hui-picture-glance-card.ts index ce91aa86a9f2..389356a84a24 100644 --- a/src/panels/lovelace/cards/hui-picture-glance-card.ts +++ b/src/panels/lovelace/cards/hui-picture-glance-card.ts @@ -188,9 +188,7 @@ class HuiPictureGlanceCard extends LitElement implements LovelaceCard { if (this._config.image_entity) { const stateObj: ImageEntity | PersonEntity | undefined = this.hass.states[this._config.image_entity]; - const domain: string | undefined = computeDomain( - this._config.image_entity - ); + const domain: string = computeDomain(this._config.image_entity); switch (domain) { case "image": image = computeImageUrl(stateObj as ImageEntity); From 349b116e2a7ed9cebfa9f17da01e159b4efb9f16 Mon Sep 17 00:00:00 2001 From: Quentame Date: Mon, 22 Jul 2024 15:10:29 +0000 Subject: [PATCH 10/11] gracefully use the default config.image if the person don't have an image --- src/panels/lovelace/cards/hui-picture-card.ts | 2 +- src/panels/lovelace/cards/hui-picture-elements-card.ts | 2 +- src/panels/lovelace/cards/hui-picture-entity-card.ts | 2 +- src/panels/lovelace/cards/hui-picture-glance-card.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/panels/lovelace/cards/hui-picture-card.ts b/src/panels/lovelace/cards/hui-picture-card.ts index 8169d2cf0983..faead7f3e7c3 100644 --- a/src/panels/lovelace/cards/hui-picture-card.ts +++ b/src/panels/lovelace/cards/hui-picture-card.ts @@ -115,7 +115,7 @@ export class HuiPictureCard extends LitElement implements LovelaceCard { case "image": image = computeImageUrl(stateObj as ImageEntity); break; - case "person": + case "person" && (stateObj as PersonEntity).attributes.entity_picture: image = (stateObj as PersonEntity).attributes.entity_picture; break; } diff --git a/src/panels/lovelace/cards/hui-picture-elements-card.ts b/src/panels/lovelace/cards/hui-picture-elements-card.ts index 06267162ce4d..115017c5ba62 100644 --- a/src/panels/lovelace/cards/hui-picture-elements-card.ts +++ b/src/panels/lovelace/cards/hui-picture-elements-card.ts @@ -127,7 +127,7 @@ class HuiPictureElementsCard extends LitElement implements LovelaceCard { case "image": image = computeImageUrl(stateObj as ImageEntity); break; - case "person": + case "person" && (stateObj as PersonEntity).attributes.entity_picture: image = (stateObj as PersonEntity).attributes.entity_picture; break; } diff --git a/src/panels/lovelace/cards/hui-picture-entity-card.ts b/src/panels/lovelace/cards/hui-picture-entity-card.ts index aa3cc91b6531..de976ddb8719 100644 --- a/src/panels/lovelace/cards/hui-picture-entity-card.ts +++ b/src/panels/lovelace/cards/hui-picture-entity-card.ts @@ -144,7 +144,7 @@ class HuiPictureEntityCard extends LitElement implements LovelaceCard { case "image": image = computeImageUrl(stateObj as ImageEntity); break; - case "person": + case "person" && (stateObj as PersonEntity).attributes.entity_picture: image = (stateObj as PersonEntity).attributes.entity_picture; break; } diff --git a/src/panels/lovelace/cards/hui-picture-glance-card.ts b/src/panels/lovelace/cards/hui-picture-glance-card.ts index 389356a84a24..f91a5a513bee 100644 --- a/src/panels/lovelace/cards/hui-picture-glance-card.ts +++ b/src/panels/lovelace/cards/hui-picture-glance-card.ts @@ -193,7 +193,7 @@ class HuiPictureGlanceCard extends LitElement implements LovelaceCard { case "image": image = computeImageUrl(stateObj as ImageEntity); break; - case "person": + case "person" && (stateObj as PersonEntity).attributes.entity_picture: image = (stateObj as PersonEntity).attributes.entity_picture; break; } From 0eb8b775cc11285cd2d0e851785bb4eebdbfe825 Mon Sep 17 00:00:00 2001 From: Quentame Date: Mon, 22 Jul 2024 15:19:20 +0000 Subject: [PATCH 11/11] gracefully use the default config.image if the person don't have an image (that works) --- src/panels/lovelace/cards/hui-picture-card.ts | 6 ++++-- src/panels/lovelace/cards/hui-picture-elements-card.ts | 6 ++++-- src/panels/lovelace/cards/hui-picture-entity-card.ts | 6 ++++-- src/panels/lovelace/cards/hui-picture-glance-card.ts | 6 ++++-- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/panels/lovelace/cards/hui-picture-card.ts b/src/panels/lovelace/cards/hui-picture-card.ts index faead7f3e7c3..f5abf64b5897 100644 --- a/src/panels/lovelace/cards/hui-picture-card.ts +++ b/src/panels/lovelace/cards/hui-picture-card.ts @@ -115,8 +115,10 @@ export class HuiPictureCard extends LitElement implements LovelaceCard { case "image": image = computeImageUrl(stateObj as ImageEntity); break; - case "person" && (stateObj as PersonEntity).attributes.entity_picture: - image = (stateObj as PersonEntity).attributes.entity_picture; + case "person": + if ((stateObj as PersonEntity).attributes.entity_picture) { + image = (stateObj as PersonEntity).attributes.entity_picture; + } break; } } diff --git a/src/panels/lovelace/cards/hui-picture-elements-card.ts b/src/panels/lovelace/cards/hui-picture-elements-card.ts index 115017c5ba62..143a2fde5858 100644 --- a/src/panels/lovelace/cards/hui-picture-elements-card.ts +++ b/src/panels/lovelace/cards/hui-picture-elements-card.ts @@ -127,8 +127,10 @@ class HuiPictureElementsCard extends LitElement implements LovelaceCard { case "image": image = computeImageUrl(stateObj as ImageEntity); break; - case "person" && (stateObj as PersonEntity).attributes.entity_picture: - image = (stateObj as PersonEntity).attributes.entity_picture; + case "person": + if ((stateObj as PersonEntity).attributes.entity_picture) { + image = (stateObj as PersonEntity).attributes.entity_picture; + } break; } } diff --git a/src/panels/lovelace/cards/hui-picture-entity-card.ts b/src/panels/lovelace/cards/hui-picture-entity-card.ts index de976ddb8719..ccc430b24371 100644 --- a/src/panels/lovelace/cards/hui-picture-entity-card.ts +++ b/src/panels/lovelace/cards/hui-picture-entity-card.ts @@ -144,8 +144,10 @@ class HuiPictureEntityCard extends LitElement implements LovelaceCard { case "image": image = computeImageUrl(stateObj as ImageEntity); break; - case "person" && (stateObj as PersonEntity).attributes.entity_picture: - image = (stateObj as PersonEntity).attributes.entity_picture; + case "person": + if ((stateObj as PersonEntity).attributes.entity_picture) { + image = (stateObj as PersonEntity).attributes.entity_picture; + } break; } diff --git a/src/panels/lovelace/cards/hui-picture-glance-card.ts b/src/panels/lovelace/cards/hui-picture-glance-card.ts index f91a5a513bee..d178dd68d3d4 100644 --- a/src/panels/lovelace/cards/hui-picture-glance-card.ts +++ b/src/panels/lovelace/cards/hui-picture-glance-card.ts @@ -193,8 +193,10 @@ class HuiPictureGlanceCard extends LitElement implements LovelaceCard { case "image": image = computeImageUrl(stateObj as ImageEntity); break; - case "person" && (stateObj as PersonEntity).attributes.entity_picture: - image = (stateObj as PersonEntity).attributes.entity_picture; + case "person": + if ((stateObj as PersonEntity).attributes.entity_picture) { + image = (stateObj as PersonEntity).attributes.entity_picture; + } break; } }