@@ -505,8 +505,13 @@ def interfaces(self) -> Generator[AlexaCapability]:
505505 ):
506506 yield AlexaThermostatController (self .hass , self .entity )
507507 yield AlexaTemperatureSensor (self .hass , self .entity )
508- if self .entity .domain == water_heater .DOMAIN and (
509- supported_features & water_heater .WaterHeaterEntityFeature .OPERATION_MODE
508+ if (
509+ self .entity .domain == water_heater .DOMAIN
510+ and (
511+ supported_features
512+ & water_heater .WaterHeaterEntityFeature .OPERATION_MODE
513+ )
514+ and self .entity .attributes .get (water_heater .ATTR_OPERATION_LIST )
510515 ):
511516 yield AlexaModeController (
512517 self .entity ,
@@ -634,7 +639,9 @@ def interfaces(self) -> Generator[AlexaCapability]:
634639 self .entity , instance = f"{ fan .DOMAIN } .{ fan .ATTR_OSCILLATING } "
635640 )
636641 force_range_controller = False
637- if supported & fan .FanEntityFeature .PRESET_MODE :
642+ if supported & fan .FanEntityFeature .PRESET_MODE and self .entity .attributes .get (
643+ fan .ATTR_PRESET_MODES
644+ ):
638645 yield AlexaModeController (
639646 self .entity , instance = f"{ fan .DOMAIN } .{ fan .ATTR_PRESET_MODE } "
640647 )
@@ -672,7 +679,11 @@ def interfaces(self) -> Generator[AlexaCapability]:
672679 yield AlexaPowerController (self .entity )
673680 supported = self .entity .attributes .get (ATTR_SUPPORTED_FEATURES , 0 )
674681 activities = self .entity .attributes .get (remote .ATTR_ACTIVITY_LIST ) or []
675- if activities and supported & remote .RemoteEntityFeature .ACTIVITY :
682+ if (
683+ activities
684+ and (supported & remote .RemoteEntityFeature .ACTIVITY )
685+ and self .entity .attributes .get (remote .ATTR_ACTIVITY_LIST )
686+ ):
676687 yield AlexaModeController (
677688 self .entity , instance = f"{ remote .DOMAIN } .{ remote .ATTR_ACTIVITY } "
678689 )
@@ -692,7 +703,9 @@ def interfaces(self) -> Generator[AlexaCapability]:
692703 """Yield the supported interfaces."""
693704 yield AlexaPowerController (self .entity )
694705 supported = self .entity .attributes .get (ATTR_SUPPORTED_FEATURES , 0 )
695- if supported & humidifier .HumidifierEntityFeature .MODES :
706+ if (
707+ supported & humidifier .HumidifierEntityFeature .MODES
708+ ) and self .entity .attributes .get (humidifier .ATTR_AVAILABLE_MODES ):
696709 yield AlexaModeController (
697710 self .entity , instance = f"{ humidifier .DOMAIN } .{ humidifier .ATTR_MODE } "
698711 )
0 commit comments