[ { "id": "Fetch track names", "automation": "- alias: Fetch track names\n description: ''\n triggers:\n - trigger: state\n entity_id:\n - media_player.bathroom\n attribute: queue_position\n - trigger: state\n entity_id:\n - media_player.bathroom\n attribute: queue_size\n - trigger: state\n entity_id:\n - media_player.bathroom\n to: playing\n conditions: []\n actions:\n - action: sonos.get_queue\n metadata: {}\n data: {}\n response_variable: queue\n target:\n entity_id: media_player.bathroom\n - action: input_text.set_value\n metadata: {}\n data:\n value: \"{% set queue_length = queue[\\\"media_player.bathroom\\\"] | length %} {%\\\n \\ set title = queue[\\\"media_player.bathroom\\\"][(state_attr(\\\"media_player.bathroom\\\"\\\n ,\\\"queue_position\\\") + queue_length - 3) % queue_length][\\\"media_title\\\"]\\\n \\ %} {% if title | length > 16 %}\\n {{ title[0:14] }}...\\n{% else %}\\n {{\\\n \\ title }}\\n{% endif %}\"\n entity_id: input_text.previous_previous_track\n - action: input_text.set_value\n metadata: {}\n data:\n value: \"{% set queue_length = queue[\\\"media_player.bathroom\\\"] | length %} {%\\\n \\ set title = queue[\\\"media_player.bathroom\\\"][(state_attr(\\\"media_player.bathroom\\\"\\\n ,\\\"queue_position\\\") + queue_length - 2) % queue_length][\\\"media_title\\\"]\\\n \\ %} {% if title | length > 16 %}\\n {{ title[0:14] }}...\\n{% else %}\\n {{\\\n \\ title }}\\n{% endif %} \"\n entity_id: input_text.previous_track\n - action: input_text.set_value\n metadata: {}\n data:\n value: \"{% set queue_length = queue[\\\"media_player.bathroom\\\"] | length %} {%\\\n \\ set title = queue[\\\"media_player.bathroom\\\"][(state_attr(\\\"media_player.bathroom\\\"\\\n ,\\\"queue_position\\\") + queue_length - 1) % queue_length][\\\"media_title\\\"]\\\n \\ %} {% if title | length > 16 %}\\n {{ title[0:14] }}...\\n{% else %}\\n {{\\\n \\ title }}\\n{% endif %} \"\n entity_id: input_text.current_track\n - action: input_text.set_value\n metadata: {}\n data:\n value: \"{% set queue_length = queue[\\\"media_player.bathroom\\\"] | length %} {%\\\n \\ set title = queue[\\\"media_player.bathroom\\\"][(state_attr(\\\"media_player.bathroom\\\"\\\n ,\\\"queue_position\\\") + queue_length) % queue_length][\\\"media_title\\\"] %} {%\\\n \\ if title | length > 16 %}\\n {{ title[0:14] }}...\\n{% else %}\\n {{ title\\\n \\ }}\\n{% endif %}\"\n entity_id: input_text.next_track\n - action: input_text.set_value\n metadata: {}\n data:\n value: \"{% set queue_length = queue[\\\"media_player.bathroom\\\"] | length %} {%\\\n \\ set title = queue[\\\"media_player.bathroom\\\"][(state_attr(\\\"media_player.bathroom\\\"\\\n ,\\\"queue_position\\\") + queue_length + 1) % queue_length][\\\"media_title\\\"]\\\n \\ %} {% if title | length > 16 %}\\n {{ title[0:14] }}...\\n{% else %}\\n {{\\\n \\ title }}\\n{% endif %}\"\n entity_id: input_text.next_next_track\n mode: single", "config": [ { "name": "bathroom media player", "room": "bathroom", "type": "media_player", "id": { "entity_id": "media_player.bathroom", "device_id": null } }, { "name": "previous previous track input", "room": null, "type": "input_text", "id": { "entity_id": "input_text.previous_previous_track", "device_id": null } }, { "name": "previous track input", "room": null, "type": "input_text", "id": { "entity_id": "input_text.previous_track", "device_id": null } }, { "name": "current track input", "room": null, "type": "input_text", "id": { "entity_id": "input_text.current_track", "device_id": null } }, { "name": "next track input", "room": null, "type": "input_text", "id": { "entity_id": "input_text.next_track", "device_id": null } }, { "name": "next next track input", "room": null, "type": "input_text", "id": { "entity_id": "input_text.next_next_track", "device_id": null } } ] } ]