diff --git a/src/common/const.js b/src/common/const.js index b5624dfc7c..56813fa321 100644 --- a/src/common/const.js +++ b/src/common/const.js @@ -15,6 +15,7 @@ export const DOMAINS_WITH_CARD = [ 'input_select', 'input_number', 'input_text', + 'lock', 'media_player', 'scene', 'script', diff --git a/src/panels/lovelace/components/hui-entities-toggle.js b/src/panels/lovelace/components/hui-entities-toggle.js index e291f0d72a..e87c679af1 100644 --- a/src/panels/lovelace/components/hui-entities-toggle.js +++ b/src/panels/lovelace/components/hui-entities-toggle.js @@ -6,6 +6,8 @@ import canToggleState from '../../../common/entity/can_toggle_state.js'; import turnOnOffEntities from '../common/entity/turn-on-off-entities.js'; import { STATES_OFF } from '../../../common/const.js'; +const EXCLUDED_DOMAINS = ['cover', 'lock']; + class HuiEntitiesToggle extends PolymerElement { static get template() { return html` @@ -40,7 +42,7 @@ class HuiEntitiesToggle extends PolymerElement { _computeToggleEntities(hass, entityIds) { return entityIds.filter(entityId => (entityId in hass.states ? - canToggleState(hass, hass.states[entityId]) : false)); + !EXCLUDED_DOMAINS.includes(entityId.split('.', 1)[0]) && canToggleState(hass, hass.states[entityId]) : false)); } _computeIsChecked(hass, entityIds) { diff --git a/src/state-summary/state-card-content.js b/src/state-summary/state-card-content.js index 93a78b90f5..9a202241ac 100644 --- a/src/state-summary/state-card-content.js +++ b/src/state-summary/state-card-content.js @@ -7,6 +7,7 @@ import './state-card-display.js'; import './state-card-input_number.js'; import './state-card-input_select.js'; import './state-card-input_text.js'; +import './state-card-lock.js'; import './state-card-media_player.js'; import './state-card-scene.js'; import './state-card-script.js'; diff --git a/src/state-summary/state-card-lock.js b/src/state-summary/state-card-lock.js new file mode 100644 index 0000000000..138fcab64e --- /dev/null +++ b/src/state-summary/state-card-lock.js @@ -0,0 +1,77 @@ +import '@polymer/iron-flex-layout/iron-flex-layout-classes.js'; +import '@polymer/paper-button/paper-button.js'; +import { html } from '@polymer/polymer/lib/utils/html-tag.js'; +import { PolymerElement } from '@polymer/polymer/polymer-element.js'; + +import '../components/entity/state-info.js'; + +import LocalizeMixin from '../mixins/localize-mixin.js'; + +/* + * @appliesMixin LocalizeMixin + */ +class StateCardLock extends LocalizeMixin(PolymerElement) { + static get template() { + return html` + + + +