获取主控设备 id 值

描述:

获取当前主控设备 id 值,通过该 id 值可以对设备的属性、控制进行操作。
在 Total Control 6.9.0 及以后版本添加可选参数 "type=number" 只有在专业版的多控中心适用。

对应JS API:
Device.getMain()
是否支持多设备:

不支持

请求方式:

GET
http://IP:8090/TotalControl/v1/devices/main

http://IP:8090/TotalControl/v1/devices/main?type=number

参数:
参数名 类型 必选 描述
token string Y Total Control TOKEN
type string N 固定值:number
type=number 是可选参数:
添加这个参数,返回设备序号。例如:2
省略这个参数,返回设备字符串。例如:"device@1116106541"
请求示例:

//示例一
http://127.0.0.1:8090/TotalControl/v1/devices/main?token=270eq7lXQK8bXYsJ 

//示例二
http://localhost:8090/TotalControl/v1/devices/main?type=number&token=270eq7lXQK8bXYsJ
返回示例:

注意:
Total Control 的 REST API 的返回值通常由关键字 “status” 和 “value” 组成,
status: 接口执行成功与否 ,value: 执行接口的返回值,
但是,该 API 的返回值没有关键字 “status” ,返回值如下:


//示例一返回值
{
    "id":"device@1116106541"
}

//示例二返回值
{
    "id":1
}
返回字段说明:

示例一返回字段说明:

字段 类型 描述
id string TC id


示例二返回字段说明:

字段 类型 描述
id int 设备序号,注意只有在专业版的多控中心,才返回设备序号,不在多控中心,返回的 id 值始终为 0.
完整示例:

脚本语言: RingoJS
可以复制代码,保存为后缀为 js 的文件, 例如:example.js,在 Total Control 的执行器中执行。


//导入一些 ringoJS 的包
var {request} = require('ringo/httpclient');
var base64 = require('ringo/base64');
//将用户名密码编码,'sigma:3D391497'是用户名和密码,在Total Control系统设置里面可以看到
var userpass = base64.encode('sigma:3D391497');
//用于获取 Total Control 脚本开发所用的开发 token
//请求方式 GET, 
//请求URL:http://localhost:8090/TotalControl/v1/login
//请求头:'Authorization': base64.encode('sigma:3D391497')
var gettoken = request({
    method: 'GET',
    url: 'http://localhost:8090/TotalControl/v1/login',
    headers: {
    'Authorization': userpass
   }
});
//输出返回的响应内容
print("get token,Return: " + gettoken.content);
//将获取的响应内容转换成json对象
var ret_token = eval('(' + gettoken.content + ')'); 
//获取 token 的值
var token = ret_token.value.token; 

//获取当前主控设备
//请求方式 GET, 
//请求URL:http://localhost:8090/TotalControl/v1/devices/main?token=270eq7lXQK8bXYsJ
var getdevice = request({
    method: 'GET',
    url: 'http://localhost:8090/TotalControl/v1/devices/main?token=' + token,
});
//getdevice.status是响应状态码,如果响应状态码为200(即 HTTP 请求成功),就返回获取到的设备
if (getdevice.status == 200) {
    //输出返回的响应内容
    print("get device,Return: " + getdevice.content);
} else {
    print("Failed to get the device object");
}

运行结果:

get token,Return: {"status":true,"value":{"token":"iSvz5On0bWL48LUU"}}
get device,Return: {"id":"device@33254183"}