public static ReadOnlyThermostatFanState Empty()
        {
            var result = new ReadOnlyThermostatFanState
            {
                SupportedModes = new ThermostatFanMode[] {}
            };

            return(result);
        }
        public static ReadOnlyThermostatFanState Blank()
        {
            var result = new ReadOnlyThermostatFanState
            {
                SupportedModes = new ThermostatFanMode[0]
            };

            return(result);
        }
        public static ReadOnlyThermostatFanState Empty()
        {
            var result = new ReadOnlyThermostatFanState
                {
                    SupportedModes = new ThermostatFanMode[] {}
                };

            return result;
        }
        public static ReadOnlyThermostatFanState Blank()
        {
            var result = new ReadOnlyThermostatFanState
            {
                SupportedModes = new ThermostatFanMode[0]
            };

            return result;
        }
        public static ReadOnlyThermostatFanState CopyFrom(IThermostatFanState state)
        {
            var supportedModes = new List<ThermostatFanMode>();
            if (state.SupportedModes != null)
            {
                supportedModes.AddRange(state.SupportedModes);
            }

            var result = new ReadOnlyThermostatFanState
            {
                SupportedModes = supportedModes,
                Mode = state.Mode,
                CurrentAction = state.CurrentAction
            };

            return result;
        }
        public static ReadOnlyThermostatFanState CopyFrom(IThermostatFanState state)
        {
            var supportedModes = new List <ThermostatFanMode>();

            if (state.SupportedModes != null)
            {
                supportedModes.AddRange(state.SupportedModes);
            }

            var result = new ReadOnlyThermostatFanState
            {
                SupportedModes = supportedModes,
                Mode           = state.Mode,
                CurrentAction  = state.CurrentAction
            };

            return(result);
        }
        public static ReadOnlyThermostatFanState FromXElement(XElement element)
        {
            ThermostatFanCurrentAction?currentAction = null;
            var currentActionString = element.GetAttributeStringValue("CurrentAction");

            if (currentActionString != null)
            {
                currentAction = currentActionString.ToThermostatFanCurrentAction();
            }

            ThermostatFanMode?mode = null;
            var modeString         = element.GetAttributeStringValue("Mode");

            if (modeString != null)
            {
                mode = modeString.ToThermostatFanMode();
            }

            var supportedModes     = new List <ThermostatFanMode>();
            var supportedModesNode = element.Element("SupportedModes");

            if (supportedModesNode != null)
            {
                foreach (var modeElement in supportedModesNode.Elements())
                {
                    var supportedMode = modeElement.Value.ToThermostatFanMode();
                    supportedModes.Add(supportedMode);
                }
            }

            var result = new ReadOnlyThermostatFanState
            {
                CurrentAction  = currentAction,
                Mode           = mode,
                SupportedModes = supportedModes
            };

            return(result);
        }
Exemple #8
0
 public static ReadOnlyThermostatFanState ToThermostatFanState(this XElement element)
 {
     return(ReadOnlyThermostatFanState.FromXElement(element));
 }
Exemple #9
0
 public static ReadOnlyThermostatFanState Copy(this IThermostatFanState state)
 {
     return(ReadOnlyThermostatFanState.CopyFrom(state));
 }
Exemple #10
0
        public static IDeviceState GenerateExampleDevice(DeviceType type, bool includeCurrentAction, bool includeToggle, bool includeDimmer, bool includeColorSwitch, bool includeBinarySensor, bool includePowerSensor, bool includeTemperatureSensor, bool includeHumiditySensor, bool includeIlluminanceSensor, bool includeThermostat, bool includeKeypad)
        {
            string currentAction = "Idle";

            var toggle = new ReadOnlyBinarySwitchSwitchState(BinarySwitchPower.On);
            var dimmer = new ReadOnlyMultilevelSwitchState(25, 100);
            var colorSwitch = new ReadOnlyColorSwitchState(new NamedColor("Purple"));

            var binarySensor = new ReadOnlyBinarySensorState(BinarySensorType.Motion, true, DateTime.UtcNow.AddMinutes(-4));

            var powerSensor = new ReadOnlyMultilevelSensorState<IPower>(new WattsPower(25), DateTime.UtcNow.AddSeconds(-2));

            var temperatureSensor = new ReadOnlyMultilevelSensorState<ITemperature>(new CelsiusTemperature(3), DateTime.UtcNow.AddSeconds(-1));

            var humiditySensor = new ReadOnlyMultilevelSensorState<IHumidity>(new RelativeHumidity(25), DateTime.UtcNow.AddSeconds(-5));

            var illuminanceSensor = new ReadOnlyMultilevelSensorState<IIlluminance>(new LuxIlluminance(50), DateTime.UtcNow.AddSeconds(-4));

            var thermostatCoreModes = new[] { ThermostatMode.Auto, ThermostatMode.Cool, ThermostatMode.Heat, ThermostatMode.FanOnly, ThermostatMode.Off };
            var thermostatCore = new ReadOnlyThermostatCoreState(thermostatCoreModes, ThermostatMode.Cool, ThermostatCurrentAction.Cooling);

            var thermostatFanModes = new[] { ThermostatFanMode.Auto, ThermostatFanMode.On };
            var thermostatFan = new ReadOnlyThermostatFanState(thermostatFanModes, ThermostatFanMode.Auto, ThermostatFanCurrentAction.On);

            var thermostatSetpoints = new ReadOnlyThermostatSetpointCollection(new Dictionary<ThermostatSetpointType, ITemperature>
                {
                    {ThermostatSetpointType.Cool, new FahrenheitTemperature(74)},
                    {ThermostatSetpointType.Heat, new FahrenheitTemperature(70)}
                });

            var thermostat = new ReadOnlyThermostatState(thermostatCore, thermostatFan, thermostatSetpoints);

            var keypadButtons = new []
                {
                    new ReadOnlyKeypadButtonState("1", false),
                    new ReadOnlyKeypadButtonState("2", true),
                    new ReadOnlyKeypadButtonState("3", null)
                };

            var keypad = new ReadOnlyKeypadState(keypadButtons);

            var location = new Location("Here");

            var address = _id.ToString();
            _id++;

            if (!includeCurrentAction)
            {
                currentAction = null;
            }

            if (!includeToggle)
            {
                toggle = null;
            }

            if (!includeDimmer)
            {
                dimmer = null;
            }

            if (!includeColorSwitch)
            {
                colorSwitch = null;
            }

            if (!includeBinarySensor)
            {
                binarySensor = null;
            }

            if (!includePowerSensor)
            {
                powerSensor = null;
            }

            if (!includeTemperatureSensor)
            {
                temperatureSensor = null;
            }

            if (!includeHumiditySensor)
            {
                humiditySensor = null;
            }

            if (!includeIlluminanceSensor)
            {
                illuminanceSensor = null;
            }

            if (!includeThermostat)
            {
                thermostat = null;
            }

            if (!includeKeypad)
            {
                keypad = null;
            }

            var device = new ReadOnlyDeviceState("Sample Device", address, location, null, true, type, currentAction, toggle, dimmer, colorSwitch, binarySensor, powerSensor, temperatureSensor, humiditySensor, illuminanceSensor, thermostat, keypad);

            return device;
        }
        public static ReadOnlyThermostatFanState FromXElement(XElement element)
        {
            ThermostatFanCurrentAction? currentAction = null;
            var currentActionString = element.GetAttributeStringValue("CurrentAction");
            if (currentActionString != null)
            {
                currentAction = currentActionString.ToThermostatFanCurrentAction();
            }

            ThermostatFanMode? mode = null;
            var modeString = element.GetAttributeStringValue("Mode");
            if (modeString != null)
            {
                mode = modeString.ToThermostatFanMode();
            }

            var supportedModes = new List<ThermostatFanMode>();
            var supportedModesNode = element.Element("SupportedModes");
            if (supportedModesNode != null)
            {
                foreach (var modeElement in supportedModesNode.Elements())
                {
                    var supportedMode = modeElement.Value.ToThermostatFanMode();
                    supportedModes.Add(supportedMode);
                }
            }

            var result = new ReadOnlyThermostatFanState
                {
                    CurrentAction = currentAction,
                    Mode = mode,
                    SupportedModes = supportedModes
                };

            return result;
        }