Merge branch 'next' into bump-2023.6.0b1

This commit is contained in:
Jesse Hills 2023-06-15 14:25:36 +12:00
commit 1769b97ad3
No known key found for this signature in database
GPG Key ID: BEAAE804EFD8E83A
24 changed files with 608 additions and 16 deletions

View File

@ -38,7 +38,7 @@ PROJECT_NAME = "ESPHome"
# could be handy for archiving the generated documentation or if some version # could be handy for archiving the generated documentation or if some version
# control system is used. # control system is used.
PROJECT_NUMBER = 2023.5.5 PROJECT_NUMBER = 2023.6.0-dev
# Using the PROJECT_BRIEF tag one can provide an optional one line description # 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 # 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_PATH = ../esphome
ESPHOME_REF = 2023.5.5 ESPHOME_REF = dev
.PHONY: html html-strict cleanhtml deploy help live-html Makefile netlify netlify-api api netlify-dependencies svg2png copy-svg2png minify .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.5.5 2023.6.0-dev

View File

@ -0,0 +1,203 @@
Alarm Control Panel Component
=============================
.. seo::
:description: Instructions for setting up generic Alarm Control Panels in ESPHome.
:image: alarm-panel.svg
.. _config-alarm_control_panel:
Base Alarm COntrol Panel Configuration
--------------------------------------
.. code-block:: yaml
alarm_control_panel:
- platform: ...
name: Alarm Panel
Configuration variables:
- **name** (**Required**, string): The name of the alarm control panel.
.. note::
If you have a :ref:`friendly_name <esphome-configuration_variables>` set for your device and
you want the switch to use that name, you can set ``name: None``.
- **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_triggered** (*Optional*, :ref:`Action <config-action>`): An automation to perform
when the alarm triggers. See :ref:`alarm_control_panel_on_triggered_trigger`.
- **on_cleared** (*Optional*, :ref:`Action <config-action>`): An automation to perform
when the alarm clears. See :ref:`alarm_control_panel_on_cleared_trigger`.
Automation:
-----------
.. _alarm_control_panel_on_state_trigger:
``on_state`` Trigger
********************
This trigger is activated each time the alarm changes state.
.. code-block:: yaml
alarm_control_panel:
# ...
on_state:
then:
- logger.log: "Alarm Panel State Changed!"
.. _alarm_control_panel_on_triggered_trigger:
``on_triggered`` Trigger
************************
This trigger is activated when the alarm changes to triggered state.
.. code-block:: yaml
alarm_control_panel:
# ...
on_triggered:
then:
- logger.log: "Alarm Triggered!"
.. _alarm_control_panel_on_cleared_trigger:
``on_cleared`` Trigger
**********************
This trigger is activated when the alarm changes from triggered back to either the previous armed state or disarmed.
.. code-block:: yaml
alarm_control_panel:
# ...
on_cleared:
then:
- logger.log: "Alarm Cleared!"
.. _alarm_control_panel_arm_away_action:
``arm_away`` Action
*******************
This action arms the alarm in away mode. The ``code`` is required when *requires_code_to_arm* is *true*.
.. code-block:: yaml
on_...:
then:
- alarm_control_panel.arm_away:
id: alarm
code: "1234"
.. _alarm_control_panel_arm_home_action:
``arm_home`` Action
*******************
This action arms the alarm in home mode. The ``code`` is required when *requires_code_to_arm* is *true*.
.. code-block:: yaml
on_...:
then:
- alarm_control_panel.arm_home:
id: alarm
code: "1234"
.. _alarm_control_panel_disarm_action:
``disarm`` Action
*****************
This action disarms the alarm. The ``code`` is required when *codes* is not empty.
.. code-block:: yaml
on_...:
then:
- alarm_control_panel.disarm:
id: alarm
code: "1234"
.. _alarm_control_panel_pending_action:
``pending`` Action
******************
This action puts the alarm in pending state (the state before triggered after *pending_time*).
.. code-block:: yaml
on_...:
then:
- alarm_control_panel.pending: alarm
.. _alarm_control_panel_triggered_action:
``triggered`` Action
********************
This action puts the alarm in triggered state.
.. code-block:: yaml
on_...:
then:
- alarm_control_panel.triggered: alarm
.. _alarm_control_panel_is_armed_condition:
``is_armed`` Condition
**********************
This :ref:`Condition <config-condition>` checks if the alarm control panel is armed.
.. code-block:: yaml
on_...:
if:
condition:
alarm_control_panel.is_armed: alarm
.. _alarm_control_panel_lambda_calls:
lambda calls
************
From :ref:`lambdas <config-lambda>`, you can call the following methods:
- ``arm_away(code)``
- ``arm_home(code)``
- ``disarm(code)``
.. code-block:: cpp
id(alarm).arm_away();
id(alarm).arm_home();
id(alarm).disarm("1234");
Platforms
---------
.. toctree::
:maxdepth: 1
:glob:
*
See Also
--------
- :doc:`/components/binary_sensor/index`
- :apiref:`alarm_control_panel/alarm_control_panel.h`
- :ghedit:`Edit`

View File

@ -0,0 +1,135 @@
Template Alarm Control Panel
============================
.. seo::
:description: Instructions for setting up template Alarm Control Panels in ESPHome.
:image: description.svg
The ``template`` alarm control panel platform allows you to turn your binary sensors into a state machine
managed alarm control panel.
.. code-block:: yaml
# Example configuration entry
alarm_control_panel:
- platform: template
name: Alarm Panel
codes:
- "1234"
binary_sensors:
- input: zone_1
- input: zone_2
bypass_armed_home: true
Configuration variables:
------------------------
- **codes** (*Optional*, list of string): A list of codes for disarming the alarm, if *requires_code_to_arm* set to true then for arming the alarm too.
- **requires_code_to_arm** (*Optional*, boolean): Code required for arming the alarm, *code* must be provided.
- **arming_time** (*Optional*, :ref:`config-time`): The exit delay before the alarm is armed.
- **pending_time** (*Optional*, :ref:`config-time`): The entry delay before the alarm is triggered.
- **trigger_time** (*Optional*, :ref:`config-time`): The time after a triggered alarm before resetting to previous state if the sensors are cleared/off.
- **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.
- **restore_mode** (*Optional*, enum):
- **ALWAYS_DISARMED** (Default): Always start in ``disarmed`` state.
- **RESTORE_DEFAULT_DISARMED**: Restore state or default to ``disarmed`` state if no saved state was found.
- All other options from :ref:`Alarm Control Panel <config-alarm_control_panel>`
.. note::
If ``binary_sensors`` is ommited then you're expected to trigger the alarm using
:ref:`alarm_control_panel_pending_action` or :ref:`alarm_control_panel_triggered_action`.
.. _template_alarm_control_panel-state_flow:
State Flow:
-----------
1. The alarm starts in ``DISARMED`` state
2. When the ``arm_...`` method is invoked
a. ``arming_time`` greater than 0 the state is ``ARMING``
b. ``arming_time`` is 0 or after the ``arming_time`` delay the state is ``ARM_AWAY`` or ``ARM_HOME``
3. When the alarm is tripped by a sensor state changing to ``on``
a. ``pending_time`` greater than 0 the state is ``PENDING``
b. ``pending_time`` is 0 or after the ``pending_time`` delay the state is ``TRIGGERED``
4. If ``trigger_time`` greater than 0 and no sensors are ``on`` after ``trigger_time`` delay
the state returns to ``ARM_AWAY`` or ``ARM_HOME``
Example:
--------
.. code-block:: yaml
alarm_control_panel:
platform: template
name: Alarm Panel
codes:
- "1234"
requires_code_to_arm: true
arming_time: 10s
pending_time: 15s
trigger_time: 5min
binary_sensors:
- input: zone_1
- input: zone_2
bypass_armed_home: true
- input: ha_test
on_state:
then:
- lambda: !lambda |-
ESP_LOGD("TEST", "State change %s", alarm_control_panel_state_to_string(id(acp1)->get_state()));
on_triggered:
then:
- switch.turn_on: siren
on_cleared:
then:
- switch.turn_off: siren
binary_sensor:
- platform: gpio
id: zone_1
name: Zone 1
device_class: door
pin:
number: D1
mode: INPUT_PULLUP
inverted: True
- platform: gpio
id: zone_2
name: Zone 2
device_class: motion
pin:
number: D2
mode: INPUT_PULLUP
inverted: True
- platform: homeassistant
id: ha_test
name: Zone 3
entity_id: input_boolean.test_switch
switch:
- platform: gpio
id: siren
name: Siren
icon: mdi:alarm-bell
pin: D7
See Also
--------
- :doc:`index`
- :doc:`/components/binary_sensor/index`
- :apiref:`template/alarm_control_panel/template_alarm_control_panel.h`
- :ghedit:`Edit`

View File

@ -22,6 +22,7 @@ Bluetooth Low Energy device.
- platform: ble_presence - platform: ble_presence
mac_address: AC:37:43:77:5F:4C mac_address: AC:37:43:77:5F:4C
name: "ESP32 BLE Tracker Google Home Mini" name: "ESP32 BLE Tracker Google Home Mini"
min_rssi: -80dB
# Presence based on BLE Service UUID # Presence based on BLE Service UUID
- platform: ble_presence - platform: ble_presence
service_uuid: '11aa' service_uuid: '11aa'
@ -58,6 +59,7 @@ Configuration variables:
to be tracked. Usually used to identify beacons within an iBeacon group. to be tracked. Usually used to identify beacons within an iBeacon group.
- **id** (*Optional*, :ref:`config-id`): Manually specify - **id** (*Optional*, :ref:`config-id`): Manually specify
the ID used for code generation. the ID used for code generation.
- **min_rssi** (*Optional*, int): at which minimum RSSI level would the component report the device be precent
- All other options from :ref:`Binary Sensor <config-binary_sensor>`. - All other options from :ref:`Binary Sensor <config-binary_sensor>`.
.. _esp32_ble_tracker-setting_up_devices: .. _esp32_ble_tracker-setting_up_devices:

