Merge pull request #3372 from esphome/bump-2023.11.0

2023.11.0
This commit is contained in:
Jesse Hills 2023-11-15 16:11:44 +13:00 committed by GitHub
commit 450df4f711
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
66 changed files with 2624 additions and 73 deletions

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 = 2023.10.6
PROJECT_NUMBER = 2023.11.0
# 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 = 2023.10.6
ESPHOME_REF = 2023.11.0
.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: 133 KiB

View File

@ -1 +1 @@
2023.10.6
2023.11.0

282
changelog/2023.11.0.rst Normal file
View File

@ -0,0 +1,282 @@
ESPHome 2023.11.0 - 15th November 2023
======================================
.. seo::
:description: Changelog for ESPHome 2023.11.0.
:image: /_static/changelog-2023.11.0.png
:author: Jesse Hills
:author_twitter: @jesserockz
.. imgtable::
:columns: 4
Text Core, components/text/index, folder-open.svg, dark-invert
Template Text, components/text/template, description.svg, dark-invert
UART Button, components/button/uart, uart.svg
GREE Climate, components/climate/climate_ir, air-conditioner-ir.svg, dark-invert
DFRobot mmWave Radar, components/dfrobot_sen0395, dfrobot_sen0395.jpg
LD2420, components/sensor/ld2420, ld2420.jpg
Qwiic PIR Motion, components/binary_sensor/qwiic_pir, qwiic_pir.jpg
Noblex Climate, components/climate/climate_ir, air-conditioner-ir.svg, dark-invert
Honeywell ABP2, components/sensor/honeywellabp2_i2c, honeywellabp.jpg
iAQ-Core, components/sensor/iaqcore, iaqcore.jpg
SFA30, components/sensor/sfa30, sfa30.jpg
ZH/LT-01 Climate, components/climate/climate_ir, air-conditioner-ir.svg, dark-invert
EMC2101, components/emc2101, emc2101.jpg
MicroNova pellet stove, components/micronova, pellet.svg
XGZP68xx Series, components/sensor/xgzp68xx, 6897d.jpg
Text Components
---------------
We finally have implemented the :doc:`Text </components/text/index>` Components.
Many people have been using "Text Input Helpers" to get user entered text into
ESPHome for various reasons. Now ESPHome can expose text entities
directly to Home Assistant. These require Home Assistant 2023.11 or above to use.
Various Automations
-------------------
- BLE have had ``ble.enable`` and ``ble.disable`` actions added to turn on and off when not needed,
as well as a new condition ``ble.enabled`` to check the state.
- Wi-Fi has new triggers for ``on_connect`` and ``on_disconnect``.
- ``api`` has new triggers ``on_client_connected`` and ``on_client_disconnected`` which were
released in the 2023.10.5 patch version due to requiring that specific PR to not cause merge
conflicts later.
Areas
-----
When you add a new ESPHome device to Home Assistant, you assign that device to an area.
From Home Assistant 2023.12, you will be able to specify the suggested area that Home Assistant
pre-populates when you connect the device.
.. code-block:: yaml
esphome:
name: living-room-light
friendly_name: Living Room Light
area: Living Room
Full list of changes
--------------------
New Components
^^^^^^^^^^^^^^
- Add Support for Sensirion SFA30 sensor :esphomepr:`5519` by :ghuser:`ghsensdev` (new-integration)
- add uart button :esphomepr:`5540` by :ghuser:`ssieb` (new-integration)
- Add ZH/LT-01 climate component with IR receiver option :esphomepr:`4333` by :ghuser:`cfeenstra1024` (new-integration)
- Feat: Add GREE climateir component :esphomepr:`4464` by :ghuser:`PiuPiuson` (new-integration)
- AMS iAQ Core CO2 sensor component :esphomepr:`5192` by :ghuser:`yozik04` (new-integration)
- Add IR Noblex climate component :esphomepr:`4913` by :ghuser:`AGalfra` (new-integration)
- Add text component :esphomepr:`5336` by :ghuser:`EternityForest` (new-integration)
- Add support for honeywellabp2 pressure sensor :esphomepr:`5422` by :ghuser:`jpfaff` (new-integration)
- Add Emc2101 :esphomepr:`4491` by :ghuser:`ellull` (new-integration)
- Add support for Qwiic PIR binary sensor :esphomepr:`5194` by :ghuser:`kahrendt` (new-integration)
- Add dfrobot_sen0395 mmwave radar component :esphomepr:`4203` by :ghuser:`niklasweber` (new-integration)
- Add HLK-LD2420 mmWave Radar module component. :esphomepr:`4847` by :ghuser:`descipher` (new-integration)
- Add Micronova component :esphomepr:`4760` by :ghuser:`Jorre05` (new-integration)
- Add differential pressure sensor support for CFSensor XGZP68xxD devices :esphomepr:`5562` by :ghuser:`gcormier` (new-integration)
- Add spi support for ade7953 :esphomepr:`5439` by :ghuser:`angelnu` (new-integration)
- Add resistance_sampler interface for config validation :esphomepr:`5718` by :ghuser:`jesserockz` (new-integration)
Breaking Changes
^^^^^^^^^^^^^^^^
- Hydreon updates :esphomepr:`5424` by :ghuser:`jj-uk` (breaking-change)
- Fix esp32_rmt_led_strip custom timing units :esphomepr:`5696` by :ghuser:`jesserockz` (breaking-change)
Beta Changes
^^^^^^^^^^^^
- Handle nanoseconds in config :esphomepr:`5695` by :ghuser:`jesserockz`
- Fix esp32_rmt_led_strip custom timing units :esphomepr:`5696` by :ghuser:`jesserockz` (breaking-change)
- Fix static assets cache logic :esphomepr:`5700` by :ghuser:`bdraco`
- Use piwheels for armv7 docker image builds :esphomepr:`5703` by :ghuser:`bdraco`
- fix: Fix broken bluetooth_proxy and ble_clients after BLE enable/disable :esphomepr:`5704` by :ghuser:`Rapsssito`
- Bump aioesphomeapi to 18.2.7 :esphomepr:`5706` by :ghuser:`bdraco`
- Update Dockerfile to use piwheels for armv7 :esphomepr:`5709` by :ghuser:`bdraco`
- Bump zeroconf from 0.120.0 to 0.122.3 :esphomepr:`5715` by :ghuser:`dependabot[bot]`
- Add resistance_sampler interface for config validation :esphomepr:`5718` by :ghuser:`jesserockz` (new-integration)
- Fix zeroconf name resolution refactoring error :esphomepr:`5725` by :ghuser:`bdraco`
- Missed ifdefs :esphomepr:`5727` by :ghuser:`descipher`
- Bump aioesphomeapi from 18.2.7 to 18.4.0 :esphomepr:`5735` by :ghuser:`dependabot[bot]`
- Migrate to using aioesphomeapi for the log runner to fix multiple issues :esphomepr:`5733` by :ghuser:`bdraco`
- Bump zeroconf to 0.123.0 :esphomepr:`5736` by :ghuser:`bdraco`
- Handle wake word not set up internally :esphomepr:`5738` by :ghuser:`jesserockz`
- dashboard: remove usage of codecs module :esphomepr:`5741` by :ghuser:`bdraco`
- dashboard: Run get_serial_ports in the executor :esphomepr:`5740` by :ghuser:`bdraco`
- Generate partitions.csv based on flash size :esphomepr:`5697` by :ghuser:`kbx81`
- Allow setup to continue past mqtt if network/wifi is disabled :esphomepr:`5754` by :ghuser:`jesserockz`
- Dont dump wifi info when disabled :esphomepr:`5755` by :ghuser:`jesserockz`
All changes
^^^^^^^^^^^
- Splits FastLed test scripts out of test1.yaml :esphomepr:`5522` by :ghuser:`nielsnl68`
- Add round sensor filter :esphomepr:`5532` by :ghuser:`jesserockz`
- Add Support for Sensirion SFA30 sensor :esphomepr:`5519` by :ghuser:`ghsensdev` (new-integration)
- Change UART source clock to `UART_SCLK_DEFAULT` when IDF >=v5 :esphomepr:`5533` by :ghuser:`leoshusar`
- add uart button :esphomepr:`5540` by :ghuser:`ssieb` (new-integration)
- add on/off options for uart switch :esphomepr:`5539` by :ghuser:`ssieb`
- Update docker base and packages + docker python 3.11 :esphomepr:`5473` by :ghuser:`bdraco`
- IDF 5 fixes for various components from test1.yaml :esphomepr:`5451` by :ghuser:`kbx81`
- Bump aioesphomeapi from 15.0.0 to 18.0.6 :esphomepr:`5557` by :ghuser:`dependabot[bot]`
- Bump zeroconf from 0.115.1 to 0.119.0 :esphomepr:`5560` by :ghuser:`dependabot[bot]`
- Add config to allow suppression of warnings about use of strapping pins :esphomepr:`5287` by :ghuser:`clydebarrow`
- Hydreon updates :esphomepr:`5424` by :ghuser:`jj-uk` (breaking-change)
- Bump actions/checkout from 4.1.0 to 4.1.1 :esphomepr:`5551` by :ghuser:`dependabot[bot]`
- Bump pyupgrade from 3.10.1 to 3.13.0 :esphomepr:`5428` by :ghuser:`dependabot[bot]`
- Bump tzlocal from 5.0.1 to 5.1 :esphomepr:`5480` by :ghuser:`dependabot[bot]`
- Bump black from 23.9.1 to 23.10.0 :esphomepr:`5561` by :ghuser:`dependabot[bot]`
- Fan no off cycle action :esphomepr:`5564` by :ghuser:`skykingjwc`
- Bump aioesphomeapi from 18.0.6 to 18.0.7 :esphomepr:`5573` by :ghuser:`dependabot[bot]`
- Remove unnecessary checks in Nextion component :esphomepr:`5578` by :ghuser:`edwardtfn`
- update storage version from mdns :esphomepr:`5584` by :ghuser:`glmnet`
- set Nextion protocol reparse mode :esphomepr:`5484` by :ghuser:`edwardtfn`
- Add address text sensor to WireGuard :esphomepr:`5576` by :ghuser:`droscy`
- Add LibreTiny hardwares to PR Template :esphomepr:`5575` by :ghuser:`HeMan`
- Bump pytest-mock from 3.11.1 to 3.12.0 :esphomepr:`5571` by :ghuser:`dependabot[bot]`
- Bump pyupgrade from 3.13.0 to 3.15.0 :esphomepr:`5570` by :ghuser:`dependabot[bot]`
- Add ZH/LT-01 climate component with IR receiver option :esphomepr:`4333` by :ghuser:`cfeenstra1024` (new-integration)
- Feat: Add GREE climateir component :esphomepr:`4464` by :ghuser:`PiuPiuson` (new-integration)
- AMS iAQ Core CO2 sensor component :esphomepr:`5192` by :ghuser:`yozik04` (new-integration)
- Add IR Noblex climate component :esphomepr:`4913` by :ghuser:`AGalfra` (new-integration)
- Bump aioesphomeapi from 18.0.7 to 18.0.12 :esphomepr:`5597` by :ghuser:`dependabot[bot]`
- Add text component :esphomepr:`5336` by :ghuser:`EternityForest` (new-integration)
- Fix exception handling when loading packages :esphomepr:`5569` by :ghuser:`dentra`
- Add support for honeywellabp2 pressure sensor :esphomepr:`5422` by :ghuser:`jpfaff` (new-integration)
- Add Emc2101 :esphomepr:`4491` by :ghuser:`ellull` (new-integration)
- Fix: Incorporate unique serial number in preference's hash for multiple Sensirion sensors :esphomepr:`5479` by :ghuser:`kahrendt`
- Add support for Qwiic PIR binary sensor :esphomepr:`5194` by :ghuser:`kahrendt` (new-integration)
- Add ignore out of range option for clamp filter :esphomepr:`5455` by :ghuser:`kahrendt`
- Print text mqtt command topic :esphomepr:`5601` by :ghuser:`jesserockz`
- Correctly allow mqtt topics to be none so ESPHome does not sub/pub to them :esphomepr:`5213` by :ghuser:`jesserockz`
- SX1509 output debounce fix (resolves esphome/issues#4402) :esphomepr:`4672` by :ghuser:`tracestep`
- Add details when error loading package :esphomepr:`5603` by :ghuser:`dentra`
- Fallback to main secrets.yaml for packages :esphomepr:`5604` by :ghuser:`dentra`
- Add area (zone) to esphome core config to be suggested through API and MQTT. :esphomepr:`5602` by :ghuser:`Cossid`
- Devcontainer: allow pip install and dont warn about root user :esphomepr:`5608` by :ghuser:`jesserockz`
- Validate test files before compiling :esphomepr:`5611` by :ghuser:`jesserockz`
- Minor defines.h updates :esphomepr:`5610` by :ghuser:`jesserockz`
- timeout filter: return value :esphomepr:`5612` by :ghuser:`jesserockz`
- Add dfrobot_sen0395 mmwave radar component :esphomepr:`4203` by :ghuser:`niklasweber` (new-integration)
- refactor mcp4728 component :esphomepr:`5609` by :ghuser:`ssieb`
- Fix HA error related to incorrect state class :esphomepr:`5605` by :ghuser:`nagyrobi`
- Fix xpt2046 for IDF 5 :esphomepr:`5614` by :ghuser:`kbx81`
- IDF 5 fixes for various components from test4.yaml :esphomepr:`5622` by :ghuser:`kbx81`
- IDF 5 fixes for various components from test2.yaml :esphomepr:`5621` by :ghuser:`kbx81`
- Fix armv7 docker builds :esphomepr:`5630` by :ghuser:`bdraco`
- Bump aioesphomeapi from 18.0.12 to 18.2.0 :esphomepr:`5606` by :ghuser:`dependabot[bot]`
- Add needs-docs workflow to fail CI :esphomepr:`5643` by :ghuser:`jesserockz`
- Add support for PCA9535 16 bit I/O expander :esphomepr:`5634` by :ghuser:`clydebarrow`
- Fix nextion waveform sending for multiple waveforms :esphomepr:`4408` by :ghuser:`gpambrozio`
- Allow validation of pins based on hub config :esphomepr:`5647` by :ghuser:`jesserockz`
- Bump aioesphomeapi from 18.2.0 to 18.2.1 :esphomepr:`5653` by :ghuser:`dependabot[bot]`
- Validate sn74hc595 pin number are within range :esphomepr:`5655` by :ghuser:`jesserockz`
- Update PCA9554 pin checks to new facility :esphomepr:`5656` by :ghuser:`clydebarrow`
- Update mDNS component to 1.2.2 :esphomepr:`5654` by :ghuser:`HeMan`
- Fix return value of run_external_command :esphomepr:`5657` by :ghuser:`jesserockz`
- Update RTTTL component to allow I2S :esphomepr:`5177` by :ghuser:`nielsnl68`
- Bump flake8 version in pre-commit to match requirements file :esphomepr:`5658` by :ghuser:`jesserockz`
- Bump pytest from 7.4.2 to 7.4.3 :esphomepr:`5599` by :ghuser:`dependabot[bot]`
- Bump tzlocal from 5.1 to 5.2 :esphomepr:`5594` by :ghuser:`dependabot[bot]`
- Bump black from 23.10.0 to 23.10.1 :esphomepr:`5593` by :ghuser:`dependabot[bot]`
- Add Healthcheck to Dockerfile :esphomepr:`5651` by :ghuser:`JcMinarro`
- Add HLK-LD2420 mmWave Radar module component. :esphomepr:`4847` by :ghuser:`descipher` (new-integration)
- Add Micronova component :esphomepr:`4760` by :ghuser:`Jorre05` (new-integration)
- Add basic shell autocompletion using argcomplete :esphomepr:`5618` by :ghuser:`Nardol`
- Fixed int variables for user defined service in case of ESP32-C3 :esphomepr:`5675` by :ghuser:`paveldn`
- Add callback for raw sml messages :esphomepr:`5668` by :ghuser:`micw`
- Fix compile with latest esp-idf on esp32c6 :esphomepr:`5677` by :ghuser:`DAVe3283`
- Null topic_prefix disables MQTT publishing/subscription unless topic is explicitly configured :esphomepr:`5644` by :ghuser:`kahrendt`
- feat: Add ESP32 BLE enable/disable automations :esphomepr:`5616` by :ghuser:`Rapsssito`
- ble_client rssi sensor fix when not connected :esphomepr:`5632` by :ghuser:`jesserockz`
- Add Byron Doorbell RF protocol :esphomepr:`4718` by :ghuser:`marshn`
- Refactor dashboard zeroconf support :esphomepr:`5681` by :ghuser:`bdraco`
- Allow static assets to be cached if not in debug mode :esphomepr:`5684` by :ghuser:`jesserockz`
- Remove extra code in old sgp40 :esphomepr:`5685` by :ghuser:`jesserockz`
- Allow pulse light effect to have separate on and off transition lengths :esphomepr:`5659` by :ghuser:`jesserockz`
- Add differential pressure sensor support for CFSensor XGZP68xxD devices :esphomepr:`5562` by :ghuser:`gcormier` (new-integration)
- Bump zeroconf from 0.119.0 to 0.120.0 :esphomepr:`5682` by :ghuser:`dependabot[bot]`
- Add spi support for ade7953 :esphomepr:`5439` by :ghuser:`angelnu` (new-integration)
- Remove page jump on Nextion startup :esphomepr:`5673` by :ghuser:`edwardtfn`
- [web_server] Adds the ability to handle Private Network Access preflight requests :esphomepr:`5669` by :ghuser:`DanielBaulig`
- Update esphome-dashboard to version 20231107.0 :esphomepr:`5686` by :ghuser:`jesserockz`
- add wifi.on_connect and wifi.on_disconnect triggers :esphomepr:`3639` by :ghuser:`ChemicalXandco`
- Implement a memory cache for dashboard entries to avoid frequent disk reads :esphomepr:`5687` by :ghuser:`bdraco`
- support spi for sn74hc595 :esphomepr:`5491` by :ghuser:`angelnu`
- Handle on_disconnect when Wi-Fi is disabled :esphomepr:`5691` by :ghuser:`kbx81`
- Bump aioesphomeapi from 18.2.1 to 18.2.4 :esphomepr:`5692` by :ghuser:`dependabot[bot]`
- Handle nanoseconds in config :esphomepr:`5695` by :ghuser:`jesserockz`
- Fix esp32_rmt_led_strip custom timing units :esphomepr:`5696` by :ghuser:`jesserockz` (breaking-change)
- Fix static assets cache logic :esphomepr:`5700` by :ghuser:`bdraco`
- Use piwheels for armv7 docker image builds :esphomepr:`5703` by :ghuser:`bdraco`
- fix: Fix broken bluetooth_proxy and ble_clients after BLE enable/disable :esphomepr:`5704` by :ghuser:`Rapsssito`
- Bump aioesphomeapi to 18.2.7 :esphomepr:`5706` by :ghuser:`bdraco`
- Update Dockerfile to use piwheels for armv7 :esphomepr:`5709` by :ghuser:`bdraco`
- Bump zeroconf from 0.120.0 to 0.122.3 :esphomepr:`5715` by :ghuser:`dependabot[bot]`
- Add resistance_sampler interface for config validation :esphomepr:`5718` by :ghuser:`jesserockz` (new-integration)
- Fix zeroconf name resolution refactoring error :esphomepr:`5725` by :ghuser:`bdraco`
- Missed ifdefs :esphomepr:`5727` by :ghuser:`descipher`
- Bump aioesphomeapi from 18.2.7 to 18.4.0 :esphomepr:`5735` by :ghuser:`dependabot[bot]`
- Migrate to using aioesphomeapi for the log runner to fix multiple issues :esphomepr:`5733` by :ghuser:`bdraco`
- Bump zeroconf to 0.123.0 :esphomepr:`5736` by :ghuser:`bdraco`
- Handle wake word not set up internally :esphomepr:`5738` by :ghuser:`jesserockz`
- dashboard: remove usage of codecs module :esphomepr:`5741` by :ghuser:`bdraco`
- dashboard: Run get_serial_ports in the executor :esphomepr:`5740` by :ghuser:`bdraco`
- Generate partitions.csv based on flash size :esphomepr:`5697` by :ghuser:`kbx81`
- Allow setup to continue past mqtt if network/wifi is disabled :esphomepr:`5754` by :ghuser:`jesserockz`
- Dont dump wifi info when disabled :esphomepr:`5755` by :ghuser:`jesserockz`
Past Changelogs
---------------
- :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/2023.10.0.html
:url: /changelog/2023.11.0.html
.. toctree::
:glob:

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@ -0,0 +1,72 @@
Qwiic PIR Motion Binary Sensor
==============================
.. seo::
:description: Instructions for setting up the Qwiic PIR Motion binary sensor.
:image: qwiic_pir.jpg
The Qwiic PIR Motion binary sensor allows you to use your Qwiic PIR (`EKMC4607112K based <https://www.sparkfun.com/products/17374>`__, `EKMB1107112 based <https://www.sparkfun.com/products/17375>`__, `firmware documentation <https://github.com/sparkfun/Qwiic_PIR>`__)
sensors from SparkFun with ESPHome.
.. figure:: images/qwiic_pir.jpg
:align: center
:width: 30.0%
SparkFun Qwiic PIR sensor.
(Credit: `Sparkfun <https://www.sparkfun.com/products/17374>`__, image cropped and compressed)
.. _Sparkfun: https://www.sparkfun.com/products/17374
The SparkFun Qwiic PIR Motion binary sensor uses PIR sensors to detect motion. It communicates over I²C. There are two models currently available. One uses the `Panasonic EKMC4607112K sensor <https://cdn.sparkfun.com/assets/7/2/a/4/3/EKMC460711xK_Spec.pdf>`__, and the other uses the `Panasonic EKMB1107112 sensor <https://cdn.sparkfun.com/assets/c/e/8/7/5/EKMB110711x_Spec.pdf>`__.
You can configure a debounce mode to reduce noise and false detections. See :ref:`debounce-modes` for the available options.
To use the sensor, first set up an :ref:`I²C Bus <i2c>` and connect the sensor to the specified pins.
.. code-block:: yaml
# Example configuration entry
binary_sensor:
- platform: qwiic_pir
name: "Qwiic PIR Motion Sensor"
Configuration variables:
------------------------
- **debounce_mode** (*Optional*, enum): How the component debounces the motion sensor's signal. Must be one of ``HYBRID``, ``NATIVE``, or ``RAW``. See :ref:`debounce-modes` for details. Defaults to ``HYBRID``.
- **debounce** (*Optional*, :ref:`config-time`): Only valid when using ``NATIVE`` debounce mode. Configures the debounce time on the sensor to reduce noise and false detections. Defaults to ``1ms``.
- All other options from :ref:`Binary Sensor <config-binary_sensor>`.
.. _debounce-modes:
Debounce Modes
**************
There are three options for ``debounce_mode``.
- ``HYBRID``:
- Use a combination of the raw sensor reading and the sensor's native event detection to determine state.
- Very reliable for detecting both object's being detected and no longer detected.
- Use binary sensor filters to reduce noise and false detections.
- ``NATIVE``:
- Use the sensor's native event detection to debounce the signal.
- Logic follows `SparkFun's reference example implementation <https://github.com/sparkfun/SparkFun_Qwiic_PIR_Arduino_Library/blob/master/examples/Example2_PrintPIRStatus/Example2_PrintPIRStatus.ino>`__.
- May be unreliable at detecting when an object is removed, especially at high debounce rates.
- Binary sensor filters are not necessary to reduce noise and false detections.
- ``RAW``:
- Use the raw state of the PIR sensor as reported by the firmware.
- May miss a very short motion detection events if ESPHome's loop time is slow.
- Use binary sensor filters to reduce noise and false detections.
See Also
--------
- :doc:`/components/binary_sensor/index`
- :apiref:`qwiic_pir/qwiic_pir.h`
- `SparkFun Qwiic PIR Library <https://github.com/sparkfun/SparkFun_Qwiic_PIR_Arduino_Library>`__ by `SparkFun <https://www.sparkfun.com/>`__
- :ghedit:`Edit`

View File

@ -0,0 +1,41 @@
UART Button
===========
.. seo::
:description: Instructions for setting up UART buttons in ESPHome that can output arbitrary UART sequences when activated.
:image: uart.svg
The ``uart`` button platform allows you to send a pre-defined sequence of bytes on a
:doc:`UART bus </components/uart>` when triggered.
.. code-block:: yaml
# Example configuration entry
uart:
baud_rate: 9600
tx_pin: D0
button:
- platform: uart
name: "UART String Output"
data: 'DataToSend'
- platform: uart
name: "UART Bytes Output"
data: [0xDE, 0xAD, 0xBE, 0xEF]
Configuration variables:
------------------------
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- **name** (*Optional*, string): The name for the button.
- **data** (**Required**, string or list of bytes): The data to send via UART. Either an ASCII string
or a list of bytes.
- **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the UART hub.
- All other options from :ref:`Button <config-button>`.
See Also
--------
- :doc:`/components/uart`
- :apiref:`uart/button/uart_button.h`
- :ghedit:`Edit`

View File

@ -33,6 +33,8 @@ submit a feature request (see FAQ).
+---------------------------------------+---------------------+----------------------+
| Fujitsu General | ``fujitsu_general`` | yes |
+---------------------------------------+---------------------+----------------------+
| :ref:`GREE<gree_ir>` | ``gree`` | |
+---------------------------------------+---------------------+----------------------+
| Hitachi | ``hitachi_ac344`` | yes |
| | ``hitachi_ac424`` | |
+---------------------------------------+---------------------+----------------------+
@ -42,6 +44,8 @@ submit a feature request (see FAQ).
+---------------------------------------+---------------------+----------------------+
| Mitsubishi | ``mitsubishi`` | |
+---------------------------------------+---------------------+----------------------+
| Noblex | ``noblex`` | yes |
+---------------------------------------+---------------------+----------------------+
| TCL112, Fuego | ``tcl112`` | yes |
+---------------------------------------+---------------------+----------------------+
| :ref:`Toshiba<toshiba>` | ``toshiba`` | yes |
@ -52,6 +56,8 @@ submit a feature request (see FAQ).
+---------------------------------------+---------------------+----------------------+
| :ref:`Whynter<whynter>` | ``whynter`` | yes |
+---------------------------------------+---------------------+----------------------+
| :ref:`ZH/LT-01<zhlt01>` | ``zhlt01`` | yes |
+---------------------------------------+---------------------+----------------------+
This component requires that you have configured a :doc:`/components/remote_transmitter`.
@ -322,6 +328,62 @@ Configuration variables:
supports_heat: true
.. _gree_ir:
``gree`` Climate
---------------------
Additional configuration is available for this model.
Configuration variables:
- **model** (*Required*, string): GREE has a few different protocols depending on model. One of these will work for you.
- ``generic``
- ``yan``
- ``yaa``
- ``yac``
.. code-block:: yaml
# Example configuration entry
climate:
- platform: gree
name: "AC"
sensor: room_temperature
model: yan
.. _zhlt01:
``zhlt01`` Climate
---------------------
ZH/LT-01 is a remote control that is used with many locally branded split airconditioners.
Supported brands include:
- Eurom
- Chigo
- Tristar
- Tecnomaster
- Elgin
- Geant
- Tekno
- Topair
- Proma
- Sumikura
- JBS
- Turbo Air
- Nakatomy
- Celestial Air
- Ager
- Blueway
- Airlux
No additional configuration is required for this model.
See Also
--------

View File

@ -193,6 +193,24 @@ Configuration variables:
- **name** (**Required**, string): The name of the text sensor.
- All other options from :ref:`Text Sensor <config-text_sensor>`.
Copy Text
---------
.. code-block:: yaml
# Example configuration entry
text:
- platform: copy
source_id: source_text
name: "Copy of source_text"
Configuration variables:
************************
- **source_id** (**Required**, :ref:`config-id`): The text that should be mirrored.
- **name** (**Required**, string): The name of the number.
- All other options from :ref:`Text <config-text>`.
See Also
--------

View File

@ -0,0 +1,267 @@
DFRobot mmWave Radar
====================
.. seo::
:description: Instructions for setting up DFRobot mmWave Radar
:image: dfrobot_sen0395.jpg
:keywords: mmWave
The `DFRobot mmWave Radar <https://wiki.dfrobot.com/mmWave_Radar_Human_Presence_Detection_SKU_SEN0395>`__
(aka ``SEN0395``) is a 24GHz 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.
It is possible to use this sensor with only a single GPIO pin; however, if you wish to change its settings,
a :doc:`/components/uart` component (and its requisite GPIO pins) is required in your device's configuration.
.. figure:: images/dfrobot_sen0395-full.jpg
:align: center
:width: 75%
DFRobot mmWave Radar / presence detection sensor
.. code-block:: yaml
# Example configuration entry
dfrobot_sen0395:
binary_sensor:
# Information coming from uart bus
- platform: dfrobot_sen0395
name: Mmwave Detected via UART
# Information coming from dedicated gpio (IO2)
- platform: gpio
name: Mmwave Detected via GPIO
device_class: motion
pin:
number: REPLACEME
mode: INPUT_PULLDOWN
switch:
# Switch to turn on/off detection
- platform: dfrobot_sen0395
name: Mmwave Active
.. _dfrobot_sen0395-component:
Hub Component
-------------
You only need to have the hub component (``dfrobot_sen0395:`` entry) defined if you want to change the sensor's
settings or read its state via the UART. A :doc:`/components/binary_sensor/gpio` alone is sufficient if you only want
to determine presence/occupancy. When you define ``dfrobot_sen0395:`` you'll need to have a ``uart:`` entry in
your configuration with both the TX and RX pins defined and the baud rate must be set to ``115200``.
Multiple instances of this component may be defined if multiple :doc:`/components/uart` components are available:
.. code-block:: yaml
dfrobot_sen0395:
- id: mmWave_1
uart_id: uart_1
- id: mmWave_2
uart_id: uart_2
...
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.
- **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :doc:`/components/uart` if you want
to use multiple UART buses.
.. _dfrobot_sen0395-binary_sensor:
Binary Sensor
-------------
.. _dfrobot_sen0395-via_gpio:
Via GPIO
********
To determine presence, you can simply use a :doc:`/components/binary_sensor/gpio` and connect a single GPIO pin
from your processor to the IO2 pin of the mmWave radar. Using a dedicated GPIO pin may offer an advantage since
it may wake the processor from sleep.
If you don't want/need to change the radar's settings and only need to determine presence/occupancy, the
``dfrobot_sen0395:`` and ``uart:`` components are not necessary.
.. code-block:: yaml
binary_sensor:
- platform: gpio
name: Presence Detected via GPIO
device_class: motion
pin:
number: REPLACEME
mode: INPUT_PULLDOWN
.. _dfrobot_sen0395-via_uart:
Via UART
********
Connecting the sensor via the serial connection (UART) allows both changing its settings as well as reading its state.
Note, however, that the UART peripheral cannot wake the processor; if you plan on sleeping the processor, you'll likely
still need to use the :ref:`GPIO pin <dfrobot_sen0395-via_gpio>` approach described above (in addition to the UART).
First, setup a :doc:`/components/uart` and :ref:`dfrobot_sen0395-component` and then use its binary sensor platform
to create individual binary sensors for each presence sensor.
.. code-block:: yaml
binary_sensor:
- platform: dfrobot_sen0395
name: Presence Detected via UART
Configuration variables:
************************
- **dfrobot_sen0395_id** (*Optional*, :ref:`config-id`): The ID of the DFRobot mmWave component defined above.
Required when multiple instances of the ``dfrobot_sen0395`` component are defined.
- All other options from :ref:`Binary Sensor <config-binary_sensor>`.
.. _dfrobot_sen0395-switch:
Switch
------
:ref:`Switch components <config-switch>` are used to enable/disable various module features/functions.
.. code-block:: yaml
switch:
- platform: dfrobot_sen0395
dfrobot_sen0395_id: mmWave
type: sensor_active
name: mmWave Active
Configuration variables:
************************
- **dfrobot_sen0395_id** (*Optional*, :ref:`config-id`): The ID of the DFRobot mmWave component defined above.
Required when multiple instances of the ``dfrobot_sen0395`` component are defined.
- **type** (**Required**): One of:
- ``presence_via_uart``: when enabled, the module sends presence information via both the serial connection and
GPIO pin; when disabled, presense is indicated only via the GPIO pin.
- ``sensor_active``: when enabled, presence detection is reported; when disabled, presense will not be reported.
- ``start_after_boot``: when enabled, the sensor will start immediately after power-on; when disabled, the sensor
must be manually started.
- ``turn_on_led``: when enabled, the mmWave sensor's LED blinks during operation; when disabled, the LED will always
remain off.
- All other options from :ref:`Switch <config-switch>`.
.. _dfrobot_sen0395-actions:
Actions
-------
.. _dfrobot_sen0395-action_settings:
``dfrobot_sen0395.settings`` Action
***********************************
.. warning::
Each change to the configuration of the mmWave radar triggers a write to its internal flash/EEPROM.
Write cycles to this memory are limited, so avoid the practice of changing settings frequently.
Determine the appropriate settings for your device and avoid changing them unless absolutely necessary.
The DFRobot mmWave Radar has several settings which can be changed. These settings are saved in non-volatile memory
and do not need to be set on each boot.
The settings action allows changing of any number of the mmWave radar's internal parameters/settings. With this
action, any unspecified parameters will remain unchanged. All settings are tempatable.
.. code-block:: yaml
on_...:
- dfrobot_sen0395.settings:
factory_reset: true
detection_segments:
# Define between one and four segments
- [0cm, 3m]
- [5.1m, 6.6m]
output_latency:
delay_after_detect: 0s
delay_after_disappear: 0s
sensitivity: 7
Configuration variables:
````````````````````````
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID of the mmWave sensor on which settings should be
changed. If only one radar is defined, this is optional.
- **factory_reset** (*Optional*, boolean): If set to true, a factory reset of the sensor will be performed (before
changing other options if present). Ignored if not set or set to ``false``.
- **detection_segments** (*Optional*, list): A list of detection segments. A segment specifies from where to where
detection should trigger. One to four segments and ranges from 0cm to 9m may be specified. Distances should be
defined in steps of 15cm. Note that the specified ranges are rounded internally. Segments can be defined in a
one or two dimensional list. Pairs of values must be defined (from distance to distance). The default is one
range from 0cm to 3m.
**Examples**
.. code-block:: yaml
detection_segments:
- [0cm, 3m]
- [5.1m, 6.6m]
In the above example, if a person was present in the range between 0cm and 3m (distance from the sensor) or
between 5.1m and 6.6m the sensor would trigger (meaning a person was detected). If a person is present
between 3.1m and 5m or 6.7m and 9m it would not trigger.
.. code-block:: yaml
detection_segments:
- !lambda |-
return 0;
- !lambda |-
return return id(mwave_max_distance).state;
Section values can be defined using lambdas, so you can set the distances depending on other entities. Distances
are defined as a float in meters (10cm = 0.1). If you return a negative value (-1) the segment will not be set.
- **output_latency** (*Optional*, dictionary):
- **delay_after_detect** (**Required**, :ref:`config-time`): Time to wait before signaling that a person was
detected. Specify in steps of 25 ms. Factory default is 2.5s. Value is tempatable: Return seconds value
(100 ms = 0.1). Returning -1 keeps the value unchanged.
- **delay_after_disappear** (**Required**, :ref:`config-time`): Time to wait before signaling that a person
is no longer detected. Specify in steps of 25 ms. Factory default is 10 s. Value is tempatable: Return seconds
value (100 ms = 0.1). Returning -1 keeps the value unchanged.
- **sensitivity** (*Optional*, int): Set the sensitivity of the sensor. Ranges from 0 to 9. Value is tempatable:
Return 0-9. Returning -1 keeps the value unchanged.
``dfrobot_sen0395.reset`` Action
********************************
Restart the sensor.
.. code-block:: yaml
on_...:
dfrobot_sen0395.reset:
Configuration variables:
````````````````````````
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID of the mmWave component. Useful when multiple instances of this component are defined.
See Also
--------
- :ref:`UART bus <uart>`
- :ref:`Binary Sensor <config-binary_sensor>`
- :ref:`config-id`
- `DFRobot mmWave Radar Wiki page <https://wiki.dfrobot.com/mmWave_Radar_Human_Presence_Detection_SKU_SEN0395>`__
- :ghedit:`Edit`

View File

@ -64,6 +64,7 @@ Configuration variables:
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- **tft_url** (*Optional*, string): The URL to download the TFT file from for updates. See :ref:`Nextion Upload <nextion_upload_tft>`.
- **touch_sleep_timeout** (*Optional*, int): Sets internal No-touch-then-sleep timer in seconds.
- **start_up_page** (*Optional*, int): Sets the page to display when ESPHome connects to the Nextion. (Nextion shows page 0 on start-up by default).
- **wake_up_page** (*Optional*, int): Sets the page to display after waking up
- **auto_wake_on_touch** (*Optional*, boolean): Sets if Nextion should auto-wake from sleep when touch press occurs.
- **on_setup** (*Optional*, :ref:`Action <config-action>`): An action to be performed after ESPHome connects to the Nextion. See :ref:`Nextion Automation <nextion-on_setup>`.
@ -197,7 +198,8 @@ With Nextion displays, it's possible to define several automation actions. Depen
This automation will be triggered once ESP establishes a connection with Nextion. This happens after a boot up and may take some
noticeable time (e.g. hundreds of milliseconds) to establish a connection over UART. Typical use scenario for this automation is choosing of the initial
page to display depending on some runtime conditions or simply showing a page with a non-zero index (Nextion shows page 0 by default).
page to display depending on some runtime conditions or simply showing a page with a non-zero index (Nextion shows page 0 by default and ESPHome will
use ``start_up_page`` on connection, if set).
.. code-block:: yaml
@ -235,7 +237,7 @@ for that and :ref:`force-update <nextion_update_all_components>` the on-screen c
***********
This automation is triggered when a page is changed on the Nextion display. This includes both ESP and Nextion initiated page changes.
ESP initiates a page change by calling ``goto_page("page_name")`` function. Nextion can change pages as a reaction to user's activity (e.g. clicks) or using a timer.
ESP initiates a page change by calling ``goto_page("page_name")`` or ``goto_page(page_id)`` function. Nextion can change pages as a reaction to user's activity (e.g. clicks) or using a timer.
In either case, this automation can be helpful to update on-screen controls for the newly displayed page.
If you fully own your Nextoin HMI design and follow the best practice of setting the components' vscope to global in the Nextion Editor, you'll probably never need this trigger.

138
components/emc2101.rst Normal file
View File

@ -0,0 +1,138 @@
EMC2101 Fan Controller and Temperature sensor
=============================================
.. seo::
:description: Instructions for setting up EMC2101 fan controller and temperature sensor in ESPHome.
:image: emc2101.jpg
:keywords: EMC2101
The ``emc2101`` component allows you to control a cooling fan from ESPHome (`datasheet <https://ww1.microchip.com/downloads/aemDocuments/documents/MSLD/ProductDocuments/DataSheets/EMC2101-Data-Sheet-DS20006703.pdf>`__). It also provides temperature
sensors and a tachometer. The fan can be controlled either by a PWM signal or by outputing a DC voltage
using its DAC.
The :ref:`I²C Bus <i2c>` is required to be set up in your configuration for this sensor to work.
.. figure:: images/emc2101-full.png
:align: center
:width: 50.0%
EMC2101 Fan Controller and Temperature sensor
.. note::
Original image at https://learn.adafruit.com/assets/97827 created by
by user `Bryan Siepert <https://learn.adafruit.com/u/siddacious>`__ under
`Creative Commons BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0/>`__ and modified
for this documentation.
EMC2101 Component
-----------------
.. code-block:: yaml
# Example configuration entry
emc2101:
pwm:
resolution: 8
Configuration variables:
************************
- **address** (*Optional*, int): Manually specify the I²C address of the sensor. Defaults to ``0x4C``.
- **inverted** (*Optional*, boolean): Inverts the output so 0 means 100% duty cycle and 1 means 0%. Defaults to ``false``.
- **pwm** (*Optional*): Enable PWM output.
- **resolution** (*Optional*, int): Determines effective resolution and the frequency of the PWM signal. Defaults to ``23``.
- **divider** (*Optional*, int): Value for the frequency divider. Defaults to ``1``.
- **dac** (*Optional*): Enable DAC output.
- **conversion_rate** (*Optional*, string): The number of digital to analog conversions perfomed per second. One of ``1/16``, ``1/8``,
``1/4``, ``1/2``, ``1``, ``2``, ``4``, ``8``, ``16``, ``32``. Defaults to ``16``.
The PWM signal frequency is determined by the following formula:
.. math::
\text{PWM Frequency} = \frac{360KHz}{2 \times resolution \times divider}
And the PWM resolution, the steps in the duty cycle, is calculated by the following formula:
.. math::
\text{PWM resolution} = \frac{100\%}{2 \times resolution}
So, with the default values the PWM signal will have a frequency of 7.83KHz and a resolution of 2.17%. The maximum
resolution value is ``31`` which will configure a frequency of 5.81KHz with a resolution of 1.61%.
EMC2101 Output
--------------
.. code-block:: yaml
output:
- platform: emc2101
id: fan_duty_cycle
Configuration variables:
************************
- **id** (**Required**, :ref:`config-id`): The ID to use for code generation, and for reference by dependent components.
.. note::
When using the ``emc2101`` output with a :doc:`/components/fan/speed` it is advised to configure the **speed_count**
as twice the **resolution** so the number of speeds in the fan matches the number of steps in the fan controller.
EMC2101 Sensors
---------------
.. code-block:: yaml
sensor:
- platform: emc2101
internal_temperature:
id: internal_temperature_sensor
name: "Internal Temperature Sensor"
speed:
id: speed_sensor
name: "Speed Sensor"
duty_cycle:
id: duty_cycle_sensor
name: "Duty Cycle Sensor"
update_interval: 5s
Configuration variables:
************************
- **internal_temperature** (*Optional*): The internal temperature sensor.
All options from :ref:`Sensor <config-sensor>`.
- **external_temperature** (*Optional*): The external temperature sensor. More accurate but it needs an additional transistor to be installed.
All options from :ref:`Sensor <config-sensor>`.
- **speed** (*Optional*): The fan speed sensor in RPMs.
All options from :ref:`Sensor <config-sensor>`.
- **duty_cycle** (*Optional*): Duty cycle sensor.
All options from :ref:`Sensor <config-sensor>`.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
See Also
--------
- :ref:`config-sensor`
- :doc:`/components/fan/speed`
- :apiref:`emc2101/emc2101.h`
- :ghedit:`Edit`

View File

@ -23,13 +23,16 @@ Configuration variables:
choose a generic board from Espressif such as ``esp32dev``.
- **framework** (*Optional*): Options for the underlying framework used by ESPHome.
See :ref:`esp32-arduino_framework` and :ref:`esp32-espidf_framework`.
- **flash_size** (*Optional*, string): The amount of flash memory available on the ESP32 board/module. One of ``4MB``,
``8MB``, ``16MB`` or ``32MB``. Defaults to ``4MB``. **Warning: specifying a size larger than that available on your
board will cause the ESP32 to fail to boot.**
- **variant** (*Optional*, string): The variant of the ESP32 that is used on this board. One of ``esp32``,
``esp32s2``, ``esp32s3``, ``esp32c3`` and ``esp32h2``. Defaults to the variant that is detected from the board, if
``esp32s2``, ``esp32s3``, ``esp32c3`` and ``esp32h2``. Defaults to the variant that is detected from the board; if
a board that's unknown to ESPHome is used, this option is mandatory.
.. note::
Support for the ESP32-S2 and ESP32-C3 is still in development and there could be issues.
Support for ESP32 variants such as the S2, S3 and C3 is still in development and there could be issues.
GPIO Pin Numbering
------------------

View File

@ -34,6 +34,61 @@ Configuration variables:
- ``keyboard_display`` - A keyboard and a display
- ``display_yes_no`` - A display to show PIN codes and buttons to confirm or deny the connection
- **enable_on_boot** (*Optional*, boolean): If enabled, the BLE interface will be enabled on boot. Defaults to ``true``.
``ble.disable`` Action
-----------------------
This action turns off the BLE interface on demand.
.. code-block:: yaml
on_...:
then:
- ble.disable:
.. note::
The configuration option ``enable_on_boot`` can be set to ``false`` if you do not want BLE to be enabled on boot.
``ble.enable`` Action
----------------------
This action turns on the BLE interface on demand.
.. code-block:: yaml
on_...:
then:
- ble.enable:
.. note::
The configuration option ``enable_on_boot`` can be set to ``false`` if you do not want BLE to be enabled on boot.
.. _ble-enabled_condition:
``ble.enabled`` Condition
--------------------------
This :ref:`Condition <config-condition>` checks if BLE is currently enabled or not.
.. code-block:: yaml
on_...:
- if:
condition: ble.enabled
then:
- ble.disable:
else:
- ble.enable:
The lambda equivalent for this is ``id(ble_id).is_active()``.
See Also
--------

View File

@ -15,6 +15,7 @@ where you specify the **name** of the node.
esphome:
name: livingroom
comment: Living room ESP32 controller
area: Living Room
esp32:
board: nodemcu-32s
@ -32,6 +33,8 @@ Configuration variables:
- **friendly_name** (*Optional*, string): This is the name sent to the frontend. It is used
by Home Assistant as the integration name, device name, and is automatically prefixed to entities
where necessary.
- **area** (*Optional*, string): This is the area sent to the frontend. It is used
by Home Assistant as the area / zone which the node belongs to.
Advanced options:

View File

@ -137,14 +137,22 @@ Configuration options:
``fan.cycle_speed`` Action
--------------------------
Increments through speed levels of the fan with the given ID when executed. If the fan's speed level is set to maximum when executed, turns fan off.
Increments through speed levels of the fan with the given ID when executed. If the fan's speed level is set to maximum when executed, fan will cycle off unless ``off_speed_cycle`` is set to ``false``.
.. code-block:: yaml
on_...:
then:
- fan.cycle_speed:
id: fan_1
off_speed_cycle: true
# Shorthand:
- fan.cycle_speed: fan_1
Configuration options:
- **id** (**Required**, :ref:`config-id`): The ID of the fan.
- **off_speed_cycle** (*Optional*, boolean, :ref:`templatable <config-templatable>`): Determines if the fan will cycle off after cycling though its highest speed. Can be ``true`` or ``false``. If ``false`` fan will cycle to its lowest speed instead of turning off. Defaults to ``true``.
.. _fan-is_on_condition:
.. _fan-is_off_condition:

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 540 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 730 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -27,4 +27,5 @@ Components
speaker/index
time/index
alarm_control_panel/index
text/index
*

View File

@ -492,11 +492,21 @@ This effect makes a pulsating light. The period can be defined by ``update_inter
name: "Slow Pulse"
# transition_length: 1s # defaults to 1s
update_interval: 2s
- pulse:
name: "Asymmetrical Pulse"
transition_length:
on_length: 1s
off_length: 500ms
update_interval: 1.5s
Configuration variables:
- **name** (*Optional*, string): The name of the effect. Defaults to ``Pulse``.
- **transition_length** (*Optional*, :ref:`config-time`): The duration of each transition. Defaults to ``1s``.
- **transition_length** (*Optional*, :ref:`config-time`): The duration of each transition.
Defaults to ``1s``. Can be a single time or split for on and off using these nested options.
- **on_length** (*Optional*, :ref:`config-time`): The duration of the transition when the light is turned on.
- **off_length** (*Optional*, :ref:`config-time`): The duration of the transition when the light is turned off.
- **update_interval** (*Optional*, :ref:`config-time`): The interval when the new transition is started. Defaults to ``1s``.
- **min_brightness** (*Optional*, percentage): The minimum brightness value. Defaults to ``0%``
- **max_brightness** (*Optional*, percentage): The maximum brightness value. Defaults to ``100%``

227
components/micronova.rst Normal file
View File

@ -0,0 +1,227 @@
MicroNova based pellet stove
============================
.. seo::
:description: Instructions for setting up a MicroNova board based pellet stove in ESPHome.
The MicroNova component allows you to integrate a pellet stove with a MicroNova board in ESPHome.
It uses :ref:`UART <uart>` for communication.
The :ref:`UART <uart>` must be configured with a baud rate 1200, 8 data bits, 2 stop bits, no parity, no flow control.
.. warning::
MicroNova bords come in various flavours. This code is only tested on an ExtraFlame Ketty Evo 2.0 stove. The protocol is not
documented but has been reverse engineerd by others. See the links below for all the info that helped me.
The different sensors, buttons and stove switch may require specific **memory_location** and **memory_address** parameters that
match your MicroNova specific board.
Also, switching your stove on or off can behave different on the various MicroNova flavours.
Use this integration at your own risk.
Connecting your stove
---------------------
Most MicroNova based pellet stoves have a serial output. In most cases this output has 4 pins: GND, 5v, 20V and DATA.
.. figure:: images/micronova_serial.png
:align: center
:width: 50.0%
.. figure:: images/micronova_serial_layout.png
:align: center
:width: 50.0%
You will have to build a simple circuit to interface with your stove. It is based on optocouplers for galvanic separation and logic
level shifting between 5v and 3V3.
.. figure:: images/micronova_optocouplers.png
:align: center
:width: 100.0%
Optocoupler interface circuit (credit: philibertc)
See the references below for all the details about te circuit.
You can use the 5V output from the stove to power the ESP module, but you will have to put a voltage regulator in between to
get 3v3.
Component/Hub
-------------
.. code-block:: yaml
micronova:
enable_rx_pin: REPLACEME
Configuration variables:
~~~~~~~~~~~~~~~~~~~~~~~~
- **enable_rx_pin** (**Required**, :ref:`config-pin`): Output pin to be used to switch the line between RX and TX.
- **update_interval** (*Optional*, :ref:`config-time`): The interval that the sensors should be checked.
Defaults to 60 seconds.
.. note::
For all text sensors, sensors, numbers, buttons and switches hereafter most of the the default **memory_location** and **memory_address** parameters will work so you should
not specify them. However your Micronova boad may require you to specify alternate values. So every text sensor, button,
switch or number accepts these parameters:
- **memory_location** (*Optional*): The memory location where the parameter must be read. For most stoves this is 0x00 for RAM
or 0x20 for EPROM.
- **memory_address** (*Optional*): The address where the parameter is stored.
Text Sensors
------------
.. code-block:: yaml
text_sensor:
- platform: micronova
stove_state:
name: Stove status
Configuration variables:
~~~~~~~~~~~~~~~~~~~~~~~~
- **stove_state** (*Optional*): The current stove state.
All options from :ref:`Text Sensor <config-text_sensor>`.
Sensors
-------
.. code-block:: yaml
sensor:
- platform: micronova
room_temperature:
name: Room temperature
fumes_temperature:
name: Fumes temperature
stove_power:
name: Stove power level
fan_speed:
fan_rpm_offset: 240
name: Fan RPM
water_temperature:
name: Water temperature
water_pressure:
name: Water pressure
memory_address_sensor:
memory_location: 0x20
memory_address: 0x7d
name: Custom Address sensor
Configuration variables:
~~~~~~~~~~~~~~~~~~~~~~~~
- **room_temperature** (*Optional*): Sensor that reads the stoves ambient room temperature.
All options from :ref:`Sensor <config-sensor>`.
- **fumes_temperature** (*Optional*): Fumes temperature.
All options from :ref:`Sensor <config-sensor>`.
- **stove_power** (*Optional*): Current stove power.
All options from :ref:`Sensor <config-sensor>`.
- **fan_speed** (*Optional*): Current fan speed. The raw value from the stove is multiplied by 10 + ``fan_rpm_offset``.
- **fan_rpm_offset** (*Optional*, integer): Offset the reported RPM value. Must be between 0 and 255. Defaults to 0.
- All other options from :ref:`Sensor <config-sensor>`.
- **water_temperature** (*Optional*): Internal boiler water termperature.
All options from :ref:`Sensor <config-sensor>`.
- **water_pressure** (*Optional*): Internal boiler water pressure.
All options from :ref:`Sensor <config-sensor>`.
- **memory_address_sensor** (*Optional*): Can be any **memory_location** / **memory_address** you want to track. Usefull
when you don't know where the parameter is for your stove is.
All options from :ref:`Sensor <config-sensor>`.
Numbers
-------
.. code-block:: yaml
number:
- platform: micronova
thermostat_temperature:
name: Thermostat temperature
step: 0.5
power_level:
name: Thermostat temperature
Configuration variables:
~~~~~~~~~~~~~~~~~~~~~~~~
- **thermostat_temperature** (*Optional*): Number that holds the current stove thermostat value.
- **step** (*Optional*): Temperature step. This value is used to multiply/devide the raw value when setting/reading the **thermostat_temperature**
- All other options from :ref:`Number <config-number>`.
- **power_level** (*Optional*): Number that sets/reads the requested stove power.
All options from :ref:`Number <config-number>`.
.. note::
Besides **memory_location** and **memory_address** you can specify a specific **memory_write_location** parameter.
This parameter is a hex value for the **memory_location** where the new thermostat value must be written.
- **memory_write_location** (*Optional*): The **memory_location** where to write the new thermostat value.
Buttons
-------
.. code-block:: yaml
button:
- platform: micronova
custom_button:
name: Custom button
memory_location: 0x20
memory_address: 0x7d
memory_data: 0x08
Configuration variables:
~~~~~~~~~~~~~~~~~~~~~~~~
- **custom_button** (*Optional*): Write the hex value **memory_data** to a **memory_location** and **memory_address**
All options from :ref:`Button <config-button>`.
.. note::
Besides **memory_location** and **memory_address** you must specify a specific **memory_data** parameter.
- **memory_data** (*Required*): The hex value to be written to the **memory_location** and **memory_address**.
Switches
--------
.. code-block:: yaml
switch:
- platform: micronova
stove:
name: Stove on/off switch
Configuration variables:
~~~~~~~~~~~~~~~~~~~~~~~~
- **stove** (*Optional*): Turn the stove on or off. This switch will also reflect the current stove state.
If the **stove_state** is "Off" the switch will be off, in all other states, the switch wil be on.
All options from :ref:`Switch <config-switch>`.
.. note::
Besides **memory_location** and **memory_address** you can specify specific **memory_data_on** and **memory_data_off** parameters.
These parameters contain the hex value to be written to the **memory_location** and **memory_address** when the switch
turns on or off.
- **memory_data_on** (*Optional*): The data to write when turning the switch on.
- **memory_data_off** (*Optional*): The data to write when turning the switch off.
See Also
--------
- `ridiculouslab micronova <https://www.ridiculouslab.com/arguments/iot/stufa/micronova_en.php>`__
- `philibertc / micronova_controller <https://github.com/philibertc/micronova_controller/>`__
- `eni23 / micronova-controller <https://github.com/eni23/micronova-controller>`__
- :ghedit:`Edit`

View File

@ -60,8 +60,9 @@ Configuration variables:
`Abbreviations <https://www.home-assistant.io/docs/mqtt/discovery/>`__
in discovery messages. Defaults to ``true``.
- **topic_prefix** (*Optional*, string): The prefix used for all MQTT
messages. Should not contain trailing slash. Defaults to
``<APP_NAME>``.
messages. Should not contain trailing slash. Defaults to ``<APP_NAME>``.
Use ``null`` to disable publishing or subscribing of any MQTT topic unless
it is explicitly configured.
- **log_topic** (*Optional*, :ref:`mqtt-message`): The topic to send MQTT log
messages to. Use ``null`` if you want to disable sending logs to MQTT.
@ -373,9 +374,17 @@ Configuration variables:
- **state_topic** (*Optional*, string): The topic to publish state
updates to. Defaults to
``<TOPIC_PREFIX>/<COMPONENT_TYPE>/<COMPONENT_NAME>/state``.
ESPHome will always publish a manually configured state topic, even if
the component is internal. Use ``null`` to disable publishing the
component's state.
- **command_topic** (*Optional*, string): The topic to subscribe to for
commands from the remote. Defaults to
``<TOPIC_PREFIX>/<COMPONENT_TYPE>/<COMPONENT_NAME>/command``.
ESPHome will always subscribe to a manually configured command topic,
even if the component is internal. Use ``null`` to disable subscribing
to the component's command topic.
- **command_retain** (*Optional*, boolean): Whether MQTT command messages
sent to the device should be retained or not. Default to ``false``.

View File

@ -11,6 +11,9 @@ The MCP4728 output component allows to use `12bit external quad DAC
<https://www.adafruit.com/product/4470>`__
in order to have analog outputs on any board by using :ref:`I²C <i2c>`. Devices default address is ``0x60``.
If you only have one, it is not necessary to explicitly specify the ``mcp4728:`` component in the config unless you need to change the parameters.
It will be automatically created with the default settings if you use it.
.. code-block:: yaml
# Example configuration entry
@ -23,13 +26,12 @@ in order to have analog outputs on any board by using :ref:`I²C <i2c>`. Devices
# Set the component with default (address: 0x60 / global I²C)
mcp4728:
- platform: mcp4728
id: dac_output
- id: dac_output
Configuration variables:
------------------------
- **id** (**Required**, :ref:`config-id`): The id to use for this output component.
- **id** (*Optional*, :ref:`config-id`): The id to use for this output component.
- **address** (*Optional*, int): Manually specify the I2C address of
the DAC. Defaults to ``0x60``.
- **store_in_eeprom** (*Optional*, boolean): Use SEQ_WRITE mode to also write to EEPROM sequentially. Defaults to ``false``.
@ -57,14 +59,12 @@ The MCP4728 output component exposes 4 MCP4728 channels of a global :ref:`MCP472
power_down: gnd_1k
- platform: mcp4728
id: ac_dimmer_3
mcp4728_id: dac_output
channel: C
vref: internal
gain: X1
power_down: normal # default
- platform: mcp4728
id: ac_dimmer_4
mcp4728_id: dac_output
channel: D
vref: internal
gain: X2
@ -96,5 +96,7 @@ When ``vref=internal``, output voltage will range from 0.000V to 2.048V with ``g
See Also
--------
- :doc:`/components/output/index`
- :doc:`/components/output/esp32_dac`
- :apiref:`mcp4728/mcp4728.h`
- :ghedit:`Edit`

View File

@ -6,16 +6,21 @@ PCA9554 I/O Expander
:image: ../images/pca9554a.jpg
The PCA9554 component allows you to use **PCA9554**, **PCA9554A** or **PCA9536** I/O expanders in ESPHome.
It uses :ref:`I²C Bus <i2c>` for communication.
The PCA9554 component allows you to use a variety of Texas Instrument I/O expanders in ESPHome using the
:ref:`I²C Bus <i2c>` for communication.
Devices tested as working with this component include **PCA9554**, **PCA9554A**, **PCA9536** and **PCA9535**.
Equivalent TI I/O expanders with the same command interface and up to 16 I/O pins such as the **TCA9554**
and **TCA9535** should also work.
.. figure:: ../images/pca9554a.jpg
:align: center
PCA9554A I/O Expander chip
Once configured, you can use any of the **8** pins (PCA9554, PCA9554A) or **4** pins (PCA9536) as
pins for your projects. Within ESPHome they emulate a real internal GPIO pin
Once configured, you can use any of the **16** (PCA9535), **8** (PCA9554, PCA9554A) or **4** (PCA9536) pins
within your projects. Within ESPHome they emulate a real internal GPIO pin
and can therefore be used with many of ESPHome's components such as the GPIO
binary sensor or GPIO switch.
@ -23,19 +28,21 @@ binary sensor or GPIO switch.
The 7 bit I²C device address ranges are:
- PCA9554: ``0x20`` to ``0x27``
- PCA9554 and PCA9535: ``0x20`` to ``0x27``
- PCA9554A: ``0x38`` to ``0x3F``
- PCA9536: ``0x41``
For the PCA9554 and PCA9554A, the actual choice of the I²C device address depends on state of the 3 address pins.
For the PCA9535, PCA9554 and PCA9554A, the actual choice of the I²C device address depends on state of the 3 address pins.
Please refer to the individual datasheets linked at the bottom of the page for further details to set the address.
Up to eight PCA9554 and an additional eight PCA9554A devices can reside on the same I²C bus.
Up to eight PCA9535 or PCA9554 and an additional eight PCA9554A devices can reside on the same I²C bus.
Please note that only one PCA9536 device is allowed per I²C bus due to its fixed address.
The PCA9554 and PCA9554A provide 8 bits of GPIO's (pin numbers 0-7).
The PCA9535 provides 16 bits of GPIOs (pin numbers 0-15).
The PCA9554 and PCA9554A provide 8 bits of GPIOs (pin numbers 0-7).
The PCA9536 provides 4 bits of GPIO's (pin numbers 0-3).
The PCA9536 provides 4 bits of GPIOs (pin numbers 0-3).
Any option accepting a :ref:`Pin Schema <config-pin_schema>` can theoretically be used, but some more
complicated components that do communication through this I/O expander will not work.
@ -67,6 +74,12 @@ Configuration variables:
- **id** (**Required**, :ref:`config-id`): The id to use for this ``pca9554`` component.
- **address** (*Optional*, int): The I²C address of the driver.
Defaults to ``0x20``.
- **pin_count** (*Optional*, int): The number of bits implemented in the expander. Defaults to 8. This should be set
to 16 when using a PCA9535 and 4 when using a PCA95367.
.. note::
A PCA9535 will not work (even on the lower 8 bits) unless the **pin_count** is set to 16.
@ -88,6 +101,7 @@ See Also
- :doc:`binary_sensor/gpio`
- `PCA9554 datasheet <https://www.ti.com/lit/ds/symlink/pca9554.pdf>`__
- `PCA9554A datasheet <https://www.ti.com/lit/ds/symlink/pca9554a.pdf>`__
- `PCA9535 datasheet <https://www.ti.com/lit/ds/symlink/pca9535.pdf>`__
- `PCA9536 datasheet <https://www.ti.com/lit/ds/symlink/pca9536.pdf>`__
- :apiref:`pca9554/pca9554.h`
- :ghedit:`Edit`

View File

@ -31,6 +31,7 @@ Configuration variables:
Set to ``all`` to dump all available codecs:
- **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.
@ -80,6 +81,9 @@ Automations:
- **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.
- **on_byronsx** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
Byron SX doorbell RF code has been decoded. A variable ``x`` of type :apistruct:`remote_base::ByronSXData`
is passed to the automation for use in lambdas.
- **on_canalsat** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
CanalSat remote code has been decoded. A variable ``x`` of type :apistruct:`remote_base::CanalSatData`
is passed to the automation for use in lambdas.
@ -205,6 +209,11 @@ Remote code selection (exactly one of these has to be included):
- **data** (**Required**, 3-35 bytes list): The code to listen for, see :ref:`remote_transmitter-transmit_aeha`
for more info. Usually you only need to copy this directly from the dumper output.
- **byronsx**: Trigger on a decoded Byron SX Doorbell RF remote code with the given data.
- **address** (**Required**, int): The 8-bit ID code to trigger on, see dumper output for more info.
- **command** (**Optional**, int): The 4-bit command to listen for. If omitted, will match on any command.
- **canalsat**: Trigger on a decoded CanalSat remote code with the given data.
- **device** (**Required**, int): The device to trigger on, see dumper output for more info.

View File

@ -99,7 +99,25 @@ Configuration variables:
AEHA refers to the Association for Electric Home Appliances in Japan, a format used by Panasonic and many other companies.
.. _remote_transmitter-transmit_canalsat:
.. _remote_transmitter-transmit_byronsx:
``remote_transmitter.transmit_byronsx`` Action
**********************************************
This :ref:`action <config-action>` sends a Byron Doorbell RF protocol code to a remote transmitter.
.. code-block:: yaml
on_...:
- remote_transmitter.transmit_byronsx:
address: '0x4f'
command: '0x2'
Configuration variables:
- **address** (**Required**, int): The 8-bit ID to send, see dumper output for more info.
- **command** (**Required**, int): The command to send, see dumper output for more info.
- All other options from :ref:`remote_transmitter-transmit_action`... _remote_transmitter-transmit_canalsat:
``remote_transmitter.transmit_canalsat`` Action
***********************************************

View File

@ -3,6 +3,7 @@ Rtttl Buzzer
.. seo::
:description: Instructions for setting up a buzzer to play tones and rtttl songs with ESPHome.
**NEW:** Or play the song using the I2S speaker.
:image: buzzer.jpg
The ``rtttl``, component allows you to easily connect a passive piezo buzzer to your microcontroller
@ -15,8 +16,8 @@ and play monophonic songs. It accepts the Ring Tone Text Transfer Language, rttt
Buzzer Module
Overview
--------
Overview Using a passive buzzer
-------------------------------
It's important that your buzzer is a **passive** one, if it beeps when you feed it with 3.3V then it is not
a passive one and this library will not work properly.
@ -29,22 +30,42 @@ The tone generator needs a PWM capable output to work with, currently only the
# Example configuration entry
output:
- platform: ledc
pin: GPIO22
- platform: ...
id: rtttl_out
...
rtttl:
output: rtttl_out
id: my_rtttl
Overview Using the I2S speaker
------------------------------
The tone generator can instead be used with a :doc:`Speaker </components/speaker/index>` to output the audio.
.. code-block:: yaml
# Example configuration entry
speaker:
- platform: ...
id: my_speaker
...
rtttl:
speaker: my_speaker
id: my_rtttl
Configuration variables:
------------------------
- **output** (**Required**, :ref:`config-id`): The id of the :ref:`float output <output>` to use for
- **output** (**Exclusive**, :ref:`config-id`): The id of the :ref:`float output <output>` to use for
this buzzer.
- **speaker** (**Exclusive**, :ref:`config-id`): The id of the :ref:`speaker <i2s_audio>` to play the song on.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- **on_finished_playback** (*Optional*, :ref:`Automation <automation>`): An action to be
performed when playback is finished.
Note: You can only use the **output** or **speaker** variable, not both at the same time.
``rtttl.play`` Action
---------------------
@ -103,7 +124,7 @@ Common beeps
You can do your own beep patterns too! Here's a short collection so you can just use right away or tweak them to your like:
.. code-block:: yaml
.. code-block::
two_short:d=4,o=5,b=100:16e6,16e6
long:d=1,o=5,b=100:e6
@ -160,6 +181,8 @@ Sample code
See Also
--------
- :doc:`/components/output/esp8266_pwm`
- :doc:`/components/output/ledc`
- :doc:`/components/speaker/index`
- :apiref:`rtttl/rtttl.h`
- :ghedit:`Edit`

View File

@ -15,7 +15,7 @@ ADE7953 Power Sensor
The ``ade7953`` sensor platform allows you to use ADE7953 single phase energy metering ICs
(`datasheet <https://www.analog.com/media/en/technical-documentation/data-sheets/ADE7953.pdf>`__)
with ESPHome. These are commonly found in **Shelly 2.5** devices.
with ESPHome. These are commonly found in **Shelly** devices.
This sensor can measure voltage and has two channels for reading current and active power (A & B).
@ -23,42 +23,235 @@ This sensor can measure voltage and has two channels for reading current and act
SAFETY HAZARD: Some devices such as Sonoff POWs/Shelly/etc, have the digital GND connected directly to mains voltage so **the GPIOs become LIVE during normal operation**. Our advice is to mark these boards to prevent any use of the dangerous digital pins.
The :ref:`I²C Bus <i2c>` is
required to be set up in your configuration for this sensor to work.
The :ref:`I²C Bus <i2c>`
or :ref:`SPI Bus <spi>`
is required to be set up in your configuration for this sensor to work.
Over I²C
--------
.. code-block:: yaml
# Example configuration entry
# Example configuration entry for i2c
sensor:
- platform: ade7953
- platform: ade7953_i2c
irq_pin: GPIO16
voltage:
name: ADE7953 Voltage
frequency:
name: ADE7953 Frequency
current_a:
name: ADE7953 Current A
current_b:
name: ADE7953 Current B
power_factor_a:
name: "ADE7953 Power Factor A"
power_factor_b:
name: "ADE7953 Power Factor B"
apparent_power_a:
name: "ADE7953 Apparent Power A"
apparent_power_b:
name: "ADE7953 Apparent Power B"
active_power_a:
name: ADE7953 Active Power A
active_power_b:
name: ADE7953 Active Power B
update_interval: 60s
reactive_power_a:
name: "ADE7953 Reactive Power A"
reactive_power_b:
name: "ADE7953 Reactive Power B"
Configuration variables:
------------------------
************************
- **address** (*Optional*, int): Manually specify the I²C address of the sensor. Defaults to ``0x38``.
- **irq_pin** (*Optional*, :ref:`config-pin`): The pin connected to the ADE7935 IRQ line (if connected)
- **voltage** (*Optional*): Use the voltage value of the sensor in volt. All options from
- **voltage** (*Optional*): Use the voltage value of the sensor in volts. All options from
:ref:`Sensor <config-sensor>`.
- **frequency** (*Optional*): Use the frequency value of the sensor in hertzs. All options from
:ref:`Sensor <config-sensor>`.
- **current_a** (*Optional*): Use the current value of the A channel in amperes. All options from
:ref:`Sensor <config-sensor>`.
- **current_b** (*Optional*): Use the current value of the B channel in amperes. All options from
:ref:`Sensor <config-sensor>`.
- **power_factor_a** (*Optional*): Use the power factor of the A channel in percentage. All options from
:ref:`Sensor <config-sensor>`.
- **power_factor_b** (*Optional*): Use the power factor of the B channel in percentage. All options from
:ref:`Sensor <config-sensor>`.
- **aparent_power_a** (*Optional*): Use the apparent power value of the A channel in volt ampers. All options from
:ref:`Sensor <config-sensor>`.
- **aparent_power_b** (*Optional*): Use the apparent power value of the B channel in volt ampers. All options from
:ref:`Sensor <config-sensor>`.
- **active_power_a** (*Optional*): Use the power value of the A channel in watts. All options from
:ref:`Sensor <config-sensor>`.
- **active_power_b** (*Optional*): Use the power value of the B channel in watts. All options from
:ref:`Sensor <config-sensor>`.
- **reactive_power_a** (*Optional*): Use the rective power value of the A channel in volt ampers. All options from
:ref:`Sensor <config-sensor>`.
- **reactive_power_b** (*Optional*): Use the rective power value of the B channel in volt ampers. All options from
:ref:`Sensor <config-sensor>`.
- **voltage_pga_gain** (*Optional*, mapping): Set the input PGA voltage amplification. Defaults to ``1x``. Possible values are:
- ``1x``
- ``2x``
- ``4x``
- ``8x``
- ``16x``
- ``22x``
- **current_pga_gain_a** (*Optional*, mapping): Set the input PGA current amplification of the A channel. Defaults to ``1x``. Possible values are:
- ``1x``
- ``2x``
- ``4x``
- ``8x``
- ``16x``
- ``22x``
- **current_pga_gain_b** (*Optional*, mapping): Set input PGA current amplification of the B channel. Defaults to ``1x``. Possible values are:
- ``1x``
- ``2x``
- ``4x``
- ``8x``
- ``16x``
- **voltage_gain** (*Optional*, int): Set the voltage amplification. Defaults to ``0x400000``.
- **current_gain_a** (*Optional*, int): Set the current amplification of the A channel. Defaults to ``0x400000``.
- **current_gain_b** (*Optional*, int): Set the current amplification of the B channel. Defaults to ``0x400000``.
- **active_power_gain_a** (*Optional*, int): Set the active power amplification of the A channel. Defaults to ``0x400000``.
- **active_power_gain_b** (*Optional*, int): Set the active power amplification of the B channel. Defaults to ``0x400000``.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
Over SPI
--------
.. code-block:: yaml
# Example configuration entry for SPI (taken from a Shelly Pro 4PM)
sensor:
- platform: ade7953_spi
cs_pin: GPIO04
irq_pin: GPIO35
current_pga_gain_a: 2x
current_pga_gain_b: 2x
current_gain_a: 0x600000
current_gain_b: 0x600000
voltage:
name: "Voltage"
filters:
- delta: 1
frequency:
name: ADE7953 Frequency
filters:
- delta: 0.1
current_a:
name: "Current A"
filters:
- delta: 0.01
current_b:
name: "Current B"
filters:
- delta: 0.01
power_factor_a:
name: "Power Factor A"
filters:
- delta: 5
power_factor_b:
name: "ADE7953 Power Factor B"
filters:
- delta: 5
apparent_power_a:
name: "Apparent Power A"
filters:
- delta: 1
apparent_power_b:
name: "Apparent Power B"
filters:
- delta: 1
active_power_a:
name: "Power A"
id: active_power_1
# active_power is inverted, so multiply by -1
filters:
- multiply: -1
- delta: 1
active_power_b:
name: "Power B"
id: active_power_2
# active_power is inverted, so multiply by -1
filters:
- multiply: -1
- delta: 1
reactive_power_a:
name: "Reactive Power A"
filters:
- delta: 1
reactive_power_b:
name: "Reactive Power B"
filters:
- delta: 1
Configuration variables:
************************
- **cs_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The chip select pin.
- **irq_pin** (*Optional*, :ref:`config-pin`): The pin connected to the ADE7935 IRQ line (if connected)
- **voltage** (*Optional*): Use the voltage value of the sensor in volts. All options from
:ref:`Sensor <config-sensor>`.
- **frequency** (*Optional*): Use the frequency value of the sensor in hertzs. All options from
:ref:`Sensor <config-sensor>`.
- **current_a** (*Optional*): Use the current value of the A channel in amperes. All options from
:ref:`Sensor <config-sensor>`.
- **current_b** (*Optional*): Use the current value of the B channel in amperes. All options from
:ref:`Sensor <config-sensor>`.
- **power_factor_a** (*Optional*): Use the power factor of the A channel in percentage. All options from
:ref:`Sensor <config-sensor>`.
- **power_factor_b** (*Optional*): Use the power factor of the B channel in percentage. All options from
:ref:`Sensor <config-sensor>`.
- **aparent_power_a** (*Optional*): Use the apparent power value of the A channel in volt ampers. All options from
:ref:`Sensor <config-sensor>`.
- **aparent_power_b** (*Optional*): Use the apparent power value of the B channel in volt ampers. All options from
:ref:`Sensor <config-sensor>`.
- **active_power_a** (*Optional*): Use the power value of the A channel in watts. All options from
:ref:`Sensor <config-sensor>`.
- **active_power_b** (*Optional*): Use the power value of the B channel in watts. All options from
:ref:`Sensor <config-sensor>`.
- **reactive_power_a** (*Optional*): Use the rective power value of the A channel in volt ampers. All options from
:ref:`Sensor <config-sensor>`.
- **reactive_power_b** (*Optional*): Use the rective power value of the B channel in volt ampers. All options from
:ref:`Sensor <config-sensor>`.
- **voltage_pga_gain** (*Optional*, mapping): Set the input PGA voltage amplification. Defaults to ``1x``. Possible values are:
- ``1x``
- ``2x``
- ``4x``
- ``8x``
- ``16x``
- ``22x``
- **current_pga_gain_a** (*Optional*, mapping): Set the input PGA current amplification of the A channel. Defaults to ``1x``. Possible values are:
- ``1x``
- ``2x``
- ``4x``
- ``8x``
- ``16x``
- ``22x``
- **current_pga_gain_b** (*Optional*, mapping): Set input PGA current amplification of the B channel. Defaults to ``1x``. Possible values are:
- ``1x``
- ``2x``
- ``4x``
- ``8x``
- ``16x``
- **voltage_gain** (*Optional*, int): Set the voltage amplification. Defaults to ``0x400000``.
- **current_gain_a** (*Optional*, int): Set the current amplification of the A channel. Defaults to ``0x400000``.
- **current_gain_b** (*Optional*, int): Set the current amplification of the B channel. Defaults to ``0x400000``.
- **active_power_gain_a** (*Optional*, int): Set the active power amplification of the A channel. Defaults to ``0x400000``.
- **active_power_gain_b** (*Optional*, int): Set the active power amplification of the B channel. Defaults to ``0x400000``.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
Use with Shelly 2.5
@ -84,7 +277,7 @@ Additionally, the device has an ::doc:`NTC temperature sensor <ntc>`.
scl: GPIO14
sensor:
- platform: ade7953
- platform: ade7953_i2c
irq_pin: GPIO16
voltage:
name: Shelly Voltage

View File

@ -0,0 +1,62 @@
Honeywell ABP 2 Pressure Sensors
================================
.. seo::
:description: Instructions for setting up Honeywell ABP2 Pressure sensors
:image: honeywellabp.jpg
:keywords: Honeywell ABP2
The ``honeywellabp2_i2c`` sensor platform allows you to use your Honeywell ABP
(`website <https://sps.honeywell.com/us/en/products/advanced-sensing-technologies/healthcare-sensing/board-mount-pressure-sensors/basic-abp2-series>`__,
`datasheet <https://prod-edam.honeywell.com/content/dam/honeywell-edam/sps/siot/en-us/products/sensors/pressure-sensors/board-mount-pressure-sensors/basic-abp2-series/documents/sps-siot-abp2-series-datasheet-32350268-en.pdf?download=false>`_)
pressure and temperature sensors with ESPHome. The :ref:`I2C <i2c>` is
required to be set up in your configuration for this sensor to work
.. figure:: images/honeywellabp.jpg
:align: center
:width: 50.0%
Honeywell ABP Pressure and Temperature Sensor.
.. code-block:: yaml
sensor:
- platform: honeywellabp2_i2c
pressure:
name: "Honeywell2 pressure"
min_pressure: 0
max_pressure: 16000
transfer_function: "A"
temperature:
name: "Honeywell2 temperature"
Configuration variables:
------------------------
The values for ``min_pressure`` and ``max_pressure`` and ``transfer_function`` can be found in the device datasheet for the specific device.
These are used to calculate the pressure reading published by the sensor. Some sensors measure pressure in ``bar`` or ``Psi``;
set ``min_pressure`` and ``max_pressure`` to the measurement range, ``transfer_function`` to ``A`` or ``B`` and ``unit_of_measurement`` to the appropriate unit for your device.
- **pressure** (*Optional*): The information for the pressure sensor.
- **min_pressure** (**Required**, int or float): Minimum pressure for the pressure sensor.
- **max_pressure** (**Required**, int or float): Maximum pressure for the pressure sensor.
- **transfer_function** (**Required**, "A" or "B"): Transfer function used by the pressure sensor.
- All other options from :ref:`Sensor <config-sensor>`.
Some sensors do not have temperature sensing ability, see datasheet. In some cases the sensor may return a valid temperature even though the
datasheet indicates that the sensor does not measure temperature.
- **temperature** (*Optional*): The information for the temperature sensor.
All options from :ref:`Sensor <config-sensor>`.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
sensor. Defaults to ``60s``.
See Also
--------
- :ref:`sensor-filters`
- :apiref:`honeywellabp/honeywellabp2.h`
- :ghedit:`Edit`

View File

@ -6,16 +6,22 @@ Hydreon Rain Sensor
:image: hydreon_rg9.jpg
:keywords: hydreon
The ``hydreon_rgxx`` sensor platform allows you to use rain sensors by Hydreon. Currently supported are the RG-9 and RG-15 (`rainsensors <https://rainsensors.com/products/model-comparison/>`_) sensors.
The ``hydreon_rgxx`` sensor platform allows you to use rain sensors by Hydreon. Currently supported are the RG-9 and RG-15 sensors (`model comparison <https://rainsensors.com/products/model-comparison/>`_).
These optical rain sensors use a UART connection at 3.3V. The :ref:`UART <uart>` is
required to be set up in your configuration for this sensor to work.
Supported firmware versions:
- RG-15: v1.000
- RG-9: v1.000, v1.100, v1.200
Device FAQ: `<https://rainsensors.com/support/rg-9-rg-15-faq/>`__
.. figure:: images/hydreon_rg9_full.jpg
:align: center
:width: 50.0%
Hydreon RG-9 Rain Sensor. Image by `Hydreon <https://rainsensors.com/products/rg-9/>`_.
Hydreon RG-9 Rain Sensor. Image by `Hydreon <https://rainsensors.com/>`_.
.. code-block:: yaml
@ -29,17 +35,26 @@ required to be set up in your configuration for this sensor to work.
sensor:
- platform: hydreon_rgxx
model: "RG_9"
update_interval: 60s
id: "hydreon_1"
update_interval: 20s
disable_led: false
moisture:
name: "rain"
expire_after: 120s
name: "Rain Level"
temperature:
name: "Device Temperature"
binary_sensor:
- platform: hydreon_rgxx
hydreon_rgxx_id: "hydreon_1"
too_cold:
name: "too cold"
entity_category: diagnostic
name: "Temperature Status"
lens_bad:
name: "lens bad"
entity_category: diagnostic
name: "Lens Status"
em_sat:
entity_category: diagnostic
name: "Emitter Saturation"
.. code-block:: yaml
@ -68,10 +83,19 @@ Configuration variables:
- **model** (**Required**, string): Specify which rain sensor you have connected. Must be either ``RG_9`` or ``RG_15``.
- **disable_led** (*Optional*): Disables the on-board LED. Defaults to ``false``. Only on RG-9 firmware version 1.200-onwards.
- **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`UART Component <uart>` if you want
to use multiple UART buses.
- **moisture** (*Optional*): Rain intensity level from 0-7. Only on RG-9.
- **moisture** (*Optional*): Rain intensity level from 0-7 (`more detail <https://rainsensors.com/support/rg-9-rg-15-faq/#RG-9RValue>`__). Only on RG-9.
- **name** (**Required**, string): The name for the sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **temperature** (*Optional*): Device internal temperature in Celsius. Accuracy is ±5°C. Only on RG-9 firmware version 1.100-onwards.
- **name** (**Required**, string): The name for the sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
@ -101,12 +125,6 @@ Configuration variables:
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **temperature** (*Optional*): Temperature +-5°C. Only on RG-9 Version 1.100 or later.
- **name** (**Required**, string): The name for the sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
@ -115,8 +133,14 @@ See Also
- :ref:`sensor-filters`
- :doc:`../binary_sensor/hydreon_rgxx`
- `Hydreon RG-9 <https://rainsensors.com/products/rg-9/>`__
- `Hydreon RG-15 <https://rainsensors.com/products/rg-15/>`__
- `RG-15 V1.000 manual <https://rainsensors.com/wp-content/uploads/sites/3/2020/07/rg-15_instructions_sw_1.000.pdf>`__
- `RG-9 V1.000 manual <https://rainsensors.com/wp-content/uploads/sites/3/2021/03/2020.08.25-rg-9_instructions.pdf>`__
- `RG-9 1.000 manual <https://rainsensors.com/wp-content/uploads/sites/3/2021/03/2020.08.25-rg-9_instructions.pdf>`__
- `RG-9 1.100 manual <https://rainsensors.com/wp-content/uploads/sites/3/2021/03/2021.03.11-rg-9_instructions.pdf>`__
- `RG-9 1.200 manual <https://rainsensors.com/wp-content/uploads/sites/3/2022/03/2022.02.17-rev-1.200-rg-9_instructions.pdf>`__
- :ghedit:`Edit`

View File

@ -0,0 +1,51 @@
AMS iAQ-Core Indoor Air Quality Sensor
======================================
.. seo::
:description: Instructions for setting up the iAQ-Core sensor.
:image: iaqcore.jpg
:keywords: co2, tvoc, i2c
The AMS iAQ-Core sensor allows you to use your
(`datasheet <https://www.sciosense.com/wp-content/uploads/documents/iaQ-Core-Datasheet.pdf>`__)
sensors with ESPHome.
.. figure:: images/iaqcore.jpg
:align: center
:width: 30.0%
AMS iAQ-Core Indoor Air Quality Sensor.
The iAQ-Core sensor module is used to measure VOC levels and provide CO2 equivalent and TVOC equivalent predictions. The data is available via I²C bus.
To use the sensor, first set up an :ref:`I²C Bus <i2c>` and connect the sensor to the specified pins.
.. code-block:: yaml
# Example configuration entry
sensor:
- platform: iaqcore
address: 0x5A
update_interval: 60s
co2:
name: "iAQ Core CO2 Sensor"
tvoc:
name: "iAQ Core TVOC Sensor"
Configuration variables:
------------------------
- **i2c_id** (*Optional*, ID): The id of the I²C Bus.
- **address** (*Optional*, int): Manually specifiy the I²C address of the sensor. Defaults to ``0x5A``.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
- **co2** (*Optional*): The configuration for the CO2 sensor. All options from
:ref:`Sensor <config-sensor>`.
- **tvoc** (*Optional*): The configuration for the TVOC sensor. All options from
:ref:`Sensor <config-sensor>`.
See Also
--------
- :ref:`sensor-filters`
- :doc:`/components/sensor/index`
- :ghedit:`Edit`

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

View File

@ -262,12 +262,38 @@ degree with a least squares solver.
``clamp``
*********
Limits the value to the range between ``min_value`` and ``max_value``. Sensor values outside these bounds will be set to ``min_value`` or ``max_value``, respectively. If ``min_value`` is not set, there is no lower bound, if ``max_value`` is not set there is no upper bound.
Limits the value to the range between ``min_value`` and ``max_value``. By default, sensor values outside these bounds will be set to ``min_value`` or ``max_value``, respectively. If ``ignore_out_of_range`` is true, then sensor values outside those bounds will be ignored. If ``min_value`` is not set, there is no lower bound; if ``max_value`` is not set there is no upper bound.
Configuration variables:
- **min_value** (*Optional*, float): The lower bound of the range.
- **max_value** (*Optional*, float): The upper bound of the range.
- **ignore_out_of_range** (*Optional*, bool): If true, ignores all sensor values out of the range. Defaults to ``false``.
.. code-block:: yaml
# Example configuration entry
- platform: wifi_signal
# ...
filters:
- clamp:
min_value: 10
max_value: 75
ignore_out_of_range: true
``round``
*********
Rounds the value to the given decimal places.
.. code-block:: yaml
- platform: ...
filters:
- round: 1 # will round to 1 decimal place
``quantile``
************

View File

@ -0,0 +1,446 @@
LD2420 24Ghz mmWave Radar Sensor
================================
.. seo::
:description: Instructions for setting up LD2420 sensors.
:image: ld2420.jpg
Component
---------
.. _ld2420-component:
The ``ld2420`` sensor platform allows you to use the HLK-LD2420 motion and presence sensor.
The :ref:`UART <uart>` is required to be set up in your configuration for this sensor to work.
Depending on the firmware you have serial baudrates will be 256000 for any module with less than
firmware v1.5.3 and 115200 on newer versions. The tx_pin changed from ot2 to ot1 with firmware v1.5.3.
Firmware v1.5.4 and up now features the ability to observe gate energy signal levels and with this
release we can dynamically calibrate gate still and move thresholds.
This component has dynamic configuration functionallity with a compact UI format.
Select, number and button components provide configuration value inputs and control.
.. figure:: /images/ld2420.jpg
:align: center
:width: 50.0%
HLK-LD2420 Low power motion and presence sensor.
Module Pinouts
--------------
.. list-table:: Firmware 1.5.2 and older
:widths: 25 25 25
:header-rows: 1
* - Pin#
- Name
- Function
* - 1
- 3v3
- VCC
* - 2
- GND
- GND
* - 3
- OT1
- Presence Signal Output
* - 4
- RX
- Serial Rx (to ESP Tx)
* - 5
- OT2
- Serial Tx (to ESP Rx)
.. list-table:: Firmware 1.5.3 and newer
:widths: 25 25 25
:header-rows: 1
* - Pin#
- Name
- Function
* - 1
- 3v3
- VCC
* - 2
- GND
- GND
* - 3
- OT1
- Serial Tx (to ESP Rx)
* - 4
- RX
- Serial Rx (to ESP Tx)
* - 5
- OT2
- Presence Signal Output
.. code-block:: yaml
# Example configuration entry
ld2420:
text_sensor:
- platform: ld2420
fw_version:
name: LD2420 Firmware
sensor:
- platform: ld2420
moving_distance:
name : Moving Distance
binary_sensor:
- platform: ld2420
has_target:
name: Presence
select:
- platform: ld2420
operating_mode:
name: Operating Mode
number:
- platform: ld2420
timeout:
name: Detection Presence Timeout
min_gate_distance:
name: Detection Gate Minimum
max_gate_distance:
name: Detection Gate Maximum
# See "Number" section below for detail
gate_select:
name: Select Gate to Set
still_threshold:
name: Set Still Threshold Value
move_threshold:
name: Set Move Threshold Value
button:
- platform: ld2420
apply_config:
name: Apply Config
factory_reset:
name: Factory Reset
restart_module:
name: Restart Module
revert_config:
name: Undo Edits
Platform
--------
.. code-block:: yaml
ld2420:
Configuration variables:
************************
**ld2420** (*Required*): Component platform.
Select
------
**Operating Modes:**
.. code-block:: yaml
select:
- platform: ld2420
operating_mode:
name: Operating Mode
The dynamic UI provides three operational modes: **Normal**, **Calibrate** and **Simple**. The select component allows
you to choose the active mode.
- **Normal**: This is the default mode. It sets the ld2420 in energy reporting mode and is availble with firmware
v1.5.4 or greater. When in this mode the module logs all gate energy levels continuouly in a local array making it
available for dynamic calibration functions.
- **Calibrate**: When calibration mode is selected the module will collect the average and peak energy levels,
reporting them every five seconds. The report is provided in the log console for information only. In order to
calibrate the gate configuration, no objects should be present in the target environment. The recording will
establish the mmWave noise floor levels and undesirable reflections or signal distortions peaks. This should be
collected for at least 30 seconds. Longer runs can catch more potential false signals when devices near the module
are used such as microwave ovens and other sources of noise.
When the **apply_config** button is pressed in calibration mode the LD2420 will be configured with calculated values
based on its collected noise floor data and the module will return to Normal Mode. Selecting any other mode drops the
session's collected noise data and no changed settings are staged. Once the **apply_config** action is performed, the
computed values will then persist. The gate values can be manually adjusted or calibrated again or you can use the
factory reset button to restore the module's default settings.
- **Simple**: Provides backward compatibility with firmware v1.5.3 and older and will be automatically set when the
detected firmware version is v1.5.3 or older.
Configuration variables:
************************
- **operating_mode** (*Required*): Provisions the operating mode select component.
May contain any options from :ref:`Select <config-select>`.
Number
------
.. code-block:: yaml
number:
- platform: ld2420
presence_timeout:
name: Detection Presence Timeout
min_gate_distance:
name: Detection Gate Minimum
max_gate_distance:
name: Detection Gate Maximum
gate_select:
name: Select Gate to Set
still_threshold:
name: Set Still Threshold Value
move_threshold:
name: Set Move Threshold Value
gate_move_sensitivity:
name: Move Calibration Sensitivity Factor
gate_still_sensitivity:
name: Still Calibration Sensitivity Factor
gate_0:
move_threshold:
name: Gate 0 Move Threshold
still_threshold:
name: Gate 0 Still Threshold
gate_1:
move_threshold:
name: Gate 1 Move Threshold
still_threshold:
name: Gate 1 Still Threshold
Configuration variables:
************************
- **presence_timeout** (*Optional*): The time in seconds during which the occupied state (presence) will persist after
presence is no longer detected. Any energy detection within the time window restarts the countdown from this value.
Defaults to 120s. **Required** when ``min_gate_distance`` and ``max_gate_distance`` is specified. May contain any
options from :ref:`Number <config-number>`.
- **min_gate_distance** (*Optional*): Minimum distance for move or still energy detection. Value between 0 and
``max_gate_distance`` - 1. Each increment equals 70 cm. Defaults to 1. **Required** when ``presence_timeout`` and
``max_gate_distance`` is specified. May contain any options from :ref:`Number <config-number>`.
- **max_gate_distance** (*Optional*): Maximum gate for movement detection. Value from 1 to 15. Each gate detects
movement and still energy at 70 cm increments. At the maximum value, the sensors range equates to 16 * 70 cm
resulting in an approximately 12-meter range; however, accuracy at this range may be diminished. The recommended
maximum value is 12 * 70 cm which results in approximately 9 meters. **Required** when ``presence_timeout`` and
``min_gate_distance`` is specified. May contain any options from :ref:`Number <config-number>`.
- **gate_still_sensitivity** (*Optional*): Gate still threshold calibration sensitivity factor. Defaults to 0.5 with a
range of 0-1, 0 = high and 1 = low. May contain any options from :ref:`Number <config-number>`.
- **gate_move_sensitivity** (*Optional*): Gate move threshold calibration sensitivity factor. Defaults to 0.5 with a
range of 0-1, 0 = high and 1 = low. May contain any options from :ref:`Number <config-number>`.
- **gate_select** (*Optional*): Selection of gate value to edit (gate # from 0 to 15). Gate thresholds
are edited by selecting the gate number and then adjusting the move and still thresholds. **Note that when this
variable is defined, the component will run in compact UI mode and the following two configuration variables are then
required:** May contain any options from :ref:`Number <config-number>`.
- **still_threshold** (*Optional*): Gate still value threshold level for motion energy detection on a currently
selected gate number. A value greater than that specified for the gate (distance) will trigger movement detection.
May contain any options from :ref:`Number <config-number>`.
- **move_threshold** (*Optional*): Gate move value threshold level for still energy detection on a currently selected
gate number. A value less than that specified for the gate (distance) will trigger still detection. May contain any
options from :ref:`Number <config-number>`.
- **gate_n** (*Optional*): Provides individual gate threshold number inputs. Range is ``gate_0`` to ``gate_15``.
**May not be used with** ``gate_select`` (above). Each gate entry requires a ``still_threshold`` and ``move_threshold``:
- **still_threshold** (*Required for each gate_n entry*): Gate still value threshold level for motion energy
detection on currently selected gate number. A value greater than that specified for the gate (distance) will
trigger movement detection. May contain any options from :ref:`Number <config-number>`.
- **move_threshold** (*Required for each gate_n entry*): Gate move value threshold level for still energy
detection on currently selected gate number. A value less than that specified for the gate (distance) will
trigger still detection. May contain any options from :ref:`Number <config-number>`.
Button
------
.. code-block:: yaml
button:
- platform: ld2420
apply_config:
name: Apply Config
factory_reset:
name: Factory Reset
restart_module:
name: Restart Module
revert_config:
name: Undo Edits
Four button components are available enabling configuration controls for editing, saving, restarting and factory reseting the LD2420 module.
Configuration variables:
************************
- **apply_config** (*Optional*): Saves both manual config tuning or the auto calibrate still and move threshold config
settings. May contain any options from :ref:`Button <config-button>`.
- **restart_module** (*Optional*): Reboots the LD2420 modules. May contain any options from :ref:`Button <config-button>`.
- **revert_config** (*Optional*): Undoes in-progress edits prior to their application via the ``apply_config`` button.
May contain any options from :ref:`Button <config-button>`.
- **factory_reset** (*Optional*): Restores a base set of LD2420 configuration values. May contain any options from
:ref:`Button <config-button>`.
Factory Reset Values:
*********************
.. _ld2420-default_values_for_gate_threshold:
.. list-table::
:widths: 25 25
:header-rows: 1
* - Setting:
- Value:
* - Timeout
- 120s
* - Min Gate Distance
- 1
* - Max Gate Distance
- 12
.. list-table::
:widths: 25 25 25
:header-rows: 1
* - Gate Number:
- Move threshold
- Still threshold
* - 0
- 60000
- 40000
* - 1
- 30000
- 20000
* - 2
- 400
- 200
* - 3
- 300
- 250
* - 4
- 250
- 150
* - 5
- 250
- 150
* - 6
- 250
- 150
* - 7
- 250
- 150
* - 8
- 300
- 150
* - 9
- 250
- 150
* - 10
- 250
- 150
* - 11
- 250
- 150
* - 12
- 250
- 100
* - 13
- 200
- 100
* - 14
- 200
- 100
* - 15
- 200
- 100
Sensor
------
The ``ld2420`` sensor allows you to use your :doc:`ld2420` to approximate the distance
between the sensor and an object moving within its field of detection.
.. code-block:: yaml
sensor:
- platform: ld2420
moving_distance:
name : Moving Distance
Configuration variables:
************************
- **moving_distance** (*Optional*): Distance between the sensor and the detected moving target. May contain any options
from :ref:`Sensor <config-sensor>`.
Binary Sensor
-------------
The ``ld2420`` binary sensor allows you to use your :doc:`ld2420` to sense presence.
.. code-block:: yaml
binary_sensor:
- platform: ld2420
has_target:
name: Presence
Configuration variables:
************************
- **has_target** (*Optional*): If a target is detected with either still or in movement **has_target** will be set true
for the duration of the **presence_time_window** setting. May contain any options from
:ref:`Binary Sensor <config-binary_sensor>`.
Text Sensor
-----------
The ``ld2420`` text sensor provides version information for the :doc:`ld2420`.
.. code-block:: yaml
text_sensor:
- platform: ld2420
fw_version:
name: LD2420 Firmware
Configuration variables:
************************
- **fw_version** (*Optional*): Allows you to retrieve the :doc:`ld2420` firmware version. May contain any options from
:ref:`Text Sensor <config-text_sensor>`.
Important Information
---------------------
Solid objects and noise outside the ``detection_gate_max`` and ``detection_gate_min`` may cause false
detections or result in abnormal gate thresholds. For example, a wall within the gate max range can result
in signal reflections. If your sensor reports unexpected detections, you should test it by placing it in a
completely open room with no moving objects.
Also, never place two or more sensors in a manner such that their detection fields overlap, as this will certainly
result in false detections.
Firmware update capability is available using the LD2420 tool provided by HLKTech.
You will need to email them and request the bin file.
At this time only firmware version v1.5.6 and up can be upgraded.
**DO NOT** attempt to update to older firmware versions. It will brick the module.
See Also
--------
- Official Datasheet/Manuals are still in development; for info email `sales@hlktech.com`.
- Official web site `https://www.hlktech.net/`
- :ghedit:`Edit`

View File

@ -0,0 +1,57 @@
SFA30 Formaldehyde Sensor
=========================
.. seo::
:description: Instructions for setting up SFA30 Formaldehyde Sensor
:image: sfa30.jpg
The ``sfa30`` sensor platform allows you to use your Sensirion SFA30 Formaldehyde
(`datasheet <https://sensirion.com/media/documents/DEB1C6D6/63D92360/Sensirion_formaldehyde_sensors_datasheet_SFA30.pdf>`__) sensors with ESPHome.
The :ref:`I²C Bus <i2c>` is required to be set up in your configuration for this sensor to work.
This sensor supports both UART and I²C communication. However, at the moment only I²C communication is implemented.
.. figure:: images/sfa30.jpg
:align: center
:width: 80.0%
.. code-block:: yaml
# Example configuration entry
sensor:
- platform: sfa30
formaldehyde:
name: "Formaldehyde"
temperature:
name: "Temperature"
humidity:
name: "Humidity"
Configuration variables:
------------------------
- **formaldehyde** (*Optional*): The information for the Formaldehyde sensor.
All options from :ref:`Sensor <config-sensor>`.
- **temperature** (*Optional*): The information for the Temperature sensor.
All options from :ref:`Sensor <config-sensor>`.
- **humidity** (*Optional*): The information for the Humidity sensor.
All options from :ref:`Sensor <config-sensor>`.
- **address** (*Optional*, int): Manually specify the I²C address of the sensor.
Defaults to ``0x5D``.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
sensor. Defaults to ``60s``.
See Also
--------
- :ref:`sensor-filters`
- :doc:`absolute_humidity`
- :apiref:`sfa30/sfa30.h`
- :ghedit:`Edit`

View File

@ -0,0 +1,56 @@
CFSensor XGZP68xx Series Differential Pressure Sensor
=====================================================
.. seo::
:description: Instructions for setting up the CFSensor XGZP68xx Series Differential Pressure sensor.
:image: 6897d.jpg
:keywords: XGZP68xx, XGZP6897, XGZP6899, XGZP6899D, XGZP6897D
The XGZP68xx Differential Pressure sensor allows you to use digital differential pressure sensors such as the 6899D
(`datasheet <https://cfsensor.com/wp-content/uploads/2022/11/XGZP6899D-Pressure-Sensor-V2.8.pdf>`__) or
6897D Series (`datasheet <https://cfsensor.com/wp-content/uploads/2022/11/XGZP6897D-Pressure-Sensor-V2.7.pdf>`__)
sensors with ESPHome. The sensors pressure ranges are specified in the datasheets.
Calibrating the sensor can be done by checking the value that is returned when
the ports are open to the air. This value should be 0. If it is not, you can use the offset option to correct the
reading. For example, if your sensor is reading -40Pa when the ports are disconnected, you can set the offset to 40.
.. figure:: images/6897d.jpg
:align: center
:width: 30.0%
XGZP6897D Differential Pressure Sensor.
(Credit: `CFSensor <https://cfsensor.net/i2c-differential-pressure-sensor-xgzp6897d/>`__, image cropped and compressed)
.. _Sparkfun: https://www.sparkfun.com/products/17874
To use the sensor, set up an :ref:`I²C Bus <i2c>` and connect the sensor to the specified pins.
.. code-block:: yaml
# Example configuration entry
# It uses a filter offset to calibrate the sensor
sensor:
- platform: xgzp68xx
temperature:
name: "Temperature"
pressure:
name: "Differential Pressure"
filters:
- offset: 40.5
Configuration variables:
------------------------
- **temperature** (*Optional*): All options from :ref:`Sensor <config-sensor>`.
- **pressure** (*Optional*): All options from :ref:`Sensor <config-sensor>`.
- **k_value** (*Optional*, int): The K value comes from the datasheet. It will default to 4096 if not specified, which is appropriate for a sensor with a range of +/- 0.5kPa.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
See Also
--------
- `esphome-pressure device <https://github.com/gcormier/esphome-pressure/>`__
- :ref:`sensor-filters`
- :apiref:`sdp3x/sdp3x.h`
- :ghedit:`Edit`

View File

@ -47,6 +47,13 @@ smart meter. If you see checksum errors in the log try changing the interface pa
sml:
id: mysml
uart_id: uart_bus
on_data:
- lambda: !lambda |-
if (valid) {
id(mqttclient).publish("gridmeter/sensor/sml/state", format_hex(bytes));
} else {
id(mqttclient).publish("gridmeter/sensor/sml/error", format_hex(bytes));
}
sensor:
- platform: sml
@ -101,6 +108,21 @@ Text Sensor
- **format** (*Optional*, string): Override the automatic interpretation of the transmitted binary data value. Possible values (`int`, `uint`, `bool`, `hex`, `text`).
- All other options from :ref:`Text Sensor <config-text_sensor>`.
Automations:
------------
- **on_data** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
SML message is received. See :ref:`sml-on-data`.
.. _sml-on-data:
``on_data`` Trigger
********************
This automation will be triggered when a valid SML message is received. The variable ``bytes`` (of type
``std::vector<uint8_t>``) contains the raw sml data including start/end sequence. The variable ``valid``
(of type ``bool``) contains the result of the checksum verification.
Getting OBIS codes and sensor ids
---------------------------------

View File

@ -6,9 +6,10 @@ SN74HC595 I/O Expander (shift register)
The SN74HC595 component allows you to use SN74HC595 shift registers as I/O expanders
(`datasheet <http://www.ti.com/lit/ds/symlink/sn74hc595.pdf>`__,
`SparkFun`_) in ESPHome. It uses 3 wires (optionally 4) for communication.
`SparkFun`_) in ESPHome. It uses 3 wires (optionally 4) for communication. Optionally, it can be added
to a SPI bus to allow sharing pins with other components.
Once configured, you can use any of the 8 pins for your projects. Up-to 256 shift registers can be daisy-chained
Once configured, you can use any of the 8 pins for your projects. Up to 256 shift registers can be daisy-chained
to provide more pins, without using more GPIO pins on the controller.
Use of the OE pin is optional. If used, the pin should be pulled up externally.
@ -21,6 +22,11 @@ Use of the OE pin is optional. If used, the pin should be pulled up externally.
.. _SparkFun: https://www.sparkfun.com/products/13699
The component can be configured using :ref:`GPIO pins <config-pin_schema>` or the :ref:`SPI Bus <spi>`.
Over GPIO
---------
.. code-block:: yaml
# Example configuration entry
@ -53,6 +59,46 @@ Configuration variables:
- **sr_count** (*Optional*, int): Number of daisy-chained shift registers, up-to 256. Defaults to ``1``.
Pin configuration variables:
****************************
- **sn74hc595** (**Required**, :ref:`config-id`): The id of the SN74HC595 component the pin belongs to.
- **number** (**Required**, int): The pin number.
- **inverted** (*Optional*, boolean): If all written values should be treated as inverted.
Defaults to ``false``.
Over SPI
--------
.. code-block:: yaml
# Example configuration entry
spi:
sn74hc595:
- id: 'sn74hc595_hub'
latch_pin: D7
oe_pin: D6
sr_count: 2
# Individual outputs
switch:
- platform: gpio
name: "SN74HC595 Pin #0"
pin:
sn74hc595: sn74hc595_hub
# Use pin number 0
number: 0
inverted: false
Configuration variables:
************************
- **id** (**Required**, :ref:`config-id`): The id to use for this SN74HC595 component.
- **latch_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): Pin connected to SN74HC595 RCLK (ST_CP) pin
- **oe_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): Pin connected to SN74HC595 OE pin
- **sr_count** (*Optional*, int): Number of daisy-chained shift registers, up to 256. Defaults to ``1``.
Pin configuration variables:
****************************

