Merge pull request #3278 from esphome/bump-2023.10.0

2023.10.0
This commit is contained in:
Jesse Hills 2023-10-18 17:39:11 +13:00 committed by GitHub
commit 442df4a54b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 465 additions and 58 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.9.3
PROJECT_NUMBER = 2023.10.0
# 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.9.3
ESPHOME_REF = 2023.10.0
.PHONY: html html-strict cleanhtml deploy help live-html Makefile netlify netlify-api api netlify-dependencies svg2png copy-svg2png minify

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -1 +1 @@
2023.9.3
2023.10.0

182
changelog/2023.10.0.rst Normal file
View File

@ -0,0 +1,182 @@
ESPHome 2023.10.0 - 18th October 2023
=====================================
.. seo::
:description: Changelog for ESPHome 2023.10.0.
:image: /_static/changelog-2023.10.0.png
:author: Jesse Hills
:author_twitter: @jesserockz
.. imgtable::
:columns: 3
MMC5983, components/sensor/mmc5983, mmc5983.jpg
This release is quite small as myself (:ghuser:`jesserockz`) and :ghuser:`kbx81` have been focusing
on ``voice_assistant`` updates and preparations for the Year of the Voice - Chapter 4.
Check out the stream replay here:
.. raw:: html
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/YzgYYkOrnhQ"
title="YouTube video player" frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen>
</iframe>
XOR Condition
-------------
A new ``xor`` condition has been added to the automation engine. This condition will only be true
when a single condition in the list is true.
Breaking changes
----------------
The SHT3x had a ``heater_enabled`` config option added in the 2023.9.0 release with a default value of ``true``.
This has been flipped this release to be ``false`` as it started causing issues with various sensors.
The SPS30 number concentration sensors had their units fixed to be ``#/cm³`` instead of ``#/m³``.
Full list of changes
--------------------
New Components
^^^^^^^^^^^^^^
- Implement sensor component for MMC5983 :esphomepr:`5361` by :ghuser:`agoode` (new-integration)
Breaking Changes
^^^^^^^^^^^^^^^^
- Do not enable SHT3x heater by default. Fixes #4886. :esphomepr:`5445` by :ghuser:`jkl1337` (breaking-change)
- Fix units for SPS30 number concentration sensors :esphomepr:`5452` by :ghuser:`kahrendt` (breaking-change)
Beta Changes
^^^^^^^^^^^^
- Update htu21d.cpp, fix publishing of heater level :esphomepr:`5520` by :ghuser:`Nippey`
- BD5758D - Add delays and ACKs :esphomepr:`5524` by :ghuser:`Cossid`
- Update Improv BLE component :esphomepr:`5518` by :ghuser:`jesserockz`
- SM10BIT_BASE - Add delays and ACKs, clear all channels before sleeping. :esphomepr:`5526` by :ghuser:`Cossid`
- BP1658CJ - Clear all channels before sleeping. :esphomepr:`5525` by :ghuser:`Cossid`
- Prometheus fix for esp-idf and fix newlines :esphomepr:`5536` by :ghuser:`jesserockz`
- Make IPAddress's operator!= compare values, not memory addresses. :esphomepr:`5537` by :ghuser:`raineth`
- Add change i2c address and allow multi conf for TB6612FNG :esphomepr:`5492` by :ghuser:`max246`
- Add stream start and end events :esphomepr:`5545` by :ghuser:`jesserockz`
- Fix esp32_improv authorizer with no binary sensors in config :esphomepr:`5546` by :ghuser:`jesserockz`
- More voice assistant fixes :esphomepr:`5547` by :ghuser:`jesserockz`
- Fix default libretiny manufacturer reported to HA :esphomepr:`5549` by :ghuser:`jesserockz`
- SML: fix incomplete sign extension for abbreviated transmissions :esphomepr:`5544` by :ghuser:`fblaese`
- esp32_improv advertise capabilities and state in ble service data :esphomepr:`5553` by :ghuser:`jesserockz`
Notable Changes
^^^^^^^^^^^^^^^
- Add xor automation condition :esphomepr:`5453` by :ghuser:`kahrendt` (notable-change)
All changes
^^^^^^^^^^^
- SX1509 component :esphomepr:`5385` by :ghuser:`vr6racer`
- Ci find YAML tests dynamically :esphomepr:`5399` by :ghuser:`Fabian-Schmidt`
- Make ESPHome data dir configurable :esphomepr:`5417` by :ghuser:`werdnum`
- Bump actions/checkout from 4.0.0 to 4.1.0 :esphomepr:`5420` by :ghuser:`dependabot[bot]`
- Fix typo in documentation :esphomepr:`5425` by :ghuser:`kapily`
- Bump pylint from 2.17.5 to 2.17.6 :esphomepr:`5429` by :ghuser:`dependabot[bot]`
- Refactor ip address representation :esphomepr:`5252` by :ghuser:`HeMan`
- Fix .esphome path when not using envvar :esphomepr:`5440` by :ghuser:`jesserockz`
- [BP1658CJ] Missing clock line delays and ack bit :esphomepr:`5448` by :ghuser:`leoshusar`
- [ssd1351] fix: wait for the component to be at least in setup phase b… :esphomepr:`5454` by :ghuser:`xdecock`
- Do not enable SHT3x heater by default. Fixes #4886. :esphomepr:`5445` by :ghuser:`jkl1337` (breaking-change)
- Add testcases for multiple SPI buses on ESP32 Arduino :esphomepr:`5457` by :ghuser:`angelnu`
- Feat/component poller suspend :esphomepr:`5423` by :ghuser:`xdecock`
- Bump actions/setup-python from 4.7.0 to 4.7.1 :esphomepr:`5467` by :ghuser:`dependabot[bot]`
- Add xor automation condition :esphomepr:`5453` by :ghuser:`kahrendt` (notable-change)
- Fix units for SPS30 number concentration sensors :esphomepr:`5452` by :ghuser:`kahrendt` (breaking-change)
- ST7789v - Allow predefined backlight pin to be disabled. :esphomepr:`5476` by :ghuser:`clydebarrow`
- MAX7219 - Update intensity :esphomepr:`5477` by :ghuser:`clydebarrow`
- St7789v and SPI data rate :esphomepr:`5472` by :ghuser:`clydebarrow`
- Move CONF_IRQ_PIN into const.py :esphomepr:`5488` by :ghuser:`kbx81`
- Initial ESP32-H2 Support :esphomepr:`5498` by :ghuser:`vidplace7`
- Increased debug message precision :esphomepr:`5496` by :ghuser:`lukeansell`
- Support for Haier IR protocol added :esphomepr:`5403` by :ghuser:`paveldn`
- add USE_SPI define :esphomepr:`5500` by :ghuser:`angelnu`
- Implement sensor component for MMC5983 :esphomepr:`5361` by :ghuser:`agoode` (new-integration)
- Bump docker dependencies :esphomepr:`5501` by :ghuser:`jesserockz`
- Move to Pillow 10.x :esphomepr:`5489` by :ghuser:`hostcc`
- [Sprinkler] Initialize timers early to avoid crash :esphomepr:`5499` by :ghuser:`hostcc`
- Deep sleep is only available on esp32 and esp8266 :esphomepr:`5507` by :ghuser:`jesserockz`
- Use platform consts :esphomepr:`5508` by :ghuser:`jesserockz`
- Fixed precision for Nextion sensor with float values :esphomepr:`5497` by :ghuser:`olegtarasov`
- Remote wake word support for voice assistant :esphomepr:`5229` by :ghuser:`jesserockz`
- Don't allow entity category "CONFIG" for sensors :esphomepr:`5505` by :ghuser:`edenhaus`
- Prepare protobuf for ESP-IDF >= 5 :esphomepr:`5510` by :ghuser:`HeMan`
- fix build lang schema for spi and i2c :esphomepr:`5509` by :ghuser:`glmnet`
- Added Nextion display error handling during setup :esphomepr:`5493` by :ghuser:`olegtarasov`
- Fix e131 and voice_assistant sockets :esphomepr:`5502` by :ghuser:`justdaniel-gh`
- Allow manual set "Invert_display" :esphomepr:`5494` by :ghuser:`nielsnl68`
- As3935 calibration :esphomepr:`5366` by :ghuser:`mveinot`
- Small fixes for voice assistant :esphomepr:`5513` by :ghuser:`synesthesiam`
- Add detail param to allow listing of select options in WebServer REST API :esphomepr:`5503` by :ghuser:`DanielBaulig`
- Bump curl to 7.74.0-1.3+deb11u10 :esphomepr:`5517` by :ghuser:`jesserockz`
- Update htu21d.cpp, fix publishing of heater level :esphomepr:`5520` by :ghuser:`Nippey`
- BD5758D - Add delays and ACKs :esphomepr:`5524` by :ghuser:`Cossid`
- Update Improv BLE component :esphomepr:`5518` by :ghuser:`jesserockz`
- SM10BIT_BASE - Add delays and ACKs, clear all channels before sleeping. :esphomepr:`5526` by :ghuser:`Cossid`
- BP1658CJ - Clear all channels before sleeping. :esphomepr:`5525` by :ghuser:`Cossid`
- Prometheus fix for esp-idf and fix newlines :esphomepr:`5536` by :ghuser:`jesserockz`
- Make IPAddress's operator!= compare values, not memory addresses. :esphomepr:`5537` by :ghuser:`raineth`
- Add change i2c address and allow multi conf for TB6612FNG :esphomepr:`5492` by :ghuser:`max246`
- Add stream start and end events :esphomepr:`5545` by :ghuser:`jesserockz`
- Fix esp32_improv authorizer with no binary sensors in config :esphomepr:`5546` by :ghuser:`jesserockz`
- More voice assistant fixes :esphomepr:`5547` by :ghuser:`jesserockz`
- Fix default libretiny manufacturer reported to HA :esphomepr:`5549` by :ghuser:`jesserockz`
- SML: fix incomplete sign extension for abbreviated transmissions :esphomepr:`5544` by :ghuser:`fblaese`
- esp32_improv advertise capabilities and state in ble service data :esphomepr:`5553` by :ghuser:`jesserockz`
Past Changelogs
---------------
- :doc:`2023.9.0`
- :doc:`2023.8.0`
- :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.9.0.html
:url: /changelog/2023.10.0.html
.. toctree::
:glob:

