Skip to content

Commit

Permalink
Merge branch 'current' into guide_for_noobs
Browse files Browse the repository at this point in the history
  • Loading branch information
trip5 authored Dec 6, 2024
2 parents 493d5c6 + 1e973ba commit 4c7d8dd
Show file tree
Hide file tree
Showing 24 changed files with 304 additions and 264 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
steps:
-
name: Install pagefind
uses: jaxxstorm/action-install-gh-release@v1.13.0
uses: jaxxstorm/action-install-gh-release@v1.14.0
with:
repo: cloudcannon/pagefind
-
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Install pagefind
uses: jaxxstorm/action-install-gh-release@v1.13.0
uses: jaxxstorm/action-install-gh-release@v1.14.0
with:
repo: cloudcannon/pagefind
- uses: actions/[email protected]
Expand Down
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.11.1
PROJECT_NUMBER = 2024.11.3

# 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.11.1
ESPHOME_REF = 2024.11.3
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 @@ -12,6 +12,7 @@
/components/ota.html /components/ota/esphome.html 301
/components/ota_http_request.html /components/ota/http_request.html 301
/components/sensor/mmc5063.html /components/sensor/mmc5603.html 301
/components/sensor/kalman_combinator.html /components/sensor/combination.html 301

/cookbook/brilliant-mirabella-genio-smart-plugs.html https://devices.esphome.io/devices/Mirabella-Genio-Wi-Fi-1-USB 301
/cookbook/zemismart-rgbw-downlights.html https://devices.esphome.io/devices/Zemismart-LED-RGBWW-Downlight 301
Expand Down
2 changes: 1 addition & 1 deletion _static/version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2024.11.1
2024.11.3
2 changes: 1 addition & 1 deletion changelog/2022.1.0.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ ESPHome 2022.1.0 - 19th January 2022
Kalman Combinator, components/sensor/kalman_combinator, function.svg, dark-invert
MCP3204, components/sensor/mcp3204, mcp3204.jpg
MCP47A1, components/output/mcp47a1, mcp47a1.svg
Midea IR Climate, components/climate/ir_climate, air-conditioner-ir.svg, dark-invert
Midea IR Climate, components/climate/climate_ir, air-conditioner-ir.svg, dark-invert
Safe Mode Button, components/button/safe_mode, restart-alert.svg, dark-invert
Shutdown Button, components/button/shutdown, power_settings.svg, dark-invert
Tuya Number, components/number/tuya, tuya.png
Expand Down
4 changes: 2 additions & 2 deletions changelog/2023.12.0.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ ESPHome 2023.12.0 - 20th December 2023
Graphical Display Menu, components/display_menu/graphical_display_menu, graphical_display_menu.png
FT63X6, components/touchscreen/ft63x6, wt32-sc01.png
A02YYUW, components/sensor/a02yyuw, a02yyuw.jpg
PN7150, components/binary_sensor/pn7150, pn7150.jpg
PN716X, components/binary_sensor/pn7160, pn716x.jpg
PN7150, components/pn7150, pn7150.jpg
PN716X, components/pn7160, pn716x.jpg

Graphical Menu
--------------
Expand Down
2 changes: 1 addition & 1 deletion changelog/2023.9.0.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ ESPHome 2023.9.0 - 27th September 2023
WireGuard, components/wireguard, wireguard_custom_logo.svg, dark-invert
PMWCS3, components/sensor/pmwcs3, pmwcs3.jpg
SEN0321, components/sensor/sen0321, sen0321.jpg
LightWaveRF, components/light/lightwaverf, brightness-medium.svg, dark-invert
LightWaveRF, components/lightwaverf, brightness-medium.svg, dark-invert
BMI160, components/sensor/bmi160, bmi160.jpg
SPI LED Strips, components/light/spi_led_strip, apa102.jpg

Expand Down
27 changes: 27 additions & 0 deletions changelog/2024.11.0.rst
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,33 @@ Release 2024.11.1 - November 22
- Fix for OTA mode not activating in safe_mode when OTA section has an on_xxxx action :esphomepr:`7796` by :ghuser:`Dilbert66`
- Ensure storage I/O for ignored devices runs in the executor :esphomepr:`7792` by :ghuser:`bdraco`

Release 2024.11.2 - November 27
-------------------------------

