Merge pull request #3118 from esphome/bump-2023.8.0b1

2023.8.0b1
This commit is contained in:
Jesse Hills 2023-08-10 19:18:16 +12:00 committed by GitHub
commit ceee425ba8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
28 changed files with 815 additions and 92 deletions

View File

@ -38,7 +38,7 @@ PROJECT_NAME = "ESPHome"
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = 2023.7.1
PROJECT_NUMBER = 2023.8.0b1
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a

View File

@ -1,5 +1,5 @@
ESPHOME_PATH = ../esphome
ESPHOME_REF = 2023.7.1
ESPHOME_REF = 2023.8.0b1
.PHONY: html html-strict cleanhtml deploy help live-html Makefile netlify netlify-api api netlify-dependencies svg2png copy-svg2png minify

View File

@ -1 +1 @@
2023.7.1
2023.8.0b1

141
changelog/2023.8.0.rst Normal file
View File

@ -0,0 +1,141 @@
ESPHome 2023.8.0 - 16th August 2023
===================================
.. seo::
:description: Changelog for ESPHome 2023.8.0.
:image: /_static/changelog-2023.7.0.png
:author: Jesse Hills
:author_twitter: @jesserockz
(Note to self: Insert imgtable)
Full list of changes
--------------------
New Components
^^^^^^^^^^^^^^
- Add support for a01nyub :esphomepr:`4863` by :ghuser:`MrSuicideParrot` (new-integration)
- Add KMeterISO component. :esphomepr:`5170` by :ghuser:`Rudd-O` (new-integration)
- New component: Add support for bmp581 pressure and temperature sensors :esphomepr:`4657` by :ghuser:`kahrendt` (new-integration)
- New PM sensor Panasonic SN-GCJA5 :esphomepr:`4988` by :ghuser:`gcormier` (new-integration)
Breaking Changes
^^^^^^^^^^^^^^^^
- Coolix IR protocol improvements :esphomepr:`5105` by :ghuser:`dudanov` (breaking-change)
- Speaker return bytes written and do not wait for queue :esphomepr:`5182` by :ghuser:`jesserockz` (breaking-change)
- Change device name in MQTT discovery messages to friendly names :esphomepr:`5205` by :ghuser:`pidpawel` (breaking-change)
Notable Changes
^^^^^^^^^^^^^^^
- Change MQTT client for ESP32 Arduino :esphomepr:`5157` by :ghuser:`HeMan` (notable-change)
All changes
^^^^^^^^^^^
- Mk2 to prepare color.h for idf >= 5 :esphomepr:`5070` by :ghuser:`HeMan`
- display: Add helper methods to `Display::clip` and `Display::clamp_x/y_` :esphomepr:`5003` by :ghuser:`ayufan`
- Mark repo as safe directory to git config :esphomepr:`5102` by :ghuser:`davet2001`
- Bump click from 8.1.3 to 8.1.5 :esphomepr:`5099` by :ghuser:`dependabot[bot]`
- Bump pyyaml from 6.0 to 6.0.1 :esphomepr:`5117` by :ghuser:`dependabot[bot]`
- ignore components folder in root :esphomepr:`5130` by :ghuser:`jesserockz`
- Add size getter to CallbackManager :esphomepr:`5129` by :ghuser:`jesserockz`
- Make docker use pip installed pillow :esphomepr:`5074` by :ghuser:`HeMan`
- Change datatype in e131 addressable light :esphomepr:`5127` by :ghuser:`HeMan`
- Streamer mode :esphomepr:`5119` by :ghuser:`grahambrown11`
- Version bump for ESP32 IDF and Arduino :esphomepr:`5035` by :ghuser:`HeMan`
- Synchronise Device Classes from Home Assistant :esphomepr:`5136` by :ghuser:`esphomebot`
- Update known boards to 5.4.0 :esphomepr:`5134` by :ghuser:`jesserockz`
- Init colorama in ESPHome main :esphomepr:`5111` by :ghuser:`kuba2k2`
- Coolix IR protocol improvements :esphomepr:`5105` by :ghuser:`dudanov` (breaking-change)
- Allow esp32 idf components to specify submodules and specific components :esphomepr:`5128` by :ghuser:`jesserockz`
- Synchronise Device Classes from Home Assistant :esphomepr:`5147` by :ghuser:`esphomebot`
- Prepare some components for IDF >= 5 :esphomepr:`5061` by :ghuser:`HeMan`
- Bump clang-tidy from 11 to 14 :esphomepr:`5160` by :ghuser:`dudanov`
- climate triggers Climate and ClimateCall references :esphomepr:`5028` by :ghuser:`dudanov`
- remote_base changes :esphomepr:`5124` by :ghuser:`dudanov`
- Add 'map_linear' and 'clamp' sensor filters :esphomepr:`5040` by :ghuser:`Mat931`
- Adding Inkplate 6 v2 model variant :esphomepr:`5165` by :ghuser:`mullerdavid`
- duty_time: fix build without binary_sensor. Parented in automations. :esphomepr:`5156` by :ghuser:`dudanov`
- Add standardized CRC helper functions :esphomepr:`4798` by :ghuser:`Mat931`
- Enable IPv6 for ESP32 Arduino, wifi and ethernet :esphomepr:`4865` by :ghuser:`HeMan`
- Bump zeroconf from 0.69.0 to 0.71.4 :esphomepr:`5148` by :ghuser:`dependabot[bot]`
- Bump black from 23.3.0 to 23.7.0 :esphomepr:`5126` by :ghuser:`dependabot[bot]`
- Bump pylint from 2.17.4 to 2.17.5 :esphomepr:`5172` by :ghuser:`dependabot[bot]`
- Bump pyupgrade from 3.7.0 to 3.9.0 :esphomepr:`5083` by :ghuser:`dependabot[bot]`
- Vertical and horizontal airflow actions fix for Haier climate :esphomepr:`5164` by :ghuser:`paveldn`
- Microphone add is_stopped :esphomepr:`5183` by :ghuser:`jesserockz`
- Add get_board function to esp32 module :esphomepr:`5184` by :ghuser:`jesserockz`
- Speaker return bytes written and do not wait for queue :esphomepr:`5182` by :ghuser:`jesserockz` (breaking-change)
- Update components "if x in config" :esphomepr:`5181` by :ghuser:`jesserockz`
- Bump click from 8.1.5 to 8.1.6 :esphomepr:`5179` by :ghuser:`dependabot[bot]`
- PWM Output on RP2040 for high frequencies :esphomepr:`5204` by :ghuser:`matemaciek`
- Fix some configs after #5181 :esphomepr:`5209` by :ghuser:`jesserockz`
- Improved compensation sgp30 :esphomepr:`5208` by :ghuser:`arno1801`
- Add support for a01nyub :esphomepr:`4863` by :ghuser:`MrSuicideParrot` (new-integration)
- Change device name in MQTT discovery messages to friendly names :esphomepr:`5205` by :ghuser:`pidpawel` (breaking-change)
- Add ESP32-S2/S3 capacitive touch support :esphomepr:`5116` by :ghuser:`kbx81`
- Bump zeroconf from 0.71.4 to 0.74.0 :esphomepr:`5199` by :ghuser:`dependabot[bot]`
- Implemented Waveshare 7.5in B V3 :esphomepr:`5210` by :ghuser:`lucasprim`
- Refactor `pulse_meter` to better handle higher frequencies :esphomepr:`4231` by :ghuser:`TrentHouliston`
- Change MQTT client for ESP32 Arduino :esphomepr:`5157` by :ghuser:`HeMan` (notable-change)
- Add read interface to microphone :esphomepr:`5131` by :ghuser:`jesserockz`
- i2c: fix build on ESP-IDF >= 5.1 :esphomepr:`5200` by :ghuser:`stintel`
- Add socket define for rp2040 dev :esphomepr:`4968` by :ghuser:`jesserockz`
- core: read ESP32 MAC address from eFuse if IEEE802.15.4 is supported :esphomepr:`5176` by :ghuser:`stintel`
- esp32_ble_beacon: enable CONFIG_BT_BLE_42_FEATURES_SUPPORTED :esphomepr:`5211` by :ghuser:`stintel`
- Bump pytest-asyncio from 0.21.0 to 0.21.1 :esphomepr:`5187` by :ghuser:`dependabot[bot]`
- ledc: check SOC_LEDC_SUPPORT_APB_CLOCK :esphomepr:`5212` by :ghuser:`stintel`
- Add arm night to alarm control panel :esphomepr:`5186` by :ghuser:`primeroz`
- Bump pyupgrade from 3.9.0 to 3.10.1 :esphomepr:`5189` by :ghuser:`dependabot[bot]`
- Add KMeterISO component. :esphomepr:`5170` by :ghuser:`Rudd-O` (new-integration)
- Bump platformio from 6.1.7 to 6.1.9 :esphomepr:`5066` by :ghuser:`dependabot[bot]`
- New component: Add support for bmp581 pressure and temperature sensors :esphomepr:`4657` by :ghuser:`kahrendt` (new-integration)
- New PM sensor Panasonic SN-GCJA5 :esphomepr:`4988` by :ghuser:`gcormier` (new-integration)
- Daly BMS improvements :esphomepr:`3388` by :ghuser:`matthias882`
- Add missing `on_(arming|pending|armed_home|armed_night|armed_away|disarmed)` triggers to alarm_control_panel :esphomepr:`5219` by :ghuser:`primeroz`
- add value option to timeout filter :esphomepr:`5222` by :ghuser:`ssieb`
- Tweak Color init because IDF 5+ :esphomepr:`5221` by :ghuser:`kbx81`
Past Changelogs
---------------
- :doc:`2023.7.0`
- :doc:`2023.6.0`
- :doc:`2023.5.0`
- :doc:`2023.4.0`
- :doc:`2023.3.0`
- :doc:`2023.2.0`
- :doc:`2022.12.0`
- :doc:`2022.11.0`
- :doc:`2022.10.0`
- :doc:`2022.9.0`
- :doc:`2022.8.0`
- :doc:`2022.6.0`
- :doc:`2022.5.0`
- :doc:`2022.4.0`
- :doc:`2022.3.0`
- :doc:`2022.2.0`
- :doc:`2022.1.0`
- :doc:`2021.12.0`
- :doc:`2021.11.0`
- :doc:`2021.10.0`
- :doc:`2021.9.0`
- :doc:`2021.8.0`
- :doc:`v1.20.0`
- :doc:`v1.19.0`
- :doc:`v1.18.0`
- :doc:`v1.17.0`
- :doc:`v1.16.0`
- :doc:`v1.15.0`
- :doc:`v1.14.0`
- :doc:`v1.13.0`
- :doc:`v1.12.0`
- :doc:`v1.11.0`
- :doc:`v1.10.0`
- :doc:`v1.9.0`
- :doc:`v1.8.0`
- :doc:`v1.7.0`

