mirror of
https://github.com/home-assistant/core.git
synced 2025-04-24 17:27:52 +00:00
Sonos add bass & treble EQ option (#53978)
This commit is contained in:
parent
5c6451d11b
commit
b167e05a56
@ -125,6 +125,8 @@ ATTR_NIGHT_SOUND = "night_sound"
|
||||
ATTR_SPEECH_ENHANCE = "speech_enhance"
|
||||
ATTR_QUEUE_POSITION = "queue_position"
|
||||
ATTR_STATUS_LIGHT = "status_light"
|
||||
ATTR_EQ_BASS = "bass_level"
|
||||
ATTR_EQ_TREBLE = "treble_level"
|
||||
|
||||
|
||||
async def async_setup_entry(
|
||||
@ -221,7 +223,6 @@ async def async_setup_entry(
|
||||
{
|
||||
vol.Required(ATTR_ALARM_ID): cv.positive_int,
|
||||
vol.Optional(ATTR_TIME): cv.time,
|
||||
vol.Optional(ATTR_VOLUME): cv.small_float,
|
||||
vol.Optional(ATTR_ENABLED): cv.boolean,
|
||||
vol.Optional(ATTR_INCLUDE_LINKED_ZONES): cv.boolean,
|
||||
},
|
||||
@ -236,6 +237,12 @@ async def async_setup_entry(
|
||||
vol.Optional(ATTR_NIGHT_SOUND): cv.boolean,
|
||||
vol.Optional(ATTR_SPEECH_ENHANCE): cv.boolean,
|
||||
vol.Optional(ATTR_STATUS_LIGHT): cv.boolean,
|
||||
vol.Optional(ATTR_EQ_BASS): vol.All(
|
||||
vol.Coerce(int), vol.Range(min=-10, max=10)
|
||||
),
|
||||
vol.Optional(ATTR_EQ_TREBLE): vol.All(
|
||||
vol.Coerce(int), vol.Range(min=-10, max=10)
|
||||
),
|
||||
},
|
||||
"set_option",
|
||||
)
|
||||
@ -615,6 +622,8 @@ class SonosMediaPlayerEntity(SonosEntity, MediaPlayerEntity):
|
||||
night_sound: bool | None = None,
|
||||
speech_enhance: bool | None = None,
|
||||
status_light: bool | None = None,
|
||||
bass_level: int | None = None,
|
||||
treble_level: int | None = None,
|
||||
) -> None:
|
||||
"""Modify playback options."""
|
||||
if buttons_enabled is not None:
|
||||
@ -632,6 +641,12 @@ class SonosMediaPlayerEntity(SonosEntity, MediaPlayerEntity):
|
||||
if status_light is not None:
|
||||
self.soco.status_light = status_light
|
||||
|
||||
if bass_level is not None:
|
||||
self.soco.bass = bass_level
|
||||
|
||||
if treble_level is not None:
|
||||
self.soco.treble = treble_level
|
||||
|
||||
@soco_error()
|
||||
def play_queue(self, queue_position: int = 0) -> None:
|
||||
"""Start playing the queue."""
|
||||
@ -649,6 +664,12 @@ class SonosMediaPlayerEntity(SonosEntity, MediaPlayerEntity):
|
||||
ATTR_SONOS_GROUP: self.speaker.sonos_group_entities
|
||||
}
|
||||
|
||||
if self.speaker.bass_level is not None:
|
||||
attributes[ATTR_EQ_BASS] = self.speaker.bass_level
|
||||
|
||||
if self.speaker.treble_level is not None:
|
||||
attributes[ATTR_EQ_TREBLE] = self.speaker.treble_level
|
||||
|
||||
if self.speaker.night_mode is not None:
|
||||
attributes[ATTR_NIGHT_SOUND] = self.speaker.night_mode
|
||||
|
||||
|
@ -121,6 +121,22 @@ set_option:
|
||||
description: Enable Status (LED) Light
|
||||
selector:
|
||||
boolean:
|
||||
bass_level:
|
||||
name: Bass Level
|
||||
description: Bass level for EQ.
|
||||
selector:
|
||||
number:
|
||||
min: -10
|
||||
max: 10
|
||||
mode: box
|
||||
treble_level:
|
||||
name: Treble Level
|
||||
description: Treble level for EQ.
|
||||
selector:
|
||||
number:
|
||||
min: -10
|
||||
max: 10
|
||||
mode: box
|
||||
|
||||
play_queue:
|
||||
name: Play queue
|
||||
|
@ -190,6 +190,8 @@ class SonosSpeaker:
|
||||
self.muted: bool | None = None
|
||||
self.night_mode: bool | None = None
|
||||
self.dialog_mode: bool | None = None
|
||||
self.bass_level: int | None = None
|
||||
self.treble_level: int | None = None
|
||||
|
||||
# Grouping
|
||||
self.coordinator: SonosSpeaker | None = None
|
||||
@ -460,6 +462,12 @@ class SonosSpeaker:
|
||||
if "dialog_level" in variables:
|
||||
self.dialog_mode = variables["dialog_level"] == "1"
|
||||
|
||||
if "bass_level" in variables:
|
||||
self.bass_level = variables["bass_level"]
|
||||
|
||||
if "treble_level" in variables:
|
||||
self.treble_level = variables["treble_level"]
|
||||
|
||||
self.async_write_entity_states()
|
||||
|
||||
#
|
||||
@ -982,6 +990,8 @@ class SonosSpeaker:
|
||||
self.muted = self.soco.mute
|
||||
self.night_mode = self.soco.night_mode
|
||||
self.dialog_mode = self.soco.dialog_mode
|
||||
self.bass_level = self.soco.bass
|
||||
self.treble_level = self.soco.treble
|
||||
|
||||
def update_media(self, event: SonosEvent | None = None) -> None:
|
||||
"""Update information about currently playing media."""
|
||||
|
Loading…
x
Reference in New Issue
Block a user