Skip to content

Commit

Permalink
fix: Measure tool unsupported turn_off for Sonos devices
Browse files Browse the repository at this point in the history
  • Loading branch information
bramstroker committed Feb 12, 2023
1 parent c53788c commit 1855812
Showing 1 changed file with 13 additions and 4 deletions.
17 changes: 13 additions & 4 deletions utils/measure/media_controller/hass.py
@@ -1,11 +1,14 @@
from typing import Any

import inquirer
import logging
from homeassistant_api import Client
from homeassistant_api.errors import HomeassistantAPIError
from homeassistant_api.errors import HomeassistantAPIError, InternalServerError
from media_controller.errors import MediaPlayerError


_LOGGER = logging.getLogger("measure")

class HassMediaController:
def __init__(self, api_url: str, token: str):
self._entity_id: str | None = None
Expand Down Expand Up @@ -39,9 +42,15 @@ def play_audio(self, stream_url: str) -> None:
)

def turn_off(self) -> None:
self.client.trigger_service(
"media_player", "turn_off", entity_id=self._entity_id
)
try:
self.client.trigger_service(
"media_player", "turn_off", entity_id=self._entity_id
)
except InternalServerError:
_LOGGER.debug("Internal server error on media_player.turn_off service, probably because not supported by device, Trying media_player.media_stop")
self.client.trigger_service(
"media_player", "media_stop", entity_id=self._entity_id
)

def get_questions(self) -> list[inquirer.questions.Question]:
entities = self.client.get_entities()
Expand Down

0 comments on commit 1855812

Please sign in to comment.