zigpy / zha-device-handlers

ZHA device handlers bridge the functionality gap created when manufacturers deviate from the ZCL specification, handling deviations and exceptions by parsing custom messages to and from Zigbee devices.
Apache License 2.0
743 stars 679 forks source link

[Device Support Request] Heiman HS1SA-E smoke detector #518

Closed nikopaulanne closed 2 years ago

nikopaulanne commented 4 years ago

Is your feature request related to a problem? Please describe. Problem: I suppose I have the same problem as already corrected in zigbee2mqtt (https://github.com/Koenkk/zigbee2mqtt/issues/3773): Heiman HS1SA-E smoke detector have trouble to work properly. Pairing is ok and the battery and linkquality messages too. But if I press the test button or activate the alarm with some smoke no messages or log entries are generated.

The main problem is as in zigbee2mqtt case?

Describe the solution you'd like I would love to see same correction as zigbee2mqtt already to did to be also done in ZHA.

Device signature - this can be acquired by removing the device from ZHA and pairing it again from the add devices screen. Be sure to add the entire content of the log panel after pairing the device to a code block below this line. Checking quirks for HEIMAN SmokeSensor-EM (00:0d:6f:00:14:b9:d0:eb) 52631: started configuration 52631:ZDO: 'async_configure' stage succeeded 52631: completed configuration 52631: stored in registry: ZhaDeviceEntry(name='HEIMAN SmokeSensor-EM', ieee='00:0d:6f:00:14:b9:d0:eb', 52631: started initialization 52631:ZDO: 'async_initialize' stage succeeded 52631: power source: Battery or Unknown 52631: completed initialization

Extra info:

Additional context Add any other context or screenshots about the feature request here.

nikopaulanne commented 3 years ago

Is there something else I could do, provide some logs etc? I would like to integrate these smoke alarms covering multiple stories properly to Hass with ZHA.

ministryofsillywalks commented 3 years ago

Any news on this? I just ordered a bunch as they were on offer dead cheap. Happy to test and debug if I can be of any assistance.

nikopaulanne commented 3 years ago

Any news on this? I just ordered a bunch as they were on offer dead cheap. Happy to test and debug if I can be of any assistance.

No dice and no hopes up on this issue on ZHA. You're better off just dumping ZHA and going for Zigbee2Mqtt. Sad.

dmulcahey commented 3 years ago

Comments like that won’t be tolerated. It has been hidden. Folks contribute their free time to implement this for the community.

dmulcahey commented 3 years ago

ZHA shouldn’t need this fix as we enroll IAS every time the device is joined. I’ll look at your log when I have a moment

dmulcahey commented 3 years ago

Wait... there is no log from you. Please remove the device, then re-join it and provide the entire pairing log.

ministryofsillywalks commented 3 years ago

Wait... there is no log from you. Please remove the device, then re-join it and provide the entire pairing log.

Mine should be arriving next week. Will happily provide logs once I get them and join them. Thanks for trying to support this device!

ministryofsillywalks commented 3 years ago

Finally got the devices (postage was slow). Model HS1SA-M Zigbee HA1.2 (thats the Zigbee version and not Zigbee 3.0) Paired the first one up. Here are the logs from pairing @dmulcahey

[0x0C69:3:0x0b04]: async_update
[0x7FC6:3:0x0b04]: async_update
[0x3163:1:0xef00] Unknown cluster-specific command 36
Device 0x0fcf (00:50:43:c9:03:35:29:3a) joined the network
[0x0fcf] Requesting 'Node Descriptor'
Device 0x0fcf (00:50:43:c9:03:35:29:3a) joined the network
[0x0fcf] Node Descriptor: NodeDescriptor(byte1=2, byte2=64, mac_capability_flags=132, manufacturer_code=48042, maximum_buffer_size=64, maximum_incoming_transfer_size=0, server_mask=0, maximum_outgoing_transfer_size=0, descriptor_capability_field=3)
[0x0fcf] Discovering endpoints
[0x0fcf] Discovered endpoints: [1]
[0x0fcf:1] Discovering endpoint information
[0x0fcf:1] Discovered endpoint information: SizePrefixedSimpleDescriptor(endpoint=1, profile=260, device_type=1026, device_version=0, input_clusters=[0, 3, 1280, 1, 9, 1282], output_clusters=[25])
device - 0x0FCF:00:50:43:c9:03:35:29:3a entering async_device_initialized - is_new_join: True
device - 0x0FCF:00:50:43:c9:03:35:29:3a has joined the ZHA zigbee network
[0x0FCF](SMOK_YDLV10): started configuration
[0x0FCF:ZDO](SMOK_YDLV10): 'async_configure' stage succeeded
[0x0FCF:1:0x0500]: started IASZoneChannel configuration
[0x0FCF:1:0x0000]: bound 'basic' cluster: Status.SUCCESS
[0x0FCF:1:0x0000]: finished channel configuration
[0x0FCF:1:0x0502]: bound 'ias_wd' cluster: Status.SUCCESS
[0x0FCF:1:0x0502]: finished channel configuration
[0x0C69:3:0x0b04]: async_update
[0x7FC6:3:0x0b04]: async_update
[0x0FCF:1:0x0500]: bound 'ias_zone' cluster: Status.SUCCESS
[0x0FCF:1:0x0000]: initializing channel: from_cache: False
[0x0FCF:1:0x0019]: bound 'ota' cluster: Status.SUCCESS
[0x0FCF:1:0x0019]: finished channel configuration
[0x0FCF:1:0x0500]: wrote cie_addr: 60:a4:23:ff:fe:42:58:96 to 'ias_zone' cluster: [WriteAttributesStatusRecord(status=<Status.SUCCESS: 0>)]
[0x0FCF:1:0x0500]: Sending pro-active IAS enroll response
[0x0FCF:1:0x0500]: finished IASZoneChannel configuration
[0x0FCF:1:0x0000]: 'async_configure' stage succeeded
[0x0FCF:1:0x0500]: 'async_configure' stage succeeded
[0x0FCF:1:0x0502]: 'async_configure' stage succeeded
[0x0FCF:1:0x0019]: 'async_configure' stage succeeded
[0x0FCF](SMOK_YDLV10): completed configuration
[0x0FCF](SMOK_YDLV10): stored in registry: ZhaDeviceEntry(name='Heiman SMOK_YDLV10', ieee='00:50:43:c9:03:35:29:3a', last_seen=1608235231.8112361)
light.zoe_hue_licht_level_light_color_on_off: polling current state
[0x8CF3:11:0x0008]: received attribute: 0 update with value: 200
[0x0FCF:1:0x0003]: executed 'trigger_effect' command with args: '(2, 0)' kwargs: '{}' result: [64, <Status.UNSUP_CLUSTER_COMMAND: 129>]
[0x0FCF](SMOK_YDLV10): started initialization
[0x0FCF:ZDO](SMOK_YDLV10): 'async_initialize' stage succeeded
[0x0FCF:1:0x0502]: initializing channel: from_cache: False
[0x0FCF:1:0x0019]: initializing channel: from_cache: False
[0x0FCF:1:0x0000]: initializing channel: from_cache: False
[0x0FCF:1:0x0500]: initializing channel: from_cache: False
[0x0FCF:1:0x0000]: 'async_initialize' stage succeeded
[0x0FCF:1:0x0500]: 'async_initialize' stage succeeded
[0x0FCF:1:0x0502]: 'async_initialize' stage succeeded
[0x0FCF:1:0x0019]: 'async_initialize' stage succeeded
[0x0FCF](SMOK_YDLV10): power source: Mains
[0x0FCF](SMOK_YDLV10): completed initialization
[0x0C69:3:0x0b04]: async_update
[0x7FC6:3:0x0b04]: async_update

Here is the device signature:

{
  "node_descriptor": "NodeDescriptor(byte1=2, byte2=64, mac_capability_flags=132, manufacturer_code=48042, maximum_buffer_size=64, maximum_incoming_transfer_size=0, server_mask=0, maximum_outgoing_transfer_size=0, descriptor_capability_field=3)",
  "endpoints": {
    "1": {
      "profile_id": 260,
      "device_type": "0x0402",
      "in_clusters": [
        "0x0000",
        "0x0001",
        "0x0003",
        "0x0009",
        "0x0500",
        "0x0502"
      ],
      "out_clusters": [
        "0x0019"
      ]
    }
  },
  "manufacturer": "Heiman",
  "model": "SMOK_YDLV10",
  "class": "zigpy.device.Device"
}

Heres what it looks like in HA As you can see no battery percentage is reported image

I will cause an alarm tomorrow and see what the logs give me. (not happening today or I will wake everyone up ;) )

gitawayu commented 3 years ago

Hi David, I have a Heiman HS1SA-E smoke detector now, and although I am able to pair it in Home Assistant in the ZHA integration using a Conbee 2 stick, I do not seem to be able to trigger anything off it when I press the test button or when I light a fire under it(!). If you have time to look at this at some point, please let me know if there are any logs or other info I can provide. Many thanks! Tim.

P.S. The Zigbee device signature has the following at the bottom...

"manufacturer": "HEIMAN", "model": "SmokeSensor-EF-3.0", "class": "zigpy.device.Device"

It's this (battery operated) device. The label on the box it came in says "HS1SA-E".

hvddrift commented 3 years ago

@dmulcahey and @gitawayu

I have this exact issue. I am also happy to provide any logs etc. The importance for me is I would like to have the unit if it detects smoke trigger the other devices in the house.

Thanks

Hans

hvddrift commented 3 years ago

I tried to reconfigure the device and this was the result I got... Not sure if it helps

chrome_2021-06-25_21-41-59

github-actions[bot] commented 2 years ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

oneiropagides commented 2 years ago

Hi, has anyone manage to solve this? It seems the issue is "closed" but I cannot understand what the solution is.

frittes commented 1 year ago

Hi, I have the same problems. I can join the sensor to the network and it is identified as SmokeSensor-N-3.0 with that quirk https://github.com/zigpy/zha-device-handlers/blob/dev/zhaquirks/heiman/smoke.py.

The Sensor stays online after joining for a few hours and then it is offline. No chance to get it online again.

Any ideas to get it work?

jochenruben commented 11 months ago

Hi, I have the same issue. Sensor is in the network . The are no entities, no battery status and hier is the log:

Logger: homeassistant Source: components/zha/core/cluster_handlers/init.py:75 First occurred: 11:53:37 (15 occurrences) Last logged: 16:36:17

Error doing job: Task exception was never retrieved Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/zha/core/cluster_handlers/init.py", line 64, in wrap_zigpy_exceptions yield File "/usr/src/homeassistant/homeassistant/components/zha/core/cluster_handlers/init.py", line 84, in wrapper return await RETRYABLE_REQUEST_DECORATOR(func)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/zigpy/util.py", line 132, in retry return await func() ^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/zigpy/zcl/init.py", line 377, in request return await self._endpoint.request( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/zigpy/endpoint.py", line 253, in request return await self.device.request( ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/zigpy/device.py", line 293, in request await self._application.request( File "/usr/local/lib/python3.11/site-packages/zigpy/application.py", line 828, in request await self.send_packet( File "/usr/local/lib/python3.11/site-packages/zigpy_znp/zigbee/application.py", line 1202, in send_packet raise DeliveryError( zigpy.exceptions.DeliveryError: Request failed after 5 attempts: <Status.MAC_NO_ACK: 233>

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/zha/core/gateway.py", line 640, in async_device_initialized await self._async_device_joined(zha_device) File "/usr/src/homeassistant/homeassistant/components/zha/core/gateway.py", line 656, in _async_device_joined await zha_device.async_configure() File "/usr/src/homeassistant/homeassistant/components/zha/core/device.py", line 578, in async_configure await self.identify_ch.trigger_effect( File "/usr/src/homeassistant/homeassistant/components/zha/core/cluster_handlers/init.py", line 83, in wrapper with wrap_zigpy_exceptions(): File "/usr/local/lib/python3.11/contextlib.py", line 155, in exit self.gen.throw(typ, value, traceback) File "/usr/src/homeassistant/homeassistant/components/zha/core/cluster_handlers/init.py", line 75, in wrap_zigpy_exceptions raise HomeAssistantError(message) from exc homeassistant.exceptions.HomeAssistantError: Failed to send request: Request failed after 5 attempts: <Status.MAC_NO_ACK: 233>