StackHub Bulletin BoardAdvertise your announcements here!


Visual heatmap analysis of HVAC and energy data

Registered StackHub users may elect to receive email notifications whenever a new package version is released or a comment is posted on the forum.

There are 3 watchers.


This SkySpark extension is a useful tool for quick analysis of energy or HVAC data. The basic principle is similar to pivot tables and pivot plots. User defines columns, rows and fold function. Each cell's value then represents aggregation of all values that belong to the particular cell (e.g. average of all values that were measured on Mondays between 2 and 3 am). There is a function for Carpet plot data calculations and two views: predefined plots and plot studio where you can configure custom plot view in detail.


extCarpetShopGetData(span, myPoint, foldFun, xAxis, yAxis)

This function can be used in custom views. It performs all Carpet plot calculations and returns grid, that can be used directly as data source for Chart.


  • span
    • time span of source data, aggregations will be computed using all data from selected time span
  • myPoint
    • id of any point with kind == Number (see Suitable point types bellow)
  • foldFun
    • name of fold function that will be used for each cell value calculation
    • any fold function can be used, the most useful are the following functions:
      • avg - most useful fold function
      • max - useful for e.g. power peak minimization
      • min - can show e.g baseline energy consumption
      • sum - beware of number of records when using this fold function
      • count - useful for check of input data consistency
  • xAxis
    • select what shall be used as columns (x-axis)
    • the following options are available
      • hourofday - hour of day (i.e. 0 ... 23)
      • dayofweek - day of week (i.e. Mon, ... ,Sun)
      • day - day of year (e.g. 2019-05-02)
      • week - week number and year (e.g. 2019-15)
      • month - month and year (e.g. 2019-05)
      • year - year (e.g. 2019)
  • yAxis
    • select what shall be used as rows (y-axis)
    • options are the same as xaxis options


  • extCarpetShopGetData(2019, read(point and kind == "Number")->id, "avg", "HourOfDay", "DayOfWeek")
  • extCarpetShopGetData({{span}}, {{myPoint}}, {{foldFun}}, "HourOfDay", "Month")


Predefined Carpet plots

Three most useful combinations of carpet plots are predefined in this view. User just has to define span, point and fold function. This is a good starting point for new users.

Do not be surprised by different span of color axis. This is a natural consequence of aggregation over different time periods and different number of cells in each plot.

Carpet Shop Studio

Here you can configure your own carpet plot. For parameters description see extCarpetShopGetData above.

Best Practice And Tips

Suitable Point Types

  • any Number point where one can expect some form of time-based data pattern (e.g. regular mode of operation)
  • some tips
    • energy meter
      • especially electricity meter of office building
    • indoor air quality
      • how does CO2 concentration correlate with a weekly schedule?
    • HVAC appliance operation
      • eg. AHU damper position, chiller operation

Suggested Columns And Rows Combinations

  • Hour (column) x DayOfWeek (Rows)
    • compare the result with weekly schedule
  • Hour x Month
    • see change of daily profile during a year
  • DayOfWeek x Month
    • check weekend setback during a year
  • DayOfWeek x Week
    • check weekend setbacks in detail, each cell is one day
  • Day x Hour
    • typical carpet plot

Real World Examples

Electrical heating

Plots capture average electrical energy consumption during a week. In this case, electricity is used for heating, as can be seen from the first plot (horizontal axis: hour in day, vertical axis: month). There is a clear start and end of heating season.

Electrical heating

Detailed look at weekly schedule shows that heating starts at 4 am during working days, except of Monday, when it starts at midnight (horizontal axis: hour in day, vertical axis: day of week). There is a clear end of working hours, as expected in case of this office building.

Electrical heating

Cooling outside working hours

Increase of electrical energy use during summer is usually expected in case of office buildings. Carpet plots are perfect tool for quick evaluation of cooling regimes. This plot is an example of a wrong cooling regime setting. There is an increase of energy consumption during summer, as expected. However, one can observer increase also after opening hours (after 4 pm).

Cooling outside working hours

CO2 concentration

Evaluation of CO2 by means of carpet plot can also provide useful overview. Data from IoT indoor air quality sensor are evaluated in the next example. There is an increase of CO2 concentration during opening hours. Overal CO2 concentrations are ok but slow decrease of CO2 concentrations during evening and night reveals absence of ventilation.

CO2 concentration

AHU pressure difference

HVAC appliance operation can be investigated by means of carpet plots as well. Bellow is a carpet plot (horizontal axis: day, vertical axis: hour of day) of AHU pressure difference. It shows regular regime with some irregularities at the end of displayed interval. Note that these irregularities cannot be easily found using an usual line chart.

AHU pressure difference

Published by Energocentrum Plus
Pricing options
Carpet shop$120.00
Log in to purchase Download
Package details
Build date3 weeks ago
on Tue 30th Apr
Depends on
File nameecpCarpetShopExt.pod
File size63.67 kB
SHA1 6f639377b335013106314c1916420f690f7d2a42
Published by
Energocentrum PlusDownload now
Also available via SkyArc Install Manager
Fantom Pod
Sky Arc Ext