Niagara Donut Gauge

  • Drag n' Drop
  • Binds to numeric point, numeric writable, or history
  • Renders in all major browsers
  • Clean pristine animation
  • Customise to fit your needs
Add to Cart
n4 charting


Drag and drop the Donut gauge widget from the palette onto your px view. It automatically updates when the point or history value changes. Its completely configurable and easy to use.


1. Copy the donutGauge-ux.jar file to your modules directory.
2. Open the module from your palette file.
3. Drag and drop the widget from the palette onto your px view.

Tridium charting library


bms totals chart properties

The gauge has a number of configurable properties that can be used to modify look, feel, and functionality. Change the properties as required.

Main Chart Binding
Set this to an absolute ord, e.g.
station:|slot:/Drivers/NiagaraNetwork/AHU5 or relativized ORD e.g.
The ord should point to a numeric point/writable that has a numeric interval extension.

Background Property:

The background (the area within the circular part of the widget) can be changed to a solid color, gradient, image, or null(transparent). The image must reference a file ord reference e.g. file:^myImage.jpg, and fit within the bounds of the widget.

Canvas Background Property:

The canvas background (the area behind the widget) does not go transparent in Workbench mode, but can be changed to a color of your choice.

History Binding:

You can bind the gauge to a history reference. Change the properties as required:

1. Set the value binding as normal.

The value binding must be set in order to gather history records for the point.

2. Set the history BQL property.


|bql:history:HistoryRollup.rollup(history:RollupInterval 'monthly')|bql:select max

|bql:history:HistoryRollup.rollup(history:RollupInterval 'monthly')|bql:select min

|bql:history:HistoryRollup.rollup(history:RollupInterval 'monthly')|bql:select avg

|bql:history:HistoryRollup.rollup(history:RollupInterval 'monthly')|bql:select sum

Using in your HTML Page

You can now use the widget in your custom html page as long as the html file is in a appropriate station directory. E.g.:

1. Create an html page and place in your station files directory.
2. Create a div element and give it an id so you can inject the widget into this area. E.g.: widget1.
3. Add the following scripts before the closing head tag or the closing body tag. E.g.:


        <script type="text/javascript">

            var require = {
                paths: {
                    "nmodule": "/module",
                    "baja": "/module/bajaScript/rc/plugin/baja",
                    "bajaScript": "/module/bajaScript/rc",
                    "bajaux": "/module/bajaux/rc",
                    "lex": "/module/js/rc/lex/lexplugin",
                    "css": "/module/js/com/tridium/js/ext/require/css",

                    "jquery": "/module/js/rc/jquery/jquery-2.1.1",
                    "Promise": "/module/js/rc/bluebird/bluebird",

                    // these are runtime dependencies
                    "hbs": "/module/js/rc/require-handlebars-plugin/hbs",
                    "i18nprecompile": "/module/js/rc/require-handlebars-plugin/hbs/i18nprecompile",
                    "json2": "/module/js/rc/require-handlebars-plugin/hbs/json2",
                    "underscore": "/module/js/rc/underscore/underscore",

                hbs: {
                    disableI18n: true
        <script type="text/javascript" src="/module/js/com/tridium/js/ext/require/require.min.js"></script>
            require(['/module/donutGauge/rc/'], function (app) {

                    backgroundColor: 'transparent',
                    canvasBackgroundColor: 'transparent',
                    facetText: '',
                    filledCircleColor: 'orange',
                    divId: '#widget',
                    fontWeight: 'normal',
                    fontFamily: 'Arial',
                    historyBql: '',
                    min: 0,
                    max: 100,
                    ord: 'station:|slot:/Drivers/NiagaraNetwork/AHU2', // use absolute ord
                    ringWidth: 50,
                    titleFontColor: '#808080',
                    titleFontSize: '20px',
                    titleFormat: '%displayName%',
                    titleYOffset: 35,
                    unFilledCircleColor: '#f1f1f1',
                    valueFontSize: '34px',
                    valueFontColor: '#484848',
                    valueFormat: '%out.value%',
                    valueTextYOffset: 5
        <!--html to go here-->
        <div id="widget1" style="width:300px;height:300px;"></div>
        <!--Rest of your html below...-->

You May Also Like

Spectrum Gauge

N4 View Builder™©

tridium bms system

Jumbo Gauge

back to more widgets...