网关工具库

更新时间:2021-09-07 07:57:50下载pdf

类型声明

DeviceCapability

类型:枚举型

名称 能力位 描述
WIFI 0 Wi-Fi
CABLE 1 cable(以太网)
GPRS 2 gprs(2/3/4G)
NBIOT 3 NB-IOT
BLUETOOTH 10 蓝牙BLE
BLEMESH 11 涂鸦mesh
ZIGBEE 12 zigbee
INFRARED 13 infrared(红外)
SUBPIECES 14 subpieces(315,433等)
SIGMESH 15 Sigmesh
MCU 16 MCU
TYMESH 17 涂鸦 Sub-G Mesh
ZWAVE 18 Zwave
PLMESH 19 蓝牙mesh
CAT1 20 LTE Cat1
BEACON 21 蓝牙beacon

方法介绍

checkCapability

方法描述:检测是否拥有需要的能力并且没有不需要的能力

参数名 参数类型 是否可选 默认值 描述
capability number 需要校验的设备的能力值
requiredCapabilityList Array<DeviceCapability | number> [] 需要的能力位数组
unneededCapabilityList Array<DeviceCapability | number> [] 不需要的能力位数组

使用示例:

import { GatewayUtils, DeviceCapability } from '@tuya/tuya-panel-gateway-sdk';

const { checkCapability } = GatewayUtils;

checkCapability(1024, [DeviceCapability.BLUETOOTH], [DeviceCapability.WIFI]);
// 或
checkCapability(1024, [10], [1]);

getAllDevice

方法描述:获取当前家庭下所有设备

使用示例:

import { GatewayUtils } from '@tuya/tuya-panel-gateway-sdk';

const { getAllDevice } = GatewayUtils;

getAllDevice().then(res => {
  // 家庭下所有设备列表
  const deviceList = res;
});

getAllSubDevList

方法描述:获取网关下的所有子设备

参数名 参数类型 是否可选 默认值 描述
devId string TYSdk.devInfo.devId 网关的设备 id

使用示例:

import { GatewayUtils } from '@tuya/tuya-panel-gateway-sdk';
import { TYSdk } from 'tuya-panel-kit';

const { getAllSubDevList } = GatewayUtils;

getAllSubDevList(TYSdk.devInfo.devId).then(res => {
  // 子设备列表
  const deviceList = res;
});

getSpecificSubDevList

方法描述:获取指定规则下网关下的子设备列表

参数名 参数类型 是否可选 默认值 描述
rules function[] [] 规则函数数组,函数入参为设备能力值capability和设备信息devInfo,返回结果为bool,表示是否满足筛选条件
gatewayDevId string TYSdk.devInfo.devId 网关的设备 id

使用示例:

import { GatewayUtils, DeviceCapability } from '@tuya/tuya-panel-gateway-sdk';
import { TYSdk } from 'tuya-panel-kit';

const { checkCapability, getSpecificSubDevList } = GatewayUtils;
// 获取具有蓝牙能力的设备
const getBluetoothDev = (capability, devInfo) => {
  return checkCapability(capability, [DeviceCapability.BLUETOOTH]);
};

// 获取具有Zigbee能力的设备
const getZigbeeDev = (capability, devInfo) => {
  return checkCapability(capability, [DeviceCapability.ZIGBEE]);
};

getSpecificSubDevList([getBluetoothDev, getZigbeeDev], TYSdk.devInfo.devId).then(res => {
// bluetoothList:具有蓝牙能力的设备列表,zigbeeList:具有Zigbee能力的设备列表
  const [bluetoothList, zigbeeList] = res;
});

isBlueSub

方法描述:判断是否是蓝牙子设备

参数名 参数类型 是否可选 默认值 描述
capability number 需要校验的设备的能力值

使用示例:

import { GatewayUtils } from '@tuya/tuya-panel-gateway-sdk';

