跳到主要内容

设备分组

更新时间:2026-10-23 11:31:55

对用户下的设备进行分组管理


/**
* 分组添加设备
*
* @param groupId - groupId 分组ID
* @param iotIdList - 设备ID列表
* @public
*/
declare function groupAddDevice(groupId: number, iotIdList: string[]): Promise<void>;

/**
* 创建分组
*
* @param name - 分组名称
* @param iotIdList - 设备ID列表 可选
* @param homeId - 家庭ID 可选
* @public
*/
declare function groupCreate(name: string, iotIdList?: string[], homeId?: number): Promise<void>;

/**
* 删除分组
*
* @param groupId - 分组ID
* @public
*/
declare function groupDelete(groupId: number): Promise<void>;

/**
* 分组删除设备
*
* @param groupId - 分组ID
* @param iotIdList - 设备ID列表
* @public
*/
declare function groupDeleteDevice(groupId: number, iotIdList: string[]): Promise<void>;

/**
* Group info
* @public
*/
declare interface GroupInfo {
/**
* 分组ID
*/
groupId: number;
/**
* 分组名称
*/
name: string;
/**
* 设备数量
*/
deviceCount: number;
/**
* 设备列表
*/
deviceList?: IDeviceInfo[];
}

/**
* 分组列表
*
* @param pageNo - 页码
* @param pageSize - 每页数量 最大20
* @param homeId - 家庭ID,为null查询普通分组列表
* @public
*/
declare function groupList(pageNo: number, pageSize: number, homeId?: number): Promise<GroupListRsp | undefined>;

/**
* 设备分组列表返回
* @public
*/
declare interface GroupListRsp {
/**
* 总数
*/
total: number;
/**
* 页码
*/
pageNo: number;
/**
* 每页数量
*/
pageSize: number;
/**
* 返回记录数
*/
items: GroupInfo[];
}

/**
* 更新分组名称
*
* @param groupId - 分组ID
* @param name - 分组名称
* @public
*/
declare function groupUpdate(groupId: number, name: string): Promise<void>;

/**
* Home info
*
* @public
*/
declare interface HomeInfo {
/**
* 家庭ID
*/
homeId: number;
/**
* 家庭名称
*/
name: string;
/**
* 是否是默认家庭
*/
isDefault: boolean;
deviceCount: number;
groupList?: GroupInfo[];
}

/**
* 家庭列表返回
*
* @public
*/
declare interface HomeListRsp {
/**
* 总数
*/
total: number;
/**
* 页码
*/
pageNo: number;
/**
* 每页数量
*/
pageSize: number;
/**
* 返回记录数
*/
items: HomeInfo[];
}

/**
* 创建家庭
*
* @param name - 家庭名称
* @param groupList - 新建分组列表 (可选)
* @public
*/
declare function homeManagerCreate(name: string, groupList?: string[]): Promise<void>;

/**
* 删除家庭
*
* @param homeId - 家庭ID
* @public
*/
declare function homeManagerDelete(homeId: number): Promise<void>;

/**
* 家庭列表
*
* @param pageNo - 页码
* @param pageSize - 每页数量
* @public
*/
declare function homeManagerList(pageNo: number, pageSize: number): Promise<HomeListRsp | undefined>;

/**
* 更新家庭信息 (仅支持修改名称)
*
* @param homeId - 家庭ID
* @param name - 家庭名称
* @public
*/
declare function homeManagerUpdate(homeId: number, name: string): Promise<void>;

export declare namespace RTCXDeviceGroupMgr {
export {
groupCreate,
groupDelete,
groupUpdate,
groupList,
groupAddDevice,
groupDeleteDevice,
homeManagerCreate,
homeManagerDelete,
homeManagerList,
homeManagerUpdate
}
}

创建分组​

/**
* 创建分组
*
* @param name - 分组名称
* @param iotIdList - 设备ID列表 可选
* @param homeId - 家庭ID 可选
* @public
*/
declare function groupCreate(name: string, iotIdList?: string[], homeId?: number): Promise<void>;

示例


import { RTCXDeviceGroupMgr, RTCXDeviceMgr, RTCXDeviceMgrTypes } from '@rtcx/websdk'

const submitGroupForm = async () => {
if (!groupForm.name) return ElMessage.warning('请输入分组名称')
try {
await RTCXDeviceGroupMgr.groupCreate(groupForm.name, undefined, groupForm.homeId)
ElMessage.success('创建成功')

groupDialogVisible.value = false
fetchGroupList()
} catch (e) {
ElMessage.error('操作失败')
}
}

删除分组​

/**
* 删除分组
*
* @param groupId - 分组ID
* @public
*/
declare function groupDelete(groupId: number): Promise<void>;

示例

import { RTCXDeviceGroupMgr, RTCXDeviceMgr, RTCXDeviceMgrTypes } from '@rtcx/websdk'
const handleDeleteGroup = async (groupId: number) => {
try {
await ElMessageBox.confirm('确定要删除该分组吗?', '提示', { type: 'warning' })
await RTCXDeviceGroupMgr.groupDelete(groupId)
ElMessage.success('删除成功')
fetchGroupList()
} catch (e) {
// 用户取消
}
}

更新分组名称​

/**
* 更新分组名称
*
* @param groupId - 分组ID
* @param name - 分组名称
* @public
*/
declare function groupUpdate(groupId: number, name: string): Promise<void>;

示例


import { RTCXDeviceGroupMgr, RTCXDeviceMgr, RTCXDeviceMgrTypes } from '@rtcx/websdk'

