Esempio n. 1
0
        public DailyConsumptionDetail GetTodaysDailyConsumptionDetails(SqlConnection sqlConnection, SqlTransaction sqlTransaction, string powerScout, PiServer piServer)
        {
            var query = "select top(1) Breaker_details, Timestamp, Building, Temperature, PowerScout, Visibility from DailyConsumptionDetails where PowerScout = @param1 and CAST(Timestamp AS DATE) = @param2 and  PiServerName = @PiServerName";

            DailyConsumptionDetail detailConsumptionDetail = null;

            using (SqlCommand sqlCommand = new SqlCommand(query, sqlConnection, sqlTransaction))
            {
                sqlCommand.Parameters.AddWithValue("@param1", powerScout);
                sqlCommand.Parameters.AddWithValue("@param2", piServer.PiServerCurrentDateTime.AddDays(-1).Date.ToString("yyyy-MM-dd"));

                sqlCommand.Parameters.AddWithValue("@PiServerName", piServer.PiServerName);

                using (SqlDataReader result = sqlCommand.ExecuteReader())
                {
                    while (result.Read())
                    {
                        detailConsumptionDetail = new DailyConsumptionDetail();

                        detailConsumptionDetail.Breaker_details = SqlTypeConverter.ToString(result["Breaker_details"]);
                        detailConsumptionDetail.Timestamp       = SqlTypeConverter.ToDateTime(result["Timestamp"]);
                        detailConsumptionDetail.Temperature     = SqlTypeConverter.ToDouble(result["Temperature"]);
                        detailConsumptionDetail.Building        = SqlTypeConverter.ToString(result["Building"]);
                        detailConsumptionDetail.PowerScout      = SqlTypeConverter.ToString(result["PowerScout"]);
                        detailConsumptionDetail.Visibility      = SqlTypeConverter.ToDouble(result["Visibility"]);
                    }

                    result.Close();
                }
            }

            return(detailConsumptionDetail);
        }
Esempio n. 2
0
        public List <DailyConsumptionDetail> GetDailyConsumptionDetails(SqlConnection sqlConnection, SqlTransaction sqlTransaction, string powerScout, string piServerName, DateTime?timestamp = null)
        {
            var query = "select Breaker_details, Timestamp, Building, Temperature, PowerScout, Visibility from DailyConsumptionDetails where PowerScout = @param1 and  PiServerName = @PiServerName";

            if (timestamp.HasValue)
            {
                query += " And Timestamp > @param2";
            }

            var detailConsumptionDetails = new List <DailyConsumptionDetail>();
            DailyConsumptionDetail detailConsumptionDetail = null;

            using (SqlCommand sqlCommand = new SqlCommand(query, sqlConnection, sqlTransaction))
            {
                sqlCommand.Parameters.AddWithValue("@param1", powerScout);
                sqlCommand.Parameters.AddWithValue("@PiServerName", piServerName);

                if (timestamp.HasValue)
                {
                    sqlCommand.Parameters.AddWithValue("@param2", timestamp);
                }

                using (SqlDataReader result = sqlCommand.ExecuteReader())
                {
                    while (result.Read())
                    {
                        detailConsumptionDetail = new DailyConsumptionDetail();

                        detailConsumptionDetail.Breaker_details = SqlTypeConverter.ToString(result["Breaker_details"]);
                        detailConsumptionDetail.Timestamp       = SqlTypeConverter.ToDateTime(result["Timestamp"]);
                        detailConsumptionDetail.Temperature     = SqlTypeConverter.ToDouble(result["Temperature"]);
                        detailConsumptionDetail.Building        = SqlTypeConverter.ToString(result["Building"]);
                        detailConsumptionDetail.PowerScout      = SqlTypeConverter.ToString(result["PowerScout"]);
                        detailConsumptionDetail.Visibility      = SqlTypeConverter.ToDouble(result["Visibility"]);

                        detailConsumptionDetails.Add(detailConsumptionDetail);
                    }

                    result.Close();
                }
            }

            return(detailConsumptionDetails);
        }
Esempio n. 3
0
        public async Task <AnomalyServiceResponse> GetAnomalyPrediction(DailyConsumptionDetail dailyConsumptionDetail, SqlConnection sqlConnection, SqlTransaction sqlTransaction, string piServerName, bool isDailyPrediction = true)
        {
            string predictionDate = dailyConsumptionDetail.Timestamp.ToString("yyyy-MM-ddTHH:mm:ssZ");

            if (isDailyPrediction)
            {
                predictionDate = dailyConsumptionDetail.Timestamp.AddDays(1).ToString("yyyy-MM-ddTHH:mm:ssZ");
            }

            AnomalyServiceRequest requestmodel = new AnomalyServiceRequest()
            {
                Inputs = new Inputs()
                {
                    input1 = new Input1()
                    {
                        ColumnNames = new List <string> {
                            "Id", "AMPS_SYSTEM_AVG", "Building", "Breaker_details", "Daily_electric_cost",
                            "Daily_KWH_System", "Monthly_electric_cost", "Monthly_KWH_System", "PowerScout",
                            "Temperature", "Timestamp", "Visibility", "kW_System", "PiServerName"
                        },

                        Values = new List <List <string> >
                        {
                            new List <string>
                            {
                                "0", "0", dailyConsumptionDetail.Building, dailyConsumptionDetail.Breaker_details, "0", "0",
                                "0", "0",
                                dailyConsumptionDetail.PowerScout, dailyConsumptionDetail.Temperature.ToString(), predictionDate,
                                dailyConsumptionDetail.Visibility.ToString(), "0", piServerName
                            }
                        }
                    }
                }
            };

            var azureMLConfigurationService = new AzureMLConfigurationService();
            var predictionConfig            = azureMLConfigurationService.GetPredictionConfigData(sqlConnection, sqlTransaction);

            return(await AzureMLClient.CallAzureMLAsync(requestmodel, predictionConfig.AzureMlDailyPredictionApiURL, predictionConfig.AzureMlDailyPredictionApiKey));
        }