public void Apply() { var hsrel8LowerHeatingValves = _ccToolsBoardService.RegisterHSREL8(InstalledDevice.LowerHeatingValvesHSREL8.ToString(), new I2CSlaveAddress(16)); var hsrel5UpperHeatingValves = _ccToolsBoardService.RegisterHSREL5(InstalledDevice.UpperHeatingValvesHSREL5.ToString(), new I2CSlaveAddress(56)); var hsrel5Stairway = _deviceService.GetDevice <HSREL5>(InstalledDevice.StairwayHSREL5.ToString()); var input3 = _deviceService.GetDevice <HSPE16InputOnly>(InstalledDevice.Input3.ToString()); var room = _areaService.RegisterArea(Room.Storeroom); _actuatorFactory.RegisterLamp(room, Storeroom.LightCeiling, hsrel5Stairway[HSREL5Pin.GPIO1]); _sensorFactory.RegisterMotionDetector(room, Storeroom.MotionDetector, input3.GetInput(12)); _sensorFactory.RegisterMotionDetector(room, Storeroom.MotionDetectorCatLitterBox, input3.GetInput(11).WithInvertedState()); _actuatorFactory.RegisterSocket(room, Storeroom.CatLitterBoxFan, hsrel5Stairway[HSREL5Pin.GPIO2]); _actuatorFactory.RegisterSocket(room, Storeroom.CirculatingPump, hsrel5UpperHeatingValves[HSREL5Pin.Relay3]); _automationFactory.RegisterTurnOnAndOffAutomation(room, Storeroom.LightCeilingAutomation) .WithTrigger(room.GetMotionDetector(Storeroom.MotionDetector)) .WithTarget(room.GetLamp(Storeroom.LightCeiling)); _automationFactory.RegisterTurnOnAndOffAutomation(room, Storeroom.CatLitterBoxFan) .WithTrigger(room.GetMotionDetector(Storeroom.MotionDetectorCatLitterBox)) .WithTarget(room.GetSocket(Storeroom.CatLitterBoxFan)); // Both relays are used for water source selection (True+True = Lowerr, False+False = Upper) // Second relays is with capacitor. Disable second with delay before disable first one. hsrel5UpperHeatingValves[HSREL5Pin.GPIO0].Write(BinaryState.Low); hsrel5UpperHeatingValves[HSREL5Pin.GPIO1].Write(BinaryState.Low); _automationFactory.RegisterTurnOnAndOffAutomation(room, Storeroom.CirculatingPumpAutomation) .WithTrigger(_areaService.GetArea(Room.Kitchen).GetMotionDetector(KitchenConfiguration.Kitchen.MotionDetector)) .WithTrigger(_areaService.GetArea(Room.LowerBathroom).GetMotionDetector(LowerBathroomConfiguration.LowerBathroom.MotionDetector)) .WithTarget(room.GetSocket(Storeroom.CirculatingPump)) .WithPauseAfterEveryTurnOn(TimeSpan.FromHours(1)) .WithEnabledAtDay(); _catLitterBoxTwitterSender = new CatLitterBoxTwitterSender(_timerService, _twitterClientService, _logService).WithTrigger( room.GetMotionDetector(Storeroom.MotionDetectorCatLitterBox)); }
public void Apply() { var hsrel8LowerHeatingValves = _ccToolsBoardService.RegisterHSREL8(InstalledDevice.LowerHeatingValvesHSREL8, new I2CSlaveAddress(16)); var hsrel5UpperHeatingValves = _ccToolsBoardService.RegisterHSREL5(InstalledDevice.UpperHeatingValvesHSREL5, new I2CSlaveAddress(56)); var hsrel5Stairway = _deviceService.GetDevice<HSREL5>(InstalledDevice.StairwayHSREL5); var input3 = _deviceService.GetDevice<HSPE16InputOnly>(InstalledDevice.Input3); var room = _areaService.CreateArea(Room.Storeroom); _actuatorFactory.RegisterLamp(room, Storeroom.LightCeiling, hsrel5Stairway[HSREL5Pin.GPIO1]); _sensorFactory.RegisterMotionDetector(room, Storeroom.MotionDetector, input3.GetInput(12)); _sensorFactory.RegisterMotionDetector(room, Storeroom.MotionDetectorCatLitterBox, input3.GetInput(11).WithInvertedState()); _actuatorFactory.RegisterSocket(room, Storeroom.CatLitterBoxFan, hsrel5Stairway[HSREL5Pin.GPIO2]); _actuatorFactory.RegisterSocket(room, Storeroom.CirculatingPump, hsrel5UpperHeatingValves[HSREL5Pin.Relay3]); _automationFactory.RegisterTurnOnAndOffAutomation(room, Storeroom.LightCeilingAutomation) .WithTrigger(room.GetMotionDetector(Storeroom.MotionDetector)) .WithTarget(room.GetLamp(Storeroom.LightCeiling)); _automationFactory.RegisterTurnOnAndOffAutomation(room, Storeroom.CatLitterBoxFan) .WithTrigger(room.GetMotionDetector(Storeroom.MotionDetectorCatLitterBox)) .WithTarget(room.GetSocket(Storeroom.CatLitterBoxFan)); // Both relays are used for water source selection (True+True = Lowerr, False+False = Upper) // Second relays is with capacitor. Disable second with delay before disable first one. hsrel5UpperHeatingValves[HSREL5Pin.GPIO0].Write(BinaryState.Low); hsrel5UpperHeatingValves[HSREL5Pin.GPIO1].Write(BinaryState.Low); _automationFactory.RegisterTurnOnAndOffAutomation(room, Storeroom.CirculatingPumpAutomation) .WithTrigger(_areaService.GetArea(Room.Kitchen).GetMotionDetector(KitchenConfiguration.Kitchen.MotionDetector)) .WithTrigger(_areaService.GetArea(Room.LowerBathroom).GetMotionDetector(LowerBathroomConfiguration.LowerBathroom.MotionDetector)) .WithTarget(room.GetSocket(Storeroom.CirculatingPump)) .WithPauseAfterEveryTurnOn(TimeSpan.FromHours(1)) .WithEnabledAtDay(); _catLitterBoxTwitterSender = new CatLitterBoxTwitterSender(_timerService, _twitterClientService).WithTrigger( room.GetMotionDetector(Storeroom.MotionDetectorCatLitterBox)); _synonymService.AddSynonymsForArea(Room.Storeroom, "Abstellkammer", "Storeroom"); }