View File

@ -2,7 +2,7 @@ Changelog
=========
.. redirect::
:url: /changelog/2023.7.0.html
:url: /changelog/2023.8.0.html
.. toctree::
:glob:

View File

@ -28,8 +28,20 @@ Configuration variables:
- **on_state** (*Optional*, :ref:`Action <config-action>`): An automation to perform
when the alarm changes state. See :ref:`alarm_control_panel_on_state_trigger`.
- **on_arming** (*Optional*, :ref:`Action <config-action>`): An automation to perform
when the alarm state changes to `arming`. See :ref:`alarm_control_panel_on_arming_trigger`.
- **on_pending** (*Optional*, :ref:`Action <config-action>`): An automation to perform
when the alarm state changes to `pending`. See :ref:`alarm_control_panel_on_pending_trigger`.
- **on_armed_home** (*Optional*, :ref:`Action <config-action>`): An automation to perform
when the alarm state changes to `armed_home`. See :ref:`alarm_control_panel_on_armed_home_trigger`.
- **on_armed_night** (*Optional*, :ref:`Action <config-action>`): An automation to perform
when the alarm state changes to `armed_night`. See :ref:`alarm_control_panel_on_armed_night_trigger`.
- **on_armed_away** (*Optional*, :ref:`Action <config-action>`): An automation to perform
when the alarm state changes to `armed_away`. See :ref:`alarm_control_panel_on_armed_away_trigger`.
- **on_triggered** (*Optional*, :ref:`Action <config-action>`): An automation to perform
when the alarm triggers. See :ref:`alarm_control_panel_on_triggered_trigger`.
- **on_disarmed** (*Optional*, :ref:`Action <config-action>`): An automation to perform
when the alarm state changes to `disarmed`. See :ref:`alarm_control_panel_on_disarmed_trigger`.
- **on_cleared** (*Optional*, :ref:`Action <config-action>`): An automation to perform
when the alarm clears. See :ref:`alarm_control_panel_on_cleared_trigger`.
@ -52,6 +64,81 @@ This trigger is activated each time the alarm changes state.
then:
- logger.log: "Alarm Panel State Changed!"
.. _alarm_control_panel_on_pending_trigger:
``on_pending`` Trigger
**********************
This trigger is activated when the alarm changes to pending state.
.. code-block:: yaml
alarm_control_panel:
# ...
on_pending:
then:
- logger.log: "Alarm Pending!"
.. _alarm_control_panel_on_arming_trigger:
``on_arming`` Trigger
*********************
This trigger is activated when the alarm changes to arming state.
.. code-block:: yaml
alarm_control_panel:
# ...
on_arming:
then:
- logger.log: "Alarm Arming!"
.. _alarm_control_panel_on_armed_home_trigger:
``on_armed_home`` Trigger
*************************
This trigger is activated when the alarm changes to armed_home state.
.. code-block:: yaml
alarm_control_panel:
# ...
on_armed_home:
then:
- logger.log: "Alarm armed_home!"
.. _alarm_control_panel_on_armed_night_trigger:
``on_armed_night`` Trigger
**************************
This trigger is activated when the alarm changes to armed_night state.
.. code-block:: yaml
alarm_control_panel:
# ...
on_armed_night:
then:
- logger.log: "Alarm armed_night!"
.. _alarm_control_panel_on_armed_away_trigger:
``on_armed_away`` Trigger
*************************
This trigger is activated when the alarm changes to armed_away state.
.. code-block:: yaml
alarm_control_panel:
# ...
on_armed_away:
then:
- logger.log: "Alarm armed_away!"
.. _alarm_control_panel_on_triggered_trigger:
``on_triggered`` Trigger
@ -82,6 +169,21 @@ This trigger is activated when the alarm changes from triggered back to either t
then:
- logger.log: "Alarm Cleared!"
.. _alarm_control_panel_on_disarmed_trigger:
``on_disarmed`` Trigger
***********************
This trigger is activated when the alarm changes from to disarmed.
.. code-block:: yaml
alarm_control_panel:
# ...
on_disarmed:
then:
- logger.log: "Alarm Disarmed!"
.. _alarm_control_panel_arm_away_action:
``arm_away`` Action
@ -112,6 +214,21 @@ This action arms the alarm in home mode. The ``code`` is required when *requires
id: acp1
code: "1234"
.. _alarm_control_panel_arm_night_action:
``arm_night`` Action
********************
This action arms the alarm in night mode. The ``code`` is required when *requires_code_to_arm* is *true*.
.. code-block:: yaml
on_...:
then:
- alarm_control_panel.arm_night:
id: acp1
code: "1234"
.. _alarm_control_panel_disarm_action:
``disarm`` Action
@ -177,12 +294,14 @@ From :ref:`lambdas <config-lambda>`, you can call the following methods:
- ``arm_away(code)``
- ``arm_home(code)``
- ``arm_night(code)``
- ``disarm(code)``
.. code-block:: cpp
id(acp1).arm_away();
id(acp1).arm_home();
id(acp1).arm_night();
id(acp1).disarm(std::string("1234"));

View File

@ -28,12 +28,14 @@ Configuration variables:
- **requires_code_to_arm** (*Optional*, boolean): Code required for arming the alarm, *codes* must be provided.
- **arming_away_time** (*Optional*, :ref:`config-time`): The exit delay before the alarm is armed to away mode. Defaults to ``0s``.
- **arming_home_time** (*Optional*, :ref:`config-time`): The exit delay before the alarm is armed to home mode.
- **arming_night_time** (*Optional*, :ref:`config-time`): The exit delay before the alarm is armed to night mode.
- **pending_time** (*Optional*, :ref:`config-time`): The entry delay before the alarm is triggered. Defaults to ``0s``.
- **trigger_time** (*Optional*, :ref:`config-time`): The time after a triggered alarm before resetting to previous state if the sensors are cleared/off. Defaults to ``0s``.
- **binary_sensors** (*Optional*, *list*): A list of binary sensors the panel should use. Each consists of:
- **input** (**Required**, string): The id of the binary sensor component
- **bypass_armed_home** (*Optional*, boolean): This binary sensor will not trigger the alarm when in ``armed_home`` state.
- **bypass_armed_night** (*Optional*, boolean): This binary sensor will not trigger the alarm when in ``armed_night`` state.
- **restore_mode** (*Optional*, enum):

View File

