Skip to content

Connect ARGUS DL-1 to iShareRadio MQTT

Device-specific example for the ARGUS DL-1 repeater — one product that uses a registered native wire layout (argus/prod/… on the device). Default topic setup for custom integrations is the platform layout.

For the Argus DL-1 product they use one shared MQTT username and password from the portal on every DL-1 at your account. The RepeaterBook will use a second MQTT Client username and password.

Background: MQTT clients (broker host, TLS) and Deployments (shared fleet credentials and plan limits).

The DL-1 keeps its vendor-specific topic paths argus/prod/<UUID>/… — so you do not have to retarget the original topic paths.


Terminology

Term in these docs Meaning
Shared MQTT credentials One username and password from the portal, copied into every DL-1 (one login shared across the fleet).
MQTT Client ID Set on each DL-1 to argus- plus that unit’s 12-character hex UUID (as shown on the repeater). This is separate from MQTT_USERNAME from the portal.
Vendor topics Topic paths the DL-1 already publishes (argus/prod/<UUID>/status, etc.). Influx, Grafana, and REST history use the platform path after ingest — see Platform topic format and MQTT clients — platform layout.

1. Create Argus DL-1 MQTT credentials

Complete a base-plan subscription first, then follow the steps below.

Step 1 — Open MQTT Clients

In the portal sidebar, choose MQTT Clients (formerly labeled “Devices” in some builds).

Screenshot (TBD): Portal sidebar with MQTT Clients selected.

Step 2 — Start a new publisher client

Click New publisher client (or Add publisher on older UI builds).

Screenshot (TBD): MQTT Clients page with New publisher client button visible.

Step 3 — Enter a label and credential scope

Enter a label you will recognize later (for example DL-1 repeaters). Under Credential scope, choose Shared — one username and password for many devices (the default). Use the default ACL options unless you need to change subscribe access or QoS.

Screenshot (TBD): Create dialog with label field filled in, ready to click Create.

Step 4 — Copy credentials before closing

Click Create. The one-time dialog shows MQTT_USERNAME, MQTT_PASSWORD, MQTT_BROKER_HOST, MQTT_BROKER_PORT, and MQTT_USE_TLS. Copy all of them now — the portal does not show the password again on the list page.

Screenshot (TBD): One-time credentials dialog showing username, password, broker host, and TLS (blur password if publishing publicly).

Copy these four values into every DL-1 (same username and password on each repeater):

From the portal dialog Enter on the DL-1 as
MQTT_BROKER_HOST, MQTT_BROKER_PORT, and MQTT_USE_TLS Broker host, port, and TLS setting
MQTT_USERNAME MQTT Username
MQTT_PASSWORD MQTT Password

2. Configure Argus DL-1

On each repeater, set MQTT as follows:

DL-1 setting What to use
Broker host / port / TLS MQTT_BROKER and MQTT_USE_TLS from §1
MQTT Username MQTT_USERNAME from §1 (same on all DL-1 units)
MQTT Password MQTT_PASSWORD from §1 (same on all DL-1 units)
MQTT Client ID argus- + this unit’s 12-character hex UUID (the value already on the repeater — one unique ID per unit)

Topics stay on the unit’s UUID in the path (the topic segment is 12 hex characters only — no argus- prefix in the topic tree):

  • Publish: argus/prod/<UUID>/status, argus/prod/<UUID>/heartbeat, argus/prod/<UUID>/lwt
  • Subscribe on the repeater (only if Allow subscribe is enabled on the shared credential from §1 — default): argus/prod/<UUID>/cmd/#, argus/prod/<UUID>/status/ack

Connection behaviour

The broker keys live sessions on MQTT Client ID (and username for ACL and portal metrics). Under MQTT 3.1.1, if a client connects with a Client ID that is already connected, the broker must disconnect the existing session. Two DL-1 units must never share the same MQTT Client ID.

DL-1 setting Rule
MQTT Username / Password Same fleet values from §1 on every repeater
MQTT Client ID Unique per unit — factory argus- + that repeater’s 12-character hex UUID

If two repeaters use the same Client ID, they fight for one session: connect/disconnect flapping, unstable Connections and Last seen in the portal, and lost QoS state. General background: MQTT clients — Connection behaviour.

RepeaterBook may use a separate stable Client ID (for example repeaterbook) on its own connection — that is a different logical client from any DL-1.


3. RepeaterBook MQTT Client Credentials

RepeaterBook uses a second MQTT client credential from the portal — the same type as §1 (shared username/password under MQTT Clients), not a read-only subscriber password (sub-…).

Create the RepeaterBook credential

  1. MQTT Clients → New publisher client.
  2. Label: e.g. RepeaterBook.
  3. Credential scope: Shared.
  4. Enable Allow subscribe (and Allow publish if RepeaterBook sends commands).
  5. Create and copy the one-time MQTT_USERNAME, MQTT_PASSWORD, MQTT_BROKER_HOST, MQTT_BROKER_PORT, and MQTT_USE_TLS into RepeaterBook.

That login is separate from the DL-1 fleet login in §1. It counts as one more shared fleet login toward your plan limit (see Deployments).

Setting Value
MQTT username / password From the RepeaterBook dialog only (never copy from §1)
MQTT Client ID Stable service id for subscribe-only use (e.g. repeaterbook), or argus-<UUID> when publishing a command to that repeater (see below)

Publish scope: shared logins may publish under argus/prod/#, but each connection may only write topics for its own MQTT Client ID (path UUID must match argus-<UUID> on the connect packet).

Subscribe scope: subscribe is not tied to Client ID the same way. One RepeaterBook connection can listen on argus/prod/+/cmd/# and +/status/ack across the fleet with Client ID repeaterbook.


History and Grafana

Ingest maps vendor topics to the platform tree automatically. Use these paths in Flux, REST history, and Grafana — not argus/prod/…:

Topic on the DL-1 Stored / queried
argus/prod/<UUID>/status {account_id}/argus-<UUID>/status
argus/prod/<UUID>/heartbeat {account_id}/argus-<UUID>/heartbeat
argus/prod/<UUID>/lwt {account_id}/argus-<UUID>/lwt

The DL-1 publishes retained "online" / "offline" on …/lwt (MQTT 3.1.1). Broker retains are live presence hints, not durable history — the platform enforces a 24-hour maximum retain age. Stale LWT retains are cleared automatically; refresh "online" at least daily if you depend on retained presence. New firmware should prefer MQTT 5 with Message Expiry Interval ≤ 86400 on retained publishes. See Retained messages and broker limits.

See MQTT clients — platform layout.


4. Automation (optional)

Requires the Mgmt REST API add-on.

curl -sS -X POST "${PORTAL_ORIGIN}/api/v1/subscriber/publishers" \
  -H "Authorization: Bearer ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"label":"DL-1 fleet","allow_subscribe":true}'

Use device.username, device.password, device.broker, and device.use_tls from the JSON response on each DL-1 (same as §2).


See also