From 6038b617096bae9d5276a1450142a26316970c0e Mon Sep 17 00:00:00 2001 From: FutureTense Date: Wed, 2 Dec 2020 10:19:28 -0500 Subject: [PATCH] removed "button call" and opt to wait for HA MQTT performance boost to update sensor faster. make a Schlage tweak --- custom_components/lock-manager/const.py | 2 +- .../lock-manager/lock_manager.yaml | 15 +++--- .../lock-manager/lock_manager_common.yaml | 53 +------------------ custom_components/lock-manager/sensor.py | 8 +-- 4 files changed, 15 insertions(+), 63 deletions(-) diff --git a/custom_components/lock-manager/const.py b/custom_components/lock-manager/const.py index 53988e3..97b20cf 100644 --- a/custom_components/lock-manager/const.py +++ b/custom_components/lock-manager/const.py @@ -1,5 +1,5 @@ DOMAIN = "lock-manager" -VERSION = "0.0.42" +VERSION = "0.0.43" ISSUE_URL = "https://github.com/FutureTense/lock-manager" PLATFORM = "sensor" ZWAVE_NETWORK = "zwave_network" diff --git a/custom_components/lock-manager/lock_manager.yaml b/custom_components/lock-manager/lock_manager.yaml index c0cfb28..1e2607e 100644 --- a/custom_components/lock-manager/lock_manager.yaml +++ b/custom_components/lock-manager/lock_manager.yaml @@ -188,8 +188,8 @@ automation: - platform: state entity_id: "binary_sensor.pin_synched_LOCKNAME_TEMPLATENUM" to: 'off' - - platform: time_pattern - seconds: "/5" + - platform: state + entity_id: "sensor.LOCKNAME_code_slot_TEMPLATENUM" condition: - condition: state entity_id: "binary_sensor.allow_automation" @@ -252,16 +252,17 @@ automation: {{ USINGOZW }} # this comment preserves formating sequence: + # a fake call to clear a non existent slot seems to fix a non clearing call on Schlage + - service: ozw.clear_usercode + data_template: + entity_id: LOCKENTITYNAME + code_slot: >- + {{ 999 }} - service: ozw.clear_usercode data_template: entity_id: LOCKENTITYNAME code_slot: >- {{ TEMPLATENUM }} - # #Debug for flaky clear - # - service: persistent_notification.create - # data_template: - # title: Slot TEMPLATENUM - # message: 'ozw clear_usercode called' - conditions: > {{ USINGOZW == False }} # this comment preserves formating diff --git a/custom_components/lock-manager/lock_manager_common.yaml b/custom_components/lock-manager/lock_manager_common.yaml index 0696bd8..d7bffef 100644 --- a/custom_components/lock-manager/lock_manager_common.yaml +++ b/custom_components/lock-manager/lock_manager_common.yaml @@ -400,58 +400,7 @@ automation: title: CASE_LOCK_NAME message: "Opened" - # - alias: CASE_LOCK_NAME Add Code - # trigger: - # entity_id: ACTIVELOCKHEADER - # platform: state - # to: "on" - # condition: - # - condition: state - # entity_id: "binary_sensor.allow_automation" - # state: "on" - # action: - # - choose: - # - conditions: > - # {{ USINGOZW }} - # # this comment preserves formating - # sequence: - # - service: ozw.set_usercode - # data_template: - # entity_id: LOCKENTITYNAME - # code_slot: >- - # {% set object_id = trigger.to_state.object_id %} - # {% set index = object_id.rfind('_') + 1 %} - # {% set code_slot = object_id[index:] %} - # {{ code_slot }} - # usercode: >- - # {% set object_id = trigger.to_state.object_id %} - # {% set index = object_id.rfind('_') + 1 %} - # {% set code_slot = object_id[index:] %} - # {% set codetext = 'LOCKNAME_pin_' + code_slot | string %} - # {% set code = states['input_text'][codetext].state %} - # {{ code | string }} - # - conditions: > - # {{ USINGOZW == False }} - # # this comment preserves formating - # sequence: - # - service: lock.set_usercode - # data_template: - # node_id: >- - # {{ state_attr('LOCKENTITYNAME','node_id') }} - # code_slot: >- - # {% set object_id = trigger.to_state.object_id %} - # {% set index = object_id.rfind('_') + 1 %} - # {% set code_slot = object_id[index:] %} - # {{ code_slot }} - # usercode: >- - # {% set object_id = trigger.to_state.object_id %} - # {% set index = object_id.rfind('_') + 1 %} - # {% set code_slot = object_id[index:] %} - # {% set codetext = 'LOCKNAME_pin_' + code_slot | string %} - # {% set code = states['input_text'][codetext].state %} - # {{ code | string }} - - - alias: CASE_LOCK_NAME Update Code + - alias: CASE_LOCK_NAME Changed Code trigger: entity_id: INPUTLOCKPINHEADER platform: state diff --git a/custom_components/lock-manager/sensor.py b/custom_components/lock-manager/sensor.py index 2d4ab20..671a7b1 100644 --- a/custom_components/lock-manager/sensor.py +++ b/custom_components/lock-manager/sensor.py @@ -48,7 +48,8 @@ def __init__(self, hass, config): self._lockname = config.get(CONF_LOCK_NAME) self._data = None - self.update = Throttle(timedelta(seconds=60))(self.update) + # sensor refresh interval + self.update = Throttle(timedelta(seconds=1))(self.update) async def update(self): """Get the latest data""" @@ -59,8 +60,9 @@ async def update(self): # data["node_id"] = _get_node_id(self._hass, self._entity_id) data[ATTR_NODE_ID] = self._get_node_id() - servicedata = {"entity_id": self._entity_id} - await self._hass.services.async_call(DOMAIN, SERVICE_REFRESH_CODES, servicedata) + # # make button call + # servicedata = {"entity_id": self._entity_id} + # await self._hass.services.async_call(DOMAIN, SERVICE_REFRESH_CODES, servicedata) # pull the codes for ozw if OZW_DOMAIN in self._hass.data: