104 lines
3.6 KiB
YAML
104 lines
3.6 KiB
YAML
automation:
|
|
- alias: Toggle Sonos night mode
|
|
action:
|
|
- service: sonos.set_option
|
|
entity_id: media_player.den
|
|
data_template:
|
|
night_sound: >-
|
|
{% set start = states.input_datetime.sonos_nightmode_start.attributes %}
|
|
{% set end = states.input_datetime.sonos_nightmode_end.attributes %}
|
|
{% set now_ = (now().hour, now().minute, now().second) %}
|
|
{% set start_ = (start.hour, start.minute, start.second) %}
|
|
{% set end_ = (end.hour, end.minute, end.second) %}
|
|
{% if start_ > end_ -%}
|
|
{{ now_ >= start_ or now_ < end_ }}
|
|
{%- else -%}
|
|
{{ now_ >= start_ and now_ < end_ }}
|
|
{%- endif -%}
|
|
trigger:
|
|
- platform: template
|
|
value_template: "{{ states('sensor.time') == (states.input_datetime.sonos_nightmode_start.attributes.timestamp | int | timestamp_custom('%H:%M', False)) }}"
|
|
- platform: template
|
|
value_template: "{{ states('sensor.time') == (states.input_datetime.sonos_nightmode_end.attributes.timestamp | int | timestamp_custom('%H:%M', False)) }}"
|
|
sensor:
|
|
- platform: time_date
|
|
display_options:
|
|
- time
|
|
binary_sensor:
|
|
- platform: template
|
|
sensors:
|
|
den_night_mode:
|
|
friendly_name: Sonos Den Night Mode
|
|
value_template: >-
|
|
{{ state_attr('media_player.den', 'night_sound') }}
|
|
input_datetime:
|
|
sonos_nightmode_start:
|
|
name: Start Night Mode
|
|
has_date: false
|
|
has_time: true
|
|
initial: '22:30'
|
|
sonos_nightmode_end:
|
|
name: End Night Mode
|
|
has_date: false
|
|
has_time: true
|
|
initial: '08:00'
|
|
script:
|
|
sonos_tts:
|
|
alias: "Sonos TTS"
|
|
sequence:
|
|
- service: sonos.snapshot
|
|
data_template:
|
|
entity_id: "{{ sonos_entity|default('media_player.den') }}"
|
|
- service: sonos.unjoin
|
|
data_template:
|
|
entity_id: "{{ sonos_entity|default('media_player.den') }}"
|
|
- service: media_player.volume_set
|
|
data_template:
|
|
entity_id: "{{ sonos_entity|default('media_player.den') }}"
|
|
volume_level: "{{ volume|default(0.5) }}"
|
|
- service: media_player.play_media
|
|
data:
|
|
entity_id: media_player.den
|
|
media_content_id: https://hass.phoenixinquis.is-a-geek.org/local/chime.ogg
|
|
media_content_type: music
|
|
- delay: '00:00:03'
|
|
- service: tts.amazon_polly_say
|
|
data_template:
|
|
entity_id: "{{ sonos_entity|default('media_player.den') }}"
|
|
message: "{{ message }}"
|
|
- delay: "{{ delay|default('00:00:00') }}"
|
|
- wait_template: "{{ is_state(sonos_entity|default('media_player.den'), 'playing') }}"
|
|
timeout: '00:00:05'
|
|
- wait_template: "{{ not is_state(sonos_entity|default('media_player.den'), 'playing') }}"
|
|
timeout: '00:02:00'
|
|
- service: sonos.restore
|
|
data_template:
|
|
entity_id: "{{ sonos_entity|default('media_player.den') }}"
|
|
sonos_toggle_night_mode:
|
|
alias: "Toggle Sonos Night Mode"
|
|
sequence:
|
|
- service: sonos.set_option
|
|
data_template:
|
|
entity_id: >-
|
|
{{ sonos_entity|default('media_player.den') }}
|
|
night_sound: >-
|
|
{{ not state_attr('media_player.den', 'night_sound') }}
|
|
group:
|
|
sonos_players:
|
|
name: Sonos
|
|
entities:
|
|
- media_player.den
|
|
sonos_automations:
|
|
name: Automations
|
|
entities:
|
|
- automation.toggle_sonos_night_mode
|
|
sonos_options:
|
|
name: Options
|
|
entities:
|
|
- input_datetime.sonos_nightmode_start
|
|
- input_datetime.sonos_nightmode_end
|
|
sonos_scripts:
|
|
name: Scripts
|
|
entities:
|
|
- script.sonos_tts
|