mirror of
https://github.com/home-assistant/core.git
synced 2025-07-12 15:57:06 +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_SPEECH_ENHANCE = "speech_enhance"
|
||||||
ATTR_QUEUE_POSITION = "queue_position"
|
ATTR_QUEUE_POSITION = "queue_position"
|
||||||
ATTR_STATUS_LIGHT = "status_light"
|
ATTR_STATUS_LIGHT = "status_light"
|
||||||
|
ATTR_EQ_BASS = "bass_level"
|
||||||
|
ATTR_EQ_TREBLE = "treble_level"
|
||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
@ -221,7 +223,6 @@ async def async_setup_entry(
|
|||||||
{
|
{
|
||||||
vol.Required(ATTR_ALARM_ID): cv.positive_int,
|
vol.Required(ATTR_ALARM_ID): cv.positive_int,
|
||||||
vol.Optional(ATTR_TIME): cv.time,
|
vol.Optional(ATTR_TIME): cv.time,
|
||||||
vol.Optional(ATTR_VOLUME): cv.small_float,
|
|
||||||
vol.Optional(ATTR_ENABLED): cv.boolean,
|
vol.Optional(ATTR_ENABLED): cv.boolean,
|
||||||
vol.Optional(ATTR_INCLUDE_LINKED_ZONES): 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_NIGHT_SOUND): cv.boolean,
|
||||||
vol.Optional(ATTR_SPEECH_ENHANCE): cv.boolean,
|
vol.Optional(ATTR_SPEECH_ENHANCE): cv.boolean,
|
||||||
vol.Optional(ATTR_STATUS_LIGHT): 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",
|
"set_option",
|
||||||
)
|
)
|
||||||
@ -615,6 +622,8 @@ class SonosMediaPlayerEntity(SonosEntity, MediaPlayerEntity):
|
|||||||
night_sound: bool | None = None,
|
night_sound: bool | None = None,
|
||||||
speech_enhance: bool | None = None,
|
speech_enhance: bool | None = None,
|
||||||
status_light: bool | None = None,
|
status_light: bool | None = None,
|
||||||
|
bass_level: int | None = None,
|
||||||
|
treble_level: int | None = None,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Modify playback options."""
|
"""Modify playback options."""
|
||||||
if buttons_enabled is not None:
|
if buttons_enabled is not None:
|
||||||
@ -632,6 +641,12 @@ class SonosMediaPlayerEntity(SonosEntity, MediaPlayerEntity):
|
|||||||
if status_light is not None:
|
if status_light is not None:
|
||||||
self.soco.status_light = status_light
|
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()
|
@soco_error()
|
||||||
def play_queue(self, queue_position: int = 0) -> None:
|
def play_queue(self, queue_position: int = 0) -> None:
|
||||||
"""Start playing the queue."""
|
"""Start playing the queue."""
|
||||||
@ -649,6 +664,12 @@ class SonosMediaPlayerEntity(SonosEntity, MediaPlayerEntity):
|
|||||||
ATTR_SONOS_GROUP: self.speaker.sonos_group_entities
|
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:
|
if self.speaker.night_mode is not None:
|
||||||
attributes[ATTR_NIGHT_SOUND] = self.speaker.night_mode
|
attributes[ATTR_NIGHT_SOUND] = self.speaker.night_mode
|
||||||
|
|
||||||
|
@ -121,6 +121,22 @@ set_option:
|
|||||||
description: Enable Status (LED) Light
|
description: Enable Status (LED) Light
|
||||||
selector:
|
selector:
|
||||||
boolean:
|
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:
|
play_queue:
|
||||||
name: Play queue
|
name: Play queue
|
||||||
|
@ -190,6 +190,8 @@ class SonosSpeaker:
|
|||||||
self.muted: bool | None = None
|
self.muted: bool | None = None
|
||||||
self.night_mode: bool | None = None
|
self.night_mode: bool | None = None
|
||||||
self.dialog_mode: bool | None = None
|
self.dialog_mode: bool | None = None
|
||||||
|
self.bass_level: int | None = None
|
||||||
|
self.treble_level: int | None = None
|
||||||
|
|
||||||
# Grouping
|
# Grouping
|
||||||
self.coordinator: SonosSpeaker | None = None
|
self.coordinator: SonosSpeaker | None = None
|
||||||
@ -460,6 +462,12 @@ class SonosSpeaker:
|
|||||||
if "dialog_level" in variables:
|
if "dialog_level" in variables:
|
||||||
self.dialog_mode = variables["dialog_level"] == "1"
|
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()
|
self.async_write_entity_states()
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -982,6 +990,8 @@ class SonosSpeaker:
|
|||||||
self.muted = self.soco.mute
|
self.muted = self.soco.mute
|
||||||
self.night_mode = self.soco.night_mode
|
self.night_mode = self.soco.night_mode
|
||||||
self.dialog_mode = self.soco.dialog_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:
|
def update_media(self, event: SonosEvent | None = None) -> None:
|
||||||
"""Update information about currently playing media."""
|
"""Update information about currently playing media."""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user