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

照明功能

更新时间:2022-02-08 06:32:38下载pdf

设备初始化

接口说明

根据设备 ID 初始化设备控制类。

/**
 *  Get TuyaSmartLightDevice instance. If current user don't have this device, a nil will be return.
 *  获取设备实例。如果当前用户没有该设备,将会返回nil。
 *
 *  @param devId Device ID
 *  @return instance
 */
+ (nullable instancetype)deviceWithDeviceId:(NSString *)devId;

参数说明

参数 说明
devId 设备 ID

示例代码

TuyaSmartLightDevice *device = [TuyaSmartLightDevice deviceWithDeviceId:devId];
device.delegate = self;

判断设备是否支持标准指令

使用标准指令之前,您需要判断当前设备是否支持标准指令控制。

  • 如果设备不支持,则无法使用本文中提到的接口,您需要使用之前的接口控制。
  • 如果设备不支持,而又必须使用标准控制,请 提交工单 联系涂鸦。

示例代码

TuyaSmartLightDevice *device = [TuyaSmartLightDevice deviceWithDeviceId:devId];
BOOL isStandard = device.isStandard;

查询设备的品类编号

涂鸦 IoT 平台上有很多品类的 IoT 设备,不同的品类在涂鸦平台上都有固定的品类编号(category)。例如灯具设备的品类编号则为 dj(参考 光源(dj) 标准指令集),即 dj 就是灯具的 category 值。您可使用 category 字段判断当前设备是什么产品,来展示不同的面板。

示例代码

TuyaSmartLightDevice *device = [TuyaSmartLightDevice deviceWithDeviceId:devId];
NSString *category = device.deviceModel.category;

设备代理监听

实现 TuyaSmartLightDeviceDelegate 代理协议后,您可以在设备状态更变的回调中进行处理,刷新 App 设备控制面板的 UI。TuyaSmartLightDeviceDelegate 继承自TuyaSmartDeviceDelegateTuyaSmartDeviceDelegate 的回调,请参考 设备管理

示例代码

Objective-C:

- (void)initDevice {
    self.device = [TuyaSmartLightDevice deviceWithDeviceId:@"your_device_id"];
    self.device.delegate = self;
}

#pragma mark - TuyaSmartLightDeviceDelegate

- (void)lightDevice:(TuyaSmartLightDevice*)device dpUpdate:(TuyaSmartLightDataPointModel*)lightDp {
    // 设备的 DP 状态发生变化,刷新界面 UI
}

Swift:

func initDevice() {
    device = TuyaSmartLightDevice(deviceId: "your_device_id")
    device?.delegate = self
}

// MARK: - TuyaSmartLightDeviceDelegate

func device(_ device: TuyaSmartLightDevice?, dpsUpdate lightDp: TuyaSmartLightDataPointModel?) {
    // 设备的 DP 状态发生变化,刷新界面 UI
}

TuyaSmartLightDataPointModel 数据模型

字段 类型 描述
powerSwitch BOOL 开关
  • YES:开
  • NO:关
workMode TuyaSmartLightMode 工作模式
  • TuyaSmartLightModeWhite:白光模式
  • TuyaSmartLightModeColour:彩光模式
  • TuyaSmartLightModeScene:情景模式
brightness NSUInteger 亮度百分比,取值范围为 1-100
colorTemperature NSUInteger 色温百分比,取值范围为 0-100
colourHSV TuyaSmartLightColourData 颜色值,使用 HSV 色彩空间表示
  • H:为色调,取值范围为 0-360
  • S:为饱和度,取值范围为 0-100
  • V:为明度,取值范围为 1-100
