public static void FormatOutput(PowerFlowRealtimeDataModel model) { if (model == null) { Console.WriteLine("Recieved error response from power meter. Please try again."); return; } Console.WriteLine($"Realtime power generation/consumption data. Collected at {model.Head.TimeStamp.ToString("r")}"); var table = new ConsoleTable("Reading", "Value"); table.AddRow("Current Generation", model.Body.Data.Site.CurrentPVProduction); table.AddRow("Current Consumption", model.Body.Data.Site.CurrentPowerConsumption); table.AddRow("Net Grid Power", model.Body.Data.Site.GridPowerUsage); table.Write(); }
public static void PublishData(PowerFlowRealtimeDataModel model) { // You can generate a Token from the "Tokens Tab" in the UI const string token = "1Xli7Idwo8AAtoyEGHWQv_4MduTk3CmFqv7Cfdw8_Be8h-m6_ehLLjG8EhsRVmAHZKtsWtbUFpsHQ7lUXsGCug=="; const string bucket = "bc57b7930b7fff33"; const string org = "024ad8697c8a4f99"; var client = InfluxDBClientFactory.Create("https://us-west-2-1.aws.cloud2.influxdata.com", token.ToCharArray()); var prod = new Production { Value = (int)(model.Body.Data.Site.CurrentPVProduction ?? 0), Time = model.Head.TimeStamp.ToUniversalTime() }; var cons = new Consumption { Value = (int)(model.Body.Data.Site.CurrentPowerConsumption), Time = model.Head.TimeStamp.ToUniversalTime() }; using (var writeApi = client.GetWriteApi()) { writeApi.WriteMeasurement(bucket, org, WritePrecision.Ns, prod); writeApi.WriteMeasurement(bucket, org, WritePrecision.Ns, cons); } }