> 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-es/kilo-iot-server/devices/commands/executing-commands.md).

# Ejecución de comandos

Envía comandos de dispositivo desde la pestaña Estados en Kilo IoT Server y sigue cada uno hasta confirmado, advertencia leve o fallido.

Una vez que un dispositivo tiene comandos definidos, la **pestaña Estados** subpestaña de la **pestaña Comandos y estados** pestaña es donde lo operas. Muestra lo que puedes ejecutar, te permite enviar un comando con sus parámetros y registra el resultado de todo lo que has enviado.

<figure><img src="https://3373664356-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtNQh1wBSHSaknslMdOXm%2Fuploads%2Fgit-blob-e74a4f82293990804b0f2c1f00d28c14a5309a51%2Fdevice-command-execute.jpg?alt=media" alt="The Execute command dialog, setting a parameter value before dispatch"><figcaption></figcaption></figure>

## Comandos disponibles

El **Comandos disponibles** tabla lista todos los comandos definidos en el dispositivo:

| Columna          | Muestra                                     |
| ---------------- | ------------------------------------------- |
| **Nombre**       | El nombre orientado a la acción del comando |
| **Descripción**  | Qué hace                                    |
| **Parámetros**   | Cuántas entradas de tipo texto requiere     |
| **Verificación** | Cómo confirma la plataforma el resultado    |
| **Ejecutar**     | La acción que envía el comando              |

Si la tabla está vacía, el dispositivo aún no tiene comandos — abre la **Comandos** subpestaña y define uno (consulta [Creación de comandos](/kilo-docs-es/kilo-iot-server/devices/commands/creating-commands.md)).

## Ejecutar un comando

Haz clic en **Ejecutar** en un comando para abrir el **Ejecutar comando** diálogo.

* Si el comando no tiene parámetros, el diálogo simplemente confirma que no hay nada que configurar — pulsa **Ejecutar** para enviarlo.
* Si requiere parámetros, completa cada **Valor**. Los campos numéricos muestran su rango permitido (por ejemplo `Mín: 0 - Máx: 100`), y el diálogo aplica los límites definidos en el comando, así que no puedes enviar un valor que el dispositivo rechazaría.
* Haz clic en **Ejecutar** para enviar, o **Cancelar** para salir.

El comando se envía al dispositivo y la plataforma empieza a hacerle seguimiento según la estrategia de verificación del comando.

## Cuando un dispositivo está sin conexión

Si no se ha recibido ninguna señal del dispositivo dentro de su ventana esperada, aparece un banner en la parte superior de la pestaña Estados indicando que el dispositivo está sin conexión, junto con la última vez que se vio. Los comandos no pueden ejecutarse de forma interactiva contra un dispositivo sin conexión, pero los comandos en cola se envían automáticamente cuando el dispositivo se reconecta, así que la intención de control nunca se pierde en silencio.

## Ejecuciones recientes

Cada envío se registra en la **Ejecuciones recientes** tabla, ofreciéndote un historial continuo de la actividad de control en el dispositivo:

| Columna         | Muestra                                          |
| --------------- | ------------------------------------------------ |
| **Comando**     | Qué comando se ejecutó                           |
| **Iniciado**    | Cuándo se envió                                  |
| **Actualizado** | Cuándo cambió por última vez su estado           |
| **Estado**      | El resultado del ciclo de vida (abajo)           |
| **Detalles**    | Una nota en lenguaje sencillo sobre el resultado |

### Estado de ejecución

La plataforma resume el ciclo completo de entrega en cinco resultados claros:

* **Pendiente** — En curso. El comando se ha enviado y está pasando por la entrega y, si está configurado, la verificación.
* **Confirmado** — Éxito verificado. La verificación estaba configurada y el estado reportado por el dispositivo coincidió con lo esperado.
* **Entregado** — El enlace descendente fue aceptado para su entrega, pero el comando usa **Sin verificación**, así que la plataforma no comprueba si el dispositivo actuó en consecuencia. El comando se envió; su efecto no se verifica a propósito, distinto del verificado **Confirmado**.
* **Advertencia suave** — Entregado y confirmado, pero la plataforma no pudo confirmar el efecto dentro de la ventana de convergencia. Trátalo como «no se pudo verificar», no como «falló definitivamente»: vale la pena revisarlo, pero es muy posible que el comando sí haya funcionado.
* **Fallido** — El comando no se ejecutó. La **Detalles** columna explica por qué: por ejemplo, un fallo de validación o una cola de enlace descendente del dispositivo llena.

El **Detalles** texto da la razón legible por humanos detrás de cada estado, así que clasificar un comando problemático rara vez requiere salir de la página.

### Razones comunes en la columna Detalles

Cuando un comando termina en **Advertencia suave** o **Fallido**, la columna Detalles nombra la causa en lenguaje sencillo. Las que verás con más frecuencia:

| Lo que dice Detalles                                                   | Qué significa                                                                                                 |
| ---------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| La cola de enlace descendente del dispositivo está llena.              | La cola de enlaces descendentes pendientes del dispositivo está saturada: espera o vacíala antes de reenviar. |
| Falló la validación.                                                   | La solicitud no pasó la validación: revisa los parámetros y la carga útil del comando.                        |
| Carga útil demasiado grande para el dispositivo.                       | La carga útil codificada supera lo que el dispositivo acepta a su tasa de datos actual.                       |
| Enviado, pero el dispositivo no confirmó la recepción.                 | El enlace descendente se envió, pero no llegó ninguna confirmación (enlaces descendentes confirmados).        |
| Enviado, pero el dispositivo no confirmó el estado esperado a tiempo.  | Entregado, pero el estado del sensor esperado no llegó dentro de la ventana de convergencia.                  |
| Dispositivo sin conexión: el comando no se entregó a tiempo.           | No se pudo alcanzar el dispositivo dentro de su ventana de recepción.                                         |
| No había ninguna pasarela disponible para llegar al dispositivo.       | No había ninguna pasarela dentro del alcance para transmitir el enlace descendente.                           |
| Falló la autenticación del broker.                                     | La conexión MQTT rechazó la publicación: revisa las credenciales del conector.                                |
| No se pudo enviar el comando. Por favor, inténtalo de nuevo más tarde. | Un error de envío transitorio: vuelve a intentarlo.                                                           |
| Carga útil inválida: revisa el comando.                                | La carga útil estaba mal formada para el dispositivo: revisa el codificador o la plantilla.                   |

Estos son los casos comunes; pueden aparecer otros mensajes, y la plataforma transmite la razón subyacente cuando tiene una más específica.

## Operar comandos desde un panel

Para el control diario, no hace falta abrir la página de detalles del dispositivo. Añade un [Widget de control](/kilo-docs-es/kilo-iot-server/dashboards/adding-widgets/control-widget.md) a un panel, vincúlalo a un comando de un dispositivo controlable y cualquiera con acceso a ese panel podrá operar el dispositivo con un solo Switch o Botón, respaldado por la misma canalización de ejecución e historial descritos aquí.

También puedes enviar un comando simplemente pidiéndolo. El [Asistente de IA IoT](/kilo-docs-es/kilo-iot-server/ai-assistant.md) integrado enumerará los comandos de un dispositivo, ejecutará uno después de mostrarte lo que está a punto de enviar y esperar tu confirmación, y luego informará del estado de entrega; y un cliente externo conectado a través de [Servidor MCP](/kilo-docs-es/kilo-iot-server/api/mcp-server.md) puede hacer lo mismo. En cualquier caso, el envío pasa por la canalización descrita en esta página y queda en el mismo historial.

## Relacionado

* [Creación de comandos](/kilo-docs-es/kilo-iot-server/devices/commands/creating-commands.md) — define las acciones que puede realizar un dispositivo
* [Confirmación de comandos](/kilo-docs-es/kilo-iot-server/devices/commands/verification.md) — establece cómo verifica la plataforma un resultado
* [Ejemplo: enchufe inteligente](/kilo-docs-es/kilo-iot-server/devices/commands/smart-socket-example.md) — crea y verifica dos comandos de extremo a extremo
* [Widget de control](/kilo-docs-es/kilo-iot-server/dashboards/adding-widgets/control-widget.md) — coloca un comando en un panel
* [Crear con IA](/kilo-docs-es/kilo-iot-server/ai-assistant/building-with-ai.md) — ejecuta un comando preguntando al asistente
* [Servidor MCP](/kilo-docs-es/kilo-iot-server/api/mcp-server.md) — ejecuta un comando desde ChatGPT, Claude u otro cliente de IA


---

# 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-es/kilo-iot-server/devices/commands/executing-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.
