Release Notes — Version 1.21.0

What's new in MQTT Dashboard Client

New Features

Switch: 2 to 4 states

The Switch widget is no longer limited to an "On / Off" pair. It is now a configurable list of 2–4 states — for example "Off / Auto / Turbo" for ventilation, or "Stop / Open / Close" for a gate.

What's new:
  • Every state has its own label, MQTT value, icon and color
  • New look on the tile: a segmented control replaces the previous one
  • States adapt to the tile size — one row, two rows, or a menu on the smallest tiles
  • Wait for device confirmation toggle: publishes with a timeout and a loading indicator, and can be turned off for an unreliable broker
  • States are included in backups, config sharing and widget cloning
Existing widgets:

Migrated automatically on update: the former "On" and "Off" values become the first two states, keeping their icons and colors. Nothing needs to be reconfigured.

See the Widget Parameter Configuration section of the documentation for details.

New widget type: Dropdown list

For values that are too many for a switch: air conditioner mode, lighting preset, input source, fan speed.

What's new:
  • No limit on the number of states (at least two)
  • The current state is shown as a compact row; tapping it opens a menu with every option
  • States are configured exactly like Switch: label, MQTT value, icon, color
  • Waiting for device confirmation is supported
Example:

An air conditioner publishes AUTO, COOL, HEAT, DRY, FAN to home/ac/mode. Five states with readable labels — the widget both displays the current mode and switches it.

See the Widget Parameter Configuration section of the documentation for details.

Lock Home screen

Protect a dashboard you have already built from accidental changes — especially useful on a shared or wall-mounted tablet, where different people walk up to the screen.

How it works:
  • Enabled in Settings → Interface → Home screen, off by default
  • With the lock on, a long press on the Home screen does nothing: no widget context menu, no drag and drop
  • Taps, switches, buttons, regulators and dropdown lists keep working as usual
  • The lock also applies inside a group — the same widgets stay protected there
Good to know:

Editing, cloning and deleting a widget remain available the usual way: tap the widget → widget screen → the action you need.

Parameter data type: previews instead of a list of names

The parameter type used to be picked from a dropdown that showed names only — there was no way to tell "Binary" from "Switch". The type is now picked in a bottom sheet, where every type comes with a live preview and a short description.

What's new:
  • The preview is drawn by the same code as the tile on the Home screen — you see how the parameter will actually look
  • Every type has a description: what it shows and whether it can control the device
  • Name and Data type are now one card, with the name first
Clearer setting names:
  • "Widget Property Type" → "Data type"
  • "Appearance on the dashboard" → "Icon", described as "Choose an icon and a color"
  • The appearance dialog title → "Icon and color"

See the Widget Parameter Configuration section of the documentation for details.

Fixes & Improvements

Button parameter: holding the button no longer opens the widget context menu and no longer starts dragging the tile

Settings: widget sizes moved to the new Settings → Interface → Home screen section

Widget size settings: the preview now shows the layout only — a long press no longer opens the context menu, and the broker reconnect bar no longer appears on those screens


Previous Version 1.20.0

New Features

PREMIUM

Broker Endpoints

A broker can have several connection addresses. If the current address is unavailable, the app automatically switches to the next one.

What's new:
  • Multiple addresses for one broker — for example, a local IP at home and a cloud domain
  • Priority — High / Medium / Low: higher priority addresses are tried first
  • Network Scope — which networks an address suits: Any / Wi-Fi only / Cellular only
  • Automatic failover to the next address when the current one is unavailable
  • Growing pause between attempts (2 s → 60 s) and reset on network change
  • Quick enable/disable and delete moved to a menu on the address screen
  • Connection addresses are now included in backups
Availability:

The first endpoint is free. Adding more endpoints requires a Premium subscription.

Learn more in the Broker Endpoints section of the documentation.

PREMIUM

Share Configurations over MQTT

Transfer your app configuration between devices over an MQTT broker: widgets, groups, scenes and scripts.

Export (Publish):
  • Settings → Share configurations over MQTTExport configuration
  • Choose what to include: scenes, scripts, broker credentials
  • Optionally set an encryption password and storage period (1–30 days)
  • Tap Publish — the configuration appears on the broker
Receive (Import):
  • Enable Receive configurations — the app subscribes to config/share/+
  • Received configurations: View details, Apply, Decline
  • Import modes: Merge or Replace all
  • Password entry is now a separate step, with an option to save it for automatic use on future configurations
  • Revoke your own published configuration — removes it from the broker so other devices no longer see it
  • The Author field is now Configuration name

Learn more in the Share configurations over MQTT section of the documentation.

Fixes & Improvements

Improved MQTT connection stability and reconnect behavior

Regulator widget: negative min/max values, fill now starts from 0, and better unit input

Broker list: multi-select via long press for bulk delete

Tablets: device groups moved to Settings

Faster loading of received configurations

Improved subscription and purchase status synchronization

Various interface fixes across broker and config sharing screens


Previous Version 1.19.10

Bug Fixes

Fixed network detection error

Improvements

Improved subscription status handling


Previous Version 1.19.9

Bug Fixes

Fixed SSL and WSS broker connection errors on some devices

Improvements

Improved display of error reasons on broker connection loss


Previous Version 1.19.8

Bug Fixes

Fixed initialization errors


Previous Version 1.19.7

Bug Fixes

Fixed incorrect transparency for widgets on some devices

