Request for a description of the server's objects' classes

Each server object belongs to a certain class (type). The class describes the possible states of the object and the methods that apply to it. There are many different classes and to find out which class the object belongs to, use the command /objects. The /classes command is used to query class parameters.

Example of a request:

        https://192.168.1.200:8080/classes/Channel?sid=gbnVFUit  

Tip

Note that class names (Channel in our example) are case-sensitive.

Example of a server response:

{
    "possible_states_vector" : [
        {
            "name" : "signal",
            "values" : [
                    "No Signal",
                    "Signal"
            ]
        },
        {
            "name" : "motion",
            "values" : [
                    "No Motion",
                    "Motion"
            ]
        },
        {
            "name" : "recording",
            "values" : [
                    "Not Recording",
                    "Recording"
            ]
        },
        {
            "name" : "recording_on_device",
            "values" : [
                    "Not Recording (on device)",
                    "Recording (on device)"
            ]
        },
        {
            "name" : "sound_detector",
            "values" : [
                "Disabled",
                "Silent",
                "Loud"
            ]
        }
    ],
    "methods" : [
        {
            "name" : "record",
            "parameters" : [
                {
                    "name" : "turn_on_record",
                    "type" : "integer"
                }
            ]
        },
        {
            "name" : "record_on",
            "parameters" : [
            ]
        },
        {
            "name" : "record_off",
            "parameters" : [
            ]
        },
        {
            "name" : "set_watermark",
            "parameters" : [
                {
                    "name" : "watermark_text",
                    "type" : "string"
                },
                {
                    "name" : "watermark_position",
                    "type" : "integer"
                },
                {
                    "name" : "timestamp_position",
                    "type" : "integer"
                }
            ]
        },
        {
            "name" : "manual_record_start",
            "parameters" : [
            ]
        },
        {
            "name" : "manual_record_stop",
            "parameters" : [
            ]
        },
        {
            "name" : "ptz_preset",
            "parameters" : [
                {
                    "name" : "preset_n",
                    "type" : "integer"
                }
            ]
        },
        {
            "name" : "screenshot",
            "parameters" : [
            ]
        },
        {
            "name" : "screenshot_ex",
            "parameters" : [
                {
                    "name" : "timestamp",
                    "type" : "string"
                },
                {
                    "name" : "directory",
                    "type" : "string"
                }
            ]
        },
        {
            "name" : "screenshot_v2",
            "parameters" : [
                {
                    "name" : "time_YYYYMMDD_HHMMSS",
                    "type" : "string"
                },
                {
                    "name" : "screenshot_filename",
                    "type" : "string"
                },
                {
                    "name" : "screenshot_folder",
                    "type" : "string"
                },
                {
                    "name" : "make_thumb",
                    "type" : "integer"
                }
            ]
        }
    ]
}  

In this example, the response contains:

     "possible_states_vector" : [
        {
            "name" : "signal",
            "values" : [
                    "No Signal",
                    "Signal"
            ]
        }
    ]  

  • "possible_states_vector" - a description block for the statuses of an object of the given class and their possible states;
  • "name" : "signal" - a status name; in this example, it indicates if the channel has a signal;
  • "values" : - the possible values; in this example: "No Signal" – there is no signal, "Signal" – there is a signal.

In this example, the response contains:

     "methods" : [
        {
            "name" : "ptz_preset",
            "parameters" : [
                {
                    "name" : "preset_n",
                    "type" : "integer"
                }
            ]
        }
    ]  

  • "methods" : - a description block for the methods that are applicable to an object of the given class;
  • "name" : "ptz_preset" - a method name; in this example, to switch a PTZ camera to a specific camera preset;
  • "parameters" : - the required parameters;
  • "name" : "preset_n", "type" : "integer" - a parameter name and type; in this example, the camera preset number, formatted as an integer.