Skip to content

Releases: avaldebe/PyPMS

0.7.1

11 Jan 10:42
Compare
Choose a tag to compare

Serial Air Quality Sensors

Data acquisition and logging for Air Quality Sensors with UART interface

PyPI - Python Version
PyPI
Build Status
GitHub issues
GitHub license
DOI

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 ✔️ ✔️ ✔️

Other Sensors

Want More Sensors

For more Air Quality sensors open an issue.

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.

What's Changed

Full Changelog: 0.7.0...0.7.1

0.7.0

08 Dec 14:11
Compare
Choose a tag to compare

Serial Air Quality Sensors

Data acquisition and logging for Air Quality Sensors with UART interface

PyPI - Python Version
PyPI
Build Status
GitHub issues
GitHub license
DOI

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 ✔️ ✔️ ✔️

Other Sensors

Want More Sensors

For more Air Quality sensors open an issue.

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.

What's Changed

Full Changelog: 0.6.2...0.7.0

0.6.2

22 Nov 08:55
Compare
Choose a tag to compare

Serial Air Quality Sensors

Data acquisition and logging for Air Quality Sensors with UART interface

PyPI - Python Version
PyPI
Build Status
GitHub issues
GitHub license
DOI

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 ✔️ ✔️ ✔️

Other Sensors

What's Changed

New Contributors

Full Changelog: 0.6.1...0.6.2

0.6.1

07 Sep 07:21
Compare
Choose a tag to compare

Serial Air Quality Sensors

Data acquisition and logging for Air Quality Sensors with UART interface

PyPI - Python Version
PyPI
Build Status
GitHub issues
GitHub license
DOI

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 ✔️ ✔️ ✔️

Other Sensors

Want More Sensors

For more Air Quality sensors open an issue.

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.

Changelog

  • 0.6.1
    • fix pms.sensors.sensirion module name and docs
    • reliably recognize SPS30 sensor #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
  • 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
  • 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.*

0.6.0

08 Jul 07:30
Compare
Choose a tag to compare

Serial Air Quality Sensors

Data acquisition and logging for Air Quality Sensors with UART interface

PyPI - Python Version
PyPI
Build Status
GitHub issues
GitHub license
DOI

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 ✔️ ✔️ ✔️

Other Sensors

Want More Sensors

For more Air Quality sensors open an issue.

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.

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
  • 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
  • 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.*

PyPMS 0.5.0 (202010)

25 Oct 16:43
Compare
Choose a tag to compare

Serial Air Quality Sensors

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

PyPI - Python Version
PyPI
Build Status
GitHub issues
GitHub license
Checked with mypy
Code style: black
Imports: isort
DOI

Command Line Interface

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

PyPMS 0.4.0 (202010)

04 Oct 12:26
Compare
Choose a tag to compare

Serial Air Quality Sensors

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

PyPI - Python Version
PyPI
Build Status
GitHub issues
GitHub license
Checked with mypy
Code style: black
DOI

Command Line Interface

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
  mqtt      Read sensor and push PM measurements to a MQTT server
  serial    Read sensor and print measurements

For details on a particular command and their options

pms COMMAND --help

PyPMS 0.3.0 (202009)

25 Sep 11:06
Compare
Choose a tag to compare

Serial Air Quality Sensors

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

Build Status
GitHub issues
GitHub license
Checked with mypy
Code style: black

Command Line Interface

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

  Read serial sensor

Options:
  --sensor-model -m [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]

  --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
  mqtt      Read sensor and push PM measurements to a MQTT server
  serial    Read sensor and print measurements

For details on a particular command and their options

pms COMMAND --help