View File

@ -660,22 +660,35 @@ Use this component to store graphical images on the device, you can then draw th
id: my_image id: my_image
resize: 100x100 resize: 100x100
.. code-block:: yaml
image:
- file: mdi:alert-outline
id: alert
resize: 80x80
Configuration variables: Configuration variables:
- **file** (**Required**, string): The path (relative to where the .yaml file is) of the image file. - **file** (**Required**, string):
- **Local files**: The path (relative to where the .yaml file is) of the image file.
- **Material Design Icons**: Specify the `Material Design Icon <https://pictogrammers.com/library/mdi/>`_ id in the format ``mdi:icon-name``, and that icon will automatically be downloaded and added to the configuration.
- **id** (**Required**, :ref:`config-id`): The ID with which you will be able to reference the image later - **id** (**Required**, :ref:`config-id`): The ID with which you will be able to reference the image later
in your display code. in your display code.
- **resize** (*Optional*, string): If set, this will resize the image to fit inside the given dimensions ``WIDTHxHEIGHT`` - **resize** (*Optional*, string): If set, this will resize the image to fit inside the given dimensions ``WIDTHxHEIGHT``
and preserve the aspect ratio. and preserve the aspect ratio.
- **type** (*Optional*): Specifies how to encode image internally. Defaults to ``BINARY``. - **type** (*Optional*): Specifies how to encode image internally. Defaults to ``BINARY`` for local images and ``TRANSPARENT_BINARY`` for MDIs.
- ``BINARY``: Two colors, suitable for 1 color displays or 2 color image in color displays. Uses 1 bit - ``BINARY``: Two colors, suitable for 1 color displays or 2 color image in color displays. Uses 1 bit
per pixel, 8 pixels per byte. per pixel, 8 pixels per byte.
- ``GRAYSCALE``: Full scale grey. Uses 8 bits per pixel, 1 pixel per byte.
- ``RGB24``: Full RGB color stored. Uses 3 bytes per pixel.
- ``RGB565``: Lossy RGB color stored. Uses 2 bytes per pixel.
- ``TRANSPARENT_BINARY``: One color, any pixel that is fully transparent will not be drawn, and any other pixel - ``TRANSPARENT_BINARY``: One color, any pixel that is fully transparent will not be drawn, and any other pixel
will be the on color. Uses 1 bit per pixel, 8 pixels per byte. will be the on color. Uses 1 bit per pixel, 8 pixels per byte.
- ``GRAYSCALE``: Full scale grey. Uses 8 bits per pixel, 1 pixel per byte.
- ``RGB565``: Lossy RGB color stored. Uses 2 bytes per pixel.
- ``RGB24``: Full RGB color stored. Uses 3 bytes per pixel.
- ``RGBA``: Full RGB color stored. Uses 4 bytes per pixel. Any pixel with an alpha value < 127 will not be drawn.
- **use_transparency** (*Optional*): If set the alpha channel of the input image will be taken into account, and pixels with alpha < 127 will not be drawn. For image types without explicit alpha channel, the color (0, 0, 1) (very dark blue) will be mapped to black, to be able to store transparency information within the image. Explicitly transparent types (``TRANSPARENT_BINARY`` and ``RGBA``) default to ``True`` and cannot be set to ``False``; other types default to ``False``.
- **dither** (*Optional*): Specifies which dither method used to process the image, only used in GRAYSCALE and BINARY type image. Defaults to ``NONE``. You can read more about it `here <https://pillow.readthedocs.io/en/stable/reference/Image.html?highlight=Dither#PIL.Image.Image.convert>`__ and `here <https://en.wikipedia.org/wiki/Dither>`__. - **dither** (*Optional*): Specifies which dither method used to process the image, only used in GRAYSCALE and BINARY type image. Defaults to ``NONE``. You can read more about it `here <https://pillow.readthedocs.io/en/stable/reference/Image.html?highlight=Dither#PIL.Image.Image.convert>`__ and `here <https://en.wikipedia.org/wiki/Dither>`__.
@ -687,6 +700,9 @@ Configuration variables:
To use images you will need to have the python ``pillow`` package installed. To use images you will need to have the python ``pillow`` package installed.
If you're running this as a Home Assistant add-on or with the official ESPHome docker image, it should already be If you're running this as a Home Assistant add-on or with the official ESPHome docker image, it should already be
installed. Otherwise you need to install it using ``pip install pillow``. installed. Otherwise you need to install it using ``pip install pillow``.
Additionally, if you want to use SVG images (including MDI images), you will additionally need to have the python ``cairosvg`` package installed.
If you're running this as a Home Assistant add-on or with the official ESPHome docker image, it should also already be
installed. Otherwise you need to install it using ``pip install cairosvg``.
And then later in code: And then later in code:
@ -769,9 +785,19 @@ Configuration variables:
- ``BINARY``: Two colors, suitable for 1 color displays or 2 color image in color displays. Uses 1 bit - ``BINARY``: Two colors, suitable for 1 color displays or 2 color image in color displays. Uses 1 bit
per pixel, 8 pixels per byte. per pixel, 8 pixels per byte.
- ``TRANSPARENT_BINARY``: One color, any pixel that is fully transparent will not be drawn, and any other pixel
will be the on color. Uses 1 bit per pixel, 8 pixels per byte.
- ``GRAYSCALE``: Full scale grey. Uses 8 bits per pixel, 1 pixel per byte. - ``GRAYSCALE``: Full scale grey. Uses 8 bits per pixel, 1 pixel per byte.
- ``RGB24``: Full RGB color stored. Uses 3 bytes per pixel.
- ``RGB565``: Lossy RGB color stored. Uses 2 bytes per pixel. - ``RGB565``: Lossy RGB color stored. Uses 2 bytes per pixel.
- ``RGB24``: Full RGB color stored. Uses 3 bytes per pixel.
- ``RGBA``: Full RGB color stored. Uses 4 bytes per pixel. Any pixel with an alpha value < 127 will not be drawn.
- **use_transparency** (*Optional*): If set the alpha channel of the input image will be taken into account, and pixels with alpha < 127 will not be drawn. For image types without explicit alpha channel, the color (0, 0, 1) (very dark blue) will be mapped to black, to be able to store transparency information within the image. Explicitly transparent types (``TRANSPARENT_BINARY`` and ``RGBA``) default to ``True`` and cannot be set to ``False``; other types default to ``False``.
- **loop** (*Optional*): If you want to loop over a subset of your animation (e.g. a fire animation where the fire "starts", then "burns" and "dies") you can specify some frames to loop over.
- **start_frame** (*Optional*, int): The frame to loop back to when ``end_frame`` is reached. Defaults to the first frame in the animation.
- **end_frame** (*Optional*, int): The last frame to show in the loop; when this frame is reached it will loop back to ``start_frame``. Defaults to the last frame in the animation.
- **repeat** (*Optional*, int): Specifies how many times the loop will run. When the count is reached, the animation will continue with the next frame after ``end_frame``, or restart from the beginning if ``end_frame`` was the last frame. Defaults to "loop forever".
.. _display-pages: .. _display-pages:

