OPWS Developers

디바이스 그룹 (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 · memberCount

oe.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). 권한·에러는 에러 문서 참조.