wjc
2026-03-20 0efa4dfdfad5647abb73d38deb3e8ab5f444e5cb
app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
@@ -641,6 +641,43 @@
        });
    }
    /**
     * 获取云端BMS设备列表
     *
     * @param homeId        住宅id
     * @param cloudCallBeak 回调
     */
    public void getCloudBmsDeviceList(String homeId, CloudCallBeak<List<CloudInverterDeviceBean>> cloudCallBeak) {
        String requestUrl = HttpApi.POST_Device_bmsDevices;
        JsonObject json = new JsonObject();
        json.addProperty("homeId", homeId);
        // json.addProperty("zoneType", "password");//区域
        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
            @Override
            public void onSuccess(String jsonStr) {
                if (TextUtils.isEmpty(jsonStr)) {
                    if (cloudCallBeak != null) {
                        cloudCallBeak.onSuccess(null);
                    }
                }
                Type type = new TypeToken<List<CloudInverterDeviceBean>>() {
                }.getType();
                List<CloudInverterDeviceBean> list = new Gson().fromJson(jsonStr, type);
                if (cloudCallBeak != null) {
                    cloudCallBeak.onSuccess(list);
                }
            }
            @Override
            public void onFailure(HDLException e) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onFailure(e);
                }
            }
        });
    }
    /**
     * 删除云端上逆变器
@@ -1189,6 +1226,32 @@
    }
    /**
     * 设备清空运行数据
     *
     * @param mac          网关mac
     * @param linkCallBack 回调
     */
    public void DeviceClearData(String mac, LinkCallBack<Boolean> linkCallBack) {
        String requestUrl = TopicApi.DEVICE_RUN_DATA_CLEAR;
        TcpClient.getInstance().sendDataToLinkGateway(mac, requestUrl, null, "", new HDLLinkCallBack() {
            @Override
            public void onSuccess(String json) {
                if (linkCallBack != null) {
                    linkCallBack.onSuccess(true);
                }
            }
            @Override
            public void onError(HDLLinkException e) {
                if (linkCallBack != null) {
                    linkCallBack.onError(e);
                }
            }
        });
    }
    /**
     * 获取逆变器列表,整合云端逆变器列表和本地逆变器列表(设备类型有:并网逆变器,离线逆变器,负载中心设备);
     * 注意:有外网,以云端设备列表为准;云端没有,本地存在,则删除本地;否则,没有外网只有局域网,以本地为主,搜索多少个设备就显示多少个
     *
@@ -1196,7 +1259,7 @@
     * @param cloudCallBeak 返回逆变器列表
     */
    public void getCurrentHomeLocalAndCloudGatewayList(String homeId, CloudCallBeak<List<GatewayBean>> cloudCallBeak) {
        HDLLinkLocalGateway.getInstance().getGatewayList().clear();//先清空之前逆变器列表
//        HDLLinkLocalGateway.getInstance().getGatewayList().clear();//先清空之前逆变器列表
        searchCurrentHomeGateway(homeId, new GatewayCallBack() {
            @Override
            public void onSuccess(List<GatewayBean> gatewayBeanList) {
@@ -1848,7 +1911,7 @@
        gatewayBean.setOutputActivePower(cloudInverterDeviceBean.getOutputActivePower());//逆变器输出有功功率
        gatewayBean.setTotalElectricityPvToday(cloudInverterDeviceBean.getTotalElectricityPvToday());//今日发电量
        if (!TextUtils.isEmpty(cloudInverterDeviceBean.getOmodel())) {
            //可能设备没有上报给云端,建议绑定逆变器时候追加一个参数;
            //可能设备没有上报给云端,建议绑定逆变器时候追加一个参数;//todo 添加设备型号BMS获取类型值不一样
            gatewayBean.setDevice_model(cloudInverterDeviceBean.getOmodel());//设备型号
        }
        gatewayBean.setSpk(cloudInverterDeviceBean.getSpk());//设备spk
@@ -1870,6 +1933,7 @@
        spks.add(INVERTER_DEVICE_SPK);
        spks.add(LC_SPK);
        spks.add(OFF_INVERTER_OG_SPK);
        spks.add(HDL_BMS_SPK);
        return spks;
    }
@@ -1929,4 +1993,8 @@
     * 离线逆变器spk
     */
    public final String OFF_INVERTER_OG_SPK = "energy.inverter_og";
    /**
     * BMS设备spk
     */
    public final String HDL_BMS_SPK = "energy.hdl_bms";
}