- [lvgl] Bugfixes :esphomepr:`7803` by :ghuser:`clydebarrow`
- [docker] Leave run-time required libraries installed. :esphomepr:`7804` by :ghuser:`clydebarrow`
- [qspi_dbi] Fix init sequences (Bugfix) :esphomepr:`7805` by :ghuser:`clydebarrow`
- fix modbus crashing when bad data returned :esphomepr:`7810` by :ghuser:`ssieb`
- [Modbus Controller] Fix issue #6477. Online automation triggering Offline :esphomepr:`7801` by :ghuser:`0x3333`
- [fix] Status sensor does not check if required network component is missing :esphomepr:`7734` by :ghuser:`rvalitov`
- keypad binary sensors should be initially off :esphomepr:`7808` by :ghuser:`ssieb`
- fix 32 char SSIDs :esphomepr:`7834` by :ghuser:`ssieb`
- [honeywell] use warning instead of failing :esphomepr:`7862` by :ghuser:`ssieb`

Release 2024.11.3 - December 6
------------------------------

- [opentherm] Fix out of memory errors on ESP8266 :esphomepr:`7835` by :ghuser:`olegtarasov`
- fix local time timestamp calculation :esphomepr:`7807` by :ghuser:`ssieb`
- [online_image]Don't access decoder if not initialized :esphomepr:`7882` by :ghuser:`guillempages`
- Add IRAM_ATTR to all functions used during interrupts on esp8266 chips. :esphomepr:`7840` by :ghuser:`FreeBear-nc`
- [st7920] Remove unnecessary warning when drawing outside display bounds :esphomepr:`7868` by :ghuser:`jesserockz`
- Fix recalc_timestamp_utc :esphomepr:`7894` by :ghuser:`RouNNdeL`
- Cast port to int for ota pushing :esphomepr:`7888` by :ghuser:`jesserockz`
- [lvgl] Bugfixes :esphomepr:`7896` by :ghuser:`clydebarrow`
- [lvgl] Fix msgbox content :esphomepr:`7912` by :ghuser:`clydebarrow`
- [esp32] Fix crash with empty `platformio_options:` value :esphomepr:`7920` by :ghuser:`clydebarrow`

Full list of changes
--------------------

Expand Down
2 changes: 1 addition & 1 deletion changelog/v1.12.0.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Changelog - Version 1.12.0
MPR121, components/binary_sensor/mpr121, mpr121.jpg

SDS011, components/sensor/sds011, sds011.jpg
MCP23017, components/mcp23017, mcp23017.svg
MCP23017, components/mcp230xx, mcp23017.svg
Servo, components/servo, servo.svg

WiFi Info, components/text_sensor/wifi_info, network-wifi.svg, dark-invert
Expand Down
4 changes: 2 additions & 2 deletions changelog/v1.13.0.rst
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ Changelog - Version 1.13.0 - May 30th 2019
Binary Sensor Map, components/sensor/binary_sensor_map, binary_sensor_map.jpg

TTP229, components/binary_sensor/ttp229, ttp229.jpg
Coolix IR Remote, components/climate/coolix, air-conditioner.svg, dark-invert
Tcl112 IR Remote, components/climate/tcl112, air-conditioner.svg, dark-invert
Coolix IR Remote, components/climate/climate_ir, air-conditioner.svg, dark-invert
Tcl112 IR Remote, components/climate/climate_ir, air-conditioner.svg, dark-invert
Sun, components/sun, weather-sunny.svg, dark-invert

GPS Time Source, components/gps, crosshairs-gps.svg, dark-invert
Expand Down
8 changes: 4 additions & 4 deletions changelog/v1.14.0.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,15 @@ Changelog - Version 1.14.0 - November 1

Tx20, components/sensor/tx20, tx20.jpg
VL53L0x, components/sensor/vl53l0x, vl53l0x.jpg
Xiaomi CGG1, components/sensor/xiaomi_cgg1, xiaomi_cgg1.jpg
Xiaomi LYWSD02, components/sensor/xiaomi_lywsd02, xiaomi_lywsd02.jpg
Xiaomi CGG1, components/sensor/xiaomi_ble, xiaomi_cgg1.jpg
Xiaomi LYWSD02, components/sensor/xiaomi_ble, xiaomi_lywsd02.jpg
ZyAura, components/sensor/zyaura, zgm053.jpg

TLC59208F, components/output/tlc59208f, tlc59208f.jpg
SM16716, components/output/sm16716, sm16716.svg
Tuya Dimmer, components/light/tuya, brightness-medium.svg, dark-invert
SSD1325, components/display/ssd1325, ssd1325.jpg
Yashima IR Remote, components/climate/yashima, air-conditioner.svg, dark-invert
Yashima IR Remote, components/climate/climate_ir, air-conditioner.svg, dark-invert

MCP23008 I/O Expander, components/mcp230xx, mcp230xx.svg
SX1509 I/O Expander, components/sx1509, sx1509.jpg
Expand Down Expand Up @@ -275,7 +275,7 @@ Notable Changes & New Features
- All :doc:`native API </components/api>` communication stubs are now automatically
generated using automated scripts. This is a big step towards making the API more flexible, for
example cross-device communication (:esphomepr:`633`).
- New class :apiclass:`CustomAPIDevice` to declare user-defined services straight from custom components.
- New class :apiclass:`api::CustomAPIDevice` to declare user-defined services straight from custom components.
See the updated :doc:`custom component guide </custom/custom_component>`.
- :ref:`Sensors <config-sensor>` have a new ``force_update`` option (:esphomepr:`783`).
- Add GPIO Switch :ref:`interlock_wait_time <switch-gpio-interlocking>` (:esphomepr:`777`).
Expand Down
2 changes: 1 addition & 1 deletion changelog/v1.15.0.rst
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Changelog - Version 1.15.0 - September 13, 2020
ILI9341, components/display/ili9341, ili9341.jpg
PCD8544 (Nokia 5110/ 3310), components/display/pcd8544, pcd8544.jpg
BLE Scanner, components/text_sensor/ble_scanner, bluetooth.svg, dark-invert
Custom UART Text Sensor, components/text_sensor/uart, language-cpp.svg, dark-invert
Custom UART Text Sensor, cookbook/lambda_magic, language-cpp.svg, dark-invert
Thermostat Controller, components/climate/thermostat, air-conditioner.svg, dark-invert
PID Controller, components/climate/pid, function.svg, dark-invert
IR Remote Climate, components/climate/ir_climate, air-conditioner-ir.svg, dark-invert
Expand Down
13 changes: 7 additions & 6 deletions components/cover/template.rst
Original file line number Diff line number Diff line change
Expand Up @@ -36,15 +36,16 @@ as a cover and can be controlled through the frontend.
Possible return values for the optional lambda:

- ``return COVER_OPEN;`` if the cover should be reported as OPEN.
- ``return COVER_CLOSED;`` if the cover should be reported as CLOSED.
- ``return COVER_OPEN;`` / ``return 1.0f;`` if the cover should be reported as OPEN.
- ``return COVER_CLOSED;`` / ``return 0.0f`` if the cover should be reported as CLOSED.
- ``return {};`` if the last state should be repeated.
- A value between ``0.0f`` and ``1.0f`` (inclusive) if ``has_position`` is set to ``true``.

Configuration variables:
------------------------

