public async void AddStatus(GoodweData goodweData) { PvOutputData pvOutputData = new PvOutputData() { EnergyGeneration = (int)(goodweData.ETotal * 1000), PowerGeneration = goodweData.OutputPower, Date = goodweData.TimeStamp.ToString("yyyyMMdd"), Time = goodweData.TimeStamp.ToString("HH:mm"), }; var parameters = new Dictionary <string, string> { { "d", pvOutputData.Date }, { "t", pvOutputData.Time }, { "v1", pvOutputData.EnergyGeneration.ToString() }, { "v2", pvOutputData.PowerGeneration.ToString() } }; var encodedContent = new FormUrlEncodedContent(parameters); //if (!HttpClient.DefaultRequestHeaders.Contains("X-Pvoutput-Apikey")) //{ // HttpClient.DefaultRequestHeaders.Add("X-Pvoutput-Apikey", "7399e14968f03ce6329da1c324737632d6320185"); // HttpClient.DefaultRequestHeaders.Add("X-Pvoutput-SystemId", "79017"); //} var response = await HttpClient.PostAsync("addstatus.jsp", encodedContent); if (response.StatusCode == HttpStatusCode.OK) { var resultString = await response.Content.ReadAsStringAsync(); } }
public async Task <GoodweData> GetData() { if (!tokenAvailable) { await TokenRequest(); } HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "PowerStation/GetMonitorDetailByPowerstationId"); var powerstationId = Configuration.GetSection("GoodWe").GetSection("powerStationId").Value; string content = @"{""powerStationId"": """ + powerstationId + "\"}"; request.Content = new StringContent(content, Encoding.UTF8, "application/json"); var result = await httpClient.SendAsync(request); if (result.IsSuccessStatusCode) { var resultString = await result.Content.ReadAsStringAsync(); JObject jObject = JObject.Parse(resultString); GoodweData data = new GoodweData(); data.ETotal = jObject.SelectToken("data.inverter[0].invert_full.eday").ToObject <double>(); data.OutputPower = jObject.SelectToken("data.inverter[0].invert_full.pac").ToObject <int>(); data.OutputVoltage = jObject.SelectToken("data.inverter[0].invert_full.vac1").ToObject <int>(); data.TimeStamp = jObject.SelectToken("data.info.time").ToObject <DateTime>(); //data.Temperature = 0; //data.OutputCurrent = 0; return(data); } return(null); }