家庭管理

更新时间:2024-08-30 02:54:25下载pdf

API 列表

分类API说明
家庭管理getFamilies获取家庭列表
addFamily 添加家庭
getFamily获取家庭信息
updateFamily 更新家庭
deleteFamily 删除家庭
家庭成员管理 getMemberList 获取家庭成员
deleteMember删除家庭成员
家庭房间管理 addRoom 添加房间
editRoom 编辑房间
deleteRoom删除房间
getRoomList获取家庭的房间列表
家庭设备管理 getAllRoomDeviceList获取所有房间下的设备
addRoomDevices 添加设备到房间
editRoomDevices编辑房间里的设备
deleteRoomDevices 删除房间里的设备
getRoomDevices 获取房间里的设备
家庭切换 changeFamily 切换家庭
getCurrentFamily 获取当前家庭
家庭分享 fetchHomeShareTicket 获取家庭分享票据
checkHomeShareTicket 校验票据有效性
joinHome 加入家庭
cancelHomeShare取消家庭分享

家庭管理

获取家庭列表

getFamilies

获取当前登录用户的所有家庭。

入参

返回数据

返回一个 Promise 对象,其值为一个 FamilyItem 数据。

FamilyItem 数据结构

属性 类型 说明
geoName String 家庭地址
homeId Number 家庭 ID
name String 家庭名称
role String 值可为 OWNERMEMBERADMIN

示例

import { getFamilies } from '@ray-js/wechat';

Page({
    async onLoad(){
        const homes = await getFamilies();
        this.setData({ homes });
    }
});

添加家庭

addFamily

添加一个家庭。

入参

传入一个对象,对象数据结构为:

名称 类型 必填 说明
name String 家庭名称
geoName String 家庭地址
lon number 家庭地址经度
lat number 家庭地址纬度

返回数据

返回一个 Promise 对象。

示例

import { addFamily } from '@ray-js/wechat';

Page({
    async addHome(){
        try {
            await addFamily({name: '我的家'});
            console.log('添加成功');
        } catch (e) {
            console.log('添加失败');
        }
    }
});

获取家庭信息

getFamily

根据家庭 ID,返回指定家庭的信息。

入参

传入家庭 ID。

名称 类型 必填 说明
homeId Number 家庭 ID

返回数据

返回一个 Promise 对象,值的数据结构为:

名称 类型 说明
geo_name String 家庭地址
home_id Number 家庭 ID
lon Number 家庭地址经度
lat Number 家庭地址纬度

示例

import { getFamily } from '@ray-js/wechat';

Page({
    async onLoad(){
        try {
          const homeInfo = await getFamily(123456);
            console.log('获取成功');
        } catch (e) {
            console.log('获取失败');
        }
    }
});

更新家庭

updateFamily

更新家庭名称和地址信息。

入参

传入一个对象。

名称 类型 必填 说明
id Number 家庭 ID
name String 家庭名称
geoName String 家庭地址
lon number 家庭地址经度
lat number 家庭地址纬度

返回数据

返回一个 Promise 对象。

示例

import { updateFamily } from '@ray-js/wechat';

Page({
    async updateHome(){
        try {
            await updateFamily({
                id: 123456,
                name: '我的家'
            });
            console.log('更新成功');
        } catch (e) {
            console.log('更新失败');
        }
    }
});

删除家庭

deleteFamily

根据家庭 ID,删除指定的家庭。

入参

传入家庭 ID。

名称 类型 必填 说明
homeId Number 家庭 ID

返回数据

返回一个 Promise 对象。

示例

import { deleteFamily } from '@ray-js/wechat';

Page({
    async onLoad(){
        try {
            await deleteFamily(123456);
            console.log('删除成功');
        } catch (e) {
            console.log('删除失败');
        }
    }
});

家庭成员管理

获取家庭成员

getMemberList

根据家庭 ID,返回指定家庭下的所有成员。

入参

传入家庭 ID。

