public static GeneralState ConvertFromPoolState(PoolControlInfo state) { var systemState = state.SystemState; var outputs = state.Outputs; var result = new GeneralState() { SummerMode = state.PoolSettings.WorkingMode == Control.Store.PoolWorkingMode.Summer, WaterTemperature = systemState.WaterTemperature.Value, PoolTemperature = systemState.PoolTemperature.Value, AirTemperature = systemState.AirTemperature.Value, PoolTemperatureDecision = systemState.PoolTemperatureDecision.Value, PumpingDurationPerDayInHours = systemState.PumpingDurationPerDayInHours.Value, PoolTemperatureMinOfTheDay = systemState.PoolTemperatureMinOfTheDay.Value, PoolTemperatureMaxOfTheDay = systemState.PoolTemperatureMaxOfTheDay.Value, Pump = outputs.Single(o => o.Output == PinName.Pump).State, PumpForceOff = systemState.PumpForceOff.Value, PumpForceOn = systemState.PumpForceOn.Value, ChlorineInhibition = outputs.Single(o => o.Output == PinName.ChlorineInhibition).State, PhRegulationInhibition = outputs.Single(o => o.Output == PinName.PhRegulationInhibition).State, SwimmingPoolLigth = outputs.Single(o => o.Output == PinName.SwimmingPoolLigth).State, DeckLight = outputs.Single(o => o.Output == PinName.DeckLight).State, Watering = outputs.Single(o => o.Output == PinName.Watering).State, }; if (result.PumpForceOn | result.PumpForceOff) { result.Status = "Mode manuel"; } else { var pumpCycle = state.PumpCycles.FirstOrDefault(); if (pumpCycle != null) { if (result.Pump) { result.Status = string.Format("En cours jusqu'a {0:HH:mm}", pumpCycle.EndTime); } else { result.Status = string.Format("Prochain cycle de {0:HH:mm} a {1:HH:mm}", pumpCycle.StartTime, pumpCycle.EndTime); } } } return(result); }
public GeneralState Get() { this.logger.LogDebug("GET api/v1/status"); return(GeneralState.ConvertFromPoolState(this.poolControl.GetPoolControlInformation())); }
public GeneralState GetStates() { return(GeneralState.ConvertFromPoolState(this.poolControl.GetPoolControlInformation())); }