diff --git a/src/panels/lovelace/tile-features/hui-target-temperature-tile-feature.ts b/src/panels/lovelace/tile-features/hui-target-temperature-tile-feature.ts index 34fbf1ac83..3832dbb91a 100644 --- a/src/panels/lovelace/tile-features/hui-target-temperature-tile-feature.ts +++ b/src/panels/lovelace/tile-features/hui-target-temperature-tile-feature.ts @@ -129,6 +129,33 @@ class HuiTargetTemperatureTileFeature }); } + private _supportsTarget() { + const domain = computeStateDomain(this.stateObj!); + return ( + (domain === "climate" && + supportsFeature( + this.stateObj!, + ClimateEntityFeature.TARGET_TEMPERATURE + )) || + (domain === "water_heater" && + supportsFeature( + this.stateObj!, + WaterHeaterEntityFeature.TARGET_TEMPERATURE + )) + ); + } + + private _supportsTargetRange() { + const domain = computeStateDomain(this.stateObj!); + return ( + domain === "climate" && + supportsFeature( + this.stateObj!, + ClimateEntityFeature.TARGET_TEMPERATURE_RANGE + ) + ); + } + protected render() { if ( !this._config || @@ -147,94 +174,104 @@ class HuiTargetTemperatureTileFeature minimumFractionDigits: digits, }; - const domain = computeStateDomain(this.stateObj!); - if ( - (domain === "climate" && - supportsFeature( - this.stateObj, - ClimateEntityFeature.TARGET_TEMPERATURE - )) || - (domain === "water_heater" && - supportsFeature( - this.stateObj, - WaterHeaterEntityFeature.TARGET_TEMPERATURE - )) + this._supportsTarget() && + this._targetTemperature.value != null && + this.stateObj.state !== UNAVAILABLE ) { return html` - - - - - `; + + + + + `; } if ( - domain === "climate" && - supportsFeature( - this.stateObj, - ClimateEntityFeature.TARGET_TEMPERATURE_RANGE - ) + this._supportsTargetRange() && + this._targetTemperature.low != null && + this._targetTemperature.high != null && + this.stateObj.state !== UNAVAILABLE ) { return html` - - - - - - - `; + + + + + + + `; } - return nothing; + return html` + + + + + `; } static get styles() {