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)); }
public IActionResult ShowMap() { var measurementsService = new MeasurementsService(); var mapData = new MapData(); mapData.Measurements = measurementsService.GetAllLastMeasurements(); mapData.Coordinates = measurementsService.GetCoordinates(); return(View(mapData)); }
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; } } }
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); }
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); }
public void Save([FromBody] MeasurementRaw measurementRaw) { var measurementsService = new MeasurementsService(); measurementsService.Save(measurementRaw); }