Sia MQTT Client Coming Soon
Explore, debug, and monitor MQTT brokers from Android — live inbox, topic tree, dashboards, and automation.
About
Sia MQTT Client is a professional MQTT client for Android that lets you explore, debug, and monitor MQTT brokers and build real-time dashboards and automation — all on your device. It speaks MQTT 3.1.1 and 5.0 over TCP, TLS, WebSocket, and WebSocket Secure (WSS), with full QoS 0/1/2, retained messages, and Last Will and Testament. Built with Kotlin, Jetpack Compose, and Material 3, it works without a Sia Makerlab account and without any relay or middleman server.
On-device, direct connection. The app connects only to the MQTT brokers you enter, and only when you explicitly press connect. All data — connection profiles, subscriptions, received messages, dashboards, and automation rules — is stored locally in a Room database on your device. There is no Sia Makerlab API server, remote configuration server, or crash-reporting server: the app does not phone home, and includes no analytics or remote logging.
A full message workbench. A live inbox with topic filtering, pause (while still receiving), and direction/QoS/Retain/Duplicate indicators pairs with a payload viewer that switches between Text, JSON, Hex, and Base64 and detects binary and failed UTF-8 decodes. The publish composer covers topic, payload, QoS, retain, and the full set of MQTT 5 publish properties — User Properties, Content Type, Response Topic, Correlation Data, Message Expiry, Topic Alias, and more — with automatic draft saving, and you can export stored messages to CSV (binary payloads Base64-encoded).
Topics, dashboards, and automation. A hierarchical Topic Explorer aggregates traffic by segment with search, favorites, and a $SYS preset, per-topic counts and timing, Text/JSON diffs, and quick numeric history charts. A responsive dashboard offers nine widget types — Text Value, LED/Status, Gauge, Progress, Text Log, Button, Switch, Slider, and Line Chart — bound to data via JSONPath, and a Trigger → Conditions → Actions rule engine fires local notifications or MQTT publishes with built-in cooldown, debounce, rate limiting, and a side-effect-free dry-run mode. Multiple workspaces keep connections, subscriptions, dashboards, and rules separate, and everything can be exported to and imported from a .siamqtt ZIP, with secrets excluded by default.
Secure by default. Passwords and keys are encrypted with the Android Keystore (AES-256-GCM) in EncryptedSharedPreferences; the database keeps only a reference, never plaintext credentials, and secrets are excluded from backup (allowBackup=false). TLS with hostname verification is on by default and custom CA certificates can be imported; disabling verification or trusting a self-signed certificate is an explicit choice flagged with a risk badge in the UI. Sensitive values are redacted from logs, diagnostics, exception messages, and exports.
Features
- MQTT 3.1.1 and 5.0 over TCP, TLS, WebSocket, and WebSocket Secure (WSS)
- QoS 0/1/2, retained messages, Last Will and Testament, and the full set of MQTT 5 properties
- Automatic reconnect with exponential backoff and jitter, restoring subscriptions on network recovery
- Live inbox with topic filtering, pause, and direction/QoS/Retain/Duplicate indicators
- Payload viewer with Text / JSON / Hex / Base64 views and binary detection
- Publish composer with MQTT 5 publish properties and automatic draft saving; CSV export
- Hierarchical Topic Explorer with search, favorites, a
$SYSpreset, diffs, and history charts - Responsive dashboard with nine widget types bound to data via JSONPath
- Automation rule engine (Trigger → Conditions → Actions) with cooldown, debounce, rate limiting, and dry-run
- Multiple workspaces and ZIP (
.siamqtt) import/export, with secrets excluded by default - Optional foreground-service monitor mode for background connections, with a persistent notification
- Credentials encrypted with the Android Keystore (AES-256-GCM); TLS with hostname verification on by default
- Fully on-device — no accounts, no ads, no in-app purchases, no analytics, and no remote logging