Skip to content

Commit 3c6d22c

Browse files
authored
Merge branch 'next' into current
2 parents 5b99012 + 469bcee commit 3c6d22c

Some content is hidden

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

63 files changed

+1303
-103
lines changed

Doxygen

Lines changed: 1 addition & 1 deletion
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 = 2025.5.0
41+
PROJECT_NUMBER = 2025.6.0-dev
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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
ESPHOME_PATH = ../esphome
2-
ESPHOME_REF = 2025.5.2
2+
ESPHOME_REF = 2025.6.0b1
33
PAGEFIND_VERSION=1.1.1
44
PAGEFIND=pagefind
55
NET_PAGEFIND=../pagefindbin/pagefind

_static/changelog-2025.6.0.png

119 KB
Loading

_static/version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2025.5.2
1+
2025.7.0-dev

changelog/2025.6.0.rst

Lines changed: 324 additions & 0 deletions
Large diffs are not rendered by default.

changelog/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Changelog
22
=========
33

44
.. redirect::
5-
:url: /changelog/2025.5.0.html
5+
:url: /changelog/2025.6.0.html
66

77
.. toctree::
88
:glob:

components/alarm_control_panel/template.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ Configuration variables:
3636
- **input** (**Required**, string): The id of the binary sensor component
3737
- **bypass_armed_home** (*Optional*, boolean): This binary sensor will not trigger the alarm when in ``armed_home`` state.
3838
- **bypass_armed_night** (*Optional*, boolean): This binary sensor will not trigger the alarm when in ``armed_night`` state.
39+
- **bypass_auto** (*Optional*, boolean): This binary sensor will be automatically bypassed if left on/open at the time of arming.
3940
- **trigger_mode** (*Optional*, string): Sets the trigger mode for this sensor. One of ``delayed``, ``instant``, or ``delayed_follower``. (``delayed`` is the default if not specified)
4041
- **chime** (*Optional*, boolean): When set ``true``, the chime callback will be called whenever the sensor goes from closed to open. (``false`` is the default if not specified)
4142

components/audio_dac/es8388.rst

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
ES8388
2+
======
3+
4+
.. seo::
5+
:description: Instructions for using ESPHome's es8388 audio DAC platform to play media from your devices and to configure microphone inputs.
6+
:image: es8388.svg
7+
:keywords: ES8388, Audio, DAC, I2S, ESP32
8+
9+
The ``es8388`` component allows your ESPHome devices to use the es8388 low power audio codec (`datasheet <http://www.everest-semi.com/pdf/ES8388%20DS.pdf>`__)
10+
This allows the playback of audio through two channel high performance audio DAC output via the microcontroller from a range of sources via :doc:`/components/speaker/index` or
11+
:doc:`/components/media_player/index` .
12+
13+
It also allows your ESPHome devices to use the ``es8388`` high performance two channel audio ADC.
14+
15+
This allows attached microphones to be used as a microphone input via :doc:`/components/microphone/i2s_audio`.
16+
17+
The :ref:`I²C bus <i2c>` is required in your configuration as this is used to communicate with the es8388.
18+
19+
Audio DAC
20+
---------
21+
22+
.. code-block:: yaml
23+
24+
# Example configuration entry
25+
audio_dac:
26+
- platform: es8388
27+
28+
Configuration variables:
29+
************************
30+
- **address** (*Optional*, int): The I²C address of the driver. Defaults to ``0x10``.
31+
- **i2c_id** (*Optional*): The ID of the :ref:`I²C bus <i2c>` the ES8388 is connected to.
32+
- All other options from :ref:`Audio DAC <config-audio_dac>`.
33+
34+
35+
Select
36+
------
37+
38+
The ``es8388`` select allows you to control the ``dac output`` and the ``adc input_mic`` of your :doc:`es8388`.
39+
40+
.. code-block:: yaml
41+
42+
select:
43+
- platform: es8388
44+
es8388_id: es8388_parent
45+
dac_output:
46+
name: "DAC Output"
47+
adc_input_mic:
48+
name: "ADC Input MIC"
49+
50+
Configuration variables:
51+
************************
52+
53+
- **es8388_id** (*Optional*, :ref:`config-id`): Manually specify the ID for the :doc:`es8388` component.
54+
- **dac_output** (*Optional*): Control the DAC Audio output.
55+
56+
- ``LINE1`` (default)
57+
- ``LINE2``
58+
- ``BOTH``
59+
60+
All options from :ref:`Select <config-select>`.
61+
62+
- **adc_input_mic** (*Optional*): Control the ADC Mic Input.
63+
64+
- ``LINE1`` (default)
65+
- ``LINE2``
66+
- ``DIFFERENCE``
67+
68+
All options from :ref:`Select <config-select>`.
69+
70+
71+
Automations
72+
-----------
73+
74+
All :ref:`Audio DAC Automations <automations-audio_dac>` are supported by this platform.
75+
76+
77+
Configuration Examples
78+
----------------------
79+
80+
**ESP32 Audio Kit**:
81+
82+
.. code-block:: yaml
83+
84+
i2c:
85+
sda: GPIO33
86+
scl: GPIO32
87+
frequency: 100kHz
88+
id: bus_a
89+
90+
audio_dac:
91+
- platform: es8388
92+
id: es8388_dac
93+
94+
select:
95+
- platform: es8388
96+
es8388_id: es8388_dac
97+
dac_output:
98+
name: "DAC Output"
99+
adc_input_mic:
100+
name: "ADC Input MIC"
101+
102+
i2s_audio:
103+
id: i2s_output
104+
i2s_lrclk_pin: GPIO25
105+
i2s_bclk_pin: GPIO27
106+
i2s_mclk_pin: GPIO0
107+
108+
speaker:
109+
- platform: i2s_audio
110+
i2s_audio_id: i2s_output
111+
sample_rate: 48000
112+
id: speaker_id
113+
i2s_dout_pin: GPIO26
114+
bits_per_sample: 32bit
115+
dac_type: external
116+
channel: stereo
117+
buffer_duration: 100ms
118+
audio_dac: es8388_dac
119+
120+
microphone:
121+
- platform: i2s_audio
122+
i2s_din_pin: GPIO35
123+
id: mic1
124+
adc_type: external
125+
pdm: false
126+
sample_rate: 16000
127+
bits_per_sample: 16bit
128+
129+
switch:
130+
- platform: gpio
131+
pin: GPIO21
132+
id: mute_switch
133+
name: "AMP Switch"
134+
restore_mode: ALWAYS_ON
135+
136+
See Also
137+
--------
138+
139+
- :doc:`index`
140+
- :apiref:`es8388/es8388.h`
141+
- :apiref:`audio_dac/audio_dac.h`
142+
- :ghedit:`Edit`

