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
État
Signification
Étape suivante
Queued
Enregistrée, en attente de l’appareil
Voir « Stays queued » ci-dessous
Sent
Envoyée, pas encore confirmée par l’appareil
Patienter ; si l’état persiste, l’appareil ne gère peut-être pas le topic
Delivered
L’appareil l’a reçue
Attendre la réponse
Successful
L’appareil a répondu avec succès
Si rien n’a changé physiquement, vérifiez côté appareil
Failed
L’appareil a répondu par une erreur
Lire la Response
Timed out
Aucune réponse n’est arrivée à temps
La 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.
Expired
Elle a expiré avant d’avoir pu être livrée
L’appareil est resté hors ligne plus longtemps que Give up after
Cancelled
Quelqu’un l’a annulée
Elle reste en file d’attente ou expire
Cause
Correction
L’appareil est hors ligne et la commande est persistent
Elle 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 persistante
Elle é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 connexion
Les 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 passerelle
Les 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 serveur
Les 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é
Cause
Correction
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 court
Answer timeout (seconds) est compris entre 1 et 600 (10 par défaut)
Une tâche de longue durée
L’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 fin
Affiché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 motif
Cause
Correction
bad_params
Les paramètres ne correspondent pas à la commande
Renseignez chaque paramètre obligatoire dans sa plage de valeurs
confirm_required, confirm_text_mismatch
Une commande à fort impact exige une confirmation, ou la phrase saisie est incorrecte
Confirmez ; saisissez la phrase exactement
method_refused
La réinitialisation d’usine, l’appairage, l’oubli du Wi-Fi et l’oubli du cloud ne sont jamais envoyés depuis le cloud
Effectuez-les sur l’appareil
rpc_method_reserved
La méthode appartient à un module dédié (par exemple l’accès à distance)
Utilisez ce module
rpc_not_supported_by_profile
Le profil n’utilise que le schéma de topics Legacy compatible, qui ne transporte aucune commande
Envoyez les réglages en attributs partagés, ou passez le profil au schéma actuel
device_not_active
L’appareil est désactivé ou mis en quarantaine
Activez-le
payload_too_large
La 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_limited
Plus de 10 commandes vers cet appareil en une minute
Attendez une minute
« Too many requests for your plan… »
Plus de 600 commandes dans l’organisation en une minute
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 bord
Seules 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 faire
Le 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 Rules
History 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 flux
Les 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 SCADA
La commande d’un symbole demande toujours une confirmation. Voir Commands on symbols.
Un appareil LoRaWAN
Seuls les downlinks bruts (lora.downlink) sont possibles. Les appareils de classe A les reçoivent après leur prochain uplink. Voir Sending downlinks.
Nous utilisons des cookies nécessaires au fonctionnement du site. Avec votre permission, nous utilisons aussi des cookies d'analyse et de marketing. Vous pouvez modifier votre choix à tout moment. Politique en matière de cookies