简体中文

Nebula指令集1

TUTK 设备接口说明 - 核心功能接口(1/8)
指令目录

核心接口说明

           
IOTCAV:startVideo

描述: Use this function to request the device to start playing video stream with AV JSON control. Please note that "IOTCAV:" should be removed from the control string before sending it.

版本: 1.0

指令集: IOTCAV:videoStreaming

请求参数:

Parameter nameData typeRequirementDescription
valueBooleanMtrue: request the device to start playing video, false: request the device to stop playing video
videoFormatPresetStringOplease check getCameraCapability for the information of video format presets

返回值: 200, 400

返回内容: Empty

Profile定义:

{  "func":"IOTCAV:startVideo",  "args":{    "value":"Boolean",    "videoFormatPreset":"String"  } }

AV指令请求例子:

{  "func":"startVideo",  "args":{    "value": true  } }

AV指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
IOTCAV:startAudio

描述: Use this function to request the device to start playing audio stream with AV JSON control. Please note that "IOTCAV:" should be removed from the control string before sending it.

版本: 1.0

指令集: IOTCAV:audioStreaming

请求参数:

Parameter nameData typeRequirementDescription
valueBooleanMtrue: request the device to start playing audio, false: request the device to stop playing audio

返回值: 200, 400

返回内容: Empty

Profile定义:

{  "func":"IOTCAV:startAudio",  "args":{    "value":"Boolean"  } }

AV指令请求例子:

{  "func":"startAudio",  "args":{    "value": true  } }

AV指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
IOTCAV:startSpeaker

描述: Use this function to request the device to recieve audio stream from client. Please note that "IOTCAV:" should be removed from the control string before sending it.

版本: 1.0

指令集: IOTCAV:speaker

请求参数:

Parameter nameData typeRequirementDescription
valueBooleanMtrue: request the device to start recieving audio, false: request the device to stop recieving audio

返回值: 200, 400

返回内容: Empty

Profile定义:

{  "func":"IOTCAV:startSpeaker",  "args":{    "value":"Boolean"  } }

AV指令请求例子:

{  "func":"startSpeaker",  "args":{    "value": true  } }

AV指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
IOTCAV:playbackControl

描述: Use this function to request the device to start playing video stream with AV JSON control. Please note that "IOTCAV:" should be removed from the control string before sending it.

版本: 1.0

指令集: IOTCAV:playback

请求参数:

Parameter nameData typeRequirementDescription
ctrlIntM-
fileNameStringM-
iotcChannelIntOdevice should use channel 1 in default

Enumeration of ctrl

0 - pause: Device should continue to play video stream after receiving control "play" not "pause"
1 - play
2 - stop

返回值: 200, 400

返回内容: Empty

Profile定义:

{  "func":"IOTCAV:playbackControl",  "args":{    "ctrl":"Int",    "fileName":"String",    "iotcChannel":"Int"  } }

AV指令请求例子:

{  "func":"playbackControl",  "args":{    "ctrl":1,    "fileName":"20201229.h264",    "iotcChannel":2  } }

AV指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
getVideoFormatPreset

描述: Use this function to get the currently utilized video format present, please check getCameraCapability for the information of video format presets.

版本: 1.0

指令集: videoConfiguration

请求参数:

Parameter nameData typeRequirementDescription
channelIntOFor NVR, DVR devices

返回内容:

Parameter nameData typeRequirementDescription
valueStringMPresent name

Profile定义:

{  "func":"getVideoFormatPreset",  "args":{      "channel":"Int"  },  "return":{    "value":"String"  } }

Nebula指令请求:

{  "func":"getVideoFormatPreset",  "args":{    "channel":1  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "value": "hd"  } }
setVideoFormatPreset

描述: Use this function to set the current video format present, please check getCameraCapability for the information of video format presets.

版本: 1.0

指令集: videoConfiguration

请求参数:

Parameter nameData typeRequirementDescription
valueStringMPresent name
channelIntOFor NVR,DVR devices

返回值: 200, 400

返回内容: Empty

Profile定义:

{  "func":"setVideoFormatPreset",  "args":{    "value":"String",    "channel":"Int"  } }

Nebula指令请求:

{  "func":"setVideoFormatPreset",  "args":{    "value":"720p",    "channel":1  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
getVideoBrightness

描述: Get the brightness value of the video stream.

版本: 1.0

指令集: videoConfiguration

请求参数:

Parameter nameData typeRequirementDescription
channelIntOsupport in v1.2

返回内容:

Parameter nameData typeRequirementDescription
valueIntMvalue range is 0-100

Profile定义:

{  "func":"getVideoBrightness",  "args":{    "channel":"Int"  },  "return":{    "value":"Int"  } }

Nebula指令请求:

{  "func":"getVideoBrightness" }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "value": 57  } }
setVideoBrightness

描述: Set the brightness value of the video stream.

版本: 1.0

指令集: videoConfiguration

请求参数:

Parameter nameData typeRequirementDescription
valueIntMvalue range is 0-100
channelIntOsupport in v1.2

返回值: 200, 400

返回内容: Empty

Profile定义:

{  "func":"setVideoBrightness",  "args":{    "value":"Int",    "channel":"Int"  } }

Nebula指令请求:

{  "func":"setVideoBrightness",  "args":{    "value":99  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
getVideoContrast

描述: Get the contrast value of the video stream.

版本: 1.0

指令集: videoConfiguration

请求参数:

Parameter nameData typeRequirementDescription
channelIntOsupport in v1.2

返回内容:

Parameter nameData typeRequirementDescription
valueIntMvalue range is 0-100

Profile定义:

{  "func":"getVideoContrast",  "args":{    "channel":"Int"  },  "return":{    "value":"Int"  } }

Nebula指令请求:

{  "func":"getVideoContrast" }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "value": 67  } }
setVideoContrast

描述: Set the contrast value of the video stream.

版本: 1.0

指令集: videoConfiguration

请求参数:

Parameter nameData typeRequirementDescription
valueIntMvalue range is 0-100
channelIntOsupport in v1.2

返回值: 200, 400

返回内容: Empty

Profile定义:

{  "func":"setVideoContrast",  "args":{    "value":"Int",    "channel":"Int"  } }

Nebula指令请求:

{  "func":"setVideoContrast",  "args":{    "value":67  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
           
setCloudRecordingEndpoint

描述: Setup target could recording url of the device, this function is supported internally by Nebula Device.

版本: 1.2

指令集: cloudRecording

请求参数:

Parameter nameData typeRequirementDescription
urlStringMURL of VSaaS server
intentionStringOEnumeration of "subscribe", "cancel", "modify"
headerDictionaryOall content will be put in the http header
channelIntegerOspecific channel that this endpoint belongs to, only given for devices that supports channels
recordingTypeStringOspecific recording type that is supported by this endpoint. Will be either "fulltime" or "event"

返回值: 200, 400

返回内容: Empty

Profile定义:

{  "func":"setCloudRecordingEndpoint",  "args":{    "url":"String",    "header":"Dictionary"  } }

Nebula command request example no channel old format:

{  "func":"setCloudRecordingEndpoint",  "args":{    "url":"https://vpbs-rd.kalay.us/vsaas/api/v1/stream/stream_url/TC021LBP010000000001LBG10KXETTV8DUMFM111?stoken=r43rjio4jrin3o3r",    "header": {      "Authorization":"Bearer XXXXXXXXX",      "User-Agent":"TUTK Device"    }  } }

Nebula command request example no channel:

{  "func": "setCloudRecordingEndpoint",  "args": {    "url": "https://asia-vpapi-tutk-stg.kalay.us/vsaas/api/v1/stream/stream_url/EBYUANJMU3L4UM6GU1EJ?stoken=stoken",    "header": {    "Authorization": "Bearer XXXXXXXXX",        "User-Agent": "TUTK Device"    },    "recordingType": "event",    "intension": "subscribe"  } }

Nebula command request example with channel:

{  "func": "setCloudRecordingEndpoint",  "args": {    "url": "https://asia-vpapi-tutkstg.kalay.us/vsaas/api/v1/stream/stream_url/EBYUANJMU3L4UM6GU1EJstoken=stoken",    "header": {    "Authorization": "Bearer XXXXXXXXX",        "User-Agent": "TUTK Device"    },    "channel": 1,    "intension": "subscribe",    "recordingType": "fulltime"  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
getCloudRecordingEndpoint

描述: Use this function to get the currently configured cloud recording endpoint information of the device, which is internally supported by Nebula Device.

版本: 1.2

指令集: cloudRecording

请求参数:

Parameter nameData typeRequirementDescription
channelIntOspecific channel for multi-channel devices

返回内容:

Parameter nameData typeRequirementDescription
urlStringMURL of VSaaS server
intentionStringOEnumeration of "subscribe", "cancel", "modify"
headerDictionaryOhttp header configuration of the endpoint
channelIntegerOchannel bound to the endpoint
recordingTypeStringO"fulltime" or "event" recording type

Profile定义:

{  "func":"getCloudRecordingEndpoint",  "args":{    "channel":"Int"  },  "return":{    "url":"String",    "intention":"String",    "header":"Dictionary",    "channel":"Integer",    "recordingType":"String"  } }

Nebula指令请求:

{  "func":"getCloudRecordingEndpoint",  "args":{    "channel":1  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "url": "https://asia-vpapi-tutk-stg.kalay.us/vsaas/api/v1/stream/stream_url/EBYUANJMU3L4UM6GU1EJ?stoken=stoken",    "intention": "subscribe",    "header": {      "Authorization": "Bearer XXXXXXXXX",      "User-Agent": "TUTK Device"    },    "channel": 1,    "recordingType": "fulltime"  } }
enableCloudRecording

描述: Use this function to enable or disable the cloud recording function of the device, which takes effect based on the configured cloud recording endpoint.

版本: 1.2

指令集: cloudRecording

请求参数:

Parameter nameData typeRequirementDescription
valueBooleanMtrue: enable cloud recording, false: disable cloud recording
channelIntOspecific channel for multi-channel devices
recordingTypeStringO"fulltime" or "event" recording type

返回值: 200, 400

返回内容: Empty

Profile定义:

{  "func":"enableCloudRecording",  "args":{    "value":"Boolean",    "channel":"Int",    "recordingType":"String"  } }

Nebula指令请求:

{  "func":"enableCloudRecording",  "args":{    "value": true,    "channel": 1,    "recordingType": "event"  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
getCloudRecordingStatus

描述: Use this function to get the current running status of the device's cloud recording function.

版本: 1.2

指令集: cloudRecording

请求参数:

Parameter nameData typeRequirementDescription
channelIntOspecific channel for multi-channel devices
recordingTypeStringO"fulltime" or "event" recording type

返回内容:

Parameter nameData typeRequirementDescription
statusStringMrunning: normal recording; stopped: recording disabled; error: recording exception
errorMsgStringOerror description when status is "error"
channelIntegerOchannel bound to the recording task
recordingTypeStringO"fulltime" or "event" recording type

Profile定义:

{  "func":"getCloudRecordingStatus",  "args":{    "channel":"Int",    "recordingType":"String"  },  "return":{    "status":"String",    "errorMsg":"String",    "channel":"Integer",    "recordingType":"String"  } }

Nebula指令请求:

{  "func":"getCloudRecordingStatus",  "args":{    "channel":1,    "recordingType":"fulltime"  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "status": "running",    "errorMsg": "",    "channel": 1,    "recordingType": "fulltime"  } }
getCameraCapability

描述: Use this function to get the hardware capability information of the camera device, including supported video format presets and resolution ranges.

版本: 1.0

指令集: videoConfiguration

请求参数:

Parameter nameData typeRequirementDescription
channelIntOFor NVR, DVR devices

返回内容:

Parameter nameData typeRequirementDescription
videoFormatPresetsArrayMlist of supported video format presets (e.g. ["hd", "720p", "1080p"])
maxResolutionStringOmaximum supported resolution (e.g. "1920x1080")
minResolutionStringOminimum supported resolution (e.g. "640x480")
supportedBrightnessRangeStringMadjustable range of brightness (fixed as "0-100")
supportedContrastRangeStringMadjustable range of contrast (fixed as "0-100")

Profile定义:

{  "func":"getCameraCapability",  "args":{    "channel":"Int"  },  "return":{    "videoFormatPresets":"Array",    "maxResolution":"String",    "minResolution":"String",    "supportedBrightnessRange":"String",    "supportedContrastRange":"String"  } }

Nebula指令请求:

{  "func":"getCameraCapability",  "args":{    "channel":1  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "videoFormatPresets": ["hd", "720p", "1080p"],    "maxResolution": "1920x1080",    "minResolution": "640x480",    "supportedBrightnessRange": "0-100",    "supportedContrastRange": "0-100"  } }
setWifi

描述: Use this function to configure the WiFi connection parameters of the device and make the device connect to the specified WiFi hotspot.

版本: 1.1

指令集: wifiConfiguration

请求参数:

Parameter nameData typeRequirementDescription
ssidStringMname of the target WiFi hotspot
passwordStringMpassword of the target WiFi hotspot
timeoutIntOconnection timeout (default 30 seconds, unit: s)

返回值: 200, 400, 408, 500

说明: 400=parameter error; 408=connection timeout; 500=connection failed

返回内容: Empty

Profile定义:

{  "func":"setWifi",  "args":{    "ssid":"String",    "password":"String",    "timeout":"Int"  } }

Nebula指令请求:

{  "func":"setWifi",  "args":{    "ssid": "TUTK_TEST_WIFI",    "password": "12345678",    "timeout": 30  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
queryWifiList

描述: Use this function to query the list of WiFi hotspots scannable by the device around.

版本: 1.1

指令集: wifiConfiguration

请求参数:

Parameter nameData typeRequirementDescription
scanTimeIntOscan duration (default 5 seconds, unit: s)

返回内容:

Parameter nameData typeRequirementDescription
wifiListArrayMlist of scannable WiFi hotspots
wifiList[].ssidStringMname of the WiFi hotspot
wifiList[].rssiIntMWiFi signal strength (negative value, closer to 0 is stronger)
wifiList[].securityStringMencryption type (e.g. "WPA2", "WPA3", "OPEN")

Profile定义:

{  "func":"queryWifiList",  "args":{    "scanTime":"Int"  },  "return":{    "wifiList":"Array",    "wifiList[].ssid":"String",    "wifiList[].rssi":"Int",    "wifiList[].security":"String"  } }

Nebula指令请求:

{  "func":"queryWifiList",  "args":{    "scanTime": 5  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "wifiList": [      {        "ssid": "TUTK_TEST_WIFI",        "rssi": -45,        "security": "WPA2"      },      {        "ssid": "PUBLIC_WIFI",        "rssi": -68,        "security": "OPEN"      }    ]  } }
getCurrentWifi

描述: Use this function to get the information of the WiFi hotspot currently connected by the device.

版本: 1.1

指令集: wifiConfiguration

请求参数: Empty

返回内容:

Parameter nameData typeRequirementDescription
ssidStringMname of the currently connected WiFi
rssiIntOcurrent WiFi signal strength
ipAddressStringOIP address obtained by the device
gatewayStringOgateway address of the current network
netmaskStringOsubnet mask of the current network

Profile定义:

{  "func":"getCurrentWifi",  "args":{},  "return":{    "ssid":"String",    "rssi":"Int",    "ipAddress":"String",    "gateway":"String",    "netmask":"String"  } }

Nebula指令请求:

{  "func":"getCurrentWifi",  "args":{} }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "ssid": "TUTK_TEST_WIFI",    "rssi": -45,    "ipAddress": "192.168.1.105",    "gateway": "192.168.1.1",    "netmask": "255.255.255.0"  } }
queryStorageList

描述: Use this function to query the list of mounted storage devices on the device (such as SD card, internal storage).

版本: 1.0

指令集: storageManagement

请求参数: Empty

返回内容:

Parameter nameData typeRequirementDescription
storageListArrayMlist of mounted storage devices
storageList[].storageIdStringMunique ID of the storage device
storageList[].storageTypeStringMstorage type ("SD" for SD card, "INTERNAL" for internal storage)
storageList[].totalSpaceLongMtotal space of the storage (unit: byte)
storageList[].freeSpaceLongMfree space of the storage (unit: byte)
storageList[].statusStringMstorage status ("normal", "error", "unformatted")

Profile定义:

{  "func":"queryStorageList",  "args":{},  "return":{    "storageList":"Array",    "storageList[].storageId":"String",    "storageList[].storageType":"String",    "storageList[].totalSpace":"Long",    "storageList[].freeSpace":"Long",    "storageList[].status":"String"  } }

Nebula指令请求:

{  "func":"queryStorageList",  "args":{} }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "storageList": [      {        "storageId": "SD001",        "storageType": "SD",        "totalSpace": 32212254720,        "freeSpace": 18743920640,        "status": "normal"      },      {        "storageId": "INT001",        "storageType": "INTERNAL",        "totalSpace": 1073741824,        "freeSpace": 536870912,        "status": "normal"      }    ]  } }
getStorageInfo

描述: Use this function to get the detailed information of the specified storage device according to the storage device ID.

版本: 1.0

指令集: storageManagement

请求参数:

Parameter nameData typeRequirementDescription
storageIdStringMunique ID of the storage device (from queryStorageList result)

返回内容:

Parameter nameData typeRequirementDescription
storageIdStringMunique ID of the storage device
storageTypeStringMstorage type ("SD" or "INTERNAL")
totalSpaceLongMtotal space of the storage (unit: byte)
freeSpaceLongMfree space of the storage (unit: byte)
statusStringMstorage status ("normal", "error", "unformatted")
formatVersionStringOformat version of the storage (e.g. "FAT32", "EXT4")
usedTimeLongOused duration of the storage (unit: second)

Profile定义:

{  "func":"getStorageInfo",  "args":{    "storageId":"String"  },  "return":{    "storageId":"String",    "storageType":"String",    "totalSpace":"Long",    "freeSpace":"Long",    "status":"String",    "formatVersion":"String",    "usedTime":"Long"  } }

Nebula指令请求:

{  "func":"getStorageInfo",  "args":{    "storageId": "SD001"  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "storageId": "SD001",    "storageType": "SD",    "totalSpace": 32212254720,    "freeSpace": 18743920640,    "status": "normal",    "formatVersion": "FAT32",    "usedTime": 864000  } }
formatStorage

描述: Use this function to format the specified storage device. Note: Formatting will clear all data on the device.

版本: 1.0

指令集: storageManagement

请求参数:

Parameter nameData typeRequirementDescription
storageIdStringMunique ID of the storage device (from queryStorageList result)
formatTypeStringOformat type (default "FAT32", support "FAT32", "EXT4")
quickFormatBooleanOwhether to enable quick format (default true)

返回值: 200, 400, 404, 500

说明: 400=parameter error; 404=storage device not found; 500=format failed

返回内容: Empty

Profile定义:

{  "func":"formatStorage",  "args":{    "storageId":"String",    "formatType":"String",    "quickFormat":"Boolean"  } }

Nebula指令请求:

{  "func":"formatStorage",  "args":{    "storageId": "SD001",    "formatType": "FAT32",    "quickFormat": true  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
createCredential

描述: Use this function to create a new access credential (username and password) for the device to authenticate user access.

版本: 1.1

指令集: deviceSecurity

请求参数:

Parameter nameData typeRequirementDescription
identityStringMunique username for the new credential
passwordStringMpassword corresponding to the username (length 6-16 characters)
permissionStringOpermission level ("admin" for full permission, "viewer" for view-only permission, default "admin")

返回值: 200, 400, 409

说明: 400=parameter error; 409=identity already exists

返回内容: Empty

Profile定义:

{  "func":"createCredential",  "args":{    "identity":"String",    "password":"String",    "permission":"String"  } }

Nebula指令请求:

{  "func":"createCredential",  "args":{    "identity": "admin_test",    "password": "12345678",    "permission": "admin"  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
deleteCredential

描述: Use this function to delete an existing access credential (username) from the device.

版本: 1.1

指令集: deviceSecurity

请求参数:

Parameter nameData typeRequirementDescription
identityStringMexisting username to be deleted

返回值: 200, 400, 404

说明: 400=parameter error; 404=identity does not exist

返回内容: Empty

Profile定义:

{  "func":"deleteCredential",  "args":{    "identity":"String"  } }

Nebula指令请求:

{  "func":"deleteCredential",  "args":{    "identity": "admin_test"  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
getAllIdentities

描述: Use this function to get the list of all existing access identities (usernames) and their corresponding permission levels on the device.

版本: 1.1

指令集: deviceSecurity

请求参数: Empty

返回内容:

Parameter nameData typeRequirementDescription
identityListArrayMlist of all access identities
identityList[].identityStringMusername of the access identity
identityList[].permissionStringMpermission level ("admin" or "viewer")

Profile定义:

{  "func":"getAllIdentities",  "args":{},  "return":{    "identityList":"Array",    "identityList[].identity":"String",    "identityList[].permission":"String"  } }

Nebula指令请求:

{  "func":"getAllIdentities",  "args":{} }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "identityList": [      {        "identity": "admin",        "permission": "admin"      },      {        "identity": "viewer1",        "permission": "viewer"      }    ]  } }
getDeviceInfo

描述: Use this function to get the basic hardware and software information of the TUTK device.

版本: 1.0

指令集: deviceManagement

请求参数: Empty

返回内容:

Parameter nameData typeRequirementDescription
deviceModelStringMmodel number of the device (e.g. "TUTK-CAM-001")
deviceSNStringMunique serial number of the device
firmwareVersionStringMcurrent firmware version of the device
hardwareVersionStringOhardware version of the device
manufacturerStringMdevice manufacturer (fixed as "TUTK Inc.")
macAddressStringOMAC address of the device's network interface
supportFeaturesArrayOlist of supported advanced features (e.g. ["cloudRecording", "webRtc"])

Profile定义:

{  "func":"getDeviceInfo",  "args":{},  "return":{    "deviceModel":"String",    "deviceSN":"String",    "firmwareVersion":"String",    "hardwareVersion":"String",    "manufacturer":"String",    "macAddress":"String",    "supportFeatures":"Array"  } }

Nebula指令请求:

{  "func":"getDeviceInfo",  "args":{} }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "deviceModel": "TUTK-CAM-001",    "deviceSN": "TC021LBP010000000001",    "firmwareVersion": "v1.2.0",    "hardwareVersion": "HW-V2.0",    "manufacturer": "TUTK Inc.",    "macAddress": "00:11:22:33:44:55",    "supportFeatures": ["cloudRecording", "webRtc", "wifiConfig"]  } }
setName

描述: Use this function to set a custom display name for the TUTK device.

版本: 1.0

指令集: deviceManagement

请求参数:

Parameter nameData typeRequirementDescription
nameStringMcustom device name (length 1-32 characters, support Chinese and English)

返回值: 200, 400

说明: 400=parameter error (invalid name length or format)

返回内容: Empty

Profile定义:

{  "func":"setName",  "args":{    "name":"String"  } }

Nebula指令请求:

{  "func":"setName",  "args":{    "name": "My Home Camera"  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
getName

描述: Use this function to get the current custom display name of the TUTK device.

版本: 1.0

指令集: deviceManagement

请求参数: Empty

返回内容:

Parameter nameData typeRequirementDescription
nameStringMcurrent display name of the device (default is device model if not set)

Profile定义:

{  "func":"getName",  "args":{},  "return":{    "name":"String"  } }

Nebula指令请求:

{  "func":"getName",  "args":{} }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "name": "My Home Camera"  } }
getBatteryLevel

描述: Use this function to get the current battery level and charging status of the battery-powered TUTK device.

版本: 1.1

指令集: deviceManagement

请求参数: Empty

返回内容:

Parameter nameData typeRequirementDescription
batteryLevelIntMcurrent battery level (0-100, 100 means fully charged)
isChargingBooleanMtrue: device is charging; false: device is not charging
batteryStatusStringObattery health status ("normal", "low", "fault")

Profile定义:

{  "func":"getBatteryLevel",  "args":{},  "return":{    "batteryLevel":"Int",    "isCharging":"Boolean",    "batteryStatus":"String"  } }

Nebula指令请求:

{  "func":"getBatteryLevel",  "args":{} }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "batteryLevel": 85,    "isCharging": false,    "batteryStatus": "normal"  } }
addPushNotificationService

描述: Use this function to add a push notification service configuration to the device (support FCM, APNs, etc.).

版本: 1.2

指令集: pushNotification

请求参数:

Parameter nameData typeRequirementDescription
serviceTypeStringMpush service type ("FCM", "APNs", "MI Push", "Huawei Push")
tokenStringMpush token corresponding to the service
serviceIdStringOcustom unique ID for the push service (auto-generated if not set)

返回值: 200, 400, 409

说明: 400=parameter error; 409=serviceId already exists

返回内容: Empty

Profile定义:

{  "func":"addPushNotificationService",  "args":{    "serviceType":"String",    "token":"String",    "serviceId":"String"  } }

Nebula指令请求:

{  "func":"addPushNotificationService",  "args":{    "serviceType": "FCM",    "token": "fcm_token_xxxxxxxxxxxxxxx",    "serviceId": "FCM_SERVICE_001"  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
delPushNotificationService

描述: Use this function to delete an existing push notification service configuration from the device by serviceId.

版本: 1.2

指令集: pushNotification

请求参数:

Parameter nameData typeRequirementDescription
serviceIdStringMunique ID of the push service to be deleted

返回值: 200, 400, 404

说明: 400=parameter error; 404=serviceId does not exist

返回内容: Empty

Profile定义:

{  "func":"delPushNotificationService",  "args":{    "serviceId":"String"  } }

Nebula指令请求:

{  "func":"delPushNotificationService",  "args":{    "serviceId": "FCM_SERVICE_001"  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
queryPushNotificationService

描述: Use this function to query the list of all existing push notification service configurations on the device.

版本: 1.2

指令集: pushNotification

请求参数: Empty

返回内容:

Parameter nameData typeRequirementDescription
pushServiceListArrayMlist of all push notification service configurations
pushServiceList[].serviceIdStringMunique ID of the push service
pushServiceList[].serviceTypeStringMpush service type ("FCM", "APNs", etc.)
pushServiceList[].tokenStringMpush token of the service
pushServiceList[].createTimeLongOcreation time of the service (timestamp, unit: ms)

Profile定义:

{  "func":"queryPushNotificationService",  "args":{},  "return":{    "pushServiceList":"Array",    "pushServiceList[].serviceId":"String",    "pushServiceList[].serviceType":"String",    "pushServiceList[].token":"String",    "pushServiceList[].createTime":"Long"  } }

Nebula指令请求:

{  "func":"queryPushNotificationService",  "args":{} }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "pushServiceList": [      {        "serviceId": "FCM_SERVICE_001",        "serviceType": "FCM",        "token": "fcm_token_xxxxxxxxxxxxxxx",        "createTime": 1735689600000      },      {        "serviceId": "APNS_SERVICE_001",        "serviceType": "APNs",        "token": "apns_token_yyyyyyyyyyyyyyy",        "createTime": 1735776000000      }    ]  } }
upgradeFirmware

描述: Use this function to trigger the device to perform firmware upgrade (need to pre-configure firmware source via writeFirmware).

版本: 1.2

指令集: deviceMaintenance

请求参数:

Parameter nameData typeRequirementDescription
forceUpgradeBooleanOtrue: force upgrade even if current version is latest; false: skip if version is not newer (default false)
rebootAfterUpgradeBooleanOtrue: auto reboot device after upgrade completed (default true); false: manual reboot required

返回值: 200, 400, 403, 409

说明: 400=parameter error; 403=no valid firmware found; 409=upgrade is already in progress

返回内容: Empty

Profile定义:

{  "func":"upgradeFirmware",  "args":{    "forceUpgrade":"Boolean",    "rebootAfterUpgrade":"Boolean"  } }

Nebula指令请求:

{  "func":"upgradeFirmware",  "args":{    "forceUpgrade": false,    "rebootAfterUpgrade": true  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
checkFirmwareUpgradeStatus

描述: Use this function to query the current progress and status of the device firmware upgrade.

版本: 1.2

指令集: deviceMaintenance

请求参数: Empty

返回内容:

Parameter nameData typeRequirementDescription
upgradeStatusStringMEnumeration: "idle", "upgrading", "completed", "failed"
upgradeProgressIntMUpgrade progress percentage (0-100, valid only when status is "upgrading")
errorMsgStringOError description when upgrade status is "failed" (empty if no error)
targetFirmwareVersionStringOVersion of the target firmware to be upgraded

Profile定义:

{  "func":"checkFirmwareUpgradeStatus",  "args":{},  "return":{    "upgradeStatus":"String",    "upgradeProgress":"Int",    "errorMsg":"String",    "targetFirmwareVersion":"String"  } }

Nebula指令请求:

{  "func":"checkFirmwareUpgradeStatus",  "args":{} }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "upgradeStatus": "upgrading",    "upgradeProgress": 65,    "errorMsg": "",    "targetFirmwareVersion": "v1.3.0"  } }
writeFirmware

描述: Use this function to upload and write firmware binary data or firmware download URL to the device (preparation for upgrade).

版本: 1.2

指令集: deviceMaintenance

请求参数:

Parameter nameData typeRequirementDescription
firmwareSourceStringMEnumeration: "url", "binary" (specify firmware source type)
firmwareUrlStringOValid when firmwareSource is "url": public accessible firmware download URL
firmwareBinaryBase64OValid when firmwareSource is "binary": Base64 encoded firmware binary data
firmwareVersionStringMVersion number of the target firmware (e.g. "v1.3.0")

返回值: 200, 400, 413

说明: 400=parameter error (missing url/binary for corresponding source); 413=firmware file is too large

返回内容: Empty

Profile定义:

{  "func":"writeFirmware",  "args":{    "firmwareSource":"String",    "firmwareUrl":"String",    "firmwareBinary":"Base64",    "firmwareVersion":"String"  } }

Nebula指令请求(URL方式):

{  "func":"writeFirmware",  "args":{    "firmwareSource": "url",    "firmwareUrl": "https://firmware.tutk.com/TUTK-CAM-001-v1.3.0.bin",    "firmwareVersion": "v1.3.0"  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
getAllSettings

描述: Use this function to get all current system configuration settings of the device (including video, network, security, etc.).

版本: 1.2

指令集: deviceManagement

请求参数: Empty

返回内容:

Parameter nameData typeRequirementDescription
videoSettingsDictionaryMVideo related settings (include brightness, contrast, videoFormatPreset)
networkSettingsDictionaryMNetwork related settings (include wifi info, IP config)
securitySettingsDictionaryMSecurity related settings (include credential enable status)
pushSettingsDictionaryOPush notification related settings (include enable status)
recordingSettingsDictionaryORecording related settings (include cloud and local recording config)

Profile定义:

{  "func":"getAllSettings",  "args":{},  "return":{    "videoSettings":"Dictionary",    "networkSettings":"Dictionary",    "securitySettings":"Dictionary",    "pushSettings":"Dictionary",    "recordingSettings":"Dictionary"  } }

Nebula指令请求:

{  "func":"getAllSettings",  "args":{} }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "videoSettings": {      "brightness": 57,      "contrast": 67,      "videoFormatPreset": "720p"    },    "networkSettings": {      "currentWifiSSID": "MyHome_Wifi",      "ipMode": "DHCP",      "ipAddress": "192.168.1.100"    },    "securitySettings": {      "credentialEnable": true    },    "pushSettings": {      "pushEnable": true    },    "recordingSettings": {      "cloudRecordingEnable": true,      "localRecordingEnable": true    }  } }
panTiltStep

描述: Use this function to control the pan (horizontal) and tilt (vertical) movement of the PTZ camera by step distance.

版本: 1.1

指令集: cameraControl

请求参数:

Parameter nameData typeRequirementDescription
panStepIntMHorizontal movement step (-10 to 10: negative=left, positive=right, 0=no movement)
tiltStepIntMVertical movement step (-10 to 10: negative=down, positive=up, 0=no movement)
speedIntOMovement speed (1-5, default 3, higher value means faster movement)

返回值: 200, 400, 405

说明: 400=parameter error (step out of range); 405=device does not support PTZ function

返回内容: Empty

Profile定义:

{  "func":"panTiltStep",  "args":{    "panStep":"Int",    "tiltStep":"Int",    "speed":"Int"  } }

Nebula指令请求:

{  "func":"panTiltStep",  "args":{    "panStep": 5,    "tiltStep": 3,    "speed": 3  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
queryEventList

描述: Use this function to query the historical event list of the device (e.g. motion detection, alarm, etc.) by time range.

版本: 1.2

指令集: eventManagement

请求参数:

Parameter nameData typeRequirementDescription
startTimeLongMStart time of the query range (timestamp, unit: ms)
endTimeLongMEnd time of the query range (timestamp, unit: ms, must be larger than startTime)
eventTypeStringOFilter by event type ("motion", "alarm", "upgrade", "offline", default query all types)
pageSizeIntONumber of events per page (10-100, default 20)
pageNumIntOPage number of the query result (start from 1, default 1)

返回内容:

Parameter nameData typeRequirementDescription
eventListArrayMList of historical events matching the query conditions
eventList[].eventIdStringMUnique ID of the event
eventList[].eventTypeStringMType of the event ("motion", "alarm", etc.)
eventList[].eventTimeLongMOccurrence time of the event (timestamp, unit: ms)
eventList[].eventDescStringODetailed description of the event
totalCountIntMTotal number of events matching the query conditions

Profile定义:

{  "func":"queryEventList",  "args":{    "startTime":"Long",    "endTime":"Long",    "eventType":"String",    "pageSize":"Int",    "pageNum":"Int"  },  "return":{    "eventList":"Array",    "eventList[].eventId":"String",    "eventList[].eventType":"String",    "eventList[].eventTime":"Long",    "eventList[].eventDesc":"String",    "totalCount":"Int"  } }

Nebula指令请求:

{  "func":"queryEventList",  "args":{    "startTime": 1735689600000,    "endTime": 1735776000000,    "eventType": "motion",    "pageSize": 20,    "pageNum": 1  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "eventList": [      {        "eventId": "EVT_MOTION_001",        "eventType": "motion",        "eventTime": 1735690000000,        "eventDesc": "Motion detected in camera view"      },      {        "eventId": "EVT_MOTION_002",        "eventType": "motion",        "eventTime": 1735700000000,        "eventDesc": "Motion detected in camera view"      }    ],    "totalCount": 2  } }
startWebRtc

描述: Use this function to initiate a WebRTC connection between the client and the device for real-time media streaming.

版本: 1.2

指令集: webRtcManagement

请求参数:

Parameter nameData typeRequirementDescription
streamTypeStringMMedia stream type ("video", "audio", "video_audio", default "video_audio")
sessionIdStringOCustom unique WebRTC session ID (auto-generated if not set)

返回值: 200, 400, 405, 409

说明: 400=parameter error; 405=device does not support WebRTC; 409=WebRTC session already exists

返回内容: Empty

Profile定义:

{  "func":"startWebRtc",  "args":{    "streamType":"String",    "sessionId":"String"  } }

Nebula指令请求:

{  "func":"startWebRtc",  "args":{    "streamType": "video_audio",    "sessionId": "WEBRTC_SESSION_001"  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
stopWebRtc

描述: Use this function to terminate an existing WebRTC connection between the client and the device.

版本: 1.2

指令集: webRtcManagement

请求参数:

Parameter nameData typeRequirementDescription
sessionIdStringOID of the WebRTC session to be terminated (terminate all sessions if not set)

返回值: 200, 400, 404

说明: 400=parameter error; 404=specified WebRTC session does not exist

返回内容: Empty

Profile定义:

{  "func":"stopWebRtc",  "args":{    "sessionId":"String"  } }

Nebula指令请求:

{  "func":"stopWebRtc",  "args":{    "sessionId": "WEBRTC_SESSION_001"  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
exchangeSdp

描述: Use this function to exchange SDP (Session Description Protocol) information between client and device for WebRTC connection establishment.

版本: 1.2

指令集: webRtcManagement

请求参数:

Parameter nameData typeRequirementDescription
sessionIdStringMID of the corresponding WebRTC session
sdpTypeStringMEnumeration: "offer", "answer" (type of the SDP message)
sdpContentStringMContent of the SDP (Session Description Protocol) message

返回内容:

Parameter nameData typeRequirementDescription
sdpTypeStringMResponse SDP type ("offer" or "answer")
sdpContentStringMResponse SDP content from the device

返回值: 200, 400, 404

说明: 400=parameter error; 404=specified WebRTC session does not exist

Profile定义:

{  "func":"exchangeSdp",  "args":{    "sessionId":"String",    "sdpType":"String",    "sdpContent":"String"  },  "return":{    "sdpType":"String",    "sdpContent":"String"  } }

Nebula指令请求:

{  "func":"exchangeSdp",  "args":{    "sessionId": "WEBRTC_SESSION_001",    "sdpType": "offer",    "sdpContent": "v=0\r\no=- 123456 1 IN IP4 192.168.1.100\r\ns=WebRTC Session\r\nt=0 0\r\nm=video 9 UDP/TLS/RTP/SAVPF 96\r\nc=IN IP4 0.0.0.0\r\na=rtpmap:96 H264/90000\r\n"  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "sdpType": "answer",    "sdpContent": "v=0\r\no=- 654321 1 IN IP4 192.168.1.101\r\ns=WebRTC Session\r\nt=0 0\r\nm=video 9 UDP/TLS/RTP/SAVPF 96\r\nc=IN IP4 0.0.0.0\r\na=rtpmap:96 H264/90000\r\n"  } }
startWebRtcStreams

描述: Use this function to initiate multiple WebRTC media streams (main stream + sub stream) between client and device simultaneously.

版本: 1.2

指令集: webRtcManagement

请求参数:

Parameter nameData typeRequirementDescription
mainStreamTypeStringMMain stream media type ("video", "audio", "video_audio")
subStreamTypeStringOSub stream media type ("video", "audio", "video_audio", default no sub stream)
sessionIdStringOCustom unique WebRTC multi-stream session ID (auto-generated if not set)

返回值: 200, 400, 405, 409

说明: 400=parameter error; 405=device does not support multi-stream WebRTC; 409=multi-stream session already exists

返回内容: Empty

Profile定义:

{  "func":"startWebRtcStreams",  "args":{    "mainStreamType":"String",    "subStreamType":"String",    "sessionId":"String"  } }

Nebula指令请求:

{  "func":"startWebRtcStreams",  "args":{    "mainStreamType": "video_audio",    "subStreamType": "video",    "sessionId": "WEBRTC_MULTI_STREAM_001"  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
stopWebRtcStreams

描述: Use this function to terminate an existing multi-stream WebRTC connection (main stream + sub stream) between the client and the device.

版本: 1.2

指令集: webRtcManagement

请求参数:

Parameter nameData typeRequirementDescription
sessionIdStringOID of the multi-stream WebRTC session to be terminated (terminate all multi-stream sessions if not set)

返回值: 200, 400, 404

说明: 400=parameter error; 404=specified multi-stream WebRTC session does not exist

返回内容: Empty

Profile定义:

{  "func":"stopWebRtcStreams",  "args":{    "sessionId":"String"  } }

Nebula指令请求:

{  "func":"stopWebRtcStreams",  "args":{    "sessionId": "WEBRTC_MULTI_STREAM_001"  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
getLiveCapabilities

描述: Use this function to query the live stream capabilities of the device (including supported stream types, resolutions, and protocols).

版本: 1.2

指令集: liveStreamManagement

请求参数: Empty

返回内容:

Parameter nameData typeRequirementDescription
supportedProtocolsArrayMSupported live stream protocols (e.g. ["RTMP", "HLS", "WebRTC"])
supportedResolutionsArrayMSupported live stream resolutions (e.g. ["480p", "720p", "1080p"])
supportedStreamTypesArrayMSupported stream types (e.g. ["video", "audio", "video_audio"])
maxBitrateIntOMaximum live stream bitrate (unit: kbps, e.g. 2048)
supportMultiStreamBooleanOWhether the device supports multi-stream live broadcast (true/false)

Profile定义:

{  "func":"getLiveCapabilities",  "args":{},  "return":{    "supportedProtocols":"Array",    "supportedResolutions":"Array",    "supportedStreamTypes":"Array",    "maxBitrate":"Int",    "supportMultiStream":"Boolean"  } }

Nebula指令请求:

{  "func":"getLiveCapabilities",  "args":{} }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "supportedProtocols": ["RTMP", "HLS", "WebRTC"],    "supportedResolutions": ["480p", "720p", "1080p"],    "supportedStreamTypes": ["video", "audio", "video_audio"],    "maxBitrate": 2048,    "supportMultiStream": true  } }
startLiveStream

描述: Use this function to initiate a live stream broadcast from the device to the specified remote server (e.g. RTMP server).

版本: 1.2

指令集: liveStreamManagement

请求参数:

Parameter nameData typeRequirementDescription
protocolStringMLive stream protocol (must be one of the supportedProtocols from getLiveCapabilities, e.g. "RTMP")
streamUrlStringMRemote server stream push URL (e.g. "rtmp://live.example.com/live/stream_key")
streamTypeStringOStream type ("video", "audio", "video_audio", default "video_audio")
resolutionStringOLive stream resolution (must be one of supportedResolutions, default "720p")
bitrateIntOLive stream bitrate (unit: kbps, cannot exceed maxBitrate, default 1024)

返回值: 200, 400, 405, 409

说明: 400=parameter error; 405=device does not support live stream; 409=live stream is already in progress

返回内容: Empty

Profile定义:

{  "func":"startLiveStream",  "args":{    "protocol":"String",    "streamUrl":"String",    "streamType":"String",    "resolution":"String",    "bitrate":"Int"  } }

Nebula指令请求:

{  "func":"startLiveStream",  "args":{    "protocol": "RTMP",    "streamUrl": "rtmp://live.example.com/live/my_home_camera",    "streamType": "video_audio",    "resolution": "720p",    "bitrate": 1024  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
getPlaybackCapabilities

描述: Use this function to query the playback capabilities of the device (including supported playback formats, time ranges, and storage sources).

版本: 1.2

指令集: playbackManagement

请求参数: Empty

返回内容:

Parameter nameData typeRequirementDescription
supportedFormatsArrayMSupported playback video formats (e.g. ["H264", "H265", "MP4"])
supportedStorageSourcesArrayMSupported playback storage sources (e.g. ["local_sd", "local_hdd", "cloud"])
maxPlaybackDurationLongOMaximum single playback duration (unit: ms, e.g. 3600000 for 1 hour)
supportFastForwardBooleanOWhether support fast forward playback (true/false)
supportRewindBooleanOWhether support rewind playback (true/false)

Profile定义:

{  "func":"getPlaybackCapabilities",  "args":{},  "return":{    "supportedFormats":"Array",    "supportedStorageSources":"Array",    "maxPlaybackDuration":"Long",    "supportFastForward":"Boolean",    "supportRewind":"Boolean"  } }

Nebula指令请求:

{  "func":"getPlaybackCapabilities",  "args":{} }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "supportedFormats": ["H264", "H265", "MP4"],    "supportedStorageSources": ["local_sd", "local_hdd", "cloud"],    "maxPlaybackDuration": 3600000,    "supportFastForward": true,    "supportRewind": true  } }
startPlayback

描述: Use this function to initiate historical video playback from the specified storage source of the device.

版本: 1.2

指令集: playbackManagement

请求参数:

Parameter nameData typeRequirementDescription
storageSourceStringMPlayback storage source (must be one of supportedStorageSources, e.g. "local_sd")
startTimeLongMStart time of playback (timestamp, unit: ms)
endTimeLongMEnd time of playback (timestamp, unit: ms, must be larger than startTime)
formatStringOPlayback video format (must be one of supportedFormats, default "H264")
playbackSpeedFloatOPlayback speed (1.0=normal, 2.0=2x fast forward, 0.5=0.5x slow play, default 1.0)
channelIntOSpecific channel for playback (for NVR/DVR devices, default 1)

返回值: 200, 400, 404, 409

说明: 400=parameter error; 404=no video found in the specified time range; 409=playback is already in progress

返回内容: Empty

Profile定义:

{  "func":"startPlayback",  "args":{    "storageSource":"String",    "startTime":"Long",    "endTime":"Long",    "format":"String",    "playbackSpeed":"Float",    "channel":"Int"  } }

Nebula指令请求:

{  "func":"startPlayback",  "args":{    "storageSource": "local_sd",    "startTime": 1735689600000,    "endTime": 1735700000000,    "format": "H264",    "playbackSpeed": 1.0,    "channel": 1  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
setEventRecordingTriggers

描述: Use this function to set the event types that trigger local or cloud recording on the device.

版本: 1.2

指令集: recordingManagement

请求参数:

Parameter nameData typeRequirementDescription
triggerListArrayMList of event triggers for recording
triggerList[].eventTypeStringMEvent type (enumeration: "motion", "audio", "alarm", "human_detection", "vehicle_detection")
triggerList[].recordingTypeStringMRecording type triggered by event ("local", "cloud", "local_and_cloud")
triggerList[].preRecordTimeIntOPre-recording time before event occurs (unit: s, 0-30, default 5)
triggerList[].postRecordTimeIntOPost-recording time after event ends (unit: s, 10-60, default 10)
channelIntOSpecific channel for trigger setting (for NVR/DVR devices, default 1)

返回值: 200, 400

说明: 400=parameter error (invalid event type or recording type)

返回内容: Empty

Profile定义:

{  "func":"setEventRecordingTriggers",  "args":{    "triggerList":"Array",    "triggerList[].eventType":"String",    "triggerList[].recordingType":"String",    "triggerList[].preRecordTime":"Int",    "triggerList[].postRecordTime":"Int",    "channel":"Int"  } }

Nebula指令请求:

{  "func":"setEventRecordingTriggers",  "args":{    "triggerList": [      {        "eventType": "motion",        "recordingType": "local_and_cloud",        "preRecordTime": 5,        "postRecordTime": 10      },      {        "eventType": "human_detection",        "recordingType": "local_and_cloud",        "preRecordTime": 3,        "postRecordTime": 15      }    ],    "channel": 1  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
getEventRecordingTriggers

描述: Use this function to query the current event recording trigger settings of the device.

版本: 1.2

指令集: recordingManagement

请求参数:

Parameter nameData typeRequirementDescription
channelIntOSpecific channel for query (for NVR/DVR devices, default 1)

返回内容:

Parameter nameData typeRequirementDescription
triggerListArrayMCurrent list of event recording triggers
triggerList[].eventTypeStringMConfigured event type (e.g. "motion", "human_detection")
triggerList[].recordingTypeStringMConfigured recording type (e.g. "local_and_cloud")
triggerList[].preRecordTimeIntMConfigured pre-recording time (unit: s)
triggerList[].postRecordTimeIntMConfigured post-recording time (unit: s)

Profile定义:

{  "func":"getEventRecordingTriggers",  "args":{    "channel":"Int"  },  "return":{    "triggerList":"Array",    "triggerList[].eventType":"String",    "triggerList[].recordingType":"String",    "triggerList[].preRecordTime":"Int",    "triggerList[].postRecordTime":"Int"  } }

Nebula指令请求:

{  "func":"getEventRecordingTriggers",  "args":{    "channel": 1  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "triggerList": [      {        "eventType": "motion",        "recordingType": "local_and_cloud",        "preRecordTime": 5,        "postRecordTime": 10      },      {        "eventType": "human_detection",        "recordingType": "local_and_cloud",        "preRecordTime": 3,        "postRecordTime": 15      }    ]  } }
enableAllLocalRecording

描述: Use this function to enable or disable all local recording functions (event recording + continuous recording) of the device.

版本: 1.2

指令集: recordingManagement

请求参数:

Parameter nameData typeRequirementDescription
enableBooleanMtrue: enable all local recording; false: disable all local recording
channelIntOSpecific channel for setting (for NVR/DVR devices, default 1)

返回值: 200, 400, 405

说明: 400=parameter error; 405=device does not support local recording

返回内容: Empty

Profile定义:

{  "func":"enableAllLocalRecording",  "args":{    "enable":"Boolean",    "channel":"Int"  } }

Nebula指令请求:

{  "func":"enableAllLocalRecording",  "args":{    "enable": true,    "channel": 1  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
isAllLocalRecordingEnabled

描述: Use this function to query whether all local recording functions of the device are currently enabled.

版本: 1.2

指令集: recordingManagement

请求参数:

Parameter nameData typeRequirementDescription
channelIntOSpecific channel for query (for NVR/DVR devices, default 1)

返回内容:

Parameter nameData typeRequirementDescription
enableBooleanMCurrent status of all local recording (true=enabled, false=disabled)

Profile定义:

{  "func":"isAllLocalRecordingEnabled",  "args":{    "channel":"Int"  },  "return":{    "enable":"Boolean"  } }

Nebula指令请求:

{  "func":"isAllLocalRecordingEnabled",  "args":{    "channel": 1  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "enable": true  } }
setContinuousRecordingSchedule

描述: Use this function to set the schedule for continuous automatic recording of the device (supports different schedules for different weekdays).

版本: 1.2

指令集: recordingManagement

请求参数:

Parameter nameData typeRequirementDescription
scheduleListArrayMList of continuous recording schedules
scheduleList[].weekdayIntMWeekday (0=Sunday, 1=Monday, ..., 6=Saturday)
scheduleList[].timeRangesArrayMTime ranges for continuous recording on this weekday
scheduleList[].timeRanges[].startHourIntMStart hour of recording (0-23)
scheduleList[].timeRanges[].startMinuteIntMStart minute of recording (0-59)
scheduleList[].timeRanges[].endHourIntMEnd hour of recording (0-23, must be >= startHour)
scheduleList[].timeRanges[].endMinuteIntMEnd minute of recording (0-59)
channelIntOSpecific channel for setting (for NVR/DVR devices, default 1)

返回值: 200, 400

说明: 400=parameter error (invalid weekday or time range)

返回内容: Empty

Profile定义:

{  "func":"setContinuousRecordingSchedule",  "args":{    "scheduleList":"Array",    "scheduleList[].weekday":"Int",    "scheduleList[].timeRanges":"Array",    "scheduleList[].timeRanges[].startHour":"Int",    "scheduleList[].timeRanges[].startMinute":"Int",    "scheduleList[].timeRanges[].endHour":"Int",    "scheduleList[].timeRanges[].endMinute":"Int",    "channel":"Int"  } }

Nebula指令请求:

{  "func":"setContinuousRecordingSchedule",  "args":{    "scheduleList": [      {        "weekday": 1,        "timeRanges": [          {            "startHour": 0,            "startMinute": 0,            "endHour": 23,            "endMinute": 59          }        ]      },      {        "weekday": 2,        "timeRanges": [          {            "startHour": 8,            "startMinute": 0,            "endHour": 18,            "endMinute": 0          }        ]      }    ],    "channel": 1  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
getContinuousRecordingSchedule

描述: Use this function to query the current continuous recording schedule settings of the device.

版本: 1.2

指令集: recordingManagement

请求参数:

Parameter nameData typeRequirementDescription
channelIntOSpecific channel for query (for NVR/DVR devices, default 1)

返回内容:

Parameter nameData typeRequirementDescription
scheduleListArrayMCurrent list of continuous recording schedules
scheduleList[].weekdayIntMConfigured weekday (0=Sunday, 1=Monday, ..., 6=Saturday)
scheduleList[].timeRangesArrayMConfigured time ranges for continuous recording on this weekday
scheduleList[].timeRanges[].startHourIntMConfigured start hour of recording (0-23)
scheduleList[].timeRanges[].startMinuteIntMConfigured start minute of recording (0-59)
scheduleList[].timeRanges[].endHourIntMConfigured end hour of recording (0-23)
scheduleList[].timeRanges[].endMinuteIntMConfigured end minute of recording (0-59)

Profile定义:

{  "func":"getContinuousRecordingSchedule",  "args":{    "channel":"Int"  },  "return":{    "scheduleList":"Array",    "scheduleList[].weekday":"Int",    "scheduleList[].timeRanges":"Array",    "scheduleList[].timeRanges[].startHour":"Int",    "scheduleList[].timeRanges[].startMinute":"Int",    "scheduleList[].timeRanges[].endHour":"Int",    "scheduleList[].timeRanges[].endMinute":"Int"  } }

Nebula指令请求:

{  "func":"getContinuousRecordingSchedule",  "args":{    "channel": 1  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "scheduleList": [      {        "weekday": 1,        "timeRanges": [          {            "startHour": 0,            "startMinute": 0,            "endHour": 23,            "endMinute": 59          }        ]      },      {        "weekday": 2,        "timeRanges": [          {            "startHour": 8,            "startMinute": 0,            "endHour": 18,            "endMinute": 0          }        ]      }    ]  } }
enableContinuousScheduleRecording

描述: Use this function to enable or disable the continuous schedule recording function of the device.

版本: 1.2

指令集: recordingManagement

请求参数:

Parameter nameData typeRequirementDescription
enableBooleanMtrue: enable continuous schedule recording; false: disable continuous schedule recording
channelIntOSpecific channel for setting (for NVR/DVR devices, default 1)

返回值: 200, 400, 405

说明: 400=parameter error; 405=device does not support continuous schedule recording

返回内容: Empty

Profile定义:

{  "func":"enableContinuousScheduleRecording",  "args":{    "enable":"Boolean",    "channel":"Int"  } }

Nebula指令请求:

{  "func":"enableContinuousScheduleRecording",  "args":{    "enable": true,    "channel": 1  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
isContinuousScheduleRecordingEnabled

描述: Use this function to query whether the continuous schedule recording function of the device is currently enabled.

版本: 1.2

指令集: recordingManagement

请求参数:

Parameter nameData typeRequirementDescription
channelIntOSpecific channel for query (for NVR/DVR devices, default 1)

返回内容:

Parameter nameData typeRequirementDescription
enableBooleanMCurrent status of continuous schedule recording (true=enabled, false=disabled)

Profile定义:

{  "func":"isContinuousScheduleRecordingEnabled",  "args":{    "channel":"Int"  },  "return":{    "enable":"Boolean"  } }

Nebula指令请求:

{  "func":"isContinuousScheduleRecordingEnabled",  "args":{    "channel": 1  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "enable": true  } }
setPushNotificationTriggers

描述: Use this function to set the event types that trigger push notifications on the device.

版本: 1.2

指令集: notificationManagement

请求参数:

Parameter nameData typeRequirementDescription
triggerListArrayMList of event triggers for push notifications
triggerList[].eventTypeStringMEvent type (enumeration: "motion", "audio", "alarm", "human_detection", "vehicle_detection", "storage_full")
triggerList[].enableBooleanMtrue: enable this event to trigger push notification; false: disable
triggerList[].notifyTitleStringOCustom push notification title for this event (default is event type name)
triggerList[].notifyContentStringOCustom push notification content for this event (default is system preset content)
channelIntOSpecific channel for setting (for NVR/DVR devices, default 1)

返回值: 200, 400

说明: 400=parameter error (invalid event type)

返回内容: Empty

Profile定义:

{  "func":"setPushNotificationTriggers",  "args":{    "triggerList":"Array",    "triggerList[].eventType":"String",    "triggerList[].enable":"Boolean",    "triggerList[].notifyTitle":"String",    "triggerList[].notifyContent":"String",    "channel":"Int"  } }

Nebula指令请求:

{  "func":"setPushNotificationTriggers",  "args":{    "triggerList": [      {        "eventType": "motion",        "enable": true,        "notifyTitle": "Motion Detected",        "notifyContent": "A motion has been detected by your device."      },      {        "eventType": "human_detection",        "enable": true,        "notifyTitle": "Human Detected",        "notifyContent": "A human has been detected by your device."      }    ],    "channel": 1  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
getPushNotificationTriggers

描述: Use this function to query the current push notification trigger settings of the device.

版本: 1.2

指令集: notificationManagement

请求参数:

Parameter nameData typeRequirementDescription
channelIntOSpecific channel for query (for NVR/DVR devices, default 1)

返回内容:

Parameter nameData typeRequirementDescription
triggerListArrayMCurrent list of push notification triggers
triggerList[].eventTypeStringMConfigured event type (e.g. "motion", "human_detection")
triggerList[].enableBooleanMConfigured status of this trigger (true=enabled, false=disabled)
triggerList[].notifyTitleStringMConfigured push notification title for this event
triggerList[].notifyContentStringMConfigured push notification content for this event

Profile定义:

{  "func":"getPushNotificationTriggers",  "args":{    "channel":"Int"  },  "return":{    "triggerList":"Array",    "triggerList[].eventType":"String",    "triggerList[].enable":"Boolean",    "triggerList[].notifyTitle":"String",    "triggerList[].notifyContent":"String"  } }

Nebula指令请求:

{  "func":"getPushNotificationTriggers",  "args":{    "channel": 1  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "triggerList": [      {        "eventType": "motion",        "enable": true,        "notifyTitle": "Motion Detected",        "notifyContent": "A motion has been detected by your device."      },      {        "eventType": "human_detection",        "enable": true,        "notifyTitle": "Human Detected",        "notifyContent": "A human has been detected by your device."      }    ]  } }
enablePushNotification

描述: Use this function to enable or disable the push notification function for a single specific event type of the device.

版本: 1.2

指令集: notificationManagement

请求参数:

Parameter nameData typeRequirementDescription
eventTypeStringMTarget event type (enumeration: "motion", "audio", "alarm", "human_detection", "vehicle_detection", "storage_full")
enableBooleanMtrue: enable push notification for this event; false: disable push notification for this event
channelIntOSpecific channel for setting (for NVR/DVR devices, default 1)

返回值: 200, 400, 404

说明: 400=parameter error; 404=specified event type does not exist

返回内容: Empty

Profile定义:

{  "func":"enablePushNotification",  "args":{    "eventType":"String",    "enable":"Boolean",    "channel":"Int"  } }

Nebula指令请求:

{  "func":"enablePushNotification",  "args":{    "eventType": "storage_full",    "enable": true,    "channel": 1  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
enablePushNotifications

描述: Use this function to batch enable or disable push notification functions for multiple event types of the device.

版本: 1.2

指令集: notificationManagement

请求参数:

Parameter nameData typeRequirementDescription
eventTypeListArrayMList of target event types (enumeration: "motion", "audio", "alarm", "human_detection", "vehicle_detection", "storage_full")
enableBooleanMtrue: batch enable push notifications for these events; false: batch disable push notifications for these events
channelIntOSpecific channel for setting (for NVR/DVR devices, default 1)

返回值: 200, 400

说明: 400=parameter error (invalid event type in list)

返回内容: Empty

Profile定义:

{  "func":"enablePushNotifications",  "args":{    "eventTypeList":"Array",    "enable":"Boolean",    "channel":"Int"  } }

Nebula指令请求:

{  "func":"enablePushNotifications",  "args":{    "eventTypeList": ["motion", "audio", "alarm"],    "enable": true,    "channel": 1  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
arePushNotificationsEnabled

描述: Use this function to batch query the push notification status of multiple event types of the device.

版本: 1.2

指令集: notificationManagement

请求参数:

Parameter nameData typeRequirementDescription
eventTypeListArrayMList of target event types for query (enumeration: "motion", "audio", "alarm", "human_detection", "vehicle_detection", "storage_full")
channelIntOSpecific channel for query (for NVR/DVR devices, default 1)

返回内容:

Parameter nameData typeRequirementDescription
statusListArrayMList of push notification status for the queried event types
statusList[].eventTypeStringMQueried event type (e.g. "motion", "audio")
statusList[].enableBooleanMPush notification status of this event (true=enabled, false=disabled)

Profile定义:

{  "func":"arePushNotificationsEnabled",  "args":{    "eventTypeList":"Array",    "channel":"Int"  },  "return":{    "statusList":"Array",    "statusList[].eventType":"String",    "statusList[].enable":"Boolean"  } }

Nebula指令请求:

{  "func":"arePushNotificationsEnabled",  "args":{    "eventTypeList": ["motion", "audio", "alarm"],    "channel": 1  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "statusList": [      {        "eventType": "motion",        "enable": true      },      {        "eventType": "audio",        "enable": true      },      {        "eventType": "alarm",        "enable": false      }    ]  } }
isPushNotificationEnabled

描述: Use this function to query the push notification status of a single specific event type of the device.

版本: 1.2

指令集: notificationManagement

请求参数:

Parameter nameData typeRequirementDescription
eventTypeStringMTarget event type for query (enumeration: "motion", "audio", "alarm", "human_detection", "vehicle_detection", "storage_full")
channelIntOSpecific channel for query (for NVR/DVR devices, default 1)

返回内容:

Parameter nameData typeRequirementDescription
enableBooleanMPush notification status of the specified event (true=enabled, false=disabled)

Profile定义:

{  "func":"isPushNotificationEnabled",  "args":{    "eventType":"String",    "channel":"Int"  },  "return":{    "enable":"Boolean"  } }

Nebula指令请求:

{  "func":"isPushNotificationEnabled",  "args":{    "eventType": "motion",    "channel": 1  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "enable": true  } }
getChannelInfo

描述: Use this function to query the detailed information of a specific channel of the device (for NVR/DVR multi-channel devices).

版本: 1.2

指令集: channelManagement

请求参数:

Parameter nameData typeRequirementDescription
channelIntMTarget channel number for query (e.g. 1, 2, 3)

返回内容:

Parameter nameData typeRequirementDescription
channelIntMChannel number (same as the query parameter)
channelNameStringMName of the channel (e.g. "Front Door Camera")
statusStringMChannel status (enumeration: "online", "offline", "error")
cameraTypeStringOType of camera connected to this channel (e.g. "IP Camera", "Analog Camera")
resolutionStringOSupported maximum resolution of this channel (e.g. "1080p")
recordingEnabledBooleanOWhether recording is enabled for this channel (true=enabled, false=disabled)

Profile定义:

{  "func":"getChannelInfo",  "args":{    "channel":"Int"  },  "return":{    "channel":"Int",    "channelName":"String",    "status":"String",    "cameraType":"String",    "resolution":"String",    "recordingEnabled":"Boolean"  } }

Nebula指令请求:

{  "func":"getChannelInfo",  "args":{    "channel": 1  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "channel": 1,    "channelName": "Front Door Camera",    "status": "online",    "cameraType": "IP Camera",    "resolution": "1080p",    "recordingEnabled": true  } }
setChannelName

描述: Use this function to set a custom name for a specific channel of the device (for NVR/DVR multi-channel devices).

版本: 1.2

指令集: channelManagement

请求参数:

Parameter nameData typeRequirementDescription
channelIntMTarget channel number for setting (e.g. 1, 2, 3)
channelNameStringMCustom channel name (maximum length: 32 characters, support letters, numbers, and special characters)

返回值: 200, 400, 404

说明: 400=parameter error (invalid channel name length); 404=specified channel does not exist

返回内容: Empty

Profile定义:

{  "func":"setChannelName",  "args":{    "channel":"Int",    "channelName":"String"  } }

Nebula指令请求:

{  "func":"setChannelName",  "args":{    "channel": 1,    "channelName": "Front Door Camera"  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK" }
getChannelName

描述: Use this function to query the custom name of a specific channel of the device (for NVR/DVR multi-channel devices).

版本: 1.2

指令集: channelManagement

请求参数:

Parameter nameData typeRequirementDescription
channelIntMTarget channel number for query (e.g. 1, 2, 3)

返回内容:

Parameter nameData typeRequirementDescription
channelNameStringMCurrent custom name of the specified channel (return default name if not customized)

Profile定义:

{  "func":"getChannelName",  "args":{    "channel":"Int"  },  "return":{    "channelName":"String"  } }

Nebula指令请求:

{  "func":"getChannelName",  "args":{    "channel": 1  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "channelName": "Front Door Camera"  } }
getChannelNames

描述: Use this function to batch query the custom names of all supported channels of the device (for NVR/DVR multi-channel devices).

版本: 1.2

指令集: channelManagement

请求参数: Empty

返回内容:

Parameter nameData typeRequirementDescription
channelNameListArrayMList of channel names for all supported channels
channelNameList[].channelIntMChannel number (e.g. 1, 2, 3)
channelNameList[].channelNameStringMCustom name of the channel (return default name if not customized)

Profile定义:

{  "func":"getChannelNames",  "args":{},  "return":{    "channelNameList":"Array",    "channelNameList[].channel":"Int",    "channelNameList[].channelName":"String"  } }

Nebula指令请求:

{  "func":"getChannelNames",  "args":{} }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "channelNameList": [      {        "channel": 1,        "channelName": "Front Door Camera"      },      {        "channel": 2,        "channelName": "Backyard Camera"      },      {        "channel": 3,        "channelName": "Garage Camera"      }    ]  } }
queryEventCalendar

描述: Use this function to query the date list that contains recorded events of the device (for quick calendar-based event navigation).

版本: 1.2

指令集: eventManagement

请求参数:

Parameter nameData typeRequirementDescription
yearIntMTarget year for query (e.g. 2025)
monthIntMTarget month for query (1-12)
eventTypeStringOFilter by event type (enumeration: "motion", "audio", "alarm", "human_detection", "vehicle_detection")
channelIntOSpecific channel for query (for NVR/DVR devices, default 1)

返回内容:

Parameter nameData typeRequirementDescription
eventDateListArrayMList of dates that contain the specified type of events
eventDateList[].dateStringMDate in "YYYY-MM-DD" format (e.g. "2025-12-30")
eventDateList[].eventCountIntMNumber of events on this date

Profile定义:

{  "func":"queryEventCalendar",  "args":{    "year":"Int",    "month":"Int",    "eventType":"String",    "channel":"Int"  },  "return":{    "eventDateList":"Array",    "eventDateList[].date":"String",    "eventDateList[].eventCount":"Int"  } }

Nebula指令请求:

{  "func":"queryEventCalendar",  "args":{    "year": 2025,    "month": 12,    "eventType": "motion",    "channel": 1  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "eventDateList": [      {        "date": "2025-12-28",        "eventCount": 12      },      {        "date": "2025-12-29",        "eventCount": 8      },      {        "date": "2025-12-30",        "eventCount": 5      }    ]  } }
queryEventListByNumber

描述: Use this function to query the latest N pieces of event records of the device (batch query by specified event count).

版本: 1.2

指令集: eventManagement

请求参数:

Parameter nameData typeRequirementDescription
eventCountIntMNumber of latest events to query (1-100, maximum 100)
eventTypeStringOFilter by event type (enumeration: "motion", "audio", "alarm", "human_detection", "vehicle_detection")
channelIntOSpecific channel for query (for NVR/DVR devices, default 1)

返回内容:

Parameter nameData typeRequirementDescription
eventListArrayMList of the latest N pieces of event records (sorted in descending order by time)
eventList[].eventIdStringMUnique identifier of the event
eventList[].eventTypeStringMType of the event (e.g. "motion", "human_detection")
eventList[].startTimeStringMStart time of the event in "YYYY-MM-DD HH:mm:ss" format
eventList[].endTimeStringOEnd time of the event in "YYYY-MM-DD HH:mm:ss" format
eventList[].filePathStringOStorage path of the event recording file (for local recording)
eventList[].channelIntMChannel number corresponding to the event

Profile定义:

{  "func":"queryEventListByNumber",  "args":{    "eventCount":"Int",    "eventType":"String",    "channel":"Int"  },  "return":{    "eventList":"Array",    "eventList[].eventId":"String",    "eventList[].eventType":"String",    "eventList[].startTime":"String",    "eventList[].endTime":"String",    "eventList[].filePath":"String",    "eventList[].channel":"Int"  } }

Nebula指令请求:

{  "func":"queryEventListByNumber",  "args":{    "eventCount": 10,    "eventType": "motion",    "channel": 1  } }

Nebula指令回复内容:

{  "statusCode": 200,  "statusMsg": "OK",  "content":{    "eventList": [      {        "eventId": "EVT20251230094500001",        "eventType": "motion",        "startTime": "2025-12-30 09:45:00",        "endTime": "2025-12-30 09:45:10",        "filePath": "/storage/sdcard/20251230/EVT20251230094500001.h264",        "channel": 1      },      {        "eventId": "EVT20251230083000001",        "eventType": "motion",        "startTime": "2025-12-30 08:30:00",        "endTime": "2025-12-30 08:30:08",        "filePath": "/storage/sdcard/20251230/EVT20251230083000001.h264",        "channel": 1      }    ]  } }

即刻开启您的物联网之旅

联系解决方案专家
Kalay App
资讯安全白皮书
全球专利布局
解决方案
新闻动态
公司动态
行业资讯
媒体报道
永续发展
经营者的话
社会参与
环境永续
公司治理

+86 755 27702549

7×24小时服务热线

法律声明 隐私权条款

关注“TUTK”

TUTK服务尽在掌握

© 2022 物联智慧科技(深圳)有限公司版权所有粤ICP备14023641号
在线咨询
扫一扫

TUTK服务尽在掌握

全国免费服务热线
+86 755 27702549

返回顶部