Input_select + input_text

Reprend de la base:

comment aujourd’hui avec ton interface actuelle tu appelles un numero en le composant « à la main » ?

Décris bien toutes les étapes…

Et regarde comme le dit @Pulpy-Luke si il n’y a pas une étape où tu pourrais mettre le N° de ton raccourcis à la place du numéro tapé…

Ce que présente @Pulpy-Luke dans son exemple c’est de renseigner un input_text callnumber a partir d’une liste déroulante contenan deux noms et de deux input_text contenant les numeros associés à ces deux noms :
call
Il te montre le résultat, mais ce résultat c’est à toi de le construire avec une petite automatisation en utilisant les astuces données plus haut pour venir coller le texte d’un numero de téléphone avec les bonnes syntaxes…

Tous nos exemples à @Pulpy-Luke et moi ne sont que des exemples. tu dois t’inspirer de nos codes, mais il faut que tu comprennes la mecanique pour pouvoir les adapter à ton cas (bon nom de script, bon nom d’entité, etc…).
Si tu fais juste un copier coller direct, ça ne marchera pas 99% du temps…

Si tu arrives à faire comme lui pour mettre les bons numeros dans le bon champ chez toi, il ne restera plus qu’à appuyer sur le bouton appeler

Au niveau présentation, j’ai bien comme pulpy

donc corrige input_text.tel1 en input_text.tel_pupuce etc…
L’important c’est d’avoir pupuce (et les autres noms de contact) dans le nom de l’entité

Comme ca ?


Mais les input où contient les numéro c’est Tel1 pour pupuce Tel2 pour maman,etc

Il faut pas juste les mettre dans la carte mais les créer aussi :wink:

Mais ils sont créé !

Mais ils n’ont pas les bons noms !!!

Ils s’appellent Tel1, Tel2 au lieu de Tel_pupuce, Tel_maman

Pour que ça marche il faut que le nom de l’entité contienne le même texte que le nom dans ta liste!

Regardes l’exemple de @Pulpy-Luke ses entités ont le même nom que la liste!
input_text.maman et input_text.pupuce, c’est encore plus simple.

Seulement ensuite tu pourras faire ça:

  • si tu sélectionnes « pupuce » dans ton menu déroulant

  • alors la syntaxe du template {{states('input_select.contact')}} donnera comme résultat en texte la valeur selectionnée dans l’input_select (donc le texte : « pupuce »)
    Dit autrement a chaque fois que tu ecriras {{states('input_select.contact')}} Home assistant lira le contenu du menu déroulant et remplacera ça par le texte choisi par exemple pupuce ou maman suivant le choix du menu déroulant

  • et la syntaxe du template input_text.tel_{{states('input_select.contact')}} donnera en résultat un texte qui sera le collage de « input_text.tel_ » et de la valeur décrite à la ligne précédente, donc le texte: ‹ input_text.tel_pupuce ›
    Ceci te permet de récupérer un texte correspondant au nom de l’entité input_text associée à pupuce que tu viens de créer à partir de ton menu déroulant.
    Dit autrement a chaque fois que tu écris input_text.tel_{{states('input_select.contact')}} Home assistant interprètera ce texte comme input_text.tel_pupuce ou input_text.tel_maman en fonction de la selection dans le menu déroulant

Attention, Ca ne marche que si les entités ont des noms qui correspondent à la liste !! Si tu récupères un texte qui donne le nom input_text.tel_pupuce alors que ton entité qui contient le numero s’appelle input_text.tel1 ça ne va pas marcher…

  • si tu teste la valeur de cette entité avec la syntaxe suivante: states('input_text.tel_{{states('input_select.contact')}}') normalement tu récupères en texte lecontenu de l’input_text de l’étape précédente (le numéro que tu as mis dedans soit 0698765432)
    Dit autrement a chaque fois que tu écris states('input_text.tel_{{states('input_select.contact')}}') Home assistant interprètera ce texte comme 0612345678 ou 09876543 en fonction de la selection dans le menu déroulant.

ok ca avance



1 « J'aime »

Presque…
Ajoute un préfixe sur les noms :
input_text.tel_xxxx
ou
input_text.contact_xxx

laisser les noms telsquels c’est fonctionnel, mais ça ne permet pas de faire des tris facilement (j’ai une idée en tête pour la suite)



Maintenant tu passes à l’automatisation :wink:

Declencheur => input_select.contact
Action = modifier input_text.callnumber avec l’appel de service
valeur à mettre {{states('input_text.tel_' ~ states('input_select.contact'))}}

Attention, c’est pas exactement la syntaxe vue plus haut

OK, il y a un petit problème pour l’automatisation

alias: Input_select
description: ""
trigger:
  - platform: state
    entity_id:
      - input_select.contact
condition: []
action:
  - service: input_text.set_value
    data:
      value: "{{states('input_text.tel_'states('input_select.contact'))}}"
mode: single

Mais regarder, il y a quelque chose qui se passe ici ! Y’a quelque chose qui se déclenche quand je change les noms

Regarde tes input_text Pupuce, Maman et Laetitia.

Ils ont bien le bon nom…

Mais ils sont vides…

Il faut que tu y mettes le n° de tel de chaque personne dedans pour que ton automatisation puisse copier ce contenu dans callnumber…

Lorsque « tu changes les noms » c’est à dire que la valeur de ton input_select change, cette partie devient vraie
image
(elle passe en bleu avec marqué déclenché)

donc ton automatisation démarre…

Il te reste « juste » à mettre les bonnes choses ici:

Mais avec ça:

si tu mets aussi les bons numeros de telephone dans les bons input_text (voir mon message juste au dessus), on ne doit plus être très loin…

hello,

Je vois que vous avez bien avancé. Good Job :+1:

Il manque juste le target dans l’action :wink:

service: input_text.set_value
target:
  entity_id: input_text.callnumber
data:
  value: "{{states('input_text.tel_' ~ states('input_select.contact'))}}"

@+

1 « J'aime »

Attention à mettre l’opérateur de concaténation ~ :wink:

2 « J'aime »

Ca fonctionne plus (video)

hello,

Pourquoi avoir mis un script en entity_id dans ton trigger ? C’est le changement d’état de ton input_select.contact qu’il faut

@+

Yeeeeeees ca fonctionne:))))
Vidéo

3 « J'aime »

Bon, c’était du code compliqué ?