Esempio n. 1
0
        public IActionResult ShowChart(DateTimeOffset?startDate,
                                       DateTimeOffset?endDate,
                                       int?stationId,
                                       List <string> filterElements)
        {
            var measurementsService = new MeasurementsService();
            var chartData           = new ChartData();

            ViewBag.StartDate      = startDate;
            ViewBag.EndDate        = endDate;
            ViewBag.StationId      = stationId;
            ViewBag.FilterElements = filterElements;



            if (stationId == null)
            {
                chartData.StationDates = measurementsService.GetCoordinates();
            }
            else
            {
                chartData.HistoricalData = measurementsService.GetChartMeasurements(startDate.Value, endDate.Value, stationId.Value, filterElements);
                chartData.StationDates   = measurementsService.GetCoordinates();
            }
            return(View(chartData));
        }
Esempio n. 2
0
        public IActionResult ShowMap()
        {
            var measurementsService = new MeasurementsService();
            var mapData             = new MapData();

            mapData.Measurements = measurementsService.GetAllLastMeasurements();
            mapData.Coordinates  = measurementsService.GetCoordinates();

            return(View(mapData));
        }
Esempio n. 3
0
        public override void OnStart()
        {
            int nbSecond = 0;

            while (PackageHost.IsRunning)
            {
                if (nbSecond++ == 0)
                {
                    try
                    {
                        PackageHost.WriteInfo("Getting NetAtmo measurements");
                        // Authenticate user
                        AuthenticationService authService = new AuthenticationService(PackageHost.GetSettingValue <string>("Netatmo.ClientId"), PackageHost.GetSettingValue <string>("Netatmo.ClientSecret"));
                        AuthenticationToken   authToken   = authService.AuthenticateUser(PackageHost.GetSettingValue <string>("Netatmo.Username"), PackageHost.GetSettingValue <string>("Netatmo.Password"));
                        // Get user devices
                        var devices = new DevicesService(authToken, new HttpWrapper()).Get();
                        // Init Measurements Service
                        var measurementsService = new MeasurementsService(authToken, new HttpWrapper());
                        // For each devices
                        foreach (var device in devices.Result.Devices)
                        {
                            // Push the device
                            this.PushData(measurementsService, device);
                            // Push each modules of the device
                            foreach (var moduleId in device.ModuleIds)
                            {
                                var module = devices.Result.Modules.FirstOrDefault(m => m.Id == moduleId);
                                if (module != null)
                                {
                                    this.PushData(measurementsService, device, module);
                                }
                                else
                                {
                                    PackageHost.WriteError("Module '{0}' not exist !", moduleId);
                                }
                            }
                        }
                        // OK !
                        PackageHost.WriteInfo("All measurements are pushed to the Constellation");
                    }
                    catch (Exception ex)
                    {
                        PackageHost.WriteError("Error while getting NetAtmo measurements : " + ex.ToString());
                    }
                }

                Thread.Sleep(1000);
                if (nbSecond == PackageHost.GetSettingValue <int>("RefreshInterval"))
                {
                    nbSecond = 0;
                }
            }
        }
Esempio n. 4
0
        public void GetMeasurements_ForModule(Type moduleType)
        {
            // Arrange
            var    measurementService = new MeasurementsService(_authenticationToken);
            string firstDevice        = _user.DeviceIds.First();

            var    devicesService = new DevicesService(_authenticationToken);
            var    stationDetails = devicesService.Get();
            Module module         = stationDetails.Modules.First(x => x.GetType() == moduleType);

            // Act
            List <SensorMeasurement> measurements = measurementService.Get(firstDevice, module);

            // Assert
            Assert.IsNotNull(measurements);
        }
        public void GetMeasurements_ForModule(Type moduleType)
        {
            // Arrange
            string firstDevice = _user.DeviceIds.First();

            // Get the (rain) module to look up measurements from.
            var    devicesService = new DevicesService(_authenticationToken, new HttpWrapper());
            var    stationDetails = devicesService.Get().Result;
            Module module         = stationDetails.Modules.First(x => x.GetType() == moduleType);

            var measurementService = new MeasurementsService(_authenticationToken, new HttpWrapper());

            // Act
            List <SensorMeasurement> measurements = measurementService.Get(firstDevice, module).Result;

            // Assert
            Assert.IsNotNull(measurements);
        }
Esempio n. 6
0
        private void PushData(MeasurementsService service, Device device, Module module = null)
        {
            // Get measures
            var measures = service.Get(device.Id, module);

            // Push device/module info
            if (module != null)
            {
                PackageHost.PushStateObject <Module>(string.Concat(module.Name.Replace(" ", ""), ".Info"), module, "NetAtmo.Module");
            }
            else
            {
                PackageHost.PushStateObject <Device>(string.Concat(device.ModuleName, ".Info"), device, "NetAtmo.Device");
            }
            // Push measure
            foreach (SensorMeasurement measure in measures.Result)
            {
                string sensorType      = measure.GetType().Name;
                string stateObjectName = string.Concat(module != null ? module.Name.Replace(" ", "") : device.ModuleName, ".", sensorType.Replace("Measurement", ""));
                var    metadatas       = new Dictionary <string, object>()
                {
                    { "TimeStamp", measure.TimeStamp },
                    { "ModuleId", module?.Id ?? device.Id },
                    { "ModuleName", module?.Name ?? device.ModuleName }
                };
                var rainMeasurement = measure as RainMeasurement;
                if (rainMeasurement != null)
                {
                    metadatas.Add("HourlySum", rainMeasurement.MillimetersIn60Minutes);
                    metadatas.Add("DailySum", rainMeasurement.MillimetersIn24Hour);
                }
                PackageHost.PushStateObject <decimal>(stateObjectName, measure.Value, "NetAtmo." + sensorType, metadatas);
            }
            // Ok!
            PackageHost.WriteInfo("Successfully pushed {0} measurement(s).", measures.Result.Count);
        }
Esempio n. 7
0
        public void Save([FromBody] MeasurementRaw measurementRaw)
        {
            var measurementsService = new MeasurementsService();

            measurementsService.Save(measurementRaw);
        }