Make sure slider type updates with changes to temperatures (#3374)

This commit is contained in:
Joakim Plate 2019-07-17 20:32:23 +02:00 committed by Paulus Schoutsen
parent 42c3e3e46c
commit 84df2bd531

View File

@ -204,10 +204,13 @@ export class HuiThermostatCard extends LitElement implements LovelaceCard {
!changedProps.has("_jQuery") && !changedProps.has("_jQuery") &&
(!oldHass || oldHass.states[this._config.entity] !== stateObj) (!oldHass || oldHass.states[this._config.entity] !== stateObj)
) { ) {
const [sliderValue, uiValue] = this._genSliderValue(stateObj); const [sliderValue, uiValue, _sliderType] = this._genSliderValue(
stateObj
);
this._jQuery("#thermostat", this.shadowRoot).roundSlider({ this._jQuery("#thermostat", this.shadowRoot).roundSlider({
value: sliderValue, value: sliderValue,
sliderType: _sliderType,
}); });
this._updateSetTemp(uiValue); this._updateSetTemp(uiValue);
} }
@ -250,13 +253,7 @@ export class HuiThermostatCard extends LitElement implements LovelaceCard {
this._roundSliderStyle = loaded.roundSliderStyle; this._roundSliderStyle = loaded.roundSliderStyle;
this._jQuery = loaded.jQuery; this._jQuery = loaded.jQuery;
const _sliderType = const [sliderValue, uiValue, _sliderType] = this._genSliderValue(stateObj);
stateObj.attributes.target_temp_low &&
stateObj.attributes.target_temp_high
? "range"
: "min-range";
const [sliderValue, uiValue] = this._genSliderValue(stateObj);
this._jQuery("#thermostat", this.shadowRoot).roundSlider({ this._jQuery("#thermostat", this.shadowRoot).roundSlider({
...thermostatConfig, ...thermostatConfig,
@ -272,7 +269,10 @@ export class HuiThermostatCard extends LitElement implements LovelaceCard {
this._updateSetTemp(uiValue); this._updateSetTemp(uiValue);
} }
private _genSliderValue(stateObj: ClimateEntity): [string | number, string] { private _genSliderValue(
stateObj: ClimateEntity
): [string | number, string, string] {
let sliderType: string;
let sliderValue: string | number; let sliderValue: string | number;
let uiValue: string; let uiValue: string;
@ -280,6 +280,7 @@ export class HuiThermostatCard extends LitElement implements LovelaceCard {
stateObj.attributes.target_temp_low && stateObj.attributes.target_temp_low &&
stateObj.attributes.target_temp_high stateObj.attributes.target_temp_high
) { ) {
sliderType = "range";
sliderValue = `${stateObj.attributes.target_temp_low}, ${ sliderValue = `${stateObj.attributes.target_temp_low}, ${
stateObj.attributes.target_temp_high stateObj.attributes.target_temp_high
}`; }`;
@ -291,6 +292,7 @@ export class HuiThermostatCard extends LitElement implements LovelaceCard {
false false
); );
} else { } else {
sliderType = "min-range";
sliderValue = stateObj.attributes.temperature; sliderValue = stateObj.attributes.temperature;
uiValue = uiValue =
stateObj.attributes.temperature !== null stateObj.attributes.temperature !== null
@ -298,7 +300,7 @@ export class HuiThermostatCard extends LitElement implements LovelaceCard {
: ""; : "";
} }
return [sliderValue, uiValue]; return [sliderValue, uiValue, sliderType];
} }
private _updateSetTemp(value: string): void { private _updateSetTemp(value: string): void {