Input_text as input for input_select

using the 2 techniques you both suggested, and Yamllint checked, seems to be fine both ways. The initial state is there as an example, and ‘pattern’ checks if one fills it put correctly :wink:

full package fyi:

##########################################################################################
# Package Google Traveltime
# only feed api with calls while necessary/desired to mitigate api call restrictions
# MtHvdB 07072018
##########################################################################################

homeassistant:
  customize:
    sensor.travel_destination:
      templates:
        icon: >
          if (entities['input_select.travel_mode'].state === 'bicycling') return 'mdi:bike';
          if (entities['input_select.travel_mode'].state === 'driving') return 'mdi:car';
          if (entities['input_select.travel_mode'].state === 'walking') return 'mdi:transit-transfer';
          if (entities['input_select.travel_mode'].state === 'transit') return 'mdi:train';
          return 'mdi:bus';
    sensor.select_travel_destination:
      icon: mdi:login
    sensor.select_travel_origin:
      icon: mdi:logout
    sensor.select_travel_mode:
      icon: mdi:transit-transfer
    input_select.travel_mode:
      templates:
        icon: >
          if (state === 'bicycling') return 'mdi:bike';
          if (state === 'driving') return 'mdi:car';
          if (state === 'walking') return 'mdi:transit-transfer';
          if (state === 'transit') return 'mdi:train';
          return 'mdi:bus';
    sensor.distance_selected_destination:
      icon: mdi:map-marker-distance
      friendly_name: Distance
    sensor.duration_selected_destination:
      icon: mdi:timer
      friendly_name: Duration
    sensor.duration_in_traffic_selected_destination:
      icon: mdi:traffic-light
      friendly_name: In traffic
##########################################################################################
# Sensors
##########################################################################################

sensor:
  - platform: google_travel_time
    api_key: !secret google_travel
    mode: sensor.select_travel_mode
    departure_time: now
    name: Travel destination
    origin: sensor.select_travel_origin
    destination: sensor.select_travel_destination

  - platform: template
    sensors:
      select_travel_destination:
        value_template: '{{states.input_select.travel_destination.state}}'
      select_travel_origin:
        value_template: '{{states.input_select.travel_origin.state}}'
      select_travel_mode:
        value_template: '{{states.input_select.travel_mode.state}}'

      distance_selected_destination:
        value_template: '{{states.sensor.travel_destination.attributes.distance}}'
      duration_selected_destination:
        value_template: '{{states.sensor.travel_destination.attributes.duration}}'
      duration_in_traffic_selected_destination:
        value_template: '{{states.sensor.travel_destination.attributes.duration_in_traffic}}'

      input_travel_origin:
        value_template: '{{states.input_text.travel_origin.state}}'
      input_travel_destination:
        value_template: '{{states.input_text.travel_destination.state}}'

##########################################################################################
# Inputs
##########################################################################################

input_text:
  travel_destination:
    icon: mdi:login
    name: Travel destination
    pattern:
      - City
      - Country
    initial: "City, Country"

  travel_origin:
    icon: mdi:logout
    name: Travel origin
    pattern: "[City, Country]"
    initial: "City, Country"

input_select:
  travel_destination:
    icon: mdi:login
    name: Travel destination
    options:
      - Select
      - Not yet set
    initial: Select

#      - zone.home
#      - device.tracker.iphone
#      - device.tracker.telefoon

  travel_origin:
    icon: mdi:logout
    name: Travel origin
    options:
      - Select
      - Not yet set
    initial: Select

#      - zone.home
#      - device_tracker.iphone
#      - device_tracker.telefoon

  travel_mode:
    icon: mdi:bike
    name: Travel mode
    options:
      - driving
      - bicycling
      - walking
      - transit
    initial: bicycling

##########################################################################################
# Automation to set Input_select options with template
##########################################################################################

automation:
  - alias: Update Travel Destination options
    initial_state: 'on'
    trigger:
      - platform: state
        entity_id: input_text.travel_destination
      - platform: homeassistant
        event: start
    action:
      - service: input_select.set_options
        data_template:
          entity_id: input_select.travel_destination
          options:
            - Select
            - Roosendaal, Netherlands
            - Amsterdam, Netherlands
            - Eindhoven, Netherlands
            - Utrecht, Netherlands
            - Antwerp, Belgium
            - Brussels, Belgium
            - Berlin, Germany
            - Bayreuth, Germany
            - Paris, France
            - '{{ states("input_text.travel_destination") }}'

  - alias: Update Travel Destination options
    initial_state: 'on'
    trigger:
      - platform: state
        entity_id: input_text.travel_origin
      - platform: homeassistant
        event: start
    action:
      - service: input_select.set_options
        data_template:
          entity_id: input_select.travel_origin
          options:
            - Select
            - Roosendaal, Netherlands
            - Amsterdam, Netherlands
            - Eindhoven, Netherlands
            - Utrecht, Netherlands
            - Antwerp, Belgium
            - Brussels, Belgium
            - Berlin, Germany
            - Bayreuth, Germany
            - Paris, France
            - '{{ states("input_text.travel_origin") }}'

##########################################################################################
# Frontend Group
##########################################################################################

group:
  travel_destination:
    name: Travel destination
    icon: mdi:transit-transfer
    entities:
      - input_select.travel_origin
      - input_text.travel_origin
      - input_select.travel_destination
      - input_text.travel_destination
      - input_select.travel_mode
      - sensor.travel_destination
      - sensor.distance_selected_destination
      - sensor.duration_selected_destination
      - sensor.duration_in_traffic_selected_destination