using System; using System.Collections.Generic; using System.IO; using System.Net; using System.Text; using HDL_ON.Entity; using Newtonsoft.Json.Linq; namespace HDL_ON.DAL.Server { public partial class HttpServerRequest { /* * json格式 "{" + "\"sss\":" + "\"" + sss + "\"" + "," + "\"xxx\":" + xxx + "," + "}"; 获取返回的数据 var sss = Newtonsoft.Json.Linq.JObject.FromObject("sss"); var xxx = homeJsonStr.GetValue("xxx").ToString(), Dictionary d = new Dictionary(); d.Add("Id", fId); var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d); */ string severAddress = "https://global.hdlcontrol.com/ProposedProductionApi"; public HttpServerRequest() { } #region kaede ___________传感器历史数据__________________ /// /// 获取传感器历史数据 /// /// 时间查询类型:hour=近24小时、week=近一周、month = 近一月 /// 设备ID /// 功能查询类型:pm25 /// 具体查询的日期,金茂温控器使用 /// public ResponsePackNew GetSensorHistory(string qType, string deviceId, string deviceKey, string time = "") { Dictionary d = new Dictionary(); d.Add("type", qType); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("deviceId", deviceId); d.Add("key", deviceKey); if (time != "") { d.Add("time", time); } var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_EnvironmentalSensorHistoricalData, requestJson); } /// /// 获取安防传感器历史数据 /// /// 设备ID /// 页面大小 /// 页号 /// public ResponsePackNew GetArmSensorHistory(string deviceId, string pageSize, string pageNo) { Dictionary d = new Dictionary(); 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); } /// /// 读取最近一个月的数据 /// /// public ResponsePackNew GetLastMonthHistory(string deviceId, string key) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("deviceId", deviceId); d.Add("key", key); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_SensorLastMonthHistoricalData, requestJson); } #endregion //public string GetRequestResultMsg(string resultCode) //{ // string result = ""; // switch (resultCode.ToUpper()) // { // case "USERNAMEORPWDERROR": // result = Language.StringByID(StringId.LoginFailed_AccountOrPasswordError); // break; // case "ACCOUNTNOEXISTS": // result = Language.StringByID(StringId.ACCOUNTNOEXISTS); // break; // case "SENDFAIL": // result = Language.StringByID(StringId.FailedToSendVerificationCode); // break; // case "EXIST": // result = Language.StringByID(StringId.AccountAlreadyUse); // break; // case "Self:Net_Error": // result = Language.StringByID(StringId.NetworkAnomaly); // break; // } // return result; //} #region ■ 通用请求接口_______________________ /// /// 根椐用户账号获取注册区域 免登录 // 检测账号是否注册也用这个接口 /// /// /// public ResponsePackNew GetRegionByAccount(string account) { var requestJson = HttpUtil.GetSignRequestJson(new RegionByAccountObj() { account = account }); return HttpUtil.RequestHttpsPost(NewAPI.API_POST_GetRegionByAccount, requestJson, HttpUtil.GlobalRequestHttpsHost); } /// /// 刷新Token /// /// public string RefreshToken() { var requestJson = HttpUtil.GetSignRequestJson(new RefreshTokenObj() { refreshToken = UserInfo.Current.RefreshToken, }); var revertObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_Login, requestJson); if (revertObj.Code.ToUpper() == StateCode.SUCCESS) { var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject(revertObj.Data.ToString()); UserInfo.Current.LoginTokenString = revertData.headerPrefix + revertData.accessToken; UserInfo.Current.AccessToken = revertData.accessToken; UserInfo.Current.RefreshToken = revertData.refreshToken; UserInfo.Current.LastTime = DateTime.Now; UserInfo.Current.SaveUserInfo(); #if __IOS__ 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; } return revertObj.Code; } #endregion /// /// 绑定调试人员提交的住宅,一个住宅只能绑定一次 /// /// public ResponsePackNew BindingResidence(string strUrl) { try { if (strUrl.Contains("app/home/deliver") == false) { //非法的URL 返回一个自定义的状态码 return new ResponsePackNew() { Code = "-100" }; } var client = new RestSharp.RestClient(strUrl); var request = new RestSharp.RestRequest(RestSharp.Method.GET); request.Timeout = 5 * 1000; request.AddHeader("content-type", "application/json"); request.AddHeader("Authorization", UserInfo.Current.LoginTokenString); var response = client.Execute(request); if (response.StatusCode == HttpStatusCode.OK) { return Newtonsoft.Json.JsonConvert.DeserializeObject(response.Content); } else { return null; } } catch { return null; } } #region 注册、登录部分 /// /// 通用 发送验证码方法 /// /// 1:注册 2:找回密码 3:绑定4:验证码登陆 5:敏感数据 /// 邮箱或者手机号 /// 是否手机 /// 手机国家区号 /// public ResponsePackNew VerificationCodeSend(VerifyType verifyType, string account, bool isPhone = false, string phoneZoneCode = "86") { var requestObj = new VerifyCodeSendObj() { verifyType = (int)verifyType, languageType = Utlis.GetPostLanguageType() }; // 是否是手机 if (isPhone) { requestObj.phone = account; requestObj.phonePrefix = phoneZoneCode; } else { requestObj.mail = account; } // 超时时间设置为20秒,应该测试海外服务器发送验证码响应时间很久 var requestJson = HttpUtil.GetSignRequestJson(requestObj); return HttpUtil.RequestHttpsPost(NewAPI.API_POST_Verification_Send, requestJson, "", "", HttpUtil.TIME_OUT_LONG); } /// /// 账号登录-使用密码 /// /// 账号 /// 密码 /// public ResponsePackNew LoginByPassword(string account, string password) { var requestJson = HttpUtil.GetSignRequestJson(new LoginObj() { account = account, loginPwd = password }); var pack = HttpUtil.RequestHttpsPost(NewAPI.API_POST_Login, requestJson); if (pack != null) { if (pack.Code == StateCode.SUCCESS) { #if __IOS__ var sdm = new SiriKit.SceneDateManager(); sdm.IsLgoin = true; #endif } } return pack; } /// /// 验证码登录 /// /// 账号 /// 验证码 /// public ResponsePackNew LoginValidCode(string account, string vCode) { var requestJson = HttpUtil.GetSignRequestJson(new LoginObj() { account = account, verifyCode = vCode, grantType = "verify" }); var pack = HttpUtil.RequestHttpsPost(NewAPI.API_POST_Login, requestJson); if (pack != null) { if (pack.Code == StateCode.SUCCESS) { #if __IOS__ var sdm = new SiriKit.SceneDateManager(); sdm.IsLgoin = true; #endif } } return pack; } /// /// 验证短信或者邮箱验证码,之后注册 /// /// 邮箱或者手机号 /// 密码 /// 验证码 /// 是否手机 /// public ResponsePackNew ValidataCodeAndRegister(string account, string password, string code, bool isPhone = false) { var requestObj = new RegisterObj() { loginPwd = password, verifyCode = code };//, memberName = account if (isPhone) { requestObj.memberPhone = account; } else { requestObj.memberEmail = account; } var requestJson = HttpUtil.GetSignRequestJson(requestObj); return HttpUtil.RequestHttpsPost(NewAPI.API_POST_Member_Register, requestJson); } /// /// 忘记密码,重置密码 /// /// 邮箱或者手机号 /// 新密码 /// 验证码 /// 是否手机账号 /// public ResponsePackNew ForgetPassword(string account, string password, string vCode, bool isPhone) { var requestObj = new ForgetPwdObj() { verifyCode = vCode, loginPwd = password }; if (isPhone) { //手机忘记密码 requestObj.memberPhone = account; } else { //邮箱忘记密码 requestObj.memberEmail = account; } var requestJson = HttpUtil.GetSignRequestJson(requestObj); return HttpUtil.RequestHttpsPost(NewAPI.API_POST_Member_ForgetPwd, requestJson); } /// /// 修改密码 /// /// /// /// public ResponsePackNew UpdataPassword(string loginPwd,string loginNewPwd) { Dictionary d = new Dictionary(); d.Add("loginPwd", loginPwd); d.Add("loginNewPwd", loginNewPwd); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPost(NewAPI.API_POST_Update_Pwd, requestJson); } /// /// 验证验证码 /// /// 验证类型 /// 验证账号 /// 验证码 /// 是否手机 /// 验证通过后,验证码是否失效 /// public ResponsePackNew ValidatorCode(VerifyType verifyType, string account, string code, bool isPhone, bool verifySuccessFail = true) { var requestObj = new VerifyCodeCheckObj() { verifyCode = code, verifyType = (int)verifyType, verifySuccessFail = verifySuccessFail }; if (isPhone) { //手机 requestObj.phone = account; } else { //邮箱 requestObj.mail = account; } var requestJson = HttpUtil.GetSignRequestJson(requestObj); return HttpUtil.RequestHttpsPost(NewAPI.API_POST_Verification_Check, requestJson); } #endregion #region 个人信息部分 /// /// 获取用户信息 /// /// public string GetUserInfo(bool bGetHeadImage = true) { var requestJson = HttpUtil.GetSignRequestJson(new NullObj()); var resultObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_Member_GetMemberInfo, requestJson); if (resultObj.Code == StateCode.SUCCESS) { var info = Newtonsoft.Json.JsonConvert.DeserializeObject(resultObj.Data.ToString()); UserInfo.Current.userEmailInfo = info.memberEmail; UserInfo.Current.userMobileInfo = info.memberPhone; UserInfo.Current.userName = info.memberName; if (!string.IsNullOrEmpty(info.memberPhonePrefix)) { UserInfo.Current.areaCode = info.memberPhonePrefix; } //是否需要获取头像 if (bGetHeadImage) { //2020-12-15 修改头像方案 if (!string.IsNullOrEmpty(info.memberHeadIcon)) { var headImageBytes = ImageUtlis.Current.DownHeadImageByImageKey(info.memberHeadIcon); if (headImageBytes != null && headImageBytes.Length > 0) { UserInfo.Current.headImagePagePath = info.memberHeadIcon; //UserInfo.Current.headImagePagePath = imageKey; } } } UserInfo.Current.SaveUserInfo(); MainPage.Log("获取用户信息成功。"); } return resultObj.Code; } /// /// 获取用户头像 /// /// public void GetUserHeadImageByKey(string imageKey) { var headImageBytes = ImageUtlis.Current.DownHeadImageByImageKey(imageKey); if (headImageBytes != null && headImageBytes.Length > 0) { //UserInfo.Current.headImagePageBytes = headImageBytes; UserInfo.Current.headImagePagePath = imageKey; } } /// /// 更新用户昵称 /// /// /// public ResponsePackNew EditUserName(string userName) { var requestJson = HttpUtil.GetSignRequestJson(new UpdateMemberNameRes() { memberName = userName }); return HttpUtil.RequestHttpsPost(NewAPI.API_POST_Member_UpdateMemberInfo, requestJson); } ///// ///// 更新用户头像 ///// ///// ///// //public ResponsePackNew UpdateMemberHeadIcon(string memberHeadIcon) //{ // var requestJson = HttpUtil.GetSignRequestJson(new UpdateMemberHeadIconRes() // { // memberHeadIcon = memberHeadIcon // }); // return HttpUtil.RequestHttpsPost(NewAPI.API_POST_Member_UpdateMemberInfo, requestJson); //} ///// ///// 更新用户头像 ///// ///// ///// //public string UpdataUserHeadImage(string fileName) //{ // byte[] bytes = Shared.IO.FileUtils.ReadFile(fileName); // var revertObj = HttpUtil.RequestHttpsUpload(RestSharp.Method.POST, NewAPI.API_POST_Head_Upload, bytes); // return revertObj.Code; //} /// /// 更改绑定账户的邮箱或者手机号 /// 2020-11-16 待修改 /// /// /// /// /// public string BindAccount(string account, string code = "", bool isPhone = false) { var requestObj = new BindWithAccountObj() { verifyCode = code }; if (isPhone) { //手机 requestObj.memberPhone = account; } else { //邮箱 requestObj.memberEmail = account; } var requestJson = HttpUtil.GetSignRequestJson(requestObj); return HttpUtil.RequestHttpsPost(NewAPI.API_POST_Member_BindWithAccount, requestJson).Code; } /// /// 解绑手机或者邮箱 /// /// /// public string UnBindAccount(bool isPhone) { var requestObj = new UnBindAccountObj() { unBindLabel = isPhone ? "PHONE" : "EMAIL" }; var requestJson = HttpUtil.GetSignRequestJson(requestObj); return HttpUtil.RequestHttpsPost(NewAPI.API_POST_Member_UnbindWithAccount, requestJson).Code; } /// /// 根据账号,获取账号信息 /// /// 指定账号 /// public ResponsePackNew GetMemberInfoByAccount(string i_account) { var pra = new { account = i_account }; var requestJson = HttpUtil.GetSignRequestJson(pra); return HttpUtil.RequestHttpsPost(NewAPI.API_POST_Member_GetMemberInfoByAccount, requestJson); } #endregion #region 住宅部分 /// /// 获取住宅列表 /// public string GetHomePager(HomeTypeEnum homeType = HomeTypeEnum.ALL, string homeId = "") { var requestJson = HttpUtil.GetSignRequestJson(new GetHomeListObj() { homeType = homeType.ToString() }); var resultObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_Gethomepager, requestJson); if (resultObj.Code == StateCode.SUCCESS) { UserInfo.Current.regionList = new List(); var homeList = Newtonsoft.Json.JsonConvert.DeserializeObject>(resultObj.Data.ToString()); if (homeList == null || homeList.Count == 0) { if (DB_ResidenceData.Instance.CurrentRegion!=null && DB_ResidenceData.Instance.CurrentRegion.id != "") { Shared.Application.RunOnMainThread(() => { MainPage.GoUserPage(false); }); } } else { foreach (var home in homeList) { if (home.isBindGateway)//是否绑定网关 { UserInfo.Current.regionList.Add(home); //新绑定的住宅,直接切换到新住宅 if (!string.IsNullOrEmpty(homeId)) { if (homeId.Contains(home.id)) { DB_ResidenceData.Instance.CurrentRegion = home; } } } } 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(() => { 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; #endif } } return resultObj.Code; } /// /// 编辑住宅信息 /// /// 0 修改住宅名字、1 修改住宅地址 /// /// public ResponsePackNew EditResidenceInfo(int editId, string editName) { var requestObj = new AddOrUpdateHomeObj() { homeId = DB_ResidenceData.Instance.CurrentRegion.id, }; if (editId == 0) { requestObj.homeName = editName; } else if (editId == 1) { requestObj.homeAddress = editName; } var requestJson = HttpUtil.GetSignRequestJson(requestObj); return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Home_UpdateHome, requestJson); } /// /// 获取刷新当前住宅的网关列表 /// public string GetHomeGatewayList() { try { if (string.IsNullOrEmpty(DB_ResidenceData.Instance.CurrentRegion.id)) return ""; var nowhomeId = DB_ResidenceData.Instance.CurrentRegion.id; var requestJson = HttpUtil.GetSignRequestJson(new HomeIdObj() { homeId = nowhomeId }); var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_GetGatewayList, requestJson); if (revertObj.Code == StateCode.SUCCESS) { var mHomeGatewayRes = Newtonsoft.Json.JsonConvert.DeserializeObject>(revertObj.Data.ToString()); if (nowhomeId == DB_ResidenceData.Instance.CurrentRegion.id) { if (mHomeGatewayRes != null) { if (mHomeGatewayRes.Count > 0) { DB_ResidenceData.Instance.HomeGateway = mHomeGatewayRes[0]; DriverLayer.Control.Ins.GatewayOnline_Cloud = mHomeGatewayRes[0].gatewayStatus; DB_ResidenceData.Instance.SaveResidenceData(); return revertObj.Code; } } //其余情况清空网关信息 DB_ResidenceData.Instance.HomeGateway = null; DB_ResidenceData.Instance.SaveResidenceData(); } } else { //提示错误 } return revertObj.Code; } catch { return ""; } } /// /// 获取住宅交付链接 /// /// public ResponsePackNew GetHouseDeliveryUrl() { var d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); var jsonString = HttpUtil.GetSignRequestJson(d); var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.APi_Post_GetHoserDeliverUrl, jsonString); return revertObj; } /// /// 住宅交付回滚 /// /// public ResponsePackNew RollBack() { var d = new Dictionary(); 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; } /// /// 获取网关信息 /// public string GetGatewayInfo() { if (DB_ResidenceData.Instance.HomeGateway == null) return StateCode.NETWORK_ERROR; Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("gatewayId", DB_ResidenceData.Instance.HomeGateway.gatewayId); var jsonString = HttpUtil.GetSignRequestJson(d); var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetGatewayInfo, jsonString); if (revertObj.Code == StateCode.SUCCESS) { var mHomeGatewayRes = Newtonsoft.Json.JsonConvert.DeserializeObject(revertObj.Data.ToString()); if (mHomeGatewayRes != null) { DriverLayer.Control.Ins.GatewayOnline_Cloud = mHomeGatewayRes.gatewayStatus; } } return revertObj.Code; } /// /// 获取住宅下的成员账号 /// /// public ResponsePackNew GetResidenceMemberAccount() { var requestJson = HttpUtil.GetSignRequestJson(new HomeIdObj() { homeId = DB_ResidenceData.Instance.CurrentRegion.id }); return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Child_FindAll, requestJson); } /// /// 删除住宅下的成员账号 /// /// public ResponsePackNew DeleteResidenceMemberAccount(ResidenceMemberInfo subaccount) { var requestObj = new ChildDeleteObj() { childId = subaccount.id, homeId = subaccount.homeId }; var requestJson = HttpUtil.GetSignRequestJson(requestObj); return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Child_Delete, requestJson); } /// /// 修改子账号昵称 /// /// /// /// public ResponsePackNew EditSubAccountNickName(string nickName, string childAccountId) { var d = new Dictionary(); 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); } /// /// 修改子账号创建场景权限 /// /// /// /// public ResponsePackNew ChangeCreateSceneState(bool isAllow, string childAccountId) { var requestJson = HttpUtil.GetSignRequestJson(new UpdateChildAllowCreateSceneObj() { homeId = DB_ResidenceData.Instance.CurrentRegion.id, childId = childAccountId, isAllowCreateScene = isAllow, }); return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Child_Update, requestJson); } /// /// 过户 /// /// 对方账号 /// public bool TransferResidence(string i_account) { var pra2 = new { homeId = Entity.DB_ResidenceData.Instance.CurrentRegion.id, account = i_account }; var requestJson = HttpUtil.GetSignRequestJson(pra2); var result = HttpUtil.RequestHttpsPost(NewAPI.API_Post_TransferResidence, requestJson); return result != null && result.Code == StateCode.SUCCESS; } /// /// 管理员权限迁移 /// /// 成员账号id /// public bool AdminAuthorityMigration(string i_childAccountId) { var pra2 = new { homeId = DB_ResidenceData.Instance.CurrentRegion.id, childAccountId = i_childAccountId }; var requestJson = HttpUtil.GetSignRequestJson(pra2); var result = HttpUtil.RequestHttpsPost(NewAPI.API_Post_AdminAuthorityMigration, requestJson); return result != null && result.Code == StateCode.SUCCESS; } #region 新数据分享 /// /// 添加分享 /// /// /// public ResponsePackNew AddShareData(AddShareObj addShareObj) { var requestJson = HttpUtil.GetSignRequestJson(addShareObj); return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Share_Add, requestJson); } /// /// 删除分享 /// /// /// public ResponsePackNew DeleteShareData(DeleteShareObj deleteShareObj) { var requestJson = HttpUtil.GetSignRequestJson(deleteShareObj); return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Share_Delete, requestJson); } /// /// 获取分享 /// /// /// public ResponsePackNew GetShareDataByMemberAccount(string childAccountId) { var requestJson = HttpUtil.GetSignRequestJson(new GetShareObj() { homeId = DB_ResidenceData.Instance.CurrentRegion.id, childAccountId = childAccountId, }); return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Share_GetList, requestJson); } #endregion ///// ///// 获取住宅下子账号的共享数据列表 ///// ///// //public ResponsePackNew GetShareDataByMemberAccount(string childAccountId) //{ // //Dictionary d = new Dictionary(); // //d.Add("DistributedMark", memberId); // //d.Add("HouseDistributedMark", DB_ResidenceData.residenceData.residecenInfo.RegionID); // //string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d); // //return RequestHttps($"{severAddress}/ZigbeeDataShare/GetShareDataBySubAccount", jsonString, true); // var requestJson = HttpUtil.GetSignRequestJson(new HomeShareFindAll() // { // homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID, // childAccountId = childAccountId // }); // return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Home_Share_FindAll, requestJson); //} ///// ///// 下载单个分享文件 ///// ///// //public byte[] GetShareData(ShareData shareData) //{ // //Dictionary d = new Dictionary(); // //d.Add("DistributedMark", memberId); // //d.Add("HouseDistributedMark", hId); // //string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d); // //return RequestHttps($"{severAddress}/ZigbeeDataShare/GetOneShareData", jsonString, true); // var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(new ShareFileDownObj() // { // homeId = shareData.homeId, // homeShareId = shareData.id // }); // var replaceToken = ""; // if (DB_ResidenceData.residenceData.residecenInfo.IsOthreShare) // { // replaceToken = DB_ResidenceData.residenceData.MasterToken; // } // return HttpUtil.RequestHttpsDownload(NewAPI.API_POST_Home_Share_DownOne, requestJson, null, DB_ResidenceData.residenceData.residecenInfo.regionUrl, replaceToken); //} ///// ///// 增加共享数据列表 ///// ///// //public ResponsePackNew AddShareData(ShareData shareData) //{ // //Dictionary d = new Dictionary(); // //d.Add("ShareName", shareData.ShareName); // //d.Add("HouseDistributedMark", shareData.HouseDistributedMark); // //d.Add("ShareDataBytes", shareData.ShareDataBytes); // //d.Add("SubAccountDistributedMark", shareData.SubAccountDistributedMark); // //string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d); // //return RequestHttps($"{severAddress}/ZigbeeDataShare/AddShareData", jsonString, true); // var queryDic = new Dictionary(); // queryDic.Add("homeId", DB_ResidenceData.residenceData.residecenInfo.RegionID); // queryDic.Add("childAccountId", shareData.childAccountId); // queryDic.Add("fileName", shareData.fileName); // var replaceToken = ""; // if (DB_ResidenceData.residenceData.residecenInfo.IsOthreShare) // { // replaceToken = DB_ResidenceData.residenceData.MasterToken; // } // return HttpUtil.RequestHttpsUpload(RestSharp.Method.POST, NewAPI.API_POST_Home_Share_Add, shareData.ShareDataBytes, queryDic, null, DB_ResidenceData.residenceData.residecenInfo.regionUrl, replaceToken); //} ///// ///// 增加共享数据 ///// ///// //public ResponsePackNew EditShareData(ShareData shareData) //{ // return AddShareData(shareData); // //Dictionary d = new Dictionary(); // //d.Add("DistributedMark", shareData.DistributedMark); // //d.Add("ShareName", shareData.ShareName); // //d.Add("HouseDistributedMark", shareData.HouseDistributedMark); // //d.Add("ShareDataBytes", shareData.ShareDataBytes); // //d.Add("SubAccountDistributedMark", shareData.SubAccountDistributedMark); // //string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d); // //return RequestHttps($"{severAddress}/ZigbeeDataShare/EditShareData", jsonString, true); //} ///// ///// 删除共享数据 ///// ///// ///// //public ResponsePackNew DeleteShareData(ShareData shareData) //{ // var requestJson = HttpUtil.GetSignRequestJson(new ShareFileDownObj() // { // homeId = shareData.homeId, // homeShareId = shareData.id // }); // return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Home_Share_Delete, requestJson); // //Dictionary d = new Dictionary(); // //d.Add("DistributedMark", shareData.DistributedMark); // //d.Add("HouseDistributedMark", shareData.HouseDistributedMark); // //string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d); // //return RequestHttps($"{severAddress}/ZigbeeDataShare/DeleteShareData", jsonString, true); //} ///// ///// 删除子账号当前住宅的所有共享数据 ///// ///// //public ResponsePack DeleteCurrentResidenceSharedData(ShareData shareData) //{ // Dictionary d = new Dictionary(); // d.Add("SubAccountDistributedMark", shareData.SubAccountDistributedMark); // d.Add("HouseDistributedMark", shareData.HouseDistributedMark); // string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d); // return RequestHttps($"{severAddress}/ZigbeeDataShare/DeleteShareData", jsonString, true); //} /// /// 绑定子账号到住宅下 /// /// /// /// public ResponsePackNew BindResidenceMemberAccount(string subAccount, string 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 d = new Dictionary(); 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); } /// /// 删除成员账号人脸数据 /// /// /// /// /// public ResponsePackNew DeleteMemberFace( string childId) { Dictionary d = new Dictionary(); 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); } /// /// 更新成员账号人脸数据 /// public ResponsePackNew UpdataMemberFace(string childId, string faceUrl) { Dictionary d = new Dictionary(); 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); } /// /// 家庭成员绑定账号 /// /// /// /// public ResponsePackNew SubChildBindAccount(string childId, string account) { Dictionary d = new Dictionary(); 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); } /// /// 修改住宅调试权限 /// /// public ResponsePackNew ChangeResidenceDebugPerm(bool debugPerm) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("debugPerm", debugPerm); var jsonString = HttpUtil.GetSignRequestJson(d, d); var pack = HttpUtil.RequestHttpsPost(NewAPI.API_Post_Home_UpdateDebugPerm, jsonString); return pack; } #endregion /// /// 获取MQTT远程连接信息接口 /// public MqttInfo GetMqttRemoteInfo(string attachClientId) { try { var requestJson = HttpUtil.GetSignRequestJson(new GetMqttRemoteInfoObj() { attachClientId = attachClientId, homeType = HomeTypeEnum.BUSPRO.ToString() }); var revertObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_GetMqttRemoteInfo, requestJson, DB_ResidenceData.Instance.CurrentRegion.regionUrl); if (revertObj.Code == StateCode.SUCCESS) { return Newtonsoft.Json.JsonConvert.DeserializeObject(revertObj.Data.ToString()); } else { Utlis.WriteLine("GetMqttRemoteInfo error"); return null; } } catch { return null; } } #region 推送 /// /// 提交推送需要的关键标识信息 /// public bool PushSerivceAddPushInfo() { try { //先清空推送ID,避免使用缓存的PushId为其它账号的情况,导致查询到其它账号的推送记录 OnAppConfig.Instance.PushId = ""; string deviceType = PhoneDeviceType.Android.ToString(); #if __IOS__ deviceType = PhoneDeviceType.IOS.ToString(); #endif //是否生产模式 bool isProduce = true; if (HttpUtil.GlobalRequestHttpsHost == "https://test-gz.hdlcontrol.com") { isProduce = false; } if (string.IsNullOrEmpty(OnAppConfig.Instance.PushDeviceToken)) { Utlis.WriteLine("PushDeviceToken 为空"); return false; } var mAddpushinfoObj = new AddpushinfoObj() { pushToken = OnAppConfig.Instance.PushDeviceToken, deviceName = OnAppConfig.Instance.PhoneName, deviceType = deviceType, produce = isProduce, }; mAddpushinfoObj.languageType = Utlis.GetPostLanguageType(); #if DEBUG //List communityCodes = new List(); //communityCodes.Add(""); //mAddpushinfoObj.communityCodes = communityCodes; #endif //var mAddpushinfoJson = Newtonsoft.Json.JsonConvert.SerializeObject(mAddpushinfoObj); var mAddpushinfoJson = HttpUtil.GetSignRequestJson(mAddpushinfoObj); var revertObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_PushSerivce_AddToken, mAddpushinfoJson); if (revertObj.Code == StateCode.SUCCESS) { if (revertObj.Data != null) { var pushId = revertObj.Data.ToString(); if (!string.IsNullOrEmpty(pushId)) { OnAppConfig.Instance.PushId = pushId; OnAppConfig.Instance.SaveConfig(); Utlis.WriteLine("PushId: " + pushId); return true; } } } else { //Utlis.WriteLine("AddToken 失败"); } return false; } catch { return false; } } /// /// 查询推送信息列表 /// /// 0全部 1分享与功能 2报警类 3系统信息 4物业通知 /// public ResponsePackNew PushSerivceGetPushmessagelist(int queryType = 0) { string pushType = null; if (queryType == 1) { pushType = PushType.Default.ToString(); } else if (queryType == 2) { pushType = PushType.Alarm.ToString(); } else if (queryType == 3) { pushType = PushType.Prompt.ToString(); } else if (queryType == 4) { pushType = PushType.Notice.ToString(); } var requestJson = HttpUtil.GetSignRequestJson(new GetMessageListObj() { pushId = OnAppConfig.Instance.PushId, pushType = pushType, homeId = DB_ResidenceData.Instance.CurrentRegion.id, }); //2021-08-28 改为分页查询 return HttpUtil.RequestHttpsPost(NewAPI.API_POST_PushSerivce_Getpushmessagelist_Paging, requestJson); } /// /// 清空消息记录 /// /// public bool PushSerivceClearmessagelist() { if (string.IsNullOrEmpty(OnAppConfig.Instance.PushId)) return false; var requestJson = HttpUtil.GetSignRequestJson(new PushIdObj() { pushId = OnAppConfig.Instance.PushId }); var revertObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_PushSerivce_Clearmessagelist, requestJson); if (revertObj.Code == StateCode.SUCCESS) { return true; } else { } return false; } /// /// 退出登录,清空推送标识 /// /// public bool PushSerivceSignOut() { if (string.IsNullOrEmpty(OnAppConfig.Instance.PushId)) return false; try { var requestJson = HttpUtil.GetSignRequestJson(new PushIdObj() { pushId = OnAppConfig.Instance.PushId }); var revertObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_PushSerivce_DeleteToken, requestJson); if (revertObj.Code == StateCode.SUCCESS) { return true; } else { } return false; } catch { return false; } } /// /// 标记消息全部已读 /// /// /// public bool PushSerivceMarkAllMessageRead() { if (string.IsNullOrEmpty(OnAppConfig.Instance.PushId)) return false; try { var requestJson = HttpUtil.GetSignRequestJson(new PushIdObj() { pushId = OnAppConfig.Instance.PushId }); var revertObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_PushSerivce_ALLMarkread, requestJson); if (revertObj.Code == StateCode.SUCCESS) { return true; } else { } return false; } catch { return false; } } /// /// 标记指定消息已读 /// /// /// public bool PushSerivceMarkMessageRead(string msgId) { if (string.IsNullOrEmpty(OnAppConfig.Instance.PushId)) return false; try { var requestJson = HttpUtil.GetSignRequestJson(new PushMsgIdObj() { msgId = msgId }); var revertObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_PushSerivce_Markread, requestJson); if (revertObj.Code == StateCode.SUCCESS) { return true; } else { } return false; } catch { return false; } } /// /// 通过主键id删除一条推送记录 /// /// /// public bool PushSerivceDeleteMessage(PushMsgIdObj mPushMsgIdObj) { if (string.IsNullOrEmpty(OnAppConfig.Instance.PushId)) return false; if (mPushMsgIdObj == null) return false; try { var requestJson = HttpUtil.GetSignRequestJson(mPushMsgIdObj); var revertObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_PushSerivce_Deletepushinfo, requestJson); if (revertObj.Code == StateCode.SUCCESS) { return true; } else { IMessageCommon.Current.ShowErrorInfoAlter(revertObj.Code); } return false; } catch { return false; } } /// /// 注册推送 /// public void RegisteredPush() { new System.Threading.Thread(() => { var success = PushSerivceAddPushInfo(); if (success) { Utlis.WriteLine("推送注册成功"); } else { Utlis.WriteLine("推送注册失败"); } }) { IsBackground = true }.Start(); } /// /// 注销推送 /// public void SignOutPush() { new System.Threading.Thread(() => { var success = PushSerivceSignOut(); if (success) { Utlis.WriteLine("推送注销成功"); } else { Utlis.WriteLine("推送注销失败"); } }) { IsBackground = true }.Start(); } /// /// 获取物业公告详情 /// /// /// public ResponsePackNew GetPropertyNoticeDetails(string noticeId) { Dictionary d = new Dictionary(); d.Add("noticeId", noticeId); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPost(NewAPI.API_POST_PushSerivce_GetNoticeInfo, requestJson); } #endregion #region 检测更新 /// /// /// /// public ResponsePackNew CheckAppVersion() { var requestObj = new AppVersionCheckObj() { }; #if __IOS__ requestObj.releaseSystem = "IOS"; #else requestObj.releaseSystem = "Android"; #endif var requestJson = HttpUtil.GetSignRequestJson(requestObj); return HttpUtil.RequestHttpsPost(NewAPI.API_POST_CheckAppVersion, requestJson); } #endregion #region 注销账号 /// /// 获取当前版本注销账号模式 /// /// public ResponsePackNew GetUnregisterModel() { Dictionary d = new Dictionary(); d.Add("version", MainPage.VersionString); d.Add("appCode", "1588071238036582401"); #if __IOS__ d.Add("releaseSystem", "IOS"); #else d.Add("releaseSystem", "Android"); #endif var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_GetUnregisterModel, requestJson); } /// /// 注销账号 /// /// public ResponsePackNew Unregister(string pwd) { Dictionary d = new Dictionary(); d.Add("userId", UserInfo.Current.ID); d.Add("pwd", pwd); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_Unregister, requestJson); } #endregion #region 获取天气部分 /// /// 获取指定经纬度的城市信息天气信息 /// public void GetCityWeatherInfo(string lon, string lat) { if (lon == "0" || lat == "0") return; MainPage.cityInfo.lon = lon; MainPage.cityInfo.lat = lat; System.Threading.Tasks.Task.Run(() => { while (true) { //获取天气 var webClient = new WebClient(); string url = $"https://developer.hdlcontrol.com/Weather/Weather/FindCity/?lon={lon}&lat={lat}"; string responseString = null; try { responseString = Encoding.UTF8.GetString(webClient.DownloadData(url)); } catch (Exception ex) { MainPage.Log(ex.Message); } if (responseString != null) { try { var revertObj = Newtonsoft.Json.JsonConvert.DeserializeObject(responseString); JObject jt = Newtonsoft.Json.JsonConvert.DeserializeObject(revertObj.ResponseData.ToString()); MainPage.cityInfo.city = jt["City"].ToString(); MainPage.cityInfo.cid = jt["Cid"].ToString(); MainPage.cityInfo.location = jt.GetValue("Location").ToString(); MainPage.cityInfo.province = jt.GetValue("Province").ToString(); MainPage.cityInfo.country = jt.GetValue("Country").ToString(); MainPage.cityInfo.timeZone = jt.GetValue("TimeZone").ToString(); url = $"https://developer.hdlcontrol.com/Weather/Weather/GetAirQualityAndWeather/?cid={MainPage.cityInfo.cid}"; responseString = null; responseString = Encoding.UTF8.GetString(webClient.DownloadData(url)); revertObj = Newtonsoft.Json.JsonConvert.DeserializeObject(responseString); jt = Newtonsoft.Json.JsonConvert.DeserializeObject(revertObj.ResponseData.ToString()); MainPage.cityInfo.temperature = jt.GetValue("Temperature").ToString(); MainPage.cityInfo.humidity = jt.GetValue("Humidity").ToString(); MainPage.cityInfo.pm25 = jt.GetValue("Air_Quality").ToString(); MainPage.cityInfo.windLevel = jt.GetValue("WindLevel").ToString(); MainPage.cityInfo.weather = jt.GetValue("Weather").ToString(); 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) { MainPage.Log($"get weather error : {ex.Message}"); } } System.Threading.Thread.Sleep(5000); } }); } ///// ///// 获取指定经纬度的城市信息 ///// ///// ///// //public void GetCityInfo() //{ // if (DB_ResidenceData.Instance.CurrentRegion.longitude == 0 && DB_ResidenceData.Instance.CurrentRegion.latitude == 0) // { // return; // } // string lon = DB_ResidenceData.Instance.CurrentRegion.longitude.ToString(); // string lat = DB_ResidenceData.Instance.CurrentRegion.latitude.ToString(); // System.Threading.Tasks.Task.Run(() => // { // while (true) // { // var webClient = new WebClient(); // string url = $"https://developer.hdlcontrol.com/Weather/Weather/FindCity/?lon={lon}&lat={lat}"; // string responseString = null; // try // { // responseString = Encoding.UTF8.GetString(webClient.DownloadData(url)); // } // catch (Exception ex) // { // MainPage.Log(ex.Message); // } // if (responseString != null) // { // try // { // var revertObj = Newtonsoft.Json.JsonConvert.DeserializeObject(responseString); // JObject jt = Newtonsoft.Json.JsonConvert.DeserializeObject(revertObj.ResponseData.ToString()); // DB_ResidenceData.cityInfo.location = jt.GetValue("Location").ToString(); // DB_ResidenceData.cityInfo.province = jt.GetValue("Province").ToString(); // DB_ResidenceData.cityInfo.country = jt.GetValue("Country").ToString(); // DB_ResidenceData.cityInfo.timeZone = jt.GetValue("TimeZone").ToString(); // DB_ResidenceData.Instance.SaveResidenceData(); // return; // } // catch (Exception ex) // { // MainPage.Log($"get weather error : {ex.Message}"); // } // } // } // }); //} #endregion #region 备份部分 ///// ///// 获取住宅备份列表 ///// //public Dictionary GetRegionLastBackupId() //{ // //Dialog dialog = new Dialog(); // //dialog.Show(); // Dictionary backupList = new Dictionary(); // Dictionary d = new Dictionary(); // d.Add("LevelID", DB_ResidenceData.residenceData.residecenInfo.RegionID);// 199200); // var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(d); // var revertObj = RequestHttps("https://developer.hdlcontrol.com/api/GetUserFolder", requestJson, true); // if (revertObj == null || revertObj.ResponseData == null) // { // return new Dictionary(); // } // var jt = Newtonsoft.Json.JsonConvert.DeserializeObject>(revertObj.ResponseData.ToString()); // foreach (var j in jt) // { // var folderId = (int)j.GetValue("FolderID"); // var folderName = j.GetValue("FolderName").ToString(); // backupList.Add(folderId, folderName); // } // return backupList; //} /* 2020-09-01 弃用 恢复旧数据功能在bus软件上实现 /// /// 获取备份文件列表 /// public void GetBackupFileList(int levelId) { Dialog dialog = new Dialog(); dialog.Show(); Loading loading = new Loading(); dialog.AddChidren(loading); loading.Start(""); new System.Threading.Thread(() => { Dictionary d = new Dictionary(); d.Add("LevelID", levelId); var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(d); var revertObj = RequestHttps("https://developer.hdlcontrol.com/api/UserBackupList", requestJson, true); var jt = Newtonsoft.Json.JsonConvert.DeserializeObject>(revertObj.ResponseData.ToString()); #region 恢复房间数据 GetBackupRoom(jt,loading); #endregion Application.RunOnMainThread(() => { loading.Hide(); dialog.Close(); }); }) { IsBackground = true }.Start(); } /// /// 下载图片 /// /// void DownloadImage(string fileName,int fId) { if (downImageList.Contains(fileName)) { return; } else { downDeviceList.Add(fileName); } System.Text.RegularExpressions.Match match = System.Text.RegularExpressions.Regex.Match(fileName, @"^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$", System.Text.RegularExpressions.RegexOptions.IgnoreCase); if (match.Success) { FileStream fs = null; try { Dictionary d = new Dictionary(); d.Add("Id", fId); var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(d); var revertObj = RequestHttps("https://developer.hdlcontrol.com/api/BackupDetail", requestJson, true); var jsonBytes = Newtonsoft.Json.JsonConvert.SerializeObject(revertObj.ResponseData); var bytes = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonBytes); var byteStr = Encoding.UTF8.GetString(bytes); var ss = Newtonsoft.Json.JsonConvert.DeserializeObject(byteStr); var filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "/", fileName+".png"); fs = new FileStream(filePath, FileMode.Create, FileAccess.Write); fs.Write(bytes, 0, bytes.Length); fs.Flush(); MainPage.Log($"download image {fileName}"); } catch (Exception ex) { MainPage.Log("FileUtiles Code 113:" + ex.ToString()); } finally { try { if (fs != null) { fs.Close(); } } catch (Exception ex) { MainPage.Log("FileUtils Code 121 :" + ex.ToString()); } } } } /// /// 获取备份房间数据 /// void GetBackupRoom(List jt, Loading loading) { var roomList = new Dictionary(); var roomsObject = jt.FindAll((room) => room.GetValue("FileName").ToString().StartsWith("Room_") && room.GetValue("FileName").ToString().Split('_').Length == 2); foreach(var pp in jt) { if(pp.GetValue("FileName").ToString().StartsWith("Equipment")) { MainPage.Log(pp.GetValue("FileName").ToString()); } } roomsObject = jt.FindAll((room) => room.GetValue("FileName").ToString().StartsWith("Equipment_OnePortBus")); foreach (var roomJObj in roomsObject) { Dictionary d = new Dictionary(); d.Add("Id", (int)roomJObj.GetValue("Id")); var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(d); var revertObj = RequestHttps("https://developer.hdlcontrol.com/api/BackupDetail", requestJson, true); var jsonBytes = Newtonsoft.Json.JsonConvert.SerializeObject(revertObj.ResponseData); var byresss = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonBytes); var byteStr = Encoding.UTF8.GetString(byresss); var ss = Newtonsoft.Json.JsonConvert.DeserializeObject(byteStr); //var RootPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "/"; //var filePath = Path.Combine(RootPath, ss.GetValue("BackGroundImage").ToString()) + ".png"; //var room1 = new Room() //{ // sid = Guid.NewGuid().ToString(), // name = ss.GetValue("Name").ToString(), // floorIndex = 1, // backgroundImage = "Classification/Room/Roombg.png", // //backgroundImage = ss.GetValue("BackGroundImage").ToString() == "Room/r1.png" ? "Classification/Room/Roombg.png" : filePath, //}; //DB_ResidenceData.rooms.Add(room1); //roomList.Add(ss, room1); } var index = 1; foreach (var j in jt) { Application.RunOnMainThread(() => { int pro = (int)(index * 1.0 / jt.Count * 100); loading.Text = pro.ToString() + "%"; }); var fileName = j.GetValue("FileName").ToString(); var fileNameArrary = fileName.Split('_'); if (fileNameArrary.Length == 5 && fileName.Split('_')[0] == "Equipment") { GetBackupFile(fileName, (int)j.GetValue("Id"), roomList); } else { DownloadImage(fileName, (int)j.GetValue("Id")); } index++; } DB_ResidenceData.residenceData.SaveResidenceData(); } List downDeviceList = new List(); List downImageList = new List(); /// /// 获取备份设备文件 /// void GetBackupFile(string fileName, int fId, Dictionary dir) { var type = fileName.Split('_')[1]; if (downDeviceList.Contains(fileName)) { return; } else { downDeviceList.Add(fileName); } if (type == "LightSwitch" || type == "LightMixSwitch" || type == "LightDimming" || type == "LightDALI" || type == "LightMixDimming" || type == "LightLogic" || type == "LightRGB" || type == "AC" || type == "HVAC" || type == "ACPanel" || type == "ACInfrared" || type == "CurtainModel" || type == "CurtainRoller" || type == "CurtainTrietex") { MainPage.Log($"download file {fileName}"); Dictionary d = new Dictionary(); d.Add("Id", fId); var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(d); var revertObj = RequestHttps("https://developer.hdlcontrol.com/api/BackupDetail", requestJson, true); //var jt = Newtonsoft.Json.JsonConvert.DeserializeObject(revertObj.ResponseData.ToString()); var jsonBytes = Newtonsoft.Json.JsonConvert.SerializeObject(revertObj.ResponseData); var byresss = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonBytes); var byteStr = System.Text.Encoding.UTF8.GetString(byresss); var ss = Newtonsoft.Json.JsonConvert.DeserializeObject(byteStr); /// /// 功能ID /// /// "03010112345678901234560101230123AABB"; var buffer = Guid.NewGuid().ToByteArray(); string guid = ""; if (buffer != null) { for (int i = 0; i < buffer.Length; i++) { if (i > 7) break; guid += buffer[i].ToString("X2"); } } //var guid = BitConverter.ToUInt32(buffer, 16).ToString(); List roomIds = new List(); foreach (var d1 in dir) { var key = d1.Key; var des = key.GetValue("DeviceFilePathList"); if (Newtonsoft.Json.JsonConvert.DeserializeObject>(des.ToString()).Contains(fileName)) { roomIds.Add(d1.Value.sid); } } switch (type) { case "LightSwitch": case "LightMixSwitch": var light1 = DB_ResidenceData.functionList.lights.Find((obj) => obj.bus_Data.SubnetID == (byte)ss.GetValue("SubnetID") && obj.bus_Data.DeviceID == (byte)ss.GetValue("DeviceID") && obj.bus_Data.LoopID == (byte)ss.GetValue("LoopID")); if (light1 != null) { //light1.roomIdList.Add(roomSid); break; } DB_ResidenceData.functionList.lights.Add(new Light() { sid = "030101" + guid + "0102010001AABB", name = ss.GetValue("Name").ToString(), function = new List() { new Trait { name="on_off", max=100,min = 0, value_key= new List { "on","off"} }, }, roomIdList = roomIds, bus_Data = new BusData { SubnetID = (byte)ss.GetValue("SubnetID"), DeviceID = (byte)ss.GetValue("DeviceID"), LoopID = (byte)ss.GetValue("LoopID"), }, }); break; case "LightDimming": case "LightDALI": case "LightMixDimming": var light2 = DB_ResidenceData.functionList.lights.Find((obj) => obj.bus_Data.SubnetID == (byte)ss.GetValue("SubnetID") && obj.bus_Data.DeviceID == (byte)ss.GetValue("DeviceID") && obj.bus_Data.LoopID == (byte)ss.GetValue("LoopID")); if (light2 != null) { //light2.roomIdList.Add(roomSid); break; } DB_ResidenceData.functionList.lights.Add(new Light() { sid = "030101" + guid + "0202020001AABB", name = ss.GetValue("Name").ToString(), function = new List() { new Trait { name="brightness", max=100,min = 0, value_key= new List { "up","down"} }, }, roomIdList = roomIds, //roomIdList = new List() { "0001" }, lastState = "20%", bus_Data = new BusData { SubnetID = (byte)ss.GetValue("SubnetID"), DeviceID = (byte)ss.GetValue("DeviceID"), LoopID = (byte)ss.GetValue("LoopID"), }, }); break; case "LightLogic": case "LightRGB": var light3 = DB_ResidenceData.functionList.lights.Find((obj) => obj.bus_Data.SubnetID == (byte)ss.GetValue("SubnetID") && obj.bus_Data.DeviceID == (byte)ss.GetValue("DeviceID") && obj.bus_Data.LoopID == (byte)ss.GetValue("LoopID")); if (light3 != null) { //light3.roomIdList.Add(roomSid); break; } DB_ResidenceData.functionList.lights.Add(new Light() { sid = "030101" + guid + "0202040001AABB", name = ss.GetValue("Name").ToString(), function = new List() { new Trait { name="brightness", max=100,min = 0, value_key= new List { "on","off"} }, new Trait { name="color", max=100,min = 0, value_key= new List { "255", "255", "255" } }, }, roomIdList = roomIds, //roomIdList = new List() { roomSid }, bus_Data = new BusData { SubnetID = (byte)ss.GetValue("SubnetID"), DeviceID = (byte)ss.GetValue("DeviceID"), LoopID = (byte)ss.GetValue("LoopID"), }, }); break; case "AC": case "HVAC": case "ACPanel": case "ACInfrared": var ac = DB_ResidenceData.functionList.aCs.Find((obj) => obj.bus_Data.SubnetID == (byte)ss.GetValue("SubnetID") && obj.bus_Data.DeviceID == (byte)ss.GetValue("DeviceID") && obj.bus_Data.LoopID == (byte)ss.GetValue("LoopID")); if (ac != null) { //ac.roomIdList.Add(roomSid); break; } DB_ResidenceData.functionList.aCs.Add(new AC() { sid = "030101" + guid + "0204010001AABB", name = ss.GetValue("Name").ToString(), function = new List() { new Trait { name="on_off", max=1,min = 0, value_key= new List { "on","off"} }, new Trait { name="mode", max = 2,min =0,value_key = new List{ "auto", "heat", "cool","dry" } }, new Trait { name = "fan",max = 3,min =0,value_key = new List{ "low", "mid", "high" ,"auto"} }, new Trait { name = "temperature", max = 32,min=16,value_key = new List{"up","down" } }, }, roomIdList = roomIds, //roomIdList = new List() { roomSid}, lastState = "制冷 中风 18°C", bus_Data = new BusData { SubnetID = (byte)ss.GetValue("SubnetID"), DeviceID = (byte)ss.GetValue("DeviceID"), LoopID = (byte)ss.GetValue("LoopID"), }, }); break; //Entity. case "CurtainModel": var curtain1 = DB_ResidenceData.functionList.curtains.Find((obj) => obj.bus_Data.SubnetID == (byte)ss.GetValue("SubnetID") && obj.bus_Data.DeviceID == (byte)ss.GetValue("DeviceID") && obj.bus_Data.LoopID == (byte)ss.GetValue("LoopID")); if (curtain1 != null) { //curtain1.roomIdList.Add(roomSid); break; } DB_ResidenceData.functionList.curtains.Add(new Curtain() { sid = "030101" + guid + "0203010001AABB", name = ss.GetValue("Name").ToString(), roomIdList = roomIds, //roomIdList = new List() { roomSid }, function = new List() { new Trait { name="on_off", max=2,min = 0, value_key= new List { "on","off","stop"} }, },// "curtain", lastState = "开", bus_Data = new BusData { SubnetID = (byte)ss.GetValue("SubnetID"), DeviceID = (byte)ss.GetValue("DeviceID"), LoopID = (byte)ss.GetValue("LoopID"), }, }); break; case "CurtainRoller": var curtain2 = DB_ResidenceData.functionList.curtains.Find((obj) => obj.bus_Data.SubnetID == (byte)ss.GetValue("SubnetID") && obj.bus_Data.DeviceID == (byte)ss.GetValue("DeviceID") && obj.bus_Data.LoopID == (byte)ss.GetValue("LoopID")); if (curtain2 != null) { //curtain2.roomIdList.Add(roomSid); break; } DB_ResidenceData.functionList.curtains.Add(new Curtain() { sid = "030101" + guid + "0203040001AABB", name = ss.GetValue("Name").ToString(), roomIdList = roomIds, //roomIdList = new List() { roomSid }, function = new List() { new Trait { name="on_off", max=100,min = 0, value_key= new List { "on","off","stop"} }, },// "rollingshutter", lastState = "20%", bus_Data = new BusData { SubnetID = (byte)ss.GetValue("SubnetID"), DeviceID = (byte)ss.GetValue("DeviceID"), LoopID = (byte)ss.GetValue("LoopID"), }, }); break; case "CurtainTrietex": var curtain3 = DB_ResidenceData.functionList.curtains.Find((obj) => obj.bus_Data.SubnetID == (byte)ss.GetValue("SubnetID") && obj.bus_Data.DeviceID == (byte)ss.GetValue("DeviceID") && obj.bus_Data.LoopID == (byte)ss.GetValue("LoopID")); if (curtain3 != null) { //curtain3.roomIdList.Add(roomSid); break; } DB_ResidenceData.functionList.curtains.Add(new Curtain() { sid = "030101" + guid + "0203030001AABB", name = ss.GetValue("Name").ToString(), roomIdList = roomIds, //roomIdList = new List() { roomSid }, function = new List() { new Trait { name="on_off", max=100,min = 0, value_key= new List { "on","off","stop"} }, }, lastState = "20%", bus_Data = new BusData { SubnetID = (byte)ss.GetValue("SubnetID"), DeviceID = (byte)ss.GetValue("DeviceID"), LoopID = (byte)ss.GetValue("LoopID"), }, }); break; //Entity.DB_ResidenceData.functionList.floorHeatings.Add(new FloorHeating() //{ // sid = "12341212345678901234560704010004ABCD", // name = "地热", // roomIdList = new List() { "0001" }, // trait = new List() { // new Trait { attri="on_off", max=1,min = 0, value= new List { "on","off"} }, // new Trait { attri="mode", max = 2,min =0,value = new List{ "auto", "heat", "cool","dry" } }, // new Trait { attri = "temperature", max = 32,min=16,value = new List{"up","down" } }, // },// // lastState = "" //}); //Entity. //break; } } } */ #endregion #region Kaede --设备功能—————————————————————————————————— /// /// 获取乐橙子账号token /// /// public ResponsePackNew GetLcSubAccountToken() { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetLcSubToken, requestJson); } /// /// 获取设备列表 /// /// public ResponsePackNew GetDeviceList(string pageSize = "", string pageNo = "") { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); //d.Add("gatewayId", DB_ResidenceData.residenceData.HomeGateway.gatewayId); //d.Add("roomId", DB_ResidenceData.residenceData.residecenInfo.RegionID);//可控参数,当需要分页获取,怎么知道分页总数 //d.Add("searchType", DB_ResidenceData.residenceData.residecenInfo.RegionID); if (!string.IsNullOrEmpty(pageSize)) { d.Add("pageSize", pageSize); d.Add("pageNo", pageNo); } var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetDevcieList, requestJson); } /// /// 获取指定第三方品牌的绑定过的设备列表 /// /// /// /// public ResponsePackNew Get3TyBrandBindDeviceList(string productPlatform, string productBrand) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("productPlatform", productPlatform); d.Add("productBrand", productBrand); if (productBrand == "MegaHealth" || productBrand == "IMOU") { } else { d.Add("networkConfig", true); } var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetDevcieList, requestJson); } /// /// 获取指定第三方品牌的设备列表 /// /// /// /// public ResponsePackNew Get3TyBrandDeviceList(string productPlatform, string productBrand) { Dictionary d = new Dictionary(); d.Add("categoryType", 1); d.Add("productPlatform", productPlatform); d.Add("productBrand", productBrand); d.Add("networkConfig", true); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_Get3tyBrandDevcieList, requestJson); } /// /// 注册第三方设备 /// /// /// /// public ResponsePackNew IndependentRegister3TyDevcie(string spk, string extDevId, string deviceName,string productBrandIdentity, string pairCode = "") { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("spk", spk); d.Add("extDevId", extDevId); d.Add("name", deviceName); d.Add("code", pairCode); d.Add("productBrandIdentity", productBrandIdentity); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_IndependentRegister3TyDevcie, requestJson); } /// /// 删除第三方设备 /// /// public ResponsePackNew Delete3tyDevice(string deviceId) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("deviceId", deviceId); var requestJson = HttpUtil.GetSignRequestJson(d); var responsePackNew = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_Remove3tyDevcie, requestJson); return responsePackNew; } /// /// 获取设备详情 /// /// public ResponsePackNew GetDeviceInfo(string functionId) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("deviceIds", new List() { functionId }); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetDevcieInfoList, requestJson); } /// /// 获取设备详情列表 /// /// public ResponsePackNew GetDeviceInfoList(List functionIds) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("deviceIds", functionIds); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetDevcieInfoList, requestJson); } /// /// 刷新设备状态 /// /// public ResponsePackNew RefreshDeviceStatus(List functionIds) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("deviceIds", functionIds); var requestJson = HttpUtil.GetSignRequestJson(d); MainPage.Log($"读取设备状态:{requestJson}"); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_RefreshDeviceStatus, requestJson); } /// /// 控制设备 /// /// public ResponsePackNew ControlDevice(List actionObjs) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("gatewayId", DB_ResidenceData.Instance.HomeGateway == null ? "0" : DB_ResidenceData.Instance.HomeGateway.gatewayId);//DriverLayer.Control.Ins.GatewayId); d.Add("actions", actionObjs); var requestJson = HttpUtil.GetSignRequestJson(d); MainPage.Log($"api功能控制:{requestJson}"); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_ControlDevice, requestJson); } /// /// 编辑设备信息 /// 绑定关系、名称、收藏 /// /// public ResponsePackNew UpdataDevcieInfo(Function function) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("deviceId", function.deviceId); d.Add("name", function.name); d.Add("collect", function.collect); d.Add("roomIds", function.roomIds); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_EditDevice, requestJson); } /// /// 编辑设备信息 /// 绑定关系、名称、收藏 /// /// public ResponsePackNew UpdataDevcieName(Function function,string name) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("deviceId", function.deviceId); d.Add("name", name); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_EditDevice, requestJson); } /// /// 更新设备绑定房间信息 /// /// public ResponsePackNew UpdataDevcieBindRoomInfo(Function function) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("deviceId", function.deviceId); d.Add("roomIds", function.roomIds); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_EditDevice, requestJson); } /// /// 设备绑定房间 /// public ResponsePackNew BindDeviceToRoom(List deviceIds, List roomIds) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("deviceIds", deviceIds); d.Add("roomIds", roomIds); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_BindDeviceToRoom, requestJson); } /// /// 设备解绑房间 /// public string UnbindDeviceToRoom(string deviceId, string roomId) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("deviceIds", new List() { deviceId }); d.Add("roomIds", new List() { roomId }); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_UnbindDeviceToRoom, requestJson).Code; } /// /// 设备名称修改 /// public string EditDeviceName(string deviceId, string deviceName) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("deviceId", deviceId); d.Add("name", deviceName); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_EditDeviceName, requestJson).Code; } /// /// 收藏设备 /// public ResponsePackNew CollectDevice(string deviceId) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("deviceIds", new List() { deviceId }); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_CollectDevice, requestJson); } /// /// 取消收藏设备 /// public ResponsePackNew CancelCollectDevice(string deviceId) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("deviceIds", new List() { deviceId }); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_CancelCollectDevice, requestJson); } /// /// 设备扩展配置 /// public ResponsePackNew DeviceExtSet(string deviceId,ExtSet extSet) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("deviceId", deviceId ); d.Add("extSet", extSet); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_DeviceExtSet, requestJson); } /// /// 获取设备消息规则配置 /// /// public ResponsePackNew GetDeviceMessageRulesSet(string deviceId) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("deviceId", deviceId); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetDeviceMessageRulesSet, requestJson); } /// /// 设备消息规则配置 /// /// /// /// /// public ResponsePackNew DeviceMessageRulesSet(string deviceId,string conditionIdentify,bool push) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("deviceId", deviceId); d.Add("conditionIdentify", conditionIdentify); d.Add("push", push); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_DeviceMessageRulesSet, requestJson); } #endregion #region Kaede --场景功能-------------------------- /// /// 获取场景列表 /// 房间ID可空,默认查询住宅下所有房间 /// /// 房间ID /// public ResponsePackNew GetSceneList(string roomId = null) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); if (roomId != null) { d.Add("roomId", roomId); } var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetSecneList, requestJson); } /// /// 获取场景详情 /// /// 场景ID /// public ResponsePackNew GetSceneInfo(string seceneId) { Dictionary d = new Dictionary(); d.Add("userSceneIds", new List() { seceneId }); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetSecneInfo, requestJson); } /// /// 获取场景详情列表 /// /// 场景ID /// public ResponsePackNew GetSceneListInfo(List seceneIds) { Dictionary d = new Dictionary(); d.Add("userSceneIds", seceneIds); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetSecneInfo, requestJson); } /// /// 添加场景 /// /// public ResponsePackNew AddScene(Scene scene) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("scenes", new List() { scene }); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_AddSecne, requestJson); MainPage.Log($"{pack.Data}"); return pack; } /// /// 编辑场景 /// /// /// public ResponsePackNew EditScene(Scene scene) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("scenes", new List() { scene }); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_EditSecne, requestJson); } /// /// 删除场景 /// /// public string DeleteScene(string userSceneId) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("userSceneIds", new List() { userSceneId }); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_DeleteSecne, requestJson).Code; } /// /// 执行场景 /// /// public string ExecuteScene(string userSceneId) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("userSceneIds", new List() { userSceneId }); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_ExecuteSecne, requestJson).Code; } /// /// 收藏场景 /// /// /// public string CollectScene(string userSceneId) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("userSceneIds", new List() { userSceneId }); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_CollectScene, requestJson).Code; } /// /// 取消收藏场景 /// /// /// public string CancelCollectScene(string userSceneId) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("userSceneIds", new List() { userSceneId }); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_CancelCollectScene, requestJson).Code; } #endregion #region Kaede --房间功能-------------------------- /// /// 获取房间列表 /// /// 获取类型:ROOM\FLOOR;不输入返回全部 /// public ResponsePackNew GetRoomList(string GetType = "All") { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); if (GetType != "All") { d.Add("roomType", GetType); } d.Add("pageSize", "1000"); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetRoomList, requestJson); return pack; } /// /// 添加房间\楼层 /// 楼层也属于房间 /// /// public ResponsePackNew AddRoom(List rooms) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("rooms", rooms); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_AddRoom, requestJson); //var revData = Newtonsoft.Json.JsonConvert.DeserializeObject>(pack.Data.ToString()); //if (revData != null) //{ // SpatialInfo.CurrentSpatial.UpdateSpatialList(revData, OptionType.Update); //} return pack; } /// /// 修改房间信息 /// /// public ResponsePackNew UpdateRoom(List rooms) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("rooms", rooms); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_UpdateRoom, requestJson); //var revData = Newtonsoft.Json.JsonConvert.DeserializeObject>(pack.Data.ToString()); //if (revData != null) //{ // SpatialInfo.CurrentSpatial.UpdateSpatialList(revData,OptionType.Update); //} return pack; } /// /// 删除房间 /// /// /// public ResponsePackNew DeleteRoom(List roomIds) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("ids", roomIds); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_DelRoom, requestJson); return pack; } #endregion #region Kaede -- 安防接口____________________________ /// /// 获取安防列表 /// public ResponsePackNew GetSecurityList() { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("gatewayId", DB_ResidenceData.Instance.HomeGateway.gatewayId); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_Security_List, requestJson); return pack; } /// /// 获取安防详情 /// /// 安防sid集合 /// 安防云端id /// public ResponsePackNew GetSecurityInfo(List sidList, List userSecurityIds) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("gatewayId", DB_ResidenceData.Instance.HomeGateway.gatewayId); //sids userSecurityIds 不能同时为空 d.Add("sids", sidList); d.Add("userSecurityIds", userSecurityIds); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_Security_Info, requestJson); return pack; } /// /// 添加安防 /// public ResponsePackNew AddSecurity(List securities) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("gatewayId", DB_ResidenceData.Instance.HomeGateway.gatewayId); d.Add("securitys", securities); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_Security_Add, requestJson); return pack; } /// /// 编辑安防 /// public ResponsePackNew EditSecurity(List securities) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("gatewayId", DB_ResidenceData.Instance.HomeGateway.gatewayId); d.Add("securitys", securities); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_Security_Edit, requestJson); return pack; } /// /// 删除安防 /// /// 安防sid /// 安防云端id /// public ResponsePackNew DeleteSecurity(List sidList, List userSecurityIds) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("gatewayId", DB_ResidenceData.Instance.HomeGateway.gatewayId); //sids userSecurityIds 不能同时为空 d.Add("sids", sidList); d.Add("userSecurityIds", userSecurityIds); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_Security_Delete, requestJson); return pack; } /// /// 读取安防防区状态 /// /// 安防sid /// 安防云端id /// public ResponsePackNew ReadSecurityStatus(List sidList, List userSecurityIds) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("gatewayId", DB_ResidenceData.Instance.HomeGateway.gatewayId); //sids userSecurityIds 不能同时为空 d.Add("sids", sidList); d.Add("userSecurityIds", userSecurityIds); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_Security_StatusRead, requestJson); return pack; } /// /// 设置安防防区状态 /// public ResponsePackNew SetSecurityStatus(List securityStates) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("securitys", securityStates); var requestJson = HttpUtil.GetSignRequestJson(d); MainPage.Log($"api安防控制:{requestJson}"); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_Security_StatusSet, requestJson); return pack; } /// /// 安防bypass设置 /// public ResponsePackNew SetSecurityBypass(List securityBypassStates) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("securitys", securityBypassStates); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_Security_BypassSet, requestJson); return pack; } /// /// 安防bypass读取 /// /// 安防sid /// 安防云端id /// public ResponsePackNew ReadSecurityBypass(List sidList, List userSecurityIds) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("gatewayId", DB_ResidenceData.Instance.HomeGateway.gatewayId); //sids userSecurityIds 不能同时为空 d.Add("sids", sidList); d.Add("userSecurityIds", userSecurityIds); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_Security_BypassRead, requestJson); return pack; } /// /// 查询安防所有记录 /// public ResponsePackNew GetSecurityLogList(string pageSize, string pageNo) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("pageSize", pageSize); d.Add("pageNo", pageNo); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_Security_ListSecurityLog, requestJson); return pack; } /// /// 查询安防报警记录 /// public ResponsePackNew GetSecurityAlarmLogList(string pageSize, string pageNo) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("pageSize", pageSize); d.Add("pageNo", pageNo); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_Security_ListAlarmLog, requestJson); return pack; } #endregion #region Kaede --第三方品牌功能-------------------------- /// /// 获取第三方品牌列表 /// public ResponsePackNew Get3tyBrandList() { Dictionary d = new Dictionary(); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetBrandList, requestJson); return pack; } /// /// 获取第三方品牌列表_Iot /// public ResponsePackNew Get3tyIotBrandList() { Dictionary d = new Dictionary(); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetBrandList_Iot, requestJson); return pack; } /// /// 搜索第三方设备_iot /// /// public ResponsePackNew Search3tyIotDevice(string companyId) { Dictionary d = new Dictionary(); d.Add("companyId", companyId); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_Search3tyIotDevice, requestJson); return pack; } /// /// 搜索第三方设备功能列表_iot /// /// public ResponsePackNew Get3tyIotDeviceFunctionList(string companyId) { Dictionary d = new Dictionary(); d.Add("companyId", companyId); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_Get3tyIotFunction, requestJson); return pack; } /// /// 获取第三方平台支持的设备类型列表 /// /// public ResponsePackNew Get3tyIotSupportSpkList(string companyId) { Dictionary d = new Dictionary(); d.Add("companyId", companyId); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_Get3tyIotFunction, requestJson); return pack; } /// /// 设置第三方设备绑定的住宅 /// /// public ResponsePackNew Set3tyIotFunctionToHouse(List deviceIds,string homeId, string companyId) { Dictionary d = new Dictionary(); d.Add("deviceIds", deviceIds); d.Add("homeId", homeId); d.Add("companyId", companyId); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_Setting3tyIotFunctionToHouse, requestJson); return pack; } /// /// 解绑第三方平台账号 /// /// public ResponsePackNew Unbound3tyIotAccount(string companyId) { Dictionary d = new Dictionary(); d.Add("companyId", companyId); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_Unbound3tyIotAccount, requestJson); return pack; } /// /// 获取绑定的第三方品牌列表 /// public ResponsePackNew Get3tyBindBrandList() { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetBindBrandList, requestJson); return pack; } #endregion #region ■ 萤石云SDK相关接口_________________________ /// /// 河东获取萤石云子账号token的接口 /// 2021-07-07 新方案接口调整对接 /// public ResponsePackNew EZGetChildToken() { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("platform", "1"); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_EZ_GetChildToken, requestJson); } #endregion #region ■ 可视对讲_________________________ /// /// 检查住宅是否绑定丰林 /// /// public ResponsePackNew CheckFlVideo() { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_FL_Check, requestJson); return pack; } /// /// 获取门口机徘徊报警数据 /// /// /// public ResponsePackNew GetAlarmRecords(string deviceId, int pageSize, int pageNo, string alarmType = "PROWLER_ALARM") { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("deviceId", deviceId); d.Add("alarmType", alarmType); d.Add("pageSize", pageSize); d.Add("pageNo", pageNo); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_ALARM_RECORDS, requestJson); return pack; } /// /// 获取第三方注册的id /// /// 住宅id /// public ResponsePackNew GetExtUserId(string homeId) { Dictionary d = new Dictionary(); d.Add("homeId", homeId); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetExtUserId, requestJson); return pack; } #endregion #region ■ 门锁相关____________________________ /// /// 获取门锁历史记录(按日期降序) /// /// 设备对象 /// public List GetDoorHistoryLogs(Function i_device) { //var dicPra = new Dictionary(); //dicPra.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); //dicPra.Add("deviceId", i_device.deviceId); //dicPra.Add("logType", "OPEN_DOOR"); //dicPra.Add("pageSize", "200"); //var requestJson = HttpUtil.GetSignRequestJson(dicPra); //var packData = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_DoorHistory, requestJson); //if (packData.Code != StateCode.SUCCESS) //{ // return null; //} //测试 var listLog = new List(); for (int i = 1; i <= 3; i++) { var logInfo = new Stan.DoorHistoryLog { StrMsg = "电量低,请更换电池" }; logInfo.Time = new DateTime(2000, 5, 6, 10, 45, 23).AddDays(i); listLog.Add(logInfo); } for (int i = 1; i <= 3; i++) { var logInfo = new Stan.DoorHistoryLog { StrMsg = "电量低,请更换电池" }; logInfo.Time = new DateTime(2001, 5, 6, 10, 45, 23).AddDays(i); listLog.Add(logInfo); } for (int i = 1; i <= 3; i++) { var logInfo = new Stan.DoorHistoryLog { StrMsg = "电量低,请更换电池" }; logInfo.Time = new DateTime(2002, 5, 6, 10, 45, 23).AddDays(i); listLog.Add(logInfo); } //按时间降序 var listSortLog = new List(); foreach (var logInfo in listLog) { bool canAdd = true; for (int i = 0; i < listSortLog.Count; i++) { if (logInfo.Time > listSortLog[i].Time) { //时间比当前的索引大,则插入到它的前面 listSortLog.Insert(i, logInfo); canAdd = false; break; } } if (canAdd == true) { //日期最小,则添加到末尾 listSortLog.Add(logInfo); } } //提示 //IMessageCommon.Current.ShowErrorInfoAlter(responePack.Code); return listSortLog; } /// /// 获取门锁临时密码 /// /// /// public ResponsePackNew GetDoorTempPassword(string deviceId) { Dictionary d = new Dictionary(); 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); } /// /// 创建门锁临时密码 /// /// /// public ResponsePackNew CreateDoorTempPassword(string deviceId,string beginTime,string endTime) { Dictionary d = new Dictionary(); 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); } /// /// 删除门锁临时密码 /// /// public ResponsePackNew DelDoorTempPassword(string deviceId, string pwdId) { Dictionary d = new Dictionary(); 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 ■ 音箱语言控制相关_________________________ /// /// 获取已授权的音箱列表 /// /// public ResponsePackNew GetSpeakerList() { var requestJson = HttpUtil.GetSignRequestJson(new GetSpeakerObj { homeId = DB_ResidenceData.Instance.CurrentRegion.id, }); return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Speaker_List_Get, requestJson); } /// /// 编辑音箱授权备注 /// /// public ResponsePackNew UpdateSpeakerRemark(UpdateSpeakerRemarkObj remarkObj) { var requestJson = HttpUtil.GetSignRequestJson(remarkObj); return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Speaker_Remark_Update, requestJson); } /// /// 解除音箱绑定 /// /// public ResponsePackNew UnbindSpeaker(string tokenId) { Dictionary d = new Dictionary(); d.Add("tokenId", tokenId); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Speaker_Unbind, requestJson); } /// /// 获取音箱分配的设备和场景列表 /// /// 0 是查询全部 1是查询设备 2是查询场景 /// /// public ResponsePackNew GetSpeakerDeviceList(int getType, string tokenId) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("tokenId", tokenId); if (getType > 0) { d.Add("isDevice", getType == 1); } var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Speaker_DeviceList_Get, requestJson); } /// /// 更新音箱控制的设备和场景目标 /// /// public ResponsePackNew UpdateSpeakerDeviceList(UpdateSpeakerDeviceListObj updateSpeakerDeviceListObj) { var requestJson = HttpUtil.GetSignRequestJson(updateSpeakerDeviceListObj); return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Speaker_DeviceList_Update, requestJson); } #endregion /// /// 绑定source面板 /// /// public ResponsePackNew BindSourcePanel(string qrString) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("content", qrString); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_BindSourcePanel, requestJson); } /// /// 人脸录入 /// /// /// public ResponsePackNew FaceSetting(string imageBytes) { Dictionary d = new Dictionary(); d.Add("userFace", @"data:image/jpg;base64," + imageBytes); d.Add("houseId", DB_ResidenceData.Instance.CurrentRegion.id); //MainPage.Log(imageBytes); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_InputUserFace, requestJson); } /// /// 修改住户人脸关闭状态 /// 1:开启状态 2:关闭状态 /// 3:清除人脸数据 /// public ResponsePackNew EditFaceFunction(int status) { Dictionary d = new Dictionary(); d.Add("houseId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("faceClose", status); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_SwitchFaceFunction, requestJson); } /// /// 获取住户详情 /// /// public ResponsePackNew GetCustomerInfo() { Dictionary d = new Dictionary(); d.Add("houseId", DB_ResidenceData.Instance.CurrentRegion.id); var requestJson = HttpUtil.GetSignRequestJson(d); return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetCustomerInfo, requestJson); } #region 光伏储能 /// /// 获取住宅下逆变器列表 /// /// public ResponsePackNew GetInverterList() { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetInverter_List, requestJson); return pack; } /// /// 获取住宅下光伏统计的数据 /// /// public ResponsePackNew GetInverterStatisticsInfo() { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetInverter_StatisticsInfo, requestJson); return pack; } #endregion #region 群控,组合调光 /// /// 获取群控类型 /// /// /// public ResponsePackNew GetGroupControlTypes(string spk) { Dictionary d = new Dictionary(); d.Add("spk", spk); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetGroupControlTypes, requestJson); return pack; } /// /// 获取群控列表 /// /// /// public ResponsePackNew GetGroupControlList() { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetGroupControlListByHome, requestJson); return pack; } /// /// 获取群控详情 /// public ResponsePackNew GetGroupControInfo(string userDeviceGroupControlIds) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); var ids = new List() { userDeviceGroupControlIds, }; d.Add("userDeviceGroupControlIds", ids); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetGroupControlInfos, requestJson); return pack; } /// /// 获取群控详情 /// public ResponsePackNew GetGroupControInfo(List ids) { Dictionary d = new Dictionary(); 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; } /// /// 添加群控列表 /// public ResponsePackNew AddGroupControl(List groupControls) { Dictionary d = new Dictionary(); 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; } /// /// 添加群控列表 /// public ResponsePackNew DelGroupControl(string groupControlId) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("userDeviceGroupControlIds", new List() { groupControlId }); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_DeleteGroupControl, requestJson); return pack; } /// /// 编辑群控列表 /// /// /// public ResponsePackNew EditGroupControl(List groupControls) { Dictionary d = new Dictionary(); 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; } /// /// 群控控制 /// public ResponsePackNew ControlGroupControl(string userDeviceGroupControlId, Dictionary pair) { var d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("userDeviceGroupControlId", userDeviceGroupControlId); List> dd = new List>(); dd.Add(pair); d.Add("status",dd); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_ControlGroupControl, requestJson); return pack; } /// /// 收藏群控 /// public ResponsePackNew CollectGroupControl(string groupControlId) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("userDeviceGroupControlIds", new List() { groupControlId }); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_CollectGroupControl, requestJson); return pack; } /// /// 取消收藏群控 /// public ResponsePackNew CancelCollectGroupControl(string groupControlId) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("userDeviceGroupControlIds", new List() { groupControlId }); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_CancelCollectGroupControl, requestJson); return pack; } #endregion } }