from music_assistant.helpers.tags import async_parse_tags
from music_assistant.models.player_provider import PlayerProvider
from music_assistant.providers.hass import DOMAIN as HASS_DOMAIN
-from music_assistant.providers.hass.constants import OFF_STATES, MediaPlayerEntityFeature, StateMap
+from music_assistant.providers.hass.constants import (
+ OFF_STATES,
+ UNAVAILABLE_STATES,
+ MediaPlayerEntityFeature,
+ StateMap,
+)
if TYPE_CHECKING:
from collections.abc import AsyncGenerator
provider=self.lookup_key,
type=PlayerType.PLAYER,
name=state["attributes"]["friendly_name"],
- available=state["state"] not in ("unavailable", "unknown"),
+ available=state["state"] not in UNAVAILABLE_STATES,
device_info=DeviceInfo.from_dict(dev_info),
state=StateMap.get(state["state"], PlayerState.IDLE),
extra_data={
and MediaPlayerEntityFeature.TURN_OFF in hass_supported_features
):
player.supported_features.add(PlayerFeature.POWER)
- player.powered = state["state"] not in ("unavailable", "unknown", "standby", "off")
+ player.powered = state["state"] not in OFF_STATES
self._update_player_attributes(player, state["attributes"])
await self.mass.players.register_or_update(player)
return
if "s" in state:
player.state = StateMap.get(state["s"], PlayerState.IDLE)
+ player.available = state["s"] not in UNAVAILABLE_STATES
if PlayerFeature.POWER in player.supported_features:
player.powered = state["s"] not in OFF_STATES
if "a" in state: