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"); }
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>()); }
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(); }); }