Explicitly include "Alexa" Interface in discovery response (#28218)
* Explicitly include Alexa Interface to discovery response. * Updated cloud component test to reflect additional Alexa interface. * Updated test for recently added SeekController.
This commit is contained in:
parent
db425f5432
commit
b0925e60d7
4 changed files with 78 additions and 25 deletions
|
@ -33,6 +33,7 @@ from homeassistant.components import (
|
|||
|
||||
from .const import CONF_DESCRIPTION, CONF_DISPLAY_CATEGORIES
|
||||
from .capabilities import (
|
||||
Alexa,
|
||||
AlexaBrightnessController,
|
||||
AlexaChannelController,
|
||||
AlexaColorController,
|
||||
|
@ -261,6 +262,7 @@ class GenericCapabilities(AlexaEntity):
|
|||
return [
|
||||
AlexaPowerController(self.entity),
|
||||
AlexaEndpointHealth(self.hass, self.entity),
|
||||
Alexa(self.hass),
|
||||
]
|
||||
|
||||
|
||||
|
@ -281,6 +283,7 @@ class SwitchCapabilities(AlexaEntity):
|
|||
return [
|
||||
AlexaPowerController(self.entity),
|
||||
AlexaEndpointHealth(self.hass, self.entity),
|
||||
Alexa(self.hass),
|
||||
]
|
||||
|
||||
|
||||
|
@ -303,6 +306,7 @@ class ClimateCapabilities(AlexaEntity):
|
|||
yield AlexaThermostatController(self.hass, self.entity)
|
||||
yield AlexaTemperatureSensor(self.hass, self.entity)
|
||||
yield AlexaEndpointHealth(self.hass, self.entity)
|
||||
yield Alexa(self.hass)
|
||||
|
||||
|
||||
@ENTITY_ADAPTERS.register(cover.DOMAIN)
|
||||
|
@ -327,6 +331,7 @@ class CoverCapabilities(AlexaEntity):
|
|||
self.entity, instance=f"{cover.DOMAIN}.{cover.ATTR_POSITION}"
|
||||
)
|
||||
yield AlexaEndpointHealth(self.hass, self.entity)
|
||||
yield Alexa(self.hass)
|
||||
|
||||
|
||||
@ENTITY_ADAPTERS.register(light.DOMAIN)
|
||||
|
@ -349,6 +354,7 @@ class LightCapabilities(AlexaEntity):
|
|||
if supported & light.SUPPORT_COLOR_TEMP:
|
||||
yield AlexaColorTemperatureController(self.entity)
|
||||
yield AlexaEndpointHealth(self.hass, self.entity)
|
||||
yield Alexa(self.hass)
|
||||
|
||||
|
||||
@ENTITY_ADAPTERS.register(fan.DOMAIN)
|
||||
|
@ -380,6 +386,7 @@ class FanCapabilities(AlexaEntity):
|
|||
)
|
||||
|
||||
yield AlexaEndpointHealth(self.hass, self.entity)
|
||||
yield Alexa(self.hass)
|
||||
|
||||
|
||||
@ENTITY_ADAPTERS.register(lock.DOMAIN)
|
||||
|
@ -395,6 +402,7 @@ class LockCapabilities(AlexaEntity):
|
|||
return [
|
||||
AlexaLockController(self.entity),
|
||||
AlexaEndpointHealth(self.hass, self.entity),
|
||||
Alexa(self.hass),
|
||||
]
|
||||
|
||||
|
||||
|
@ -412,7 +420,6 @@ class MediaPlayerCapabilities(AlexaEntity):
|
|||
|
||||
def interfaces(self):
|
||||
"""Yield the supported interfaces."""
|
||||
yield AlexaEndpointHealth(self.hass, self.entity)
|
||||
yield AlexaPowerController(self.entity)
|
||||
|
||||
supported = self.entity.attributes.get(ATTR_SUPPORTED_FEATURES, 0)
|
||||
|
@ -446,6 +453,9 @@ class MediaPlayerCapabilities(AlexaEntity):
|
|||
if supported & media_player.const.SUPPORT_PLAY_MEDIA:
|
||||
yield AlexaChannelController(self.entity)
|
||||
|
||||
yield AlexaEndpointHealth(self.hass, self.entity)
|
||||
yield Alexa(self.hass)
|
||||
|
||||
|
||||
@ENTITY_ADAPTERS.register(scene.DOMAIN)
|
||||
class SceneCapabilities(AlexaEntity):
|
||||
|
@ -464,7 +474,10 @@ class SceneCapabilities(AlexaEntity):
|
|||
|
||||
def interfaces(self):
|
||||
"""Yield the supported interfaces."""
|
||||
return [AlexaSceneController(self.entity, supports_deactivation=False)]
|
||||
return [
|
||||
AlexaSceneController(self.entity, supports_deactivation=False),
|
||||
Alexa(self.hass),
|
||||
]
|
||||
|
||||
|
||||
@ENTITY_ADAPTERS.register(script.DOMAIN)
|
||||
|
@ -478,7 +491,10 @@ class ScriptCapabilities(AlexaEntity):
|
|||
def interfaces(self):
|
||||
"""Yield the supported interfaces."""
|
||||
can_cancel = bool(self.entity.attributes.get("can_cancel"))
|
||||
return [AlexaSceneController(self.entity, supports_deactivation=can_cancel)]
|
||||
return [
|
||||
AlexaSceneController(self.entity, supports_deactivation=can_cancel),
|
||||
Alexa(self.hass),
|
||||
]
|
||||
|
||||
|
||||
@ENTITY_ADAPTERS.register(sensor.DOMAIN)
|
||||
|
@ -497,6 +513,7 @@ class SensorCapabilities(AlexaEntity):
|
|||
if attrs.get(ATTR_UNIT_OF_MEASUREMENT) in (TEMP_FAHRENHEIT, TEMP_CELSIUS):
|
||||
yield AlexaTemperatureSensor(self.hass, self.entity)
|
||||
yield AlexaEndpointHealth(self.hass, self.entity)
|
||||
yield Alexa(self.hass)
|
||||
|
||||
|
||||
@ENTITY_ADAPTERS.register(binary_sensor.DOMAIN)
|
||||
|
@ -528,6 +545,7 @@ class BinarySensorCapabilities(AlexaEntity):
|
|||
yield AlexaDoorbellEventSource(self.entity)
|
||||
|
||||
yield AlexaEndpointHealth(self.hass, self.entity)
|
||||
yield Alexa(self.hass)
|
||||
|
||||
def get_type(self):
|
||||
"""Return the type of binary sensor."""
|
||||
|
@ -551,3 +569,4 @@ class AlarmControlPanelCapabilities(AlexaEntity):
|
|||
if not self.entity.attributes.get("code_arm_required"):
|
||||
yield AlexaSecurityPanelController(self.hass, self.entity)
|
||||
yield AlexaEndpointHealth(self.hass, self.entity)
|
||||
yield Alexa(self.hass)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue