Input_select + input_text

Allez, juste pour le fun une solution « tout en un » :

  • ça remplace l’input_select et l’automatisation d’un seul coup
  • ça fait la liste automatiquement de toutes les entités qui commencent pas input_text.tel_
  • ça mets en forme avec une majuscule (c’est ce qui fait que le code est long, sinon ça tiens en 1 ligne !)
template:
  - select:
      - name: contact
        state: ""
        options: >
          {% set noms= 
            expand(states.input_text)
            |selectattr('entity_id', 'match', '^input_text.tel_*')
            |map(attribute='entity_id')

          %}
          {% set ns = namespace(options=[]) %}
          {% for n in noms %}
            {% set ns.options=ns.options + [n|replace('input_text.tel_','')|title] %}
          {% endfor %}
          {{ns.options}}
        select_option:
          - service: input_text.set_value
            target:
              entity_id: input_text.call_number
            data:
              value: "{{ states('input_text.tel_'~ option) }}"

pour l’utilisation, il faut virer l’automatisation, et remplacer dans la carte input_select.contact par select.contact

1 « J'aime »