示例#1
0
        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);
        }
示例#2
0
 public IAirConditionerMode ExecuteMode(AirConditionerMode mode, double temperature) => _modesFactories[mode].Create(temperature);