Set Object's State Triggers

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

Sets state triggers for an object.

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

Request parameters

Path parameters

Parameter

Type

Description

id

string

required

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

Response description

The response body is empty.

Request examples

Given below is an example of request body containing JSON-encoded state triggers:

body.json
[
{
"type": "script",
"payload": {
"execPath": "/tmp/test.sh"
},
"states": [
5
]
}
]

Provided the content is saved in a file named body.json, a request can be done like this:

Bash
NodeJS
Python
Bash
login=<your_login>
password=<your_password>
saymon_hostname=<your_saymon_hostname>
object_id=<your_object_id>
url=https://$saymon_hostname/node/api/objects/$object_id/state-triggers
curl -X PUT $url -u $login:$password \
-H "Content-Type: application/json" \
--data @path/to/body.json
NodeJS
const http = require("http");
let login = <your_login>
let password = <your_password>
let saymon_hostname = <your_saymon_hostname>
let object_id = <your_object_id>
let path = "/node/api/objects/" + object_id + "/state-triggers";
let auth = "Basic " + Buffer.from(login + ":" + password).toString("base64");
let options = {
"method": "PUT",
"hostname": saymon_hostname,
"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([
{
"type": "script",
"payload": {
"execPath": "/tmp/test.sh"
},
"states": [
5
]
}
]);
req.write(data);
req.end();
Python
import requests
import json
login = <your_login>
password = <your_password>
saymon_hostname = <your_saymon_hostname>
object_id = <your_object_id>
url = "https://" + saymon_hostname + "/node/api/objects/" + \
object_id + "/state-triggers";
with open("/path/to/body.json", "r") as f:
body = json.load(f)
response = requests.request("PUT", url, json=body, auth=(login, password))
print(response.text)