Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2024.11.0 #4455

Merged
merged 71 commits into from
Nov 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
ff2e27e
Add tca9555 to index (#4320)
jesserockz Oct 9, 2024
04c20ac
even parity is required for CSE7766 (#4308)
ssieb Oct 6, 2024
7fa3325
Bump version to 2024.11.0-dev
jesserockz Oct 9, 2024
a56cabc
Merge branch 'current' into next
jesserockz Oct 9, 2024
93ed66f
Merge branch 'beta' into next
jesserockz Oct 9, 2024
660df0f
Document `pillow` requirements change (#4317)
hostcc Oct 10, 2024
842e830
[web_server] event component grouping (#4332)
RFDarter Oct 13, 2024
4cf6af6
Merge branch 'current' into next
jesserockz Oct 13, 2024
ea7169b
Merge branch 'beta' into next
jesserockz Oct 13, 2024
dc7d4a4
Merge branch 'current' into next
jesserockz Oct 16, 2024
6f46ea5
Merge branch 'current' into next
jesserockz Oct 16, 2024
a4b9872
Document new conditions shortcuts (#4316)
clydebarrow Oct 16, 2024
ef3e3d4
Add documentation for TC74 (#4255)
sethgirvan Oct 16, 2024
f844d67
Added ring and gauge basic shapes (#4235)
artemyevav Oct 16, 2024
2c1437d
[lvgl] Document draw_rounding (#4336)
clydebarrow Oct 16, 2024
8371c05
[qspi_dbi] Rename from qspi_amoled (#4335)
clydebarrow Oct 16, 2024
ab9da0a
Documentation for Analog Devices MAX17043 battery fuel gauge (#4299)
blacknell Oct 16, 2024
5bf9939
[light] Add ``initial_state`` documentation (#4331)
kbx81 Oct 16, 2024
ddfff8d
Document Speaker volume set action (#4343)
kahrendt Oct 16, 2024
21da187
[axs15231] Add AXS15231 touchscreen (#4334)
clydebarrow Oct 17, 2024
0da104b
[lvgl] Document selection by text for roller and dropdown (#4344)
clydebarrow Oct 17, 2024
8a6a7bb
Update documentation for custom MAC support on Arduino (#4358)
kbx81 Oct 21, 2024
5353164
Fix typo in esp32.rst (#4364)
kbx81 Oct 21, 2024
65d6dc6
Merge branch 'current' into next
jesserockz Oct 21, 2024
5df5a61
Merge branch 'current' into next
jesserockz Oct 22, 2024
b66531a
feat(MQTT): Add subscribe QoS to discovery (#4363)
Rapsssito Oct 22, 2024
c489053
I2c device docs (#4371)
jesserockz Oct 23, 2024
a718d90
Merge branch 'current' into next
jesserockz Oct 23, 2024
8e03ff0
Merge branch 'current' into next
jesserockz Oct 23, 2024
febc428
[speaker] Document mute actions and audio dac support (#4378)
kahrendt Oct 23, 2024
0b486c8
Update HA getting started to use ESPHome Device Compiler name (#4390)
balloob Oct 24, 2024
e4101c8
[media_player] Document paused and announcing conditions (#4387)
kahrendt Oct 24, 2024
9eee18e
[media_player] add new conditions to all conditions list (#4396)
kahrendt Oct 28, 2024
c841607
add `qrcode` lvgl widget (#4347)
nagyrobi Oct 28, 2024
cbb2ba8
[http_request] Add status_code note (#4397)
clydebarrow Oct 29, 2024
3c17756
Add polling_interval and its usage to ethernet.rst (#4389)
slakichi Oct 29, 2024
eebdac1
Update Mopeka docs to include new optional sensors and configuration …
spbrogan Oct 29, 2024
07b0453
[http_request] Document on_error trigger (#4401)
clydebarrow Oct 30, 2024
a10eadd
[es8311]] Document new ES8311 component (#4400)
kahrendt Oct 30, 2024
4f3a859
Document touchscreen changes (#4403)
clydebarrow Oct 31, 2024
593f745
[font] Add documentation for glyphsets (#4245)
paravoid Oct 31, 2024
0194102
[spi_device] Rename mode to spi_mode (#4414)
clydebarrow Nov 6, 2024
b2cad90
feat(MQTT): Add `enable`, `disable` and `enable_on_boot` (#4408)
Rapsssito Nov 6, 2024
2472e25
[lvgl] Document multiple instance configs (#4413)
clydebarrow Nov 7, 2024
5441be1
Merge branch 'current' into next
jesserockz Nov 8, 2024
9853544
Merge branch 'current' into next
jesserockz Nov 8, 2024
edb9e10
Document filter changes (#4418)
clydebarrow Nov 11, 2024
29f917d
[http_request] Fix indentation (#4423)
jesserockz Nov 11, 2024
2e6381a
Documentation for new OpenTherm component (#3800)
olegtarasov Nov 12, 2024
23b8833
[i2s_audio] Document I2S speaker disable timeout option (#4426)
kahrendt Nov 12, 2024
283be72
[Modbus Controller] Document new automations `on_online` and `on_offl…
0x3333 Nov 12, 2024
50f877c
Merge branch 'current' into next
jesserockz Nov 13, 2024
aa7aaac
Bump version to 2024.11.0b1
jesserockz Nov 13, 2024
70c3fa1
Update changelog for 2024.11.0b1
jesserockz Nov 13, 2024
e0f33eb
Update supporters for 2024.11.0b1
jesserockz Nov 13, 2024
6011874
Merge pull request #4433 from esphome/bump-2024.11.0b1
jesserockz Nov 13, 2024
cbdc9e8
Bump version to 2024.11.0b2
jesserockz Nov 14, 2024
8862306
Update changelog for 2024.11.0b2
jesserockz Nov 14, 2024
2ca041e
Update supporters for 2024.11.0b2
jesserockz Nov 14, 2024
b0ad622
Merge pull request #4438 from esphome/bump-2024.11.0b2
jesserockz Nov 14, 2024
8e6c5c6
Merge branch 'current' into beta
jesserockz Nov 18, 2024
4fca003
Bump version to 2024.11.0b3
jesserockz Nov 18, 2024
cd6fd23
Update changelog for 2024.11.0b3
jesserockz Nov 18, 2024
ed4e7ab
Update supporters for 2024.11.0b3
jesserockz Nov 18, 2024
cf716c2
Merge pull request #4450 from esphome/bump-2024.11.0b3
jesserockz Nov 19, 2024
6afaf46
Bump version to 2024.11.0b4
jesserockz Nov 20, 2024
57bf47b
Update changelog for 2024.11.0b4
jesserockz Nov 20, 2024
03fbccd
Update supporters for 2024.11.0b4
jesserockz Nov 20, 2024
8e4f5a4
Merge pull request #4454 from esphome/bump-2024.11.0b4
jesserockz Nov 20, 2024
06f8ac8
Bump version to 2024.11.0
jesserockz Nov 20, 2024
87ec2d2
Update changelog for 2024.11.0
jesserockz Nov 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Doxygen
Original file line number Diff line number Diff line change
Expand Up @@ -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 = 2024.10.3
PROJECT_NUMBER = 2024.11.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
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
ESPHOME_PATH = ../esphome
ESPHOME_REF = 2024.10.3
ESPHOME_REF = 2024.11.0
PAGEFIND_VERSION=1.1.1
PAGEFIND=pagefind
NET_PAGEFIND=../pagefindbin/pagefind
Expand Down
1 change: 1 addition & 0 deletions _redirects
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,4 @@

/ready-made/projects /projects/ 301
/components/images /components/image 301
/components/display/qspi_amoled.html /components/display/qspi_dbi.html 301
Binary file added _static/changelog-2024.11.0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion _static/version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2024.10.3
2024.11.0
22 changes: 15 additions & 7 deletions automations/actions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,11 @@ turns on a light for 5 seconds. Otherwise, the light is turned off immediately.

Configuration variables:

- **condition** (**Required**, :ref:`Condition <config-condition>`): The condition to check to determine which branch to take.
At least one of ``condition``, ``all`` or ``any`` must be provided.

- **condition** (*Optional*, :ref:`Condition <config-condition>`): The condition to check to determine which branch to take. If this is configured with a list of conditions then they must all be true for the condition to be true.
- **all** (*Optional*, :ref:`Condition <config-condition>`): Takes a list of conditions, all of which must be true (and is therefore equivalent to ``condition``.)
- **any** (*Optional*, :ref:`Condition <config-condition>`): Takes a list of conditions; if at least one is true, the condition will be true.
- **then** (*Optional*, :ref:`Action <config-action>`): The action to perform if the condition evaluates to true.
Defaults to doing nothing.
- **else** (*Optional*, :ref:`Action <config-action>`): The action to perform if the condition evaluates to false.
Expand Down Expand Up @@ -406,14 +410,17 @@ Common Conditions
"Conditions" provide a way for your device to take an action only when a specific (set of) condition(s) is satisfied.

.. _and_condition:
.. _all_condition:
.. _or_condition:
.. _any_condition:
.. _xor_condition:
.. _not_condition:

``and`` / ``or`` / ``xor`` / ``not`` Condition
**********************************************
``and`` / ``all`` / ``or`` / ``any`` / ``xor`` / ``not`` Condition
******************************************************************

Check a combination of conditions
Check a combination of conditions. ``all`` is a synonym for ``and``, and ``any`` is a synonym for ``or``.
``all`` and ``any`` may also be used directly in place of ``condition``.

.. code-block:: yaml

Expand All @@ -428,9 +435,10 @@ Check a combination of conditions
# ...

- if:
condition:
not:
binary_sensor.is_off: some_binary_sensor
any:
- not:
binary_sensor.is_off: some_binary_sensor
- binary_sensor.is_on: some_other_sensor

.. _for_condition:

Expand Down
2 changes: 1 addition & 1 deletion automations/all_actions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
- **senseair:** ``abc_disable``, ``abc_enable``, ``abc_get_period``, ``background_calibration``, ``background_calibration_result``
- **servo:** ``detach``, ``write``
- **sim800l:** ``connect``, ``dial``, ``disconnect``, ``send_sms``, ``send_ussd``
- **speaker:** ``play``, ``stop``
- **speaker:** ``play``, ``stop``, ``finish``, ``volume_set``
- **sprinkler:** ``clear_queued_valves``, ``next_valve``, ``pause``, ``previous_valve``, ``queue_valve``, ``resume``, ``resume_or_start_full_cycle``, ``set_divider``, ``set_multiplier``, ``set_repeat``, ``set_valve_run_duration``, ``shutdown``, ``start_from_queue``, ``start_full_cycle``, ``start_single_valve``
- **sps30:** ``start_fan_autoclean``
- **stepper:** ``report_position``, ``set_acceleration``, ``set_deceleration``, ``set_speed``, ``set_target``
Expand Down
2 changes: 1 addition & 1 deletion automations/all_conditions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
- **fan:** ``is_off``, ``is_on``
- **light:** ``is_off``, ``is_on``
- **lock:** ``is_locked``, ``is_unlocked``
- **media_player:** ``is_idle``, ``is_playing``
- **media_player:** ``is_announcing``, ``is_idle``, ``is_paused``, ``is_playing``
- **micro_wake_word:** ``is_running``
- **microphone:** ``is_capturing``
- **mqtt:** ``connected``
Expand Down
257 changes: 257 additions & 0 deletions changelog/2024.11.0.rst

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion changelog/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ Changelog
=========

.. redirect::
:url: /changelog/2024.10.0.html
:url: /changelog/2024.11.0.html

.. toctree::
:glob:
Expand Down
81 changes: 81 additions & 0 deletions components/audio_dac/es8311.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
ES8311
======

.. seo::
:description: Instructions for using ESPHome's ES8311 audio DAC platform to play media from your devices.
:image: es8311.svg
:keywords: ES8311, Audio, DAC, I2S, ESP32

The ``es8311`` platform allows your ESPHome devices to use the ES8311 low power mono audio codec.
This allows the playback of audio via the microcontroller from a range of sources via :doc:`/components/speaker/index` or
:doc:`/components/media_player/index`.

The :ref:`I²C bus <i2c>` is required in your configuration as this is used to communicate with the ES8311.

.. code-block:: yaml

# Example configuration entry
audio_dac:
- platform: es8311

.. _config-es8311:

Configuration variables:
------------------------
- **bits_per_sample** (*Optional*, enum): The bit depth of the audio samples. One of ``16bit``, ``24bit``, or ``32bit``. Defaults to ``16bit``.
- **sample_rate** (*Optional*, positive integer): I2S sample rate. Defaults to ``16000``.
- **use_mclk** (*Optional*, bool): Use the MCLK signal to control the clock. Defaults to ``True``.
- **use_microphone** (*Optional*, bool): Configure the codec's ADC for microphone input. Defaults to ``False``.
- **mic_gain** (*Optional*, enum): The gain applied to the ADC microphones. One of ``MIN``, ``0DB``, ``6DB``, ``12DB``, ``18DB``, ``24DB``, ``30DB``, ``36DB``, ``42DB``, or ``MAX``. Defaults to ``42DB``.
- **address** (*Optional*, int): The I²C address of the driver. Defaults to ``0x18``.
- **i2c_id** (*Optional*): The ID of the :ref:`I²C bus <i2c>` the ES8311 is connected to.
- All other options from :ref:`Audio DAC <config-audio_dac>`.

Automations
-----------

All :ref:`Audio DAC Automations <automations-audio_dac>` are supported by this platform.

Configuration Examples
----------------------

**ESP32 S3 Box 3**:

.. code-block:: yaml

audio_dac:
- platform: es8311
id: es8311_dac
bits_per_sample: 16bit
sample_rate: 16000

i2s_audio:
- id: i2s_output
i2s_lrclk_pin: GPIO45
i2s_bclk_pin: GPIO17
i2s_mclk_pin: GPIO23

speaker:
- platform: i2s_audio
i2s_audio_id: i2s_output
id: speaker_id
i2s_dout_pin: GPIO15
dac_type: external
sample_rate: 16000
bits_per_sample: 16bit
channel: stereo
audio_dac: es8311_dac

switch:
- platform: gpio
name: "Speaker Enable"
pin: GPIO46
restore_mode: RESTORE_DEFAULT_ON

See Also
--------

- :doc:`index`
- :apiref:`es8311/es8311.h`
- :apiref:`audio_dac/audio_dac.h`
- :ghedit:`Edit`
7 changes: 7 additions & 0 deletions components/display/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,13 @@ Now that you know a bit more about ESPHome's coordinate system, let's draw some
// ... and the same thing filled again
it.filled_circle(20, 75, 10);

// Ring and half-ring. First draw the circle with a hole in it
// at [75,75] with inner raduis of 20 and outer of 30
id.filled_ring(75, 75, 30, 20);
// and a "gauge": half-ring that is partially filled.
// Same position and size but 80% filled left to right
id.filled_gauge(75, 75, 30, 20, 80)

// Triangles... Let's draw the outline of a triangle from the [x,y] coordinates of its three points
// [25,5], [100,5], [80,25]
it.triangle(25, 5, 100, 5, 80, 25);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
Quad SPI AMOLED Displays
========================
Quad SPI Displays
=================

.. seo::
:description: Instructions for setting up quad SPI AMOLED displays.
:description: Instructions for setting up quad SPI displays.
:image: t4-s3.jpg

.. _qspi_amoled:
.. _qspi_dbi:

Models
------
This display driver supports AMOLED displays with quad SPI interfaces.
This display driver supports AMOLED and LCD displays with quad SPI interfaces, using the MIPI DBI interface.

This driver has been tested with the following displays:

- Lilygo T4-S3
- Lilygo T-Display S3 AMOLED
- JC4832W535 board using AXS15231

Usage
-----
Expand All @@ -36,19 +37,16 @@ ESP-IDF. PSRAM is a requirement due to the size of the display buffer. A :ref:`q

.. code-block:: yaml

# Example minimal configuration entry
# Example configuration entry

display:
- platform: qspi_amoled
- platform: qspi_dbi
model: RM690B0
data_rate: 80MHz
spi_mode: mode0
dimensions:
width: 450
height: 600
offset_width: 16
color_order: rgb
invert_colors: false
brightness: 255
cs_pin: GPIOXX
reset_pin: GPIOXX
Expand All @@ -58,7 +56,8 @@ ESP-IDF. PSRAM is a requirement due to the size of the display buffer. A :ref:`q
Configuration variables:
************************

- **model** (**Required**): One of ``RM67162`` or ``RM690B0``.
- **model** (**Required**): One of ``CUSTOM``, ``RM67162`` or ``RM690B0``.
- **init_sequence** (*Optional*, A list of byte arrays): Specifies the init sequence for the display. This is required when using the ``CUSTOM`` model - but may be empty. If specified for other models this data will be sent after the pre-configured sequence.
- **cs_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The chip select pin.
- **reset_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The RESET pin.
- **enable_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The display enable pin.
Expand All @@ -84,6 +83,7 @@ Configuration variables:
- **data_rate** (*Optional*): Set the data rate of the SPI interface to the display. One of ``80MHz``, ``40MHz``, ``20MHz``, ``10MHz`` (default), ``5MHz``, ``2MHz`` or ``1MHz``.
- **spi_mode** (*Optional*): Set the mode for the SPI interface to the display. Default is ``MODE0``.
- **invert_colors** (*Optional*): With this boolean option you can invert the display colors.
- **draw_from_origin** (*Optional*): When set, all partial display updates will start at the origin (0,0). Defaults to false.
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
See :ref:`display-engine` for more information.

Expand Down Expand Up @@ -115,7 +115,7 @@ Lilygo T4-S3
reset_pin: 17

display:
- platform: qspi_amoled
- platform: qspi_dbi
model: RM690B0
data_rate: 80MHz
spi_mode: mode0
Expand Down Expand Up @@ -162,7 +162,7 @@ Lilygo T-Display S3 AMOLED
number: 21

display:
- platform: qspi_amoled
- platform: qspi_dbi
model: RM67162
id: main_lcd
dimensions:
Expand All @@ -178,9 +178,56 @@ Lilygo T-Display S3 AMOLED
enable_pin: 38


JC4832W535 3.5" LCD Board
*************************

This rotates the display into landscape mode using software rotation.

.. code-block:: yaml

psram:
mode: octal
speed: 80MHz

spi:
id: display_qspi
type: quad
clk_pin: 47
data_pins: [21,48,40,39]

power_supply:
id: backlight_id
pin: 1
enable_on_boot: true

display:
- platform: qspi_dbi
model: axs15231
data_rate: 40MHz
dimensions:
height: 480
width: 320
cs_pin:
number: 45
ignore_strapping_warning: true
auto_clear_enabled: false
update_interval: never
init_sequence:

i2c:
sda: 4
scl: 8

touchscreen:
platform: axs15231
transform:
swap_xy: true
mirror_y: true


See Also
--------

- :doc:`index`
- :apiref:`qspi_amoled/qspi_amoled.h`
- :apiref:`qspi_dbi/qspi_dbi.h`
- :ghedit:`Edit`
19 changes: 19 additions & 0 deletions components/ethernet.rst
Original file line number Diff line number Diff line change
Expand Up @@ -90,11 +90,30 @@ SPI configuration variables:
- **miso_pin** (**Required**, :ref:`config-pin`): The SPI MISO pin.
- **cs_pin** (**Required**, :ref:`config-pin`): The SPI chip select pin.
- **interrupt_pin** (*Optional*, :ref:`config-pin`): The interrupt pin.
This variable is **required** for older frameworks. See below.
- **reset_pin** (*Optional*, :ref:`config-pin`): The reset pin.
- **clock_speed** (*Optional*, float): The SPI clock speed.
Any frequency between `8Mhz` and `80Mhz` is allowed, but the nearest integer division
of `80Mhz` is used, i.e. `16Mhz` (`80Mhz` / 5) is used when `15Mhz` is configured.
Default: `26.67Mhz`.
- **polling_interval** (*Optional*, :ref:`config-time`): If ``interrupt_pin`` is not set,
set the time interval for periodic polling. Minimum is 1ms, Defaults to 10ms.
Older frameworks may not support this variable. See below for details.

If you are using a framework with the latest version, ESPHome provides
an SPI-based Ethernet module without interrupt pin.
Support for SPI polling mode (no interrupt pin) is provided by the following frameworks:

- ESP-IDF 5.3 or later
- ESP-IDF 5.2.1 and later 5.2.x versions
- ESP-IDF 5.1.4
- Arduino-ESP32 3.0.0 or later (**Caution**: PlatformIO does not support these Arduino-ESP32 versions)

When building with frameworks that support SPI polling mode, either ``interrupt_pin``
or ``polling_interval`` can be set. If you set both, ESPHome will throw an error.

If you are using a framework that does not support SPI-based ethernet modules without interrupt pin,
``interrupt_pin`` is **required** and you cannot set ``polling_interval``.

Advanced common configuration variables:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Expand Down
Loading