View File

@ -26,15 +26,23 @@ The ``uart`` switch platform allows you to send a pre-defined sequence of bytes
name: "UART Recurring Output"
data: [0xDE, 0xAD, 0xBE, 0xEF]
send_every: 1s
- platform: uart
name: "UART On/Off"
data:
turn_on: "TurnOn\r\n"
turn_off: "TurnOff\r\n"
Configuration variables:
------------------------
- **data** (**Required**, string or list of bytes): The data to send via UART. Either an ASCII string
or a list of bytes.
- **name** (**Required**, string): The name for the switch.
- **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the UART hub.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- **name** (*Optional*, string): The name for the switch.
- **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the UART hub.
- **data** (*Optional*, string or list of bytes): The data to send via UART. Either an ASCII string
or a list of bytes or one or both of the following nested options (see example above).
- **turn_on** (*Optional*, string or list of bytes): The data to send when turning on.
- **turn_off** (*Optional*, string or list of bytes): The data to send when turning off.
- **send_every** (*Optional*, :ref:`config-time`): Sends recurring data instead of sending once.
- All other options from :ref:`Switch <config-switch>`.

144
components/text/index.rst Normal file
View File

@ -0,0 +1,144 @@
Text Component
==============
.. seo::
:description: Instructions for setting up text components in ESPHome.
:image: folder-open.svg
ESPHome has support for components to create a text entity. A text entity is
like a ``text_sensor`` that can read a value from a device, but is useful when that value
can be set by the user/frontend.
.. note::
Home Assistant Core 2023.11 or higher is required for ESPHome text entities to work.
.. _config-text:
Base Text Configuration
-----------------------
All texts in ESPHome have a name and an optional icon.
.. code-block:: yaml
# Example text configuration
name: Livingroom Text
# Optional variables:
icon: "mdi:cursor-text"
Configuration variables:
- **id** (*Optional*, string): Manually specify the ID for code generation. At least one of **id** and **name** must be specified.
- **name** (**Required**, string): The name for the text.
.. note::
If you have a :ref:`friendly_name <esphome-configuration_variables>` set for your device and
you want the text to use that name, you can set ``name: None``.
- **icon** (*Optional*, icon): Manually set the icon to use for the text in the frontend.
- **internal** (*Optional*, boolean): Mark this component as internal. Internal components will
not be exposed to the frontend (like Home Assistant). Only specifying an ``id`` without
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).
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. Set to ``""`` to remove the default entity category.
- **mode** (**Required**, string): Defines how the text should be displayed in the frontend.
One of ``text`` or ``password``.
Automations:
- **on_value** (*Optional*, :ref:`Automation <automation>`): An automation to perform
when a new value is published. See :ref:`text-on_value`.
MQTT Options:
- All other options from :ref:`MQTT Component <config-mqtt-component>`.
Text Automation
---------------
You can access the most recent state of the text in :ref:`lambdas <config-lambda>` using
``id(text_id).state``.
.. _text-on_value:
``on_value``
************
This automation will be triggered when a new value is published. In :ref:`Lambdas <config-lambda>`
you can get the value from the trigger with ``x``.
.. code-block:: yaml
text:
- platform: template
# ...
on_value:
then:
- logger.log:
format: "%s"
args: ["x.c_str()"]
Configuration variables: See :ref:`Automation <automation>`.
.. _text-set_action:
``text.set`` Action
*******************
This is an :ref:`Action <config-action>` for setting a text state.
.. code-block:: yaml
- text.set:
id: my_text
value: "Hello World"
Configuration variables:
- **id** (**Required**, :ref:`config-id`): The ID of the text to set.
- **value** (**Required**, string, :ref:`templatable <config-templatable>`):
The value to set the text to.
.. _text-lambda_calls:
lambda calls
************
From :ref:`lambdas <config-lambda>`, you can call certain methods on all texts to do some
advanced stuff (see the full API Reference for more info).
- ``.make_call()``: Make a call for updating the text value.
.. code-block:: cpp
// Within lambda, push a value of 42
auto call = id(my_text).make_call();
call.set_value("Hello World");
call.perform();
- ``.state``: Retrieve the current value of the text.
.. code-block:: cpp
// For example, create a custom log message when a value is received:
ESP_LOGI("main", "Value of my text: %s", id(my_text).state.c_str());
See Also
--------
- :apiref:`Text <text/text.h>`
- :apiref:`TextCall <text/text_call.h>`
- :ghedit:`Edit`
.. toctree::
:maxdepth: 1
:glob:
*

