> 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 pour l'appareil et le logiciel d'un appareil GPS dans Navixy et envoyez-les à la demande depuis le widget Traceur.

Le **Commandes** bloc 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’ [X-GPS Mobile](/docs/user/fr/guide/x-gps-mobile-apps/x-gps-mobile.md) application. Utilisez-le pour envoyer directement à un traceur une instruction de niveau micrologiciel, par exemple pour envoyer une commande CAN ou activer une sortie, ou pour appeler tout 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 simple clic.

Le bloc Commandes prend en charge deux types de commandes :

* **Commande du traceur** envoie directement au traceur une chaîne d’instructions au niveau protocolaire, 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 facultativement dans la charge utile les données actuelles du traceur, comme la position, la vitesse ou l’ID du traceur.

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

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

Commandes est conçu pour des actions manuelles ponctuelles 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 le déclenchement d’une action du traceur ou d’un Webhook lorsqu’un seuil de capteur est franchi, ou l’envoi de la même commande à plusieurs traceurs, utilisez [IoT Logic](/docs/user/fr/guide/account/iot-logic.md). Les **Action du traceur** et **Webhook** nœuds dans IoT Logic offrent les mêmes capacités sous-jacentes avec une automatisation complète du flux et un ciblage multi-traceurs.
{% endhint %}

## Configuration

Pour configurer 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.

<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 directement au traceur une chaîne d’instructions au niveau protocolaire 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** : un libellé pour la commande tel qu’il 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’instructions exacte envoyée au traceur, par exemple `cpureset`.

{% hint style="warning" %}
Les chaînes de commande valides dépendent du traceur et sont définies par le fabricant du traceur. Consultez 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. Il peut s’agir d’un point de terminaison de service externe, comme Slack, d’un récepteur de Webhook personnalisé ou de toute API REST, ou encore d’un point de terminaison d’API Navixy.

Le corps de la requête est au format 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** : un libellé pour la commande tel qu’il 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’ `Authorization` en-tête 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, telles que des Clés API transmises en tant que 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 **Corps** est l’endroit où vous composez la charge utile JSON. Rédigez un JSON valide correspondant au format attendu par le point de terminaison de destination.

Pour inclure des données en temps réel du traceur dans la charge utile, utilisez la `{{attribute_name}}` syntaxe. Cliquez sur le bouton de sélection des 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 pour ouvrir une liste consultable des attributs disponibles pour le traceur. La sélection d’un attribut insère le `{{attribute_name}}` espace réservé correspondant dans le corps à la position 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 des Webhooks entrants de Slack](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 `text` champ. Les `{{device_id}}`, `{{speed}}`, `{{latitude}}` et `{{longitude}}` espaces réservés sont remplacés par les valeurs actuelles du traceur au moment où la commande est envoyée. Lorsqu’elle est déclenchée depuis le widget Traceur, le message apparaît dans le canal Slack configuré pour votre Webhook.

### Valeurs dynamiques de commande

Une chaîne de commande ou le corps d’une commande logicielle peut inclure un seul `<>` espace réservé pour 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 comportant 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 qui contient `<>` 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 **Comment fonctionnent les valeurs de commande**, un résumé de `<>` syntaxe.
{% endhint %}

## Envoi de commandes depuis le widget Traceur

Une fois les commandes enregistrées, elles apparaissent dans le **Commandes** bloc du traceur [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é d’un nom de 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 d’ [espace réservé de valeur dynamique](#dynamic-command-values), Navixy l’envoie immédiatement. Il n’y a aucune boîte de dialogue de confirmation.
* Si la commande contient `<>`, une boîte de dialogue s’ouvre pour vous demander de saisir une valeur. Saisissez une valeur pouvant aller jusqu’à 500 caractères, puis cliquez sur **Envoyer** pour envoyer la commande avec la valeur remplacée par `<>`. Les **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 seulement si la commande a réussi, sous la forme `{ "success": true }` ou `{ "success": false }`.
* **Commandes logicielles** affichent le nom de la commande et la réponse brute du point de terminaison de destination, sous la forme `{status, body}`. Les réponses longues défilent dans la notification.

Les commandes envoyées apparaissent également dans le [Événements récents](/docs/user/fr/guide/tracking/objects-list/object-widget.md#data-blocks) bloc 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.