@ -2,16 +2,23 @@ ESP32 Touch Pad
===============
.. seo::
:description: Instructions for setting up the touch pad on the ESP32.
:description: Instructions for setting up the touch pad on the ESP32
:image: touch.svg
Capacitive touch detection is possible on ESP32, ESP32-S2 or ESP32-S3 processors.
In ESPHome, it is configured in two parts:
- :ref:`esp32-touch-component`
- :ref:`esp32-touch-binary-sensor`
.. _esp32-touch-component:
Component/Hub
-------------
The ``esp32_touch`` component creates a global hub for detecting touches on
the eight touch pads of the ESP32 as :ref:`binary sensors <esp32-touch-binary-sensor>`.
The ``esp32_touch`` component creates a global hub enabling (capacitive) touch detection on GPIO pins
:ref:`supported by ESP32, ESP32-S2 or ESP32-S3 processors <esp32-touch-pad-pins>`. With this enabled,
:ref:`binary sensors <esp32-touch-binary-sensor>` may then be configured to permit touch detection.
.. code-block:: yaml
@ -19,42 +26,85 @@ the eight touch pads of the ESP32 as :ref:`binary sensors <esp32-touch-binary-se
esp32_touch:
setup_mode: false
binary_sensor:
- platform: esp32_touch
name: "ESP32 Touch Pad GPIO27"
pin: GPIO27
threshold: 1000
Configuration variables:
************************
- **setup_mode** (*Optional*, boolean): Whether debug messages with the touch pad value should
be displayed in the logs. Useful for finding out suitable thresholds for the binary sensors, but
spam the logs. See :ref:`setting up touch pads <esp32-touch-binary-sensor>`
for more information. Defaults to false.
will spam the logs. See :ref:`setting up touch pads <esp32-touch-binary-sensor>`
for more information. Defaults to ``false``.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID for code generation.
Advanced options (the defaults are usually quite good, but if you're having accuracy issues, use these):
**Advanced options**
These variables may be added to the hub component's configuration (above) and are useful for fine-tuning and/or when
the sensors aren't behaving as expected.
*All processors:*
- **iir_filter** (*Optional*, :ref:`config-time`): Optionally set up an
`Infinite Impulse Response <https://en.wikipedia.org/wiki/Infinite_impulse_response>`__
filter should be applied to all touch pads. This can increase the accuracy of the touch pads a lot, but
higher values decrease the response time. A good value to start with is ``10ms``. Default is no IIR filter.
- **sleep_duration** (*Optional*, :ref:`config-time`): Set a time period
denoting the amount of time the touch peripheral should sleep between measurements. This can decrease
power usage but make the sensor slower. Default is about 27 milliseconds.
- **measurement_duration** (*Optional*, :ref:`config-time`): Set the conversion
time for all touch pads. A longer conversion time means that more charge/discharge cycles of the touch pad
can be performed, therefore increasing accuracy. Default is about 8ms, the maximum amount.
- **low_voltage_reference** (*Optional*): The low voltage reference to use for the charge cycles. See
the `esp-idf docs <https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/peripherals/touch_pad.html#optimization-of-measurements>`__
for a nice explanation of this. One of ``0.5V``, ``0.6V``, ``0.7V``, ``0.8V``. Default is ``0.5V``.
- **high_voltage_reference** (*Optional*): The high voltage reference to use for the charge cycles. See
the `esp-idf docs <https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/peripherals/touch_pad.html#optimization-of-measurements>`__
for a nice explanation of this. One of ``2.4V``, ``2.5V``, ``2.6V``, ``2.7V``. Default is ``2.7V``.
- **voltage_attenuation** (*Optional*): The voltage attenuation to use for the charge cycles. See
the `esp-idf docs <https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/peripherals/touch_pad.html#optimization-of-measurements>`__
for a nice explanation of this. One of ``1.5V``, ``1V``, ``0.5V``, ``0V``. Default is ``0V``.
- **low_voltage_reference** (*Optional*): The low voltage reference to use for the charge cycles. One of ``0.5V``,
``0.6V``, ``0.7V``, ``0.8V``. Default is ``0.5V``.
- **high_voltage_reference** (*Optional*): The high voltage reference to use for the charge cycles. One of ``2.4V``,
``2.5V``, ``2.6V``, ``2.7V``. Default is ``2.7V``.
- **voltage_attenuation** (*Optional*): The voltage attenuation to use for the charge cycles. One of ``1.5V``, ``1V``,
``0.5V``, ``0V``. Default is ``0V``.
For a more detailed explanation of the parameters above, please see the
`ESP-IDF documentation. <https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/peripherals/touch_pad.html#optimization-of-measurements>`__
*ESP32 only*
- **iir_filter** (*Optional*, :ref:`config-time`): Optionally set up an
`Infinite Impulse Response <https://en.wikipedia.org/wiki/Infinite_impulse_response>`__
filter should be applied to all touch pads. This can increase the accuracy of the touch pads a lot, but higher values
decrease the response time. A good value to start with is ``10ms``. By default, the IIR filter is inactive.
*ESP32-S2 and ESP32-S3 only*
**For each configuration category below, if one option is specified, all options must be specified.** The configuration
options below do not have any default values; in other words, they are inactive by default.
Filter configuration:
- **filter_mode** (*Optional*): Sets the filter mode. Must be one of ``IIR_4``, ``IIR_8``, ``IIR_16``,
``IIR_32``, ``IIR_64``, ``IIR_128``, ``IIR_256`` or ``JITTER``.
- **debounce_count** (*Optional*, ``int`` range 0-7): Sets the debounce count; if the measured values continue to
exceed the threshold for ``n + 1`` times, the touch sensor state changes.
- **noise_threshold** (*Optional*, ``int`` range 0-3): Noise threshold coefficient. Higher = More noise resistance. The
actual noise should be less than (noise coefficient * touch threshold). The coefficient is 0: 4/8; 1: 3/8; 2: 2/8; 3: 1.
- **jitter_step** (*Optional*, ``int`` range 0-15): Set jitter filter step size.
- **smooth_mode** (*Optional*): Level of filter applied on the original data against large noise interference.
Must be one of ``OFF``, ``IIR_2``, ``IIR_4`` or ``IIR_8``.
For a more detailed explanation of the filter configuration, please see the
`ESP-IDF documentation. <https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/api-reference/peripherals/touch_pad.html#_CPPv419touch_filter_config>`__
Denoise configuration:
- **denoise_grade** (*Optional*): Sets the denoise range of the denoise channel. Determined by measuring the noise
amplitude of the denoise channel. Must be one of ``BIT12``, ``BIT10``, ``BIT8`` or ``BIT4``.
- **denoise_cap_level** (*Optional*): Select internal reference capacitance of denoise channel. Must be one
of ``L0``, ``L1``, ``L2``, ``L3``, ``L4``, ``L5``, ``L6`` or ``L7``.
For a more detailed explanation of the denoise configuration, please see the
`ESP-IDF documentation. <https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/api-reference/peripherals/touch_pad.html#_CPPv417touch_pad_denoise>`__
Waterproof configuration:
- **waterproof_guard_ring** (*Optional*, :ref:`config-pin`): Sets the touch channel to use for the guard pad. The guard
pad is used to detect the large area of water covering the touch panel.
- **waterproof_shield_driver** (*Optional*): Shield channel drive capability configuration; the larger the
parasitic capacitance on the shielding channel, the higher the drive capability needs to be set. Must be one of
``L0``, ``L1``, ``L2``, ``L3``, ``L4``, ``L5``, ``L6`` or ``L7``.
For a more detailed explanation of the waterproof configuration, please see the
`ESP-IDF documentation. <https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/api-reference/peripherals/touch_pad.html#_CPPv420touch_pad_waterproof>`__
.. _esp32-touch-binary-sensor:
@ -89,47 +139,51 @@ Configuration variables:
- **pin** (**Required**, :ref:`config-pin`): The pin to detect touch
events on.
- **threshold** (**Required**, int): The threshold to use to detect touch events. Smaller values mean
a higher probability that the pad is being touched.
- **threshold** (**Required**, ``int``): The threshold to use to detect touch events. See
:ref:`esp32-finding-thresholds` below for help determining this value.
- **name** (**Required**, string): The name of the binary sensor.
- **id** (*Optional*,
:ref:`config-id`): Manually specify
the ID used for code generation.
- **wakeup_threshold** (*Optional*, int): The threshold to use to detect touch events to wakeup from deep
sleep. Smaller values mean a higher probability that the pad is being touched. All touch pad sensors that
should trigger a wakeup from deep sleep must specify this value. The :ref:`deep_sleep-component` must also
be configured to enable a wakeup from a touch event. Note that no filter is active during deep sleep.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- **wakeup_threshold** (*Optional*, ``int``): The threshold to use to detect touch events to wake-up from deep sleep.
See :ref:`esp32-finding-thresholds` below for help determining this value. Touch pad sensors that should trigger a
wake-up from deep sleep must specify this value. The :ref:`deep_sleep-component` must also be configured to enable
wake-up from a touch event. Note that no filter(s) is/are active during deep sleep.
- All other options from :ref:`Binary Sensor <config-binary_sensor>`.
.. _esp32-touch-pad-pins:
Touch Pad Pins
--------------
8 pins on the ESP32 can be used to detect touches. These are (in the default "raw" pin names):
Various pins on the ESP32, ESP32-S2 and ESP32-S3 can be used to detect touches. They are as follows (using the default
"raw" pin names/numbers):
- ``GPIO0``
- ``GPIO2``
- ``GPIO4``
- ``GPIO12``
- ``GPIO13``
- ``GPIO14``
- ``GPIO15``
- ``GPIO27``
- ``GPIO32``
- ``GPIO33``
.. list-table::
:header-rows: 1
Finding thresholds
* - ESP32
- ESP32-S2
- ESP32-S3
* - GPIO4, GPIO0, GPIO2, GPIO15, GPIO13, GPIO12, GPIO14, GPIO27, GPIO33, GPIO32
- GPIO1 - GPIO14
- GPIO1 - GPIO14
.. _esp32-finding-thresholds:
Finding Thresholds
------------------
For each touch pad you want to monitor, you need to find a threshold first. This threshold is
used to determine if a pad is being touched or not using the raw values from the sensor. Lower
raw values mean that it is more likely that a touch is happening. For example, values around
1000 to 1600 usually mean the pad is not being touched, and values in the range of 600 and less
mean the pad is probably being touched.
For each touch pad you want to monitor, you need to find a threshold value first. This threshold is used to determine
if a pad is being touched or not using the raw values read from the processor's internal sensor hardware. When no
contact is made with the sensor, the values will typically hover within a certain range; when the sensor's pad is
touched, the value will change significantly, enabling the touch to be detected.
To find suitable threshold values, first configure the :ref:`ESP32 touch hub <esp32-touch-component>`
to output measured values using the ``setup_mode:`` configuration option. Next, add some binary sensors
for the touch pads you want to observe. Also put some threshold in the configuration as seen below
to make the validator happy, we are going to find good thresholds in a moment anyway.
Exact values reported by the sensor hardware will vary based on the processor, PCB layout and potentially even
environmental factors.
To find suitable threshold values, first configure the :ref:`ESP32 touch hub <esp32-touch-component>` to log measured
values using the ``setup_mode:`` configuration option. Next, add some binary sensors for the touch pads you want to
observe. You'll also need to put some (temporary) threshold values into the configuration (as shown below) to make the
validator happy; we'll replace these in a moment once we determine suitable values.
.. code-block:: yaml
@ -143,17 +197,36 @@ to make the validator happy, we are going to find good thresholds in a moment an
pin: GPIO27
threshold: 1000
Then upload the program and open the logs, you will see values like these. Try touching the pins
and you will (hopefully) see the value decreasing a bit. Play around with different amounts of
force you put on the touch pad until you find a good value that can differentiate between
touch/non-touch events.
Upload the program/configuration and watch the device's logs; you'll see values being logged by the hub component.
Touching the sensor's pins/pads should result in a (significant) change in the values being logged. Experiment with
different amounts of force applied to the touch pad; a pattern should emerge, revealing a value that falls between
"touched" and "not touched" which the binary sensor will then use to differentiate between the two states.
.. figure:: images/esp32_touch-finding_thresholds.png
:align: center
Finally, put your threshold parameter in the configuration. Do not forget to disable the ``setup_mode``
option again by setting it to ``false``. Otherwise you will end up spamming the logs and slowing the device
down.
Once you've determined an appropriate value, update the threshold parameter in your configuration and test the updated
configuration. You may need to repeat this process a few times to fine-tune the behavior and get it just right.
Finally, don't forget to disable the ``setup_mode`` option by setting it back to ``false``; leaving it enabled will
reduce the ESP's overall performance.
.. _esp32-note-about-variants:
A Note About S2 and S3 Variants
-------------------------------
If you're familiar with the ESP32 hardware and pick up an S2 or S3 variant, you're likely to notice some behavioral
differences between them. In particular:
- Raw touch sensor readings on the S2 and S3 variants will generally return larger numeric values than the original
ESP32 hardware.
- Contact with the touch sensor on the S2 and S3 variants will result in the raw sensor value reading *increasing*; on
the original ESP32, contact would cause this value to *decrease*.
These behavioral differences are due to changes in the hardware and software (ESP-IDF) interfaces and should be
expected -- if you are moving your configuration from an original ESP32 to an S2 or S3 variant, expect that you'll need
to make some adjustments to your configuration to accommodate this behavior.
See Also
--------

