Yeni: Yapay zekâ güvenlik duvarı her modülü izliyor ve her olayı sade bir dille açıklıyor. Nasıl çalıştığını görün

Commands do not reach the device

Why a command stays queued, times out, expires, fails or is refused – command states, persistence and expiry, tiers and permissions, plain sessions and limits.

This page helps when a command sent from the device page, a board control, a SCADA symbol, a rule, a flow or the API does not do what you expect. Start from the command’s history: open the device’s Commands tab and the command in History. Its state and its Progress usually say what happened.

Read the state

StateMeaningNext step
QueuedStored, waiting for the deviceSee “Stays queued” below
SentSent, not yet confirmed by the deviceWait; if it stays, the device may not handle the topic
DeliveredThe device received itWait for the answer
SuccessfulThe device answered with successIf nothing changed physically, check the device side
FailedThe device answered with an errorRead the Response
Timed outNo answer arrived in timeThe command may still have run: “No answer: the outcome is unknown”. Check the device before you send again.
ExpiredIt expired before it could be deliveredThe device was offline longer than Give up after
CancelledSomeone cancelled it

It stays queued or expires

CauseFix
The device is offline and the command is persistentIt waits until the device comes back, at most until Give up after (24 hours by default, at most 7 days)
The device is offline and the command is not persistentIt fails at once: “The device is offline: without “persistent” the command fails at once.” Send it as persistent, or when the device is online.
The device has not subscribed to v1/rpc/req/+ on this connectionCommands are delivered only after that subscription. The device must subscribe again after every connect.
The session is in clear (plain MQTT or plain HTTP)Commands travel only over TLS sessions, except the ones listed in the profile’s Commands allowed without TLS. Others wait for a TLS session or their expiry.
The device is behind a gatewayCommands to devices behind a gateway are in development. Send commands to the gateway, or to devices that connect themselves. See Commands to devices behind a gateway.
An HTTP device does not pollHTTP devices wait for commands with GET /api/v1/rpc (long poll). Only one poll per device may be open (409). See Device HTTP API.

It times out

CauseFix
The device runs the command but does not answer on v1/rpc/res/{id}Make it answer with the same id, or send the command as one-way
The answer timeout is too shortAnswer timeout (seconds) is 1 to 600 (10 by default)
A long-running jobThe device should accept at once ("accepted": true, "job_id": …) and report the result later in the rpc_result client attribute
The answer came after the endShown as Answered after the end

A command may reach the device twice. The device must remember the last 32 request ids for 10 minutes and never run one twice. See Sending commands to devices.

It is refused before it is sent

Message or reasonCauseFix
bad_paramsThe parameters do not match the commandFill every required parameter within its range
confirm_required, confirm_text_mismatchA high-impact command needs a confirmation, or the typed phrase is wrongConfirm; type the phrase exactly
method_refusedFactory reset, pairing, Wi-Fi forget and forgetting the cloud are never sent from the cloudDo these on the device
rpc_method_reservedThe method belongs to a module of its own (for example remote access)Use that module
rpc_not_supported_by_profileThe profile uses only the Legacy compatible topic scheme, which carries no commandsSend settings as shared attributes, or move the profile to the current scheme
device_not_activeThe device is disabled or quarantinedEnable or activate it
payload_too_largeThe request is larger than the device accepts (64 KiB by default, 4 KiB for licensed devices)Send less
device_rate_limitedMore than 10 commands to this device in a minuteWait a minute
“Too many requests for your plan…”More than 600 commands in the organisation in a minuteSpread the commands

See Commands API for the full list.

Tiers and permissions

TierWho may send it by defaultPermission
BasicUsersiot_rpc.send.basic
PrivilegedAdministratorsiot_rpc.send.privileged
CriticalAdministratorsiot_rpc.send.critical
Raw (a method not in the catalog)Ownersiot_rpc.send.raw

A missing button or a permission error means your role or groups lack the tier’s permission. See Groups and permissions.

From a dashboard, a rule or a flow

WhereCommon cause
A board controlOnly Basic commands are offered to board controls. A command not in the list is not in the profile’s catalog or is of a higher tier. A greyed control has an old or unknown reading, or you lack the permission. See Control cards.
A board control that seems to do nothingThe control asks before it sends (Ask before running is on by default); the command runs only after Confirm
A Rules-card ruleHistory shows “skipped: device is in Manual” when the device or a place above it is in Manual, or a failed command step. See Manual and auto modes.
A flowCommands and settings from flows to one device are limited to 30 a minute by default. The command is looked up in each device’s profile; devices whose profile lacks it get nothing. Late messages send no commands. See Alarm, command and notify blocks.
A SCADA symbolA symbol’s command always asks for confirmation. See Commands on symbols.
A LoRaWAN deviceOnly raw downlinks (lora.downlink). Class A devices receive them after their next uplink. See Sending downlinks.