Releases: avaldebe/PyPMS
0.7.1
Serial Air Quality Sensors
Data acquisition and logging for Air Quality Sensors with UART interface
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
- 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. - MHZ19B:
infrared CO2 sensor module from Winsen.
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
- Disable logging unless code is running in CLI by @benthorner in #37
Full Changelog: 0.7.0...0.7.1
0.7.0
Serial Air Quality Sensors
Data acquisition and logging for Air Quality Sensors with UART interface
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
- 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. - MHZ19B:
infrared CO2 sensor module from Winsen.
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
- Add tests to support SensorReader refactoring by @benthorner in #29
- Favour "data" over "raw" in ObsData tests by @benthorner in #30
- Improve coverage for reader classes by @benthorner in #31
- Introduce API for granular (Sensor)Reader operation by @benthorner in #33
- Enable pre-heat for PMSx003 sensors by @benthorner in #35
- maintenance before new version release by @avaldebe in #34
Full Changelog: 0.6.2...0.7.0
0.6.2
Serial Air Quality Sensors
Data acquisition and logging for Air Quality Sensors with UART interface
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
- 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. - MHZ19B:
infrared CO2 sensor module from Winsen.
What's Changed
- Move root logger config to CLI module by @benthorner in #28
New Contributors
- @benthorner made their first contribution in #28
Full Changelog: 0.6.1...0.6.2
0.6.1
Serial Air Quality Sensors
Data acquisition and logging for Air Quality Sensors with UART interface
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
- 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. - MHZ19B:
infrared CO2 sensor module from Winsen.
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
- fix
- 0.6.0
- project site
- reorganize internal modules
pms.core
: core functionality, such asSensor
andSensorReader
pms.sensors
: sensor modules grouped by manufacturerpms.extra
: extra cli utilities, such aspms influxdb
andinfluxdb mqtt
- importing from
pms.sensor
is deprecated, import frompms.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"
- load sensor modules from entry points advertized as
- 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
onpms mqtt
andpms bridge
$MQTT_USER
sets--mqtt-user
onpms mqtt
andpms bridge
$DB_USER
sets--db-user
onpms influxdb
andpms bridge
$DB_PASS
sets--db-pass
onpms influxdb
andpms bridge
- set username/password with environment variables:
- 0.4.1
- 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
- capture raw messages with
- 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.*
- 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
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
- 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. - MHZ19B:
infrared CO2 sensor module from Winsen.
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 asSensor
andSensorReader
pms.sensors
: sensor modules grouped by manufacturerpms.extra
: extra cli utilities, such aspms influxdb
andinfluxdb mqtt
- importing from
pms.sensor
is deprecated, import frompms.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"
- load sensor modules from entry points advertized as
- 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
onpms mqtt
andpms bridge
$MQTT_USER
sets--mqtt-user
onpms mqtt
andpms bridge
$DB_USER
sets--db-user
onpms influxdb
andpms bridge
$DB_PASS
sets--db-pass
onpms influxdb
andpms bridge
- set username/password with environment variables:
- 0.4.1
- 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
- capture raw messages with
- 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.*
- 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
PyPMS 0.5.0 (202010)
Serial Air Quality Sensors
Tools for reading Air Quality Sensors with serial (UART) interface, data acquisition and logging.
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)
Serial Air Quality Sensors
Tools for reading Air Quality Sensors with serial (UART) interface, data acquisition and logging.
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)
Serial Air Quality Sensors
Tools for reading Air Quality Sensors with serial (UART) interface, data acquisition and logging.
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