名称 类型 必填 说明
homeId Number 家庭 ID

返回数据

返回一个 Promise<MemberData[]> 对象,值为 MemberData 对象列表。

MemberData 说明

属性 类型 说明
uid String 涂鸦的用户 ID
admin Boolean ⽤户是否为家庭管理员
name String 家庭成员的用户名
menber_account String 家庭成员的账号,账号脱敏处理

示例

import { getMemberList } from '@ray-js/wechat';

Page({
    async onLoad(){
        try {
           const members = await getMemberList(123456);
            this.setData({ members });
        } catch (e) {
            console.log('获取失败');
        }
    }
});

删除家庭成员

deleteMember

支持删除家庭成员,成员主动离开家庭。

入参

传入家庭 ID。

名称 类型 必填 说明
homeId Number 家庭 ID
uid Number 用户 ID(UID)

返回数据

返回一个 Promise 对象。

示例

import { getMemberList } from '@ray-js/wechat';

Page({
    async handleDeleteMember(){
        try {
            await deleteMember(123456, 'ty123456');
            console.log('删除成功');
        } catch (e) {
            console.log('删除失败');
        }
    }
});

家庭房间管理

添加房间

addRoom

根据家庭 ID,向指定的家庭添加一个房间。

入参

params Object 类型

名称 类型 必填 说明
homeId Number 家庭 ID
name String 房间名称

返回数据

返回一个 Promise 对象。

示例

import { addRoom } from '@ray-js/wechat';

Page({
    async handleAddRoom(){
        try {
            await addRoom({
                homeId: 123456,
                name: '客厅',
            });
            console.log('添加成功');
        } catch (e) {
            console.log('添加失败');
        }
    }
});

编辑房间名称

editRoom

根据家庭 ID 和房间 ID,编辑一个指定房间的名称。

入参

params Object 类型

名称 类型 必填 说明
homeId Number 家庭 ID
name String 房间名称
roomId Number 房间 ID

返回数据

返回一个 Promise 对象。

示例

import { editRoom } from '@ray-js/wechat';

Page({
    async handleEditRoom(){
        try {
            await editRoom({
                homeId: 123456,
                name: '客厅',
                roomId: 6543,
            });
            console.log('编辑成功');
        } catch (e) {
            console.log('编辑失败');
        }
    }
});

删除房间

deleteRoom

根据家庭 ID 和房间 ID,删除指定家庭下的某个房间。

入参

名称 类型 必填 说明
homeId Number 家庭 ID
roomId Number 房间 ID

返回数据

返回一个 Promise 对象。

示例

import { deleteRoom } from '@ray-js/wechat';

Page({
    async handleDeleteRoom(){
        try {
            await deleteRoom(123456, 123456);
            console.log('删除成功');
        } catch (e) {
            console.log('删除失败');
        }
    }
});

获取家庭的房间列表

getRoomList

根据家庭 ID,获取指定家庭下的所有房间。

入参

名称 类型 必填 说明
homeId Number 家庭 ID

返回数据

返回一个 Promise<RoomInfos> 对象。

RoomInfos 说明

名称 类型 说明
home_id Number 家庭 ID
name String 家庭名称
geo_name String 家庭地址
lat Number 家庭地址纬度
lon Number 家庭地址经度
rooms RoomInfo[] 房间列表

RoomInfo 说明

名称 类型 说明
room_id Number 房间 ID
name Number 房间名称

示例

import { getRoomList } from '@ray-js/wechat';

Page({
    async onLoad(){
        try {
           const info = await getRoomList(123456, 123456);
           this.setData({ rooms: info.rooms });
        } catch (e) {
            console.log('获取房间列表失败');
        }
    }
});

家庭设备管理

获取所有房间下的设备

getAllRoomDeviceList

根据家庭 ID,返回房间列表,同时返回房间下的设备列表。

入参

名称 类型 必填 说明
homeId Number 家庭 ID

返回数据

返回一个 Promise<RoomDevice[]> 对象。

