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, on the web or your phone, and it works everywhere: every app renders the same dashboard and lets you control its widgets on the go.
You can build and edit dashboards in the web app or in the iOS and Android apps. On a wide screen you drag widgets from the sidebar onto the canvas. On a phone, tap Add widget and pick one; it lands in the first free spot. Tap a widget to select it, then drag it to move it or drag its handles to resize it.
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
singleormulti. 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
deviceIdand 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.
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 (on a phone, widgets are added with the Add widget button):
- 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.
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.
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:
GreenToRedorRedToGreen. - 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
requestPayloadto prompt the device, then listens for the reply on aresponseTopic. 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, orlatlon. - fieldLabels
- Maps JSON keys or CSV columns to friendly labels for 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, ormonth. - 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.
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:
| Tier | Dashboards |
|---|---|
| Free | 3 |
| Hobby | 10 |
| Maker | 75 |
| Pro | 150 |
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. Their app does receive the login for the broker(s) the dashboard uses, so share with people you trust. See Sharing Hobby+ for the full flow.