View File

@ -217,6 +217,7 @@ advanced stuff.
This trigger is activated each time the state of the climate device is updated
(for example, if the current temperature measurement or the mode set by the users changes).
The ``Climate`` itself is available to automations as the reference ``x``.
.. code-block:: yaml
@ -224,7 +225,11 @@ This trigger is activated each time the state of the climate device is updated
- platform: midea # or any other platform
# ...
on_state:
- logger.log: "State updated!"
- logger.log: "State updated!"
- lambda: |-
if (x.mode != CLIMATE_MODE_OFF)
id(some_binary_sensor).publish_state(true);
.. _climate-on_control_trigger:
@ -235,15 +240,22 @@ This trigger is activated each time a *control* input of the climate device
is updated via a ``ClimateCall`` (which includes changes coming in from Home
Assistant). That is, this trigger is activated for, for example, changes to
the mode, *but not* on temperature measurements. It will be invoked prior to
the ``on_state`` trigger, if both are defined.
the ``on_state`` trigger, if both are defined. The ``ClimateCall`` control
object is available to automations as the reference ``x`` that can be changed.
.. code-block:: yaml
climate:
- platform: midea # or any other platform
- platform: ...
# ...
on_control:
- logger.log: "Control input received; configuration updated!"
- logger.log: "Control input received; configuration updated!"
- lambda: |-
if (x.get_mode() != CLIMATE_MODE_OFF) {
id(turnoff_script).stop();
x.set_target_temperature(25.0f);
}
See Also
--------

View File

@ -78,6 +78,7 @@ Configuration variables:
- ``inkplate_6``
- ``inkplate_10``
- ``inkplate_6_plus``
- ``inkplate_6_v2``
- **greyscale** (*Optional*, boolean): Makes the screen display 3 bit colors. Defaults to ``false``
- **partial_updating** (*Optional*, boolean): Makes the screen update partially, which is faster, but leaves burnin. Defaults to ``false``
@ -332,6 +333,51 @@ Below is a config example:
id: backlight
default_transition_length: 0.2s
name: '${friendly_name} Backlight'
Inkplate 6 v2
***************************
The Inkplate 6 v2 has a slightly different configuration. The main difference is that it is using pca6416a instead of the mcp23017.
Below is a config example:
.. code-block:: yaml
# Example minimal configuration entry
pca6416a:
- id: pca6416a_hub
address: 0x20
display:
- platform: inkplate6
id: inkplate_display
greyscale: true
partial_updating: false
update_interval: never
model: inkplate_6_v2
ckv_pin: 32
sph_pin: 33
gmod_pin:
pca6416a: pca6416a_hub
number: 1
gpio0_enable_pin:
pca6416a: pca6416a_hub
number: 8
oe_pin:
pca6416a: pca6416a_hub
number: 0
spv_pin:
pca6416a: pca6416a_hub
number: 2
powerup_pin:
pca6416a: pca6416a_hub
number: 4
wakeup_pin:
pca6416a: pca6416a_hub
number: 3
vcom_pin:
pca6416a: pca6416a_hub
number: 5
See Also
--------

View File

@ -98,6 +98,7 @@ Configuration variables:
- ``5.83inv2``
- ``7.50in``
- ``7.50in-bV2`` - also supports v3, B/W rendering only
- ``7.50in-bV3`` - display with the '(V3)' sticker on the back, B/W rendering only
- ``7.50in-bc`` - display with version sticker '(C)' on the back, B/W rendering only
- ``7.50inV2`` - Can't use with an ESP8266 as it runs out of RAM
- ``7.50inV2alt`` (alternative version to the above ``7.50inV2``)

View File

@ -213,9 +213,12 @@ Remote code selection (exactly one of these has to be included):
- **address** (*Optional*, int): The address (or subdevice) to trigger on, see dumper output for more info. Defaults to ``0``
- **command** (**Required**, int): The command to listen for.
- **coolix**: Trigger on a decoded Coolix remote code with the given data.
- **coolix**: Trigger on a decoded Coolix remote code with the given data. It is possible to directly specify a 24-bit code,
it will be checked for a match to at least one of the two received packets. The main configuration scheme is below.
- **data** (**Required**, int): The 24-bit Coolix code to trigger on, see dumper output for more info.
- **first** (**Required**, uint32_t): The first 24-bit Coolix code to trigger on, see dumper output for more info.
- **second** (**Optional**, uint32_t): The second 24-bit Coolix code to trigger on, see dumper output for more info.
If not set, trigger on on only single non-strict packet, specified by the ``first`` parameter.
- **dish**: Trigger on a decoded Dish Network remote code with the given data.
Beware that Dish remotes use a different carrier frequency (57.6kHz) that many receiver hardware don't decode.

View File

@ -158,17 +158,19 @@ Configuration variables:
``remote_transmitter.transmit_coolix`` Action
*********************************************
This :ref:`action <config-action>` sends a 24-bit Coolix infrared remote code to a remote transmitter.
This :ref:`action <config-action>` sends one or two (stricted or not) 24-bit Coolix infrared remote codes to a remote transmitter.
.. code-block:: yaml
on_...:
- remote_transmitter.transmit_coolix:
data: 0xB23FE4
first: 0xB23FE4
second: 0xB23FE4
Configuration variables:
- **data** (**Required**, int): The Coolix code to send, see dumper output for more info.
- **first** (**Required**, :ref:`templatable <config-templatable>`, uint32_t): The first 24-bit Coolix code to send, see dumper output for more info.
- **second** (**Optional**, :ref:`templatable <config-templatable>`, uint32_t): The second 24-bit Coolix code to send, see dumper output for more info.
.. _remote_transmitter-transmit_dish:

View File

@ -0,0 +1,46 @@
A01NYUB Waterproof Ultrasonic Sensor
====================================
.. seo::
:description: Instructions for setting up A01NYUB waterproof ultrasonic distance sensor in ESPHome.
:image: a01nyub.jpg
:keywords: ultrasonic, DFRobot, A01NYUB
This sensor allows you to use A01NYUB waterproof ultrasonic sensor by DFRobot
(`datasheet <https://wiki.dfrobot.com/A01NYUB%20Waterproof%20Ultrasonic%20Sensor%20SKU:%20SEN0313>`__)
with ESPHome to measure distances. This sensor can measure
ranges between 28 centimeters and 750 centimeters with a resolution of 1 milimeter.
Since this sensor reads multiple times per second, :ref:`sensor-filters` are highly recommended.
To use the sensor, first set up an :ref:`uart` with a baud rate of 9600 and connect the sensor to the specified pin.
.. figure:: images/a01nyub-full.jpg
:align: center
:width: 50.0%
A01NYUB Waterproof Ultrasonic Distance Sensor.
.. code-block:: yaml
# Example configuration entry
sensor:
- platform: "a01nyub"
name: "Distance"
Configuration variables:
------------------------
- **name** (**Required**, string): The name of the sensor.
- **uart_id** (*Optional*, :ref:`config-id`): The ID of the :ref:`UART bus <uart>` you wish to use for this sensor.
Use this if you want to use multiple UART buses at once.
- All other options from :ref:`Sensor <config-sensor>`.
See Also
--------
- :ref:`sensor-filters`
- :ref:`uart`
- :apiref:`a01nyub/a01nyub.h`
- :ghedit:`Edit`

View File

@ -0,0 +1,138 @@
BMP581 Temperature+Pressure Sensor
===========================================
.. seo::
:description: Instructions for setting up BMP581 temperature and pressure sensors with ESPHome
:image: bmp581.jpg
:keywords: BMP581
The ``bmp581`` sensor platform allows you to use your BMP581
(`datasheet <https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bmp581-ds004.pdf>`__, `SparkFun <https://www.sparkfun.com/products/20170>`__) temperature and pressure sensors with ESPHome. The :ref:`I²C <i2c>` bus is
required to be set up in your configuration for this sensor to work.
.. figure:: images/bmp581.jpg
:align: center
:width: 50.0%
BMP581 Temperature and Pressure Sensor.
(Credit: `SparkFun <https://www.sparkfun.com/products/20170>`__, image cropped and compressed)
.. code-block:: yaml
# Example configuration entry
sensor:
- platform: bmp581
temperature:
name: "Indoor Temperature"
pressure:
name: "Indoor Pressure"
Configuration variables:
------------------------
- **temperature** (*Optional*): The information for the temperature sensor.
- **oversampling** (*Optional*): The oversampling rate for the temperature sensor.
See :ref:`Oversampling Options <bmp581-oversampling>`.
- **iir_filter** (*Optional*): The Infinite Impulse Response Filter level for the temperature sensor.
See :ref:`Infinite Impulse Response Filter Options <bmp581-iir>`.
- All other options from :ref:`Sensor <config-sensor>`.
- **pressure** (*Optional*): The information for the pressure sensor.
- **oversampling** (*Optional*): The oversampling rate for the pressure sensor.
See :ref:`Oversampling Options <bmp581-oversampling>`.
- **iir_filter** (*Optional*): The Infinite Impulse Response Filter level for the pressure sensor.
See :ref:`Infinite Impulse Response Filter Options <bmp581-iir>`.
- All other options from :ref:`Sensor <config-sensor>`.
- **address** (*Optional*, int): Manually specify the I²C address of
the sensor. Defaults to ``0x46``. Another address can be ``0x47``.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
sensor. Defaults to ``60s``.
.. _bmp581-oversampling:
Oversampling Options
--------------------
By default, the BMP581 sensor measures the pressure 16 times and temperature once when requesting a new value to reduce measurement noise. You can, however, configure this amount. Possible oversampling values:
- ``NONE`` (sensor is sampled once, default for temperature)
- ``2x``
- ``4x``
- ``8x``
- ``16x`` (default for pressure)
- ``32x``
- ``64x``
- ``128x``
The datasheet (page 19) gives suggestions for oversampling combinations:
.. list-table:: Oversampling Settings
:header-rows: 1
* - Oversampling setting
- Pressure oversampling
- Temperature oversampling
* - Lowest power
- ``NONE``
- ``NONE``
* -
- ``2x``
- ``NONE``
* - Standard resolution
- ``4x``
- ``NONE``
* -
- ``8x``
- ``NONE``
* - High resolution (default)
- ``16x``
- ``NONE``
* -
- ``32x``
- ``2x``
* -
- ``64x``
- ``4x``
* - Highest resolution
- ``128x``
- ``8x``
.. note::
High oversampling rates increase power consumption and the time it takes for the sensor to measure temperature and pressure. For example, with no oversampling enabled, the measurement time is approximately 3 ms. The measurement time is approximately 107 ms if the temperature and pressure oversampling rates are ``128x``. The BMP581 component waits the minimum time necessary for the specfically configured oversampling rates before attempting to read a measurement. Consider using lower oversampling rates to reduce power consumption or to speed up measurements for small update intervals.
.. _bmp581-iir:
Infinite Impule Response Filter Options
---------------------------------------
The BMP581's Infinite Impulse Response filter reduces noise in measurement values due to ambient conditions, for example, a door slamming or a window opening. The BMP581 disables the IIR filter for the temperature and pressure sensors by default, but you may configure the amount of filtering for each sensor independently. Possible IIR filter values:
- ``OFF`` (default)
- ``2x``
- ``4x``
- ``8x``
- ``16x``
- ``32x``
- ``64x``
- ``128x``
.. warning::
The BMP581's deep standby mode is disabled when you enable an IIR filter, which increases power consumption. Consider using a mathematically equivalent ESPHome exponential moving average filter instead, especially if you configure a long update interval. See the :ref:`exponential moving average filter<sensor-filter-exponential_moving_average>` for implementation information.
See Also
--------
- :ref:`sensor-filters`
- :doc:`bme280`
- :doc:`bmp280`
- :doc:`bmp3xx`
- :doc:`bme680`
- :doc:`bmp085`
- `BMP5 sensor API <https://github.com/boschsensortec/BMP5-Sensor-API>`__
- :ghedit:`Edit`

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@ -0,0 +1,51 @@
Panasonic SN-GCJA5 Particulate Matter Sensor
============================================
.. seo::
:description: Instructions for setting up Panasonic SN-GCJA5 Particulate matter sensors
:image: gcja5.svg
The ``gcja5`` sensor platform allows you to use your Panasonic SN-GCJA5 laser based particulate matter sensor
(`datasheet <https://na.industrial.panasonic.com/products/sensors/air-quality-gas-flow-sensors/lineup/laser-type-pm-sensor/series/123557/model/123559>`__)
sensors with ESPHome.
As the communication with the GCJA5 is done using UART, you need
to have an :ref:`UART bus <uart>` in your configuration with the ``rx_pin`` connected to the SEND/TX. Additionally, you need to set the baud rate to 9600, and you
MUST have `EVEN`` parity.
The sensor itself will push values every second. You may wish to :ref:`filter <sensor-filters>` this value to reduce the amount of data you are ingesting.
The sensor will internally track changes to the Laser Diode and Photo Diode over time to adjust and ensure accuracy.
Based on continous runtime, the sensor is rated to last at least 5 years.
.. code-block:: yaml
# Example configuration entry
sensor:
- platform: gcja5
pm_1_0:
name: "Particulate Matter <1.0µm Concentration"
pm_2_5:
name: "Particulate Matter <2.5µm Concentration"
pm_10_0:
name: "Particulate Matter <10.0µm Concentration"
Configuration variables:
------------------------
- **pm_1_0_std** (*Optional*): Use the concentration of particulates of size less than 1.0µm in µg per cubic meter at standard particle.
All options from :ref:`Sensor <config-sensor>`.
- **pm_2_5_std** (*Optional*): Use the concentration of particulates of size less than 2.5µm in µg per cubic meter at standard particle.
All options from :ref:`Sensor <config-sensor>`.
- **pm_10_0_std** (*Optional*): Use the concentration of particulates of size less than 10.0µm in µg per cubic meter at standard particle.
All options from :ref:`Sensor <config-sensor>`.
- **pm_1_0** (*Optional*): Use the concentration of particulates of size less than 1.0µm in µg per cubic meter under atmospheric environment.
See Also
--------
- :doc:`/components/sensor/gcja5`
- :ref:`sensor-filters`
- :apiref:`gcja5/gcja5.h`
- :ghedit:`Edit`

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -184,6 +184,12 @@ Multiplies each value by a constant value.
Calibrate your sensor values by using values you measured with an accurate "truth" source.
Configuration variables:
- **method** (*Optional*, string): The method for calculating the linear function(s).
One of ``least_squares`` or ``exact``. Defaults to ``least_squares``.
- **datapoints** (**Required**): The list of datapoints.
First, collect a bunch of values of what the sensor shows and what the real value should be.
For temperature, this can for example be achieved by using an accurate thermometer. For other
sensors like power sensor this can be done by connecting a known load and then writing down
@ -198,14 +204,21 @@ the value the sensor shows.
name: "DHT22 Temperature"
filters:
- calibrate_linear:
# Map 0.0 (from sensor) to 0.0 (true value)
- 0.0 -> 0.0
method: least_squares
datapoints:
# Map 0.0 (from sensor) to 1.0 (true value)
- 0.0 -> 1.0
- 10.0 -> 12.1
The arguments are a list of data points, each in the form ``MEASURED -> TRUTH``. ESPHome will
then fit a linear equation to the values (using least squares). So you need to supply at least
two values. If more than two values are given a linear solution will be calculated and may not
represent each value exactly.
The arguments are a list of data points, each in the form ``MEASURED -> TRUTH``. Depending on
the ``method`` ESPHome will then either fit a linear equation to the values (using least squares)
or connect the values exactly using multiple linear equations. You need to supply at least two
values. When using ``least_squares`` and more than two values are given a linear solution will be
calculated and may not represent each value exactly.
.. figure:: images/sensor_filter_calibrate_linear.png
:align: center
:width: 50.0%
.. _sensor-calibrate_polynomial:
@ -246,6 +259,17 @@ degree with a least squares solver.
filters:
- filter_out: 85.0
``clamp``
*********
Limits the value to the range between ``min_value`` and ``max_value``. If ``min_value`` is not set, there is
no lower bound, if ``max_value`` is not set there is no upper bound.
Configuration variables:
- **min_value** (*Optional*, float): The lower bound of the range.
- **max_value** (*Optional*, float): The upper bound of the range.
``quantile``
************
@ -471,10 +495,19 @@ of the input values.
************
After the first value has been sent, if no subsequent value is published within the
``specified time period``, send ``NaN``.
``specified time period``, send a value which defaults to ``NaN``.
Especially useful when data is derived from some other communication
channel, e.g. a serial port, which can potentially be interrupted.
.. code-block:: yaml
# Example filters:
filters:
- timeout: 10s # sent value will be NaN
- timeout:
timeout: 10s
value: 0
``debounce``
************

View File

@ -0,0 +1,48 @@
M5Stack KMeterISO I2C K-Type probe temperature sensor
=====================================================
.. seo::
:description: Instructions for setting up KMeterISO temperature sensors
:image: kmeteriso.jpg
:keywords: BME280
The ``kmeteriso`` sensor platform allows you to use your KMeterISO
(`product <https://docs.m5stack.com/en/unit/KMeterISO%20Unit>`__,
`M5Stack`_) K-Type thermocouple temperature sensor with ESPHome.
The :ref:`I²C <i2c>` is required to be set up in your configuration
for this sensor to work.
.. figure:: ../../images/kmeteriso.jpg
:align: center
:width: 50.0%
M5Stack KMeterISO temperature sensor.
.. _M5Stack: https://docs.m5stack.com/en/unit/KMeterISO%20Unit
.. code-block:: yaml
# Example configuration entry
sensor:
- platform: kmeteriso
temperature:
name: Temperature
internal_temperature:
name: Internal temperature
Configuration variables:
------------------------
- **temperature** (*Optional*): The information for the temperature sensor. All options from :ref:`Sensor <config-sensor>`.
- **internal_temperature** (*Optional*): The information for the temperature sensor inside the probe. All options from :ref:`Sensor <config-sensor>`.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
sensor. Defaults to ``5s``.
See Also
--------
- :ref:`sensor-filters`
- :doc:`absolute_humidity`
- :apiref:`kmeteriso/kmeteriso.h`
- `M5Stack Unit code <https://github.com/m5stack/M5Unit-KMeterISO>`__ by `M5Stack <https://m5stack.com/>`__
- :ghedit:`Edit`

View File

@ -67,9 +67,9 @@ author = "ESPHome"
# built documents.
#
# The short X.Y version.
version = "2023.7"
version = "2023.8"
# The full version, including alpha/beta/rc tags.
release = "2023.7.1"
release = "2023.8.0b1"
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.

View File

@ -40,6 +40,7 @@ Contributors
- `Attila Darazs (@adarazs) <https://github.com/adarazs>`__
- `ADeadPixel (@ADeadPixel) <https://github.com/ADeadPixel>`__
- `Andrea Donno (@adonno) <https://github.com/adonno>`__
- `Adrian Fretwell (@AdrianFretwell) <https://github.com/AdrianFretwell>`__
- `Adrien Brault (@adrienbrault) <https://github.com/adrienbrault>`__
- `Ian Blais (@aeonsablaze) <https://github.com/aeonsablaze>`__
- `Stefan Agner (@agners) <https://github.com/agners>`__
@ -174,7 +175,6 @@ Contributors
- `Bodmer (@Bodmer) <https://github.com/Bodmer>`__
- `Anthony Todd (@bohregard) <https://github.com/bohregard>`__
- `Bomaker (@Bomaker) <https://github.com/Bomaker>`__
- `Mauricio Bonani (@bonanitech) <https://github.com/bonanitech>`__
- `Casey Olson (@bookcasey) <https://github.com/bookcasey>`__
- `Borja Burgos (@borjaburgos) <https://github.com/borjaburgos>`__
- `Brian Orpin (@borpin) <https://github.com/borpin>`__
@ -291,6 +291,7 @@ Contributors
- `Anthony Uk (@dataway) <https://github.com/dataway>`__
- `Dav-id (@dav-id-org) <https://github.com/dav-id-org>`__
- `DAVe3283 (@DAVe3283) <https://github.com/DAVe3283>`__
- `DaveCorder (@DaveCorder) <https://github.com/DaveCorder>`__
- `David Marín (@davefx) <https://github.com/davefx>`__
- `Dave Richer (@davericher) <https://github.com/davericher>`__
- `Dave T (@davet2001) <https://github.com/davet2001>`__
@ -312,7 +313,6 @@ Contributors
- `ddt154 (@ddt154) <https://github.com/ddt154>`__
- `DeadEnd (@DeadEnded) <https://github.com/DeadEnded>`__
- `Debashish Sahu (@debsahu) <https://github.com/debsahu>`__
- `Maximilian (@DeerMaximum) <https://github.com/DeerMaximum>`__
- `definitio (@definitio) <https://github.com/definitio>`__
- `Christiaan Blom (@Deinara) <https://github.com/Deinara>`__
- `Mickaël Le Baillif (@demikl) <https://github.com/demikl>`__
@ -466,6 +466,7 @@ Contributors
- `Gareth Cooper (@gaco79) <https://github.com/gaco79>`__
- `gazoodle (@gazoodle) <https://github.com/gazoodle>`__
- `gcopeland (@gcopeland) <https://github.com/gcopeland>`__
- `Greg Cormier (@gcormier) <https://github.com/gcormier>`__
- `GeekVisit (@GeekVisit) <https://github.com/GeekVisit>`__
- `Ian Reinhart Geiser (@geiseri) <https://github.com/geiseri>`__
- `R Huish (@genestealer) <https://github.com/genestealer>`__
@ -519,7 +520,6 @@ Contributors
- `Boris Hajduk (@hajdbo) <https://github.com/hajdbo>`__
- `Gavin Mogan (@halkeye) <https://github.com/halkeye>`__
- `Charles (@hallard) <https://github.com/hallard>`__
- `Alex Griffith (@halomademeapc) <https://github.com/halomademeapc>`__
- `Aniket (@HandyHat) <https://github.com/HandyHat>`__
- `Charles Thompson (@haryadoon) <https://github.com/haryadoon>`__
- `Ha Thach (@hathach) <https://github.com/hathach>`__
@ -734,6 +734,7 @@ Contributors
- `Lazar Obradovic (@lobradov) <https://github.com/lobradov>`__
- `Barry Loong (@loongyh) <https://github.com/loongyh>`__
- `LuBeDa (@lubeda) <https://github.com/lubeda>`__
- `Lucas Prim (@lucasprim) <https://github.com/lucasprim>`__
- `Lucas Reiners (@lucasreiners) <https://github.com/lucasreiners>`__
- `Joakim Sørensen (@ludeeus) <https://github.com/ludeeus>`__
- `ludrao (@ludrao) <https://github.com/ludrao>`__
@ -784,11 +785,11 @@ Contributors
- `Masterz69 (@Masterz69) <https://github.com/Masterz69>`__
- `Christopher Masto (@masto) <https://github.com/masto>`__
- `Mat931 (@Mat931) <https://github.com/Mat931>`__
- `Maciej Sokołowski (@matemaciek) <https://github.com/matemaciek>`__
- `Mateus Demboski (@mateusdemboski) <https://github.com/mateusdemboski>`__
- `matikij (@matikij) <https://github.com/matikij>`__
- `Michel Marti (@matoxp) <https://github.com/matoxp>`__
- `matt123p (@matt123p) <https://github.com/matt123p>`__
- `Matthew Mazzanti (@matthewmazzanti) <https://github.com/matthewmazzanti>`__
- `matthias882 (@matthias882) <https://github.com/matthias882>`__
- `Matus Ivanecky (@maty535) <https://github.com/maty535>`__
- `Christian (@max246) <https://github.com/max246>`__
@ -818,12 +819,10 @@ Contributors
- `Pauline Middelink (@middelink) <https://github.com/middelink>`__
- `Joel Midstjärna (@midstar) <https://github.com/midstar>`__
- `Mike_Went (@MikeWent) <https://github.com/MikeWent>`__
- `MiKuBB (@MiKuBB) <https://github.com/MiKuBB>`__
- `André Klitzing (@misery) <https://github.com/misery>`__
- `Tomasz (@Misiu) <https://github.com/Misiu>`__
- `MisterSilvereagle (@MisterSilvereagle) <https://github.com/MisterSilvereagle>`__
- `mjbogusz (@mjbogusz) <https://github.com/mjbogusz>`__
- `Matthew Garrett (@mjg59) <https://github.com/mjg59>`__
- `Morton Jonuschat (@mjonuschat) <https://github.com/mjonuschat>`__
- `mjoshd (@mjoshd) <https://github.com/mjoshd>`__
- `Matt Kaatman (@mkaatman) <https://github.com/mkaatman>`__
@ -840,6 +839,7 @@ Contributors
- `Mariusz Kryński (@mrk-its) <https://github.com/mrk-its>`__
- `Michael Davidson (@MrMDavidson) <https://github.com/MrMDavidson>`__
- `mrred2k (@mrred2k) <https://github.com/mrred2k>`__
- `André Cirne (@MrSuicideParrot) <https://github.com/MrSuicideParrot>`__
- `Murray Scott (@mscottco) <https://github.com/mscottco>`__
- `MSe-5-14 (@MSe-5-14) <https://github.com/MSe-5-14>`__
- `mtl010957 (@mtl010957) <https://github.com/mtl010957>`__
@ -940,6 +940,7 @@ Contributors
- `Philippe FOUQUET (@Philippe12) <https://github.com/Philippe12>`__
- `Philipp Molitor (@PhilippMolitor) <https://github.com/PhilippMolitor>`__
- `Philip Rosenberg-Watt (@PhilRW) <https://github.com/PhilRW>`__
- `Philip Persson (@PhPersson) <https://github.com/PhPersson>`__
- `pieterbrink123 (@pieterbrink123) <https://github.com/pieterbrink123>`__
- `Piotr Kubiak (@piotr-kubiak) <https://github.com/piotr-kubiak>`__
- `Peter Kuehne (@pkuehne) <https://github.com/pkuehne>`__
@ -954,6 +955,7 @@ Contributors
- `Iván Povedano (@pove) <https://github.com/pove>`__
- `Peter Provost (@PProvost) <https://github.com/PProvost>`__
- `Q. Marchi (@preeefix) <https://github.com/preeefix>`__
- `Francesco Ciocchetti (@primeroz) <https://github.com/primeroz>`__
- `probonopd (@probonopd) <https://github.com/probonopd>`__
- `Mike Lynch (@Prow7) <https://github.com/Prow7>`__
- `Peter Tatrai (@ptatrai) <https://github.com/ptatrai>`__
@ -1032,7 +1034,6 @@ Contributors
- `Davide Perini (@sblantipodi) <https://github.com/sblantipodi>`__
- `sbur83 (@sbur83) <https://github.com/sbur83>`__
- `Søren Christian Aarup (@scaarup) <https://github.com/scaarup>`__
- `Matthew Schinckel (@schinckel) <https://github.com/schinckel>`__
- `Nils Schulte (@Schnilz) <https://github.com/Schnilz>`__
- `Wolle (@schreibfaul1) <https://github.com/schreibfaul1>`__
- `Ville Skyttä (@scop) <https://github.com/scop>`__
@ -1119,6 +1120,7 @@ Contributors
- `TheGroundZero (@TheGroundZero) <https://github.com/TheGroundZero>`__
- `thejonesyboy (@thejonesyboy) <https://github.com/thejonesyboy>`__
- `TheJulianJES (@TheJulianJES) <https://github.com/TheJulianJES>`__
- `Bart (@TheNameIsBart) <https://github.com/TheNameIsBart>`__
- `Zixuan Wang (@TheNetAdmin) <https://github.com/TheNetAdmin>`__
- `Dominik Bruhn (@theomega) <https://github.com/theomega>`__
- `Brian Levinsen (@therealeldaria) <https://github.com/therealeldaria>`__
@ -1154,6 +1156,7 @@ Contributors
- `Tom Price (@tomtom5152) <https://github.com/tomtom5152>`__
- `David Kiliani (@torfbolt) <https://github.com/torfbolt>`__
- `tracestep (@tracestep) <https://github.com/tracestep>`__
- `Trent Houliston (@TrentHouliston) <https://github.com/TrentHouliston>`__
- `Felix Eckhofer (@tribut) <https://github.com/tribut>`__
- `Trick van Staveren (@trickv) <https://github.com/trickv>`__
- `TripitakaBC (@TripitakaBC) <https://github.com/TripitakaBC>`__
@ -1231,4 +1234,4 @@ Contributors
- `Zsolt Zsiros (@ZsZs73) <https://github.com/ZsZs73>`__
- `Christian Zufferey (@zuzu59) <https://github.com/zuzu59>`__
*This page was last updated August 1, 2023.*
*This page was last updated August 10, 2023.*

