Custom button card with input_select entity

Hi all,
I’m trying to define a service which will set the value of an input_select entity within a custom button card. So pushing the button should give me a roll down menu from which I can choose a value.
So now I’m using the following code:

type: custom:button-card
entity: input_select.setpoint_dhw
icon: mdi:cube
tap_action:
  action: call-service
  service: input_select.set_options
  service_data:
    entity_id: input_select.setpoint_dhw
    options:
      - '20'
      - '30'
      - '40'
      - '50'
      - '60'

But now the input_select entity value just changes to the first value “20”.
Any ideas how i could get a selection possibility
Thx
PPee

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.