Core: ZHA: Yale Real Living SYDL220: Battery drains in days, no battery info or lock state

Created on 2 Nov 2019  路  22Comments  路  Source: home-assistant/core

I first posted this on the zha-device-handlers page, but was advised by @dmulcahey to post it here instead.

Operating environment

  • Home Assistant Docker container on Raspbian Buster, Raspberry Pi 3 Model B+
  • Dresden Elektronik RaspBee

Integration:
ZHA

Description of problem:
I have the Yale Real Living SYDL220 (Australian equivalent to YRL220) door lock with the ZBM-1 Zigbee module. It's connected to a Raspberry Pi with a RaspBee hat located about 1m away from the door handle, so signal strength is quite good.

When not using the Lock鈥檚 Zigbee module, the battery lasts for the expected 6-12 months. When connecting the lock to Home Assistant over ZHA, the battery drains within 3-4 days. I am new to Zigbee devices and don鈥檛 quite know where to start with regard to debugging this. My guess is that the lock never goes to sleep, though that鈥檚 really not based on much. There is a separate Zigbee setup in the apartment with Philips Hue lights and a Hue Bridge, though I have no idea if this might cause issues.

I have tried unpairing the lock and re-pairing it multiple times, seemingly to no effect. I have also flashed the RaspBee with the most recent firmware.

Additionally, the lock shows up in Home Assistant with two battery sensors, none of which are working. And the lock does not report its state in a manner that Home Assistant recognises.

I think I have found a cluster attribute that reflects the lock鈥檚 state, though none of the long list of battery attributes seem to return a value other than None.

Any help on this appreciated. I鈥檓 happy to provide any information that might be needed to figure this out. The battery drain especially is a bit painful.

Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
This Raspberry Pi is set up mostly to get the lock working. Below is the config in full. There are some automations to control the lock via MQTT from the main Home Assistant instance in the house in automations.yaml.

configuration.yaml

# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:

# Uncomment this if you are using SSL/TLS, running in Docker container, etc.
# http:
#   base_url: example.duckdns.org:8123

# Text to speech
tts:
  - platform: google_translate

group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml

automations.yaml

- id: '1570870555842'
  alias: MQTT Front Door Lock
  description: ''
  trigger:
  - payload: lock
    platform: mqtt
    topic: home/frontdoor/set
  condition: []
  action:
  - alias: ''
    data:
      entity_id: lock.yale_cap_0c290c6d_1_257
    service: lock.lock
  - data:
      payload: lock
      topic: home/frontdoor/
    service: mqtt.publish
- id: '1570871822536'
  alias: MQTT Front Door Unlock
  description: ''
  trigger:
  - payload: unlock
    platform: mqtt
    topic: home/frontdoor/set
  condition: []
  action:
  - data:
      entity_id: lock.yale_cap_0c290c6d_1_257
    service: lock.unlock
  - data:
      payload: unlock
      topic: home/frontdoor/
    service: mqtt.publish
  - delay: 00:00:35
  - data:
      payload: lock
      topic: home/frontdoor/
    service: mqtt.publish
- id: '1570881385432'
  alias: Front Door Locked State
  description: ''
  trigger:
  - entity_id: lock.yale_cap_0c290c6d_1_257
    platform: state
    to: locked
  condition: []
  action:
  - data:
      payload: lock
      topic: home/frontdoor/
    service: mqtt.publish
- id: '1570881488679'
  alias: Front Door Unlock State
  description: ''
  trigger:
  - entity_id: lock.yale_cap_0c290c6d_1_257
    platform: state
    to: unlocked
  condition: []
  action:
  - data:
      payload: unlock
      topic: home/frontdoor/
    service: mqtt.publish
  - delay: 00:0:35
  - data:
      payload: lock
      topic: home/frontdoor/
    service: mqtt.publish
- id: '1570882480756'
  alias: MQTT Messages
  description: ''
  trigger:
  - platform: mqtt
    topic: home/frontdoor/#
  condition: []
  action:
  - data:
      '[object Object]':
    service: notify.notify

Pairing information:

[0x0000:zdo] ZDO request 0x0036: [60, <Bool.false: 0>]
Device 0xc0b5 (00:0d:6f:00:0c:29:0c:6d) joined the network
[0xc0b5:zdo] ZDO request 0x0013: [0xc0b5, 00:0d:6f:00:0c:29:0c:6d, 128]
[0xc0b5] Requesting 'Node Descriptor'
[0xc0b5] Extending timeout for 0xab request
[0xc0b5] Node Descriptor: <Optional byte1=2 byte2=64 mac_capability_flags=128 manufacturer_code=43690 maximum_buffer_size=82 maximum_incoming_transfer_size=255 server_mask=0 maximum_outgoing_transfer_size=255 descriptor_capability_field=0>
Error calling listener.node_descriptor_updated: FOREIGN KEY constraint failed
[0xc0b5] Discovering endpoints
[0xc0b5] Extending timeout for 0xad request
[0xc0b5] Discovered endpoints: [1, 196]
[0xc0b5:1] Discovering endpoint information
[0xc0b5] Extending timeout for 0xaf request
[0xc0b5:1] Discovered endpoint information: <SimpleDescriptor endpoint=1 profile=260 device_type=10 device_version=0 input_clusters=[0, 9, 10, 257, 64512, 1] output_clusters=[]>
[0xc0b5] Extending timeout for 0xb1 request
[0xc0b5:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=177 command_id=Command.Read_Attributes_rsp>
[0xc0b5:1] Manufacturer: Yale
[0xc0b5:1] Model: Cap
[0xc0b5:196] Discovering endpoint information
[0xc0b5] Extending timeout for 0xb3 request
[0xc0b5:196] Discovered endpoint information: <SimpleDescriptor endpoint=196 profile=49757 device_type=1 device_version=0 input_clusters=[1] output_clusters=[]>
Checking quirks for Yale Cap (00:0d:6f:00:0c:29:0c:6d)
Considering <class 'zigpy.quirks.smartthings.SmartthingsMultiPurposeSensor'>
Fail because endpoint list mismatch: {1} {1, 196}
Considering <class 'zhaquirks.gledopto.soposhgu10.SoposhGU10'>
Fail because endpoint list mismatch: {11, 13} {1, 196}
Considering <class 'zhaquirks.lutron.lzl4bwhl01remote.LutronLZL4BWHL01Remote2'>
Fail because endpoint list mismatch: {1} {1, 196}
Considering <class 'zhaquirks.netvox.z308e3ed.Z308E3ED'>
Fail because endpoint list mismatch: {1} {1, 196}
Considering <class 'zhaquirks.osram.a19twhite.A19TunableWhite'>
Fail because endpoint list mismatch: {3} {1, 196}
Considering <class 'zhaquirks.philips.rwl021.PhilipsRWL021'>
Fail because endpoint list mismatch: {1, 2} {1, 196}
Considering <class 'zhaquirks.smartthings.tag_v4.SmartThingsTagV4'>
Fail because endpoint list mismatch: {1} {1, 196}
Considering <class 'zhaquirks.xbee.xbee3_io.XBee3Sensor'>
Fail because endpoint list mismatch: {232, 230} {1, 196}
Considering <class 'zhaquirks.xbee.xbee_io.XbeeSensor'>
Fail because endpoint list mismatch: {232, 230} {1, 196}
Considering <class 'zhaquirks.xiaomi.mija.smoke.MijiaHoneywellSmokeDetectorSensor'>
Fail because endpoint list mismatch: {1} {1, 196}
device - 0xc0b5:00:0d:6f:00:0c:29:0c:6d entering async_device_initialized - is_new_join: True
device - 0xc0b5:00:0d:6f:00:0c:29:0c:6d has joined the ZHA zigbee network
[0xc0b5](Cap): started configuration
[0xc0b5:ZDO](Cap): channel: 'async_configure' stage succeeded
[0xc0b5] Extending timeout for 0xb5 request
[0xc0b5] Extending timeout for 0xb7 request
[0xc0b5] Extending timeout for 0xb9 request
[0xc0b5:1:0x0000]: bound 'basic' cluster: Status.SUCCESS
[0xc0b5:1:0x0000]: finished channel configuration
[0xc0b5] Extending timeout for 0xbb request
[0xc0b5:1:0x0101]: bound 'door_lock' cluster: Status.SUCCESS
[0xc0b5] Extending timeout for 0xbd request
[0xc0b5:1:0x0001]: bound 'power' cluster: Status.TABLE_FULL
[0xc0b5] Extending timeout for 0xbf request
[0xc0b5:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=187 command_id=Command.Read_Attributes_rsp>
[0xc0b5:1:0x0000]: initializing channel: from_cache: False
[0xc0b5:1:0x0000]: channel: 'async_configure' stage succeeded
[0xc0b5:1:0x0101] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=189 command_id=Command.Default_Response>
[0xc0b5:1:0x0101]: reporting 'lock_state' attr on 'door_lock' cluster: 0/900/1: Result: '[6, <Status.UNSUP_GENERAL_COMMAND: 130>]'
[0xc0b5:1:0x0001] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=191 command_id=Command.Default_Response>
[0xc0b5:1:0x0001]: reporting 'battery_voltage' attr on 'power' cluster: 3600/10800/1: Result: '[6, <Status.UNSUP_GENERAL_COMMAND: 130>]'
[0xc0b5:1:0x0101]: finished channel configuration
[0xc0b5:1:0x0101]: channel: 'async_configure' stage succeeded
[0xc0b5] Extending timeout for 0xc1 request
[0xc0b5:1:0x0001] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=193 command_id=Command.Default_Response>
[0xc0b5:1:0x0001]: reporting 'battery_percentage_remaining' attr on 'power' cluster: 3600/10800/1: Result: '[6, <Status.UNSUP_GENERAL_COMMAND: 130>]'
[0xc0b5:1:0x0001]: finished channel configuration
[0xc0b5:1:0x0001]: channel: 'async_configure' stage succeeded
[0xc0b5](Cap): completed configuration
[0xc0b5](Cap): stored in registry: ZhaDeviceEntry(name='Yale Cap', ieee='00:0d:6f:00:0c:29:0c:6d', last_seen=1572687760.500016)
[0xc0b5](Cap): started initialization
[0xc0b5:ZDO](Cap): entry loaded from storage: ZhaDeviceEntry(name='Yale Cap', ieee='00:0d:6f:00:0c:29:0c:6d', last_seen=1572687760.500016)
[0xc0b5:ZDO](Cap): channel: 'async_initialize' stage succeeded
[0xc0b5] Extending timeout for 0xc3 request
[0xc0b5] Extending timeout for 0xc5 request
[0xc0b5] Extending timeout for 0xc7 request
[0xc0b5:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=195 command_id=Command.Read_Attributes_rsp>
[0xc0b5:1:0x0000]: initializing channel: from_cache: False
[0xc0b5:1:0x0000]: channel: 'async_initialize' stage succeeded
[0xc0b5:1:0x0101] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=197 command_id=Command.Read_Attributes_rsp>
[0xc0b5:1:0x0101]: Attribute report 'Door Lock'[lock_state] = 1
[0xc0b5:1:0x0101]: initializing channel: from_cache: False
[0xc0b5:1:0x0101]: channel: 'async_initialize' stage succeeded
[0xc0b5:1:0x0001] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=199 command_id=Command.Read_Attributes_rsp>
[0xc0b5] Extending timeout for 0xc9 request
[0xc0b5:1:0x0001] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=201 command_id=Command.Read_Attributes_rsp>
[0xc0b5] Extending timeout for 0xcb request
[0xc0b5:1:0x0001] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=203 command_id=Command.Read_Attributes_rsp>
[0xc0b5] Extending timeout for 0xcd request
[0xc0b5:1:0x0001] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=205 command_id=Command.Read_Attributes_rsp>
[0xc0b5:1:0x0001]: initializing channel: from_cache: False
[0xc0b5:1:0x0001]: channel: 'async_initialize' stage succeeded
[0xc0b5](Cap): power source: Battery or Unknown
[0xc0b5](Cap): completed initialization


Under "DoorLock"

zha

All 22 comments

Hrm, it does not support attribute reporting command. Leave it running for 3-4 hours and then filter the log by 0xc0b5 and post it here. I'd like to see how much traffic it generates.

Hi @Adminiuga,

I don鈥檛 see any entries in home-assistant.log containing 0xc0b5. Am I looking at the right log? Or do you think I have to change the logging level?

These are the only messages in home-assistant.log since the pairing event above:

2019-11-02 22:42:36 WARNING (MainThread) [zigpy.util] Error calling listener.node_descriptor_updated: FOREIGN KEY constraint failed
2019-11-03 00:31:47 WARNING (MainThread) [zigpy_deconz.zigbee.application] Error while sending 208 req id frame: 0xd0
2019-11-03 00:32:48 WARNING (MainThread) [zigpy_deconz.zigbee.application] Error while sending 210 req id frame: 0xd0

Uh, the log book might offer a clue. Don鈥檛 know why I didn鈥檛 look there before.

This seemingly goes on like this forever.

B53B6DE7-CDF0-4729-B0D2-F763B99361FB

Got the logging going. Here鈥檚 a snapshot after I restarted Home Assistant with new logging settings about 15 minutes ago:

2019-11-03 08:37:52 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [43, 34, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0xfffd>, 0, <DeconzAddress address_mode=ADDRESS_MODE.NWK_AND_IEEE address=0xc0b5>, 0, 0, 19, b'\x81\xb5\xc0m\x0c)\x0c\x00o\r\x00\x80', 0, 175, 255, 163, 0, 1, 2, -46]
2019-11-03 08:37:52 INFO (MainThread) [zigpy_deconz.zigbee.application] New device joined: 0xc0b5, 00:0d:6f:00:0c:29:0c:6d
2019-11-03 08:37:52 INFO (MainThread) [zigpy.application] Device 0xc0b5 (00:0d:6f:00:0c:29:0c:6d) joined the network
2019-11-03 08:37:52 DEBUG (MainThread) [zigpy.zdo] [0xc0b5:zdo] ZDO request 0x0013: [0xc0b5, 00:0d:6f:00:0c:29:0c:6d, 128]
2019-11-03 08:37:52 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK_AND_IEEE address=0xc0b5>, ep: 0, profile: 0x0000, cluster_id: 0x0013, data: b'81b5c06d0c290c006f0d0080'
2019-11-03 08:37:53 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xc0b5](Cap): started initialization
2019-11-03 08:37:53 DEBUG (MainThread) [homeassistant.components.zha.core.channels] [0xc0b5:ZDO](Cap): entry loaded from storage: ZhaDeviceEntry(name='Yale Cap', ieee='00:0d:6f:00:0c:29:0c:6d', last_seen=1572723323.7313643)
2019-11-03 08:37:53 DEBUG (MainThread) [homeassistant.components.zha.core.channels] [0xc0b5:ZDO](Cap): channel: 'async_initialize' stage succeeded
2019-11-03 08:37:53 DEBUG (MainThread) [homeassistant.components.zha.core.channels] [0xc0b5:1:0x0000]: initializing channel: from_cache: True
2019-11-03 08:37:53 DEBUG (MainThread) [homeassistant.components.zha.core.channels] [0xc0b5:1:0x0000]: channel: 'async_initialize' stage succeeded
2019-11-03 08:37:53 DEBUG (MainThread) [homeassistant.components.zha.core.channels] [0xc0b5:1:0x0101]: initializing channel: from_cache: True
2019-11-03 08:37:53 DEBUG (MainThread) [homeassistant.components.zha.core.channels] [0xc0b5:1:0x0101]: channel: 'async_initialize' stage succeeded
2019-11-03 08:37:53 DEBUG (MainThread) [homeassistant.components.zha.core.channels] [0xc0b5:1:0x0001]: initializing channel: from_cache: True
2019-11-03 08:37:53 DEBUG (MainThread) [homeassistant.components.zha.core.channels] [0xc0b5:1:0x0001]: channel: 'async_initialize' stage succeeded
2019-11-03 08:37:53 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xc0b5](Cap): power source: Battery or Unknown
2019-11-03 08:37:53 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xc0b5](Cap): completed initialization
2019-11-03 08:37:57 DEBUG (MainThread) [zigpy.device] [0xc0b5] Extending timeout for 0x01 request
2019-11-03 08:37:57 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_request (18, 2, 0, <DeconzAddressEndpoint address_mode=2 address=0xc0b5 endpoint=1>, 260, 257, 1, b'\x01\x01\x01', 2, 0)
2019-11-03 08:37:57 DEBUG (MainThread) [zigpy.device] [0xc0b5] Extending timeout for 0x03 request
2019-11-03 08:37:57 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_request (18, 4, 0, <DeconzAddressEndpoint address_mode=2 address=0xc0b5 endpoint=1>, 260, 257, 1, b'\x01\x03\x01', 2, 0)
2019-11-03 08:37:57 DEBUG (MainThread) [zigpy_deconz.api] Request id: 0x02 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.NWK address=0xc0b5 endpoint=1>, status: 0x00
2019-11-03 08:37:57 DEBUG (MainThread) [zigpy_deconz.api] Request id: 0x04 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.NWK address=0xc0b5 endpoint=1>, status: 0x00
2019-11-03 08:37:57 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [35, 34, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK_AND_IEEE address=0xc0b5>, 1, 260, 257, b'\t\x01\x01\x00', 0, 175, 255, 163, 0, 1, 4, -46]
2019-11-03 08:37:57 DEBUG (MainThread) [zigpy.zcl] [0xc0b5:1:0x0101] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=1 command_id=Command.Read_Attributes_rsp>
2019-11-03 08:37:57 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK_AND_IEEE address=0xc0b5>, ep: 1, profile: 0x0104, cluster_id: 0x0101, data: b'09010100'
2019-11-03 08:37:57 DEBUG (MainThread) [homeassistant.components.zha.core.channels] [0xc0b5:1:0x0101]: executed command: unlock_door with args: () with kwargs: {} and result: [<Status.SUCCESS: 0>]
2019-11-03 08:37:58 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [35, 34, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK_AND_IEEE address=0xc0b5>, 1, 260, 257, b'\t\x03\x01\x00', 0, 175, 255, 163, 0, 1, 2, -46]
2019-11-03 08:37:58 DEBUG (MainThread) [zigpy.zcl] [0xc0b5:1:0x0101] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=3 command_id=Command.Read_Attributes_rsp>
2019-11-03 08:37:58 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK_AND_IEEE address=0xc0b5>, ep: 1, profile: 0x0104, cluster_id: 0x0101, data: b'09030100'
2019-11-03 08:37:58 DEBUG (MainThread) [homeassistant.components.zha.core.channels] [0xc0b5:1:0x0101]: executed command: unlock_door with args: () with kwargs: {} and result: [<Status.SUCCESS: 0>]
2019-11-03 08:37:59 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [37, 34, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK_AND_IEEE address=0xc0b5>, 1, 260, 9, b'\t\t\x00\x19\x00\xfc', 0, 175, 255, 163, 0, 1, 4, -46]
2019-11-03 08:37:59 DEBUG (MainThread) [zigpy.zcl] [0xc0b5:1:0x0009] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=9 command_id=Command.Read_Attributes>
2019-11-03 08:37:59 DEBUG (MainThread) [zigpy.zcl] [0xc0b5:1:0x0009] ZCL request 0x0100: [25, 64512]
2019-11-03 08:37:59 DEBUG (MainThread) [zigpy.zcl] [0xc0b5:1:0x0009] No handler for cluster command 0
2019-11-03 08:37:59 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK_AND_IEEE address=0xc0b5>, ep: 1, profile: 0x0104, cluster_id: 0x0009, data: b'0909001900fc'
2019-11-03 08:38:33 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [37, 34, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK_AND_IEEE address=0xc0b5>, 1, 260, 9, b'\t\x0c\x00\x1b\x00\xfc', 0, 175, 255, 163, 0, 1, 2, -46]2019-11-03 08:38:33 DEBUG (MainThread) [zigpy.zcl] [0xc0b5:1:0x0009] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=12 command_id=Command.Read_Attributes>
2019-11-03 08:38:33 DEBUG (MainThread) [zigpy.zcl] [0xc0b5:1:0x0009] ZCL request 0x0100: [27, 64512]
2019-11-03 08:38:33 DEBUG (MainThread) [zigpy.zcl] [0xc0b5:1:0x0009] No handler for cluster command 0
2019-11-03 08:38:33 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK_AND_IEEE address=0xc0b5>, ep: 1, profile: 0x0104, cluster_id: 0x0009, data: b'090c001b00fc'
2019-11-03 08:40:01 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [43, 34, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0xfffd>, 0, <DeconzAddress address_mode=ADDRESS_MODE.NWK_AND_IEEE address=0xc0b5>, 0, 0, 19, b'\x81\xb5\xc0m\x0c)\x0c\x00o\r\x00\x80', 0, 175, 255, 163, 0, 1, 2, -46]
2019-11-03 08:40:01 INFO (MainThread) [zigpy_deconz.zigbee.application] New device joined: 0xc0b5, 00:0d:6f:00:0c:29:0c:6d
2019-11-03 08:40:01 INFO (MainThread) [zigpy.application] Device 0xc0b5 (00:0d:6f:00:0c:29:0c:6d) joined the network
2019-11-03 08:40:01 DEBUG (MainThread) [zigpy.zdo] [0xc0b5:zdo] ZDO request 0x0013: [0xc0b5, 00:0d:6f:00:0c:29:0c:6d, 128]
2019-11-03 08:40:01 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK_AND_IEEE address=0xc0b5>, ep: 0, profile: 0x0000, cluster_id: 0x0013, data: b'81b5c06d0c290c006f0d0080'
2019-11-03 08:42:27 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [43, 34, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0xfffd>, 0, <DeconzAddress address_mode=ADDRESS_MODE.NWK_AND_IEEE address=0xc0b5>, 0, 0, 19, b'\x81\xb5\xc0m\x0c)\x0c\x00o\r\x00\x80', 0, 175, 255, 163, 0, 1, 2, -46]
2019-11-03 08:42:27 INFO (MainThread) [zigpy_deconz.zigbee.application] New device joined: 0xc0b5, 00:0d:6f:00:0c:29:0c:6d
2019-11-03 08:42:27 INFO (MainThread) [zigpy.application] Device 0xc0b5 (00:0d:6f:00:0c:29:0c:6d) joined the network
2019-11-03 08:42:27 DEBUG (MainThread) [zigpy.zdo] [0xc0b5:zdo] ZDO request 0x0013: [0xc0b5, 00:0d:6f:00:0c:29:0c:6d, 128]
2019-11-03 08:42:27 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK_AND_IEEE address=0xc0b5>, ep: 0, profile: 0x0000, cluster_id: 0x0013, data: b'81b5c06d0c290c006f0d0080'
2019-11-03 08:43:16 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [43, 34, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0xfffd>, 0, <DeconzAddress address_mode=ADDRESS_MODE.NWK_AND_IEEE address=0xc0b5>, 0, 0, 19, b'\x81\xb5\xc0m\x0c)\x0c\x00o\r\x00\x80', 0, 175, 255, 163, 0, 1, 2, -46]
2019-11-03 08:43:16 INFO (MainThread) [zigpy_deconz.zigbee.application] New device joined: 0xc0b5, 00:0d:6f:00:0c:29:0c:6d
2019-11-03 08:43:16 INFO (MainThread) [zigpy.application] Device 0xc0b5 (00:0d:6f:00:0c:29:0c:6d) joined the network
2019-11-03 08:43:16 DEBUG (MainThread) [zigpy.zdo] [0xc0b5:zdo] ZDO request 0x0013: [0xc0b5, 00:0d:6f:00:0c:29:0c:6d, 128]
2019-11-03 08:43:16 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK_AND_IEEE address=0xc0b5>, ep: 0, profile: 0x0000, cluster_id: 0x0013, data: b'81b5c06d0c290c006f0d0080'
2019-11-03 08:47:57 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [43, 34, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0xfffd>, 0, <DeconzAddress address_mode=ADDRESS_MODE.NWK_AND_IEEE address=0xc0b5>, 0, 0, 19, b'\x81\xb5\xc0m\x0c)\x0c\x00o\r\x00\x80', 0, 175, 255, 163, 0, 1, 2, -46]
2019-11-03 08:47:57 INFO (MainThread) [zigpy_deconz.zigbee.application] New device joined: 0xc0b5, 00:0d:6f:00:0c:29:0c:6d
2019-11-03 08:47:57 INFO (MainThread) [zigpy.application] Device 0xc0b5 (00:0d:6f:00:0c:29:0c:6d) joined the network
2019-11-03 08:47:57 DEBUG (MainThread) [zigpy.zdo] [0xc0b5:zdo] ZDO request 0x0013: [0xc0b5, 00:0d:6f:00:0c:29:0c:6d, 128]
2019-11-03 08:47:57 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK_AND_IEEE address=0xc0b5>, ep: 0, profile: 0x0000, cluster_id: 0x0013, data: b'81b5c06d0c290c006f0d0080'
2019-11-03 08:49:06 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [43, 34, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0xfffd>, 0, <DeconzAddress address_mode=ADDRESS_MODE.NWK_AND_IEEE address=0xc0b5>, 0, 0, 19, b'\x81\xb5\xc0m\x0c)\x0c\x00o\r\x00\x80', 0, 175, 255, 163, 0, 1, 2, -46]
2019-11-03 08:49:06 INFO (MainThread) [zigpy_deconz.zigbee.application] New device joined: 0xc0b5, 00:0d:6f:00:0c:29:0c:6d
2019-11-03 08:49:06 INFO (MainThread) [zigpy.application] Device 0xc0b5 (00:0d:6f:00:0c:29:0c:6d) joined the network
2019-11-03 08:49:07 DEBUG (MainThread) [zigpy.zdo] [0xc0b5:zdo] ZDO request 0x0013: [0xc0b5, 00:0d:6f:00:0c:29:0c:6d, 128]
2019-11-03 08:49:07 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK_AND_IEEE address=0xc0b5>, ep: 0, profile: 0x0000, cluster_id: 0x0013, data: b'81b5c06d0c290c006f0d0080'

