diff --git a/src/components/ha-vacuum-state.js b/src/components/ha-vacuum-state.js index 3cc3377e26..bacd8b8f40 100644 --- a/src/components/ha-vacuum-state.js +++ b/src/components/ha-vacuum-state.js @@ -11,11 +11,11 @@ const STATES_INTERCEPTABLE = { }, docked: { action: 'start_cleaning', - service: 'start_pause' + service: 'start' }, idle: { action: 'start_cleaning', - service: 'start_pause' + service: 'start' }, off: { action: 'turn_on', @@ -27,7 +27,7 @@ const STATES_INTERCEPTABLE = { }, paused: { action: 'resume_cleaning', - service: 'start_pause' + service: 'start' }, }; diff --git a/src/dialogs/more-info/controls/more-info-vacuum.js b/src/dialogs/more-info/controls/more-info-vacuum.js index 9842663354..8a2c897380 100644 --- a/src/dialogs/more-info/controls/more-info-vacuum.js +++ b/src/dialogs/more-info/controls/more-info-vacuum.js @@ -41,9 +41,20 @@ class MoreInfoVacuum extends PolymerElement {

Vacuum cleaner commands:
-
- -
+ + +
@@ -135,12 +146,17 @@ class MoreInfoVacuum extends PolymerElement { return (stateObj.attributes.supported_features & 1024) !== 0; } + supportsStart(stateObj) { + return (stateObj.attributes.supported_features & 8192) !== 0; + } + supportsCommandBar(stateObj) { return (((stateObj.attributes.supported_features & 4) !== 0) | ((stateObj.attributes.supported_features & 8) !== 0) | ((stateObj.attributes.supported_features & 16) !== 0) | ((stateObj.attributes.supported_features & 512) !== 0) - | ((stateObj.attributes.supported_features & 1024) !== 0)); + | ((stateObj.attributes.supported_features & 1024) !== 0) + | ((stateObj.attributes.supported_features & 8192) !== 0)); } /* eslint-enable no-bitwise */ @@ -171,6 +187,18 @@ class MoreInfoVacuum extends PolymerElement { }); } + onPause() { + this.hass.callService('vacuum', 'pause', { + entity_id: this.stateObj.entity_id + }); + } + + onStart() { + this.hass.callService('vacuum', 'start', { + entity_id: this.stateObj.entity_id + }); + } + onLocate() { this.hass.callService('vacuum', 'locate', { entity_id: this.stateObj.entity_id