Skip to content

Commit

Permalink
Merge pull request #2770 from alandtse/dev
Browse files Browse the repository at this point in the history
  • Loading branch information
alandtse authored Dec 22, 2024
2 parents b992109 + 330e046 commit 2eed072
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 6 deletions.
6 changes: 4 additions & 2 deletions custom_components/alexa_media/alexa_entity.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,10 @@ def is_alexa_guard(appliance: dict[str, Any]) -> bool:

def is_temperature_sensor(appliance: dict[str, Any]) -> bool:
"""Is the given appliance the temperature sensor of an Echo."""
return is_local(appliance) and has_capability(
appliance, "Alexa.TemperatureSensor", "temperature"
return (
is_local(appliance)
and has_capability(appliance, "Alexa.TemperatureSensor", "temperature")
and appliance["friendlyDescription"] != "Amazon Indoor Air Quality Monitor"
)


Expand Down
9 changes: 9 additions & 0 deletions custom_components/alexa_media/config_flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -959,6 +959,15 @@ async def async_step_init(
if CONF_PUBLIC_URL in self._config_entry.data:
if not user_input[CONF_PUBLIC_URL].endswith("/"):
user_input[CONF_PUBLIC_URL] = user_input[CONF_PUBLIC_URL] + "/"
"""Remove leading/trailing spaces in device strings"""
if CONF_INCLUDE_DEVICES in self._config_entry.data:
user_input[CONF_INCLUDE_DEVICES] = user_input[
CONF_INCLUDE_DEVICES
].strip()
if CONF_EXCLUDE_DEVICES in self._config_entry.data:
user_input[CONF_EXCLUDE_DEVICES] = user_input[
CONF_EXCLUDE_DEVICES
].strip()

self.hass.config_entries.async_update_entry(
self._config_entry, data=user_input, options=self._config_entry.options
Expand Down
19 changes: 15 additions & 4 deletions custom_components/alexa_media/media_player.py
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,7 @@ def __init__(self, device, login, second_account_index=0):
self._media_is_muted = None
self._media_vol_level = None
self._previous_volume = None
self._saved_volume = None
self._source = None
self._source_list = []
self._connected_bluetooth = None
Expand Down Expand Up @@ -1129,14 +1130,23 @@ async def async_set_volume_level(self, volume):
"""Set volume level, range 0..1."""
if not self.available:
return

# Save the current volume level before we change it
_LOGGER.debug("Saving previous volume level: %s", self.volume_level)
self._previous_volume = self.volume_level

# Change the volume level on the device
if self.hass:
self.hass.async_create_task(self.alexa_api.set_volume(volume))
else:
await self.alexa_api.set_volume(volume)
self._media_vol_level = volume

# Let http2push update the new volume level
if not (
self.hass.data[DATA_ALEXAMEDIA]["accounts"][self._login.email]["http2"]
):
# Otherwise we do it ourselves
await self.async_update()

@property
Expand Down Expand Up @@ -1164,19 +1174,19 @@ async def async_mute_volume(self, mute):

self._media_is_muted = mute
if mute:
self._previous_volume = self.volume_level
self._saved_volume = self.volume_level
if self.hass:
self.hass.async_create_task(self.alexa_api.set_volume(0))
else:
await self.alexa_api.set_volume(0)
else:
if self._previous_volume is not None:
if self._saved_volume is not None:
if self.hass:
self.hass.async_create_task(
self.alexa_api.set_volume(self._previous_volume)
self.alexa_api.set_volume(self._saved_volume)
)
else:
await self.alexa_api.set_volume(self._previous_volume)
await self.alexa_api.set_volume(self._saved_volume)
else:
if self.hass:
self.hass.async_create_task(self.alexa_api.set_volume(50))
Expand Down Expand Up @@ -1620,6 +1630,7 @@ def extra_state_attributes(self):
"last_called_summary": self._last_called_summary,
"connected_bluetooth": self._connected_bluetooth,
"bluetooth_list": self._bluetooth_list,
"previous_volume": self._previous_volume,
}
return attr

Expand Down

0 comments on commit 2eed072

Please sign in to comment.