-
-
Save PilaScat/a66251ed04d513642fb18cd99160ec0e to your computer and use it in GitHub Desktop.
Automatically adjusts the volume of selected media players based on the time of day.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| blueprint: | |
| name: Set Speaker Volume Based on Time of Day | |
| description: > | |
| Automatically adjusts the volume of selected media players | |
| based on the time of day. Players currently playing are skipped | |
| to avoid interrupting active media. | |
| domain: automation | |
| input: | |
| media_players: | |
| name: Media Players | |
| description: Select the media players to control | |
| selector: | |
| entity: | |
| domain: media_player | |
| multiple: true | |
| daytime_starts: | |
| name: Daytime starts | |
| description: Time when daytime volume should be applied | |
| default: "07:00:00" | |
| selector: | |
| time: | |
| daytime_ends: | |
| name: Nighttime starts | |
| description: Time when nighttime volume should be applied | |
| default: "20:00:00" | |
| selector: | |
| time: | |
| volume_day: | |
| name: Daytime volume | |
| description: Volume level during the day | |
| default: 0.5 | |
| selector: | |
| number: | |
| min: 0.0 | |
| max: 1.0 | |
| step: 0.05 | |
| mode: slider | |
| volume_night: | |
| name: Nighttime volume | |
| description: Volume level during the night | |
| default: 0.1 | |
| selector: | |
| number: | |
| min: 0.0 | |
| max: 1.0 | |
| step: 0.05 | |
| mode: slider | |
| variables: | |
| players_input: !input media_players | |
| active_players: > | |
| {{ players_input | |
| | select('is_state', 'playing') | |
| | list }} | |
| idle_players: > | |
| {{ players_input | |
| | reject('is_state', 'playing') | |
| | list }} | |
| trigger: | |
| - platform: time | |
| at: !input daytime_starts | |
| - platform: time | |
| at: !input daytime_ends | |
| condition: | |
| - condition: template | |
| value_template: "{{ idle_players | count > 0 }}" | |
| action: | |
| - choose: | |
| - conditions: | |
| - condition: time | |
| after: !input daytime_starts | |
| before: !input daytime_ends | |
| sequence: | |
| - service: media_player.volume_set | |
| data: | |
| volume_level: !input volume_day | |
| target: | |
| entity_id: "{{ idle_players }}" | |
| default: | |
| - service: media_player.volume_set | |
| data: | |
| volume_level: !input volume_night | |
| target: | |
| entity_id: "{{ idle_players }}" | |
| mode: single |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment