power.mode.switch (Supply state switch)
power.mode.switch: Supply state switch
power.mode.switch · device scope · permission Config
What it does
Switches this device's supply state. Input is only inputData.work (0 battery, 1 adapter); model is output (power mode enum 2–14 after switch; see response). Returns ret: 0 success, 1 failure (switch to always-on without adapter plugged). Before and after, you can read Device supply state. Each call 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 one of the capability row share_auth_code aliases (match the console share grant). See Permission codes. A bound sub-user does not. A sub-account needs Config. A timeout does not mean the action failed.
Request parameters
| Name | Type | Required | Description |
|---|---|---|---|
token | String | yes | Access token for an administrator, sub-user, or sub-account |
deviceId | String | yes | Device serial number |
productId | String | no | Optional. If sent and it does not match the device model → DV2009 |
serviceId | String | yes | power.mode.switch |
inputData | Object | yes | see table below |
| Name | Description | Type | Required | Values |
|---|---|---|---|---|
work | Mode. 0 battery, 1 adapter. | enum | yes | 0 battery; 1 adapter |
For common request fields and signing, see Signing conventions and Common request payload.
JSON shape: Scalar enum/int values in OpenAPI may be string or number (device/TSL dependent). Examples below use one shape; the other may also be accepted—follow what the device returns.
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",
"serviceId": "power.mode.switch",
"inputData": {
"work": "0"
}
}
}
Response data fields
Output is in result.data.outputData.
| Name | Description | Type | Required | Values |
|---|---|---|---|---|
model | Power mode after switch. | enum | no | 2 ultra power saving; 5 high performance; 6 custom; 7 standard; 8 continuous recording; 9 vlog recording; 10 AOV mode; 11 event recording; 12 smart schedule mode; 13 manual snapshot recording mode; 14 always-on power mode |
ret | Result. 0 success, 1 failure (always-on without adapter). | enum | no | 0 success; 1 failure, always-on without adapter |
Response example
{
"id": "d5c287b4-5b2f-4f03-baf5-8032c5c354af",
"result": {
"code": "0",
"msg": "Operation is successful",
"data": {
"outputData": {
"model": "7",
"ret": "0"
}
}
}
}
Error codes
| Code | Meaning | Next step |
|---|---|---|
SN1001 | Signature error | Check sign per Development specification |
TK1002 | Token invalid or expired | Refresh accessToken |
OP1002 | Missing required parameter | Add required fields |
OP1003 | Invalid parameter | Match this page’s parameter table |
OP1009 | Permission denied | Check token and device bind/share grants |
OP1013 | Total call limit exceeded | Reduce call rate |
OP1014 | Daily per-interface limit exceeded | See Interface call limits |
DV1007 | Device offline | Wait until the device is online |
See Return codes · OP/SN/TK for the full catalog.
| Code | Meaning | Next step |
|---|---|---|
DV2003 | Capability not on device | Use device.capability.list |
DV2007 | channelId vs scope mismatch | Required for channel scope; omit for device scope |
DV2008 | Mixed device and channel in one call | Split the request |
DV2009 | productId mismatch | Omit or set actual model id |
DV2011 | No capability permission | See Permission codes |
See Capability errors.
