diff --git a/Doxygen b/Doxygen index a40f03160..7cabed1bc 100644 --- a/Doxygen +++ b/Doxygen @@ -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.6.0b2 +PROJECT_NUMBER = 2024.6.0b3 # 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 diff --git a/Makefile b/Makefile index e80df74fc..60eb8682d 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ ESPHOME_PATH = ../esphome -ESPHOME_REF = 2024.6.0b2 +ESPHOME_REF = 2024.6.0b3 PAGEFIND_VERSION=1.1.0 PAGEFIND=pagefind NET_PAGEFIND=../pagefindbin/pagefind diff --git a/_static/version b/_static/version index 0f8d75f43..02c6759f0 100644 --- a/_static/version +++ b/_static/version @@ -1 +1 @@ -2024.6.0b2 \ No newline at end of file +2024.6.0b3 \ No newline at end of file diff --git a/changelog/2024.6.0.rst b/changelog/2024.6.0.rst index 969ecbb41..c40a7669b 100644 --- a/changelog/2024.6.0.rst +++ b/changelog/2024.6.0.rst @@ -37,6 +37,7 @@ So we have a few updates to update you on this |ss| update |se| release. Please do read these release notes carefully as there are quite a few breaking changes that we know will affect a large portion of users. +Jesse ESPHome branding ^^^^^^^^^^^^^^^^ @@ -72,6 +73,14 @@ update available for this device. You do not need to adopt the device into the E you don't actually need the ESPHome dashboard installed. Using the new ``http_request`` OTA platform, the device will be able to download the firmware and update itself. +Voice Assistant Timers +^^^^^^^^^^^^^^^^^^^^^^ + +Home Assistant 2024.6 added support for starting, pauseing, resuming, cancelling timers via Assist devices. +In this ESPHome release, we added new triggers to the :doc:`Voice Assistant ` component +to take advantage of these. Timers are only in memory, do not represent entities and are only available on the device +that started the timer. + OTA Platforms ^^^^^^^^^^^^^ @@ -201,6 +210,9 @@ Beta Changes - Add operation_speed option to X9C component :esphomepr:`6890` by :ghuser:`oliverhihn` - [host] Execute host program when using run command :esphomepr:`6897` by :ghuser:`jesserockz` - Bump esphome-dashboard to 20240613.0 :esphomepr:`6901` by :ghuser:`jesserockz` +- Synchronise Device Classes from Home Assistant :esphomepr:`6904` by :ghuser:`esphomebot` +- [ili9xxx] Fix init for GC9A01A :esphomepr:`6913` by :ghuser:`jesserockz` +- [mqtt] Fix datetime copy pasta :esphomepr:`6914` by :ghuser:`jesserockz` All changes ^^^^^^^^^^^ @@ -325,6 +337,13 @@ All changes - Fix media_player.volume_set when media player is not started :esphomepr:`6859` by :ghuser:`tetele` - [display] SDL2 display driver for host platform :esphomepr:`6825` by :ghuser:`clydebarrow` (new-integration) - [ili9xxx] Implement st7735 support :esphomepr:`6838` by :ghuser:`clydebarrow` +- [CI] Fix for sdl :esphomepr:`6892` by :ghuser:`jesserockz` +- Add operation_speed option to X9C component :esphomepr:`6890` by :ghuser:`oliverhihn` +- [host] Execute host program when using run command :esphomepr:`6897` by :ghuser:`jesserockz` +- Bump esphome-dashboard to 20240613.0 :esphomepr:`6901` by :ghuser:`jesserockz` +- Synchronise Device Classes from Home Assistant :esphomepr:`6904` by :ghuser:`esphomebot` +- [ili9xxx] Fix init for GC9A01A :esphomepr:`6913` by :ghuser:`jesserockz` +- [mqtt] Fix datetime copy pasta :esphomepr:`6914` by :ghuser:`jesserockz` Past Changelogs --------------- diff --git a/components/http_request.rst b/components/http_request.rst index a9c658e66..c483275de 100644 --- a/components/http_request.rst +++ b/components/http_request.rst @@ -55,9 +55,9 @@ Configuration variables: Without the root certificate bundle, certificates used by the remote HTTPS server cannot be verified, opening the HTTPS connection up to person-in-the-middle attacks. - + To maximize security, do not set ``verify_ssl`` to ``false`` *unless:* - + - a custom CA/self-signed certificate is used, - the Arduino framework is used, or - the device does not have sufficient memory to store the certificate bundle @@ -257,8 +257,9 @@ whose ``id`` is set to ``player_volume``: on_response: then: - lambda: |- - json::parse_json(body, [](JsonObject root) { + json::parse_json(body, [](JsonObject root) -> bool { id(player_volume).publish_state(root["vol"]); + return true; }); diff --git a/conf.py b/conf.py index fdd4e97c6..25ff53ba2 100644 --- a/conf.py +++ b/conf.py @@ -69,7 +69,7 @@ author = "ESPHome" # The short X.Y version. version = "2024.6" # The full version, including alpha/beta/rc tags. -release = "2024.6.0b2" +release = "2024.6.0b3" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/cookbook/http_request_sensor.rst b/cookbook/http_request_sensor.rst index 56cd49cec..7180c0d2b 100644 --- a/cookbook/http_request_sensor.rst +++ b/cookbook/http_request_sensor.rst @@ -3,7 +3,7 @@ Share data directly between ESPHome nodes In certain special cases it might be desired to avoid placing any middleware like an MQTT or a home automation server just to transfer small bits of data from one node to another. Direct data polling is possible using HTTP, but beware that the involved components are resource hungry and may be less stable on long term. The webserver embedded in the node is not designed to constantly serve a large amount of requests. -The primary node holding the data we need to retrieve from will be the server, and the others polling for it will be the clients (can be multiple). +The primary node holding the data we need to retrieve from will be the server, and the others polling for it will be the clients (can be multiple). Server part ----------- @@ -44,16 +44,17 @@ In the example below we request the value of a sensor from the server node, and interval: - interval: 60s then: - - http_request.get: + - http_request.get: url: http://ip or nodename.local/sensor/ID_of_the_sensor on_response: then: - lambda: |- - json::parse_json(id(http_request_id).get_string(), [](JsonObject root) { + json::parse_json(id(http_request_id).get_string(), [](JsonObject root) -> bool { id(template_sensor_id).publish_state(root["value"]); + return true; }); - + Result ------ @@ -99,15 +100,16 @@ Add an ``Authorization`` header to your ``http_request.get`` action. The simples interval: - interval: 60s then: - - http_request.get: + - http_request.get: url: http://ip or nodename.local/sensor/ID_of_the_sensor headers: Authorization: 'Digest username="admin", realm="asyncesp", nonce="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", uri="/sensor/ID_of_the_sensor", response="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", opaque="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", qop=auth, nc=xxxxxxxx, cnonce="xxxxxxxxxxxxxxxx"' on_response: then: - lambda: |- - json::parse_json(id(http_request_id).get_string(), [](JsonObject root) { + json::parse_json(id(http_request_id).get_string(), [](JsonObject root) -> bool { id(template_sensor_id).publish_state(root["value"]); + return true; }); See Also diff --git a/guides/supporters.rst b/guides/supporters.rst index 538ba018e..3abf30dce 100644 --- a/guides/supporters.rst +++ b/guides/supporters.rst @@ -50,6 +50,7 @@ Contributors - `Attila Farago (@afarago) `__ - `Kjell Braden (@afflux) `__ - `Alejandro Galfrascoli (@AGalfra) `__ +- `Andrew Gillis (@agillis) `__ - `Stefan Agner (@agners) `__ - `Adam Goode (@agoode) `__ - `Anders (@ahd71) `__ @@ -335,6 +336,7 @@ Contributors - `Daniel Kucera (@danielkucera) `__ - `Daniel O'Connor (@DanielO) `__ - `Daniel Rheinbay (@danielrheinbay) `__ +- `DanielRobertAppel (@DanielRobertAppel) `__ - `Daniel Schramm (@danielschramm) `__ - `Danilo Campos (@daniloc) `__ - `Daniel Martin Gonzalez (@danimart1991) `__ @@ -519,6 +521,7 @@ Contributors - `SmartShackMaster (@fototakas) `__ - `Frank Bakker (@FrankBakkerNl) `__ - `Frank (@FrankBoesing) `__ +- `frauhottelmann (@frauhottelmann) `__ - `Fredrik Erlandsson (@fredrike) `__ - `freeasabeer (@freeasabeer) `__ - `Evgeny (@freekode) `__ @@ -642,6 +645,7 @@ Contributors - `jakub-medrzak (@jakub-medrzak) `__ - `James Hirka (@jameshirka) `__ - `James Lakin (@jamesorlakin) `__ +- `Jamie Cole (@jamiejcole) `__ - `Jason (@jamman9000) `__ - `Juraj Andrássy (@JAndrassy) `__ - `Delio Castillo (@jangeador) `__ @@ -749,6 +753,7 @@ Contributors - `kroimon (@kroimon) `__ - `krunkel (@krunkel) `__ - `kryptonitecb3 (@kryptonitecb3) `__ +- `kstrouse (@kstrouse) `__ - `Kendell R (@KTibow) `__ - `Kuba Szczodrzyński (@kuba2k2) `__ - `Mark Kuchel (@kuchel77) `__ @@ -810,6 +815,7 @@ Contributors - `Kasper Malfroid (@malfroid) `__ - `Malle355 (@Malle355) `__ - `raymonder jin (@mamil) `__ +- `manonfgoo (@manonfgoo) `__ - `Manuel Kasper (@manuelkasper) `__ - `Manuel Díez (@manutenfruits) `__ - `marcelolcosta (@marcelolcosta) `__ @@ -910,6 +916,7 @@ Contributors - `mulder-fbi (@mulder-fbi) `__ - `Martin Murray (@murrayma) `__ - `Michel van de Wetering (@mvdwetering) `__ +- `Marcus Voß (@mvoss96) `__ - `Michiel van Turnhout (@mvturnho) `__ - `Martin Weinelt (@mweinelt) `__ - `Martin Wetterwald (@mwetterw) `__ @@ -1040,6 +1047,7 @@ Contributors - `polyfloyd (@polyfloyd) `__ - `Pontus Oldberg (@PontusO) `__ - `poptix (@poptix) `__ +- `Dave (@pow4all) `__ - `Peter Provost (@PProvost) `__ - `Q. Marchi (@preeefix) `__ - `Francesco Ciocchetti (@primeroz) `__ @@ -1375,4 +1383,4 @@ Contributors - `Christian Zufferey (@zuzu59) `__ - `Zynth-dev (@Zynth-dev) `__ -*This page was last updated June 13, 2024.* +*This page was last updated June 17, 2024.*