Esempio n. 1
0
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var device       = context.Device as PiEngineeringDevice;
            var bankString   = context.ReadParameter("Color").Value;
            var button       = context.ReadParameter("Button").Value;
            var statusString = context.ReadParameter("Status").Value;

            Bank bank;

            if (!Enum.TryParse(bankString, out bank))
            {
                throw new RoomieRuntimeException("Color \"" + bankString + "\" is not valid");
            }

            var column = (byte)(button[0] - 'A');
            var row    = (byte)(button[1] - '1');

            LightStatus status;

            if (!Enum.TryParse(statusString, out status))
            {
                throw new RoomieRuntimeException("Status \"" + statusString + "\" is not valid");
            }

            device.SetButtonLight(bank, row, column, status);
        }
Esempio n. 2
0
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var device = context.Device;

            var startPower = context.ReadParameter("StartPower").ToInteger();
            var endPower   = context.ReadParameter("EndPower").ToInteger();

            TimeSpan duration = context.ReadParameter("Duration").ToTimeSpan();

            if (startPower == endPower)
            {
                System.Threading.Thread.Sleep(duration);
                return;
            }

            int      numSteps = Math.Abs(endPower - startPower);
            TimeSpan timeStep = new TimeSpan(0, 0, 0, 0, ((int)duration.TotalMilliseconds) / (numSteps - 1));


            int powerStep = 1;

            if (endPower < startPower)
            {
                powerStep = -1;
            }

            for (var currentPower = startPower; currentPower != endPower; currentPower = (currentPower + powerStep))
            {
                Console.Write(currentPower);
                device.MultilevelSwitch.SetPower(currentPower);
                System.Threading.Thread.Sleep(timeStep);
            }
            device.MultilevelSwitch.SetPower(endPower);
        }
Esempio n. 3
0
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var device = context.Device;

            var startPower = context.ReadParameter("StartPower").ToInteger();
            var endPower = context.ReadParameter("EndPower").ToInteger();

            TimeSpan duration = context.ReadParameter("Duration").ToTimeSpan();

            if (startPower == endPower)
            {
                System.Threading.Thread.Sleep(duration);
                return;
            }

            int numSteps = Math.Abs(endPower - startPower);
            TimeSpan timeStep = new TimeSpan(0, 0, 0, 0, ((int)duration.TotalMilliseconds)/(numSteps-1));

            int powerStep = 1;
            if (endPower < startPower)
                powerStep = -1;

            for (var currentPower = startPower; currentPower != endPower; currentPower = (currentPower + powerStep))
            {
                Console.Write(currentPower);
                device.MultilevelSwitch.SetPower(currentPower);
                System.Threading.Thread.Sleep(timeStep);
            }
            device.MultilevelSwitch.SetPower(endPower);
        }
Esempio n. 4
0
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var device    = context.Device as PiEngineeringDevice;
            var bluePower = context.ReadParameter("BluePower").ToByte();
            var redPower  = context.ReadParameter("RedPower").ToByte();

            device.SetButtonLightIntensity(bluePower, redPower);
        }
Esempio n. 5
0
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var device = context.Device;
            var temperature = context.ReadParameter("Temperature").ToTemperature();
            var setpointType = context.ReadParameter("Setpoint").ToThermostatSetpointType();

            device.Thermostat.Setpoints.SetSetpoint(setpointType, temperature);
        }
Esempio n. 6
0
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var power  = context.ReadParameter("Power").ToInteger();
            var name   = context.ReadParameter("Name").Value;
            var device = context.Device;

            device.CurrentStateGenerator.AddStep(new WattsPower(power), name);
        }
Esempio n. 7
0
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var power = context.ReadParameter("Power").ToInteger();
            var name = context.ReadParameter("Name").Value;
            var device = context.Device;

            device.CurrentStateGenerator.AddStep(new WattsPower(power), name);
        }
Esempio n. 8
0
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var device       = context.Device;
            var temperature  = context.ReadParameter("Temperature").ToTemperature();
            var setpointType = context.ReadParameter("Setpoint").ToThermostatSetpointType();

            device.Thermostat.Setpoints.SetSetpoint(setpointType, temperature);
        }
Esempio n. 9
0
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var device          = context.Device as ZWaveDevice;
            var interpreter     = context.Interpreter;
            var parameterNumber = context.ReadParameter("ParameterNumber").ToByte();
            var value           = context.ReadParameter("Value").ToByte();

            var parameter = device.BackingObject.ConfigurationParameters[parameterNumber];

            parameter.Value = value;
        }
Esempio n. 10
0
        //TODO: rethink this command
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var interpreter = context.Interpreter;
            var device      = context.Device;

            TimeSpan pollInterval = context.ReadParameter("PollInterval").ToTimeSpan();
            int      maxErrors    = context.ReadParameter("MaxErrors").ToInteger();

            if (pollInterval.Seconds < 0)
            {
                throw new RoomieRuntimeException("PollInterval must be a positive (or 0) time interval.");
            }
            if (maxErrors < -1)
            {
                throw new RoomieRuntimeException("MaxErrors must be a positive (or 0, -1) integer.");
            }

            device.Poll();

            var startPower   = device.MultilevelSwitch.Power;
            var currentPower = startPower;

            int numFails = 0;

            while (true)
            {
                System.Threading.Thread.Sleep(pollInterval);
                try
                {
                    device.Poll();

                    currentPower = device.MultilevelSwitch.Power;
                    if (currentPower != startPower)
                    {
                        return;
                    }
                }
                catch (HomeAutomationException e) //TODO: specialized timeout exception?
                {
                    interpreter.WriteEvent("fail");
                    numFails++;
                    if (maxErrors >= 0 &&
                        numFails >= maxErrors)
                    {
                        throw new RoomieRuntimeException("HomeAutomation Error: " + e.Message);
                    }
                }
            }

            //WaitForChangeHelper helper = new WaitForChangeHelper(interpreter);
            //zWaveDevice.LevelChanged += new ControlThink.ZWave.Devices.ZWaveDevice.LevelChangedEventHandler(helper.zWaveDevice_LevelChanged);
            //helper.WaitUntilChange();
        }
Esempio n. 11
0
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var device     = context.Device as PiEngineeringDevice;
            var bankString = context.ReadParameter("Color").Value;
            var power      = context.ReadParameter("Power").ToBoolean();

            Bank bank;

            if (!Enum.TryParse(bankString, out bank))
            {
                throw new RoomieRuntimeException("Color \"" + bankString + "\" is not valid");
            }

            device.SetAllButtonLights(bank, power);
        }
Esempio n. 12
0
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var device = context.Device;
            var color  = context.ReadParameter("Color").ToColor();

            device.ColorSwitch.SetValue(color);
        }
Esempio n. 13
0
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var device = context.Device;
            var mode   = context.ReadParameter("ThermostatMode").ToThermostatMode();

            device.Thermostat.Core.SetMode(mode);
        }
Esempio n. 14
0
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var device = context.Device;
            var color = context.ReadParameter("Color").ToColor();

            device.ColorSwitch.SetValue(color);
        }
Esempio n. 15
0
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var device = context.Device;
            var fanMode = context.ReadParameter("FanMode").ToThermostatFanMode();

            device.Thermostat.Fan.SetMode(fanMode);
        }
Esempio n. 16
0
File: Dim.cs Progetto: Mavtak/roomie
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var device = context.Device;

            var power = context.ReadParameter("Power").ToInteger();

            device.MultilevelSwitch.SetPower(power);
        }
Esempio n. 17
0
File: Dim.cs Progetto: Mavtak/roomie
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var device = context.Device;

            var power = context.ReadParameter("Power").ToInteger();

            device.MultilevelSwitch.SetPower(power);
        }
Esempio n. 18
0
        //TODO: rethink this command
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var interpreter = context.Interpreter;
            var device = context.Device;

            TimeSpan pollInterval = context.ReadParameter("PollInterval").ToTimeSpan();
            int maxErrors = context.ReadParameter("MaxErrors").ToInteger();

            if (pollInterval.Seconds < 0)
                throw new RoomieRuntimeException("PollInterval must be a positive (or 0) time interval.");
            if (maxErrors < -1)
                throw new RoomieRuntimeException("MaxErrors must be a positive (or 0, -1) integer.");

            device.Poll();

            var startPower = device.MultilevelSwitch.Power;
            var currentPower = startPower;

            int numFails = 0;
            while (true)
            {
                System.Threading.Thread.Sleep(pollInterval);
                try
                {
                    device.Poll();

                    currentPower = device.MultilevelSwitch.Power;
                    if (currentPower != startPower)
                        return;
                }
                catch(HomeAutomationException e) //TODO: specialized timeout exception?
                {
                    interpreter.WriteEvent("fail");
                    numFails++;
                    if (maxErrors>=0
                        && numFails >= maxErrors)
                        throw new RoomieRuntimeException("HomeAutomation Error: " + e.Message);
                }
            }

            //WaitForChangeHelper helper = new WaitForChangeHelper(interpreter);
            //zWaveDevice.LevelChanged += new ControlThink.ZWave.Devices.ZWaveDevice.LevelChangedEventHandler(helper.zWaveDevice_LevelChanged);
            //helper.WaitUntilChange();
        }
Esempio n. 19
0
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var filename       = context.ReadParameter("Filename").Value;
            var includeHeaders = context.ReadParameter("IncludeHeaders").ToBoolean();

            var device         = context.Device;
            var network        = device.Network;
            var networkContext = network.Context;
            var history        = networkContext.History;

            var deviceHistory = history.DeviceEvents
                                .FilterEntity(device)
                                .FilterType(new DevicePowerSensorValueChanged());

            var converter = new Converter();
            var writer    = new CsvWriter <IDeviceEvent>(converter);

            writer.Write(filename, deviceHistory, includeHeaders);
        }
Esempio n. 20
0
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var interpreter = context.Interpreter;
            var device      = context.Device as OpenZWaveDevice;
            var returnRoute = context.ReadParameter(ReturnRouteKey).ToBoolean();

            interpreter.WriteEvent("Optimizing " + device);

            device.OptimizePaths(returnRoute);

            interpreter.WriteEvent("Done");
        }
Esempio n. 21
0
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var device       = context.Device as PiEngineeringDevice;
            var ledString    = context.ReadParameter("LED").Value;
            var statusString = context.ReadParameter("Status").Value;

            Led led;

            if (!Enum.TryParse(ledString, out led))
            {
                throw new RoomieRuntimeException("LED \"" + ledString + "\" is not valid");
            }

            LightStatus status;

            if (!Enum.TryParse(statusString, out status))
            {
                throw new RoomieRuntimeException("Status \"" + statusString + "\" is not valid");
            }

            device.SetLeds(led, status);
        }
Esempio n. 22
0
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var device          = context.Device as ZWaveDevice;
            var interpreter     = context.Interpreter;
            var parameterNumber = context.ReadParameter("ParameterNumber").ToByte();

            var parameter = device.BackingObject.ConfigurationParameters[parameterNumber];

            if (parameter == null)
            {
                interpreter.WriteEvent("Parameter does not exist");
                return;
            }

            interpreter.WriteEvent(parameter.Value.ToString());
        }
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var currentAction = context.ReadParameter("CurrentAction").Value;
            var originalCommand = context.OriginalCommand;
            var commands = originalCommand.InnerCommands;
            var device = context.Device;
            var network = device.Network;
            var triggers = network.Context.Triggers;
            var history = network.Context.History;
            var threadPool = network.Context.ThreadPool;

            var trigger = new WhenTheCurrentActionChangesTrigger(device, currentAction, history.DeviceEvents);
            var action = new RunScriptTriggerAction(threadPool, commands);

            var triggerBundle = new TriggerBundle(trigger, action);

            triggers.Add(triggerBundle);
        }
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var target          = context.ReadParameter("Target").ToHumidity();
            var originalCommand = context.OriginalCommand;
            var commands        = originalCommand.InnerCommands;
            var device          = context.Device;
            var network         = device.Network;
            var triggers        = network.Context.Triggers;
            var history         = network.Context.History;
            var threadPool      = network.Context.ThreadPool;

            var trigger = new WhenHumidityRisesAboveValueTrigger(device, target, history.DeviceEvents);
            var action  = new RunScriptTriggerAction(threadPool, commands);

            var triggerBundle = new TriggerBundle(trigger, action);

            triggers.Add(triggerBundle);
        }
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var target = context.ReadParameter("Target").ToHumidity();
            var originalCommand = context.OriginalCommand;
            var commands = originalCommand.InnerCommands;
            var device = context.Device;
            var network = device.Network;
            var triggers = network.Context.Triggers;
            var history = network.Context.History;
            var threadPool = network.Context.ThreadPool;

            var trigger = new WhenHumidityFallsBelowValueTrigger(device, target, history.DeviceEvents);
            var action = new RunScriptTriggerAction(threadPool, commands);

            var triggerBundle = new TriggerBundle(trigger, action);

            triggers.Add(triggerBundle);
        }
        protected override void Execture_HomeAutomationSingleDeviceDefinition(HomeAutomationSingleDeviceContext context)
        {
            var currentAction   = context.ReadParameter("CurrentAction").Value;
            var originalCommand = context.OriginalCommand;
            var commands        = originalCommand.InnerCommands;
            var device          = context.Device;
            var network         = device.Network;
            var triggers        = network.Context.Triggers;
            var history         = network.Context.History;
            var threadPool      = network.Context.ThreadPool;

            var trigger = new WhenTheCurrentActionChangesTrigger(device, currentAction, history.DeviceEvents);
            var action  = new RunScriptTriggerAction(threadPool, commands);

            var triggerBundle = new TriggerBundle(trigger, action);

            triggers.Add(triggerBundle);
        }