npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

zgm053uka

v1.0.1

Published

get readings from ZGm053UKA Mini CO₂ Monitor

Downloads

2

Readme

zgm053uka

JavaScript Style Guide current version

get CO₂ concentration and temperature readings from a ZGm053UKA Mini CO₂ Monitor

Setup

To let the program talk to the USB device on Linux create a file in /etc/udev/rules.d/ with a name something like 98-ZGm053UKA.rules with content:

SUBSYSTEM=="usb", ATTRS{idVendor}=="04d9", ATTRS{idProduct}=="a052", GROUP="plugdev", MODE="0664"
KERNEL=="hidraw*", ATTRS{idVendor}=="04d9", ATTRS{idProduct}=="a052", GROUP="plugdev", MODE="0664"

Be sure that the user the program runs as is part of the plugdev group.

For more help with installation, especially build errors, see the information about the modules this module depends on:

Usage

Create a new instance of the device and then listen for events. Invoke the .close() method when done.

import ZGm053UKA from '@robireton/zgm053uka'

const device = new ZGm053UKA()

device.on('co2', data => console.log(`CO₂ ${data}`))
device.on('temp', data => console.log(`Temp ${data}`))
device.on('other', data => console.log(data))
device.on('error', error => console.log('error %O', error))

for (const signal of ['SIGUSR2', 'SIGINT', 'SIGTERM']) {
  process.on(signal, s => {
    console.log(`signal: ${s}`)
    device.close()
    process.exit()
  })
}

Events

co2

emits the concentration of CO₂ in parts per million as an integer

temp

emits the temperature in sixteenths of a Kelvin as an integer. To convert to degrees Celsius, divide by 16 and subtract 273.15. To convert to degrees Fahrenheit, divide by 16, multiply by 9∕5, then subtract 459.67.

other

The device emits other data points that I haven't deciphered yet. This event emits the code, value, ‘decrypted’ message, and raw message from the device.

Methods

close

Tell this module to stop listening to the underlying USB device.

Acknowledgements

I learned how to decrypt the messages from reading the code for vfilimonov/co2meter.

Henryk Plötz seems to have paved the way.

JavaScript Style Guide