From 88cffc86bb5456dfd374f62ae470f27f8746c996 Mon Sep 17 00:00:00 2001 From: jjlawren Date: Mon, 26 Jul 2021 14:58:13 -0500 Subject: [PATCH] Add crossfade control support to Sonos (#53228) --- homeassistant/components/sonos/media_player.py | 6 ++++++ homeassistant/components/sonos/services.yaml | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/homeassistant/components/sonos/media_player.py b/homeassistant/components/sonos/media_player.py index ecd22c89a87..0948e971baf 100644 --- a/homeassistant/components/sonos/media_player.py +++ b/homeassistant/components/sonos/media_player.py @@ -120,6 +120,7 @@ ATTR_INCLUDE_LINKED_ZONES = "include_linked_zones" ATTR_MASTER = "master" ATTR_WITH_GROUP = "with_group" ATTR_BUTTONS_ENABLED = "buttons_enabled" +ATTR_CROSSFADE = "crossfade" ATTR_NIGHT_SOUND = "night_sound" ATTR_SPEECH_ENHANCE = "speech_enhance" ATTR_QUEUE_POSITION = "queue_position" @@ -231,6 +232,7 @@ async def async_setup_entry( SERVICE_SET_OPTION, { vol.Optional(ATTR_BUTTONS_ENABLED): cv.boolean, + vol.Optional(ATTR_CROSSFADE): cv.boolean, vol.Optional(ATTR_NIGHT_SOUND): cv.boolean, vol.Optional(ATTR_SPEECH_ENHANCE): cv.boolean, vol.Optional(ATTR_STATUS_LIGHT): cv.boolean, @@ -609,6 +611,7 @@ class SonosMediaPlayerEntity(SonosEntity, MediaPlayerEntity): def set_option( self, buttons_enabled: bool | None = None, + crossfade: bool | None = None, night_sound: bool | None = None, speech_enhance: bool | None = None, status_light: bool | None = None, @@ -617,6 +620,9 @@ class SonosMediaPlayerEntity(SonosEntity, MediaPlayerEntity): if buttons_enabled is not None: self.soco.buttons_enabled = buttons_enabled + if crossfade is not None: + self.soco.cross_fade = crossfade + if night_sound is not None and self.speaker.night_mode is not None: self.soco.night_mode = night_sound diff --git a/homeassistant/components/sonos/services.yaml b/homeassistant/components/sonos/services.yaml index 365bdc29b37..76bc656f990 100644 --- a/homeassistant/components/sonos/services.yaml +++ b/homeassistant/components/sonos/services.yaml @@ -100,6 +100,12 @@ set_option: example: "true" selector: boolean: + crossfade: + name: Crossfade + description: Enable crossfade on the device + example: "true" + selector: + boolean: night_sound: name: Night sound description: Enable Night Sound mode