Tidsseriedata
Tidsseriedata finns tillgängliga för översatta iotnodes. När en översatt iotnode uppdateras sparar Yggio numerisk och sträng data i en tidsseriedatabas.
Med hjälp av REST API:et kan du hämta tidsseriedata för ett specifikt attribut från en iotnode.
Följande är formatet för tidsseriedata för ett attribut av en iotnode:
[
{
"time": String,
"value": Number || String
},
...
]
time
är ett ISO 8601-tidsstämpel. T.ex.: 2019-08-07T12:30:00.00Z.
value
är det sparade värdet.
Ställ in tidsintervall
Man kan välja att hämta data med ett fast tidsintervall mellan varje datapunkt. Detta kan vara önskvärt om en hög dataupplösning inte behövs. Det kan förbättra laddningstider och prestanda. Databasen använder då interpolation för att ställa in värdena för datapunkterna.
Om ett fast tidsintervall används kommer data att ha följande format:
[
{
"time": String,
"value": Number,
"min": Number,
"max": Number,
"stddev": Number
},
...
]
time
är ett ISO 8601-tidsstämpel. T.ex.: 2019-08-07T12:30:00.00Z.
value
är det interpolerade värdet.
min
är värdet av den minsta punkten i interpolationsområdet.
max
är värdet av den största punkten i interpolationsområdet.
stddev
är standardavvikelsen för punkterna i interpolationsområdet.
Sampla ner data med ValueFunction
Funktionen valueFunction
låter dig utföra operationer på data grupperade inom specifika tidsfönster. Detta kan vara användbart för att analysera datatrender över tid genom att sammanfatta datapunkterna inom varje fönster.
Stödda operationer
Följande operationer kan utföras med valueFunction:
mean
: Beräknar medelvärdet av alla värden inom fönstret.max
: Hittar det högsta värdet inom fönstret.min
: Hittar det lägsta värdet inom fönstret.first
: Använder det första värdet inom fönstret.last
: Använder det sista värdet inom fönstret.sum
: Beräknar summan av alla värden inom fönstret.count
: Räknar antalet värden inom fönstret.difference
: Beräknar skillnaden mellan det första värdet i efterföljande fönster.
Definiera tidsfönstret
Tidsfönstret för valueFunction
bestäms av alternativet "distance". Detta anger längden på varje fönster i antal sekunder.
Svarformat
När du använder funktionen valueFunction
kommer svaret att ha följande JSON-format:
[
{
"time": String,
"value": Number
},
...
]
time
: En ISO 8601-tidsstämpel (t.ex. 2019-08-07T12:30:00.00Z) som anger början av tidsfönstret.
value
: Resultatet av den specificerade valueFunction-operationen för tidsfönstret.
Hantering av tomma fönster
Om det inte finns några datapunkter inom ett specificerat tidsfönster kommer det fönstret att hoppas över i svaret. Exempel
Här är ett exempel på svar för en API-förfrågan med valueFunction=mean och distance=3600 (1 timme):
[
{
"time": "2019-08-07T12:00:00.00Z",
"value": 23.5
},
{
"time": "2019-08-07T13:00:00.00Z",
"value": 19.8
},
...
]
I detta exempel är value vid varje tidsstämpel medelvärdet av alla värden inom det motsvarande en-timmes fönstret.