mirror of
https://github.com/esphome/esphome-docs.git
synced 2025-01-27 22:31:37 +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`
|
- Fix MQTT discovery for climate after preset implementation :esphomepr:`4451` by :ghuser:`jmichiel`
|
||||||
- Update distribution manifest :esphomepr:`4459` by :ghuser:`jesserockz`
|
- 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
|
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`.
|
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
|
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.
|
need to do conversion again within the frontend if you use Fahrenheit.
|
||||||
|
|
||||||
.. warning::
|
.. warning::
|
||||||
|
@ -20,7 +20,7 @@ and can be put in different modes like ``HEAT``, ``COOL``, ``HEAT_COOL`` or ``OF
|
|||||||
Base Climate Configuration
|
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
|
.. 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, digits and hyphens, and can be at most 24 characters long by default, or 31
|
||||||
characters long if ``name_add_mac_suffix`` is ``false``.
|
characters long if ``name_add_mac_suffix`` is ``false``.
|
||||||
See :ref:`esphome-changing_node_name`.
|
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:
|
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
|
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
|
Using ``name_add_mac_suffix`` allows :doc:`creators </guides/creators>` to
|
||||||
many of the same device and they will all have unique names/hostnames.
|
provision multiple devices at the factory with a single firmware and still
|
||||||
Note that you will still need to create an individual YAML config file if you want to
|
have unique identification for customer installs.
|
||||||
OTA update the devices in the future.
|
|
||||||
|
.. 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:
|
.. _esphome-creators_project:
|
||||||
|
@ -58,31 +58,31 @@ Configuration variables:
|
|||||||
|
|
||||||
- **longitude** (*Optional*): Include the Longitude as a sensor
|
- **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.
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
- All other options from :ref:`Sensor <config-sensor>`.
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
|
||||||
- **speed** (*Optional*): Include the measured speed as a 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.
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
- All other options from :ref:`Sensor <config-sensor>`.
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
|
||||||
- **course** (*Optional*): Include the measured course as a 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.
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
- All other options from :ref:`Sensor <config-sensor>`.
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
|
||||||
- **altitude** (*Optional*): Include the measured altitude as a 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.
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
- All other options from :ref:`Sensor <config-sensor>`.
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
|
||||||
- **satellites** (*Optional*): Include the number of tracking satellites being used as a 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.
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
- All other options from :ref:`Sensor <config-sensor>`.
|
- 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
|
# Example Home Assistant configuration.yaml entry
|
||||||
mqtt:
|
mqtt:
|
||||||
broker: ...
|
broker: ...
|
||||||
discovery: true
|
|
||||||
|
|
||||||
And that should already be it 🎉 All devices defined through ESPHome should show up automatically
|
And that should already be it 🎉 All devices defined through ESPHome should show up automatically
|
||||||
in the entities section of Home Assistant.
|
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:
|
mqtt:
|
||||||
broker: test.mymqtt.local
|
broker: test.mymqtt.local
|
||||||
port: 8883
|
port: 8883
|
||||||
discovery: true
|
|
||||||
discovery_prefix: ${mqtt_prefix}/homeassistant
|
discovery_prefix: ${mqtt_prefix}/homeassistant
|
||||||
log_topic: ${mqtt_prefix}/logs
|
log_topic: ${mqtt_prefix}/logs
|
||||||
# Evaluate carefully skip_cert_cn_check
|
# Evaluate carefully skip_cert_cn_check
|
||||||
@ -353,7 +351,6 @@ MQTT can have some overrides for specific options.
|
|||||||
name: "Component Name"
|
name: "Component Name"
|
||||||
# Optional variables:
|
# Optional variables:
|
||||||
retain: true
|
retain: true
|
||||||
discovery: true
|
|
||||||
availability:
|
availability:
|
||||||
topic: livingroom/status
|
topic: livingroom/status
|
||||||
payload_available: online
|
payload_available: online
|
||||||
|
@ -40,7 +40,7 @@ Configuration variables:
|
|||||||
- ``U_DWORD_R`` (unsigned 32 bit integer from 2 registers low word first)
|
- ``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)
|
- ``S_DWORD_R`` (signed 32 bit integer from 2 registers low word first)
|
||||||
- ``U_QWORD`` (unsigned 64 bit integer from 4 registers = 64bit)
|
- ``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`` (unsigned 64 bit integer from 4 registers low word first)
|
||||||
- ``U_QWORD_R`` (signed 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.
|
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``.
|
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
|
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.
|
<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::
|
.. 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
|
:image: bme680.jpg
|
||||||
:keywords: BME680
|
:keywords: BME680
|
||||||
|
|
||||||
@ -12,12 +12,13 @@ Component/Hub
|
|||||||
The ``bme680_bsec`` sensor platform allows you to use your BME680
|
The ``bme680_bsec`` sensor platform allows you to use your BME680
|
||||||
(`datasheet <https://cdn-shop.adafruit.com/product-files/3660/BME680.pdf>`__,
|
(`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)
|
`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
|
software library. The use of Bosch's proprietary algorithms provide an Index for Air Quality (IAQ) measurement derived from the
|
||||||
Volatile Organic Compounds (VOC) equivalent measurements.
|
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::
|
.. 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
|
you are explicitly agreeing to the terms of the `BSEC license agreement`_. You must not distribute any compiled firmware
|
||||||
binaries that include this component.
|
binaries that include this component.
|
||||||
|
|
||||||
@ -101,9 +102,9 @@ Configuration variables:
|
|||||||
Can be ``mobile`` for mobile applications (e.g. carry-on devices).
|
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.
|
- **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.
|
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.
|
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.
|
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
|
- **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``.
|
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.
|
- **name** (**Required**, string): The name for the temperature sensor.
|
||||||
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
- **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>`.
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
|
||||||
- **pressure** (*Optional*): The information for the pressure sensor.
|
- **pressure** (*Optional*): The information for the pressure sensor.
|
||||||
|
|
||||||
- **name** (**Required**, string): The name 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.
|
- **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>`.
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
|
||||||
- **humidity** (*Optional*): The information for the humidity sensor.
|
- **humidity** (*Optional*): The information for the humidity sensor.
|
||||||
|
|
||||||
- **name** (**Required**, string): The name 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.
|
- **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>`.
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
|
||||||
- **gas_resistance** (*Optional*): The information for the gas 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.
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
- All other options from :ref:`Sensor <config-sensor>`.
|
- 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.
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
- All other options from :ref:`Sensor <config-sensor>`.
|
- 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
|
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.
|
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
|
.. code-block:: yaml
|
||||||
|
|
||||||
@ -217,7 +218,7 @@ For each sensor all other options from :ref:`Sensor <config-sensor>` and :ref:`T
|
|||||||
# Temperature offset
|
# Temperature offset
|
||||||
# ------------------
|
# ------------------
|
||||||
# Useful if device is in enclosure and reads too high
|
# 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
|
# This also corrects the relative humidity readings
|
||||||
# Default: 0
|
# Default: 0
|
||||||
temperature_offset: 0
|
temperature_offset: 0
|
||||||
@ -226,7 +227,7 @@ For each sensor all other options from :ref:`Sensor <config-sensor>` and :ref:`T
|
|||||||
# --------------------
|
# --------------------
|
||||||
# Available options:
|
# Available options:
|
||||||
# - static (for fixed position devices)
|
# - static (for fixed position devices)
|
||||||
# - mobile (for on person or other moveable devices)
|
# - mobile (for on a person or other moveable devices)
|
||||||
# Default: static
|
# Default: static
|
||||||
iaq_mode: static
|
iaq_mode: static
|
||||||
|
|
||||||
@ -234,7 +235,7 @@ For each sensor all other options from :ref:`Sensor <config-sensor>` and :ref:`T
|
|||||||
# -----------
|
# -----------
|
||||||
# Available options:
|
# Available options:
|
||||||
# - lp (low power - samples every 3 seconds)
|
# - 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
|
# Default: lp
|
||||||
sample_rate: ulp
|
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"
|
name: "BME680 IAQ Accuracy"
|
||||||
|
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
Multiple sensors
|
Multiple sensors
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
@ -371,17 +373,65 @@ The following configuration shows how to set up multiple BME680 devices. They ca
|
|||||||
|
|
||||||
Indoor Air Quality (IAQ) Measurement
|
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:
|
.. _bsec-calibration:
|
||||||
|
|
||||||
IAQ Accuracy and 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
|
The BSEC software automatically calibrates automatically in the background to provide consistent IAQ performance. The
|
||||||
of the following values:
|
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)
|
- ``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
|
- ``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:`absolute_humidity`
|
||||||
- :doc:`bme680`
|
- :doc:`bme680`
|
||||||
- :apiref:`bme680_bsec/bme680_bsec.h`
|
- :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>`__
|
- `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/>`__
|
- `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/>`__
|
- `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₂
|
The ``ee895`` sensor platform allows you to use your EE895 CO₂
|
||||||
(`datasheet <https://www.epluse.com/fileadmin/data/product/ee895/BA_EE895.pdf>`__,
|
(`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.
|
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
|
.. figure:: images/EE895.png
|
||||||
|
@ -349,7 +349,7 @@ Configuration variables:
|
|||||||
when pushing out a value.
|
when pushing out a value.
|
||||||
Defaults to ``5``.
|
Defaults to ``5``.
|
||||||
- **send_every** (*Optional*, int): How often a sensor value should be pushed out. For
|
- **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.
|
received sensor value, over the last 7 received values.
|
||||||
Defaults to ``5``.
|
Defaults to ``5``.
|
||||||
- **send_first_at** (*Optional*, int): By default, the very first raw value on boot is immediately
|
- **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
|
The ``mhz19`` sensor platform allows you to use MH-Z19 CO_2 and temperature sensors
|
||||||
(`refspace`_) with ESPHome.
|
(`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
|
.. figure:: images/mhz19-full.jpg
|
||||||
:align: center
|
:align: center
|
||||||
|
@ -35,7 +35,6 @@ This component exposes the different gas concentration sensors from the `MiCS-45
|
|||||||
Configuration variables:
|
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>`
|
- **nitrogen_dioxide** (*Optional*): All options from :ref:`Sensor <config-sensor>`
|
||||||
- **carbon_monoxide** (*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>`
|
- **hydrogen** (*Optional*): All options from :ref:`Sensor <config-sensor>`
|
||||||
|
@ -93,7 +93,7 @@ measure the total consumed energy in kWh.
|
|||||||
sensor:
|
sensor:
|
||||||
- platform: pulse_counter
|
- platform: pulse_counter
|
||||||
pin: 12
|
pin: 12
|
||||||
unit_of_measurement: 'kW'
|
unit_of_measurement: 'Wh'
|
||||||
name: 'Power Meter House'
|
name: 'Power Meter House'
|
||||||
filters:
|
filters:
|
||||||
- multiply: 0.06 # (60s/1000 pulses per kWh)
|
- 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
|
id: source_sensor
|
||||||
pin: A0
|
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:
|
Configuration variables:
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
|
@ -105,14 +105,18 @@ As of April 2022 the average fresh air Co² concentration is 419 ppm.
|
|||||||
value: 419 # outside average April 2022
|
value: 419 # outside average April 2022
|
||||||
id: my_scd41
|
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
|
.. code-block:: yaml
|
||||||
|
|
||||||
on_...:
|
api:
|
||||||
|
services:
|
||||||
|
- service: calibrate_co2_value
|
||||||
|
variables:
|
||||||
|
co2_ppm: int
|
||||||
then:
|
then:
|
||||||
- scd4x._perform_forced_calibration_action:
|
- scd4x.perform_forced_calibration:
|
||||||
value: !lambda "{ return 419 };"
|
value: !lambda 'return co2_ppm;'
|
||||||
id: my_scd41
|
id: my_scd41
|
||||||
|
|
||||||
|
|
||||||
@ -129,39 +133,53 @@ This :ref:`action <config-action>` triggers a factory reset of the sensor. Calib
|
|||||||
then:
|
then:
|
||||||
- scd4x.factory_reset: my_scd41
|
- 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)``
|
Note: remember your pressure sensor needs to output in mBar
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Example
|
|
||||||
*******
|
|
||||||
|
|
||||||
Note: that the pressure from bme280 is in hPa and must be converted to bar.
|
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
sensor:
|
sensor:
|
||||||
- platform: scd4x
|
|
||||||
id: scd41
|
|
||||||
i2c_id: bus_a
|
|
||||||
co2:
|
|
||||||
name: co2
|
|
||||||
id: co2
|
|
||||||
|
|
||||||
- platform: bme280
|
- platform: bme280
|
||||||
pressure:
|
pressure:
|
||||||
name: "BME280-Pressure"
|
name: "Ambient Pressure"
|
||||||
id: bme280_pressure
|
id: bme_pressure
|
||||||
oversampling: 1x
|
|
||||||
on_value:
|
- 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:
|
then:
|
||||||
- lambda: "id(scd41)->set_ambient_pressure_compensation(x / 1000.0);"
|
- 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
|
See Also
|
||||||
|
@ -114,7 +114,7 @@ Configuration variables:
|
|||||||
|
|
||||||
- All other options from :ref:`Sensor <config-sensor>`.
|
- 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.
|
- **name** (**Required**, string): The name of the sensor.
|
||||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||||
@ -162,7 +162,7 @@ Configuration variables:
|
|||||||
Wiring:
|
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
|
.. figure:: images/jst6pin.png
|
||||||
:align: center
|
:align: center
|
||||||
|
@ -50,6 +50,7 @@ And in YAML:
|
|||||||
|
|
||||||
switches:
|
switches:
|
||||||
name: "My Custom Switches"
|
name: "My Custom Switches"
|
||||||
|
id: my_custom_switch
|
||||||
|
|
||||||
Configuration variables:
|
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.
|
:description: Instructions for setting up switches that can remotely reboot the ESP in ESPHome into safe mode.
|
||||||
:image: restart.svg
|
: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
|
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.
|
||||||
where a misbehaving component is preventing Over-The-Air updates from completing successfully.
|
|
||||||
|
|
||||||
This component requires :ref:`OTA <config-ota>` to be configured.
|
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 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/>`__
|
- `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:
|
Soldering and setup video:
|
||||||
|
|
||||||
|
@ -7,6 +7,10 @@ Sharing ESPHome devices
|
|||||||
We have added configuration options to ESPHome to make it easier
|
We have added configuration options to ESPHome to make it easier
|
||||||
to create, configure, install and distribute devices running ESPHome.
|
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
|
Example configuration
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
@ -14,10 +18,13 @@ Example configuration
|
|||||||
|
|
||||||
# These substitutions allow the end user to override certain values
|
# These substitutions allow the end user to override certain values
|
||||||
substitutions:
|
substitutions:
|
||||||
name: "project-template-32"
|
name: "project-template"
|
||||||
|
friendly_name: "Project Template"
|
||||||
|
|
||||||
esphome:
|
esphome:
|
||||||
name: "${name}"
|
name: "${name}"
|
||||||
|
# Friendly names are used where appropriate in Home Assistant
|
||||||
|
friendly_name: "${friendly_name}"
|
||||||
# Automatically add the mac address to the name
|
# Automatically add the mac address to the name
|
||||||
# so you can use a single firmware for all devices
|
# so you can use a single firmware for all devices
|
||||||
name_add_mac_suffix: true
|
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 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`
|
- `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`
|
- `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>`__
|
- `Expaso (@Expaso) <https://github.com/Expaso>`__
|
||||||
- `Malte Franken (@exxamalte) <https://github.com/exxamalte>`__
|
- `Malte Franken (@exxamalte) <https://github.com/exxamalte>`__
|
||||||
- `Fabian Affolter (@fabaff) <https://github.com/fabaff>`__
|
- `Fabian Affolter (@fabaff) <https://github.com/fabaff>`__
|
||||||
|
- `Fabian (@Fabian-Schmidt) <https://github.com/Fabian-Schmidt>`__
|
||||||
- `Federico Ariel Castagnini (@facastagnini) <https://github.com/facastagnini>`__
|
- `Federico Ariel Castagnini (@facastagnini) <https://github.com/facastagnini>`__
|
||||||
- `C W (@fake-name) <https://github.com/fake-name>`__
|
- `C W (@fake-name) <https://github.com/fake-name>`__
|
||||||
- `Florian idB (@fbeek) <https://github.com/fbeek>`__
|
- `Florian idB (@fbeek) <https://github.com/fbeek>`__
|
||||||
@ -416,6 +417,7 @@ Contributors
|
|||||||
- `James Duke (@jamesduke) <https://github.com/jamesduke>`__
|
- `James Duke (@jamesduke) <https://github.com/jamesduke>`__
|
||||||
- `James Gao (@jamesgao) <https://github.com/jamesgao>`__
|
- `James Gao (@jamesgao) <https://github.com/jamesgao>`__
|
||||||
- `James Lakin (@jamesorlakin) <https://github.com/jamesorlakin>`__
|
- `James Lakin (@jamesorlakin) <https://github.com/jamesorlakin>`__
|
||||||
|
- `James Swift (@JamesSwift) <https://github.com/JamesSwift>`__
|
||||||
- `Juraj Andrássy (@JAndrassy) <https://github.com/JAndrassy>`__
|
- `Juraj Andrássy (@JAndrassy) <https://github.com/JAndrassy>`__
|
||||||
- `Jan Grewe (@jangrewe) <https://github.com/jangrewe>`__
|
- `Jan Grewe (@jangrewe) <https://github.com/jangrewe>`__
|
||||||
- `János Rusiczki (@janosrusiczki) <https://github.com/janosrusiczki>`__
|
- `János Rusiczki (@janosrusiczki) <https://github.com/janosrusiczki>`__
|
||||||
@ -628,6 +630,7 @@ Contributors
|
|||||||
- `myhomeiot (@myhomeiot) <https://github.com/myhomeiot>`__
|
- `myhomeiot (@myhomeiot) <https://github.com/myhomeiot>`__
|
||||||
- `Igor Scheller (@MyIgel) <https://github.com/MyIgel>`__
|
- `Igor Scheller (@MyIgel) <https://github.com/MyIgel>`__
|
||||||
- `Mynasru (@Mynasru) <https://github.com/Mynasru>`__
|
- `Mynasru (@Mynasru) <https://github.com/Mynasru>`__
|
||||||
|
- `Mikhail Zakharov (@mzakharo) <https://github.com/mzakharo>`__
|
||||||
- `Kevin Uhlir (@n0bel) <https://github.com/n0bel>`__
|
- `Kevin Uhlir (@n0bel) <https://github.com/n0bel>`__
|
||||||
- `Erik Näsström (@Naesstrom) <https://github.com/Naesstrom>`__
|
- `Erik Näsström (@Naesstrom) <https://github.com/Naesstrom>`__
|
||||||
- `H. Árkosi Róbert (@nagyrobi) <https://github.com/nagyrobi>`__
|
- `H. Árkosi Róbert (@nagyrobi) <https://github.com/nagyrobi>`__
|
||||||
@ -779,6 +782,7 @@ Contributors
|
|||||||
- `ShellAddicted (@ShellAddicted) <https://github.com/ShellAddicted>`__
|
- `ShellAddicted (@ShellAddicted) <https://github.com/ShellAddicted>`__
|
||||||
- `sherbang (@sherbang) <https://github.com/sherbang>`__
|
- `sherbang (@sherbang) <https://github.com/sherbang>`__
|
||||||
- `Shish (@shish) <https://github.com/shish>`__
|
- `Shish (@shish) <https://github.com/shish>`__
|
||||||
|
- `Shreyas Karnik (@shreyaskarnik) <https://github.com/shreyaskarnik>`__
|
||||||
- `SiliconAvatar (@SiliconAvatar) <https://github.com/SiliconAvatar>`__
|
- `SiliconAvatar (@SiliconAvatar) <https://github.com/SiliconAvatar>`__
|
||||||
- `Francisco J. Solis (@sisco0) <https://github.com/sisco0>`__
|
- `Francisco J. Solis (@sisco0) <https://github.com/sisco0>`__
|
||||||
- `Derek Hageman (@Sizurka) <https://github.com/Sizurka>`__
|
- `Derek Hageman (@Sizurka) <https://github.com/Sizurka>`__
|
||||||
@ -812,8 +816,6 @@ Contributors
|
|||||||
- `Jordan Vohwinkel (@sublime93) <https://github.com/sublime93>`__
|
- `Jordan Vohwinkel (@sublime93) <https://github.com/sublime93>`__
|
||||||
- `sumirati (@sumirati) <https://github.com/sumirati>`__
|
- `sumirati (@sumirati) <https://github.com/sumirati>`__
|
||||||
- `swifty99 (@swifty99) <https://github.com/swifty99>`__
|
- `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>`__
|
- `synco (@synco) <https://github.com/synco>`__
|
||||||
- `Marcel Feix (@Syndlex) <https://github.com/Syndlex>`__
|
- `Marcel Feix (@Syndlex) <https://github.com/Syndlex>`__
|
||||||
- `Suryandaru Triandana (@syndtr) <https://github.com/syndtr>`__
|
- `Suryandaru Triandana (@syndtr) <https://github.com/syndtr>`__
|
||||||
@ -861,7 +863,6 @@ Contributors
|
|||||||
- `tube0013 (@tube0013) <https://github.com/tube0013>`__
|
- `tube0013 (@tube0013) <https://github.com/tube0013>`__
|
||||||
- `Alexey Vlasov (@turbulator) <https://github.com/turbulator>`__
|
- `Alexey Vlasov (@turbulator) <https://github.com/turbulator>`__
|
||||||
- `Seppel Hardt (@tuxBurner) <https://github.com/tuxBurner>`__
|
- `Seppel Hardt (@tuxBurner) <https://github.com/tuxBurner>`__
|
||||||
- `TVDLoewe (@TVDLoewe) <https://github.com/TVDLoewe>`__
|
|
||||||
- `Thorsten von Eicken (@tve) <https://github.com/tve>`__
|
- `Thorsten von Eicken (@tve) <https://github.com/tve>`__
|
||||||
- `Ubi de Feo (@ubidefeo) <https://github.com/ubidefeo>`__
|
- `Ubi de Feo (@ubidefeo) <https://github.com/ubidefeo>`__
|
||||||
- `uPesy Electronics (@uPesy) <https://github.com/uPesy>`__
|
- `uPesy Electronics (@uPesy) <https://github.com/uPesy>`__
|
||||||
@ -908,4 +909,4 @@ Contributors
|
|||||||
- `Zack Barett (@zsarnett) <https://github.com/zsarnett>`__
|
- `Zack Barett (@zsarnett) <https://github.com/zsarnett>`__
|
||||||
- `Christian Zufferey (@zuzu59) <https://github.com/zuzu59>`__
|
- `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