GE Ventostat CO2 ZigBee Monitor
From Digi Developer
Ventostat® Wall Mount CO2, Humidity and Temperature Transmitters
- Vendor Product Page: http://www.instrumart.com/products/18180/ge-telaire-ventostat-series-co2-monitor
- Product Brochure: http://www.instrumart.com/assets/Ventostat-B_datasheet.pdf
- Model Number: T8100-HD-ZB (you won't find on web site)
GE Sensing Telaire Products sells a Ventostat variant with Digi ZigBee - with the S2C SMT Em357 module. You will need to talk to GE sales to obtain this because they have a variety of wireless variants from many sources, yet do not include on their web site to reduce customer-confusion.
In a nutshell, it is like a thermostat which also measures the carbon-dioxide in the room, which allows the ventilation system to increase or decrease energy use based on room occupancy. Why is that important? Easy - consider my office cubical, which is probably much like your own working space. On weekends the CO2 level is about 400PPM, which is nearly outdoor quality. Great ... but in summer, that means my employer is paying too much to suck in fresh (hot) air which it must cooled down - just so that the people who ARE NOT AT WORK can feel better. In contrast, during the week the CO2 level climbs to 800-1000PPM, which perhaps means they do not intake enough fresh air.
The 'VentoStat' allows the ventilation system to increase fresh air intact when more people are 'breathing' inside, and reduce fresh air intact when less (or no) people are 'breathing' inside. Tests by the US DOT have shown this can cut an easy 17% off the energy costs related to ventilation, giving payback in months. Is CO2 dangerous? Not in levels under several tens of thousands of PPM. Some people might complain about 'stuffiness' when it climbs over 1500 or 2000 PPM, but in truth CO2 is more a 'canary gas' used as an indirect measure, in that as CO2 climbs, so does body-odor, humidity, perfume and food smells - all things which make employees feel the room is stuffy and unhealthy.
The GE VentoStat isn't cheap - expect it to be in the $350 range for low volume. And while you can buy 'air quality' sensors for as little as $50, I have been told there are some major difference between the GE Ventostat and such sensors:
- the $50 sensors tend to measure hydro-carbons, meaning vehicle fumes, new-carpet smells (etc) which is not directly related to human occupancy like CO2 level is.
- the $50 sensors tend to be catalyst-film based, so wear out or need 'refresh' in a few years, whereas the infrared method used by GE claims a minimum of 10 years maintenance-free use.
Ventostat Python Code
But enough of the sales fluff. Even in a home, one can make use of the Ventostat to manage the low-power fan-only mode in modern furnaces. For example, I have a 3-zone HVAC system at home with a 96% AFUE furnace. The fan-only mode is published as 75-watts - and since I have power monitoring in my home circuit panel, I can confirm that it really is about 75-watts. However, since my home has a fixed-open fresh-air intake, running the fan when not required can make rooms unnecessarily warm or cold in spring or fall. It also is a waste of money to run the fan-only mode when the windows are open.
So one can use a GE ventostat (or similar air-quality product) to feed a CO2 level into the Device/DIA, then use an alarm function to enable/disable the HVAC fan-only mode. The details of this are unfortunately outside the scope of DIA since you also need a DIA-driver for your HVAC system. My own furnace uses RCS TR16 thermostats based on RS-485, which I talk wirelessly to via Robust DataComm Xbee/485 adapters which support the 16vac supplied by my furnace to the thermostats.
The Ventostat uses a simple ASCII protocol. For example, to query all 3 readings at once, you send the string '$33$88\r\n' and you will receive a response such as '719, 35.3, 23.3\r\n', which is CO2, humidity and temperature respectively. Therefore the Digi XBee is in 'AT Transparent Router' mode, and the core DIA driver is based upon a common XBee serial driver which handles the details for sending and receiving strings.
Note: be careful when reflashing the XBee, for the Ventostat's serial port must be (19200,8,N,1), which is not the Xbee default. GE sells a special USB-serial cable which allows you to use XCTU directly with the internal S2C XBee module.
Actual Code ZIP
This file contains the files which must be merged with the DIA 2.x.x code.
- File List
vento_readme.txt REM These YML samples are the same, just two names cfg\ventostat_ge.yml cfg\dia.yml REM The GE core files including the support for the Min/Max/Average src\devices\vendors\GE_Energy\__init__.py src\devices\vendors\GE_Energy\ut_minmaxavg.py src\devices\vendors\GE_Energy\ventostat.py REM My own 'DeviceBase' since I find the Digi DIA one to unhelpful & not very object oriented src\samples\annotated_sample.py src\devices\vendors\robust\__init__.py src\devices\vendors\robust\robust_base.py src\devices\vendors\robust\robust_xbee.py src\devices\vendors\robust\robust_xserial.py src\devices\vendors\robust\prodid.py src\devices\vendors\robust\xserial_util.py src\devices\vendors\robust\avail_base.py src\devices\vendors\robust\parse_duration.py src\devices\vendors\robust\sleep_aids.py diff\src\devices\vendors\robust
- Example YML fragment
This shows some of the power of my own device base. It creates a 'description' channel, plus as configured below I get 1 reading every 5 minutes synchronized to the clock, so on the hour, then at 5, 10, 15 (etc) minutes after the hour. Does that clean & fancy timing matter? Does seeing the value in DegF matter? Not in the cosmic sense, but it's what I want!
These settings are better described in the vento_readme.txt file.
- name: Z1CO2 driver: devices.vendors.GE_Energy.ventostat:Ventostat settings: xbee_device_manager: xbee_device_manager extended_address: "00:13:a2:00:40:52:94:b2!" dev_poll_rate_sec: '5 min' dev_poll_cleanly_min: True degf: True add_statistics: True dev_desc: "Living Room Zone CO2 sensor"
- Example Channel_Dump
- The channels basic to the Ventostat class: 'co2', 'humidity', 'temperature', 'error', 'version'
- The optional Ventostat statistic channels enabled: 'co2_stats', 'hum_stats', 'tmp_stats' (the format is like "CO2, min=917, avg=926, max=1026")
- The channels from my own device & Xbee Base: 'availability', 'online', 'description' ('availability' and 'online' relate to XBee health and the percentage of lost heartbeat messages - in my Xbee base, all routers send IO data by default every 60 seconds as a heartbeat of mesh health.)
These channels are better described in the vento_readme.txt file.
Channel Value Unit Timestamp ------------------------ ------------------ -------- ------------------- availability 99.8 % 2012-07-19 19:07:24 co2 947 PPM 2012-07-19 19:11:00 co2_stats CO2, min=917, avg= 2012-07-19 19:11:00 description Co2 sensor by Desk 1970-01-01 00:00:00 error False 2012-07-19 19:02:25 hum_stats HUM, min=53.4, avg 2012-07-19 19:11:00 humidity 53.4 RH 2012-07-19 19:11:00 online True 2012-07-19 19:02:44 temperature 74.3 F 2012-07-19 19:11:00 tmp_stats TMP, min=73.9, avg 2012-07-19 19:11:00 version 104, 2011/08/12 11 2012-07-19 19:02:25