zigpy / zha

Zigbee Home Automation
Apache License 2.0
26 stars 22 forks source link

ZHA Shouldn’t Create an Opening Entity for the On/Off Client Cluster #289

Open mguaylam opened 6 hours ago

mguaylam commented 6 hours ago

While working on this issue https://github.com/zigpy/zha-device-handlers/issues/3314, I learned that ZHA creates automatically an entity when it sees a contact device with an On/Off cluster. But since, at least my device, has only a client On/Off cluster, should ZHA creates an entity from it? https://github.com/zigpy/zha/blob/701f57568fd909a469bdbb31089e2bafc095eea7/zha/application/platforms/binary_sensor/__init__.py#L167-L172

The reasoning being that the ZCL says a client On/Off cluster has no attributes and that it should only transmit commands of the On/Off server cluster.

Meaning that this cluster has no attributes and does not support reporting by implying that. Creating an entity from it works because it does send commands when binding but there can't be reporting.

3.8 On/Off 3.8.3 Client The client has no cluster specific attributes. The client generates the cluster specific commands received by the server (see 3.8.2.3) , as required by the application. No cluster specific commands are received by the client.

This is an issue because when the command fails to send, the device will not try to send it again. It's really meant to control another device like a lightbulb.

Also, I see the server attributes are defined in the client cluster but there should be none there since it's a client. image

dmulcahey commented 5 hours ago

No we shouldn’t be. This is a legacy artifact that we need to clean up at some point.