示例#1
0
        public override void Setup()
        {
            var hsrel5 = CCToolsBoardController.CreateHSREL5(InstalledDevice.KitchenHSREL5, new I2CSlaveAddress(58));
            var hspe8  = CCToolsBoardController.CreateHSPE8OutputOnly(InstalledDevice.KitchenHSPE8, new I2CSlaveAddress(39));

            var input0 = Controller.Device <HSPE16InputOnly>(InstalledDevice.Input0);
            var input1 = Controller.Device <HSPE16InputOnly>(InstalledDevice.Input1);
            var input2 = Controller.Device <HSPE16InputOnly>(InstalledDevice.Input2);

            var i2cHardwareBridge = Controller.GetDevice <I2CHardwareBridge>();

            const int SensorPin = 11;

            var room = Controller.CreateArea(Room.Kitchen)
                       .WithTemperatureSensor(Kitchen.TemperatureSensor, i2cHardwareBridge.DHT22Accessor.GetTemperatureSensor(SensorPin))
                       .WithHumiditySensor(Kitchen.HumiditySensor, i2cHardwareBridge.DHT22Accessor.GetHumiditySensor(SensorPin))
                       .WithMotionDetector(Kitchen.MotionDetector, input1.GetInput(8))
                       .WithLamp(Kitchen.LightCeilingMiddle, hsrel5.GetOutput(5).WithInvertedState())
                       .WithLamp(Kitchen.LightCeilingWindow, hsrel5.GetOutput(6).WithInvertedState())
                       .WithLamp(Kitchen.LightCeilingWall, hsrel5.GetOutput(7).WithInvertedState())
                       .WithLamp(Kitchen.LightCeilingDoor, hspe8.GetOutput(0).WithInvertedState())
                       .WithLamp(Kitchen.LightCeilingPassageInner, hspe8.GetOutput(1).WithInvertedState())
                       .WithLamp(Kitchen.LightCeilingPassageOuter, hspe8.GetOutput(2).WithInvertedState())
                       .WithSocket(Kitchen.SocketWall, hsrel5.GetOutput(2))
                       .WithRollerShutter(Kitchen.RollerShutter, hsrel5.GetOutput(4), hsrel5.GetOutput(3))
                       .WithButton(Kitchen.ButtonKitchenette, input1.GetInput(11))
                       .WithButton(Kitchen.ButtonPassage, input1.GetInput(9))
                       .WithRollerShutterButtons(Kitchen.RollerShutterButtonUp, input2.GetInput(15), Kitchen.RollerShutterButtonDown, input2.GetInput(14))
                       .WithWindow(Kitchen.Window, w => w.WithCenterCasement(input0.GetInput(6), input0.GetInput(7)));

            room.GetLamp(Kitchen.LightCeilingMiddle).ConnectToggleActionWith(room.GetButton(Kitchen.ButtonKitchenette));
            room.GetLamp(Kitchen.LightCeilingMiddle).ConnectToggleActionWith(room.GetButton(Kitchen.ButtonPassage));

            room.SetupRollerShutterAutomation().WithRollerShutters(room.GetRollerShutter(Kitchen.RollerShutter));

            room.GetRollerShutter(Kitchen.RollerShutter).ConnectWith(
                room.GetButton(Kitchen.RollerShutterButtonUp), room.GetButton(Kitchen.RollerShutterButtonDown));

            room.CombineActuators(Kitchen.CombinedAutomaticLights)
            .WithActuator(room.GetLamp(Kitchen.LightCeilingWall))
            .WithActuator(room.GetLamp(Kitchen.LightCeilingDoor))
            .WithActuator(room.GetLamp(Kitchen.LightCeilingWindow));

            room.SetupTurnOnAndOffAutomation()
            .WithTrigger(room.GetMotionDetector(Kitchen.MotionDetector))
            .WithTarget(room.GetActuator(Kitchen.CombinedAutomaticLights))
            .WithEnabledAtNight(Controller.GetService <IDaylightService>());

            Controller.GetService <SynonymService>().AddSynonymsForArea(Room.Kitchen, "Küche", "Kitchen");
        }
示例#2
0
        public void Setup(Controller controller, CCToolsBoardController ccToolsController, RemoteSocketController remoteSwitchController)
        {
            var hsrel8 = ccToolsController.CreateHSREL8(Device.OfficeHSREL8, new I2CSlaveAddress(20));
            var hspe8  = ccToolsController.CreateHSPE8OutputOnly(Device.UpperFloorAndOfficeHSPE8, new I2CSlaveAddress(37));
            var input4 = controller.Device <HSPE16InputOnly>(Device.Input4);
            var input5 = controller.Device <HSPE16InputOnly>(Device.Input5);

            const int SensorPin = 2;

            var i2cHardwareBridge = controller.Device <I2CHardwareBridge>();

            var office = controller.CreateArea(Room.Office)
                         .WithMotionDetector(Office.MotionDetector, input4.GetInput(13))
                         .WithTemperatureSensor(Office.TemperatureSensor, i2cHardwareBridge.DHT22Accessor.GetTemperatureSensor(SensorPin))
                         .WithHumiditySensor(Office.HumiditySensor, i2cHardwareBridge.DHT22Accessor.GetHumiditySensor(SensorPin))
                         .WithLamp(Office.LightCeilingFrontRight, hsrel8.GetOutput(8).WithInvertedState())
                         .WithLamp(Office.LightCeilingFrontMiddle, hspe8.GetOutput(2).WithInvertedState())
                         .WithLamp(Office.LightCeilingFrontLeft, hspe8.GetOutput(0).WithInvertedState())
                         .WithLamp(Office.LightCeilingMiddleRight, hsrel8.GetOutput(9).WithInvertedState())
                         .WithLamp(Office.LightCeilingMiddleMiddle, hspe8.GetOutput(3).WithInvertedState())
                         .WithLamp(Office.LightCeilingMiddleLeft, hspe8.GetOutput(1).WithInvertedState())
                         .WithLamp(Office.LightCeilingRearRight, hsrel8.GetOutput(12).WithInvertedState())
                         .WithLamp(Office.LightCeilingRearLeft, hsrel8.GetOutput(13).WithInvertedState())
                         .WithSocket(Office.SocketFrontLeft, hsrel8.GetOutput(0))
                         .WithSocket(Office.SocketFrontRight, hsrel8.GetOutput(6))
                         .WithSocket(Office.SocketWindowLeft, hsrel8.GetOutput(10).WithInvertedState())
                         .WithSocket(Office.SocketWindowRight, hsrel8.GetOutput(11).WithInvertedState())
                         .WithSocket(Office.SocketRearLeftEdge, hsrel8.GetOutput(7))
                         .WithSocket(Office.SocketRearLeft, hsrel8.GetOutput(2))
                         .WithSocket(Office.SocketRearRight, hsrel8.GetOutput(1))
                         .WithButton(Office.ButtonUpperLeft, input5.GetInput(0))
                         .WithButton(Office.ButtonLowerLeft, input5.GetInput(1))
                         .WithButton(Office.ButtonLowerRight, input4.GetInput(14))
                         .WithButton(Office.ButtonUpperRight, input4.GetInput(15))
                         .WithWindow(Office.WindowLeft, w => w.WithLeftCasement(input4.GetInput(11)).WithRightCasement(input4.GetInput(12), input4.GetInput(10)))
                         .WithWindow(Office.WindowRight, w => w.WithLeftCasement(input4.GetInput(8)).WithRightCasement(input4.GetInput(9), input5.GetInput(8)))
                         .WithSocket(Office.RemoteSocketDesk, remoteSwitchController.GetOutput(0))
                         .WithStateMachine(Office.CombinedCeilingLights, SetupLight);

            office.Button(Office.ButtonUpperLeft).WithLongAction(() =>
            {
                office.StateMachine(Office.CombinedCeilingLights).TurnOff();
                office.Socket(Office.SocketRearLeftEdge).TurnOff();
                office.Socket(Office.SocketRearLeft).TurnOff();
                office.Socket(Office.SocketFrontLeft).TurnOff();
            });
        }
        public void Setup(Controller controller, CCToolsBoardController ccToolsController)
        {
            var hsrel5 = ccToolsController.CreateHSREL5(Device.KitchenHSREL5, new I2CSlaveAddress(58));
            var hspe8  = ccToolsController.CreateHSPE8OutputOnly(Device.KitchenHSPE8, new I2CSlaveAddress(39));

            var input0 = controller.Device <HSPE16InputOnly>(Device.Input0);
            var input1 = controller.Device <HSPE16InputOnly>(Device.Input1);
            var input2 = controller.Device <HSPE16InputOnly>(Device.Input2);

            var i2cHardwareBridge = controller.Device <I2CHardwareBridge>();

            const int SensorPin = 11;

            var kitchen = controller.CreateArea(Room.Kitchen)
                          .WithTemperatureSensor(Kitchen.TemperatureSensor, i2cHardwareBridge.DHT22Accessor.GetTemperatureSensor(SensorPin))
                          .WithHumiditySensor(Kitchen.HumiditySensor, i2cHardwareBridge.DHT22Accessor.GetHumiditySensor(SensorPin))
                          .WithMotionDetector(Kitchen.MotionDetector, input1.GetInput(8))
                          .WithLamp(Kitchen.LightCeilingMiddle, hsrel5.GetOutput(5).WithInvertedState())
                          .WithLamp(Kitchen.LightCeilingWindow, hsrel5.GetOutput(6).WithInvertedState())
                          .WithLamp(Kitchen.LightCeilingWall, hsrel5.GetOutput(7).WithInvertedState())
                          .WithLamp(Kitchen.LightCeilingDoor, hspe8.GetOutput(0).WithInvertedState())
                          .WithLamp(Kitchen.LightCeilingPassageInner, hspe8.GetOutput(1).WithInvertedState())
                          .WithLamp(Kitchen.LightCeilingPassageOuter, hspe8.GetOutput(2).WithInvertedState())
                          .WithSocket(Kitchen.SocketWall, hsrel5.GetOutput(2))
                          .WithRollerShutter(Kitchen.RollerShutter, hsrel5.GetOutput(4), hsrel5.GetOutput(3))
                          .WithButton(Kitchen.ButtonKitchenette, input1.GetInput(11))
                          .WithButton(Kitchen.ButtonPassage, input1.GetInput(9))
                          .WithRollerShutterButtons(Kitchen.RollerShutterButtons, input2.GetInput(15), input2.GetInput(14))
                          .WithWindow(Kitchen.Window, w => w.WithCenterCasement(input0.GetInput(6), input0.GetInput(7)));

            kitchen.Lamp(Kitchen.LightCeilingMiddle).ConnectToggleActionWith(kitchen.Button(Kitchen.ButtonKitchenette));
            kitchen.Lamp(Kitchen.LightCeilingMiddle).ConnectToggleActionWith(kitchen.Button(Kitchen.ButtonPassage));

            kitchen.SetupRollerShutterAutomation().WithRollerShutters(kitchen.RollerShutter(Kitchen.RollerShutter));
            kitchen.RollerShutter(Kitchen.RollerShutter).ConnectWith(kitchen.RollerShutterButtons(Kitchen.RollerShutterButtons));

            kitchen.CombineActuators(Kitchen.CombinedAutomaticLights)
            .WithActuator(kitchen.Lamp(Kitchen.LightCeilingWall))
            .WithActuator(kitchen.Lamp(Kitchen.LightCeilingDoor))
            .WithActuator(kitchen.Lamp(Kitchen.LightCeilingWindow));

            kitchen.SetupTurnOnAndOffAutomation()
            .WithTrigger(kitchen.MotionDetector(Kitchen.MotionDetector))
            .WithTarget(kitchen.BinaryStateOutput(Kitchen.CombinedAutomaticLights))
            .WithEnabledAtNight(controller.Device <IWeatherStation>());
        }
示例#4
0
        public override void Setup()
        {
            var hsrel8 = CCToolsBoardController.CreateHSREL8(InstalledDevice.OfficeHSREL8, new I2CSlaveAddress(20));
            var hspe8  = CCToolsBoardController.CreateHSPE8OutputOnly(InstalledDevice.UpperFloorAndOfficeHSPE8, new I2CSlaveAddress(37));
            var input4 = Controller.Device <HSPE16InputOnly>(InstalledDevice.Input4);
            var input5 = Controller.Device <HSPE16InputOnly>(InstalledDevice.Input5);

            const int SensorPin = 2;

            var i2cHardwareBridge = Controller.GetDevice <I2CHardwareBridge>();

            var room = Controller.CreateArea(Room.Office)
                       .WithMotionDetector(Office.MotionDetector, input4.GetInput(13))
                       .WithTemperatureSensor(Office.TemperatureSensor, i2cHardwareBridge.DHT22Accessor.GetTemperatureSensor(SensorPin))
                       .WithHumiditySensor(Office.HumiditySensor, i2cHardwareBridge.DHT22Accessor.GetHumiditySensor(SensorPin))
                       .WithSocket(Office.SocketFrontLeft, hsrel8.GetOutput(0))
                       .WithSocket(Office.SocketFrontRight, hsrel8.GetOutput(6))
                       .WithSocket(Office.SocketWindowLeft, hsrel8.GetOutput(10).WithInvertedState())
                       .WithSocket(Office.SocketWindowRight, hsrel8.GetOutput(11).WithInvertedState())
                       .WithSocket(Office.SocketRearLeftEdge, hsrel8.GetOutput(7))
                       .WithSocket(Office.SocketRearLeft, hsrel8.GetOutput(2))
                       .WithSocket(Office.SocketRearRight, hsrel8.GetOutput(1))
                       .WithButton(Office.ButtonUpperLeft, input5.GetInput(0))
                       .WithButton(Office.ButtonLowerLeft, input5.GetInput(1))
                       .WithButton(Office.ButtonLowerRight, input4.GetInput(14))
                       .WithButton(Office.ButtonUpperRight, input4.GetInput(15))
                       .WithWindow(Office.WindowLeft, w => w.WithLeftCasement(input4.GetInput(11)).WithRightCasement(input4.GetInput(12), input4.GetInput(10)))
                       .WithWindow(Office.WindowRight, w => w.WithLeftCasement(input4.GetInput(8)).WithRightCasement(input4.GetInput(9), input5.GetInput(8)))
                       .WithSocket(Office.RemoteSocketDesk, RemoteSocketController.GetOutput(0))
                       .WithStateMachine(Office.CombinedCeilingLights, (s, a) => SetupLight(s, hsrel8, hspe8, a));

            room.GetButton(Office.ButtonUpperLeft).GetPressedLongTrigger().Attach(() =>
            {
                room.GetStateMachine(Office.CombinedCeilingLights).TryTurnOff();
                room.Socket(Office.SocketRearLeftEdge).TryTurnOff();
                room.Socket(Office.SocketRearLeft).TryTurnOff();
                room.Socket(Office.SocketFrontLeft).TryTurnOff();
            });
        }