diff --git a/src/panels/lovelace/entity-rows/hui-lock-entity-row.ts b/src/panels/lovelace/entity-rows/hui-lock-entity-row.ts index 6c757e22d7..128a80808a 100644 --- a/src/panels/lovelace/entity-rows/hui-lock-entity-row.ts +++ b/src/panels/lovelace/entity-rows/hui-lock-entity-row.ts @@ -14,6 +14,7 @@ import { hasConfigOrEntityChanged } from "../common/has-changed"; import "../components/hui-generic-entity-row"; import { createEntityNotFoundWarning } from "../components/hui-warning"; import { EntityConfig, LovelaceRow } from "./types"; +import { callProtectedLockService } from "../../../data/lock"; @customElement("hui-lock-entity-row") class HuiLockEntityRow extends LitElement implements LovelaceRow { @@ -75,10 +76,11 @@ class HuiLockEntityRow extends LitElement implements LovelaceRow { private _callService(ev): void { ev.stopPropagation(); const stateObj = this.hass!.states[this._config!.entity]; - this.hass!.callService( - "lock", - stateObj.state === "locked" ? "unlock" : "lock", - { entity_id: stateObj.entity_id } + callProtectedLockService( + this, + this.hass!, + stateObj, + stateObj.state === "locked" ? "unlock" : "lock" ); } } diff --git a/src/state-summary/state-card-lock.ts b/src/state-summary/state-card-lock.ts index c35c4e3007..117a7c992b 100644 --- a/src/state-summary/state-card-lock.ts +++ b/src/state-summary/state-card-lock.ts @@ -11,7 +11,7 @@ import { import { customElement, property } from "lit/decorators"; import { supportsFeature } from "../common/entity/supports-feature"; import "../components/entity/state-info"; -import { LockEntityFeature } from "../data/lock"; +import { callProtectedLockService, LockEntityFeature } from "../data/lock"; import { HomeAssistant } from "../types"; import { haStyle } from "../resources/styles"; @@ -56,10 +56,10 @@ class StateCardLock extends LitElement { private async _callService(ev) { ev.stopPropagation(); const service = ev.target.dataset.service; - const data = { - entity_id: this.stateObj.entity_id, - }; - await this.hass.callService("lock", service, data); + if (!this.hass || !this.stateObj) { + return; + } + await callProtectedLockService(this, this.hass, this.stateObj, service); } static get styles(): CSSResultGroup {