components/binary_sensor/index.rst

Lines changed: 52 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,10 @@ Advanced options:
6868
- **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend,
6969
(usually Home Assistant) without the user manually enabling it (via the Home Assistant UI).
7070
Defaults to ``false``.
71-
- **publish_initial_state** (*Optional*, boolean): If true, then the sensor will publish its initial state at boot or when
72-
HA first connects, depending on the platform. This means that any applicable triggers will be run. Defaults to ``false``.
71+
- **trigger_on_initial_state** (*Optional*, boolean): If true, any applicable triggers will be fired when the binary sensor
72+
state changes from ``unknown`` to a valid state. This applies to the first valid state set, and any valid state set after
73+
a ``binary_sensor.invalidate_state`` action has been excuted. The default is ``false``.
74+
**publish_initial_state** (*Optional*, boolean): A deprecated equivalent to ``trigger_on_initial_state``.
7375
- **entity_category** (*Optional*, string): The category of the entity.
7476
See https://developers.home-assistant.io/docs/core/entity/#generic-properties
7577
for a list of available options.
@@ -79,6 +81,27 @@ Advanced options:
7981

8082
.. _binary_sensor-filters:
8183

84+
85+
Actions
86+
-------
87+
88+
.. _binary_sensor-invalidate_state-action:
89+
90+
``binary_sensor.invalidate_state`` Action
91+
*****************************************
92+
93+
This action will invalidate the current state of the sensor. It is most useful with the Template binary sensor.
94+
After the state is invalidated, it will be reported to Home Assistant as ``unknown``. Example:
95+
96+
.. code-block:: yaml
97+
98+
on_...:
99+
binary_sensor.invalidate_state: my_binary_sensor_id
100+
101+
102+
The state may also be invalidated by an API call in a lambda - see the API reference linked below.
103+
104+
82105
Binary Sensor Filters
83106
---------------------
84107

@@ -274,7 +297,8 @@ Configuration variables: See :ref:`Automation <automation>`.
274297

275298
This automation will be triggered when a new state is received (and thus combines ``on_press``
276299
and ``on_release`` into one trigger). The new state will be given as the variable ``x`` as a boolean
277-
and can be used in :ref:`lambdas <config-lambda>`.
300+
and can be used in :ref:`lambdas <config-lambda>`. It will not be called when the state is invalidated; it will be called when
301+
the state initially becomes valid only if ``trigger_on_initial_state`` is true.
278302

279303
.. code-block:: yaml
280304
@@ -287,6 +311,31 @@ and can be used in :ref:`lambdas <config-lambda>`.
287311
288312
Configuration variables: See :ref:`Automation <automation>`.
289313

314+
.. _binary_sensor-on_state_change:
315+
316+
``on_state_change``
317+
*******************
318+
319+
An alternative to ``on_state`` that is also triggered when the binary sensor state is invalidated. It is passed two parameters, ``x`` as for ``on_change``
320+
will be the new value, and ``x_previous`` is the value immediately prior to the change. Both these parameters are of type ``optional<bool>`` so also indicate
321+
if the values were valid. Note that this is called on all state changes, including initial states.
322+
323+
.. code-block:: yaml
324+
325+
binary_sensor:
326+
- platform: gpio
327+
# ...
328+
on_state_change:
329+
then:
330+
- logger.log:
331+
format: "Old state was %s"
332+
args: ['x_previous.has_value() ? ONOFF(x_previous) : "Unknown"']
333+
- logger.log:
334+
format: "New state is %s"
335+
args: ['x.has_value() ? ONOFF(x) : "Unknown"']
336+
337+
Configuration variables: See :ref:`Automation <automation>`.
338+
290339
.. _binary_sensor-on_click:
291340

292341
``on_click``

components/debug.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ ESP heap memory (free space, maximum free block size and fragmentation level) an
4343
cpu_frequency:
4444
name: "CPU Frequency"
4545
46-
# Logger must be at least debug (default)
46+
# Logger must be configured
4747
logger:
4848
level: debug
4949

0 commit comments

Comments
 (0)