public void Apply() { var hspe16_FloorAndLowerBathroom = _deviceService.GetDevice <HSPE16OutputOnly>(InstalledDevice.LowerFloorAndLowerBathroomHSPE16.ToString()); var input3 = _deviceService.GetDevice <HSPE16InputOnly>(InstalledDevice.Input3.ToString()); var i2CHardwareBridge = _deviceService.GetDevice <I2CHardwareBridge>(); const int SensorPin = 3; var area = _areaService.RegisterArea(Room.LowerBathroom); _sensorFactory.RegisterWindow(area, LowerBathroom.Window, new PortBasedWindowAdapter(input3.GetInput(13), input3.GetInput(14))); _sensorFactory.RegisterTemperatureSensor(area, LowerBathroom.TemperatureSensor, i2CHardwareBridge.DHT22Accessor.GetTemperatureSensor(SensorPin)); _sensorFactory.RegisterHumiditySensor(area, LowerBathroom.HumiditySensor, i2CHardwareBridge.DHT22Accessor.GetHumiditySensor(SensorPin)); _sensorFactory.RegisterMotionDetector(area, LowerBathroom.MotionDetector, input3.GetInput(15)); var bathModeButton = _sensorFactory.RegisterVirtualButton(area, LowerBathroom.StartBathmodeButton); bathModeButton.PressedShortTrigger.Attach(() => StartBathode(area)); _actuatorFactory.RegisterLamp(area, LowerBathroom.LightCeilingDoor, hspe16_FloorAndLowerBathroom.GetOutput(0).WithInvertedState()); _actuatorFactory.RegisterLamp(area, LowerBathroom.LightCeilingMiddle, hspe16_FloorAndLowerBathroom.GetOutput(1).WithInvertedState()); _actuatorFactory.RegisterLamp(area, LowerBathroom.LightCeilingWindow, hspe16_FloorAndLowerBathroom.GetOutput(2).WithInvertedState()); _actuatorFactory.RegisterLamp(area, LowerBathroom.LampMirror, hspe16_FloorAndLowerBathroom.GetOutput(4).WithInvertedState()); _actuatorFactory.RegisterLogicalComponent(area, LowerBathroom.CombinedLights) .WithComponent(area.GetLamp(LowerBathroom.LightCeilingDoor)) .WithComponent(area.GetLamp(LowerBathroom.LightCeilingMiddle)) .WithComponent(area.GetLamp(LowerBathroom.LightCeilingWindow)) .WithComponent(area.GetLamp(LowerBathroom.LampMirror)); _automationFactory.RegisterTurnOnAndOffAutomation(area, LowerBathroom.CombinedLightsAutomation) .WithTrigger(area.GetMotionDetector(LowerBathroom.MotionDetector)) .WithTarget(area.GetComponent(LowerBathroom.CombinedLights)); }
public void Apply() { var hspe16_FloorAndLowerBathroom = _deviceService.GetDevice <HSPE16OutputOnly>(InstalledDevice.LowerFloorAndLowerBathroomHSPE16.ToString()); var input3 = _deviceService.GetDevice <HSPE16InputOnly>(InstalledDevice.Input3.ToString()); var area = _areaService.RegisterArea(Room.LowerBathroom); _sensorFactory.RegisterWindow(area, LowerBathroom.Window, new PortBasedWindowAdapter(input3.GetInput(13), input3.GetInput(14))); _sensorFactory.RegisterTemperatureSensor(area, LowerBathroom.TemperatureSensor, new MqttBasedNumericSensorAdapter("sensors-bridge/temperature/4", _deviceMessageBrokerService, _logService)); _sensorFactory.RegisterHumiditySensor(area, LowerBathroom.HumiditySensor, new MqttBasedNumericSensorAdapter("sensors-bridge/humidity/4", _deviceMessageBrokerService, _logService)); _sensorFactory.RegisterMotionDetector(area, LowerBathroom.MotionDetector, input3.GetInput(15)); var bathModeButton = _sensorFactory.RegisterVirtualButton(area, LowerBathroom.StartBathmodeButton); bathModeButton.CreatePressedShortTrigger(_messageBroker).Attach(() => StartBathode(area)); _actuatorFactory.RegisterLamp(area, LowerBathroom.LightCeilingDoor, hspe16_FloorAndLowerBathroom.GetOutput(0).WithInvertedState()); _actuatorFactory.RegisterLamp(area, LowerBathroom.LightCeilingMiddle, hspe16_FloorAndLowerBathroom.GetOutput(1).WithInvertedState()); _actuatorFactory.RegisterLamp(area, LowerBathroom.LightCeilingWindow, hspe16_FloorAndLowerBathroom.GetOutput(2).WithInvertedState()); _actuatorFactory.RegisterLamp(area, LowerBathroom.LampMirror, hspe16_FloorAndLowerBathroom.GetOutput(4).WithInvertedState()); _actuatorFactory.RegisterLogicalComponent(area, LowerBathroom.CombinedLights) .WithComponent(area.GetLamp(LowerBathroom.LightCeilingDoor)) .WithComponent(area.GetLamp(LowerBathroom.LightCeilingMiddle)) .WithComponent(area.GetLamp(LowerBathroom.LightCeilingWindow)) .WithComponent(area.GetLamp(LowerBathroom.LampMirror)); _automationFactory.RegisterTurnOnAndOffAutomation(area, LowerBathroom.CombinedLightsAutomation) .WithTrigger(area.GetMotionDetector(LowerBathroom.MotionDetector)) .WithTarget(area.GetComponent(LowerBathroom.CombinedLights)); }
public void Apply() { var hsrel5 = (HSREL5)_ccToolsBoardService.RegisterDevice(CCToolsDeviceType.HSRel5, InstalledDevice.KitchenHSREL5.ToString(), 58); var hspe8 = (HSPE8OutputOnly)_ccToolsBoardService.RegisterDevice(CCToolsDeviceType.HSPE8_OutputOnly, InstalledDevice.KitchenHSPE8.ToString(), 39); var input0 = _deviceService.GetDevice <HSPE16InputOnly>(InstalledDevice.Input0.ToString()); var input1 = _deviceService.GetDevice <HSPE16InputOnly>(InstalledDevice.Input1.ToString()); var input2 = _deviceService.GetDevice <HSPE16InputOnly>(InstalledDevice.Input2.ToString()); var i2CHardwareBridge = _deviceService.GetDevice <I2CHardwareBridge>(); const int SensorPin = 11; var area = _areaService.RegisterArea(Room.Kitchen); _sensorFactory.RegisterWindow(area, Kitchen.Window, new PortBasedWindowAdapter(input0.GetInput(6), input0.GetInput(7))); _sensorFactory.RegisterTemperatureSensor(area, Kitchen.TemperatureSensor, i2CHardwareBridge.DHT22Accessor.GetTemperatureSensor(SensorPin)); _sensorFactory.RegisterHumiditySensor(area, Kitchen.HumiditySensor, i2CHardwareBridge.DHT22Accessor.GetHumiditySensor(SensorPin)); _sensorFactory.RegisterMotionDetector(area, Kitchen.MotionDetector, input1.GetInput(8)); _actuatorFactory.RegisterLamp(area, Kitchen.LightCeilingMiddle, hsrel5[HSREL5Pin.GPIO0].WithInvertedState()); _actuatorFactory.RegisterLamp(area, Kitchen.LightCeilingWindow, hsrel5[HSREL5Pin.GPIO1].WithInvertedState()); _actuatorFactory.RegisterLamp(area, Kitchen.LightCeilingWall, hsrel5[HSREL5Pin.GPIO2].WithInvertedState()); _actuatorFactory.RegisterLamp(area, Kitchen.LightCeilingDoor, hspe8[HSPE8Pin.GPIO0].WithInvertedState()); _actuatorFactory.RegisterLamp(area, Kitchen.LightCeilingPassageInner, hspe8[HSPE8Pin.GPIO1].WithInvertedState()); _actuatorFactory.RegisterLamp(area, Kitchen.LightCeilingPassageOuter, hspe8[HSPE8Pin.GPIO2].WithInvertedState()); _actuatorFactory.RegisterLamp(area, Kitchen.LightKitchenette, _outpostDeviceService.CreateRgbStripAdapter("RGBSK1")); _actuatorFactory.RegisterSocket(area, Kitchen.SocketKitchenette, hsrel5[HSREL5Pin.Relay1]); // 0? _actuatorFactory.RegisterSocket(area, Kitchen.SocketWall, hsrel5[HSREL5Pin.Relay2]); _actuatorFactory.RegisterSocket(area, Kitchen.SocketCeiling1, hspe8[HSPE8Pin.GPIO3].WithInvertedState()); _actuatorFactory.RegisterSocket(area, Kitchen.SocketCeiling2, hspe8[HSPE8Pin.GPIO4].WithInvertedState()); _systemEventsService.StartupCompleted += (s, e) => { area.GetComponent(Kitchen.SocketCeiling1).TryTurnOn(); }; _actuatorFactory.RegisterRollerShutter(area, Kitchen.RollerShutter, hsrel5[HSREL5Pin.Relay4], hsrel5[HSREL5Pin.Relay3]); _sensorFactory.RegisterButton(area, Kitchen.ButtonKitchenette, input1.GetInput(11)); _sensorFactory.RegisterButton(area, Kitchen.ButtonPassage, input1.GetInput(9)); _sensorFactory.RegisterButton(area, Kitchen.RollerShutterButtonUp, input2.GetInput(15)); _sensorFactory.RegisterButton(area, Kitchen.RollerShutterButtonDown, input2.GetInput(14)); area.GetButton(Kitchen.ButtonKitchenette).CreatePressedShortTrigger(_messageBroker).Attach(() => area.GetLamp(Kitchen.LightCeilingMiddle).TryTogglePowerState()); area.GetButton(Kitchen.ButtonPassage).CreatePressedShortTrigger(_messageBroker).Attach(() => area.GetLamp(Kitchen.LightCeilingMiddle).TryTogglePowerState()); _automationFactory.RegisterRollerShutterAutomation(area, Kitchen.RollerShutterAutomation) .WithRollerShutters(area.GetRollerShutter(Kitchen.RollerShutter)); area.GetRollerShutter(Kitchen.RollerShutter).ConnectWith( area.GetButton(Kitchen.RollerShutterButtonUp), area.GetButton(Kitchen.RollerShutterButtonDown), _messageBroker); area.GetButton(Kitchen.RollerShutterButtonUp).CreatePressedLongTrigger(_messageBroker).Attach(() => { var light = area.GetComponent(Kitchen.LightKitchenette); light.TryTogglePowerState(); light.TrySetColor(0D, 0D, 1D); }); _actuatorFactory.RegisterLogicalComponent(area, Kitchen.CombinedAutomaticLights) .WithComponent(area.GetLamp(Kitchen.LightCeilingWall)) .WithComponent(area.GetLamp(Kitchen.LightCeilingDoor)) .WithComponent(area.GetLamp(Kitchen.LightCeilingWindow)); _automationFactory.RegisterTurnOnAndOffAutomation(area, Kitchen.CombinedAutomaticLightsAutomation) .WithTrigger(area.GetMotionDetector(Kitchen.MotionDetector)) .WithTarget(area.GetComponent(Kitchen.CombinedAutomaticLights)) .WithEnabledAtNight(); }
public void Apply() { var hsrel5Stairway = _ccToolsBoardService.RegisterHSREL5(InstalledDevice.StairwayHSREL5.ToString(), new I2CSlaveAddress(60)); var hspe8UpperFloor = _deviceService.GetDevice <HSPE8OutputOnly>(InstalledDevice.UpperFloorAndOfficeHSPE8.ToString()); var hspe16FloorAndLowerBathroom = _ccToolsBoardService.RegisterHSPE16OutputOnly(InstalledDevice.LowerFloorAndLowerBathroomHSPE16.ToString(), new I2CSlaveAddress(17)); var input1 = _deviceService.GetDevice <HSPE16InputOnly>(InstalledDevice.Input1.ToString()); var input2 = _deviceService.GetDevice <HSPE16InputOnly>(InstalledDevice.Input2.ToString()); var input4 = _deviceService.GetDevice <HSPE16InputOnly>(InstalledDevice.Input4.ToString()); var i2CHardwareBridge = _deviceService.GetDevice <I2CHardwareBridge>(); const int SensorPin = 5; var area = _areaService.RegisterArea(Room.Floor); _sensorFactory.RegisterTemperatureSensor(area, Floor.LowerFloorTemperatureSensor, i2CHardwareBridge.DHT22Accessor.GetTemperatureSensor(SensorPin)); _sensorFactory.RegisterHumiditySensor(area, Floor.LowerFloorHumiditySensor, i2CHardwareBridge.DHT22Accessor.GetHumiditySensor(SensorPin)); _sensorFactory.RegisterMotionDetector(area, Floor.StairwayMotionDetector, input2.GetInput(1)); _sensorFactory.RegisterMotionDetector(area, Floor.StairsLowerMotionDetector, input4.GetInput(7)); _sensorFactory.RegisterMotionDetector(area, Floor.StairsUpperMotionDetector, input4.GetInput(6)); _sensorFactory.RegisterMotionDetector(area, Floor.LowerFloorMotionDetector, input1.GetInput(4)); _actuatorFactory.RegisterRollerShutter(area, Floor.StairwayRollerShutter, hsrel5Stairway.GetOutput(4), hsrel5Stairway.GetOutput(3)); _sensorFactory.RegisterButton(area, Floor.ButtonLowerFloorUpper, input1.GetInput(0)); _sensorFactory.RegisterButton(area, Floor.ButtonLowerFloorLower, input1.GetInput(5)); _sensorFactory.RegisterButton(area, Floor.ButtonLowerFloorAtBathroom, input1.GetInput(1)); _sensorFactory.RegisterButton(area, Floor.ButtonLowerFloorAtKitchen, input1.GetInput(3)); _sensorFactory.RegisterButton(area, Floor.ButtonStairsLowerUpper, input4.GetInput(5)); _sensorFactory.RegisterButton(area, Floor.ButtonStairsLowerLower, input1.GetInput(2)); _sensorFactory.RegisterButton(area, Floor.ButtonStairsUpper, input4.GetInput(4)); _sensorFactory.RegisterButton(area, Floor.ButtonStairway, input1.GetInput(6)); _actuatorFactory.RegisterLamp(area, Floor.Lamp1, hspe16FloorAndLowerBathroom.GetOutput(5).WithInvertedState()); _actuatorFactory.RegisterLamp(area, Floor.Lamp2, hspe16FloorAndLowerBathroom.GetOutput(6).WithInvertedState()); _actuatorFactory.RegisterLamp(area, Floor.Lamp3, hspe16FloorAndLowerBathroom.GetOutput(7).WithInvertedState()); _actuatorFactory.RegisterLamp(area, Floor.StairwayLampCeiling, hsrel5Stairway.GetOutput(0)); _actuatorFactory.RegisterLamp(area, Floor.StairwayLampWall, hsrel5Stairway.GetOutput(1)); _actuatorFactory.RegisterLogicalComponent(area, Floor.CombinedStairwayLamp) .WithComponent(area.GetLamp(Floor.StairwayLampCeiling)) .WithComponent(area.GetLamp(Floor.StairwayLampWall)); SetupStairwayLamps(area); _actuatorFactory.RegisterLogicalComponent(area, Floor.CombinedLamps) .WithComponent(area.GetLamp(Floor.Lamp1)) .WithComponent(area.GetLamp(Floor.Lamp2)) .WithComponent(area.GetLamp(Floor.Lamp3)); _automationFactory.RegisterTurnOnAndOffAutomation(area, Floor.CombinedLampsAutomation) .WithTrigger(area.GetMotionDetector(Floor.LowerFloorMotionDetector)) .WithTrigger(area.GetButton(Floor.ButtonLowerFloorUpper).PressedShortTrigger) .WithTrigger(area.GetButton(Floor.ButtonLowerFloorAtBathroom).PressedShortTrigger) .WithTrigger(area.GetButton(Floor.ButtonLowerFloorAtKitchen).PressedShortTrigger) .WithTarget(area.GetComponent(Floor.CombinedLamps)) .WithEnabledAtNight() .WithTurnOffIfButtonPressedWhileAlreadyOn(); SetupStairsCeilingLamps(area, hspe8UpperFloor); SetupStairsLamps(area, hspe16FloorAndLowerBathroom); _automationFactory.RegisterRollerShutterAutomation(area, Floor.StairwayRollerShutterAutomation) .WithRollerShutters(area.GetRollerShutter(Floor.StairwayRollerShutter)); }
public void Apply() { var hsrel5Stairway = (HSREL5)_ccToolsBoardService.RegisterDevice(CCToolsDeviceType.HSRel5, InstalledDevice.StairwayHSREL5.ToString(), 60); var hspe8UpperFloor = _deviceService.GetDevice <HSPE8OutputOnly>(InstalledDevice.UpperFloorAndOfficeHSPE8.ToString()); var hspe16FloorAndLowerBathroom = (HSPE16OutputOnly)_ccToolsBoardService.RegisterDevice(CCToolsDeviceType.HSPE16_OutputOnly, InstalledDevice.LowerFloorAndLowerBathroomHSPE16.ToString(), 17); var input1 = _deviceService.GetDevice <HSPE16InputOnly>(InstalledDevice.Input1.ToString()); var input2 = _deviceService.GetDevice <HSPE16InputOnly>(InstalledDevice.Input2.ToString()); var input4 = _deviceService.GetDevice <HSPE16InputOnly>(InstalledDevice.Input4.ToString()); var area = _areaService.RegisterArea(Room.Floor); _sensorFactory.RegisterTemperatureSensor(area, Floor.LowerFloorTemperatureSensor, new MqttBasedNumericSensorAdapter("sensors-bridge/temperature/2", _deviceMessageBrokerService, _logService)); _sensorFactory.RegisterHumiditySensor(area, Floor.LowerFloorHumiditySensor, new MqttBasedNumericSensorAdapter("sensors-bridge/humidity/2", _deviceMessageBrokerService, _logService)); _sensorFactory.RegisterMotionDetector(area, Floor.StairwayMotionDetector, input2.GetInput(1)); _sensorFactory.RegisterMotionDetector(area, Floor.StairsLowerMotionDetector, input4.GetInput(7)); _sensorFactory.RegisterMotionDetector(area, Floor.StairsUpperMotionDetector, input4.GetInput(6)); _sensorFactory.RegisterMotionDetector(area, Floor.LowerFloorMotionDetector, input1.GetInput(4)); _actuatorFactory.RegisterRollerShutter(area, Floor.StairwayRollerShutter, hsrel5Stairway.GetOutput(4), hsrel5Stairway.GetOutput(3)); _sensorFactory.RegisterButton(area, Floor.ButtonLowerFloorUpper, input1.GetInput(0)); _sensorFactory.RegisterButton(area, Floor.ButtonLowerFloorLower, input1.GetInput(5)); _sensorFactory.RegisterButton(area, Floor.ButtonLowerFloorAtBathroom, input1.GetInput(1)); _sensorFactory.RegisterButton(area, Floor.ButtonLowerFloorAtKitchen, input1.GetInput(3)); _sensorFactory.RegisterButton(area, Floor.ButtonStairsLowerUpper, input4.GetInput(5)); _sensorFactory.RegisterButton(area, Floor.ButtonStairsLowerLower, input1.GetInput(2)); _sensorFactory.RegisterButton(area, Floor.ButtonStairsUpper, input4.GetInput(4)); _sensorFactory.RegisterButton(area, Floor.ButtonStairway, input1.GetInput(6)); _actuatorFactory.RegisterLamp(area, Floor.Lamp1, hspe16FloorAndLowerBathroom.GetOutput(5).WithInvertedState()); _actuatorFactory.RegisterLamp(area, Floor.Lamp2, hspe16FloorAndLowerBathroom.GetOutput(6).WithInvertedState()); _actuatorFactory.RegisterLamp(area, Floor.Lamp3, hspe16FloorAndLowerBathroom.GetOutput(7).WithInvertedState()); _actuatorFactory.RegisterLamp(area, Floor.StairwayLampCeiling, hsrel5Stairway.GetOutput(0)); _actuatorFactory.RegisterLamp(area, Floor.StairwayLampWall, hsrel5Stairway.GetOutput(1)); _actuatorFactory.RegisterLogicalComponent(area, Floor.CombinedStairwayLamp) .WithComponent(area.GetLamp(Floor.StairwayLampCeiling)) .WithComponent(area.GetLamp(Floor.StairwayLampWall)); SetupStairwayLamps(area); _actuatorFactory.RegisterLogicalComponent(area, Floor.CombinedLamps) .WithComponent(area.GetLamp(Floor.Lamp1)) .WithComponent(area.GetLamp(Floor.Lamp2)) .WithComponent(area.GetLamp(Floor.Lamp3)); _automationFactory.RegisterTurnOnAndOffAutomation(area, Floor.CombinedLampsAutomation) .WithTrigger(area.GetMotionDetector(Floor.LowerFloorMotionDetector)) .WithTrigger(area.GetButton(Floor.ButtonLowerFloorUpper).CreatePressedShortTrigger(_messageBroker)) .WithTrigger(area.GetButton(Floor.ButtonLowerFloorAtBathroom).CreatePressedShortTrigger(_messageBroker)) .WithTrigger(area.GetButton(Floor.ButtonLowerFloorAtKitchen).CreatePressedShortTrigger(_messageBroker)) .WithTarget(area.GetComponent(Floor.CombinedLamps)) .WithEnabledAtNight() .WithTurnOffIfButtonPressedWhileAlreadyOn(); SetupStairsCeilingLamps(area, hspe8UpperFloor); SetupStairsLamps(area, hspe16FloorAndLowerBathroom); _automationFactory.RegisterRollerShutterAutomation(area, Floor.StairwayRollerShutterAutomation) .WithRollerShutters(area.GetRollerShutter(Floor.StairwayRollerShutter)); }