diff --git a/src/panels/lovelace/common/has-changed.ts b/src/panels/lovelace/common/has-changed.ts index 44f35709a4..d4b3320410 100644 --- a/src/panels/lovelace/common/has-changed.ts +++ b/src/panels/lovelace/common/has-changed.ts @@ -13,6 +13,7 @@ function hasConfigChanged(element: any, changedProps: PropertyValues): boolean { } if ( + oldHass.connected !== element.hass!.connected || oldHass.themes !== element.hass!.themes || oldHass.language !== element.hass!.language || oldHass.localize !== element.hass.localize || diff --git a/src/panels/lovelace/components/hui-image.ts b/src/panels/lovelace/components/hui-image.ts index a2437eda1e..115e118f83 100644 --- a/src/panels/lovelace/components/hui-image.ts +++ b/src/panels/lovelace/components/hui-image.ts @@ -159,7 +159,19 @@ export class HuiImage extends LitElement { } protected updated(changedProps: PropertyValues): void { - if (changedProps.has("cameraImage") && this.cameraView !== "live") { + if (changedProps.has("hass")) { + const oldHass = changedProps.get("hass") as HomeAssistant | undefined; + if (!oldHass || oldHass.connected !== this.hass!.connected) { + if (this.hass!.connected && this.cameraView !== "live") { + this._updateCameraImageSrc(); + this._startUpdateCameraInterval(); + } else if (!this.hass!.connected) { + this._stopUpdateCameraInterval(); + this._cameraImageSrc = undefined; + this._loadError = true; + } + } + } else if (changedProps.has("cameraImage") && this.cameraView !== "live") { this._updateCameraImageSrc(); this._startUpdateCameraInterval(); }