shimmeringbee / zda

Adapter to convert ZCL frames and queries into Shimmering Bee abstractions, written in Go.
Apache License 2.0
1 stars 2 forks source link

Rework Capabilities and Attribute Handling #17

Closed pwood closed 10 months ago

pwood commented 3 years ago

At the moment most capabilities are overly complicated for the task that they do, that is:

The current system of having attribute monitors attempts to hide much of the ZCL, that it does, but they are cumbersome to use. This results in overly complicated EnumerateDevice callbacks that should be relatively simple.

Further, because the aim is to support any device that supports a ZCL Cluster correctly, we must store details such as the endpoint and if polling is required (when a report attribute set up fails).

But there is some proprietary support that does not really need to make use of this, such as knowing that a device will always report an attribute on the Basic cluster on endpoint 0 of a device. If we know the device for example, we don't need to store that it requires its proprietary support, we can just assume that based on the device identity.

Ideally we need to simplify this, and make use of the configuration objects consistent.

pwood commented 10 months ago

This is being addressed by #20.