View File

@ -86,6 +86,7 @@ Configuration variables:
- **color_palette_images** (*Optional*): A list of image files that will be used to generate the color pallet for the display. This should only be used in conjunction with ``-color_palette: IMAGE_ADAPTIVE`` above. The images will be analysed at compile time and a custom color pallet will be created based on the most commonly occuring colors. A typical setting would be a sample image that represented the fully populated display. This can significantly improve the quality of displayed images. Note that these images are not stored on the ESP device, just the 256byte color pallet created from them.
- **dimensions** (*Optional*): Dimensions of the screen with WIDTHxHEIGHT. Usually not needed since ``model:`` has good defaults.
- **data_rate** (*Optional*): Set the data rate of the SPI interface to the display. One of ``80MHz``, ``40MHz`` (default), ``20MHz``, ``10MHz``, ``5MHz``, ``2MHz``, ``1MHz``, ``200kHz``, ``75kHz`` or ``1kHz``. If you have multiple ILI9xxx displays they must all use the same **data_rate**.
- **invert_display** (*Optional*): With this boolean option you can invert the some of the display colors manual. **Note** some of the displays have this option set automatically to true and can't be changed.
Configuration examples
**********************

View File

@ -86,7 +86,7 @@ If you do specify them they will override any default.
- **eightbitcolor** (*Optional*, boolean): Limits the supported color depth to eight bits. May be useful on
memory-constrained devices. Defaults to ``false``.
- **backlight_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The display's backlight pin. May be required
depending on the hardware configuration.
depending on the hardware configuration. To disable a preset backlight pin (e.g. if controlled by another component) set this to ``no``.
- **power_supply** (*Optional*, :ref:`config-id`): The :doc:`power supply </components/power_supply>` to connect to
this display if required by hardware. The power supply will be turned on before attempting to initialize the display.
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
@ -94,6 +94,13 @@ If you do specify them they will override any default.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
- **pages** (*Optional*, list): Show pages instead of a single lambda. See :ref:`display-pages`.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- **data_rate** (*Optional*, frequency): The SPI data rate (default 20MHz.) Can be reduced if required, e.g. to
compensate for long data cables.
- **spi_mode** (*Optional*, 0-3): The SPI clock mode to use (default: ``mode0``.) The ST7789V datasheet specifies mode 0,
but some displays appear to require mode 3. This should be one of ``mode0``, ``mode1``, ``mode2`` or ``mode3`` (or just
a digit from 0-3.)
Preset configuration

