public static void ChangeMode(long lRequestId, AirConditionerMode mode) { AirConditionerCommand command = new AirConditionerCommand(); Logging.WriteDebugLog("AirConditioner.ChangeMode() [0x{0}] Changing Mode: {1}", lRequestId.ToString("X8"), Enum.GetName(typeof(AirConditionerMode), mode)); lock (_oLockCommand) { command.amOn = (mode == AirConditionerMode.None ? false : true); command.tempTarget = _airConditionerCommand.tempTarget; command.fanSpeed = _airConditionerCommand.fanSpeed; command.mode = (mode == AirConditionerMode.None ? _airConditionerData.iMode : (int)mode); command.enabledZones = _airConditionerCommand.enabledZones; } MQTT.SendMessage("actron/aircon/mode", (mode != AirConditionerMode.None ? Enum.GetName(typeof(ModeMQTT), mode).ToLower() : "off")); PostCommand(lRequestId, "System", command); }
public IAirConditionerMode ExecuteMode(AirConditionerMode mode, double temperature) => _modesFactories[mode].Create(temperature);