const { getAllSubDevList, isBlueSub } = GatewayUtils;
isBlueSub(1024); // 将会返回true
isBlueSub(1025); // 将会返回false
getAllSubDevList().then(res => {
  // 蓝牙子设备列表
  const deviceList = res.filter(({ capability }) => isBlueSub(capability));
});

isSigmeshSub

方法描述:判断是否是sigmesh子设备

参数名 参数类型 是否可选 默认值 描述
capability number 需要校验的设备的能力值

使用示例:

import { GatewayUtils } from '@tuya/tuya-panel-gateway-sdk';

const { getAllSubDevList, isSigmeshSub } = GatewayUtils;
isSigmeshSub(32768); // 将会返回true
isSigmeshSub(32769); // 将会返回false
getAllSubDevList().then(res => {
  // sigmesh子设备列表
  const deviceList = res.filter(({ capability }) => isSigmeshSub(capability));
});

isZigbeeSub

方法描述:判断是否是zigbee子设备

参数名 参数类型 是否可选 默认值 描述
capability number 需要校验的设备的能力值

使用示例:

import { GatewayUtils } from '@tuya/tuya-panel-gateway-sdk';

const { getAllSubDevList, isZigbeeSub } = GatewayUtils;
isZigbeeSub(4096); // 将会返回true
isZigbeeSub(4097); // 将会返回false
getAllSubDevList().then(res => {
  // zigbee子设备列表
  const deviceList = res.filter(({ capability }) => isZigbeeSub(capability));
});

isBeaconSub

方法描述:判断是否是beacon子设备

参数名 参数类型 是否可选 默认值 描述
capability number 需要校验的设备的能力值

使用示例:

import { GatewayUtils } from '@tuya/tuya-panel-gateway-sdk';

const { getAllSubDevList, isBeaconSub } = GatewayUtils;
isBeaconSub(2097152); // 将会返回true
isBeaconSub(2097153); // 将会返回false
getAllSubDevList().then(res => {
  // beacon子设备列表
  const deviceList = res.filter(({ capability }) => isBeaconSub(capability));
});

isAddableMesh

方法描述:根据子设备和网关的mesh关系,判断子设备是否是可添加到网关下

参数名 参数类型 是否可选 默认值 描述
subDevInfo object 子设备信息
gatewayDevInfo object TYSdk.devInfo 网关设备信息

使用示例:

import { GatewayUtils } from '@tuya/tuya-panel-gateway-sdk';

const { getAllDevice, isAddableMesh } = GatewayUtils;
getAllDevice().then(res => {
  // mesh关系可添加到网关下的设备列表
  const addableDeviceList = res.filter(device => isAddableMesh(device));
});

isAddableDevice

方法描述:判断设备是否是可添加到网关下

参数名 参数类型 是否可选 默认值 描述
devInfo object 设备信息
gatewayDevInfo object TYSdk.devInfo 网关设备信息
isMeshValid function isAddableMesh 根据设备和网关的mesh关系,判断设备能否添加到网关下
bluetoothPidBlackList []string [ ‘ahkliczu’, ‘h4wa9i2m’, ‘itbz5kp3’, ‘rpabxhth’, ‘uhuqwuib’, ‘uk21by86’, ‘wvgwdbag’, ‘wvicf3bs’, ‘bvo6il58’, ‘hdoz0dny’, ‘ul3jjbna’, ‘ya75xxhl’] 蓝牙设备的pid黑名单,如果蓝牙子设备的pid在此黑名单内,则不支持添加到网关下。
supportBeacon bool false 是否支持添加beacon设备

使用示例:

import { GatewayUtils } from '@tuya/tuya-panel-gateway-sdk';

const { getAllDevice, isAddableMesh, isAddableDevice } = GatewayUtils;
getAllDevice().then(res => {
  // 可添加到网关下的设备列表,包含beacon子设备
  const addableDeviceList = res.filter(device =>
    isAddableDevice({
      devInfo: device,
      gatewayDevInfo: TYSdk.devInfo,
      isMeshValid: isAddableMesh,
      bluetoothPidBlackList: [],
      supportBeacon: true,
    })
  );
});