- id: 8f59d1bc-33a5-467b-9909-487d1a534452 alias: Media players - Event - Backup volume at shutdown triggers: - trigger: homeassistant event: shutdown actions: - repeat: for_each: '{{ states.media_player | selectattr(''attributes.volume_level'', ''defined'') | map(attribute=''entity_id'') | list }} ' sequence: - alias: Entity volume backup action: saver.set_variable data: name: '{{ repeat.item }}.volume_level' value: '{{ state_attr(repeat.item, ''volume_level'') }}' - id: 21318363-635e-4850-bc4b-1389c76f8df8 alias: Media players - Event - Restore volume at startup triggers: - trigger: homeassistant event: start actions: - repeat: for_each: '{{ states.media_player | rejectattr(''attributes.volume_level'', ''defined'') | map(attribute=''entity_id'') | list }} ' sequence: - variables: saver_name: '{{repeat.item}}.volume_level' - if: '{{ states.saver.saver.state is defined and saver_name in state_attr(''saver.saver'', ''variables'')}}' then: - alias: Entity volume restore action: python_script.set_state data: entity_id: '{{repeat.item}}' volume_level: "{% if states.saver.saver.state is defined and saver_name\ \ in state_attr(\"saver.saver\", \"variables\") %}\n {{state_attr(\"\ saver.saver\", \"variables\")[saver_name] | float(0.6) | round(2)}}\n\ {% else %}\n 0.6\n{% endif %}\n" - id: f6845dff-4f8c-462c-b439-8db9ea67dc10 alias: Media players - Event - Backup volume_level mode: queued triggers: - trigger: event event_type: state_changed conditions: - '{{ trigger.event.data.entity_id.startswith(''media_player.'') }}' - '{{ ''volume_level'' in trigger.event.data.new_state.attributes }}' variables: entity_id: '{{ trigger.event.data.entity_id }}' actions: - variables: volume_level: '{{ trigger.event.data.new_state.attributes[''volume_level''] | float(0.6) | round(2) }}' - action: saver.set_variable data: name: '{{ entity_id }}.volume_level' value: '{{ volume_level }}'