> 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/pt-br/guide/devices-and-settings/object-management/commands.md).

# bloco Comandos

O **bloco Comandos** permite definir comandos personalizados para um dispositivo na Navixy e enviá-los sob demanda a partir do [widget Objeto](/docs/user/pt-br/guide/tracking/objects-list/object-widget.md) ou do [X-GPS Mobile](/docs/user/pt-br/guide/x-gps-mobile-apps/x-gps-mobile.md) aplicativo. Use-o para enviar uma instrução em nível de firmware diretamente a um dispositivo, como enviar um comando CAN ou ativar uma saída, ou para chamar qualquer sistema externo que aceite requisições HTTP, como um canal do Slack, um serviço de notificações, um CRM ou um endpoint de API personalizado. Depois de configurados, os comandos podem ser enviados com um único clique.

O bloco Comandos oferece suporte a dois tipos de comando:

* **Comando do dispositivo** envia uma string de instrução em nível de protocolo diretamente para o dispositivo, por exemplo para enviar um comando CAN ou ativar uma saída.
* **Comando de software** envia uma requisição HTTP POST com um corpo JSON para qualquer URL que você especificar, incluindo opcionalmente no payload dados atuais do dispositivo, como localização, velocidade ou ID do dispositivo.

Os comandos são salvos por dispositivo e permanecem disponíveis para uso repetido.

{% hint style="info" %}
**Quando usar Comandos versus IoT Logic**

Comandos foi projetado para ações manuais e pontuais voltadas a um único dispositivo. Use-o quando precisar enviar um comando único sem configurar um fluxo de automação.

Para o envio automatizado e baseado em regras de comandos, como acionar uma ação do dispositivo ou um webhook quando um limite de sensor for ultrapassado, ou enviar o mesmo comando para vários dispositivos, use [IoT Logic](/docs/user/pt-br/guide/account/iot-logic.md). Os nós **Ação** e **Webhook** em IoT Logic oferecem os mesmos recursos subjacentes com automação completa do fluxo e direcionamento para vários dispositivos.
{% endhint %}

## Configuração

Para configurar Comandos para um dispositivo, siga estas etapas:

1. Acesse **Dispositivos e configurações** na barra lateral esquerda.
2. Selecione o dispositivo que você quer configurar.
3. Localize e expanda o **bloco Comandos** bloco.

<figure><img src="/files/a566376937da7346e30576f178089a344b708b43" alt="Commands block showing device and software command options"><figcaption></figcaption></figure>

Você pode adicionar vários comandos de cada tipo. Cada comando é salvo individualmente.

### Comandos do dispositivo

Um **comando do dispositivo** envia uma string de instrução em nível de protocolo diretamente para o dispositivo por meio de seu canal de comunicação.

<figure><img src="/files/e757fff2f9028f1510eac758650d9334bf130e34" alt="Device command form with Command name and Command string fields"><figcaption></figcaption></figure>

Para adicionar um comando do dispositivo, clique em **Adicionar comando do dispositivo** na parte inferior do bloco. Configure os seguintes campos:

1. **Nome do comando**: um rótulo para o comando conforme ele aparece no widget Objeto, por exemplo `reinício do dispositivo`. Escolha um nome que descreva claramente o que o comando faz.
2. **String do comando**: a string exata de instrução enviada ao dispositivo, por exemplo `cpureset`.

{% hint style="warning" %}
Strings de comando válidas são específicas de cada dispositivo e definidas pelo fabricante do dispositivo. Consulte sempre a documentação oficial do modelo do seu dispositivo para encontrar as strings de comando corretas. Inserir valores incorretos pode ter efeitos indesejados no dispositivo.
{% endhint %}

Clique em **Salvar** para salvar o comando. Clique em **Excluir** para removê-lo.

### Comandos de software

Um **comando de software** envia uma requisição HTTP POST com um corpo JSON para uma URL especificada por você. Pode ser um endpoint de serviço externo, como Slack, um receptor de webhook personalizado ou qualquer API REST, ou um endpoint da API da Navixy.

O corpo da solicitação é JSON e deve ser estruturado de acordo com o que o endpoint de destino espera. Você pode incluir atributos de dados do dispositivo no corpo usando a `{{attribute_name}}` sintaxe.

Os comandos de software são configurados em duas abas: **Geral** e **Corpo**.

Para adicionar um comando de software, clique em **Adicionar comando de software** na parte inferior do bloco.

#### Aba Geral

{% columns %}
{% column width="58.333333333333336%" %}
Configure o seguinte:

1. **Título**: um rótulo para o comando conforme ele aparece no widget Objeto.
2. **URL**: a URL completa do endpoint para onde a requisição POST é enviada, por exemplo `https://hooks.slack.com/services/...` ou `https://api.eu.navixy.com/v2/...`.
3. **Cabeçalhos**: pares chave-valor enviados como cabeçalhos da requisição HTTP. Adicione cabeçalhos conforme necessário para o endpoint de destino. Clique em **Adicionar cabeçalho** para inserir uma nova linha.
   * Use o `Authorization` cabeçalho para autenticação baseada em token, por exemplo `Authorization` defina como `Bearer your_token`.
   * Outros métodos de autenticação compatíveis com o destino, como chaves de API passadas como parâmetros de consulta na URL, também podem ser usados.
     {% endcolumn %}

{% column width="41.666666666666664%" %}

<figure><img src="/files/004f83d55dc3acefdc76b6d466b0bfd4df157ca0" alt="Software command General tab with Title, URL, and Headers fields"><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

#### Aba Corpo

