-
Target Temperature
+
Target Temperature
+
+
@@ -84,7 +116,7 @@
- [[item]]
+ [[item]]
@@ -208,6 +240,19 @@ Polymer({
}.bind(this), 500);
},
+ computeTargetTempHidden: function (stateObj) {
+ return stateObj.attributes.operation_mode === 'off';
+ },
+
+ computeHideTempRangeSlider: function (stateObj) {
+ return stateObj.attributes.operation_mode !== 'auto';
+ },
+
+ computeHideTempSlider: function (stateObj) {
+ return stateObj.attributes.operation_mode === 'auto' ||
+ stateObj.attributes.operation_mode === 'off';
+ },
+
computeClassNames: function (stateObj) {
return 'more-info-climate ' + window.hassUtil.attributeClassNames(
stateObj,
@@ -224,6 +269,20 @@ Polymer({
this.callServiceHelper('set_temperature', { temperature: temperature });
},
+ targetTemperatureRangeSliderChanged: function (ev) {
+ var targetTempLow = ev.currentTarget.valueMin;
+ var targetTempHigh = ev.currentTarget.valueMax;
+
+ if (targetTempLow === this.stateObj.attributes.target_temp_low &&
+ targetTempHigh === this.stateObj.attributes.target_temp_high) return;
+ this.callServiceHelper(
+ 'set_temperature', {
+ target_temp_low: targetTempLow,
+ target_temp_high: targetTempHigh,
+ }
+ );
+ },
+
targetHumiditySliderChanged: function (ev) {
var humidity = ev.target.value;
diff --git a/src/state-summary/state-card-climate.html b/src/state-summary/state-card-climate.html
index 04337423d4..946f4f5a7f 100644
--- a/src/state-summary/state-card-climate.html
+++ b/src/state-summary/state-card-climate.html
@@ -25,12 +25,24 @@
.current {
color: var(--secondary-text-color);
}
+
+ .operation-mode {
+ font-weight: bold;
+ text-transform: capitalize;
+ }
-
[[computeTargetTemperature(stateObj)]]
+
+
+ [[stateObj.attributes.operation_mode]]
+
+
+ [[computeTargetTemperature(stateObj)]]
+
+
Currently:
@@ -52,14 +64,27 @@ Polymer({
type: Boolean,
value: false,
},
-
stateObj: {
type: Object,
},
},
computeTargetTemperature: function (stateObj) {
- return stateObj.attributes.temperature + ' ' + stateObj.attributes.unit_of_measurement;
+ var stateTemp = '';
+
+ if (stateObj.attributes.operation_mode === 'off') {
+ stateTemp = '';
+ } else if (stateObj.attributes.operation_mode === 'auto') {
+ stateTemp = stateObj.attributes.target_temp_low + ' - ' +
+ stateObj.attributes.target_temp_high + ' ' +
+ stateObj.attributes.unit_of_measurement;
+ } else {
+ stateTemp = stateObj.attributes.temperature + ' ' +
+ stateObj.attributes.unit_of_measurement;
+ }
+
+ return stateTemp;
},
+
});