BIN
images/a01nyub.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
images/bmp581.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

1
images/gcja5.svg Normal file
View File

@ -0,0 +1 @@
<svg width="283.101" height="72.401" viewBox="0 0 283.101 72.401" xmlns="http://www.w3.org/2000/svg"><g id="svgGroup" stroke-linecap="round" fill-rule="evenodd" font-size="9pt" stroke="#000" stroke-width="0.25mm" fill="#000" style="stroke:#000;stroke-width:0.25mm;fill:#000"><path d="M 53.201 5.7 L 49.701 13.6 Q 45.501 11.3 41.151 9.8 A 27.36 27.36 0 0 0 35.051 8.48 A 34.225 34.225 0 0 0 31.501 8.3 A 20.13 20.13 0 0 0 24.014 9.671 A 18.919 18.919 0 0 0 20.301 11.65 A 20.295 20.295 0 0 0 14.976 17.068 A 27.457 27.457 0 0 0 12.551 21.5 A 31.614 31.614 0 0 0 10.505 28.231 Q 9.902 31.363 9.751 34.955 A 58.311 58.311 0 0 0 9.701 37.4 Q 9.701 44.709 11.669 50.163 A 26.036 26.036 0 0 0 12.301 51.75 A 24.18 24.18 0 0 0 15.233 56.797 A 19.102 19.102 0 0 0 19.501 60.9 A 17.93 17.93 0 0 0 29.31 64.086 A 21.993 21.993 0 0 0 30.101 64.1 A 22.762 22.762 0 0 0 35.698 63.437 A 18.835 18.835 0 0 0 40.051 61.75 A 40.361 40.361 0 0 0 43.053 59.967 Q 45.338 58.463 46.901 56.9 L 46.901 41.6 L 32.401 41.6 L 32.401 34.1 L 55.901 34.1 L 55.901 71.2 L 47.501 71.2 L 47.501 64.2 A 35.883 35.883 0 0 1 43.122 67.492 A 47.354 47.354 0 0 1 39.001 69.85 A 23.594 23.594 0 0 1 29.594 72.35 A 28.131 28.131 0 0 1 27.901 72.4 A 26.572 26.572 0 0 1 18.588 70.8 A 24.511 24.511 0 0 1 13.501 68.2 Q 7.201 64 3.601 56.25 A 37.529 37.529 0 0 1 0.693 46.68 A 51.837 51.837 0 0 1 0.001 38 A 56.301 56.301 0 0 1 0.836 28.083 A 42.572 42.572 0 0 1 3.801 18.25 A 32.73 32.73 0 0 1 9.585 9.302 A 29.455 29.455 0 0 1 14.751 4.85 Q 21.901 0 32.001 0 Q 38.501 0 43.601 1.6 Q 48.701 3.2 53.201 5.7 Z M 240.101 67.2 L 244.801 59.5 A 28.895 28.895 0 0 0 250.578 62.679 A 32.164 32.164 0 0 0 251.001 62.85 Q 254.401 64.2 258.701 64.2 A 18.948 18.948 0 0 0 263.449 63.636 A 13.678 13.678 0 0 0 269.501 60.35 A 12.805 12.805 0 0 0 273.591 51.061 A 17.128 17.128 0 0 0 273.601 50.5 A 14.735 14.735 0 0 0 272.758 45.425 A 12.876 12.876 0 0 0 269.351 40.35 A 13.782 13.782 0 0 0 263.901 37.297 Q 260.965 36.4 257.201 36.4 L 244.801 36.4 L 244.801 1.2 L 279.401 1.2 L 279.401 9.3 L 253.301 9.3 L 253.301 28.3 L 258.301 28.3 A 37.701 37.701 0 0 1 264.481 28.781 Q 267.947 29.357 270.837 30.624 A 22.674 22.674 0 0 1 271.651 31 A 21.393 21.393 0 0 1 277.072 34.702 A 18.764 18.764 0 0 1 280.151 38.5 A 20.024 20.024 0 0 1 283.021 47.504 A 24.706 24.706 0 0 1 283.101 49.5 A 25.044 25.044 0 0 1 282.24 56.182 A 21.101 21.101 0 0 1 280.051 61.35 Q 277.001 66.5 271.501 69.45 A 24.425 24.425 0 0 1 263.883 71.985 A 32.353 32.353 0 0 1 258.601 72.4 A 46.433 46.433 0 0 1 253.925 72.177 Q 250.713 71.852 248.101 71.05 Q 243.701 69.7 240.101 67.2 Z M 116.301 3.6 L 113.401 11.6 Q 110.301 10.1 107.051 9.2 Q 104.258 8.427 100.615 8.318 A 40.705 40.705 0 0 0 99.401 8.3 A 21.173 21.173 0 0 0 91.496 9.755 A 19.981 19.981 0 0 0 87.951 11.6 A 21.167 21.167 0 0 0 81.585 18.181 A 26.978 26.978 0 0 0 80.001 21.1 Q 77.101 27.3 77.101 36.1 Q 77.101 44.5 79.951 50.8 A 25.677 25.677 0 0 0 83.537 56.628 A 21.423 21.423 0 0 0 87.851 60.6 A 19.703 19.703 0 0 0 98.996 64.097 A 23.894 23.894 0 0 0 99.401 64.1 A 33.715 33.715 0 0 0 103.371 63.879 Q 105.847 63.585 107.901 62.9 Q 111.501 61.7 114.901 59.8 L 117.801 67.7 A 37.561 37.561 0 0 1 113.306 69.745 A 47.894 47.894 0 0 1 109.351 71.05 A 33.592 33.592 0 0 1 104.385 72.041 Q 101.904 72.355 99.106 72.395 A 57.414 57.414 0 0 1 98.301 72.4 A 32.384 32.384 0 0 1 88.976 71.099 A 27.961 27.961 0 0 1 82.201 68.05 A 28.6 28.6 0 0 1 72.324 57.605 A 34.916 34.916 0 0 1 71.301 55.65 A 37.611 37.611 0 0 1 68.201 45.933 Q 67.426 41.668 67.401 36.814 A 62.816 62.816 0 0 1 67.401 36.5 Q 67.401 25.8 71.351 17.55 Q 75.301 9.3 82.551 4.65 A 29.371 29.371 0 0 1 95.231 0.239 A 37.292 37.292 0 0 1 99.501 0 A 45.639 45.639 0 0 1 104.559 0.268 A 35.2 35.2 0 0 1 108.601 0.95 A 38.224 38.224 0 0 1 116.075 3.495 A 35.605 35.605 0 0 1 116.301 3.6 Z M 230.601 68.7 L 221.901 72.2 L 214.101 52.2 L 181.701 52.2 L 173.901 72 L 165.801 68.7 L 193.201 1.2 L 203.601 1.2 L 230.601 68.7 Z M 121.801 66.6 L 126.401 59.3 A 16.858 16.858 0 0 0 130.471 62.416 A 19.43 19.43 0 0 0 131.201 62.8 A 13.114 13.114 0 0 0 135.075 64.06 A 11.941 11.941 0 0 0 136.901 64.2 A 10.741 10.741 0 0 0 140.408 63.653 A 8.936 8.936 0 0 0 144.501 60.75 Q 147.301 57.3 147.301 49.1 L 147.301 1.2 L 156.801 1.2 L 156.801 48.1 A 47.346 47.346 0 0 1 156.373 54.698 Q 155.282 62.431 151.401 66.6 A 17.93 17.93 0 0 1 139.608 72.286 A 24.68 24.68 0 0 1 137.201 72.4 A 23.443 23.443 0 0 1 129.123 71.017 A 22.405 22.405 0 0 1 128.551 70.8 A 22.827 22.827 0 0 1 124.628 68.818 A 18.183 18.183 0 0 1 121.801 66.6 Z M 197.901 10.6 L 184.701 44.2 L 211.001 44.2 L 197.901 10.6 Z" vector-effect="non-scaling-stroke"/></g></svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

