public UpperBathroomConfiguration(
            CCToolsBoardService ccToolsBoardService,
            IDeviceService deviceService,
            ISchedulerService schedulerService,
            IAreaService areaService,
            ISettingsService settingsService,
            SynonymService synonymService,
            AutomationFactory automationFactory,
            ActuatorFactory actuatorFactory,
            SensorFactory sensorFactory)
        {
            if (ccToolsBoardService == null)
            {
                throw new ArgumentNullException(nameof(ccToolsBoardService));
            }
            if (deviceService == null)
            {
                throw new ArgumentNullException(nameof(deviceService));
            }
            if (schedulerService == null)
            {
                throw new ArgumentNullException(nameof(schedulerService));
            }
            if (areaService == null)
            {
                throw new ArgumentNullException(nameof(areaService));
            }
            if (settingsService == null)
            {
                throw new ArgumentNullException(nameof(settingsService));
            }
            if (synonymService == null)
            {
                throw new ArgumentNullException(nameof(synonymService));
            }
            if (automationFactory == null)
            {
                throw new ArgumentNullException(nameof(automationFactory));
            }
            if (actuatorFactory == null)
            {
                throw new ArgumentNullException(nameof(actuatorFactory));
            }
            if (sensorFactory == null)
            {
                throw new ArgumentNullException(nameof(sensorFactory));
            }

            _ccToolsBoardService = ccToolsBoardService;
            _deviceService       = deviceService;
            _schedulerService    = schedulerService;
            _areaService         = areaService;
            _settingsService     = settingsService;
            _synonymService      = synonymService;
            _automationFactory   = automationFactory;
            _actuatorFactory     = actuatorFactory;
            _sensorFactory       = sensorFactory;
        }
Example #2
0
            public Configuration(
                CCToolsBoardService ccToolsBoardService,
                IPi2GpioService pi2GpioService,
                SynonymService synonymService,
                IDeviceService deviceService,
                II2CBusService i2CBusService,
                ISchedulerService schedulerService,
                RemoteSocketService remoteSocketService,
                IApiService apiService,
                IContainer containerService)
            {
                if (ccToolsBoardService == null)
                {
                    throw new ArgumentNullException(nameof(ccToolsBoardService));
                }
                if (pi2GpioService == null)
                {
                    throw new ArgumentNullException(nameof(pi2GpioService));
                }
                if (synonymService == null)
                {
                    throw new ArgumentNullException(nameof(synonymService));
                }
                if (deviceService == null)
                {
                    throw new ArgumentNullException(nameof(deviceService));
                }
                if (i2CBusService == null)
                {
                    throw new ArgumentNullException(nameof(i2CBusService));
                }
                if (schedulerService == null)
                {
                    throw new ArgumentNullException(nameof(schedulerService));
                }
                if (remoteSocketService == null)
                {
                    throw new ArgumentNullException(nameof(remoteSocketService));
                }
                if (apiService == null)
                {
                    throw new ArgumentNullException(nameof(apiService));
                }
                if (containerService == null)
                {
                    throw new ArgumentNullException(nameof(containerService));
                }

                _ccToolsBoardService = ccToolsBoardService;
                _pi2GpioService      = pi2GpioService;
                _synonymService      = synonymService;
                _deviceService       = deviceService;
                _i2CBusService       = i2CBusService;
                _schedulerService    = schedulerService;
                _remoteSocketService = remoteSocketService;
                _apiService          = apiService;
                _containerService    = containerService;
            }