View File

@ -14,28 +14,10 @@ At the current stage of implementation only DC motor is implemented.
.. code-block:: yaml
# Example configuration grove motor
# Example configuration
grove_tb6612fng:
- address: 0x14
id: test_motor
name: motor_outside
address: 0x14
# Example switch trigger
switch:
- platform: template
name: open_vent
id: open_vent
optimistic: True
on_turn_on:
then:
- grove_tb6612fng.run:
channel: 1
speed: 255
direction: BACKWARD
id: test_motor
- delay: 10s
- switch.turn_on: stop_motor
- switch.turn_off: open_vent
Configuration variables:
************************
@ -43,7 +25,6 @@ Configuration variables:
- **id** (**Required**, :ref:`config-id`): The id to use for this TB6612FNG component.
- **address** (*Optional*, int): The I²C address of the driver.
Defaults to ``0x14``.
- **name** (**Required**, boolean): The name of the component
.. grove_tb6612fng.run:
@ -124,6 +105,21 @@ Set the board to be awake, every esphome is restarted the default mode is set to
- grove_tb6612fng.no_standby
id: test_motor
.. grove_tb6612fng.change_address:
``grove_tb6612fng.change_address`` Action
-----------------------------------------
If you require connecting multiple boards at once, the address can be changed using this action. The address can be changed to a value in the range of ``0x01 - 0x7f`` inclusive.
.. code-block:: yaml
on_...:
then:
- grove_tb6612fng.change_address:
address: 0x15
id: test_motor
See Also
--------

View File

@ -48,6 +48,7 @@ Configuration variables:
row by row. Required for ``key_collector`` and ``binary_sensor`` (if using key selection).
- **has_diodes** (*Optional*, boolean): For pads where row pins are outputs, and the keys are
connected with diodes. Defaults to ``false``.
- **has_pulldowns** (*Optional*, boolean): For pads where the column lines have external pulldowns. Defaults to ``false``.
Binary Sensor

View File

@ -37,6 +37,7 @@ Configuration variables:
- **dish**: Decode and dump Dish infrared codes.
- **drayton**: Decode and dump Drayton Digistat RF codes.
- **jvc**: Decode and dump JVC infrared codes.
- **haier**: Decode and dump Haier infrared codes.
- **lg**: Decode and dump LG infrared codes.
- **magiquest**: Decode and dump MagiQuest wand infrared codes.
- **midea**: Decode and dump Midea infrared codes.
@ -98,6 +99,9 @@ Automations:
- **on_jvc** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
JVC remote code has been decoded. A variable ``x`` of type :apistruct:`remote_base::JVCData`
is passed to the automation for use in lambdas.
- **on_haier** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
Haier remote code has been decoded. A variable ``x`` of type :apiclass:`remote_base::HaierData`
is passed to the automation for use in lambdas.
- **on_lg** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
LG remote code has been decoded. A variable ``x`` of type :apistruct:`remote_base::LGData`
is passed to the automation for use in lambdas.
@ -236,6 +240,11 @@ Remote code selection (exactly one of these has to be included):
- **data** (**Required**, int): The JVC code to trigger on, see dumper output for more info.
- **haier**: Trigger on a Haier remote code with the given code.
- **code** (**Required**, 13-bytes list): The code to listen for, see :ref:`remote_transmitter-transmit_haier`
for more info. Usually you only need to copy this directly from the dumper output.
- **lg**: Trigger on a decoded LG remote code with the given data.
- **data** (**Required**, int): The LG code to trigger on, see dumper output for more info.

