Covers - Removed disable buttons (#356)

* Removed disable buttons

Allow commands being send even if cover is open or closed. Important for cover template when using multiple covers or in end positions when cover registered as open/closed but isn't due to tolerance.

* Option to always enable buttons with assume_state

* Option to always enable buttons with assume_state

* Fix errors

* Update ha-cover-controls.html

* Update ha-cover-tilt-controls.html

* Added Functions

I couldn't test the ones for the tilt covers, but they should be fine.

* Update cover-model.html

* Compute button disable in component

* Minor fixes
This commit is contained in:
Marc 2017-07-29 19:23:44 +02:00 committed by Paulus Schoutsen
parent 1aa387a72f
commit 8787304ed4
2 changed files with 21 additions and 14 deletions

View File

@ -17,12 +17,12 @@
<div class='state'> <div class='state'>
<paper-icon-button icon="mdi:arrow-up" on-tap='onOpenTap' <paper-icon-button icon="mdi:arrow-up" on-tap='onOpenTap'
invisible$='[[!entityObj.supportsOpen]]' invisible$='[[!entityObj.supportsOpen]]'
disabled='[[entityObj.isFullyOpen]]'></paper-icon-button> disabled='[[computeOpenDisabled(stateObj, entityObj)]]'></paper-icon-button>
<paper-icon-button icon="mdi:stop" on-tap='onStopTap' <paper-icon-button icon="mdi:stop" on-tap='onStopTap'
invisible$='[[!entityObj.supportsStop]]'></paper-icon-button> invisible$='[[!entityObj.supportsStop]]'></paper-icon-button>
<paper-icon-button icon="mdi:arrow-down" on-tap='onCloseTap' <paper-icon-button icon="mdi:arrow-down" on-tap='onCloseTap'
invisible$='[[!entityObj.supportsClose]]' invisible$='[[!entityObj.supportsClose]]'
disabled='[[entityObj.isFullyClosed]]'></paper-icon-button> disabled='[[computeClosedDisabled(stateObj, entityObj)]]'></paper-icon-button>
</div> </div>
</template> </template>
</dom-module> </dom-module>
@ -45,6 +45,14 @@ Polymer({
computeEntityObj: function (hass, stateObj) { computeEntityObj: function (hass, stateObj) {
return new window.CoverEntity(hass, stateObj); return new window.CoverEntity(hass, stateObj);
}, },
computeOpenDisabled: function (stateObj, entityObj) {
var assumedState = stateObj.attributes.assumed_state === true;
return entityObj.isFullyOpen && !assumedState;
},
computeClosedDisabled: function (stateObj, entityObj) {
var assumedState = (stateObj.attributes.assumed_state === true);
return entityObj.isFullyClosed && !assumedState;
},
onOpenTap: function (ev) { onOpenTap: function (ev) {
ev.stopPropagation(); ev.stopPropagation();
this.entityObj.openCover(); this.entityObj.openCover();

View File

@ -13,7 +13,6 @@
:host { :host {
white-space: nowrap; white-space: nowrap;
} }
[invisible] { [invisible] {
visibility: hidden !important; visibility: hidden !important;
} }
@ -21,51 +20,51 @@
<paper-icon-button icon="mdi:arrow-top-right" <paper-icon-button icon="mdi:arrow-top-right"
on-tap='onOpenTiltTap' title='Open tilt' on-tap='onOpenTiltTap' title='Open tilt'
invisible$='[[!entityObj.supportsOpenTilt]]' invisible$='[[!entityObj.supportsOpenTilt]]'
disabled='[[entityObj.isFullyOpenTilt]]'></paper-icon-button> disabled='[[computeOpenDisabled(stateObj, entityObj)]]'></paper-icon-button>
<paper-icon-button icon="mdi:stop" on-tap='onStopTiltTap' <paper-icon-button icon="mdi:stop" on-tap='onStopTiltTap'
invisible$='[[!entityObj.supportsStopTilt]]' invisible$='[[!entityObj.supportsStopTilt]]'
title='Stop tilt'></paper-icon-button> title='Stop tilt'></paper-icon-button>
<paper-icon-button icon="mdi:arrow-bottom-left" <paper-icon-button icon="mdi:arrow-bottom-left"
on-tap='onCloseTiltTap' title='Close tilt' on-tap='onCloseTiltTap' title='Close tilt'
invisible$='[[!entityObj.supportsCloseTilt]]' invisible$='[[!entityObj.supportsCloseTilt]]'
disabled='[[entityObj.isFullyClosedTilt]]'></paper-icon-button> disabled='[[computeClosedDisabled(stateObj, entityObj)]]'></paper-icon-button>
</template> </template>
</dom-module> </dom-module>
<script> <script>
Polymer({ Polymer({
is: 'ha-cover-tilt-controls', is: 'ha-cover-tilt-controls',
properties: { properties: {
hass: { hass: {
type: Object, type: Object,
}, },
stateObj: { stateObj: {
type: Object, type: Object,
}, },
entityObj: { entityObj: {
type: Object, type: Object,
computed: 'computeEntityObj(hass, stateObj)', computed: 'computeEntityObj(hass, stateObj)',
}, },
}, },
computeEntityObj: function (hass, stateObj) { computeEntityObj: function (hass, stateObj) {
var entity = new window.CoverEntity(hass, stateObj); return new window.CoverEntity(hass, stateObj);
return entity; },
computeOpenDisabled: function (stateObj, entityObj) {
var assumedState = stateObj.attributes.assumed_state === true;
return entityObj.isFullyOpenTilt && !assumedState;
},
computeClosedDisabled: function (stateObj, entityObj) {
var assumedState = (stateObj.attributes.assumed_state === true);
return entityObj.isFullyClosedTilt && !assumedState;
}, },
onOpenTiltTap: function (ev) { onOpenTiltTap: function (ev) {
ev.stopPropagation(); ev.stopPropagation();
this.entityObj.openCoverTilt(); this.entityObj.openCoverTilt();
}, },
onCloseTiltTap: function (ev) { onCloseTiltTap: function (ev) {
ev.stopPropagation(); ev.stopPropagation();
this.entityObj.closeCoverTilt(); this.entityObj.closeCoverTilt();
}, },
onStopTiltTap: function (ev) { onStopTiltTap: function (ev) {
ev.stopPropagation(); ev.stopPropagation();
this.entityObj.stopCoverTilt(); this.entityObj.stopCoverTilt();