跳到主要内容

节点管理

在 RainMaker 中,所有已配网的设备都称为节点。每个节点采用分层结构,包含配置、设备、服务及其参数。

节点层级结构

下面的交互式树形图展示了 RainMaker 节点的完整层级结构。可单击展开/折叠任意节点,并配置链接以跳转到各组件的详细文档。

交互式树形可视化节点

下面的树形图是可交互的,你可以:

  • 单击节点展开或折叠分支。
  • 拖动树形图。
  • 滚动或缩放以调整视图。
  • 单击节点跳转至文档(链接可自行配置)。

若想为节点配置导航链接,请在组件中更新 nodeLinkMap 属性。

获取用户节点

要获取与已登录用户关联的所有已配网设备(节点),请使用 getUserNodes 方法。该方法可以指定返回结果数量。如果关联节点数超过指定的 resultCount,系统将自动处理分页。

// 带分页的示例用法
try {
const resultCount = 10; // 要获取的初始节点数量

let response = await userInstance.getUserNodes(resultCount);

console.log("User nodes retrieved:", response.nodes);

// 处理分页
while (response.hasNext) {
response = await response.fetchNext();
console.log("Next set of user nodes retrieved:", response.nodes);
}
} catch (error) {
console.error("Error fetching user nodes:", error);
}

获取节点详情

要获取指定节点的详细信息,请使用 getNodeDetails 方法:

/*
- nodeId:要获取的节点 ID。
*/

try {
const nodeDetails = await userInstance.getNodeDetails("node_id_123");
console.log("Node details:", nodeDetails);

// 访问节点配置
const nodeConfig = nodeDetails.nodeConfig;
// 按上述方式访问设备和服务
} catch (error) {
console.error("Error fetching node details:", error);
}

获取节点配置

要获取某个节点的完整配置,请在节点实例上使用 getNodeConfig 方法:

try {
const nodeConfig = await node.getNodeConfig();
console.log("Node configuration:", nodeConfig);
console.log("Devices:", nodeConfig.devices);
console.log("Services:", nodeConfig.services);
} catch (error) {
console.error("Error fetching node config:", error);
}

获取服务

要获取与节点关联的所有服务,请使用 getServices 方法:

try {
const services = await node.getServices();
console.log("Node services:", services);

services.forEach((service) => {
console.log("Service:", service.name, "Type:", service.type);
console.log("Parameters:", service.params);
});
} catch (error) {
console.error("Error fetching services:", error);
}

按筛选条件获取用户节点

要按特定筛选条件和分页选项获取节点,请使用 getUserNodesWith 方法:

/*
- getUserNodesWithRequestParams:请求获取用户节点的参数。
*/

const getUserNodesWithRequestParams = {
result_count: 20,
page_num: 1,
// 按需添加其他筛选条件
};

try {
const nodes = await userInstance.getUserNodesWith(getUserNodesWithRequestParams);
console.log("Filtered nodes:", nodes);
} catch (error) {
console.error("Error fetching nodes with filters:", error);
}

删除节点

使用 delete 方法删除当前节点与用户的映射,将节点从用户账号中移除。

try {
const response = await node.delete();
console.log("Node deleted successfully:", response);
} catch (error) {
console.error("Error deleting node:", error);
}
重要提示

删除节点会将其从账号中移除,且该操作无法撤销。请在操作前确认需要删除该节点。

On this page