It is probably taking the tap action as the selection. Why set a canned set of options inside? Just create the input_select with the options originally like through a helper. Or if you plan on them being dynamic, use some automation to set them.
Example: In my code for TV remotes I have a few input_selects that can contain favorites or channels/inputs. These are different by TV but they do not change frequently. I prefer to keep them all in one place for easy maintenance. So I created a JSON file that contains information (partial one below) :
{
"tvs": [
{
"name": "patio_vizio",
"ip": "192.168.2.90",
"port": 7345,
"auth": "xxxxxxxxxx",
"clientAddr": "xxxxxxxxxxxxx",
"favorites": [
{
"callsign": "ESPNHD",
"channel": 206
},
{
"callsign": "ESPN2HD",
"channel": 209
},
{
"callsign": "SMXHD",
"channel": 205
},
{
"callsign": "NFLHD",
"channel": 212
},
{
"callsign": "NHLHD",
"channel": 215
},
{
"callsign": "MLBHD",
"channel": 213
},
{
"callsign": "NBAHD",
"channel": 216
},
{
"callsign": "GolfHD",
"channel": 218
},
{
"callsign": "FS1HD",
"channel": 219
},
{
"callsign": "NBCSHD",
"channel": 220
},
{
"callsign": "CBSSHND",
"channel": 221
},
{
"callsign": "RedZone",
"channel": 702
},
{
"callsign": "BTNHD",
"channel": 610
}
],
"inputs": [
{
"fname": "Power off",
"input": "Power off"
},
{
"fname": "DirecTV",
"input": "HDMI-1"
},
{
"fname": "Smartcast",
"input": "CAST"
},
{
"fname": "Netflix",
"input": "Netflix"
},
{
"fname": "HBOMax",
"input": "HBO Max"
},
{
"fname": "YouTube",
"input": "YouTube"
},
{
"fname": "Amazon Prime",
"input": "Prime"
},
{
"fname": "Hulu",
"input": "Hulu"
},
{
"fname": "AppleTV",
"input": "Apple TV"
},
{
"fname": "Discovery+",
"input": "discovery+"
},
{
"fname": "Disney+",
"input": "Disney+"
},
{
"fname": "Fox Now",
"input": "FOX NOW"
}
]
}
... snipped ...
The data from this JSON is read into a sensor:
- platform: rest
name: vizio_tvs
resource: http://192.168.2.245:8123/local/Vizio/vizio_tvs.json
value_template: "{{ now() }}"
json_attributes:
- tvs
Then an automation that runs on starting HA that will populate various TV input_select’s through the input_select.set_options service:
- id: '1659026711599'
alias: Build Vizio Inputs
description: ''
trigger:
- platform: state
entity_id:
- sensor.vizio_tvs
condition: []
action:
- service: input_select.set_options
data_template:
entity_id: input_select.office_vizio_input
options: '{% set ttv = ''office_vizio'' %} {% for tvs in state_attr(''sensor.vizio_tvs'',''tvs'') %}
{% if tvs.name == ttv %} {{tvs.inputs | map(attribute=''fname'') | list }}
{% endif %} {% endfor %}'
- service: input_select.set_options
data_template:
entity_id: input_select.patio_vizio_input
options: '{% set ttv = ''patio_vizio'' %} {% for tvs in state_attr(''sensor.vizio_tvs'',''tvs'') %}
{% if tvs.name == ttv %} {{tvs.inputs | map(attribute=''fname'') | list }}
{% endif %} {% endfor %}'
- service: input_select.set_options
data_template:
entity_id: input_select.kitchen_vizio_input
options: '{% set ttv = ''kitchen_vizio'' %} {% for tvs in state_attr(''sensor.vizio_tvs'',''tvs'') %}
{% if tvs.name == ttv %} {{tvs.inputs | map(attribute=''fname'') | list }}
{% endif %} {% endfor %}'
- service: input_select.set_options
data_template:
entity_id: input_select.bedroom_vizio_input
options: '{% set ttv = ''bedroom_vizio'' %} {% for tvs in state_attr(''sensor.vizio_tvs'',''tvs'') %}
{% if tvs.name == ttv %} {{tvs.inputs | map(attribute=''fname'') | list }}
{% endif %} {% endfor %}'
mode: single
I have many others that are more dynamic and have different triggers to build out the options.