Pypms

Latest version: v0.7.1

Safety actively analyzes 623760 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

0.7.1

Serial Air Quality Sensors

Data acquisition and logging for Air Quality Sensors with UART interface

[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pypms)](https://pypi.org/project/pypms)
[![PyPI](https://img.shields.io/pypi/v/pypms)](https://pypi.org/project/pypms)
[![Build Status](https://github.com/avaldebe/PyPMS/actions/workflows/test.yml/badge.svg)](https://github.com/avaldebe/PyPMS/actions)
[![GitHub issues](https://img.shields.io/github/issues/avaldebe/PyPMS)](https://github.com/avaldebe/PyPMS/issues)
[![GitHub license](https://img.shields.io/github/license/avaldebe/PyPMS)](https://github.com/avaldebe/PyPMS/blob/master/LICENSE)
[![DOI](https://zenodo.org/badge/203110737.svg)](https://zenodo.org/badge/latestdoi/203110737)

[project site]: https://avaldebe.github.io/PyPMS

Installation

This package can be pip installed.
Please visit [project site] for detailed instructions.

Command Line Tools

This package provides tools for requesting new measurements from the sensors
and print them on different formats, save them to a CSV file,
or push them to an external service such as an MQTT or InfluxDB server.
MQTT or InfluxDB server support requires additional packages.
Please visit [project site] for details.

Particulate Matter Sensors

| Sensor | `--sensor-model` | PM1 | PM2.5 | PM4 | PM10 | size bins | Other | Tested |
| ----------------- | ---------------- | :---: | :---: | :---: | :---: | :-------: | ---------------------- | :----: |
| [Plantower] |
| PMS1003 (aka G1) | [PMSx003] | ✔️ | ✔️ | | ✔️ | 6 | | |
| PMS3003 (aka G3) | [PMS3003] | ✔️ | ✔️ | | ✔️ | | | ✔️ |
| PMS5003 (aka G5) | [PMSx003] | ✔️ | ✔️ | | ✔️ | 6 | | |
| PMS5003T | [PMS5003T] | ✔️ | ✔️ | | ✔️ | 4 | temp. & rel.hum. | ✔️ |
| PMS5003S | [PMS5003S] | ✔️ | ✔️ | | ✔️ | 6 | HCHO concentration | |
| PMS5003ST | [PMS5003ST] | ✔️ | ✔️ | | ✔️ | 6 | HCHO, temp. & rel.hum. | |
| PMS7003 (aka G7) | [PMSx003] | ✔️ | ✔️ | | ✔️ | 6 | | ✔️ |
| PMSA003 (aka G10) | [PMSx003] | ✔️ | ✔️ | | ✔️ | 6 | | ✔️ |
| [NovaFitness] |
| SDS011 | [SDS01x] | | ✔️ | | ✔️ | | | ✔️ |
| SDS018 | [SDS01x] | | ✔️ | | ✔️ | | | |
| SDS021 | [SDS01x] | | ✔️ | | ✔️ | | | |
| SDS198 | [SDS198] | | | | | | PM100 | ✔️ |
| [Honeywell] |
| HPMA115S0 | [HPMA115S0] | | ✔️ | | ✔️ | | | |
| HPMA115C0 | [HPMA115C0] | ✔️ | ✔️ | ✔️ | ✔️ | | | ✔️ |
| [Sensirion] |
| SPS30 | [SPS30] | ✔️ | ✔️ | ✔️ | ✔️ | 5 | typical particle size | ✔️ |
| [Winsen] |
| ZH03B | [ZH0xx] | ✔️ | ✔️ | ✔️ | | | | |
| ZH06-I | [ZH0xx] | ✔️ | ✔️ | ✔️ | | | | |

[plantower]: https://avaldebe.github.io/PyPMS/sensors/Plantower
[PMS3003]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pms3003
[PMSx003]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pmsx003
[PMS5003T]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pms5003t
[PMS5003S]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pms5003s
[PMS5003ST]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pms5003st

[NovaFitness]:https://avaldebe.github.io/PyPMS/sensors/NovaFitness
[SDS01x]: https://avaldebe.github.io/PyPMS/sensors/NovaFitness/#sds01x
[SDS198]: https://avaldebe.github.io/PyPMS/sensors/NovaFitness/#sds198

[Honeywell]: https://avaldebe.github.io/PyPMS/sensors/Honeywell
[HPMA115S0]: https://avaldebe.github.io/PyPMS/sensors/Honeywell/#hpma115s0
[HPMA115C0]: https://avaldebe.github.io/PyPMS/sensors/Honeywell/#hpma115c0

[Sensirion]: https://avaldebe.github.io/PyPMS/sensors/Sensirion
[SPS30]: https://avaldebe.github.io/PyPMS/sensors/Sensirion/#sps30

[Winsen]: https://avaldebe.github.io/PyPMS/sensors/Winsen
[ZH0xx]: https://avaldebe.github.io/PyPMS/sensors/Winsen/#zh0xx
[MHZ19B]: https://avaldebe.github.io/PyPMS/sensors/Winsen/#mhz19b

Other Sensors

- [MCU680]:
chinese module with a [BME680] sensor, a mirocontroller (μC) and 3.3V low-dropout regulator (LDO).
The μC acts as I2C/UART bridge, providing outputs from the [closed source integration library][BSEC].
- [MHZ19B]:
infrared CO2 sensor module from [Winsen].

[MCU680]: https://avaldebe.github.io/PyPMS/sensors/mcu680/#mcu680
[BME680]: https://avaldebe.github.io/PyPMS/sensors/mcu680/#bme680
[BSEC]: https://www.bosch-sensortec.com/software-tools/software/bsec/

Want More Sensors

For more Air Quality sensors [open an issue][issue].

[issue]: https://github.com/avaldebe/PyPMS/issues

Use as a library

PyPMS/pms is meant as a command line application.
The [project site] contain some help for those brave enough to use its internals as a [library].

[library]: https://avaldebe.github.io/PyPMS/library_usage

What's Changed

* Disable logging unless code is running in CLI by benthorner in https://github.com/avaldebe/PyPMS/pull/37

**Full Changelog**: https://github.com/avaldebe/PyPMS/compare/0.7.0...0.7.1

0.7.0

Serial Air Quality Sensors

Data acquisition and logging for Air Quality Sensors with UART interface

[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pypms)](https://pypi.org/project/pypms)
[![PyPI](https://img.shields.io/pypi/v/pypms)](https://pypi.org/project/pypms)
[![Build Status](https://github.com/avaldebe/PyPMS/actions/workflows/test.yml/badge.svg)](https://github.com/avaldebe/PyPMS/actions)
[![GitHub issues](https://img.shields.io/github/issues/avaldebe/PyPMS)](https://github.com/avaldebe/PyPMS/issues)
[![GitHub license](https://img.shields.io/github/license/avaldebe/PyPMS)](https://github.com/avaldebe/PyPMS/blob/master/LICENSE)
[![DOI](https://zenodo.org/badge/203110737.svg)](https://zenodo.org/badge/latestdoi/203110737)

[project site]: https://avaldebe.github.io/PyPMS

Installation

This package can be pip installed.
Please visit [project site] for detailed instructions.

Command Line Tools

This package provides tools for requesting new measurements from the sensors
and print them on different formats, save them to a CSV file,
or push them to an external service such as an MQTT or InfluxDB server.
MQTT or InfluxDB server support requires additional packages.
Please visit [project site] for details.

Particulate Matter Sensors

| Sensor | `--sensor-model` | PM1 | PM2.5 | PM4 | PM10 | size bins | Other | Tested |
| ----------------- | ---------------- | :---: | :---: | :---: | :---: | :-------: | ---------------------- | :----: |
| [Plantower] |
| PMS1003 (aka G1) | [PMSx003] | ✔️ | ✔️ | | ✔️ | 6 | | |
| PMS3003 (aka G3) | [PMS3003] | ✔️ | ✔️ | | ✔️ | | | ✔️ |
| PMS5003 (aka G5) | [PMSx003] | ✔️ | ✔️ | | ✔️ | 6 | | |
| PMS5003T | [PMS5003T] | ✔️ | ✔️ | | ✔️ | 4 | temp. & rel.hum. | ✔️ |
| PMS5003S | [PMS5003S] | ✔️ | ✔️ | | ✔️ | 6 | HCHO concentration | |
| PMS5003ST | [PMS5003ST] | ✔️ | ✔️ | | ✔️ | 6 | HCHO, temp. & rel.hum. | |
| PMS7003 (aka G7) | [PMSx003] | ✔️ | ✔️ | | ✔️ | 6 | | ✔️ |
| PMSA003 (aka G10) | [PMSx003] | ✔️ | ✔️ | | ✔️ | 6 | | ✔️ |
| [NovaFitness] |
| SDS011 | [SDS01x] | | ✔️ | | ✔️ | | | ✔️ |
| SDS018 | [SDS01x] | | ✔️ | | ✔️ | | | |
| SDS021 | [SDS01x] | | ✔️ | | ✔️ | | | |
| SDS198 | [SDS198] | | | | | | PM100 | ✔️ |
| [Honeywell] |
| HPMA115S0 | [HPMA115S0] | | ✔️ | | ✔️ | | | |
| HPMA115C0 | [HPMA115C0] | ✔️ | ✔️ | ✔️ | ✔️ | | | ✔️ |
| [Sensirion] |
| SPS30 | [SPS30] | ✔️ | ✔️ | ✔️ | ✔️ | 5 | typical particle size | ✔️ |
| [Winsen] |
| ZH03B | [ZH0xx] | ✔️ | ✔️ | ✔️ | | | | |
| ZH06-I | [ZH0xx] | ✔️ | ✔️ | ✔️ | | | | |

[plantower]: https://avaldebe.github.io/PyPMS/sensors/Plantower
[PMS3003]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pms3003
[PMSx003]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pmsx003
[PMS5003T]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pms5003t
[PMS5003S]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pms5003s
[PMS5003ST]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pms5003st

[NovaFitness]:https://avaldebe.github.io/PyPMS/sensors/NovaFitness
[SDS01x]: https://avaldebe.github.io/PyPMS/sensors/NovaFitness/#sds01x
[SDS198]: https://avaldebe.github.io/PyPMS/sensors/NovaFitness/#sds198

[Honeywell]: https://avaldebe.github.io/PyPMS/sensors/Honeywell
[HPMA115S0]: https://avaldebe.github.io/PyPMS/sensors/Honeywell/#hpma115s0
[HPMA115C0]: https://avaldebe.github.io/PyPMS/sensors/Honeywell/#hpma115c0

[Sensirion]: https://avaldebe.github.io/PyPMS/sensors/Sensirion
[SPS30]: https://avaldebe.github.io/PyPMS/sensors/Sensirion/#sps30

[Winsen]: https://avaldebe.github.io/PyPMS/sensors/Winsen
[ZH0xx]: https://avaldebe.github.io/PyPMS/sensors/Winsen/#zh0xx
[MHZ19B]: https://avaldebe.github.io/PyPMS/sensors/Winsen/#mhz19b

Other Sensors

- [MCU680]:
chinese module with a [BME680] sensor, a mirocontroller (μC) and 3.3V low-dropout regulator (LDO).
The μC acts as I2C/UART bridge, providing outputs from the [closed source integration library][BSEC].
- [MHZ19B]:
infrared CO2 sensor module from [Winsen].

[MCU680]: https://avaldebe.github.io/PyPMS/sensors/mcu680/#mcu680
[BME680]: https://avaldebe.github.io/PyPMS/sensors/mcu680/#bme680
[BSEC]: https://www.bosch-sensortec.com/software-tools/software/bsec/

Want More Sensors

For more Air Quality sensors [open an issue][issue].

[issue]: https://github.com/avaldebe/PyPMS/issues

Use as a library

PyPMS/pms is meant as a command line application.
The [project site] contain some help for those brave enough to use its internals as a [library].

[library]: https://avaldebe.github.io/PyPMS/library_usage

What's Changed

* Add tests to support SensorReader refactoring by benthorner in https://github.com/avaldebe/PyPMS/pull/29
* Favour "data" over "raw" in ObsData tests by benthorner in https://github.com/avaldebe/PyPMS/pull/30
* Improve coverage for reader classes by benthorner in https://github.com/avaldebe/PyPMS/pull/31
* Introduce API for granular (Sensor)Reader operation by benthorner in https://github.com/avaldebe/PyPMS/pull/33
* Enable pre-heat for PMSx003 sensors by benthorner in https://github.com/avaldebe/PyPMS/pull/35
* maintenance before new version release by avaldebe in https://github.com/avaldebe/PyPMS/pull/34

**Full Changelog**: https://github.com/avaldebe/PyPMS/compare/0.6.2...0.7.0

0.6.2

Serial Air Quality Sensors

Data acquisition and logging for Air Quality Sensors with UART interface

[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pypms)](https://pypi.org/project/pypms)
[![PyPI](https://img.shields.io/pypi/v/pypms)](https://pypi.org/project/pypms)
[![Build Status](https://github.com/avaldebe/PyPMS/actions/workflows/test.yml/badge.svg)](https://github.com/avaldebe/PyPMS/actions)
[![GitHub issues](https://img.shields.io/github/issues/avaldebe/PyPMS)](https://github.com/avaldebe/PyPMS/issues)
[![GitHub license](https://img.shields.io/github/license/avaldebe/PyPMS)](https://github.com/avaldebe/PyPMS/blob/master/LICENSE)
[![DOI](https://zenodo.org/badge/203110737.svg)](https://zenodo.org/badge/latestdoi/203110737)

[project site]: https://avaldebe.github.io/PyPMS

Installation

This package can be pip installed.
Please visit [project site] for detailed instructions.

Command Line Tools

This package provides tools for requesting new measurements from the sensors
and print them on different formats, save them to a CSV file,
or push them to an external service such as an MQTT or InfluxDB server.
MQTT or InfluxDB server support requires additional packages.
Please visit [project site] for details.

Particulate Matter Sensors

| Sensor | `--sensor-model` | PM1 | PM2.5 | PM4 | PM10 | size bins | Other | Tested |
| ----------------- | ---------------- | :---: | :---: | :---: | :---: | :-------: | ---------------------- | :----: |
| [Plantower] |
| PMS1003 (aka G1) | [PMSx003] | ✔️ | ✔️ | | ✔️ | 6 | | |
| PMS3003 (aka G3) | [PMS3003] | ✔️ | ✔️ | | ✔️ | | | ✔️ |
| PMS5003 (aka G5) | [PMSx003] | ✔️ | ✔️ | | ✔️ | 6 | | |
| PMS5003T | [PMS5003T] | ✔️ | ✔️ | | ✔️ | 4 | temp. & rel.hum. | ✔️ |
| PMS5003S | [PMS5003S] | ✔️ | ✔️ | | ✔️ | 6 | HCHO concentration | |
| PMS5003ST | [PMS5003ST] | ✔️ | ✔️ | | ✔️ | 6 | HCHO, temp. & rel.hum. | |
| PMS7003 (aka G7) | [PMSx003] | ✔️ | ✔️ | | ✔️ | 6 | | ✔️ |
| PMSA003 (aka G10) | [PMSx003] | ✔️ | ✔️ | | ✔️ | 6 | | ✔️ |
| [NovaFitness] |
| SDS011 | [SDS01x] | | ✔️ | | ✔️ | | | ✔️ |
| SDS018 | [SDS01x] | | ✔️ | | ✔️ | | | |
| SDS021 | [SDS01x] | | ✔️ | | ✔️ | | | |
| SDS198 | [SDS198] | | | | | | PM100 | ✔️ |
| [Honeywell] |
| HPMA115S0 | [HPMA115S0] | | ✔️ | | ✔️ | | | |
| HPMA115C0 | [HPMA115C0] | ✔️ | ✔️ | ✔️ | ✔️ | | | ✗ |
| [Sensirion] |
| SPS30 | [SPS30] | ✔️ | ✔️ | ✔️ | ✔️ | 5 | typical particle size | ✔️ |
| [Winsen] |
| ZH03B | [ZH0xx] | ✔️ | ✔️ | ✔️ | | | | |
| ZH06-I | [ZH0xx] | ✔️ | ✔️ | ✔️ | | | | |

[plantower]: https://avaldebe.github.io/PyPMS/sensors/Plantower
[PMS3003]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pms3003
[PMSx003]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pmsx003
[PMS5003T]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pms5003t
[PMS5003S]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pms5003s
[PMS5003ST]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pms5003st

[NovaFitness]:https://avaldebe.github.io/PyPMS/sensors/NovaFitness
[SDS01x]: https://avaldebe.github.io/PyPMS/sensors/NovaFitness/#sds01x
[SDS198]: https://avaldebe.github.io/PyPMS/sensors/NovaFitness/#sds198

[Honeywell]: https://avaldebe.github.io/PyPMS/sensors/Honeywell
[HPMA115S0]: https://avaldebe.github.io/PyPMS/sensors/Honeywell/#hpma115s0
[HPMA115C0]: https://avaldebe.github.io/PyPMS/sensors/Honeywell/#hpma115c0

[Sensirion]: https://avaldebe.github.io/PyPMS/sensors/Sensirion
[SPS30]: https://avaldebe.github.io/PyPMS/sensors/Sensirion/#sps30

[Winsen]: https://avaldebe.github.io/PyPMS/sensors/Winsen
[ZH0xx]: https://avaldebe.github.io/PyPMS/sensors/Winsen/#zh0xx
[MHZ19B]: https://avaldebe.github.io/PyPMS/sensors/Winsen/#mhz19b

Other Sensors

- [MCU680]:
chinese module with a [BME680] sensor, a mirocontroller (μC) and 3.3V low-dropout regulator (LDO).
The μC acts as I2C/UART bridge, providing outputs from the [closed source integration library][BSEC].
- [MHZ19B]:
infrared CO2 sensor module from [Winsen].

[MCU680]: https://avaldebe.github.io/PyPMS/sensors/mcu680/#mcu680
[BME680]: https://avaldebe.github.io/PyPMS/sensors/mcu680/#bme680
[BSEC]: https://www.bosch-sensortec.com/software-tools/software/bsec/

What's Changed

* Move root logger config to CLI module by benthorner in https://github.com/avaldebe/PyPMS/pull/28

New Contributors

* benthorner made their first contribution in https://github.com/avaldebe/PyPMS/pull/28

**Full Changelog**: https://github.com/avaldebe/PyPMS/compare/0.6.1...0.6.2

0.6.1

Serial Air Quality Sensors

Data acquisition and logging for Air Quality Sensors with UART interface

[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pypms)](https://pypi.org/project/pypms)
[![PyPI](https://img.shields.io/pypi/v/pypms)](https://pypi.org/project/pypms)
[![Build Status](https://github.com/avaldebe/PyPMS/actions/workflows/test.yml/badge.svg)](https://github.com/avaldebe/PyPMS/actions)
[![GitHub issues](https://img.shields.io/github/issues/avaldebe/PyPMS)](https://github.com/avaldebe/PyPMS/issues)
[![GitHub license](https://img.shields.io/github/license/avaldebe/PyPMS)](https://github.com/avaldebe/PyPMS/blob/master/LICENSE)
[![DOI](https://zenodo.org/badge/203110737.svg)](https://zenodo.org/badge/latestdoi/203110737)

[project site]: https://avaldebe.github.io/PyPMS

Installation

This package can be pip installed.
Please visit [project site] for detailed instructions.

Command Line Tools

This package provides tools for requesting new measurements from the sensors
and print them on different formats, save them to a CSV file,
or push them to an external service such as an MQTT or InfluxDB server.
MQTT or InfluxDB server support requires additional packages.
Please visit [project site] for details.

Particulate Matter Sensors

| Sensor | `--sensor-model` | PM1 | PM2.5 | PM4 | PM10 | size bins | Other | Tested |
| ----------------- | ---------------- | :---: | :---: | :---: | :---: | :-------: | ---------------------- | :----: |
| [Plantower] |
| PMS1003 (aka G1) | [PMSx003] | ✔️ | ✔️ | | ✔️ | 6 | | |
| PMS3003 (aka G3) | [PMS3003] | ✔️ | ✔️ | | ✔️ | | | ✔️ |
| PMS5003 (aka G5) | [PMSx003] | ✔️ | ✔️ | | ✔️ | 6 | | |
| PMS5003T | [PMS5003T] | ✔️ | ✔️ | | ✔️ | 4 | temp. & rel.hum. | ✔️ |
| PMS5003S | [PMS5003S] | ✔️ | ✔️ | | ✔️ | 6 | HCHO concentration | |
| PMS5003ST | [PMS5003ST] | ✔️ | ✔️ | | ✔️ | 6 | HCHO, temp. & rel.hum. | |
| PMS7003 (aka G7) | [PMSx003] | ✔️ | ✔️ | | ✔️ | 6 | | ✔️ |
| PMSA003 (aka G10) | [PMSx003] | ✔️ | ✔️ | | ✔️ | 6 | | ✔️ |
| [NovaFitness] |
| SDS011 | [SDS01x] | | ✔️ | | ✔️ | | | ✔️ |
| SDS018 | [SDS01x] | | ✔️ | | ✔️ | | | |
| SDS021 | [SDS01x] | | ✔️ | | ✔️ | | | |
| SDS198 | [SDS198] | | | | | | PM100 | ✔️ |
| [Honeywell] |
| HPMA115S0 | [HPMA115S0] | | ✔️ | | ✔️ | | | |
| HPMA115C0 | [HPMA115C0] | ✔️ | ✔️ | ✔️ | ✔️ | | | |
| [Sensirion] |
| SPS30 | [SPS30] | ✔️ | ✔️ | ✔️ | ✔️ | 5 | typical particle size | ✔️ |
| [Winsen] |
| ZH03B | [ZH0xx] | ✔️ | ✔️ | ✔️ | | | | |
| ZH06-I | [ZH0xx] | ✔️ | ✔️ | ✔️ | | | | |

[plantower]: https://avaldebe.github.io/PyPMS/sensors/Plantower
[PMS3003]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pms3003
[PMSx003]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pmsx003
[PMS5003T]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pms5003t
[PMS5003S]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pms5003s
[PMS5003ST]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pms5003st

[NovaFitness]:https://avaldebe.github.io/PyPMS/sensors/NovaFitness
[SDS01x]: https://avaldebe.github.io/PyPMS/sensors/NovaFitness/#sds01x
[SDS198]: https://avaldebe.github.io/PyPMS/sensors/NovaFitness/#sds198

[Honeywell]: https://avaldebe.github.io/PyPMS/sensors/Honeywell
[HPMA115S0]: https://avaldebe.github.io/PyPMS/sensors/Honeywell/#hpma115s0
[HPMA115C0]: https://avaldebe.github.io/PyPMS/sensors/Honeywell/#hpma115c0

[Sensirion]: https://avaldebe.github.io/PyPMS/sensors/Sensirion
[SPS30]: https://avaldebe.github.io/PyPMS/sensors/Sensirion/#sps30

[Winsen]: https://avaldebe.github.io/PyPMS/sensors/Winsen
[ZH0xx]: https://avaldebe.github.io/PyPMS/sensors/Winsen/#zh0xx
[MHZ19B]: https://avaldebe.github.io/PyPMS/sensors/Winsen/#mhz19b

Other Sensors

- [MCU680]:
chinese module with a [BME680] sensor, a mirocontroller (μC) and 3.3V low-dropout regulator (LDO).
The μC acts as I2C/UART bridge, providing outputs from the [closed source integration library][BSEC].
- [MHZ19B]:
infrared CO2 sensor module from [Winsen].

[MCU680]: https://avaldebe.github.io/PyPMS/sensors/mcu680/#mcu680
[BME680]: https://avaldebe.github.io/PyPMS/sensors/mcu680/#bme680
[BSEC]: https://www.bosch-sensortec.com/software-tools/software/bsec/

Want More Sensors

For more Air Quality sensors [open an issue][issue].

[issue]: https://github.com/avaldebe/PyPMS/issues

Use as a library

PyPMS/pms is meant as a command line application.
The [project site] contain some help for those brave enough to use its internals as a [library].

[library]: https://avaldebe.github.io/PyPMS/library_usage

Changelog

- 0.6.1
- fix `pms.sensors.sensirion` module name and docs
- reliably recognize SPS30 sensor [25](https://github.com/avaldebe/PyPMS/issues/25)
- 0.6.0
- [project site]
- reorganize internal modules
- `pms.core`: core functionality, such as `Sensor` and `SensorReader`
- `pms.sensors`: sensor modules grouped by manufacturer
- `pms.extra`: extra cli utilities, such as `pms influxdb` and `influxdb mqtt`
- importing from `pms.sensor` is deprecated, import from `pms.core` instead
- plugin architecture
- load sensor modules from entry points advertized as `"pypms.sensors"`
- load extra cli commands from entry points advertized as `"pypms.extras"`
- support [Winsen] PM sensors and [MHZ19B] infrared CO2 sensor.
- pm1/pm4/raw2_5/pm2_5 properties, [17](https://github.com/avaldebe/PyPMS/issues/17)
- 0.5.0
- set username/password with environment variables:
- `$MQTT_USER` sets `--mqtt-user` on `pms mqtt` and `pms bridge`
- `$MQTT_USER` sets `--mqtt-user` on `pms mqtt` and `pms bridge`
- `$DB_USER` sets `--db-user` on `pms influxdb` and `pms bridge`
- `$DB_PASS` sets `--db-pass` on `pms influxdb` and `pms bridge`
- 0.4.1
- info about the sensor observations with `pms info`
- fix [MCU680] obs.pres typo [16](https://github.com/avaldebe/PyPMS/issues/16)
- 0.4.0
- capture raw messages with `pms csv --capture`
- decode captured messages with `pms serial --capture`
- hexdump format with `pms serial --format hexdump`
- deprecate subset observation method
- 0.3.1
- fix influxdb default tags
- 0.3.0
- option for a fix number of samples
- PMSx003 consistency check after sleep/wake
- 0.2.*
- widen project scope from PM sensors to AQ sensors in general
- support [BME680] sensor ([MCU680] module)
- 0.1.*
- widen project scope beyond [Plantower] PM sensors
- support [NovaFitness], [Honeywell] and [Sensirion] PM sensors
- cli for logging to csv file, InfluxDB server or MQTT server

0.6.0

Serial Air Quality Sensors

Data acquisition and logging for Air Quality Sensors with UART interface

[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pypms)](https://pypi.org/project/pypms)
[![PyPI](https://img.shields.io/pypi/v/pypms)](https://pypi.org/project/pypms)
[![Build Status](https://github.com/avaldebe/PyPMS/actions/workflows/test.yml/badge.svg)](https://github.com/avaldebe/PyPMS/actions)
[![GitHub issues](https://img.shields.io/github/issues/avaldebe/PyPMS)](https://github.com/avaldebe/PyPMS/issues)
[![GitHub license](https://img.shields.io/github/license/avaldebe/PyPMS)](https://github.com/avaldebe/PyPMS/blob/master/LICENSE)
[![DOI](https://zenodo.org/badge/203110737.svg)](https://zenodo.org/badge/latestdoi/203110737)

[project site]: https://avaldebe.github.io/PyPMS

Installation

This package can be pip installed.
Please visit [project site] for detailed instructions.

Command Line Tools

This package provides tools for requesting new measurements from the sensors
and print them on different formats, save them to a CSV file,
or push them to an external service such as an MQTT or InfluxDB server.
MQTT or InfluxDB server support requires additional packages.
Please visit [project site] for details.

Particulate Matter Sensors

| Sensor | `--sensor-model` | PM1 | PM2.5 | PM4 | PM10 | size bins | Other | Tested |
| ----------------- | ---------------- | :---: | :---: | :---: | :---: | :-------: | ---------------------- | :----: |
| [Plantower] |
| PMS1003 (aka G1) | [PMSx003] | ✔️ | ✔️ | | ✔️ | 6 | | |
| PMS3003 (aka G3) | [PMS3003] | ✔️ | ✔️ | | ✔️ | | | ✔️ |
| PMS5003 (aka G5) | [PMSx003] | ✔️ | ✔️ | | ✔️ | 6 | | |
| PMS5003T | [PMS5003T] | ✔️ | ✔️ | | ✔️ | 4 | temp. & rel.hum. | |
| PMS5003S | [PMS5003S] | ✔️ | ✔️ | | ✔️ | 6 | HCHO concentration | |
| PMS5003ST | [PMS5003ST] | ✔️ | ✔️ | | ✔️ | 6 | HCHO, temp. & rel.hum. | |
| PMS7003 (aka G7) | [PMSx003] | ✔️ | ✔️ | | ✔️ | 6 | | ✔️ |
| PMSA003 (aka G10) | [PMSx003] | ✔️ | ✔️ | | ✔️ | 6 | | ✔️ |
| [NovaFitness] |
| SDS011 | [SDS01x] | | ✔️ | | ✔️ | | | ✔️ |
| SDS018 | [SDS01x] | | ✔️ | | ✔️ | | | |
| SDS021 | [SDS01x] | | ✔️ | | ✔️ | | | |
| SDS198 | [SDS198] | | | | | | PM100 | ✔️ |
| [Honeywell] |
| HPMA115S0 | [HPMA115S0] | | ✔️ | | ✔️ | | | |
| HPMA115C0 | [HPMA115C0] | ✔️ | ✔️ | ✔️ | ✔️ | | | |
| [Senserion] |
| SPS30 | [SPS30] | ✔️ | ✔️ | ✔️ | ✔️ | 5 | typical particle size | |
| [Winsen] |
| ZH03B | [ZH0xx] | ✔️ | ✔️ | ✔️ | | | | |
| ZH06-I | [ZH0xx] | ✔️ | ✔️ | ✔️ | | | | |

[plantower]: https://avaldebe.github.io/PyPMS/sensors/Plantower
[PMS3003]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pms3003
[PMSx003]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pmsx003
[PMS5003T]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pms5003t
[PMS5003S]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pms5003s
[PMS5003ST]: https://avaldebe.github.io/PyPMS/sensors/Plantower/#pms5003st

[NovaFitness]:https://avaldebe.github.io/PyPMS/sensors/NovaFitness
[SDS01x]: https://avaldebe.github.io/PyPMS/sensors/NovaFitness/#sds01x
[SDS198]: https://avaldebe.github.io/PyPMS/sensors/NovaFitness/#sds198

[Honeywell]: https://avaldebe.github.io/PyPMS/sensors/Honeywell
[HPMA115S0]: https://avaldebe.github.io/PyPMS/sensors/Honeywell/#hpma115s0
[HPMA115C0]: https://avaldebe.github.io/PyPMS/sensors/Honeywell/#hpma115c0

[Senserion]: https://avaldebe.github.io/PyPMS/sensors/Senserion
[SPS30]: https://avaldebe.github.io/PyPMS/sensors/Senserion/#sps30

[Winsen]: https://avaldebe.github.io/PyPMS/sensors/Winsen
[ZH0xx]: https://avaldebe.github.io/PyPMS/sensors/Winsen/#zh0xx
[MHZ19B]: https://avaldebe.github.io/PyPMS/sensors/Winsen/#mhz19b

Other Sensors

- [MCU680]:
chinese module with a [BME680] sensor, a mirocontroller (μC) and 3.3V low-dropout regulator (LDO).
The μC acts as I2C/UART bridge, providing outputs from the [closed source integration library][BSEC].
- [MHZ19B]:
infrared CO2 sensor module from [Winsen].

[MCU680]: https://avaldebe.github.io/PyPMS/sensors/mcu680/#mcu680
[BME680]: https://avaldebe.github.io/PyPMS/sensors/mcu680/#bme680
[BSEC]: https://www.bosch-sensortec.com/software-tools/software/bsec/

Want More Sensors

For more Air Quality sensors [open an issue][issue].

[issue]: https://github.com/avaldebe/PyPMS/issues

Use as a library

PyPMS/pms is meant as a command line application.
The [project site] contain some help for those brave enough to use its internals as a [library].

[library]: https://avaldebe.github.io/PyPMS/library_usage

Changelog

- 0.6.0
- [project site]
- reorganize internal modules
- `pms.core`: core functionality, such as `Sensor` and `SensorReader`
- `pms.sensors`: sensor modules grouped by manufacturer
- `pms.extra`: extra cli utilities, such as `pms influxdb` and `influxdb mqtt`
- importing from `pms.sensor` is deprecated, import from `pms.core` instead
- plugin architecture
- load sensor modules from entry points advertized as `"pypms.sensors"`
- load extra cli commands from entry points advertized as `"pypms.extras"`
- support [Winsen] PM sensors and [MHZ19B] infrared CO2 sensor.
- pm1/pm4/raw2_5/pm2_5 properties, [17](https://github.com/avaldebe/PyPMS/issues/17)
- 0.5.0
- set username/password with environment variables:
- `$MQTT_USER` sets `--mqtt-user` on `pms mqtt` and `pms bridge`
- `$MQTT_USER` sets `--mqtt-user` on `pms mqtt` and `pms bridge`
- `$DB_USER` sets `--db-user` on `pms influxdb` and `pms bridge`
- `$DB_PASS` sets `--db-pass` on `pms influxdb` and `pms bridge`
- 0.4.1
- info about the sensor observations with `pms info`
- fix [MCU680] obs.pres typo [16](https://github.com/avaldebe/PyPMS/issues/16)
- 0.4.0
- capture raw messages with `pms csv --capture`
- decode captured messages with `pms serial --capture`
- hexdump format with `pms serial --format hexdump`
- deprecate subset observation method
- 0.3.1
- fix influxdb default tags
- 0.3.0
- option for a fix number of samples
- PMSx003 consistency check after sleep/wake
- 0.2.*
- widen project scope from PM sensors to AQ sensors in general
- support [BME680] sensor ([MCU680] module)
- 0.1.*
- widen project scope beyond [Plantower] PM sensors
- support [NovaFitness], [Honeywell] and [Senserion] PM sensors
- cli for logging to csv file, InfluxDB server or MQTT server

0.5.0

Serial Air Quality Sensors

Tools for reading Air Quality Sensors with serial (UART) interface, data acquisition and logging.

[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pypms)](https://pypi.org/project/pypms)
[![PyPI](https://img.shields.io/pypi/v/pypms)](https://pypi.org/project/pypms)
[![Build Status](https://travis-ci.com/avaldebe/PyPMS.svg?branch=master)](https://travis-ci.com/avaldebe/PyPMS)
[![GitHub issues](https://img.shields.io/github/issues/avaldebe/PyPMS)](https://github.com/avaldebe/PyPMS/issues)
[![GitHub license](https://img.shields.io/github/license/avaldebe/PyPMS)](https://github.com/avaldebe/PyPMS/blob/master/LICENSE)
[![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/)
[![DOI](https://zenodo.org/badge/203110737.svg)](https://zenodo.org/badge/latestdoi/203110737)

Command Line Interface

man
Usage: pms [OPTIONS] COMMAND [ARGS]...

Options:
-m, --sensor-model [PMSx003|PMS3003|PMS5003S|PMS5003ST|PMS5003T|SDS01x|SDS198|HPMA115S0|HPMA115C0|SPS30|MCU680]
sensor model [default: PMSx003]
-s, --serial-port TEXT serial port [default: /dev/ttyUSB0]
-i, --interval INTEGER seconds to wait between updates [default:
60]

-n, --samples INTEGER stop after N samples
--debug print DEBUG/logging messages [default:
False]

--version
--install-completion [bash|zsh|fish|powershell|pwsh]
Install completion for the specified shell.
--show-completion [bash|zsh|fish|powershell|pwsh]
Show completion for the specified shell, to
copy it or customize the installation.

--help Show this message and exit.

Commands:
bridge Bridge between MQTT and InfluxDB servers
csv Read sensor and print measurements
influxdb Read sensor and push PM measurements to an InfluxDB server
info Information about the sensor observations
mqtt Read sensor and push PM measurements to a MQTT server
serial Read sensor and print measurements

Page 1 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.