# 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: name: 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: "{{ 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 - condition: condition: or conditions: - "{{ is_state('media_player.living_room_roku', 'stopped' }}" - "{{ 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 actions: - 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 actions: - service: script.ht_player_state_update