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

  • Bash

  • JavaScript

  • NodeJS

  • Python

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"
    },
    ...
]