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

optional

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

string

optional

The maximum number of records to be retrieved.
skip

string

optional

The number of the first records to be skipped.
to

string

optional

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

Request body

The request body is empty.

Response

Work in Progress

This topic is a work in progress and may be incomplete.

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

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 example

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