简体中文
简体中文
English
联系我们
注册
登录
layout空间导航

功能接口

更新时间:2022-02-21 05:59:49下载pdf

设备初始化

初始化时需要创建 ITuyaLightDevice 对象,该对象封装了灯的所有 DP,包括控制指令的下发和上报。灯具相关的方法均封装在此方法中。

接口说明

ITuyaLightDevice lightDevice = new TuyaLightDevice(String devId);

参数说明

参数 说明
devId 设备 ID

示例代码

// 创建 lightDevice
ITuyaLightDevice lightDevice = new TuyaLightDevice("vdevo159793004250542");

设备代理监听

接口说明

/**
 * 注册监听
 */
void registerLightListener(ILightListener listener);

ILightListener 回调

public interface ILightListener {
    /**
     * 监听照明设备 DP 变化
     *
     * @param dataPoint 该灯具所有 DP 的状态
     */
    void onDpUpdate(LightDataPoint dataPoint);

    /**
     * 设备移除
     */
    void onRemoved();

    /**
     * 设备上下线
     */
    void onStatusChanged(boolean online);

    /**
     * 网络状态
     */
    void onNetworkStatusChanged(boolean status);

    /**
     * 设备信息更新例如 name 之类的
     */
    void onDevInfoUpdate();
}

示例代码

// 创建 lightDevice
ITuyaLightDevice lightDevice = new TuyaLightDevice("vdevo159793004250542");

// 注册监听
lightDevice.registerLightListener(new ILightListener() {
    @Override
    public void onDpUpdate(LightDataPoint dataPoint) { // 返回 LightDataPoint,包含灯所有设备功能的值
        Log.i("test_light", "onDpUpdate:" + dataPoint);
    }

    @Override
    public void onRemoved() {
        Log.i("test_light", "onRemoved");
    }

    @Override
    public void onStatusChanged(boolean status) {
        Log.i("test_light", "onDpUpdate:" + status);
    }

    @Override
    public void onNetworkStatusChanged(boolean status) {
        Log.i("test_light", "onDpUpdate:" + status);
    }

    @Override
    public void onDevInfoUpdate() {
        Log.i("test_light", "onDevInfoUpdate:");
    }
});

TuyaSmartLightDataPointModel 数据模型

字段 类型 描述
powerSwitch Boolean 开关是否打开
  • YES:开
  • NO:关
workMode LightMode 工作模式
  • MODE_WHITE:白光模式
  • MODE_COLOUR:彩光模式
  • MODE_SCENE:情景模式
brightness Integer 亮度百分比,取值范围为 1-100
colorTemperature Integer 色温百分比,取值范围为 0-100
colourHSV LightColourData 颜色值,HSV 色彩空间
  • H:色调,取值范围为 0-360
  • S:饱和度,取值范围为 0-100
  • V:明度,取值范围为 1-100
scene LightScene 彩灯情景
  • SCENE_GOODNIGHT:晚安情景
  • SCENE_WORK:工作情景
  • SCENE_READ:阅读情景
  • SCENE_CASUAL:休闲情景

参数说明

LightDataPoint 对象封装了当前设备所有设备功能。当设备功能发生变化时,则触发回调,每次回调的都会是完整的对象。

LightDataPoint 对象说明

public class LightDataPoint {
    /**
     * 开关
     */
    public boolean powerSwitch;
    /**
     * 工作模式。
     * <p>
     * MODE_WHITE:白光模式
     * MODE_COLOUR:彩光模式
     * MODE_SCENE:情景模式
     */
    public LightMode workMode;

    /**
     * 亮度百分比,从 0 到 100
     */
    public int brightness;

    /**
     * 色温百分比,从 0 到 100
     */
    public int colorTemperature;

    /**
     * 颜色值,HSV 色彩空间.
     * <p>
     * 其中 H 为色调,取值范围 0-360
     * 其中 S 为饱和度,取值范围 0-100
     * 其中 V 为明度,取值范围 0-100
     */
    public LightColourData colorHSV;
    /**
     * 彩灯情景。
     *
     * SCENE_GOODNIGHT:晚安情景
     * SCENE_WORK:工作情景
     * SCENE_READ:阅读情景
     * SCENE_CASUAL:休闲情景
     */
    public LightScene scene;
}

示例代码

// 开灯
lightDevice.powerSwitch(true, new IResultCallback() {
    @Override
    public void onError(String code, String error) {
        Log.i("test_light", "powerSwitch onError:" + code + error);
    }

    @Override
    public void onSuccess() {
        Log.i("test_light", "powerSwitch onSuccess:");
    }
});
// 晚安场景
lightDevice.scene(LightScene.SCENE_GOODNIGHT, new IResultCallback() {
    @Override
    public void onError(String code, String error) {
        Log.i("test_light", "scene onError:" + code + error);
    }

    @Override
    public void onSuccess() {
        Log.i("test_light", "scene onSuccess:");
    }
});
// 设置颜色
lightDevice.colorHSV(100, 100, 100, new IResultCallback() {
    @Override
    public void onError(String code, String error) {
        Log.i("test_light", "colorHSV onError:" + code + error);
    }
    @Override
    public void onSuccess() {
        Log.i("test_light", "colorHSV onSuccess:");
    }
});