BIN
images/kmeteriso.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -174,6 +174,7 @@ Air Quality
AirThings BLE, components/sensor/airthings_ble, airthings_logo.png, Radon, CO2, Volatile organics
CCS811, components/sensor/ccs811, ccs811.jpg, CO2 & Volatile organics
EE895, components/sensor/ee895, EE895.png, CO2 & Temperature & Pressure
GCJA5, components/sensor/gcja5, gcja5.svg, Particulate
HM3301, components/sensor/hm3301, hm3301.jpg, Particulate
MH-Z19, components/sensor/mhz19, mhz19.jpg, CO2 & Temperature
MiCS-4514, components/sensor/mics_4514, mics_4514.jpg, Gas concentration
@ -236,6 +237,7 @@ Distance
********
.. imgtable::
A01NYUB, components/sensor/a01nyub, a01nyub.jpg, Acoustic distance
HRXL MaxSonar WR, components/sensor/hrxl_maxsonar_wr, hrxl_maxsonar_wr.jpg, Acoustic distance
TOF10120, components/sensor/tof10120, tof10120.jpg, IR optical distance
Ultrasonic Sensor, components/sensor/ultrasonic, ultrasonic.jpg, Acoustic distance
@ -289,6 +291,7 @@ Environmental
BMP085, components/sensor/bmp085, bmp180.jpg, Temperature & Pressure
BMP280, components/sensor/bmp280, bmp280.jpg, Temperature & Pressure
BMP388 and BMP390, components/sensor/bmp3xx, bmp388.jpg, Temperature & Pressure
BMP581, components/sensor/bmp581, bmp581.jpg, Temperature & Pressure
b-parasite, components/sensor/b_parasite, b_parasite.jpg, Moisture & Temperature & Humidity & Light
Dallas DS18B20, components/sensor/dallas, dallas.jpg, Temperature
DHT, components/sensor/dht, dht.jpg, Temperature & Humidity
@ -394,6 +397,7 @@ Thermocouple
************
.. imgtable::
KMeterISO, components/sensor/kmeteriso, kmeteriso.jpg, K-Type,
MAX31855, components/sensor/max31855, max31855.jpg, K-Type
MAX31856, components/sensor/max31856, max31856.jpg, All types
MAX31865, components/sensor/max31865, max31865.jpg, Platinum RTD