Docs → Dashboards & widgets

Dashboards & widgets

A dashboard is the control panel you actually touch — a grid of widgets, each bound to an MQTT topic on one of your devices. Widgets publish when you tap them and subscribe to show live values back.

In IoT Parrot a dashboard is a first-class thing, not a property of a device. You build it once in the web app, and it works everywhere: the mobile companion app renders the same dashboard and lets you control its widgets on the go.

editWhere to build them

Building and editing dashboards happens in the web app, using the drag-and-drop builder. On mobile you can view your dashboards and control their widgets — but the builder is web-only.

Dashboard anatomy

Every dashboard is a small set of properties plus a list of widgets:

name
A label for the dashboard (e.g. "Greenhouse" or "Garage").
mode
single or multi. Single-mode dashboards point every widget at one device; multi-mode dashboards can mix widgets from several devices. See below.
orientation
The default layout orientation the dashboard is designed for.
primaryDeviceId
The dashboard's main device — in single mode, the device all widgets are bound to.
widgets
The ordered list of widgets placed on the grid. Each widget carries its own deviceId and its own topic/payload configuration.

Because each widget resolves its broker connection through its device's broker, a single dashboard can talk to several brokers at once — the renderer opens one connection per broker it needs and reuses it across widgets.

Single vs. multi mode

Single mode is the default and the simplest to reason about: you pick one device, and every widget you add controls or reads a topic on that device.

Multi mode (cross-device) Maker+ lets one dashboard mix widgets that reference different devices — for example a toggle for your garage relay next to a gauge from your greenhouse sensor, all on one screen. Each widget carries its own device, so the renderer may hold several broker connections open at once. Widgets are color-coded by their device's color (set on the device) so you can tell at a glance which hardware each control belongs to.

lockMulti mode is Maker+

The Multi option is disabled below the Maker tier. Single-mode dashboards are available on every tier, including Free. See Account & billing for how the tiers compare.

The builder

The dashboard builder is a drag-and-drop editor in the web app:

  • A left sidebar lists the widget templates (toggle, slider, gauge, button, and the rest).
  • Drag a template onto the phone-shaped grid canvas to place it.
  • Tap a placed widget to open its config: its topic, payloads, labels, min/max, and so on.
  • Rearrange, resize where supported, and save — the dashboard is instantly available on web and mobile.
lightbulbBind before you build

Add your devices and the topics they use first. Then, when you drop a widget, you just pick a device and topic from what's already there instead of typing topics by hand.

Widget types

There are seven widget types. Each one is bound to a topic and either publishes to it (controls), subscribes to it (displays), or both. Every widget's key fields are listed below.

infoNo separate map, label, or chart widget

Some controls double up: a map is the Get Data widget in latlon format, a chart is the History Chart widget, and a text label is a Text Input or a Get Data display. There's no standalone widget beyond the seven here.

Toggle Switch toggle

An on/off switch. Flipping it publishes one of two payloads to the topic — perfect for relays, lights, and pumps.

topic
The MQTT topic the toggle publishes to (e.g. home/livingroom/light).
payloadOn
What to publish when switched on. Default ON.
payloadOff
What to publish when switched off. Default OFF.
onLabel
Text shown for the on state. Default On.
offLabel
Text shown for the off state. Default Off.

Text Input input

A text field with a send action. Whatever you type is published to the topic — handy for setpoints, messages, or arbitrary commands.

topic
The topic your typed text is published to.
numberOnly
When on, restricts the field to numeric input (e.g. a temperature setpoint like 72).

Slider slider

A draggable slider that publishes a numeric value as you move it — brightness, motor speed, a target temperature.

topic
The topic the numeric value is published to.
min
Minimum value. Default 0.
max
Maximum value. Default 100.
step
Increment between stops. Default 1.0.
showLabel
Whether to display the current value alongside the slider.

Button button

A momentary, one-shot button: tapping it publishes a single fixed payload. Good for "press to open," "reboot," or "run once" actions.

topic
The topic the button publishes to on tap.
payload
The fixed payload sent on each press. Default PRESS.
color
The button's accent color.
icon
An icon shown on the button.

Gauge gauge

A dial that visualizes a numeric value — temperature, humidity, pressure. The gauge can either listen to a live value or request one on demand.

topic
The topic the gauge reads its value from.
min
Bottom of the dial's range.
max
Top of the dial's range.
gradientType
Dial coloring: GreenToRed or RedToGreen.
units
The display unit shown on the dial (e.g. °F, %, hPa).

The gauge has two modes:

  • Stream mode — subscribes to the topic and updates live as your device publishes readings.
  • Request mode — publishes a requestPayload to prompt the device, then listens for the reply on a responseTopic. Use this when your firmware only reports a value when asked.

Get Data requestResponse

A flexible display widget for arbitrary device data. It can passively listen for data, or show a GET button that requests it, and then render the reply as raw text, parsed JSON, CSV, or a map.

requestPayload
Leave empty and the widget is a passive listener; set a value and it shows a GET button that publishes this payload to request data.
responseTopic
The topic the widget listens on for the device's reply.
fetchOnLoad
When on, the widget requests data automatically as soon as the dashboard opens.
responseFormat
How to parse and display the reply: raw, json, csv, or latlon.
fieldLabels
Maps JSON keys or CSV columns to friendly labels for display.
mapThe map display

Set responseFormat to latlon and publish a lat,lon pair (or {"lat":..,"lon":..}) from a tracker. The display has three layers:

  • Coordinates & link-out — the raw latitude/longitude plus buttons to open the point in Apple or Google Maps. Free on every tier.
  • Address readout Hobby+ — resolves the coordinates to a place name at a detail level you choose (full address, street, neighborhood, city, or region/country).
  • Embedded map Maker+ — an interactive map with a live marker at the current position and a default zoom you set, with the address readout on top.

History Chart history Pro

Plots a Data Stream's stored samples over time. Unlike a gauge, this reads recorded history from the server, not live MQTT — so you can scrub back through hours, days, or weeks of readings.

streamId
The data stream whose stored samples this chart plots.
defaultWindow
The time range shown by default: hour, day, week, or month.
series
Up to 4 data streams overlaid on one shared time axis, each with its own color and a left- or right-hand Y-axis.
stacked_line_chartNeeds a data stream first

The History Chart plots what a Data Stream has already logged, so set up the stream before adding the widget. See Data streams Pro for how logging and retention work.

Dashboard limits & sharing

The number of dashboards you can keep is tier-capped:

TierDashboards
Free3
Hobby10
Maker75
Pro150

You can also share a dashboard with someone else. Recipients can view it and interact with its widgets, but only see the devices and brokers those widgets reference — not the rest of your setup. See Sharing Hobby+ for the full flow.