Guide · handover
BMS data on the plan: trend logs, Haystack and Brick
A building management system knows how warm each room was at 3 pm last Tuesday; a floor plan shows where that room is. Data layers → Data → BMS data joins the two: every point is matched to its room, and the rooms are coloured by the measure you pick, with a slider through the day and the rooms standing up in 3D by value.
From a trend log
- Export a trend log as CSV from the BMS. Either a row per reading (
timestamp, point, value, unit) or a timestamp column and a column per point, with the unit in brackets after the point’s name. A Niagara history export of one point works too: give the point’s name. - Choose it. Plotlay reads each point name for its level, room, equipment and measure. Common conventions read on their own:
L3-VAV-12-ZnTemp(level 3, VAV box 12, zone temperature),Bldg1.Flr2.Rm201.CO2,GF-Rm02-ZoneTemp,G.Office.Occ,EM-1 kWh. - Check the match report. A point is matched by its room number or name on its level, else by the register asset it names (VAV-12 standing in a room), else by an id a Haystack or Brick import attached. The rest are listed to place, with why: no level 4 in the project, no asset VAV-99 in the register.
- Patterns for your site’s names. One a line:
{level}-{equip}-{measure},{building}.{level}.{room}.{measure},{any}/{level}/R-{room}/{measure}, or a regular expression with named groups. - Show on the plan. The readings go on the BMS rooms data layer (the rooms, keyed by their numbers) as one table with a measure column, so one measure shows at a time.
Building meters on a campus
A site with many buildings often has a meter per building and no rooms drawn. Make a data layer of the buildings (picked from footprints or drawn), open it, then Data, BMS data: Show on is that layer. A point lands on a building when its name holds the key (B01-EM-01.kWh), a building number the keys carry (Bldg02.Water.kL on B02), the building’s name (Library.Elec.kWh), or a meter in the register standing inside the building (MSB-01.kWh). Electricity in kWh and water in kL: the heat map shows use per m² through the day with the time slider.
From Project Haystack
- A file: Zinc, Hayson JSON, Haystack 3 JSON or CSV. Spaces are matched to rooms by the ids a Plotlay handover export gave them (export first and the ids line up), else by name or number. Points attach by
spaceRef, else their equipment’s space, else their name. - A server: its API address and a bearer token from whoever runs it. Plotlay uses the standard
readandhisReadops. The token is kept only in your browser, for that project: it is never saved in the project, never synced and never logged. Refresh reads the history again. - If the browser is refused: a Haystack server has to allow
app.plotlay.io(CORS) for a browser to read it. Plotlay says so when it happens. Ask whoever runs the server, or export the points and history as Zinc and add the file.
From a Brick model
A Brick (or RealEstateCore) Turtle file adds the levels it has and the project lacks, matches rooms by GUID, number or name (a room needs an outline, so one the project doesn’t have is listed to place), matches equipment to the register or adds it in its room, and attaches points with their timeseries ids. A trend log whose point column holds those ids then lands in the right rooms.
Heat maps
| Measure | Colours | Rooms combine by |
|---|---|---|
| Temperature | Blue to red in bands at 18, 20, 22, 24 and 26 °C | Average |
| CO2 | Yellow to red at 600, 800, 1000 and 1500 ppm | Average |
| Humidity | Bands at 30, 40, 60 and 70% | Average |
| Occupancy | Blues, in five even groups | Highest |
| Energy | Viridis, per m² of the room | Total |
The bands are a reading aid, not a compliance test. Tick Show in 3D to stand each room up by its value. Change palettes and classes on the Colour tab as for any data layer.
Agents can do the same through the connector: import_bms_trends, import_haystack, import_brick and bms_heat_map.