From ea0b1e8e5f43c5fd0a7d479e25ede3b8cbea464a Mon Sep 17 00:00:00 2001
From: wxr <wxr@hdlchina.com.cn>
Date: 星期一, 02 十二月 2024 17:17:19 +0800
Subject: [PATCH] tcp;可视对讲;

---
 HDL_ON/DAL/Server/HttpServerRequest.cs |  922 +++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 787 insertions(+), 135 deletions(-)

diff --git a/HDL_ON/DAL/Server/HttpServerRequest.cs b/HDL_ON/DAL/Server/HttpServerRequest.cs
index 16e19da..03a3acc 100644
--- a/HDL_ON/DAL/Server/HttpServerRequest.cs
+++ b/HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -3,9 +3,7 @@
 using System.IO;
 using System.Net;
 using System.Text;
-using HDL_ON.DAL.Mqtt;
 using HDL_ON.Entity;
-using HDL_ON.UI;
 using Newtonsoft.Json.Linq;
 
 namespace HDL_ON.DAL.Server
@@ -82,6 +80,30 @@
             return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_ArmSensorHistoricalData, requestJson);
         }
         /// <summary>
+        /// 鑾峰彇闂ㄩ攣鍘嗗彶璁板綍
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <param name="pageSize"></param>
+        /// <param name="pageNo"></param>
+        /// <returns></returns>
+        public ResponsePackNew GetVideoDoorlockHistory(string deviceId, string pageSize, string pageNo)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            d.Add("pageSize", pageSize);
+            d.Add("pageNo", pageNo);
+
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_ArmSensorHistoricalData, requestJson);
+        }
+
+
+
+
+
+
+        /// <summary>
         /// 璇诲彇鏈�杩戜竴涓湀鐨勬暟鎹�
         /// </summary>
         /// <returns></returns>
@@ -132,14 +154,14 @@
         public ResponsePackNew GetRegionByAccount(string account)
         {
             var requestJson = HttpUtil.GetSignRequestJson(new RegionByAccountObj() { account = account });
-            return HttpUtil.RequestHttpsPost(NewAPI.API_POST_GetRegionByAccount, requestJson, HttpUtil.GlobalRequestHttpsHost);
+            return HttpUtil.RequestHttpsPost(NewAPI.API_POST_GetRegionByAccount, requestJson, HttpUtil.Ins.GlobalRequestHttpsHost);
         }
 
         /// <summary>
         /// 鍒锋柊Token
         /// </summary>
         /// <returns></returns>
-        public string RefreshToken()
+        public string RefreshToken(bool canRefresh = true)
         {
             var requestJson = HttpUtil.GetSignRequestJson(new RefreshTokenObj()
             {
@@ -156,15 +178,26 @@
                 UserInfo.Current.SaveUserInfo();
 
 #if __IOS__
-                //var sdm = new SiriKit.SceneDateManager();
-                //sdm.AccessToken = UserInfo.Current.LoginTokenString;
-                //sdm.RefreshToken = UserInfo.Current.RefreshToken;
+                var sdm = new SiriKit.SceneDateManager();
+                sdm.AccessToken = UserInfo.Current.LoginTokenString;
+                sdm.RefreshToken = UserInfo.Current.RefreshToken;
 #endif
             }
             else if (revertObj.Code == StateCode.PasswrodError)
             {
                 UserInfo.Current.LastTime = DateTime.MinValue;
             }
+#if __IOS__
+            else if (revertObj.Code == "10001")
+            {
+                if (canRefresh)
+                {
+                    UserInfo.Current.RefreshToken = SiriKit.NSUserDefaultsHelper.DataSuite.StringForKey(SiriKit.NSUserDefaultsHelper.StorageKeys.GLOBAL_GRefreshToken);
+                    //UserInfo.Current.AccessToken = SiriKit.NSUserDefaultsHelper.DataSuite.StringForKey(SiriKit.NSUserDefaultsHelper.StorageKeys.GLOBAL_GAccessToken);
+                    RefreshToken(false);
+                }
+            }
+#endif
             return revertObj.Code;
         }
 
@@ -257,8 +290,8 @@
                 {
 
 #if __IOS__
-                    //var sdm = new SiriKit.SceneDateManager();
-                    //sdm.IsLgoin = true;
+                    var sdm = new SiriKit.SceneDateManager();
+                    sdm.IsLgoin = true;
 #endif
                 }
             }
@@ -286,8 +319,8 @@
                 {
 
 #if __IOS__
-                    //var sdm = new SiriKit.SceneDateManager();
-                    //sdm.IsLgoin = true;
+                    var sdm = new SiriKit.SceneDateManager();
+                    sdm.IsLgoin = true;
 #endif
                 }
             }
@@ -542,106 +575,88 @@
             var resultObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_Gethomepager, requestJson);
             if (resultObj.Code == StateCode.SUCCESS)
             {
-                try
+                UserInfo.Current.regionList = new List<RegionInfoRes>();
+                var homeList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<RegionInfoRes>>(resultObj.Data.ToString());
+                if (homeList == null || homeList.Count == 0)
                 {
-                    UserInfo.Current.regionList = new List<RegionInfoRes>();
-                    var homeList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<RegionInfoRes>>(resultObj.Data.ToString());
-                    if (homeList == null || homeList.Count == 0)
+                    if (DB_ResidenceData.Instance.CurrentRegion!=null && DB_ResidenceData.Instance.CurrentRegion.id != "")
                     {
-
-                        if (DB_ResidenceData.Instance.CurrentRegion != null && DB_ResidenceData.Instance.CurrentRegion.id != "")
+                        Shared.Application.RunOnMainThread(() =>
                         {
-                            Shared.Application.RunOnMainThread(() =>
-                            {
-                                try
-                                {
-                                    DriverLayer.UdpSocket._BusSocket.Stop();
-                                    MqttClient.DisConnectRemote("浣忓畢涓㈠け");
-                                    MainPage.GoUserPage(false);
-                                }
-                                catch { }
-                            });
-                            //DB_ResidenceData.Instance.CurrentRegion = null;
-                        }
-                        return "null";
+                            MainPage.GoUserPage(false);
+                        });
                     }
-                    else
+                }
+                else
+                {
+                    foreach (var home in homeList)
                     {
-                        foreach (var home in homeList)
+                        if (home.isBindGateway)//鏄惁缁戝畾缃戝叧
                         {
-                            if (home.isBindGateway)//鏄惁缁戝畾缃戝叧
+                            UserInfo.Current.regionList.Add(home);
+                            //鏂扮粦瀹氱殑浣忓畢锛岀洿鎺ュ垏鎹㈠埌鏂颁綇瀹�
+                            if (!string.IsNullOrEmpty(homeId))
                             {
-                                UserInfo.Current.regionList.Add(home);
-                                //鏂扮粦瀹氱殑浣忓畢锛岀洿鎺ュ垏鎹㈠埌鏂颁綇瀹�
-                                if (!string.IsNullOrEmpty(homeId))
+                                if (homeId.Contains(home.id))
                                 {
-                                    if (homeId.Contains(home.id))
-                                    {
-                                        DB_ResidenceData.Instance.CurrentRegion = home;
-                                    }
+                                    DB_ResidenceData.Instance.CurrentRegion = home;
                                 }
                             }
                         }
-                        if (UserInfo.Current.regionList.Count == 0)
+                    }
+                    if (UserInfo.Current.regionList.Count == 0)
+                    {
+                        Shared.Application.RunOnMainThread(() =>
+                        {
+                            MainPage.GoUserPage(false);
+                        });
+                        return "null";
+                    }
+                    //-------濡傛灉璐﹀彿鏄娆$櫥褰�
+                    if (DB_ResidenceData.Instance.CurrentRegion == null || string.IsNullOrEmpty(DB_ResidenceData.Instance.CurrentRegion.id))
+                    {
+                        //鍒锋柊褰撳墠浣忓畢
+                        DB_ResidenceData.Instance.CurrentRegion = UserInfo.Current.regionList[0];
+                        DB_ResidenceData.Instance.SaveResidenceData();
+                        UserInfo.Current.SaveUserInfo();
+                        //鍒锋柊涓�娆′綇瀹呯綉鍏�
+                        GetHomeGatewayList();
+                    }
+                    else
+                    {
+                        //浣忓畢琚垹闄�
+                        var findHome = UserInfo.Current.regionList.Find((obj) => obj.id == DB_ResidenceData.Instance.CurrentRegion.id);
+                        if (findHome == null)
                         {
                             Shared.Application.RunOnMainThread(() =>
                             {
-                                HDL_ON.DriverLayer.UdpSocket._BusSocket.Stop();
-                                MqttClient.DisConnectRemote("浣忓畢涓㈠け");
-                                MainPage.GoUserPage(false);
+                                DB_ResidenceData.Instance.CurrentRegion = UserInfo.Current.regionList[0];
+                                GetHomeGatewayList();
+                                DB_ResidenceData.Instance.SaveResidenceData();
+                                UserInfo.Current.SaveUserInfo();
+                                Action action = () =>
+                                {
+                                    MainPage.GoUserPage(true);
+                                };
+                                new UI.PublicAssmebly().TipMsg(StringId.Tip, StringId.ResidenceDeletedSwitchToAnotherResidence, action);
                             });
-                            return "null";//null琛ㄧず鏈変綇瀹咃紝浣嗘槸鍏ㄩ儴閮芥病鏈夌綉鍏筹紝杩欎釜涓嶈兘鍘绘帀
                         }
-                        //-------濡傛灉璐﹀彿鏄娆$櫥褰�
-                        if (DB_ResidenceData.Instance.CurrentRegion == null || string.IsNullOrEmpty(DB_ResidenceData.Instance.CurrentRegion.id))
+                        else
                         {
                             //鍒锋柊褰撳墠浣忓畢
-                            DB_ResidenceData.Instance.CurrentRegion = UserInfo.Current.regionList[0];
+                            DB_ResidenceData.Instance.CurrentRegion = findHome;
                             DB_ResidenceData.Instance.SaveResidenceData();
                             UserInfo.Current.SaveUserInfo();
                             //鍒锋柊涓�娆′綇瀹呯綉鍏�
                             GetHomeGatewayList();
                         }
-                        else
-                        {
-                            //浣忓畢琚垹闄�
-                            var findHome = UserInfo.Current.regionList.Find((obj) => obj.id == DB_ResidenceData.Instance.CurrentRegion.id);
-                            if (findHome == null)
-                            {
-                                Shared.Application.RunOnMainThread(() =>
-                                {
-                                    DB_ResidenceData.Instance.CurrentRegion = UserInfo.Current.regionList[0];
-                                    GetHomeGatewayList();
-                                    DB_ResidenceData.Instance.SaveResidenceData();
-                                    UserInfo.Current.SaveUserInfo();
-                                    Action action = () =>
-                                    {
-                                        MainPage.GoUserPage(true);
-                                    };
-                                    new UI.PublicAssmebly().TipMsg(StringId.Tip, StringId.ResidenceDeletedSwitchToAnotherResidence, action);
-                                });
-                            }
-                            else
-                            {
-                                //鍒锋柊褰撳墠浣忓畢
-                                DB_ResidenceData.Instance.CurrentRegion = findHome;
-                                DB_ResidenceData.Instance.SaveResidenceData();
-                                UserInfo.Current.SaveUserInfo();
-                                //鍒锋柊涓�娆′綇瀹呯綉鍏�
-                                GetHomeGatewayList();
-                            }
-                        }
+                    }
 
 #if __IOS__
-                        //var sdm = new SiriKit.SceneDateManager();
-                        //sdm.RegionUrl = DB_ResidenceData.Instance.CurrentRegion.regionUrl;
-                        //sdm.HomeId = DB_ResidenceData.Instance.CurrentRegion.id;
+                    var sdm = new SiriKit.SceneDateManager();
+                    sdm.RegionUrl = DB_ResidenceData.Instance.CurrentRegion.regionUrl;
+                    sdm.HomeId = DB_ResidenceData.Instance.CurrentRegion.id;
 #endif
-                    }
-                }
-                catch
-                {
-                    return "null";
                 }
             }
 
@@ -694,8 +709,8 @@
                         {
                             if (mHomeGatewayRes.Count > 0)
                             {
-                                DB_ResidenceData.Instance.HomeGateway = mHomeGatewayRes[0];
-                                DriverLayer.Control.Ins.GatewayOnline_Cloud = mHomeGatewayRes[0].gatewayStatus;
+                                DB_ResidenceData.Instance.HomeGateway = mHomeGatewayRes[0];//缃戝叧鐘舵��
+                                HDL_ON.DriverLayer.Control.Ins.GatewayOnline_Cloud = mHomeGatewayRes[0].gatewayStatus;
                                 DB_ResidenceData.Instance.SaveResidenceData();
                                 return revertObj.Code;
                             }
@@ -717,6 +732,34 @@
             }
         }
         /// <summary>
+        /// 鑾峰彇浣忓畢浜や粯閾炬帴
+        /// </summary>
+        /// <returns></returns>
+        public ResponsePackNew GetHouseDeliveryUrl()
+        {
+            var d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            var jsonString = HttpUtil.GetSignRequestJson(d);
+            var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.APi_Post_GetHoserDeliverUrl, jsonString);
+            return revertObj;
+        }
+        /// <summary>
+        /// 浣忓畢浜や粯鍥炴粴
+        /// </summary>
+        /// <returns></returns>
+        public ResponsePackNew RollBack()
+        {
+            var d = new Dictionary<string, object>();
+            d.Add("houseId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("communityId", DB_ResidenceData.Instance.CurrentRegion.communityId);
+            d.Add("flowRecordContent", "onPro浜や粯鍥炴粴");
+            d.Add("projectFlowRecordActionEnum", "DELIVERY_ROLLBACK");
+            var jsonString = HttpUtil.GetSignRequestJson(d);
+            var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.APi_Post_UpdateProjectDebugStatus, jsonString);
+            return revertObj;
+        }
+
+        /// <summary>
         /// 鑾峰彇缃戝叧淇℃伅
         /// </summary>
         public string GetGatewayInfo()
@@ -733,7 +776,7 @@
                 var mHomeGatewayRes = Newtonsoft.Json.JsonConvert.DeserializeObject<HomeGatewayInfo>(revertObj.Data.ToString());
                 if (mHomeGatewayRes != null)
                 {
-                    DriverLayer.Control.Ins.GatewayOnline_Cloud = mHomeGatewayRes.gatewayStatus;
+                    HDL_ON.DriverLayer.Control.Ins.GatewayOnline_Cloud = mHomeGatewayRes.gatewayStatus;
                 }
             }
             return revertObj.Code;
@@ -757,7 +800,7 @@
         {
             var requestObj = new ChildDeleteObj()
             {
-                childAccountId = subaccount.childAccountId,
+                childId = subaccount.id,
                 homeId = subaccount.homeId
             };
             var requestJson = HttpUtil.GetSignRequestJson(requestObj);
@@ -772,12 +815,11 @@
         /// <returns></returns>
         public ResponsePackNew EditSubAccountNickName(string nickName, string childAccountId)
         {
-            var requestJson = HttpUtil.GetSignRequestJson(new UpdateChildNickNameObj()
-            {
-                homeId = DB_ResidenceData.Instance.CurrentRegion.id,
-                childAccountId = childAccountId,
-                nickName = nickName,
-            });
+            var d = new Dictionary<string, string>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("childId", childAccountId);
+            d.Add("nickName", nickName);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
             return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Child_Update, requestJson);
 
         }
@@ -792,7 +834,7 @@
             var requestJson = HttpUtil.GetSignRequestJson(new UpdateChildAllowCreateSceneObj()
             {
                 homeId = DB_ResidenceData.Instance.CurrentRegion.id,
-                childAccountId = childAccountId,
+                childId = childAccountId,
                 isAllowCreateScene = isAllow,
             });
             return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Child_Update, requestJson);
@@ -1008,11 +1050,77 @@
         public ResponsePackNew BindResidenceMemberAccount(string subAccount, string nickName)
         {
             //娣诲姞瀛愯处鍙�
-            var requestObj = new ChildAddObj() { homeId = DB_ResidenceData.Instance.CurrentRegion.id, account = subAccount, nickName = nickName };
+            var requestObj = new ChildAddObj()
+            {
+                homeId = DB_ResidenceData.Instance.CurrentRegion.id,
+                account = subAccount,
+                nickName = nickName
+            };
             var requestJson = HttpUtil.GetSignRequestJson(requestObj);
             return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Child_Add, requestJson);
-
         }
+        //v1.7鏇存柊鎺ュ彛
+        public ResponsePackNew BindResidenceMemberAccount(string subAccount, string nickName,string faceUrl)
+        {
+            //娣诲姞瀛愯处鍙�
+
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("nickName", nickName);
+            if (!string.IsNullOrEmpty(subAccount))
+            {
+                d.Add("account", subAccount);
+            }
+            if (!string.IsNullOrEmpty(faceUrl))
+            {
+                d.Add("faceUrl", @"data:image/jpg;base64," + faceUrl);
+            }
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Child_Add, requestJson);
+        }
+        /// <summary>
+        /// 鍒犻櫎鎴愬憳璐﹀彿浜鸿劯鏁版嵁
+        /// </summary>
+        /// <param name="subAccount"></param>
+        /// <param name="nickName"></param>
+        /// <param name="faceUrl"></param>
+        /// <returns></returns>
+        public ResponsePackNew DeleteMemberFace( string childId)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("childId", childId);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Child_RemoveFace, requestJson);
+        }
+        /// <summary>
+        /// 鏇存柊鎴愬憳璐﹀彿浜鸿劯鏁版嵁
+        /// </summary>
+        public ResponsePackNew UpdataMemberFace(string childId, string faceUrl)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("childId", childId);
+            d.Add("userFace", @"data:image/jpg;base64," + faceUrl);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Child_UpdateFace, requestJson);
+        }
+        /// <summary>
+        /// 瀹跺涵鎴愬憳缁戝畾璐﹀彿
+        /// </summary>
+        /// <param name="childId"></param>
+        /// <param name="faceUrl"></param>
+        /// <returns></returns>
+        public ResponsePackNew SubChildBindAccount(string childId, string account)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("childId", childId);
+            d.Add("account", account);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Child_BindAccount, requestJson);
+        }
+        
 
         /// <summary>
         /// 淇敼浣忓畢璋冭瘯鏉冮檺
@@ -1078,7 +1186,7 @@
 #endif
                 //鏄惁鐢熶骇妯″紡
                 bool isProduce = true;
-                if (HttpUtil.GlobalRequestHttpsHost == "https://test-gz.hdlcontrol.com")
+                if (HttpUtil.Ins.GlobalRequestHttpsHost == "https://test-gz.hdlcontrol.com")
                 {
                     isProduce = false;
                 }
@@ -1430,12 +1538,14 @@
         }
 #endregion
 
-#region 鑾峰彇澶╂皵閮ㄥ垎
+        #region 鑾峰彇澶╂皵閮ㄥ垎
         /// <summary>
         /// 鑾峰彇鎸囧畾缁忕含搴︾殑鍩庡競淇℃伅澶╂皵淇℃伅
         /// </summary>
         public void GetCityWeatherInfo(string lon, string lat)
         {
+            if (lon == "0" || lat == "0")
+                return;
             MainPage.cityInfo.lon = lon;
             MainPage.cityInfo.lat = lat;
 
@@ -1481,6 +1591,7 @@
                             MainPage.cityInfo.lowestTemperature = jt.GetValue("lowestTemperature").ToString();
                             MainPage.cityInfo.highestTemperature = jt.GetValue("highestTemperature").ToString();
                             MainPage.CityWeatherAction?.Invoke();
+                            HDL_ON.UI.HomePage.LoadEvent_RefreshAir();
                             break;
                         }
                         catch (Exception ex)
@@ -1490,14 +1601,6 @@
                     }
                     System.Threading.Thread.Sleep(5000);
                 }
-                Shared.Application.RunOnMainThread(() =>
-                {
-                    try
-                    {
-                        HDL_ON.UI.HomePage.LoadEvent_RefreshAir();
-                    }
-                    catch { }
-                });
             });
         }
         ///// <summary>
@@ -2109,7 +2212,7 @@
         /// <param name="productPlatform"></param>
         /// <param name="productBrand"></param>
         /// <returns></returns>
-        public ResponsePackNew IndependentRegister3TyDevcie(string spk, string extDevId, string deviceName, string pairCode = "")
+        public ResponsePackNew IndependentRegister3TyDevcie(string spk, string extDevId, string deviceName,string productBrandIdentity, string pairCode = "")
         {
             Dictionary<string, object> d = new Dictionary<string, object>();
             d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
@@ -2117,6 +2220,7 @@
             d.Add("extDevId", extDevId);
             d.Add("name", deviceName);
             d.Add("code", pairCode);
+            d.Add("productBrandIdentity", productBrandIdentity);
 
 
             var requestJson = HttpUtil.GetSignRequestJson(d);
@@ -2195,7 +2299,7 @@
             d.Add("actions", actionObjs);
 
             var requestJson = HttpUtil.GetSignRequestJson(d);
-            MainPage.Log($"api鍔熻兘鎺у埗锛歿requestJson}");
+            MainPage.Log($"api鍙戦�佹帶鍒讹細{requestJson}");
             return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_ControlDevice, requestJson);
         }
         /// <summary>
@@ -2215,6 +2319,23 @@
             var requestJson = HttpUtil.GetSignRequestJson(d);
             return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_EditDevice, requestJson);
         }
+
+        /// <summary>
+        /// 缂栬緫璁惧淇℃伅
+        /// 缁戝畾鍏崇郴銆佸悕绉般�佹敹钘�
+        /// </summary>
+        /// <returns></returns>
+        public ResponsePackNew UpdataDevcieName(string deviceId,string name)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            d.Add("name", name);
+
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_EditDevice, requestJson);
+        }
+
         /// <summary>
         /// 缂栬緫璁惧淇℃伅
         /// 缁戝畾鍏崇郴銆佸悕绉般�佹敹钘�
@@ -2357,7 +2478,7 @@
 
 #endregion
 
-#region Kaede --鍦烘櫙鍔熻兘--------------------------
+        #region Kaede --鍦烘櫙鍔熻兘--------------------------
         /// <summary>
         /// 鑾峰彇鍦烘櫙鍒楄〃
         /// 鎴块棿ID鍙┖锛岄粯璁ゆ煡璇綇瀹呬笅鎵�鏈夋埧闂�
@@ -2489,9 +2610,9 @@
             var requestJson = HttpUtil.GetSignRequestJson(d);
             return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_CancelCollectScene, requestJson).Code;
         }
-#endregion
+        #endregion
 
-#region Kaede --鎴块棿鍔熻兘--------------------------
+        #region Kaede --鎴块棿鍔熻兘--------------------------
         /// <summary>
         /// 鑾峰彇鎴块棿鍒楄〃
         /// </summary>
@@ -2566,10 +2687,10 @@
             return pack;
         }
 
-#endregion
+        #endregion
 
 
-#region Kaede -- 瀹夐槻鎺ュ彛____________________________
+        #region Kaede -- 瀹夐槻鎺ュ彛____________________________
         /// <summary>
         /// 鑾峰彇瀹夐槻鍒楄〃
         /// </summary>
@@ -2733,10 +2854,10 @@
             return pack;
         }
 
-#endregion
+        #endregion
 
 
-#region Kaede --绗笁鏂瑰搧鐗屽姛鑳�--------------------------
+        #region Kaede --绗笁鏂瑰搧鐗屽姛鑳�--------------------------
         /// <summary>
         /// 鑾峰彇绗笁鏂瑰搧鐗屽垪琛�
         /// </summary>
@@ -2766,13 +2887,11 @@
         /// <returns></returns>
         public ResponsePackNew Search3tyIotDevice(string companyId)
         {
-
             Dictionary<string, object> d = new Dictionary<string, object>();
             d.Add("companyId", companyId);
             var requestJson = HttpUtil.GetSignRequestJson(d);
 
             var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_Search3tyIotDevice, requestJson);
-
             return pack;
         }
 
@@ -2848,9 +2967,9 @@
             return pack;
         }
 
-#endregion
+        #endregion
 
-#region 鈻� 钀ょ煶浜慡DK鐩稿叧鎺ュ彛_________________________
+        #region 鈻� 钀ょ煶浜慡DK鐩稿叧鎺ュ彛_________________________
         /// <summary>
         /// 娌充笢鑾峰彇钀ょ煶浜戝瓙璐﹀彿token鐨勬帴鍙�
         /// 2021-07-07 鏂版柟妗堟帴鍙h皟鏁村鎺�
@@ -2863,10 +2982,10 @@
             var requestJson = HttpUtil.GetSignRequestJson(d);
             return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_EZ_GetChildToken, requestJson);
         }
-#endregion
+        #endregion
 
 
-#region 鈻� 鍙瀵硅_________________________
+        #region 鈻� 鍙瀵硅_________________________
         /// <summary>
         /// 妫�鏌ヤ綇瀹呮槸鍚︾粦瀹氫赴鏋�
         /// </summary>
@@ -2898,9 +3017,25 @@
 
         }
 
-#endregion
+        /// <summary>
+        /// 鑾峰彇绗笁鏂规敞鍐岀殑id
+        /// </summary>
+        /// <param homeId="homeId">浣忓畢id</param>
+        /// <returns></returns>
+        public ResponsePackNew GetExtUserId(string homeId)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", homeId);
 
-#region 鈻� 闂ㄩ攣鐩稿叧____________________________
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetExtUserId, requestJson);
+
+            return pack;
+        }
+
+        #endregion
+
+        #region 鈻� 闂ㄩ攣鐩稿叧____________________________
 
         /// <summary>
         /// 鑾峰彇闂ㄩ攣鍘嗗彶璁板綍(鎸夋棩鏈熼檷搴�)
@@ -2968,9 +3103,383 @@
             //IMessageCommon.Current.ShowErrorInfoAlter(responePack.Code);
             return listSortLog;
         }
+        /// <summary>
+        /// 鑾峰彇闂ㄩ攣涓存椂瀵嗙爜
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <returns></returns>
+        public ResponsePackNew GetDoorTempPassword(string deviceId)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetTempPasswrod, requestJson);
+        }
+        /// <summary>
+        /// 鍒涘缓闂ㄩ攣涓存椂瀵嗙爜
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <returns></returns>
+        public ResponsePackNew CreateDoorTempPassword(string deviceId,string beginTime,string endTime)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            d.Add("beginTime", beginTime);
+            d.Add("endTime", endTime);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_CreateTempPasswrod, requestJson);
+        }
+        /// <summary>
+        /// 鍒犻櫎闂ㄩ攣涓存椂瀵嗙爜
+        /// </summary>
+        /// <returns></returns>
+        public ResponsePackNew DelDoorTempPassword(string deviceId, string pwdId)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            d.Add("pwdId", pwdId);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_DelTempPasswrod, requestJson);
+        }
 
-#endregion
-#region 鈻� 闊崇璇█鎺у埗鐩稿叧_________________________
+
+        #region 瑙嗛闂ㄩ攣  2023-07-07 16:47:20
+        /// <summary>
+        /// 鑾峰彇钀ょ煶闂ㄩ攣鐢ㄦ埛鍒楄〃
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <returns></returns>
+        public ResponsePackNew GetDoorlockUserList(string deviceId)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetDoorlockUserList, requestJson);
+        }
+
+        /// <summary>
+        /// 淇敼闂ㄩ攣鐢ㄦ埛澶囨敞
+        /// </summary>
+        /// <returns></returns>
+        public ResponsePackNew EditDoorlockUserName(string deviceId,string lockUserIndex,string remarkName)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            d.Add("lockUserIndex", lockUserIndex);
+            d.Add("remarkName", remarkName);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_setDoorUserRemark, requestJson);
+        }
+
+        /// <summary>
+        /// 鍒犻櫎闂ㄩ攣鐢ㄦ埛鏁板瓧瀵嗙爜
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <param name="lockUserIndex"></param>
+        /// <returns></returns>
+        public ResponsePackNew DeleteDoorlockUserNumberPassword(string deviceId, string lockUserIndex)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            d.Add("lockUserIndex", lockUserIndex);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_DeleteDoorlockUser_NumberPassword, requestJson);
+        }
+
+        /// <summary>
+        /// 鍒犻櫎闂ㄩ攣鐢ㄦ埛鍗″瘑鐮�
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <param name="lockUserIndex"></param>
+        /// <returns></returns>
+        public ResponsePackNew DeleteDoorlockUserCardPassword(string deviceId, string lockUserIndex)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            d.Add("lockUserIndex", lockUserIndex);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_DeleteDoorlockUser_DeleteCardPassword, requestJson);
+        }
+
+        /// <summary>
+        /// 鍒犻櫎闂ㄩ攣鐢ㄦ埛鎸囩汗瀵嗙爜
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <param name="lockUserIndex"></param>
+        /// <returns></returns>
+        public ResponsePackNew DeleteDoorlockUserFingerPassword(string deviceId, string lockUserIndex)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            d.Add("lockUserIndex", lockUserIndex);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_DeleteDoorlockUser_DeleteFingerPassword, requestJson);
+        }
+
+        /// <summary>
+        /// 鍒犻櫎闂ㄩ攣鐢ㄦ埛浜鸿劯瀵嗙爜
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <param name="lockUserIndex"></param>
+        /// <returns></returns>
+        public ResponsePackNew DeleteDoorlockUserFacePassword(string deviceId, string lockUserIndex)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            d.Add("lockUserIndex", lockUserIndex);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_DeleteDoorlockUser_DeleteFacePassword, requestJson);
+        }
+
+
+        /// <summary>
+        /// 鍒犻櫎闂ㄩ攣鐢ㄦ埛
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <param name="lockUserIndex"></param>
+        /// <returns></returns>
+        public ResponsePackNew DeleteDoorlockUser(string deviceId, string lockUserIndex)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            d.Add("lockUserIndex", lockUserIndex);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_DeleteDoorlockUser_DeleteUser, requestJson);
+        }
+
+        /// <summary>
+        /// 鏌ヨ鎸夐敭涓ゆ寮�闂�
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <returns></returns>
+        public ResponsePackNew GetDoubleClickOpenDoorSwitch(string deviceId)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetDoubleClickOpenDoorSwitch, requestJson);
+        }
+        /// <summary>
+        /// 璁剧疆鎸夐敭涓ゆ寮�闂�
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <param name="enabled">鎸夐敭涓ゆ寮�闂ㄥ紑鍏� 0-鍏抽棴,1娆℃寜閿紑闂� 1-寮�鍚紝2娆℃寜閿紑闂�</param>
+        /// <returns></returns>
+        public ResponsePackNew SetDoubleClickOpenDoorSwitch(string deviceId,int enabled)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            d.Add("enabled", enabled);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_SetDoubleClickOpenDoorSwitch, requestJson);
+        }
+
+        /// <summary>
+        /// 鏌ヨ绔ラ攣寮�鍏�
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <returns></returns>
+        public ResponsePackNew GetChildLockSwitch(string deviceId)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetChildLockSwitch, requestJson);
+        }
+        /// <summary>
+        /// 璁剧疆绔ラ攣寮�鍏�
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <param name="enabled">绔ラ攣寮�鍏� 0-鍏抽棴 1-寮�鍚�</param>
+        /// <returns></returns>
+        public ResponsePackNew SetChildLockSwitch(string deviceId, int enabled)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            d.Add("enabled", enabled);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_SetChildLockSwitch, requestJson);
+        }
+
+
+        /// <summary>
+        /// 鏌ヨ鍙嶉攣閰嶇疆
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <returns></returns>
+        public ResponsePackNew GetAntiLockCfg(string deviceId)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetAntiLockCfg, requestJson);
+        }
+        /// <summary>
+        /// 璁剧疆鍙嶉攣閰嶇疆
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <param name="enabled"></param>
+        /// <returns></returns>
+        public ResponsePackNew SetAntiLockCfg(string deviceId, bool enabled)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            d.Add("enabled", enabled);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_SetAntiLockCfg, requestJson);
+        }
+
+
+        /// <summary>
+        /// 鏌ヨ甯冩挙闃茬姸鎬�
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <returns></returns>
+        public ResponsePackNew GetDefenceStatus(string deviceId)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetDefenceStatus, requestJson);
+        }
+        /// <summary>
+        /// 璁剧疆甯冩挙闃茬姸鎬�
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <param name="armStatus">甯冮槻鐘舵�� disarmed-鎾ら槻 armed-宸插竷闃�</param>
+        /// <param name="defenceMode">甯冮槻妯″紡 global-鍏ㄥ眬 atHome-鍦ㄥ outDoor-澶栧嚭 sleep-鐫$湢</param>
+        /// <returns></returns>
+        public ResponsePackNew SetDefenceStatus(string deviceId, bool defance)//,string defenceMode)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            if(defance)
+                d.Add("armStatus", "armed");
+            else
+                d.Add("armStatus", "disarmed");
+            d.Add("defenceMode", "global");
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_SetDefenceStatus, requestJson);
+        }
+
+        /// <summary>
+        /// 鏌ヨ浜鸿劯寮�閿侀厤缃�
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <returns></returns>
+        public ResponsePackNew GetFaceUnlockCfg(string deviceId)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetFaceRecognitionUnlockCfg, requestJson);
+        }
+        /// <summary>
+        /// 璁剧疆浜鸿劯寮�閿侀厤缃�
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <param name="enabled"></param>
+        /// <param name="mode">瑙i攣鏂瑰紡 0-鑷姩 1-鎵嬪姩</param>
+        /// <returns></returns>
+        public ResponsePackNew SetFaceUnlockCfg(string deviceId, bool enabled,int mode)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            d.Add("enabled", enabled);
+            d.Add("mode", mode);//瑙i攣鏂瑰紡 0-鑷姩 1-鎵嬪姩
+            d.Add("sensitivity", 0);//鐏垫晱搴� 0-楂� 1-浣�
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_SetFaceRecognitionUnlockCfg, requestJson);
+        }
+
+        /// <summary>
+        /// 鏌ヨ闂ㄩ攣绯荤粺澹伴煶
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <returns></returns>
+        public ResponsePackNew GetDoorLockSystemSound(string deviceId)
+        {
+            var d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetDoorLockSystemSound, requestJson);
+        }
+
+        /// <summary>
+        /// 璁剧疆闂ㄩ攣绯荤粺澹伴煶
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <param name="sound"></param>
+        /// <returns></returns>
+        public ResponsePackNew SetDoorLockSystemSound(string deviceId,int sound)
+        {
+            var d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            d.Add("sound", sound);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_SetDoorLockSystemSound, requestJson);
+        }
+
+        /// <summary>
+        /// 鏌ヨ闂ㄩ搩鎻愮ず闊�
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <returns></returns>
+        public ResponsePackNew GetDoorBellTone(string deviceId)
+        {
+            var d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetDoorBellTone, requestJson);
+        }
+
+        /// <summary>
+        /// 璁剧疆闂ㄩ搩鎻愮ず闊�
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <param name="volume"></param>
+        /// <returns></returns>
+        public ResponsePackNew SetDoorBellTone(string deviceId, int volume)
+        {
+            var d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceId", deviceId);
+            d.Add("volume", volume);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_SetDoorBellTone, requestJson);
+        }
+
+
+
+
+        #endregion
+
+        #endregion
+
+        #region 鈻� 闊崇璇█鎺у埗鐩稿叧_________________________
         /// <summary>
         /// 鑾峰彇宸叉巿鏉冪殑闊崇鍒楄〃
         /// </summary>
