node-co2-monitor
Version:
Node.JS library for reading CO2 concentration and indoor temperature from TFA Dostmann AirCO2NTROL Mini.
118 lines (78 loc) • 2.66 kB
Markdown
# node-co2-monitor
Node.JS library for reading CO2 concentration and indoor temperature from TFA Dostmann AirCO2NTROL Mini.
[](https://www.npmjs.com/package/node-co2-monitor)
[](https://www.npmjs.com/package/node-co2-monitor)
## Contents
* [Supported Hardware](#supported-hardware)
* [Install](#install)
* [Getting started](#getting-started)
* [API](#api)
* [Methods](#methods)
* [Events](#events)
* [Credits](#credits)
* [License](#license)
## Supported Hardware
* [TFA Dostmann AirCO2NTROL Mini - Monitor CO2 31.5006](https://www.amazon.de/dp/B00TH3OW4Q)
## Install
```bash
npm install node-co2-monitor
```
## Getting started
```javascript
'use strict';
const CO2Monitor = require('node-co2-monitor');
const monitor = new CO2Monitor();
// Connect device.
monitor.connect((err) => {
if (err) {
return console.error(err.stack);
}
console.log('Monitor connected.');
// Read data from CO2 monitor.
monitor.transfer();
});
// Get results.
monitor.on('temp', (temperature) => {
console.log(`temp: ${ temperature }`);
});
monitor.on('co2', (co2) => {
console.log(`co2: ${ co2 }`);
});
// Error handler
monitor.on('error', (err) => {
console.error(err.stack);
// Disconnect device
monitor.disconnect(() => {
console.log('Monitor disconnected.');
process.exit(0);
});
});
```
## API
### Methods
#### new CO2Monitor(options) -> Object
Create CO2Monitor instance.
#### monitor.connect(Function callback)
Setup usb connection to CO2 monitor.
#### monitor.disconnect(Function callback)
Close device connection.
#### monitor.transfer([Function callback])
Start data transfer from CO2 monitor.
#### monitor.temperature -> Number
Get latest Ambient Temperature (Tamb) in ℃.
#### monitor.co2 -> Number
Get latest Relative Concentration of CO2 (CntR) in ppm.
### Events
#### temp -> Number
Triggered by temperature update with Ambient Temperature (Tamb) in ℃.
#### co2 -> Number
Triggered by co2 update with Relative Concentration of CO2 (CntR) in ppm.
#### error -> Error
Triggered by error.
## Projects using node-co2-monitor
* [CO2 Monitor Exporter](https://github.com/huhamhire/co2-monitor-exporter) - Prometheus exporter for CO2 concentration and indoor temperature from TFA Dostmann AirCO2NTROL Mini.
## Credits
Inspired by Henryk Plötz:
[Reverse-Engineering a low-cost USB CO₂ monitor](https://hackaday.io/project/5301-reverse-engineering-a-low-cost-usb-co-monitor/log/17909-all-your-base-are-belong-to-us).
## License
MIT