| | |
| | | public List<CommonDevice> DeviceList = new List<CommonDevice>(); |
| | | |
| | | /// <summary> |
| | | /// 所有网关中的设备列表 |
| | | /// </summary> |
| | | [Newtonsoft.Json.JsonIgnore] |
| | | public List<CommonDevice> AllGatewayDeviceList = new List<CommonDevice>(); |
| | | |
| | | /// <summary> |
| | | /// 网关中场景列表 |
| | | /// 一个场景中包含所有信息,包括场景设备信息 |
| | | /// </summary> |
| | |
| | | /// </summary> |
| | | [Newtonsoft.Json.JsonIgnore] |
| | | public List<Scene.GetSceneDeviceListInfo> SceneDeviceList = new List<Scene.GetSceneDeviceListInfo>(); |
| | | |
| | | /// <summary> |
| | | /// 网关中hdl私有按键绑定列表 |
| | | /// </summary> |
| | | [Newtonsoft.Json.JsonIgnore] |
| | | public List<HDLbutton> HdlButtonList = new List<HDLbutton>(); |
| | | |
| | | //网关中新的设备列表 |
| | | [Newtonsoft.Json.JsonIgnore] |
| | | public List<CommonDevice> ListNewDeviceInfoData = new List<CommonDevice>(); |
| | | |
| | | /// <summary> |
| | | /// 私有按键信息列表 |
| | | /// </summary> |
| | | [Newtonsoft.Json.JsonIgnore] |
| | | public System.Collections.Generic.Dictionary<string, HDLbutton> hdlButtonInfoList = new Dictionary<string, HDLbutton>(); |
| | | |
| | | /// <summary> |
| | | /// 传感器信息列表 |
| | | /// </summary> |
| | | [Newtonsoft.Json.JsonIgnore] |
| | | public System.Collections.Generic.Dictionary<string, Scene.TaskListInfo> sceneTaskInfoList = new Dictionary<string, Scene.TaskListInfo>(); |
| | | |
| | | #region action variable |
| | | /// <summary> |
| | |
| | | if (RemoteMqttClient.ApplicationMessageReceivedHandler == null) |
| | | { |
| | | RemoteMqttClient.UseApplicationMessageReceivedHandler((e) => |
| | | { |
| | | if (!RemoteMqttClient.IsConnected || !IsRemote) |
| | | { |
| | | if (e.ApplicationMessage.Topic != "/ZigbeeGateWayToClient/" + Config.Instance.ConnEmqClientId + "/Push/NotifySqueeze")
|
| | | {
|
| | | return;
|
| | | } |
| | | }
|
| | | //如果当前使用的是内网模式
|
| | | if (IsRemote == false)
|
| | | {
|
| | | //这里是特殊的主题
|
| | | if (e.ApplicationMessage.Topic == "/ZigbeeGateWayToClient/" + Config.Instance.ConnEmqClientId + "/Push/NotifySqueeze"//踢人下线
|
| | | || e.ApplicationMessage.Topic == "/ZigbeeGateWayToClient/" + Config.Instance.Guid + "/Push/Deleted"//分享删除
|
| | | || e.ApplicationMessage.Topic == "/ZigbeeGateWayToClient/" + Config.Instance.Guid + "/Push/DeletedShareData"
|
| | | || e.ApplicationMessage.Topic == "/ZigbeeGateWayToClient/" + Config.Instance.Home.Id + "_" + Config.Instance.Guid + "/PrimaryUserDelYou")//子账号被删除
|
| | | {
|
| | | if (e.ApplicationMessage.Topic == "/ZigbeeGateWayToClient/" + Config.Instance.ConnEmqClientId + "/Push/NotifySqueeze"//踢人下线
|
| | | || e.ApplicationMessage.Topic == "/ZigbeeGateWayToClient/" + Config.Instance.Guid + "/Push/Deleted"//分享删除
|
| | | || e.ApplicationMessage.Topic == "/ZigbeeGateWayToClient/" + Config.Instance.Guid + "/Push/DeletedShareData")
|
| | | {
|
| | | mqttRemoteClient_MqttMsgPublishReceived(e);
|
| | | }
|
| | | mqttRemoteClient_MqttMsgPublishReceived(e);
|
| | | return;
|
| | | }
|
| | | if (!RemoteMqttClient.IsConnected || !IsRemote)
|
| | | {
|
| | | return;
|
| | | } |
| | | mqttRemoteClient_MqttMsgPublishReceived(e); |
| | |
| | | await RemoteMqttClient.SubscribeAsync("/ZigbeeGateWayToClient/" + myGuid + "/Push/Deleted");
|
| | | //订阅一个分享数据已经变更的主题
|
| | | await RemoteMqttClient.SubscribeAsync("/ZigbeeGateWayToClient/" + myGuid + "/Push/DeletedShareData");
|
| | | //订阅一个子账号被删除的主题
|
| | | await RemoteMqttClient.SubscribeAsync("/ZigbeeGateWayToClient/" + Config.Instance.Home.Id + "_" + myGuid + "/PrimaryUserDelYou");
|
| | | }
|
| | | //订阅一个挤下线的主题
|
| | | await RemoteMqttClient.SubscribeAsync("/ZigbeeGateWayToClient/" + Config.Instance.ConnEmqClientId + "/Push/NotifySqueeze");
|