跳到主要内容

管理群组

本节介绍创建、更新和管理节点群组的操作,可通过 ESPRMUser 实例(用于用户级操作)或 ESPRMGroup 实例(用于群组级操作)执行。

说明

使用 ESPRMAuth.getLoggedInUser 方法获取 userInstance

try {
const authInstance = ESPRMBase.getAuthInstance();
const userInstance = await authInstance.getLoggedInUser();

if (userInstance) {
// 使用 userInstance 进行群组操作
} else {
console.log("No user is currently logged in");
}
} catch (error) {
console.error("Error getting logged in user:", error);
}

使用 userInstancegetGroupByIdgetGroups 方法获取 group 实例(ESPRMGroup 实例):

// 通过 ID 获取群组
const group = await userInstance.getGroupById({
groupId: "group_id_123"
});

// 或从群组列表中获取
const response = await userInstance.getGroups();
const group = response.groups[0]; // 获取列表中的第一个群组

创建节点群组

使用 createGroup 方法创建新的节点群组。

const groupInfo = {
name: "Living Room Devices",
nodeIds: ["node_id_1", "node_id_2"],
description: "All devices in the living room",
customData: {
room: "living_room",
floor: 1
},
type: "user",
mutuallyExclusive: false
};

try {
const newGroup = await userInstance.createGroup(groupInfo);
console.log("Group created successfully:", newGroup);
} catch (error) {
console.error("Error creating group:", error);
}

更新群组信息

使用 updateGroupInfo 方法更新群组信息。

try {
const updateInfo = {
name: "Updated Group Name",
description: "Updated description",
customData: {
room: "bedroom",
floor: 2
}
};

const response = await group.updateGroupInfo(updateInfo);
console.log("Group info updated successfully:", response);
} catch (error) {
console.error("Error updating group info:", error);
}

删除群组

使用 delete 方法删除群组。

try {
const response = await group.delete();
console.log("Group deleted successfully:", response);
} catch (error) {
console.error("Error deleting group:", error);
}

退出群组

使用 leave 方法将当前用户从群组中移除。

try {
const response = await group.leave();
console.log("Left group successfully:", response);
} catch (error) {
console.error("Error leaving group:", error);
}

向群组添加节点

使用 addNodes 方法向现有节点群组添加节点,用户应提供需要添加到群组的节点 ID 列表。

/*
假设用户有两个 ESPRMNode 节点实例,分别存储在:
- firstNode
- secondNode
*/

const nodesToAdd = [firstNode.id, secondNode.id];

try {
const response = await group.addNodes(nodesToAdd);
console.log("Nodes added successfully:", response);
} catch (error) {
console.error("Error adding nodes to group:", error);
}

从群组移除节点

使用 removeNodes 方法从群组中移除节点。

const nodesToRemove = ["node_id_1", "node_id_2"];

try {
const response = await group.removeNodes(nodesToRemove);
console.log("Nodes removed successfully:", response);
} catch (error) {
console.error("Error removing nodes from group:", error);
}

获取节点列表

使用 getNodesList 方法检索群组关联的节点 ID 列表。

try {
const nodeIds = await group.getNodesList();
console.log("Node IDs in group:", nodeIds);
} catch (error) {
console.error("Error getting nodes list:", error);
}

获取节点详细信息

使用 getNodesWithDetails 方法检索包含详细信息的节点列表。

try {
const nodes = await group.getNodesWithDetails();
console.log("Nodes with details:", nodes);
nodes.forEach(node => {
console.log(`Node: ${node.name}, Type: ${node.type}`);
});
} catch (error) {
console.error("Error getting nodes with details:", error);
}

创建子群组

使用 createSubGroup 方法在当前群组下创建子群组。

try {
const subGroupInfo = {
name: "SubGroup Name",
nodeIds: ["node_id_1"],
description: "Subgroup description"
};

const subGroup = await group.createSubGroup(subGroupInfo);
console.log("SubGroup created successfully:", subGroup);
} catch (error) {
console.error("Error creating subgroup:", error);
}

获取子群组

使用 getSubGroups 方法检索当前群组的子群组列表。

try {
const subGroups = await group.getSubGroups();
console.log("SubGroups:", subGroups);
subGroups.forEach(subGroup => {
console.log(`SubGroup: ${subGroup.name}, ID: ${subGroup.id}`);
});
} catch (error) {
console.error("Error getting subgroups:", error);
}

On this page