72
72
CLUSTER_HANDLER_LEVEL ,
73
73
CLUSTER_HANDLER_LEVEL_CHANGED ,
74
74
CLUSTER_HANDLER_ON_OFF ,
75
+ CLUSTER_HANDLER_PHILIPS_HUE_LIGHT ,
75
76
)
76
77
from zha .zigbee .cluster_handlers .general import LevelChangeEvent
77
78
@@ -996,7 +997,7 @@ class HueLight(Light):
996
997
aux_cluster_handlers = {
997
998
CLUSTER_HANDLER_COLOR ,
998
999
CLUSTER_HANDLER_LEVEL ,
999
- "philips_hue_cluster" ,
1000
+ CLUSTER_HANDLER_PHILIPS_HUE_LIGHT ,
1000
1001
},
1001
1002
manufacturers = {"Philips" , "Signify Netherlands B.V." },
1002
1003
)
@@ -1018,14 +1019,16 @@ def __init__(
1018
1019
) -> None :
1019
1020
"""Initialize the ZHA light."""
1020
1021
super ().__init__ (unique_id , cluster_handlers , endpoint , device , ** kwargs )
1021
- self ._hue_cluster = self .cluster_handlers .get ("philips_hue_cluster" )
1022
+ self ._hue_light_cluster = self .cluster_handlers .get (
1023
+ CLUSTER_HANDLER_PHILIPS_HUE_LIGHT
1024
+ )
1022
1025
self ._effect_list .extend (self .HUE_EFFECTS .keys ())
1023
1026
1024
1027
async def async_turn_on (self , ** kwargs : Any ) -> None :
1025
1028
"""Turn the entity on."""
1026
- # If only change of brightness is requested, the effect doesn't have to be interupted
1029
+ # If only change of brightness is requested, the effect doesn't have to be interrupted
1027
1030
if kwargs .get (ATTR_BRIGHTNESS ) is not None and all (
1028
- attr == ATTR_BRIGHTNESS or kwargs .get (attr ) is None for attr in kwargs
1031
+ kwargs .get (attr ) is None for attr in ( kwargs . keys () - { ATTR_BRIGHTNESS })
1029
1032
):
1030
1033
effect = self ._effect
1031
1034
else :
@@ -1038,7 +1041,7 @@ async def async_turn_on(self, **kwargs: Any) -> None:
1038
1041
1039
1042
if effect in self .HUE_EFFECTS :
1040
1043
effect_id = self .HUE_EFFECTS [effect ]
1041
- await self ._hue_cluster .multicolor (
1044
+ await self ._hue_light_cluster .multicolor (
1042
1045
data = bytearray ([0x22 , 0x00 , self ._brightness , effect_id ])
1043
1046
)
1044
1047
self ._effect = effect
@@ -1047,7 +1050,9 @@ async def async_turn_on(self, **kwargs: Any) -> None:
1047
1050
) and self ._effect in self .HUE_EFFECTS :
1048
1051
# Only stop effect if it was started by us
1049
1052
# Following command will stop the effect while preserving brightness
1050
- await self ._hue_cluster .multicolor (data = bytearray ([0x20 , 0x00 , 0x00 , 0x00 ]))
1053
+ await self ._hue_light_cluster .multicolor (
1054
+ data = bytearray ([0x20 , 0x00 , 0x00 , 0x00 ])
1055
+ )
1051
1056
self ._effect = EFFECT_OFF
1052
1057
else :
1053
1058
# Don't react on unknown effects, for example 'colorloop'
0 commit comments