diff --git a/src/components/entity/ha-entity-toggle.js b/src/components/entity/ha-entity-toggle.js index 65a5cd697f..59ee410b42 100644 --- a/src/components/entity/ha-entity-toggle.js +++ b/src/components/entity/ha-entity-toggle.js @@ -38,11 +38,15 @@ export default new Polymer({ }, updateToggle(stateObj) { - this.toggleChecked = stateObj && stateObj.state !== 'off'; + this.toggleChecked = this._checkToggle(stateObj); }, forceStateChange() { - this.updateToggle(this.stateObj); + const newState = this._checkToggle(this.stateObj); + if (this.toggleChecked === newState) { + this.toggleChecked = !this.toggleChecked; + } + this.toggleChecked = newState; }, turn_on() { @@ -60,4 +64,8 @@ export default new Polymer({ // the resync is not called automatic. serviceActions.callTurnOff(this.stateObj.entityId).then(() => this.forceStateChange()); }, + + _checkToggle(stateObj) { + return stateObj && stateObj.state !== 'off'; + }, });