zha: Fix cluster class check in single-cluster device type ()

zigpy now allows custom devices, which might mean that devices have cluster
objects which are not instances of the default, but may be instances of
sub-classes of the default. This fixes the check for finding single-cluster
device entities to handle sub-classes properly.
pull/14479/head
Russell Cloran 2018-05-14 07:50:09 -07:00 committed by Fabian Affolter
parent 954e4796b8
commit 2f74ffcf81
1 changed files with 8 additions and 3 deletions
homeassistant/components/zha

View File

@ -256,11 +256,16 @@ class ApplicationListener:
"""Try to set up an entity from a "bare" cluster."""
if cluster.cluster_id in profile_clusters:
return
# pylint: disable=unidiomatic-typecheck
if type(cluster) not in device_classes:
component = None
for cluster_type, candidate_component in device_classes.items():
if isinstance(cluster, cluster_type):
component = candidate_component
break
if component is None:
return
component = device_classes[type(cluster)]
cluster_key = "{}-{}".format(device_key, cluster.cluster_id)
discovery_info = {
'application_listener': self,