Widget data sources explained
Every widget pulls from one data source. The types:
| Source | Use it for |
|---|---|
rs485-tag |
RS485/Modbus device + tag — history seed + live stream |
device-tag |
Same as above for I²C/SPI/bus devices |
rs485-query |
Long time ranges — backend time-bucketed history + live tail |
computed |
A formula across several tags (see computed widgets) |
mqtt |
A live value from one of your own MQTT topics, relayed by Synacl (limits below) |
http-poll |
A live value Synacl fetches from a public URL on an interval (limits below) |
static |
A constant value (labels, references) |
For charts over hours/days, prefer rs485-query — it buckets history on the server so the browser isn't flooded with raw points. For single live values, rs485-tag/device-tag are simplest. See aggregation to downsample any stream.
The two sources Synacl fetches for you
MQTT Topic and HTTP Poll don't read a device tag. While the dashboard is open, Synacl subscribes to the topic or polls the URL on your behalf and streams what comes back to the widget. Because the request is made from Synacl's side, both work within limits:
- MQTT Topic — the topic must be one of your own account's topics: it has to start with
tenants/<tenantId>/, the prefix every one of your devices and gateways publishes under (see how devices connect over MQTT). Wildcards (+,#) are not accepted — readings are matched to the exact topic, so a wildcard would never deliver a value. Use the optional JSON Path (e.g.sensor.temperature) to pick one field out of a JSON payload. - HTTP Poll — the URL must be reachable from the internet. Addresses on a private or internal network —
192.168.x.x,10.x.x.x,localhost— and hostnames that resolve to them are refused, the same limit that applies to webhooks and uptime monitors. The response should be JSON (pick the field with JSON Path) or a bare number, and no larger than 64 KB. Poll Interval is at least 1000 ms, and one browser tab polls at most 10 distinct URLs at a time — an eleventh shows no value.
A source that is refused simply shows no value in its widget; the rest of the dashboard is unaffected. To chart something that lives on your own network, read it through a gateway instead — as an HTTP-polled device or a direct MQTT device — which also gives it history, alerts and rules.