| | |
| | | try |
| | | { |
| | | var localFunction = allLocalFuntion.Find((obj) => obj.sid == updateTemp.sid); |
| | | if (localFunction == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (Ins.GatewayOnline_Local && isCloudData)//本地链接,除了涂鸦设备数据之外的云端数据不处理 |
| | | { |
| | | if(!SPK.Get3tySpk(SPK.BrandType.All3tyBrand).Contains(localFunction.spk)) |
| | | if (!SPK.Get3tySpk(SPK.BrandType.All3tyBrand).Contains(localFunction.spk)) |
| | | { |
| | | //MainPage.Log($"A协议更新状态:本地链接,除了涂鸦设备数据之外的云端数据不处理........"); |
| | | return; |
| | | } |
| | | } |
| | | //MainPage.Log($"A协议更新状态:{revString}"); |
| | | MainPage.Log($"A协议更新状态:{revString}"); |
| | | foreach (var attr in updateTemp.status) |
| | | { |
| | | localFunction.SetAttrState(attr.key,attr.value); |
| | | localFunction.SetAttrState(attr.key, attr.value); |
| | | } |
| | | |
| | | if (localFunction != null) |
| | | //更新界面状态 |
| | | Function localObj = null; |
| | | switch (localFunction.spk) |
| | | { |
| | | //更新界面状态 |
| | | Function localObj = null; |
| | | switch (localFunction.spk) |
| | | { |
| | | case SPK.LightSwitch: |
| | | var localSwitch = FunctionList.List.lights.Find((obj) => obj.sid == updateTemp.sid); |
| | | if (localSwitch != null) |
| | | case SPK.LightSwitch: |
| | | RelayPage.UpdataState(localFunction); |
| | | break; |
| | | case SPK.LightDimming: |
| | | localFunction.lastState = Language.StringByID(StringId.Brightness) + " : " + |
| | | localFunction.GetAttrState(FunctionAttributeKey.Brightness) + "%"; |
| | | DimmerPage.UpdataStates(localFunction); |
| | | break; |
| | | case SPK.ElectricFan: |
| | | localFunction.lastState = Language.StringByID(StringId.Level) + " : " + |
| | | localFunction.GetAttrState(FunctionAttributeKey.OpenLevel); |
| | | FanPage.UpdataState(localFunction); |
| | | break; |
| | | case SPK.LightRGB: |
| | | localFunction.lastState = Language.StringByID(StringId.Brightness) + " : " + localFunction.GetAttrState(FunctionAttributeKey.Brightness) + "%"; |
| | | RGBPage.UpdataStates(localFunction); |
| | | break; |
| | | case SPK.LightRGBW: |
| | | break; |
| | | case SPK.LightCCT: |
| | | localFunction.lastState = Language.StringByID(StringId.Brightness) + " : " + localFunction.GetAttrState(FunctionAttributeKey.Brightness) + "%"; |
| | | ColorTureLampPage.UpdataStatus(localFunction); |
| | | break; |
| | | case SPK.CurtainSwitch: |
| | | localFunction.lastState = localFunction.trait_on_off.curValue.ToString() == "on" ? Language.StringByID(StringId.Open) : Language.StringByID(StringId.Close); |
| | | CurtainModulePage.UpdataState(localFunction); |
| | | break; |
| | | case SPK.CurtainTrietex: |
| | | localFunction.lastState = Language.StringByID(StringId.Open) + localFunction.GetAttrState(FunctionAttributeKey.Percent) + "%"; |
| | | MotorCurtainPage.UpdataState(localFunction); |
| | | break; |
| | | case SPK.CurtainRoller: |
| | | localFunction.lastState = Language.StringByID(StringId.Open) + localFunction.GetAttrState(FunctionAttributeKey.Percent) + "%"; |
| | | RollingShutterPage.UpdataState(localFunction); |
| | | break; |
| | | case SPK.CurtainShades: |
| | | break; |
| | | case SPK.AcStandard: |
| | | Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid, updateTemp.status); |
| | | if (localFunction != null) |
| | | { |
| | | localFunction.lastState = ""; |
| | | switch (localFunction.GetAttrState(FunctionAttributeKey.Mode)) |
| | | { |
| | | localObj = localSwitch; |
| | | foreach (var attr in updateTemp.status) |
| | | { |
| | | var localAttr = localSwitch.attributes.Find((obj) => obj.key == attr.key); |
| | | if (localAttr != null) |
| | | { |
| | | localAttr.curValue = attr.value; |
| | | } |
| | | } |
| | | RelayPage.UpdataState(localSwitch); |
| | | case "cool": |
| | | localFunction.lastState = Language.StringByID(StringId.Cool); |
| | | break; |
| | | case "heat": |
| | | localFunction.lastState = Language.StringByID(StringId.Heat); |
| | | break; |
| | | case "dry": |
| | | localFunction.lastState = Language.StringByID(StringId.Dry); |
| | | break; |
| | | case "auto": |
| | | localFunction.lastState = Language.StringByID(StringId.Auto); |
| | | break; |
| | | case "fan": |
| | | localFunction.lastState = Language.StringByID(StringId.AirSupply); |
| | | break; |
| | | } |
| | | break; |
| | | case SPK.LightDimming: |
| | | var dimming = FunctionList.List.lights.Find((obj) => obj.sid == updateTemp.sid); |
| | | if (dimming != null) |
| | | switch (localFunction.GetAttrState(FunctionAttributeKey.FanSpeed)) |
| | | { |
| | | localObj = dimming; |
| | | foreach (var attr in updateTemp.status) |
| | | { |
| | | var localAttr = dimming.attributes.Find((obj) => obj.key == attr.key); |
| | | if (localAttr != null) |
| | | { |
| | | localAttr.curValue = attr.value; |
| | | } |
| | | } |
| | | dimming.lastState = Language.StringByID(StringId.Brightness) + " : " + dimming.brightness + "%"; |
| | | DimmerPage.UpdataStates(dimming); |
| | | case "high": |
| | | localFunction.lastState += " " + Language.StringByID(StringId.HighWindSpeed); |
| | | break; |
| | | case "medium": |
| | | localFunction.lastState += " " + Language.StringByID(StringId.MiddleWindSpeed); |
| | | break; |
| | | case "low": |
| | | localFunction.lastState += " " + Language.StringByID(StringId.LowWindSpeed); |
| | | break; |
| | | case "auto": |
| | | localFunction.lastState += " " + Language.StringByID(StringId.Auto); |
| | | break; |
| | | } |
| | | break; |
| | | case SPK.ElectricFan: |
| | | var fan = FunctionList.List.fans.Find((obj) => obj.sid == updateTemp.sid); |
| | | if (fan != null) |
| | | localFunction.lastState += " " + localFunction.GetAttrState(FunctionAttributeKey.SetTemp) + new AC().GetTempUnitString(localFunction); |
| | | ACPage.UpdataStates(localFunction); |
| | | } |
| | | break; |
| | | case SPK.FloorHeatStandard: |
| | | switch (localFunction.GetAttrState(FunctionAttributeKey.Mode)) |
| | | { |
| | | case "normal": |
| | | localFunction.lastState = Language.StringByID(StringId.Normal); |
| | | break; |
| | | case "day": |
| | | localFunction.lastState = Language.StringByID(StringId.Day); |
| | | break; |
| | | case "night": |
| | | localFunction.lastState = Language.StringByID(StringId.Night); |
| | | break; |
| | | case "timer": |
| | | localFunction.lastState = Language.StringByID(StringId.Auto); |
| | | break; |
| | | case "away": |
| | | localFunction.lastState = Language.StringByID(StringId.Away); |
| | | break; |
| | | } |
| | | localFunction.lastState += " " + localFunction.GetAttrState(FunctionAttributeKey.SetTemp) + new FloorHeating().GetTempUnitString(localFunction); |
| | | FloorHeatingPage.UpdataStates(localFunction); |
| | | break; |
| | | case SPK.SensorPm25: |
| | | case SPK.SensorCO2: |
| | | case SPK.SensorTVOC: |
| | | case SPK.SensorTemperature: |
| | | case SPK.SensorHumidity: |
| | | var sensor = FunctionList.List.GetEnvirSensorsList().Find((obj) => obj.sid == updateTemp.sid); |
| | | if (sensor != null) |
| | | { |
| | | localObj = sensor; |
| | | foreach (var attr in updateTemp.status) |
| | | { |
| | | localObj = fan; |
| | | foreach (var attr in updateTemp.status) |
| | | var localAttr = sensor.attributes.Find((obj) => obj.key == attr.key); |
| | | if (localAttr != null) |
| | | { |
| | | var localAttr = fan.attributes.Find((obj) => obj.key == attr.key); |
| | | if (localAttr != null) |
| | | { |
| | | localAttr.curValue = attr.value; |
| | | } |
| | | localAttr.curValue = attr.value; |
| | | } |
| | | fan.lastState = Language.StringByID(StringId.Level) + " : " + fan.openLevel; |
| | | FanPage.UpdataState(fan); |
| | | } |
| | | break; |
| | | case SPK.LightRGB: |
| | | var rgb = FunctionList.List.lights.Find((obj) => obj.sid == updateTemp.sid); |
| | | if (rgb != null) |
| | | EnvironmentalSciencePage.LoadEvent_UpdataStatus(sensor); |
| | | } |
| | | break; |
| | | case SPK.ElectricSocket: |
| | | var es = FunctionList.List.GetElectricSocketList().Find((obj) => obj.sid == updateTemp.sid); |
| | | if (es != null) |
| | | { |
| | | localObj = es; |
| | | foreach (var attr in updateTemp.status) |
| | | { |
| | | localObj = rgb; |
| | | foreach (var attr in updateTemp.status) |
| | | var localAttr = es.attributes.Find((obj) => obj.key == attr.key); |
| | | if (localAttr != null) |
| | | { |
| | | var localAttr = rgb.attributes.Find((obj) => obj.key == attr.key); |
| | | if (localAttr != null) |
| | | { |
| | | localAttr.curValue = attr.value; |
| | | } |
| | | localAttr.curValue = attr.value; |
| | | } |
| | | rgb.lastState = Language.StringByID(StringId.Brightness) + " : " + rgb.brightness + "%"; |
| | | RGBPage.UpdataStates(rgb); |
| | | } |
| | | break; |
| | | case SPK.LightRGBW: |
| | | break; |
| | | case SPK.LightCCT:
|
| | | var lightCCT = FunctionList.List.lights.Find((obj) => obj.sid == updateTemp.sid); |
| | | if (lightCCT != null) |
| | | { |
| | | localObj = lightCCT; |
| | | foreach (var attr in updateTemp.status) |
| | | { |
| | | var localAttr = lightCCT.attributes.Find((obj) => obj.key == attr.key); |
| | | if (localAttr != null) |
| | | { |
| | | localAttr.curValue = attr.value; |
| | | } |
| | | } |
| | | lightCCT.lastState = Language.StringByID(StringId.Brightness) + " : " + lightCCT.brightness + "%"; |
| | | ColorTureLampPage.UpdataStates(lightCCT); |
| | | } |
| | | break; |
| | | case SPK.CurtainSwitch: |
| | | var curtain = FunctionList.List.curtains.Find((obj) => obj.sid == updateTemp.sid); |
| | | if (curtain != null) |
| | | { |
| | | localObj = curtain; |
| | | foreach (var attr in updateTemp.status) |
| | | { |
| | | var localAttr = curtain.attributes.Find((obj) => obj.key == attr.key); |
| | | if (localAttr != null) |
| | | { |
| | | localAttr.curValue = attr.value; |
| | | } |
| | | } |
| | | curtain.lastState = curtain.trait_on_off.curValue.ToString() == "on" ? Language.StringByID(StringId.Open) : Language.StringByID(StringId.Close); |
| | | CurtainModulePage.UpdataState(curtain); |
| | | } |
| | | break; |
| | | case SPK.CurtainTrietex: |
| | | var trietex = FunctionList.List.curtains.Find((obj) => obj.sid == updateTemp.sid); |
| | | if (trietex != null) |
| | | { |
| | | localObj = trietex; |
| | | foreach (var attr in updateTemp.status) |
| | | { |
| | | var localAttr = trietex.attributes.Find((obj) => obj.key == attr.key); |
| | | if (localAttr != null) |
| | | { |
| | | localAttr.curValue = attr.value; |
| | | } |
| | | } |
| | | trietex.lastState = Language.StringByID(StringId.Open) + trietex.percent + "%"; |
| | | MotorCurtainPage.UpdataState(trietex); |
| | | } |
| | | break; |
| | | case SPK.CurtainRoller: |
| | | var roller = FunctionList.List.curtains.Find((obj) => obj.sid == updateTemp.sid); |
| | | if (roller != null) |
| | | { |
| | | localObj = roller; |
| | | foreach (var attr in updateTemp.status) |
| | | { |
| | | var localAttr = roller.attributes.Find((obj) => obj.key == attr.key); |
| | | if (localAttr != null) |
| | | { |
| | | localAttr.curValue = attr.value; |
| | | } |
| | | } |
| | | roller.lastState = Language.StringByID(StringId.Open) + roller.percent + "%"; |
| | | RollingShutterPage.UpdataState(roller); |
| | | } |
| | | break; |
| | | case SPK.CurtainShades: |
| | | break; |
| | | case SPK.AcStandard: |
| | | var ac = FunctionList.List.aCs.Find((obj) => obj.sid == updateTemp.sid); |
| | | if (ac != null) |
| | | { |
| | | localObj = ac; |
| | | foreach (var attr in updateTemp.status) |
| | | { |
| | | var localAttr = ac.attributes.Find((obj) => obj.key == attr.key); |
| | | if (localAttr != null) |
| | | { |
| | | localAttr.curValue = attr.value; |
| | | } |
| | | } |
| | | ac.lastState = ""; |
| | | switch (ac.GetAttrState(FunctionAttributeKey.Mode)) |
| | | { |
| | | case "cool": |
| | | ac.lastState = Language.StringByID(StringId.Cool); |
| | | break; |
| | | case "heat": |
| | | ac.lastState = Language.StringByID(StringId.Heat); |
| | | break; |
| | | case "dry": |
| | | ac.lastState = Language.StringByID(StringId.Dry); |
| | | break; |
| | | case "auto": |
| | | ac.lastState = Language.StringByID(StringId.Auto); |
| | | break; |
| | | case "fan": |
| | | ac.lastState = Language.StringByID(StringId.AirSupply); |
| | | break; |
| | | } |
| | | switch (ac.GetAttrState(FunctionAttributeKey.FanSpeed)) |
| | | { |
| | | case "high": |
| | | ac.lastState += " " + Language.StringByID(StringId.HighWindSpeed); |
| | | break; |
| | | case "medium": |
| | | ac.lastState += " " + Language.StringByID(StringId.MiddleWindSpeed); |
| | | break; |
| | | case "low": |
| | | ac.lastState += " " + Language.StringByID(StringId.LowWindSpeed); |
| | | break; |
| | | case "auto": |
| | | ac.lastState += " " + Language.StringByID(StringId.Auto); |
| | | break; |
| | | } |
| | | ac.lastState += " " + ac.GetAttrState(FunctionAttributeKey.SetTemp) + ac.tempUnitString; |
| | | ACPage.UpdataStates(ac); |
| | | } |
| | | break; |
| | | case SPK.FloorHeatStandard: |
| | | var fh = FunctionList.List.floorHeatings.Find((obj) => obj.sid == updateTemp.sid); |
| | | if (fh != null) |
| | | { |
| | | localObj = fh; |
| | | foreach (var attr in updateTemp.status) |
| | | { |
| | | var localAttr = fh.attributes.Find((obj) => obj.key == attr.key); |
| | | if (localAttr != null) |
| | | { |
| | | localAttr.curValue = attr.value; |
| | | } |
| | | } |
| | | switch (fh.trait_mode.curValue) |
| | | { |
| | | case "normal": |
| | | fh.lastState = Language.StringByID(StringId.Normal); |
| | | break; |
| | | case "day": |
| | | fh.lastState = Language.StringByID(StringId.Day); |
| | | break; |
| | | case "night": |
| | | fh.lastState = Language.StringByID(StringId.Night); |
| | | break; |
| | | case "timer": |
| | | fh.lastState = Language.StringByID(StringId.Auto); |
| | | break; |
| | | case "away": |
| | | fh.lastState = Language.StringByID(StringId.Away); |
| | | break; |
| | | } |
| | | fh.lastState += " " + fh.trait_temp.curValue + fh.tempUnitString; |
| | | FloorHeatingPage.UpdataStates(fh); |
| | | } |
| | | break; |
| | | case SPK.SensorPm25: |
| | | case SPK.SensorCO2: |
| | | case SPK.SensorTVOC: |
| | | case SPK.SensorTemperature: |
| | | case SPK.SensorHumidity: |
| | | var sensor = FunctionList.List.sensorsEnvironmentalScience.Find((obj) => obj.sid == updateTemp.sid); |
| | | if (sensor != null) |
| | | { |
| | | localObj = sensor; |
| | | foreach (var attr in updateTemp.status) |
| | | { |
| | | var localAttr = sensor.attributes.Find((obj) => obj.key == attr.key); |
| | | if (localAttr != null) |
| | | { |
| | | localAttr.curValue = attr.value; |
| | | } |
| | | } |
| | | EnvironmentalSciencePage.LoadEvent_UpdataStatus(sensor); |
| | | } |
| | | break; |
| | | case SPK.ElectricSocket: |
| | | var es = FunctionList.List.switchSockets.Find((obj) => obj.sid == updateTemp.sid); |
| | | if (es != null) |
| | | { |
| | | localObj = es; |
| | | foreach (var attr in updateTemp.status) |
| | | { |
| | | var localAttr = es.attributes.Find((obj) => obj.key == attr.key); |
| | | if (localAttr != null) |
| | | { |
| | | localAttr.curValue = attr.value; |
| | | } |
| | | } |
| | | SocketPage.UpdataState(es); |
| | | } |
| | | break; |
| | | case SPK.ElectricTV: |
| | | break;
|
| | | case SPK.ElectricTuyaAirCleaner:
|
| | | case SPK.ElectricTuyaFan:
|
| | | case SPK.ElectricTuyaWeepRobot: |
| | | case SPK.ElectricTuyaWaterValve: |
| | | case SPK.SensorPir: |
| | | case SPK.SensorDoorWindow: |
| | | case SPK.SensorSmoke: |
| | | case SPK.SensorWater: |
| | | case SPK.ClothesHanger: |
| | | case SPK.IrAC: |
| | | //设备状态推送 |
| | | Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid,updateTemp.status); |
| | | break; |
| | | } |
| | | if (localObj != null)
|
| | | {
|
| | | HomePage.UpdataFunctionStates(localObj);
|
| | | RoomPage.UpdataStates(localObj);
|
| | | FunctionPage.UpdataStates(localObj);
|
| | | ClassificationPage.UpdataInfo(localObj);
|
| | | } |
| | | SocketPage.UpdataState(es); |
| | | } |
| | | break; |
| | | case SPK.ElectricTV: |
| | | break; |
| | | case SPK.ElectricTuyaAirCleaner: |
| | | case SPK.ElectricTuyaFan: |
| | | case SPK.ElectricTuyaWeepRobot: |
| | | case SPK.ElectricTuyaWaterValve: |
| | | case SPK.SensorPir: |
| | | case SPK.SensorDoorWindow: |
| | | case SPK.SensorSmoke: |
| | | case SPK.SensorWater: |
| | | case SPK.ClothesHanger: |
| | | case SPK.IrAC: |
| | | //设备状态推送 |
| | | Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid, updateTemp.status); |
| | | break; |
| | | } |
| | | |
| | | HomePage.UpdataFunctionStates(localFunction); |
| | | RoomPage.UpdataStates(localFunction); |
| | | FunctionPage.UpdataStates(localFunction); |
| | | ClassificationPage.UpdataInfo(localFunction); |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |