디바이스 그룹 (Groups)
oe.groups.*는 디바이스 그룹의 생성·멤버 편집·삭제를 제공합니다.
SDK 비대칭 — update 없음
oe.groups에는 update가 없습니다. 그룹명 변경은 지원하지 않습니다. 이름을 바꾸려면 삭제 후 재생성하고 멤버를 다시 추가합니다. 내용 수정은 멤버십 편집(addMembers/removeMembers)으로만 가능합니다.
oe.groups.create()
ts
create(req: { name: string }): Promise<GroupView>ts
const group = await oe.groups.create({ name: "1층 스피커" });
// GroupView: handle · label · memberCountoe.groups.list()
ts
list(): Promise<GroupView[]>ts
const groups = await oe.groups.list();oe.groups.get()
ts
get(handle: string): Promise<GroupView>ts
const group = await oe.groups.get("grp_1f");oe.groups.addMembers()
디바이스 handle 배열을 그룹에 추가합니다.
ts
addMembers(handle: string, deviceHandles: string[]): Promise<GroupView>ts
await oe.groups.addMembers("grp_1f", ["dev_a", "dev_b"]);oe.groups.removeMembers()
ts
removeMembers(handle: string, deviceHandles: string[]): Promise<GroupView>ts
await oe.groups.removeMembers("grp_1f", ["dev_c"]);oe.groups.members()
그룹의 현재 멤버 디바이스를 반환합니다. targets.list()와 함께 조회해 Transfer UI(가용/멤버)를 구성합니다.
ts
members(handle: string): Promise<DeviceView[]>ts
const [targets, members] = await Promise.all([
oe.targets.list(),
oe.groups.members("grp_1f"),
]);
const memberHandles = new Set(members.map((m) => m.handle));
const available = targets.filter((d) => !memberHandles.has(d.handle));oe.groups.delete()
ts
delete(handle: string): Promise<void>ts
await oe.groups.delete("grp_1f");모든 groups 호출은 DEVICE_GROUP MANAGE capability가 필요합니다(없으면 CapabilityDenied). 권한·에러는 에러 문서 참조.

