mirror of
https://github.com/esphome/esphome-docs.git
synced 2025-01-25 22:11:29 +01:00
Merge branch 'current' into next
This commit is contained in:
commit
38d73ce10a
@ -73,6 +73,13 @@ Release 2023.2.3 - February 20
|
||||
- Fix MQTT discovery for climate after preset implementation :esphomepr:`4451` by :ghuser:`jmichiel`
|
||||
- Update distribution manifest :esphomepr:`4459` by :ghuser:`jesserockz`
|
||||
|
||||
Release 2023.2.4 - February 23
|
||||
------------------------------
|
||||
|
||||
- BL0939 state_class set for energy sensors :esphomepr:`4463` by :ghuser:`konsulten`
|
||||
- fix wiegand tag parity :esphomepr:`4476` by :ghuser:`ssieb`
|
||||
- Fix multiple remote_receivers with triggers :esphomepr:`4477` by :ghuser:`jesserockz`
|
||||
|
||||
Full list of changes
|
||||
--------------------
|
||||
|
||||
|
@ -26,7 +26,7 @@ You cannot use the Anova app over BLE whilst this component is connected, you
|
||||
should disconnect it first. To setup a (dis-)connect switch, see :doc:`/components/switch/ble_client`.
|
||||
|
||||
You need to specify unit_of_measurement as 'c' or 'f'. This ensures the stick's display
|
||||
uses the unit you intend. All values within ESPHome are converted to Celcius so you may
|
||||
uses the unit you intend. All values within ESPHome are converted to Celsius so you may
|
||||
need to do conversion again within the frontend if you use Fahrenheit.
|
||||
|
||||
.. warning::
|
||||
|
@ -20,7 +20,7 @@ and can be put in different modes like ``HEAT``, ``COOL``, ``HEAT_COOL`` or ``OF
|
||||
Base Climate Configuration
|
||||
--------------------------
|
||||
|
||||
All climate platforms in ESPHome inherit from the climate configuration schema.
|
||||
All climate platforms in ESPHome inherit from the climate configuration schema. In ESPHome, ``°C`` is assumed for all temperature values. Some platforms allow conversion or setting in ``°F``, this is specified separately.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
|
@ -29,6 +29,9 @@ Configuration variables:
|
||||
characters, digits and hyphens, and can be at most 24 characters long by default, or 31
|
||||
characters long if ``name_add_mac_suffix`` is ``false``.
|
||||
See :ref:`esphome-changing_node_name`.
|
||||
- **friendly_name** (*Optional*, string): This is the name sent to the frontend. It is used
|
||||
by Home Assistant as the integration name, device name, and is automatically prefixed to entities
|
||||
where necessary.
|
||||
|
||||
Advanced options:
|
||||
|
||||
@ -318,10 +321,16 @@ The same procedure can be done for changing the static IP of a device.
|
||||
Adding the MAC address as a suffix to the device name
|
||||
-----------------------------------------------------
|
||||
|
||||
Using ``name_add_mac_suffix`` allows the user to compile a single binary file to flash
|
||||
many of the same device and they will all have unique names/hostnames.
|
||||
Note that you will still need to create an individual YAML config file if you want to
|
||||
OTA update the devices in the future.
|
||||
Using ``name_add_mac_suffix`` allows :doc:`creators </guides/creators>` to
|
||||
provision multiple devices at the factory with a single firmware and still
|
||||
have unique identification for customer installs.
|
||||
|
||||
.. note::
|
||||
|
||||
End users will need to create an individual YAML config file if they want to OTA update the
|
||||
devices in the future. Creators can facilitate this process by providing ``dashboard_import`` URL
|
||||
for end users. This allows them to easily update their devices as new features are made available
|
||||
upstream.
|
||||
|
||||
|
||||
.. _esphome-creators_project:
|
||||
|
@ -58,31 +58,31 @@ Configuration variables:
|
||||
|
||||
- **longitude** (*Optional*): Include the Longitude as a sensor
|
||||
|
||||
- **name** (**Required**, string): The name to give the latitude sensor
|
||||
- **name** (**Required**, string): The name to give the longitude sensor
|
||||
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **speed** (*Optional*): Include the measured speed as a sensor
|
||||
|
||||
- **name** (**Required**, string): The name to give the latitude sensor
|
||||
- **name** (**Required**, string): The name to give the speed sensor
|
||||
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **course** (*Optional*): Include the measured course as a sensor
|
||||
|
||||
- **name** (**Required**, string): The name to give the latitude sensor
|
||||
- **name** (**Required**, string): The name to give the course sensor
|
||||
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **altitude** (*Optional*): Include the measured altitude as a sensor
|
||||
|
||||
- **name** (**Required**, string): The name to give the latitude sensor
|
||||
- **name** (**Required**, string): The name to give the altitude sensor
|
||||
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **satellites** (*Optional*): Include the number of tracking satellites being used as a sensor
|
||||
|
||||
- **name** (**Required**, string): The name to give the latitude sensor
|
||||
- **name** (**Required**, string): The name to give the tracking satellites sensor
|
||||
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
|
@ -149,7 +149,6 @@ discovery in your Home Assistant configuration with the following:
|
||||
# Example Home Assistant configuration.yaml entry
|
||||
mqtt:
|
||||
broker: ...
|
||||
discovery: true
|
||||
|
||||
And that should already be it 🎉 All devices defined through ESPHome should show up automatically
|
||||
in the entities section of Home Assistant.
|
||||
@ -308,7 +307,6 @@ Also make sure to change the ``port`` of the mqtt broker. Most brokers use port
|
||||
mqtt:
|
||||
broker: test.mymqtt.local
|
||||
port: 8883
|
||||
discovery: true
|
||||
discovery_prefix: ${mqtt_prefix}/homeassistant
|
||||
log_topic: ${mqtt_prefix}/logs
|
||||
# Evaluate carefully skip_cert_cn_check
|
||||
@ -353,7 +351,6 @@ MQTT can have some overrides for specific options.
|
||||
name: "Component Name"
|
||||
# Optional variables:
|
||||
retain: true
|
||||
discovery: true
|
||||
availability:
|
||||
topic: livingroom/status
|
||||
payload_available: online
|
||||
|
@ -40,7 +40,7 @@ Configuration variables:
|
||||
- ``U_DWORD_R`` (unsigned 32 bit integer from 2 registers low word first)
|
||||
- ``S_DWORD_R`` (signed 32 bit integer from 2 registers low word first)
|
||||
- ``U_QWORD`` (unsigned 64 bit integer from 4 registers = 64bit)
|
||||
- ``S_QWORD`` (unsigned 64 bit integer from 4 registers = 64bit)
|
||||
- ``S_QWORD`` (signed 64 bit integer from 4 registers = 64bit)
|
||||
- ``U_QWORD_R`` (unsigned 64 bit integer from 4 registers low word first)
|
||||
- ``U_QWORD_R`` (signed 64 bit integer from 4 registers low word first)
|
||||
|
||||
|
@ -63,7 +63,7 @@ ESP32 Attenuation
|
||||
|
||||
On the ESP32 the voltage measured with the ADC caps out at ~1.1V by default as the sensing range (attenuation of the ADC) is set to ``0db`` by default.
|
||||
Measuring higher voltages requires setting ``attenuation`` to one of the following values: ``0db``, ``2.5db``, ``6db``, ``11db``.
|
||||
There's more information `at the manufacturer's website <https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/adc.html#_CPPv425adc1_config_channel_atten14adc1_channel_t11adc_atten_t>`__.
|
||||
There's more information `at the manufacturer's website <https://docs.espressif.com/projects/esp-idf/en/v4.4.2/esp32/api-reference/peripherals/adc.html#_CPPv425adc1_config_channel_atten14adc1_channel_t11adc_atten_t>`__.
|
||||
|
||||
To simplify this, we provide the setting ``attenuation: auto`` for an automatic/seamless transition among scales. `Our implementation
|
||||
<https://github.com/esphome/esphome/blob/dev/esphome/components/adc/adc_sensor.cpp>`__ combines all available ranges to allow the best resolution without having to compromise on a specific attenuation.
|
||||
|
@ -2,7 +2,7 @@ BME680 Temperature+Pressure+Humidity+Gas Sensor via BSEC
|
||||
========================================================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up BME680 temperature, humidity, pressure and gas sensors via BSEC.
|
||||
:description: Instructions for setting up BME680 temperature, humidity, pressure, and gas sensors via BSEC.
|
||||
:image: bme680.jpg
|
||||
:keywords: BME680
|
||||
|
||||
@ -12,12 +12,13 @@ Component/Hub
|
||||
The ``bme680_bsec`` sensor platform allows you to use your BME680
|
||||
(`datasheet <https://cdn-shop.adafruit.com/product-files/3660/BME680.pdf>`__,
|
||||
`Adafruit`_) temperature, pressure and humidity and gas sensors with ESPHome via the Bosch Sensortec Environmental Cluster (BSEC)
|
||||
software library. The use of Bosch's proprietary algorithms provides additional Indoor Air Quality (IAQ), CO2 equivalent and Breath
|
||||
Volatile Organic Compounds (VOC) equivalent measurements.
|
||||
software library. The use of Bosch's proprietary algorithms provide an Index for Air Quality (IAQ) measurement derived from the
|
||||
gas resistance sensor's response to specific Volatile Organic Compounds (VOC). The BSEC software also provides estimated values
|
||||
for CO₂ and Breath Volatile Organic Compounds (b-VOC) using a correlation between VOC and CO₂ in a human's exhaled breath.
|
||||
|
||||
.. note::
|
||||
|
||||
The Bosch BSEC library is only available for use after accepting its software license agreement. By enabling this component,
|
||||
The BSEC library is only available for use after accepting its software license agreement. By enabling this component,
|
||||
you are explicitly agreeing to the terms of the `BSEC license agreement`_. You must not distribute any compiled firmware
|
||||
binaries that include this component.
|
||||
|
||||
@ -101,9 +102,9 @@ Configuration variables:
|
||||
Can be ``mobile`` for mobile applications (e.g. carry-on devices).
|
||||
|
||||
- **sample_rate** (*Optional*, string): Sample rate. Default is ``lp`` for low power consumption, sampling every 3 seconds.
|
||||
Can be ``ulp`` for ultra low power, sampling every 5 minutes.
|
||||
This controls the sampling rate for gas-dependant sensors and will govern the interval at which the sensor heater is operated.
|
||||
By default this rate will also be used for temperature, pressure and humidity sensors but these can be overridden on a per-sensor level if required.
|
||||
Can be ``ulp`` for ultra-low power, sampling every 5 minutes.
|
||||
This controls the sampling rate for gas-dependent sensors and will govern the interval at which the sensor heater is operated.
|
||||
By default, this rate will also be used for temperature, pressure, and humidity sensors but these can be overridden on a per-sensor level if required.
|
||||
|
||||
- **state_save_interval** (*Optional*, :ref:`config-time`): The minimum interval at which to save calibrated BSEC algorithm state to
|
||||
flash so that calibration doesn't have to start from zero on device restart. Defaults to ``6h``.
|
||||
@ -121,21 +122,21 @@ Configuration variables:
|
||||
|
||||
- **name** (**Required**, string): The name for the temperature sensor.
|
||||
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||
- **sample_rate** (*Optional*, string): Optional sample rate override for this sensor. Can be ``lp`` for low power consumption, sampling every 3 seconds or ``ulp`` for ultra low power, sampling every 5 minutes.
|
||||
- **sample_rate** (*Optional*, string): Optional sample rate override for this sensor. Can be ``lp`` for low power consumption, sampling every 3 seconds or ``ulp`` for ultra-low power, sampling every 5 minutes.
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **pressure** (*Optional*): The information for the pressure sensor.
|
||||
|
||||
- **name** (**Required**, string): The name for the pressure sensor.
|
||||
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||
- **sample_rate** (*Optional*, string): Optional sample rate override for this sensor. Can be ``lp`` for low power consumption, sampling every 3 seconds or ``ulp`` for ultra low power, sampling every 5 minutes.
|
||||
- **sample_rate** (*Optional*, string): Optional sample rate override for this sensor. Can be ``lp`` for low power consumption, sampling every 3 seconds or ``ulp`` for ultra-low power, sampling every 5 minutes.
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **humidity** (*Optional*): The information for the humidity 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.
|
||||
- **sample_rate** (*Optional*, string): Optional sample rate override for this sensor. Can be ``lp`` for low power consumption, sampling every 3 seconds or ``ulp`` for ultra low power, sampling every 5 minutes.
|
||||
- **sample_rate** (*Optional*, string): Optional sample rate override for this sensor. Can be ``lp`` for low power consumption, sampling every 3 seconds or ``ulp`` for ultra-low power, sampling every 5 minutes.
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **gas_resistance** (*Optional*): The information for the gas sensor.
|
||||
@ -156,9 +157,9 @@ Configuration variables:
|
||||
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **co2_equivalent** (*Optional*): The information for the CO2 equivalent sensor.
|
||||
- **co2_equivalent** (*Optional*): The information for the CO₂ equivalent sensor.
|
||||
|
||||
- **name** (**Required**, string): The name for the CO2 equivalent sensor.
|
||||
- **name** (**Required**, string): The name for the CO₂ equivalent sensor.
|
||||
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
@ -194,7 +195,7 @@ Advanced configuration
|
||||
The following configuration shows all the available sensors and optional settings for the component. It also includes an example of filtering to guard against
|
||||
outliers, limit the number of updates sent to home assistant and reduce storage requirements in other systems such as influxdb used to store historical data.
|
||||
|
||||
For each sensor all other options from :ref:`Sensor <config-sensor>` and :ref:`TextSensor <config-text_sensor>` are also available for filtering, automation and so on.
|
||||
For each sensor, all other options from :ref:`Sensor <config-sensor>` and :ref:`TextSensor <config-text_sensor>` are also available for filtering, automation and so on.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
@ -217,7 +218,7 @@ For each sensor all other options from :ref:`Sensor <config-sensor>` and :ref:`T
|
||||
# Temperature offset
|
||||
# ------------------
|
||||
# Useful if device is in enclosure and reads too high
|
||||
# For example if it reads 5C too high, set this to 5
|
||||
# For example, if it reads 5C too high, set this to 5
|
||||
# This also corrects the relative humidity readings
|
||||
# Default: 0
|
||||
temperature_offset: 0
|
||||
@ -226,7 +227,7 @@ For each sensor all other options from :ref:`Sensor <config-sensor>` and :ref:`T
|
||||
# --------------------
|
||||
# Available options:
|
||||
# - static (for fixed position devices)
|
||||
# - mobile (for on person or other moveable devices)
|
||||
# - mobile (for on a person or other moveable devices)
|
||||
# Default: static
|
||||
iaq_mode: static
|
||||
|
||||
@ -234,7 +235,7 @@ For each sensor all other options from :ref:`Sensor <config-sensor>` and :ref:`T
|
||||
# -----------
|
||||
# Available options:
|
||||
# - lp (low power - samples every 3 seconds)
|
||||
# - ulp (ultra low power - samples every 5 minutes)
|
||||
# - ulp (ultra-low power - samples every 5 minutes)
|
||||
# Default: lp
|
||||
sample_rate: ulp
|
||||
|
||||
@ -298,6 +299,7 @@ For each sensor all other options from :ref:`Sensor <config-sensor>` and :ref:`T
|
||||
name: "BME680 IAQ Accuracy"
|
||||
|
||||
|
||||
<<<<<<< HEAD
|
||||
Multiple sensors
|
||||
----------------------
|
||||
|
||||
@ -371,17 +373,65 @@ The following configuration shows how to set up multiple BME680 devices. They ca
|
||||
|
||||
Indoor Air Quality (IAQ) Measurement
|
||||
------------------------------------
|
||||
=======
|
||||
Index for Air Quality (IAQ) Measurement
|
||||
---------------------------------------
|
||||
|
||||
The measurements are expressed with an index scale ranging from 0 to 500. The index itself is deduced
|
||||
from tests using ethanol gas, as well as important VOC in the exhaled breath of healthy humans.
|
||||
The VOC values themselves are derived from several publications on breath analysis studies. The BSEC
|
||||
software library defines the levels as follows:
|
||||
|
||||
+-----------+---------------------+
|
||||
| IAQ Index | Air Quality |
|
||||
+===========+=====================+
|
||||
| 0 - 50 | Excellent |
|
||||
+-----------+---------------------+
|
||||
| 51 - 100 | Good |
|
||||
+-----------+---------------------+
|
||||
| 101 - 150 | Lightly polluted |
|
||||
+-----------+---------------------+
|
||||
| 151 - 200 | Moderately polluted |
|
||||
+-----------+---------------------+
|
||||
| 201 - 250 | Heavily polluted |
|
||||
+-----------+---------------------+
|
||||
| 251 - 350 | Severely polluted |
|
||||
+-----------+---------------------+
|
||||
| > 351 | Extremely polluted |
|
||||
+-----------+---------------------+
|
||||
|
||||
The selected b-VOC gasses are as follows:
|
||||
|
||||
+--------------------+----------------+
|
||||
| Compound | Molar fraction |
|
||||
+====================+================+
|
||||
| `Ethane`_ | 5 ppm |
|
||||
+--------------------+----------------+
|
||||
| `Isoprene`_ | 10 ppm |
|
||||
+--------------------+----------------+
|
||||
| `Ethanol`_ | 10 ppm |
|
||||
+--------------------+----------------+
|
||||
| `Acetone`_ | 50 ppm |
|
||||
+--------------------+----------------+
|
||||
| `Carbon Monoxide`_ | 15 ppm |
|
||||
+--------------------+----------------+
|
||||
|
||||
.. _Ethane: https://en.wikipedia.org/wiki/Ethane
|
||||
.. _Isoprene: https://en.wikipedia.org/wiki/Isoprene
|
||||
.. _Ethanol: https://en.wikipedia.org/wiki/Ethanol
|
||||
.. _Acetone: https://en.wikipedia.org/wiki/Acetone
|
||||
.. _Carbon Monoxide: https://en.wikipedia.org/wiki/Carbon_monoxide
|
||||
>>>>>>> current
|
||||
|
||||
Indoor Air Quality measurements are expressed in the IAQ index scale with 25IAQ corresponding to typical good air and 250IAQ
|
||||
indicating typical polluted air after calibration.
|
||||
|
||||
.. _bsec-calibration:
|
||||
|
||||
IAQ Accuracy and Calibration
|
||||
----------------------------
|
||||
|
||||
The BSEC algorithm automatically gathers data in order to calibrate the IAQ measurements. The IAQ Accuracy sensor will give one
|
||||
of the following values:
|
||||
The BSEC software automatically calibrates automatically in the background to provide consistent IAQ performance. The
|
||||
calibration process considers the recent measurement history so that a value of 50 corresponds to a “typical good”
|
||||
level and a value of 200 to a “typical polluted” level. The IAQ Accuracy sensor will give one of the following values:
|
||||
|
||||
- ``Stabilizing``: The device has just started, and the sensor is stabilizing (this typically lasts 5 minutes)
|
||||
- ``Uncertain``: The background history of BSEC is uncertain. This typically means the gas sensor data was too
|
||||
@ -399,6 +449,7 @@ See Also
|
||||
- :doc:`absolute_humidity`
|
||||
- :doc:`bme680`
|
||||
- :apiref:`bme680_bsec/bme680_bsec.h`
|
||||
- `BME680 Datasheet <https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bme680-ds001.pdf>`__
|
||||
- `BME680 VOC classification <https://community.bosch-sensortec.com/t5/MEMS-sensors-forum/BME680-VOC-classification/td-p/26154>`__
|
||||
- `BSEC Arduino Library <https://github.com/BoschSensortec/BSEC-Arduino-library>`__ by `Bosch Sensortec <https://www.bosch-sensortec.com/>`__
|
||||
- `Bosch Sensortec Community <https://community.bosch-sensortec.com/>`__
|
||||
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 18 KiB |
@ -7,7 +7,7 @@ EE895 CO₂, Temperature and Pressure Sensor
|
||||
|
||||
The ``ee895`` sensor platform allows you to use your EE895 CO₂
|
||||
(`datasheet <https://www.epluse.com/fileadmin/data/product/ee895/BA_EE895.pdf>`__,
|
||||
`E+E TEE501 <https://www.epluse.com/products/co2-measurement/co2-modules-and-probes/ee895/>`__) sensor with ESPHome.
|
||||
`E+E EE895 <https://www.epluse.com/products/co2-measurement/co2-modules-and-probes/ee895/>`__) sensor with ESPHome.
|
||||
The :ref:`I²C Bus <i2c>` is required to be set up in your configuration for this sensor to work. We recommend the use of pull up resistors.
|
||||
|
||||
.. figure:: images/EE895.png
|
||||
|
@ -349,7 +349,7 @@ Configuration variables:
|
||||
when pushing out a value.
|
||||
Defaults to ``5``.
|
||||
- **send_every** (*Optional*, int): How often a sensor value should be pushed out. For
|
||||
example, in above configuration the min is calculated after every 4th
|
||||
example, in above configuration the max is calculated after every 4th
|
||||
received sensor value, over the last 7 received values.
|
||||
Defaults to ``5``.
|
||||
- **send_first_at** (*Optional*, int): By default, the very first raw value on boot is immediately
|
||||
|
@ -8,7 +8,7 @@ MH-Z19 CO_2 and Temperature Sensor
|
||||
|
||||
The ``mhz19`` sensor platform allows you to use MH-Z19 CO_2 and temperature sensors
|
||||
(`refspace`_) with ESPHome.
|
||||
The CO_2 measurement also works with the MH-Z16 sensor.
|
||||
The CO_2 measurement also works with the MH-Z16 and MH-Z14 sensors.
|
||||
|
||||
.. figure:: images/mhz19-full.jpg
|
||||
:align: center
|
||||
|
@ -35,7 +35,6 @@ This component exposes the different gas concentration sensors from the `MiCS-45
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **pin** (**Required**, :ref:`config-pin`): The pin where the DHT bus is connected.
|
||||
- **nitrogen_dioxide** (*Optional*): All options from :ref:`Sensor <config-sensor>`
|
||||
- **carbon_monoxide** (*Optional*): All options from :ref:`Sensor <config-sensor>`
|
||||
- **hydrogen** (*Optional*): All options from :ref:`Sensor <config-sensor>`
|
||||
|
@ -93,7 +93,7 @@ measure the total consumed energy in kWh.
|
||||
sensor:
|
||||
- platform: pulse_counter
|
||||
pin: 12
|
||||
unit_of_measurement: 'kW'
|
||||
unit_of_measurement: 'Wh'
|
||||
name: 'Power Meter House'
|
||||
filters:
|
||||
- multiply: 0.06 # (60s/1000 pulses per kWh)
|
||||
|
@ -44,6 +44,19 @@ is close to GND (DOWNSTREAM) or it is closer to VCC (UPSTREAM).
|
||||
id: source_sensor
|
||||
pin: A0
|
||||
|
||||
Note:
|
||||
------------------------
|
||||
Some boards like NodeMCUv2 needs to multiply ADC reading by 3.3 to provide accurate result because they have built-in voltage divider on ADC pin (https://arduino.stackexchange.com/a/71952)
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example source sensor:
|
||||
- platform: adc
|
||||
id: source_sensor
|
||||
pin: A0
|
||||
filters:
|
||||
- multiply: 3.3
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
|
@ -105,15 +105,19 @@ As of April 2022 the average fresh air Co² concentration is 419 ppm.
|
||||
value: 419 # outside average April 2022
|
||||
id: my_scd41
|
||||
|
||||
value can be a template
|
||||
value can also be a template, for example to define a Home Assistant calibration service:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
then:
|
||||
- scd4x._perform_forced_calibration_action:
|
||||
value: !lambda "{ return 419 };"
|
||||
id: my_scd41
|
||||
api:
|
||||
services:
|
||||
- service: calibrate_co2_value
|
||||
variables:
|
||||
co2_ppm: int
|
||||
then:
|
||||
- scd4x.perform_forced_calibration:
|
||||
value: !lambda 'return co2_ppm;'
|
||||
id: my_scd41
|
||||
|
||||
|
||||
.. _factory_reset_action:
|
||||
@ -129,39 +133,53 @@ This :ref:`action <config-action>` triggers a factory reset of the sensor. Calib
|
||||
then:
|
||||
- scd4x.factory_reset: my_scd41
|
||||
|
||||
Automation
|
||||
-----------------
|
||||
Pressure compensation
|
||||
---------------------
|
||||
|
||||
Ambient pressure compensation compensation can be changed from :ref:`lambdas <config-lambda>`
|
||||
A static ambient pressure value can be set with `ambient_pressure_compensation` or `altitude_compensation`. It can also be changed dynamically with :ref:`lambdas <config-lambda>` using `set_ambient_pressure_compensation(<mBar>)`, or by pointing `ambient_pressure_compensation_source` to a local pressure sensor.
|
||||
|
||||
Example with a local sensor
|
||||
***************************
|
||||
|
||||
``set_ambient_pressure_compensation( <pressure in bar)``
|
||||
|
||||
|
||||
|
||||
Example
|
||||
*******
|
||||
|
||||
Note: that the pressure from bme280 is in hPa and must be converted to bar.
|
||||
Note: remember your pressure sensor needs to output in mBar
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
sensor:
|
||||
- platform: scd4x
|
||||
id: scd41
|
||||
i2c_id: bus_a
|
||||
co2:
|
||||
name: co2
|
||||
id: co2
|
||||
- platform: bme280
|
||||
pressure:
|
||||
name: "Ambient Pressure"
|
||||
id: bme_pressure
|
||||
|
||||
- platform: bme280
|
||||
pressure:
|
||||
name: "BME280-Pressure"
|
||||
id: bme280_pressure
|
||||
oversampling: 1x
|
||||
on_value:
|
||||
then:
|
||||
- lambda: "id(scd41)->set_ambient_pressure_compensation(x / 1000.0);"
|
||||
- platform: scd4x
|
||||
measurement_mode: low_power_periodic
|
||||
ambient_pressure_compensation_source: bme_pressure
|
||||
temperature_offset: 0
|
||||
co2:
|
||||
name: "CO2 level"
|
||||
|
||||
Example with a remote sensor
|
||||
****************************
|
||||
|
||||
This example creates a service `set_ambient_pressure` that can be called from Home Assistant:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
api:
|
||||
services:
|
||||
- service: set_ambient_pressure
|
||||
variables:
|
||||
pressure_mbar: int
|
||||
then:
|
||||
- lambda: "id(my_scd41)->set_ambient_pressure_compensation(pressure_mbar);"
|
||||
|
||||
sensor:
|
||||
- platform: scd4x
|
||||
id: my_scd41
|
||||
measurement_mode: low_power_periodic
|
||||
temperature_offset: 0
|
||||
co2:
|
||||
name: "CO2 level"
|
||||
|
||||
|
||||
See Also
|
||||
|
@ -114,7 +114,7 @@ Configuration variables:
|
||||
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **nox** (*Optional*): NOx Index. Note: Only available with Sen54 or Sen55. The sensor will be ignored on unsupported models.
|
||||
- **nox** (*Optional*): NOx Index. Note: Only available with Sen55. The sensor will be ignored on unsupported models.
|
||||
|
||||
- **name** (**Required**, string): The name of the sensor.
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||
@ -162,7 +162,7 @@ Configuration variables:
|
||||
Wiring:
|
||||
-------
|
||||
|
||||
The sensor has a JST GHR-06V-S 6 pin type connector, with a 1.5mm pitch. The cable needs this connector:
|
||||
The sensor has a JST GHR-06V-S 6 pin type connector, with a 1.25mm pitch. The cable needs this connector:
|
||||
|
||||
.. figure:: images/jst6pin.png
|
||||
:align: center
|
||||
|
@ -50,6 +50,7 @@ And in YAML:
|
||||
|
||||
switches:
|
||||
name: "My Custom Switches"
|
||||
id: my_custom_switch
|
||||
|
||||
Configuration variables:
|
||||
|
||||
|
@ -5,8 +5,7 @@ Safe Mode Switch
|
||||
:description: Instructions for setting up switches that can remotely reboot the ESP in ESPHome into safe mode.
|
||||
:image: restart.svg
|
||||
|
||||
The ``safe_mode`` switch allows you to remotely reboot your node into :ref:`Safe Mode <config-ota>`. This is useful in certain situations
|
||||
where a misbehaving component is preventing Over-The-Air updates from completing successfully.
|
||||
The ``safe_mode`` switch allows you to remotely reboot your node into :ref:`Safe Mode <config-ota>`. This is useful in certain situations where a misbehaving component, or low memoary state is preventing Over-The-Air updates from completing successfully.
|
||||
|
||||
This component requires :ref:`OTA <config-ota>` to be configured.
|
||||
|
||||
|
@ -37,7 +37,7 @@ Documentation:
|
||||
- `AirGradient Shop for the PCB or PCB plus components <https://www.airgradient.com/diyshop/>`__
|
||||
- `AirGradient Setup Guide (3D printeable case, setup guide, etc.) <https://www.airgradient.com/diy/>`__
|
||||
|
||||
`YAML configuration <https://github.com/ajfriesen/ESPHome-AirGradient/blob/main/air-gradient.yaml>`__
|
||||
`YAML configuration <https://github.com/ajfriesen/ESPHome-AirGradient/blob/main/air-gradient-diy.yaml>`__
|
||||
|
||||
Soldering and setup video:
|
||||
|
||||
|
@ -7,6 +7,10 @@ Sharing ESPHome devices
|
||||
We have added configuration options to ESPHome to make it easier
|
||||
to create, configure, install and distribute devices running ESPHome.
|
||||
|
||||
No part of a "template" configuration should have any references to secrets,
|
||||
or have passwords pre-applied. ESPHome makes it easy for the end-user to add these
|
||||
themselves after they adopt the device into their own ESPHome dashboard.
|
||||
|
||||
Example configuration
|
||||
---------------------
|
||||
|
||||
@ -14,10 +18,13 @@ Example configuration
|
||||
|
||||
# These substitutions allow the end user to override certain values
|
||||
substitutions:
|
||||
name: "project-template-32"
|
||||
name: "project-template"
|
||||
friendly_name: "Project Template"
|
||||
|
||||
esphome:
|
||||
name: "${name}"
|
||||
# Friendly names are used where appropriate in Home Assistant
|
||||
friendly_name: "${friendly_name}"
|
||||
# Automatically add the mac address to the name
|
||||
# so you can use a single firmware for all devices
|
||||
name_add_mac_suffix: true
|
||||
|
@ -122,3 +122,4 @@ Sample Configurations
|
||||
- `ESPHome Curtain/Cover/Shutter Switch from a noname Tuya switch <https://github.com/ludrao/esphome-shutterswitch>`__ by :ghuser:`ludrao`
|
||||
- `ESPHome Free your Thomson Guardian gate controller <https://github.com/ludrao/esphome-guardian>`__ by :ghuser:`ludrao`
|
||||
- `Ambient Light Sensor tcs34725 example <https://gist.github.com/RubenKelevra/0d70d6b4c8e4bc9aedc8682865731d65>`__ by :ghuser:`RubenKelevra`
|
||||
- `9 Valve Sprinkler Controller configuration <https://github.com/hwstar/9-Valve-Sprinkler-Controller>`__ by :ghuser:`hwstar`
|
||||
|
@ -299,6 +299,7 @@ Contributors
|
||||
- `Expaso (@Expaso) <https://github.com/Expaso>`__
|
||||
- `Malte Franken (@exxamalte) <https://github.com/exxamalte>`__
|
||||
- `Fabian Affolter (@fabaff) <https://github.com/fabaff>`__
|
||||
- `Fabian (@Fabian-Schmidt) <https://github.com/Fabian-Schmidt>`__
|
||||
- `Federico Ariel Castagnini (@facastagnini) <https://github.com/facastagnini>`__
|
||||
- `C W (@fake-name) <https://github.com/fake-name>`__
|
||||
- `Florian idB (@fbeek) <https://github.com/fbeek>`__
|
||||
@ -416,6 +417,7 @@ Contributors
|
||||
- `James Duke (@jamesduke) <https://github.com/jamesduke>`__
|
||||
- `James Gao (@jamesgao) <https://github.com/jamesgao>`__
|
||||
- `James Lakin (@jamesorlakin) <https://github.com/jamesorlakin>`__
|
||||
- `James Swift (@JamesSwift) <https://github.com/JamesSwift>`__
|
||||
- `Juraj Andrássy (@JAndrassy) <https://github.com/JAndrassy>`__
|
||||
- `Jan Grewe (@jangrewe) <https://github.com/jangrewe>`__
|
||||
- `János Rusiczki (@janosrusiczki) <https://github.com/janosrusiczki>`__
|
||||
@ -628,6 +630,7 @@ Contributors
|
||||
- `myhomeiot (@myhomeiot) <https://github.com/myhomeiot>`__
|
||||
- `Igor Scheller (@MyIgel) <https://github.com/MyIgel>`__
|
||||
- `Mynasru (@Mynasru) <https://github.com/Mynasru>`__
|
||||
- `Mikhail Zakharov (@mzakharo) <https://github.com/mzakharo>`__
|
||||
- `Kevin Uhlir (@n0bel) <https://github.com/n0bel>`__
|
||||
- `Erik Näsström (@Naesstrom) <https://github.com/Naesstrom>`__
|
||||
- `H. Árkosi Róbert (@nagyrobi) <https://github.com/nagyrobi>`__
|
||||
@ -779,6 +782,7 @@ Contributors
|
||||
- `ShellAddicted (@ShellAddicted) <https://github.com/ShellAddicted>`__
|
||||
- `sherbang (@sherbang) <https://github.com/sherbang>`__
|
||||
- `Shish (@shish) <https://github.com/shish>`__
|
||||
- `Shreyas Karnik (@shreyaskarnik) <https://github.com/shreyaskarnik>`__
|
||||
- `SiliconAvatar (@SiliconAvatar) <https://github.com/SiliconAvatar>`__
|
||||
- `Francisco J. Solis (@sisco0) <https://github.com/sisco0>`__
|
||||
- `Derek Hageman (@Sizurka) <https://github.com/Sizurka>`__
|
||||
@ -812,8 +816,6 @@ Contributors
|
||||
- `Jordan Vohwinkel (@sublime93) <https://github.com/sublime93>`__
|
||||
- `sumirati (@sumirati) <https://github.com/sumirati>`__
|
||||
- `swifty99 (@swifty99) <https://github.com/swifty99>`__
|
||||
- `Sybren A. Stüvel (@sybrenstuvel) <https://github.com/sybrenstuvel>`__
|
||||
- `Sympatron GmbH (@Sympatron) <https://github.com/Sympatron>`__
|
||||
- `synco (@synco) <https://github.com/synco>`__
|
||||
- `Marcel Feix (@Syndlex) <https://github.com/Syndlex>`__
|
||||
- `Suryandaru Triandana (@syndtr) <https://github.com/syndtr>`__
|
||||
@ -861,7 +863,6 @@ Contributors
|
||||
- `tube0013 (@tube0013) <https://github.com/tube0013>`__
|
||||
- `Alexey Vlasov (@turbulator) <https://github.com/turbulator>`__
|
||||
- `Seppel Hardt (@tuxBurner) <https://github.com/tuxBurner>`__
|
||||
- `TVDLoewe (@TVDLoewe) <https://github.com/TVDLoewe>`__
|
||||
- `Thorsten von Eicken (@tve) <https://github.com/tve>`__
|
||||
- `Ubi de Feo (@ubidefeo) <https://github.com/ubidefeo>`__
|
||||
- `uPesy Electronics (@uPesy) <https://github.com/uPesy>`__
|
||||
@ -908,4 +909,4 @@ Contributors
|
||||
- `Zack Barett (@zsarnett) <https://github.com/zsarnett>`__
|
||||
- `Christian Zufferey (@zuzu59) <https://github.com/zuzu59>`__
|
||||
|
||||
*This page was last updated February 20, 2023.*
|
||||
*This page was last updated February 23, 2023.*
|
||||
|
Loading…
Reference in New Issue
Block a user