> 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/smart-socket-example.md).

# Ejemplo: enchufe inteligente

Crea comandos de encendido y apagado para un enchufe inteligente de principio a fin — carga útil, codificador, verificación y ejecución desde la pestaña Estados.

Este recorrido crea dos comandos en un dispositivo y verifica que funcionaron. Utiliza un enchufe inteligente alimentado por la red que informa si su relé está encendido o apagado, pero la misma secuencia se aplica a cualquier actuador: una válvula, una luminaria, un calentador.

Síguelo en orden — cada sección produce algo que la siguiente necesita.

## Antes de empezar

* El enchufe está registrado y transmitiendo. Clase C para LoRaWAN, o un dispositivo MQTT.
* Puedes ver sus lecturas en la **Métricas** pestaña (**Asignación** para MQTT).

## 1. Descubre cómo informa el dispositivo de su estado

Abre el dispositivo y ve a la **Métricas** pestaña. Revisa la tabla de claves del conector en busca del campo que transporta el estado del relé, y anota dos cosas: el nombre del campo y el valor que muestra ahora mismo.

Para este enchufe:

| Clave del conector | Valor actual |
| ------------------ | ------------ |
| `socket_status`    | `apagado`    |

Ese valor es lo que una comprobación de verificación comparará más adelante, así que anótalo exactamente como aparece — `apagado`, no `APAGADO` o `falso`.

Si el campo aún no está asignado a una métrica, asígnalo ahora: el editor de comandos selecciona sensores por su nombre de métrica, así que un campo sin asignar no puede usarse para verificar nada. Consulta [Decodificación de la carga útil y claves del conector](/kilo-docs-es/kilo-iot-server/devices/payload-decoding.md).

En este ejemplo `socket_status` está asignado a una métrica llamada **Estado del socket**.

## 2. Crea el comando Encender

Abra **Comandos y estados → Comandos** y haz clic en **Añadir nuevo comando**.

<figure><img src="https://3373664356-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. Identidad**

* **Nombre del comando** — `Encender`

**2. Enrutamiento**

* Para LoRaWAN: establece el **fPort** que espera el dispositivo, y activa **Downlink confirmado** encendido.
* Para MQTT: introduce el tema al que el enchufe se suscribe para los comandos.

**3. Carga útil**

Este comando no lleva parámetros — siempre envía lo mismo — así que no añadas ninguno y define la carga útil que debe construir el codificador. El enchufe espera tres bytes: canal `0x08`, tipo `0x70`, y el estado, `0x01` para encendido.

Usa **Probar codificador** para comprobar el resultado antes de guardar. Muestra la salida codificada en hex y base64 con su tamaño en bytes, así puedes confirmar que la carga útil es `08 70 01` antes de que el comando llegue al dispositivo.

**4. Verificación**

Elija **Espera la siguiente subida** — el enchufe informa de su estado en cada mensaje rutinario, así que no hace falta consultarlo por sondeo.

Bajo **Estados esperados del sensor**, haz clic en **Añadir estado**:

* **Métrica** — *Estado del socket*
* **Valor esperado** — `on`

Escribe el valor tal como lo informa el dispositivo. Aquí no importa el uso de mayúsculas, así que `on` también coincide con un dispositivo que informa `ENCENDIDO` — pero el texto y los números no son intercambiables, así que `1` no coincidiría. Consulta [Confirmación de comandos](/kilo-docs-es/kilo-iot-server/devices/commands/verification.md#expected-value).

Haz clic en **Guardar**.

## 3. Crea el comando Apagar

Repite los pasos anteriores con tres cambios:

* **Nombre del comando** — `Apagar`
* **Carga útil** — los mismos tres bytes con el byte de estado establecido en `0x00`
* **Valor esperado** — `apagado`

Todo lo demás sigue igual.

## 4. Ejecútalos y comprueba el resultado

Vaya a la **pestaña Estados** pestaña, busca **Encender** en la lista de comandos disponibles, y haz clic en **Ejecutar**.

Observa cómo aparece la entrada en **Ejecuciones recientes**:

1. Comienza como **Pendiente** mientras el enlace descendente está en camino.
2. Cuando llegue el siguiente mensaje del enchufe informando `socket_status: encendido`, la ejecución pasa a **Confirmado** — la plataforma ha visto el dispositivo en el estado que pediste.

Ejecuta **Apagar** y lo mismo ocurre a la inversa.

## Si la ejecución nunca se confirma

Una ejecución que permanece sin confirmar hasta que se cierra su ventana se marca como **Advertencia suave** — entregada, pero no confirmada. Revisa esto en orden:

1. **Comprueba el valor.** Abre la pestaña Métricas y lee lo que `socket_status` informa ahora. Si el enchufe cambió pero informa `1` en lugar de `on`, el valor esperado tiene que coincidir con esa forma — y un literal escrito siempre es texto, así que usa una `{{ parameterName }}` referencia a un parámetro Booleano o Entero en su lugar.
2. **Comprueba la métrica.** Asegúrate de que la Métrica que seleccionaste sea la alimentada por `socket_status`, y de que esté asignada y recibiendo lecturas.
3. **Comprueba la ventana.** La ventana predeterminada es 1.5 × el intervalo de envío de datos del dispositivo. Si ese intervalo no está configurado en el dispositivo, configúralo — consulta [Tiempo de espera de convergencia](/kilo-docs-es/kilo-iot-server/devices/commands/verification.md#convergence-timeout).
4. **Comprueba la carga útil.** Ejecuta **Probar codificador** de nuevo y compara los bytes con la documentación del fabricante.

## Siguiente

* Coloca los dos comandos en un panel con un [Widget de control](/kilo-docs-es/kilo-iot-server/dashboards/adding-widgets/control-widget.md) para que el equipo pueda cambiar el enchufe sin abrir el dispositivo.
* Deja que una regla opere el enchufe por sí sola — consulta [Ejecución de comandos de dispositivos](/kilo-docs-es/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-es/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.
