internal UiStatus(NefitStatus stat) { UserMode = (UserModes)Enum.Parse(typeof(UserModes), stat.UMD, true); ClockProgram = (ClockProgram)Enum.Parse(typeof(ClockProgram), stat.CPM, true); InHouseStatus = (InHouseStatus)Enum.Parse(typeof(InHouseStatus), stat.IHS, true); Control = (ControlMode)Enum.Parse(typeof(ControlMode), stat.CTR, true); BoilerIndicator = EnumHelper.ToArray <BoilerIndicator>().FirstOrDefault(bi => (int)bi == (int)(BoilerIndicatorRef)Enum.Parse(typeof(BoilerIndicatorRef), stat.BAI, true)); InHouseTemperature = double.Parse(stat.IHT, CultureInfo.InvariantCulture); TempOverrideDuration = double.Parse(stat.TOD, CultureInfo.InvariantCulture); CurrentProgramSwitch = Convert.ToInt32(stat.CSP); PowerSaveMode = NefitEasyUtils.IsOnOrTrue(stat.ESI); FireplaceMode = NefitEasyUtils.IsOnOrTrue(stat.FPA); TempOverride = NefitEasyUtils.IsOnOrTrue(stat.TOR); HolidayMode = NefitEasyUtils.IsOnOrTrue(stat.HMD); BoilerBlock = NefitEasyUtils.IsOnOrTrue(stat.BBE); DayAsSunday = NefitEasyUtils.IsOnOrTrue(stat.DAS); BoilerLock = NefitEasyUtils.IsOnOrTrue(stat.BLE); BoilerMaintenance = NefitEasyUtils.IsOnOrTrue(stat.BMR); TemperatureSetpoint = double.Parse(stat.TSP, CultureInfo.InvariantCulture); TemperatureOverrideSetpoint = double.Parse(stat.TOT, CultureInfo.InvariantCulture); TemparatureManualSetpoint = double.Parse(stat.MMT, CultureInfo.InvariantCulture); HedEnabled = NefitEasyUtils.IsOnOrTrue(stat.HED_EN); HedDeviceAtHome = NefitEasyUtils.IsOnOrTrue(stat.HED_DEV); HotWaterAvailable = NefitEasyUtils.IsOnOrTrue(stat.DHW); HedDeviceName = stat.HED_DB; }
internal UIStatus(NefitStatus stat) { switch (stat.UMD.ToLower()) { case "clock": UserMode = UserModes.Clock; break; case "manual": UserMode = UserModes.Manual; break; default: UserMode = UserModes.Unknown; break; } switch (stat.CPM.ToLower()) { case "selflearning": ClockProgram = ClockProgram.SelfLearning; break; case "auto": ClockProgram = ClockProgram.Auto; break; default: ClockProgram = ClockProgram.Unknown; break; } switch (stat.IHS.ToLower()) { case "ok": InHouseStatus = InHouseStatus.Ok; break; default: InHouseStatus = InHouseStatus.Unknown; break; } switch (stat.CTR.ToLower()) { case "room": Control = ControlMode.Room; break; default: Control = ControlMode.Unknown; break; } switch (stat.BAI.ToLower()) { case "no": BoilerIndicator = BoilerIndicator.Off; break; case "ch": BoilerIndicator = BoilerIndicator.CentralHeating; break; case "hw": BoilerIndicator = BoilerIndicator.HotWater; break; default: BoilerIndicator = BoilerIndicator.Unknown; break; } InHouseTemperature = Utils.StringToDouble(stat.IHT); TempOverrideDuration = Utils.StringToDouble(stat.TOD); CurrentProgramSwitch = Convert.ToInt32(stat.CSP); PowerSaveMode = stat.ESI == "on"; FireplaceMode = stat.FPA == "on"; TempOverride = stat.TOR == "on"; HolidayMode = stat.HMD == "on"; BoilerBlock = stat.BBE == "true"; DayAsSunday = stat.DAS == "on"; BoilerLock = stat.BLE == "on"; BoilerMaintenance = stat.BMR == "true"; TemperatureSetpoint = Utils.StringToDouble(stat.TSP); TemperatureOverrideSetpoint = Utils.StringToDouble(stat.TOT); TemparatureManualSetpoint = Utils.StringToDouble(stat.MMT); HedEnabled = stat.HED_EN == "true"; HedDeviceAtHome = stat.HED_DEV == "true"; HotWaterAvailable = stat.DHW == "on"; HedDeviceName = stat.HED_DB; }