Appearance
Historical Data
Current values answer "what is"; the temporal module answers "what was".
One series
For a single property there is a direct route — from/to default to the last hour:
text
GET /api/v1/temporal/devices/{deviceId}/properties/0x0800?from=1756700000000&to=1756800000000Many series
Chart views should use the query route: several properties, devices and services in one request, with automatic downsampling toward a target point count:
text
POST /api/v1/temporal/queryjson
{
"properties": ["0x0800"],
"devices": ["A1B2C3D4"],
"from": 1756700000000,
"to": 1756800000000,
"maxPoints": 500
}The response returns each series as parallel arrays rather than one object per point:
json
{
"from": 1756700000000,
"to": 1756800000000,
"interval": 200000,
"series": [
{
"m": "0x0800",
"key": { "deviceId": "A1B2C3D4", "serviceId": "00000000-0000-2001-8003-006d0099ab53" },
"type": "number",
"n": 500,
"t": [1756700000000, 1756700200000],
"v": [212, 215]
}
]
}(t/v abridged — n counts the points that matched before limit was applied.)
intervalis the bucket width applied by auto-downsampling, ornullfor raw points.tandvare index-aligned;typesays how to readv.GET /temporal/schemalists which properties actually have stored history in your tenant.
Full query options (aggregation, grouping, boundary points): temporal module reference.