Input_select + input_text

Donc je reprends simplement :
La liste déroulante ne connait QUE les noms …Pas d’infos sur une position dans la liste (celle que tu choisirais) et pas d’infos complémentaire comme un numéro de téléphone (associé à un nom) et pas non plus de notion d’emplacement mémoire… Donc tu ne peux PAS faire comme avec les boutons (qui ont une info 1, 2, 3, 4, 5, 6) transmise au script.
Il faut refaire une autre mécanique. Visuellement ça s’approche de ce que tu filme, mais techniquement c’est différent.

1 « J'aime »

C’est pour ça que je te disais plus haut qu’il te faut coder « en dur » c’est à dire dans une automatisation les numéros (on ne le fait qu’une fois normalement, donc ce n’est pas très grave).

C’est un peu ce qui est fait aujourd’hui puisque chaque bouton est associé à un seul nom et un seul numéro.
Quand tu appui sur le bouton « Pupuce » tu lances ton script d’appel avec le N° de Pupuce. Je ne connais pas ta syntaxe mais disons un truc genre « script_appel(0698765432) »

Vu que tu n’as plus 6 boutons séparés, mais un seul input_select de choix des raccourcis et un seul bouton « appel », il faut que tu fasse ce lien autrement, par exemple dans une automatisation qui fasse:

  • trigger : si appui sur le bouton « appel »

  • condition: input_select non vide (facultatif?)

  • action:
    si input select = « Maman » alors lance « script_appel(0612345678) »
    sinon si input select = « Pupuce » alors lance « script_appel(0698765432) »
    sinon si input select = « Urgences » alors lance « script_appel(112) »
    etc…

Tu ne fait ce lien des numéros que dans l’automatisation, et tu devras mettre à jour cette automatisation à chaque nouveau raccourci (une entrée dans l’input_select, modifiée ou ajouté => une mise à jour dans l’automatisation).
Ce serait génial de pouvoir avoir un tableau avec deux colonnes: nom/numéro et de venir faire cette association comme ça, mais en HA « natif » je ne crois pas que ça existe. Donc il faut contourner…

Oui c’est possible mais il y a plus malin à faire : l’asso entre le nom dans la liste Et le nom de l’input_text
input_text.num_{{states(‹ input_select.contact ›)}}
C’est plus facile d’éditer l’input_text (et d’en ajouter) que de le faire dans l’autom

1 « J'aime »

Ah oui, c’est plus malin !!

Vous m’avez perdu lol

Est-ce que tu avais suivi ma proposition déjà?

Si oui, la solution de @Pulpy-Luke c’est le même principe, mais plus malin car on ne fais pas le lien dans l’automatisation, mais dans des noms de fichier…

Je reformule à ma manière la solution de @Pulpy-Luke qui est plus élégante et facile à maintenir:

Vu que tu n’as plus 6 boutons séparés, mais un seul input_select de choix des raccourcis et un seul bouton « appel », il faut que tu fasse ce lien autrement, par exemple de la façon suivante:

  • pour chaque nom dans ton input_select (Pupuce, Maman, Urgences, etc…)
  • tu crées un input_text qui se nomme numero_nom et qui contient le numéro de téléphone
    par exemple:
    3 input text:
    input_test.numero_maman contient 0612345678
    input_test.numero_pupuce contient 0698765432
    input_test.numero_urgences contient 112

Si on reprend la syntaxe de @Pulpy-Luke: input_text.numero_{{states('input_select.contact')}}

  • si tu selectionnes « pupuce »
  • alors {{states('input_select.contact')}} prendra la valeur du nom selectionné dans l’input_select, donc ‹ pupuce ›
  • et input_text.numero_{{states('input_select.contact')}} va coller « input_text.numero_ » et la valeur précédente, donc: ‹ input_text.numero_pupuce › ce qui est le nom de l’entité input_text associée à pupuce.
  • si tu teste la valeur de cette entité : states('input_text.numero_{{states('input_select.contact')}}') normalement tu récupères le numéro que tu as mis dedans soit 0698765432
    Tu peux donc utiliser cette syntaxe pour récupérer le numéro de téléphone et appeller ton script.

Tu crées ensuite ton automatisation comme ça

  • trigger : si appui sur le bouton « appel »
  • condition: input_select non vide (facultatif?)
  • action:
    lancer le script script_appel(states('input_text.numero_{{states('input_select.contact')}}'))

Là où c’est élégant c’est que:

  • si tu veux ajouter un numéro, il suffit de rajouter un nom à l’input_select et de créer un input_text se nommant numero_nom et contenant le numéro de téléphone associé.
  • si tu veux modifier un numéro, il te suffit de modifier le numéro de téléphone dans l’input_text correspondant.
  • plus besoin de toucher à l’automatisation.
1 « J'aime »

J’ai corrigé vite fait, quelques ’ qui se sont glissées au fil des échanges.
Concernant le script, je pense qu’il est au moins à modifier, voire à supprimer.
Je m’explique, il semble que le script utilise des paramétres d’appels (1, 2, 3, 4 , 5 ou 6) et va chercher le numéro dans les input_text.telmemoX
Donc pas moyen de l’appeller avec 0612345678 comme

Par ailleurs, il faut faire attention pour les conditions de l’automation

Si tu rentres un numéro à la main, ça donne pas l’attendu, ça va prendre celui de la liste.

A mon avis, l’automatisation à juste besoin de remplir l’entité qui sert à saisir le numéro dans la carte avec le numéro trouvé dans l’input_text…

En tout cas, on n’en est pas encore là

1 « J'aime »

Il va falloir peut être un peu de support de @Krull56 je crois que c’était lui qui avait fait la partie appel téléphonique et le script…

En tout cas une fois de plus @sg72 tu me permet de découvrir de nouvelles façon de faire ! Merci…

C’est plutôt moi qui vous remercie ! Car à force de demander, j’ai toujours impression de faire c… Et ça je n’aime pas ça

Tu n’ennuies personne !
Tant que le déclic n’est pas fait et que c’est pas clair pour toi, on répétera les choses et on répondra aux questions.

C’est gentil, il y a des forums où les personnes sont moins compréhensif que vous.

2 « J'aime »

Bon alors, tu as avancé ?
Voilà ce que ça donne visuellement
call

Non par contre toi oui :slight_smile:

Allez, au boulot !
c’est facile

Je crois que ma tête va exploser lol

Ca c’est bon


alias: Input_select
description: ""
trigger:
  - platform: state
    entity_id:
      - script.1708328864120
condition: []
action:
  - service: input_select.select_option
    data:
      option: >-
        script_appel(states('input_text.numero_{{states('input_select.contact')}}'))
mode: single

C’est après que ma tête chauffe lol

Attention !!

Moi je t’ai donné un exemple de script : script_appell(numero)

Mais ton script à toi:

  • ne s’appelle pas comme ça
  • prends a priori plusieurs variables et pas que le numero.

Bref il faut que tu décortiques un peu ton script d’appel pour voir comment il marche pour que tu puisse l’appeller en lui donnant les bonnes info.

Je pense qu’on peut laisser le script de coté ;), c’est plus simple de directement valoriser l’entité ‹ call_number › directement depuis l’automatisation

alias: Input_select
description: ""
trigger:
  - platform: state
    entity_id:
      - script.1708328864120
condition: []
action:
  - service: input_select.select_option
    data:
      option: >-
        script_appel(states('input_text.tel1_{{states('input_select.contact')}}'))
mode: single

input_text.tel1 = numéro à pupuce

Je ne sais pas ce que tu veux faire avec cette automatisation mais elle est à l’envers…
C’est pas le script qui déclenche les actions mais la liste déroulante qui permet de mettre la bonne valeur (dans call_number à mon avis).

Et il manque toujours un morceau :
input_text.tel1 ça matche pas avec input_text.tel1_{{states('input_select.contact')}} qui donne un truc comme input_text.tel1_pupuce

Désolé, mais je comprends plus, je suis complètement perdu