> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/french/key-features/widget-to-socket.md).

# Widget to Socket Utility

Widget to Socket transforme un contrôle de nœud (widget) en une entrée (socket). Utilisez-le lorsqu'une valeur qui est normalement saisie, sélectionnée ou glissée dans un nœud doit provenir d'un autre bloc.

Exemples d'utilisation :

* Piloter un seuil à partir d'un calcul.
* Laisser un HMI ou une saisie manuelle contrôler un paramètre de nœud.
* Alimenter des paramètres depuis un PLC, un lecteur de codes-barres, un fichier de recette ou un script headless.
* Tester plusieurs valeurs de paramètre sans ouvrir le nœud et modifier le widget à chaque fois.

Cette page décrit un petit scénario. Vous allez convertir un widget en socket, connecter une valeur dynamique, exécuter le scénario, puis reconvertir le widget si besoin.

## Ce que vous allez construire

Vous allez créer une valeur de plage (range) à partir de deux entrées numériques et l'envoyer dans un `Number Range` dont le widget a été converti en socket.

<figure><img src="/files/nq4g9bXVSnOMTyaGI9W9" alt="Scenario before converting a widget to a socket"><figcaption><p>Commencez avec un nœud qui utilise encore son widget habituel.</p></figcaption></figure>

## Étape 1 : Ajouter les blocs d'exemple

Créez un nouveau scénario et ajoutez ces blocs :

1. Ajoutez deux blocs `Number Input`.
2. Ajoutez un bloc `Mux`.
3. Ajoutez un bloc `Number Range`.
4. Ajoutez un bloc de sortie ou de debug pour inspecter le résultat.

Réglez le premier `Number Input` sur la valeur basse, par exemple `10`.

Réglez le deuxième `Number Input` sur la valeur haute, par exemple `80`.

Connectez les deux `Number Input` au `Mux`.

{% hint style="info" %}
Cet exemple utilise `Number Range` parce que le curseur de plage (range slider) est facile à reconnaître. Le même flux de travail s'applique à d'autres widgets de nœud qui montrent l'action de conversion API.
{% endhint %}

## Étape 2 : Ouvrir le menu du widget

Faites un clic droit sur le widget que vous souhaitez contrôler depuis un autre bloc.

Sur le bloc `Number Range`, faites un clic droit sur le widget `Range Slider`.

<figure><img src="/files/JlBgktYDuZRQ4Vfi7ynk" alt="Widget context menu with API conversion action"><figcaption><p>Faites un clic droit sur le widget et choisissez l'action de conversion API.</p></figcaption></figure>

Choisissez :

```
[API] Convert to socket
```

## Étape 3 : Confirmer le nouveau socket

Après conversion, le widget est masqué et une nouvelle entrée (socket) apparaît sur le nœud.

<figure><img src="/files/tYf5jqZe1EgQLhH5ACOA" alt="New input socket created from the converted widget"><figcaption><p>Le réglage du widget est maintenant disponible en tant que socket d'entrée.</p></figcaption></figure>

Le nom du socket correspond au nom du widget converti. Cela facilite la compréhension du paramètre que vous contrôlez.

## Étape 4 : Connecter la valeur dynamique

Connectez la sortie du `Mux` au nouveau socket converti du `Number Range`.

<figure><img src="/files/CxWIdGPukMcfJ7UQxa4k" alt="Mux output connected to the converted widget socket"><figcaption><p>Le paramètre du nœud provient désormais d'une autre partie du scénario.</p></figcaption></figure>

Exécutez le scénario. Le bloc `Number Range` lit maintenant la valeur entrante au lieu du curseur masqué.

Modifiez la valeur de l'un des `Number Input` et exécutez de nouveau. La plage se met à jour via la connexion socket.

## Étape 5 : Reconvertir si nécessaire

Si vous ne souhaitez plus le contrôle externe, faites un clic droit sur le socket converti et choisissez :

```
Convert to widget
```

<figure><img src="/files/uiZITI77o6MV9EKVTWi7" alt="Converted socket menu with Convert to widget action"><figcaption><p>Les sockets convertis peuvent être restaurés à leur forme originale de widget.</p></figcaption></figure>

Le socket d'entrée est supprimé et le widget d'origine réapparaît.

## Quand l'utiliser

Utilisez Widget to Socket quand un paramètre doit être contrôlé par la logique du scénario.

Bons cas d'usage :

* Seuils pilotés par recette.
* Contrôles opérateur depuis un HMI.
* Scénarios headless où les valeurs proviennent d'un script ou d'un fichier.
* Tests automatisés qui balaient de nombreuses valeurs de paramètres.
* Valeurs de paramètres partagées utilisées par plusieurs nœuds.

Évitez-le quand la valeur est toujours constante. Garder un widget normal est plus simple si aucun autre bloc n'a besoin de le contrôler.

## Dépannage

* Si `[API] Convert to socket` est introuvable, ce widget n'est pas convertible.
* Si le résultat du nœud ne change pas, vérifiez que le bloc connecté produit bien une valeur à chaque exécution.
* Si le socket converti refuse une connexion, le type de valeur source peut ne pas correspondre à ce que le widget attend. Utilisez un convertisseur, `Mux`, `Demux`, ou un bloc d'entrée adapté.
* Si le scénario devient difficile à lire, renommez les blocs proches pour que la source du paramètre soit évidente.
