Get Object's State History

GET /node/api/objects/:id/state-history

Returns object's state history.

Permissions: objectPermissions.

Request parameters

Path parameters

Parameter

Type

Description

id

string

required

The ID of an object for which state history should be retrieved.

Query parameters

Parameter

Type

Description

from

string

optional

A lower-bound timestamp for an object's state history.

to

string

optional

An upper-bound timestamp for an object's state history.

skip

string

optional

The number of the first records to be skipped.

limit

string

optional

The maximum number of records to be retrieved.

Response description

...

Examples

Request examples

The code examples below show how to get the first 5 records of the object's state history for 24 hour (26.01.20 12.00 PM - 27.01.20 12.00 PM):

Bash
JavaScript
NodeJS
Python
Bash
login=<...>
password=<...>
saymon_hostname=<...>
object_id=<...>
url=https://$saymon_hostname/node/api/objects/$object_id/state-history
curl -X GET $url -u $login:$password -G \
--data-urlencode "from=1580029200000" \
--data-urlencode "to=1580115600000" \
--data-urlencode "limit=5"
JavaScript
let login = <...>
let password = <...>
let saymonHostname = <...>
let objectId = <...>
let path = "/node/api/objects/" + objectId + "/state-history";
let auth = "Basic " + btoa(login + ":" + password);
let headers = new Headers();
headers.append("Authorization", auth);
let requestOptions = {
method: "GET",
headers: headers
};
fetch(saymonHostname + path, requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log("error", error));
NodeJS
const http = require("http");
const querystring = require("querystring");
let login = <...>
let password = <...>
let saymonHostname = <...>
let objectId = <...>
let queryParams = querystring.stringify({
"from" : "1580029200000",
"to" : "1580115600000",
"limit" : "5"
});
let path = "/node/api/objects/" + objectId + "/state-history" +
"?" + queryParams;
let auth = "Basic " + Buffer.from(login + ":" + password).toString("base64");
let options = {
"method": "GET",
"hostname": saymonHostname,
"headers": {
"Authorization": auth
},
"path": path
};
let req = http.request(options, function (res) {
let chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
let body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
Python
import requests
login = <...>
password = <...>
saymon_hostname = <...>
object_id = <...>
url = "https://" + saymon_hostname + "/node/api/objects/" + \
object_id + "/state-history"
params = {
"from": "1580029200000",
"to": "1580115600000",
"limit": "5"
}
response = requests.request("GET", url, auth=(login, password), params=params)
print(response.text)

Response example

[
{
"stateId": 1,
"timestamp": 1585301115993,
"id": "5e7dc67bc50bdc08abbf16b9"
},
{
"stateId": 3,
"reason": {
"branch": "...",
"data": "..."
},
"timestamp": 1585301127083,
"id": "5e7dc687c50bdc08abbf1728"
},
...
]