# Media Player Package # ----------------------------------------------------------------------------- # Media Player State Helpers input_select: ht_player_state: name: Home Theater Player State options: - Idle - Playing - Paused - Stopped - System - Offline - Unknown 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 - conditions: "{{ is_state('media_player.living_room_receiver', 'off') }}" sequence: - service: input_select.select_option target: entity_id: input_select.ht_player_state data: option: Idle # Roku Input - conditions: "{{ 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: "{{ 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: and conditions: - condition: template value_template: "{{ is_state('media_player.living_room_roku', 'on') }}" - condition: template value_template: "{{ not is_state('input_select.ht_player_state', 'Idle') }}" sequence: - service: input_select.select_option target: entity_id: input_select.ht_player_state data: option: Stopped - conditions: "{{ is_state('media_player.living_room_roku', 'off') }}" sequence: - service: input_select.select_option target: entity_id: input_select.ht_player_state data: option: Idle # Fallback to Unknown State default: - service: input_select.select_option target: entity_id: input_select.ht_player_state data: option: Unknown # ----------------------------------------------------------------------------- # 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