{% columns %}
{% column width="58.333333333333336%" %}
O **Corpo** O campo é onde você compõe a carga JSON. Escreva um JSON válido que corresponda ao formato esperado pelo endpoint de destino.

Para incluir dados ao vivo do dispositivo no payload, use a `{{attribute_name}}` sintaxe. Clique no botão do seletor de atributos <img src="/files/02e9fb393535cf7f1c536ae7640c1b692c99f254" alt="" data-size="line"> no canto superior direito do campo do corpo para abrir uma lista pesquisável de atributos disponíveis para o dispositivo. Selecionar um atributo insere o `{{attribute_name}}` marcador de posição correspondente no corpo na posição do cursor.
{% endcolumn %}

{% column width="41.666666666666664%" %}

<figure><img src="/files/6fd3eafd0066acf65c7ad31ffaba70e45359951a" alt="Software command Body tab with JSON body field and attribute picker"><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

{% hint style="info" %}
Os atributos disponíveis dependem do dispositivo específico e dos dados que ele transmite para a plataforma Navixy. Somente os atributos realmente enviados pelo dispositivo aparecem na lista. Use o seletor para evitar erros de digitação ou nomes de atributos incorretos.
{% endhint %}

Clique em **Salvar** para salvar o comando. Clique em **Excluir** para removê-lo.

#### Exemplo: enviando uma notificação do Slack

O Slack oferece suporte ao recebimento de mensagens de serviços externos por meio de Webhooks de entrada. Depois de configurar um webhook em seu espaço de trabalho do Slack e obter a URL do webhook (consulte o [guia de Webhooks de entrada do Slack](https://docs.slack.dev/messaging/sending-messages-using-incoming-webhooks/)), crie um comando de software com a seguinte configuração.

**Aba Geral:**

* **Título**: `Notificar Slack`
* **URL**: sua URL de Webhook de entrada do Slack, por exemplo `https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXX`
* **Cabeçalhos**: nenhum cabeçalho necessário

**Aba Corpo:**

{% code overflow="wrap" %}

```json
{
  "text": "Dispositivo {{device_id}}: velocidade {{speed}} km/h em {{latitude}}, {{longitude}}"
}
```

{% endcode %}

O Slack espera um objeto JSON com um `text` . O `{{device_id}}`, `{{speed}}`, `{{latitude}}`, e `{{longitude}}` espaços reservados são substituídos pelos valores atuais do dispositivo no momento em que o comando é enviado. Quando acionada a partir do widget Objeto, a mensagem aparece no canal do Slack configurado para seu webhook.

### Valores dinâmicos do comando

Uma string de comando ou o corpo de um comando de software pode incluir um único `<>` marcador de posição para solicitar um valor cada vez que você enviar o comando, em vez de codificar um valor fixo.

* Em um comando do dispositivo, adicione `<>` dentro do **String do comando** campo, por exemplo `relay,<>` para enviar um estado de relé diferente a cada envio.
* Em um comando de software, adicione `<>` dentro do **Corpo** campo, por exemplo `{"value": "<>"}`.

Apenas um `<>` marcador de posição é permitido por comando. Salvar um comando com mais de um marcador de posição retorna o erro "Apenas um valor é permitido por comando. Remova o < > extra."

Quando você envia um comando que contém um marcador de posição `<>` , a partir do widget Objeto, uma caixa de diálogo solicita o valor antes do envio. Veja [Enviando comandos a partir do widget Objeto](#sending-commands-from-the-object-widget) para o fluxo completo.

{% hint style="info" %}
Clique no ícone de ajuda no bloco Comandos para abrir **Como funcionam os valores dos comandos**, um resumo de `<>` sintaxe.
{% endhint %}

## Enviando comandos a partir do widget Objeto

Depois que os comandos são salvos, eles aparecem no **bloco Comandos** bloco do widget Objeto do dispositivo [widget Objeto](/docs/user/pt-br/guide/tracking/objects-list/object-widget.md) no módulo de Monitor.

<figure><img src="/files/fb6e40fa236a929796186852078a1943c4629013" alt="Object widget Commands block showing two commands with send buttons"><figcaption></figcaption></figure>

Clique no **botão Enviar** ao lado do nome de um comando para enviá-lo. O bloco Comandos mostra todos os comandos do dispositivo e os comandos de software configurados para esse dispositivo.

* Se o comando não contiver um [marcador de valor dinâmico](#dynamic-command-values), a Navixy o envia imediatamente. Não há caixa de diálogo de confirmação.
* Se o comando contiver `<>`, uma caixa de diálogo é aberta pedindo que você insira um valor. Insira um valor de até 500 caracteres e clique em **Enviar** para enviar o comando com o valor substituído por `<>`. Os nós **Enviar** o botão permanece desativado até você inserir um valor, e valores vazios ou compostos apenas por espaços em branco não são aceitos.

Depois que o comando é executado, a Navixy exibe uma notificação com o resultado:

* **Comandos do dispositivo** mostram apenas se o comando foi bem-sucedido, como `{ "success": true }` ou `{ "success": false }`.
* **Comandos de software** mostram o nome do comando e a resposta bruta do endpoint de destino, como `{status, body}`. Respostas longas podem ser roladas dentro da notificação.

Os comandos enviados também aparecem no [Eventos recentes](/docs/user/pt-br/guide/tracking/objects-list/object-widget.md#data-blocks) bloco do widget Objeto, com o resultado disponível em uma visualização expansível.

{% hint style="info" %}
Os comandos são específicos de cada dispositivo. Comandos configurados para um dispositivo não aparecem nos widgets Objeto de outros dispositivos. Para enviar comandos para vários dispositivos com base em regras ou condições, use 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/pt-br/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.