View File

@ -70,6 +70,7 @@ Configuration variables:
- ``TTGO TDisplay 135x240`` - ``TTGO TDisplay 135x240``
- ``Adafruit Funhouse 240x240`` - ``Adafruit Funhouse 240x240``
- ``Adafruit RR 280x240`` (round-rectangular display -- some pixels are "deleted" from corners to form rounded shape) - ``Adafruit RR 280x240`` (round-rectangular display -- some pixels are "deleted" from corners to form rounded shape)
- ``Adafruit S2 TFT FEATHER 240X135`` (requires ``power_supply`` be specified, see below)
- ``Custom`` (see details below) - ``Custom`` (see details below)
- **cs_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The CS pin. - **cs_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The CS pin.
@ -86,6 +87,10 @@ Configuration variables:
- **eightbitcolor** (*Optional*, boolean): Limits the supported color depth to eight bits. May be useful on - **eightbitcolor** (*Optional*, boolean): Limits the supported color depth to eight bits. May be useful on
memory-constrained devices. memory-constrained devices.
- **backlight_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The display's backlight pin. - **backlight_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The display's backlight pin.
- **power_supply** (*Optional*, :ref:`config-id`): The :doc:`power supply </components/power_supply>` to connect to
this display. The power supply will be turned on before attempting to initialize the display. When ``model`` is set
to "Adafruit S2 TFT FEATHER 240X135" this option is required as there are variations of this board sold with differing
pin assignments.
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display. - **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
See :ref:`display-engine` for more information. See :ref:`display-engine` for more information.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``. - **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
@ -271,5 +276,6 @@ See Also
-------- --------
- :doc:`index` - :doc:`index`
- :doc:`Power Supply Component </components/power_supply>`
- :apiref:`st7789v_base/st7789v_base.h` - :apiref:`st7789v_base/st7789v_base.h`
- :ghedit:`Edit` - :ghedit:`Edit`

