# -*- coding: utf-8 -*-
from setuptools import setup

package_dir = \
{'': 'src'}

packages = \
['pms',
 'pms.sensor',
 'pms.sensor.bosch_sensortec',
 'pms.sensor.honeywell',
 'pms.sensor.novafitness',
 'pms.sensor.plantower',
 'pms.sensor.senserion',
 'pms.service']

package_data = \
{'': ['*']}

install_requires = \
['mypy-extensions>=0.4.0', 'pyserial>=3.0', 'typer>=0.3.0']

extras_require = \
{':python_version >= "3.6" and python_version < "4.0"': ['dataclasses>=0.6'],
 'influxdb': ['influxdb>=5.2.0'],
 'mqtt': ['paho-mqtt>=1.4.0']}

entry_points = \
{'console_scripts': ['pms = pms.cli:main']}

setup_kwargs = {
    'name': 'pypms',
    'version': '0.3.1',
    'description': 'Data acquisition and logging tool for PM sensors with UART interface',
    'long_description': "# Serial Air Quality Sensors\n\nTools for reading Air Quality Sensors with serial (UART) interface, data acquisition and logging.\n\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pypms)](https://pypi.org/project/pypms)\n[![PyPI](https://img.shields.io/pypi/v/pypms)](https://pypi.org/project/pypms)\n[![Build Status](https://travis-ci.com/avaldebe/PyPMS.svg?branch=master)](https://travis-ci.com/avaldebe/PyPMS)\n[![GitHub issues](https://img.shields.io/github/issues/avaldebe/PyPMS)](https://github.com/avaldebe/PyPMS/issues)\n[![GitHub license](https://img.shields.io/github/license/avaldebe/PyPMS)](https://github.com/avaldebe/PyPMS/blob/master/LICENSE)\n[![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![DOI](https://zenodo.org/badge/203110737.svg)](https://zenodo.org/badge/latestdoi/203110737)\n\n## Command Line Interface\n\n```man\nUsage: pms [OPTIONS] COMMAND [ARGS]...\n\n  Read serial sensor\n\nOptions:\n  --sensor-model -m [PMSx003|PMS3003|PMS5003S|PMS5003ST|PMS5003T|SDS01x|SDS198|HPMA115S0|HPMA115C0|SPS30|MCU680]\n                                  sensor model  [default: PMSx003]\n  -s, --serial-port TEXT          serial port  [default: /dev/ttyUSB0]\n  -i, --interval INTEGER          seconds to wait between updates  [default:\n                                  60]\n  -n, --samples INTEGER           stop after N samples\n  --debug                         print DEBUG/logging messages  [default:\n                                  False]\n\n  --install-completion [bash|zsh|fish|powershell|pwsh]\n                                  Install completion for the specified shell.\n  --show-completion [bash|zsh|fish|powershell|pwsh]\n                                  Show completion for the specified shell, to\n                                  copy it or customize the installation.\n\n  --help                          Show this message and exit.\n\nCommands:\n  bridge    Bridge between MQTT and InfluxDB servers\n  csv       Read sensor and print measurements\n  influxdb  Read sensor and push PM measurements to an InfluxDB server\n  mqtt      Read sensor and push PM measurements to a MQTT server\n  serial    Read sensor and print measurements\n```\n\nFor details on a particular command and their options\n\n```bash\npms COMMAND --help\n```\n\n## Installation\n\n```bash\n# basic installation with pip\npython3 -m pip install pypms\n\n# or with pipx\npipx install pypms\n```\n\nWill allow you yo access to sensors via serial port (`pms serial`),\nand save observations to a csv file (`pms csv`).\n\nAdditional packages are required for pushing observations to an mqtt server\n(`pms mqtt`), to an influxdb server (`pms influxdb`), or provide a bridge\nbetween mqtt and influxdb servers (`pms bridge`).\n\n```bash\n# full installation with pip\npython3 -m pip install pypms[mqtt,influxdb]\n\n# or with pipx\npipx install pypms[mqtt,influxdb]\n```\n\n## Particulate Matter Sensors\n\n| Sensor            | `--sensor-model` |  PM1  | PM2.5 |  PM4  | PM10  | size bins | Other                  | Tested Works | Doesn't Work | Not Tested | Datasheet                     | Notes                |\n| ----------------- | ---------------- | :---: | :---: | :---: | :---: | :-------: | ---------------------- | :----------: | :----------: | :--------: | ----------------------------- | -------------------- |\n| [Plantower][]     |\n| PMS1003 (aka G1)  | `PMSx003`        |   X   |   X   |       |   X   |     6     |                        |              |              |     X      | [en][g1_aqmd],  [cn][g1_lcsc] |\n| PMS3003 (aka G3)  | `PMS3003`        |   X   |   X   |       |   X   |           |                        |      X       |              |            | [en][g3_aqmon], [cn][g3_lcsc] | No passive mode read |\n| PMS5003 (aka G5)  | `PMSx003`        |   X   |   X   |       |   X   |     6     |                        |              |              |     X      | [en][g5_aqmd],  [cn][g5_lcsc] |\n| PMS5003S          | `PMS5003S`       |   X   |   X   |       |   X   |     6     | HCHO concentration     |              |              |     X      |\n| PMS5003ST         | `PMS5003ST`      |   X   |   X   |       |   X   |     6     | HCHO, temp. & rel.hum. |              |              |     X      |\n| PMS5003T          | `PMS5003T`       |   X   |   X   |       |   X   |     4     | temp. & rel.hum.       |              |              |     X      |\n| PMS7003 (aka G7)  | `PMSx003`        |   X   |   X   |       |   X   |     6     |                        |      X       |              |            | [cn][g7_lcsc]                 |\n| PMSA003 (aka G10) | `PMSx003`        |   X   |   X   |       |   X   |     6     |                        |      X       |              |            | [cn][gA_lcsc]                 |\n| [NovaFitness][]   |\n| SDS011            | `SDS01x`         |       |   X   |       |   X   |           |                        |      X       |              |            | [en][SDS011]                  |\n| SDS018            | `SDS01x`         |       |   X   |       |   X   |           |                        |              |              |     X      | [en][SDS018]                  |\n| SDS021            | `SDS01x`         |       |   X   |       |   X   |           |                        |              |              |     X      | [en][SDS021]                  |\n| SDS198            | `SDS198`         |       |       |       |       |           | PM100                  |              |              |     X      | [en][SDS198]                  |\n| [Honeywell][]     |\n| HPMA115S0         | `HPMA115S0`      |       |   X   |       |   X   |           |                        |              |              |     X      | [en][HPMA115]                 |\n| HPMA115C0         | `HPMA115C0`      |   X   |   X   |   X   |   X   |           |                        |              |              |     X      | [en][HPMA115]                 |\n| [Senserion][]     |\n| SPS30             | `SPS30`          |   X   |   X   |   X   |   X   |     5     | typical particle size  |              |              |     X      | [en][SPS30]                   | UART 115200 8N1      |\n\n[plantower]: http://www.plantower.com/\n[g1_aqmd]:    http://www.aqmd.gov/docs/default-source/aq-spec/resources-page/plantower-pms1003-manual_v2-5.pdf?sfvrsn=2\n[g5_aqmd]:    http://www.aqmd.gov/docs/default-source/aq-spec/resources-page/plantower-pms5003-manual_v2-3.pdf?sfvrsn=2\n[g3_aqmon]:   https://github.com/avaldebe/AQmon/raw/master/Documents/PMS3003_LOGOELE.pdf\n[g5_aqmon]:   https://github.com/avaldebe/AQmon/raw/master/Documents/PMS5003_LOGOELE.pdf\n[g1_lcsc]:    https://datasheet.lcsc.com/szlcsc/PMS1003_C89289.pdf\n[g3_lcsc]:    https://datasheet.lcsc.com/szlcsc/PMS3003_C87024.pdf\n[g5_lcsc]:    https://datasheet.lcsc.com/szlcsc/PMS5003_C91431.pdf\n[g7_lcsc]:    https://datasheet.lcsc.com/szlcsc/PMS7003_C84815.pdf\n[gA_lcsc]:    https://datasheet.lcsc.com/szlcsc/PMSA003-A_C132744.pdf\n\n[NovaFitness]: http://inovafitness.com/en/a/index.html\n[SDS011]: https://www-sd-nf.oss-cn-beijing.aliyuncs.com/官网下载/SDS011%20laser%20PM2.5%20sensor%20specification-V1.4.pdf\n[SDS018]: https://www-sd-nf.oss-cn-beijing.aliyuncs.com/官网下载/SDS018%20Laser%20PM2.5%20Product%20Spec%20V1.5.pdf\n[SDS021]: https://cdn.sparkfun.com/assets/parts/1/2/2/7/5/SDS021_laser_PM2.5_sensor_specification-V1.0.pdf\n[SDS198]: https://www-sd-nf.oss-cn-beijing.aliyuncs.com/官网下载/SDS198%20laser%20PM100%20sensor%20specification-V1.2.pdf\n\n[Honeywell]: https://sensing.honeywell.com/sensors/particle-sensors/hpm-series\n[HPMA115]: https://sensing.honeywell.com/honeywell-sensing-particulate-hpm-series-datasheet-32322550\n\n[Senserion]: https://www.sensirion.com/en/environmental-sensors/particulate-matter-sensors-pm25/\n[SPS30]: https://www.sensirion.com/fileadmin/user_upload/customers/sensirion/Dokumente/9.6_Particulate_Matter/Datasheets/Sensirion_PM_Sensors_SPS30_Datasheet.pdf\n\n## Other Sensors\n\n- [MCU680][]:\n  chinese module with a [BME680][] sensor, [STM32F051K8][] mirocontroller (μC) and 3.3V low-dropout regulator (LDO).\n  The μC acts as I2C/UART bridge, providing outputs from the [closed source integration library][BSEC].\n\n[MCU680]:   /docs/sensors/mcu680.md\n[BME680]:   https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bme680-ds001.pdf\n[STM32F051K8]:  https://www.st.com/en/microcontrollers-microprocessors/stm32f051k8.html\n[BSEC]:     https://www.bosch-sensortec.com/software-tools/software/bsec/\n\n## Want More Sensors\n\nFor more Air Quality sensors [open an issue][issue].\n\n[issue]: https://github.com/avaldebe/PyPMS/issues\n\n## Changelog\n\n- 0.3.1\n  - fix influxdb default tags\n- 0.3.0\n  - option for a fix number of samples\n  - PMSx003 consistency check after sleep/wake\n- 0.2.*\n  - widen project scope from PM sensors to AQ sensors in general\n  - support [BME680][] sensor ([MCU680][] module)\n- 0.1.*\n  - widen project scope beyond [Plantower][] PM sensors\n  - support [NovaFitness][], [Honeywell][] and [Senserion][]\xa0PM sensors\n  - cli for logging to csv file, InfluxDB server or MQTT server\n",
    'author': 'Alvaro Valdebenito',
    'author_email': 'avaldebe@gmail.com',
    'maintainer': None,
    'maintainer_email': None,
    'url': 'https://github.com/avaldebe/PyPMS',
    'package_dir': package_dir,
    'packages': packages,
    'package_data': package_data,
    'install_requires': install_requires,
    'extras_require': extras_require,
    'entry_points': entry_points,
    'python_requires': '>=3.6,<4.0',
}


setup(**setup_kwargs)
