Skip to content

Instantly share code, notes, and snippets.

@Ante987
Last active May 21, 2021 13:57
Show Gist options
  • Save Ante987/80c376901fa5f2bd9d2197734ec49e80 to your computer and use it in GitHub Desktop.
Save Ante987/80c376901fa5f2bd9d2197734ec49e80 to your computer and use it in GitHub Desktop.
Change/reset speaker volume
blueprint:
name: Set volyme of speakers based of time of day
description: Set volyme to different level on different times a day
domain: automation
input:
daytime_starts:
name: Time of day
description: Change level depending of time of day, Daytime level
default: '07:00:00'
selector:
time:
daytime_ends:
name: Time of night
description: Change level depending of time of day, Nighttime level
default: '20:00:00'
selector:
time:
volume_day:
name: Set volume day
description: The volume you want your media player to be reset to
default: '0.50'
selector:
number:
min: '0.00'
max: '1.00'
step: '0.10'
mode: slider
volume_night:
name: Set volume night
description: The volume you want your media player to be reset to
default: '0.10'
selector:
number:
min: '0.00'
max: '1.00'
step: '0.10'
mode: slider
filter:
name: Filter players
description: Players to be reset or not. Only
entities are supported, devices must be expanded!
default:
entity_id: []
selector:
target:
entity:
domain: media_player
include_exclude:
name: Filter invert
description: Turn off to reset choosen and on to choose all other
default: true
selector:
boolean: {}
variables:
filter: !input 'filter'
player: >
{% set result = namespace(player=[]) %}
{% for state in states.media_player %}
{% if include_exclude == 'true' %}
{% if not state.state == 'playing' and not state.entity_id in filter.entity_id %}
{% set result.player = result.player + [state.entity_id] %}
{% endif %}
{% else %}
{% if not state.state == 'playing' and state.entity_id in filter.entity_id %}
{% set result.player = result.player + [state.entity_id] %}
{% endif %}
{% endif %}
{% endfor %}
{{result.player|join(',')}}
trigger:
- platform: time
at: !input 'daytime_starts'
- platform: time
at: !input 'daytime_ends'
action:
- choose:
- conditions:
- after: !input 'daytime_starts'
before: !input 'daytime_ends'
condition: time
sequence:
- service: media_player.volume_set
data_template:
entity_id: '{{ player }}'
volume_level: !input 'volume_day'
default:
- service: media_player.volume_set
data_template:
entity_id: '{{ player }}'
volume_level: !input 'volume_night'
mode: 'single'
@DeepCoreSystem
Copy link

Hi,
the statement 'Players not to be reset or not.' for the filter option is not clear because there are two-times the word 'not' in it.
Please clarify!

@Ante987
Copy link
Author

Ante987 commented Apr 5, 2021

Hi,
the statement 'Players not to be reset or not.' for the filter option is not clear because there are two-times the word 'not' in it.
Please clarify!

It's a typo I've missed. Changing it now. Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment