批量操作:更新多个节点
使用 setMultipleNodesParams 方法可以在一次 API 调用中为多个节点更新参数。推荐使用此方式进行批量操作,从而跨节点高效更新多项设备参数和服务参数。
推荐批量操作
当需要跨多个节点更新多项参数时,请使用 setMultipleNodesParams。这比为每项参数单独调用 setValue 更高效。
使用设备参数和服务参数更新多个节点
可以在一次批量操作中同时更新多个节点的设备参数和服务参数:
try {
const payload = [
{
nodeId: "node_id_1",
payload: {
// 设备参数,使用设备名称作为键
"Light": {
"Power": true,
"Brightness": 80,
"CCT": 4000
},
"Fan": {
"Power": true,
"Speed": 5
},
// 服务参数,使用服务名称作为键
"Time": {
"TZ": "America/Los_Angeles",
"TZ-POSIX": "PST8PDT,M3.2.0,M11.1.0"
}
}
},
{
nodeId: "node_id_2",
payload: {
"Light": {
"Power": false
},
"Switch": {
"Power": true
}
}
}
];
const response = await userInstance.setMultipleNodesParams(payload);
console.log("Batch update successful:", response);
} catch (error) {
console.error("Error updating multiple nodes:", error);
}
示例:仅更新设备参数
可以仅更新多个节点的设备参数:
try {
const payload = [
{
nodeId: "node_id_1",
payload: {
"Light": {
"Power": true,
"Brightness": 100
}
}
},
{
nodeId: "node_id_2",
payload: {
"Light": {
"Power": true,
"Brightness": 50
},
"Fan": {
"Power": true,
"Speed": 3
}
}
}
];
const response = await userInstance.setMultipleNodesParams(payload);
console.log("Device parameters updated:", response);
} catch (error) {
console.error("Error updating device parameters:", error);
}
示例:仅更新服务参数
可以仅更新多个节点的服务参数:
try {
const payload = [
{
nodeId: "node_id_1",
payload: {
"Time": {
"TZ": "America/New_York",
"TZ-POSIX": "EST5EDT,M3.2.0,M11.1.0"
}
}
},
{
nodeId: "node_id_2",
payload: {
"Time": {
"TZ": "Asia/Kolkata"
}
}
}
];
const response = await userInstance.setMultipleNodesParams(payload);
console.log("Service parameters updated:", response);
} catch (error) {
console.error("Error updating service parameters:", error);
}
示例:混合设备参数和服务参数
在同一次批量操作中同时更新设备参数和服务参数:
try {
const payload = [
{
nodeId: "node_id_1",
payload: {
// 设备参数
"Light": {
"Power": true,
"Brightness": 75
},
// 服务参数
"Time": {
"TZ": "Europe/London"
}
}
}
];
const response = await userInstance.setMultipleNodesParams(payload);
console.log("Mixed parameters updated:", response);
} catch (error) {
console.error("Error updating parameters:", error);
}