Envío de un comando raw desde una instancia de gemelo digital
Envío de un comando a un dispositivo.
Según el tipo de datos que desee enviar, utilice los siguientes comandos de la CLI y la operación de API para enviar un comando JSON sin formato, un comando de texto sin formato o un comando binario sin formato a un dispositivo.
Actualmente, MQTT Secure (MQTTS) solo está soportado mediante el puerto
8883.Para obtener más información, consulte Escenario: recepción de comandos y envío de respuestas mediante MQTTs.
- En la página de lista Dominios, seleccione el dominio con el que desea trabajar. Si necesita ayuda para buscar la página de lista de dominios IoT o un dominio IoT, consulte Listado de dominios IoT.
- Seleccione el separador Instancias gemelas digitales.
- Seleccione el nombre de instancia de gemelo digital con el que desea trabajar.
- Desde el menú Acciones situado en la parte superior de la página, seleccione Enviar comando raw.
- Introduzca el punto final de solicitud, el dispositivo al que se debe reenviar el comando.
- Introduzca la Duración de la solicitud y defina un marco temporal para que el dispositivo complete la ejecución del comando. Utilice ISO 8601 para el formato de duración, por ejemplo, PT3M equivale a 3 minutos.
- Seleccione el formato de datos del comando e introduzca los detalles del comando; el tamaño máximo es 256k:
- JSON: datos del comando JSON.
- Binario: arrastre y suelte o seleccione un archivo con los datos del comando codificados base64. Normalmente, el tipo de contenido mime es
application/octet-stream. Puede editar el tipo de contenido. - Texto sin formato: introduzca los datos del comando sin formato de texto sin formato.
- Opcional. Active la opción para Especificar parámetros de respuesta
- Duración de respuesta: tiempo máximo que el sistema espera una respuesta. Utilice ISO 8601 para el formato de duración, por ejemplo, PT3M equivale a 3 minutos.
- Punto final de respuesta: punto final de dispositivo en el que se espera la respuesta, por ejemplo,
myinstance/response.
- Seleccione Enviar comando raw.
Utilice el comando
oci iot digital-twin-instance invoke-raw-<data-type>-commandy los parámetros necesarios para llamar a un comando JSON, binario o de texto sin formato en un dispositivo. Sustituya<digital-twin-instance-OCID>por el OCID de instancia de gemelo digital de su entorno:Utilice el comando oci iot digital-twin-instance invoke-raw-json-command para llamar a un comando JSON sin formato. Sustituya los valores de su entorno:
oci iot digital-twin-instance invoke-raw-json-command \ --digital-twin-instance-id <digital-twin-instance-OCID> \ --request-endpoint /endpoints/<device-id> \ --request-data '{"temp": 34}' \ --request-data-content-type application/json \ --request-duration PT10M \ --response-endpoint /endpoints/<response-device-id>Utilice el comando oci iot digital-twin-instance invoke-raw-binary-command para llamar a un comando binario raw. Sustituya los valores de parámetros para su entorno:
oci iot digital-twin-instance invoke-raw-binary-command \ --digital-twin-instance-id <digital-twin-instance-OCID> \ --request-endpoint /endpoints/1234 \ --request-data file:///mnt/data/binary_input.bin \ --request-data-content-type application/octet-stream \ --request-duration PT10M --response-endpoint /endpoints/4321Utilice el comando oci iot digital-twin-instance invoke-raw-text-command para llamar a un comando de texto sin formato. Sustituya los valores de parámetros para su entorno:
oci iot digital-twin-instance invoke-raw-text-command \ --digital-twin-instance-id <digital-twin-instance-OCID> \ --request-endpoint /endpoints/1234 \ --request-data 'command input as text' \ --request-data-content-type text/plain \ --request-duration PT10M \ --response-endpoint /endpoints/4321Para obtener una lista completa de los parámetros y valores de los comandos de la CLI, consulte Referencia de comandos de la CLI.
- Ejecute la operación InvokeRawCommand y el parámetro necesario para enviar un comando raw a un dispositivo. Se soportan los siguientes tipos de dato:
- JSON
- binario
- texto
Respuestas de comando
| Escenario | Estado del dispositivo | Estado de comando esperado | Comentarios |
|---|---|---|---|
| No conectado | No conectado no suscrito | RECHAZADO | La entrega del comando falla inmediatamente |
| Conectado pero no suscrito | Conectado | RECHAZADO | Dispositivo en línea pero no recibe el comando |
| Suscrito pero no conectado | Solo suscrito | PENDIENTE → CADUCADO | El comando espera; caduca después del timeout |
| Suscrito pero no conectado inicialmente y se conecta antes del timeout | Inicialmente fuera de línea | PENDIENTE → ENVIADA | Comando recibido |
| Conectado y suscrito | Conectado y suscrito | ENVIADO | Comando recibido |
| Comando unidireccional (no se esperaba respuesta) | Conectado y suscrito | TERMINADO | La respuesta no se espera y se realiza un seguimiento |
| Comando bidireccional (no se ha recibido respuesta) | Conectado y suscrito | NOT_RESPONDED | El dispositivo no responde dentro del timeout de duración de respuesta |
| Comando bidireccional (respuesta recibida) | Conectado y suscrito | TERMINADO | El dispositivo envía los datos dentro del tiempo de espera de respuesta y completa el flujo |