Merge branch 'current' into next

This commit is contained in:
Jesse Hills 2023-03-27 15:57:39 +13:00
commit 4e1fb99b22
No known key found for this signature in database
GPG Key ID: BEAAE804EFD8E83A
16 changed files with 149 additions and 75 deletions

View File

@ -39,6 +39,14 @@ SN74HC165
The pin/bit order has been reversed per shift register so that ``pin 0`` is now ``input A``.
Release 2023.3.1 - March 22
---------------------------
- climate: brown paper bag fix for on_configure :esphomepr:`4573` by :ghuser:`nwf`
- rp2040: Use fake Mutex lock :esphomepr:`4602` by :ghuser:`jesserockz`
Full list of changes
--------------------

View File

@ -7,7 +7,7 @@ Tuya Climate
The ``tuya`` climate platform creates a climate device from a tuya component.
The Tuya fan requires a :doc:`/components/tuya` to be configured.
Tuya climate requires a :doc:`/components/tuya` to be configured.
.. code-block:: text

View File

@ -83,7 +83,7 @@ Configuration variables:
- **skip_cert_cn_check** (*Optional*, bool): Only with ``esp-idf``. Don't verify if the common name in the server certificate matches the value of ``broker``.
- **idf_send_async** (*Optional*, bool): Only with ``esp-idf``. If true publishing the message happens from the internal mqtt task. The client only enqueues the message. Defaults to ``false``.
The advantage of asyncronous publishing is that it doesn't block the esphome main thread. The disadvantage is a delay (up to 1-2 seconds) until the messages are actually sent out.
Set this to true if ypi send large amounts of of data over mqtt.
Set this to true if you send large amounts of of data over mqtt.
- **reboot_timeout** (*Optional*, :ref:`config-time`): The amount of time to wait before rebooting when no
MQTT connection exists. Can be disabled by setting this to ``0s``. Defaults to ``15min``.
- **keepalive** (*Optional*, :ref:`config-time`): The time

View File

@ -1,37 +1,44 @@
PCA9554 I/O Expander
====================
The PCA9554 component allows you to use PCA9554, PCA9554A or PCA9536 I/O expanders
(`PCA9554 datasheet <https://www.ti.com/lit/ds/symlink/pca9554.pdf>`__,
`PCA9554A datasheet <https://www.ti.com/lit/ds/symlink/pca9554a.pdf>`__,
`PCA9536 datasheet <https://www.ti.com/lit/ds/symlink/pca9536.pdf>`__) in ESPHome.
.. seo::
:description: Instructions for setting up PCA9554, PCA9554A, PCA9536 digital port expanders in ESPHome.
:image: ../images/pca9554a.jpg
The PCA9554 component allows you to use **PCA9554**, **PCA9554A** or **PCA9536** I/O expanders in ESPHome.
It uses :ref:`I²C Bus <i2c>` for communication.
Once configured, you can use any of the 8 pins (PCA9554, PCA9554A) or 4 pins (PCA9536) as
.. figure:: ../images/pca9554a.jpg
:align: center
PCA9554A I/O Expander chip
Once configured, you can use any of the **8** pins (PCA9554, PCA9554A) or **4** pins (PCA9536) as
pins for your projects. Within ESPHome they emulate a real internal GPIO pin
and can therefore be used with many of ESPHome's components such as the GPIO
binary sensor or GPIO switch.
The 7 bit I2C device address ranges are:
.. note::
PCA9554 : 0x20 to 0x27
The 7 bit I²C device address ranges are:
PCA9554A : 0x38 to 0x3F
- PCA9554: ``0x20`` to ``0x27``
- PCA9554A: ``0x38`` to ``0x3F``
- PCA9536: ``0x41``
PCA9536 : 0x41
For the PCA9554 and PCA9554A, the actual choice of the I²C device address depends on state of the 3 address pins.
Please refer to the individual datasheets linked at the bottom of the page for further details to set the address.
For the PCA9554 and PCA9554A, the actual choice of the I2C device address depends on state of the 3 address pins.
Please refer to the individual datasheets for further details.
Up to eight PCA9554 and an additional eight PCA9554A devices can reside on the same I²C bus.
Please note that only one PCA9536 device is allowed per I²C bus due to its fixed address.
Up to eight PCA9554 and an additional eight PCA9554A devices can reside on the same I2C bus.
Please note that only one PCA9536 device is allowed per I2C bus due to its fixed address.
The PCA9554 and PCA9554A provide 8 bits of GPIO's (pin numbers 0-7).
The PCA9536 provides 4 bits of GPIO's (pin numbers 0-3).
The PCA9554 and PCA9554A provide 8 bits of GPIO's (pin numbers 0-7)
The PCA9536 provides 4 bits of GPIO's (pin numbers 0-3).
Any option accepting a :ref:`Pin Schema <config-pin_schema>` can theoretically be used, but some more
complicated components that do communication through this I/O expander will
not work.
Any option accepting a :ref:`Pin Schema <config-pin_schema>` can theoretically be used, but some more
complicated components that do communication through this I/O expander will not work.
.. code-block:: yaml
@ -40,7 +47,6 @@ not work.
- id: 'pca9554a_device'
address: 0x38
# Individual outputs
switch:
- platform: gpio
@ -54,10 +60,11 @@ not work.
output: true
inverted: false
Configuration variables:
************************
- **id** (**Required**, :ref:`config-id`): The id to use for this PCF9554 component.
- **id** (**Required**, :ref:`config-id`): The id to use for this ``pca9554`` component.
- **address** (*Optional*, int): The I²C address of the driver.
Defaults to ``0x20``.
@ -66,7 +73,7 @@ Configuration variables:
Pin configuration variables:
****************************
- **pca9554** (**Required**, :ref:`config-id`): The id of the PCA9554 component of the pin.
- **pca9554** (**Required**, :ref:`config-id`): The id of the ``pca9554`` component of the pin.
- **number** (**Required**, int): The pin number.
- **inverted** (*Optional*, boolean): If all read and written values
should be treated as inverted. Defaults to ``false``.
@ -79,5 +86,8 @@ See Also
- :ref:`i2c`
- :doc:`switch/gpio`
- :doc:`binary_sensor/gpio`
- `PCA9554 datasheet <https://www.ti.com/lit/ds/symlink/pca9554.pdf>`__
- `PCA9554A datasheet <https://www.ti.com/lit/ds/symlink/pca9554a.pdf>`__
- `PCA9536 datasheet <https://www.ti.com/lit/ds/symlink/pca9536.pdf>`__
- :apiref:`pca9554/pca9554.h`
- :ghedit:`Edit`

View File

@ -66,6 +66,11 @@ Configuration variables:
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. Use this if you have
multiple remote receivers.
.. note::
The dumped **raw** code is sequence of pulse widths (durations in microseconds), positive for on-pulses (mark)
and negative for off-pulses (space). Usually you can to copy this directly to the configuration or automation to be used later.
Automations:
------------
@ -101,13 +106,6 @@ Automations:
- **on_nec** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
NEC remote code has been decoded. A variable ``x`` of type :apistruct:`remote_base::NECData`
is passed to the automation for use in lambdas.
.. note::
In version 2021.12, the order of transferring bits was corrected from MSB to LSB in accordance with the NEC standard.
Therefore, if the configuration file has come from an earlier version of ESPhome, it is necessary to reverse the order of the address and command bits when moving to 2021.12 or above.
For example, address: 0x84ED, command: 0x13EC becomes 0xB721 and 0x37C8 respectively.
- **on_nexa** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
Nexa RF code has been decoded. A variable ``x`` of type :apiclass:`remote_base::NexaData`
is passed to the automation for use in lambdas.
@ -201,22 +199,12 @@ Remote code selection (exactly one of these has to be included):
- **canalsat**: Trigger on a decoded CanalSat remote code with the given data.
.. note::
The CanalSat and CanalSatLD protocols use a higher carrier frequency (56khz) and are very similar.
Depending on the hardware used they may interfere with each other when enabled simultaneously.
- **device** (**Required**, int): The device to trigger on, see dumper output for more info.
- **address** (**Optional**, int): The address (or subdevice) to trigger on, see dumper output for more info. Defaults to ``0``
- **command** (**Required**, int): The command to listen for.
- **canalsatld**: Trigger on a decoded CanalSatLD remote code with the given data.
.. note::
The CanalSat and CanalSatLD protocols use a higher carrier frequency (56khz) and are very similar.
Depending on the hardware used they may interfere with each other when enabled simultaneously.
- **device** (**Required**, int): The device to trigger on, see dumper output for more info.
- **address** (**Optional**, int): The address (or subdevice) to trigger on, see dumper output for more info. Defaults to ``0``
- **command** (**Required**, int): The command to listen for.
@ -252,12 +240,6 @@ Remote code selection (exactly one of these has to be included):
- **nec**: Trigger on a decoded NEC remote code with the given data.
.. note::
In version 2021.12, the order of transferring bits was corrected from MSB to LSB in accordance with the NEC standard.
Therefore, if the configuration file has come from an earlier version of ESPhome, it is necessary to reverse the order of the address and command bits when moving to 2021.12 or above.
For example, address: 0x84ED, command: 0x13EC becomes 0xB721 and 0x37C8 respectively.
- **address** (**Required**, int): The address to trigger on, see dumper output for more info.
- **command** (**Required**, int): The NEC command to listen for.
@ -355,18 +337,16 @@ Remote code selection (exactly one of these has to be included):
.. note::
For the Sonoff RF Bridge you can use `this hack <https://github.com/xoseperez/espurna/wiki/Hardware-Itead-Sonoff-RF-Bridge---Direct-Hack>`__
created by the GitHub user wildwiz. Then use this configuration for the remote receiver/transmitter hubs:
The **CanalSat** and **CanalSatLD** protocols use a higher carrier frequency (56khz) and are very similar.
Depending on the hardware used they may interfere with each other when enabled simultaneously.
.. code-block:: yaml
remote_receiver:
pin: 4
dump: all
.. note::
**NEC codes**: In version 2021.12, the order of transferring bits was corrected from MSB to LSB in accordance with the NEC standard.
Therefore, if the configuration file has come from an earlier version of ESPhome, it is necessary to reverse the order of the address
and command bits when moving to 2021.12 or above. For example, address: 0x84ED, command: 0x13EC becomes 0xB721 and 0x37C8 respectively.
remote_transmitter:
pin: 5
carrier_duty_percent: 100%
.. note::
@ -384,11 +364,30 @@ Remote code selection (exactly one of these has to be included):
dump: all
.. note::
For the Sonoff RF Bridge, you can bypass the EFM8BB1 microcontroller handling RF signals with
`this hack <https://github.com/xoseperez/espurna/wiki/Hardware-Itead-Sonoff-RF-Bridge---Direct-Hack>`__
created by the GitHub user wildwiz. Then use this configuration for the remote receiver/transmitter hubs:
.. code-block:: yaml
remote_receiver:
pin: 4
dump: all
remote_transmitter:
pin: 5
carrier_duty_percent: 100%
See Also
--------
- :doc:`index`
- :doc:`/components/remote_transmitter`
- :doc:`/components/rf_bridge`
- `RCSwitch <https://github.com/sui77/rc-switch>`__ by `Suat Özgür <https://github.com/sui77>`__
- `IRRemoteESP8266 <https://github.com/markszabo/IRremoteESP8266/>`__ by `Mark Szabo-Simon <https://github.com/markszabo>`__
- :apiref:`remote/remote_receiver.h`

View File

@ -6,8 +6,8 @@ RF Bridge Component
:image: rf_bridge.jpg
:keywords: RF Bridge
The ``RF Bridge`` Component provides the ability to send and receive 433MHz remote codes without hardware
hacking the circuit board to bypass the ``efm8bb1`` MCU. This component implements the communication protocol
The ``RF Bridge`` Component provides the ability to send and receive 433MHz remote codes using the
embedded EFM8BB1 microcontroller. This component implements the communication protocol
that the original ``efm8bb1`` firmware implements. The device is connected via the
:doc:`UART bus </components/uart>`. The uart bus must be configured at the same speed of the module
which is 19200bps.
@ -402,5 +402,8 @@ See Also
--------
- :apiref:`rf_bridge/rf_bridge.h`
- `RF-Bridge-EFM8BB1 <https://github.com/Portisch/RF-Bridge-EFM8BB1>`__ by `Portisch <https://github.com/Portisch>`__
- :doc:`/components/uart`
- :doc:`/components/remote_receiver`
- :doc:`/components/remote_transmitter`
- :ghedit:`Edit`

View File

@ -1,5 +1,5 @@
ADS1115 Sensor
==============
ADS1115 4-Channel 16-Bit A/D Converter
======================================
.. seo::
:description: Instructions for setting up ADS1115/ADS1015 multiplexed analog voltage sensors.

View File

@ -8,7 +8,9 @@ BME280 Temperature+Pressure+Humidity Sensor
The ``bme280`` sensor platform allows you to use your BME280
(`datasheet <https://cdn-shop.adafruit.com/datasheets/BST-BME280_DS001-10.pdf>`__,
`Adafruit`_) temperature, pressure and humidity sensors with ESPHome. The :ref:`I²C <i2c>` is
`Adafruit`_) temperature, pressure and humidity sensors with ESPHome. The sensor
is used in *Forced Mode* where measurement is performed and then
the sensor returns to sleep mode until next measurement. The :ref:`I²C <i2c>` is
required to be set up in your configuration for this sensor to work.
.. figure:: images/bme280-full.jpg

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -531,6 +531,16 @@ the result of the lambda is used as the output (use ``return``).
Make sure to add ``.0`` to all values in the lambda, otherwise divisions of integers will
result in integers (not floating point values).
To prevent values from being published, return ``{}``:
.. code-block:: yaml
filters:
- lambda: !lambda |-
if (x < 10) return {};
return x-10;
Example: Converting Celsius to Fahrenheit
-----------------------------------------

View File

@ -38,7 +38,7 @@ Configuration variables:
This automation will be triggered when the touchscreen detects a touch.
This trigger provides one arguments of type :apistruct:`touchscreen::TouchPoint` which has two integer members: ``x`` and ``y`` which
This trigger provides one argument named ``touch`` of type :apistruct:`touchscreen::TouchPoint` which has two integer members: ``x`` and ``y`` which
represent the position of the touch in relation to the display width and height. It also has optional members that will be set
depending on the touchscreen platform.

43
cookbook/ehmtx.rst Normal file
View File

@ -0,0 +1,43 @@
ehmtx a matrix status display
=============================
.. seo::
:description: A simple DIY status display, build with a flexible 8x32 RGB LED panel.
:image: ehmtx.jpg
:keywords: DIY matrix display RGB
Based on a cheap 8x32 RGB matrix you can build flexible status displays for all kind of informations. It is expandable with sensors etc.
.. figure:: images/ehmtx.jpg
:align: center
:width: 40%
Introduction
------------
Based a on a 8x32 RGB flexible matrix it displays a clock, the date and up to 16 other screens provided by home assistant.
Each screen (value/text) can be associated with a 8x8 bit RGB icon or gif animation (see installation).
The values/text can be updated or deleted from the display queue. Each screen has a lifetime, if not refreshed in its lifetime it will disapear.
ESPHome Configuration
---------------------
Documentation:
- `Source for the component on github <https://github.com/lubeda/EsphoMaTrix>`__
- `Discussion in the homeassistant community <https://community.home-assistant.io/t/esphomatrix-a-simple-clock-status-display/425325>`__
- `Second discussion in the homeassistant community <https://community.home-assistant.io/t/a-simple-diy-status-display-with-an-8x32-rgb-led/379051>`__
- `Optional notify component <https://github.com/lubeda/EHMTX_custom_component>`__
`sample YAML configuration for ESP32 <https://raw.githubusercontent.com/lubeda/EsphoMaTrix/main/ehmtx32.yaml>`__
Sample video:
.. raw:: html
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/ZyaFj7ArIdY" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
See Also
--------
- :ghedit:`Edit`

BIN
cookbook/images/ehmtx.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

View File

@ -26,6 +26,7 @@ Contributors
- `Alessandro Campolo (@a13ssandr0) <https://github.com/a13ssandr0>`__
- `Aalian Khan (@AalianKhan) <https://github.com/AalianKhan>`__
- `Adam Liddell (@aaliddell) <https://github.com/aaliddell>`__
- `Aaron S. Jackson (@AaronJackson) <https://github.com/AaronJackson>`__
- `Abel Matser (@abelmatser) <https://github.com/abelmatser>`__
- `Abílio Costa (@abmantis) <https://github.com/abmantis>`__
- `Antonio (@acarvajalperez) <https://github.com/acarvajalperez>`__
@ -100,6 +101,7 @@ Contributors
- `Kamil Trzciński (@ayufan) <https://github.com/ayufan>`__
- `Nicholas Peters (@Azimath) <https://github.com/Azimath>`__
- `Daniel (@azrael783) <https://github.com/azrael783>`__
- `B48D81EFCC (@B48D81EFCC) <https://github.com/B48D81EFCC>`__
- `Florian Mösch (@badbadc0ffee) <https://github.com/badbadc0ffee>`__
- `Marco Tombesi (@baggior) <https://github.com/baggior>`__
- `balk77 (@balk77) <https://github.com/balk77>`__
@ -340,6 +342,7 @@ Contributors
- `gazoodle (@gazoodle) <https://github.com/gazoodle>`__
- `GeekVisit (@GeekVisit) <https://github.com/GeekVisit>`__
- `Ian Reinhart Geiser (@geiseri) <https://github.com/geiseri>`__
- `R Huish (@genestealer) <https://github.com/genestealer>`__
- `Geoff Davis (@geoffdavis) <https://github.com/geoffdavis>`__
- `Geoffrey Van Landeghem (@geoffrey-vl) <https://github.com/geoffrey-vl>`__
- `Gérald Guiony (@gerald-guiony) <https://github.com/gerald-guiony>`__
@ -386,7 +389,6 @@ Contributors
- `Hermann Kraus (@herm) <https://github.com/herm>`__
- `Hamish Moffatt (@hmoffatt) <https://github.com/hmoffatt>`__
- `Marcel Hoppe (@hobbypunk90) <https://github.com/hobbypunk90>`__
- `Sebastian Raff (@hobbyquaker) <https://github.com/hobbyquaker>`__
- `MoA (@honomoa) <https://github.com/honomoa>`__
- `Hopperpop (@Hopperpop) <https://github.com/Hopperpop>`__
- `Yang Hau (@howjmay) <https://github.com/howjmay>`__
@ -406,7 +408,6 @@ Contributors
- `iKK001 (@iKK001) <https://github.com/iKK001>`__
- `imgbot[bot] (@imgbot[bot]) <https://github.com/imgbot[bot]>`__
- `ImSorryButWho (@ImSorryButWho) <https://github.com/ImSorryButWho>`__
- `Lorenzo Ortiz (@Infinitte) <https://github.com/Infinitte>`__
- `Dom (@Ing-Dom) <https://github.com/Ing-Dom>`__
- `Ingurum (@Ingurum) <https://github.com/Ingurum>`__
- `Ivo Roefs (@ironirc) <https://github.com/ironirc>`__
@ -549,6 +550,7 @@ Contributors
- `Lazar Obradovic (@lobradov) <https://github.com/lobradov>`__
- `Lode Vermeiren (@lodev) <https://github.com/lodev>`__
- `Barry Loong (@loongyh) <https://github.com/loongyh>`__
- `Michael Bisbjerg (@LordMike) <https://github.com/LordMike>`__
- `LuBeDa (@lubeda) <https://github.com/lubeda>`__
- `Joakim Sørensen (@ludeeus) <https://github.com/ludeeus>`__
- `ludrao (@ludrao) <https://github.com/ludrao>`__
@ -700,6 +702,7 @@ Contributors
- `per1234 (@per1234) <https://github.com/per1234>`__
- `Peter Valkov (@peter-valkov) <https://github.com/peter-valkov>`__
- `Peter Galantha (@peterg79) <https://github.com/peterg79>`__
- `Peter Halicky (@peterhalicky) <https://github.com/peterhalicky>`__
- `Philippe FOUQUET (@Philippe12) <https://github.com/Philippe12>`__
- `pieterbrink123 (@pieterbrink123) <https://github.com/pieterbrink123>`__
- `Piotr Kubiak (@piotr-kubiak) <https://github.com/piotr-kubiak>`__
@ -728,6 +731,7 @@ Contributors
- `Richard Miles (@r89m) <https://github.com/r89m>`__
- `Aaron Zhang (@rabbit-aaron) <https://github.com/rabbit-aaron>`__
- `RadekHvizdos (@RadekHvizdos) <https://github.com/RadekHvizdos>`__
- `Raph (@rafal83) <https://github.com/rafal83>`__
- `Florian Ragwitz (@rafl) <https://github.com/rafl>`__
- `Rai-Rai (@Rai-Rai) <https://github.com/Rai-Rai>`__
- `randomllama (@randomllama) <https://github.com/randomllama>`__
@ -767,12 +771,10 @@ Contributors
- `RubyBailey (@RubyBailey) <https://github.com/RubyBailey>`__
- `rweather (@rweather) <https://github.com/rweather>`__
- `ryanalden (@ryanalden) <https://github.com/ryanalden>`__
- `Silvio (@s1lvi0) <https://github.com/s1lvi0>`__
- `Jan Čermák (@sairon) <https://github.com/sairon>`__
- `sascha lammers (@sascha432) <https://github.com/sascha432>`__
- `Søren Christian Aarup (@scaarup) <https://github.com/scaarup>`__
- `Matthew Schinckel (@schinckel) <https://github.com/schinckel>`__
- `Lukas Schulte (@Schluggi) <https://github.com/Schluggi>`__
- `Nils Schulte (@Schnilz) <https://github.com/Schnilz>`__
- `Wolle (@schreibfaul1) <https://github.com/schreibfaul1>`__
- `Ville Skyttä (@scop) <https://github.com/scop>`__
@ -780,7 +782,6 @@ Contributors
- `sebcaps (@sebcaps) <https://github.com/sebcaps>`__
- `Stefan Seyfried (@seife) <https://github.com/seife>`__
- `SenexCrenshaw (@SenexCrenshaw) <https://github.com/SenexCrenshaw>`__
- `Sergio (@sergio303) <https://github.com/sergio303>`__
- `Sergio Mayoral Martínez (@sermayoral) <https://github.com/sermayoral>`__
- `Emanuele Tessore (@setola) <https://github.com/setola>`__
- `Abdelkader Boudih (@seuros) <https://github.com/seuros>`__
@ -789,7 +790,6 @@ Contributors
- `ShellAddicted (@ShellAddicted) <https://github.com/ShellAddicted>`__
- `sherbang (@sherbang) <https://github.com/sherbang>`__
- `Shish (@shish) <https://github.com/shish>`__
- `Shreyas Karnik (@shreyaskarnik) <https://github.com/shreyaskarnik>`__
- `SiliconAvatar (@SiliconAvatar) <https://github.com/SiliconAvatar>`__
- `Francisco J. Solis (@sisco0) <https://github.com/sisco0>`__
- `Derek Hageman (@Sizurka) <https://github.com/Sizurka>`__
@ -800,7 +800,6 @@ Contributors
- `Jordan W. Cobb (@skykingjwc) <https://github.com/skykingjwc>`__
- `Sebastian Lövdahl (@slovdahl) <https://github.com/slovdahl>`__
- `smischny (@smischny) <https://github.com/smischny>`__
- `Luca Zimmermann (@soundstorm) <https://github.com/soundstorm>`__
- `Sourabh Jaiswal (@sourabhjaiswal) <https://github.com/sourabhjaiswal>`__
- `Philip Allgaier (@spacegaier) <https://github.com/spacegaier>`__
- `spacemanspiff2007 (@spacemanspiff2007) <https://github.com/spacemanspiff2007>`__
@ -819,6 +818,7 @@ Contributors
- `Jordan Vohwinkel (@sublime93) <https://github.com/sublime93>`__
- `sumirati (@sumirati) <https://github.com/sumirati>`__
- `swifty99 (@swifty99) <https://github.com/swifty99>`__
- `Sybren A. Stüvel (@sybrenstuvel) <https://github.com/sybrenstuvel>`__
- `synco (@synco) <https://github.com/synco>`__
- `Marcel Feix (@Syndlex) <https://github.com/Syndlex>`__
- `Suryandaru Triandana (@syndtr) <https://github.com/syndtr>`__
@ -864,7 +864,6 @@ Contributors
- `tubalainen (@tubalainen) <https://github.com/tubalainen>`__
- `tube0013 (@tube0013) <https://github.com/tube0013>`__
- `Alexey Vlasov (@turbulator) <https://github.com/turbulator>`__
- `Seppel Hardt (@tuxBurner) <https://github.com/tuxBurner>`__
- `Thorsten von Eicken (@tve) <https://github.com/tve>`__
- `Ubi de Feo (@ubidefeo) <https://github.com/ubidefeo>`__
- `uPesy Electronics (@uPesy) <https://github.com/uPesy>`__
@ -904,11 +903,10 @@ Contributors
- `Yuval Aboulafia (@yuvalabou) <https://github.com/yuvalabou>`__
- `Björn Stenberg (@zagor) <https://github.com/zagor>`__
- `david reid (@zathras777) <https://github.com/zathras777>`__
- `San (@zhujunsan) <https://github.com/zhujunsan>`__
- `Geek_cat (@zhzhzhy) <https://github.com/zhzhzhy>`__
- `I. Tomita (@ziceva) <https://github.com/ziceva>`__
- `Michael Labuschke (@zigman79) <https://github.com/zigman79>`__
- `Zack Barett (@zsarnett) <https://github.com/zsarnett>`__
- `Christian Zufferey (@zuzu59) <https://github.com/zuzu59>`__
*This page was last updated March 16, 2023.*
*This page was last updated March 22, 2023.*

