区域控制

更新时间:2024-03-15 03:29:02下载pdf

获取区域相关数据

获取区域群控管理类

接口说明

ILightingStandardAreaDpsManager areaDpsManager = ThingCommercialLightingArea
        .newAreaInstance(long projectId,long areaId)
        .getLightingStandardAreaDpsManagerInstance();

参数说明

参数 说明
projectId 项目 ID
areaId 区域 ID

示例代码

ILightingStandardAreaDpsManager areaDpsManager = ThingCommercialLightingArea
        .newAreaInstance(projectId,areaId)
        .getLightingStandardAreaDpsManagerInstance();

获取区域相关 DP 数据

接口说明

ThingCommercialLightingArea
        .newAreaInstance(long projectId,long areaId)
        .getLightingStandardAreaDpsManagerInstance()
        .getDps();

参数说明

参数 说明
projectId 项目 ID
areaId 区域 ID

示例代码

String areaDps = ThingCommercialLightingArea
        .newAreaInstance(projectId,areaId)
        .getLightingStandardAreaDpsManagerInstance()
        .getDps();

获取区域开关状态

接口说明

ThingCommercialLightingArea
        .newAreaInstance(long projectId,long areaId)
        .getLightingStandardAreaDpsManagerInstance()
        .getSwitchStatus()

参数说明

参数 说明
projectId 项目 ID
areaId 区域 ID

示例代码

boolean switchOn = ThingCommercialLightingArea
        .newAreaInstance(projectId,areaId)
        .getLightingStandardAreaDpsManagerInstance()
        .getSwitchStatus()

获取亮度百分比

接口说明

ThingCommercialLightingArea
        .newAreaInstance(long projectId,long areaId)
        .getLightingStandardAreaDpsManagerInstance()
        .getBrightPercent()

参数说明

参数 说明
projectId 项目 ID
areaId 区域 ID

示例代码

int brightnessPercent = ThingCommercialLightingArea
        .newAreaInstance(projectId,areaId)
        .getLightingStandardAreaDpsManagerInstance()
        .getBrightPercent()

获取色温百分比

接口说明

ThingCommercialLightingArea
        .newAreaInstance(long projectId,long areaId)
        .getLightingStandardAreaDpsManagerInstance()
        .getTemperaturePercent()

参数说明

参数 说明
projectId 项目 ID
areaId 区域 ID

示例代码

int temperaturePercent = ThingCommercialLightingArea
        .newAreaInstance(projectId,areaId)
        .getLightingStandardAreaDpsManagerInstance()
        .getTemperaturePercent();

获取彩光模式颜色值

接口说明

ThingCommercialLightingArea
        .newAreaInstance(long projectId,long areaId)
        .getLightingStandardAreaDpsManagerInstance()
        .getColorData();

参数说明

参数 说明
projectId 项目 ID
areaId 区域 ID

示例代码

String colorData = ThingCommercialLightingArea
        .newAreaInstance(projectId,areaId)
        .getLightingStandardAreaDpsManagerInstance()
        .getColorData();

获取场景模式

接口说明

ThingCommercialLightingArea
        .newAreaInstance(long projectId,long areaId)
        .getLightingStandardAreaDpsManagerInstance()
        .getSceneStatus();

参数说明

参数 说明
projectId 项目 ID
areaId 区域 ID

示例代码

LightDefaultSceneType sceneType = ThingCommercialLightingArea
        .newAreaInstance(projectId,areaId)
        .getLightingStandardAreaDpsManagerInstance()
        .getSceneStatus();

获取当前灯光模式

接口说明

ThingCommercialLightingArea
        .newAreaInstance(long projectId,long areaId)
        .getLightingStandardAreaDpsManagerInstance()
        .getCurrentMode();

参数说明

参数 说明
projectId 项目 ID
areaId 区域 ID

示例代码

AreaDpMode areaDpMode = ThingCommercialLightingArea
        .newAreaInstance(projectId,areaId)
        .getLightingStandardAreaDpsManagerInstance()
        .getCurrentMode();

区域群控

区域群控是指对该区域下的设备进行总控的一种功能,目前支持的区域总控功能为 开关亮度模式色温 等,该部分功能必须在 ThingCommercialLightingArea#newAreaInstance#getSubAreaList 接口调用后获取当前区域的 AreaBean 信息后再进行。

切换开关状态

接口说明

ThingCommercialLightingArea
        .newAreaInstance(long projectId,long areaId)
        .getLightingStandardAreaDpsManagerInstance()
        .publishSwitchStatus(boolean status, final IResultCallback callback);

参数说明

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

示例代码

ThingCommercialLightingArea
        .newAreaInstance(projectId,areaId)
        .getLightingStandardAreaDpsManagerInstance()
        .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

接口说明

ThingCommercialLightingArea
        .newAreaInstance(long projectId,long areaId)
        .getLightingStandardAreaDpsManagerInstance()
        .publishWorkMode(AreaDpMode mode, IResultCallback callback);

参数说明

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

示例代码

ThingCommercialLightingArea
        .newAreaInstance(projectId,areaId)
        .getLightingStandardAreaDpsManagerInstance()
        .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();
                }
            }
        });

调整色温值

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

接口说明

ThingCommercialLightingArea
        .newAreaInstance(long projectId,long areaId)
        .getLightingStandardAreaDpsManagerInstance()
        .publishTemperaturePercent(int value, IResultCallback callback);

参数说明

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

示例代码

ThingCommercialLightingArea
        .newAreaInstance(projectId,areaId)
        .getLightingStandardAreaDpsManagerInstance()
        .publishTemperaturePercent(50, 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();
                }
            }
        });

设置场景

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

接口说明

ThingCommercialLightingArea
        .newAreaInstance(long projectId,long areaId)
        .getLightingStandardAreaDpsManagerInstance()
        .publishSceneStatus(LightDefaultSceneType type, IResultCallback callback);

参数说明

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

示例代码

ThingCommercialLightingArea
        .newAreaInstance(projectId,areaId)
        .getLightingStandardAreaDpsManagerInstance()
        .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);
 }

接口说明

ThingCommercialLightingArea
        .newAreaInstance(long projectId,long areaId)
        .getLightingStandardAreaDpsManagerInstance()
        .publishColors(String color, IResultCallback callback);

参数说明

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

示例代码

ThingCommercialLightingArea
        .newAreaInstance(projectId,areaId)
        .getLightingStandardAreaDpsManagerInstance()
        .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();
                }
            }
        });