@@ -3034,7 +3543,7 @@
             var requestJson = HttpUtil.GetSignRequestJson(updateSpeakerDeviceListObj);
             return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Speaker_DeviceList_Update, requestJson);
         }
-#endregion
+        #endregion
 
         /// <summary>
         /// 缁戝畾source闈㈡澘
@@ -3097,12 +3606,7 @@
         }
 
 
-
-
-
-
-
-#region 鍏変紡鍌ㄨ兘
+        #region 鍏変紡鍌ㄨ兘
         /// <summary>
         /// 鑾峰彇浣忓畢涓嬮�嗗彉鍣ㄥ垪琛�
         /// </summary>
@@ -3127,7 +3631,155 @@
             var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetInverter_StatisticsInfo, requestJson);
             return pack;
         }
-#endregion
+        #endregion
+
+
+        #region 缇ゆ帶锛岀粍鍚堣皟鍏�
+        /// <summary>
+        /// 鑾峰彇缇ゆ帶绫诲瀷
+        /// </summary>
+        /// <param name="spk"></param>
+        /// <returns></returns>
+        public ResponsePackNew GetGroupControlTypes(string spk)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("spk", spk);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetGroupControlTypes, requestJson);
+            return pack;
+        }
+        /// <summary>
+        /// 鑾峰彇缇ゆ帶鍒楄〃
+        /// </summary>
+        /// <param name="spk"></param>
+        /// <returns></returns>
+        public ResponsePackNew GetGroupControlList()
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetGroupControlListByHome, requestJson);
+            return pack;
+        }
+        /// <summary>
+        /// 鑾峰彇缇ゆ帶璇︽儏
+        /// </summary>
+        public ResponsePackNew GetGroupControInfo(string userDeviceGroupControlIds)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            var ids = new List<string>()
+            {
+                userDeviceGroupControlIds,
+            };
+            d.Add("userDeviceGroupControlIds", ids);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetGroupControlInfos, requestJson);
+            return pack;
+        }
+        /// <summary>
+        /// 鑾峰彇缇ゆ帶璇︽儏
+        /// </summary>
+        public ResponsePackNew GetGroupControInfo(List<string> ids)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("userDeviceGroupControlIds", ids);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetGroupControlInfos, requestJson);
+            return pack;
+        }
+
+        /// <summary>
+        /// 娣诲姞缇ゆ帶鍒楄〃
+        /// </summary>
+        public ResponsePackNew AddGroupControl(List<GroupControl> groupControls)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("gatewayId", DB_ResidenceData.Instance.HomeGateway.gatewayId);
+            d.Add("infos", groupControls);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_AddGroupControl, requestJson);
+            return pack;
+        }
+
+
+        /// <summary>
+        /// 娣诲姞缇ゆ帶鍒楄〃
+        /// </summary>
+        public ResponsePackNew DelGroupControl(string groupControlId)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("userDeviceGroupControlIds", new List<string>() { groupControlId });
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_DeleteGroupControl, requestJson);
+            return pack;
+        }
+
+        /// <summary>
+        /// 缂栬緫缇ゆ帶鍒楄〃
+        /// </summary>
+        /// <param name="spk"></param>
+        /// <returns></returns>
+        public ResponsePackNew EditGroupControl(List<GroupControl> groupControls)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            //d.Add("gatewayId", DB_ResidenceData.Instance.HomeGateway.gatewayId);
+            d.Add("infos", groupControls);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_UpdateGroupControl, requestJson);
+            return pack;
+        }
+
+
+        /// <summary>
+        /// 缇ゆ帶鎺у埗
+        /// </summary>
+        public ResponsePackNew ControlGroupControl(string userDeviceGroupControlId, Dictionary<string, object> pair)
+        {
+            var d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("userDeviceGroupControlId", userDeviceGroupControlId);
+            List<Dictionary<string, object>> dd = new List<Dictionary<string, object>>();
+            dd.Add(pair);
+            d.Add("status",dd);
+
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_ControlGroupControl, requestJson);
+            return pack;
+        }
+
+        /// <summary>
+        /// 鏀惰棌缇ゆ帶
+        /// </summary>
+        public ResponsePackNew CollectGroupControl(string groupControlId)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("userDeviceGroupControlIds", new List<string>() { groupControlId });
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_CollectGroupControl, requestJson);
+            return pack;
+        }
+
+
+        /// <summary>
+        /// 鍙栨秷鏀惰棌缇ゆ帶
+        /// </summary>
+        public ResponsePackNew CancelCollectGroupControl(string groupControlId)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("userDeviceGroupControlIds", new List<string>() { groupControlId });
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_CancelCollectGroupControl, requestJson);
+            return pack;
+        }
+
+        #endregion
 
     }
 }
\ No newline at end of file

--
Gitblit v1.8.0