Nānā Ikehu
Nānā: To see, observe, or inspect Ikehu: Power, intensity, or energy
Welcome to Nānā Ikehu (Seeing Power) Meteor/React application to analyze power usage data, designed for the University of Hawaii at Manoa as part of the Hawaii Annual Code Challenge 2018
This app visualizes energy usage throughout the University of Hawaii campus through the use of graphs and maps. Users are able to see the amount of energy used for each building by either clicking a building on the campus map, or by selecting a building through the drop down menu.
When you come to the site, you are greeted by the following landing page:
The first tab will be summary:
The summary has a dropdown with the range to select:
The second tab will be buildings:
The building has two dropdowns, the first dropdown is the selection of buildings:
The second dropdown is the selection of meter ID:
when we selected building and meter ID a graph will be render:
The third tab will be map:
When selecting a building on the map,a pop up will appear with a link to building tab:
When the link is clicked, it will switch to the building tab with the selected building ID. The graph will show the data of the seleted building:
Raw database files from Aurora BPA MS-SQL can be exported to CSV for import into this application. Three files must be placed in app/private/files
before deploying.
SampleTsUtc
is a timestamp, we do our best to parse any given format
TagLogId
matches a meter tag
Mean
is the main measurement used for display
Min
is used to calculate least demand
Max
is used to calculate peak demand
This file can be automatically generated using Aurora BPA MS-SQL with this sample query:
SELECT SampleTsUtc,LogHour.TagLogId
,Mean
,Min
,Max
FROM [LogHour]
JOIN LogHourExtension on LogHour.TagLogId = LogHourExtension.TagLogId AND
LogHour.DayId = LogHourExtension.DayId AND
LogHour.TimeId = LogHourExtension.TimeId
JOIN tags.dbo.[TagIds] on LogHour.TagLogId = [TagIds].TagLogId
where (TagName = 'kw') and Quality = 1;
This query will select needed header fields, reconcile DayId and TimeId values from the Extension table, then filter out high quality power data
Column 1 supplies a unique tag or identifier for a building Column 2 is a friendly name for a building Columns 3,4,5 supply gross square footage, floor count, and room count for the building
BuildingName
is a column that matches a building Name
EntityName
is a column that supplies a name for a meter
TagLogId
is a column that matches the a meter’s tag in the raw data
TagName
contains that meter’s unit of measurement
If you are not familiar with Meteor it is recommended that you Galaxy or mup to deploy this application.
The technologies used include:
During the HACC, we ran into many challenges. It was difficult finding a way to handle such a large amount of data for our app without slowing it down. We also ran into problems with scheduling and role assignments. Due to time constraints and our members busy schedules, we were not able to work on our app as much as we wanted to.
This Hackathon demanded of us (in a good way) to build a project portfolio and most importantly, it gives an opportunity for us to learn new experiences with our team. We’ve also learned how to manage our time since the duration of the hackathon is in a very short term, this way actually encouraging us to work with the most productive and efficient method because of limited time.
As a team, we are proud of the fact that our application works the way we want to. We see value in providing tighter integration with other data sources and plan to add REST APIs. These APIs will allow other teams to get data from our application transparently as well as allow users to import data in real time using HTTP. We also would like to develop more historical tracking and metrics to further insights.
In this project, I was a lead SQL person. I developed the MS SQL drivers we needed to import data on into our Meteor instance. I also handled the PapaParse data imports and assisted in getting the Victory graphs working