const submitGroupForm = async () => {
if (!groupForm.name) return ElMessage.warning('请输入分组名称')
try {
if (!groupForm.groupId) return
await RTCXDeviceGroupMgr.groupUpdate(groupForm.groupId, groupForm.name)
ElMessage.success('更新成功')
groupDialogVisible.value = false
fetchGroupList()
} catch (e) {
ElMessage.error('操作失败')
}
}

分组列表​

/**
* 分组列表
*
* @param pageNo - 页码
* @param pageSize - 每页数量 最大20
* @param homeId - 家庭ID,为null查询普通分组列表
* @public
*/
declare function groupList(pageNo: number, pageSize: number, homeId?: number): Promise<GroupListRsp | undefined>;

示例

import { RTCXDeviceGroupMgr, RTCXDeviceMgr, RTCXDeviceMgrTypes } from '@rtcx/websdk'

const fetchGroupList = async () => {
groupLoading.value = true
try {
const res = (await RTCXDeviceGroupMgr.groupList(
groupPageNo.value,
groupPageSize.value
)) as RTCXDeviceMgrTypes.GroupListRsp
groupListData.value = res?.items || []
groupTotal.value = res?.total || 0
} catch (e) {
console.error(e)
} finally {
groupLoading.value = false
}
}

分组添加设备​

/**
* 分组添加设备
*
* @param groupId - groupId 分组ID
* @param iotIdList - 设备ID列表
* @public
*/
declare function groupAddDevice(groupId: number, iotIdList: string[]): Promise<void>;

示例

import { RTCXDeviceGroupMgr, RTCXDeviceMgr, RTCXDeviceMgrTypes } from '@rtcx/websdk'

const selectedAddDevices = ref<string[]>([])

const handleAddDevice = async () => {
if (selectedAddDevices.value.length === 0) return ElMessage.warning('请选择要添加的设备')
if (!currentGroupId.value) return

await RTCXDeviceGroupMgr.groupAddDevice(currentGroupId.value, selectedAddDevices.value)
ElMessage.success('添加设备成功')

}

分组删除设备​

/**
* 分组删除设备
*
* @param groupId - 分组ID
* @param iotIdList - 设备ID列表
* @public
*/
declare function groupDeleteDevice(groupId: number, iotIdList: string[]): Promise<void>;

示例

import { RTCXDeviceGroupMgr, RTCXDeviceMgr, RTCXDeviceMgrTypes } from '@rtcx/websdk'

// 移除设备相关
const selectedRemoveDevices = ref<string[]>([])

const handleDeleteDevice = async () => {
if (selectedRemoveDevices.value.length === 0) return ElMessage.warning('请选择要移除的设备')
if (!currentGroupId.value) return

await RTCXDeviceGroupMgr.groupDeleteDevice(currentGroupId.value, selectedRemoveDevices.value)
ElMessage.success('移除设备成功')
}

创建家庭​

/**
* 创建家庭
*
* @param name - 家庭名称
* @param groupList - 新建分组列表 (可选)
* @public
*/
declare function homeManagerCreate(name: string, groupList?: string[]): Promise<void>;

示例

import { RTCXDeviceGroupMgr, RTCXDeviceMgr, RTCXDeviceMgrTypes } from '@rtcx/websdk'

const submitHomeForm = async () => {
if (!homeForm.name) return ElMessage.warning('请输入家庭名称')
try {
const groupListArr = homeForm.groupList.length > 0 ? homeForm.groupList : undefined
await RTCXDeviceGroupMgr.homeManagerCreate(homeForm.name, groupListArr)
ElMessage.success('创建成功')
fetchHomeList()
} catch (e) {
ElMessage.error('操作失败')
}
}

删除家庭​

/**
* 删除家庭
*
* @param homeId - 家庭ID
* @public
*/
declare function homeManagerDelete(homeId: number): Promise<void>;

示例

import { RTCXDeviceGroupMgr, RTCXDeviceMgr, RTCXDeviceMgrTypes } from '@rtcx/websdk'
const handleDeleteHome = async (homeId: number) => {
try {
await ElMessageBox.confirm('确定要删除该家庭吗?', '提示', { type: 'warning' })
await RTCXDeviceGroupMgr.homeManagerDelete(homeId)
ElMessage.success('删除成功')
fetchHomeList()
} catch (e) {
// 用户取消
}
}

家庭列表​

/**
* 家庭列表
*
* @param pageNo - 页码
* @param pageSize - 每页数量
* @public
*/
declare function homeManagerList(pageNo: number, pageSize: number): Promise<HomeListRsp | undefined>;

示例

import { RTCXDeviceGroupMgr, RTCXDeviceMgr, RTCXDeviceMgrTypes } from '@rtcx/websdk'

const fetchHomeList = async () => {
homeLoading.value = true
try {
const res = (await RTCXDeviceGroupMgr.homeManagerList(
homePageNo.value,
homePageSize.value
)) as RTCXDeviceMgrTypes.HomeListRsp
homeListData.value = res?.items || []
homeTotal.value = res?.total || 0
} catch (e) {
console.error(e)
} finally {
homeLoading.value = false
}
}

更新家庭信息​

/**
* 更新家庭信息 (仅支持修改名称)
*
* @param homeId - 家庭ID
* @param name - 家庭名称
* @public
*/
declare function homeManagerUpdate(homeId: number, name: string): Promise<void>;

示例

import { RTCXDeviceGroupMgr, RTCXDeviceMgr, RTCXDeviceMgrTypes } from '@rtcx/websdk'

const submitHomeForm = async () => {
if (!homeForm.name) return ElMessage.warning('请输入家庭名称')
try {
if (!homeForm.homeId) return
await RTCXDeviceGroupMgr.homeManagerUpdate(homeForm.homeId, homeForm.name)
ElMessage.success('更新成功')
fetchHomeList()
} catch (e) {
ElMessage.error('操作失败')
}
}