Example #1
0
        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();
        }
Example #2
0
        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);
            }
        }