On some devices, widgets could appear faded after returning to the app from the background, even though the broker was already connected.

  • Widget transparency no longer depends on connection status — disconnect indicator and border animation remain as connection status signals

Previous Version 1.19.6

Bug Fixes

Fixed errors when creating widgets, groups, and scripts


Previous Version 1.19.4

Bug Fixes

Fixed SSL connection errors

Fixed widget cloning and parameter copying errors


Previous Version 1.19.3

Bug Fixes

Fixed errors when creating 2+ widget parameters


Previous Version 1.19.2

Bug Fixes

Fixed WebSocket (WS/WSS) connections after client migration

After migrating from Eclipse Paho to HiveMQ, WebSocket connections (WS and WSS) could not be established. The WebSocket transport was missing in the new client.

  • Fixed both WS (WebSocket) and WSS (Secure WebSocket) connections

Previous Version 1.19.1

Bug Fixes

Fixed: script conditions lost after backup restore

When restoring from a backup, script conditions could be completely lost, leaving all scripts empty.

  • Backup now correctly saves all script conditions
  • Conditions are fully restored after restore

Scripts can now be edited while disabled

Previously, opening a script for editing required it to be enabled. This prevented modifying a disabled script.

  • Opening a disabled script keeps it disabled — no automatic re-enable
  • All changes are saved while the script stays disabled
  • To enable a script after editing — use the toggle on the Scripts home screen

Previous Version 1.19.0

Improvements

IMPROVEMENT

MQTT now powered by HiveMQ

Complete rewrite of the MQTT client. The outdated Eclipse Paho library has been replaced with the modern HiveMQ MQTT Client.

What changed:
  • More stable connection — fewer disconnects
  • Improved error handling and auto-reconnect
  • Correct connection status display
  • Full protocol support: TCP, SSL, WebSocket, Secure WebSocket
Pending messages:
  • If sending fails due to no connection — the message is queued
  • Queued messages are sent automatically when connection is restored
  • Messages older than 24 hours are cleaned up

No user action required — works automatically after updating.

IMPROVEMENT

Improved widget drag-and-drop

The home screen with widgets has been redesigned. Dragging and organizing widgets is now smoother and more intuitive.

  • Free cell highlighting — see exactly where a widget can be placed while dragging
  • Hover target highlight — the target position glows when you hover over it
  • Context menu — long-press a widget to open an actions menu
  • Improved movement logic between groups
  • Fixed flickering and grid shift during drag

Bug Fixes

Fixed background work issues

  • Fixed background permission check — the app now correctly checks for background activity permission on startup
  • Added subscription status tracking to analytics for better compatibility

Premium Features

PREMIUM

New scripting capabilities

Scripts (scenarios) are now even more powerful with new condition types and actions.

What's new:
  • LogicalBlock — group multiple conditions with AND/OR logic:
    Example: "If temperature > 30°C AND humidity < 20%"
    or: "If button pressed OR more than 1 hour passed"
  • StartAppCondition — triggers when the app starts. Useful for executing actions after a restart.
  • Sound notification — play a sound or show a push notification as a script action
Where to find:

Menu → Scripts → create or edit a script

New blocks are available in the condition constructor:

  • LogicalBlock (AND/OR)
  • StartAppCondition
  • Action: sound notification
PREMIUM

Prefix and suffix for displayed data

Add text before and after widget values. Premium for incoming data, free for outgoing.

Incoming data (premium):

Format broker data before displaying:

Example: sensor sends "42"
  Set suffix: °C
  Widget shows: 42°C
Outgoing data (free):

Format outgoing payload — useful for building JSON commands:

Example: slider set to "1"
  Prefix: {"command": "
  Suffix: "}
  Broker receives: {"command": "1"}
How to set up:
  1. Open widget editing
  2. In Topic In section — find Prefix (input) / Suffix (input) fields
  3. In Topic Out section — Prefix (outgoing) / Suffix (outgoing) fields
FREE

Custom SSL/TLS certificate support

Connect to brokers with any SSL/TLS certificates, including self-signed and corporate CA certificates.

Self-signed certificates:
  1. When creating/editing a broker, select ssl:// or wss:// protocol
  2. Enable Self-Signed Certificate toggle
  3. The app will trust any certificate from this broker
Great for test and local brokers (home server, Raspberry Pi).
Custom CA certificates:
  1. Select ssl:// or wss:// protocol
  2. Keep Self-Signed Certificate disabled
  3. Tap Select certificate file
  4. Pick a .pem certificate file via system file picker
  5. The selected filename will be displayed
For connecting to corporate or cloud MQTT brokers with your own CA.
PREMIUM

Regex payload parsing

Extract data from payload using regular expressions — works as an additional stage after JsonPath.

Three-stage pipeline:
  1. JsonPath — extract field from JSON (previously available)
  2. Regex (primary) — extract data with a regular expression
  3. Regex (secondary) — post-process the result
Example: payload = {"temp": "temperature: 25.5C humidity: 60%"}
  JsonPath: $.temp → "temperature: 25.5C humidity: 60%"
  Regex: temperature:\s*([\d.]+)C25.5
Additional options:
  • Time regex — separate expression to extract timestamps from payload
  • Secondary regex — apply another regex to the result of the first one
How to set up:
  1. Open widget editing
  2. In Topic In section, enable Regex parse data toggle
  3. Fill in the regex patterns for data and time
  4. Optionally enable secondary regex

Feedback

Your suggestions and feature requests:

mqtt.client.feedback@gmail.com

Download this release:

APK (Google Play)

Store:

Google Play