View File

@ -233,6 +233,24 @@ Configuration variables:
- **data** (**Required**, int): The JVC code to send, see dumper output for more info.
.. _remote_transmitter-transmit_haier:
``remote_transmitter.transmit_haier`` Action
********************************************
This :ref:`action <config-action>` sends a 104-bit Haier code to a remote transmitter. 8-bits of checksum added automatically.
.. code-block:: yaml
on_...:
- remote_transmitter.transmit_haier:
code: [0xA6, 0xDA, 0x00, 0x00, 0x40, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x05]
Configuration variables:
- **code** (**Required**, list): The 13 byte Haier code to send.
- All other options from :ref:`remote_transmitter-transmit_action`.
.. _remote_transmitter-transmit_lg:
``remote_transmitter.transmit_lg`` Action

View File

@ -99,7 +99,14 @@ Configuration variables:
detection and distance sensing. It's possible to add up to 120pF in steps of 8pF to the antenna. Defaults to ``0``.
- **watchdog_threshold** (*Optional*, int): Determines the threshold for events that trigger the IRQ pin.
Defaults to ``2``.
- **tune_antenna** (*Optional*, boolean): Start sensor in antenna tuning mode. It will emit oscillator
frequency to be read on the INT pin. Please follow AS3935 documentation. Note that while this mode is enabled,
lightings will not be detected. It should be used for initial calibration only, in order to determine correct value of
``capacitance`` and/or ``div_ratio`` parameters.
Defaults to ``False``.
- **calibration** (*Optional*, boolean): Enable/disable oscillator calibration on startup. It is recommended to perform
antenna tuning procedure first and adjust parameters, so that RLC antenna resonance is tuned within optimal range.
Defaults to ``True``.
Over I²C
--------
@ -152,7 +159,14 @@ Configuration variables:
detection and distance sensing. It's possible to add up to 120pF in steps of 8pF to the antenna. Defaults to ``0``.
- **watchdog_threshold** (*Optional*, int): Determines the threshold for events that trigger the IRQ pin.
Defaults to ``2``.
- **tune_antenna** (*Optional*, boolean): Start sensor in antenna tuning mode. It will emit oscillator
frequency to be read on the INT pin. Please follow AS3935 documentation. Note that while this mode is enabled,
lightings will not be detected. It should be used for initial calibration only, in order to determine correct value of
``capacitance`` and/or ``div_ratio`` parameters.
Defaults to ``False``.
- **calibration** (*Optional*, boolean): Enable/disable oscillator calibration on startup. It is recommended to perform
antenna tuning procedure first and adjust parameters, so that RLC antenna resonance is tuned within optimal range.
Defaults to ``True``.
Sensor
------

View File

@ -0,0 +1,60 @@
.. _mmc5983:
MMC5983 Magnetometer
====================
.. seo::
:description: Instructions for setting up MMC5983 magnetometer.
:image: mmc5983.jpg
:keywords: MMC5983
The ``mmc5983`` integration allows you to use your MMC5603 triple-axis magnetometer
(`datasheet`_, `SparkFun`_) with ESPHome.
The :ref:`I²C Bus <i2c>` is required to be set up for this sensor to work. The device supports 400kHz
operation, so you may specify up to ``frequency: 400kHz`` in your ``i2c`` configuration.
.. figure:: ../../images/mmc5983.jpg
:align: center
:width: 30.0%
MMC5983 Magnetometer.
.. _datasheet: https://www.memsic.com/Public/Uploads/uploadfile/files/20220119/MMC5983MADatasheetRevA.pdf
.. _SparkFun: https://www.sparkfun.com/products/19921
.. code-block:: yaml
# Example configuration entry
sensor:
- platform: mmc5983
field_strength_x:
name: "Field X"
field_strength_y:
id: "field_y"
internal: true
field_strength_z:
name: "Field Z"
filters:
- throttle: 120s
update_interval: 60s
Configuration variables:
------------------------
- **field_strength_x** (*Optional*): The information for the X-axis field sensor. All options from
:ref:`Sensor <config-sensor>`.
- **field_strength_y** (*Optional*): The information for the Y-axis field sensor. All options from
:ref:`Sensor <config-sensor>`.
- **field_strength_z** (*Optional*): The information for the Z-axis field sensor. All options from
:ref:`Sensor <config-sensor>`.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
See Also
--------
- :ref:`sensor-filters`
- :doc:`mmc5603`
- :apiref:`mmc5983/mmc5983.h`
- `SparkFun MMC5983MA Magnetometer Arduino Library <https://github.com/sparkfun/SparkFun_MMC5983MA_Magnetometer_Arduino_Library>`__
- :ghedit:`Edit`

View File