View File

@ -0,0 +1,51 @@
Template Text
=============
.. seo::
:description: Instructions for setting up template texts with ESPHome.
:image: description.svg
The ``template`` text platform allows you to create a text with templated values
using :ref:`lambdas <config-lambda>`.
.. code-block:: yaml
# Example configuration entry
text:
- platform: template
name: "Template text"
optimistic: true
min_length: 0
max_length: 100
mode: text
Configuration variables:
------------------------
- **min_length** (*Optional*, int): The minimum length this text can be. Defaults to ``0``.
- **max_length** (*Optional*, int): The maximum length this text can be. Defaults to ``255``.
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`):
Lambda to be evaluated every update interval to get the current value of the text.
- **set_action** (*Optional*, :ref:`Action <config-action>`): The action that should
be performed when the remote (like Home Assistant's frontend) requests to set the
text value. The new value is available to lambdas in the ``x`` variable.
- **update_interval** (*Optional*, :ref:`config-time`): The interval on which to update the text
by executing the ``lambda``. Defaults to ``60s``.
- **optimistic** (*Optional*, boolean): Whether to operate in optimistic mode - when in this mode,
any command sent to the template text will immediately update the reported state.
Cannot be used with ``lambda``. Defaults to ``false``.
- **restore_value** (*Optional*, boolean): Saves and loads the state to RTC/Flash.
Cannot be used with ``lambda``. Defaults to ``false``.
- **initial_value** (*Optional*, String): The value to set the state to on setup if not
restored with ``restore_value``.
Cannot be used with ``lambda``.
Defaults to the empty string.
- All other options from :ref:`Text <config-text>`.
See Also
--------
- :ref:`automation`
- :apiref:`template/text/template_text.h`
- :ghedit:`Edit`

View File

@ -56,6 +56,10 @@ Configuration variables:
- **include_internal** (*Optional*, boolean): Whether ``internal`` entities should be displayed on the
web interface. Defaults to ``false``.
- **enable_private_network_access** (*Optional*, boolean): Enables support for
`Private Network Access <https://wicg.github.io/private-network-access>`__ and the
`Private Network Access Permission Prompt <https://wicg.github.io/private-network-access/#permission-prompt>`__.
Defaults to ``true``.
- **log** (*Optional*, boolean): Turn on or off the log feature inside webserver. Defaults to ``true``.
- **ota** (*Optional*, boolean): Turn on or off the OTA feature inside webserver. Strongly not suggested without enabled authentication settings. Defaults to ``true``. Cannot be used with the ``esp-idf`` framework.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.