Example #3
0
        public StoreroomConfiguration(
            IAreaService areaService,
            SynonymService synonymService,
            IDeviceService deviceService,
            CCToolsBoardService ccToolsBoardService,
            ITimerService timerService,
            ITwitterClientService twitterClientService,
            AutomationFactory automationFactory,
            ActuatorFactory actuatorFactory,
            SensorFactory sensorFactory)
        {
            if (areaService == null)
            {
                throw new ArgumentNullException(nameof(areaService));
            }
            if (synonymService == null)
            {
                throw new ArgumentNullException(nameof(synonymService));
            }
            if (deviceService == null)
            {
                throw new ArgumentNullException(nameof(deviceService));
            }
            if (ccToolsBoardService == null)
            {
                throw new ArgumentNullException(nameof(ccToolsBoardService));
            }
            if (timerService == null)
            {
                throw new ArgumentNullException(nameof(timerService));
            }
            if (twitterClientService == null)
            {
                throw new ArgumentNullException(nameof(twitterClientService));
            }
            if (automationFactory == null)
            {
                throw new ArgumentNullException(nameof(automationFactory));
            }
            if (actuatorFactory == null)
            {
                throw new ArgumentNullException(nameof(actuatorFactory));
            }
            if (sensorFactory == null)
            {
                throw new ArgumentNullException(nameof(sensorFactory));
            }

            _areaService          = areaService;
            _synonymService       = synonymService;
            _deviceService        = deviceService;
            _ccToolsBoardService  = ccToolsBoardService;
            _timerService         = timerService;
            _twitterClientService = twitterClientService;
            _automationFactory    = automationFactory;
            _actuatorFactory      = actuatorFactory;
            _sensorFactory        = sensorFactory;
        }
Example #4
0
        public OfficeConfiguration(
            IDeviceService deviceService,
            IAreaService areaService,
            IDaylightService daylightService,
            CCToolsBoardService ccToolsBoardService,
            SynonymService synonymService,
            RemoteSocketService remoteSocketService,
            ActuatorFactory actuatorFactory,
            SensorFactory sensorFactory)
        {
            if (deviceService == null)
            {
                throw new ArgumentNullException(nameof(deviceService));
            }
            if (areaService == null)
            {
                throw new ArgumentNullException(nameof(areaService));
            }
            if (daylightService == null)
            {
                throw new ArgumentNullException(nameof(daylightService));
            }
            if (ccToolsBoardService == null)
            {
                throw new ArgumentNullException(nameof(ccToolsBoardService));
            }
            if (synonymService == null)
            {
                throw new ArgumentNullException(nameof(synonymService));
            }
            if (remoteSocketService == null)
            {
                throw new ArgumentNullException(nameof(remoteSocketService));
            }
            if (actuatorFactory == null)
            {
                throw new ArgumentNullException(nameof(actuatorFactory));
            }
            if (sensorFactory == null)
            {
                throw new ArgumentNullException(nameof(sensorFactory));
            }

            _deviceService       = deviceService;
            _areaService         = areaService;
            _daylightService     = daylightService;
            _ccToolsBoardService = ccToolsBoardService;
            _synonymService      = synonymService;
            _remoteSocketService = remoteSocketService;
            _actuatorFactory     = actuatorFactory;
            _sensorFactory       = sensorFactory;
        }
Example #5
0
        public BedroomConfiguration(
            IDeviceService deviceService,
            IAreaService areaService,
            CCToolsBoardService ccToolsBoardService,
            SynonymService synonymService,
            ActuatorFactory actuatorFactory,
            SensorFactory sensorFactory,
            AutomationFactory automationFactory)
        {
            if (deviceService == null)
            {
                throw new ArgumentNullException(nameof(deviceService));
            }
            if (areaService == null)
            {
                throw new ArgumentNullException(nameof(areaService));
            }
            if (ccToolsBoardService == null)
            {
                throw new ArgumentNullException(nameof(ccToolsBoardService));
            }
            if (synonymService == null)
            {
                throw new ArgumentNullException(nameof(synonymService));
            }
            if (actuatorFactory == null)
            {
                throw new ArgumentNullException(nameof(actuatorFactory));
            }
            if (sensorFactory == null)
            {
                throw new ArgumentNullException(nameof(sensorFactory));
            }
            if (automationFactory == null)
            {
                throw new ArgumentNullException(nameof(automationFactory));
            }

            _deviceService       = deviceService;
            _areaService         = areaService;
            _ccToolsBoardService = ccToolsBoardService;
            _synonymService      = synonymService;
            _actuatorFactory     = actuatorFactory;
            _sensorFactory       = sensorFactory;
            _automationFactory   = automationFactory;
        }
