Handle unknown states

This commit is contained in:
Denis Shulyaka 2020-06-13 03:33:10 +03:00
parent e9ffdeff19
commit 4033131f2e

View File

@ -18,7 +18,7 @@ import { computeStateName } from "../../../common/entity/compute_state_name";
import { computeRTLDirection } from "../../../common/util/compute_rtl"; import { computeRTLDirection } from "../../../common/util/compute_rtl";
import "../../../components/ha-card"; import "../../../components/ha-card";
import { HumidifierEntity } from "../../../data/humidifier"; import { HumidifierEntity } from "../../../data/humidifier";
import { UNAVAILABLE } from "../../../data/entity"; import { UNAVAILABLE_STATES } from "../../../data/entity";
import { HomeAssistant } from "../../../types"; import { HomeAssistant } from "../../../types";
import { findEntities } from "../common/find-entites"; import { findEntities } from "../common/find-entites";
import { hasConfigOrEntityChanged } from "../common/has-changed"; import { hasConfigOrEntityChanged } from "../common/has-changed";
@ -96,20 +96,19 @@ export class HuiHumidifierCard extends LitElement implements LovelaceCard {
const rtlDirection = computeRTLDirection(this.hass); const rtlDirection = computeRTLDirection(this.hass);
const slider = const slider = UNAVAILABLE_STATES.includes(stateObj.state)
stateObj.state === UNAVAILABLE ? html` <round-slider disabled="true"></round-slider> `
? html` <round-slider disabled="true"></round-slider> ` : html`
: html` <round-slider
<round-slider .value=${targetHumidity}
.value=${targetHumidity} .min=${stateObj.attributes.min_humidity}
.min=${stateObj.attributes.min_humidity} .max=${stateObj.attributes.max_humidity}
.max=${stateObj.attributes.max_humidity} .rtl=${rtlDirection === "rtl"}
.rtl=${rtlDirection === "rtl"} .step="1"
.step="1" @value-changing=${this._dragEvent}
@value-changing=${this._dragEvent} @value-changed=${this._setHumidity}
@value-changed=${this._setHumidity} ></round-slider>
></round-slider> `;
`;
const setValues = svg` const setValues = svg`
<svg viewBox="0 0 40 20"> <svg viewBox="0 0 40 20">
@ -122,17 +121,17 @@ export class HuiHumidifierCard extends LitElement implements LovelaceCard {
class="set-value" class="set-value"
> >
${ ${
stateObj.state === UNAVAILABLE UNAVAILABLE_STATES.includes(stateObj.state) ||
? this.hass.localize("state.default.unavailable") this._setHum === undefined ||
: this._setHum === undefined || this._setHum === null this._setHum === null
? "" ? ""
: svg` : svg`
${this._setHum.toFixed()} ${this._setHum.toFixed()}
<tspan dx="-3" dy="-6.5" style="font-size: 4px;">
%
</tspan>
` `
} }
<tspan dx="-3" dy="-6.5" style="font-size: 4px;">
%
</tspan>
</text> </text>
</svg> </svg>
<svg id="set-values"> <svg id="set-values">
@ -144,7 +143,8 @@ export class HuiHumidifierCard extends LitElement implements LovelaceCard {
> >
${this.hass!.localize(`state.default.${stateObj.state}`)} ${this.hass!.localize(`state.default.${stateObj.state}`)}
${ ${
stateObj.attributes.mode stateObj.attributes.mode &&
!UNAVAILABLE_STATES.includes(stateObj.state)
? html` ? html`
- -
${this.hass!.localize( ${this.hass!.localize(
@ -249,7 +249,7 @@ export class HuiHumidifierCard extends LitElement implements LovelaceCard {
} }
private _getSetHum(stateObj: HassEntity): undefined | number { private _getSetHum(stateObj: HassEntity): undefined | number {
if (stateObj.state === UNAVAILABLE) { if (UNAVAILABLE_STATES.includes(stateObj.state)) {
return undefined; return undefined;
} }