> For the complete documentation index, see [llms.txt](https://navixy.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navixy.com/docs/user/fr/guide/devices-and-settings/object-management/commands.md).

# Commandes

Définissez des commandes personnalisées d’appareil et de logiciel pour un appareil GPS dans Navixy et envoyez-les à la demande depuis le widget Traceur.

Le bloc **Commandes** vous permet de définir des commandes personnalisées pour un traceur dans Navixy et de les envoyer à la demande depuis le [widget Traceur](/docs/user/fr/guide/tracking/objects-list/object-widget.md) ou l'application [X-GPS Mobile](/docs/user/fr/guide/x-gps-mobile-apps/x-gps-mobile.md) . Utilisez-la pour envoyer une instruction de niveau micrologiciel directement à un traceur, par exemple pour envoyer une commande CAN ou activer une sortie, ou pour appeler n'importe quel système externe acceptant des requêtes HTTP, comme un canal Slack, un service de notification, un CRM ou un point de terminaison d'API personnalisé. Une fois configurées, les commandes peuvent être envoyées d'un seul clic.

Le bloc Commandes prend en charge deux types de commandes :

* **Commande du traceur** envoie une chaîne d'instruction au niveau protocolaire directement au traceur, par exemple pour envoyer une commande CAN ou activer une sortie.
* **Commande logicielle** envoie une requête HTTP POST avec un corps JSON vers n'importe quelle URL, en incluant éventuellement des données actuelles du traceur telles que la position, la vitesse ou l'identifiant du traceur dans la charge utile.

Les commandes sont enregistrées par traceur et restent disponibles pour une réutilisation.

{% hint style="info" %}
**Quand utiliser Commandes plutôt que IoT Logic**

Le bloc Commandes est conçu pour des actions ponctuelles et manuelles visant un seul traceur. Utilisez-le lorsque vous devez envoyer une commande unique sans configurer de flux d'automatisation.

Pour l'envoi automatisé de commandes basé sur des règles, par exemple pour déclencher une action du traceur ou un webhook lorsqu'un seuil de capteur est franchi, ou pour envoyer la même commande à plusieurs traceurs, utilisez [IoT Logic](/docs/user/fr/guide/account/iot-logic.md). Le **nœud Action du traceur** et **Webhook** dans IoT Logic offrent les mêmes capacités sous-jacentes avec une automatisation complète des flux et un ciblage multi-traceurs.
{% endhint %}

## Configuration

Pour configurer le bloc Commandes pour un traceur, suivez ces étapes :

1. Accédez à **Paramétrage des traceurs** dans la barre latérale gauche.
2. Sélectionnez le traceur que vous souhaitez configurer.
3. Repérez et développez le **Commandes** bloc Commandes.

<figure><img src="https://2196179364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-0b08686ab5211cfcdda8ed6f2edc4f90b87fdc6a%2Foutput-control-block.png?alt=media" alt="Commands block showing device and software command options"><figcaption></figcaption></figure>

Vous pouvez ajouter plusieurs commandes de chaque type. Chaque commande est enregistrée individuellement.

### Commandes du traceur

Une **commande du traceur** envoie une chaîne d'instruction au niveau protocolaire directement au traceur via son canal de communication.

<figure><img src="https://2196179364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-4fb41dda6033a61f1af4dbdae9e75b73ddf14353%2Foutput-control-device-vommand.png?alt=media" alt="Device command form with Command name and Command string fields"><figcaption></figcaption></figure>

Pour ajouter une commande du traceur, cliquez sur **Ajouter une commande du traceur** au bas du bloc. Configurez les champs suivants :

1. **Nom de la commande**: une étiquette pour la commande telle qu'elle apparaît dans le widget Traceur, par exemple `redémarrage du traceur`. Choisissez un nom qui décrit clairement l'action de la commande.
2. **Chaîne de commande**: la chaîne d'instruction exacte envoyée au traceur, par exemple `cpureset`.

{% hint style="warning" %}
Les chaînes de commande valides sont spécifiques au traceur et définies par le fabricant du traceur. Reportez-vous toujours à la documentation officielle de votre modèle de traceur pour trouver les chaînes de commande correctes. La saisie de valeurs incorrectes peut avoir des effets inattendus sur le traceur.
{% endhint %}

Cliquez sur **Enregistrer** pour enregistrer la commande. Cliquez sur **Supprimer** pour la supprimer.

### Commandes logicielles

Une **commande logicielle** envoie une requête HTTP POST avec un corps JSON vers l'URL que vous spécifiez. Cela peut être le point de terminaison d'un service externe, comme Slack, un récepteur de webhook personnalisé, n'importe quelle API REST ou un point de terminaison d'API Navixy.

Le corps de la requête est en JSON et doit être structuré selon ce qu'attend le point de terminaison de destination. Vous pouvez inclure des attributs de données du traceur dans le corps à l'aide de la `{{attribute_name}}` syntaxe.

Les commandes logicielles se configurent dans deux onglets : **Général** et **Corps**.

Pour ajouter une commande logicielle, cliquez sur **Ajouter une commande logicielle** au bas du bloc.

#### onglet Général

{% columns %}
{% column width="58.333333333333336%" %}
Configurez les éléments suivants :

1. **Titre**: une étiquette pour la commande telle qu'elle apparaît dans le widget Traceur.
2. **URL**: l'URL complète du point de terminaison vers lequel la requête POST est envoyée, par exemple `https://hooks.slack.com/services/...` ou `https://api.eu.navixy.com/v2/...`.
3. **En-têtes**: paires clé-valeur envoyées en tant qu'en-têtes de requête HTTP. Ajoutez des en-têtes selon les besoins du point de terminaison de destination. Cliquez sur **Ajouter un en-tête** pour insérer une nouvelle ligne.
   * Utilisez l'en-tête  `Authorization` pour l'authentification par jeton, par exemple `Authorization` défini sur `Bearer your_token`.
   * D'autres méthodes d'authentification prises en charge par la destination, comme les Clés API transmises sous forme de paramètres de requête dans l'URL, peuvent également être utilisées.
     {% endcolumn %}

{% column width="41.666666666666664%" %}

<figure><img src="https://2196179364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-38e4eab9ed360e81a51ad8247392a8b9104d5db4%2Foutput-control-software-command-general.png?alt=media" alt="Software command General tab with Title, URL, and Headers fields"><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

#### onglet Corps

{% columns %}
{% column width="58.333333333333336%" %}
Le bloc **Corps** Le champ est l'endroit où vous composez la charge utile JSON. Écrivez un JSON valide qui correspond au format attendu par le point de terminaison de destination.

Pour inclure des données en direct du traceur dans la charge utile, utilisez la `{{attribute_name}}` syntaxe. Cliquez sur le bouton du sélecteur d'attributs <img src="https://2196179364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-1fa59f996fe69fa378ac659fa97f7e00c376f263%2Fimage.png?alt=media" alt="" data-size="line"> en haut à droite du champ Corps pour ouvrir une liste consultable des attributs disponibles pour le traceur. La sélection d'un attribut insère l' `{{attribute_name}}` espace réservé correspondant dans le corps à l'emplacement du curseur.
{% endcolumn %}

{% column width="41.666666666666664%" %}

<figure><img src="https://2196179364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-82eaece7ab729a184238a6d1f3413b4fec7300ab%2Foutput-control-software-command-body.png?alt=media" alt="Software command Body tab with JSON body field and attribute picker"><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

{% hint style="info" %}
Les attributs disponibles dépendent du traceur concerné et des données qu'il transmet à la plateforme Navixy. Seuls les attributs réellement envoyés par le traceur apparaissent dans la liste. Utilisez le sélecteur pour éviter les fautes de frappe ou les noms d'attributs incorrects.
{% endhint %}

Cliquez sur **Enregistrer** pour enregistrer la commande. Cliquez sur **Supprimer** pour la supprimer.

#### Exemple : envoi d'une notification Slack

Slack prend en charge la réception de messages provenant de services externes via des webhooks entrants. Une fois que vous avez configuré un webhook dans votre espace de travail Slack et obtenu l'URL du webhook (voir le [guide Slack sur les webhooks entrants](https://docs.slack.dev/messaging/sending-messages-using-incoming-webhooks/)), créez une commande logicielle avec la configuration suivante.

**Onglet Général :**

* **Titre**: `Notifier Slack`
* **URL**: votre URL de webhook entrant Slack, par exemple `https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXX`
* **En-têtes**: aucun en-tête requis

**Onglet Corps :**

{% code overflow="wrap" %}

```json
{
  "text": "Traceur {{device_id}} : vitesse {{speed}} km/h à {{latitude}}, {{longitude}}"
}
```

{% endcode %}

Slack attend un objet JSON avec un champ `text` . Les `{{device_id}}`, `{{speed}}`, `{{latitude}}`, et `{{longitude}}` espaces réservés sont remplacés par les valeurs actuelles du traceur au moment de l'envoi de la commande. Lorsqu'elle est déclenchée depuis le widget Traceur, le message apparaît dans le canal Slack configuré pour votre webhook.

### Valeurs dynamiques des commandes

Une chaîne de commande ou le corps d'une commande logicielle peut inclure un seul `<>` espace réservé afin de demander une valeur à chaque envoi de la commande, au lieu de coder en dur une valeur fixe.

* Dans une commande du traceur, ajoutez `<>` à l'intérieur du **Chaîne de commande** champ, par exemple `relay,<>` pour envoyer un état de relais différent à chaque envoi.
* Dans une commande logicielle, ajoutez `<>` à l'intérieur du **Corps** champ, par exemple `{"value": "<>"}`.

Un seul `<>` espace réservé est autorisé par commande. L'enregistrement d'une commande contenant plus d'un espace réservé renvoie l'erreur « Une seule valeur est autorisée par commande. Supprimez le < > supplémentaire. »

Lorsque vous envoyez une commande contenant `<>` depuis le widget Traceur, une boîte de dialogue vous demande la valeur avant l'envoi. Consultez [Envoi de commandes depuis le widget Traceur](#sending-commands-from-the-object-widget) pour le flux complet.

{% hint style="info" %}
Cliquez sur l'icône d'aide dans le bloc Commandes pour ouvrir **Fonctionnement des valeurs de commande**, un résumé du `<>` syntaxe.
{% endhint %}

## Envoi de commandes depuis le widget Traceur

Une fois les commandes enregistrées, elles apparaissent dans le **Commandes** bloc Commandes du traceur de l'appareil [widget Traceur](/docs/user/fr/guide/tracking/objects-list/object-widget.md) dans le module Suivi.

<figure><img src="https://2196179364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-d3074f8879c2b2a0b719e8d54783c387e53a2794%2Fobject-widget-commands.png?alt=media" alt="Object widget Commands block showing two commands with send buttons"><figcaption></figcaption></figure>

Cliquez sur le **bouton Envoyer** à côté du nom d'une commande pour l'envoyer. Le bloc Commandes affiche toutes les commandes du traceur et les commandes logicielles configurées pour ce traceur.

* Si la commande ne contient pas de [espace réservé de valeur dynamique](#dynamic-command-values), Navixy l'envoie immédiatement. Aucun dialogue de confirmation n'apparaît.
* Si la commande contient `<>`, une boîte de dialogue s'ouvre et vous demande de saisir une valeur. Saisissez une valeur pouvant contenir jusqu'à 500 caractères et cliquez sur **Envoyer** pour envoyer la commande avec la valeur substituée à `<>`. Le **Envoyer** le bouton reste désactivé jusqu'à ce que vous saisissiez une valeur, et les valeurs vides ou composées uniquement d'espaces ne sont pas acceptées.

Après l'exécution de la commande, Navixy affiche une notification avec le résultat :

* **Commandes du traceur** indiquent uniquement si la commande a réussi, sous la forme de `{ "success": true }` ou `{ "success": false }`.
* **Commandes logicielles** indiquent le nom de la commande et la réponse brute du point de terminaison de destination, sous la forme de `{status, body}`. Les réponses longues défilent dans la notification.

Les commandes envoyées apparaissent aussi dans le [bloc Événements récents](/docs/user/fr/guide/tracking/objects-list/object-widget.md#data-blocks) du widget Traceur, avec leur résultat disponible dans une vue dépliable. Si la commande incluait un [espace réservé de valeur dynamique](#dynamic-command-values), le titre de l'entrée affiche également la valeur envoyée, par exemple `Mettre à jour le statut <en ligne>`.

<figure><img src="https://2196179364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-a0310f4425c07ba87b52177eb45073451f14a827%2Frecent-events-command-value.png?alt=media" alt="Recent events entry showing the sent value in the entry title next to the command name"><figcaption></figcaption></figure>

{% hint style="info" %}
Les commandes sont propres à chaque traceur. Les commandes configurées pour un traceur n'apparaissent pas dans les widgets Traceur des autres traceurs. Pour envoyer des commandes à plusieurs traceurs selon des règles ou des conditions, utilisez IoT Logic.
{% endhint %}


---

# 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://navixy.com/docs/user/fr/guide/devices-and-settings/object-management/commands.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.