View File

@ -89,6 +89,8 @@ Configuration variables:
- **enable_btm** (*Optional*, bool): Only on ``esp32`` with ``esp-idf``. Enable 802.11v BSS Transition Management support.
- **enable_rrm** (*Optional*, bool): Only on ``esp32`` with ``esp-idf``. Enable 802.11k Radio Resource Management support.
- **on_connect** (*Optional*, :ref:`Automation <automation>`): An action to be performed when a connection is established.
- **on_disconnect** (*Optional*, :ref:`Automation <automation>`): An action to be performed when the connection is dropped.
- **enable_on_boot** (*Optional*, boolean): If enabled, the WiFi interface will be enabled on boot. Defaults to ``true``.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
@ -272,6 +274,23 @@ Configuration variables:
- **key** (*Optional*, string): Path to a PEM encoded private key matching ``certificate`` for EAP-TLS authentication.
Optionally encrypted with ``password``.
.. _wifi-on_connect_disconnect:
``on_connect`` / ``on_disconnect`` Trigger
------------------------------------------
This trigger is activated when a WiFi connection is established or dropped.
.. code-block:: yaml
wifi:
# ...
on_connect:
- switch.turn_on: switch1
on_disconnect:
- switch.turn_off: switch1
.. _wifi-on_disable:
``wifi.disable`` Action
-----------------------
@ -288,6 +307,7 @@ This action turns off the WiFi interface on demand.
Be aware that if you disable WiFi, the API timeout will need to be disabled otherwise the device will reboot.
.. _wifi-on_enable:
``wifi.enable`` Action
----------------------

