Skip to content

Commit 485ddba

Browse files
authored
Merge pull request #4455 from esphome/bump-2024.11.0
2024.11.0
2 parents 278196a + 87ec2d2 commit 485ddba

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+1918
-442
lines changed

Doxygen

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ PROJECT_NAME = "ESPHome"
3838
# could be handy for archiving the generated documentation or if some version
3939
# control system is used.
4040

41-
PROJECT_NUMBER = 2024.10.3
41+
PROJECT_NUMBER = 2024.11.0
4242

4343
# Using the PROJECT_BRIEF tag one can provide an optional one line description
4444
# for a project that appears at the top of each page and should give viewer a

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
ESPHOME_PATH = ../esphome
2-
ESPHOME_REF = 2024.10.3
2+
ESPHOME_REF = 2024.11.0
33
PAGEFIND_VERSION=1.1.1
44
PAGEFIND=pagefind
55
NET_PAGEFIND=../pagefindbin/pagefind

_redirects

+1
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,4 @@
4242

4343
/ready-made/projects /projects/ 301
4444
/components/images /components/image 301
45+
/components/display/qspi_amoled.html /components/display/qspi_dbi.html 301

_static/changelog-2024.11.0.png

170 KB
Loading

_static/version

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2024.10.3
1+
2024.11.0

automations/actions.rst

+15-7
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,11 @@ turns on a light for 5 seconds. Otherwise, the light is turned off immediately.
217217
218218
Configuration variables:
219219

220-
- **condition** (**Required**, :ref:`Condition <config-condition>`): The condition to check to determine which branch to take.
220+
At least one of ``condition``, ``all`` or ``any`` must be provided.
221+
222+
- **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.
223+
- **all** (*Optional*, :ref:`Condition <config-condition>`): Takes a list of conditions, all of which must be true (and is therefore equivalent to ``condition``.)
224+
- **any** (*Optional*, :ref:`Condition <config-condition>`): Takes a list of conditions; if at least one is true, the condition will be true.
221225
- **then** (*Optional*, :ref:`Action <config-action>`): The action to perform if the condition evaluates to true.
222226
Defaults to doing nothing.
223227
- **else** (*Optional*, :ref:`Action <config-action>`): The action to perform if the condition evaluates to false.
@@ -406,14 +410,17 @@ Common Conditions
406410
"Conditions" provide a way for your device to take an action only when a specific (set of) condition(s) is satisfied.
407411

408412
.. _and_condition:
413+
.. _all_condition:
409414
.. _or_condition:
415+
.. _any_condition:
410416
.. _xor_condition:
411417
.. _not_condition:
412418

413-
``and`` / ``or`` / ``xor`` / ``not`` Condition
414-
**********************************************
419+
``and`` / ``all`` / ``or`` / ``any`` / ``xor`` / ``not`` Condition
420+
******************************************************************
415421

416-
Check a combination of conditions
422+
Check a combination of conditions. ``all`` is a synonym for ``and``, and ``any`` is a synonym for ``or``.
423+
``all`` and ``any`` may also be used directly in place of ``condition``.
417424

418425
.. code-block:: yaml
419426
@@ -428,9 +435,10 @@ Check a combination of conditions
428435
# ...
429436
430437
- if:
431-
condition:
432-
not:
433-
binary_sensor.is_off: some_binary_sensor
438+
any:
439+
- not:
440+
binary_sensor.is_off: some_binary_sensor
441+
- binary_sensor.is_on: some_other_sensor
434442
435443
.. _for_condition:
436444

automations/all_actions.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
- **senseair:** ``abc_disable``, ``abc_enable``, ``abc_get_period``, ``background_calibration``, ``background_calibration_result``
5858
- **servo:** ``detach``, ``write``
5959
- **sim800l:** ``connect``, ``dial``, ``disconnect``, ``send_sms``, ``send_ussd``
60-
- **speaker:** ``play``, ``stop``
60+
- **speaker:** ``play``, ``stop``, ``finish``, ``volume_set``
6161
- **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``
6262
- **sps30:** ``start_fan_autoclean``
6363
- **stepper:** ``report_position``, ``set_acceleration``, ``set_deceleration``, ``set_speed``, ``set_target``

automations/all_conditions.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
- **fan:** ``is_off``, ``is_on``
99
- **light:** ``is_off``, ``is_on``
1010
- **lock:** ``is_locked``, ``is_unlocked``
11-
- **media_player:** ``is_idle``, ``is_playing``
11+
- **media_player:** ``is_announcing``, ``is_idle``, ``is_paused``, ``is_playing``
1212
- **micro_wake_word:** ``is_running``
1313
- **microphone:** ``is_capturing``
1414
- **mqtt:** ``connected``

changelog/2024.11.0.rst

+257
Large diffs are not rendered by default.

changelog/index.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Changelog
22
=========
33

44
.. redirect::
5-
:url: /changelog/2024.10.0.html
5+
:url: /changelog/2024.11.0.html
66

77
.. toctree::
88
:glob:

components/audio_dac/es8311.rst

