Where does this value come from?

Updated

Every number Synacl shows you started as a raw integer in a register somewhere, was scaled into an engineering unit, travelled through a gateway and a cloud, and reached your browser a little later than it was measured. The provenance popover shows that whole chain for one reading, so a value you do not trust can be checked instead of guessed at.

Where to click

The device page now shows each reading at the device's own timestamp (when it was measured), not the moment your browser happened to receive it.

Raw value, scale and offset

A device sends a raw value — for a Modbus register, the integer that sits in the register. The number you see is the engineering value:

engineering = raw × scale factor + offset

The popover shows all four, so you can check the arithmetic: a temperature register holding 427 with a scale factor of 0.1 and no offset shows as 42.7 °C. If the tag was set up with Divide instead of Multiply, the popover still shows the resolved multiplier (÷10 appears as ×0.1) — that is the number the platform actually uses.

Readings are stored raw. Changing a tag's scale or offset changes how every reading is displayed, not what was recorded — see Calibration history below for what that means for old readings.

The register (Modbus devices)

For a tag read over Modbus RTU or TCP the popover shows:

Tags read over other protocols show the protocol and no register block.

The gateway

Which gateway read the value: its name, chip id and firmware version. A reading from a directly connected MQTT device, a webhook push or a backend poll has no gateway.

Three clocks, and lag

A reading passes three clocks:

Clock Meaning
Device time When the value was measured, by the device or gateway's own clock (ts). This is the time charts plot.
Received When Synacl's backend received the message off the network (tr). The gap after device time is the uplink: Wi‑Fi, mobile data, the broker — plus any disagreement between the gateway's clock and ours.
Processed When the backend finished its own checks and stored the reading (serverTs). The gap after received is Synacl's own processing, normally a few milliseconds.

Lag is processed time minus device time. A lag of a few hundred milliseconds is normal. A lag of minutes or hours means one of:

Sequence number

The device or gateway numbers its messages (seq). Two readings with the same sequence number came from one message; a gap in the sequence means messages were lost or dropped (for example by a plan rate limit). Not every device numbers its messages — the field is then shown as "—".

Source and quality

Calibration history — "as of"

If your account has calibration history switched on, the popover shows the scale and offset that were in force when the reading was taken, and who changed them and when. A reading from before a scale correction is shown with the old factor; one from after it with the new one, so a chart of last month still reads the way it did last month.

Without calibration history, every reading — old or new — is scaled with the tag's current values, and the popover says so by showing no calibration version.

Readings from before this feature

Sequence number, source and received time are recorded from Synacl 1.32.0 on. Older stored readings show "—" for all three; everything else (raw, scale, register, gateway, device and processed time) is available for every reading.