Skip to content

Get Object's State History

Returns object's state history.

Request

HTTP Request

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

Permissions

objectPermissions

Path parameters

Parameter Type Description
id String
required
The ID or discovery ID of the object for which state history must be retrieved.

Query parameters

Parameter Type Description
from String A lower-bound timestamp for an object's state history.
limit String The maximum number of records to be retrieved.
skip String The number of the first records to be skipped.
to String An upper-bound timestamp for an object's state history.

Request body

The request body is empty.

Response

Returns the object's state history that contains an array of states that the object has been in. See the State History model for more information.

Example

Request

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):

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"
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));
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();
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

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

See Also