detection.motion.plan (Set detection schedule)
detection.motion.plan: Set detection schedule
detection.motion.plan · Channel scope · Permission Config
What it does
Values: follow capability discovery, read-back, and the ranges on this page; allowed values and JSON types (number or string) vary by model. Sets detection schedules on this channel. mode+periods and polygonMode+polygonPeriods are independent. When mode.model=3, include periods; when polygonMode.model=3, include polygonPeriods. Out-of-range values are rejected, not clamped. Legacy modifyDeviceAlarmPlan / deviceAlarmPlan use rules[] and English period; see the deviceAlarmPlan page.
Values: follow capability discovery, read-back, and the ranges on this page; allowed values and JSON types (number or string) vary by model.
Request URL
POST https://openapi-[DataCenter].easy4ip.com/openapi/v2/device.property.set
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 write 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 |
properties | Object | yes | key is detection.motion.plan |
| Name | Description | Type | Required | Values |
|---|---|---|---|---|
periods | Rectangular schedule periods when mode.model=3. Each segment needs period (weekday 0–6), beginTime, endTime (THHmmss). | array | no | up to 100 entries |
periods.item.period | Weekday 0–6. Required on every segment. | enum | yes | 0 Sunday … 6 Saturday |
periods.item.beginTime | Start time within the day, format THHmmss (e.g. T000000). Required on every segment. | text | yes | Format THHmmss, e.g. T235959 |
periods.item.endTime | End time within the day, format THHmmss (e.g. T235959). Required on every segment. | text | yes | Format THHmmss, e.g. T235959 |
mode | Smart protection schedule. Independent from polygonMode. When 3, write periods with period, beginTime, endTime. | struct | no | contains model, data |
mode.model | Plan mode. Required when writing mode. When 3, write periods. | enum | yes | 0 all day; 1 daytime; 2 night; 3 custom |
mode.data | Device auxiliary time (0–255), not weekday (weekday is in periods.item.period). | int | no | 0–255, step 1 |
polygonPeriods | Polygon schedule when polygonMode.model=3. Up to 21 segments with date, beginTime, endTime. | array | no | up to 21 entries |
polygonPeriods.item.date | Weekday 0–6. Required per segment. | enum | yes | 0 Sunday … 6 Saturday |
polygonPeriods.item.beginTime | Start time (THHmmss). Required per segment. | text | yes | Format THHmmss |
polygonPeriods.item.endTime | End time (THHmmss). Required per segment. | text | yes | Format THHmmss |
polygonMode | Polygon-only motion schedule. Independent from mode. When 3, write polygonPeriods. | struct | no | contains model, date |
polygonMode.model | Required when writing polygonMode. When 3, write polygonPeriods. | enum | yes | 0 all day … 3 custom |
polygonMode.date | Device auxiliary time; weekday is in polygonPeriods.item.date. | int | no | 0–255, step 1 |
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",
"properties": {
"detection.motion.plan": {
"mode": {
"model": 0,
"data": 1
},
"polygonMode": {
"model": 0,
"date": 127
}
}
}
}
}
Response data fields
On success, code is "0" and data is {}.
Response example
{
"id": "d5c287b4-5b2f-4f03-baf5-8032c5c354af",
"result": {
"code": "0",
"msg": "Operation is successful",
"data": {}
}
}
Error codes
Gateway and device error codes are in Global return codes.