- **lambda** (*Optional*, :ref:`lambda <config-lambda>`):
Lambda to be evaluated repeatedly to get the current state of the cover.
Lambda to be evaluated repeatedly to get the current state/position of the cover.
- **open_action** (*Optional*, :ref:`Action <config-action>`): The action that should
be performed when the remote (like Home Assistant's frontend) requests the cover to be opened.
- **close_action** (*Optional*, :ref:`Action <config-action>`): The action that should
Expand All @@ -54,9 +55,9 @@ Configuration variables:
- **toggle_action** (*Optional*, :ref:`Action <config-action>`): The action that should
be performed when the remote requests to toggle the the cover.
- **optimistic** (*Optional*, boolean): Whether to operate in optimistic mode - when in this mode,
any command sent to the template cover will immediately update the reported state and no lambda
any command sent to the template cover will immediately update the reported state/position and no lambda
needs to be used. Defaults to ``false``.
- **assumed_state** (*Optional*, boolean): Whether the true state of the cover is not known.
- **assumed_state** (*Optional*, boolean): Whether the true state/position of the cover is not known.
This will make the Home Assistant frontend show buttons for both OPEN and CLOSE actions, instead
of hiding one of them. Defaults to ``false``.
- **has_position** (*Optional*, boolean): Whether this cover will publish its position as a floating point number.
Expand All @@ -69,7 +70,7 @@ Configuration variables:
- **position_action** (*Optional*, :ref:`Action <config-action>`): The action that should
be performed when the remote (like Home Assistant's frontend) requests the cover be set to a specific
position. The desired position is available in the lambda in the ``pos`` variable.
Useless if `has_position` is not set to ``true``.
Used only when ``has_position`` is set to ``true``.
- All other options from :ref:`Cover <config-cover>`.

.. _cover-template-publish_action:
Expand Down
4 changes: 2 additions & 2 deletions components/opentherm.rst
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,8 @@ Configuration variables:
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. Required if you have
multiple busses.

Note abut sync mode
*******************
Note about sync mode
********************

The use of some components (like Dallas temperature sensors) may result in lost frames and protocol warnings from
OpenTherm. Since OpenTherm is resilient by design and transmits its messages in a constant loop, these dropped frames
Expand Down
4 changes: 4 additions & 0 deletions components/packages.rst
Original file line number Diff line number Diff line change
Expand Up @@ -128,8 +128,12 @@ As an example, if the configuration needed to support three garage doors using t
file: garage-door.yaml
vars:
door_name: Left
middle_garage_door: !include
file: garage-door.yaml
vars:
door_name: Middle
right_garage_door: !include
file: garage-door.yaml
vars:
door_name: Right
Expand Down
2 changes: 1 addition & 1 deletion components/spi.rst
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ SPI modes:
----------

SPI devices operate in one of four modes as per the table below. The choice of mode is dictated by the requirements
of the speficic peripheral chip.
of the specific peripheral chip.

.. csv-table:: Supported Modes
:header: "Mode", "Clock Idle Polarity", "Clock Phase", "Data shifted on", "Data sampled on"
Expand Down
2 changes: 1 addition & 1 deletion conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
# The short X.Y version.
version = "2024.11"
# The full version, including alpha/beta/rc tags.
release = "2024.11.1"
release = "2024.11.3"

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
6 changes: 4 additions & 2 deletions guides/contributing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ Build

.. note::

The easiest way is to use the `esphome-docs container image <ghcr.io/esphome/esphome-docs/>`__:
The easiest way is to use the `esphome-docs container image <https://ghcr.io/esphome/esphome-docs/>`__:

.. code-block:: bash
Expand Down Expand Up @@ -205,9 +205,11 @@ adhere to the following order:
`Google.com <https://www.google.com>`__

.. _contributing-referrals:

.. note::

Referral links are only permitted if they provide a direct benefit to the ESPHome project.
Referral links are only permitted if they provide a direct benefit to the ESPHome project.
This policy applies to all official ESPHome documentation and websites.

- **References**: To reference another document, use the ``:doc:`` and ``:ref:`` roles (references are set up globally
Expand Down
1 change: 0 additions & 1 deletion guides/diy.rst
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ Blog Posts & Videos
- `Sonoff 4CH Irrigation Controller with Nextion Display <https://github.com/bruxy70/Irrigation-with-display>`__ by :ghuser:`bruxy70`
- `Automated Bathroom Ventilation <https://www.youtube.com/watch?v=weBDnmrQYOs>`__ by `Intermittent Technology <https://intermit.tech>`__
- `ESPHome MP3 Sound Machine <https://selfhostedhome.com/esp8266-mp3-sound-machine/>`__ by `Self Hosted Home <https://selfhostedhome.com>`__
- `ESP32 Camera+ESP8266 PIR <https://www.dopebuild.com/i-am-sorry-dave-i-am-unable-to-do-that/>`__ by `Dave Richer <https://dopebuild.com/>`__
- `Detecting Sound with ESP8266 <https://thibmaek.com/posts/detecting-sound-level-using-esp8266-and-esphome>`__ by `Thibault Maekelbergh <https://thibmaek.com>`__
- `SW420 Vibration Sensor with Remote Notifications <https://github.com/rmooreID/Home-Assistant-Appliance-Monitor/>`__ by :ghuser:`rmooreID`
- `DIY Irrigation Controller (with Internal Scheduler + Lovelace UI) <https://brianhanifin.com/posts/diy-irrigation-controller-esphome-home-assistant/>`__ by :ghuser:`BrianHanifin`
Expand Down
2 changes: 1 addition & 1 deletion guides/getting_started_command_line.rst
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ To start the ESPHome dashboard, simply start ESPHome with the following command
.. code-block:: bash
# Install dashboard dependencies
pip install tornado esptool\
pip install tornado esptool \
esphome dashboard config
# On Docker, host networking mode is required for online status indicators
Expand Down
8 changes: 7 additions & 1 deletion guides/supporters.rst
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ Contributors
- `Alessandro Ranellucci (@alranel) <https://github.com/alranel>`__
- `Maxime Gauduin (@alucryd) <https://github.com/alucryd>`__
- `alva (@alva-seal) <https://github.com/alva-seal>`__
- `Amaery (@Amaery) <https://github.com/Amaery>`__
- `Andreas Mandel (@amandel) <https://github.com/amandel>`__
- `Andrew McFague (@amcfague) <https://github.com/amcfague>`__
- `Amish Vishwakarma (@amishv) <https://github.com/amishv>`__
Expand All @@ -112,6 +113,7 @@ Contributors
- `Andi Egli (@andilge) <https://github.com/andilge>`__
- `Kieren (@ando023) <https://github.com/ando023>`__
- `András Bíró (@andrasbiro) <https://github.com/andrasbiro>`__
- `Andre (@andre68723) <https://github.com/andre68723>`__
- `Andreas Hergert (@andreashergert1984) <https://github.com/andreashergert1984>`__
- `Andres Vahter (@andresv) <https://github.com/andresv>`__
- `Andrew J.Swan (@andrewjswan) <https://github.com/andrewjswan>`__
Expand Down Expand Up @@ -191,6 +193,7 @@ Contributors
- `bartoszpierzchlewicz (@bartoszpierzchlewicz) <https://github.com/bartoszpierzchlewicz>`__
- `BartoszPierzchlewiczMacrix (@BartoszPierzchlewiczMacrix) <https://github.com/BartoszPierzchlewiczMacrix>`__
- `Bascht74 (@Bascht74) <https://github.com/Bascht74>`__
- `batchmanfr (@batchmanfr) <https://github.com/batchmanfr>`__
- `bazuchan (@bazuchan) <https://github.com/bazuchan>`__
- `Viktr (@BbIKTOP) <https://github.com/BbIKTOP>`__
- `J. Nick Koston (@bdraco) <https://github.com/bdraco>`__
Expand Down Expand Up @@ -692,6 +695,7 @@ Contributors
- `Greg Cormier (@gcormier) <https://github.com/gcormier>`__
- `GeekVisit (@GeekVisit) <https://github.com/GeekVisit>`__
- `Ian Reinhart Geiser (@geiseri) <https://github.com/geiseri>`__
- `GelidusResearch (@GelidusResearch) <https://github.com/GelidusResearch>`__
- `Gene Hand (@genehand) <https://github.com/genehand>`__
- `R Huish (@genestealer) <https://github.com/genestealer>`__
- `Geoff Davis (@geoffdavis) <https://github.com/geoffdavis>`__
Expand Down Expand Up @@ -819,6 +823,7 @@ Contributors
- `Tim Smeets (@ikilledmypc) <https://github.com/ikilledmypc>`__
- `iKK001 (@iKK001) <https://github.com/iKK001>`__
- `ilium007 (@ilium007) <https://github.com/ilium007>`__
- `Ilias Lolis (@ilolis) <https://github.com/ilolis>`__
- `Iman Ahmadvand (@IMAN4K) <https://github.com/IMAN4K>`__
- `Michael (@imeekle) <https://github.com/imeekle>`__
- `imgbot[bot] (@imgbot[bot]) <https://github.com/imgbot[bot]>`__
Expand Down Expand Up @@ -1441,6 +1446,7 @@ Contributors
- `Paul Deen (@PaulAntonDeen) <https://github.com/PaulAntonDeen>`__
- `Paul Monigatti (@paulmonigatti) <https://github.com/paulmonigatti>`__
- `Paul Nicholls (@pauln) <https://github.com/pauln>`__
- `Paul Schulz (@PaulSchulz) <https://github.com/PaulSchulz>`__
- `Pavlo Dudnytskyi (@paveldn) <https://github.com/paveldn>`__
- `Bartłomiej Biernacki (@pax0r) <https://github.com/pax0r>`__
- `Pierre-Alexis Ciavaldini (@pciavald) <https://github.com/pciavald>`__
Expand Down Expand Up @@ -2030,4 +2036,4 @@ Contributors
- `Christian Zufferey (@zuzu59) <https://github.com/zuzu59>`__
- `Zynth-dev (@Zynth-dev) <https://github.com/Zynth-dev>`__

*This page was last updated November 22, 2024.*
*This page was last updated December 6, 2024.*
Loading

0 comments on commit 4c7d8dd

Please sign in to comment.