查询灯具类型

不同类型的灯具在功能定义上有所区别,在开发相应的 UI 和控制时有所区别。您可以提前查询灯具的类型。灯具共分为 5 种:

  • 一路灯:仅有白光功能
  • 二路灯:拥有白光、冷暖功能
  • 三路灯:仅有彩光模式功能
  • 四路灯:拥有白光、彩光功能
  • 五路灯:拥有白光、彩光、冷暖功能

接口说明

/**
 * 获取当前是几路灯
 *
 * @return {@link LightType}
 */
LightType lightType();

LightType 定义的类型

/**
 * 白光灯,dpCode:bright_value
 */
TYPE_C,
/**
 * 白光+冷暖,dpCode:bright_value + temp_value
 */
TYPE_CW,
/**
 * RGB,dpCode:colour_data
 */
TYPE_RGB,
/**
 * 白光+RGB,dpCode:bright_value + colour_data
 */
TYPE_RGBC,
/**
 * 白光+冷暖+RGB,dpCode:bright_value + temp_value + colour_data
 */
TYPE_RGBCW

获取灯具的设备功能

打开一个设备面板时,需要获取所有设备功能值来展示。可通过此接口获取上文提到的 LightDataPoint 对象。

接口说明

/**
 * 获取灯所有设备功能的值
 */
LightDataPoint getLightDataPoint();

开灯或关灯

接口说明

/**
 * 开灯或者关灯
 *
 * @param status         true or false
 * @param resultCallback callback
 */
void powerSwitch(boolean status, IResultCallback resultCallback);

参数说明

字段 含义
status true 表示开灯
resultCallback 仅表示此次发送指令成功或者失败,真正控制成功需要识别 ILightListener 中的 DP 变化

切换工作模式

接口说明

/**
 * 切换工作模式
 *
 * @param mode           工作模式
 * @param resultCallback callback
 */
void workMode(LightMode mode, IResultCallback resultCallback);

参数说明

字段 含义
mode 工作模式
  • MODE_WHITE:白光模式
  • MODE_COLOUR:彩光模式
  • MODE_SCENE:情景模式
resultCallback 仅表示此次发送指令成功或者失败,真正控制成功需要识别 ILightListener 中的 DP 变化

调用示例

如切换到彩光模式:

lightDevice.workMode(LightMode.MODE_COLOUR, new IResultCallback() {
    @Override
    public void onError(String code, String error) {
        Log.i("test_light", "workMode onError:" + code + error);
    }

    @Override
    public void onSuccess() {
        Log.i("test_light", "workMode onSuccess");
    }
});

部分灯具必须切换到对应的工作模式才可以控制。例如比如控制彩光,必须先切换到彩光模式,然后才可以设置灯光的颜色值。

控制灯光亮度

接口说明

/**
 * 亮度控制。
 *
 * @param status         亮度的百分比,取值范围 0-100
 * @param resultCallback callback
 */
void brightness(int status, IResultCallback resultCallback);

参数说明

字段 含义
status 亮度的百分比
resultCallback 仅表示此次发送指令成功或者失败,真正控制成功需要识别 ILightListener 中的 DP 变化

控制灯光冷暖色温

接口说明

/**
 * 色温控制
 *
 * @param status         色温的百分比,取值范围 0-100
 * @param resultCallback callback
 */
void colorTemperature(int status, IResultCallback resultCallback);

参数说明

字段 含义
status 色温的百分比
resultCallback 仅表示此次发送指令成功或者失败,真正控制成功需要识别 ILightListener 中的 DP 变化

设置彩光颜色

接口说明

/**
 * 设置彩灯的颜色
 *
 * @param hue            色调 (范围:0-360)
 * @param saturation     饱和度(范围:0-100)
 * @param value          明度(范围:0-100)
 * @param resultCallback callback
 */
void colorHSV(int hue, int saturation, int value, IResultCallback resultCallback);

切换场景模式

切换彩灯的情景模式,目前共有四种模式:

  • LightScene.SCENE_GOODNIGHT:晚安情景
  • LightScene.SCENE_WORK:工作情景
  • LightScene.SCENE_READ:阅读情景
  • LightScene.SCENE_CASUAL:休闲情景

接口说明

/**
 * @param lightScene     {@link LightScene}
 * @param resultCallback callback
 */
void scene(LightScene lightScene, IResultCallback resultCallback);