Hey there @dmulcahey, mind taking a look at this issue as its been labeled with a integration (zha) you are listed as a codeowner for? Thanks!

It sends a ZDO broadcast device announcement every few minutes. Those are supposed to be sent when device joins or re-joins the network. I can see how this would drain the battery, but it is not something we control. Do you have any mains powered Zigbee device near the lock? Maybe it just needs a stronger signal? Could be it needs a special initialization or configuration, hard to say. Is there a ST device handler specific to this lock?

The Raspberry Pi with the RaspBee sits about a meter away from the door, so I think the signal should be decent. It's reporting an LQI of 255 and RSSI of -46. Does that sound reasonable? There are a few Philips Hue bulbs in the ceiling overhead, though they are connected to a Hue Hub and not the Raspberry Pi. Any chance the Hue Zigbee network could interfere with the signal?

As for ST device handlers, I haven't been able to find one for SYDL220 specifically, though there are a few for the YRL220. Home Assistant also supports YRL220 I think.

To me, SYDL220 and YRL220 look like the same lock with a different model number for different regions, though I'm not sure if there are other differences under the hood. I would think the Zigbee module in the lock would be the same as in the rest of the world, though I don't know that for sure. I'll take it out of the lock and have a look.

This is the Zigbee module in the lock:

IMG_3300