View File

@ -108,7 +108,9 @@ This automation will be triggered when a Bluetooth advertising is received. A va
esp32_ble_tracker: esp32_ble_tracker:
on_ble_advertise: on_ble_advertise:
- mac_address: 11:22:33:44:55:66 - mac_address:
- 11:11:11:11:11:11
- 22:22:22:22:22:22
then: then:
- lambda: |- - lambda: |-
ESP_LOGD("ble_adv", "New BLE device"); ESP_LOGD("ble_adv", "New BLE device");
@ -129,7 +131,7 @@ This automation will be triggered when a Bluetooth advertising is received. A va
Configuration variables: Configuration variables:
- **mac_address** (*Optional*, MAC Address): The MAC address to filter for this automation. - **mac_address** (*Optional*, list of MAC Address): The MAC address to filter for this automation.
- See :ref:`Automation <automation>`. - See :ref:`Automation <automation>`.
.. _esp32_ble_tracker-on_ble_manufacturer_data_advertise: .. _esp32_ble_tracker-on_ble_manufacturer_data_advertise:

View File

@ -20,8 +20,9 @@ This component only works on ESP32 based chips.
Configuration variables: Configuration variables:
------------------------ ------------------------
- **i2s_lrclk_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The GPIO pin to use for the I²S ``LRCLK`` *(Left/Right Clock)* signal, also referred to as ``WS`` *(Word Select)* or ``FS`` *(Frame Sync)*. - **i2s_lrclk_pin** (**Required**, :ref:`config-pin`): The GPIO pin to use for the I²S ``LRCLK`` *(Left/Right Clock)* signal, also referred to as ``WS`` *(Word Select)* or ``FS`` *(Frame Sync)*.
- **i2s_bclk_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The GPIO pin to use for the I²S ``BCLK`` *(Bit Clock)* signal, also referred to as ``SCK`` *(Serial Clock)*. - **i2s_bclk_pin** (*Optional*, :ref:`config-pin`): The GPIO pin to use for the I²S ``BCLK`` *(Bit Clock)* signal, also referred to as ``SCK`` *(Serial Clock)*.
- **i2s_mclk_pin** (*Optional*, :ref:`config-pin`): The GPIO pin to use for the I²S ``MCLK`` *(Master Clock)* signal.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID for this I²S bus if you need multiple. - **id** (*Optional*, :ref:`config-id`): Manually specify the ID for this I²S bus if you need multiple.
See also See also

View File

@ -26,4 +26,5 @@ Components
microphone/index microphone/index
speaker/index speaker/index
time/index time/index
alarm_control_panel/index
* *

View File

@ -0,0 +1,63 @@
RP2040 PIO LED Strip
====================
.. seo::
:description: Instructions for setting up addressable lights like NEOPIXEL on an RP2040 using the PIO peripheral.
:image: color_lens.svg
This is a component using the RP2040 PIO peripheral to drive most addressable LED strips.
.. code-block:: yaml
light:
- platform: rp2040_pio_led_strip
name: led_strip
id: led_strip
pin: GPIO13
num_leds: 10
pio: 0
rgb_order: GRB
chipset: WS2812B
Configuration variables
-----------------------
- **pin** (**Required**, :ref:`config-pin`): The pin for the data line of the light.
- **num_leds** (**Required**, int): The number of LEDs in the strip.
- **pio** (**Required**, int): The PIO peripheral to use. If using multiple strips, you can use up to 4 strips per PIO. Must be one of ``0`` or ``1``.
- **chipset** (**Required**, enum): The chipset to apply known timings from.
- ``WS2812``
- ``WS2812B``
- ``SK6812``
- ``SM16703``
- **rgb_order** (**Required**, string): The RGB order of the strip.
- ``RGB``
- ``RBG``
- ``GRB``
- ``GBR``
- ``BGR``
- ``BRG``
- **is_rgbw** (*Optional*, boolean): Set to ``true`` if the strip is RGBW. Defaults to ``false``.
Manual Timings
**************
These can be used if you know the timings and your chipset is not set above. If you have a new specific chipset,
please consider adding support to the codebase and add it to the list above.
- **bit0_high** (*Optional*, :ref:`config-time`): The time to hold the data line high for a ``0`` bit.
- **bit0_low** (*Optional*, :ref:`config-time`): The time to hold the data line low for a ``0`` bit.
- **bit1_high** (*Optional*, :ref:`config-time`): The time to hold the data line high for a ``1`` bit.
- **bit1_low** (*Optional*, :ref:`config-time`): The time to hold the data line low for a ``1`` bit.
See Also
--------
- :doc:`/components/light/index`
- :doc:`/components/power_supply`
- :ghedit:`Edit`

