Menu

Data Types & Routing

The type segment of your topic isn't a label — it's an instruction. It decides where a message goes and what happens to it.

Four types: numb, bool, status, config. Each takes a different path through the platform. Picking the right one is most of getting your data to behave the way you expect.

The four types

TypeGoes toTreatment
numbNumber graph + historyAggregated into time tiers before storage.
boolBoolean graphForwarded immediately — no aggregation.
statusDevice twinStored as the latest value of a named field on the device card.
configDevice twinLike status, but marks a setting the device received and confirmed.

numb — the aggregated path

Numbers are the only type that doesn't reach storage as-is. A high-frequency sensor can produce thousands of points an hour, and keeping every raw point forever is neither useful nor cheap. Instead, numb values are rolled up into time tiers — minutes, hours, days, weeks, months, years — as they age. Zoomed in, the dashboard reads the fine tier; zoomed out, a coarse one.

The practical consequence: a value you publish shows up on the live chart right away, and settles into history as the tiers roll. See Graphing for how the chart reads those tiers back.

bool — the immediate path

Booleans represent state changes — a pump on, a door open — where thetransition is the information. Averaging those into a tier would destroy exactly what you care about, so bool skips aggregation and is forwarded straight through. Every flip is preserved.

Strings are coerced for you. To a bool topic, "true", "yes", "on", and "1" all read as true. You don't have to send a real boolean from the device.

status and config — the twin path

These two don't graph. They land on the device twin as named fields, each holding only its latest value — firmware version, IP address, the current setpoint. Publishing the same field again overwrites it.

status is for facts the device reports about itself. config is for the echo pattern: the device received a setting, applied it, and is reporting back the value it adopted so the dashboard can show the change took effect. Same storage, different intent — and the dashboard renders them with that intent in mind.

Why split it this way

Each type exists because a different question is being answered. numb answers "how did this trend?" and is happy to be summarized. bool answers "when did this change?" and must not be. status and config answer "what is true right now?" and only need the latest value. Routing by type means the platform can do the right thing for each without you configuring anything — the type in your topic is the whole instruction.