Merge branch 'current' into next

This commit is contained in:
Jesse Hills 2023-03-08 01:10:46 +00:00
commit 38d73ce10a
No known key found for this signature in database
GPG Key ID: BEAAE804EFD8E83A
23 changed files with 185 additions and 82 deletions

View File

@ -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
--------------------

View File

@ -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::

View File

@ -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

View File

@ -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:

View File

@ -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>`.

View File

@ -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

View File

@ -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)

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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>`

View File

@ -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)

View File

@ -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:
------------------------

View File

@ -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

View File

@ -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

View File

@ -50,6 +50,7 @@ And in YAML:
switches:
name: "My Custom Switches"
id: my_custom_switch
Configuration variables:

View File

@ -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.

View File

@ -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:

View File

@ -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

View File

@ -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`

View File

@ -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.*