RoomDevice 说明

名称 类型 说明
roomId Number 房间 ID
roomName String 房间名称
devices DeviceListItem[] 房间设备列表

DeviceListItem 说明

名称 类型 说明
id String 设备 ID
lat String 设备所在地纬度
lon String 设备所在地经度
icon String 设备 Icon
localKey String localKey
name String 设备名称
online Boolean 设备是否云端在线
ownerId String 所属家庭
productId String 产品 ID(PID)
isSub Boolean 是否是子设备
timeZone String 所在时区
updateTime Number 设备信息更新时间
createTime Number 设备信息创建时间
activeTime Number 激活时间
uuid String 设备 UUID
category String 所属三级品类
capability Number 能力值
status { code: String; value: any }[] 数据点(DP)状态

示例

import { getAllRoomDeviceList } from '@ray-js/wechat';

Page({
    async onLoad(){
        try {
           const infos = await getAllRoomDeviceList(123456);
           this.setData({ rooms: infos });
        } catch (e) {
            console.log('获取房间设备列表失败');
        }
    }
});

添加设备到房间

addRoomDevices

根据家庭 ID、房间 ID 和设备 ID 列表,可将多个设备绑定到指定家庭的某个房间下。

入参

params Object 类型

名称 类型 必填 说明
homeId Number 家庭 ID
roomId Number 房间 ID
deviceIds String[] 待添加的设备 ID 列表

返回数据

res Promise

示例

import { addRoomDevices } from '@ray-js/wechat';

Page({
    async addDevices(){
        try {
            await addRoomDevices({
                homeId: 123455,
                roomId: 123,
                deviceIds: ['device1', 'device2' ]
            });
            console.log('添加设备成功');
        } catch (e) {
            console.log('添加设备失败');
        }
    }
});

编辑房间里的设备

editRoomDevices

根据家庭 ID、房间 ID 和设备 ID 列表,可编辑指定家庭某个房间下的多个设备。

入参

params Object 类型

名称 类型 必填 说明
homeId Number 家庭 ID
roomId Number 房间 ID
deviceIds String[] 待编辑的设备 ID 列表

返回数据

res Promise

示例

import { editRoomDevices } from '@ray-js/wechat';

Page({
    async editDevices(){
        try {
            await editRoomDevices({
                homeId: 123455,
                roomId: 123,
                deviceIds: ['device1', 'device2' ]
            });
            console.log('编辑设备列表成功');
        } catch (e) {
            console.log('编辑设备列表失败');
        }
    }
});

删除房间里的设备

deleteRoomDevices

根据家庭 ID、房间 ID 和设备 ID 列表,删除指定家庭某个房间下的多个设备。此 API 不会移除设备,仅为解除设备与房间的绑定关系。

入参

params Object 类型

名称 类型 必填 说明
homeId Number 家庭 ID
roomId Number 房间 ID
deviceIds String[] 待删除的设备 ID 列表

返回数据

res Promise

示例

import { deleteRoomDevices } from '@ray-js/wechat';

Page({
    async deleteDevices(){
        try {
            await deleteRoomDevices({
                homeId: 123455,
                roomId: 123,
                deviceIds: ['device1', 'device2' ]
            });
            console.log('删除设备成功');
        } catch (e) {
            console.log('删除设备失败');
        }
    }
});

获取房间里的设备

getRoomDevices

根据家庭 ID 和房间 ID,获取某个房间下的所有已绑定的设备。

入参

名称 类型 必填 说明
homeId Number 家庭 ID
roomId Number 房间 ID

返回数据

res Promise

示例

import { getRoomDevices } from '@ray-js/wechat';

Page({
    async fetchDevices(){
        try {
           const res = await getRoomDevices({
                homeId: 123455,
                roomId: 123,
                deviceIds: ['device1', 'device2' ]
            });
        } catch (e) {
            // 获取失败
        }
    }
});

家庭切换

切换家庭

changeFamily