@ -48,8 +48,10 @@ Configuration variables:
Defaults to ``0x44``.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
sensor. Defaults to ``60s``.
- **heater_enabled** (*Optional*, bool): Turn on/off heater at boot. This may help provide `more accurate readings in condensing conditions <https://forum.arduino.cc/t/atmospheric-sensors-in-condensing-conditions/412167>`_, but can also increase temperature readings and decrease humidity readings as a side effect.
Defaults to ``true``.
- **heater_enabled** (*Optional*, bool): Turn on/off heater at boot.
This may help provide `more accurate readings in condensing conditions <https://forum.arduino.cc/t/atmospheric-sensors-in-condensing-conditions/412167>`_,
but can also increase temperature readings and decrease humidity readings as a side effect.
Defaults to ``false``.
See Also
--------

View File

@ -81,31 +81,31 @@ Configuration variables:
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in automation and lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **pmc_0_5** (*Optional*): The information for the **Number Concentration** sensor for ultrafine particles up to 0.5μm. Readings in particles/m³.
- **pmc_0_5** (*Optional*): The information for the **Number Concentration** sensor for ultrafine particles up to 0.5μm. Readings in particles/cm³.
- **name** (**Required**, string): The name for this sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in automation and lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **pmc_1_0** (*Optional*): The information for the **Number Concentration** sensor for fine particles up to 1μm. Readings in particles/m³.
- **pmc_1_0** (*Optional*): The information for the **Number Concentration** sensor for fine particles up to 1μm. Readings in particles/cm³.
- **name** (**Required**, string): The name for this sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in automation and lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **pmc_2_5** (*Optional*): The information for the **Number Concentration** sensor for fine particles up to 2.5μm. Readings in particles/m³.
- **pmc_2_5** (*Optional*): The information for the **Number Concentration** sensor for fine particles up to 2.5μm. Readings in particles/cm³.
- **name** (**Required**, string): The name for this sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in automation and lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **pmc_4_0** (*Optional*): The information for the **Number Concentration** sensor for coarse particles up to 4μm. Readings in particles/m³.
- **pmc_4_0** (*Optional*): The information for the **Number Concentration** sensor for coarse particles up to 4μm. Readings in particles/cm³.
- **name** (**Required**, string): The name for this sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in automation and lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **pmc_10_0** (*Optional*): The information for the **Number Concentration** sensor for coarse particles up to 10μm. Readings in particles/m³.
- **pmc_10_0** (*Optional*): The information for the **Number Concentration** sensor for coarse particles up to 10μm. Readings in particles/cm³.
- **name** (**Required**, string): The name for this sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in automation and lambdas.

View File