Could that be a Control4 module? Here is what my module looks like.
15743377806128233262270915594908

Could that be a Control4 module?

That's a good catch. ZB C4 does look like Control4 module.
@presslab-us what endpoints do you have on your lock? I see this one reporting two endpoints:

<SimpleDescriptor endpoint=1 profile=260 device_type=10 device_version=0 input_clusters=[0, 9, 10, 257, 64512, 1] output_clusters=[]>
<SimpleDescriptor endpoint=196 profile=49757 device_type=1 device_version=0 input_clusters=[1] output_clusters=[]>

Mine only has one endpoint. I didn't feel like joining it again, but here's what in my database.

INSERT INTO devices VALUES('00:0d:6f:00:02:4c:56:a3',7702,2);
INSERT INTO endpoints VALUES('00:0d:6f:00:02:4c:56:a3',1,260,10,1);
INSERT INTO clusters VALUES('00:0d:6f:00:02:4c:56:a3',1,0);
INSERT INTO clusters VALUES('00:0d:6f:00:02:4c:56:a3',1,1);
INSERT INTO clusters VALUES('00:0d:6f:00:02:4c:56:a3',1,3);
INSERT INTO clusters VALUES('00:0d:6f:00:02:4c:56:a3',1,9);
INSERT INTO clusters VALUES('00:0d:6f:00:02:4c:56:a3',1,10);
INSERT INTO clusters VALUES('00:0d:6f:00:02:4c:56:a3',1,257);
INSERT INTO clusters VALUES('00:0d:6f:00:02:4c:56:a3',1,32);
INSERT INTO output_clusters VALUES('00:0d:6f:00:02:4c:56:a3',1,10);
INSERT INTO output_clusters VALUES('00:0d:6f:00:02:4c:56:a3',1,25);
INSERT INTO attributes VALUES('00:0d:6f:00:02:4c:56:a3',1,0,5,'YRD210 PB DB');
INSERT INTO attributes VALUES('00:0d:6f:00:02:4c:56:a3',1,0,7,3);
INSERT INTO attributes VALUES('00:0d:6f:00:02:4c:56:a3',1,0,4,'Yale');
INSERT INTO attributes VALUES('00:0d:6f:00:02:4c:56:a3',1,257,0,1);
INSERT INTO attributes VALUES('00:0d:6f:00:02:4c:56:a3',1,1,33,200);
INSERT INTO node_descriptors VALUES('00:0d:6f:00:02:4c:56:a3',X'024080aaaa52ff000000ff0000');

