From 917c28d31963e893d7dd26f933adfa3bde3cf260 Mon Sep 17 00:00:00 2001 From: Davin <591807572@qq.com> Date: 星期三, 26 七月 2023 15:54:29 +0800 Subject: [PATCH] feature 门锁不支持一键开锁设备按钮置灰&&门锁呼叫 --- HDL_ON/DAL/Mqtt/MqttClient.cs | 48 +++++++++++++++++++++++++++++++++++++----------- 1 files changed, 37 insertions(+), 11 deletions(-) diff --git a/HDL_ON/DAL/Mqtt/MqttClient.cs b/HDL_ON/DAL/Mqtt/MqttClient.cs index ea5e472..0358a57 100644 --- a/HDL_ON/DAL/Mqtt/MqttClient.cs +++ b/HDL_ON/DAL/Mqtt/MqttClient.cs @@ -12,6 +12,7 @@ using HDL_ON.Entity; using HDL_ON.UI; using HDL_ON.DAL.Server; +using HDL_ON; namespace HDL_ON.DAL.Mqtt { @@ -110,6 +111,7 @@ { MqttInfoConfig.Current.IfGetMqttInfoSuccess = false; } + Control.Ins.GatewayOnline_Cloud = Control.Ins.GatewayOnline_Local = false; await DisConnectRemoteMqttClient(s); } @@ -159,7 +161,7 @@ StartCloudMqtt(); } - static bool isSubscribeSuccess; + public static bool isSubscribeSuccess; /// <summary> /// 璁㈤槄涓婚 /// </summary> @@ -202,6 +204,12 @@ var pirStudy = new MqttTopicFilter() { Topic = $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/app/thing/event/irCodeStudyDone/up", + QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce + }; + //App璁㈤槄缇ゆ帶鐘舵�佷富棰� + var groupControlStatus = new MqttTopicFilter() + { + Topic = $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/app/device/group/control/property/send", QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce }; @@ -255,13 +263,18 @@ #endregion - Utlis.WriteLine("寮�濮嬭闃咃紒"); - var result = await RemoteMqttClient.SubscribeAsync(new MqttTopicFilter[] { + Utlis.WriteLine("寮�濮嬭闃咃紒"); + var result = await RemoteMqttClient.SubscribeAsync(new MqttTopicFilter[] { pirStatus,pirStudy, appDeviceRefresh,appHomeRefresh,appRoomRefresh,residenceChange, topicFilterPush2, topicAlinkStatus ,mqttkeyChange, deviceOnlinePush, securityStatusChange}); + //璁㈤槄缇ゆ帶鐘舵�� + if (DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl) + { + await RemoteMqttClient.SubscribeAsync(groupControlStatus); + } if (result.Items[0].ResultCode == MQTTnet.Client.Subscribing.MqttClientSubscribeResultCode.GrantedQoS0) { isSubscribeSuccess = true; @@ -323,10 +336,12 @@ /// </summary> public static async Task StartCloudMqtt() { - if (MainPage.InternetStatus == 0) + //娌℃湁缃戠粶鐨勭姸鎬佷笅灏濊瘯涓�涓嬭繛鎺qtt 锛屽畨鍗撶殑缃戠粶鐘舵�佸彉鍖栫洃鍚湁寮傚父锛屼慨鏀瑰簳灞傞夯鐑� + if (MainPage.InternetStatus == 0 && MainPage.LinkHdlMqttCount > 1) { return; } + MainPage.LinkHdlMqttCount++; if (!UserInfo.Current.IsLogin) { @@ -361,7 +376,7 @@ try { var topic = e.ApplicationMessage.Topic; - //MainPage.Log($"鏀跺埌mqtt涓婚:{topic}"); + MainPage.Log($"鏀跺埌mqtt涓婚:{topic}"); //涓�绔彛涓婚澶勭悊 if (DB_ResidenceData.Instance.GatewayType == 0 && !DB_ResidenceData.Instance.CheckWhetherGatewayIdIsNull()) { @@ -444,10 +459,10 @@ } #region 鏁版嵁鏇存柊鎺ㄩ�佷富棰� //appHomeRefresh锛氫綇瀹呮暟鎹埛鏂伴�氱煡 - else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/app/thing/event/appHomeRefresh/up" - || topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/app/thing/event/appDeviceRefresh/up") + else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/app/thing/event/appHomeRefresh/up") { MainPage.Log("浣忓畢鏁版嵁鍒锋柊閫氱煡"); + System.Threading.Thread.Sleep(2000); new HttpServerRequest().GetHomePager(); } //appRoomRefresh锛氭埧闂存暟鎹埛鏂伴�氱煡 @@ -562,11 +577,18 @@ } } #endregion + //缇ゆ帶鐘舵�� + else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/app/device/group/control/property/send") + { + var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, tuyaEncryptKey); + var revString = Encoding.UTF8.GetString(bytes); + MainPage.Log($"mqtt 缇ゆ帶鐘舵�佹洿鏂�:{revString}"); + Control.Ins.UpdataGroupControlStatus(revString, null, true); + } //A缃戝叧璁惧鐘舵��-鍖呭惈娑傞甫璁惧 //Tag 缃戠粶鐘舵�佽В鏋� else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/app/thing/property/send") { - var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, tuyaEncryptKey); var revString = Encoding.UTF8.GetString(bytes); MainPage.Log($"mqtt 鐘舵�佹洿鏂�:{revString}"); @@ -618,6 +640,10 @@ { IfNeedReadAllDeviceStatus = true; Control.Ins.GatewayOnline_Cloud = true; + if(MainPage.InternetStatus == 0) + { + MainPage.InternetStatus = 1; + } Utlis.WriteLine($"============>Mqtt杩滅▼杩炴帴鎴愬姛"); SendPushSignOut(); }); @@ -659,7 +685,7 @@ } catch (Exception ex) { - Utlis.WriteLine($"error:" + ex.Message); + Utlis.WriteLine($"mqtt杩炴帴寮傚父 error:" + ex.Message); //mqtt杩炴帴寮傚父锛屾竻绌烘湰鍦癿qtt淇℃伅锛屽彲鑳介渶瑕侀噸鏂拌幏鍙栵細wxr MqttInfoConfig.Current.Refresh(); } @@ -847,7 +873,7 @@ static void ReceiveNotifySqueezeAsync(string mMes) { #if DEBUG - return; + //return; #endif if (mMes == PushSignStr) return;//鏄嚜宸辩殑鐧诲綍鎺ㄩ�佷笉澶勭悊//鎴栬�呭綋鍓嶄笉鏄繙绋嬮摼鎺ョ姸鎬� //娴嬭瘯璐﹀彿锛屼笉鎸や笅绾� @@ -1162,7 +1188,7 @@ } catch (Exception ex) { - Console.WriteLine(ex.Message); + MainPage.Log(ex.Message); } return reData; } -- Gitblit v1.8.0