View File

@ -241,6 +241,22 @@ This sensor reports the *timestamp* of the latest completed handshake.
All options from :ref:`Sensor <config-sensor>` can be added to the
above configuration.
Address Text Sensor
^^^^^^^^^^^^^^^^^^^
This sensor exposes to the frontend the configured :ref:`address <wireguard-address>`.
.. code-block:: yaml
# Example configuration entry
text_sensor:
- platform: wireguard
address:
name: 'WireGuard Address'
All options from :ref:`Text Sensor <config-text_sensor>` can be added to the
above configuration.
.. _wireguard-installation:
Remote peer setup

View File

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

View File

@ -348,6 +348,7 @@ All Triggers
:ref:`ota.on_state_change <ota-on_state_change>`
- :ref:`display.on_page_change <display-on_page_change-trigger>`
- :ref:`cover.on_open <cover-on_open_trigger>` / :ref:`cover.on_closed <cover-on_closed_trigger>`
- :ref:`wifi.on_connect / wifi.on_disconnect <wifi-on_connect_disconnect>`
All Actions
-----------

View File

@ -240,3 +240,16 @@ The ``esphome logs <CONFIG>`` command validates the configuration and shows all
Manually specify a serial port/IP to use. For example ``/dev/cu.SLAB_USBtoUART``.
Using Bash or ZSH auto-completion
---------------------------------
ESPHome's command line interface provides the ability to use auto-completion features provided by Bash or ZSH.
You can register ESPHome for auto-completion by adding the following to your ~/.bashrc file:
.. code-block:: console
eval "$(register-python-argcomplete esphome)"
For more information, see `argcomplete <https://kislyuk.github.io/argcomplete/>`__ documentation.

