diff --git a/src/panels/lovelace/cards/hui-picture-elements-card.ts b/src/panels/lovelace/cards/hui-picture-elements-card.ts index 55bc376386..dd01e10294 100644 --- a/src/panels/lovelace/cards/hui-picture-elements-card.ts +++ b/src/panels/lovelace/cards/hui-picture-elements-card.ts @@ -129,6 +129,8 @@ class HuiPictureElementsCard extends LitElement implements LovelaceCard { .cameraView=${this._config.camera_view} .entity=${this._config.entity} .aspectRatio=${this._config.aspect_ratio} + .darkModeFilter=${this._config.dark_mode_filter} + .darkModeImage=${this._config.dark_mode_image} > ${this._elements} diff --git a/src/panels/lovelace/cards/types.ts b/src/panels/lovelace/cards/types.ts index da051b44e3..6ecb657ad5 100644 --- a/src/panels/lovelace/cards/types.ts +++ b/src/panels/lovelace/cards/types.ts @@ -218,6 +218,8 @@ export interface PictureElementsCardConfig extends LovelaceCardConfig { entity?: string; elements: LovelaceElementConfig[]; theme?: string; + dark_mode_image?: string; + dark_mode_filter?: string; } export interface PictureEntityCardConfig extends LovelaceCardConfig { diff --git a/src/panels/lovelace/components/hui-image.ts b/src/panels/lovelace/components/hui-image.ts index f9133cc612..7ad57d7f5b 100644 --- a/src/panels/lovelace/components/hui-image.ts +++ b/src/panels/lovelace/components/hui-image.ts @@ -46,6 +46,10 @@ export class HuiImage extends LitElement { @property() public stateFilter?: StateSpecificConfig; + @property() public darkModeImage?: string; + + @property() public darkModeFilter?: string; + @internalProperty() private _loadError?: boolean; @internalProperty() private _cameraImageSrc?: string; @@ -97,6 +101,8 @@ export class HuiImage extends LitElement { imageSrc = this.image; imageFallback = true; } + } else if (this.darkModeImage && this.hass.themes.darkMode) { + imageSrc = this.darkModeImage; } else { imageSrc = this.image; } @@ -108,8 +114,12 @@ export class HuiImage extends LitElement { // Figure out filter to use let filter = this.filter || ""; + if (this.hass.themes.darkMode && this.darkModeFilter) { + filter += this.darkModeFilter; + } + if (this.stateFilter && this.stateFilter[state]) { - filter = this.stateFilter[state]; + filter += this.stateFilter[state]; } if (!filter && this.entity) {