scene TuyaSmartLightScene 彩灯情景
  • TuyaSmartLightSceneGoodnight:晚安情景
  • TuyaSmartLightSceneWork:工作情景
  • TuyaSmartLightSceneRead:阅读情景
  • TuyaSmartLightSceneCasual:休闲情景

    查询灯具类型

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

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

    接口说明

    /// Get light type
    /// 获取当前是几路灯
    - (TuyaSmartLightType)getLightType;
    typedef enum : NSUInteger {
        TuyaSmartLightTypeC=1,//白光灯 bright light,dpCode:bright_value
        TuyaSmartLightTypeCW,//白光+冷暖 bright + temperature,dpCode:bright_value + temp_value
        TuyaSmartLightTypeRGB,//RGB,dpCode:colour_data
        TuyaSmartLightTypeRGBC,//bright+RGB,dpCode:bright_value + colour_data
        TuyaSmartLightTypeRGBCW,//bright+temperature+RGB,dpCode:bright_value + temp_value + colour_data
    } TuyaSmartLightType;
    

    获取灯具的设备功能

    接口说明

    /// Get light data point
    /// 获取灯所有功能点的值
    - (TuyaSmartLightDataPointModel *)getLightDataPoint;
    

    开灯或关灯

    接口说明

    /// turn the light on or off
    /// 开灯或关灯
    /// @param isOn YES or NO
    /// @param success success block
    /// @param failure failure block
    - (void)turnLightOn:(BOOL)isOn
                success:(nullable TYSuccessHandler)success
                failure:(nullable TYFailureError)failure;
    

    切换工作模式

    接口说明

    /// switch the work mode
    /// 切换工作模式
    /// @param mode work mode
    /// @param success success block
    /// @param failure failure block
    - (void)switchWorkMode:(TuyaSmartLightMode)mode
                   success:(nullable TYSuccessHandler)success
                   failure:(nullable TYFailureError)failure;
    

    设置照明亮度

    接口说明

    /// change the brightness
    /// 控制灯的亮度
    /// @param value brightness percent value range 1-100  亮度的百分比,取值范围为1-100
    /// @param success success block
    /// @param failure failure block
    - (void)changeBrightness:(NSUInteger)value
                     success:(nullable TYSuccessHandler)success
                     failure:(nullable TYFailureError)failure;
    

    设置照明色温

    接口说明

    /// change the color temperature
    /// 控制灯的色温
    /// @param value color temperature percent value range 0-100 色温的百分比,取值范围为0-100
    /// @param success success block
    /// @param failure failure block
    - (void)changeColorTemperature:(NSUInteger)value
                           success:(nullable TYSuccessHandler)success
                           failure:(nullable TYFailureError)failure;
    

    切换场景模式

    接口说明

    /// switch the scene mode
    /// 切换场景模式
    /// @param mode scene mode
    /// @param success success block
    /// @param failure failure block
    - (void)switchSceneMode:(TuyaSmartLightScene)mode
                    success:(nullable TYSuccessHandler)success
                    failure:(nullable TYFailureError)failure;
    

    设置灯光颜色

    接口说明

    /// change the light color HSV
    /// 设置彩灯的颜色
    /// @param hue hue range 0-360 色调 范围0-360
    /// @param saturation saturation range 0-100 饱和度 范围0-100
    /// @param value lightness range 1-100 明度 范围1-100
    /// @param success success block
    /// @param failure failure block
    - (void)changeColorHSVWithHue:(NSUInteger)hue
                       saturation:(NSUInteger)saturation
                            value:(NSUInteger)value
                          success:(nullable TYSuccessHandler)success
                          failure:(nullable TYFailureError)failure;
    

    发送标准控制指令

    如果您需要调用照明 SDK 中没有封装的方法,可以通过 TuyaSmartLightDevice 父类中下发标准控制指令的接口来实现。

    接口说明

    /// Dp command publish.
    /// @param commands DpCode - value dictionary.
    /// @param success Called when the task finishes successfully.
    /// @param failure Called when the task is interrupted by an error.
    - (void)publishDpWithCommands:(NSDictionary *)commands
                          success:(nullable TYSuccessHandler)success
                          failure:(nullable TYFailureError)failure;