Merge branch 'current' into next

This commit is contained in:
Jesse Hills 2024-06-25 08:57:18 +12:00
commit 9868438e91
No known key found for this signature in database
GPG Key ID: BEAAE804EFD8E83A
32 changed files with 178 additions and 137 deletions

View File

@ -9,6 +9,8 @@
/changelog/2022.12.4.html /changelog/2022.12.0.html 301
/components/display/ili9341.html /components/display/ili9xxx.html 301
/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
/cookbook/brilliant-mirabella-genio-smart-plugs.html https://devices.esphome.io/devices/Mirabella-Genio-Wi-Fi-1-USB 301

Binary file not shown.

Before

Width:  |  Height:  |  Size: 175 KiB

After

Width:  |  Height:  |  Size: 175 KiB

View File

@ -149,7 +149,8 @@ to allow for other Dallas sensors to be implemented that are not temperature sen
# New
one_wire:
- pin: GPIOXX
- platform: gpio
pin: GPIOXX
sensor:
- platform: dallas_temp

View File

@ -33,8 +33,7 @@ The features I'm particularly excited about are:
* ``esphomeflasher`` - Experiencing problems flashing esphomelib firmwares using esphomeyaml?
No problem, esphomeflasher is a tool designed to make that super easy. Just let esphomeyaml generate the binary and flash
from your PC.
* :doc:`Over-the-Air Updates </components/ota>` have been completely re-written to make them a lot more
stable.
* :doc:`Over-the-Air Updates </components/ota/index>` have been completely re-written to make them a lot more stable.
* A lot of work has been put in to provide more context in YAML validation errors. Sometimes, esphomeyaml will even
try to give you suggestions for how to fix a validation error!
* A new release cycle: esphomeyaml now also has a :ref:`beta release channel <faq-beta>` kind of like Home Assistant. This helps to
@ -83,7 +82,7 @@ New Features
or the MQTT broker is unreachable, see :ref:`automation-networkless`
(:libpr:`258`, :libpr:`267`, :yamlpr:`229`)
- The :doc:`Over-the-Air Update </components/ota>` process was quite buggy sometimes and the Arduino-library
- The :doc:`Over-the-Air Update </components/ota/index>` process was quite buggy sometimes and the Arduino-library
esphomelib used was doing some weird stuff. The OTA-process has now been completely re-written to be more stable
(:libpr:`204`, :yamlpr:`177`).

View File

@ -28,7 +28,7 @@ our `Bluetooth Proxy installer <https://esphome.github.io/bluetooth-proxies/>`__
The :doc:`esp32` component should be configured to use the ``esp-idf`` framework, as the ``arduino`` framework
uses significantly more memory and performs poorly with the Bluetooth proxy enabled. When switching from
``arduino`` to ``esp-idf``, make sure to update the device with a serial cable as the partition table is
different between the two frameworks as :doc:`ota` updates will not change the partition table.
different between the two frameworks as :doc:`/components/ota/index` updates will not change the partition table.
The :doc:`web_server` component should be disabled as the device is likely
to run out of memory and will malfunction when both components are enabled simultaneously.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -12,6 +12,7 @@ Components
light/index
number/index
datetime/index
ota/index
output/index
select/index
sensor/index

View File

@ -0,0 +1,85 @@
ESPHome OTA Updates
===================
.. seo::
:description: Instructions for setting up ESPHome's Over-The-Air (OTA) platform to allow remote updating of devices.
:image: system-update.svg
.. _config-ota_esphome:
ESPHome's Over-The-Air (OTA) platform allows you to remotely install modified/updated firmware binaries onto your
ESPHome devices over their network (Wi-Fi or Ethernet) interface.
This platform is used by both the ESPHome dashboard as well as the command line interface (CLI) (via
``esphome run ...``) to install firmware onto supported devices.
In addition to OTA updates, ESPHome also supports a "safe mode" to help with recovery if/when updates don't work as
expected. This is automatically enabled by this component, but it may be disabled if desired. See
:doc:`/components/safe_mode` for details.
.. code-block:: yaml
# Example configuration entry
ota:
- platform: esphome
safe_mode: true
password: !secret ota_password
Configuration variables:
------------------------
- **password** (*Optional*, string): The password to use for updates.
- **port** (*Optional*, int): The port to use for OTA updates. Defaults:
- ``3232`` for the ESP32
- ``8266`` for the ESP8266
- ``2040`` for the RP2040
- ``8892`` for Beken chips
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- **version** (*Optional*, int): Version of OTA protocol to use. Version 2 is more stable. To downgrade to legacy
ESPHome, the device should be updated with OTA version 1 first. Defaults to ``2``.
- All :ref:`automations <automation>` supported by :doc:`/components/ota/index`.
.. note::
After a serial upload, ESP8266 modules must be reset before OTA updates will work. If you attempt to perform an OTA
update and receive the error message ``Bad Answer: ERR: ERROR[11]: Invalid bootstrapping``, the ESP module/board
must be power-cycled.
Updating the Password
---------------------
Changing an Existing Password
*****************************
Since the configured password is used for both compiling and uploading, the regular ``esphome run <file>`` command
won't work. This issue can be worked around by executing the operations separately with an ``on_boot`` trigger:
.. code-block:: yaml
esphome:
on_boot:
- lambda: |-
id(my_ota).set_auth_password("New password");
ota:
- platform: esphome
id: my_ota
password: "Old password"
After this trick has been used to change the password, the ``on_boot`` trigger may be removed and the old password
replaced with the new password in the ``ota:`` section.
Adding a Password
*****************
If OTA is already enabled without a password, simply add a ``password:`` line to the existing ``ota:`` config block.
See Also
--------
- :apiref:`ota/ota_component.h`
- :doc:`/components/ota/index`
- :doc:`/components/ota/http_request`
- :doc:`/components/safe_mode`
- :ghedit:`Edit`

View File

@ -24,7 +24,7 @@ To use this platform, the :doc:`http_request` component must be present in your
Configuration variables:
------------------------
- All :ref:`automations <ota-automations>` supported by :doc:`ota`.
- All :ref:`automations <automation>` supported by :doc:`/components/ota/index`.
.. _ota_http_request-flash_action:
@ -105,6 +105,8 @@ Configuration variables:
See Also
--------
- :doc:`/components/ota`
- :doc:`/components/http_request`
- :apiref:`ota/ota_component.h`
- :doc:`/components/ota/index`
- :doc:`/components/ota/esphome`
- :doc:`/components/safe_mode`
- :ghedit:`Edit`

View File

@ -1,41 +1,36 @@
ESPHome OTA Updates
===================
Over-the-Air Updates
====================
.. seo::
:description: Instructions for setting up ESPHome's Over-The-Air (OTA) platform to allow remote updating of devices.
:description: Instructions for setting up the Over-The-Air (OTA) component to allow remote updating of devices.
:image: system-update.svg
.. _config-ota:
ESPHome's Over-The-Air (OTA) platform allows you to remotely install modified/updated firmware binaries onto your
ESPHome devices over their network (Wi-Fi or Ethernet) interface.
ESPHome supports remotely updating a device "over-the-air" (OTA). Each update mechanism is a *platform* of the base
``ota`` component and will have its own configuration variables.
This platform is used by both the ESPHome dashboard as well as the command line interface (CLI) (via
``esphome run ...``) to install firmware onto supported devices.
In addition to OTA updates, ESPHome also supports a "safe mode" to help with recovery if/when updates don't work as
expected. This is automatically enabled by this component, but it may be disabled if desired. See
:doc:`/components/safe_mode` for details.
In release 2024.6.0, the ``ota`` component transistioned from a standalone component to a *platform* component. This
change was made to facilitate the use of multiple update mechanisms, enabling greater flexibility.
.. code-block:: yaml
# Example configuration entry
ota:
- platform: esphome
safe_mode: true
password: !secret ota_password
- platform: ...
Platforms
---------
.. toctree::
:maxdepth: 1
:glob:
*
Configuration variables:
------------------------
- **password** (*Optional*, string): The password to use for updates.
- **port** (*Optional*, int): The port to use for OTA updates. Defaults:
- ``3232`` for the ESP32
- ``8266`` for the ESP8266
- ``2040`` for the RP2040
- ``8892`` for Beken chips
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- **on_begin** (*Optional*, :ref:`Automation<automation>`): An action to be performed when an OTA update is started.
See :ref:`ota-on_begin`.
- **on_progress** (*Optional*, :ref:`Automation<automation>`): An action to be performed (approximately each second)
@ -46,14 +41,6 @@ Configuration variables:
See :ref:`ota-on_error`.
- **on_state_change** (*Optional*, :ref:`Automation<automation>`): An action to be performed when an OTA update state
change happens. See :ref:`ota-on_state_change`.
- **version** (*Optional*, int): Version of OTA protocol to use. Version 2 is more stable. To downgrade to legacy
ESPHome, the device should be updated with OTA version 1 first. Defaults to ``2``.
.. note::
After a serial upload, ESP8266 modules must be reset before OTA updates will work. If you attempt to perform an OTA
update and receive the error message ``Bad Answer: ERR: ERROR[11]: Invalid bootstrapping``, the ESP module/board
must be power-cycled.
.. _ota-automations:
@ -79,9 +66,10 @@ This automation will be triggered when an OTA update is started.
.. code-block:: yaml
ota:
on_begin:
then:
- logger.log: "OTA start"
- platform: ...
on_begin:
then:
- logger.log: "OTA start"
.. _ota-on_progress:
@ -94,11 +82,12 @@ OTA update. You can get the actual progress percentage (a value between 0 and 10
.. code-block:: yaml
ota:
on_progress:
then:
- logger.log:
format: "OTA progress %0.1f%%"
args: ["x"]
- platform: ...
on_progress:
then:
- logger.log:
format: "OTA progress %0.1f%%"
args: ["x"]
.. _ota-on_end:
@ -115,9 +104,10 @@ before the reboot. The OTA update can't fail at this point because it is already
.. code-block:: yaml
ota:
on_end:
then:
- logger.log: "OTA end"
- platform: ...
on_end:
then:
- logger.log: "OTA end"
.. _ota-on_error:
@ -132,11 +122,12 @@ process has already finished.
.. code-block:: yaml
ota:
on_error:
then:
- logger.log:
format: "OTA update error %d"
args: ["x"]
- platform: ...
on_error:
then:
- logger.log:
format: "OTA update error %d"
args: ["x"]
.. _ota-on_state_change:
@ -154,48 +145,25 @@ will contain one of values for the ``OTAState`` enum. These values are:
.. code-block:: yaml
ota:
on_state_change:
then:
- if:
condition:
lambda: return state == ota::OTA_STARTED;
then:
- logger.log: "OTA start"
- platform: ...
on_state_change:
then:
- if:
condition:
lambda: return state == ota::OTA_STARTED;
then:
- logger.log: "OTA start"
Updating the Password
---------------------
Safe Mode
---------
Changing an Existing Password
*****************************
Since the configured password is used for both compiling and uploading, the regular ``esphome run <file>`` command
won't work. This issue can be worked around by executing the operations separately with an ``on_boot`` trigger:
.. code-block:: yaml
esphome:
on_boot:
- lambda: |-
id(my_ota).set_auth_password("New password");
ota:
- platform: esphome
id: my_ota
password: "Old password"
After this trick has been used to change the password, the ``on_boot`` trigger may be removed and the old password
replaced with the new password in the ``ota:`` section.
Adding a Password
*****************
If OTA is already enabled without a password, simply add a ``password:`` line to the existing ``ota:`` config block.
In addition to OTA updates, ESPHome also supports a "safe mode" to help with recovery if/when updates don't work as
expected. This is automatically enabled by the ``ota`` component, but it may be disabled if desired. See
:doc:`/components/safe_mode` for details.
See Also
--------
- :apiref:`ota/ota_component.h`
- :doc:`/components/button/safe_mode`
- :doc:`/components/switch/safe_mode`
- :doc:`/components/ota_http_request`
- :doc:`/components/safe_mode`
- :ghedit:`Edit`

View File

@ -25,8 +25,8 @@ for ``num_attempts`` times (see below).
Configuration variables:
------------------------
- **disabled** (*Optional*, boolean): Set to ``true`` to disable safe_mode. :doc:`/components/ota` automatically sets
up safe mode; this allows disabling it if/when it is not wanted.
- **disabled** (*Optional*, boolean): Set to ``true`` to disable safe_mode. :doc:`/components/ota/index` automatically
sets up safe mode; this allows disabling it if/when it is not wanted.
- **boot_is_good_after** (*Optional*, :ref:`config-time`): The amount of time after which the boot is considered successful.
Defaults to ``1min``.
- **num_attempts** (*Optional*, int): The number of failed boot attempts which must occur before invoking safe mode.

View File

@ -119,7 +119,7 @@ See Also
- :ref:`sensor-filters`
- :apiref:`gdk101/gdk101.h`
- `Data Sheet <http://allsmartlab.com/eng/wp-content/uploads/sites/2/2017/01/GDK101datasheet_v1.6.pdf>`__
- `Data Sheet <https://www.eleparts.co.kr/data/goods_old/design/product_file/Hoon/AN_GDK101_V1.0_I2C.pdf>`__
- `Application Notes <https://merona.blob.core.windows.net/radonftlab-web/GDK101.zip>`__
- `Arduino Sensors for Everyone blog post <https://arduino.steamedu123.com/entry/GDK101-Radiation-Sensor>`__
- :ghedit:`Edit`

Binary file not shown.

Before

Width:  |  Height:  |  Size: 240 KiB

After

Width:  |  Height:  |  Size: 235 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -12,7 +12,7 @@ This platform allows you to manage the deployment of updates to your ESPHome dev
To use it, the following components are required in your device's configuration:
- :doc:`/components/http_request`
- :doc:`/components/ota_http_request`
- :doc:`/components/ota/http_request`
.. code-block:: yaml
@ -28,7 +28,8 @@ Configuration variables:
------------------------
- **source** (**Required**, string): The URL of the YAML manifest file containing the firmware metadata.
- **update_interval** (*Optional*, :ref:`config-time`): The interval at which to check for updates. Defaults to 6 hours.
- **update_interval** (*Optional*, :ref:`config-time`): The interval at which to check for (**not install**) updates.
Defaults to 6 hours.
- All other options from :ref:`Update <config-update>`.
.. _update_http_request-manifest_format:
@ -71,7 +72,7 @@ See Also
--------
- :doc:`http_request`
- :doc:`/components/ota_http_request`
- :doc:`/components/ota`
- :doc:`/components/ota/http_request`
- :doc:`/components/ota/index`
- :apiref:`update/update_entity.h`
- :ghedit:`Edit`

View File

@ -7,7 +7,8 @@ Update Core
:keywords: Updates, OTA, ESP32, ESP8266
The `update` component allows your ESPHome devices to install updates from a remote source; instead of
:doc:`"pushing" an update to your device </components/ota>`, the device can retrieve an update and install it on its own.
:doc:`"pushing" an update to your device </components/ota/index>`, the device can retrieve an update and
install it on its own.
.. code-block:: yaml

View File

@ -160,8 +160,8 @@ You can do so with the ``manual_ip:`` option in the WiFi configuration.
After putting a manual IP in your configuration, the ESP will no longer need to negotiate
a dynamic IP address with the router, thus improving the time until connection.
Additionally, this can help with :doc:`Over-The-Air updates <ota>` if for example the
home network doesn't allow for ``.local`` addresses. When a manual IP is in your configuration,
Additionally, this can help with :doc:`/components/ota/index` if for example the
network doesn't allow for ``.local`` addresses. When a manual IP is in your configuration,
the OTA process will automatically choose that as the target for the upload.
.. note::

View File

@ -144,7 +144,7 @@ Sensor </components/binary_sensor/gpio>`.
pullup: true
This time when installing, you dont need to have the device plugged in
through USB again. The upload will happen wirelessly (:doc:`"over the air" </components/ota>`).
through USB again. The upload will happen wirelessly (:doc:`"over the air" </components/ota/index>`).
.. figure:: /components/binary_sensor/images/gpio-ui.png
:align: center

View File

@ -6,7 +6,7 @@ installation, which requires connecting your ESP device to a computer using a
cable.
**You only need to do this once per device.** Once you've flashed ESPHome on a
device, you can use :doc:`the OTA updater </components/ota>` to upload new
device, you can use :doc:`/components/ota/index` to upload new
versions or configuration changes wirelessly.
ESPHome runs on a wide variety of devices, so it's hard to list any specific
@ -24,8 +24,8 @@ requires you do something different to connect your computer to the ESP in
order to flash it.
You only need to physically connect to it once. Once you've flashed your device
and connected it to your WiFi, you can use the `OTA (over-the-air) update
component </components/ota.html>`_ to install software remotely.
and connected it to your WiFi, you can use :doc:`/components/ota/index` to
install software remotely.
Programming a ESP-based device is done by connecting the serial port on the
ESP8266/ESP32 to your computer through a USB to serial adapter. Some devices

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@ -1,11 +1 @@
<svg width="400" height="400" viewBox="0 0 400 400" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2_140)">
<path d="M320 299C320 307.25 313.25 314 305 314H95C86.75 314 80 307.25 80 299V209C80 200.75 84.7812 189.218 90.6125 183.387L189.387 84.5934C195.219 78.7622 204.763 78.7622 210.594 84.5934L309.387 183.387C315.219 189.218 320 200.75 320 209V299Z" fill="#18BCF2"/>
<path d="M239.994 158.656H159.987C156.669 158.656 153.987 161.337 153.987 164.656V314H165.987V170.656H233.994V182.656H183.987C180.669 182.656 177.987 185.337 177.987 188.656V212.656C177.987 215.975 180.669 218.656 183.987 218.656H233.994V230.656H183.987C180.669 230.656 177.987 233.337 177.987 236.656V260.656C177.987 263.975 180.669 266.656 183.987 266.656H233.994V278.656H183.987C180.669 278.656 177.987 281.337 177.987 284.656C177.987 287.975 180.669 290.656 183.987 290.656H239.994C243.312 290.656 245.994 287.975 245.994 284.656V260.656C245.994 257.337 243.312 254.656 239.994 254.656H189.987V242.656H239.994C243.312 242.656 245.994 239.975 245.994 236.656V212.656C245.994 209.337 243.312 206.656 239.994 206.656H189.987V194.656H239.994C243.312 194.656 245.994 191.975 245.994 188.656V164.656C245.994 161.337 243.312 158.656 239.994 158.656Z" fill="#F2F4F9"/>
</g>
<defs>
<clipPath id="clip0_2_140">
<rect width="400" height="400" fill="white"/>
</clipPath>
</defs>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="400" height="400" fill="none" viewBox="0 0 400 400"><g clip-path="url(#clip0_2_140)"><path fill="#18BCF2" d="M320 299C320 307.25 313.25 314 305 314H95C86.75 314 80 307.25 80 299V209C80 200.75 84.7812 189.218 90.6125 183.387L189.387 84.5934C195.219 78.7622 204.763 78.7622 210.594 84.5934L309.387 183.387C315.219 189.218 320 200.75 320 209V299Z"/><path fill="#F2F4F9" d="M239.994 158.656H159.987C156.669 158.656 153.987 161.337 153.987 164.656V314H165.987V170.656H233.994V182.656H183.987C180.669 182.656 177.987 185.337 177.987 188.656V212.656C177.987 215.975 180.669 218.656 183.987 218.656H233.994V230.656H183.987C180.669 230.656 177.987 233.337 177.987 236.656V260.656C177.987 263.975 180.669 266.656 183.987 266.656H233.994V278.656H183.987C180.669 278.656 177.987 281.337 177.987 284.656C177.987 287.975 180.669 290.656 183.987 290.656H239.994C243.312 290.656 245.994 287.975 245.994 284.656V260.656C245.994 257.337 243.312 254.656 239.994 254.656H189.987V242.656H239.994C243.312 242.656 245.994 239.975 245.994 236.656V212.656C245.994 209.337 243.312 206.656 239.994 206.656H189.987V194.656H239.994C243.312 194.656 245.994 191.975 245.994 188.656V164.656C245.994 161.337 243.312 158.656 239.994 158.656Z"/></g><defs><clipPath id="clip0_2_140"><rect width="400" height="400" fill="#fff"/></clipPath></defs></svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

@ -1,19 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 100 25"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<path
d="M5,0 H95 a5 5 0 0 1 5 5 v15 a5 5 0 0 1 -5 5 H5 a5 5 0 0 1 -5 -5 V5 a5 5 0 0 1 5 -5 Z"
style="fill:#000;"
id="path1" />
<path
d="m 5.125,7.95 h 3 V 21 h 5.9 V 3.5 h -8.9 z m 20.049982,7.95 v -4.25 h -7.5 V 15.9 Z M 47.72495,13.575 44.67495,3.5 h -5.425 l -3.225,9.95 -3.05,-9.95 h -6.075 l 5.6,17.5 h 6.325 l 2.975,-9.35 2.825,9.35 h 6.325 l 5.6,-17.5 h -5.6 z m 14.374964,-7.35 c 2.075,0 3.4,-1.25 3.4,-2.975 0,-1.625 -1.325,-2.775 -3.4,-2.775 -2.075,0 -3.4,1.25 -3.4,2.875 0,1.625 1.325,2.875 3.4,2.875 z M 64.924914,21 V 7.325 h -5.65 V 21 Z M 73.899918,7.325 h -5.375 V 21 h 5.65 v -6.075 c 0,-2.175 1.2,-2.95 2.9,-2.95 0.4,0 0.75,0.025 1.25,0.1 v -5 c -1.9,0 -3.425,0.575 -4.425,1.725 z m 21.550007,6.825 c 0,-4.625 -3.475,-7.075 -7.525,-7.075 -4.425,0 -7.75,2.925 -7.75,7.075 0,4.075 3.25,7.1 8.275,7.1 2.725,0 4.65,-0.75 5.975,-2.2 l -2.95,-2.975 c -0.9,0.675 -1.6,1 -2.85,1 -1.4,0 -2.35,-0.55 -2.75,-1.6 h 9.5 c 0.025,-0.4 0.075,-0.925 0.075,-1.325 z m -7.475,-3.225 c 1.15,0 1.975,0.675 2.2,1.825 h -4.4 c 0.225,-1.15 1.025,-1.825 2.2,-1.825 z"
id="component-text"
style="font-weight:900;font-size:25px;font-family:Montserrat;letter-spacing:1.1px;fill:#fffffc"
aria-label="1-Wire" />
</svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" id="svg1" version="1.1" viewBox="0 0 100 25"><path d="M5,0 H95 a5 5 0 0 1 5 5 v15 a5 5 0 0 1 -5 5 H5 a5 5 0 0 1 -5 -5 V5 a5 5 0 0 1 5 -5 Z" style="fill:#000" id="path1"/><path id="component-text" d="m 5.125,7.95 h 3 V 21 h 5.9 V 3.5 h -8.9 z m 20.049982,7.95 v -4.25 h -7.5 V 15.9 Z M 47.72495,13.575 44.67495,3.5 h -5.425 l -3.225,9.95 -3.05,-9.95 h -6.075 l 5.6,17.5 h 6.325 l 2.975,-9.35 2.825,9.35 h 6.325 l 5.6,-17.5 h -5.6 z m 14.374964,-7.35 c 2.075,0 3.4,-1.25 3.4,-2.975 0,-1.625 -1.325,-2.775 -3.4,-2.775 -2.075,0 -3.4,1.25 -3.4,2.875 0,1.625 1.325,2.875 3.4,2.875 z M 64.924914,21 V 7.325 h -5.65 V 21 Z M 73.899918,7.325 h -5.375 V 21 h 5.65 v -6.075 c 0,-2.175 1.2,-2.95 2.9,-2.95 0.4,0 0.75,0.025 1.25,0.1 v -5 c -1.9,0 -3.425,0.575 -4.425,1.725 z m 21.550007,6.825 c 0,-4.625 -3.475,-7.075 -7.525,-7.075 -4.425,0 -7.75,2.925 -7.75,7.075 0,4.075 3.25,7.1 8.275,7.1 2.725,0 4.65,-0.75 5.975,-2.2 l -2.95,-2.975 c -0.9,0.675 -1.6,1 -2.85,1 -1.4,0 -2.35,-0.55 -2.75,-1.6 h 9.5 c 0.025,-0.4 0.075,-0.925 0.075,-1.325 z m -7.475,-3.225 c 1.15,0 1.975,0.675 2.2,1.825 h -4.4 c 0.225,-1.15 1.025,-1.825 2.2,-1.825 z" style="font-weight:900;font-size:25px;font-family:Montserrat;letter-spacing:1.1px;fill:#fffffc" aria-label="1-Wire"/></svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -196,13 +196,22 @@ Management and Monitoring
Debug, components/debug, bug-report.svg, dark-invert
Logger, components/logger, file-document-box.svg, dark-invert
OTA Updates, components/ota, system-update.svg, dark-invert
OTA Updates via HTTP Request, components/ota_http_request, system-update.svg, dark-invert
Prometheus, components/prometheus, prometheus.svg
Safe Mode, components/safe_mode, restart-alert.svg
Web Server, components/web_server, http.svg, dark-invert
ESP32 Camera Web Server, components/esp32_camera_web_server, camera.svg, dark-invert
Update Installation
-------------------
Install updates over-the-air (OTA).
.. imgtable::
OTA Core, components/ota/index, system-update.svg, dark-invert
OTA Updates, components/ota/esphome, system-update.svg, dark-invert
OTA Updates via HTTP Request, components/ota/http_request, system-update.svg, dark-invert
Update Management
-----------------