一、Clusters
在每个Endpoint中,我们可以配置几个Clusters。ZigBee Cluster实际上是一种通信模型。
它基于客户端/服务器模式,用于描述两个设备之间的应用协议。每个Cluster都有一个Cluster ID,该ID在ZigBee CLuster Library(ZCL)中定义。Cluster中可以定义多个属性和命令。
二、举例
让我们看一个Cluster的示例,以便我们可以更好地理解它。
例如,我们需要实现一个带有两个灯泡的灯。我们可以在其中定义两个Endpoint。每个Endpoint代表一个灯泡。
对于基本功能,例如打开/关闭,我们可以使用打开/关闭 Cluster。灯是服务器端,而开关是客户端。服务器端定义了一个属性“ on / off”,指示灯是打开还是关闭。还定义了诸如“打开”,“关闭”,“切换”之类的命令,这些命令应从客户端发送到服务器端。
如果我们需要更多功能,例如我们需要支持亮度级别控制。我们可以使用亮度级别控制Cluster。在此Cluster中,服务器端定义了一个属性“Level”,指示灯泡的亮度。还定义了诸如“逐渐变化亮度级别”之类的命令,这些命令应从客户端发送到服务器端。
而且,如果我们需要更多功能,例如需要支持颜色控制,则可以使用颜色控制Cluster。
对于ZCL规范中没有定义的一些功能,开发者可以添加一些自定义的Cluster,自己去定义属性、命令等,就成了一个私有的协议。