Example #6
0
            public Configuration(
                CCToolsBoardService ccToolsBoardService,
                IPi2GpioService pi2GpioService,
                SynonymService synonymService,
                IAreaService areaService,
                ActuatorFactory actuatorFactory,
                SensorFactory sensorFactory,
                AutomationFactory automationFactory)
            {
                if (ccToolsBoardService == null)
                {
                    throw new ArgumentNullException(nameof(ccToolsBoardService));
                }
                if (pi2GpioService == null)
                {
                    throw new ArgumentNullException(nameof(pi2GpioService));
                }
                if (synonymService == null)
                {
                    throw new ArgumentNullException(nameof(synonymService));
                }
                if (actuatorFactory == null)
                {
                    throw new ArgumentNullException(nameof(actuatorFactory));
                }
                if (sensorFactory == null)
                {
                    throw new ArgumentNullException(nameof(sensorFactory));
                }
                if (automationFactory == null)
                {
                    throw new ArgumentNullException(nameof(automationFactory));
                }

                _ccToolsBoardService = ccToolsBoardService;
                _pi2GpioService      = pi2GpioService;
                _synonymService      = synonymService;
                _areaService         = areaService;
                _actuatorFactory     = actuatorFactory;
                _sensorFactory       = sensorFactory;
                _automationFactory   = automationFactory;
            }
Example #7
0
        protected override async Task ConfigureAsync(IDeviceService deviceService)
        {
            var pi2PortController = new Pi2GpioService();

            var openWeatherMapService = new OpenWeatherMapService(
                ServiceLocator.GetService <IDateTimeService>(),
                ServiceLocator.GetService <ISchedulerService>(),
                ServiceLocator.GetService <ISystemInformationService>());

            ServiceLocator.RegisterService(typeof(IOutdoorTemperatureService), new OutdoorTemperatureService(openWeatherMapService, ServiceLocator.GetService <IDateTimeService>()));
            ServiceLocator.RegisterService(typeof(IOutdoorHumidityService), new OutdootHumidityService(openWeatherMapService, ServiceLocator.GetService <IDateTimeService>()));
            ServiceLocator.RegisterService(typeof(IDaylightService), new DaylightService(openWeatherMapService, ServiceLocator.GetService <IDateTimeService>()));
            ServiceLocator.RegisterService(typeof(IWeatherService), new WeatherService(openWeatherMapService, ServiceLocator.GetService <IDateTimeService>()));
            ServiceLocator.RegisterService(typeof(OpenWeatherMapService), openWeatherMapService);

            var ccToolsFactory = new CCToolsBoardService(this, GetDevice <II2CBusService>());
            var hsrt16         = ccToolsFactory.CreateHSRT16(Device.CellarHSRT16, new I2CSlaveAddress(32));

            var garden = this.CreateArea(RoomId.Garden)
                         .WithLamp(Garden.LampTerrace, hsrt16[HSRT16Pin.Relay15])
                         .WithLamp(Garden.LampGarage, hsrt16[HSRT16Pin.Relay14])
                         .WithLamp(Garden.LampTap, hsrt16[HSRT16Pin.Relay13])
                         .WithLamp(Garden.SpotlightRoof, hsrt16[HSRT16Pin.Relay12])
                         .WithLamp(Garden.LampRearArea, hsrt16[HSRT16Pin.Relay11])
                         .WithSocket(Garden.SocketPavillion, hsrt16[HSRT16Pin.Relay10])
                         // 9 = free
                         .WithLamp(Garden.LampParkingLot, new LogicalBinaryOutput().WithOutput(hsrt16[HSRT16Pin.Relay8]).WithOutput(hsrt16[HSRT16Pin.Relay6]).WithOutput(hsrt16[HSRT16Pin.Relay7]))
                         .WithButton(Garden.Button, pi2PortController.GetInput(4).WithInvertedState())
                         .WithStateMachine(Garden.StateMachine, SetupStateMachine);

            garden.GetStateMachine(Garden.StateMachine).ConnectMoveNextAndToggleOffWith(garden.GetButton(Garden.Button));

            garden.SetupConditionalOnAutomation()
            .WithActuator(garden.GetLamp(Garden.LampParkingLot))
            .WithOnAtNightRange()
            .WithOffBetweenRange(TimeSpan.Parse("22:30:00"), TimeSpan.Parse("05:00:00"));

            TimerService.Tick += (s, e) => { pi2PortController.PollOpenInputPorts(); };

            await base.ConfigureAsync();
        }