Merge branch 'current' into custom-power-on-state

This commit is contained in:
Bill Adams 2024-04-24 21:00:53 -07:00 committed by GitHub
commit 6ac881f153
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
80 changed files with 1641 additions and 404 deletions

View File

@ -1,4 +1,4 @@
FROM python:3.8-slim
FROM python:3.12-slim
RUN apt-get update && apt-get install -y --no-install-recommends \
curl \
@ -9,10 +9,24 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
software-properties-common \
&& apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/*
COPY requirements.txt .
RUN useradd -ms /bin/bash esphome
USER esphome
WORKDIR /workspaces/esphome-docs
COPY requirements.txt ./
RUN pip3 install --no-cache-dir --no-binary :all: -r requirements.txt
EXPOSE 8000
WORKDIR /data/esphomedocs
CMD ["make", "live-html"]
LABEL \
org.opencontainers.image.title="esphome-docs" \
org.opencontainers.image.description="An image to help with ESPHomes documentation development" \
org.opencontainers.image.vendor="ESPHome" \
org.opencontainers.image.licenses="CC BY-NC-SA 4.0" \
org.opencontainers.image.url="https://esphome.io" \
org.opencontainers.image.source="https://github.com/esphome/esphome-docs" \
org.opencontainers.image.documentation="https://github.com/esphome/esphome-docs/blob/current/README.md"

View File

@ -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.3.2
PROJECT_NUMBER = 2024.4.1
# 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

View File

@ -1,5 +1,5 @@
ESPHOME_PATH = ../esphome
ESPHOME_REF = 2024.3.2
ESPHOME_REF = 2024.4.1
.PHONY: html html-strict cleanhtml deploy help live-html Makefile netlify netlify-api api netlify-dependencies svg2png copy-svg2png minify

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 KiB

View File

@ -1 +1 @@
2024.3.2
2024.4.1

View File

@ -16,6 +16,7 @@
<link rel="icon" type="image/png" sizes="16x16" href="/_static/favicon-16x16.png">
<link rel="manifest" href="/_static/site.webmanifest">
<link rel="mask-icon" href="/_static/safari-pinned-tab.svg" color="#646464">
<link rel="me" href="https://fosstodon.org/@esphome">
<meta name="apple-mobile-web-app-title" content="ESPHome">
<meta name="application-name" content="ESPHome">
<meta name="msapplication-TileColor" content="#dfdfdf">

View File

@ -14,7 +14,7 @@ ESPHome 2023.12.0 - 20th December 2023
GT911, components/touchscreen/gt911, esp32_s3_box_3.png
Pylontech Batteries, components/pylontech, pylontech.jpg
HE60R Cover, components/cover/he60r, he60r.jpg
Graphical Display Menu, components/display_menu/graphical_display_menu, graphical_display_menu.jpg
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

222
changelog/2024.4.0.rst Normal file
View File

@ -0,0 +1,222 @@
ESPHome 2024.4.0 - 17th April 2024
==================================
.. seo::
:description: Changelog for ESPHome 2024.4.0.
:image: /_static/changelog-2024.4.0.png
:author: Jesse Hills
:author_twitter: @jesserockz
.. imgtable::
:columns: 4
Template Datetime Time, components/datetime/template, description.svg, dark-invert
SUN-GTIL2 inverter, components/sun_gtil2, sun_1000g2.png
AT581X, components/at581x, at581x.png
JSN-SR04T, components/sensor/jsn_sr04t, jsn-sr04t-v3.jpg
Daikin ARC, components/climate/climate_ir, air-conditioner-ir.svg, dark-invert
HHCCJCY10 (MiFlora Pink), components/sensor/xiaomi_hhccjcy10, xiaomi_hhccjcy10.jpg
TLC5971, components/output/tlc5971, tlc5971.jpg
Dooya, components/remote_transmitter, remote.svg
Time Entities
-------------
ESPHome now has support for ``time`` entities that can be set from the frontend (like Home Assistant). THis allows you to set a timer to execute future automations on device.
ESPHome Dates require Home Assistant 2024.4 or later.
Voice Assistant Audio
---------------------
This release adds support for sending and receiving audio to/from voice assistants via the API. Currently ESPHome sends and receives the Voice Assistant audio bytes
via a UDP socket which can be unreliable and insecure. Beginning with Home Assistant 2024.5, both sides will automatically recognise that they both support API Audio and will
use that route instead. This is more reliable because the ESPHome API uses a TCP socket, so packet order and delivery is guaranteed, and if you use API Encryption,
your audio will also be encrypted in transit.
Release 2024.4.1 - April 23
---------------------------
- [Tuya Climate] Fix compilation error caused by codegen :esphomepr:`6568` by :ghuser:`zry98`
- wifi: fix reconnect issue due to enablement of fast connect :esphomepr:`6598` by :ghuser:`jpeletier`
- Calibrate Beken internal temperature :esphomepr:`6599` by :ghuser:`Mat931`
- fix streaming logs from MQTT for ESP32 devices using TLS :esphomepr:`6605` by :ghuser:`ccutrer`
- Disallow variant/family override for known boards :esphomepr:`6512` by :ghuser:`clydebarrow`
- esp32_ble: Consider ESP_BT_STATUS_DONE a successful state :esphomepr:`6493` by :ghuser:`polyfloyd`
- Fix or filter :esphomepr:`6574` by :ghuser:`swoboda1337`
Full list of changes
--------------------
New Components
^^^^^^^^^^^^^^
- Add sun_gtil2 component (for SUN-1000G2 / SUN-2000G2 grid tie inverters) :esphomepr:`4958` by :ghuser:`Mat931` (new-integration)
- Add support for AT581x component :esphomepr:`6297` by :ghuser:`X-Ryl669` (new-integration)
- Add new Component: Ultrasonic Distance Sensor JSN-SR04T :esphomepr:`6023` by :ghuser:`Mafus1` (new-integration)
- feat: Add Daikin ARC (tested on Daikin ARC472A62) :esphomepr:`6429` by :ghuser:`magicbear` (new-integration)
- add support for Tuya pink version of miflora :esphomepr:`5402` by :ghuser:`fariouche` (new-integration)
- Implemented support for the TLC5971 as an output component :esphomepr:`6494` by :ghuser:`IJIJI` (new-integration)
Breaking Changes
^^^^^^^^^^^^^^^^
- Add support for new modes in Tuya Climate :esphomepr:`5159` by :ghuser:`moriahmorgan` (breaking-change)
- IPv6 string representation follows RFC5952 :esphomepr:`6449` by :ghuser:`HeMan` (breaking-change)
Beta Changes
^^^^^^^^^^^^
- Add dooya remote transmitter test :esphomepr:`6508` by :ghuser:`jesserockz`
- ads1115: remove auto-load and split sensor into platform folder :esphomepr:`5981` by :ghuser:`jesserockz` (new-platform)
- Bump esphome-dashboard to 20240412.0 :esphomepr:`6517` by :ghuser:`jesserockz`
- Fix missing ifdefs in voice assistant :esphomepr:`6520` by :ghuser:`jesserockz`
- Fix project version longer than 30 characters breaking compilation :esphomepr:`6535` by :ghuser:`jesserockz`
- Fix no-release bug on ft6x36 :esphomepr:`6527` by :ghuser:`clydebarrow`
All changes
^^^^^^^^^^^
- Bump docker/login-action from 3.0.0 to 3.1.0 :esphomepr:`6367` by :ghuser:`dependabot[bot]`
- Bump peter-evans/create-pull-request from 6.0.1 to 6.0.2 :esphomepr:`6361` by :ghuser:`dependabot[bot]`
- Bump docker/build-push-action from 5.2.0 to 5.3.0 in /.github/actions/build-image :esphomepr:`6373` by :ghuser:`dependabot[bot]`
- Bump docker/setup-buildx-action from 3.1.0 to 3.2.0 :esphomepr:`6372` by :ghuser:`dependabot[bot]`
- Fix deep_sleep for ESP32-C6 :esphomepr:`6377` by :ghuser:`ferrets6`
- Fix keeloq for IDF 5+ :esphomepr:`6382` by :ghuser:`kbx81`
- Fix Nextion set_component_picture call :esphomepr:`6378` by :ghuser:`edwardtfn`
- Add line_at_angle method to Display component :esphomepr:`6381` by :ghuser:`deisterhold`
- Check generated proto files are as expected if any are modified in PRs :esphomepr:`6254` by :ghuser:`jesserockz`
- ld2420: fix energy mode documentation :esphomepr:`6225` by :ghuser:`andresv`
- Add actions for component tests A, B and C :esphomepr:`6256` by :ghuser:`kbx81`
- Add some components to the new testing framework (V) :esphomepr:`6231` by :ghuser:`kbx81`
- Add some components to the new testing framework (X,Y,Z) :esphomepr:`6233` by :ghuser:`kbx81`
- Add some components to the new testing framework (E) :esphomepr:`6176` by :ghuser:`kbx81`
- Make SPI compile with IDF >= 5.0 :esphomepr:`6383` by :ghuser:`HeMan`
- Fix esp32-camera test yaml :esphomepr:`6398` by :ghuser:`kbx81`
- Bump pytest-asyncio from 0.23.5.post1 to 0.23.6 :esphomepr:`6402` by :ghuser:`dependabot[bot]`
- Bump actions/cache from 4.0.1 to 4.0.2 in /.github/actions/restore-python :esphomepr:`6403` by :ghuser:`dependabot[bot]`
- Bump actions/cache from 4.0.1 to 4.0.2 :esphomepr:`6404` by :ghuser:`dependabot[bot]`
- Bump ESP8266 Arduino versions :esphomepr:`5359` by :ghuser:`HeMan`
- Allow accept/reject delta to be specified. :esphomepr:`5060` by :ghuser:`cvwillegen`
- Allow setting htop for ledc :esphomepr:`6340` by :ghuser:`Gagootron`
- sm2135: add separate_modes option to support different chip variants :esphomepr:`6152` by :ghuser:`jasperro`
- AHT10: fix temperature-only operation; add warning/error messages :esphomepr:`6405` by :ghuser:`clydebarrow`
- Add support for new modes in Tuya Climate :esphomepr:`5159` by :ghuser:`moriahmorgan` (breaking-change)
- Add sun_gtil2 component (for SUN-1000G2 / SUN-2000G2 grid tie inverters) :esphomepr:`4958` by :ghuser:`Mat931` (new-integration)
- SPI: Make some validation failures give more useful messages. :esphomepr:`6413` by :ghuser:`clydebarrow`
- Bump aioesphomeapi from 23.1.1 to 23.2.0 :esphomepr:`6412` by :ghuser:`dependabot[bot]`
- Add check for use of GPIOXX in config :esphomepr:`6419` by :ghuser:`clydebarrow`
- WireGuard for esp8266 :esphomepr:`6365` by :ghuser:`droscy`
- setup.cfg: drop duplicate, underintended trove classifier :esphomepr:`6421` by :ghuser:`mweinelt`
- Store preferences in disk file on host platform :esphomepr:`6428` by :ghuser:`clydebarrow`
- Add support for AT581x component :esphomepr:`6297` by :ghuser:`X-Ryl669` (new-integration)
- Add some components to the new testing framework (F) :esphomepr:`6177` by :ghuser:`kbx81`
- Add get_contrast() and get_brightness() to SSD1306 class to get protected variables :esphomepr:`6435` by :ghuser:`benediktkr`
- Add new Component: Ultrasonic Distance Sensor JSN-SR04T :esphomepr:`6023` by :ghuser:`Mafus1` (new-integration)
- Add some components to the new testing framework (G) :esphomepr:`6178` by :ghuser:`kbx81`
- Add some components to the new testing framework (K) :esphomepr:`6186` by :ghuser:`kbx81`
- Add some components to the new testing framework (N) :esphomepr:`6210` by :ghuser:`kbx81`
- Add some components to the new testing framework (Q) :esphomepr:`6218` by :ghuser:`kbx81`
- Add some components to the new testing framework (U) :esphomepr:`6230` by :ghuser:`kbx81`
- Fix spacing in new test yaml :esphomepr:`6441` by :ghuser:`kbx81`
- Add some components to the new testing framework (W) :esphomepr:`6232` by :ghuser:`kbx81`
- Add some components to the new testing framework (L) :esphomepr:`6195` by :ghuser:`kbx81`
- feat: Add Daikin ARC (tested on Daikin ARC472A62) :esphomepr:`6429` by :ghuser:`magicbear` (new-integration)
- Disable truthy yamllint rule :esphomepr:`6442` by :ghuser:`jesserockz`
- Add get_size method to QR Code header :esphomepr:`6430` by :ghuser:`deisterhold`
- Minor change to support sht85 sensor :esphomepr:`6415` by :ghuser:`mrtoy-me`
- IPv6 string representation follows RFC5952 :esphomepr:`6449` by :ghuser:`HeMan` (breaking-change)
- Bump actions/setup-python from 5.0.0 to 5.1.0 :esphomepr:`6437` by :ghuser:`dependabot[bot]`
- Bump actions/setup-python from 5.0.0 to 5.1.0 in /.github/actions/restore-python :esphomepr:`6438` by :ghuser:`dependabot[bot]`
- Optimize QMC5883L: Read registers only for enabled sensors :esphomepr:`6458` by :ghuser:`tronikos`
- minor refactor to allow commit hash as ref value. :esphomepr:`6446` by :ghuser:`LelandSindt`
- TMP117 fix polling period config :esphomepr:`6452` by :ghuser:`mrtoy-me`
- Bump Arduino Pico Framework to 3.7.2 and Platform to 1.12.0 :esphomepr:`6386` by :ghuser:`HeMan`
- Display menu: Allow "left" key to exit current menu if not editing :esphomepr:`6460` by :ghuser:`jesserockz`
- Fix NOLINT on inclusive-language check :esphomepr:`6464` by :ghuser:`jesserockz`
- Add yamllint to dev requirements :esphomepr:`6466` by :ghuser:`jesserockz`
- Add temperature for QMC5883L :esphomepr:`6456` by :ghuser:`tronikos`
- web_server: Return early if no clients connected :esphomepr:`6467` by :ghuser:`jesserockz`
- ESP32 Arduino WiFi: misc bug fixes :esphomepr:`6470` by :ghuser:`paravoid`
- Replace std::regex with sscanf calls :esphomepr:`6468` by :ghuser:`jesserockz`
- Include "Failed" status in config log. :esphomepr:`6482` by :ghuser:`clydebarrow`
- Fix Microphone IsCapturingCondition :esphomepr:`6490` by :ghuser:`RaymiiOrg`
- Remove misleading tag/line in messages :esphomepr:`6495` by :ghuser:`clydebarrow`
- Send/Receive Voice Assistant audio via API :esphomepr:`6471` by :ghuser:`jesserockz`
- Datetime date initial value fix :esphomepr:`6483` by :ghuser:`RFDarter`
- If the loop() took more than the required time, don't delay further :esphomepr:`6496` by :ghuser:`clydebarrow`
- Bump LibreTiny version to 1.5.1 :esphomepr:`6500` by :ghuser:`kuba2k2`
- Internal temperature: Support Beken platform :esphomepr:`6491` by :ghuser:`Mat931`
- Bump docker/setup-buildx-action from 3.2.0 to 3.3.0 :esphomepr:`6502` by :ghuser:`dependabot[bot]`
- add support for Tuya pink version of miflora :esphomepr:`5402` by :ghuser:`fariouche` (new-integration)
- Add MAC address to WiFi config reply :esphomepr:`6489` by :ghuser:`cvwillegen`
- Adds i2c timeout config :esphomepr:`4614` by :ghuser:`tracestep`
- Add ABB-Welcome / Busch-Welcome Door Intercom Protocol :esphomepr:`4689` by :ghuser:`Mat931`
- Add support for time entities :esphomepr:`6399` by :ghuser:`jesserockz`
- Fix Match by IRK :esphomepr:`6499` by :ghuser:`MRemy2`
- Add rmt_channel to remote_transmitter and remote_receiver :esphomepr:`6497` by :ghuser:`jesserockz` (new-integration)
- Rework tlc5947 to remove AUTO_LOAD :esphomepr:`6503` by :ghuser:`jesserockz`
- UART: ignore require_tx/rx if not a native uart implementation :esphomepr:`6504` by :ghuser:`jesserockz`
- esp32_rmt_led_strip bugfixes :esphomepr:`6506` by :ghuser:`Mat931`
- Implemented support for the TLC5971 as an output component :esphomepr:`6494` by :ghuser:`IJIJI` (new-integration)
- Add Dooya protocol to remote_base :esphomepr:`6488` by :ghuser:`bukureckid`
- Only give error for connected sensors at startup :esphomepr:`6474` by :ghuser:`leejoow`
- Webserver float to string fix :esphomepr:`6507` by :ghuser:`RFDarter`
- Add dooya remote transmitter test :esphomepr:`6508` by :ghuser:`jesserockz`
- ads1115: remove auto-load and split sensor into platform folder :esphomepr:`5981` by :ghuser:`jesserockz` (new-platform)
- Bump esphome-dashboard to 20240412.0 :esphomepr:`6517` by :ghuser:`jesserockz`
- Fix missing ifdefs in voice assistant :esphomepr:`6520` by :ghuser:`jesserockz`
- Fix project version longer than 30 characters breaking compilation :esphomepr:`6535` by :ghuser:`jesserockz`
- Fix no-release bug on ft6x36 :esphomepr:`6527` by :ghuser:`clydebarrow`
Past Changelogs
---------------
- :doc:`2024.3.0`
- :doc:`2024.2.0`
- :doc:`2023.12.0`
- :doc:`2023.11.0`
- :doc:`2023.10.0`
- :doc:`2023.9.0`
- :doc:`2023.8.0`
- :doc:`2023.7.0`
- :doc:`2023.6.0`
- :doc:`2023.5.0`
- :doc:`2023.4.0`
- :doc:`2023.3.0`
- :doc:`2023.2.0`
- :doc:`2022.12.0`
- :doc:`2022.11.0`
- :doc:`2022.10.0`
- :doc:`2022.9.0`
- :doc:`2022.8.0`
- :doc:`2022.6.0`
- :doc:`2022.5.0`
- :doc:`2022.4.0`
- :doc:`2022.3.0`
- :doc:`2022.2.0`
- :doc:`2022.1.0`
- :doc:`2021.12.0`
- :doc:`2021.11.0`
- :doc:`2021.10.0`
- :doc:`2021.9.0`
- :doc:`2021.8.0`
- :doc:`v1.20.0`
- :doc:`v1.19.0`
- :doc:`v1.18.0`
- :doc:`v1.17.0`
- :doc:`v1.16.0`
- :doc:`v1.15.0`
- :doc:`v1.14.0`
- :doc:`v1.13.0`
- :doc:`v1.12.0`
- :doc:`v1.11.0`
- :doc:`v1.10.0`
- :doc:`v1.9.0`
- :doc:`v1.8.0`
- :doc:`v1.7.0`

View File

@ -2,7 +2,7 @@ Changelog
=========
.. redirect::
:url: /changelog/2024.3.0.html
:url: /changelog/2024.4.0.html
.. toctree::
:glob:

View File

@ -30,7 +30,7 @@ awesome things with DIY hardware!
The features I'm particularly excited about are:
* :ref:`esphomeflasher <esphome-flasher>` - Experiencing problems flashing esphomelib firmwares using esphomeyaml?
* ``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
@ -76,7 +76,7 @@ New Features
- esphomelib now has a new tool: `esphomeflasher <https://github.com/esphome/esphome-flasher>`__ to simplify
flashing on Windows/MacOS machines **without having to install esphomeyaml**. So if esphomeyaml for some reason
can't find your USB port, you now can use the esphomeflasher app. See :ref:`esphome-flasher`.
can't find your USB port, you now can use the esphomeflasher app. See ``esphomeflasher``.
- ESP8266s now save the states of lights/switches/... internally and restores them on boot.
Additionally, esphomelib can now operate in fully offline mode if your WiFi network goes down

194
components/at581x.rst Normal file
View File

@ -0,0 +1,194 @@
AirTouch AT581x Radar
=====================
.. seo::
:description: Instructions for setting up AirTouch AT581x Radar
:image: at581x.png
:keywords: radar
The `AirTouch AT581x radar <https://en.airtouching.com/product/32.html>`__
(aka ``AT581x``) is a familly of 5.8GHz radar which can be used for human presence detection. It can detect tiny movements
and compared to a PIR sensor **it can detect presence continuously**. This can be useful, for example, to turn
the lights on when you enter a room, keep them on as long as you are there (without waving your hands at the
sensor) and turn them off almost immediately after you leave the room.
They are ultra-low power (as low as 40µA of current consumption) and are extremely simple to use, yet can be setup by I2C.
It's installed in many low cost appliance, like the ESP32S3-BOX-3, and can be found by many different manufacturer or reference,
like the MoreSense MS58-3909S68U4.
It is possible to use this sensor with only a single GPIO pin; however, if you wish to change its settings,
a :doc:`/components/i2c` component (and its requisite GPIO pins) is required in your device's configuration.
.. figure:: ../images/at581x.png
:align: center
:width: 75%
AirTouch AT581x Radar / presence detection sensor
.. code-block:: yaml
# Example configuration entry
at581x:
id: "Radar"
i2c_id: bus_a
binary_sensor:
- platform: gpio
pin: GPIO21
name: "Radar motion"
switch:
# Switch to turn on/off RF emission
- platform: at581x
at581x_id: "Radar"
name: "Enable Radar"
.. _at581x-component:
Component/Hub
-------------
You need to have the hub component (``at581x:`` entry) defined to be able to change the sensor's
settings, get it listed as an motion entity or being able to turn on/off the radio frequency emmission.
A :doc:`/components/binary_sensor/gpio` alone could be sufficient if you only want
to determine presence/occupancy. When you define ``at581x:`` you'll need to have a ``i2c:`` entry in
your configuration with both the SDA and SCL pins defined.
Multiple instances of this component may be defined if multiple :doc:`/components/i2c` components are available:
.. code-block:: yaml
at581x:
- id: mmWave_1
i2c_id: bus_a
address: 0x28
- id: mmWave_2
i2c_id: bus_a
address: 0x29
...
Configuration variables:
************************
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. Necessary if you want
to define multiple instances of this component.
- **i2c_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :doc:`/components/i2c` if you want
to use multiple I2C buses.
.. _at581x-binary_sensor:
Binary Sensor
-------------
The state of the radar detection is available via its GPIO pin. It's required to use a GPIO binary sensor to monitor the motion status
.. code-block:: yaml
binary_sensor:
- platform: gpio
name: "Human in front"
pin: GPIO21
Configuration variables:
************************
- Refer to other options from :ref:`Binary Sensor <config-binary_sensor>` and :doc:`GPIO Binary Sensor </components/binary_sensor/gpio>`.
.. _at581x-switch:
Switch
------
:ref:`Switch components <config-switch>` are used to enable/disable radio frequency hardware.
.. code-block:: yaml
switch:
- platform: at581x
at581x_id: Radar
name: "Enable Radar"
Configuration variables:
************************
- **at581x_id** (*Optional*, :ref:`config-id`): The ID of the AT581x component defined above.
Required when multiple instances of the ``at581x`` component are defined.
- All other options from :ref:`Switch <config-switch>`.
.. _at581x-actions:
Actions
-------
.. _at581x-action_settings:
``at581x.settings`` Action
**************************
.. warning::
The hardware frontend reset option is only required to reset the frontend in case it is struck, before sending the
new configuration. However, a frontend reset is always performed after changing the settings.
The radar has several settings which can be changed. These settings are not saved in non-volatile memory
and need to be set on each boot.
The settings action allows changing of any number of the radar's internal parameters/settings. With this
action, any unspecified parameters will remain unchanged.
.. code-block:: yaml
on_...:
- at581x.settings:
id: "Waveradar"
hw_frontend_reset: false
frequency: 5800MHz
sensing_distance: 200 # 0-1023
poweron_selfcheck_time: 2000ms
protect_time: 1s
trigger_base: 500ms
trigger_keep: 10s
stage_gain: 3 # 0-12 the higher the value the smaller the gain
power_consumption: 70µA
Configuration variables:
````````````````````````
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID of the sensor on which settings should be
changed. If only one radar is defined, this is optional.
- **hw_frontend_reset** (*Optional*, boolean): If set to true, a reset of the analog frontend will be performed before
changing other options. Ignored if not set or set to ``false``. Upon applying the settings a frontend reset
will be performed anyway, this is only useful if the sensor is not answering or locked up.
- **frequency** (*Optional*, int): Any of the possible frequencies (5696, 5715, 5730, 5748, 5765, 5784, 5800, 5819, 5836, 5851, 5869, 5888) in MHz.
- **sensing_distance** (*Optional*, int): A unitless number, in range 0-1023, specifying the maximum distance to detect motion
- **poweron_selfcheck_time** (*Optional*, int): The delay to perform self check and calibration on power on. Recommanded not to change this
- **protect_time** (*Optional*, int): The delay after an end-of-trigger event where the detection will not trigger anymore. Max 65535ms
- **trigger_base** (*Optional*, int): The delay while a detection must be active to change the state of the sensor. Max 65535ms
- **trigger_keep** (*Optional*, int): The delay that the output will stay high after a detection event. This is usually what you want to change.
- **stage_gain** (*Optional*, int): The analog gain to use for threshold test. Any value in range 0-12, with 12 being the lowest gain and 0 the highest
- **power_consumption** (*Optional*, int): Any of the possible power profile (48, 56, 63, 70, 77, 91, 105, 115, 40, 44, 47, 51, 54, 61, 68, 78) in µA
``at581x.reset`` Action
***********************
Restart the sensor.
.. code-block:: yaml
on_...:
at581x.reset:
Configuration variables:
````````````````````````
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID of the AT581x component. Useful when multiple instances of this component are defined.
See Also
--------
- :ref:`I2C bus <i2c>`
- :ref:`Binary Sensor <config-binary_sensor>`
- :doc:`GPIO Binary Sensor </components/binary_sensor/gpio>`
- :ref:`config-id`
- :ghedit:`Edit`

View File

@ -34,7 +34,6 @@ Configuration variables:
- **entity_id** (**Required**, string): The entity ID to import from Home Assistant.
- **attribute** (*Optional*, string): The name of the state attribute to import from the
specified entity. The entity state is used when this option is omitted.
Requires Home Assistant 2021.6 or newer.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- All other options from :ref:`Binary Sensor <config-binary_sensor>`.

View File

@ -66,12 +66,12 @@ Advanced options:
a ``name`` will implicitly set this to true.
- **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend,
(usually Home Assistant) without the user manually enabling it (via the Home Assistant UI).
Requires Home Assistant 2021.9 or newer. Defaults to ``false``.
Defaults to ``false``.
- **publish_initial_state** (*Optional*, boolean): If true, then the sensor will publish its initial state at boot or when
HA first connects, depending on the platform. This means that any applicable triggers will be run. Defaults to ``false``.
- **entity_category** (*Optional*, string): The category of the entity.
See https://developers.home-assistant.io/docs/core/entity/#generic-properties
for a list of available options. Requires Home Assistant 2021.11 or newer.
for a list of available options.
Set to ``""`` to remove the default entity category.
- If MQTT enabled, all other options from :ref:`MQTT Component <config-mqtt-component>`.

View File

@ -32,7 +32,7 @@ our `Bluetooth Proxy installer <https://esphome.github.io/bluetooth-proxies/>`__
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.
Not all devices are supported and ESPHome does not decode or keep a list. To find out if your device is supported,
please search for it in the `Home Assistant Integrations <https://www.home-assistant.io/integrations/>`__ list.
@ -43,15 +43,11 @@ Configuration:
bluetooth_proxy:
- **active** (*Optional*, boolean): Enables proxying active connections. Defaults to ``false``. Requires Home Assistant 2022.10 or later.
- **active** (*Optional*, boolean): Enables proxying active connections. Defaults to ``false``.
- **cache_services** (*Optional*, boolean): Enables caching GATT services in NVS flash storage which significantly speeds up active connections. Defaults to ``true`` when using the ESP-IDF framework.
The Bluetooth proxy depends on :doc:`esp32_ble_tracker` so make sure to add that to your configuration.
.. note::
Bluetooth proxy requires Home Assistant 2022.9 or later. ESPHome 2022.12.0 and Home Assistant 2022.12.6 or later is recommended.
Improving reception performance
-------------------------------

View File

@ -27,6 +27,8 @@ submit a feature request (see FAQ).
+---------------------------------------+---------------------+----------------------+
| Daikin | ``daikin`` | yes |
+---------------------------------------+---------------------+----------------------+
| :ref:`Daikin ARC<daikin_arc>` | ``daikin_arc`` | yes |
+---------------------------------------+---------------------+----------------------+
| :ref:`Daikin BRC<daikin_brc>` | ``daikin_brc`` | yes |
+---------------------------------------+---------------------+----------------------+
| :ref:`Delonghi<delonghi_ir>` | ``delonghi`` | yes |
@ -222,6 +224,21 @@ Configuration variables:
header_high: 3265us # AC Units from LG in Brazil, for example use these timings
header_low: 9856us
.. _daikin_arc:
``daikin_arc`` Climate
-------------------------
The Daikin ARC remotes are used by the japanese model of Daikin.
.. code-block:: yaml
# Example configuration entry
climate:
- platform: daikin_arc
name: "AC"
sensor: room_temperature
.. _daikin_brc:
``daikin_brc`` Climate

View File

@ -80,10 +80,10 @@ Advanced options:
a ``name`` will implicitly set this to true.
- **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend,
(usually Home Assistant) without the user manually enabling it (via the Home Assistant UI).
Requires Home Assistant 2021.9 or newer. Defaults to ``false``.
Defaults to ``false``.
- **entity_category** (*Optional*, string): The category of the entity.
See https://developers.home-assistant.io/docs/core/entity/#generic-properties
for a list of available options. Requires Home Assistant 2021.11 or newer.
for a list of available options.
Set to ``""`` to remove the default entity category.
MQTT options:

View File

@ -39,8 +39,10 @@ Based on this, you can create the climate device as follows:
switch_datapoint: 1
target_temperature_datapoint: 3
current_temperature_datapoint: 4
eco_datapoint: 7
eco_temperature: 20 °C
preset:
eco:
datapoint: 8
temperature: 28
Configuration variables:
------------------------
@ -50,22 +52,46 @@ Configuration variables:
- **supports_heat** (*Optional*, boolean): Specifies if the device has a heating mode. Defaults to ``true``.
- **supports_cool** (*Optional*, boolean): Specifies if the device has a cooling mode. Defaults to ``false``.
- **switch_datapoint** (**Required**, int): The datapoint id number of the climate switch (device on/off).
- **active_state_datapoint** (*Optional*, int): The datapoint id number of the active state - :ref:`see below <active_state_detection>`.
- **active_state_heating_value** (*Optional*, int): The active state datapoint value the device reports when heating. Defaults to ``1`` - :ref:`see below <active_state_detection>`.
- **active_state_cooling_value** (*Optional*, int): The active state datapoint value the device reports when cooling - :ref:`see below <active_state_detection>`.
- **active_state** (*Optional*): Configuration for the Active State Configuration.
- **datapoint** (**Required**, int): The datapoint id number of the active state - :ref:`see below <active_state_detection>`.
- **heating_value** (*Optional*, int): The active state datapoint value the device reports when heating. Defaults to ``1`` - :ref:`see below <active_state_detection>`.
- **cooling_value** (*Optional*, int): The active state datapoint value the device reports when cooling - :ref:`see below <active_state_detection>`.
- **drying_value** (*Optional*, int): The active state datapoint value the device reports when in drying mode.
- **fanonly_value** (*Optional*, int): The active state datapoint value the device reports when in Fan Only mode.
- **preset** (*Optional*): Configuration for presets.
- **eco** (*Optional*): Configuration for Eco preset.
- **datapoint** (**Required**, int): The datapoint id number of the Eco action.
- **temperature** (*Optional*, int): Temperature setpoint for Eco preset.
- **sleep** (*Optional*): Configuration for Sleep preset
- **datapoint** (**Required**, int): The Datapoint id number of the Sleep Action
- **swing_mode** (*Optional*): Configuration for the swing (oscillation) modes.
- **vertical_datapoint** (*Optional*, int): The datapoint id number of the vertical swing action.
- **horizontal_datapoint** (*Optional*, int): The datapoint id number of the horizontal swing action.
- **fan_mode** (*Optional*): Configuration for fan modes/fan speeds.
- **datapoint** (**Required**, int): The datapoint id number of the Fan value state.
- **auto_value** (*Optional*, int): The datapoint value the device reports when the fan is on ``auto`` speed.
- **low_value** (*Optional*, int): The datapoint value the device reports when the fan is on ``low`` speed.
- **medium_value** (*Optional*, int): The datapoint value the device reports when the fan is on ``medium`` speed.
- **middle_value** (*Optional*, int): The datapoint value the device reports when the fan is on ``middle`` speed. (May set to device's ``high`` value if you have a ``Turbo`` option).
- **high_value** (*Optional*, int): The datapoint value the device reports when the fan is on ``high`` speed. (Sometimes called ``Turbo``).
- **heating_state_pin** (*Optional*, :ref:`config-pin`): The input pin indicating that the device is heating - :ref:`see below <active_state_detection>`. Only used if **active_state_datapoint** is not configured.
- **cooling_state_pin** (*Optional*, :ref:`config-pin`): The input pin indicating that the device is cooling - :ref:`see below <active_state_detection>`. Only used if **active_state_datapoint** is not configured.
- **target_temperature_datapoint** (**Required**, int): The datapoint id number of the target temperature.
- **current_temperature_datapoint** (**Required**, int): The datapoint id number of the current temperature.
- **temperature_multiplier** (*Optional*, float): A multiplier to modify the incoming and outgoing temperature values - :ref:`see below <temperature-multiplier>`.
- **eco_datapoint** (*Optional*, int): The datapoint id number of the eco mode state.
- **eco_temperature** (*Optional*, float): The target temperature the controller uses while the eco mode is active.
- **reports_fahrenheit** (*Optional*, boolean): Set to ``true`` if the device reports temperatures in Fahrenheit. ESPHome expects all climate temperatures to be in Celcius, otherwise unexpected conversions will take place when it is published to Home Assistant. Defaults to ``false``.
If the device has different multipliers for current and target temperatures, **temperature_multiplier** can be replaced with both of:
- **current_temperature_multiplier** (*Optional*, float): A multiplier to modify the current temperature value.
- **target_temperature_multiplier** (*Optional*, float): A multiplier to modify the target temperature value.
- **current_temperature_multiplier** (*Optional*, float): A multiplier to modify the current temperature value.
- **target_temperature_multiplier** (*Optional*, float): A multiplier to modify the target temperature value.
- All other options from :ref:`Climate <config-climate>`.

View File

@ -46,10 +46,10 @@ Advanced options:
a ``name`` will implicitly set this to true.
- **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend,
(usually Home Assistant) without the user manually enabling it (via the Home Assistant UI).
Requires Home Assistant 2021.9 or newer. Defaults to ``false``.
Defaults to ``false``.
- **entity_category** (*Optional*, string): The category of the entity.
See https://developers.home-assistant.io/docs/core/entity/#generic-properties
for a list of available options. Requires Home Assistant 2021.11 or newer.
for a list of available options.
Set to ``""`` to remove the default entity category.
MQTT options:

View File

@ -42,10 +42,10 @@ Configuration variables:
a ``name`` will implicitly set this to true.
- **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend,
(usually Home Assistant) without the user manually enabling it (via the Home Assistant UI).
Requires Home Assistant 2021.9 or newer. Defaults to ``false``.
Defaults to ``false``.
- **entity_category** (*Optional*, string): The category of the entity.
See https://developers.home-assistant.io/docs/core/entity/#generic-properties
for a list of available options. Requires Home Assistant 2021.11 or newer.
for a list of available options.
Set to ``""`` to remove the default entity category.
MQTT Options:
@ -83,6 +83,9 @@ you can get the value as a ESPTime object from the trigger with ``x``.
Configuration variables: See :ref:`Automation <automation>`.
Date Automation
---------------
.. _datetime-date_set_action:
``datetime.date.set`` Action
@ -151,12 +154,85 @@ advanced stuff (see the full API Reference for more info).
// For example, create a custom log message when a value is received:
ESP_LOGI("main", "Value of my datetime: %04d-%02d-%02d", id(my_date).year, id(my_date).month, id(my_date).day);
Time Automation
---------------
.. _datetime-time_set_action:
``datetime.time.set`` Action
****************************
This is an :ref:`Action <config-action>` for setting a datetime time state.
The ``time`` provided can be in one of 3 formats:
.. code-block:: yaml
# String time
- datetime.time.set:
id: my_time
time: "12:34:56"
# Individual time parts
- datetime.time.set:
id: my_time
time:
hour: 12
minute: 34
second: 56
# Using a lambda
- datetime.time.set:
id: my_time
time: !lambda |-
// Return an ESPTime struct
return {.second: 56, .minute: 34, .hour: 12};
Configuration variables:
- **id** (**Required**, :ref:`config-id`): The ID of the datetime to set.
- **time** (**Required**, string, time parts, :ref:`templatable <config-templatable>`):
The value to set the datetime to.
.. _datetime-time-lambda_calls:
lambda calls
************
From :ref:`lambdas <config-lambda>`, you can call several methods on all datetimes to do some
advanced stuff (see the full API Reference for more info).
- ``.make_call()``: Make a call for updating the datetime value.
.. code-block:: cpp
// Within lambda, set the time to 12:34:56
auto call = id(my_time).make_call();
call.set_date("12:34:56");
call.perform();
Check the API reference for information on the methods that are available for
the ``TimeCall`` object.
- ``.hour``: Retrieve the current hour of the ``time``. It will be ``0`` if no value has been set.
- ``.minute``: Retrieve the current minute of the ``time``. It will be ``0`` if no value has been set.
- ``.second``: Retrieve the current second of the ``time``. It will be ``0`` if no value has been set.
- ``.state_as_esptime()``: Retrieve the current value of the datetime as a :apistruct:`ESPTime` object.
.. code-block:: cpp
// For example, create a custom log message when a value is received:
ESP_LOGI("main", "Value of my datetime: %0d:%02d:%02d", id(my_time).hour, id(my_time).minute, id(my_time).second);
See Also
--------
- :apiref:`DateTimeBase <datetime/datetime_base.h>`
- :apiref:`DateEntity <datetime/date_entity.h>`
- :apiref:`DateCall <datetime/date_entity.h>`
- :apiref:`TimeeEntity <datetime/time_entity.h>`
- :apiref:`TimeCall <datetime/time_entity.h>`
- :ghedit:`Edit`
.. toctree::

View File

@ -10,8 +10,8 @@ using :ref:`lambdas <config-lambda>`.
.. code-block:: yaml
# Example configuration entry
datetime:
# Example Date
- platform: template
id: my_date
type: date
@ -20,10 +20,19 @@ using :ref:`lambdas <config-lambda>`.
initial_value: "2024-01-30"
restore_value: true
# Example Time
- platform: template
id: my_time
type: time
name: Pick a Time
optimistic: yes
initial_value: "12:34:56"
restore_value: true
Configuration variables:
------------------------
- **type** (*Required*, enum): The type of the datetime. Can only be ``date``.
- **type** (*Required*, enum): The type of the datetime. Can be one of ``date`` or ``time``.
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`):
Lambda to be evaluated every update interval to get the current value of the datetime.
- **set_action** (*Optional*, :ref:`Action <config-action>`): The action that should
@ -39,15 +48,29 @@ Configuration variables:
- **initial_value** (*Optional*, string): The value to set the state to on setup if not
restored with ``restore_value``. Can be one of:
- A string in the format ``%Y-%m-%d``, eg: ``"2023-12-04"``.
- An object including ``year``, ``month``, ``day``.
- For ``type: date``:
.. code-block:: yaml
- A string in the format ``%Y-%m-%d`` , eg: ``"2023-12-04"``.
- An object including ``year``, ``month``, ``day``.
initial_value:
year: 2023
month: 12
day: 4
.. code-block:: yaml
initial_value:
year: 2023
month: 12
day: 4
- For ``type: time``:
- A string in the format ``%H:%M:%S`` , eg: ``"12:34:56"``.
- An object including ``hour``, ``minute``, ``second``.
.. code-block:: yaml
initial_value:
hour: 12
minute: 34
second: 56
- All other options from :ref:`Datetime <config-datetime>`.

Binary file not shown.

After

Width:  |  Height:  |  Size: 547 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

View File

@ -45,6 +45,9 @@ this behavior by setting ``auto_clear_enabled: false``.
In the lambda, you can write code like in any :ref:`lambda <config-lambda>` in ESPHome. Display
lambdas are additionally passed a variable called ``it`` which represents the rendering engine object.
.. figure:: images/display_rendering_line.png
:align: center
.. code-block:: yaml
display:
@ -74,8 +77,10 @@ the rendering engine is always first specify the ``x`` coordinate and then the `
Basic Shapes
------------
Now that you know a bit more about ESPHome's coordinate system, let's draw some basic shapes like lines, rectangles
and circles:
Now that you know a bit more about ESPHome's coordinate system, let's draw some basic shapes like lines, rectangles, circles or even polygons:
.. figure:: images/display_rendering_shapes.png
:align: center
.. code-block:: yaml
@ -85,27 +90,27 @@ and circles:
lambda: |-
// Draw a line from [0,0] to [100,50]
it.line(0, 0, 100, 50);
// Draw the outline of a rectangle with the top left at [50,60], a width of 30 and a height of 42
it.rectangle(50, 60, 30, 42);
// Draw the same rectangle, but this time filled.
it.filled_rectangle(50, 60, 30, 42);
// Draw the outline of a rectangle with the top left at [5,20], a width of 30 and a height of 42
it.rectangle(5, 20, 30, 42);
// Draw the same rectangle a few pixels apart, but this time filled
it.filled_rectangle(40, 40, 30, 42);
// Circles! Let's draw one with the center at [25,25] and a radius of 10
it.circle(25, 25, 10);
// Circles! Let's draw one with the center at [20,40] and a radius of 10
it.circle(20, 40, 10);
// ... and the same thing filled again
it.filled_circle(25, 25, 10);
it.filled_circle(20, 75, 10);
// Triangles... Let's draw the outline of a triangle from the [x,y] coordinates of its three points
// [25,5], [5,25], [50,50]
it.triangle(25, 5, 5, 25, 50, 50);
// [25,5], [100,5], [80,25]
it.triangle(25, 5, 100, 5, 80, 25);
// and a filled triangle !
it.filled_triangle(125, 5, 105, 25, 150, 50);
it.filled_triangle(115, 5, 95, 25, 125, 70);
// Regular Polygons? Let's draw the outline of a pointy-topped hexagon inscribed in a circle
// centered on [x1=100,y1=100] with a radius of 50
it.regular_polygon(100, 100, 50, EDGES_HEXAGON);
// and a filled flat-topped octagon!
it.filled_regular_polygon(200, 200, 50, EDGES_OCTAGON, VARIATION_FLAT_TOP);
// Regular Polygons? Let's draw a filled, pointy-topped hexagon inscribed in a circle
// centered on [170,45] with a radius of 20
it.filled_regular_polygon(170, 45, 20, EDGES_HEXAGON);
// and the outline of flat-topped octagon around it!
it.regular_polygon(170, 45, 40, EDGES_OCTAGON, VARIATION_FLAT_TOP);
// Need to rotate the polygon, or retrieve the coordinates of its vertices? Check the API!
All the above methods can optionally also be called with an argument at the end which specifies in which
@ -117,33 +122,35 @@ color to draw. For monochrome displays, only ``COLOR_ON`` (the default if color
- platform: ...
# ...
lambda: |-
// Turn the whole display on.
// Turn the whole display on
it.fill(COLOR_ON);
// Turn the whole display off.
// Turn the whole display off
it.fill(COLOR_OFF);
// Turn a single pixel off at [50,60]
it.draw_pixel_at(50, 60, COLOR_OFF);
// Turn off a whole display portion.
it.rectangle(50, 50, 30, 42, COLOR_OFF);
For color displays (e.g. TFT displays), you can use the Color class.
.. figure:: images/display_rendering_colors.png
:align: center
.. code-block:: yaml
display:
- platform: ...
# ...
lambda: |-
auto black = Color(0, 0, 0);
auto red = Color(255, 0, 0);
auto green = Color(0, 255, 0);
auto blue = Color(0, 0, 255);
auto white = Color(255, 255, 255);
it.rectangle(20, 50, 30, 30, white);
it.rectangle(25, 55, 30, 30, red);
it.rectangle(30, 60, 30, 30, green);
it.rectangle(35, 65, 30, 30, blue);
it.filled_circle(20, 32, 15, black);
it.filled_circle(40, 32, 15, red);
it.filled_circle(60, 32, 15, green);
it.filled_circle(80, 32, 15, blue);
it.filled_circle(100, 32, 15, white);
Additionally, you have access to two helper methods which will fetch the width and height of the display:
@ -156,6 +163,8 @@ Additionally, you have access to two helper methods which will fetch the width a
// Draw a circle in the middle of the display
it.filled_circle(it.get_width() / 2, it.get_height() / 2, 20);
// Turn off bottom half of the screen
it.filled_rectangle(0, it.get_height()/2, it.get_width(), it.get_height()/2, COLOR_OFF);
You can view the full API documentation for the rendering engine in the "API Reference" in the See Also section.
@ -218,6 +227,10 @@ In case of fonts rendered at higher bit depths, the background color has to be s
// Syntax is always: it.print(<x>, <y>, <font>, [color=COLOR_ON], [align], <text>, [color=COLOR_OFF]);
it.print(0, 0, id(my_font_with_icons), COLOR_ON, TextAlign::CENTER, "Just\U000f05d4here. Already\U000F02D1this.", COLOR_OFF);
.. figure:: images/display_rendering_text.png
:align: center
.. _display-printf:
Formatted Text
@ -457,13 +470,8 @@ memory at the time the sensor updates and will be lost when the device reboots.
Examples:
.. figure:: images/graph_screen.png
.. figure:: images/display_rendering_graph.png
:align: center
:width: 60.0%
.. figure:: images/graph_dualtrace.png
:align: center
:width: 60.0%
Graph component with options for grids, border and line-types.
@ -602,6 +610,12 @@ To draw the QR-code, call the ``it.qr_code`` function from your render lambda:
// Draw the QR-code at position [x=50,y=0] with white color and a 2x scale
it.qr_code(50, 0, id(homepage_qr), Color(255,255,255), 2);
// Draw the QR-code in the center of the screen with white color and a 2x scale
auto size = id(homepage_qr).get_size() * 2; // Multiply by scale
auto x = (it.get_width() / 2) - (size / 2);
auto y = (it.get_height() / 2) - (size / 2);
it.qr_code(x, y, id(homepage_qr), Color(255,255,255), 2);
.. _display-image:

View File

@ -12,7 +12,7 @@ on graphical displays. This offers the user an interactive method to display
labels, control entities like ``switch``, ``select``, ``number`` available locally on the
ESPHome node, without the requirement of a network connection.
.. figure:: images/graphical_display_menu.jpg
.. figure:: images/graphical_display_menu.png
:align: center
:width: 60.0%

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -37,10 +37,10 @@ Configuration variables:
a ``name`` will implicitly set this to true.
- **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend,
(usually Home Assistant) without the user manually enabling it (via the Home Assistant UI).
Requires Home Assistant 2021.9 or newer. Defaults to ``false``.
Defaults to ``false``.
- **entity_category** (*Optional*, string): The category of the entity.
See https://developers.home-assistant.io/docs/core/entity/#generic-properties
for a list of available options. Requires Home Assistant 2021.11 or newer.
for a list of available options.
Set to ``""`` to remove the default entity category.
Connection Options:
@ -179,7 +179,7 @@ Configuration for Ai-Thinker Camera
.. warning::
GPIO16 on this board (and possibly other boards below) is connected to onboard PSRAM.
GPIO16 on this board (and possibly other boards below) is connected to onboard PSRAM.
Using this GPIO for other purposes (eg as a button) will trigger the watchdog.
Further information on pin notes can be found here: https://github.com/raphaelbs/esp32-cam-ai-thinker/blob/master/docs/esp32cam-pin-notes.md

View File

@ -49,10 +49,10 @@ Configuration variables:
a ``name`` will implicitly set this to true.
- **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend
(usually Home Assistant) without the user manually enabling it (via the Home Assistant UI).
Requires Home Assistant 2021.9 or newer. Defaults to ``false``.
Defaults to ``false``.
- **entity_category** (*Optional*, string): The category of the entity.
See https://developers.home-assistant.io/docs/core/entity/#generic-properties
for a list of available options. Requires Home Assistant 2021.11 or newer.
for a list of available options.
Set to ``""`` to remove the default entity category.
MQTT options:

View File

@ -37,6 +37,9 @@ Configuration variables:
Defaults to ``true``.
- **frequency** (*Optional*, float): Set the frequency the I²C bus should operate on.
Defaults to ``50kHz``. Values are ``10kHz``, ``50kHz``, ``100kHz``, ``200kHz``, ... ``800kHz``
- **timeout** (*Optional*, :ref:`config-time`): Set the I²C bus timeout.
Defaults to the framework defaults (``100us`` on ``esp32`` with ``esp-idf``, ``50ms`` on ``esp32`` with ``Arduino``,
``1s`` on ``esp8266`` and ``1s`` on ``rp2040``). Maximum on ``esp-idf`` is 13ms.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID for this I²C bus if you need multiple I²C buses.
.. note::

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -24,10 +24,14 @@ Configuration variables
- **pin** (**Required**, :ref:`config-pin`): The pin for the data line of the light.
- **num_leds** (**Required**, int): The number of LEDs in the strip.
- **rmt_channel** (**Required**, int): The RMT channel to use. If using multiple strips, you need to use different channels.
- **ESP32**: ``0`` to ``7``
- **ESP32-S2**: ``0`` to ``3``
- **ESP32-S3**: ``0`` to ``3``
- **ESP32-C3**: ``0`` or ``1``
.. csv-table::
:header: "ESP32 Variant", "Channels"
"ESP32", "0, 1, 2, 3, 4, 5, 6, 7"
"ESP32-S2", "0, 1, 2, 3"
"ESP32-S3", "0, 1, 2, 3"
"ESP32-C3", "0, 1"
- **chipset** (**Required**, enum): The chipset to apply known timings from. Not used if specifying the timings manually, see below.
- ``WS2812``

View File

@ -83,10 +83,10 @@ Advanced options:
a ``name`` will implicitly set this to true.
- **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend,
(usually Home Assistant) without the user manually enabling it (via the Home Assistant UI).
Requires Home Assistant 2021.9 or newer. Defaults to ``false``.
Defaults to ``false``.
- **entity_category** (*Optional*, string): The category of the entity.
See https://developers.home-assistant.io/docs/core/entity/#generic-properties
for a list of available options. Requires Home Assistant 2021.11 or newer.
for a list of available options.
Set to ``""`` to remove the default entity category.
- If MQTT enabled, all other options from :ref:`MQTT Component <config-mqtt-component>`.

View File

@ -8,10 +8,6 @@ Lock Component
The ``lock`` domain includes all platforms that should function like a lock
with lock/unlock actions.
.. note::
ESPHome lock components requires Home Assistant 2022.3 or newer
.. _config-lock:
Base Lock Configuration

View File

@ -43,16 +43,16 @@ Configuration variables:
a ``name`` will implicitly set this to true.
- **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend,
(usually Home Assistant) without the user manually enabling it (via the Home Assistant UI).
Requires Home Assistant 2021.9 or newer. Defaults to ``false``.
Defaults to ``false``.
- **entity_category** (*Optional*, string): The category of the entity.
See https://developers.home-assistant.io/docs/core/entity/#generic-properties
for a list of available options. Requires Home Assistant 2021.11 or newer.
for a list of available options.
Set to ``""`` to remove the default entity category.
- **unit_of_measurement** (*Optional*, string): Manually set the unit
of measurement for the number. Requires Home Assistant Core 2021.12 or newer.
of measurement for the number.
- **mode** (*Optional*, string): Defines how the number should be displayed in the frontend.
See https://developers.home-assistant.io/docs/core/entity/number/#properties
for a list of available options. Requires Home Assistant Core 2021.12 or newer.
for a list of available options.
Defaults to ``"auto"``.
- **device_class** (*Optional*, string): The device class for the number.
See https://www.home-assistant.io/integrations/number/#device-class

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 KiB

View File

@ -83,6 +83,11 @@ channel 0, 2, 4, 6 for each output. This will prevent issues that arise from aut
which chooses adjacent channels with shared timers. See
`Issue #3114 <https://github.com/esphome/issues/issues/3114>`__ for more details.
- **phase_angle** (*Optional*, float): Set a phase angle to the other channel of this timer.
Range 0-360°, defaults to 0°
Note: this variable is only available for the esp-idf framework
Recommended frequencies
-----------------------

View File

@ -68,6 +68,9 @@ Configuration variables:
- **rgb_current** (*Optional*, current): The current used for the RGB channel.
Defaults to ``20mA``.
Can be one of ``10mA``, ``15mA``, ``20mA``, ``25mA``, ``30mA``, ``35mA``, ``40mA``, ``45mA``.
- **separate_modes** (*Optional*, bool): Use separate RGB/CW modes instead of writing all 5 values as RGB.
Defaults to ``true``, keep it at ``true`` if your SM2135 chip variant does not support simultaneous CW and RGB modes (e.g. SM2135E).
Set this to ``false`` when your SM2135 chip variant supports having CW and RGB leds on at the same time (e.g. SM2135EH/SM2135EJ).
.. _sm2135-output:

View File

@ -0,0 +1,101 @@
TLC5971 LED driver
==================
.. seo::
:description: Instructions for setting up TLC5971 LED drivers in ESPHome.
:image: tlc5971.jpg
:keywords: tlc5971,
.. _tlc5971-component:
Component/Hub
-------------
.. figure:: images/tlc5971.jpg
:align: center
:width: 75.0%
Adafruit's TLC59711 board
This component represents a chain of `TLC5971 12-Channel, 16-Bit PWM LED Drivers <https://www.ti.com/lit/ds/symlink/tlc5971.pdf>`_,
which is used e.g. on this `board from Adafruit <https://www.adafruit.com/product/1455>`_.
To use the channels of this components, you first need to setup the
global ``tlc5971`` hub and give it an id, and then define the
:ref:`individual output channels <tlc5971-output>`.
.. code-block:: yaml
# Example configuration entry
tlc5971:
data_pin: GPIO12
clock_pin: GPIO14
# Individual outputs
output:
- platform: tlc5971
id: output_red
channel: 0
- platform: tlc5971
id: output_green
channel: 1
- platform: tlc5971
id: output_blue
channel: 2
Configuration variables:
************************
- **data_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin connected to DIN.
- **clock_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin connected to CLK.
- **num_chips** (*Optional*, int): Number of chips in the chain. Must be
in range from 1 to 85. Defaults to 1.
- **id** (*Optional*, :ref:`config-id`): The id to use for
this ``tlc5971`` component. Use this if you have multiple TLC5971 chains
connected at the same time.
.. _tlc5971-output:
Output
------
The tlc5971 output component exposes a tlc5971 channel of a global
:ref:`tlc5971-component` as a float output.
.. code-block:: yaml
# Example configuration entry
tlc5971:
data_pin: GPIO12
clock_pin: GPIO14
# Individual outputs
output:
- platform: tlc5971
id: output_red
channel: 0
- platform: tlc5971
id: output_green
channel: 1
- platform: tlc5971
id: output_blue
channel: 2
Configuration variables:
************************
- **id** (**Required**, :ref:`config-id`): The id to use for this output component.
- **channel** (**Required**, int): Chose the channel of the TLC5971 chain of
this output component.
- **tlc5971_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the
:ref:`TLC5971-component`.
Use this if you have multiple TLC5971 chains you want to use at the same time.
- All other options from :ref:`Output <config-output>`.
See Also
--------
- :doc:`/components/output/index`
- :doc:`/components/light/monochromatic`
- :doc:`/components/power_supply`
- :apiref:`tlc5971/tlc5971.h`
- :ghedit:`Edit`

View File

@ -30,12 +30,14 @@ Configuration variables:
- **dump** (*Optional*, list): Decode and dump these remote codes in the logs (at log.level=DEBUG).
Set to ``all`` to dump all available codecs:
- **abbwelcome**: Decode and dump ABB-Welcome codes. Messages are sent via copper wires. See :ref:`remote_transmitter-transmit_abbwelcome`
- **aeha**: Decode and dump AEHA infrared codes.
- **byronsx**: Decode and dump Byron SX doorbell RF codes.
- **canalsat**: Decode and dump CanalSat infrared codes.
- **canalsatld**: Decode and dump CanalSatLD infrared codes.
- **coolix**: Decode and dump Coolix infrared codes.
- **dish**: Decode and dump Dish infrared codes.
- **dooya**: Decode and dump Dooya RF codes.
- **drayton**: Decode and dump Drayton Digistat RF codes.
- **jvc**: Decode and dump JVC infrared codes.
- **keeloq**: Decode and dump KeeLoq RF codes.
@ -61,6 +63,17 @@ Configuration variables:
decoding process. Defaults to ``25%``.
- **buffer_size** (*Optional*, int): The size of the internal buffer for storing the remote codes. Defaults to ``10kB``
on the ESP32 and ``1kB`` on the ESP8266.
- **rmt_channel** (*Optional*, int): The RMT channel to use. Only on **esp32**.
The following ESP32 variants have these channels available:
.. csv-table::
:header: "ESP32 Variant", "Channels"
"ESP32", "0, 1, 2, 3, 4, 5, 6, 7"
"ESP32-S2", "0, 1, 2, 3"
"ESP32-S3", "4, 5, 6, 7"
"ESP32-C3", "2, 3"
- **memory_blocks** (*Optional*, int): The number of RMT memory blocks used. Only used on ESP32 platform. Defaults to
``3``.
- **filter** (*Optional*, :ref:`config-time`): Filter any pulses that are shorter than this. Useful for removing
@ -79,6 +92,9 @@ Configuration variables:
Automations:
------------
- **on_abbwelcome** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
ABB-Welcome code has been decoded. A variable ``x`` of type :apiclass:`remote_base::ABBWelcomeData`
is passed to the automation for use in lambdas.
- **on_aeha** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
AEHA remote code has been decoded. A variable ``x`` of type :apiclass:`remote_base::AEHAData`
is passed to the automation for use in lambdas.
@ -98,6 +114,9 @@ Automations:
dish network remote code has been decoded. A variable ``x`` of type :apistruct:`remote_base::DishData`
is passed to the automation for use in lambdas.
Beware that Dish remotes use a different carrier frequency (57.6kHz) that many receiver hardware don't decode.
- **on_dooya** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
Dooya RF remote code has been decoded. A variable ``x`` of type :apistruct:`remote_base::DooyaData`
is passed to the automation for use in lambdas.
- **on_drayton** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
Drayton Digistat RF code has been decoded. A variable ``x`` of type :apistruct:`remote_base::DraytonData`
is passed to the automation for use in lambdas.
@ -207,6 +226,21 @@ Configuration variables:
Remote code selection (exactly one of these has to be included):
- **abbwelcome**: Trigger on a decoded ABB-Welcome code with the given data.
- **source_address** (**Required**, int): The source address to trigger on, see :ref:`remote_transmitter-transmit_abbwelcome`
for more info.
- **destination_address** (**Required**, int): The destination address to trigger on, see
:ref:`remote_transmitter-transmit_abbwelcome` for more info.
- **three_byte_address** (**Optional**, boolean): The length of the source and destination address. ``false`` means two bytes
and ``true`` means three bytes. Defaults to ``false``.
- **retransmission** (**Optional**, boolean): ``true`` if the message was re-transmitted. Defaults to ``false``.
- **message_type** (**Required**, int): The message type to trigger on, see :ref:`remote_transmitter-transmit_abbwelcome`
for more info.
- **message_id** (**Optional**, int): The random message ID to trigger on, see dumper output for more info. Defaults to any ID.
- **data** (**Optional**, 0-7 bytes list): The code to listen for. Usually you only need to copy this directly from the
dumper output. Defaults to ``[]``
- **aeha**: Trigger on a decoded AEHA remote code with the given data.
- **address** (**Required**, int): The address to trigger on, see dumper output for more info.
@ -243,6 +277,13 @@ Remote code selection (exactly one of these has to be included):
- **address** (*Optional*, int): The number of the receiver to target, between 1 and 16 inclusive. Defaults to ``1``.
- **command** (**Required**, int): The Dish command to listen for, between 0 and 63 inclusive.
- **dooya**: Trigger on a decoded Dooya RF remote code with the given data.
- **id** (**Required**, int): The 24-bit ID code to trigger on.
- **channel** (**Required**, int): The 8-bit channel to listen for.
- **button** (**Required**, int): The 4-bit button to listen for.
- **check** (**Required**, int): The 4-bit check to listen for. Includes an indication that a button is being held down.
- **drayton**: Trigger on a decoded Drayton Digistat RF remote code with the given data.
- **address** (**Required**, int): The 16-bit ID code to trigger on, see dumper output for more info.
@ -304,6 +345,8 @@ Remote code selection (exactly one of these has to be included):
- **data** (**Required**, string): The code to listen for, see :ref:`remote_transmitter-transmit_raw`
for more info. Usually you only need to copy this directly from the dumper output.
- **delta** (**Optional**, integer): This parameter allows you to manually specify the allowed difference
between what Pronto code is specified, and what IR signal has been sent by the remote control.
- **raw**: Trigger on a raw remote code with the given code.
@ -432,3 +475,4 @@ See Also
- `IRRemoteESP8266 <https://github.com/markszabo/IRremoteESP8266/>`__ by `Mark Szabo-Simon <https://github.com/markszabo>`__
- :apiref:`remote/remote_receiver.h`
- :ghedit:`Edit`

View File

@ -43,6 +43,17 @@ Configuration variables:
- **carrier_duty_percent** (*Optional*, int): How much of the time the remote is on. For example, infrared
protocols modulate the signal using a carrier signal. Set this to ``50%`` if you're working with IR LEDs and to
``100%`` if working with other things like 433MHz transmitters.
- **rmt_channel** (*Optional*, int): The RMT channel to use. Only on **esp32**.
The following ESP32 variants have these channels available:
.. csv-table::
:header: "ESP32 Variant", "Channels"
"ESP32", "0, 1, 2, 3, 4, 5, 6, 7"
"ESP32-S2", "0, 1, 2, 3"
"ESP32-S3", "0, 1, 2, 3"
"ESP32-C3", "0, 1"
- **id** (*Optional*, :ref:`config-id`): Manually specify
the ID used for code generation. Use this if you have multiple remote transmitters.
@ -78,6 +89,56 @@ Configuration variables:
If you're looking for the same functionality as is default in the ``rpi_rf`` integration in
Home Assistant, you'll want to set the **times** to 10 and the **wait_time** to 0s.
.. _remote_transmitter-transmit_abbwelcome:
``remote_transmitter.transmit_abbwelcome`` Action
*************************************************
This :ref:`action <config-action>` sends a ABB-Welcome message to the intercom bus. The
message type, addresses, address length and data can vary a lot between ABB-Welcome
systems. Please refer to the received messages while performing actions like ringing a
doorbell or opening a door.
.. code-block:: yaml
on_...:
- remote_transmitter.transmit_abbwelcome:
source_address: 0x1001 # your indoor station address
destination_address: 0x4001 # door address
three_byte_address: false # address length of your system
message_type: 0x0d # unlock door, on some systems 0x0e is used instead
data: [0xab, 0xcd, 0xef] # message data, see receiver dump
Configuration variables:
- **source_address** (**Required**, int):The source address to send the command from,
see received messages for more info. For indoor stations the last byte of the address
represents the apartment number set by the dials on the back of the indoor station and is
transmitted in hexadecimal format.
- **destination_address** (**Required**, int): The destination address to send the command to,
see received messages for more info.
- **three_byte_address** (**Required**, int): The destination address to send the command to,
see received messages for more info.
- **three_byte_address** (**Optional**, boolean): The length of the source and destination address. ``false``
means two bytes and ``true`` means three bytes. Please check the received messages to see which address length
is used by your system. For example, ``[XXXX > XXXX]`` appears in the receiver log for two byte addresses and
``[XXXXXX > XXXXXX]`` for three byte addresses. Defaults to ``false``.
- **retransmission** (**Optional**, boolean): Should only be ``true`` if this message has been transmitted
before with the same ``message_id``. Typically, messages are transmitted up to three times with a 1 second
interval if no reply is received. Defaults to ``false``.
- **message_type** (**Required**, int): The message type, see dumper output for more info.
The highest bit indicates a reply.
- **message_id** (**Optional**, int): The message ID, see dumper output for more info.
Defaults to a randomly generated ID if this message is not a reply or retransmission.
- **data** (**Optional**, 0-7 bytes list): The code to send.
Usually you only need to copy this directly from the dumper output. Defaults to ``[]``
.. note::
ABB-Welcome messages are sent over the two-wire bus of your intercom system.
A custom receiver and transmitter circuit is required.
`More info <https://github.com/Mat931/esp32-doorbell-bus-interface>`__
.. _remote_transmitter-transmit_aeha:
``remote_transmitter.transmit_aeha`` Action
@ -212,6 +273,30 @@ Configuration variables:
You can find a list of commands in the `LIRC project <https://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/dishnet/Dish_Network.lircd.conf>`__.
.. _remote_transmitter-transmit_dooya:
``remote_transmitter.transmit_dooya`` Action
**********************************************
This :ref:`action <config-action>` sends a Dooya RF remote code to a remote transmitter.
.. code-block:: yaml
on_...:
- remote_transmitter.transmit_dooya:
id: 0x001612E5
channel: 142
button: 12
check: 3
Configuration variables:
- **id** (**Required**, int): The 24-bit ID to send. Each remote has a unique one.
- **channel** (**Required**, int): The 8-bit channel to send, between 0 and 255 inclusive.
- **button** (**Required**, int): The 4-bit button to send, between 0 and 15 inclusive.
- **check** (**Required**, int): The 4-bit check to send. Includes an indication that a button is being held down. See dumper output for more info.
- All other options from :ref:`remote_transmitter-transmit_action`.
.. _remote_transmitter-transmit_drayton:
``remote_transmitter.transmit_drayton`` Action
@ -267,7 +352,7 @@ This :ref:`action <config-action>` sends KeeLoq RF remote code to a remote trans
code: '0xd19ef0a9'
repeat:
times: 3
wait_time: 15ms
wait_time: 15ms
Configuration variables:

View File

@ -43,10 +43,10 @@ Configuration variables:
a ``name`` will implicitly set this to true.
- **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend,
(usually Home Assistant) without the user manually enabling it (via the Home Assistant UI).
Requires Home Assistant 2021.9 or newer. Defaults to ``false``.
Defaults to ``false``.
- **entity_category** (*Optional*, string): The category of the entity.
See https://developers.home-assistant.io/docs/core/entity/#generic-properties
for a list of available options. Requires Home Assistant 2021.11 or newer.
for a list of available options.
Set to ``""`` to remove the default entity category.
Automations:

View File

@ -31,7 +31,7 @@ Entity state attributes can also be imported:
This component is only for numeral states. If you want to import arbitrary text states
from Home Assistant, use the :doc:`Home Assistant Text Sensor </components/text_sensor/homeassistant>`.
Although you might not plan to *export* states from the node and you do not need an entity of the node
in Home Assistant, this component still requires you to register the node under Home Assistant. See:
:doc:`Getting started with Home Assistant </guides/getting_started_hassio>`
@ -43,16 +43,15 @@ Configuration variables:
- **entity_id** (**Required**, string): The entity ID to import from Home Assistant.
- **attribute** (*Optional*, string): The name of the state attribute to import from the
specified entity. The entity state is used when this option is omitted.
Requires Home Assistant 2021.6 or newer.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- All other options from :ref:`Sensor <config-sensor>`.
.. note::
The sensors implemented by this component are by default ``internal``, to avoid exporting them back to
The sensors implemented by this component are by default ``internal``, to avoid exporting them back to
Home Assistant. Should you still want to do that (eg. because you use ESPHome's very efficient filters
on them) you need to specifically configure ``internal: false``. Also, ``state_class``, ``unit_of_measurement``
on them) you need to specifically configure ``internal: false``. Also, ``state_class``, ``unit_of_measurement``
are not inherited from the imported sensor so you need to set them manually.

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -68,10 +68,10 @@ Configuration variables:
significantly increase the database size. Defaults to ``false``.
- **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend,
(usually Home Assistant) without the user manually enabling it (via the Home Assistant UI).
Requires Home Assistant 2021.9 or newer. Defaults to ``false``.
Defaults to ``false``.
- **entity_category** (*Optional*, string): The category of the entity.
See https://developers.home-assistant.io/docs/core/entity/#generic-properties
for a list of available options. Requires Home Assistant 2021.11 or newer.
for a list of available options.
Set to ``""`` to remove the default entity category.
Automations:
@ -603,7 +603,7 @@ To prevent values from being published, return ``{}``:
.. code-block:: yaml
filters:
- lambda: !lambda |-
- lambda: |-
if (x < 10) return {};
return x-10;

View File

@ -2,12 +2,12 @@ Internal Temperature Sensor
===========================
.. seo::
:description: Instructions for setting up the integrated temperature sensor of the ESP32 and RP2040.
:description: Instructions for setting up the integrated temperature sensor of the ESP32, RP2040 and BK72XX.
:image: thermometer.svg
:keywords: esp32, rp2040, cpu, internal, temperature
The ``internal_temperature`` sensor platform allows you to use the integrated
temperature sensor of the ESP32 and RP2040 chip.
temperature sensor of the ESP32, RP2040 and BK72XX chip.
.. note::

View File

@ -0,0 +1,66 @@
JSN-SR04T Waterproof Ultrasonic Range Finder
============================================
.. seo::
:description: Instructions for setting up JSN-SR04T waterproof ultrasonic distance sensor in ESPHome.
:image: jsn-sr04t-v3.jpg
:keywords: JSN-SR04T
This sensor allows you to use the JSN-SR04T Waterproof Ultrasonic Range Finder **in Mode 1 and 2**
with ESPHome to measure distances. This sensor can measure
ranges between 25 centimeters and 600 centimeters with a resolution of 1 millimeter.
Configure the JSN-SR04T for mode 1:
- **V1.0 and V2.0**: Add a 47k resistor to pad R27.
- **V3.0**: Short pad M1 or add 47k resistor to pad mode.
Configure the JSN-SR04T for mode 2:
- **V1.0 and V2.0**: Add a 120k resistor to pad R27.
- **V3.0**: Short pad M2 or add 120k resistor to pad mode.
.. figure:: images/jsn-sr04t-v3-mode-select-pads.jpg
:align: center
:width: 50.0%
JSN-SR04T Waterproof Ultrasonic Range Finder Mode Select Pads.
In mode 1 the module continuously takes measurements approximately every 100mS and outputs the distance on the TX pin at 9600 baud.
In this mode :ref:`sensor-filters` are highly recommended.
In mode 2 the module takes a measurement only when a trigger command of 0x55 is sent to the RX pin on the module.
The module then outputs the distance on its TX pin. The frequency of the measurements can be set with the **update_interval** option.
To use the sensor, first set up an :ref:`uart` with a baud rate of 9600 and connect the sensor to the specified pin.
.. figure:: images/jsn-sr04t-v3.jpg
:align: center
:width: 70.0%
JSN-SR04T Waterproof Ultrasonic Range Finder.
.. code-block:: yaml
# Example configuration entry
sensor:
- platform: "jsn_sr04t"
name: "Distance"
update_interval: 1s
Configuration variables:
------------------------
- **name** (**Required**, string): The name of the sensor.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
sensor. Defaults to ``60s``. Not applicable in mode 1.
- **uart_id** (*Optional*, :ref:`config-id`): The ID of the :ref:`UART bus <uart>` you wish to use for this sensor.
Use this if you want to use multiple UART buses at once.
- All other options from :ref:`Sensor <config-sensor>`.
See Also
--------
- :ref:`uart`
- :ref:`sensor-filters`
- :apiref:`jsn_sr04t/jsn_sr04t.h`
- :ghedit:`Edit`

View File

@ -33,6 +33,10 @@ configuration for this sensor to work.
name: "QMC5883L Field Strength Z"
heading:
name: "QMC5883L Heading"
temperature:
name: "QMC5883L Temperature"
filters:
- offset: 34.0
range: 200uT
oversampling: 512x
update_interval: 60s
@ -49,6 +53,10 @@ Configuration variables:
:ref:`Sensor <config-sensor>`.
- **heading** (*Optional*): The heading of the sensor in degrees. All options from
:ref:`Sensor <config-sensor>`.
- **temperature** (*Optional*): The temperature of the sensor. Per the datasheet:
"Temperature sensor gain is factory-calibrated, but its offset has not been compensated, only relative
temperature value is accurate". Above example has an offset that you need to calibrate. All options from
:ref:`Sensor <config-sensor>`.
- **range** (*Optional*): The range parameter for the sensor.
- **oversampling** (*Optional*): The oversampling parameter for the sensor.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.

View File

@ -2,16 +2,17 @@ SHT3X-D Temperature+Humidity Sensor
===================================
.. seo::
:description: Instructions for setting up SHT31-D/SHT3x temperature and humidity sensors
:description: Instructions for setting up SHT31-D/SHT3x and SHT85 temperature and humidity sensors
:image: sht3xd.jpg
The ``sht3xd`` sensor platform Temperature+Humidity sensor allows you to use your Sensirion SHT31-D/SHT3x
(`datasheet <https://cdn-shop.adafruit.com/product-files/2857/Sensirion_Humidity_SHT3x_Datasheet_digital-767294.pdf>`__,
`Adafruit`_ ) sensors with
ESPHome. The :ref:`I²C Bus <i2c>` is
required to be set up in your configuration for this sensor to work.
`Adafruit`_ ) and SHT85 (`datasheet <https://sensirion.com/media/documents/4B40CEF3/640B2346/Sensirion_Humidity_Sensors_SHT85_Datasheet.pdf>`__,
`Sensirion`_ ) sensors with Esphome.
The :ref:`I²C Bus <i2c>` is required to be set up in your configuration for this sensor to work.
.. _Adafruit: https://www.adafruit.com/product/2857
.. _Sensirion: https://sensirion.com/products/catalog/SHT85/
.. figure:: images/temperature-humidity.png
:align: center
@ -32,20 +33,20 @@ required to be set up in your configuration for this sensor to work.
Configuration variables:
------------------------
- **temperature** (**Required**): The information for the temperature sensor.
- **temperature** (*Optional*): The information for the temperature sensor.
- **name** (**Required**, string): The name for the temperature sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **humidity** (**Required**): The information for the humidity sensor.
- **humidity** (*Optional*): The information for the humidity sensor.
- **name** (**Required**, string): The name for the humidity sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **address** (*Optional*, int): Manually specify the I²C address of the sensor.
Defaults to ``0x44``.
Defaults to ``0x44``. For SHT3x, an alternate address can be ``0x45`` while SHT85 supports only address ``0x44``
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
sensor. Defaults to ``60s``.
- **heater_enabled** (*Optional*, bool): Turn on/off heater at boot.

View File

@ -8,6 +8,12 @@ Xiaomi Mijia BLE Sensors
The ``xiaomi_ble`` sensor platform lets you track the output of Xiaomi Bluetooth Low Energy devices using the :doc:`/components/esp32_ble_tracker`. This component will track, for example, the temperature, humidity, moisture, conductivity, illuminance, formaldehyde, mosquito tablet and battery level of the device every time the sensor sends out a BLE broadcast. Contrary to other implementations, ``xiaomi_ble`` listens passively to advertisement packets and does not pair with the device. Hence ESPHome has no impact on battery life. Thus, if you only use such sensors, you can safely set ``scan_parameters.active: false`` in ``esp32_ble_tracker`` configuration, to save from spamming your RF environment with useless scan requests.
.. note::
You may alternatively use ESPHome's :doc:`/components/bluetooth_proxy` component to forward sensor data to Home Assistant and have Mija devices configured using its own Mija BLE component. This should work for the devices flashed with `PVVX MiThermometer <https://github.com/pvvx/ATC_MiThermometer>`__ custom firmware, as well as the regular, stock firmware.
Supported Devices
-----------------
@ -642,10 +648,6 @@ Security considerations
You should at least protect your sensors with a custom pairing PIN code. Choose a method employing bindkey in order to use encrypted communication over the air.
.. note::
Devices flashed with `PVVX MiThermometer <https://github.com/pvvx/ATC_MiThermometer>`__ custom firmware also support the `BTHome protocol <https://bthome.io/>`__ which can be used in conjunction with ESPHome's :doc:`/components/bluetooth_proxy` component to forward sensor data to Home Assistant.
See Also
--------

View File

@ -0,0 +1,51 @@
HHCCJCY10 Xiaomi MiFlora (Pink version)
=======================================
.. seo::
:description: Instructions for setting up a Xiaomi MiFlora HHCCJCY10 (Pink) using ESPHome.
:image: xiaomi_hhccjcy10.jpg
MiFlora, tuya (pink) version, measures temperature, moisture, ambient light and nutrient levels in the soil.
.. figure:: images/xiaomi_hhccjcy10.jpg
:align: center
:width: 60.0%
.. code-block:: yaml
sensor:
- platform: xiaomi_hhccjcy10
mac_address: '94:2B:FF:5C:91:61'
temperature:
name: "Xiaomi HHCCJCY10 Temperature"
moisture:
name: "Xiaomi HHCCJCY10 Moisture"
illuminance:
name: "Xiaomi HHCCJCY10 Illuminance"
conductivity:
name: "Xiaomi HHCCJCY10 Soil Conductivity"
battery_level:
name: "Xiaomi HHCCJCY10 Battery Level"
Configuration variables:
------------------------
- **mac_address** (**Required**, string): The MAC address of the device.
- **temperature** (*Optional*): The temperature sensor.
All options from :ref:`Sensor <config-sensor>`.
- **moisture** (*Optional*): The moisture sensor.
All options from :ref:`Sensor <config-sensor>`.
- **illuminance** (*Optional*): The illuminance sensor.
All options from :ref:`Sensor <config-sensor>`.
- **conductivity** (*Optional*): The conductivity sensor.
All options from :ref:`Sensor <config-sensor>`.
- **battery_level** (*Optional*): The battery level sensor.
All options from :ref:`Sensor <config-sensor>`.
See Also
--------
- :doc:`ble_client`
- :ghedit:`Edit`

View File

@ -9,7 +9,8 @@ The ``status_led`` hooks into all ESPHome components and can indicate the status
the device. Specifically, it will:
- Blink slowly (about every second) when a **warning** is active. Warnings are active when for
example reading a sensor value fails temporarily or the WiFi/MQTT connections are disrupted.
example reading a sensor value fails temporarily, the WiFi/MQTT connections are disrupted, or
if the native API component is included but no client is connected.
- Blink quickly (multiple times per second) when an **error** is active. Errors indicate that
ESPHome has found an error while setting up. In most cases, ESPHome will still try to
recover from the error and continue with all other operations.

145
components/sun_gtil2.rst Normal file
View File

@ -0,0 +1,145 @@
SUN_GTIL2 Grid Tie Inverter
===========================
.. seo::
:description: Instructions for reading data from a SUN-1000G2 grid tie inverter using ESPHome
:keywords: sun-1000g2, sun-2000g2, sun1000, sun2000, sun-1000gtil2, sun-2000gtil2
The ``sun_gtil2`` component allows you to get voltage, power and temperature readings from your ``SUN-1000G2``
or ``SUN-2000G2`` grid tie inverter. This is done by reading the UART data transmitted from the inverter's
controller board to the display board.
.. note::
You need to open your inverter to apply this modification. Use at your own risk! If you want to connect your
inverter via the (more limited) external RS232 interface you should use the
:doc:`Modbus </components/modbus_controller>` component instead.
.. figure:: images/sun_gtil2_controller_board.png
:align: center
:width: 50.0%
Pinout of the inverter's controller board
.. figure:: images/sun_gtil2_display_board.png
:align: center
:width: 50.0%
Pinout of the inverter's display board
.. figure:: images/sun_gtil2_schematic.png
:align: center
:width: 75.0%
Simplified connection diagram
As the data is read from the inverter using UART, you need to have an :ref:`UART bus <uart>` in your
configuration with the ``rx_pin`` connected to the TX pin of the inverter's controller board. Additionally, you
need to set the ``baud_rate`` to 9600.
The inverter will report new measurements approximately every 1.3 seconds.
Component/Hub
-------------
.. code-block:: yaml
# Example configuration entry
sun_gtil2:
uart_id: control_to_display
Configuration variables:
~~~~~~~~~~~~~~~~~~~~~~~~
- **id** (**Required**, :ref:`config-id`): The id to use for this component.
- **uart_id** (*Optional*): The UART Bus ID for receiving messages sent from the inverter's controller to the display.
Sensor
------
.. code-block:: yaml
# Example configuration entry
sensor:
- platform: sun_gtil2
temperature:
id: gtil_temperature
name: "Heatsink Temperature"
filters:
- throttle_average: 30s
dc_voltage:
id: gtil_dc_voltage
name: "DC Voltage"
filters:
- throttle_average: 30s
ac_voltage:
id: gtil_ac_voltage
name: "AC Voltage"
filters:
- throttle_average: 30s
ac_power:
id: gtil_ac_power
name: "AC Power"
dc_power:
id: gtil_dc_power
name: "DC Power"
limiter_power:
id: gtil_limiter_power
internal: True
Configuration variables:
~~~~~~~~~~~~~~~~~~~~~~~~
- **sun_gtil2_id** (*Optional*): Manually specify the ID of the sun_gtil2 instance if there are multiple.
- **temperature** (*Optional*): The temperature of your inverter's heatsink.
All options from :ref:`Sensor <config-sensor>`.
- **dc_voltage** (*Optional*): The voltage of your DC source. (battery or solar panels)
All options from :ref:`Sensor <config-sensor>`.
- **ac_voltage** (*Optional*): The grid voltage measured by the inverter.
All options from :ref:`Sensor <config-sensor>`.
- **dc_power** (*Optional*): The inverter's input power.
All options from :ref:`Sensor <config-sensor>`.
- **ac_power** (*Optional*): The inverter's output power.
All options from :ref:`Sensor <config-sensor>`.
- **limiter_power** (*Optional*): The power measured by the inverter's "Internal" limiter.
All options from :ref:`Sensor <config-sensor>`.
Text Sensor
-----------
.. code-block:: yaml
# Example configuration entry
text_sensor:
- platform: sun_gtil2
state:
id: gtil_state
name: "State"
serial_number:
id: gtil_serial_number
internal: True
Configuration variables:
~~~~~~~~~~~~~~~~~~~~~~~~
- **sun_gtil2_id** (*Optional*): Manually specify the ID of the sun_gtil2 instance if there are multiple.
- **state** (*Optional*): The inverter's state.
All options from :ref:`Text Sensor <config-text_sensor>`.
- **serial_number** (*Optional*): The inverter's serial number.
All options from :ref:`Text Sensor <config-text_sensor>`.
See Also
--------
- :ref:`sensor-filters`
- :ghedit:`Edit`

View File

@ -59,14 +59,14 @@ Configuration variables:
when the switch is turned off. See :ref:`switch-on_turn_on_off_trigger`.
- **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend,
(usually Home Assistant) without the user manually enabling it (via the Home Assistant UI).
Requires Home Assistant 2021.9 or newer. Defaults to ``false``.
Defaults to ``false``.
- **entity_category** (*Optional*, string): The category of the entity.
See https://developers.home-assistant.io/docs/core/entity/#generic-properties
for a list of available options. Requires Home Assistant 2021.11 or newer.
for a list of available options.
Set to ``""`` to remove the default entity category.
- **device_class** (*Optional*, string): The device class for the switch.
See https://www.home-assistant.io/integrations/switch/#device-class
for a list of available options. Requires Home Assistant 2022.3 or newer.
for a list of available options.
- If MQTT enabled, All other options from :ref:`MQTT Component <config-mqtt-component>`.
.. _switch-toggle_action:

View File

@ -41,10 +41,10 @@ Configuration variables:
a ``name`` will implicitly set this to true.
- **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend,
(usually Home Assistant) without the user manually enabling it (via the Home Assistant UI).
Requires Home Assistant 2021.9 or newer. Defaults to ``false``.
Defaults to ``false``.
- **entity_category** (*Optional*, string): The category of the entity.
See https://developers.home-assistant.io/docs/core/entity/#generic-properties
for a list of available options. Requires Home Assistant 2021.11 or newer.
for a list of available options.
Set to ``""`` to remove the default entity category.
- If MQTT enabled, All other options from :ref:`MQTT Component <config-mqtt-component>`.

View File

@ -6,12 +6,12 @@ WireGuard Component
.. seo::
:description: Instructions to setup WireGuard for your ESP board.
:keywords: WireGuard, VPN, ESP32
:keywords: WireGuard, VPN
|wireguard|_ is an extremely simple yet fast and modern VPN that utilizes
state-of-the-art cryptography. This component uses a **custom**
implementation not developed by original authors and currently
available for **ESP32 platform only**.
available for ESP32 and ESP8266 platforms *only*.
Please note that *"WireGuard" and the "WireGuard" logo are
registered trademarks of Jason A. Donenfeld.* See
@ -146,7 +146,7 @@ Configuration variables
Static routes and outgoing connections
--------------------------------------
Currently there is no way on ESP32 devices to configure static routes for
Currently there is no way on ESP devices to configure static routes for
network interfaces, so the ``peer_allowed_ips`` list is used only to allow
(or drop) packets that pass through the VPN tunnel, not to define static
routes for remote hosts.

View File

@ -67,9 +67,9 @@ author = "ESPHome"
# built documents.
#
# The short X.Y version.
version = "2024.3"
version = "2024.4"
# The full version, including alpha/beta/rc tags.
release = "2024.3.2"
release = "2024.4.1"
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.

View File

@ -92,6 +92,7 @@ Custom Components & Code
- `Custom esp32 media player and notifier <https://www.printables.com/model/327708-esphome-nodemcu-esp32-media-player>`__ by :ghuser:`rananna`
- `Blauberg recuperator S22 controller replacement <https://github.com/Benas09/Blauberg_S22>`__ by :ghuser:`Benas09`
- `Rheem Econet Water Heater and Furnace Controller <https://github.com/esphome-econet/esphome-econet>`__ by `ESPHome-econet <https://github.com/esphome-econet>`__
- `Garage Door Opener with position control using a relay and one or two reed sensors <https://github.com/tronikos/esphome-gdo>`__ by :ghuser:`tronikos`
- `Medisana BS440 (and propably more scales) <https://github.com/bwynants/weegschaal>`__ by `bwynants <https://github.com/bwynants>`__
Sample Configurations
@ -115,7 +116,6 @@ Sample Configurations
- `ESPHome config for Universal IR Remote ZJ-A1 (russian) <https://kvvhost.ru/2019/10/30/review-firmware-zj-a1-ir-remote/>`__ by `kvvhost <https://kvvhost.ru/>`__
- `ESPHome Home Assistant Cheap Cat Feeder <https://github.com/rubengargar/diy-cheap-cat-feeder>`__ by :ghuser:`rubengargar`
- `ESPHome configs <https://github.com/nuttytree/ESPHome-Devices>`__ by :ghuser:`nuttytree`
- `ESPHome Home Assistant stepper motor blinds/curtain <https://github.com/icarome/esphome/blob/master/cortina.yaml>`__ by :ghuser:`icarome`
- `Control LG UD79-B monitor via UART <https://github.com/kquinsland/lg-m43mu79-esp-home-bridge>`__ by :ghuser:`kquinsland`
- `ESPHome AXA Remote 2 control <https://github.com/galagaking/espaxa/>`__ by :ghuser:`galagaking`
- `ESPHome WF-DS01 TuyaMCU based dimmable bedside touch lamp <https://github.com/davet2001/miscellaneous/blob/master/tuyamcu_ws-df01_touchlamp.yaml>`__ by :ghuser:`davet2001`

View File

@ -73,48 +73,54 @@ Tips for using ESPHome
.. |include| replace:: ``!include``
.. _include: https://www.home-assistant.io/docs/configuration/splitting_configuration/
.. _esphome-flasher:
I can't get flashing over USB to work.
--------------------------------------
ESPHome depends on the operating system the tool is running on to recognize
the ESP. This can sometimes fail. Common causes are that you did not install
the drivers (see note below) or you are trying to upload from a Docker container
and did not mount the ESP device into your container using ``--device=/dev/ttyUSB0``.
.. _esphome-esptool:
Starting with ESPHome 1.9.0, the ESPHome suite provides
`esphome-flasher <https://github.com/esphome/esphome-flasher>`__, a tool to flash ESPs over USB.
ESPHome depends on the operating system the tool is running on to recognize the ESP. This can sometimes fail. Common causes are that you may not have the drivers installed (see :ref:`here <esphome-phy-con-drv>`) or you are trying to upload from a Docker container and did not mount the ESP device into your container using ``--device=/dev/ttyUSB0``.
First, you need to get the firmware file to flash. For the Home Assistant add-on based
installs you can use the ``Manual download`` method (click ``Install`` in the overflow icon with the three dots
and then select ``Manual download``). For command line based installs you can access the
installs you can use the ``Manual download`` method of the Dashboard (click ``Install`` in the overflow icon with the three dots
and then select ``Manual download``). For direct esphome command line based installs you can access the
file under ``<CONFIG_DIR>/<NODE_NAME>/.pioenvs/<NODE_NAME>/firmware.bin``.
Then, install esphome-flasher by going to the `releases page <https://github.com/esphome/esphome-flasher/releases>`__
and downloading one of the pre-compiled binaries. Open up the application and select the serial port
you want to flash to (on windows you can use the "device manager" to check if it's the right one).
Second, you need to put the ESP in :ref:`programming mode <esphome-phy-con-prg>` while connecting it to your computer.
.. figure:: images/esphomeflasher-ui.png
:align: center
:width: 80%
Select the firmware binary and finally press "Flash ESP".
Third, to flash a firmware file downloaded from Home Assistant add-on Dashboard, you can use:
- `ESPHome Web <https://web.esphome.io/>`__ web-based installer, which requires a browser that supports WebSerial, like Google Chrome or Microsoft Edge. Connect the board to your computer, make sure it's detected as a :ref:`serial port <esphome-phy-con-drv>`, and press **Connect**. Give the requested permission in the browser and in the popup box that appears, select the serial device which connects to your ESP. Then press **Install**, and browse for the binary file you downloaded from the Dashboard in the step above. Note that the file will be processed locally, it won't be uploaded to any cloud service.
- *esptool* `from the GitHub repository <https://github.com/espressif/esptool/releases>`__, package from your distro or install it yourself with ``pip install esptool`` (in case of Linux).
Before using ``esptool``, make sure you know which serial port your programming adapter is connected to. In Linux use the ``dmesg`` command afer you plug the device into the USB port to see the name of the newly detected serial port. In Windows check the Device Manager to see if a new serial port appears when you plug it in and note the COM number.
Erase flash:
.. code-block:: bash
esptool --port /dev/ttyUSB0 erase_flash
Program flash with your firmware binary:
.. code-block:: bash
esptool --port /dev/ttyUSB0 write_flash 0x0 your_node_firmware.bin
.. note::
If the serial port is not showing up, you might not have the required drivers installed.
ESPs usually ship with one of these two UART chips:
If you're just seeing ``Connecting....____....`` on the screen and the flashing fails, check for these:
* CP2102 (square chip): `driver <https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers>`__
* CH341: `driver <https://github.com/nodemcu/nodemcu-devkit/tree/master/Drivers>`__
- the device name of the port has changed while you were re-plugging it too fast (eg. changed from ``/dev/ttyUSB0`` to ``/dev/ttyUSB1``).
- double check the UART wires are connected correctly if flashing using an external programmer (RX of programmer to TX of the ESP and vice-versa).
- for some devices you need to keep ``GPIO0`` and ``GND`` connected at least until flashing has begun.
- for some devices you need to power-cycle in programming mode after erasing flash, they don't auto-reset.
- it also might be a sign that ESP is defect or cannot be programmed.
If you're in an RF noisy environment or your UART wires are a bit long, flashing can fail during transfer. Don't worry, an ESP won't brick just because of that. Put it again in programming mode and flash with a reduced baudrate for safer transfers:
``esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash 0x0 your_node_firmware.bin``
.. note::
If you're just seeing ``Connecting....____....`` on the screen and the flashing fails, that might
be a sign that the ESP is defect or cannot be programmed. Please double check the UART wires
are connected correctly if flashing using a USB to UART bridge. For some devices you need to
keep pressing the BOOT button until flashing has begun (ie. Geekcreit DOIT ESP32 DEVKIT V1).
Help! Something's not working!!
-------------------------------

View File

@ -144,10 +144,15 @@ to your docker command to map a local USB device. Docker on Mac will not be able
docker run --rm --privileged -v "${PWD}":/config --device=/dev/ttyUSB0 -it ghcr.io/esphome/esphome run livingroom.yaml
Now when you go to the Home Assistant "Integrations" screen (under "Configuration" panel), you
.. note::
Alternatively, you can flash the binary using :ref:`ESPHome Web or esptool <esphome-esptool>`.
Now when you go to the Home Assistant **Integrations** screen (under **Configuration** panel), you
should see the ESPHome device show up in the discovered section (although this can take up to 5 minutes).
Alternatively, you can manually add the device by clicking "CONFIGURE" on the ESPHome integration
and entering "<NODE_NAME>.local" as the host.
Alternatively, you can manually add the device by clicking **CONFIGURE** on the ESPHome integration
and entering ``<NODE_NAME>.local`` as the host.
.. figure:: /components/switch/images/gpio-ui.png
:align: center

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 KiB

View File

@ -37,7 +37,9 @@ For all projects
- Your project supports adoption via the ``dashboard_import`` feature of ESPHome (see :doc:`Sharing </guides/creators>`). In particular:
- There are **no** references to secrets or passwords
- Network configuration must assume defaults (no static IPs or DNS configured)
- All configuration is contained within a single YAML file
- It **must** compile successfully without any user changes after adopting it.
- All configuration is contained within a single YAML file. Fully remote packages are permitted if using ``import_full_config: true``.
- Your product name cannot contain **ESPHome** except in the case of *ending with* **for ESPHome**
When your project matches all requirements of the Made for ESPHome program,

View File

@ -29,31 +29,66 @@ component </components/ota.html>`_ 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
have adapter built into the circuit board, in which case things are a bit easier.
have adapter built into the circuit board (and some even have the programmer
embedded in the MCU, in which case things are a bit easier.
In case you use an external serial programmer connected to RX and TX of the ESP, choose one based
on CH340 as it's the most reliable and the cheapest one to use for flashing. Programmers based on
CP2102 or PL2303 are compatible with many devices, but using an external 3.3V supply might be
necessary for them.
.. _esphome-phy-con-drv:
Plug in the board or the serial programmer into a free USB port and check if it has been properly detected
by your computer. The firmware programming tools use a serial interface to communicate with your device.
On Windows these interfaces are named ``COM1``, ``COM2``, etc. and on Linux they are named ``/dev/ttyUSB0``,
``/dev/ttyACM1``, etc.
.. note::
If the serial port is not showing up, you might not have the required
drivers installed. The model number you need is engraved on the chip
connected to the USB port, or in the store listing. These drivers work for
most ESP devices:
If it's not showing up as a serial port, you might not have the required drivers
installed. The model number you need is engraved on the chip connected to the USB port.
ESPs and programmers usually ship with one of these UART chips:
* CP2102 (square chip): `driver
<https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers>`__
* CH341: `driver
<https://github.com/nodemcu/nodemcu-devkit/tree/master/Drivers>`__
* CH34x: `driver <https://github.com/nodemcu/nodemcu-devkit/tree/master/Drivers>`__
* CP2102: `driver <https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers>`__
* PL2303: `driver <https://www.prolific.com.tw/US/ShowProduct.aspx?p_id=225&pcid=41>`__
With the exception of the situation where you have a USB port, you need to make
five electrical connections to program an ESP-based board:
- +3.3V, or occasionally +5.0V
- GND, or ground
- TX
- RX
- IO0, used to place the board into programming mode. This is often a button
that you need to hold down while connecting the power (+3.3V).
- ``+3.3V``, or occasionally ``+5.0V``
- ``GND``, or ground
- ``TX`` of programmer to ``RX`` of the ``ESP``
- ``RX`` of programmer to ``TX`` of the ``ESP``
- ``IO0``, used to place the board into programming mode. This is often a button
that you need to hold down while connecting the power (``+3.3V``).
RX and TX are frequently swapped. If programming your board doesn't work the
The power supplied to the device is one of the most important elements for both flashing
the device and for stable operation. You must ensure that the device receives sufficient
power (current AND appropriate voltage level) to properly flash the firmware on the device.
When using an external ``3.3V`` supply, ensure the ground (``GND``) of both are connected together,
this ensures a common ground. A PC power supply can be a good source for ``3.3V`` DC power.
.. note::
Some adapters can be switched between ``3.3V`` and ``5V`` for the data pins, but still provide 5V on the power pin which will irreparably destroy your device. You **MUST** make sure the data (``RX`` and ``TX``) and ``VCC`` pins are set for ``3.3V``.
ESP needs to be put into programming mode or flash mode before the firmware can be uploaded. This is
done by connecting ``GPIO0`` pin to ``GND`` while the chip is booting.
.. _esphome-phy-con-prg:
To put the ESP into programming mode:
* Disconnect the USB connection of your board or serial programmer from the computer (to power off your ESP)
* Bridge ``GPIO0`` and ``GND`` (by pressing the on-board button or connection with a wire)
* Connect the board or serial programmer to your computer (ensuring ESP powers up)
* After a few seconds disconnect ``GPIO0`` from ``GND`` (release button or remove the wire connection). On devices that do not provide the ``GPIO0`` connected button, it may be easier to leave the wired bridge in place throughout the entire flashing process (erase & upload). Doing so will not create any problems. After the firmware is uploaded successfully, remove the bridge. This allows the device to boot normally.
You may need to power-cycle the ESP between erasing and uploading the firmware, this can be done by disconnecting and reconnecting, of course with ``GPIO0`` and ``GND`` still connected to each other.
``RX`` and ``TX`` can be sometimes swapped. If programming your board doesn't work the
first time, try flipping the wires connected to those pins before trying again.
.. warning::

View File

@ -228,6 +228,7 @@ Contributors
- `bwynants (@bwynants) <https://github.com/bwynants>`__
- `c0ffeeca7 (@c0ffeeca7) <https://github.com/c0ffeeca7>`__
- `Captain Haddock (@ca-haddock) <https://github.com/ca-haddock>`__
- `Caleb Gabbie (@calebgab) <https://github.com/calebgab>`__
- `Cal Howard (@calhoward) <https://github.com/calhoward>`__
- `callacomp (@callacomp) <https://github.com/callacomp>`__
- `Callum Gare (@callumgare) <https://github.com/callumgare>`__
@ -390,7 +391,6 @@ Contributors
- `Marcos Pérez Ferro (@djwmarcx) <https://github.com/djwmarcx>`__
- `Dan Mannock (@dmannock) <https://github.com/dmannock>`__
- `Dmitriy Lopatko (@dmitriy5181) <https://github.com/dmitriy5181>`__
- `Farzad E. (@dnetguru) <https://github.com/dnetguru>`__
- `Tristan Rowley (@doctea) <https://github.com/doctea>`__
- `DrZoid (@docteurzoidberg) <https://github.com/docteurzoidberg>`__
- `DominikBitzer (@DominikBitzer) <https://github.com/DominikBitzer>`__
@ -432,6 +432,7 @@ Contributors
- `Ettore Beltrame (@E440QF) <https://github.com/E440QF>`__
- `Earle F. Philhower, III (@earlephilhower) <https://github.com/earlephilhower>`__
- `Ermanno Baschiera (@ebaschiera) <https://github.com/ebaschiera>`__
- `ebw44 (@ebw44) <https://github.com/ebw44>`__
- `Robert Resch (@edenhaus) <https://github.com/edenhaus>`__
- `Niclas Larsson (@edge90) <https://github.com/edge90>`__
- `EdJoPaTo (@EdJoPaTo) <https://github.com/EdJoPaTo>`__
@ -467,12 +468,13 @@ Contributors
- `Eric Hiller (@erichiller) <https://github.com/erichiller>`__
- `Ernst Klamer (@Ernst79) <https://github.com/Ernst79>`__
- `Eduardo Roldan (@eroldan) <https://github.com/eroldan>`__
- `ervede (@ervede) <https://github.com/ervede>`__
- `escoand (@escoand) <https://github.com/escoand>`__
- `Eric Severance (@esev) <https://github.com/esev>`__
- `esphomebot (@esphomebot) <https://github.com/esphomebot>`__
- `espressif2022 (@espressif2022) <https://github.com/espressif2022>`__
- `Daniel Dunn (@EternityForest) <https://github.com/EternityForest>`__
- `EtienneMD (@EtienneMD) <https://github.com/EtienneMD>`__
- `etzisim (@etzisim) <https://github.com/etzisim>`__
- `Evan Coleman (@evandcoleman) <https://github.com/evandcoleman>`__
- `Clemens Kirchgatterer (@everslick) <https://github.com/everslick>`__
- `Everything Smart Home (@EverythingSmartHome) <https://github.com/EverythingSmartHome>`__
@ -482,11 +484,8 @@ Contributors
- `f0rdprefect (@f0rdprefect) <https://github.com/f0rdprefect>`__
- `Fabian Affolter (@fabaff) <https://github.com/fabaff>`__
- `Fabian (@Fabian-Schmidt) <https://github.com/Fabian-Schmidt>`__
- `Fabian Muehlberger (@fabianmuehlberger) <https://github.com/fabianmuehlberger>`__
- `Federico Ariel Castagnini (@facastagnini) <https://github.com/facastagnini>`__
- `C W (@fake-name) <https://github.com/fake-name>`__
- `Fabian Bläse (@fblaese) <https://github.com/fblaese>`__
- `Fabian Berthold (@fbrthld) <https://github.com/fbrthld>`__
- `F.D.Castel (@fdcastel) <https://github.com/fdcastel>`__
- `Sun Xiangyu (@feizi) <https://github.com/feizi>`__
- `felixlungu (@felixlungu) <https://github.com/felixlungu>`__
@ -528,6 +527,7 @@ Contributors
- `Aljaž Srebrnič (@g5pw) <https://github.com/g5pw>`__
- `Alex Hermann (@gaaf) <https://github.com/gaaf>`__
- `Gabe Cook (@gabe565) <https://github.com/gabe565>`__
- `Gábor Poczkodi (@gabest11) <https://github.com/gabest11>`__
- `gazoodle (@gazoodle) <https://github.com/gazoodle>`__
- `gcopeland (@gcopeland) <https://github.com/gcopeland>`__
- `Greg Cormier (@gcormier) <https://github.com/gcormier>`__
@ -582,6 +582,7 @@ Contributors
- `Ha Thach (@hathach) <https://github.com/hathach>`__
- `Cong Hoang Nguyen (@HcNguyen111) <https://github.com/HcNguyen111>`__
- `hcoohb (@hcoohb) <https://github.com/hcoohb>`__
- `helgek (@helgek) <https://github.com/helgek>`__
- `hellotomtom (@hellotomtom) <https://github.com/hellotomtom>`__
- `Jimmy Hedman (@HeMan) <https://github.com/HeMan>`__
- `Hemi03 (@Hemi03) <https://github.com/Hemi03>`__
@ -630,6 +631,7 @@ Contributors
- `Fredrik Gustafsson (@jagheterfredrik) <https://github.com/jagheterfredrik>`__
- `jakehdk (@jakehdk) <https://github.com/jakehdk>`__
- `Jake Shirley (@JakeShirley) <https://github.com/JakeShirley>`__
- `Jonathan Kollasch (@jakllsch) <https://github.com/jakllsch>`__
- `jakub-medrzak (@jakub-medrzak) <https://github.com/jakub-medrzak>`__
- `James Hirka (@jameshirka) <https://github.com/jameshirka>`__
- `James Lakin (@jamesorlakin) <https://github.com/jamesorlakin>`__
@ -849,12 +851,14 @@ Contributors
- `Merlin Schumacher (@merlinschumacher) <https://github.com/merlinschumacher>`__
- `Martin Flasskamp (@MFlasskamp) <https://github.com/MFlasskamp>`__
- `Michael Hoffmann (@mghoffmann) <https://github.com/mghoffmann>`__
- `Michaël Guay-Lambert (@mguaylam) <https://github.com/mguaylam>`__
- `Marcel Hetzendorfer (@mhetzi) <https://github.com/mhetzi>`__
- `M Hightower (@mhightower83) <https://github.com/mhightower83>`__
- `Michael Muré (@MichaelMure) <https://github.com/MichaelMure>`__
- `Michal Fapso (@michalfapso) <https://github.com/michalfapso>`__
- `Michał (@michau-krakow) <https://github.com/michau-krakow>`__
- `Michel Munzert (@michelde) <https://github.com/michelde>`__
- `michlann (@michlann) <https://github.com/michlann>`__
- `micw (@micw) <https://github.com/micw>`__
- `Pauline Middelink (@middelink) <https://github.com/middelink>`__
- `Joel Midstjärna (@midstar) <https://github.com/midstar>`__
@ -879,7 +883,9 @@ Contributors
- `Moriah Morgan (@moriahmorgan) <https://github.com/moriahmorgan>`__
- `moritzj29 (@moritzj29) <https://github.com/moritzj29>`__
- `Chris Laplante (@mostthingsweb) <https://github.com/mostthingsweb>`__
- `Michael P. Flaga (@mpflaga) <https://github.com/mpflaga>`__
- `MrEditor97 (@mreditor97) <https://github.com/mreditor97>`__
- `MRemy2 (@MRemy2) <https://github.com/MRemy2>`__
- `Mariusz Kryński (@mrk-its) <https://github.com/mrk-its>`__
- `Michael Davidson (@MrMDavidson) <https://github.com/MrMDavidson>`__
- `mrred2k (@mrred2k) <https://github.com/mrred2k>`__
@ -937,6 +943,7 @@ Contributors
- `nldroid (@nldroid) <https://github.com/nldroid>`__
- `Niccolò Maggioni (@nmaggioni) <https://github.com/nmaggioni>`__
- `nmeachen (@nmeachen) <https://github.com/nmeachen>`__
- `David Friedland (@nohat) <https://github.com/nohat>`__
- `Álvaro Fernández Rojas (@Noltari) <https://github.com/Noltari>`__
- `Łukasz Śliwiński (@nonameplum) <https://github.com/nonameplum>`__
- `JJ (@notjj) <https://github.com/notjj>`__
@ -997,6 +1004,7 @@ Contributors
- `Peter Galantha (@peterg79) <https://github.com/peterg79>`__
- `Peter Polacek (@PeterPolacek) <https://github.com/PeterPolacek>`__
- `Peter Kieser (@pfak) <https://github.com/pfak>`__
- `Lee (@phatone007) <https://github.com/phatone007>`__
- `Philippe Delodder (@phdelodder) <https://github.com/phdelodder>`__
- `Philipp Helo Rehs (@Phhere) <https://github.com/Phhere>`__
- `philbowers (@philbowers) <https://github.com/philbowers>`__
@ -1030,6 +1038,7 @@ Contributors
- `Pascal Vizeli (@pvizeli) <https://github.com/pvizeli>`__
- `Alex (@pxe-la) <https://github.com/pxe-la>`__
- `[pʲɵs] (@pyos) <https://github.com/pyos>`__
- `Peter Zich (@pzich) <https://github.com/pzich>`__
- `Qc (@qc24) <https://github.com/qc24>`__
- `Quinn Casey (@qcasey) <https://github.com/qcasey>`__
- `qianh-wan (@qianh-wan) <https://github.com/qianh-wan>`__
@ -1084,12 +1093,14 @@ Contributors
- `Jérôme W. (@RomRider) <https://github.com/RomRider>`__
- `roscoegray (@roscoegray) <https://github.com/roscoegray>`__
- `rotarykite (@rotarykite) <https://github.com/rotarykite>`__
- `Roving Ronin (@Roving-Ronin) <https://github.com/Roving-Ronin>`__
- `Robert Paskowitz (@rpaskowitz) <https://github.com/rpaskowitz>`__
- `Rajan Patel (@rpatel3001) <https://github.com/rpatel3001>`__
- `Bob Perciaccante (@rperciaccante) <https://github.com/rperciaccante>`__
- `rradar (@rradar) <https://github.com/rradar>`__
- `rspaargaren (@rspaargaren) <https://github.com/rspaargaren>`__
- `rsumner (@rsumner) <https://github.com/rsumner>`__
- `Romain TORRENTE (@rtorrente) <https://github.com/rtorrente>`__
- `@RubenKelevra (@RubenKelevra) <https://github.com/RubenKelevra>`__
- `Ruben van Dijk (@RubenNL) <https://github.com/RubenNL>`__
- `RubyBailey (@RubyBailey) <https://github.com/RubyBailey>`__
@ -1115,6 +1126,7 @@ Contributors
- `scamiv (@scamiv) <https://github.com/scamiv>`__
- `Nils Schulte (@Schnilz) <https://github.com/Schnilz>`__
- `Wolle (@schreibfaul1) <https://github.com/schreibfaul1>`__
- `Scobber (@Scobber) <https://github.com/Scobber>`__
- `Ville Skyttä (@scop) <https://github.com/scop>`__
- `Dan (@ScrewLooseDan) <https://github.com/ScrewLooseDan>`__
- `Sean True (@seantrue) <https://github.com/seantrue>`__
@ -1294,6 +1306,7 @@ Contributors
- `WallyCZ (@WallyCZ) <https://github.com/WallyCZ>`__
- `walzing (@walzing) <https://github.com/walzing>`__
- `warpzone (@warpzone) <https://github.com/warpzone>`__
- `Warwick Bruce Chapman (@warwickchapman) <https://github.com/warwickchapman>`__
- `Wauter (@Wauter) <https://github.com/Wauter>`__
- `WeekendWarrior1 (@WeekendWarrior1) <https://github.com/WeekendWarrior1>`__
- `Thomas Aldrian (@Weissnix4711) <https://github.com/Weissnix4711>`__
@ -1310,6 +1323,7 @@ Contributors
- `Artur 'Wodor' Wielogorski (@wodor) <https://github.com/wodor>`__
- `Rick van Hattem (@wolph) <https://github.com/wolph>`__
- `workingmanrob (@workingmanrob) <https://github.com/workingmanrob>`__
- `Dawid Wróbel (@wrobelda) <https://github.com/wrobelda>`__
- `Sven Serlier (@wrt54g) <https://github.com/wrt54g>`__
- `Wolfgang Tremmel (@wtremmel) <https://github.com/wtremmel>`__
- `Jiangang Wu (@wujiangang) <https://github.com/wujiangang>`__
@ -1336,4 +1350,4 @@ Contributors
- `Christian Zufferey (@zuzu59) <https://github.com/zuzu59>`__
- `Zynth-dev (@Zynth-dev) <https://github.com/Zynth-dev>`__
*This page was last updated April 4, 2024.*
*This page was last updated April 23, 2024.*

BIN
images/at581x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
images/jsn-sr04t-v3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
images/sun_1000g2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
images/tlc5971.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
images/xiaomi_hhccjcy10.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

521
index.rst
View File

@ -121,41 +121,112 @@ ESPHome is a system to control your microcontrollers by simple yet powerful conf
.. _devices:
Platforms
---------
Supported Microcontrollers
--------------------------
.. imgtable::
ESP8266, components/esp8266, esp8266.svg
ESP32, components/esp32, esp32.svg
ESP8266, components/esp8266, esp8266.svg
RP2040, components/rp2040, rp2040.svg
BK72xx, components/libretiny, bk72xx.svg
RTL87xx, components/libretiny, rtl87xx.svg
Core Components
---------------
Microcontroller Peripherals
---------------------------
Peripherals which directly support the operation of the microcontroller's processor(s).
.. imgtable::
PSRAM, components/psram, psram.svg
Deep Sleep, components/deep_sleep, hotel.svg, dark-invert
ESPHome Components
------------------
ESPHome-specific components or components supporting ESPHome device provisioning post-installation.
.. imgtable::
Core, components/esphome, cloud-circle.svg, dark-invert
PSRAM, components/psram, psram.svg
WiFi, components/wifi, network-wifi.svg, dark-invert
Network, components/network, network-wifi.svg, dark-invert
I²C Bus, components/i2c, i2c.svg
SPI Bus, components/spi, spi.svg
UART Bus, components/uart, uart.svg
CAN Bus, components/canbus, canbus.svg
MQTT, components/mqtt, mqtt.png
OTA Updates, components/ota, system-update.svg, dark-invert
Logger, components/logger, file-document-box.svg, dark-invert
Web Server, components/web_server, http.svg, dark-invert
Native API, components/api, server-network.svg, dark-invert
Power Supply, components/power_supply, power.svg, dark-invert
Deep Sleep, components/deep_sleep, hotel.svg, dark-invert
Captive Portal, components/captive_portal, wifi-strength-alert-outline.svg, dark-invert
Copy, components/copy, content-copy.svg, dark-invert
Demo, components/demo, description.svg, dark-invert
External Components, components/external_components, external_components.svg, dark-invert
Improv via BLE, components/esp32_improv, improv.svg, dark-invert
Improv via Serial, components/improv_serial, improv.svg, dark-invert
Network Hardware
----------------
.. imgtable::
WiFi, components/wifi, network-wifi.svg, dark-invert
ESP32 Ethernet, components/ethernet, ethernet.svg, dark-invert
Network Protocols
-----------------
.. imgtable::
Network Core, components/network, server-network.svg, dark-invert
Native API, components/api, server-network.svg, dark-invert
MQTT, components/mqtt, mqtt.png
HTTP Request, components/http_request, connection.svg, dark-invert
mDNS, components/mdns, radio-tower.svg, dark-invert
WireGuard, components/wireguard, wireguard_custom_logo.svg
Bluetooth/BLE
-------------
.. imgtable::
ESP32 BLE Beacon, components/esp32_ble_beacon, bluetooth.svg, dark-invert
ESP32 BLE Client, components/ble_client, bluetooth.svg, dark-invert
ESP32 BLE Tracker, components/esp32_ble_tracker, bluetooth.svg, dark-invert
Bluetooth Proxy, components/bluetooth_proxy, bluetooth.svg, dark-invert
Improv via BLE, components/esp32_improv, improv.svg, dark-invert
Management and Monitoring
-------------------------
.. imgtable::
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
Prometheus, components/prometheus, prometheus.svg
Web Server, components/web_server, http.svg, dark-invert
ESP32 Camera Web Server, components/esp32_camera_web_server, camera.svg, dark-invert
Hardware Peripheral Interfaces/Busses
-------------------------------------
.. imgtable::
CAN Bus, components/canbus, canbus.svg
I²C Bus, components/i2c, i2c.svg
I²S Audio, components/i2s_audio, i2s_audio.svg
SPI Bus, components/spi, spi.svg
UART, components/uart, uart.svg
I/O Expanders/Multiplexers
--------------------------
.. imgtable::
MAX6956 - I²C Bus, components/max6956, max6956.jpg
MCP230XX - I²C Bus, components/mcp230xx, mcp230xx.svg
MCP23SXX - SPI Bus, components/mcp23Sxx, mcp230xx.svg
PCA6416A, components/pca6416a, pca6416a.svg
PCA9554, components/pca9554, pca9554a.jpg
PCF8574, components/pcf8574, pcf8574.jpg
SN74HC165, components/sn74hc165, sn74hc595.jpg
SN74HC595, components/sn74hc595, sn74hc595.jpg
SX1509, components/sx1509, sx1509.jpg
TCA9548A I²C Multiplexer, components/tca9548a, tca9548a.jpg
XL9535, components/xl9535, xl9535.svg
Sensor Components
-----------------
@ -164,19 +235,19 @@ Sensors are split into categories. If a sensor fits into more than one category,
Core
****
.. imgtable::
Sensor Core, components/sensor/index, folder-open.svg, dark-invert
Template Sensor, components/sensor/template, description.svg, dark-invert
Home Assistant, components/sensor/homeassistant, home-assistant.svg, dark-invert
MQTT Subscribe, components/sensor/mqtt_subscribe, mqtt.png
Uptime Sensor, components/sensor/uptime, timer.svg, dark-invert
WiFi Signal Strength, components/sensor/wifi_signal, network-wifi.svg, dark-invert
Template Sensor, components/sensor/template, description.svg, dark-invert
Custom Sensor, components/sensor/custom, language-cpp.svg, dark-invert
Air Quality
***********
.. imgtable::
AGS10, components/sensor/ags10, ags10.jpg, Volatile Organic Compound Sensor
@ -186,18 +257,19 @@ Air Quality
ENS160, components/sensor/ens160, ens160.jpg, CO2 & Air Quality
GCJA5, components/sensor/gcja5, gcja5.svg, Particulate
HM3301, components/sensor/hm3301, hm3301.jpg, Particulate
iAQ-Core, components/sensor/iaqcore, iaqcore.jpg, CO2 & Volatile organics
MH-Z19, components/sensor/mhz19, mhz19.jpg, CO2 & Temperature
MiCS-4514, components/sensor/mics_4514, mics_4514.jpg, Gas concentration
PM1006 Sensor, components/sensor/pm1006, pm1006.jpg, Particulate
PMSA003I, components/sensor/pmsa003i, pmsa003i.jpg, Particulate
PMSX003, components/sensor/pmsx003, pmsx003.svg, Particulate
RadonEye BLE, components/sensor/radon_eye_ble, radon_eye_logo.png, Radon
SCD30, components/sensor/scd30, scd30.jpg, CO2 & Temperature & Humidity
SCD4X, components/sensor/scd4x, scd4x.jpg, CO2 & Temperature & Humidity
SDS011 Sensor, components/sensor/sds011, sds011.jpg, Particulate
SEN0321, components/sensor/sen0321, sen0321.jpg, Ozone
SEN5x, components/sensor/sen5x, sen54.jpg, Temperature & Humidity, Volatile organics and NOx
SenseAir, components/sensor/senseair, senseair_s8.jpg, CO2
SCD30, components/sensor/scd30, scd30.jpg, CO2 & Temperature & Humidity
SCD4X, components/sensor/scd4x, scd4x.jpg, CO2 & Temperature & Humidity
SFA30, components/sensor/sfa30, sfa30.jpg, Formaldehyde
SGP30, components/sensor/sgp30, sgp30.jpg, CO2 & Volatile organics
SGP4x, components/sensor/sgp4x, sgp40.jpg, Volatile organics and NOx
@ -205,11 +277,10 @@ Air Quality
SPS30, components/sensor/sps30, sps30.jpg, Particulate
T6613/15, components/sensor/t6615, t6615.jpg, CO2
ZyAura, components/sensor/zyaura, zgm053.jpg, CO2 & Temperature & Humidity
iAQ-Core, components/sensor/iaqcore, iaqcore.jpg, CO2 & Volatile organics
Analogue
********
.. imgtable::
ADC, components/sensor/adc, flash.svg, ESP internal, dark-invert
@ -221,24 +292,25 @@ Analogue
MCP3204 / MCP3208, components/sensor/mcp3204, mcp3204.jpg, 4-channel ADC
Resistance, components/sensor/resistance, omega.svg, dark-invert
Bluetooth Low Energy (BLE)
**************************
.. imgtable::
Alpha3, components/sensor/alpha3, alpha3.jpg
AM43, components/sensor/am43, am43.jpg, Lux & Battery level
BLE Client Sensor, components/sensor/ble_client, bluetooth.svg, dark-invert
BLE RSSI, components/sensor/ble_rssi, bluetooth.svg, dark-invert
HHCCJCY10 (MiFlora Pink), components/sensor/xiaomi_hhccjcy10, xiaomi_hhccjcy10.jpg, Soil moisture & Temperature & Light
Inkbird IBS-TH1 Mini, components/sensor/inkbird_ibsth1_mini, inkbird_isbth1_mini.jpg, Temperature & Humidity
Mopeka Pro Check LP, components/sensor/mopeka_pro_check, mopeka_pro_check.jpg, tank level
Mopeka Standard Check LP, components/sensor/mopeka_std_check, mopeka_std_check.jpg, tank level
RuuviTag, components/sensor/ruuvitag, ruuvitag.jpg, Temperature & Humidity & Accelerometer
Xiaomi BLE, components/sensor/xiaomi_ble, xiaomi_mijia_logo.jpg, Various
Alpha3, components/sensor/alpha3, alpha3.jpg
Digital Signals
***************
.. imgtable::
Duty Cycle, components/sensor/duty_cycle, percent.svg, dark-invert
@ -246,22 +318,23 @@ Digital Signals
Pulse Meter, components/sensor/pulse_meter, pulse.svg, dark-invert
Pulse Width, components/sensor/pulse_width, pulse.svg, dark-invert
Distance
********
.. imgtable::
A01NYUB, components/sensor/a01nyub, a01nyub.jpg, Acoustic distance
A02YYUW, components/sensor/a02yyuw, a02yyuw.jpg, Acoustic distance
HRXL MaxSonar WR, components/sensor/hrxl_maxsonar_wr, hrxl_maxsonar_wr.jpg, Acoustic distance
JSN-SR04T, components/sensor/jsn_sr04t, jsn-sr04t-v3.jpg, Acoustic distance
TOF10120, components/sensor/tof10120, tof10120.jpg, IR optical distance
Ultrasonic Sensor, components/sensor/ultrasonic, ultrasonic.jpg, Acoustic distance
VL53L0x, components/sensor/vl53l0x, vl53l0x.jpg, IR optical distance
Zio Ultrasonic Sensor, components/sensor/zio_ultrasonic, zio_ultrasonic.jpg, Acoustic distance
Electricity
***********
.. imgtable::
ADE7880, components/sensor/ade7880, ade7880.svg, Voltage & Current & Power
@ -292,7 +365,6 @@ Electricity
Teleinfo, components/sensor/teleinfo, teleinfo.jpg, Electrical counter
Total Daily Energy, components/sensor/total_daily_energy, sigma.svg, dark-invert
Environmental
*************
@ -303,14 +375,14 @@ Environmental
AirThings BLE, components/sensor/airthings_ble, airthings_logo.png, Temperature & Humidity & Pressure
AM2315C, components/sensor/am2315c, am2315c.jpg, Temperature & Humidity
AM2320, components/sensor/am2320, am2320.jpg, Temperature & Humidity
b-parasite, components/sensor/b_parasite, b_parasite.jpg, Moisture & Temperature & Humidity & Light
BME280, components/sensor/bme280, bme280.jpg, Temperature & Humidity & Pressure
BME680, components/sensor/bme680, bme680.jpg, Temperature & Humidity & Pressure & Gas
BME680 via BSEC, components/sensor/bme680_bsec, bme680.jpg, Temperature & Humidity & Pressure & Gas
BME680, components/sensor/bme680, bme680.jpg, Temperature & Humidity & Pressure & Gas
BMP085, components/sensor/bmp085, bmp180.jpg, Temperature & Pressure
BMP280, components/sensor/bmp280, bmp280.jpg, Temperature & Pressure
BMP388 and BMP390, components/sensor/bmp3xx, bmp388.jpg, Temperature & Pressure
BMP581, components/sensor/bmp581, bmp581.jpg, Temperature & Pressure
b-parasite, components/sensor/b_parasite, b_parasite.jpg, Moisture & Temperature & Humidity & Light
Dallas DS18B20, components/sensor/dallas, dallas.jpg, Temperature
DHT, components/sensor/dht, dht.jpg, Temperature & Humidity
DHT12, components/sensor/dht12, dht12.jpg, Temperature & Humidity
@ -319,13 +391,15 @@ Environmental
ENS160, components/sensor/ens160, ens160.jpg, CO2 & Air Quality
ENS210, components/sensor/ens210, ens210.jpg, Temperature & Humidity
HDC1080, components/sensor/hdc1080, hdc1080.jpg, Temperature & Humidity
HTE501, components/sensor/hte501, HTE501.png, Temperature & Humidity
HHCCJCY10 (MiFlora Pink), components/sensor/xiaomi_hhccjcy10, xiaomi_hhccjcy10.jpg, Soil moisture & Temperature & Light
Honeywell ABP, components/sensor/honeywellabp, honeywellabp.jpg, Pressure & Temperature
Honeywell ABP2 I2C, components/sensor/honeywellabp2_i2c, honeywellabp.jpg, Pressure & Temperature
Honeywell HIH I2C, components/sensor/honeywell_hih_i2c, honeywellhih.jpg, Temperature & Humidity
HTE501, components/sensor/hte501, HTE501.png, Temperature & Humidity
HTU21D / Si7021 / SHT21, components/sensor/htu21d, htu21d.jpg, Temperature & Humidity
HTU31D, components/sensor/htu31d, htu31d.jpg, Temperature & Humidity
Hydreon Rain Sensor, components/sensor/hydreon_rgxx, hydreon_rg9.jpg, Rain
HYT271, components/sensor/hyt271, hyt271.jpg, Temperature & Humidity
Inkbird IBS-TH1 Mini, components/sensor/inkbird_ibsth1_mini, inkbird_isbth1_mini.jpg, Temperature & Humidity
Internal Temperature, components/sensor/internal_temperature, thermometer.svg, Temperature, dark-invert
MCP9808, components/sensor/mcp9808, mcp9808.jpg, Temperature
@ -350,14 +424,13 @@ Environmental
STS3X, components/sensor/sts3x, sts3x.jpg, Temperature
TEE501, components/sensor/tee501, TEE501.png, Temperature
TMP102, components/sensor/tmp102, tmp102.jpg, Temperature
TMP117, components/sensor/tmp117, tmp117.jpg, Temperature
TMP1075, components/sensor/tmp1075, tmp1075.jpg, Temperature
HYT271, components/sensor/hyt271, hyt271.jpg, Temperature & Humidity
TMP117, components/sensor/tmp117, tmp117.jpg, Temperature
XGZP68xx Series, components/sensor/xgzp68xx, 6897d.jpg, Differential Pressure
Light
*****
.. imgtable::
AM43, components/sensor/am43, am43.jpg, Lux
@ -373,65 +446,65 @@ Light
VEML6030, components/sensor/veml7700, veml6030.jpg, Lux
VEML7700, components/sensor/veml7700, veml7700.jpg, Lux
Magnetic
********
.. imgtable::
ESP32 Hall Sensor, components/sensor/esp32_hall, magnet.svg, ESP internal, dark-invert
AS5600, components/sensor/as5600, as5600.jpg, 12-Bit Magnetic Position Sensor
ESP32 Hall Sensor, components/sensor/esp32_hall, magnet.svg, ESP internal, dark-invert
HMC5883L, components/sensor/hmc5883l, hmc5883l.jpg, 3-Axis magnetometer
MLX90393, components/sensor/mlx90393, mlx90393.jpg, 3-Axis magnetometer
MMC5603, components/sensor/mmc5603, mmc5603.jpg, 3-Axis magnetometer
MMC5983, components/sensor/mmc5983, mmc5983.jpg, 3-Axis magnetometer
MLX90393, components/sensor/mlx90393, mlx90393.jpg, 3-Axis magnetometer
QMC5883L, components/sensor/qmc5883l, qmc5883l.jpg, 3-Axis magnetometer
Miscellaneous
*************
.. imgtable::
AS3935, components/sensor/as3935, as3935.jpg, Storm lightning
Binary Sensor Map, components/sensor/binary_sensor_map, binary_sensor_map.jpg, Map binary to value
b-parasite, components/sensor/b_parasite, b_parasite.jpg, Moisture & Temperature & Humidity & Light
Binary Sensor Map, components/sensor/binary_sensor_map, binary_sensor_map.jpg, Map binary to value
Combination, components/sensor/combination, function.svg, dark-invert
Duty Time, components/sensor/duty_time, timer-play-outline.svg, dark-invert
EZO sensor circuits, components/sensor/ezo, ezo-ph-circuit.png, (pH)
FS3000, components/sensor/fs3000, fs3000.jpg, Air velocity
Growatt Solar, components/sensor/growatt_solar, growatt.jpg, Solar rooftop
Havells Solar, components/sensor/havells_solar, havellsgti5000d_s.jpg, Solar rooftop
Integration, components/sensor/integration, sigma.svg, dark-invert
Growatt Solar, components/sensor/growatt_solar, growatt.jpg, Solar rooftop
Kuntze pool sensor, components/sensor/kuntze, kuntze.jpg
MicroNova pellet stove, components/micronova, pellet.svg
Modbus Sensor, components/sensor/modbus_controller, modbus.png
Nextion, components/sensor/nextion, nextion.jpg, Sensors from display
Person Sensor (SEN21231), components/sensor/sen21231, sen21231.png
Resol VBus, components/vbus, resol_deltasol_bs_plus.jpg
Rotary Encoder, components/sensor/rotary_encoder, rotary_encoder.jpg
SMT100, components/sensor/smt100, smt100.jpg, Moisture & Temperature
Tuya Sensor, components/sensor/tuya, tuya.png
TX20, components/sensor/tx20, tx20.jpg, Wind speed & Wind direction
uFire EC sensor, components/sensor/ufire_ec, ufire_ec.png, EC & Temperature
uFire ISE sensor, components/sensor/ufire_ise, ufire_ise.png, pH & Temperature
Resol VBus, components/vbus, resol_deltasol_bs_plus.jpg
Person Sensor (SEN21231), components/sensor/sen21231, sen21231.png
Kuntze pool sensor, components/sensor/kuntze, kuntze.jpg
WireGuard, components/wireguard, wireguard_custom_logo.svg
MicroNova pellet stove, components/micronova, pellet.svg
Motion
******
.. imgtable::
APDS9960, components/sensor/apds9960, apds9960.jpg, Colour & Gesture
BMI160, components/sensor/bmi160, bmi160.jpg, Accelerometer & Gyroscope
LD2410, components/sensor/ld2410, ld2410.jpg, Motion & Presence
LD2420, components/sensor/ld2420, ld2420.jpg, Motion & Presence
Seeed Studio MR24HPC1 mmWave, components/seeed_mr24hpc1, seeed-mr24hpc1.jpg, Motion & Presence
MPU6050, components/sensor/mpu6050, mpu6050.jpg, Accelerometer & Gyroscope
MPU6886, components/sensor/mpu6886, mpu6886.jpg, Accelerometer & Gyroscope
RuuviTag, components/sensor/ruuvitag, ruuvitag.jpg, Temperature & Humidity & Accelerometer
Seeed Studio MR24HPC1 mmWave, components/seeed_mr24hpc1, seeed-mr24hpc1.jpg, Motion & Presence
Thermocouple
************
.. imgtable::
KMeterISO, components/sensor/kmeteriso, kmeteriso.jpg, K-Type,
@ -441,9 +514,9 @@ Thermocouple
MAX6675, components/sensor/max6675, max6675.jpg, K-Type,
MCP9600, components/sensor/mcp9600, mcp9600.jpg, All types
Weight
******
.. imgtable::
HX711, components/sensor/hx711, hx711.jpg, Load cell amplifier
@ -462,17 +535,18 @@ Binary Sensors are split into categories. If a sensor fits into more than one ca
Core
****
.. imgtable::
Binary Sensor Core, components/binary_sensor/index, folder-open.svg, dark-invert
Custom Binary Sensor, components/binary_sensor/custom, language-cpp.svg, dark-invert
Template Binary Sensor, components/binary_sensor/template, description.svg, dark-invert
GPIO, components/binary_sensor/gpio, pin.svg, dark-invert
Home Assistant, components/binary_sensor/homeassistant, home-assistant.svg, dark-invert
Status, components/binary_sensor/status, server-network.svg, dark-invert
Template Binary Sensor, components/binary_sensor/template, description.svg, dark-invert
Capacitive Touch
****************
.. imgtable::
CAP1188 Capacitive Touch Sensor, components/binary_sensor/cap1188, cap1188.jpg
@ -482,14 +556,15 @@ Capacitive Touch
Mechanical
**********
.. imgtable::
Matrix Keypad, components/matrix_keypad, matrix_keypad.jpg
TM1637, components/display/tm1637, tm1637.jpg
TM1638, components/display/tm1638, tm1638.jpg
NFC/RFID Components
*******************
NFC/RFID
********
Often known as "tag" or "card" readers within the community.
@ -501,21 +576,25 @@ Often known as "tag" or "card" readers within the community.
PN716X, components/pn7160, pn716x.jpg
RC522, components/binary_sensor/rc522, rc522.jpg
RDM6300, components/binary_sensor/rdm6300, rdm6300.jpg
Wiegand Reader, components/wiegand, wiegand.jpg
Touchscreen
***********
.. imgtable::
Nextion Binary Sensor, components/binary_sensor/nextion, nextion.jpg
Touchscreen, components/touchscreen/index, touch.svg, dark-invert
TT21100, components/touchscreen/tt21100, esp32-s3-korvo-2-lcd.png
Touchscreen Core, components/touchscreen/index, touch.svg, dark-invert
FT5X06, components/touchscreen/ft5x06, indicator.jpg
GT911, components/touchscreen/gt911, esp32_s3_box_3.png
Nextion Binary Sensor, components/binary_sensor/nextion, nextion.jpg
TT21100, components/touchscreen/tt21100, esp32-s3-korvo-2-lcd.png
Presence Detection
******************
.. imgtable::
AT581X, components/at581x, at581x.png
DFRobot mmWave Radar, components/dfrobot_sen0395, dfrobot_sen0395.jpg
LD2410, components/sensor/ld2410, ld2410.jpg
LD2420, components/sensor/ld2420, ld2420.jpg
@ -523,6 +602,7 @@ Presence Detection
Miscellaneous
*************
.. imgtable::
Analog Threshold, components/binary_sensor/analog_threshold, analog_threshold.svg, dark-invert
@ -543,35 +623,35 @@ Output Components
.. imgtable::
Output Core, components/output/index, folder-open.svg, dark-invert
ESP8266 Software PWM, components/output/esp8266_pwm, pwm.png
Slow PWM, components/output/slow_pwm, pwm.png
GPIO Output, components/output/gpio, pin.svg, dark-invert
Template Output, components/output/template, description.svg, dark-invert
AC Dimmer, components/output/ac_dimmer, ac_dimmer.svg, dark-invert
BLE Binary Output, components/output/ble_client, bluetooth.svg, dark-invert
BP1658CJ, components/output/bp1658cj, bp1658cj.svg
BP5758D, components/output/bp5758d, bp5758d.svg
DAC7678, components/output/dac7678, dac7678.svg
EMC2101, components/emc2101, emc2101.jpg
ESP32 DAC, components/output/esp32_dac, dac.svg
ESP32 LEDC, components/output/ledc, pwm.png
ESP8266 Software PWM, components/output/esp8266_pwm, pwm.png
GP8403, components/output/gp8403, gp8403.svg
GPIO Output, components/output/gpio, pin.svg, dark-invert
LibreTiny PWM, components/output/libretiny_pwm, pwm.png
AC Dimmer, components/output/ac_dimmer, ac_dimmer.svg, dark-invert
PCA9685, components/output/pca9685, pca9685.jpg
TLC59208F, components/output/tlc59208f, tlc59208f.jpg
TLC5947, components/output/tlc5947, tlc5947.jpg
MCP4725, components/output/mcp4725, mcp4725.jpg
MCP4728, components/output/mcp4728, mcp4728.jpg
MCP47A1, components/output/mcp47a1, mcp47a1.svg
Modbus Output, components/output/modbus_controller, modbus.png
MY9231/MY9291, components/output/my9231, my9231.svg
PCA9685, components/output/pca9685, pca9685.jpg
Sigma-Delta Output, components/output/sigma_delta_output, sigma-delta.svg, dark-invert
Slow PWM, components/output/slow_pwm, pwm.png
SM16716, components/output/sm16716, sm16716.svg
SM2135, components/output/sm2135, sm2135.svg
SM2235, components/output/sm2235, sm2235.svg
SM2335, components/output/sm2335, sm2335.svg
MCP4725, components/output/mcp4725, mcp4725.jpg
MCP4728, components/output/mcp4728, mcp4728.jpg
MCP47A1, components/output/mcp47a1, mcp47a1.svg
DAC7678, components/output/dac7678, dac7678.svg
BLE Binary Output, components/output/ble_client, bluetooth.svg, dark-invert
Modbus Output, components/output/modbus_controller, modbus.png
Custom Output, components/output/custom, language-cpp.svg, dark-invert
Sigma-Delta Output, components/output/sigma_delta_output, sigma-delta.svg, dark-invert
Template Output, components/output/template, description.svg, dark-invert
BP1658CJ, components/output/bp1658cj, bp1658cj.svg
BP5758D, components/output/bp5758d, bp5758d.svg
TLC59208F, components/output/tlc59208f, tlc59208f.jpg
TLC5947, components/output/tlc5947, tlc5947.jpg
TLC5971, components/output/tlc5971, tlc5971.jpg
X9C Potentiometer, components/output/x9c, x9c.jpg
GP8403, components/output/gp8403, gp8403.svg
EMC2101, components/emc2101, emc2101.jpg
Light Components
----------------
@ -580,33 +660,29 @@ Light Components
Light Core, components/light/index, folder-open.svg, dark-invert
Binary Light, components/light/binary, lightbulb.svg, dark-invert
Status Led, components/light/status_led, led-on.svg, dark-invert
Monochromatic Light, components/light/monochromatic, brightness-medium.svg, dark-invert
Cold+Warm White Light, components/light/cwww, brightness-medium.svg, dark-invert
Color Temperature Light, components/light/color_temperature, brightness-medium.svg, dark-invert
ESP32 RMT, components/light/esp32_rmt_led_strip, color_lens.svg, dark-invert
FastLED Light, components/light/fastled, color_lens.svg, dark-invert
H-bridge Light, components/light/hbridge, brightness-medium.svg, dark-invert
Light Partition, components/light/partition, color_lens.svg, dark-invert
LightWaveRF, components/lightwaverf, brightness-medium.svg
Monochromatic Light, components/light/monochromatic, brightness-medium.svg, dark-invert
NeoPixelBus Light, components/light/neopixelbus, color_lens.svg, dark-invert
RGB Light, components/light/rgb, rgb.png
RGBCT Light, components/light/rgbct, rgbw.png
RGBW Light, components/light/rgbw, rgbw.png
RGBWW Light, components/light/rgbww, rgbw.png
RGBCT Light, components/light/rgbct, rgbw.png
ESP32 RMT, components/light/esp32_rmt_led_strip, color_lens.svg, dark-invert
RP2040 PIO, components/light/rp2040_pio_led_strip, color_lens.svg, dark-invert
FastLED Light, components/light/fastled, color_lens.svg, dark-invert
NeoPixelBus Light, components/light/neopixelbus, color_lens.svg, dark-invert
Light Partition, components/light/partition, color_lens.svg, dark-invert
SPI LED Strips, components/light/spi_led_strip, apa102.jpg
Tuya Dimmer, components/light/tuya, tuya.png
Shelly Dimmer, components/light/shelly_dimmer, shellydimmer2.jpg
Custom Light, components/light/custom, language-cpp.svg, dark-invert
LightWaveRF, components/lightwaverf, brightness-medium.svg
H-bridge Light, components/light/hbridge, brightness-medium.svg, dark-invert
Sonoff D1 Dimmer, components/light/sonoff_d1, sonoff_d1.jpg
SPI LED Strips, components/light/spi_led_strip, apa102.jpg
Status Led, components/light/status_led, led-on.svg, dark-invert
Tuya Dimmer, components/light/tuya, tuya.png
Looking for WS2811 and similar individually addressable lights? Have a look at the
:doc:`FastLED Light </components/light/fastled>`.
**Looking for WS2811 and similar individually addressable lights?** For the ESP32 and its variants, we
recommend the :doc:`components/light/esp32_rmt_led_strip` or :doc:`components/light/spi_led_strip`; for
other processors, have a look at the :doc:`FastLED Light </components/light/fastled>`.
Switch Components
-----------------
@ -614,19 +690,18 @@ Switch Components
.. imgtable::
Switch Core, components/switch/index, folder-open.svg, dark-invert
Template Switch, components/switch/template, description.svg, dark-invert
BLE Client Switch, components/switch/ble_client, bluetooth.svg, dark-invert
Factory Reset Switch, components/switch/factory_reset, restart-alert.svg, dark-invert
Generic Output Switch, components/switch/output, upload.svg, dark-invert
GPIO Switch, components/switch/gpio, pin.svg, dark-invert
Modbus Switch, components/switch/modbus_controller, modbus.png
Nextion Switch, components/switch/nextion, nextion.jpg
Restart Switch, components/switch/restart, restart.svg, dark-invert
Safe Mode Switch, components/switch/safe_mode, restart-alert.svg, dark-invert
Shutdown Switch, components/switch/shutdown, power_settings.svg, dark-invert
Factory Reset Switch, components/switch/factory_reset, restart-alert.svg, dark-invert
Generic Output Switch, components/switch/output, upload.svg, dark-invert
Template Switch, components/switch/template, description.svg, dark-invert
UART Switch, components/switch/uart, uart.svg
Custom Switch, components/switch/custom, language-cpp.svg, dark-invert
Tuya Switch, components/switch/tuya, tuya.png
Modbus Switch, components/switch/modbus_controller, modbus.png
BLE Client Switch, components/switch/ble_client, bluetooth.svg, dark-invert
Nextion Switch, components/switch/nextion, nextion.jpg
UART Switch, components/switch/uart, uart.svg
Button Components
-----------------
@ -635,14 +710,13 @@ Button Components
Button Core, components/button/index, folder-open.svg, dark-invert
Template Button, components/button/template, description.svg, dark-invert
Factory Reset Button, components/button/factory_reset, restart-alert.svg, dark-invert
Generic Output Button, components/button/output, upload.svg, dark-invert
Restart Button, components/button/restart, restart.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
Factory Reset Button, components/button/factory_reset, restart-alert.svg, dark-invert
Wake-on-LAN, components/button/wake_on_lan, power_settings.svg, dark-invert
UART Button, components/button/uart, uart.svg
Wake-on-LAN, components/button/wake_on_lan, power_settings.svg, dark-invert
Fan Components
--------------
@ -650,11 +724,11 @@ Fan Components
.. imgtable::
Fan Core, components/fan/index, folder-open.svg, dark-invert
Template Fan, components/fan/template, description.svg, dark-invert
Binary Fan, components/fan/binary, fan.svg, dark-invert
H-bridge Fan, components/fan/hbridge, fan.svg, dark-invert
Speed Fan, components/fan/speed, fan.svg, dark-invert
Tuya Fan, components/fan/tuya, tuya.png
Template Fan, components/fan/template, description.svg, dark-invert
Display Components
------------------
@ -662,7 +736,17 @@ Display Components
.. imgtable::
Display Core, components/display/index, folder-open.svg, dark-invert
Display Menu Core, components/display_menu/index, folder-open.svg, dark-invert
Font Renderer, components/display/fonts, format-font.svg, dark-invert
Graphical Display Menu, components/display_menu/graphical_display_menu, graphical_display_menu.png
LCD Menu, components/display_menu/lcd_menu, lcd_menu.png
Display Hardware Platforms
--------------------------
.. imgtable::
Addressable Light, components/display/addressable_light, addressable_light.jpg
ILI9xxx, components/display/ili9xxx, ili9341.jpg
ILI9341, components/display/ili9xxx, ili9341.svg
@ -671,15 +755,14 @@ Display Components
ILI9486, components/display/ili9xxx, ili9341.jpg
ILI9488, components/display/ili9xxx, ili9488.svg
WSPICOLCD, components/display/ili9xxx, ili9488.svg
Inkplate, components/display/inkplate6, inkplate6.jpg
LCD Display, components/display/lcd_display, lcd.jpg
MAX7219, components/display/max7219, max7219.jpg
MAX7219 Dot Matrix, components/display/max7219digit, max7219digit.jpg
MAX7219, components/display/max7219, max7219.jpg
Nextion, components/display/nextion, nextion.jpg
PCD8544 (Nokia 5110/ 3310), components/display/pcd8544, pcd8544.jpg
Quad SPI AMOLED, components/display/qspi_amoled, t4-s3.jpg
PVVX MiThermometer, components/display/pvvx_mithermometer, ../components/sensor/images/xiaomi_lywsd03mmc.jpg
Quad SPI AMOLED, components/display/qspi_amoled, t4-s3.jpg
RPI_DPI_RGB, components/display/rpi_dpi_rgb, waveshare_touch-s3.jpg
SSD1306, components/display/ssd1306, ssd1306.jpg
SSD1322, components/display/ssd1322, ssd1322.jpg
@ -688,14 +771,15 @@ Display Components
SSD1331, components/display/ssd1331, ssd1331.jpg
SSD1351, components/display/ssd1351, ssd1351.jpg
ST7567, components/display/st7567, st7567.jpg
ST7735, components/display/st7735, st7735.jpg
ST7701S, components/display/st7701s, indicator.jpg
ST7735, components/display/st7735, st7735.jpg
ST7789V, components/display/st7789v, st7789v.jpg
ST7796, components/display/ili9xxx, st7796.svg
ST7920, components/display/st7920, st7920.jpg
TM1621, components/display/tm1621, tm1621.jpg
TM1637, components/display/tm1637, tm1637.jpg
TM1638, components/display/tm1638, tm1638.jpg
TM1651 Battery Display, components/tm1651, tm1651_battery_display.jpg
Waveshare E-Paper, components/display/waveshare_epaper, waveshare_epaper.jpg
Touchscreen Components
@ -704,14 +788,14 @@ Touchscreen Components
.. imgtable::
Touchscreen Core, components/touchscreen/index, folder-open.svg, dark-invert
CST226, components/touchscreen/cst226, t4-s3.jpg
CST816, components/touchscreen/cst816, cst816.jpg
EKTF2232, components/touchscreen/ektf2232, ektf2232.svg, Inkplate 6 Plus
FT63X6, components/touchscreen/ft63x6, wt32-sc01.png
GT911, components/touchscreen/gt911, esp32_s3_box_3.png
Lilygo T5 4.7", components/touchscreen/lilygo_t5_47, lilygo_t5_47_touch.jpg
TT21100, components/touchscreen/tt21100, esp32-s3-korvo-2-lcd.png
XPT2046, components/touchscreen/xpt2046, xpt2046.jpg
CST226, components/touchscreen/cst226, t4-s3.jpg
GT911, components/touchscreen/gt911, esp32_s3_box_3.png
FT63X6, components/touchscreen/ft63x6, wt32-sc01.png
Cover Components
----------------
@ -720,14 +804,21 @@ Cover Components
Cover Core, components/cover/index, folder-open.svg, dark-invert
Template Cover, components/cover/template, description.svg, dark-invert
Feedback Cover, components/cover/feedback, feedback_cover.svg, dark-invert
Endstop Cover, components/cover/endstop, electric-switch.svg, dark-invert
Current-Based Cover, components/cover/current_based, flash.svg, dark-invert
Time-Based Cover, components/cover/time_based, timer.svg, dark-invert
Custom Cover, components/cover/custom, language-cpp.svg, dark-invert
AM43 Cover, components/cover/am43, am43.jpg
Tuya Cover, components/cover/tuya, tuya.png
Current-Based Cover, components/cover/current_based, flash.svg, dark-invert
Endstop Cover, components/cover/endstop, electric-switch.svg, dark-invert
Feedback Cover, components/cover/feedback, feedback_cover.svg, dark-invert
HE60R Cover, components/cover/he60r, he60r.jpg
Time-Based Cover, components/cover/time_based, timer.svg, dark-invert
Tuya Cover, components/cover/tuya, tuya.png
Text Components
---------------
.. imgtable::
Text Core, components/text/index, folder-open.svg, dark-invert
Template Text, components/text/template, description.svg, dark-invert
Text Sensor Components
----------------------
@ -735,20 +826,19 @@ Text Sensor Components
.. imgtable::
Text Sensor Core, components/text_sensor/index, folder-open.svg, dark-invert
Home Assistant, components/text_sensor/homeassistant, home-assistant.svg, dark-invert
MQTT Subscribe Text, components/text_sensor/mqtt_subscribe, mqtt.png
Version, components/text_sensor/version, new-box.svg, dark-invert
WiFi Info, components/text_sensor/wifi_info, network-wifi.svg, dark-invert
Ethernet Info, components/text_sensor/ethernet_info, ethernet.svg, dark-invert
BLE Scanner, components/text_sensor/ble_scanner, bluetooth.svg, dark-invert
Modbus Text Sensor, components/text_sensor/modbus_controller, modbus.png
Template Text Sensor, components/text_sensor/template, description.svg, dark-invert
Custom Text Sensor, components/text_sensor/custom, language-cpp.svg, dark-invert
BLE Scanner, components/text_sensor/ble_scanner, bluetooth.svg, dark-invert
Ethernet Info, components/text_sensor/ethernet_info, ethernet.svg, dark-invert
Home Assistant, components/text_sensor/homeassistant, home-assistant.svg, dark-invert
LibreTiny, components/text_sensor/libretiny, libretiny.svg
Modbus Text Sensor, components/text_sensor/modbus_controller, modbus.png
MQTT Subscribe Text, components/text_sensor/mqtt_subscribe, mqtt.png
Nextion Text Sensor, components/text_sensor/nextion, nextion.jpg
Tuya Text Sensor, components/text_sensor/tuya, tuya.png
WL-134 Pet Tag Sensor , components/text_sensor/wl_134, fingerprint.svg, dark-invert
LibreTiny, components/text_sensor/libretiny, libretiny.svg
Version, components/text_sensor/version, new-box.svg, dark-invert
WiFi Info, components/text_sensor/wifi_info, network-wifi.svg, dark-invert
WireGuard, components/wireguard, wireguard_custom_logo.svg
WL-134 Pet Tag Sensor , components/text_sensor/wl_134, fingerprint.svg, dark-invert
Climate Components
------------------
@ -756,16 +846,15 @@ Climate Components
.. imgtable::
Climate Core, components/climate/index, folder-open.svg, dark-invert
Bang Bang Controller, components/climate/bang_bang, air-conditioner.svg, dark-invert
Thermostat Controller, components/climate/thermostat, air-conditioner.svg, dark-invert
Custom Climate, components/climate/custom, language-cpp.svg, dark-invert
PID Controller, components/climate/pid, function.svg, dark-invert
IR Remote Climate, components/climate/climate_ir, air-conditioner-ir.svg, dark-invert
Tuya Climate, components/climate/tuya, tuya.png
Midea, components/climate/midea, midea.svg
Anova Cooker, components/climate/anova, anova.png
Bang Bang Controller, components/climate/bang_bang, air-conditioner.svg, dark-invert
BedJet Climate System, components/climate/bedjet, bedjet.png
Haier Climate, components/climate/haier, haier.svg
IR Remote Climate, components/climate/climate_ir, air-conditioner-ir.svg, dark-invert
Midea, components/climate/midea, midea.svg
PID Controller, components/climate/pid, function.svg, dark-invert
Thermostat Controller, components/climate/thermostat, air-conditioner.svg, dark-invert
Tuya Climate, components/climate/tuya, tuya.png
Uponor Smatrix Base Pulse Underfloor Heating, components/uponor_smatrix, uponor.svg
Number Components
@ -774,8 +863,8 @@ Number Components
.. imgtable::
Number Core, components/number/index, folder-open.svg, dark-invert
Modbus Number, components/number/modbus_controller, modbus.png
Template Number, components/number/template, description.svg, dark-invert
Modbus Number, components/number/modbus_controller, modbus.png
Tuya Number, components/number/tuya, tuya.png
Select Components
@ -794,16 +883,8 @@ Lock Components
.. imgtable::
Lock Core, components/lock/index, folder-open.svg, dark-invert
Generic Output Lock, components/lock/output, upload.svg, dark-invert
Template Lock, components/lock/template, description.svg, dark-invert
Text Components
---------------
.. imgtable::
Text Core, components/text/index, folder-open.svg, dark-invert
Template Text, components/text/template, description.svg, dark-invert
Generic Output Lock, components/lock/output, upload.svg, dark-invert
Media Player Components
-----------------------
@ -811,6 +892,7 @@ Media Player Components
.. imgtable::
Media Player Core, components/media_player/index, folder-open.svg, dark-invert
DFPlayer, components/dfplayer, dfplayer.svg, dark-invert
I2S Audio, components/media_player/i2s_audio, i2s_audio.svg
Microphone Components
@ -835,24 +917,26 @@ Time Components
.. imgtable::
Time Core, components/time/index, clock-outline.svg, dark-invert
Home Assistant Time, components/time/homeassistant, home-assistant.svg, dark-invert
SNTP, components/time/sntp, clock-outline.svg, dark-invert
GPS Time, components/time/gps, crosshairs-gps.svg, dark-invert
DS1307 RTC, components/time/ds1307, clock-outline.svg, dark-invert
PCF8563 RTC, components/time/pcf8563, clock-outline.svg, dark-invert
GPS Time, components/time/gps, crosshairs-gps.svg, dark-invert
Home Assistant Time, components/time/homeassistant, home-assistant.svg, dark-invert
PCF85063 RTC, components/time/pcf85063, clock-outline.svg, dark-invert
PCF8563 RTC, components/time/pcf8563, clock-outline.svg, dark-invert
SNTP, components/time/sntp, clock-outline.svg, dark-invert
Home Assistant Companion Components
-----------------------------------
Home Assistant Components
-------------------------
Components specifically for interacting with Home Assistant.
.. imgtable::
Binary Sensor, components/binary_sensor/homeassistant, home-assistant.svg, dark-invert
Bluetooth Proxy, components/bluetooth_proxy, bluetooth.svg, dark-invert
Voice Assistant, components/voice_assistant, voice-assistant.svg, dark-invert
micro Wake Word, components/micro_wake_word, voice-assistant.svg, dark-invert
Sensor, components/sensor/homeassistant, home-assistant.svg, dark-invert
Text Sensor, components/text_sensor/homeassistant, home-assistant.svg, dark-invert
Binary Sensor, components/binary_sensor/homeassistant, home-assistant.svg, dark-invert
Voice Assistant, components/voice_assistant, voice-assistant.svg, dark-invert
Alarm Control Panel Components
@ -871,80 +955,75 @@ Datetime Components
Datetime Core, components/datetime/index, clock-outline.svg, dark-invert
Template Datetime, components/datetime/template, description.svg, dark-invert
Energy/Solar Management
-----------------------
.. imgtable::
PipSolar-compatible PV Inverter, components/pipsolar, pipsolar.jpg
Power Supply, components/power_supply, power.svg, dark-invert
Resol VBus, components/vbus, resol_deltasol_bs_plus.jpg
SML, components/sml, sml.svg
SUN-GTIL2 inverter, components/sun_gtil2, sun_1000g2.png
Electromechanical
-----------------
.. imgtable::
Atlas Scientific Peristaltic Pump, components/ezo_pmp, ezo-pmp.jpg
Grove TB6612FNG, components/grove_tb6612fng, motor.png
Matrix Keypad, components/matrix_keypad, matrix_keypad.jpg
RTTTL Buzzer, components/rtttl, buzzer.jpg
Servo, components/servo, servo.svg
Stepper, components/stepper/index, stepper.svg
Wireless Communication
----------------------
Wireless communication that is **not Wi-Fi.**
.. imgtable::
IR Remote Climate, components/climate/climate_ir, air-conditioner-ir.svg, dark-invert
Remote Receiver, components/remote_receiver, remote.svg, dark-invert
Remote Transmitter, components/remote_transmitter, remote.svg, dark-invert
RF Bridge, components/rf_bridge, rf_bridge.jpg
SIM800L, components/sim800l, sim800l.jpg
Miscellaneous Components
------------------------
.. imgtable::
Remote Receiver, components/remote_receiver, remote.svg, dark-invert
Remote Transmitter, components/remote_transmitter, remote.svg, dark-invert
Status LED, components/status_led, led-on.svg, dark-invert
Display Menu Core, components/display_menu/index, folder-open.svg, dark-invert
LCD Menu, components/display_menu/lcd_menu, lcd_menu.png
Graphical Display Menu, components/display_menu/graphical_display_menu, graphical_display_menu.jpg
Matrix Keypad, components/matrix_keypad, matrix_keypad.jpg
Wiegand Reader, components/wiegand, wiegand.jpg
HTTP Request, components/http_request, connection.svg, dark-invert
mDNS, components/mdns, radio-tower.svg, dark-invert
Sun, components/sun, weather-sunny.svg, dark-invert
GPS, components/gps, crosshairs-gps.svg, dark-invert
Bluetooth Proxy, components/bluetooth_proxy, bluetooth.svg, dark-invert
ESP32 BLE Client, components/ble_client, bluetooth.svg, dark-invert
ESP32 BLE Tracker, components/esp32_ble_tracker, bluetooth.svg, dark-invert
ESP32 BLE Beacon, components/esp32_ble_beacon, bluetooth.svg, dark-invert
ESP32 Ethernet, components/ethernet, ethernet.svg, dark-invert
ESP32 Camera, components/esp32_camera, camera.svg, dark-invert
ESP32 Camera Web Server, components/esp32_camera_web_server, camera.svg, dark-invert
I²S Audio, components/i2s_audio, i2s_audio.svg
Stepper, components/stepper/index, stepper.svg
Servo, components/servo, servo.svg
Sprinkler, components/sprinkler, sprinkler-variant.svg, dark-invert
Grove TB6612FNG, components/grove_tb6612fng, motor.png
PCA6416A I/O Expander, components/pca6416a, pca6416a.svg
PCA9554 I/O Expander, components/pca9554, pca9554a.jpg
PCF8574 I/O Expander, components/pcf8574, pcf8574.jpg
MAX6956 I/O expander - I²C Bus, components/max6956, max6956.jpg
MCP230XX I/O Expander - I²C Bus, components/mcp230xx, mcp230xx.svg
TCA9548A I²C Multiplexer, components/tca9548a, tca9548a.jpg
MCP23SXX I/O Expander - SPI Bus, components/mcp23Sxx, mcp230xx.svg
SX1509 I/O Expander, components/sx1509, sx1509.jpg
SN74HC165 I/O Expander, components/sn74hc165, sn74hc595.jpg
SN74HC595 I/O Expander, components/sn74hc595, sn74hc595.jpg
XL9535 I/O Expander, components/xl9535, xl9535.svg
SIM800L, components/sim800l, sim800l.jpg
DFPlayer, components/dfplayer, dfplayer.svg, dark-invert
Captive Portal, components/captive_portal, wifi-strength-alert-outline.svg, dark-invert
Improv via BLE, components/esp32_improv, improv.svg, dark-invert
Improv via Serial, components/improv_serial, improv.svg, dark-invert
Debug Component, components/debug, bug-report.svg, dark-invert
TM1651 Battery Display, components/tm1651, tm1651_battery_display.jpg
RF Bridge, components/rf_bridge, rf_bridge.jpg
Tuya MCU, components/tuya, tuya.png
Modbus Controller, components/modbus_controller, modbus.png
Exposure Notifications, components/exposure_notifications, exposure_notifications.png
RTTTL Buzzer, components/rtttl, buzzer.jpg
Prometheus, components/prometheus, prometheus.svg
PipSolar - compatible PV Inverter, components/pipsolar, pipsolar.jpg
GPS, components/gps, crosshairs-gps.svg, dark-invert
Grow Fingerprint Reader, components/fingerprint_grow, fingerprint.svg, dark-invert
SML, components/sml, sml.svg
Atlas Scientific Peristaltic Pump, components/ezo_pmp, ezo-pmp.jpg
Resol VBus, components/vbus, resol_deltasol_bs_plus.jpg
WireGuard, components/wireguard, wireguard_custom_logo.svg
Demo, components/demo, description.svg, dark-invert
Copy, components/copy, content-copy.svg, dark-invert
Modbus Controller, components/modbus_controller, modbus.png
Sprinkler, components/sprinkler, sprinkler-variant.svg, dark-invert
Status LED, components/status_led, led-on.svg, dark-invert
Sun, components/sun, weather-sunny.svg, dark-invert
Tuya MCU, components/tuya, tuya.png
Additional Custom Components
----------------------------
Custom Components
-----------------
**Note: Custom Components are deprecated in favor of** :doc:`components/external_components`!
.. imgtable::
Generic Custom Component, custom/custom_component, language-cpp.svg, dark-invert
Custom Binary Sensor, components/binary_sensor/custom, language-cpp.svg, dark-invert
Custom Climate, components/climate/custom, language-cpp.svg, dark-invert
Custom Cover, components/cover/custom, language-cpp.svg, dark-invert
Custom Light, components/light/custom, language-cpp.svg, dark-invert
Custom Output, components/output/custom, language-cpp.svg, dark-invert
Custom Sensor, components/sensor/custom, language-cpp.svg, dark-invert
Custom Switch, components/switch/custom, language-cpp.svg, dark-invert
Custom Text Sensor, components/text_sensor/custom, language-cpp.svg, dark-invert
Custom I²C Component, custom/i2c, language-cpp.svg, dark-invert
Custom SPI Component, custom/spi, language-cpp.svg, dark-invert
Custom UART Component, custom/uart, language-cpp.svg, dark-invert