@ -28,12 +28,13 @@ Configuration:
Cannot be used with ``media_player`` below.
- **media_player** (*Optional*, :ref:`config-id`): The :doc:`media_player </components/media_player/index>` to use
to output the response. Cannot be used with ``speaker`` above.
- **silence_detection** (*Optional*, bool): Whether Home Assistant uses Voice Activity Detection to detect when you
have stopped talking and start processing the command. Defaults to ``true``.
- **use_wake_word** (*Optional*, boolean): Enable wake word on the assist pipeline. Defaults to ``false``.
- **on_listening** (*Optional*, :ref:`Automation <automation>`): An automation to
perform when the voice assistant starts listening.
perform when the voice assistant microphone starts listening.
- **on_start** (*Optional*, :ref:`Automation <automation>`): An automation to
perform when the voice assistant starts listening.
perform when the assist pipeline is started.
- **on_wake_word_detected** (*Optional*, :ref:`Automation <automation>`): An automation
to perform when the assist pipeline has detected a wake word.
- **on_end** (*Optional*, :ref:`Automation <automation>`): An automation to perform
when the voice assistant is finished all tasks.
- **on_stt_end** (*Optional*, :ref:`Automation <automation>`): An automation to perform
@ -49,6 +50,13 @@ Configuration:
when the voice assistant has encountered an error. The error code and message are available to
automations as the variables ``code`` and ``message``.
- **noise_suppression_level** (*Optional*, integer): The noise suppression level to apply to the assist pipeline.
Between 0 and 4 inclusive. Defaults to 0 (disabled).
- **auto_gain** (*Optional*, dBFS): Auto gain level to apply to the assist pipeline.
Between 0dBFS and 31dBFS inclusive. Defaults to 0 (disabled).
- **volume_multiplier** (*Optional*, float): Volume multiplier to apply to the assist pipeline.
Must be larger than 0. Defaults to 1 (disabled).
.. _voice_assistant-actions:
Voice Assistant Actions
@ -56,10 +64,31 @@ Voice Assistant Actions
The following actions are available for use in automations:
- ``voice_assistant.start`` - Start listening for voice commands.
- ``voice_assistant.start_continuous`` - Start listening for voice commands. This will start listening again after
the response audio has finished playing. Errors will stop the cycle. Call ``voice_assistant.stop`` to stop the cycle.
- ``voice_assistant.stop`` - Stop listening for voice commands.
``voice_assistant.start``
^^^^^^^^^^^^^^^^^^^^^^^^^
Listens for one voice command then stops.
Configuration variables:
- **silence_detection** (*Optional*, boolean): Enable silence detection. Defaults to ``true``.
Call ``voice_assistant.stop`` to signal the end of the voice command if ``silence_detection`` is set to ``false``.
``voice_assistant.start_continuous``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Start listening for voice commands. This will start listening again after
the response audio has finished playing. Some errors will stop the cycle.
Call ``voice_assistant.stop`` to stop the cycle.
``voice_assistant.stop``
^^^^^^^^^^^^^^^^^^^^^^^^
Stop listening for voice commands.
Voice Assistant Conditions
--------------------------
@ -68,6 +97,12 @@ The following conditions are available for use in automations:
- ``voice_assistant.is_running`` - Returns true if the voice assistant is currently running.
Wake word detection
-------------------
See our `example YAML files on GitHub <https://github.com/esphome/firmware/blob/main/voice-assistant/m5stack-atom-echo.yaml>`__ for continuous wake word detection.
Push to Talk
------------
@ -84,6 +119,7 @@ Here is an example offering Push to Talk with a :doc:`/components/binary_sensor/
pin: ...
on_press:
- voice_assistant.start:
silence_detection: false
on_release:
- voice_assistant.stop:

View File

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

View File

@ -356,6 +356,7 @@ All Actions
- :ref:`lambda <lambda_action>`
- :ref:`if <if_action>` / :ref:`while <while_action>` / :ref:`wait_until <wait_until_action>`
- :ref:`component.update <component-update_action>`
- :ref:`component.suspend <component-suspend_action>` / :ref:`component.resume <component-resume_action>`
- :ref:`script.execute <script-execute_action>` / :ref:`script.stop <script-stop_action>` / :ref:`script.wait <script-wait_action>`
- :ref:`logger.log <logger-log_action>`
- :ref:`homeassistant.service <api-homeassistant_service_action>`
@ -414,7 +415,7 @@ All Conditions
--------------
- :ref:`lambda <lambda_condition>`
- :ref:`and <and_condition>` / :ref:`or <or_condition>` / :ref:`not <not_condition>`
- :ref:`and <and_condition>` / :ref:`or <or_condition>` / :ref:`xor <xor_condition>` / :ref:`not <not_condition>`
- :ref:`for <for_condition>`
- :ref:`binary_sensor.is_on <binary_sensor-is_on_condition>` / :ref:`binary_sensor.is_off <binary_sensor-is_off_condition>`
- :ref:`switch.is_on <switch-is_on_condition>` / :ref:`switch.is_off <switch-is_off_condition>`
@ -500,10 +501,11 @@ and can be used to create conditional flow in actions.
.. _and_condition:
.. _or_condition:
.. _xor_condition:
.. _not_condition:
``and`` / ``or`` / ``not`` Condition
------------------------------------
``and`` / ``or`` / ``xor`` / ``not`` Condition
----------------------------------------------
Check a combination of conditions
@ -513,7 +515,7 @@ Check a combination of conditions
then:
- if:
condition:
# Same syntax for and
# Same syntax for `and` as well as `xor` conditions
or:
- binary_sensor.is_on: some_binary_sensor
- binary_sensor.is_on: other_binary_sensor
@ -665,6 +667,64 @@ compile error.
# The same as:
- lambda: 'id(my_component).update();'
.. _component-suspend_action:
``component.suspend`` Action
----------------------------
Using this action you can manually call the ``stop_poller()`` method of a component.
After this action the component will stop being refreshed.
While the poller is suspendend, it's still possible to trigger on-demand updates by
using :ref:`component.update <component-update_action>`
Please note that this only works with PollingComponent types and others will result in a
compile error.
.. code-block:: yaml
on_...:
then:
- component.suspend: my_component
# The same as:
- lambda: 'id(my_component).stop_poller();'
.. _component-resume_action:
``component.resume`` Action
---------------------------
Using this action you can manually call the ``start_poller()`` method of a component.
After this action the component will refresh at the original update_interval rate
This will allow the component to resume automatic update at the defined interval.
This action also allows to change the update interval, calling it without suspend,
replace the poller directly.
Please note that this only works with PollingComponent types and others will result in a
compile error.
.. code-block:: yaml
on_...:
then:
- component.resume: my_component
# The same as:
- lambda: 'id(my_component).start_poller();'
# Change the poller interval
on_...:
then:
- component.resume:
id: my_component
update_interval: 15s
.. _globals-set_action:
``globals.set`` Action

View File

@ -47,6 +47,7 @@ Contributors
- `Ian Blais (@aeonsablaze) <https://github.com/aeonsablaze>`__
- `Kjell Braden (@afflux) <https://github.com/afflux>`__
- `Stefan Agner (@agners) <https://github.com/agners>`__
- `Adam Goode (@agoode) <https://github.com/agoode>`__
- `Anders (@ahd71) <https://github.com/ahd71>`__
- `Alexander Pohl (@ahpohl) <https://github.com/ahpohl>`__
- `aidbish (@aidbish) <https://github.com/aidbish>`__
@ -196,7 +197,6 @@ Contributors
- `Brad Davidson (@brandond) <https://github.com/brandond>`__
- `Daniel H Brown (@brauhausdc) <https://github.com/brauhausdc>`__
- `Brent Rubell (@brentru) <https://github.com/brentru>`__
- `Jens Bretschneider (@breti) <https://github.com/breti>`__
- `Brett Profitt (@brettp) <https://github.com/brettp>`__
- `briangunderson (@briangunderson) <https://github.com/briangunderson>`__
- `Brian Hanifin (@brianhanifin) <https://github.com/brianhanifin>`__
@ -289,6 +289,7 @@ Contributors
- `Justin Grover (@dancingcactus) <https://github.com/dancingcactus>`__
- `Dan C Williams (@dancwilliams) <https://github.com/dancwilliams>`__
- `Daniel Bjørnbakk (@danibjor) <https://github.com/danibjor>`__
- `Daniel Baulig (@DanielBaulig) <https://github.com/DanielBaulig>`__
- `danielionutmuresan (@danielionutmuresan) <https://github.com/danielionutmuresan>`__
- `Daniel Kucera (@danielkucera) <https://github.com/danielkucera>`__
- `Daniel O'Connor (@DanielO) <https://github.com/DanielO>`__
@ -436,6 +437,7 @@ Contributors
- `Federico Ariel Castagnini (@facastagnini) <https://github.com/facastagnini>`__
- `C W (@fake-name) <https://github.com/fake-name>`__
- `Florian idB (@fbeek) <https://github.com/fbeek>`__
- `Fabian Bläse (@fblaese) <https://github.com/fblaese>`__
- `Fabian Berthold (@fbrthld) <https://github.com/fbrthld>`__
- `F.D.Castel (@fdcastel) <https://github.com/fdcastel>`__
- `felixlungu (@felixlungu) <https://github.com/felixlungu>`__
@ -722,6 +724,7 @@ Contributors
- `Kyle Hill (@kylhill) <https://github.com/kylhill>`__
- `Limor "Ladyada" Fried (@ladyada) <https://github.com/ladyada>`__
- `Luca Adrian L (@lal12) <https://github.com/lal12>`__
- `Landon Rohatensky (@landonr) <https://github.com/landonr>`__
- `Fredrik Lindqvist (@Landrash) <https://github.com/Landrash>`__
- `lanik (@lanik) <https://github.com/lanik>`__
- `Lawrie George (@lawriege) <https://github.com/lawriege>`__
@ -732,6 +735,7 @@ Contributors
- `Dominik Wagenknecht (@LeDominik) <https://github.com/LeDominik>`__
- `Benny de Leeuw (@leeuwte) <https://github.com/leeuwte>`__
- `Leonardo La Rocca (@leoli51) <https://github.com/leoli51>`__
- `leoshusar (@leoshusar) <https://github.com/leoshusar>`__
- `Leo Winter (@LeoWinterDE) <https://github.com/LeoWinterDE>`__
- `Lewis Baker (@lewissbaker) <https://github.com/lewissbaker>`__
- `Leon Loopik (@Lewn) <https://github.com/Lewn>`__
@ -743,17 +747,13 @@ Contributors
- `Markus (@Links2004) <https://github.com/Links2004>`__
- `LinusHeu (@LinusHeu) <https://github.com/LinusHeu>`__
- `lkomurcu (@lkomurcu) <https://github.com/lkomurcu>`__
- `Luis Andrade (@llluis) <https://github.com/llluis>`__
- `loadrunner42 (@loadrunner42) <https://github.com/loadrunner42>`__
- `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>`__
- `Lukas Klass (@LukasK13) <https://github.com/LukasK13>`__
- `Lukas Lindner (@lukasl96) <https://github.com/lukasl96>`__
- `Łukasz Świtaj (@lukaszswitaj) <https://github.com/lukaszswitaj>`__
- `Luke (@Lukeskaiwalker) <https://github.com/Lukeskaiwalker>`__
- `Jayden (@lukyjay) <https://github.com/lukyjay>`__
@ -762,7 +762,6 @@ Contributors
- `Luke Fitzgerald (@lwfitzgerald) <https://github.com/lwfitzgerald>`__
- `Alex Peters (@Lx) <https://github.com/Lx>`__
- `Linar Yusupov (@lyusupov) <https://github.com/lyusupov>`__
- `M95D (@M95D) <https://github.com/M95D>`__
- `maaadc (@maaadc) <https://github.com/maaadc>`__
- `Marc-Antoine Courteau (@macourteau) <https://github.com/macourteau>`__
- `Matthias Diro (@madias123) <https://github.com/madias123>`__
@ -788,13 +787,13 @@ Contributors
- `marshn (@marshn) <https://github.com/marshn>`__
- `marsjan155 (@marsjan155) <https://github.com/marsjan155>`__
- `Martin (@martgras) <https://github.com/martgras>`__
- `martijn (@martijnvwezel) <https://github.com/martijnvwezel>`__
- `Martin Hjelmare (@MartinHjelmare) <https://github.com/MartinHjelmare>`__
- `MartinWelsch (@MartinWelsch) <https://github.com/MartinWelsch>`__
- `M-A (@maruel) <https://github.com/maruel>`__
- `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>`__
- `matikij (@matikij) <https://github.com/matikij>`__
- `Michel Marti (@matoxp) <https://github.com/matoxp>`__
- `matt123p (@matt123p) <https://github.com/matt123p>`__
@ -817,6 +816,7 @@ Contributors
- `melyux (@melyux) <https://github.com/melyux>`__
- `Merlin Schumacher (@merlinschumacher) <https://github.com/merlinschumacher>`__
- `Martin Flasskamp (@MFlasskamp) <https://github.com/MFlasskamp>`__
- `Michael Hoffmann (@mghoffmann) <https://github.com/mghoffmann>`__
- `M Hightower (@mhightower83) <https://github.com/mhightower83>`__
- `Jörg Thalheim (@Mic92) <https://github.com/Mic92>`__
- `Michael Muré (@MichaelMure) <https://github.com/MichaelMure>`__
@ -895,6 +895,7 @@ Contributors
- `JJ (@notjj) <https://github.com/notjj>`__
- `notsonominal (@notsonominal) <https://github.com/notsonominal>`__
- `nouser2013 (@nouser2013) <https://github.com/nouser2013>`__
- `Paul Read (@nsolvepaul) <https://github.com/nsolvepaul>`__
- `Nick (@ntompson) <https://github.com/ntompson>`__
- `Stephen Edgar (@ntwb) <https://github.com/ntwb>`__
- `Matthias (@NuclearPhoenixx) <https://github.com/NuclearPhoenixx>`__
@ -912,6 +913,7 @@ Contributors
- `ogatatsu (@ogatatsu) <https://github.com/ogatatsu>`__
- `Oğuzhan Başer (@oguzhanbaser) <https://github.com/oguzhanbaser>`__
- `OkhammahkO (@OkhammahkO) <https://github.com/OkhammahkO>`__
- `Oleg Tarasov (@olegtarasov) <https://github.com/olegtarasov>`__
- `Omar Ghader (@omarghader) <https://github.com/omarghader>`__
- `Ömer Şiar Baysal (@omersiar) <https://github.com/omersiar>`__
- `Onne (@onnlucky) <https://github.com/onnlucky>`__
@ -1026,6 +1028,7 @@ Contributors
- `RubyBailey (@RubyBailey) <https://github.com/RubyBailey>`__
- `Rus Ti (@Rusti-gotrage) <https://github.com/Rusti-gotrage>`__
- `rweather (@rweather) <https://github.com/rweather>`__
- `Rob Weir (@rweir) <https://github.com/rweir>`__
- `rwilson131 (@rwilson131) <https://github.com/rwilson131>`__
- `Ryan Lang (@ryan-lang) <https://github.com/ryan-lang>`__
- `ryanalden (@ryanalden) <https://github.com/ryanalden>`__
@ -1044,7 +1047,6 @@ Contributors
- `Nils Schulte (@Schnilz) <https://github.com/Schnilz>`__
- `Wolle (@schreibfaul1) <https://github.com/schreibfaul1>`__
- `Ville Skyttä (@scop) <https://github.com/scop>`__
- `Jeremy Pack (@scriptengine) <https://github.com/scriptengine>`__
- `Sean True (@seantrue) <https://github.com/seantrue>`__
- `sebcaps (@sebcaps) <https://github.com/sebcaps>`__
- `Stefan Seyfried (@seife) <https://github.com/seife>`__
@ -1104,6 +1106,7 @@ Contributors
- `Sybren A. Stüvel (@sybrenstuvel) <https://github.com/sybrenstuvel>`__
- `synco (@synco) <https://github.com/synco>`__
- `Suryandaru Triandana (@syndtr) <https://github.com/syndtr>`__
- `Michael Hansen (@synesthesiam) <https://github.com/synesthesiam>`__
- `SyXavier (@SyXavier) <https://github.com/SyXavier>`__
- `Szewcson (@Szewcson) <https://github.com/Szewcson>`__
- `Peter (@szpeter80) <https://github.com/szpeter80>`__
@ -1164,6 +1167,7 @@ Contributors
- `tomle (@tomole444) <https://github.com/tomole444>`__
- `Tom Price (@tomtom5152) <https://github.com/tomtom5152>`__
- `David Kiliani (@torfbolt) <https://github.com/torfbolt>`__
- `Aleksandra M (@tort32) <https://github.com/tort32>`__
- `tracestep (@tracestep) <https://github.com/tracestep>`__
- `Trent Houliston (@TrentHouliston) <https://github.com/TrentHouliston>`__
- `Felix Eckhofer (@tribut) <https://github.com/tribut>`__
@ -1246,4 +1250,4 @@ Contributors
- `Zsolt Zsiros (@ZsZs73) <https://github.com/ZsZs73>`__
- `Christian Zufferey (@zuzu59) <https://github.com/zuzu59>`__
*This page was last updated October 3, 2023.*
*This page was last updated October 18, 2023.*

BIN
images/mmc5983.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -361,6 +361,7 @@ Magnetic
ESP32 Hall Sensor, components/sensor/esp32_hall, magnet.svg, ESP internal, dark-invert
HMC5883L, components/sensor/hmc5883l, hmc5883l.jpg, 3-Axis magnetometer
MMC5603, components/sensor/mmc5603, mmc5603.jpg, 3-Axis magnetometer
MMC5983, components/sensor/mmc5983, mmc5983.jpg, 3-Axis magnetometer
MLX90393, components/sensor/mlx90393, mlx90393.jpg, 3-Axis magnetometer
QMC5883L, components/sensor/qmc5883l, qmc5883l.jpg, 3-Axis magnetometer

View File

@ -269,6 +269,22 @@ a GET request to ``/select/house_mode`` could yield this payload:
"value": "party"
}
The detail parameter can be used to include available options in the response:
- **detail**: Set to ``all`` to include a list of available options.
For example GET ``/select/house_mode?detail=all`` could yield this payload:
.. code-block:: json
{
"id": "select-house_mode",
"name": "House Mode",
"state": "party",
"value": "party",
"option": ["party","sleep","relax","home","away"]
}
POST requests on the other hand allow setting the select, the available
method is ``set``. The following parameter can be used: