Skip to content

[request] Add Matter client/controller (subscribe) APIs to the Matter Arduino library #126

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

Open
hypnotoad08 opened this issue May 2, 2025 · 0 comments
Labels
featurerequest Feature request

Comments

@hypnotoad08
Copy link

Summary

What’s the problem?

The current Arduino Matter library only implements server-side clusters and local device change callbacks. There are no APIs to:

  • Discover or get a handle to a remote Matter node
  • Create client clusters on that remote node
  • Subscribe to attribute changes on a remote cluster
  • Receive those updates via callbacks

Proposed solution

Add controller/client support alongside the existing server APIs:

  1. A way to lookup/discover commissioned nodes (e.g. Matter.getDiscoveredNodeIds())
  2. An API to obtain a remote-node handle (e.g. Matter.getRemoteNode(nodeId))
  3. Methods to create client clusters (flags like CLUSTER_FLAG_CLIENT) on that handle
  4. A subscribe(attrId) or subscribeAll() method per client cluster
  5. A onAttributeReport(attrId, callback) hook for receiving updates
  6. A poll() or built-in pump to drive the subscribe engine in loop()

This would enable true peer-to-peer Matter applications (e.g. an EPD dashboard subscribing to a remote AQI sensor).

References

  • Espressif’s native esp_matter component provides these client APIs (esp_matter_binding_create(), esp_matter_cluster_*_client_create(), esp_matter_binding_subscribe())
  • The release notes for v2.1.0 mention “device change callbacks,” but that only covers local clusters
  • Example in File → Examples → Matter → matter_lightbulb_callback is purely for local attribute changes

Thanks for considering this enhancement!

@hypnotoad08 hypnotoad08 added the featurerequest Feature request label May 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
featurerequest Feature request
Projects
None yet
Development

No branches or pull requests

1 participant