+81
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
ES8311
2+
======
3+
4+
.. seo::
5+
:description: Instructions for using ESPHome's ES8311 audio DAC platform to play media from your devices.
6+
:image: es8311.svg
7+
:keywords: ES8311, Audio, DAC, I2S, ESP32
8+
9+
The ``es8311`` platform allows your ESPHome devices to use the ES8311 low power mono audio codec.
10+
This allows the playback of audio via the microcontroller from a range of sources via :doc:`/components/speaker/index` or
11+
:doc:`/components/media_player/index`.
12+
13+
The :ref:`I²C bus <i2c>` is required in your configuration as this is used to communicate with the ES8311.
14+
15+
.. code-block:: yaml
16+
17+
# Example configuration entry
18+
audio_dac:
19+
- platform: es8311
20+
21+
.. _config-es8311:
22+
23+
Configuration variables:
24+
------------------------
25+
- **bits_per_sample** (*Optional*, enum): The bit depth of the audio samples. One of ``16bit``, ``24bit``, or ``32bit``. Defaults to ``16bit``.
26+
- **sample_rate** (*Optional*, positive integer): I2S sample rate. Defaults to ``16000``.
27+
- **use_mclk** (*Optional*, bool): Use the MCLK signal to control the clock. Defaults to ``True``.
28+
- **use_microphone** (*Optional*, bool): Configure the codec's ADC for microphone input. Defaults to ``False``.
29+
- **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``.
30+
- **address** (*Optional*, int): The I²C address of the driver. Defaults to ``0x18``.
31+
- **i2c_id** (*Optional*): The ID of the :ref:`I²C bus <i2c>` the ES8311 is connected to.
32+
- All other options from :ref:`Audio DAC <config-audio_dac>`.
33+
34+
Automations
35+
-----------
36+
37+
All :ref:`Audio DAC Automations <automations-audio_dac>` are supported by this platform.
38+
39+
Configuration Examples
40+
----------------------
41+
42+
**ESP32 S3 Box 3**:
43+
44+
.. code-block:: yaml
45+
46+
audio_dac:
47+
- platform: es8311
48+
id: es8311_dac
49+
bits_per_sample: 16bit
50+
sample_rate: 16000
51+
52+
i2s_audio:
53+
- id: i2s_output
54+
i2s_lrclk_pin: GPIO45
55+
i2s_bclk_pin: GPIO17
56+
i2s_mclk_pin: GPIO23
57+
58+
speaker:
59+
- platform: i2s_audio
60+
i2s_audio_id: i2s_output
61+
id: speaker_id
62+
i2s_dout_pin: GPIO15
63+
dac_type: external
64+
sample_rate: 16000
65+
bits_per_sample: 16bit
66+
channel: stereo
67+
audio_dac: es8311_dac
68+
69+
switch:
70+
- platform: gpio
71+
name: "Speaker Enable"
72+
pin: GPIO46
73+
restore_mode: RESTORE_DEFAULT_ON
74+
75+
See Also
76+
--------
77+
78+
- :doc:`index`
79+
- :apiref:`es8311/es8311.h`
80+
- :apiref:`audio_dac/audio_dac.h`
81+
- :ghedit:`Edit`

components/display/index.rst

+7
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,13 @@ Now that you know a bit more about ESPHome's coordinate system, let's draw some
125125
// ... and the same thing filled again
126126
it.filled_circle(20, 75, 10);
127127
128+
// Ring and half-ring. First draw the circle with a hole in it
129+
// at [75,75] with inner raduis of 20 and outer of 30
130+
id.filled_ring(75, 75, 30, 20);
131+
// and a "gauge": half-ring that is partially filled.
132+
// Same position and size but 80% filled left to right
133+
id.filled_gauge(75, 75, 30, 20, 80)
134+
128135
// Triangles... Let's draw the outline of a triangle from the [x,y] coordinates of its three points
129136
// [25,5], [100,5], [80,25]
130137
it.triangle(25, 5, 100, 5, 80, 25);

components/display/qspi_amoled.rst renamed to components/display/qspi_dbi.rst

+61-14
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
1-
Quad SPI AMOLED Displays
2-
========================
1+
Quad SPI Displays
2+
=================
33

44
.. seo::
5-
:description: Instructions for setting up quad SPI AMOLED displays.
5+
:description: Instructions for setting up quad SPI displays.
66
:image: t4-s3.jpg
77

8-
.. _qspi_amoled:
8+
.. _qspi_dbi:
99

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

1414
This driver has been tested with the following displays:
1515

1616
- Lilygo T4-S3
1717
- Lilygo T-Display S3 AMOLED
18+
- JC4832W535 board using AXS15231
1819

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

3738
.. code-block:: yaml
3839
39-
# Example minimal configuration entry
40+
# Example configuration entry
4041
4142
display:
42-
- platform: qspi_amoled
43+
- platform: qspi_dbi
4344
model: RM690B0
4445
data_rate: 80MHz
45-
spi_mode: mode0
4646
dimensions:
4747
width: 450
4848
height: 600
4949
offset_width: 16
50-
color_order: rgb
51-
invert_colors: false
5250
brightness: 255
5351
cs_pin: GPIOXX
5452
reset_pin: GPIOXX
@@ -58,7 +56,8 @@ ESP-IDF. PSRAM is a requirement due to the size of the display buffer. A :ref:`q
5856
Configuration variables:
5957
************************
6058

61-
- **model** (**Required**): One of ``RM67162`` or ``RM690B0``.
59+
- **model** (**Required**): One of ``CUSTOM``, ``RM67162`` or ``RM690B0``.
60+
- **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.
6261
- **cs_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The chip select pin.
6362
- **reset_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The RESET pin.
6463
- **enable_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The display enable pin.
@@ -84,6 +83,7 @@ Configuration variables:
8483
- **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``.
8584
- **spi_mode** (*Optional*): Set the mode for the SPI interface to the display. Default is ``MODE0``.
8685
- **invert_colors** (*Optional*): With this boolean option you can invert the display colors.
86+
- **draw_from_origin** (*Optional*): When set, all partial display updates will start at the origin (0,0). Defaults to false.
8787
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
8888
See :ref:`display-engine` for more information.
8989

@@ -115,7 +115,7 @@ Lilygo T4-S3
115115
reset_pin: 17
116116
117117
display:
118-
- platform: qspi_amoled
118+
- platform: qspi_dbi
119119
model: RM690B0
120120
data_rate: 80MHz
121121
spi_mode: mode0
@@ -162,7 +162,7 @@ Lilygo T-Display S3 AMOLED
162162
number: 21
163163
164164
display:
165-
- platform: qspi_amoled
165+
- platform: qspi_dbi
166166
model: RM67162
167167
id: main_lcd
168168
dimensions:
@@ -178,9 +178,56 @@ Lilygo T-Display S3 AMOLED
178178
enable_pin: 38
179179
180180
181+
JC4832W535 3.5" LCD Board
182+
*************************
183+
184+
This rotates the display into landscape mode using software rotation.
185+
186+
.. code-block:: yaml
187+
188+
psram:
189+
mode: octal
190+
speed: 80MHz
191+
192+
spi:
193+
id: display_qspi
194+
type: quad
195+
clk_pin: 47
196+
data_pins: [21,48,40,39]
197+
198+
power_supply:
199+
id: backlight_id
200+
pin: 1
201+
enable_on_boot: true
202+
203+
display:
204+
- platform: qspi_dbi
205+
model: axs15231
206+
data_rate: 40MHz
207+
dimensions:
208+
height: 480
209+
width: 320
210+
cs_pin:
211+
number: 45
212+
ignore_strapping_warning: true
213+
auto_clear_enabled: false
214+
update_interval: never
215+
init_sequence:
216+
217+
i2c:
218+
sda: 4
219+
scl: 8
220+
221+
touchscreen:
222+
platform: axs15231
223+
transform:
224+
swap_xy: true
225+
mirror_y: true
226+
227+
181228
See Also
182229
--------
183230

184231
- :doc:`index`
185-
- :apiref:`qspi_amoled/qspi_amoled.h`
232+
- :apiref:`qspi_dbi/qspi_dbi.h`
186233
- :ghedit:`Edit`

components/ethernet.rst

+19
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,30 @@ SPI configuration variables:
9090
- **miso_pin** (**Required**, :ref:`config-pin`): The SPI MISO pin.
9191
- **cs_pin** (**Required**, :ref:`config-pin`): The SPI chip select pin.
9292
- **interrupt_pin** (*Optional*, :ref:`config-pin`): The interrupt pin.
93+
This variable is **required** for older frameworks. See below.
9394
- **reset_pin** (*Optional*, :ref:`config-pin`): The reset pin.
9495
- **clock_speed** (*Optional*, float): The SPI clock speed.
9596
Any frequency between `8Mhz` and `80Mhz` is allowed, but the nearest integer division
9697
of `80Mhz` is used, i.e. `16Mhz` (`80Mhz` / 5) is used when `15Mhz` is configured.
9798
Default: `26.67Mhz`.
99+
- **polling_interval** (*Optional*, :ref:`config-time`): If ``interrupt_pin`` is not set,
100+
set the time interval for periodic polling. Minimum is 1ms, Defaults to 10ms.
101+
Older frameworks may not support this variable. See below for details.
102+
103+
If you are using a framework with the latest version, ESPHome provides
104+
an SPI-based Ethernet module without interrupt pin.
105+
Support for SPI polling mode (no interrupt pin) is provided by the following frameworks:
106+
107+
- ESP-IDF 5.3 or later
108+
- ESP-IDF 5.2.1 and later 5.2.x versions
109+
- ESP-IDF 5.1.4
110+
- Arduino-ESP32 3.0.0 or later (**Caution**: PlatformIO does not support these Arduino-ESP32 versions)
111+
112+
When building with frameworks that support SPI polling mode, either ``interrupt_pin``
113+
or ``polling_interval`` can be set. If you set both, ESPHome will throw an error.
114+
115+
If you are using a framework that does not support SPI-based ethernet modules without interrupt pin,
116+
``interrupt_pin`` is **required** and you cannot set ``polling_interval``.
98117

99118
Advanced common configuration variables:
100119
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

0 commit comments

Comments
 (0)