Oh, here's my simple descriptor from when I did this PR. https://github.com/dmulcahey/zha-device-handlers/pull/131

        #  <SimpleDescriptor endpoint=1 profile=260 device_type=10
        #  device_version=0
        #  input_clusters=[0, 1, 3, 9, 10, 257, 32]
        #  output_clusters=[10, 25]>

Yeah, it is different indeed.
There are different modules which look the same https://fcc.report/FCC-ID/U4A-YRHCPZB0LM/2242120.pdf and @thimic it does look like your's a Control4 variation which is not going to work with Zigbee HA profile as far as I know.

@presslab-us, @Adminiuga, thanks so much for figuring this out! I must confess I didn't know there were different varieties of the Zigbee module out there.

So are you saying that due to being Control4 and not HA, this module cannot work properly with Home Assistant's ZHA component? Or might it be possible to create a working profile?

What would you recommend? Go back to the vendor and see if they have the right module, or is there a chance I can get the current module to work with some fiddling?

I recommend going back to vendor and asking the HA1.2 one. It's unlikely we'll have C4 support any time soon.

Thanks @Adminiuga, I really appreciate the help and advice. I took it back to the store today and they gave me a refund. They鈥檒l check with their supplier to see if they can order in the HA 1.2 version on Monday. If that鈥檚 not the case, I鈥檝e been looking at the newer Yale YRM256 with this HA module: https://www.amazon.com/YALE-AYR202-NETWORK-MOD-Yale/dp/B07VWYNR6D

