diff --git a/components/sensor/images/eco2-tvoc.png b/components/sensor/images/eco2-tvoc.png new file mode 100644 index 000000000..1c65b1871 Binary files /dev/null and b/components/sensor/images/eco2-tvoc.png differ diff --git a/components/sensor/images/sgp30.png b/components/sensor/images/sgp30.png new file mode 100644 index 000000000..e3ad41bac Binary files /dev/null and b/components/sensor/images/sgp30.png differ diff --git a/components/sensor/sgp30.rst b/components/sensor/sgp30.rst new file mode 100644 index 000000000..e5a949389 --- /dev/null +++ b/components/sensor/sgp30.rst @@ -0,0 +1,105 @@ +SGP30 CO₂ and Volatile Organic Compound Sensor +============================================== + +.. seo:: + :description: Instructions for setting up SGP30 CO₂eq and Volatile Organic Compound sensor + :image: sgp30.png + +The ``sgp30`` sensor platform allows you to use your Sensiron SGP30 multi-pixel gas +(`datasheet `__) sensors or the SVM30 breakout-boards (`product page `__) with ESPHome. +The :ref:`I²C Bus ` is required to be set up in your configuration for this sensor to work. + +.. figure:: images/eco2-tvoc.png + :align: center + :width: 80.0% + +.. code-block:: yaml + + # Example configuration entry + sensor: + - platform: sgp30 + eco2: + name: "Workshop eCO2" + accuracy_decimals: 1 + tvoc: + name: "Workshop TVOC" + accuracy_decimals: 1 + address: 0x58 + update_interval: 5s + + +Configuration variables: +------------------------ + +- **eco2** (**Required**): The information for the CO₂eq. sensor. + + - **name** (**Required**, string): The name for the CO₂eq sensor. + - **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas. + - All other options from :ref:`Sensor `. + +- **tvoc** (**Required**): The information for the total Volatile Organic Compounds sensor. + + - **name** (**Required**, string): The name for the humidity sensor. + - **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas. + - All other options from :ref:`Sensor `. + +- **address** (*Optional*, int): Manually specify the i^2c address of the sensor. + Defaults to ``0x58``. + +- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the + sensor. Defaults to ``60s``. + +Advanced: + +- **baseline** (*Optional*, int): The baseline value for the unit, for calibration + purposes. See :ref:`sgp30-calibrating` for more info. + +- **compensation** (*Optional*): The block containing sensors used for compensation. + + - **temperature_source** (*Optional*, :ref:`config-id`): Give an external temperature sensor ID + here. This can improve the sensor's internal calculations. + + - **humidity_source** (*Optional*, :ref:`config-id`): Give an external humidity sensor ID + here. This can improve the sensor's internal calculations. + +.. _sgp30-calibrating: + +Calibrating Baseline +-------------------- + +The SGP30 sensor will re-calibrate its baseline each time it is powered on. During the first power-up this can take upto 12 hours. + +For best performance and faster startup times, the current **baseline** needs to be persistently stored on the device before shutting it down and set again accordingly after boot up +that also means that if the sensor reboots at a time when the air is less clean than normal, +the values will have a constant offset and cannot be compared to the values before the last +boot. + +To do this, let the sensor boot up with no baseline set and let the sensor calibrate itself. After around 12 hours you can then view the remote logs on the ESP. The next +time the sensor is read out, you will see a log message with something like ``Current eCO2 & TVOC baseline: 0x44D4``. + +Now set the baseline property in your configuration file like so with the value you got +via the logs: + +.. code-block:: yaml + + # Example configuration entry + sensor: + - platform: sgp30 + # ... + baseline: 0x44D4 + +The next time you upload the code, the SGP30 will be continue its operation with this baseline and you will get consistent values. + +Please note that Sensirion recommends that after around 7 days, the baseline will need to be +re-calibrated because the internal sensor has a slight value drift over time. + +See Also +-------- + +- :ref:`sensor-filters` +- :doc:`dht` +- :doc:`dht12` +- :doc:`hdc1080` +- :doc:`htu21d` +- :apiref:`sgp30/sgp30.h` +- :ghedit:`Edit` diff --git a/images/sgp30.jpg b/images/sgp30.jpg new file mode 100644 index 000000000..f5d4614c7 Binary files /dev/null and b/images/sgp30.jpg differ diff --git a/index.rst b/index.rst index 9f6a0f2d2..9bd606b36 100644 --- a/index.rst +++ b/index.rst @@ -133,6 +133,7 @@ Sensor Components SDS011 Sensor, components/sensor/sds011, sds011.jpg SCD30, components/sensor/scd30, scd30.jpg SHT3X-D, components/sensor/sht3xd, sht3xd.jpg + SGP30, components/sensor/sgp30, sgp30.jpg TCS34725, components/sensor/tcs34725, tcs34725.jpg Template Sensor, components/sensor/template, description.svg Total Daily Energy, components/sensor/total_daily_energy, sigma.svg