co2-mini-monitor

Crates.ioco2-mini-monitor
lib.rsco2-mini-monitor
version0.1.3
sourcesrc
created_at2021-03-13 13:10:47.414634
updated_at2021-03-16 20:38:03.601502
descriptionCUI monitor for CO2Mini Indoor Air Quality Monitor
homepage
repositoryhttps://github.com/lambdalisue/rs-co2-mini-monitor
max_upload_size
id368276
size16,738
Λlisue (lambdalisue)

documentation

README

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.

Commit count: 19

cargo fmt