ptz.cruise.set (Set cruise info)
ptz.cruise.set: Set cruise info
ptz.cruise.set · Channel scope · Permission Config
What it does
Device must support TimedCruise (ptz.cruise.plan may use RegularCruise); see Cruise overview. Writes full cruise info for this channel in one call. Inputs cruiseModel (0 panorama, 1 preset), collection, and cruises, each up to 100 entries. Do not mix with ptz.cruise.plan. One invoke runs once.
Request URL
POST https://openapi-[DataCenter].easy4ip.com/openapi/v2/device.service.invoke
Minimum permission
The administrator does not need an extra permission on a device they bound. A shared device needs the basic configuration permission. A bound sub-user does not. A sub-account needs Config. Omitting channelId on a channel-scope capability returns DV2007. Mixing device and channel in one request returns DV2008. A timeout does not mean the operation did not run.
Request parameters
| Name | Type | Required | Description |
|---|---|---|---|
token | String | yes | Administrator, sub-user, or sub-account accessToken |
deviceId | String | yes | Device serial number |
productId | String | no | Optional. If sent and it does not match the device model → DV2009 |
channelId | String | yes | Channel ID; "0" is common on IPCs |
serviceId | String | yes | ptz.cruise.set |
inputData | Object | yes | See inputData fields below (serviceId=ptz.cruise.set) |
Do not mix with the ptz.cruise.plan property: this invoke writes the full cruise info in one call. Response shape: Get cruise info.
inputData fields
| Name | Description | Type | Required | Values |
|---|---|---|---|---|
collection | Presets. Up to 100 entries. | array | yes | Up to 100 entries |
cruiseModel | Cruise mode. 0 panorama, 1 preset. | enum | yes | 0 panorama; 1 preset |
cruises | Cruise time windows. Up to 100 entries. | array | yes | Up to 100 entries |
collection.item.name | Cruise point name. | text | yes | string |
collection.item.stayTime | Dwell time (seconds; enum value is seconds, e.g. "30"=30s). Different encoding from level index 0–12 on Preset stay time—do not mix. | enum | yes | 10…300 (see values) |
cruises.item.beginTime | Start time within the day, format THHmmss, e.g. T000000. | text | yes | Format THHmmss, e.g. T000000 |
cruises.item.endTime | End time within the day, format THHmmss, e.g. T000000. | text | yes | Format THHmmss, e.g. T000000 |
cruises.item.period | Effective weekdays. | text | yes | Match get (e.g. bitmap "127") |
Common request fields and the signature are in Development specification.
Request example
{
"id": "d5c287b4-5b2f-4f03-baf5-8032c5c354af",
"system": {
"ver": "1.0",
"appId": "lcdxxxxxxxxx",
"sign": "xjhCQBoJ9hRDsCjyDcHjtDNzRZ3ZJezcawsfWeiaoxU=",
"time": 1706511734,
"nonce": "f5a1ae2d-c09c-4d39-a744-83a5c2c653c2"
},
"params": {
"token": "<yourAccessToken>",
"deviceId": "TESTIPC000012345",
"channelId": "0",
"serviceId": "ptz.cruise.set",
"inputData": {
"collection": [
{
"name": "point1",
"stayTime": "30"
}
],
"cruiseModel": "1",
"cruises": [
{
"beginTime": "T080000",
"endTime": "T180000",
"period": "127"
}
]
}
}
}
Response data fields
Output is in result.data.outputData. Empty output is {}.
Response example
{
"id": "d5c287b4-5b2f-4f03-baf5-8032c5c354af",
"result": {
"code": "0",
"msg": "Operation is successful",
"data": {
"outputData": {}
}
}
}
Error codes
Gateway and device error codes are in Global return codes.