View File

@ -117,6 +117,14 @@ Advanced options:
- **drive_strength** (*Optional*, string): On ESP32s with esp-idf framework the pad drive strength,
i.e. the maximum amount of current can additionally be set. Defaults to ``20mA``.
Options are ``5mA``, ``10mA``, ``20mA``, ``40mA``.
- **ignore_strapping_warning** (*Optional*, boolean): Certain pins on ESP32s are designated *strapping pins* and are read
by the chip on reset to configure initial operation, e.g. to enable bootstrap mode.
Using such pins for I/O should be avoided and ESPHome will warn if I/O is configured on a strapping pin.
For more detail see :ref:`strapping-warnings`.
If you are *absolutely* sure that you are using a strapping pin for I/O in a way that will not cause problems,
you can suppress the warning by setting this option to ``true`` in the pin configuration.
.. _config-time:

View File

@ -409,6 +409,8 @@ The top level ``name:`` field in your .yaml file defines the node name(/hostname
Important: follow these `instructions </components/esphome.html#changing-esphome-node-name>`_ to use the ``use_address`` parameter when renaming a live device, as the connection to an existing device will only work with the old name until the name change is complete.
.. _strapping-warnings:
Why am I getting a warning about strapping pins?
--------------------------------------------------
@ -419,6 +421,13 @@ It's recommended to avoid them unless you have a pressing need to use them and y
Some development boards connect GPIO 0 to a button, often labeled "boot". Holding this button while the ESP is turning on will cause it to go into bootloader mode. Once the ESP is fully booted up, this button can be used as a normal input safely.
Strapping pins should be safe to use as outputs if they are *only* connected to other devices that have hi-impedance inputs
with no pull-up or pull-down resistors. Note that I2C clock and data lines *do* have pull-up resistors and are not
safe on strapping pins.
If you are absolutely sure that your use of strapping pins is safe, and want to suppress the warning, you can
add ``ignore_strapping_warning: true`` to the relevant pin configurations.
How can I test a Pull Request?
------------------------------

View File

@ -124,6 +124,7 @@ Contributors
- `Avirsaam (@Avirsaam) <https://github.com/Avirsaam>`__
- `Arsène von Wyss (@avonwyss) <https://github.com/avonwyss>`__
- `Andrew Weddle (@aweddle2) <https://github.com/aweddle2>`__
- `Alexis Iglauer (@ax42) <https://github.com/ax42>`__
- `Achilleas Pipinellis (@axilleas) <https://github.com/axilleas>`__
- `Kamil Trzciński (@ayufan) <https://github.com/ayufan>`__
- `Nicholas Peters (@Azimath) <https://github.com/Azimath>`__
@ -219,6 +220,7 @@ Contributors
- `carlywarly (@carlywarly) <https://github.com/carlywarly>`__
- `Carson Full (@CarsonF) <https://github.com/CarsonF>`__
- `carstenschroeder (@carstenschroeder) <https://github.com/carstenschroeder>`__
- `Christian Anders Schwarzgruber (@casch-at) <https://github.com/casch-at>`__
- `Valentin Ochs (@Cat-Ion) <https://github.com/Cat-Ion>`__
- `Stroe Andrei Catalin (@catalin2402) <https://github.com/catalin2402>`__
- `Carter Nelson (@caternuson) <https://github.com/caternuson>`__
@ -236,6 +238,7 @@ Contributors
- `Filipe Mendonça (@cfilipem) <https://github.com/cfilipem>`__
- `cg089 (@cg089) <https://github.com/cg089>`__
- `Audric Schiltknecht (@chemicalstorm) <https://github.com/chemicalstorm>`__
- `Charles Johnson (@ChemicalXandco) <https://github.com/ChemicalXandco>`__
- `chris-jennings (@chris-jennings) <https://github.com/chris-jennings>`__
- `Chris (@chrismaki) <https://github.com/chrismaki>`__
- `Christoph Wagner (@Christoph-Wagner) <https://github.com/Christoph-Wagner>`__
@ -273,7 +276,6 @@ Contributors
- `Corey Rice (@crice009) <https://github.com/crice009>`__
- `crp500 (@crp500) <https://github.com/crp500>`__
- `cryptelli (@cryptelli) <https://github.com/cryptelli>`__
- `Christian Schwarzgruber (@cslux) <https://github.com/cslux>`__
- `cstaahl (@cstaahl) <https://github.com/cstaahl>`__
- `Chris Talkington (@ctalkington) <https://github.com/ctalkington>`__
- `cvwillegen (@cvwillegen) <https://github.com/cvwillegen>`__
@ -470,6 +472,7 @@ Contributors
- `Frankster-NL (@Frankster-NL) <https://github.com/Frankster-NL>`__
- `Fredrik Erlandsson (@fredrike) <https://github.com/fredrike>`__
- `freeasabeer (@freeasabeer) <https://github.com/freeasabeer>`__
- `FreeBear-nc (@FreeBear-nc) <https://github.com/FreeBear-nc>`__
- `Evgeny (@freekode) <https://github.com/freekode>`__
- `Brett McKenzie (@freerangeeggs) <https://github.com/freerangeeggs>`__
- `Franck Nijhof (@frenck) <https://github.com/frenck>`__
@ -640,7 +643,6 @@ Contributors
- `Joel Goguen (@jgoguen) <https://github.com/jgoguen>`__
- `Yuval Brik (@jhamhader) <https://github.com/jhamhader>`__
- `Joe (@jhansche) <https://github.com/jhansche>`__
- `Jan Pieter Waagmeester (@jieter) <https://github.com/jieter>`__
- `Jim Bauwens (@jimbauwens) <https://github.com/jimbauwens>`__
- `jimtng (@jimtng) <https://github.com/jimtng>`__
- `jivesinger (@jivesinger) <https://github.com/jivesinger>`__
@ -648,6 +650,7 @@ Contributors
- `John K. Luebs (@jkl1337) <https://github.com/jkl1337>`__
- `Jeppe Ladefoged (@jladefoged) <https://github.com/jladefoged>`__
- `Jean-Luc Béchennec (@jlbirccyn) <https://github.com/jlbirccyn>`__
- `JLo (@jlpouffier) <https://github.com/jlpouffier>`__
- `Jonas De Kegel (@jlsjonas) <https://github.com/jlsjonas>`__
- `Jeff Anderson (@jman203) <https://github.com/jman203>`__
- `Jonathan Martens (@jmartens) <https://github.com/jmartens>`__
@ -704,7 +707,6 @@ Contributors
- `AngeloGioacchino Del Regno (@kholk) <https://github.com/kholk>`__
- `Kilowatt (@Kilowatt-W) <https://github.com/Kilowatt-W>`__
- `Ed (@kixtarter) <https://github.com/kixtarter>`__
- `Kurt Kellner (@kkellner) <https://github.com/kkellner>`__
- `Klaas Schoute (@klaasnicolaas) <https://github.com/klaasnicolaas>`__
- `Klarstein (@Klarstein) <https://github.com/Klarstein>`__
- `Marcus Klein (@kleini) <https://github.com/kleini>`__
@ -730,7 +732,6 @@ Contributors
- `Fredrik Lindqvist (@Landrash) <https://github.com/Landrash>`__
- `lanik (@lanik) <https://github.com/lanik>`__
- `Lawrie George (@lawriege) <https://github.com/lawriege>`__
- `Laszlo Gazdag (@lazlyhu) <https://github.com/lazlyhu>`__
- `Ludovic BOUÉ (@lboue) <https://github.com/lboue>`__
- `lcavalli (@lcavalli) <https://github.com/lcavalli>`__
- `Craig Fletcher (@leakypixel) <https://github.com/leakypixel>`__
@ -983,6 +984,7 @@ Contributors
- `Florian Ragwitz (@rafl) <https://github.com/rafl>`__
- `Ben V. Brown (@Ralim) <https://github.com/Ralim>`__
- `randomllama (@randomllama) <https://github.com/randomllama>`__
- `Rodrigo Martín (@Rapsssito) <https://github.com/Rapsssito>`__
- `Marc Seeger (@rb2k) <https://github.com/rb2k>`__
- `rbaron (@rbaron) <https://github.com/rbaron>`__
- `Robert Cambridge (@rcambrj) <https://github.com/rcambrj>`__
@ -1251,4 +1253,4 @@ Contributors
- `Zsolt Zsiros (@ZsZs73) <https://github.com/ZsZs73>`__
- `Christian Zufferey (@zuzu59) <https://github.com/zuzu59>`__
*This page was last updated November 3, 2023.*
*This page was last updated November 15, 2023.*

BIN
images/6897d.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
images/dfrobot_sen0395.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
images/emc2101.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
images/iaqcore.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
images/ld2420.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

1
images/pellet.svg Normal file
View File

@ -0,0 +1 @@
<svg viewBox="0 0 160 25" id="svg5" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><defs id="defs9"/><path d="M5 0H155a5 5 0 015 5v15a5 5 0 01-5 5H5a5 5 0 01-5-5V5a5 5 0 015-5z" style="fill:#000" id="path2"/><g aria-label="MicroNova" id="component-text" style="font-weight:900;font-size:25px;font-family:Montserrat;letter-spacing:1.1px;fill:#fffffc"><path d="M6.425 21V3.5h4.85l7 11.425h-2.55L22.525 3.5h4.85L27.425 21H22.05L22 11.6h.85L18.2 19.425H15.6L10.75 11.6H11.8V21z" id="path11"/><path d="M31.200012 21V7.325h5.65V21zm2.825-14.775q-1.55.0-2.475-.825-.925-.825-.925-2.05.0-1.225.925-2.05.925-.825 2.475-.825 1.55.0 2.475.775.925.775.925 2 0 1.3-.925 2.15-.925.825-2.475.825z" id="path13"/><path d="m47.800016 21.25q-2.35.0-4.175-.9-1.825-.9-2.875-2.5-1.025-1.625-1.025-3.7t1.025-3.675q1.05-1.6 2.875-2.5t4.175-.9q2.5.0 4.275 1.075t2.45 2.975l-4.375 2.15q-.425-.95-1.05-1.375-.6-.425-1.325-.425-.625.0-1.175.3-.525.3-.85.9-.3.575-.3 1.475t.3 1.5q.325.6.85.9.55.3 1.175.3.725.0 1.325-.425.625-.425 1.05-1.375l4.375 2.15q-.675 1.9-2.45 2.975-1.775 1.075-4.275 1.075z" id="path15"/><path d="M56.925011 21V7.325h5.375v4.125l-.875-1.175q.625-1.6 2-2.4 1.375-.8 3.3-.8v5q-.375-.05-.675-.075-.275-.025-.575-.025-1.275.0-2.1.675-.8.65-.8 2.275V21z" id="path17"/><path d="m76.525018 21.25q-2.325.0-4.125-.9-1.775-.925-2.8-2.525-1.025-1.6-1.025-3.675t1.025-3.675q1.025-1.6 2.8-2.5 1.8-.9 4.125-.9t4.125.9 2.8 2.5q1.025 1.6 1.025 3.675t-1.025 3.675q-1 1.6-2.8 2.525-1.8.9-4.125.9zm0-4.4q.625.0 1.125-.3t.8-.9q.3-.625.3-1.5.0-.9-.3-1.475-.3-.6-.8-.9t-1.125-.3-1.125.3-.8.9q-.3.575-.3 1.475.0.875.3 1.5.3.6.8.9t1.125.3z" id="path19"/><path d="M87.525006 21V3.5h4.85l8.900004 10.65H99.025006V3.5h5.750004V21h-4.850004l-8.9-10.65h2.25V21z" id="path21"/><path d="m115.77503 21.25q-2.325.0-4.125-.9-1.775-.925-2.8-2.525-1.025-1.6-1.025-3.675t1.025-3.675q1.025-1.6 2.8-2.5 1.8-.9 4.125-.9t4.125.9 2.8 2.5q1.025 1.6 1.025 3.675t-1.025 3.675q-1 1.6-2.8 2.525-1.8.9-4.125.9zm0-4.4q.625.0 1.125-.3t.8-.9q.3-.625.3-1.5.0-.9-.3-1.475-.3-.6-.8-.9t-1.125-.3-1.125.3-.8.9q-.3.575-.3 1.475.0.875.3 1.5.3.6.8.9t1.125.3z" id="path23"/><path d="m130.10003 21-5.5-13.675h5.8l4.175 11.1h-2.925l4.45-11.1h5.35l-5.5 13.675z" id="path25"/><path d="m151.19999 21v-2.425l-.4-.65v-4.6q0-1-.625-1.525-.6-.525-1.975-.525-.925.0-1.875.3-.95.275-1.625.775l-1.8-3.725q1.2-.75 2.875-1.15t3.275-.4q3.525.0 5.45 1.575 1.95 1.575 1.95 5V21zm-3.875.25q-1.675.0-2.8-.575t-1.7-1.525q-.575-.975-.575-2.15.0-1.325.675-2.25t2.05-1.4q1.4-.475 3.525-.475h2.85V15.6h-1.95q-.9.0-1.325.3-.4.275-.4.85.0.475.35.8.375.3 1 .3.575.0 1.05-.3.5-.325.725-1l.725 1.675q-.325 1.525-1.375 2.275t-2.825.75z" id="path27"/></g></svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
images/qwiic_pir.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
images/sfa30.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -196,12 +196,14 @@ Air Quality
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
SM300D2, components/sensor/sm300d2, sm300d2.jpg, 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
@ -306,10 +308,12 @@ Environmental
DHT, components/sensor/dht, dht.jpg, Temperature & Humidity
DHT12, components/sensor/dht12, dht12.jpg, Temperature & Humidity
DPS310, components/sensor/dps310, dps310.jpg, Temperature & Pressure
EMC2101, components/emc2101, emc2101.jpg, Temperature
ENS210, components/sensor/ens210, ens210.jpg, Temperature & Humidity
HDC1080, components/sensor/hdc1080, hdc1080.jpg, Temperature & Humidity
HTE501, components/sensor/hte501, HTE501.png, Temperature & Humidity
Honeywell ABP, components/sensor/honeywellabp, honeywellabp.jpg, Pressure & Temperature
Honeywell ABP2 I2C, components/sensor/honeywellabp2_i2c, honeywellabp.jpg, Pressure & Temperature
HTU21D / Si7021 / SHT21, components/sensor/htu21d, htu21d.jpg, Temperature & Humidity
Hydreon Rain Sensor, components/sensor/hydreon_rgxx, hydreon_rg9.jpg, Rain
Inkbird IBS-TH1 Mini, components/sensor/inkbird_ibsth1_mini, inkbird_isbth1_mini.jpg, Temperature & Humidity
@ -327,6 +331,7 @@ Environmental
SCD30, components/sensor/scd30, scd30.jpg, CO2 & Temperature & Humidity
SCD4X, components/sensor/scd4x, scd4x.jpg, CO2 & Temperature & Humidity
SDP3x / SDP800 Series, components/sensor/sdp3x, sdp31.jpg, Pressure
SFA30, components/sensor/sfa30, sfa30.jpg, Formaldehyde
SHT3X-D, components/sensor/sht3xd, sht3xd.jpg, Temperature & Humidity
SHT4X, components/sensor/sht4x, sht4x.jpg, Temperature & Humidity
SHTCx, components/sensor/shtcx, shtc3.jpg, Temperature & Humidity
@ -337,6 +342,7 @@ Environmental
TMP117, components/sensor/tmp117, tmp117.jpg, Temperature
TMP1075, components/sensor/tmp1075, tmp1075.jpg, Temperature
HYT271, components/sensor/hyt271, hyt271.jpg, Temperature & Humidity
XGZP68xx Series, components/sensor/xgzp68xx, 6897d.jpg, Differential Pressure
Light
@ -392,6 +398,7 @@ Miscellaneous
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
@ -401,6 +408,7 @@ Motion
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
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
@ -484,6 +492,14 @@ Touchscreen
TT21100, components/touchscreen/tt21100, esp32-s3-korvo-2-lcd.png
XPT2046, components/binary_sensor/xpt2046, xpt2046.jpg
Presence Detection
******************
.. imgtable::
DFRobot mmWave Radar, components/dfrobot_sen0395, dfrobot_sen0395.jpg
LD2410, components/sensor/ld2410, ld2410.jpg
LD2420, components/sensor/ld2420, ld2420.jpg
Miscellaneous
*************
.. imgtable::
@ -491,9 +507,9 @@ Miscellaneous
Analog Threshold, components/binary_sensor/analog_threshold, analog_threshold.svg, dark-invert
ESP32 BLE Presence, components/binary_sensor/ble_presence, bluetooth.svg, dark-invert
Hydreon Rain Sensor Binary Sensor, components/binary_sensor/hydreon_rgxx, hydreon_rg9.jpg
LD2410, components/sensor/ld2410, ld2410.jpg
Modbus Binary Sensor, components/binary_sensor/modbus_controller, modbus.png
PipSolar - compatible PV Inverter, components/pipsolar, pipsolar.jpg
Qwiic PIR Motion, components/binary_sensor/qwiic_pir, qwiic_pir.jpg
Remote Receiver, components/remote_receiver, remote.svg, dark-invert
Resol VBus, components/vbus, resol_deltasol_bs_plus.jpg
Tuya Binary Sensor, components/binary_sensor/tuya, tuya.png
@ -533,6 +549,7 @@ Output Components
BP5758D, components/output/bp5758d, bp5758d.svg
X9C Potentiometer, components/output/x9c, x9c.jpg
GP8403, components/output/gp8403, gp8403.svg
EMC2101, components/emc2101, emc2101.jpg
Light Components
----------------
@ -602,6 +619,7 @@ Button Components
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
Fan Components
@ -694,6 +712,7 @@ Text Sensor Components
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
WireGuard, components/wireguard, wireguard_custom_logo.svg
Climate Components
------------------
@ -741,6 +760,14 @@ Lock Components
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
Media Player Components
-----------------------