Novedad: el cortafuegos de IA supervisa cada módulo y explica cada incidente con palabras sencillas. Vea cómo funciona

Los comandos no llegan al dispositivo

Por qué un comando permanece en cola, agota el tiempo, caduca, falla o se rechaza: estados de los comandos, persistencia y caducidad, niveles y permisos, sesiones sin cifrar y límites.

Esta página ayuda cuando un comando enviado desde la página del dispositivo, un control del panel, un símbolo SCADA, una regla, un flujo o la API no hace lo que esperas. Empieza por el historial del comando: abre la pestaña Commands del dispositivo y el comando en History. Su estado y su Progress suelen indicar qué ha ocurrido.

Lee el estado

EstadoSignificadoSiguiente paso
QueuedAlmacenado, esperando al dispositivoConsulta «Stays queued» más abajo
SentEnviado, aún no confirmado por el dispositivoEspera; si se mantiene, es posible que el dispositivo no gestione el topic
DeliveredEl dispositivo lo ha recibidoEspera la respuesta
SuccessfulEl dispositivo respondió con éxitoSi nada ha cambiado físicamente, revisa el lado del dispositivo
FailedEl dispositivo respondió con un errorLee la Response
Timed outNo llegó ninguna respuesta a tiempoEl comando puede haberse ejecutado igualmente: «No answer: the outcome is unknown». Revisa el dispositivo antes de volver a enviarlo.
ExpiredCaducó antes de poder entregarseEl dispositivo estuvo desconectado más tiempo que Give up after
CancelledAlguien lo canceló

Permanece en cola o caduca

CausaSolución
El dispositivo está desconectado y el comando es persistentEspera hasta que el dispositivo vuelva, como máximo hasta Give up after (24 horas por defecto, como máximo 7 días)
El dispositivo está desconectado y el comando no es persistenteFalla de inmediato: «The device is offline: without «persistent» the command fails at once.» Envíalo como persistente, o cuando el dispositivo esté en línea.
El dispositivo no se ha suscrito a v1/rpc/req/+ en esta conexiónLos comandos solo se entregan después de esa suscripción. El dispositivo debe suscribirse de nuevo tras cada conexión.
La sesión no está cifrada (MQTT o HTTP sin TLS)Los comandos viajan solo por sesiones TLS, salvo los listados en Commands allowed without TLS del perfil. Los demás esperan a una sesión TLS o a su caducidad.
El dispositivo está detrás de una pasarelaLos comandos a dispositivos detrás de una pasarela están en desarrollo. Envía los comandos a la pasarela, o a dispositivos que se conecten por sí mismos. Consulta Commands to devices behind a gateway.
Un dispositivo HTTP no consultaLos dispositivos HTTP esperan comandos con GET /api/v1/rpc (long poll). Solo puede haber una consulta abierta por dispositivo (409). Consulta Device HTTP API.

Se agota el tiempo

CausaSolución
El dispositivo ejecuta el comando pero no responde en v1/rpc/res/{id}Haz que responda con el mismo id, o envía el comando como unidireccional
El tiempo de espera de respuesta es demasiado cortoAnswer timeout (seconds) va de 1 a 600 (10 por defecto)
Una tarea de larga duraciónEl dispositivo debe aceptarla de inmediato ("accepted": true, "job_id": …) e informar del resultado más tarde en el atributo de cliente rpc_result
La respuesta llegó después del finalSe muestra como Answered after the end

Un comando puede llegar al dispositivo dos veces. El dispositivo debe recordar los últimos 32 ids de petición durante 10 minutos y no ejecutar nunca uno dos veces. Consulta Sending commands to devices.

Se rechaza antes de enviarse

Mensaje o motivoCausaSolución
bad_paramsLos parámetros no coinciden con el comandoRellena todos los parámetros obligatorios dentro de su rango
confirm_required, confirm_text_mismatchUn comando de alto impacto necesita confirmación, o la frase escrita es incorrectaConfirma; escribe la frase exactamente
method_refusedEl restablecimiento de fábrica, el emparejamiento, olvidar la Wi-Fi y olvidar la nube nunca se envían desde la nubeHazlos en el dispositivo
rpc_method_reservedEl método pertenece a un módulo propio (por ejemplo, acceso remoto)Usa ese módulo
rpc_not_supported_by_profileEl perfil usa solo el esquema de topics Legacy compatible, que no transporta comandosEnvía los ajustes como atributos compartidos, o pasa el perfil al esquema actual
device_not_activeEl dispositivo está deshabilitado o en cuarentenaHabilítalo o actívalo
payload_too_largeLa petición es mayor de lo que acepta el dispositivo (64 KiB por defecto, 4 KiB para dispositivos licenciados)Envía menos
device_rate_limitedMás de 10 comandos a este dispositivo en un minutoEspera un minuto
«Too many requests for your plan…»Más de 600 comandos en la organización en un minutoReparte los comandos

Consulta Commands API para la lista completa.

Niveles y permisos

NivelQuién puede enviarlo por defectoPermiso
BasicUsuariosiot_rpc.send.basic
PrivilegedAdministradoresiot_rpc.send.privileged
CriticalAdministradoresiot_rpc.send.critical
Raw (un método que no está en el catálogo)Propietariosiot_rpc.send.raw

Un botón que falta o un error de permisos significan que tu rol o tus grupos no tienen el permiso del nivel. Consulta Groups and permissions.

Desde un panel, una regla o un flujo

DóndeCausa habitual
Un control del panelA los controles del panel solo se ofrecen comandos Basic. Un comando que no está en la lista no pertenece al catálogo del perfil o es de un nivel superior. Un control en gris tiene una lectura antigua o desconocida, o no tienes el permiso. Consulta Control cards.
Un control del panel que parece no hacer nadaEl control pide confirmación antes de enviar (Ask before running está activado por defecto); el comando se ejecuta solo tras Confirm
Una regla de la tarjeta RulesHistory muestra «skipped: device is in Manual» cuando el dispositivo o un elemento superior está en Manual, o un paso de comando fallido. Consulta Manual and auto modes.
Un flujoLos comandos y ajustes de flujos a un dispositivo están limitados a 30 por minuto por defecto. El comando se busca en el perfil de cada dispositivo; los dispositivos cuyo perfil no lo tiene no reciben nada. Los mensajes tardíos no envían comandos. Consulta Alarm, command and notify blocks.
Un símbolo SCADAEl comando de un símbolo siempre pide confirmación. Consulta Commands on symbols.
Un dispositivo LoRaWANSolo downlinks raw (lora.downlink). Los dispositivos Clase A los reciben tras su siguiente uplink. Consulta Sending downlinks.

Relacionado