示例#1
0
        public ActionResult Index()
        {
            OverViewModel model = new OverViewModel();

            MyStromConnector licht     = new MyStromConnector("192.168.1.206");
            MyStromConnector umLuft    = new MyStromConnector("192.168.1.108");
            MyStromConnector abLuft    = new MyStromConnector("192.168.1.241");
            ShellyConnector  tempHygro = new ShellyConnector("192.168.1.187");
            MyStromConnector watering  = new MyStromConnector("192.168.1.109");


            model.Watering = DataConverter.ConvertToWateringDevice(watering.Get());
            model.Light    = DataConverter.ConvertToLightDevice(licht.Get());
            model.FanIn    = DataConverter.ConvertToFanDevice(umLuft.Get());
            model.Suction  = DataConverter.ConvertToSuctionDevice(abLuft.Get());

            var tempResp = tempHygro.Get();

            model.Temperature = DataConverter.ConvertToTemperatureDevice(tempResp);
            model.Humidity    = DataConverter.ConvertToHumidityDevice(tempResp);


            FlowersGateway flowers = new FlowersGateway();

            model.FlowersInBloom = flowers.GetFlowersInBloom();


            SystemSettingsGateway gateway  = new SystemSettingsGateway();
            List <SystemSetting>  settings = gateway.GetSystemSettings();

            model.Sunrise = settings.First(x => x.Name == "Sunrise").Value;
            model.SunSet  = settings.First(x => x.Name == "Sunset").Value;

            model.TempMinMax     = "Temp: " + settings.First(x => x.Name == "MinTemp").Value + "°C - " + settings.First(x => x.Name == "MaxTemp").Value + "°C";
            model.HumidityMinMax = "RLF: " + settings.First(x => x.Name == "MinHumidity").Value + "% - " + settings.First(x => x.Name == "MaxHumidity").Value + "%";


            //var x = _gateway.GetCollectedData();
            var notifications = _notyGateway.GetDeviceNotification();

            model.Temperature.Info = notifications.First(x => x.DeviceId == model.Temperature.Id);
            model.Humidity.Info    = notifications.First(x => x.DeviceId == model.Humidity.Id);
            model.Watering.Info    = notifications.First(x => x.DeviceId == model.Watering.Id);

            return(View(model));
        }
示例#2
0
        private static void Check_Temp_Hygro_Stats()
        {
            Console.WriteLine("Check Temperatur & Humidity...");

            try
            {
                // Default Values <> Settings:
                SystemSettingsGateway gateway  = new SystemSettingsGateway();
                List <SystemSetting>  settings = gateway.GetSystemSettings();


                // ZUM TESTEN:
                DeviceNotification tempDevice = new DeviceNotification();
                tempDevice.DeviceId  = Temperature.Id;
                tempDevice.TimeStamp = DateTime.Now;
                double minTemp = Convert.ToDouble(settings.First(x => x.Name == "MinTemp").Value.Replace('.', ','));
                double maxTemp = Convert.ToDouble(settings.First(x => x.Name == "MaxTemp").Value.Replace('.', ','));
                double diff    = Convert.ToDouble((maxTemp - minTemp) / 2);
                Console.WriteLine(Temperature.CelsiusValue);

                if (Temperature.CelsiusValue < minTemp)
                {
                    tempDevice.Status  = "danger";
                    tempDevice.InfoMsg = "Temperatur ist gut";
                }

                if (IsBetween(Temperature.CelsiusValue, minTemp, (minTemp + diff)))
                {
                    tempDevice.Status  = "success";
                    tempDevice.InfoMsg = "Temperatur zu nieder";
                }
                else if (IsBetween(Temperature.CelsiusValue, (minTemp + diff), maxTemp))
                {
                    tempDevice.Status  = "warning";
                    tempDevice.InfoMsg = "Erhöhte Temperatur";
                }
                else
                {
                    tempDevice.Status  = "danger";
                    tempDevice.InfoMsg = "Temperatur zu hoch";
                }



                // ZUM TESTEN:
                DeviceNotification humDevice = new DeviceNotification();
                humDevice.DeviceId  = Humidity.Id;
                humDevice.TimeStamp = DateTime.Now;
                double minHumidity = Convert.ToDouble(settings.First(x => x.Name == "MinHumidity").Value.Replace('.', ','));
                double maxHumidity = Convert.ToDouble(settings.First(x => x.Name == "MaxHumidity").Value.Replace('.', ','));
                double diffHum     = Convert.ToDouble((maxHumidity - minHumidity) / 2);
                Console.WriteLine(Humidity.HumidityValue);
                if (Humidity.HumidityValue < minHumidity)
                {
                    humDevice.Status  = "danger";
                    humDevice.InfoMsg = "Wert zu nieder";
                }

                if (IsBetween(Humidity.HumidityValue, minHumidity, (minHumidity + diffHum)))
                {
                    humDevice.Status  = "success";
                    humDevice.InfoMsg = "Wert ist gut";
                }
                else if (IsBetween(Humidity.HumidityValue, (minHumidity + diffHum), (maxHumidity - 2)))
                {
                    humDevice.Status  = "warning";
                    humDevice.InfoMsg = "Wert ist erhöht";
                }
                else
                {
                    humDevice.Status  = "danger";
                    humDevice.InfoMsg = "Wert zu hoch";
                }


                // Save values:
                _notifyGateway.CleanUpDeviceNotification_withoutWateringNoty(5); // 5 = ID from Watering Device see above
                _notifyGateway.AddDeviceNotification(tempDevice.DeviceId, tempDevice.InfoMsg, tempDevice.Status, tempDevice.TimeStamp.ToString());
                _notifyGateway.AddDeviceNotification(humDevice.DeviceId, humDevice.InfoMsg, humDevice.Status, humDevice.TimeStamp.ToString());


                Console.WriteLine("Check Temperatur & Humidity finish.");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Check Temperatur & Humidity finish with errors:");
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.StackTrace);
            }
        }