What do you think chances are that that module works with ZHA, if you don鈥檛 mind me asking?

This guy has a Yale YRD 226 Assure Lock and he said it's working fine (after changing the batteries), for whatever that's worth. I'm not sure if he has the same module or not.
https://community.home-assistant.io/t/zha-lock-setup/124185/7

Thanks @presslab-us, I鈥檒l ask about what module he鈥檚 using.

Closing this as we seem to have the answer: I unwittingly bought the Control4 version of the ZigBee module, which is not compatible with ZHA.

Thank you so much for all your help and insight @Adminiuga, @presslab-us and @dmulcahey.

FYI BendedArror seems to have the HA version of the module https://community.home-assistant.io/t/zha-lock-setup/124185/11?u=quatuor

Vendor's link specifically calls out it being incompatible with Control4.

Good luck!

Monday. If that鈥檚 not the case, I鈥檝e been looking at the newer Yale YRM256 with this HA module: https://www.amazon.com/YALE-AYR202-NETWORK-MOD-Yale/dp/B07VWYNR6D
What do you think chances are that that module works with ZHA, if you don鈥檛 mind me asking?

Well, I hate to speculate and frankly i'm not familiar with any of those. The item description does say the part number is AYR202-ZB-HA and google says it is indeed HA version of it and not compatible with Control4. I guess there's only one way to find out :D

@Adminiuga, Thanks, I鈥檒l see what the vendor says on Monday and decide if I鈥檒l switch to the YRL256 or stay with the SYDL220. Will report back here when I have the new setup in place. Fingers crossed it works!

Thanks @Adminiuga, I really appreciate the help and advice. I took it back to the store today and they gave me a refund. They鈥檒l check with their supplier to see if they can order in the HA 1.2 version on Monday. If that鈥檚 not the case, I鈥檝e been looking at the newer Yale YRM256 with this HA module: https://www.amazon.com/YALE-AYR202-NETWORK-MOD-Yale/dp/B07VWYNR6D

What do you think chances are that that module works with ZHA, if you don鈥檛 mind me asking?

Just a final update. I ended up getting the lock and module above and they work great! It pairs easily with Home Assistant, control and sensors work and the battery percentage has gone down about 1% in the space of a week.

The newer lock鈥檚 mechanism is much faster as well.

Thanks again for your help!

Was this page helpful?
0 / 5 - 0 ratings