Nouveau : le pare-feu IA surveille chaque module et explique chaque incident en termes simples. Découvrez comment ça marche

Les commandes n’atteignent pas l’appareil

Pourquoi une commande reste en file d'attente, expire, échoue ou est refusée : états des commandes, persistance et expiration, niveaux et permissions, sessions en clair et limites.

Cette page vous aide lorsqu’une commande envoyée depuis la page de l’appareil, un contrôle de tableau de bord, un symbole SCADA, une règle, un flux ou l’API ne produit pas le résultat attendu. Commencez par l’historique de la commande : ouvrez l’onglet Commands de l’appareil, puis la commande dans History. Son état et sa Progress indiquent généralement ce qui s’est passé.

Lire l’état

ÉtatSignificationÉtape suivante
QueuedEnregistrée, en attente de l’appareilVoir « Stays queued » ci-dessous
SentEnvoyée, pas encore confirmée par l’appareilPatienter ; si l’état persiste, l’appareil ne gère peut-être pas le topic
DeliveredL’appareil l’a reçueAttendre la réponse
SuccessfulL’appareil a répondu avec succèsSi rien n’a changé physiquement, vérifiez côté appareil
FailedL’appareil a répondu par une erreurLire la Response
Timed outAucune réponse n’est arrivée à tempsLa commande a peut-être tout de même été exécutée : « No answer: the outcome is unknown ». Vérifiez l’appareil avant de renvoyer la commande.
ExpiredElle a expiré avant d’avoir pu être livréeL’appareil est resté hors ligne plus longtemps que Give up after
CancelledQuelqu’un l’a annulée

Elle reste en file d’attente ou expire

CauseCorrection
L’appareil est hors ligne et la commande est persistentElle attend le retour de l’appareil, au plus jusqu’à Give up after (24 heures par défaut, 7 jours au maximum)
L’appareil est hors ligne et la commande n’est pas persistanteElle échoue immédiatement : « The device is offline: without « persistent » the command fails at once. ». Envoyez-la en mode persistant, ou lorsque l’appareil est en ligne.
L’appareil ne s’est pas abonné à v1/rpc/req/+ sur cette connexionLes commandes ne sont livrées qu’après cet abonnement. L’appareil doit se réabonner après chaque connexion.
La session est en clair (MQTT simple ou HTTP simple)Les commandes ne transitent que par des sessions TLS, sauf celles listées dans Commands allowed without TLS du profil. Les autres attendent une session TLS ou leur expiration.
L’appareil se trouve derrière une passerelleLes commandes vers les appareils derrière une passerelle sont en cours de développement. Envoyez les commandes à la passerelle, ou aux appareils qui se connectent eux-mêmes. Voir Commands to devices behind a gateway.
Un appareil HTTP n’interroge pas le serveurLes appareils HTTP attendent les commandes avec GET /api/v1/rpc (long poll). Une seule requête d’interrogation par appareil peut être ouverte (409). Voir Device HTTP API.

Elle expire par délai dépassé

CauseCorrection
L’appareil exécute la commande mais ne répond pas sur v1/rpc/res/{id}Faites-le répondre avec le même id, ou envoyez la commande en sens unique (one-way)
Le délai de réponse est trop courtAnswer timeout (seconds) est compris entre 1 et 600 (10 par défaut)
Une tâche de longue duréeL’appareil doit accepter immédiatement ("accepted": true, "job_id": …) et signaler le résultat plus tard dans l’attribut client rpc_result
La réponse est arrivée après la finAffichée comme Answered after the end

Une commande peut atteindre l’appareil deux fois. L’appareil doit mémoriser les 32 derniers identifiants de requête pendant 10 minutes et ne jamais exécuter une même requête deux fois. Voir Sending commands to devices.

Elle est refusée avant d’être envoyée

Message ou motifCauseCorrection
bad_paramsLes paramètres ne correspondent pas à la commandeRenseignez chaque paramètre obligatoire dans sa plage de valeurs
confirm_required, confirm_text_mismatchUne commande à fort impact exige une confirmation, ou la phrase saisie est incorrecteConfirmez ; saisissez la phrase exactement
method_refusedLa réinitialisation d’usine, l’appairage, l’oubli du Wi-Fi et l’oubli du cloud ne sont jamais envoyés depuis le cloudEffectuez-les sur l’appareil
rpc_method_reservedLa méthode appartient à un module dédié (par exemple l’accès à distance)Utilisez ce module
rpc_not_supported_by_profileLe profil n’utilise que le schéma de topics Legacy compatible, qui ne transporte aucune commandeEnvoyez les réglages en attributs partagés, ou passez le profil au schéma actuel
device_not_activeL’appareil est désactivé ou mis en quarantaineActivez-le
payload_too_largeLa requête dépasse la taille acceptée par l’appareil (64 Kio par défaut, 4 Kio pour les appareils sous licence)Envoyez moins de données
device_rate_limitedPlus de 10 commandes vers cet appareil en une minuteAttendez une minute
« Too many requests for your plan… »Plus de 600 commandes dans l’organisation en une minuteRépartissez les commandes dans le temps

Voir Commands API pour la liste complète.

Niveaux et permissions

NiveauQui peut l’envoyer par défautPermission
BasicUtilisateursiot_rpc.send.basic
PrivilegedAdministrateursiot_rpc.send.privileged
CriticalAdministrateursiot_rpc.send.critical
Raw (méthode absente du catalogue)Propriétairesiot_rpc.send.raw

Un bouton absent ou une erreur de permission signifie que votre rôle ou vos groupes ne disposent pas de la permission du niveau. Voir Groups and permissions.

Depuis un tableau de bord, une règle ou un flux

OùCause fréquente
Un contrôle de tableau de bordSeules les commandes Basic sont proposées aux contrôles de tableau de bord. Une commande absente de la liste n’est pas dans le catalogue du profil ou est d’un niveau supérieur. Un contrôle grisé a une valeur ancienne ou inconnue, ou vous n’avez pas la permission. Voir Control cards.
Un contrôle de tableau de bord qui semble ne rien faireLe contrôle demande confirmation avant l’envoi (Ask before running est activé par défaut) ; la commande ne s’exécute qu’après Confirm
Une règle de la carte RulesHistory affiche « skipped: device is in Manual » lorsque l’appareil ou un élément au-dessus est en Manual, ou une étape de commande en échec. Voir Manual and auto modes.
Un fluxLes commandes et réglages envoyés par les flux vers un appareil sont limités à 30 par minute par défaut. La commande est recherchée dans le profil de chaque appareil ; les appareils dont le profil ne la contient pas ne reçoivent rien. Les messages tardifs n’envoient aucune commande. Voir Alarm, command and notify blocks.
Un symbole SCADALa commande d’un symbole demande toujours une confirmation. Voir Commands on symbols.
Un appareil LoRaWANSeuls les downlinks bruts (lora.downlink) sont possibles. Les appareils de classe A les reçoivent après leur prochain uplink. Voir Sending downlinks.

Liens associés