diff --git a/myems-api/reports/dashboard.py b/myems-api/reports/dashboard.py index c9848f39..30b2941b 100644 --- a/myems-api/reports/dashboard.py +++ b/myems-api/reports/dashboard.py @@ -21,18 +21,14 @@ class Reporting: # Step 1: valid parameters # Step 2: query the space # Step 3: query energy categories - # Step 4: query associated sensors - # Step 5: query associated points - # Step 6: query child spaces - # Step 7: query base period energy input - # Step 8: query base period energy cost - # Step 9: query reporting period energy input - # Step 10: query reporting period energy cost - # Step 11: query tariff data - # Step 12: query associated sensors and points data - # Step 13: query child spaces energy input - # Step 14: query child spaces energy cost - # Step 15: construct the report + # Step 4: query child spaces + # Step 5: query base period energy input + # Step 6: query base period energy cost + # Step 7: query reporting period energy input + # Step 8: query reporting period energy cost + # Step 9: query child spaces energy input + # Step 10: query child spaces energy cost + # Step 11: construct the report #################################################################################################################### @staticmethod def on_get(req, resp): @@ -264,34 +260,7 @@ class Reporting: "kgco2e": row_energy_category[4]} ################################################################################################################ - # Step 4: query associated sensors - ################################################################################################################ - point_list = list() - cursor_system.execute(" SELECT po.id, po.name, po.units, po.object_type " - " FROM tbl_spaces sp, tbl_sensors se, tbl_spaces_sensors spse, " - " tbl_points po, tbl_sensors_points sepo " - " WHERE sp.id = %s AND sp.id = spse.space_id AND spse.sensor_id = se.id " - " AND se.id = sepo.sensor_id AND sepo.point_id = po.id " - " ORDER BY po.id ", (space['id'], )) - rows_points = cursor_system.fetchall() - if rows_points is not None and len(rows_points) > 0: - for row in rows_points: - point_list.append({"id": row[0], "name": row[1], "units": row[2], "object_type": row[3]}) - - ################################################################################################################ - # Step 5: query associated points - ################################################################################################################ - cursor_system.execute(" SELECT po.id, po.name, po.units, po.object_type " - " FROM tbl_spaces sp, tbl_spaces_points sppo, tbl_points po " - " WHERE sp.id = %s AND sp.id = sppo.space_id AND sppo.point_id = po.id " - " ORDER BY po.id ", (space['id'], )) - rows_points = cursor_system.fetchall() - if rows_points is not None and len(rows_points) > 0: - for row in rows_points: - point_list.append({"id": row[0], "name": row[1], "units": row[2], "object_type": row[3]}) - - ################################################################################################################ - # Step 6: query child spaces + # Step 4: query child spaces ################################################################################################################ child_space_list = list() cursor_system.execute(" SELECT id, name " @@ -304,7 +273,7 @@ class Reporting: child_space_list.append({"id": row[0], "name": row[1]}) ################################################################################################################ - # Step 7: query base period energy input + # Step 5: query base period energy input ################################################################################################################ base_input = dict() if energy_category_set is not None and len(energy_category_set) > 0: @@ -356,7 +325,7 @@ class Reporting: base_input[energy_category_id]['subtotal_in_kgco2e'] += actual_value * kgco2e ################################################################################################################ - # Step 8: query base period energy cost + # Step 6: query base period energy cost ################################################################################################################ base_cost = dict() if energy_category_set is not None and len(energy_category_set) > 0: @@ -401,7 +370,7 @@ class Reporting: base_cost[energy_category_id]['subtotal'] += actual_value ################################################################################################################ - # Step 9: query reporting period energy input + # Step 7: query reporting period energy input ################################################################################################################ reporting_input = dict() if energy_category_set is not None and len(energy_category_set) > 0: @@ -472,7 +441,7 @@ class Reporting: reporting_input[energy_category_id]['offpeak'] += row[1] ################################################################################################################ - # Step 10: query reporting period energy cost + # Step 8: query reporting period energy cost ################################################################################################################ reporting_cost = dict() if energy_category_set is not None and len(energy_category_set) > 0: @@ -535,102 +504,9 @@ class Reporting: reporting_cost[energy_category_id]['midpeak'] += row[1] elif peak_type == 'offpeak': reporting_cost[energy_category_id]['offpeak'] += row[1] - ################################################################################################################ - # Step 11: query tariff data - ################################################################################################################ - parameters_data = dict() - parameters_data['names'] = list() - parameters_data['timestamps'] = list() - parameters_data['values'] = list() - if energy_category_set is not None and len(energy_category_set) > 0: - for energy_category_id in energy_category_set: - energy_category_tariff_dict = utilities.get_energy_category_tariffs(space['cost_center_id'], - energy_category_id, - reporting_start_datetime_utc, - reporting_end_datetime_utc) - tariff_timestamp_list = list() - tariff_value_list = list() - for k, v in energy_category_tariff_dict.items(): - # convert k from utc to local - k = k + timedelta(minutes=timezone_offset) - tariff_timestamp_list.append(k.isoformat()[0:19][0:19]) - tariff_value_list.append(v) - - parameters_data['names'].append('TARIFF-' + energy_category_dict[energy_category_id]['name']) - parameters_data['timestamps'].append(tariff_timestamp_list) - parameters_data['values'].append(tariff_value_list) ################################################################################################################ - # Step 12: query associated sensors and points data - ################################################################################################################ - - cnx_historical = mysql.connector.connect(**config.myems_historical_db) - cursor_historical = cnx_historical.cursor() - - for point in point_list: - point_values = [] - point_timestamps = [] - if point['object_type'] == 'ANALOG_VALUE': - query = (" SELECT utc_date_time, actual_value " - " FROM tbl_analog_value " - " WHERE point_id = %s " - " AND utc_date_time BETWEEN %s AND %s " - " ORDER BY utc_date_time ") - cursor_historical.execute(query, (point['id'], - reporting_start_datetime_utc, - reporting_end_datetime_utc)) - rows = cursor_historical.fetchall() - - if rows is not None and len(rows) > 0: - for row in rows: - current_datetime_local = row[0].replace(tzinfo=timezone.utc) + \ - timedelta(minutes=timezone_offset) - current_datetime = current_datetime_local.strftime('%Y-%m-%dT%H:%M:%S') - point_timestamps.append(current_datetime) - point_values.append(row[1]) - - elif point['object_type'] == 'ENERGY_VALUE': - query = (" SELECT utc_date_time, actual_value " - " FROM tbl_energy_value " - " WHERE point_id = %s " - " AND utc_date_time BETWEEN %s AND %s " - " ORDER BY utc_date_time ") - cursor_historical.execute(query, (point['id'], - reporting_start_datetime_utc, - reporting_end_datetime_utc)) - rows = cursor_historical.fetchall() - - if rows is not None and len(rows) > 0: - for row in rows: - current_datetime_local = row[0].replace(tzinfo=timezone.utc) + \ - timedelta(minutes=timezone_offset) - current_datetime = current_datetime_local.strftime('%Y-%m-%dT%H:%M:%S') - point_timestamps.append(current_datetime) - point_values.append(row[1]) - elif point['object_type'] == 'DIGITAL_VALUE': - query = (" SELECT utc_date_time, actual_value " - " FROM tbl_digital_value " - " WHERE point_id = %s " - " AND utc_date_time BETWEEN %s AND %s ") - cursor_historical.execute(query, (point['id'], - reporting_start_datetime_utc, - reporting_end_datetime_utc)) - rows = cursor_historical.fetchall() - - if rows is not None and len(rows) > 0: - for row in rows: - current_datetime_local = row[0].replace(tzinfo=timezone.utc) + \ - timedelta(minutes=timezone_offset) - current_datetime = current_datetime_local.strftime('%Y-%m-%dT%H:%M:%S') - point_timestamps.append(current_datetime) - point_values.append(row[1]) - - parameters_data['names'].append(point['name'] + ' (' + point['units'] + ')') - parameters_data['timestamps'].append(point_timestamps) - parameters_data['values'].append(point_values) - - ################################################################################################################ - # Step 13: query child spaces energy input + # Step 9: query child spaces energy input ################################################################################################################ child_space_input = dict() @@ -665,7 +541,7 @@ class Reporting: child_space_input[energy_category_id]['subtotals_in_kgco2e'].append(subtotal * kgco2e) ################################################################################################################ - # Step 14: query child spaces energy cost + # Step 10: query child spaces energy cost ################################################################################################################ child_space_cost = dict() @@ -694,7 +570,7 @@ class Reporting: child_space_cost[energy_category_id]['subtotals'].append(subtotal) ################################################################################################################ - # Step 15: construct the report + # Step 11: construct the report ################################################################################################################ if cursor_system: cursor_system.close() @@ -711,11 +587,6 @@ class Reporting: if cnx_billing: cnx_billing.disconnect() - if cursor_historical: - cursor_historical.close() - if cnx_historical: - cnx_historical.disconnect() - result = dict() result['space'] = dict() @@ -901,12 +772,6 @@ class Reporting: result['reporting_period_cost']['total'] \ if result['reporting_period_cost']['total'] > Decimal(0.0) else None - result['parameters'] = { - "names": parameters_data['names'], - "timestamps": parameters_data['timestamps'], - "values": parameters_data['values'] - } - result['child_space_input'] = dict() result['child_space_input']['energy_category_names'] = list() # 1D array [energy category] result['child_space_input']['units'] = list() # 1D array [energy category] diff --git a/web/src/components/MyEMS/dashboard/Dashboard.js b/web/src/components/MyEMS/dashboard/Dashboard.js index b61a46ae..38c80aa3 100644 --- a/web/src/components/MyEMS/dashboard/Dashboard.js +++ b/web/src/components/MyEMS/dashboard/Dashboard.js @@ -41,10 +41,6 @@ const Dashboard = ({ setRedirect, setRedirectUrl, t }) => { const [spaceCostLineChartData, setSpaceCostLineChartData] = useState({}); const [spaceCostLineChartOptions, setSpaceCostLineChartOptions] = useState([]); - const [parameterLineChartLabels, setParameterLineChartLabels] = useState([]); - const [parameterLineChartData, setParameterLineChartData] = useState({}); - const [parameterLineChartOptions, setParameterLineChartOptions] = useState([]); - const [detailedDataTableData, setDetailedDataTableData] = useState([]); const [detailedDataTableColumns, setDetailedDataTableColumns] = useState([{dataField: 'startdatetime', text: t('Datetime'), sort: true}]); @@ -244,28 +240,6 @@ const Dashboard = ({ setRedirect, setRedirectUrl, t }) => { }); setSpaceCostLineChartOptions(names); - timestamps = {} - json['parameters']['timestamps'].forEach((currentValue, index) => { - timestamps['a' + index] = currentValue; - }); - setParameterLineChartLabels(timestamps); - - values = {} - json['parameters']['values'].forEach((currentValue, index) => { - values['a' + index] = currentValue; - }); - setParameterLineChartData(values); - - names = Array(); - json['parameters']['names'].forEach((currentValue, index) => { - if (currentValue.startsWith('TARIFF-')) { - currentValue = t('Tariff') + currentValue.replace('TARIFF-', '-'); - } - - names.push({ 'value': 'a' + index, 'label': currentValue }); - }); - setParameterLineChartOptions(names); - let detailed_value_list = []; if (json['reporting_period_input']['timestamps'].length > 0 ) { json['reporting_period_input']['timestamps'][0].forEach((currentTimestamp, timestampIndex) => { @@ -423,13 +397,6 @@ const Dashboard = ({ setRedirect, setRedirectUrl, t }) => { options={spaceCostLineChartOptions}> - - -