public async Task <IPostResponse> AddSensorDs18b20ValueAsync([FromContent] SensorDs8b20 data) { try { var sensor = await Context.Instance.Connection.Table <wola.ha.common.DataModel.Sensors>().Where(w => w.SensorType == data.SensorType && w.Address.ToUpper() == data.Address.ToUpper()).FirstOrDefaultAsync(); if (sensor == null) { return(new PostResponse(PostResponse.ResponseStatus.Conflict, $"AddSensorDs18b20Value/{data}")); } var value = new SensorTemperatureValues { SensorId = sensor.Id, Value = (double)data.Temperature, Date = DateTime.Now }; var ret = Context.Instance.Connection.InsertAsync(value); return(new PostResponse(PostResponse.ResponseStatus.Created, $"AddSensorDs18b20Value/{ret}")); } catch (Exception ex) { LoggerFactory.LogException(ex); return(new PostResponse(PostResponse.ResponseStatus.Conflict, $"AddSensorDs18b20Value/{data}")); } }
private async Task PostTemp(SensorTemperatureValues item) { try { await WolaClient.PostItemToController <SensorTemperatureValues>("SensorTempValue", item); } catch (Exception ex) { Log.e(ex); } }
public async Task <IPostResponse> AddSensorTemperatureValue([FromContent] SensorTemperatureValues data) { try { var ret = await Context.Instance.Connection.InsertAsync(data); return(new PostResponse(PostResponse.ResponseStatus.Created, $"SensorTemperatureValues/{ret}")); } catch (Exception ex) { Log.e(ex); return(new PostResponse(PostResponse.ResponseStatus.Conflict, $"SensorTemperatureValues/{data}")); } }
public async Task <IPostResponse> AddDht22Value([FromContent] SensorDht data) { int[] ret = new int[2]; try { string pin = data.Pin.ToString(); var sensors = await Context.Instance.Connection.Table <wola.ha.common.DataModel.Sensors>() .Where(w => w.Pin == pin) .ToListAsync(); foreach (var item in sensors) { switch (item.SensorKind) { case 1: var temp = new SensorTemperatureValues { SensorId = item.Id, Value = (double)data.Temperature, Date = DateTime.Now }; ret[0] = await Context.Instance.Connection.InsertOrReplaceAsync(temp); break; case 2: var humi = new SensorHumidityValues { SensorId = item.Id, Value = (decimal)data.Humidity, Date = DateTime.Now }; ret[1] = await Context.Instance.Connection.InsertOrReplaceAsync(humi); break; } } // var ret = await Context.Instance.Connection.InsertAsync(value); return(new PostResponse(PostResponse.ResponseStatus.Created, $"AddDht22Value/{ret}")); } catch (Exception ex) { LoggerFactory.LogException(ex); return(new PostResponse(PostResponse.ResponseStatus.Conflict, $"SensorTemperatureValues/{data}")); } }
public async Task <SensorTemperatureValues> ReadTemperature(Sensors sensor) { SensorTemperatureValues value = new SensorTemperatureValues(); switch (sensor.DataBusEx.Type) { case 4: //arduino value = await ReadTemperatureFromArduino(sensor); break; default: break; } return(value); }
private async Task ReadTemperature() { try { List <Sensors> tempSensors = await WolaClient.GetFilteredListFromControllerAction <Sensors>("GetSensors", "ByDataBus", 1, null); foreach (Sensors item in tempSensors) { SensorTemperatureValues val = await ReadTemperatureFromSensor(item); if (val.Date != DateTime.MinValue) { await PostTemp(val); } } } catch (Exception ex) { throw; } }
public async Task <SensorTemperatureValues> ReadTemperatureFromArduino(Sensors sensor) { try { // LoggerFactory.LogInfo("Wysyłanie zapytanie o temperatur"); SensorTemperatureValues val = new SensorTemperatureValues(); I2CMessageFrame message = new I2CMessageFrame() { Operation = I2COperation.Temp, TempSensor = (SensorTypeEnum)sensor.SensorType, Pin = sensor.Pin != null?short.Parse(sensor.Pin) : (short)0, SensorAddress = string.IsNullOrEmpty(sensor.Address) ? new byte[8] : I2CHelper.StringToByteArray(sensor.Address) }; LoggerFactory.LogInfo("Wysyłanie zapytanie o temperature", "Sensor:", new { sensor }); ArduinoI2CResponse response = await GetTemperatureFromArduino(Convert.ToInt32(sensor.DataBusEx.Address, 16), message); if (response.Status == (short)I2CResponseStatus.Ok) { val.Value = (double)response.Temperature; val.Date = DateTime.Now; val.SensorId = sensor.Id; } else { LoggerFactory.LogError("Błąd, status: " + response.Status.ToString()); Debug.WriteLine("Błąd, status: " + response.Status.ToString()); } return(val); } catch (Exception ex) { LoggerFactory.LogExceptionStack(ex); throw; } }