Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Device requires a corresponding out cluster when communicating with the coordinator #1322

Open
matejx opened this issue Jan 13, 2024 · 3 comments

Comments

@matejx
Copy link

matejx commented Jan 13, 2024

I have a device in the network, trying to read time (ep 1, cluster 0xa, attr 0) from the coordinator. This fails in device.py:packet_received() line 385 with the message "Ignoring message on unknown cluster 10 for endpoint 1".

I'm not super familliar with Zigbee protocol, but this seems wrong. There's even a comment in the code suggesting this shouldn't be necessary. Reading other devices' attributes (I have mostly sonoff) works fine and does not require this.

Adding the required output cluster in my code fixes this, i.e.
mydev.add_output_cluster(10)
but I consider this a workaround. Nothing on the actual device is changed.

@Hedda
Copy link
Contributor

Hedda commented Jan 17, 2024

Are you using the ZHA (Zigbee Home Automation) integration component in Home Assistant? And what exactly is the device in question? Do you brand/model and device signature if it is a commercial product you purchased or is it a DIY device you made?

If you use the ZHA integration in Home Assistant then you will likely need a custom ZHA Device Handler (also known as a "quirk" for ZHA), and perhaps even modification to the zha component code inside the Home Assistant core, so if that is the case then the normal way to raise an issue is usually to start by creating a new device support request in that repository (even if you plan on writing custom quirks for ZHA yourself). That way you at least start an open dialogue with other ZHA-quirk developers. See:

https://www.home-assistant.io/integrations/zha/#how-to-add-support-for-new-and-unsupported-devices

https://github.com/zigpy/zha-device-handlers/

https://github.com/home-assistant/core/tree/dev/homeassistant/components/zha

If you are not using the ZHA (Zigbee Home Automation) integration component in Home Assistant then the zigpy developers will probably need a lot more information on your exact software setup, environment and hardware using?:

  • Device details?
  • Operating system?
  • Zigbee Coordinator adapter and firmware used?
  • Debug logs.
  • etc.

@puddly
Copy link
Collaborator

puddly commented Jan 17, 2024

Zigpy currently requires that the device's node descriptor and simple endpoint descriptors fully map out the endpoints and clusters available on the device. These are read during initialization. If a device has endpoints and clusters that aren't present, you need to manually add them as you did above.

@matejx
Copy link
Author

matejx commented Jan 17, 2024

I understand this is currently expected behavior, I just thought I'd give the comment

# TODO: this isn't actually necessary, we can parse most packets by cluster ID.

more weight by providing a real world example where this implementation prevents functionality.

The device I'm using is eByte E18-MS1-PCB, a serial to ZigBee module. It unfortunately does not support adding device local clusters. I'm currently trying to get an explanation from eByte engineers on why this is so.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants