public void Apply() { var hsrel5 = _ccToolsBoardService.RegisterHSREL5(InstalledDevice.KitchenHSREL5, new I2CSlaveAddress(58)); var hspe8 = _ccToolsBoardService.RegisterHSPE8OutputOnly(InstalledDevice.KitchenHSPE8, new I2CSlaveAddress(39)); var input0 = _deviceService.GetDevice <HSPE16InputOnly>(InstalledDevice.Input0); var input1 = _deviceService.GetDevice <HSPE16InputOnly>(InstalledDevice.Input1); var input2 = _deviceService.GetDevice <HSPE16InputOnly>(InstalledDevice.Input2); var i2CHardwareBridge = _deviceService.GetDevice <I2CHardwareBridge>(); const int SensorPin = 11; var room = _areaService.CreateArea(Room.Kitchen); _sensorFactory.RegisterWindow(room, Kitchen.Window, w => w.WithCenterCasement(input0.GetInput(6), input0.GetInput(7))); _sensorFactory.RegisterTemperatureSensor(room, Kitchen.TemperatureSensor, i2CHardwareBridge.DHT22Accessor.GetTemperatureSensor(SensorPin)); _sensorFactory.RegisterHumiditySensor(room, Kitchen.HumiditySensor, i2CHardwareBridge.DHT22Accessor.GetHumiditySensor(SensorPin)); _sensorFactory.RegisterMotionDetector(room, Kitchen.MotionDetector, input1.GetInput(8)); _actuatorFactory.RegisterLamp(room, Kitchen.LightCeilingPassageOuter, hspe8.GetOutput(2).WithInvertedState()); _actuatorFactory.RegisterLamp(room, Kitchen.LightCeilingMiddle, hsrel5.GetOutput(5).WithInvertedState()); _actuatorFactory.RegisterLamp(room, Kitchen.LightCeilingWindow, hsrel5.GetOutput(6).WithInvertedState()); _actuatorFactory.RegisterLamp(room, Kitchen.LightCeilingWall, hsrel5.GetOutput(7).WithInvertedState()); _actuatorFactory.RegisterLamp(room, Kitchen.LightCeilingDoor, hspe8.GetOutput(0).WithInvertedState()); _actuatorFactory.RegisterLamp(room, Kitchen.LightCeilingPassageInner, hspe8.GetOutput(1).WithInvertedState()); _actuatorFactory.RegisterSocket(room, Kitchen.SocketWall, hsrel5.GetOutput(2)); _actuatorFactory.RegisterRollerShutter(room, Kitchen.RollerShutter, hsrel5.GetOutput(4), hsrel5.GetOutput(3)); _sensorFactory.RegisterButton(room, Kitchen.ButtonKitchenette, input1.GetInput(11)); _sensorFactory.RegisterButton(room, Kitchen.ButtonPassage, input1.GetInput(9)); _sensorFactory.RegisterRollerShutterButtons(room, Kitchen.RollerShutterButtonUp, input2.GetInput(15), Kitchen.RollerShutterButtonDown, input2.GetInput(14)); room.GetLamp(Kitchen.LightCeilingMiddle).ConnectToggleActionWith(room.GetButton(Kitchen.ButtonKitchenette)); room.GetLamp(Kitchen.LightCeilingMiddle).ConnectToggleActionWith(room.GetButton(Kitchen.ButtonPassage)); _automationFactory.RegisterRollerShutterAutomation(room, Kitchen.RollerShutterAutomation) .WithRollerShutters(room.GetRollerShutter(Kitchen.RollerShutter)); room.GetRollerShutter(Kitchen.RollerShutter).ConnectWith( room.GetButton(Kitchen.RollerShutterButtonUp), room.GetButton(Kitchen.RollerShutterButtonDown)); _actuatorFactory.RegisterLogicalActuator(room, Kitchen.CombinedAutomaticLights) .WithActuator(room.GetLamp(Kitchen.LightCeilingWall)) .WithActuator(room.GetLamp(Kitchen.LightCeilingDoor)) .WithActuator(room.GetLamp(Kitchen.LightCeilingWindow)); _automationFactory.RegisterTurnOnAndOffAutomation(room, Kitchen.CombinedAutomaticLightsAutomation) .WithTrigger(room.GetMotionDetector(Kitchen.MotionDetector)) .WithTarget(room.GetActuator(Kitchen.CombinedAutomaticLights)) .WithEnabledAtNight(); _synonymService.AddSynonymsForArea(Room.Kitchen, "Küche", "Kitchen"); }
public void Apply() { var hspe16_FloorAndLowerBathroom = _deviceService.GetDevice <HSPE16OutputOnly>(InstalledDevice.LowerFloorAndLowerBathroomHSPE16); var input3 = _deviceService.GetDevice <HSPE16InputOnly>(InstalledDevice.Input3); var i2CHardwareBridge = _deviceService.GetDevice <I2CHardwareBridge>(); const int SensorPin = 3; var room = _areaService.CreateArea(Room.LowerBathroom); _sensorFactory.RegisterWindow(room, LowerBathroom.Window, w => w.WithCenterCasement(input3.GetInput(13), input3.GetInput(14))); _sensorFactory.RegisterTemperatureSensor(room, LowerBathroom.TemperatureSensor, i2CHardwareBridge.DHT22Accessor.GetTemperatureSensor(SensorPin)); _sensorFactory.RegisterHumiditySensor(room, LowerBathroom.HumiditySensor, i2CHardwareBridge.DHT22Accessor.GetHumiditySensor(SensorPin)); _sensorFactory.RegisterMotionDetector(room, LowerBathroom.MotionDetector, input3.GetInput(15)); _sensorFactory.RegisterVirtualButton(room, LowerBathroom.StartBathmodeButton, b => b.GetPressedShortlyTrigger().Attach(() => StartBathode(room))); _actuatorFactory.RegisterLamp(room, LowerBathroom.LightCeilingDoor, hspe16_FloorAndLowerBathroom.GetOutput(0).WithInvertedState()); _actuatorFactory.RegisterLamp(room, LowerBathroom.LightCeilingMiddle, hspe16_FloorAndLowerBathroom.GetOutput(1).WithInvertedState()); _actuatorFactory.RegisterLamp(room, LowerBathroom.LightCeilingWindow, hspe16_FloorAndLowerBathroom.GetOutput(2).WithInvertedState()); _actuatorFactory.RegisterLamp(room, LowerBathroom.LampMirror, hspe16_FloorAndLowerBathroom.GetOutput(4).WithInvertedState()); _actuatorFactory.RegisterLogicalActuator(room, LowerBathroom.CombinedLights) .WithActuator(room.GetLamp(LowerBathroom.LightCeilingDoor)) .WithActuator(room.GetLamp(LowerBathroom.LightCeilingMiddle)) .WithActuator(room.GetLamp(LowerBathroom.LightCeilingWindow)) .WithActuator(room.GetLamp(LowerBathroom.LampMirror)); _automationFactory.RegisterTurnOnAndOffAutomation(room, LowerBathroom.CombinedLightsAutomation) .WithTrigger(room.GetMotionDetector(LowerBathroom.MotionDetector)) .WithTarget(room.GetActuator(LowerBathroom.CombinedLights)); _synonymService.AddSynonymsForArea(Room.LowerBathroom, "BadUnten", "LowerBathroom"); }
public void Apply() { var hsrel5 = _ccToolsBoardService.RegisterHSREL5(InstalledDevice.UpperBathroomHSREL5, new I2CSlaveAddress(61)); var input5 = _deviceService.GetDevice <HSPE16InputOnly>(InstalledDevice.Input5); var i2CHardwareBridge = _deviceService.GetDevice <I2CHardwareBridge>(); const int SensorPin = 4; var room = _areaService.CreateArea(Room.UpperBathroom); _actuatorFactory.RegisterStateMachine(room, UpperBathroom.Fan, (s, r) => SetupFan(s, hsrel5)); _sensorFactory.RegisterTemperatureSensor(room, UpperBathroom.TemperatureSensor, i2CHardwareBridge.DHT22Accessor.GetTemperatureSensor(SensorPin)); _sensorFactory.RegisterHumiditySensor(room, UpperBathroom.HumiditySensor, i2CHardwareBridge.DHT22Accessor.GetHumiditySensor(SensorPin)); _sensorFactory.RegisterMotionDetector(room, UpperBathroom.MotionDetector, input5.GetInput(15)); _actuatorFactory.RegisterLamp(room, UpperBathroom.LightCeilingDoor, hsrel5.GetOutput(0)); _actuatorFactory.RegisterLamp(room, UpperBathroom.LightCeilingEdge, hsrel5.GetOutput(1)); _actuatorFactory.RegisterLamp(room, UpperBathroom.LightCeilingMirrorCabinet, hsrel5.GetOutput(2)); _actuatorFactory.RegisterLamp(room, UpperBathroom.LampMirrorCabinet, hsrel5.GetOutput(3)); var combinedLights = _actuatorFactory.RegisterLogicalActuator(room, UpperBathroom.CombinedCeilingLights) .WithActuator(room.GetLamp(UpperBathroom.LightCeilingDoor)) .WithActuator(room.GetLamp(UpperBathroom.LightCeilingEdge)) .WithActuator(room.GetLamp(UpperBathroom.LightCeilingMirrorCabinet)) .WithActuator(room.GetLamp(UpperBathroom.LampMirrorCabinet)); _automationFactory.RegisterTurnOnAndOffAutomation(room, UpperBathroom.CombinedCeilingLightsAutomation) .WithTrigger(room.GetMotionDetector(UpperBathroom.MotionDetector)) .WithTarget(combinedLights); new BathroomFanAutomation(AutomationIdGenerator.Generate(room, UpperBathroom.FanAutomation), _schedulerService, _settingsService) .WithTrigger(room.GetMotionDetector(UpperBathroom.MotionDetector)) .WithActuator(room.GetStateMachine(UpperBathroom.Fan)); _synonymService.AddSynonymsForArea(Room.UpperBathroom, "BadOben", "UpperBathroom"); }
public void Apply() { var hsrel5 = _ccToolsBoardService.RegisterHSREL5(InstalledDevice.BedroomHSREL5, new I2CSlaveAddress(38)); var hsrel8 = _ccToolsBoardService.RegisterHSREL8(InstalledDevice.BedroomHSREL8, new I2CSlaveAddress(21)); var input5 = _deviceService.GetDevice <HSPE16InputOnly>(InstalledDevice.Input5); var input4 = _deviceService.GetDevice <HSPE16InputOnly>(InstalledDevice.Input4); var i2CHardwareBridge = _deviceService.GetDevice <I2CHardwareBridge>(); const int SensorPin = 6; var room = _areaService.CreateArea(Room.Bedroom); _sensorFactory.RegisterWindow(room, Bedroom.WindowLeft, w => w.WithCenterCasement(input5.GetInput(2))); _sensorFactory.RegisterWindow(room, Bedroom.WindowRight, w => w.WithCenterCasement(input5.GetInput(3))); _sensorFactory.RegisterTemperatureSensor(room, Bedroom.TemperatureSensor, i2CHardwareBridge.DHT22Accessor.GetTemperatureSensor(SensorPin)); _sensorFactory.RegisterHumiditySensor(room, Bedroom.HumiditySensor, i2CHardwareBridge.DHT22Accessor.GetHumiditySensor(SensorPin)); _sensorFactory.RegisterMotionDetector(room, Bedroom.MotionDetector, input5.GetInput(12)); _sensorFactory.RegisterButton(room, Bedroom.ButtonWindowUpper, input5.GetInput(10)); _sensorFactory.RegisterButton(room, Bedroom.ButtonWindowLower, input5.GetInput(13)); _sensorFactory.RegisterButton(room, Bedroom.ButtonBedLeftInner, input4.GetInput(2)); _sensorFactory.RegisterButton(room, Bedroom.ButtonBedLeftOuter, input4.GetInput(0)); _sensorFactory.RegisterButton(room, Bedroom.ButtonBedRightInner, input4.GetInput(1)); _sensorFactory.RegisterButton(room, Bedroom.ButtonBedRightOuter, input4.GetInput(3)); _sensorFactory.RegisterButton(room, Bedroom.ButtonDoor, input5.GetInput(11)); _sensorFactory.RegisterRollerShutterButtons(room, Bedroom.RollerShutterButtonsUpperUp, input5.GetInput(6), Bedroom.RollerShutterButtonsUpperDown, input5.GetInput(7)); _sensorFactory.RegisterRollerShutterButtons(room, Bedroom.RollerShutterButtonsLowerUp, input5.GetInput(4), Bedroom.RollerShutterButtonsLowerDown, input5.GetInput(5)); _actuatorFactory.RegisterLamp(room, Bedroom.LightCeiling, hsrel5.GetOutput(5).WithInvertedState()); _actuatorFactory.RegisterLamp(room, Bedroom.LightCeilingWindow, hsrel5.GetOutput(6).WithInvertedState()); _actuatorFactory.RegisterLamp(room, Bedroom.LightCeilingWall, hsrel5.GetOutput(7).WithInvertedState()); _actuatorFactory.RegisterLamp(room, Bedroom.LampBedLeft, hsrel5.GetOutput(4)); _actuatorFactory.RegisterLamp(room, Bedroom.LampBedRight, hsrel8.GetOutput(8).WithInvertedState()); _actuatorFactory.RegisterSocket(room, Bedroom.SocketWindowLeft, hsrel5[HSREL5Pin.Relay0]); _actuatorFactory.RegisterSocket(room, Bedroom.SocketWindowRight, hsrel5[HSREL5Pin.Relay1]); _actuatorFactory.RegisterSocket(room, Bedroom.SocketWall, hsrel5[HSREL5Pin.Relay2]); _actuatorFactory.RegisterSocket(room, Bedroom.SocketWallEdge, hsrel5[HSREL5Pin.Relay3]); _actuatorFactory.RegisterSocket(room, Bedroom.SocketBedLeft, hsrel8.GetOutput(7)); _actuatorFactory.RegisterSocket(room, Bedroom.SocketBedRight, hsrel8.GetOutput(9)); _actuatorFactory.RegisterRollerShutter(room, Bedroom.RollerShutterLeft, hsrel8[HSREL8Pin.Relay6], hsrel8[HSREL8Pin.Relay5]); _actuatorFactory.RegisterRollerShutter(room, Bedroom.RollerShutterRight, hsrel8[HSREL8Pin.Relay3], hsrel8[HSREL8Pin.Relay4]); room.GetRollerShutter(Bedroom.RollerShutterLeft) .ConnectWith(room.GetButton(Bedroom.RollerShutterButtonsUpperUp), room.GetButton(Bedroom.RollerShutterButtonsUpperDown)); room.GetRollerShutter(Bedroom.RollerShutterRight) .ConnectWith(room.GetButton(Bedroom.RollerShutterButtonsLowerUp), room.GetButton(Bedroom.RollerShutterButtonsLowerDown)); _actuatorFactory.RegisterLogicalActuator(room, Bedroom.CombinedCeilingLights) .WithActuator(room.GetLamp(Bedroom.LightCeilingWall)) .WithActuator(room.GetLamp(Bedroom.LightCeilingWindow)) .ConnectToggleActionWith(room.GetButton(Bedroom.ButtonDoor)) .ConnectToggleActionWith(room.GetButton(Bedroom.ButtonWindowUpper)); room.GetButton(Bedroom.ButtonDoor).GetPressedLongTrigger().Attach(() => { room.GetStateMachine(Bedroom.LampBedLeft).TryTurnOff(); room.GetStateMachine(Bedroom.LampBedRight).TryTurnOff(); room.GetStateMachine(Bedroom.CombinedCeilingLights).TryTurnOff(); }); _automationFactory.RegisterRollerShutterAutomation(room, Bedroom.RollerShuttersAutomation) .WithRollerShutters(room.GetRollerShutters()) .WithDoNotOpenBefore(TimeSpan.FromHours(7).Add(TimeSpan.FromMinutes(15))) .WithCloseIfOutsideTemperatureIsGreaterThan(24) .WithDoNotOpenIfOutsideTemperatureIsBelowThan(3); _automationFactory.RegisterTurnOnAndOffAutomation(room, Bedroom.LightCeilingAutomation) .WithTrigger(room.GetMotionDetector(Bedroom.MotionDetector)) .WithTarget(room.GetStateMachine(Bedroom.LightCeiling)) .WithTurnOnIfAllRollerShuttersClosed(room.GetRollerShutter(Bedroom.RollerShutterLeft), room.GetRollerShutter(Bedroom.RollerShutterRight)) .WithEnabledAtNight() .WithSkipIfAnyActuatorIsAlreadyOn(room.GetLamp(Bedroom.LampBedLeft), room.GetLamp(Bedroom.LampBedRight)); _actuatorFactory.RegisterStateMachine(room, Bedroom.Fan, (s, r) => SetupFan(s, r, hsrel8)); room.GetButton(Bedroom.ButtonBedLeftInner).WithPressedShortlyAction(() => room.GetLamp(Bedroom.LampBedLeft).SetNextState()); room.GetButton(Bedroom.ButtonBedLeftInner).WithPressedLongAction(() => room.GetStateMachine(Bedroom.CombinedCeilingLights).SetNextState()); room.GetButton(Bedroom.ButtonBedLeftOuter).WithPressedShortlyAction(() => room.GetStateMachine(Bedroom.Fan).SetNextState()); room.GetButton(Bedroom.ButtonBedLeftOuter).WithPressedLongAction(() => room.GetStateMachine(Bedroom.Fan).TryTurnOff()); room.GetButton(Bedroom.ButtonBedRightInner).WithPressedShortlyAction(() => room.GetLamp(Bedroom.LampBedRight).SetNextState()); room.GetButton(Bedroom.ButtonBedRightInner).WithPressedLongAction(() => room.GetStateMachine(Bedroom.CombinedCeilingLights).SetNextState()); room.GetButton(Bedroom.ButtonBedRightOuter).WithPressedShortlyAction(() => room.GetStateMachine(Bedroom.Fan).SetNextState()); room.GetButton(Bedroom.ButtonBedRightOuter).WithPressedLongAction(() => room.GetStateMachine(Bedroom.Fan).TryTurnOff()); _synonymService.AddSynonymsForArea(Room.Bedroom, "Schlafzimmer", "Bedroom"); }
public void Apply() { var hsrel5Stairway = _ccToolsBoardService.RegisterHSREL5(InstalledDevice.StairwayHSREL5, new I2CSlaveAddress(60)); var hspe8UpperFloor = _deviceService.GetDevice <HSPE8OutputOnly>(InstalledDevice.UpperFloorAndOfficeHSPE8); var hspe16FloorAndLowerBathroom = _ccToolsBoardService.RegisterHSPE16OutputOnly(InstalledDevice.LowerFloorAndLowerBathroomHSPE16, new I2CSlaveAddress(17)); var input1 = _deviceService.GetDevice <HSPE16InputOnly>(InstalledDevice.Input1); var input2 = _deviceService.GetDevice <HSPE16InputOnly>(InstalledDevice.Input2); var input4 = _deviceService.GetDevice <HSPE16InputOnly>(InstalledDevice.Input4); var i2CHardwareBridge = _deviceService.GetDevice <I2CHardwareBridge>(); const int SensorPin = 5; var room = _areaService.CreateArea(Room.Floor); _sensorFactory.RegisterTemperatureSensor(room, Floor.LowerFloorTemperatureSensor, i2CHardwareBridge.DHT22Accessor.GetTemperatureSensor(SensorPin)); _sensorFactory.RegisterHumiditySensor(room, Floor.LowerFloorHumiditySensor, i2CHardwareBridge.DHT22Accessor.GetHumiditySensor(SensorPin)); _sensorFactory.RegisterMotionDetector(room, Floor.StairwayMotionDetector, input2.GetInput(1)); _sensorFactory.RegisterMotionDetector(room, Floor.StairsLowerMotionDetector, input4.GetInput(7)); _sensorFactory.RegisterMotionDetector(room, Floor.StairsUpperMotionDetector, input4.GetInput(6)); _sensorFactory.RegisterMotionDetector(room, Floor.LowerFloorMotionDetector, input1.GetInput(4)); _actuatorFactory.RegisterRollerShutter(room, Floor.StairwayRollerShutter, hsrel5Stairway.GetOutput(4), hsrel5Stairway.GetOutput(3)); _sensorFactory.RegisterButton(room, Floor.ButtonLowerFloorUpper, input1.GetInput(0)); _sensorFactory.RegisterButton(room, Floor.ButtonLowerFloorLower, input1.GetInput(5)); _sensorFactory.RegisterButton(room, Floor.ButtonLowerFloorAtBathroom, input1.GetInput(1)); _sensorFactory.RegisterButton(room, Floor.ButtonLowerFloorAtKitchen, input1.GetInput(3)); _sensorFactory.RegisterButton(room, Floor.ButtonStairsLowerUpper, input4.GetInput(5)); _sensorFactory.RegisterButton(room, Floor.ButtonStairsLowerLower, input1.GetInput(2)); _sensorFactory.RegisterButton(room, Floor.ButtonStairsUpper, input4.GetInput(4)); _sensorFactory.RegisterButton(room, Floor.ButtonStairway, input1.GetInput(6)); _actuatorFactory.RegisterLamp(room, Floor.Lamp1, hspe16FloorAndLowerBathroom.GetOutput(5).WithInvertedState()); _actuatorFactory.RegisterLamp(room, Floor.Lamp2, hspe16FloorAndLowerBathroom.GetOutput(6).WithInvertedState()); _actuatorFactory.RegisterLamp(room, Floor.Lamp3, hspe16FloorAndLowerBathroom.GetOutput(7).WithInvertedState()); _actuatorFactory.RegisterLamp(room, Floor.StairwayLampCeiling, hsrel5Stairway.GetOutput(0)); _actuatorFactory.RegisterLamp(room, Floor.StairwayLampWall, hsrel5Stairway.GetOutput(1)); _actuatorFactory.RegisterLogicalActuator(room, Floor.CombinedStairwayLamp) .WithActuator(room.GetLamp(Floor.StairwayLampCeiling)) .WithActuator(room.GetLamp(Floor.StairwayLampWall)); SetupStairwayLamps(room); _actuatorFactory.RegisterLogicalActuator(room, Floor.CombinedLamps) .WithActuator(room.GetLamp(Floor.Lamp1)) .WithActuator(room.GetLamp(Floor.Lamp2)) .WithActuator(room.GetLamp(Floor.Lamp3)); _automationFactory.RegisterTurnOnAndOffAutomation(room, Floor.CombinedLampsAutomation) .WithTrigger(room.GetMotionDetector(Floor.LowerFloorMotionDetector)) .WithTrigger(room.GetButton(Floor.ButtonLowerFloorUpper).GetPressedShortlyTrigger()) .WithTrigger(room.GetButton(Floor.ButtonLowerFloorAtBathroom).GetPressedShortlyTrigger()) .WithTrigger(room.GetButton(Floor.ButtonLowerFloorAtKitchen).GetPressedShortlyTrigger()) .WithTarget(room.GetActuator(Floor.CombinedLamps)) .WithEnabledAtNight() .WithTurnOffIfButtonPressedWhileAlreadyOn(); SetupStairsCeilingLamps(room, hspe8UpperFloor); SetupStairsLamps(room, hspe16FloorAndLowerBathroom); _automationFactory.RegisterRollerShutterAutomation(room, Floor.StairwayRollerShutterAutomation) .WithRollerShutters(room.GetRollerShutter(Floor.StairwayRollerShutter)); _synonymService.AddSynonymsForArea(Room.Floor, "Flur", "Floor"); }