private static void Print(ThermostatStatus tstat) { Console.WriteLine("Mode: " + tstat.Mode); Console.WriteLine("Fan: " + tstat.FanOperatingMode); Console.WriteLine("Current Temp: " + tstat.CurrentTemperature); Console.WriteLine("Target Heat: " + tstat.TargetTemperatureHeat); Console.WriteLine("Target Cool: " + tstat.TargetTemperatureCool); Console.WriteLine("Time: " + tstat.Time); Console.WriteLine("***********************************************"); }
/// <summary> /// Sets the current status (temperature, mode, etc) of the thermostat. /// </summary> /// <param name="tstat"></param> /// <param name="ct">Cancellation token instance.</param> /// <returns></returns> public async Task <ThermostatStatus> SetThermostatStatus(ThermostatStatus tstat, CancellationToken ct) { var json = Newtonsoft.Json.JsonConvert.SerializeObject(tstat.GetChangedProperties()); var content = new StringContent(json, Encoding.UTF8); var response = await this.PostAsync <ThermostatResponse>("tstat", ct, content); if (tstat.Mode == ThermostatModes.Off) { await Task.Delay(1000); } return(await this.GetThermostatStatus(ct)); }
private void UpdateThermostat() { if (thermostatMode == ThermostatMode.Cool) { if (fahrenheitTemp > 25 && thermostatStatus == ThermostatStatus.Off) { Debug.WriteLine(string.Format("Temperature is {0} degrees fahrenheit. Turning AC on.", fahrenheitTemp)); thermostatStatus = ThermostatStatus.Running; } else if (fahrenheitTemp <= 72 && thermostatStatus == ThermostatStatus.Running) { Debug.WriteLine(string.Format("Temperature is {0} degrees fahrenheit. Turning AC off.", fahrenheitTemp)); thermostatStatus = ThermostatStatus.Off; } } else if (thermostatMode == ThermostatMode.Heat) { if (fahrenheitTemp < 100 && thermostatStatus == ThermostatStatus.Off) { Debug.WriteLine(string.Format("Temperature is {0} degrees fahrenheit. Turning furnance on.", fahrenheitTemp)); thermostatStatus = ThermostatStatus.Running; } else if (fahrenheitTemp >= 68 && thermostatStatus == ThermostatStatus.Running) { Debug.WriteLine(string.Format("Temperature is {0} degrees fahrenheit. Turning furnance off.", fahrenheitTemp)); thermostatStatus = ThermostatStatus.Off; } } else { Debug.WriteLine("Thermostate mode is set to Off. No action taken."); } }
private void pushButtonPin_ValueChanged(GpioPin sender, GpioPinValueChangedEventArgs args) { if (args.Edge == GpioPinEdge.FallingEdge) { if (thermostatStatus == ThermostatStatus.Running) { thermostatStatus = ThermostatStatus.Off; Debug.WriteLine("Thermostat status changed from Running to Off."); } switch (thermostatMode) { case ThermostatMode.Off: thermostatMode = ThermostatMode.Cool; rgbLedStatus = RgbLedStatus.Blue; SetRgbLedStatus(RgbLedStatus.Blue); ReadADC(); UpdateThermostat(); Debug.WriteLine("Thermostat mode changed from Off to Cool."); break; case ThermostatMode.Cool: thermostatMode = ThermostatMode.Heat; rgbLedStatus = RgbLedStatus.Red; SetRgbLedStatus(RgbLedStatus.Red); ReadADC(); UpdateThermostat(); Debug.WriteLine("Thermostat mode changed from Cool to Heat."); break; case ThermostatMode.Heat: thermostatMode = ThermostatMode.Off; rgbLedStatus = RgbLedStatus.Off; SetRgbLedStatus(RgbLedStatus.Off); Debug.WriteLine("Thermostat mode changed from Heat to Off."); break; } } }