View File

@ -35,6 +35,9 @@ External DAC
- **mute_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The GPIO pin to use to mute the media player. - **mute_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The GPIO pin to use to mute the media player.
- **mode** (*Optional*, string): The mode of the I²S bus. Can be ``mono`` or ``stereo``. Defaults to ``mono``. - **mode** (*Optional*, string): The mode of the I²S bus. Can be ``mono`` or ``stereo``. Defaults to ``mono``.
- **i2s_audio_id** (*Optional*, :ref:`config-id`): The ID of the :ref:`I²S Audio <i2s_audio>` you wish to use for this media player. - **i2s_audio_id** (*Optional*, :ref:`config-id`): The ID of the :ref:`I²S Audio <i2s_audio>` you wish to use for this media player.
- **i2s_comm_fmt** (*Optional*, string): I2S communication format. By default MSB format is used (AC101, PCM5102A).
Set to ``lsb`` if using an external DAC that uses Japanese (Least Significant Bit Justified) format (like PT8211).
Can be ``msb`` or ``lsb``. Defaults to ``msb``.
For best results, keep the wires as short as possible. For best results, keep the wires as short as possible.

View File

@ -32,6 +32,9 @@ Configuration variables:
- ``internal``: Use the internal ADC of the ESP32. Only supported on ESP32, no variant support. - ``internal``: Use the internal ADC of the ESP32. Only supported on ESP32, no variant support.
- **channel** (*Optional*, enum): The channel of the microphone. One of ``left`` or ``right``. Defaults to ``right``. - **channel** (*Optional*, enum): The channel of the microphone. One of ``left`` or ``right``. Defaults to ``right``.
- **bits_per_sample** (*Optional*, enum): The bit depth of the audio samples. Note that while set to ``32bit``, the samples
will be scaled down to 16bit before being forwarded.
One of ``16bit`` or ``32bit``. Defaults to ``16bit``.
- **i2s_audio_id** (*Optional*, :ref:`config-id`): The ID of the :ref:`I²S Audio <i2s_audio>` you wish to use for this microphone. - **i2s_audio_id** (*Optional*, :ref:`config-id`): The ID of the :ref:`I²S Audio <i2s_audio>` you wish to use for this microphone.
- All other options from :ref:`Microphone <config-microphone>` - All other options from :ref:`Microphone <config-microphone>`

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -105,6 +105,9 @@ Currently supported Tank types are:
- ``20LB_V`` - 20 LB vertical tank - ``20LB_V`` - 20 LB vertical tank
- ``30LB_V`` - 30 LB vertical tank - ``30LB_V`` - 30 LB vertical tank
- ``40LB_V`` - 40 LB vertical tank - ``40LB_V`` - 40 LB vertical tank
- ``EUROPE_6KG`` - 6kg vertical tank
- ``EUROPE_11KG`` - 11kg vertical tank
- ``EUROPE_14KG`` - 14kg vertical tank
- ``CUSTOM`` - Allows you to define your own full and empty points - ``CUSTOM`` - Allows you to define your own full and empty points
Setting Up Devices Setting Up Devices

View File

@ -0,0 +1,78 @@
TMP1075 Temperature Sensor
==========================
.. seo::
:description: Instructions for setting up the TMP1075 Temperature sensor.
:image: tmp1075.jpg
:keywords: TMP1075
The TMP1075 Temperature sensor allows you to use your TMP1075
(`datasheet <https://www.ti.com/lit/gpn/tmp1075>`__)
sensors with ESPHome.
.. figure:: images/tmp1075.jpg
:align: center
:width: 30.0%
TMP1075 Temperature Sensor.
(Credit: `Texas Instruments <https://www.ti.com/content/dam/ticom/images/products/ic/sensing-products/chips/tmp1075-technical-chip-shot.png>`__, image cropped and compressed)
The TMP1075 is a high precision temperature sensor that communicates over I²C.
Each sensor is tested on a NIST tracable test setup during Texas Instruments'
production process. Accuracy is typically ±0.25°C across the -55°C to +125°C
range, with a maximum error of ±2°C in that same range and ±1°C in the -40°C to
+110°C range.
To use the sensor, first set up an :ref:`I²C Bus <i2c>` and connect the sensor
to the specified pins.
.. code-block:: yaml
# Example configuration entry
sensor:
- platform: tmp1075
name: "Temperature TMP1075"
update_interval: 10s
i2c_id: i2c_bus
conversion_rate: 27.5ms
alert:
function: comparator
polarity: active_high
limit_low: 50
limit_high: 75
fault_count: 1
Configuration variables:
------------------------
- **name** (**Required**, string): The name for the temperature sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for lambdas/multiple sensors.
- **address** (*Optional*, int): The I²C address of the sensor.
See :ref:`I²C Addresses <tmp1075_i2c_addresses>` for more information. Defaults to ``0x48``.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check
the sensor temperature. Defaults to ``60s``.
- **conversion_rate** (*Optional*): The interval at which the IC performs a
temperature measurement. This setting also determines how fast the alert pin
responds to temperature changes, and is thus independent of how often ESPHome
checks the sensor. Possible values are ``27.5ms``, ``55ms``, ``110ms``, and
``220ms``. Defaults to ``27.5ms``.
- **alert** (*Optional*): Configure the alert pin behaviour.
- **function** (*Optional*, enum): Function of the alert pin, either ``comparator`` or ``interrupt``. Defaults to ``comparator``.
- **polarity** (*Optional*, enum): Polarity of the alert pin, either ``active_high`` or ``active_low``. Defaults to ``active_high``.
- **limit_low** (*Optional*, int): Lower temperature limit, in °C. Defaults to ``-128`` (the lowest possible limit value).
- **limit_high** (*Optional*, int): Higher temperature limit, in °C. Defaults to ``127.9375`` (the highest possible limit value).
- **fault_count** (*Optional*, int): Number of measurements. required for the alert pin to act. Must be between ``1`` and ``4``, inclusive. Defaults to ``1``.
.. _tmp1075_i2c_addresses:
I²C Addresses
-------------
In order to allow multiple sensors to be connected to the same I²C bus, the
creators of this sensor hardware have included some options to change the I²C
address. Three address pins can be connected to GND, VCC, SDA, or SCL, creating
32 possible addresses. See section 9.3.2.2 of the `datasheet
<https://www.ti.com/lit/gpn/tmp1075>`__ for the mapping table.
When all address pins are connected to GND, the address is ``0x48``, which is
the default address for this sesnsor component.

View File

@ -23,6 +23,8 @@ via text sensors.
name: ESP Mac Wifi Address name: ESP Mac Wifi Address
scan_results: scan_results:
name: ESP Latest Scan Results name: ESP Latest Scan Results
dns_address:
name: ESP DNS Address
Configuration variables: Configuration variables:
------------------------ ------------------------
@ -37,6 +39,9 @@ Configuration variables:
:ref:`Text Sensor <config-text_sensor>`. :ref:`Text Sensor <config-text_sensor>`.
- **scan_results** (*Optional*): Expose the latest networks found during the latest scan. All options from - **scan_results** (*Optional*): Expose the latest networks found during the latest scan. All options from
:ref:`Text Sensor <config-text_sensor>`. :ref:`Text Sensor <config-text_sensor>`.
- **dns_address** (*Optional*): Expose the DNS Address of the ESP as text sensor.
:ref:`Text Sensor <config-text_sensor>`.
See Also See Also
-------- --------

View File

@ -25,6 +25,13 @@ Configuration:
- **microphone** (**Required**, :ref:`config-id`): The :doc:`microphone </components/microphone/index>` to use for input. - **microphone** (**Required**, :ref:`config-id`): The :doc:`microphone </components/microphone/index>` to use for input.
- **speaker** (*Optional*, :ref:`config-id`): The :doc:`speaker </components/speaker/index>` to use to output the response. - **speaker** (*Optional*, :ref:`config-id`): The :doc:`speaker </components/speaker/index>` to use to output the response.
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``.
- **on_listening** (*Optional*, :ref:`Automation <automation>`): An automation to
perform when the voice assistant starts listening.
- **on_start** (*Optional*, :ref:`Automation <automation>`): An automation to - **on_start** (*Optional*, :ref:`Automation <automation>`): An automation to
perform when the voice assistant starts listening. perform when the voice assistant starts listening.
- **on_end** (*Optional*, :ref:`Automation <automation>`): An automation to perform - **on_end** (*Optional*, :ref:`Automation <automation>`): An automation to perform
@ -50,8 +57,16 @@ Voice Assistant Actions
The following actions are available for use in automations: The following actions are available for use in automations:
- ``voice_assistant.start`` - Start listening for voice commands. - ``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.stop`` - Stop listening for voice commands.
Voice Assistant Conditions
--------------------------
The following conditions are available for use in automations:
- ``voice_assistant.is_running`` - Returns true if the voice assistant is currently running.
Push to Talk Push to Talk
------------ ------------
@ -61,7 +76,8 @@ Here is an example offering Push to Talk with a :doc:`/components/binary_sensor/
.. code-block:: yaml .. code-block:: yaml
voice_assistant: voice_assistant:
microphone: mic_id microphone: ...
speaker: ...
binary_sensor: binary_sensor:
- platform: gpio - platform: gpio
@ -71,6 +87,26 @@ Here is an example offering Push to Talk with a :doc:`/components/binary_sensor/
on_release: on_release:
- voice_assistant.stop: - voice_assistant.stop:
Click to Converse
-----------------
.. code-block:: yaml
voice_assistant:
microphone: ...
speaker: ...
binary_sensor:
- platform: gpio
pin: ...
on_click:
- if:
condition: voice_assistant.is_running
then:
- voice_assistant.stop:
else:
- voice_assistant.start_continuous:
See Also See Also
-------- --------

View File

@ -89,6 +89,8 @@ Configuration variables:
- **enable_btm** (*Optional*, bool): Only on ``esp32`` with ``esp-idf``. Enable 802.11v BSS Transition Management support. - **enable_btm** (*Optional*, bool): Only on ``esp32`` with ``esp-idf``. Enable 802.11v BSS Transition Management support.
- **enable_rrm** (*Optional*, bool): Only on ``esp32`` with ``esp-idf``. Enable 802.11k Radio Resource Management support. - **enable_rrm** (*Optional*, bool): Only on ``esp32`` with ``esp-idf``. Enable 802.11k Radio Resource Management support.
- **enable_on_boot** (*Optional*, boolean): If enabled, the WiFi interface will be enabled on boot. Defaults to ``true``.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. - **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
Access Point Mode Access Point Mode
@ -270,6 +272,18 @@ Configuration variables:
- **key** (*Optional*, string): Path to a PEM encoded private key matching ``certificate`` for EAP-TLS authentication. - **key** (*Optional*, string): Path to a PEM encoded private key matching ``certificate`` for EAP-TLS authentication.
Optionally encrypted with ``password``. Optionally encrypted with ``password``.
Turning on and off WiFi
-----------------------
Using the actions ``wifi.enable`` and ``wifi.disable``, you can turn on and off the WiFi interface on demand.
The configuration option ``enable_on_boot`` can be set to ``false`` if you do not want wifi to be enabled on boot.
.. note::
Be aware that if you disable WiFi, the API timeout will need to be disabled otherwise the device will reboot.
.. _wifi-connected_condition: .. _wifi-connected_condition:
``wifi.connected`` Condition ``wifi.connected`` Condition

View File

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

1
images/alarm-panel.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M20 3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2M8 19H5v-2h3v2m0-3H5v-2h3v2m0-3H5v-2h3v2m5.5 6h-3v-2h3v2m0-3h-3v-2h3v2m0-3h-3v-2h3v2m5.5 6h-3v-2h3v2m0-3h-3v-2h3v2m0-3h-3v-2h3v2m0-4H5V5h14v4Z"/></svg>

After

Width:  |  Height:  |  Size: 340 B

BIN
images/tmp1075.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -317,6 +317,7 @@ Environmental
TEE501, components/sensor/tee501, TEE501.png, Temperature TEE501, components/sensor/tee501, TEE501.png, Temperature
TMP102, components/sensor/tmp102, tmp102.jpg, Temperature TMP102, components/sensor/tmp102, tmp102.jpg, Temperature
TMP117, components/sensor/tmp117, tmp117.jpg, Temperature TMP117, components/sensor/tmp117, tmp117.jpg, Temperature
TMP1075, components/sensor/tmp1075, tmp1075.jpg, Temperature
HYT271, components/sensor/hyt271, hyt271.jpg, Temperature & Humidity HYT271, components/sensor/hyt271, hyt271.jpg, Temperature & Humidity
@ -524,6 +525,7 @@ Light Components
RGBCT Light, components/light/rgbct, rgbw.png RGBCT Light, components/light/rgbct, rgbw.png
ESP32 RMT, components/light/esp32_rmt_led_strip, color_lens.svg ESP32 RMT, components/light/esp32_rmt_led_strip, color_lens.svg
RP2040 PIO, components/light/rp2040_pio_led_strip, color_lens.svg
FastLED Light, components/light/fastled, color_lens.svg FastLED Light, components/light/fastled, color_lens.svg
NeoPixelBus Light, components/light/neopixelbus, color_lens.svg NeoPixelBus Light, components/light/neopixelbus, color_lens.svg
Light Partition, components/light/partition, color_lens.svg Light Partition, components/light/partition, color_lens.svg
@ -748,6 +750,14 @@ Home Assistant Companion Components
Text Sensor, components/text_sensor/homeassistant, home-assistant.svg Text Sensor, components/text_sensor/homeassistant, home-assistant.svg
Binary Sensor, components/binary_sensor/homeassistant, home-assistant.svg Binary Sensor, components/binary_sensor/homeassistant, home-assistant.svg
Alarm Control Panel Components
------------------------------
.. imgtable::
Alarm Control Panel Core, components/alarm_control_panel/index, alarm-panel.svg
Template Alarm Control Panel, components/alarm_control_panel/template, description.svg
Miscellaneous Components Miscellaneous Components
------------------------ ------------------------