From 32b5f366ceaad4aa9a33eccf0b109eef24175495 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期二, 10 十月 2023 14:55:01 +0800
Subject: [PATCH] 2023年10月10日14:54:56

---
 HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/core/utils/mqtt/MqttRecvClient.java |    6 
 app/src/main/java/com/hdl/photovoltaic/internet/MqttClient.java                    |    1 
 HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/core/connect/HDLConnectHelper.java  |   30 +--
 app/src/main/java/com/hdl/photovoltaic/bean/MqttInfo.java                          |   46 +++++
 app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java                |   35 ---
 app/src/main/java/com/hdl/photovoltaic/ui/me/SetActivity.java                      |   27 ++
 app/src/main/java/com/hdl/photovoltaic/other/HdlLogLogic.java                      |   56 ++++++
 app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java                      |   48 ++--
 app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java                   |   87 +++++----
 app/src/main/java/com/hdl/photovoltaic/config/ConstantManage.java                  |    2 
 app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java              |   38 ++++
 app/src/main/java/com/hdl/photovoltaic/other/HdlMqttLogic.java                     |   41 ++--
 app/src/main/java/com/hdl/photovoltaic/base/BaseFragment.java                      |    5 
 app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java      |   29 ++
 app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java                   |   79 ++++----
 15 files changed, 351 insertions(+), 179 deletions(-)

diff --git a/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/core/connect/HDLConnectHelper.java b/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/core/connect/HDLConnectHelper.java
index 97789d7..9fc5d40 100644
--- a/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/core/connect/HDLConnectHelper.java
+++ b/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/core/connect/HDLConnectHelper.java
@@ -114,29 +114,25 @@
                          */
                         if (code == null || code.intValue() == 200 || code.intValue() == 0) {
                             notifySucceed(msg);
-                        }else {
+                        } else {
                             notifyFailure(ErrorUtils.getByCode(code));
                         }
-                    }
-                    else if (msg instanceof ZigbeeResponse) {
+                    } else if (msg instanceof ZigbeeResponse) {
                         ZigbeeResponse linkResponse = (ZigbeeResponse) msg;
                         //TODO 濡傛灉閰嶇疆浠庣綉鍏崇殑淇℃伅锛岄�氳繃涓荤綉鍏宠浆杈撅紝杩欓噷oid瑕佸垽鏂笅
                         if (replyTopic.equals(linkResponse.getTopic())) {
                             notifySucceed(linkResponse.getData());
-                        }
-                        else{
+                        } else {
                             notifyFailure(HDLLinkCode.HDL_TOPIC_NOT_RIGHT);
                         }
-                    }else if(msg instanceof ModbusResponse){
+                    } else if (msg instanceof ModbusResponse) {
                         ModbusResponse response = (ModbusResponse) msg;
                         if (replyTopic.equals(response.getTopic())) {
                             notifySucceed(response.getData());
-                        }
-                        else{
+                        } else {
                             notifyFailure(HDLLinkCode.HDL_TOPIC_NOT_RIGHT);
                         }
-                    }
-                    else{
+                    } else {
                         notifyFailure(new HDLLinkCode(HDLLinkCode.HDL_OBJECT_NOT_SUPPORT.getCode(), "Object Name:" + msg));
                     }
                 } catch (Exception e) {
@@ -161,8 +157,8 @@
      * @param mac           璁惧mac
      */
     public HDLConnectHelper(Long sendAwaitTime, int maxRetry, String ipAddress, int port,
-                            LinkRequest linkRequest, HdlSocketListener listener, boolean isTcp,String mac) {
-        this(sendAwaitTime,maxRetry,ipAddress,port,linkRequest,listener,isTcp);
+                            LinkRequest linkRequest, HdlSocketListener listener, boolean isTcp, String mac) {
+        this(sendAwaitTime, maxRetry, ipAddress, port, linkRequest, listener, isTcp);
         this.mac = mac;
     }
 
@@ -245,10 +241,9 @@
      * @param mac         璁惧mac
      */
     public HDLConnectHelper(String ipAddress,
-                            LinkRequest linkRequest, HdlSocketListener listener, boolean isTcp,String mac) {
-        this(DEF_SEND_TIMEOUT, DEF_MAX_RETRY, ipAddress, isTcp ? TCP_PORT : UDP_PORT, linkRequest, listener, isTcp,mac);
+                            LinkRequest linkRequest, HdlSocketListener listener, boolean isTcp, String mac) {
+        this(DEF_SEND_TIMEOUT, DEF_MAX_RETRY, ipAddress, isTcp ? TCP_PORT : UDP_PORT, linkRequest, listener, isTcp, mac);
     }
-
 
 
     /**
@@ -269,10 +264,9 @@
      * @param linkRequest 鍙戦�佸璞�
      * @param isTcp       鏄惁TCP
      */
-    public HDLConnectHelper(Long timeout,String ipAddress, LinkRequest linkRequest, boolean isTcp) {
+    public HDLConnectHelper(Long timeout, String ipAddress, LinkRequest linkRequest, boolean isTcp) {
         this(timeout, DEF_SEND_ONE, ipAddress, isTcp ? TCP_PORT : UDP_PORT, linkRequest, null, isTcp);
     }
-
 
 
     /**
@@ -330,7 +324,7 @@
                                     byte[] encryBytes = null;
                                     GatewayBean gatewayBean = HDLLinkLocalGateway.getInstance().getLocalGateway(mac);
                                     if (gatewayBean != null && getGatewayTypeList().contains(gatewayBean.getGatewayType())) {
-                                        //姣背娉㈣繙绋媘qtt绉橀挜涓嶄竴鏍�
+                                        //閫嗗彉鍣ㄨ繙绋媘qtt绉橀挜涓嶄竴鏍�
                                         encryBytes = EncryptUtil.encryBytes(linkRequest.getCloudSendBytes(), gatewayBean.getAesKey());
                                     } else {
                                         encryBytes = EncryptUtil.encryBytes(linkRequest.getCloudSendBytes(), HDLLinkConfig.getInstance().getAesKey());
diff --git a/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/core/utils/mqtt/MqttRecvClient.java b/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/core/utils/mqtt/MqttRecvClient.java
index 6e8ef74..fbcecfe 100644
--- a/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/core/utils/mqtt/MqttRecvClient.java
+++ b/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/core/utils/mqtt/MqttRecvClient.java
@@ -152,12 +152,12 @@
             connOpts.setMqttVersion(MqttConnectOptions.MQTT_VERSION_3_1_1);
             sampleClient.setCallback(new MqttCallbackExtended() {
                 public void connectComplete(boolean reconnect, String serverURI) {
-                    LogUtils.d(TAG, "connect success");
+                    LogUtils.d(TAG, "mqtt杩炴帴鎴愬姛");
                     checkAndsubscribeAllTopics("");
                 }
 
                 public void connectionLost(Throwable throwable) {
-                    LogUtils.d(TAG, "杩炴帴鏂紑");
+                    LogUtils.d(TAG, "mqtt杩炴帴鏂紑");
                     lastTopicFilters.clear();
                 }
 
@@ -224,7 +224,7 @@
         if (cloudsGatewayId.equals(HDLLinkConfig.getInstance().getHomeId())) {
             aes = getHomeAES();
         } else if (gatewayBean != null && HDLConnectHelper.getGatewayTypeList().contains(gatewayBean.getGatewayType())) {
-            //姣背娉qtt涓撶敤绉橀挜
+            //閫嗗彉鍣╩qtt涓撶敤绉橀挜
             aes = gatewayBean.getAesKey();
         } else {
             aes = HDLLinkConfig.getInstance().getAesKey();
diff --git a/app/src/main/java/com/hdl/photovoltaic/base/BaseFragment.java b/app/src/main/java/com/hdl/photovoltaic/base/BaseFragment.java
index 82120dc..c584a14 100644
--- a/app/src/main/java/com/hdl/photovoltaic/base/BaseFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/base/BaseFragment.java
@@ -122,6 +122,11 @@
         }
     }
 
+    /**
+     * 鏀跺埌EventBUs閫氱煡
+     *
+     * @param eventBus 鏁版嵁
+     */
     @Subscribe(threadMode = ThreadMode.MAIN)
     public void onEventMessage(BaseEventBus eventBus) {
 
diff --git a/app/src/main/java/com/hdl/photovoltaic/bean/MqttInfo.java b/app/src/main/java/com/hdl/photovoltaic/bean/MqttInfo.java
new file mode 100644
index 0000000..d10b31e
--- /dev/null
+++ b/app/src/main/java/com/hdl/photovoltaic/bean/MqttInfo.java
@@ -0,0 +1,46 @@
+package com.hdl.photovoltaic.bean;
+
+import java.io.Serializable;
+
+public class MqttInfo implements Serializable {
+    //瀹㈡埛绔痠d
+    private String clientId;
+    //瀵嗙爜
+    private String passWord;
+    //鍦板潃
+    private String url;
+    //鐢ㄦ埛鍚�
+    private String userName;
+
+    public String getClientId() {
+        return clientId == null ? "" : clientId;
+    }
+
+    public void setClientId(String clientId) {
+        this.clientId = clientId;
+    }
+
+    public String getPassWord() {
+        return passWord == null ? "" : passWord;
+    }
+
+    public void setPassWord(String passWord) {
+        this.passWord = passWord;
+    }
+
+    public String getUrl() {
+        return url == null ? "" : url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getUserName() {
+        return userName == null ? "" : userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+}
diff --git a/app/src/main/java/com/hdl/photovoltaic/config/ConstantManage.java b/app/src/main/java/com/hdl/photovoltaic/config/ConstantManage.java
index 485a826..2a5fb1f 100644
--- a/app/src/main/java/com/hdl/photovoltaic/config/ConstantManage.java
+++ b/app/src/main/java/com/hdl/photovoltaic/config/ConstantManage.java
@@ -13,7 +13,7 @@
     public static final String SAVE_HOME_HOME_ID = "homeId";
 
     /******EventBus鍙戝竷浜嬩欢鐨勫父閲�*********/
-    public static final String EVENTBUS_POST_HOME_CREATED = "home_created";//浣忓畢鍒涘缓鍙戝竷
+
 
 
 }
diff --git a/app/src/main/java/com/hdl/photovoltaic/internet/MqttClient.java b/app/src/main/java/com/hdl/photovoltaic/internet/MqttClient.java
index a24c543..bfbd56f 100644
--- a/app/src/main/java/com/hdl/photovoltaic/internet/MqttClient.java
+++ b/app/src/main/java/com/hdl/photovoltaic/internet/MqttClient.java
@@ -2,4 +2,5 @@
 
 public class MqttClient {
 
+
 }
diff --git a/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java b/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java
index 9e0bbf1..69f5577 100644
--- a/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java
+++ b/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java
@@ -1,44 +1,11 @@
 package com.hdl.photovoltaic.internet.api;
 
 public class HttpApi {
-    //region -----鐢ㄦ埛绠$悊---------
-    /**
-     * B绔帴鍙�
-     */
-    //鑾峰彇璐﹀彿鍖哄煙淇℃伅
-    public static final String POST_RegionByUserAccount = "/smart-footstone/region/regionByUserAccount";
-    //鐧诲綍鎺ュ彛
-    public static final String POST_Login = "/smart-footstone/user/oauth/login";
-    //鐢ㄦ埛鎵惧洖瀵嗙爜 蹇樿瀵嗙爜,閫氳繃閭鍜屾墜鏈哄彿鎵惧洖
-    public static final String B_POST_FORGET_PROGRAM_PWD = "/smart-footstone/user/oauth/forgetProgramPwd";
-    //鍙戦�佹秷鎭獙璇佺爜
-    public static final String POST_SEND_VERIFICATION = "/smart-footstone/verification/message/send";
-    //鏇存敼涓汉瀵嗙爜
-    public static final String POST_UPDATE_PROGRAM_PASSWORD = "/smart-footstone/user/userInfo/updateProgramPassword";
-    //鑾峰彇鍛樺伐鍒楄〃
-    public static final String POST_GET_USER_LIST = "/smart-footstone/user/userInfo/getUserList";
-    //鑾峰彇鐢ㄦ埛涓汉淇℃伅 C绔�
-    public static final String POST_GET_MEMBER_INFO = "/smart-footstone/member/memberInfo/getMemberInfo";
-    //鏇存柊涓汉淇℃伅 C绔�
-    public static final String POST_UPDATE_MEMBER_INFO = "/smart-footstone/member/memberInfo/updateMemberInfo";
-    //涓婁紶鍥剧墖
-    public static final String POST_UPLOAD_IMAGE = "/home-wisdom/app/images/upload_image";
-    //涓婁紶鍥剧墖锛堟柊锛�
-    public static final String POST_UPLOAD_IMAGE_NEW = "/basis-cosmos/file/upload";
-    //鏌ヨ鍥剧墖璺緞
-    public static final String POST_GET_IMAGE_URL = "/home-wisdom/app/images/get_image_url";
-    //閫�鍑虹櫥褰�
-    public static final String POST_GET_IMAGE_LOGOUT = "/basis-footstone/mgmt/user/oauth/logout";
-    /**
-     * C绔帴鍙�
-     */
-    //閫�鍑虹櫥褰�
-    public static final String C_POST_GET_OAUTH_REGISTER = "/smart-footstone/member/oauth/register";
-    //鐢ㄦ埛鎵惧洖瀵嗙爜 蹇樿瀵嗙爜,閫氳繃閭鍜屾墜鏈哄彿鎵惧洖
-    public static final String C_POST_FORGET_PROGRAM_PWD = "/smart-footstone/member/oauth/forgetPwd";
 
+    //region **********銆怋绔�戝拰銆怌绔�戝叡鐢ㄦ帴鍙�**********
+    //mqtt杩炴帴闇�瑕侊紙璇泙鎺ュ彛鍦板潃:https://hdl-gz.yuque.com/wnkbmh/cdrglh/totdnt#40b28997锛�
+    public static final String POST_Mqtt_GetRemoteInfo = "/home-wisdom/app/mqtt/getRemoteInfo";
 
-    //endregion
     //region -----鐢电珯绠$悊(浣忓畢)---------
     //鐢电珯鍒楄〃
     public static final String POST_PowerStation_List = "/home-wisdom/app/powerStation/page";
@@ -64,8 +31,54 @@
     //鍏ㄩ噺鏇存柊OID
     public static final String POST_Device_Oid = "/home-wisdom/program/device/oid/add";
     //鑾峰彇閫嗗彉鍣�(鑾峰彇璁惧杩滅▼閫氳淇℃伅)
-    public static final String POST_Device_remoteInfo = "/home-wisdom/program/device/remoteInfo";
+    public static final String POST_Device_RemoteInfo = "/home-wisdom/program/device/remoteInfo";
     //endregion
+    //endregion
+
+    //region **********銆怋绔帴鍙c��**********
+
+    //region -----鐢ㄦ埛绠$悊---------
+    //鑾峰彇璐﹀彿鍖哄煙淇℃伅
+    public static final String POST_RegionByUserAccount = "/smart-footstone/region/regionByUserAccount";
+    //鐧诲綍鎺ュ彛
+    public static final String POST_Login = "/smart-footstone/user/oauth/login";
+    //鐢ㄦ埛鎵惧洖瀵嗙爜 蹇樿瀵嗙爜,閫氳繃閭鍜屾墜鏈哄彿鎵惧洖
+    public static final String B_POST_FORGET_PROGRAM_PWD = "/smart-footstone/user/oauth/forgetProgramPwd";
+    //鍙戦�佹秷鎭獙璇佺爜
+    public static final String POST_SEND_VERIFICATION = "/smart-footstone/verification/message/send";
+    //鏇存敼涓汉瀵嗙爜
+    public static final String POST_UPDATE_PROGRAM_PASSWORD = "/smart-footstone/user/userInfo/updateProgramPassword";
+    //鑾峰彇鍛樺伐鍒楄〃
+    public static final String POST_GET_USER_LIST = "/smart-footstone/user/userInfo/getUserList";
+    //鑾峰彇鐢ㄦ埛涓汉淇℃伅 C绔�
+    public static final String POST_GET_MEMBER_INFO = "/smart-footstone/member/memberInfo/getMemberInfo";
+    //鏇存柊涓汉淇℃伅 C绔�
+    public static final String POST_UPDATE_MEMBER_INFO = "/smart-footstone/member/memberInfo/updateMemberInfo";
+    //涓婁紶鍥剧墖
+    public static final String POST_UPLOAD_IMAGE = "/home-wisdom/app/images/upload_image";
+    //涓婁紶鍥剧墖锛堟柊锛�
+    public static final String POST_UPLOAD_IMAGE_NEW = "/basis-cosmos/file/upload";
+    //鏌ヨ鍥剧墖璺緞
+    public static final String POST_GET_Image_Url = "/home-wisdom/app/images/get_image_url";
+    //閫�鍑虹櫥褰�
+    public static final String POST_GET_IMAGE_LOGOUT = "/basis-footstone/mgmt/user/oauth/logout";
+    //endregion
+    //endregion
+
+
+    //region  **********銆怌绔帴鍙c��**********
+    //region -----鐢ㄦ埛绠$悊---------
+
+
+    //閫�鍑虹櫥褰�
+    public static final String C_POST_GET_OAUTH_REGISTER = "/smart-footstone/member/oauth/register";
+    //鐢ㄦ埛鎵惧洖瀵嗙爜 蹇樿瀵嗙爜,閫氳繃閭鍜屾墜鏈哄彿鎵惧洖
+    public static final String C_POST_FORGET_PROGRAM_PWD = "/smart-footstone/member/oauth/forgetPwd";
+    //endregion
+    //endregion
+
+
+
 
 
 }
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
index 2db7010..037b4bf 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
@@ -40,6 +40,7 @@
 import com.hdl.sdk.link.core.callback.HDLLinkCallBack;
 import com.hdl.sdk.link.core.config.HDLLinkConfig;
 import com.hdl.sdk.link.gateway.HDLLinkLocalGateway;
+import com.hdl.sdk.link.gateway.type.GatewayMasterType;
 
 import java.lang.reflect.Type;
 import java.util.ArrayList;
@@ -54,27 +55,6 @@
  */
 public class HdlDeviceLogic {
     private static volatile HdlDeviceLogic sHdlDeviceLogic;
-
-    /**
-     * 鑾峰彇褰撳墠浣忓畢鐨勯�嗗彉鍣ㄥ垪琛�
-     */
-    public List<GatewayBean> getGatewayList() {
-        List<GatewayBean> newList = new ArrayList<>();
-        List<GatewayBean> list = HDLLinkLocalGateway.getInstance().getGatewayList();
-        if (list.size() > 0) {
-            for (int i = 0; i < list.size(); i++) {
-                GatewayBean gatewayBean = list.get(i);
-                if (TextUtils.isEmpty(gatewayBean.getDevice_mac())) {
-                    continue;
-                }
-                if (gatewayBean.getMaster().equals("true")
-                        && gatewayBean.getHomeId().equals(UserConfigManage.getInstance().getHomeId())) {
-                    newList.add(gatewayBean);
-                }
-            }
-        }
-        return newList;
-    }
 
     /**
      * 鑾峰彇褰撳墠瀵硅薄
@@ -92,6 +72,28 @@
         }
         return sHdlDeviceLogic;
     }
+
+    /**
+     * 鑾峰彇褰撳墠浣忓畢鐨勯�嗗彉鍣ㄥ垪琛�
+     */
+    public List<GatewayBean> getCurrentHomeGatewayList() {
+        List<GatewayBean> newList = new ArrayList<>();
+        List<GatewayBean> list = HDLLinkLocalGateway.getInstance().getGatewayList();
+        if (list.size() > 0) {
+            for (int i = 0; i < list.size(); i++) {
+                GatewayBean gatewayBean = list.get(i);
+                if (TextUtils.isEmpty(gatewayBean.getDevice_mac())) {
+                    continue;
+                }
+                if (gatewayBean.getMaster().equals(GatewayMasterType.MasterTrue)
+                        && gatewayBean.getHomeId().equals(UserConfigManage.getInstance().getHomeId())) {
+                    newList.add(gatewayBean);
+                }
+            }
+        }
+        return newList;
+    }
+
 
     /**
      * 娣诲姞閫嗗彉鍣ㄥ埌浜戠涓�
@@ -419,7 +421,7 @@
     public void editGatewayParam(String mac, LinkCallBack<Boolean> linkCallBack) {
         String requestUrl = TopicApi.SET_GATEWAY_EDIT;
         JsonObject json = new JsonObject();
-        json.addProperty("master", "true");
+        json.addProperty("master", GatewayMasterType.MasterTrue);
         TcpClient.getInstance().sendDataToLinkGateway(mac, requestUrl, json, "", new HDLLinkCallBack() {
             @Override
             public void onSuccess(String msg) {
@@ -515,15 +517,16 @@
     }
 
     /**
-     * 鑾峰彇鏈湴閫嗗彉鍣ㄥ垪琛�
+     * 鑾峰彇閫嗗彉鍣ㄥ垪琛�
      * 娉ㄦ剰:鏈夊缃戜互浜戠璁惧涓哄噯,鏈湴瀛樺湪锛屼簯绔病鏈夊垯鍒犻櫎锛涘唴缃戜互鏈湴涓轰富,鎼滅储澶氬皯涓澶囧氨鏄剧ず澶氬皯涓紱
      *
-     * @param cloudCallBeak -
+     * @param cloudCallBeak 杩斿洖閫嗗彉鍣ㄥ垪琛�
      */
-    public void getLocalGatewayList(CloudCallBeak<Boolean> cloudCallBeak) {
+    public void getCurrentHomeLocalAndCloudGatewayList(CloudCallBeak<List<GatewayBean>> cloudCallBeak) {
         HdlDeviceLogic.getInstance().searchGateway(new GatewayCallBack() {
             @Override
             public void onSuccess(List<GatewayBean> gatewayBeanList) {
+                //灞�鍩熺綉鎯呭喌
                 HdlDeviceLogic.getInstance().getCloudInverterDeviceList(UserConfigManage.getInstance().getHomeId(), new CloudCallBeak<List<CloudInverterDeviceBean>>() {
                     @Override
                     public void onSuccess(List<CloudInverterDeviceBean> list) {
@@ -531,7 +534,7 @@
 //                            //浜戠娌℃湁缁戝畾閫嗗彉鍣�,浠ユ湰鍦颁负涓�;
 //                            HDLLinkLocalGateway.getInstance().getGatewayList().clear();
                             if (cloudCallBeak != null) {
-                                cloudCallBeak.onSuccess(true);
+                                cloudCallBeak.onSuccess(getCurrentHomeGatewayList());
                             }
                             return;
                         }
@@ -563,7 +566,7 @@
                                             removeInverter(removeSidList.get(i));
                                         }
                                         if (cloudCallBeak != null) {
-                                            cloudCallBeak.onSuccess(true);
+                                            cloudCallBeak.onSuccess(getCurrentHomeGatewayList());
                                         }
                                     }
                                 }
@@ -591,7 +594,7 @@
                                             removeInverter(removeSidList.get(i));
                                         }
                                         if (cloudCallBeak != null) {
-                                            cloudCallBeak.onSuccess(true);
+                                            cloudCallBeak.onSuccess(getCurrentHomeGatewayList());
                                         }
                                     }
                                     HdlLogLogic.print("鑾峰彇璁惧杩滅▼閫氳淇℃伅澶辫触->msg->" + e.getMsg() + "(" + e.getCode() + ")");
@@ -613,15 +616,15 @@
 
             @Override
             public void onError(HDLLinkException e) {
+                //澶栫綉鎯呭喌
                 HdlDeviceLogic.getInstance().getCloudInverterDeviceList(UserConfigManage.getInstance().getHomeId(), new CloudCallBeak<List<CloudInverterDeviceBean>>() {
                     @Override
                     public void onSuccess(List<CloudInverterDeviceBean> list) {
-                        //娓呮鏈湴缃戝叧鍒楄〃
+                        //浜戠娌℃湁,娓呯┖鏈湴閫嗗彉鍣ㄥ垪琛�
                         HDLLinkLocalGateway.getInstance().getGatewayList().clear();
-
                         if (list == null || list.size() == 0) {
                             if (cloudCallBeak != null) {
-                                cloudCallBeak.onSuccess(true);
+                                cloudCallBeak.onSuccess(getCurrentHomeGatewayList());
                             }
                             return;
                         }
@@ -636,7 +639,7 @@
                                     refreshGatewayCacheData(false, cloudInverterDeviceBean, deviceRemoteInfo);
                                     if (atomicInteger.get() == list.size()) {
                                         if (cloudCallBeak != null) {
-                                            cloudCallBeak.onSuccess(true);
+                                            cloudCallBeak.onSuccess(getCurrentHomeGatewayList());
                                         }
                                     }
                                 }
@@ -646,7 +649,7 @@
                                     atomicInteger.set(atomicInteger.get() + 1);
                                     if (atomicInteger.get() == list.size()) {
                                         if (cloudCallBeak != null) {
-                                            cloudCallBeak.onSuccess(true);
+                                            cloudCallBeak.onSuccess(getCurrentHomeGatewayList());
                                         }
                                     }
                                     HdlLogLogic.print("鑾峰彇璁惧杩滅▼閫氳淇℃伅澶辫触->msg->" + e.getMsg() + "(" + e.getCode() + ")");
@@ -678,7 +681,7 @@
      * @return -
      */
     public void getDeviceRemoteInfo(String homeId, String spk, String mac, CloudCallBeak<DeviceRemoteInfo> cloudCallBeak) {
-        String requestUrl = HttpApi.POST_Device_remoteInfo;
+        String requestUrl = HttpApi.POST_Device_RemoteInfo;
         JsonObject json = new JsonObject();
         json.addProperty("homeId", homeId);
         json.addProperty("spk", spk);
@@ -721,7 +724,7 @@
     }
 
     /**
-     * 鎼滅储缃戝叧鍒楄〃
+     * 鎼滅储閫嗗彉鍣ㄥ垪琛�
      *
      * @param gatewayCallBack -
      */
@@ -752,6 +755,10 @@
         if (deviceRemoteInfo != null) {
             gatewayBean.setAesKey(deviceRemoteInfo.getSecret());//璁剧疆mqtt閫氳绉橀挜
             gatewayBean.setGatewayId(deviceRemoteInfo.getGatewayId());//璁剧疆gatewayId
+            //鐢ㄤ箣鍓嶇殑搴�,搴曞眰mqtt璁㈤槄锛屽姞瑙e瘑浼氱敤鍒拌鍙傛暟;
+            HDLLinkConfig.getInstance().setAesKey(deviceRemoteInfo.getSecret());//璁剧疆mqtt閫氳绉橀挜搴�
+            HDLLinkConfig.getInstance().setGatewayId(deviceRemoteInfo.getGatewayId());//璁剧疆gatewayId
+
         }
         gatewayBean.setHomeId(UserConfigManage.getInstance().getHomeId());//浣忓畢id
         gatewayBean.setDeviceStatus(cloudInverterDeviceBean.getDeviceStatus());//璁剧疆缃戝叧鐘舵��
@@ -762,7 +769,7 @@
         gatewayBean.setDevice_name(cloudInverterDeviceBean.getName());//璁惧鍚嶇О
         gatewayBean.setGatewayType(cloudInverterDeviceBean.getSpk());//璁剧疆spk
         gatewayBean.setLocalEncrypt(true);
-        gatewayBean.setMaster("true");
+        gatewayBean.setMaster(GatewayMasterType.MasterTrue);
         gatewayBean.setSystemStatusDesc(cloudInverterDeviceBean.getSystemStatusDesc());//璁惧鐘舵��
         gatewayBean.setHwVersion(cloudInverterDeviceBean.getHwVersion());//杞欢鐗堟湰鍙�
         gatewayBean.setCategorySecondName(cloudInverterDeviceBean.getCategorySecondName());//璁惧绫诲瀷(浜у搧浜岀骇鍒嗙被鍚嶇О
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlLogLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlLogLogic.java
index 1a4d07c..986d82f 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlLogLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlLogLogic.java
@@ -2,6 +2,8 @@
 
 import android.util.Log;
 
+import com.google.gson.Gson;
+
 /**
  * 鏃ュ織閫昏緫
  */
@@ -35,7 +37,7 @@
      * android鎵撳嵃
      *
      * @param tag 鏍囩
-     * @param mgs 杈撳嚭淇℃伅
+     * @param mgs 閿欒淇℃伅
      */
     public static void print(String tag, String mgs) {
         if (isDebug) {
@@ -56,4 +58,56 @@
         System.out.println(mgs);
     }
 
+    /**
+     * java鎵撳嵃
+     *
+     * @param tag  鏍囬
+     * @param mgs  閿欒淇℃伅
+     * @param code 閿欒鐮�
+     */
+    public static void print(String tag, String mgs, int code) {
+        if (isDebug) {
+            return;
+        }
+        System.out.println(title + tag + "======" + mgs + "(" + code + ")");
+    }
+
+    /**
+     * java鎵撳嵃
+     *
+     * @param tag  鏍囬
+     * @param mgs  閿欒淇℃伅
+     * @param code 閿欒鐮�
+     */
+    public static void print(String tag, String mgs, String code) {
+        if (isDebug) {
+            return;
+        }
+        System.out.println(title + tag + "======" + mgs + "(" + code + ")");
+    }
+
+    /**
+     * java鎵撳嵃
+     *
+     * @param tag 鏍囬
+     * @param o   閿欒淇℃伅
+     */
+    public static void print(String tag, Object o) {
+
+        if (isDebug) {
+            return;
+        }
+        if (o == null) {
+            System.out.println(title + tag);
+        } else {
+            try {
+                System.out.println(title + tag + "======" + new Gson().toJson(o));
+            } catch (Exception e) {
+                System.out.println(title + tag + "======" + e.getMessage());
+            }
+        }
+    }
+
+    private static final String title = "鑷畾涔夎緭鍑烘墦鍗颁俊鎭�:";
+
 }
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlMqttLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlMqttLogic.java
index 233b542..e7f7f5a 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlMqttLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlMqttLogic.java
@@ -1,19 +1,26 @@
 package com.hdl.photovoltaic.other;
 
+import android.provider.Settings;
+import android.text.TextUtils;
+
 import com.google.gson.Gson;
 import com.google.gson.JsonObject;
 import com.google.gson.reflect.TypeToken;
 import com.hdl.hdlhttp.HxHttp;
 import com.hdl.linkpm.sdk.core.exception.HDLException;
+import com.hdl.photovoltaic.HDLApp;
 import com.hdl.photovoltaic.bean.HttpResponsePack;
+import com.hdl.photovoltaic.bean.MqttInfo;
 import com.hdl.photovoltaic.internet.HttpClient;
 import com.hdl.photovoltaic.internet.api.HttpApi;
 import com.hdl.photovoltaic.listener.BaseSuccessFailureCallBeak;
 import com.hdl.photovoltaic.listener.CloudCallBeak;
 import com.hdl.photovoltaic.ui.bean.CloudInverterChildDeviceBean;
+import com.hdl.photovoltaic.ui.bean.DeviceRemoteInfo;
 
 import java.lang.reflect.Type;
 import java.util.List;
+import java.util.Random;
 
 import io.reactivex.rxjava3.disposables.Disposable;
 
@@ -41,31 +48,28 @@
     }
 
     /**
-     * 鑾峰彇閫嗗彉鍣�(鑾峰彇璁惧杩滅▼閫氳淇℃伅)
+     * 鑾峰彇mqtt杩滅▼杩炴帴鏁版嵁
      *
-     * @param homeId        浣忓畢Id
-     * @param spk           spk
-     * @param mac           璁惧mac
+     * @param homeType      浣忓畢绫诲瀷 (1.ZIGBEE 2.BUSPRO 3.A 4.ALL锛�
      * @param cloudCallBeak 鍥炶皟
      */
-    public void getDeviceRemoteInfo(String homeId, String spk, String mac, CloudCallBeak<String> cloudCallBeak) {
-        String requestUrl = HttpApi.POST_Device_remoteInfo;
+    public void getMqttRemoteInfo(String homeType, CloudCallBeak<MqttInfo> cloudCallBeak) {
+        String requestUrl = HttpApi.POST_Mqtt_GetRemoteInfo;
+        int randomNumberClientId = new Random().nextInt(1000000000);
+        String deviceUuid = Settings.System.getString(HDLApp.getInstance().getContentResolver(), Settings.System.ANDROID_ID);
         JsonObject json = new JsonObject();
-        json.addProperty("homeId", homeId);
-        json.addProperty("spk", spk);
-        json.addProperty("mac", mac);
+        json.addProperty("attachClientId", randomNumberClientId);
+        json.addProperty("homeType", homeType);
+        json.addProperty("deviceUuid", deviceUuid);
         HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
             @Override
             public void onSuccess(String jsonStr) {
-//                if (httpResponsePack != null && httpResponsePack.getData() != null) {
-//                    Gson gson = new Gson();
-//                    String json = gson.toJson(httpResponsePack.getData());
-//                    Type typeOfT = new TypeToken<List<CloudInverterChildDeviceBean>>() {
-//                    }.getType();
-//                    if (cloudCallBeak != null) {
-//                        cloudCallBeak.onSuccess("list");
-//                    }
-//                }
+                Type type = new TypeToken<MqttInfo>() {
+                }.getType();
+                MqttInfo mqttInfo = new Gson().fromJson(jsonStr, type);
+                if (cloudCallBeak != null) {
+                    cloudCallBeak.onSuccess(mqttInfo);
+                }
             }
 
             @Override
@@ -77,4 +81,5 @@
         });
 
     }
+
 }
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java
index c4322ac..5be1e09 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java
@@ -514,43 +514,24 @@
      */
     public void switchHouse(HouseIdBean houseIdBean) {
         String oidHomeId = UserConfigManage.getInstance().getHomeId();
-//        if (houseIdBean.getHomeId().equals(oidHomeId)) {
-//            return;
-//        }
-
+        if (houseIdBean.getHomeId().equals(oidHomeId)) {
+            HdlLogLogic.print("鐐瑰嚮鍚屼竴涓綇瀹�");
+            return;
+        }
         //鍒犻櫎鏃х殑浣忓畢鏂囦欢澶�
         HdlFileLogic.getInstance().deleteDirectory(HdlFileLogic.getInstance().getCurrentHomeRootPath());
         //閲嶆柊璁剧疆浣忓畢id
         UserConfigManage.getInstance().setHomeId(houseIdBean.getHomeId());
         //閲嶆柊璁剧疆鏈湴閫氳绉橀挜
         UserConfigManage.getInstance().setLocalSecret(houseIdBean.getLocalSecret());
-        //閲嶆柊鍒涘缓浣忓畢鏂囦欢澶�
-        HdlFileLogic.getInstance().createDirectory();
         //閰嶇疆鏈湴閫氫俊鐨勪俊鎭�
-        initLocalLinkSdk();
-
-        HdlDeviceLogic.getInstance().searchGateway(new GatewayCallBack() {
-            @Override
-            public void onSuccess(List<GatewayBean> gatewayBeanList) {
-            }
-
-            @Override
-            public void onError(HDLLinkException e) {
-            }
-        });
-    }
-
-
-    /**
-     * 閰嶇疆鏈湴閫氫俊鐨勪俊鎭�(tcp閫氫俊鐢ㄥ埌)
-     */
-    private void initLocalLinkSdk() {
         HDLLinkConfig.getInstance().setHomeId(UserConfigManage.getInstance().getHomeId());
         HDLLinkConfig.getInstance().setLocalSecret(UserConfigManage.getInstance().getLocalSecret());
-
-
+        //閲嶆柊鍒涘缓浣忓畢鏂囦欢澶�
+        HdlFileLogic.getInstance().createDirectory();
+        //杩涘幓浣忓畢璇︽儏鎼滅储涓�涓嬮�嗗彉鍣ㄥ垪琛�,鐩殑鏄缓绔嬮�氳閫氶亾;
+        HdlDeviceLogic.getInstance().searchGateway(null);
     }
-
 
     static class HouseBeanClass {
 
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
index 8a02ce0..491e3f0 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -5,6 +5,7 @@
 import android.util.Log;
 
 import com.google.gson.Gson;
+import com.google.gson.JsonObject;
 import com.hdl.linkpm.sdk.core.exception.HDLException;
 import com.hdl.photovoltaic.HDLApp;
 import com.hdl.photovoltaic.bean.BaseEventBus;
@@ -23,6 +24,7 @@
 import com.hdl.sdk.link.core.callback.GatewayCallBack;
 import com.hdl.sdk.link.core.callback.ModbusCallBack;
 import com.hdl.sdk.link.core.connect.HDLModBusConnect;
+import com.hdl.sdk.link.core.utils.mqtt.MqttRecvClient;
 import com.hdl.sdk.link.gateway.HDLLinkLocalGateway;
 
 import org.greenrobot.eventbus.EventBus;
@@ -82,17 +84,23 @@
 
                         //EventBus浜嬩欢鍒嗗彂
                         BaseEventBus baseEventBus = new BaseEventBus();
-                        baseEventBus.setType(ConstantManage.EVENTBUS_POST_HOME_CREATED);
+                        baseEventBus.setType(HDLUniMP.UNI_EVENT_REPLY_HOME_CREATION);
                         baseEventBus.setData(getKeyValue("data", data));
                         EventBus.getDefault().post(baseEventBus);
                     }
                     break;
+                    //璇诲彇璇︽儏
                     case HDLUniMP.UNI_EVENT_REPLY_HOME_DETAILS: {
-                        //璇︽儏
+
                     }
                     break;
+                    //鍏抽棴璇︽儏椤�
                     case HDLUniMP.UNI_EVENT_REPLY_HOME_CLOSE_HOME_DETAILS_PAGE: {
-                        //鍏抽棴璇︽儏椤�
+                        //EventBus浜嬩欢鍒嗗彂
+                        BaseEventBus baseEventBus = new BaseEventBus();
+                        baseEventBus.setType(HDLUniMP.UNI_EVENT_REPLY_HOME_CLOSE_HOME_DETAILS_PAGE);
+                        baseEventBus.setData(getKeyValue("data", data));
+                        EventBus.getDefault().post(baseEventBus);
                     }
                     break;
 
@@ -103,8 +111,8 @@
             } else if (HDLUniMP.UNI_EVENT_REPLY_DEVICE_MODEL.equals(event)) {
                 //璁惧妯″潡
                 switch (type) {
+                    //娣诲姞閫嗗彉鍣ㄥ埌浜戠
                     case HDLUniMP.UNI_EVENT_REPLY_DEVICE_ADD: {
-                        //娣诲姞璁惧鍒颁簯绔�
                         String mac = getKeyValue("mac", getKeyValue("data", data));
                         HdlDeviceLogic.getInstance().setGatewayRemoteParam(mac, new LinkCallBack<Boolean>() {
                             @Override
@@ -151,8 +159,8 @@
 
                     }
                     break;
+                    //灞�鍩熺綉鎼滅储閫嗗彉鍣ㄥ垪琛�
                     case HDLUniMP.UNI_EVENT_REPLY_DEVICE_NET_LIST: {
-                        //缃戝叧鎼滅储
                         HdlDeviceLogic.getInstance().searchGateway(new GatewayCallBack() {
                             @Override
                             public void onSuccess(List<GatewayBean> gatewayBeanList) {
@@ -169,12 +177,16 @@
                     break;
                     //鑾峰彇閫嗗彉鍣ㄥ垪琛�
                     case HDLUniMP.UNI_EVENT_REPLY_DEVICE_LIST: {
-
-                        HdlDeviceLogic.getInstance().getLocalGatewayList(new CloudCallBeak<Boolean>() {
+                        HdlDeviceLogic.getInstance().getCurrentHomeLocalAndCloudGatewayList(new CloudCallBeak<List<GatewayBean>>() {
                             @Override
-                            public void onSuccess(Boolean obj) {
+                            public void onSuccess(List<GatewayBean> list) {
                                 if (callback != null) {
-                                    uniCallbackData(HdlDeviceLogic.getInstance().getGatewayList(), callback);
+                                    uniCallbackData(list, callback);
+                                    //EventBus浜嬩欢鍒嗗彂
+                                    BaseEventBus baseEventBus = new BaseEventBus();
+                                    baseEventBus.setType(HDLUniMP.UNI_EVENT_REPLY_DEVICE_LIST);
+                                    baseEventBus.setData(list);
+                                    EventBus.getDefault().post(baseEventBus);
                                 }
                             }
 
@@ -211,11 +223,9 @@
                         });
                     }
                     break;
-                    //璁惧鏃堕棿璇诲彇
+                    //閫嗗彉鍣ㄦ椂闂磋鍙�
                     case HDLUniMP.UNI_EVENT_REPLY_DEVICE_TIME: {
-                        //娣诲姞璁惧鍒颁簯绔�
                         String mac = getKeyValue("mac", getKeyValue("data", data));
-                        //鑾峰彇oid鍒楄〃
                         HdlDeviceLogic.getInstance().getGatewayTime(mac, new LinkCallBack<Boolean>() {
                             @Override
                             public void onSuccess(Boolean obj) {
@@ -229,20 +239,10 @@
                         });
                     }
                     break;
-                    //璁惧鏃堕棿缂栬緫
+                    //閫嗗彉鍣ㄦ椂闂寸紪杈�
                     case HDLUniMP.UNI_EVENT_REPLY_DEVICE_TIME_EDIT: {
                         String mac = getKeyValue("mac", getKeyValue("data", data));
-                        HdlDeviceLogic.getInstance().getGatewayOidList(mac, new LinkCallBack<List<OidBean>>() {
-                            @Override
-                            public void onSuccess(List<OidBean> obj) {
-
-                            }
-
-                            @Override
-                            public void onError(HDLLinkException e) {
-
-                            }
-                        });
+                        HdlDeviceLogic.getInstance().editGatewayTime(mac, new JsonObject(), null);
                     }
                     break;
 
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java
index 491be13..66b8b35 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java
@@ -6,19 +6,31 @@
 import android.Manifest;
 import android.content.pm.PackageManager;
 import android.os.Bundle;
+import android.provider.Settings;
 import android.view.View;
 
 import com.google.gson.Gson;
+import com.hdl.linkpm.sdk.core.callback.IResponseCallBack;
+import com.hdl.linkpm.sdk.core.exception.HDLException;
+import com.hdl.linkpm.sdk.home.type.HomeType;
+import com.hdl.linkpm.sdk.user.HDLLinkPMUser;
+import com.hdl.photovoltaic.HDLApp;
 import com.hdl.photovoltaic.R;
 import com.hdl.photovoltaic.base.CustomBaseActivity;
+import com.hdl.photovoltaic.bean.MqttInfo;
 import com.hdl.photovoltaic.databinding.ActivityMyPowerStationBinding;
+import com.hdl.photovoltaic.listener.CloudCallBeak;
 import com.hdl.photovoltaic.other.HdlLogLogic;
+import com.hdl.photovoltaic.other.HdlMqttLogic;
 import com.hdl.photovoltaic.other.HdlUniLogic;
 import com.hdl.photovoltaic.uni.HDLUniMP;
 import com.hdl.photovoltaic.utils.PermissionUtils;
 import com.hdl.sdk.link.HDLLinkLocalSdk;
 import com.hdl.sdk.link.common.event.EventListener;
 import com.hdl.sdk.link.core.bean.ModbusResponse;
+import com.hdl.sdk.link.core.utils.mqtt.MqttRecvClient;
+
+import java.util.Random;
 
 /**
  * 鎴戠殑鐢电珯鐣岄潰
@@ -46,6 +58,10 @@
         initEvent();
         //娉ㄥ唽鐩戝惉
         registerAllTopicsListener();
+        //鍒濆鍖杕qtt瀹㈡埛绔�
+        initMqttClient();
+
+
     }
 
     private void initEvent() {
@@ -196,5 +212,27 @@
         HDLLinkLocalSdk.getInstance().registerAllTopicsListener(allTopicsListener);
     }
 
+    /**
+     * 鍒濆鍖杕qtt瀹㈡埛绔�
+     */
+    public void initMqttClient() {
+        HdlMqttLogic.getInstance().getMqttRemoteInfo(HomeType.A, new CloudCallBeak<MqttInfo>() {
+            @Override
+            public void onSuccess(MqttInfo info) {
+                if (info != null) {
+                    MqttRecvClient.init(_mActivity, info.getUrl(), info.getClientId(), info.getUserName(), info.getPassWord());
+                    HdlLogLogic.print("mqtt鍒濆鍖栨垚鍔�!", info);
+                } else {
+                    HdlLogLogic.print("mqtt鍒濆鍖栧け璐�!", null);
+                }
+            }
+
+            @Override
+            public void onFailure(HDLException e) {
+                HdlLogLogic.print("mqtt鍒濆鍖栧け璐�", e.getMessage(), e.getCode());
+            }
+        });
+    }
+
 
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/me/SetActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/me/SetActivity.java
index a614e2d..57c0e8c 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/me/SetActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/me/SetActivity.java
@@ -6,6 +6,7 @@
 import android.widget.LinearLayout;
 import android.widget.RelativeLayout;
 
+import com.hdl.linkpm.sdk.user.HDLLinkPMUser;
 import com.hdl.photovoltaic.R;
 import com.hdl.photovoltaic.base.CustomBaseActivity;
 import com.hdl.photovoltaic.databinding.ActivitySetBinding;
@@ -13,7 +14,7 @@
 /**
  * 璁剧疆鐣岄潰
  */
-public class SetActivity extends CustomBaseActivity {
+public class SetActivity extends CustomBaseActivity implements View.OnClickListener {
 
     private ActivitySetBinding viewBinding;
 
@@ -33,12 +34,8 @@
     }
 
     private void initEvent() {
-        viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                finish();
-            }
-        });
+        viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setOnClickListener(this);
+        viewBinding.outTv.setOnClickListener(this);
     }
 
     private void initView() {
@@ -62,4 +59,20 @@
     }
 
 
+    @Override
+    public void onClick(View v) {
+        if (v.getId() == viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.getId()) {
+            finish();
+        } else if (v.getId() == viewBinding.outTv.getId()) {
+            logoutRequest();
+        }
+
+    }
+
+    /**
+     * 閫�鍑虹櫥褰曡姹傜殑鏂规硶
+     */
+    private void logoutRequest() {
+        HDLLinkPMUser.getInstance().logout(0);
+    }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java
index 779e64f..4f16261 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java
@@ -13,12 +13,9 @@
 import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
 
 import com.google.gson.Gson;
-import com.google.gson.JsonObject;
 import com.hdl.linkpm.sdk.core.exception.HDLException;
 import com.hdl.photovoltaic.R;
 import com.hdl.photovoltaic.bean.BaseEventBus;
-import com.hdl.photovoltaic.config.ConstantManage;
-import com.hdl.photovoltaic.config.UserConfigManage;
 import com.hdl.photovoltaic.databinding.FragmentHouseListBinding;
 import com.hdl.photovoltaic.base.CustomBaseFragment;
 import com.hdl.photovoltaic.enums.ShowErrorMode;
@@ -29,10 +26,10 @@
 import com.hdl.photovoltaic.other.HdlThreadLogic;
 import com.hdl.photovoltaic.other.HdlUniLogic;
 import com.hdl.photovoltaic.ui.adapter.HouseInfoAdapter;
-import com.hdl.photovoltaic.ui.bean.CloudInverterDeviceBean;
 import com.hdl.photovoltaic.ui.bean.HouseIdBean;
 import com.hdl.photovoltaic.uni.HDLUniMP;
 import com.hdl.photovoltaic.utils.PermissionUtils;
+import com.hdl.sdk.link.core.utils.mqtt.MqttRecvClient;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -66,7 +63,6 @@
     @Override
     public void onBindView(Bundle savedInstanceState) {
         manager = (CameraManager) _mActivity.getSystemService(Context.CAMERA_SERVICE);
-
         initData();
         //鍒濆鍖�
         initView();
@@ -141,11 +137,16 @@
         this.houseListBeanIDList.addAll(HdlResidenceLogic.getInstance().getHouseIdList());
     }
 
+    /**
+     * 鏀跺埌EventBUs閫氱煡
+     *
+     * @param eventBus 鏁版嵁
+     */
     @Override
     public void onEventMessage(BaseEventBus eventBus) {
         super.onEventMessage(eventBus);
-        //鏀跺埌EventBUs閫氱煡
-        if (ConstantManage.EVENTBUS_POST_HOME_CREATED.equals(eventBus.getType())) {
+        if (HDLUniMP.UNI_EVENT_REPLY_HOME_CREATION.equals(eventBus.getType())) {
+            //uin鍒涘缓鐢电珯鎴愬姛鍚庨�氱煡
             updateUIData(false);
             if (eventBus.getData() != null) {
                 Gson gson = new Gson();
@@ -153,6 +154,20 @@
                 HouseIdBean houseIdBean = gson.fromJson(json, HouseIdBean.class);
                 HdlResidenceLogic.getInstance().switchHouse(houseIdBean);
             }
+        } else if (HDLUniMP.UNI_EVENT_REPLY_HOME_CLOSE_HOME_DETAILS_PAGE.equals(eventBus.getType())) {
+            //uin鍏抽棴浣忓畢璇︽儏鐣岄潰閫氱煡
+            if (MqttRecvClient.getInstance() != null) {
+                MqttRecvClient.getInstance().removeAllTopic();
+            }
+        } else if (HDLUniMP.UNI_EVENT_REPLY_DEVICE_LIST.equals(eventBus.getType())) {
+            //杩涘幓浣忓畢璇︽儏璇诲彇閫嗗彉鍣ㄥ垪琛ㄦ垚鍔熷悗閫氱煡
+            for (int i = 0; i < HdlDeviceLogic.getInstance().getCurrentHomeGatewayList().size(); i++) {
+                //String gatewayId = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList().get(i).getGatewayId();
+                //瀛楃涓叉槸鑷繁鎸夎鍒欐嫾鎺ョ殑,閲岄潰娉ㄥ唽涓婚鏃朵細瑙f瀽瀛楃涓�,鍙嬁getGatewayId()鍊�;
+                //String topic = "/user/" + gatewayId+"/1";
+                //杩涘幓浣忓畢璇︽儏寮�濮嬭闃呬富棰�
+                MqttRecvClient.getInstance().checkAndsubscribeAllTopics("");
+            }
         }
     }
 

--
Gitblit v1.8.0