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.
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
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.
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.
