#4 Units

Nitin Gadura Thu 21 Apr 2011

I think it would be better to consider all the Engineering Units that are available as part of BACnet Standard as part of Units in Project Haystack. Is there any reason why we should not consider Units from BACnet?

Brian Frank Thu 21 Apr 2011

Hi Nitin,

The units database used by Haystack has a long history. The current Fantom database was originally based on oBIX which is also used by Tridium's Niagara and Sedona platforms, and the original of that was itself a superset of BACnet. So every unit in BACnet is also in Haystack.

BACnet's "database" is actually just an enumeration (or at least it was last time I looked). The database we are using includes multiple symbols and abbreviations for each unit. And in the oBIX/Fantom you can find meta-data used to do automatic unit conversions between most units since we model the dimension as a factor of the base seven SI units. So its a much more complete and richer database of unit information.

That said, if BACnet has since added units which are missing in the Haystack database, please let me know and I'll update everything to include them. I think it is important to ensure Haystack is a superset of BACnet (and other projects we might encounter).

Andrew Pospisal Fri 29 Apr 2011

I would like to see the unit MMBtu added to the Units list in the Energy section as this unit is typically used to represent 1,000,000 Btu's. The unit MBtu can be confusing because it is used to represent 1,000 Btu's where the "M" is from the Roman numeral system vs. the SI unit system.

Brian Frank Fri 29 Apr 2011

I would like to see the unit MMBtu added to the Units list

In our database MBTU is already formally defined as megabtu which is 1,000,000 BTUs. We could add MMBTU as another alias for MBTU, but I think that might confuse things more.

Winston Hetherington Tue 17 May 2011

Brian I would support your last comment


Andrew Pospisal Wed 18 May 2011

I'm sorry gentlemen but I still have to disagree with the use of MBtu as representing 1,000,000 Btu's. Even ASHRAE, in their Fundamentals Handbook, define MBtu as 1,000 Btu. But, due to the potential confusion discussed here, they choose not to use the term in general context and instead use just Btu and MMBtu (1,000,000 Btu).

Based upon this, I feel that MMBtu needs to at least be an option within the Units database here.

Brian Frank Mon 23 May 2011

I think Wikipedia supports that position - that "MMBTU" is used to avoid confusion. So I am okay saying that "MMBTU" should be the standardized symbol, although I think we still need to leave "MBTU" as an alias for "metabtu".

Brian Frank Fri 3 Jun 2011

I has pushed the changeset to the Fantom hg repo for MMBTU as the primary symbol to use for megabtu.

Brian Frank Thu 6 Oct 2011

Per the chiller discussion, I wanted to capture the units used for chiller efficiency.

Here is my proposed additions to the Fantom/SkySpark/Haystack unit database:

-- chiller efficiency (m2*sec-3)
coefficient_of_performance, COP; m2*sec-3; 1
kilowatt_per_ton, kW/ton; m2*sec-3; 3.5
energy_efficiency_ratio, Btu/Wh, EER; m2*sec-3; 0.2916666667

If my Math is correct we have:

kW / ton
(1000 kg x m^2 / sec^-3) / 1000 kg
m ^ 2 / sec^-3   // ratio left of fundamental units

I picked COP as the normalized unit, with conversions to kW/ton and EER mapped to that based on some stuff I found on the web:

kwTon := Unit("kW/ton")
cop   := Unit("COP")
eer   := Unit("EER")

echo("1 kw/ton = " + kwTon.convertTo(1.0f, cop) + " COP")
echo("1 kw/ton = " + kwTon.convertTo(1.0f, eer) + " EER")

1 kw/ton = 3.5 COP
1 kw/ton = 12 EER

Nicholas Harker Thu 6 Oct 2011

I believe the units would actually be dimensionless.

The ton in kW/ton is actually tons of refrigeration, which is 3.516853 kW. This gives us units of kW/kW (dimensionless). This would also match Richard's post in the chiller thread about COP having no units.

Clayton Miller Sun 9 Oct 2011

Nicholas and Richard are right -- technically kW/Ton can be converted into kWelec/kWcooling which is dimensionless

Nick Rock Tue 14 Feb 2012

Could there be some more additions to the unit database? I feel there needs to be some more "energy efficiency" units included. The majority of them are usually dimensionless but some aren't. Here is a couple that I could think of off the top of my head.

Fans - kW/kcfm or W/cfm

Pumps - kW/gpm

Energy by Area - kBtu/sq ft or MBtu/sq ft

Power by Area - kBtu/h/sq ft

Mike Silady Thu 16 Feb 2012


Lots of things are unitless, Examples: Counts of things: Number of Pumps running, Power Factor, ratios like efficiency, enumerations...

These unitless points are all grouped together on the charts: The scales can be vastly different. The resulting charts are hard to read: ((especially without zoom)) Some of these need to be handled with hisInterpolate=COV.

Could we name the different types of unitless? Then the applications can render each type appropriately.


Brian Frank Thu 16 Feb 2012

Thanks for posting those suggestions Nick.

Fans - kW/kcfm or W/cfm Pumps - kW/gpm

These would be power by volumetric flow. The normalized SI unit would be joules_per_cubic_meters_per_second J/m³/s. It would be helpful to have some conversion equations for sanity checking.

So if we have power by volumetric flow, do we also need energy by volumetric flow? Would those be:


The additions to energy and power by area using kBTU and MBTU seem straight forward. Please double check these conversion equations:

1kBTU/ft²   == 0.293 kWh/ft²   == 3.154 kWh/m²
1MBTU/ft²   == 293.015 kWh/ft² == 3153.983 kWh/m²
1kBTU/h/ft² == 0.293 kW/ft²    == 3.154 kW/m²

Nicholas Harker Wed 22 Feb 2012

Ran into another one when working with NOAA weather yesterday:

For Speed: 1 knot = 0.5144 meters / second

Brian Frank Wed 22 Feb 2012

I've added these units:

-- energy by area (kg1*sec-2)
kilobtu_per_square_foot, kBTU/ft²; kg1*sec-2; 1.135433731957E7
megabtu_per_square_foot, MBTU/ft²; kg1*sec-2; 1.135433731957E10

-- power by area (kg1*sec-3)
kilobtus_per_hour_per_square_foot, kBTU/h/ft²; kg1*sec-3; 3153.8257472

-- power by volumetric flow (kg*m-1*sec-2)
watts_per_cubic_meters_per_second, W/m³/s; kg1*m-1*sec-2
watts_per_cubic_feet_per_minute, W/cfm; kg1*m-1*sec-2; 2118.8800032893155
kilowatts_per_kilocubic_feet_per_minute, kW/kcfm; kg1*m-1*sec-2; 2118.8800032893155
kilowatts_per_gallons_per_minute, kW/gal/min; kg1*m-1*sec-2; 15850323

-- velocity (m1*sec-1)
knot; m1*sec-1; 0.5144

Here are some conversions to test ratios:

1kBTU/ft²   == 0.293 kWh/ft²   == 3.154 kWh/m²
1MBTU/ft²   == 293.015 kWh/ft² == 3153.983 kWh/m²
1kBTU/h/ft² == 0.293 kW/ft²    == 3.154 kW/m²

1W/cfm    ==  2,118.88W/m³/s
1W/cfm    ==  1kW/kcfm
1kW/kcfm  ==  0.00013368kW/gal/min

1knot     == 1.151mph

Can someone please take the time to verify that the conversions are correct?

Nick Rock Mon 27 Feb 2012

It all looks good to me. Great job Brian.

Brian Frank Thu 18 Apr 2013

I had a request to add new energy units based on cubic volume of natural gas. Propose adding these units to database based on Wikipedia:

// Fantom database changes
cubic_meters_natural_gas, m³_gas; kg1*m2*sec-2; 37313432.83582089
cubic_feet_natural_gas, ft³_gas; kg1*m2*sec-2; 1086498

// conversions
1GJ.to(1m³_gas)    >>>  26.8 m³_gas
1ft³_gas.to(1BTU)  >>>  1,030 BTU

Jason Whittier Mon 6 May 2013

Propose to add Cubic feet per hour in volumetric flow. I have run across a gas meter that is measuring in CFH.

If I have the conversion right: cubic_feet_per_hour, cfh; m3*sec-1; 0.000007866

Brian Frank Mon 6 May 2013

Seems like pretty good one to add to me - I pushed changeset

David Al Juma Wed 27 Jan

Hi Brian,

Is it possible to add extra conversions for natural gas. In the Netherlands we have a lower and upper value for "Heat of combustion" of natural gas.

The current conversion (cubic_meters_natural_gas, m³_gas; kg1*m2*sec-2; 37313432.83582089) does not work for us.

I would like to propose to add the following two:

  • cubic_meters_natural_gas_upper_value, m³_gas_uv; kg1*m2*sec-2; 35170000
  • cubic_meters_natural_gas_lower_value, m³_gas_lv; kg1*m2*sec-2; 31650000
  • Upper value: 35.17 MJ/m3
  • Lower value: 31.65 MJ/m3

I am not sure if this is possible? Thanks in advance!

Kind regards, David

Brian Frank Wed 27 Jan

David, can you point to some literature online to reference these numbers? These might be a little too specific to add to the standard database unless they these fixed values are commonly used outside of just the Netherlands (such as across the whole EU)

David Al Juma Wed 27 Jan

Hi Brian,

See this header "Higher heating values of natural gases from various sources" from this page: https://en.wikipedia.org/wiki/Heat_of_combustion. The heat of combustion is specific for the region. There is no such value for the whole EU. In this source the value for the Netherlands (33.32 MJ/Sm3) seems to be the average between the upper and lower values (35.17 MJ/m3 and 31.65 MJ/m3). However, we do not use this average value.

The values are also mentioned here: https://nl.wikipedia.org/wiki/Gronings_gas (Dutch source).

Brian Frank Thu 28 Jan

That is a great table, we should probably explain that somewhere in the docs and link off to it. I'll add that to the naturalGas tag docs (maybe not the best place, but seems like a pretty good place to hub info about natural gas).

But because the conversion is so fuzzy and dependent on region and is actually a range I'm not sure we should standardize a range in the Haystack database. Its a similar problem as currency conversions which change over time

Login or Signup to reply.