Files
home-assistant/packages/media/media.yaml
2022-05-16 13:41:07 -07:00

105 lines
3.6 KiB
YAML

# Media Player Package
# -----------------------------------------------------------------------------
# Media Player State Helpers
input_select:
ht_player_state:
name: Home Theater Player State
options:
- Idle
- Playing
- Paused
- Stopped
- System
- Offline
initial: Idle
# -----------------------------------------------------------------------------
# Media Player Scripts
script:
# Update the Player State when an input device changes state. The state of
# the overall player is taken from the state of the currently active input
# device to the receiver.
ht_player_state_update:
alias: Home Theater Player State Update
mode: restart
sequence:
- choose:
# Receiver Off (prevents error with source attribute not available
# when receiver is off; normally this is set directly by the Turn-Off
# to Idle automation)
- conditions:
- condition: state
entity_id: media_player.living_room_receiver
state: 'off'
sequence:
- service: input_select.select_option
target:
entity_id: input_select.ht_player_state
data:
option: Idle
# Roku Input
- conditions:
- condition: "{{ state_attr('media_player.living_room_receiver', 'source') == 'Roku Ultra' }}"
sequence:
- choose:
- conditions: "{{ is_state('media_player.living_room_roku', 'playing') }}"
sequence:
- service: input_select.select_option
target:
entity_id: input_select.ht_player_state
data:
option: Playing
- conditions:
- condition: template
value_template: "{{ is_state('media_player.living_room_roku', 'paused') }}"
sequence:
- service: input_select.select_option
target:
entity_id: input_select.ht_player_state
data:
option: Paused
- conditions:
- condition: or
conditions:
- condition: template
value_template: "{{ is_state('media_player.living_room_roku', 'stopped') }}"
- condition: template
value_template: "{{ is_state('media_player.living_room_roku', 'idle') }}"
sequence:
- service: input_select.select_option
target:
entity_id: input_select.ht_player_state
data:
option: Stopped
# -----------------------------------------------------------------------------
# Media Player Automations
automation:
- alias: Home Theater Idle Timeout
trigger:
- platform: state
entity_id: input_select.ht_player_state
to: Stopped
for:
minutes: 10
action:
- service: input_select.select_option
target:
entity_id: "{{ trigger.entity_id }}"
data:
option: Idle
- alias: Home Theater Receiver Turn-On/Off
trigger:
- platform: homeassistant
event: start
- platform: state
entity_id: media_player.living_room_receiver
action:
- service: script.ht_player_state_update