> For the complete documentation index, see [llms.txt](https://docs.kiloiot.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kiloiot.io/kilo-docs-fr/kilo-iot-server/devices/commands/smart-socket-example.md).

# Exemple : prise connectée

Créez des commandes d’allumage et d’extinction pour une prise connectée de bout en bout — charge utile, encodeur, vérification et exécution depuis l’onglet États.

Ce guide pas à pas crée deux commandes sur un appareil et vérifie qu’elles ont fonctionné. Il utilise une prise connectée alimentée sur secteur qui indique si son relais est activé ou désactivé, mais la même séquence s’applique à tout actionneur : une vanne, un luminaire, un chauffage.

Suivez-le dans l’ordre — chaque section produit quelque chose dont la suivante a besoin.

## Avant de commencer

* La prise est enregistrée et émet des données. Classe C pour LoRaWAN, ou un appareil MQTT.
* Vous pouvez voir ses relevés sur le **Métriques** (**Mappage** pour MQTT).

## 1. Découvrez comment l’appareil indique son état

Ouvrez l’appareil et allez à l’ **Métriques** onglet. Parcourez le tableau des clés du connecteur pour repérer le champ qui contient l’état du relais, et notez deux choses : le nom du champ et la valeur qu’il affiche actuellement.

Pour cette prise :

| Clé du connecteur | Valeur actuelle |
| ----------------- | --------------- |
| `socket_status`   | `off`           |

Cette valeur est celle qu’une vérification comparera plus tard, donc notez-la exactement comme elle apparaît — `off`, pas `OFF` ou `faux`.

Si le champ n’est pas encore mappé à une métrique, mappez-le maintenant : l’éditeur de commandes sélectionne les capteurs par leur nom de métrique, donc un champ non mappé ne peut pas être utilisé pour vérifier quoi que ce soit. Voir [Décodage des charges utiles et clés des connecteurs](/kilo-docs-fr/kilo-iot-server/devices/payload-decoding.md).

Dans cet exemple `socket_status` est mappé à une métrique nommée **État de la prise**.

## 2. Créez la commande Turn ON

Ouvrez **Commandes et états → Commandes** et cliquez sur **Ajouter une nouvelle commande**.

<figure><img src="https://3675309505-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtNQh1wBSHSaknslMdOXm%2Fuploads%2Fgit-blob-e5d148689cf5bd708377bbea23e9bbbc92f79a5c%2Fdevice-command-editor.jpg?alt=media" alt="The command editor with the identity, routing and payload sections of a device command"><figcaption></figcaption></figure>

**1. Identité**

* **Nom de la commande** — `Allumer`

**2. Routage**

* Pour LoRaWAN : définissez le **fPort** que l’appareil attend, et mettez **Liaison descendante confirmée** en marche.
* Pour MQTT : saisissez le topic auquel la prise est abonnée pour les commandes.

**3. Charge utile**

Cette commande ne prend aucun paramètre — elle envoie toujours la même chose — donc n’en ajoutez pas, et définissez la charge utile que l’encodeur doit construire. La prise attend trois octets : canal `0x08`, type `0x70`, et l’état, `0x01` pour allumé.

Utilisez **Essayer l’encodeur** pour vérifier le résultat avant l’enregistrement. Il affiche la sortie encodée en hexadécimal et en base64 avec sa taille en octets, afin que vous puissiez confirmer que la charge utile est `08 70 01` avant même que la commande n’atteigne l’appareil.

**4. Vérification**

Choisissez **Attendez la prochaine liaison montante** — la prise indique son état dans chaque message de routine, donc il n’est pas nécessaire de l’interroger.

Sous **États de capteur attendus**, cliquez sur **Ajouter un état**:

* **Métrique** — *État de la prise*
* **Valeur attendue** — `on`

Saisissez la valeur telle que l’appareil la renvoie. La casse n’a pas d’importance ici, donc `on` correspond aussi à un appareil qui renvoie `ON` — mais le texte et les nombres ne sont pas interchangeables, donc `1` ne correspondrait pas. Voir [Confirmation des commandes](/kilo-docs-fr/kilo-iot-server/devices/commands/verification.md#expected-value).

Cliquez sur **Enregistrer**.

## 3. Créez la commande Turn OFF

Répétez les étapes ci-dessus avec trois changements :

* **Nom de la commande** — `Éteindre`
* **Charge utile** — les mêmes trois octets, avec l’octet d’état défini sur `0x00`
* **Valeur attendue** — `off`

Tout le reste reste identique.

## 4. Exécutez-les et vérifiez le résultat

Allez à l’ **États** onglet, trouvez **Allumer** dans la liste des commandes disponibles, et cliquez sur **Exécuter**.

Observez l’apparition de l’entrée dans **Exécutions récentes**:

1. Il commence par **En attente** pendant que la liaison descendante est en cours d’acheminement.
2. Lorsque le prochain message de la prise arrive et indique `socket_status: on`, l’exécution passe à **Confirmée** — la plateforme a vu l’appareil dans l’état que vous aviez demandé.

Exécutez **Éteindre** et la même chose se produit en sens inverse.

## Si l’exécution n’est jamais confirmée

Une exécution qui reste non confirmée jusqu’à la fermeture de sa fenêtre est marquée **Avertissement léger** — livrée, mais non confirmée. Traitez ces points dans l’ordre :

1. **Vérifiez la valeur.** Ouvrez l’onglet Métriques et lisez ce que `socket_status` indique maintenant. Si la prise a changé d’état mais indique `1` plutôt que `on`, la valeur attendue doit correspondre à cette forme — et un littéral saisi est toujours du texte, donc utilisez une `{{ parameterName }}` référence à un paramètre booléen ou entier à la place.
2. **Vérifiez la métrique.** Assurez-vous que la métrique que vous avez sélectionnée est bien celle alimentée par `socket_status`, et qu’elle est mappée et reçoit des relevés.
3. **Vérifiez la fenêtre.** La fenêtre par défaut vaut 1,5 × l’intervalle d’envoi des données de l’appareil. Si cet intervalle n’est pas défini sur l’appareil, définissez-le — voir [Délai de convergence](/kilo-docs-fr/kilo-iot-server/devices/commands/verification.md#convergence-timeout).
4. **Vérifiez la charge utile.** Exécutez **Essayer l’encodeur** à nouveau et comparez les octets à la documentation du fabricant.

## Suivant

* Placez les deux commandes sur un tableau de bord avec un [widget de contrôle](/kilo-docs-fr/kilo-iot-server/dashboards/adding-widgets/control-widget.md) afin que l’équipe puisse commuter la prise sans ouvrir l’appareil.
* Laissez une règle piloter la prise toute seule — voir [Exécution des commandes sur les appareils](/kilo-docs-fr/kilo-iot-server/rules-engine/running-device-commands.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.kiloiot.io/kilo-docs-fr/kilo-iot-server/devices/commands/smart-socket-example.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
