The Grove - Laser PM2.5 Sensor (HM3301)
=======================================

.. seo::
    :description: Instructions for setting up HM3301 Particulate matter sensor
    :image: hm3301.png

The ``HM3301`` sensor platform allows you to use your HM3301 particulate matter sensor
(`more info <http://wiki.seeedstudio.com/Grove-Laser_PM2.5_Sensor-HM3301>`__)
sensors with ESPHome.

The sensor communicate with board by :ref:`I²C <i2c>` protocol, and requires 3.3v.

.. code-block:: yaml

    # Example configuration entry
    i2c:

    sensor:
      - platform: hm3301
        pm_1_0:
          name: "PM1.0"
        pm_2_5:
          name: "PM2.5"
        pm_10_0:
          name: "PM10.0"
        aqi:
          name: "AQI"
          calculation_type: "CAQI"

Configuration variables:
------------------------

- **pm_1_0** (*Optional*): Use the concentration of particulates of size less than 1.0µm in µg per cubic meter.

  - **name** (**Required**, string): The name for the temperature sensor.
  - **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
  - All other options from :ref:`Sensor <config-sensor>`.

- **pm_2_5** (*Optional*): Use the concentration of particulates of size less than 2.5µm in µg per cubic meter.

  - **name** (**Required**, string): The name for the temperature sensor.
  - **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
  - All other options from :ref:`Sensor <config-sensor>`.

- **pm_10_0** (*Optional*): Use the concentration of particulates of size less than 10.0µm in µg per cubic meter.

  - **name** (**Required**, string): The name for the temperature sensor.
  - **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
  - All other options from :ref:`Sensor <config-sensor>`.

- **aqi** (*Optional*): AQI sensor. Requires the ``pm_2_5`` and ``pm_10_0`` sensors defined. See below.

  - **calculation_type** (**Required**): One of: ``AQI`` or ``CAQI``.
  - **name** (**Required**, string): The name for the temperature sensor.
  - **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
  - All other options from :ref:`Sensor <config-sensor>`.

Air Quality Sensor:
-------------------

There is a sensor which calculates quality of air based on PM 2.5 and PM 10.0 values.
There are two implementations:

- AQI: USA air quality standard
- CAQI: Europe air quality standard

.. code-block:: yaml

    sensor:
      - platform: hm3301
        pm_2_5:
          name: "PM2.5"
        pm_10_0:
          name: "PM10.0"
        aqi:
          name: "AQI"
          calculation_type: "CAQI"


See Also
--------

- :doc:`/components/sensor/sds011`
- :ref:`sensor-filters`
- :apiref:`hm3301/hm3301.h`
- :ghedit:`Edit`
