mirror of
https://github.com/GeorgeSG/sarah.git
synced 2026-11-04 19:48:44 +00:00
Sonos grouping shortcuts
This commit is contained in:
@@ -0,0 +1,20 @@
|
|||||||
|
blueprint:
|
||||||
|
name: Sonos · Join to master
|
||||||
|
domain: script
|
||||||
|
input:
|
||||||
|
join_player:
|
||||||
|
name: Sonos player to join to master
|
||||||
|
selector:
|
||||||
|
device:
|
||||||
|
integration: media_player
|
||||||
|
|
||||||
|
sequence:
|
||||||
|
- service: sonos.join
|
||||||
|
entity_id: !input join_player
|
||||||
|
data_template:
|
||||||
|
master: >-
|
||||||
|
{% if is_state('binary_sensor.sonos_is_living_room_master', 'on') %}
|
||||||
|
media_player.living_room
|
||||||
|
{% else %}
|
||||||
|
media_player.master_bedroom
|
||||||
|
{% endif %}
|
||||||
@@ -46,3 +46,11 @@
|
|||||||
template: v3_button
|
template: v3_button
|
||||||
entity: media_player.bathroom
|
entity: media_player.bathroom
|
||||||
name: Sonos
|
name: Sonos
|
||||||
|
|
||||||
|
- type: custom:button-card
|
||||||
|
template: v3_button
|
||||||
|
entity: binary_sensor.sonos_is_bathroom_grouped
|
||||||
|
name: Sonos Grouped
|
||||||
|
tap_action:
|
||||||
|
action: call-service
|
||||||
|
service: "[[[ return entity.state == 'on' ? 'script.sonos_bathroom_unjoin' : 'script.sonos_bathroom_join' ]]]"
|
||||||
|
|||||||
@@ -56,16 +56,24 @@ cards:
|
|||||||
template: v3_button
|
template: v3_button
|
||||||
entity: media_player.kitchen
|
entity: media_player.kitchen
|
||||||
name: Sonos
|
name: Sonos
|
||||||
|
- type: custom:button-card
|
||||||
|
template: v3_button
|
||||||
|
entity: binary_sensor.sonos_is_kitchen_grouped
|
||||||
|
name: Sonos Grouped
|
||||||
|
tap_action:
|
||||||
|
action: call-service
|
||||||
|
service: "[[[ return entity.state == 'on' ? 'script.sonos_kitchen_unjoin' : 'script.sonos_kitchen_join' ]]]"
|
||||||
- type: custom:button-card
|
- type: custom:button-card
|
||||||
template: v3_button_radiator
|
template: v3_button_radiator
|
||||||
entity: climate.kitchen_radiator_mode
|
entity: climate.kitchen_radiator_mode
|
||||||
name: Radiator
|
name: Radiator
|
||||||
|
|
||||||
|
- type: horizontal-stack
|
||||||
|
cards:
|
||||||
- type: custom:button-card
|
- type: custom:button-card
|
||||||
template: v3_button
|
template: v3_button
|
||||||
entity: vacuum.vacuum
|
entity: vacuum.vacuum
|
||||||
name: Vacuum
|
name: Vacuum
|
||||||
- type: horizontal-stack
|
|
||||||
cards:
|
|
||||||
- type: custom:button-card
|
- type: custom:button-card
|
||||||
template: v3_button_brita_water
|
template: v3_button_brita_water
|
||||||
- type: custom:button-card
|
- type: custom:button-card
|
||||||
|
|||||||
@@ -34,7 +34,6 @@ automation:
|
|||||||
entity_id: media_player.bathroom
|
entity_id: media_player.bathroom
|
||||||
data_template:
|
data_template:
|
||||||
volume_level: >-
|
volume_level: >-
|
||||||
|
|
||||||
{% if state_attr('media_player.bathroom', 'volume_level')|float > (states('input_number.bathroom_high_volume')|float - 0.05) %}
|
{% if state_attr('media_player.bathroom', 'volume_level')|float > (states('input_number.bathroom_high_volume')|float - 0.05) %}
|
||||||
0.25
|
0.25
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|||||||
@@ -24,17 +24,27 @@ binary_sensor:
|
|||||||
{% else %}
|
{% else %}
|
||||||
False
|
False
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
sonos_is_bedroom_master:
|
sonos_is_bedroom_master:
|
||||||
friendly_name: Sonos is Bedroom master
|
friendly_name: Sonos is Bedroom master
|
||||||
value_template: >-
|
value_template: >-
|
||||||
{% set group = state_attr('media_player.master_bedroom', 'group_members') %}
|
{% set group = state_attr('media_player.master_bedroom', 'group_members') %}
|
||||||
{{ group|length > 1 and group[0] == 'media_player.master_bedroom' }}
|
{{ group|length > 1 and group[0] == 'media_player.master_bedroom' }}
|
||||||
|
|
||||||
sonos_is_living_room_master:
|
sonos_is_living_room_master:
|
||||||
friendly_name: Sonos is Living room master
|
friendly_name: Sonos is Living room master
|
||||||
value_template: >-
|
value_template: >-
|
||||||
{% set group = state_attr('media_player.master_bedroom', 'group_members') %}
|
{% set group = state_attr('media_player.master_bedroom', 'group_members') %}
|
||||||
{{ group|length > 1 and group[0] == 'media_player.living_room' }}
|
{{ group|length > 1 and group[0] == 'media_player.living_room' }}
|
||||||
|
|
||||||
|
sonos_is_kitchen_grouped:
|
||||||
|
friendly_name: Sonos Kitchen is grouped
|
||||||
|
value_template: "{{ state_attr('media_player.kitchen', 'group_members')|length > 1 }}"
|
||||||
|
|
||||||
|
sonos_is_bathroom_grouped:
|
||||||
|
friendly_name: Sonos Bathroom is grouped
|
||||||
|
value_template: "{{ state_attr('media_player.bathroom', 'group_members')|length > 1 }}"
|
||||||
|
|
||||||
script:
|
script:
|
||||||
sonos_join_bedroom:
|
sonos_join_bedroom:
|
||||||
alias: Sonos · Join to Bedroom
|
alias: Sonos · Join to Bedroom
|
||||||
@@ -59,6 +69,32 @@ script:
|
|||||||
data:
|
data:
|
||||||
source: TV
|
source: TV
|
||||||
|
|
||||||
|
sonos_kitchen_unjoin:
|
||||||
|
alias: Sonos · Kitchen · Unjoin
|
||||||
|
sequence:
|
||||||
|
- service: sonos.unjoin
|
||||||
|
entity_id: media_player.kitchen
|
||||||
|
|
||||||
|
sonos_kitchen_join:
|
||||||
|
alias: Sonos · Kitchen · Join to master
|
||||||
|
use_blueprint:
|
||||||
|
path: sonos_join.yaml
|
||||||
|
input:
|
||||||
|
join_player: media_player.kitchen
|
||||||
|
|
||||||
|
sonos_bathroom_unjoin:
|
||||||
|
alias: Sonos · Bathroom · Unjoin
|
||||||
|
sequence:
|
||||||
|
- service: sonos.unjoin
|
||||||
|
entity_id: media_player.bathroom
|
||||||
|
|
||||||
|
sonos_bathroom_join:
|
||||||
|
alias: Sonos · Bathroom · Join to master
|
||||||
|
use_blueprint:
|
||||||
|
path: sonos_join.yaml
|
||||||
|
input:
|
||||||
|
join_player: media_player.bathroom
|
||||||
|
|
||||||
sonos_bathroom_up:
|
sonos_bathroom_up:
|
||||||
alias: Sonos · Bathroom up
|
alias: Sonos · Bathroom up
|
||||||
sequence:
|
sequence:
|
||||||
|
|||||||
Reference in New Issue
Block a user