zha-device-handlers icon indicating copy to clipboard operation
zha-device-handlers copied to clipboard

[Device Support Request] Develco/Frient intelligent keypad KEPZB-110

Open eddiekwak202 opened this issue 1 year ago • 13 comments

Problem description

What I am able to do:

  • Arm/disarm in differnt modes from the keypad itself and through Home Assistant.
  • Reading the code typed into the keypad, and the (dis)arming mode via the zha_event.

What will not work/is not available:

  • entry/exit delay, although I can send it manually through the "manage device" pop-up.
  • tamper detection
  • panic button (right now it just triggers the alarm)

Solution description

Being able to use the keypad as it is intended to use. This would include:

  • entry/exit delay
  • tamper detection
  • working battery readout (or only a "low battery" funtion)
  • (a better way to read the code that is send to ZHA)

Screenshots/Video

Screenshots/Video

image

Device signature

Device signature
{
  "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=4117, maximum_buffer_size=82, maximum_incoming_transfer_size=1500, server_mask=11264, maximum_outgoing_transfer_size=1500, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)",
  "endpoints": {
    "1": {
      "profile_id": "0xc0c9",
      "device_type": "0x0001",
      "input_clusters": [
        "0x0005",
        "0x0006"
      ],
      "output_clusters": []
    },
    "44": {
      "profile_id": "0x0104",
      "device_type": "0x0401",
      "input_clusters": [
        "0x0000",
        "0x0001",
        "0x0003",
        "0x0020",
        "0x0500",
        "0x0b05"
      ],
      "output_clusters": [
        "0x0003",
        "0x000a",
        "0x0019",
        "0x0501"
      ]
    }
  },
  "manufacturer": "frient A/S",
  "model": "KEPZB-110",
  "class": "zigpy.device.Device"
}

Diagnostic information

Diagnostic information
[Paste the diagnostic information here]

Logs

Logs
[Paste the logs here]

Custom quirk

Custom quirk
[Paste your custom quirk here]

Additional information

Link to the Develco technical documentation, including the used Zigbee clusters:

https://www.develcoproducts.com/media/2032/kepzb-110-technical-manual-keypad.pdf

eddiekwak202 avatar Feb 04 '24 12:02 eddiekwak202

Entering a code follow by a mode button, does not trigger a zha_event for my me.

masi avatar Mar 08 '24 19:03 masi

@masi Have you reconnecting the device? For me it also didn't work the first time I connected the keypad. After a quick reconnect it worked for me.

eddiekwak202 avatar Mar 09 '24 08:03 eddiekwak202

@masi Have you reconnecting the device? For me it also didn't work the first time I connected the keypad. After a quick reconnect it worked for me.

No. Will try to see if it makes any difference.

Hopefully as seen in https://github.com/zigpy/zha-device-handlers/issues/901 the device some others get events.

masi avatar Mar 09 '24 17:03 masi

@eddiekwak202 issue https://github.com/home-assistant/core/issues/72828 is bad news for tamper support.

If I got it right ZHA will not no in advance if a device has tamper support. So the decision was not to add it because for mere motion dectors (used for lighting and not security) will not have a tamper detection. The reasoning was that an entity for an unsupported feature would trigger more support tickets.

Perhaps quirks v2 will get something like @puddly envisioned here: https://github.com/home-assistant/core/issues/72828#issuecomment-1172462271

masi avatar Mar 09 '24 17:03 masi

@masi well that is too bad. But the tamper function should always be a last line of defense anyway (except for outdoor cameras). But did you manage to get your keypad working already?

eddiekwak202 avatar Mar 16 '24 14:03 eddiekwak202

@eddiekwak202 Yes. After a factory reset the keypad fires events after pressing one of the mode buttons.

To be honest I have no clue what the manual tells me about EZ modes initiator and target. And despite the manuals says the keypad will scan only channels 11-24 it has joined my network on channel 25.

What I did not manage to do was to change the entry/exit delay setting. I couldn't find any attribute in one of the clusters that looked like the delay settings.

masi avatar Mar 16 '24 18:03 masi

@masi yeah the entry/exit only works while calling it manually for me. Then it is under mange zigbee device/IasAce/panel_status_changed. But I dont know if it is possible to call this in a service call in home assistant.

eddiekwak202 avatar Mar 16 '24 18:03 eddiekwak202

@eddiekwak202 I think you can send this command with https://github.com/mdeweerd/zha-toolkit

Been reading the Zigbee Cluster Library rev8 to understand how keypads are supposed to work. As far as i understood you can get some parts of the Zigbee Intruder Alarms System (IAS) working, but it will be tough. Zigpy and/or ZHA simply do not implement enough of the spec.

ZHA should act as Control and Indicating Equipment (CIE), but it does not: https://github.com/zigpy/zigpy/issues/419

masi avatar Mar 16 '24 19:03 masi

@masi well I jut read the article...but it seems that there is just not so much interest in the alarm part of zha. Although there are some parts implemented, and I think it can be really usefull and can exceed beyond the limits of a regular system.

eddiekwak202 avatar Mar 26 '24 16:03 eddiekwak202