群组控制

更新时间:2024-03-18 02:52:41下载pdf

组合群组控制

组合群组控制是指对该组合群组下的设备进行总控的一种功能。目前,支持的区域总控功能为 开关亮度模式色温 等,该部分功能必须在请求获取组合群组列表后执行该操作

获取区域群控管理类

接口说明

ILightingGroupPackDpsManager groupPackDpsManager = ThingCommercialLightingGroupPack.newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)

参数说明

参数 说明
projectId 项目 ID
groupPackBean 组合群组对象

示例代码

ILightingGroupPackDpsManager groupPackDpsManager = ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(projectId,groupPackBean)

获取该区域相关 DP 数据

接口说明

ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
        .getDps()

参数说明

参数 说明
projectId 项目 ID
groupPackBean 组合群组对象

示例代码

String groupDps = ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
        .getDps()

获取区域开关状态

接口说明

ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
        .getSwitchStatus()

参数说明

参数 说明
projectId 项目 ID
groupPackBean 组合群组对象

示例代码

boolean switchOn = ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
        .getSwitchStatus()

获取亮度百分比

接口说明

ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
        .getBrightPercent()

参数说明

参数 说明
projectId 项目 ID
groupPackBean 组合群组对象

示例代码

int brightnessPercent = ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
        .getBrightPercent()

获取色温百分比

接口说明

ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
        .getTemperaturePercent()

参数说明

参数 说明
projectId 项目 ID
groupPackBean 组合群组对象

示例代码

int temperaturePercent = ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
        .getTemperaturePercent()

获取彩光模式颜色值

接口说明

ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
        .getColorData();

参数说明

参数 说明
projectId 项目 ID
groupPackBean 组合群组对象

示例代码

String colorData = ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
        .getColorData();

获取场景模式

接口说明

ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
        .getSceneStatus();

参数说明

参数 说明
projectId 项目 ID
groupPackBean 组合群组对象

示例代码

LightDefaultSceneType sceneType = ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
        .getSceneStatus();

获取当前灯光模式

接口说明

ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
        .getCurrentMode();

参数说明

参数 说明
projectId 项目 ID
groupPackBean 组合群组对象

示例代码

AreaDpMode groupDpMode = ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(projectId,groupPackBean)
        .getCurrentMode();

切换开关状态

接口说明

ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
        .publishSwitchStatus(boolean status, final IResultCallback callback);

参数说明

参数 说明
status 开关状态
  • true:开启
  • false:关闭
callback 执行结果回调

示例代码

ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
        .publishSwitchStatus(true, new IResultCallback() {
            @Override
            public void onError(String errorCode, String errorMsg) {
                if (callback != null) {
                    callback.onError(errorCode, errorMsg);
                }
            }

            @Override
            public void onSuccess() {
                if (callback != null) {
                    callback.onSuccess();
                }
            }
        });

切换灯光模式

当前支持三种灯光模式,分别为白光模式、彩光模式和场景模式,分别对应 AreaDpMode 枚举中的MODE_WHITE_LIGHTMDOE_COLORFUL_LIGHTMODE_SCENE

接口说明

ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
        .publishWorkMode(AreaDpMode mode, IResultCallback callback);

参数说明

参数 说明
Mode 要切换的模式的枚举值
  • MODE_WHITE_LIGHT:白光模式
  • MDOE_COLORFUL_LIGHT:彩光模式
  • MODE_SCENE:场景模式
callback 执行结果回调

示例代码

ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(projectId,groupPackBean)
        .publishWorkMode(AreaDpMode.MODE_WHITE_LIGHT, new IResultCallback() {
            @Override
            public void onError(String errorCode, String errorMsg) {
                if (callback != null) {
                    callback.onError(errorCode, errorMsg);
                }
            }

            @Override
            public void onSuccess() {
                if (callback != null) {
                    callback.onSuccess();
                }
            }
        });

调整色温值

该操作仅支持在白光模式下进行。

接口说明

ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
        .publishTemperaturePercent(int value, IResultCallback callback);

参数说明

参数 说明
value 色温值,取值范围 0-1000
callback 执行结果回调

示例代码

ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(projectId,groupPackBean)
        .publishTemperaturePercent(int value, new IResultCallback() {
            @Override
            public void onError(String errorCode, String errorMsg) {
                if (callback != null) {
                    callback.onError(errorCode, errorMsg);
                }
            }

            @Override
            public void onSuccess() {
                if (callback != null) {
                    callback.onSuccess();
                }
            }
        });

设置场景

该操作仅支持在场景模式下进行。

接口说明

ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
        .publishSceneStatus(LightDefaultSceneType type, IResultCallback callback);

参数说明

参数 说明
type 场景类型
  • NONE:无模式
  • WORK:工作模式灯光
  • MEETING:会议模式灯光
  • SIESTA:午休模式灯光
  • OFF_DUTY:下班模式灯光
callback 执行结果回调

示例代码

ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(projectId,groupPackBean)
        .publishSceneStatus(LightDefaultSceneType.WORK, new IResultCallback() {
            @Override
            public void onError(String errorCode, String errorMsg) {
                if (callback != null) {
                    callback.onError(errorCode, errorMsg);
                }
            }

            @Override
            public void onSuccess() {
                if (callback != null) {
                    callback.onSuccess();
                }
            }
        });

设置彩光

该操作仅支持在彩光模式下进行。

通过 getColorData 获取彩光模式的数据,该数据为 12 位的组合数据,组合的规则为hhhhssssvvvv。其中:

  • hhhh 表示 16 进制后的色调值。
  • ssss 表示 16 进制后的饱和度值。
  • vvvv 表示 16 进制后的亮度值。

可使用 stringToHSV 方法将 colorData 转换成 HSV 的值,代码如下:

public static float[] stringToHSV(String hsv){
        int h = Integer.valueOf(hsv.substring(0,4),16);
        int s = Integer.valueOf(hsv.substring(4,8),16);
        int v = Integer.valueOf(hsv.substring(8,12),16);
        return new float[]{(float)h,(float)s,(float)v};
}

并可通过 hsvToString 将 HSV 的值转换成 colorData,代码如下:

public static String hsvToString(int[] hsv) {
        String h = numToHex4(hsv[0]);
        String s = numToHex4(hsv[1]);
        String v = numToHex4(hsv[2]);
        String hhhhssssvvvv = h + s + v;
        return  hhhhssssvvvv;
 }

 public static String numToHex4(int num) {
        return String.format("%04x", num);
 }

接口说明

ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
        .publishColors(String color, IResultCallback callback);

参数说明

参数 说明
color 颜色值,16 位字符串,格式为 hhhhssssvvvv
callback 执行结果回调

示例代码

ThingCommercialLightingGroupPack
        .newGroupPackDpsManager(projectId,groupPackBean)
        .publishColors("hhhhssssvvvv", new IResultCallback() {
            @Override
            public void onError(String errorCode, String errorMsg) {
                if (callback != null) {
                    callback.onError(errorCode, errorMsg);
                }
            }

            @Override
            public void onSuccess() {
                if (callback != null) {
                    callback.onSuccess();
                }
            }
        });