Skip to content

Set Object's State Triggers

Sets state triggers for an object.

Request

HTTP Request

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

Permissions

objectPermissions & (modify-objects | manage-objects)

Path parameters

Parameter Type Description
id String
required
The ID or discovery ID of the object whose state triggers must be set.

Request body

See the State Trigger model to see how to define different types of state triggers.

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

Response

The response body is empty.

Example

Request

login=<...>
password=<...>
saymon_hostname=<...>
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" \
    -d @- <<EOF
[
    {
        "type": "script",
        "payload": {
            "execPath": "/tmp/test.sh"
        },
        "states": [
            5
        ]
    }
]
EOF
let login = <...>
let password = <...>
let saymonHostname = <...>
let objectId = <...>
let path = "/node/api/objects/" + objectId + "/state-triggers";
let auth = "Basic " + btoa(login + ":" + password);

let headers = new Headers();
headers.append("Authorization", auth);
headers.append("Content-Type", "application/json");

let data = JSON.stringify([
    {
        "type": "script",
        "payload": {
            "execPath": "/tmp/test.sh"
        },
        "states": [
            5
        ]
    }
]);

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));
const http = require("http");

let login = <...>
let password = <...>
let saymonHostname = <...>
let objectId = <...>
let path = "/node/api/objects/" + objectId + "/state-triggers";
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([
    {
        "type": "script",
        "payload": {
            "execPath": "/tmp/test.sh"
        },
        "states": [
            5
        ]
    }
]);

req.write(data);
req.end();
import requests

login = <...>
password = <...>
saymon_hostname = <...>
object_id = <...>
url = "https://" + saymon_hostname + "/node/api/objects/" + \
    object_id + "/state-triggers";

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

response = requests.request("PUT", url, json=body, auth=(login, password))
print(response.text)

See Also