切换家庭,用于切换当前需要展示的家庭。此 API 调用会进行 MQTT 的连接。

入参

family FamilyItem,即为获取的家庭列表的家庭数据。

FamilyItem 数据结构

属性 类型 说明
geoName String 家庭地址
homeId Number 家庭 ID
name String 家庭名称
role String 值可为 OWNERMEMBERADMIN

返回数据

promise Promise<DeviceListItem[]>

返回家庭下的所有设备列表。

DeviceListItem 说明

名称 类型 说明
id String 设备 ID
lat String 设备所在地纬度
lon String 设备所在地经度
icon String 设备 Icon
localKey String localKey
name String 设备名称
online Boolean 设备是否云端在线
ownerId String 所属家庭
productId String 产品 ID(PID)
isSub Boolean 是否是子设备
timeZone String 所在时区
updateTime Number 设备信息更新时间
createTime Number 设备信息创建时间
activeTime Number 激活时间
uuid String 设备 UUID
category String 所属三级品类
capability Number 能力值
status { code: String; value: any }[] DP 状态

示例

import { changeFamily } from '@ray-js/wechat';

Page({
    async changeHome(home){
        try {
          const devices =   await changeFamily(home);
            this.setData({ devices });
        } catch (e) {
            console.log('删除设备失败');
        }
    }
});

获取当前正在展示的家庭

getCurrentFamily

获取使用 changeFamily API 切换的家庭信息。

入参

返回数据

family FamilyItem,无数据时会返回 null

属性 类型 说明
geoName String 家庭地址
homeId Number 家庭 ID
name String 家庭名称
role String 值可为 OWNERMEMBERADMIN

家庭分享

获取家庭分享票据

fetchHomeShareTicket

获取家庭分享票据。获取分享票据后,可向用户发送微信消息,引导客户加入家庭。

入参

params Object 类型

名称 类型 必填 说明
homeId Number 家庭 ID
receiver String 邀请的用户 openid

返回数据

res Object 类型

名称 类型 说明
shareId Number 分享 ID
shareTicket String 分享票据

示例

import { fetchHomeShareTicket } from '@ray-js/wechat';

Page({
    async handleShare(homeId){
        try {
          const res =   await fetchHomeShareTicket({homeId});
            this.setData({ shareInfo:  res});
        } catch (e) {
            console.log('获取分享票据失败');
        }
    }
});

校验票据有效性

checkHomeShareTicket

在邀请页面,可检查票据有效性,以便进行相关的提示信息。

入参

params Object 类型

名称 类型 必填 说明
ticket String 分享票据

返回数据

promise

示例

import { checkHomeShareTicket } from '@ray-js/wechat';

Page({
    async onLoad(query){
        try {
          const res =   await fetchHomeShareTicket({query.ticket});
          if (res) {
                console.log('票据有效')
           } else {
                 console.log('票据无效')
            }
        } catch (e) {
            console.log('验证有效性失败');
        }
    }
});

加入家庭

joinHome

确认家庭邀请,加入家庭。

入参

params Object 类型

名称 类型 必填 说明
shareId Number 分享 ID
shareTicket String 分享票据

返回数据

promise

示例

import { joinHome } from '@ray-js/wechat';

Page({
    async handleJoin(){
        try {
          await joinHome({
                shareId: '11111',
                shareTicket: 'xxxxxx',
           });
          console.log('加入家庭成功')
        } catch (e) {
            console.log('加入家庭失败');
        }
    }
});

取消家庭分享

cancelHomeShare

根据分享 ID,取消某一次的家庭邀请。

入参

params Object 类型

名称 类型 必填 说明
shareId Number 分享 ID

返回数据

promise

示例

import { cancelHomeShare } from '@ray-js/wechat';

Page({
    async handleCancel(){
        try {
          await cancelHomeShare({
                shareId: '11111',
           });
          console.log('取消成功')
        } catch (e) {
            console.log('取消失败');
        }
    }
});