Get All Objects
Returns a list of all objects in the system.
Note
This request doesn't return all fields of objects by default. Check the Response section for more information.
Request
HTTP Request
Permissions
Path parameters
No parameters required.
Query parameters
Parameter | Type | Description |
---|---|---|
fields | String | A comma-separated list of objects' fields to be retrieved. See the Object model for all fields. |
Request body
The request body is empty.
Response
The response contains an array of all objects in the system in the JSON format.
Fields that are included in the response by default:
Field | Type | Description |
---|---|---|
id | String | Object's ID. Always returned. |
name | String | Object's name. |
parent_id | Array<String> | The IDs of an object's parents. |
class_id | Integer | The ID of an object class. |
state_id | Integer | The ID of an object state. |
last_state_update | Integer | A timestamp when object's state was last updated. |
child_ids | Array<String> | An array of object's child objects IDs. |
child_link_ids | Array<String> | An array of object's child links IDs. |
child_ref_ids | Array<String> | An array of object's child references IDs. |
geoposition | Array<Float> | Object's position on a map. It's specified as an array of two float numbers, where the first number is longitude, the second one is latitude. |
You can get any fields from an object by specifying them in the fields
query parameter. In this case, only specified fields and the object's id
will be included in the response. See the Object model for a list of all possible fields.
Example
Get default fields
Get a default set of fields for every object in the system.
Request
let login = <...>
let password = <...>
let saymonHostname = <...>
let path = "/node/api/objects";
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");
let login = <...>
let password = <...>
let saymonHostname = <...>
let path = "/node/api/objects";
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();
Response
[
{
"parent_id": [
"62d7e58056d203149a08001b"
],
"name": "Test Object",
"class_id": 24,
"geoposition": [],
"geopositionRadius": 0,
"state_id": 1,
"last_state_update": 1658316250338,
"child_ids": [],
"child_link_ids": [],
"child_ref_ids": [],
"id": "62d7e5da56d203149a08002f"
},
{
"parent_id": [
"626a438c4a7f8827220e0ed3"
],
"name": "wlan1",
"class_id": 11,
"state_id": 3,
"last_state_update": 1660514277761,
"child_ids": [],
"child_link_ids": [],
"child_ref_ids": [],
"geoposition": [],
"id": "626a438e4a7f8827220e0ede"
},
...
]
Get specific fields
Specify the fields to retrieve during the request.
This example returns only name
and parent_id
fields from the default set, and a properties
array that isn't included by default. Note that the id
field isn't explicitly set in the query parameters, but is returned anyway.
Request
let login = <...>
let password = <...>
let saymonHostname = <...>
let queryParams = "fields=name,parent_id,properties";
let path = "/node/api/objects" + "?" + queryParams;
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");
let login = <...>
let password = <...>
let saymonHostname = <...>
let queryParams = "fields=name,parent_id,properties";
let path = "/node/api/objects" + "?" + 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();
Response
[
{
"parent_id": [
"62d7e58056d203149a08001b"
],
"name": "Test Object",
"properties": [
{
"type_id": 1,
"name": "My Property",
"value": "My Value",
"id": "62f0f62293d1854858a1fa77",
"owner_id": "62d7e5da56d203149a08002f",
"owner_type": 1
},
...
],
"id": "62d7e5da56d203149a08002f"
},
{
"parent_id": [
"62d7e58056d203149a08001b"
],
"name": "Test Object",
"properties": [],
"id": "62d7e5da56d203149a08002f"
},
]