BIN
images/ehmtx.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@ -784,8 +784,9 @@ Cookbook
IWOOLE Table Lamp, cookbook/iwoole_rgbw_table_lamp, iwoole_rgbw_table_lamp.png
EPEVER Tracer, cookbook/tracer-an, tracer-an.jpg
Ilonda Wifi Smart Fish Feeder, cookbook/ilonda-wifi-smart-fish-feeder, ilonda-wifi-smart-fish-feeder-cookbook.jpg
AirGradient DIY Air Quality Sensor, cookbook/air_gradient_diy_air_quality_sensor, air_gradient_diy_air_quality_sensor.jpg
AirGradient DIY Air Quality Sensor, cookbook/air_gradient_diy_air_quality_sensor, air_gradient_diy_air_quality_sensor.jpg
Geiger Counter, cookbook/geiger-counter, radiationD-v1-1-cajoe_small.jpg
EHMTX a matrix status/text display, cookbook/ehmtx, ehmtx.jpg
Do you have other awesome automations or cool setups? Please feel free to add them to the
documentation for others to copy. See :doc:`Contributing </guides/contributing>`.

View File

@ -2,8 +2,8 @@ Web Server API
==============
.. seo::
:description: Migration guide for installing ESPHome on ESPs running ESPEasy.
:image: espeasy.svg
:description: Information on Web Server APIs, including Event Source APIs and REST APIs.
:image: logo-text.svg
Since version 1.3, ESPHome includes a built-in web server that can be used to view states
and send commands. In addition to the web-frontend available under the root index of the