Esempio n. 1
0
        public CollectorsValues GetIndoorCollectors()
        {
            var collectorsValues = new CollectorsValues();

            var dashboard = _context.Dashboards.Include(t => t.OutdoorCollector.Sensors)
                            .First();

            if (dashboard != null)
            {
                // Vnitřní senzory
                var indoorCollectors = new List <CollectorValues>();
                foreach (var collector in _context.Collectors.Where(t => t.Id != dashboard.OutdoorCollector.Id).Include(t => t.Sensors))
                {
                    var collectorValues    = new CollectorValues();
                    var indoorSensorValues = new List <SensorValue>();
                    foreach (var sensor in collector.Sensors)
                    {
                        var sv = new SensorValue();
                        sv.Sensor = sensor;
                        sv.Value  = _context.SensorRecords.Where(t => t.SensorId == sensor.Id).LastOrDefault().Value;

                        indoorSensorValues.Add(sv);
                    }
                    collectorValues.Sensors  = indoorSensorValues;
                    collectorValues.Location = collector.Name;
                    indoorCollectors.Add(collectorValues);
                }
                collectorsValues.Collectors = indoorCollectors.ToArray();
            }

            return(collectorsValues);
        }
Esempio n. 2
0
        public CollectorsValues GetOutdoorCollectors()
        {
            var collectorsValues = new CollectorsValues();

            if (_context.Dashboards.Count() > 0)
            {
                var dashboard = _context.Dashboards.Include(t => t.OutdoorCollector.Sensors)
                                .First();

                if (dashboard != null)
                {
                    var outdoorCollectors = new List <CollectorValues>();

                    var outdoorCollector = dashboard.OutdoorCollector;
                    if (outdoorCollector != null)
                    {
                        var collectorValues     = new CollectorValues();
                        var outdoorSensorValues = new List <SensorValue>();

                        foreach (var sensor in outdoorCollector.Sensors)
                        {
                            var sv = new SensorValue();
                            sv.Sensor = sensor;
                            sv.Value  = _context.SensorRecords.Where(t => t.SensorId == sensor.Id).LastOrDefault().Value;

                            outdoorSensorValues.Add(sv);
                        }
                        collectorValues.Sensors  = outdoorSensorValues;
                        collectorValues.Location = outdoorCollector.Name;
                        outdoorCollectors.Add(collectorValues);
                    }
                    collectorsValues.Collectors = outdoorCollectors.ToArray();
                }
            }

            return(collectorsValues);
        }
Esempio n. 3
0
        public MainDashboard Get()
        {
            var mainDashboard = new MainDashboard();

            if (_context.Dashboards.Count() > 0)
            {
                var dashboard = _context.Dashboards.Include(t => t.OutdoorCollector.Sensors)
                                .First();

                if (dashboard != null)
                {
                    // Venkovní senzory
                    var outdoorSensors = new List <SensorValue>();
                    foreach (var sensor in dashboard.OutdoorCollector.Sensors)
                    {
                        var sv = new SensorValue();
                        sv.Sensor = sensor;
                        sv.Value  = _context.SensorRecords.Where(t => t.SensorId == sensor.Id).LastOrDefault().Value;

                        outdoorSensors.Add(sv);
                    }
                    mainDashboard.OutdoorSensorsValue = outdoorSensors.ToArray();

                    // Vnitřní senzory
                    var IndoorCollectors = new List <CollectorValues>();
                    foreach (var collector in _context.Collectors.Where(t => t.Id != dashboard.OutdoorCollector.Id).Include(t => t.Sensors))
                    {
                        var collectorValues    = new CollectorValues();
                        var IndoorSensorValues = new List <SensorValue>();
                        foreach (var sensor in collector.Sensors)
                        {
                            var sv = new SensorValue();
                            sv.Sensor = sensor;
                            sv.Value  = _context.SensorRecords.Where(t => t.SensorId == sensor.Id).LastOrDefault().Value;

                            IndoorSensorValues.Add(sv);
                        }
                        collectorValues.Sensors  = IndoorSensorValues;
                        collectorValues.Location = collector.Name;
                        IndoorCollectors.Add(collectorValues);
                    }
                    mainDashboard.IndoorCollectors = IndoorCollectors.ToArray();

                    // Přepověď teploty a srážek
                    if (_context.WeatherForecast != null)
                    {
                        var weatherForecastId = _context.WeatherForecast.LastOrDefault().Id;

                        var hourlyForecast = _context.WeatherForecastHourlyState.Where(t => t.WeatherForecastId == weatherForecastId)
                                             .OrderBy(m => m.DateTime);

                        if (hourlyForecast != null)
                        {
                            mainDashboard.TemperatureForecast        = new HourlyForecast();
                            mainDashboard.TemperatureForecast.Hour   = hourlyForecast.Select(t => t.DateTime.Hour.ToString()).ToArray();
                            mainDashboard.TemperatureForecast.Values = hourlyForecast.Select(t => t.Temperature).ToArray();

                            mainDashboard.PrecipitationForecast        = new HourlyForecast();
                            mainDashboard.PrecipitationForecast.Hour   = hourlyForecast.Select(t => t.DateTime.Hour.ToString()).ToArray();
                            mainDashboard.PrecipitationForecast.Values = hourlyForecast.Select(t => t.Rain + t.Snow).ToArray();
                        }

                        var currentState = _context.WeatherForecastCurrentState.LastOrDefault();

                        if (currentState != null)
                        {
                            mainDashboard.Sunrise = currentState.SunriseTime.ToString("HH:mm");
                            mainDashboard.Sunset  = currentState.SunsetTime.ToString("HH:mm");
                        }
                    }

                    // Teplota rosného bodu - v jídelně
                    var indoorDewPointCollector = _context.Collectors.Where(t => t.Id == 1).Include(t => t.Sensors).FirstOrDefault();

                    if (indoorDewPointCollector != null)
                    {
                        var indoorTemperatureSensor = indoorDewPointCollector.Sensors.Where(t => t.Type == CMLSmartHomeCommon.Enums.SensorType.Temperature).FirstOrDefault();
                        var indoorHumaditySensor    = indoorDewPointCollector.Sensors.Where(t => t.Type == CMLSmartHomeCommon.Enums.SensorType.Humidity).FirstOrDefault();

                        var indoorTemperature = _context.SensorRecords.Where(t => t.SensorId == indoorTemperatureSensor.Id).LastOrDefault().Value;
                        var indoorHumadity    = _context.SensorRecords.Where(t => t.SensorId == indoorHumaditySensor.Id).LastOrDefault().Value;

                        mainDashboard.IndoorDewpointTemperature = Weather.DewpointTemperatureCalculate(indoorHumadity, indoorTemperature);
                    }

                    // Teplota rosného bodu - venkovní
                    var outdoorTemperatureSensor = dashboard.OutdoorCollector.Sensors.Where(t => t.Type == CMLSmartHomeCommon.Enums.SensorType.Temperature).FirstOrDefault();
                    var outdoorHumaditySensor    = dashboard.OutdoorCollector.Sensors.Where(t => t.Type == CMLSmartHomeCommon.Enums.SensorType.Humidity).FirstOrDefault();

                    var outdoorTemperature = _context.SensorRecords.Where(t => t.SensorId == outdoorTemperatureSensor.Id).LastOrDefault().Value;
                    var outdoorHumadity    = _context.SensorRecords.Where(t => t.SensorId == outdoorHumaditySensor.Id).LastOrDefault().Value;

                    mainDashboard.OutdoorDewpointTemperature = Weather.DewpointTemperatureCalculate(outdoorHumadity, outdoorTemperature);

                    // Datum a čas sestavení boardu
                    mainDashboard.GenerationDateTime = DateTime.Now.ToString("dd.MM.yyyy HH:mm");
                }
            }

            return(mainDashboard);
        }