Set Object's Manual State

PUT /node/api/objects/:id/manual-state

Sets an object's manual state. Returns a JSON representation of the updated object.

Permissions: objectPermissions & (modify-objects | manage-objects).

Request parameters

Path parameters

Parameter

Type

Description

id

string required

The ID of an object whose manual state should be set.

Body parameters

Parameter

Type

Description

stateId

string required

The ID of a state to be set.

clear

boolean optional

Whether to clear a previously set state. If set to true, the stateId parameter is not required.

reason

string

optional

The reason why the state was set.

since

string optional

A timestamp when the state was set.

by

string

optional

A timestamp when the state should be unset.

clearedByState

array

optional

A list of states that trigger a cleaning of the current state.

Response description

...

Examples

Request examples

Here is how you can set a new state:

Bash
JavaScript
NodeJS
Python
Bash
login=<...>
password=<...>
saymon_hostname=<...>
object_id=<...>
url=https://$saymon_hostname/node/api/objects/$object_id/manual-state
curl -X PUT $url -u $login:$password \
-H "Content-Type: application/json" \
-d @- <<EOF
{
"stateId": 3,
"clear": false,
"reason": "Testing"
}
EOF
JavaScript
let login = <...>
let password = <...>
let saymonHostname = <...>
let objectId = <...>
let path = "/node/api/objects/" + objectId + "/manual-state";
let auth = "Basic " + btoa(login + ":" + password);
let headers = new Headers();
headers.append("Authorization", auth);
headers.append("Content-Type", "application/json");
let data = JSON.stringify({
"stateId": 3,
"clear": false,
"reason": "Testing"
});
let requestOptions = {
method: "PUT",
headers: headers,
body: data
};
fetch(saymonHostname + path, requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log("error", error));
NodeJS
const http = require("http");
let login = <...>
let password = <...>
let saymonHostname = <...>
let objectId = <...>
let path = "/node/api/objects/" + objectId + "/manual-state";
let auth = "Basic " + Buffer.from(login + ":" + password).toString("base64");
let options = {
"method": "PUT",
"hostname": saymonHostname,
"headers": {
"Authorization": auth,
"Content-Type": "application/json"
},
"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);
});
});
let data = JSON.stringify({
"stateId": 3,
"clear": false,
"reason": "Testing"
});
req.write(data);
req.end();
Python
import requests
login = <...>
password = <...>
saymon_hostname = <...>
object_id = <...>
url = "https://" + saymon_hostname + "/node/api/objects/" + \
object_id + "/manual-state";
body = {
"stateId": 3,
"clear": false,
"reason": "Testing"
}
response = requests.request("PUT", url, json=body, auth=(login, password))
print(response.text)

Here is how you can unset the state:

Bash
JavaScript
NodeJS
Python
Bash
login=<...>
password=<...>
saymon_hostname=<...>
object_id=<...>
url=https://$saymon_hostname/node/api/objects/$object_id/manual-state
curl -X PUT $url -u $login:$password \
-H "Content-Type: application/json" \
-d @- <<EOF
{
"clear": true
}
EOF
JavaScript
let login = <...>
let password = <...>
let saymonHostname = <...>
let objectId = <...>
let path = "/node/api/objects/" + objectId + "/manual-state";
let auth = "Basic " + btoa(login + ":" + password);
let headers = new Headers();
headers.append("Authorization", auth);
headers.append("Content-Type", "application/json");
let data = JSON.stringify({
"clear": true
});
let requestOptions = {
method: "PUT",
headers: headers,
body: data
};
fetch(saymonHostname + path, requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log("error", error));
NodeJS
const http = require("http");
let login = <...>
let password = <...>
let saymonHostname = <...>
let objectId = <...>
let path = "/node/api/objects/" + objectId + "/manual-state";
let auth = "Basic " + Buffer.from(login + ":" + password).toString("base64");
let options = {
"method": "PUT",
"hostname": saymonHostname,
"headers": {
"Authorization": auth,
"Content-Type": "application/json"
},
"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);
});
});
let data = JSON.stringify({
"clear": true
});
req.write(data);
req.end();
Python
import requests
import json
login = <...>
password = <...>
saymon_hostname = <...>
object_id = <...>
url = "https://" + saymon_hostname + "/node/api/objects/" + \
object_id + "/manual-state";
body = {
"clear": True
}
response = requests.request("PUT", url, json=body, auth=(login, password))
print(response.text)

Response example

{
"id": "5e21b85b308c3c66d64e07d2",
"name": "CPU",
"discovery_id": "192.168.1.82-CPU",
"object_groups": [],
"geoposition": [],
"child_ref_ids": [],
"child_link_ids": [],
"child_ids": [],
"parent_id": "5e21b85b308c3c66d64e07bc",
"weight": 1,
"tags": [],
"last_state_update": 1585047151777,
"updated": 1585047151770,
"created": 1579268187099,
"state_id": 7,
"class_id": 4,
"_stateConditionRefs": [],
"operations": [],
"properties": [],
"client_data": "{...}",
"manual_state": null,
"owner_id": "5e21b752308c3c66d64e072c"
}