#time #co2 #monitor #air-quality #applications #output #log

app co2-mini-monitor

CUI monitor for CO2Mini Indoor Air Quality Monitor

3 releases

0.1.3 Mar 16, 2021
0.1.2 Mar 14, 2021
0.1.1 Mar 13, 2021

#1172 in Hardware support

28 downloads per month

MIT license

7KB
67 lines

crates.io docs.rs MIT License Build Test Audit

co2-mini-monitor

An CUI application to log output of CO2Mini Indoor AirQuality Monitor or CUSTOM CO2 MONITOR CO2-mini to stdout.

$ co2-mini-monitor
{"time":"2021-03-13T12:41:26.632033+00:00","type":"co2","value":1100}
{"time":"2021-03-13T12:41:29.271876+00:00","type":"temp","value":21.7}
{"time":"2021-03-13T12:41:31.647808+00:00","type":"co2","value":1100}
{"time":"2021-03-13T12:41:34.295843+00:00","type":"temp","value":21.7}
{"time":"2021-03-13T12:41:36.671795+00:00","type":"co2","value":1104}
{"time":"2021-03-13T12:41:39.319682+00:00","type":"temp","value":21.7}
{"time":"2021-03-13T12:41:41.687658+00:00","type":"co2","value":1104}
{"time":"2021-03-13T12:41:44.335507+00:00","type":"temp","value":21.7}
{"time":"2021-03-13T12:41:46.711509+00:00","type":"co2","value":1108}

Note that this one does NOT handle packet decryption while it seems the packet is no longer encrypted in recent models. Use alternatives if you cannot get correct result due to the encryption.

Install

cargo install co2-mini-monitor

You may need to install the following to build hidapi-rs.

  • libusb-1.0-0-dev
  • libudev-dev
  • libhidapi-dev

Usage example

InfluxDB

Use jq to parse and format data and curl to send data to influxdb like

#!/bin/bash
HOSTNAME="localhost:8086"
ORG="YOUR ORG"
BUCKET="YOUR BUCKET"
TOKEN="YOUR TOKEN"
/usr/local/bin/co2-mini-monitor \
  | /usr/local/bin/jq -r --unbuffered '"\(.type) value=\(.value) \(.time | fromdate)"' \
  | xargs -I{} curl --request POST \
    "http://$HOSTNAME/api/v2/write?org=$ORG&bucket=$BUCKET&precision=s" \
    --header "Authorization: Token $TOKEN" \
    --data-raw {}

See also

License

The code follows MIT license written in LICENSE. Contributors need to agree that any modifications sent in this repository follow the license.

Dependencies

~1.6–2.2MB
~37K SLoC