Files
sarah/config/packages/modules/media/music.yaml
T

112 lines
3.3 KiB
YAML

# https://www.home-assistant.io/integrations/sonos
sonos:
media_player:
hosts: !secret sonos_hosts
# https://www.home-assistant.io/integrations/spotify
spotify:
client_id: !secret spotify_client_id
client_secret: !secret spotify_client_secret
group:
all_sonos:
name: All Sonos
entities:
- media_player.master_bedroom
- media_player.living_room
- media_player.kitchen
- media_player.bathroom
input_select:
sonos_leader:
name: Sonos Leader
icon: mdi:speaker
options:
- media_player.master_bedroom
- media_player.living_room
- media_player.kitchen
binary_sensor:
- platform: template
sensors:
sonos_recoverable:
friendly_name: Sonos recoverable
entity_id: media_player.master_bedroom
value_template: >-
{% if state_attr('media_player.master_bedroom', 'media_content_id').startswith('x-sonos-spotify:spotify')
or state_attr('media_player.master_bedroom', 'media_content_id').startswith('x-sonosapi-hls-static') %}
True
{% else %}
False
{% endif %}
sonos_leader_paused:
value_template: "{{ is_state(states.input_select.sonos_leader.state, 'paused') }}"
entity_id:
- input_select.sonos_leader
- media_player.master_bedroom
- media_player.kitchen
- media_player.living_room
script:
music_play:
alias: Music · Play
sequence:
- service: script.music_join_sonoses
- service: media_player.volume_set
entity_id: group.all_sonos
data_template:
volume_level: "{{ volume_level | default(0.3) }}"
- service: media_player.shuffle_set
data_template:
entity_id: "{{ states('input_select.sonos_leader') }}"
shuffle: "{{ shuffle | default(true) }}"
- service: media_player.select_source
data_template:
entity_id: "{{ states('input_select.sonos_leader') }}"
source: "{{ playlist | default('Evening Chill') }}"
music_join_sonoses:
alias: Music · Join Sonoses
sequence:
- service: sonos.join
entity_id: group.all_sonos
data_template:
master: "{{ states('input_select.sonos_leader') }}"
automation:
- alias: Music · Play/Pause on Magic Cube Knock
trigger:
platform: event
event_type: zha_event
event_data:
device_ieee: !secret magic_cube_ieee
command: knock
action:
- service: media_player.media_play_pause
data_template:
entity_id: "{{ states('input_select.sonos_leader') }}"
- alias: Music · Volume down on Magic Cube rotate left
trigger:
platform: event
event_type: zha_event
event_data:
device_ieee: !secret magic_cube_ieee
command: rotate_left
action:
- service: media_player.volume_down
data_template:
entity_id: "{{ states('input_select.sonos_leader') }}"
- alias: Music · Volume up on Magic Cube rotate right
trigger:
platform: event
event_type: zha_event
event_data:
device_ieee: !secret magic_cube_ieee
command: rotate_right
action:
- service: media_player.volume_up
data_template:
entity_id: "{{ states('input_select.sonos_leader') }}"