From ebe48114aee025ffe244c946f1172ef25ca59666 Mon Sep 17 00:00:00 2001 From: Jesse Hills <3060199+jesserockz@users.noreply.github.com> Date: Wed, 13 Oct 2021 16:40:47 +1300 Subject: [PATCH 01/31] Bump version to 2021.11.0-dev --- Doxygen | 2 +- _static/version | 2 +- conf.py | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Doxygen b/Doxygen index 8b0dc9c98..aad0168cb 100644 --- a/Doxygen +++ b/Doxygen @@ -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 = 2021.10.0-dev +PROJECT_NUMBER = 2021.11.0-dev # 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 diff --git a/_static/version b/_static/version index 0b185088a..38c6e67b7 100644 --- a/_static/version +++ b/_static/version @@ -1 +1 @@ -2021.10.0-dev +2021.11.0-dev \ No newline at end of file diff --git a/conf.py b/conf.py index e886428b2..815fcad81 100644 --- a/conf.py +++ b/conf.py @@ -67,9 +67,9 @@ author = "Otto Winter" # built documents. # # The short X.Y version. -version = "2021.10" +version = "2021.11" # The full version, including alpha/beta/rc tags. -release = "2021.10.0-dev" +release = "2021.11.0-dev" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From d36e9e7893a031e88b56ab336467687b187f22c4 Mon Sep 17 00:00:00 2001 From: razorback16 Date: Wed, 13 Oct 2021 09:45:58 -0700 Subject: [PATCH 02/31] Updated documentation of TCS34725 (#1510) - Due to the commit 3273871c1c572db00a1f549cb1c076663f39c3d7 documentation is updated Co-authored-by: Razorback16 --- components/sensor/tcs34725.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/components/sensor/tcs34725.rst b/components/sensor/tcs34725.rst index 983adfc6b..f3bedde2d 100644 --- a/components/sensor/tcs34725.rst +++ b/components/sensor/tcs34725.rst @@ -42,6 +42,7 @@ required to be set up in your configuration for this sensor to work. name: "TCS34725 Color Temperature" gain: 1x integration_time: 2.4ms + glass_attenuation_factor: 1.0 address: 0x29 update_interval: 60s @@ -63,7 +64,10 @@ Configuration variables: - **gain** (*Optional*): Set the gain for the internal ADCs to work better in certain low-light conditions. Valid values are ``1x`` (default), ``4x``, ``16x``, ``60x`` (highest gain). - **integration_time** (*Optional*): The amount of time the light sensor is exposed. Valid values are - ``2.4ms`` (default), ``24ms``, ``50ms``, ``101ms``, ``154ms``, ``700ms``. + ``2.4ms`` (default), ``24ms``, ``50ms``, ``101ms``, ``120ms``, ``154ms``, ``180ms``, ``199ms``, + ``240ms``, ``300ms``, ``360ms``, ``401ms``, ``420ms``, ``480ms``, ``499ms``, ``540ms``, ``600ms``, ``614ms``. +- **glass_attenuation_factor** (*Optional*): The attenuation factor of glass if it's behind some glass facia. + Default is ``1.0`` means ``100%`` transmissivity. ``2`` means ``50%`` transmissivity etc. - **address** (*Optional*, int): Manually specify the I²C address of the sensor. Defaults to ``0x29``. - **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``. From d625bdf42b2861b80b29f09f2d5a6e3fa47bf49e Mon Sep 17 00:00:00 2001 From: Nate Lust Date: Thu, 14 Oct 2021 16:39:29 -0400 Subject: [PATCH 03/31] Add new documentation to SGP40 component (#1515) --- components/sensor/sgp40.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/components/sensor/sgp40.rst b/components/sensor/sgp40.rst index 8ea7f92cc..cce91ab02 100644 --- a/components/sensor/sgp40.rst +++ b/components/sensor/sgp40.rst @@ -9,6 +9,14 @@ The ``sgp40`` sensor platform allows you to use your Sensirion SGP40 VOC sensor (`datasheet `__) with ESPHome. The :ref:`I²C Bus ` is required to be set up in your configuration for this sensor to work. +.. note:: + + This sensor need to be driven at a rate of 1Hz. Because of this, the + sensor will be read out on device once a second separately from the + update_interval. The state will be reported to other components, or + the front end at the update_interval, saving wifi power and network + communication. + .. figure:: images/sgp40.jpg :align: center :width: 80.0% From e79b1c6adf6bc66eeeb43bf21158898a4ecb42da Mon Sep 17 00:00:00 2001 From: Jesse Hills <3060199+jesserockz@users.noreply.github.com> Date: Sun, 17 Oct 2021 11:03:24 +1300 Subject: [PATCH 04/31] Add dashboard_import to sharing page (#1530) Co-authored-by: Paulus Schoutsen Co-authored-by: Oxan van Leeuwen --- guides/creators.rst | 15 +++++++++++---- index.rst | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/guides/creators.rst b/guides/creators.rst index 9fec5da98..2da40be36 100644 --- a/guides/creators.rst +++ b/guides/creators.rst @@ -1,10 +1,10 @@ -Using ESPHome for your Project -============================== +Sharing ESPHome devices +======================= .. seo:: - :description: Information for creators when using ESPHome firmware. + :description: Information for creating and sharing devices using ESPHome firmware. -We have added configuration options to ESPHome to make it easier for creators +We have added configuration options to ESPHome to make it easier to create, configure, install and distribute devices running ESPHome. Example configuration @@ -24,6 +24,10 @@ Example configuration name: jesse.temperature_monitor version: "1.0" + # This should point to the public location of this yaml file. + dashboard_import: + package_import_url: github://jesserockz/dummy-esphome-configs@v1/temperature-monitor.yaml + wifi: # Set up a wifi access point ap: @@ -50,6 +54,9 @@ Relevant Documentation - ``wifi`` -> ``networks: []`` allows you to flash a device that will not contain any credentials and they must be set by the user via either the ``ap`` + ``captive_portal`` or the ``esp32_improv`` components. +- ``dashboard_import`` -> ``package_import_url`` - This should point to the public repository containing + the configuration for the device so that the user's ESPHome dashboard can autodetect this device and + create a minimal YAML using :ref:`config-git_packages`. See Also -------- diff --git a/index.rst b/index.rst index 73254c360..e31e22d02 100644 --- a/index.rst +++ b/index.rst @@ -69,7 +69,7 @@ ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configu
  • - Creating a Project + Sharing ESPHome devices
  • From 2b2ce357b635eeaddf684cd503b67e1d40dd9785 Mon Sep 17 00:00:00 2001 From: Otto Winter Date: Tue, 19 Oct 2021 21:53:24 +0200 Subject: [PATCH 05/31] GPIO Refactor docs (#1543) --- guides/configuration-types.rst | 46 ++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/guides/configuration-types.rst b/guides/configuration-types.rst index 402e4e4f1..c75032db6 100644 --- a/guides/configuration-types.rst +++ b/guides/configuration-types.rst @@ -75,39 +75,41 @@ In some places, ESPHome also supports a more advanced “pin schema”. pin: number: D0 inverted: true - mode: INPUT_PULLUP + mode: + input: true + pullup: true Configuration variables: - **number** (**Required**, pin): The pin number. - **inverted** (*Optional*, boolean): If all read and written values should be treated as inverted. Defaults to ``false``. -- **mode** (*Optional*, string): A pin mode to set for the pin at - startup, corresponds to Arduino’s ``pinMode`` call. +- **mode** (*Optional*, string or mapping): Configures the pin to behave in different + modes like input or output. The default value depends on the context. + Accepts either a shorthand string or a mapping where each feature can be individually + enabled/disabled: -Available Pin Modes: + - **input** (*Optional*, boolean): If true, configure the pin as an input. + - **output** (*Optional*, boolean): If true, configure the pin as an output. + - **pullup** (*Optional*, boolean): Activate internal pullup resistors on the pin. + - **pulldown** (*Optional*, boolean): Activate internal pulldown resistors on the pin. + - **open_drain** (*Optional*, boolean): Set the pin to open-drain (as opposed to push-pull). + The active pin state will then result in a high-impedance state. -- ``INPUT`` -- ``OUTPUT`` -- ``OUTPUT_OPEN_DRAIN`` -- ``ANALOG`` (only on ESP32) -- ``INPUT_PULLUP`` -- ``INPUT_PULLDOWN`` (only on ESP32) -- ``INPUT_PULLDOWN_16`` (only on ESP8266 and only on GPIO16) + For compatibility some shorthand modes can also be used. -More exotic Pin Modes are also supported, but rarely used: + - ``INPUT`` + - ``OUTPUT`` + - ``OUTPUT_OPEN_DRAIN`` + - ``ANALOG`` + - ``INPUT_PULLUP`` + - ``INPUT_PULLDOWN`` -- ``WAKEUP_PULLUP`` (only on ESP8266) -- ``WAKEUP_PULLDOWN`` (only on ESP8266) -- ``SPECIAL`` -- ``FUNCTION_0`` (only on ESP8266) -- ``FUNCTION_1`` -- ``FUNCTION_2`` -- ``FUNCTION_3`` -- ``FUNCTION_4`` -- ``FUNCTION_5`` (only on ESP32) -- ``FUNCTION_6`` (only on ESP32) +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``. .. _config-time: From ff93682cedef52edd1c5103337ffc5157f11660d Mon Sep 17 00:00:00 2001 From: Maurice Makaay Date: Tue, 19 Oct 2021 22:00:25 +0200 Subject: [PATCH 06/31] Fix compile error for uptime sensor with esp-idf (#1534) Co-authored-by: Maurice Makaay --- components/sensor/uptime.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/components/sensor/uptime.rst b/components/sensor/uptime.rst index 04dc86209..58fbff2d0 100644 --- a/components/sensor/uptime.rst +++ b/components/sensor/uptime.rst @@ -56,10 +56,10 @@ with human readable output. int minutes = seconds / 60; seconds = seconds % 60; return ( - (days ? String(days) + "d " : "") + - (hours ? String(hours) + "h " : "") + - (minutes ? String(minutes) + "m " : "") + - (String(seconds) + "s") + (days ? to_string(days) + "d " : "") + + (hours ? to_string(hours) + "h " : "") + + (minutes ? to_string(minutes) + "m " : "") + + (to_string(seconds) + "s") ).c_str(); See Also From 619ff3698455146a471063772ff0fd680223f435 Mon Sep 17 00:00:00 2001 From: Otto Winter Date: Tue, 19 Oct 2021 23:08:37 +0200 Subject: [PATCH 07/31] Document esp8266 & esp32 new platform components (#1540) Co-authored-by: Oxan van Leeuwen Co-authored-by: Guillermo Ruffino Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com> --- components/esp32.rst | 90 ++++++++++++++++++++++++++++++ components/esp8266.rst | 44 +++++++++++++++ components/esphome.rst | 108 +++++------------------------------- components/http_request.rst | 8 +-- index.rst | 3 + 5 files changed, 152 insertions(+), 101 deletions(-) create mode 100644 components/esp32.rst create mode 100644 components/esp8266.rst diff --git a/components/esp32.rst b/components/esp32.rst new file mode 100644 index 000000000..9d70e2b05 --- /dev/null +++ b/components/esp32.rst @@ -0,0 +1,90 @@ +ESP32 Platform +============== + +.. seo:: + :description: Configuration for the ESP32 platform for ESPHome. + :image: esp32.png + +This component contains platform-specific options for the ESP32 platform. + +.. code-block:: yaml + + # Example configuration entry + esp32: + board: nodemcu-32s + +Configuration variables: +------------------------ + +- **board** (**Required**, string): The PlatformIO board ID that should + be used. Choose the appropriate board from + `this list `__. + *This only affects pin aliases, flash size and some internal settings*, if unsure choose a generic board. +- **framework** (*Optional*): Options for the underlying framework used by ESPHome. + See :ref:`esp32-arduino_framework` and :ref:`esp32-espidf_framework`. + +- **variant** (*Optional*, boolean): Defaults to the variant detected from the board. If the board is not known this option becomes mandatory. + One of ``esp32``, ``esp32s2``, ``esp32s3``, ``esp32c3`` and ``esp32h2``. + +.. _esp32-arduino_framework: + +Arduino framework +----------------- + +This is the default framework for ESP32 chips at the moment. + +.. code-block:: yaml + + # Example configuration entry + esp32: + board: nodemcu-32s + framework: + type: arduino + version: 2.0.0 + +- **version** (*Optional*, string): The base framework version number to use, from + `ESP32 arduino releases `__. Defaults to ``recommended``. Additional values are: + + - ``dev``: Use the latest commit from https://github.com/espressif/arduino-esp32, note this may break at any time + - ``latest``: Use the latest *release* from https://github.com/espressif/arduino-esp32/releases, even if it hasn't been recommended yet. + - ``recommended``: Use the recommended framework version. + +- **source** (*Optional*, string): The PlatformIO package or repository to use for framework. This can be used to use a custom or patched version of the framework. +- **platform_version** (*Optional*, string): The version of the `platformio/espressif32 `__ package to use. + +.. _esp32-espidf_framework: + +ESP-IDF framework +----------------- + +This is an alternative base framework for ESP32 chips, and recommended for variants +of the ESP32 like ESP32S2, ESP32S3, ESP32C3 and single-core ESP32 chips. + +.. code-block:: yaml + + # Example configuration entry + esp32: + board: esp32-c3-devkitm-1 + framework: + type: esp-idf + version: recommended + # Custom sdkconfig options + sdkconfig_options: + CONFIG_COMPILER_OPTIMIZATION_SIZE: y + +- **version** (*Optional*, string): The base framework version number to use, from + `ESP32 ESP-IDF releases `__. Defaults to ``recommended``. Additional values are: + + - ``dev``: Use the latest commit from https://github.com/espressif/esp-idf, note this may break at any time + - ``latest``: Use the latest *release* from https://github.com/espressif/esp-idf/releases, even if it hasn't been recommended yet. + - ``recommended``: Use the recommended framework version. + +- **source** (*Optional*, string): The PlatformIO package or repository to use for the framework. This can be used to use a custom or patched version of the framework. +- **platform_version** (*Optional*, string): The version of the `platformio/espressif32 `__ package to use. +- **sdkconfig_options** (*Optional*, mapping): Custom sdkconfig options to set in the ESP-IDF project. + +See Also +-------- + +- :doc:`esphome` +- :ghedit:`Edit` diff --git a/components/esp8266.rst b/components/esp8266.rst new file mode 100644 index 000000000..be11a4b5d --- /dev/null +++ b/components/esp8266.rst @@ -0,0 +1,44 @@ +ESP8266 Platform +================ + +.. seo:: + :description: Configuration for the ESP8266 platform for ESPHome. + :image: esp8266.png + +This component contains platform-specific options for the ESP8266 platform. + +.. code-block:: yaml + + # Example configuration entry + esp8266: + board: nodemcuv2 + framework: + version: recommended + +Configuration variables: +------------------------ + +- **board** (**Required**, string): The PlatformIO board ID that should + be used. Choose the appropriate board from + `this list `__. + *This only affects pin aliases, flash size and some internal settings*, if unsure choose a generic board. +- **framework** (*Optional*): Options for the underlying framework used by ESPHome. + + - **version** (*Optional*, string): The base framework version number to use, from + `esp8266 arduino releases `__. Defaults to ``recommended``. Additional values + + - ``dev``: Use the latest commit from https://github.com/esp8266/Arduino, note this may break at any time + - ``latest``: Use the latest *release* from https://github.com/esp8266/Arduino/releases, even if it hasn't been recommended yet. + - ``recommended``: Use the recommended framework version. + + - **source** (*Optional*, string): The PlatformIO package or repository to use for the framework. This can be used to use a custom or patched version of the framework. + - **platform_version** (*Optional*, string): The version of the `platformio/espressif8266 `__ package to use. + +- **restore_from_flash** (*Optional*, boolean): Whether to store some persistent preferences in flash memory. Defaults to ``false``. +- **board_flash_mode** (*Optional*, string): The SPI mode of the flash chip. One of ``qio``, ``qout``, ``dio`` and ``dout``. Defaults to ``dout`` for compatibility with all chips. Note: on the next OTA update the actual flash mode is automatically detected and changed to the appropriate one. + +See Also +-------- + +- :doc:`esphome` +- :ghedit:`Edit` diff --git a/components/esphome.rst b/components/esphome.rst index 0217da043..5a413afa5 100644 --- a/components/esphome.rst +++ b/components/esphome.rst @@ -27,19 +27,9 @@ Configuration variables: - **name** (**Required**, string): This is the name of the node. It should always be unique in your ESPHome network. May only contain lowercase characters, digits and hyphens. See :ref:`esphome-changing_node_name`. -- **platform** (**Required**, string): The platform your board is using, - either ``ESP32`` or ``ESP8266``. -- **board** (**Required**, string): The PlatformIO board ID that should - be used. Choose the appropriate board from - `this list `__ for the ESP8266, and - `this list `__ for the ESP32 (the icon - next to the name can be used to copy the board ID). *This only affects pin aliases and some internal settings*, - if unsure choose a generic board from Espressif. Advanced options: -- **arduino_version** (*Optional*): The version of the Arduino framework to link the project against. - See :ref:`esphome-arduino_version`. - **build_path** (*Optional*, string): Customize where ESPHome will store the build files for your node. By default, ESPHome puts all PlatformIO project files under a folder ``/``, but you can customize this behavior using this option. @@ -61,10 +51,20 @@ Advanced options: - **name** (**Required**, string): Name of the project - **version** (**Required**, string): Version of the project -ESP8266 Options: +Platform options that have been moved (now in platform-specific sections :doc:`esp32 ` and :doc:`esp8266 `): -- **esp8266_restore_from_flash** (*Optional*, boolean): Whether to save & restore data from flash on ESP8266s. - Defaults to ``no``. See :ref:`esphome-esp8266_restore_from_flash` for more info +- **platform** (**Required**, string): The type of platform. One of ``esp8266`` or ``esp32``. +- **board** (**Required**, string): The board that should be used. See + :doc:`esp32 ` and :doc:`esp8266 ` for more information. +- **arduino_version** (*Optional*): The version of the Arduino framework to compile the project against. +- **esp8266_restore_from_flash** (*Optional*, boolean): For ESP8266s, whether to store some persistent preferences in flash + memory. + +Choose the appropriate board from + `this list `__ for the ESP8266, and + `this list `__ for the ESP32 (the icon + next to the name can be used to copy the board ID). *This only affects pin aliases and some internal settings*, + if unsure choose a generic board from Espressif. Automations: @@ -75,86 +75,6 @@ Automations: - **on_loop** (*Optional*, :ref:`Automation `): An automation to perform on each ``loop()`` iteration. See :ref:`esphome-on_loop`. -.. _esphome-arduino_version: - -``arduino_version`` -------------------- - -ESPHome uses the Arduino framework internally to handle all low-level interactions like -initializing the WiFi driver and so on. Unfortunately, every Arduino framework version often -has its own quirks and bugs, especially concerning WiFi performance. With the ``arduino_version`` -option you can tell ESPHome which Arduino framework to use for compiling. - -.. code-block:: yaml - - # Example configuration entry - esphome: - # ... - # Default: use the recommended version, usually this equals - # the latest version. - arduino_version: recommended - - # Use the latest stable version - arduino_version: latest - - # Use the latest staged version from GitHub, try this if you have WiFi problems - arduino_version: dev - - # Use a specific version - arduino_version: 2.3.0 - -For the ESP8266, you currently can manually pin the Arduino version to these values (see the full -list of Arduino frameworks `here `__): - -* `3.0.1 `__ (not recommended yet) -* `3.0.0 `__ (not recommended yet) -* `2.7.4 `__ (default) -* `2.7.3 `__ -* `2.7.2 `__ -* `2.7.1 `__ -* `2.7.0 `__ -* `2.6.3 `__ -* `2.6.2 `__ -* `2.6.1 `__ -* `2.5.2 `__ -* `2.5.1 `__ -* `2.5.0 `__ -* `2.4.2 `__ -* `2.4.1 `__ -* `2.4.0 `__ -* `2.3.0 `__ - -For the ESP32, there are these Arduino `framework versions `__: - -- `1.0.6 `__ (default) -- `1.0.5 `__ -- `1.0.4 `__ -- `1.0.3 `__ -- `1.0.2 `__ -- `1.0.1 `__ -- `1.0.0 `__ - -.. _esphome-esp8266_restore_from_flash: - -``esp8266_restore_from_flash`` ------------------------------- - -With this option you can control where the state of certain components is kept on the ESP. -Components like ``light``, ``switch``, ``fan`` and ``globals`` can restore their state upon -boot. - -However, by default this data is stored in the "RTC memory" section of the ESP8266s. This memory -is cleared when the ESP8266 is disconnected from power. So by default the state cannot be recovered -after power loss. - -To still have these components restore their state upon power loss the state can additionally be -saved in *flash* memory by setting this option to ``true``. - -Beware: The flash has a limited number of write cycles (usually around 100 000), after that -the flash section will fail. So do not use this option when you have components that update rapidly. -These include GPIO switches that are used internally (disable restoring with the ``restore_mode`` option), -certain light effects like ``random`` and the ``on_value_range`` trigger. - .. _esphome-on_boot: ``on_boot`` @@ -304,7 +224,7 @@ results in fewer flash writes, preserving the flash health. This behavior can be disabled by setting ``flash_write_interval`` to ``0s`` to immediately commit the state to flash, however, be aware that this may lead to increased flash wearing and a shortened device lifespan! -For ESP8266, :ref:`esphome-esp8266_restore_from_flash` must also be set to true for states to be written to flash. +For :doc:`ESP8266 `, ``restore_from_flash`` must also be set to ``true`` for states to be written to flash. .. _esphome-changing_node_name: diff --git a/components/http_request.rst b/components/http_request.rst index 5a81090b9..107580cdb 100644 --- a/components/http_request.rst +++ b/components/http_request.rst @@ -7,13 +7,7 @@ HTTP Request :keywords: http, request -The ``http_request`` component lets you make HTTP/HTTPS requests. - -.. note:: - - This component works only with :ref:`arduino framework ` 2.5.0 or newer. - -First, you need to setup a component: +The ``http_request`` component lets you make HTTP/HTTPS requests. First, you need to setup a component: .. code-block:: yaml diff --git a/index.rst b/index.rst index e31e22d02..cd265cf9f 100644 --- a/index.rst +++ b/index.rst @@ -558,6 +558,9 @@ Misc Components .. imgtable:: + ESP8266, components/esp8266, esp8266.svg + ESP32, components/esp32, esp32.svg + Remote Receiver, components/remote_receiver, remote.svg Remote Transmitter, components/remote_transmitter, remote.svg Status LED, components/status_led, led-on.svg From ba83d27c8ac212426ecc876751ddc60474a96f01 Mon Sep 17 00:00:00 2001 From: Carlos Garcia Saura Date: Wed, 20 Oct 2021 19:45:19 +0200 Subject: [PATCH 08/31] Reference new auto-range setting for the ADC (#1547) --- components/sensor/adc.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/components/sensor/adc.rst b/components/sensor/adc.rst index 43d5ac570..1123e346d 100644 --- a/components/sensor/adc.rst +++ b/components/sensor/adc.rst @@ -68,6 +68,7 @@ To measure voltages higher than 1.1V, set ``attenuation`` to one of the `followi - ``2.5db`` for a full-scale voltage of 1.5V - ``6db`` for a full-scale voltage of 2.2V - ``11db`` for a full-scale voltage of 3.9V +- ``auto`` for an automatic/seamless transition among scales .. _adc-esp8266_vcc: From c4fc5fcae04a73380372512687b3cfc04a5b181a Mon Sep 17 00:00:00 2001 From: Otto winter Date: Thu, 21 Oct 2021 14:28:07 +0200 Subject: [PATCH 09/31] Fix bad merge --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index d2f627fb4..a3947eab0 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ ESPHOME_PATH = ../esphome -ESPHOME_REF = 2021.10.0 +ESPHOME_REF = dev .PHONY: html html-strict cleanhtml deploy help webserver Makefile netlify netlify-api api netlify-dependencies svg2png copy-svg2png minify From 980fc2dd15d06a10b59f777a21d562434e9a720d Mon Sep 17 00:00:00 2001 From: Andreas Hergert <36455093+andreashergert1984@users.noreply.github.com> Date: Fri, 22 Oct 2021 18:21:25 +0200 Subject: [PATCH 10/31] updated doc after idf changes for TCA9548A (#1559) Co-authored-by: Andreas Hergert --- components/tca9548a.rst | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/components/tca9548a.rst b/components/tca9548a.rst index 7958f3bdd..41e88b3f3 100644 --- a/components/tca9548a.rst +++ b/components/tca9548a.rst @@ -10,6 +10,7 @@ The TCA9548A component allows you to use TCA9548A as a I²C multiplexer `AdaFruit`_) in ESPHome. It uses :ref:`I²C Bus ` for communication. Once configured, you can use any of the 8 channels (TCA9548A) as separated channels for your projects. +Every Channel acts for all connected components as a virtual I²C Bus. .. figure:: images/tca9548a.jpg @@ -27,15 +28,16 @@ Once configured, you can use any of the 8 channels (TCA9548A) as separated chann - address: 0x70 id: multiplex0 i2c_id: i2c0 - scan: true + channels: + - bus_id: multiplex0channel0 + channel: 0 + - bus_id: multiplex0channel1 + channel: 1 # Individual I2C Devices sensor: - platform: bmp280 - multiplexer: - id: multiplex0 - channel: 0 - ... + i2c_id: multiplex0channel1 Configuration variables: ~~~~~~~~~~~~~~~~~~~~~~~~ @@ -44,8 +46,11 @@ Configuration variables: - **address** (*Optional*, int): The I²C address of the Multiplexer. Defaults to ``0x70``. - **i2c_id** (*Optional*): The I²C Bus ID -- **scan** (*Optional*, bool): if the channel should be scanned Defaults to ``false`` +- **channels** (*Optional*): The I²C Bus Channels + + - **bus_id** (**Required**, :ref:`config-id`): The id to use for this virtual I2C Bus. + - **channel** (**Required**): The channel (0-7) to use for this virtual I2C Bus. See Also -------- From 89795d5e8024733eee919c73a55c34ae2640986e Mon Sep 17 00:00:00 2001 From: niklasweber Date: Wed, 27 Oct 2021 21:09:39 +0200 Subject: [PATCH 11/31] Add publish_initial_value option to rotary_encoder (#1565) --- components/sensor/rotary_encoder.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/components/sensor/rotary_encoder.rst b/components/sensor/rotary_encoder.rst index 33ac447ed..772ef7fb7 100644 --- a/components/sensor/rotary_encoder.rst +++ b/components/sensor/rotary_encoder.rst @@ -59,6 +59,10 @@ Configuration variables: the knob further will not decrease the number. Defaults to no minimum. - **max_value** (*Optional*, int): The maximum value this rotary encoder will go to, turning the knob further will not increase the number. Defaults to no maximum. +- **publish_initial_value** (*Optional*, boolean): Controls whether the value is published + upon start of ESPHome. By default the value is only published when it changes, causing an + "unknown" value at first. If you set this option to true, the value is published once after + boot and when it changes. Defaults to ``false``. - **on_clockwise** (*Optional*, :ref:`Automation `): Actions to be performed when the knob is turned clockwise. See :ref:`sensor-rotary_encoder-triggers`. - **on_anticlockwise** (*Optional*, :ref:`Automation `): Actions to be performed when From ce8e26848382a098970313a6ddab92ff8cac9aa8 Mon Sep 17 00:00:00 2001 From: Sean Brogan Date: Wed, 27 Oct 2021 13:16:51 -0700 Subject: [PATCH 12/31] Update for ruuvi and xiaomi ble to require yaml (#1562) --- components/sensor/ruuvitag.rst | 4 +++- components/sensor/xiaomi_ble.rst | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/components/sensor/ruuvitag.rst b/components/sensor/ruuvitag.rst index 999262ec0..8c2a7be2e 100644 --- a/components/sensor/ruuvitag.rst +++ b/components/sensor/ruuvitag.rst @@ -153,12 +153,14 @@ Setting Up Devices To set up RuuviTag devices you first need to find their MAC Address so that ESPHome can identify them. So first, create a simple configuration without any -``ruuvitag`` entries like so: +``ruuvitag`` entries but with ``ruuvi_ble`` enabled like so: .. code-block:: yaml esp32_ble_tracker: + ruuvi_ble: + After uploading the ESP32 will immediately try to scan for BLE devices. When it detects these sensors, it will automatically parse the BLE message print a message like this one: diff --git a/components/sensor/xiaomi_ble.rst b/components/sensor/xiaomi_ble.rst index f64940b17..0666c3950 100644 --- a/components/sensor/xiaomi_ble.rst +++ b/components/sensor/xiaomi_ble.rst @@ -458,6 +458,8 @@ To find the MAC Address so that ESPHome can identify the device, you can create esp32_ble_tracker: + xiaomi_ble: + After uploading, the ESP32 will immediately try to scan for BLE devices. When it detects a new sensor, it will automatically parse the BLE message print a message like this one: .. code:: From fbc5808e24575cf3f4d769f4739a37d0a2e40abe Mon Sep 17 00:00:00 2001 From: Jesse Hills <3060199+jesserockz@users.noreply.github.com> Date: Fri, 29 Oct 2021 07:12:28 +1300 Subject: [PATCH 13/31] Add examples for external_component PR shorthand format (#1581) --- components/external_components.rst | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/components/external_components.rst b/components/external_components.rst index 2d49f29f3..852459333 100644 --- a/components/external_components.rst +++ b/components/external_components.rst @@ -22,6 +22,10 @@ Bundled components can be overridden using this feature. - source: github://esphome/esphome@dev components: [ rtttl ] + # equivalent shorthand for GitHub pull request + - source: github://pr#2639 + components: [ rtttl ] + # use all components from a local folder - source: type: local @@ -165,6 +169,14 @@ The source field accepts a short hand **github://** resource: # shorthand source: github:///[@] +The source field also accepts a short hand **github://** pull request from the ESPHome repository: + +.. code-block:: yaml + + external_components: + # shorthand + source: github://pr# + Under the hood, during validation, ESPHome will clone the git repository into the hidden ``.esphome`` folder and components will then be loaded from this local copy. The local path of the cloned repository varies per repository name and ref name, so repositories with different refs are considered different From 825cf25f5a11ea4fbf1de5e795bec74beab5cf74 Mon Sep 17 00:00:00 2001 From: Arturo Casal Date: Thu, 28 Oct 2021 20:59:01 +0200 Subject: [PATCH 14/31] Added docs for CSE7761 power sensor (#1541) * Added docs for CSE7761 power sensor Also added docs for Sonoff Dual R3 v1.x * Update components/sensor/cse7761.rst Co-authored-by: Oxan van Leeuwen Co-authored-by: Oxan van Leeuwen --- components/sensor/cse7761.rst | 74 ++++++++++++++++++++++++++++++++++ devices/sonoff.rst | 16 ++++++++ images/cse7761.svg | 49 ++++++++++++++++++++++ index.rst | 1 + svg2png/cse7761.png | Bin 0 -> 16900 bytes 5 files changed, 140 insertions(+) create mode 100644 components/sensor/cse7761.rst create mode 100644 images/cse7761.svg create mode 100644 svg2png/cse7761.png diff --git a/components/sensor/cse7761.rst b/components/sensor/cse7761.rst new file mode 100644 index 000000000..999047aa8 --- /dev/null +++ b/components/sensor/cse7761.rst @@ -0,0 +1,74 @@ +CSE7761 Power Sensor +==================== + +.. seo:: + :description: Instructions for setting up CSE7761 power sensors for the Sonoff Dual R3 v1.x + :image: cse7761.png + :keywords: cse7761, Sonoff Dual R3 + +The ``cse7761`` sensor platform allows you to use your CSE7761 voltage/current and power sensors +with ESPHome. This sensor is commonly found in Sonoff Dual R3 v1.x. + +.. note:: + + 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. + +As the communication with the CSE7761 done using UART, you need +to have an :ref:`UART bus ` in your configuration with the ``tx_pin`` and ``rx_pin`` connected to the CSE7761. +Additionally, you need to set the baud rate to 38400 and parity to ``EVEN``. + +.. code-block:: yaml + + # Example configuration entry + # Disable logging over serial + logger: + baud_rate: 0 + + uart: + tx_pin: GPIO25 + rx_pin: GPIO26 + baud_rate: 38400 + parity: EVEN + + sensor: + - platform: cse7761 + voltage: + name: 'CSE7761 Voltage' + current_1: + name: 'CSE7761 Current 1' + current_2: + name: 'CSE7761 Current 2' + active_power_1: + name: 'CSE7761 Active Power 1' + active_power_2: + name: 'CSE7761 Active Power 2' + update_interval: 5s + +.. note:: + + The configuration above should work for Sonoff Dual R3 v1.x. + +Configuration variables: +------------------------ + +- **voltage** (*Optional*): Use the voltage value of the sensor in V (RMS). + All options from :ref:`Sensor `. +- **current_1** (*Optional*): Use the current value of the channel 1 in amperes. All options from + :ref:`Sensor `. +- **current_2** (*Optional*): Use the current value of the channel 2 in amperes. All options from + :ref:`Sensor `. +- **active_power_1** (*Optional*): Use the (active) power value of the channel 1 in watts. All options from + :ref:`Sensor `. +- **active_power_2** (*Optional*): Use the (active) power value of the channel 2 in watts. All options from + :ref:`Sensor `. +- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the + sensor. Defaults to ``60s``. +- **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`UART Component ` if you want + to use multiple UART buses. + +See Also +-------- + +- :ref:`sensor-filters` +- :apiref:`cse7761/cse7761.h` +- :ghedit:`Edit` diff --git a/devices/sonoff.rst b/devices/sonoff.rst index 0c4004c49..9bb2eca46 100644 --- a/devices/sonoff.rst +++ b/devices/sonoff.rst @@ -102,6 +102,22 @@ Sonoff Dual R2 v1.4 GPIO10, Button on the case, GPIO13, Blue LED (inverted) +Sonoff Dual R3 v1.x +------------------- + +.. pintable:: + + GPIO27, Relay #1, + GPIO14, Relay #2, + GPIO0, Button, + GPIO13, Blue LED (inverted), + GPIO32, SW Input #1 (inverted), + GPIO33, SW Input #2 (inverted), + GPIO25, UART TX pin (for power sensor) + GPIO26, UART RX pin (for power sensor) + +See :doc:`/components/sensor/cse7761` for measuring power. + Sonoff Pow R1 ------------- diff --git a/images/cse7761.svg b/images/cse7761.svg new file mode 100644 index 000000000..697d4d0fb --- /dev/null +++ b/images/cse7761.svg @@ -0,0 +1,49 @@ + + + + + + + + diff --git a/index.rst b/index.rst index 330bff03b..73e8f2908 100644 --- a/index.rst +++ b/index.rst @@ -238,6 +238,7 @@ Electricity ADE7953, components/sensor/ade7953, ade7953.svg, Power ATM90E32, components/sensor/atm90e32, atm90e32.jpg, Voltage & Current & Power CS5460A, components/sensor/cs5460a, cs5460a.png, Voltage & Current & Power + CSE7761, components/sensor/cse7761, cse7761.svg, Voltage & Current & Power CSE7766, components/sensor/cse7766, cse7766.svg, Voltage & Current & Power CT Clamp, components/sensor/ct_clamp, ct_clamp.jpg, AC current Daly BMS, components/sensor/daly_bms, daly_bms.png, Voltage & Current & Power diff --git a/svg2png/cse7761.png b/svg2png/cse7761.png new file mode 100644 index 0000000000000000000000000000000000000000..60190d12671c621b7d332faf73ad18e976d26d64 GIT binary patch literal 16900 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 Date: Sun, 31 Oct 2021 15:34:15 +1300 Subject: [PATCH 15/31] Add option to use MQTT abbreviations (#1582) --- components/mqtt.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/components/mqtt.rst b/components/mqtt.rst index 0f2399c99..03df201c5 100644 --- a/components/mqtt.rst +++ b/components/mqtt.rst @@ -43,6 +43,9 @@ Configuration variables: - **discovery_prefix** (*Optional*, string): The prefix to use for Home Assistant’s MQTT discovery. Should not contain trailing slash. Defaults to ``homeassistant``. +- **use_abbreviations** (*Optional*, boolean): Whether to use + `Abbreviations `__ + in discovery messages. Defaults to ``true``. - **topic_prefix** (*Optional*, string): The prefix used for all MQTT messages. Should not contain trailing slash. Defaults to ````. From 6a3c4ef63fc2b22149ee737a60c9e37d7d4bb55e Mon Sep 17 00:00:00 2001 From: niklasweber Date: Tue, 2 Nov 2021 19:32:30 +0100 Subject: [PATCH 16/31] Add restore_mode to rotary_encoder sensor (#1584) --- components/sensor/rotary_encoder.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/components/sensor/rotary_encoder.rst b/components/sensor/rotary_encoder.rst index 772ef7fb7..d2a4f96ee 100644 --- a/components/sensor/rotary_encoder.rst +++ b/components/sensor/rotary_encoder.rst @@ -63,6 +63,13 @@ Configuration variables: upon start of ESPHome. By default the value is only published when it changes, causing an "unknown" value at first. If you set this option to true, the value is published once after boot and when it changes. Defaults to ``false``. +- **restore_mode** (*Optional*): Control how the Rotary Encoder attempts to restore state on bootup. + For restoring on ESP8266s, also see ``esp8266_restore_from_flash`` in the + :doc:`esphome section `. + + - ``RESTORE_DEFAULT_ZERO`` (Default) - Attempt to restore state and default to zero (0) if not possible to restore. + - ``ALWAYS_ZERO`` - Always initialize the counter with value zero (0). + - **on_clockwise** (*Optional*, :ref:`Automation `): Actions to be performed when the knob is turned clockwise. See :ref:`sensor-rotary_encoder-triggers`. - **on_anticlockwise** (*Optional*, :ref:`Automation `): Actions to be performed when From 12f0886920708b7b0851ea528a3dda4141c83bd0 Mon Sep 17 00:00:00 2001 From: Tim Niemueller Date: Wed, 3 Nov 2021 17:56:23 +0100 Subject: [PATCH 17/31] ili9341: document auto_clear_enabled flag (#1568) Also reference in section about rendering engine. Co-authored-by: Tim Niemueller --- components/display/ili9341.rst | 2 ++ components/display/index.rst | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/components/display/ili9341.rst b/components/display/ili9341.rst index 78f8366dc..e48bf31f4 100644 --- a/components/display/ili9341.rst +++ b/components/display/ili9341.rst @@ -56,6 +56,8 @@ Configuration variables: - **lambda** (*Optional*, :ref:`lambda `): The lambda to use for rendering the content on the display. See :ref:`display-engine` for more information. - **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``. +- **auto_clear_enabled** (*Optional*, boolean): Whether to automatically clear the display in each loop (''true'', default), + or to keep the existing display content (must overwrite explicitly, e.g., only on data change). - **pages** (*Optional*, list): Show pages instead of a single lambda. See :ref:`display-pages`. - **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. diff --git a/components/display/index.rst b/components/display/index.rst index b6d50e9f5..b312ba18c 100644 --- a/components/display/index.rst +++ b/components/display/index.rst @@ -35,7 +35,9 @@ individually. So, first a few basics: When setting up a display platform in ESPHome there will be a configuration option called ``lambda:`` which will be called every time ESPHome wants to re-render the display. -In there, you can write code like in any :ref:`lambda ` in ESPHome. Display +In each cycle, the display is automatically cleared before the lambda is executed. You can disable +this behavior by setting ``auto_clear_enabled: false``. +In the lambda, you can write code like in any :ref:`lambda ` in ESPHome. Display lambdas are additionally passed a variable called ``it`` which represents the rendering engine object. .. code-block:: yaml From 1867f0c6184116aa0be1dd7d31c492264593c7f6 Mon Sep 17 00:00:00 2001 From: Jesse Hills <3060199+jesserockz@users.noreply.github.com> Date: Mon, 8 Nov 2021 07:24:55 +1300 Subject: [PATCH 18/31] Add entity_category docs (#1583) --- components/binary_sensor/index.rst | 4 ++++ components/climate/index.rst | 4 ++++ components/cover/index.rst | 4 ++++ components/esp32_camera.rst | 6 +++++- components/fan/index.rst | 4 ++++ components/light/index.rst | 4 ++++ components/number/index.rst | 4 ++++ components/select/index.rst | 4 ++++ components/sensor/index.rst | 4 ++++ components/switch/index.rst | 4 ++++ components/text_sensor/index.rst | 4 ++++ 11 files changed, 45 insertions(+), 1 deletion(-) diff --git a/components/binary_sensor/index.rst b/components/binary_sensor/index.rst index 3cf2a1802..30a6cec8b 100644 --- a/components/binary_sensor/index.rst +++ b/components/binary_sensor/index.rst @@ -60,6 +60,10 @@ Advanced options: - **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend, (usually Home Assistant) without the user manually enabling it (via the Home Assistant UI). Requires Home Assistant 2021.9 or newer. Defaults to ``false``. +- **entity_category** (*Optional*, string): The category of the entity. + See https://developers.home-assistant.io/docs/core/entity/#generic-properties + for a list of available options. Requires Home Assistant 2021.11 or newer. + Set to ``""`` to remove the default entity category. - If MQTT enabled, all other options from :ref:`MQTT Component `. .. _binary_sensor-filters: diff --git a/components/climate/index.rst b/components/climate/index.rst index 21101b84c..7c1f3e75b 100644 --- a/components/climate/index.rst +++ b/components/climate/index.rst @@ -53,6 +53,10 @@ Advanced options: - **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend, (usually Home Assistant) without the user manually enabling it (via the Home Assistant UI). Requires Home Assistant 2021.9 or newer. Defaults to ``false``. +- **entity_category** (*Optional*, string): The category of the entity. + See https://developers.home-assistant.io/docs/core/entity/#generic-properties + for a list of available options. Requires Home Assistant 2021.11 or newer. + Set to ``""`` to remove the default entity category. MQTT options: diff --git a/components/cover/index.rst b/components/cover/index.rst index a96f45c4a..33d5471b4 100644 --- a/components/cover/index.rst +++ b/components/cover/index.rst @@ -40,6 +40,10 @@ Advanced options: - **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend, (usually Home Assistant) without the user manually enabling it (via the Home Assistant UI). Requires Home Assistant 2021.9 or newer. Defaults to ``false``. +- **entity_category** (*Optional*, string): The category of the entity. + See https://developers.home-assistant.io/docs/core/entity/#generic-properties + for a list of available options. Requires Home Assistant 2021.11 or newer. + Set to ``""`` to remove the default entity category. MQTT options: diff --git a/components/esp32_camera.rst b/components/esp32_camera.rst index 6eab5c8b2..abf273817 100644 --- a/components/esp32_camera.rst +++ b/components/esp32_camera.rst @@ -34,6 +34,10 @@ Configuration variables: - **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend, (usually Home Assistant) without the user manually enabling it (via the Home Assistant UI). Requires Home Assistant 2021.9 or newer. Defaults to ``false``. +- **entity_category** (*Optional*, string): The category of the entity. + See https://developers.home-assistant.io/docs/core/entity/#generic-properties + for a list of available options. Requires Home Assistant 2021.11 or newer. + Set to ``""`` to remove the default entity category. Connection Options: @@ -312,7 +316,7 @@ Configuration for TTGO-Camera Mini # Image settings name: My Camera # ... - + Configuration for ESP-EYE ---------------------------------- diff --git a/components/fan/index.rst b/components/fan/index.rst index 67035f60b..33e2df0e4 100644 --- a/components/fan/index.rst +++ b/components/fan/index.rst @@ -36,6 +36,10 @@ Configuration variables: - **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend, (usually Home Assistant) without the user manually enabling it (via the Home Assistant UI). Requires Home Assistant 2021.9 or newer. Defaults to ``false``. +- **entity_category** (*Optional*, string): The category of the entity. + See https://developers.home-assistant.io/docs/core/entity/#generic-properties + for a list of available options. Requires Home Assistant 2021.11 or newer. + Set to ``""`` to remove the default entity category. MQTT options: diff --git a/components/light/index.rst b/components/light/index.rst index f092a2cf8..6c8e8af7a 100644 --- a/components/light/index.rst +++ b/components/light/index.rst @@ -67,6 +67,10 @@ Advanced options: - **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend, (usually Home Assistant) without the user manually enabling it (via the Home Assistant UI). Requires Home Assistant 2021.9 or newer. Defaults to ``false``. +- **entity_category** (*Optional*, string): The category of the entity. + See https://developers.home-assistant.io/docs/core/entity/#generic-properties + for a list of available options. Requires Home Assistant 2021.11 or newer. + Set to ``""`` to remove the default entity category. - If MQTT enabled, all other options from :ref:`MQTT Component `. .. _light-toggle_action: diff --git a/components/number/index.rst b/components/number/index.rst index 90d3110a3..c386efb32 100644 --- a/components/number/index.rst +++ b/components/number/index.rst @@ -38,6 +38,10 @@ Configuration variables: - **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend, (usually Home Assistant) without the user manually enabling it (via the Home Assistant UI). Requires Home Assistant 2021.9 or newer. Defaults to ``false``. +- **entity_category** (*Optional*, string): The category of the entity. + See https://developers.home-assistant.io/docs/core/entity/#generic-properties + for a list of available options. Requires Home Assistant 2021.11 or newer. + Set to ``""`` to remove the default entity category. Automations: diff --git a/components/select/index.rst b/components/select/index.rst index ec0bb3c5a..8ef140408 100644 --- a/components/select/index.rst +++ b/components/select/index.rst @@ -38,6 +38,10 @@ Configuration variables: - **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend, (usually Home Assistant) without the user manually enabling it (via the Home Assistant UI). Requires Home Assistant 2021.9 or newer. Defaults to ``false``. +- **entity_category** (*Optional*, string): The category of the entity. + See https://developers.home-assistant.io/docs/core/entity/#generic-properties + for a list of available options. Requires Home Assistant 2021.11 or newer. + Set to ``""`` to remove the default entity category. Automations: diff --git a/components/sensor/index.rst b/components/sensor/index.rst index 28fe2b1b6..8e1f7a681 100644 --- a/components/sensor/index.rst +++ b/components/sensor/index.rst @@ -62,6 +62,10 @@ Configuration variables: - **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend, (usually Home Assistant) without the user manually enabling it (via the Home Assistant UI). Requires Home Assistant 2021.9 or newer. Defaults to ``false``. +- **entity_category** (*Optional*, string): The category of the entity. + See https://developers.home-assistant.io/docs/core/entity/#generic-properties + for a list of available options. Requires Home Assistant 2021.11 or newer. + Set to ``""`` to remove the default entity category. Automations: diff --git a/components/switch/index.rst b/components/switch/index.rst index 35daf5834..9d7d36215 100644 --- a/components/switch/index.rst +++ b/components/switch/index.rst @@ -38,6 +38,10 @@ Configuration variables: - **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend, (usually Home Assistant) without the user manually enabling it (via the Home Assistant UI). Requires Home Assistant 2021.9 or newer. Defaults to ``false``. +- **entity_category** (*Optional*, string): The category of the entity. + See https://developers.home-assistant.io/docs/core/entity/#generic-properties + for a list of available options. Requires Home Assistant 2021.11 or newer. + Set to ``""`` to remove the default entity category. - If MQTT enabled, All other options from :ref:`MQTT Component `. .. _switch-toggle_action: diff --git a/components/text_sensor/index.rst b/components/text_sensor/index.rst index dc354e67f..5a23856b5 100644 --- a/components/text_sensor/index.rst +++ b/components/text_sensor/index.rst @@ -32,6 +32,10 @@ Configuration variables: - **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend, (usually Home Assistant) without the user manually enabling it (via the Home Assistant UI). Requires Home Assistant 2021.9 or newer. Defaults to ``false``. +- **entity_category** (*Optional*, string): The category of the entity. + See https://developers.home-assistant.io/docs/core/entity/#generic-properties + for a list of available options. Requires Home Assistant 2021.11 or newer. + Set to ``""`` to remove the default entity category. - If MQTT enabled, All other options from :ref:`MQTT Component `. Automations: From c6478725dcf64b0e0059500c626ef7f44db7ae5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Wed, 10 Nov 2021 01:10:13 +0100 Subject: [PATCH 19/31] Add `esp32_camera_web_server:` usage docs (#1595) --- components/esp32_camera_web_server.rst | 38 ++++++++++++++++++++++++++ index.rst | 1 + 2 files changed, 39 insertions(+) create mode 100644 components/esp32_camera_web_server.rst diff --git a/components/esp32_camera_web_server.rst b/components/esp32_camera_web_server.rst new file mode 100644 index 000000000..48e345e08 --- /dev/null +++ b/components/esp32_camera_web_server.rst @@ -0,0 +1,38 @@ +ESP32 Camera Web Server Component +================================= + +.. seo:: + :description: Instructions for setting up the ESP32 Camera Web Server in ESPHome + :image: camera.png + +The ``esp32_camera_web_server`` component allows you to use expose web server of +ESP32-based camera boards in ESPHome that directly can be integrated into external +surveillance or PVR software. + +At a given time only one stream can be served, but multiple snapshots. The stream +or snapshot can be accessed via `http://:/`. + +.. code-block:: yaml + + # Example configuration entry + esp32_camera_web_server: + - port: 8080 + mode: stream + - port: 8081 + mode: snapshot + +Configuration variables: +------------------------ + +- **port** (**Required**, string): The serving port. +- **mode** (**Required**, string): The operation mode. + One of these values: + + - ``snapshot`` + - ``stream`` + +See Also +-------- + +- :apiref:`esp32_camera_web_server/esp32_camera_web_server.h` +- :ghedit:`Edit` diff --git a/index.rst b/index.rst index 73e8f2908..35aaee184 100644 --- a/index.rst +++ b/index.rst @@ -578,6 +578,7 @@ Misc Components ESP32 Ethernet, components/ethernet, ethernet.svg ESP32 Camera, components/esp32_camera, camera.svg + ESP32 Camera Web Server, components/esp32_camera_web_server, camera.svg Stepper, components/stepper/index, stepper.svg Servo, components/servo, servo.svg From 7a56ba730ff4759762c59bcc2cd5d1aa8d61a4bd Mon Sep 17 00:00:00 2001 From: cvwillegen Date: Wed, 10 Nov 2021 04:11:42 +0100 Subject: [PATCH 20/31] Add Pronto protocol (#1563) Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com> --- components/remote_transmitter.rst | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/components/remote_transmitter.rst b/components/remote_transmitter.rst index c2a9cb88a..47837be50 100644 --- a/components/remote_transmitter.rst +++ b/components/remote_transmitter.rst @@ -106,6 +106,27 @@ Configuration variables: with for infrared signals. Defaults to ``0Hz``. - All other options from :ref:`remote_transmitter-transmit_action`. +.. _remote_transmitter-transmit_pronto: + +``remote_transmitter.transmit_pronto`` Action +********************************************* + +This :ref:`action ` sends a raw code to a remote transmitter specified in Pronto format. + +.. code-block:: yaml + + on_...: + - remote_transmitter.transmit_pronto: + data: "0000 006D 0010 0000 0008 0020 0008 0046 000A 0020 0008 0020 0008 001E 000A 001E 000A 0046 000A 001E 0008 0020 0008 0020 0008 0046 000A 0046 000A 0046 000A 001E 000A 001E 0008 06C3" + +Configuration variables: + +- **data** (**Required**, string): The raw code to send specified as a string. + A lot of remote control Pronto codes can be found on http://remotecentral.com +- All other options from :ref:`remote_transmitter-transmit_action`. + + + ``remote_transmitter.transmit_jvc`` Action ****************************************** From a16d4f374360f9f8dabefdfa3098a11f9e50f2ba Mon Sep 17 00:00:00 2001 From: Sam Hughes Date: Wed, 10 Nov 2021 17:53:33 +0000 Subject: [PATCH 21/31] Docs for CAP1188 Capacitive Touch Sensor (#1589) --- components/binary_sensor/cap1188.rst | 85 ++++++++++++++++++ .../binary_sensor/images/cap1188-full.jpg | Bin 0 -> 171808 bytes images/cap1188.jpg | Bin 0 -> 20789 bytes index.rst | 1 + 4 files changed, 86 insertions(+) create mode 100644 components/binary_sensor/cap1188.rst create mode 100644 components/binary_sensor/images/cap1188-full.jpg create mode 100644 images/cap1188.jpg diff --git a/components/binary_sensor/cap1188.rst b/components/binary_sensor/cap1188.rst new file mode 100644 index 000000000..6d3cdfc84 --- /dev/null +++ b/components/binary_sensor/cap1188.rst @@ -0,0 +1,85 @@ +CAP1188 Capacitive Touch Sensor +=============================== + +.. seo:: + :description: Instructions for setting up CAP1188 Capacitive Touch Sensor + :image: cap1188.jpg + :keywords: CAP1188 + +.. _cap1188-component: + +Component/Hub +------------- + +The ``cap1188`` sensor platform allows you to use your CAP1188 +(`datasheet `__, +`Adafruit`_) Capacitive Touch Sensor with ESPHome. The :ref:`I²C ` bus is +required to be set up in your configuration for this sensor to work. + +.. figure:: images/cap1188-full.jpg + :align: center + :width: 75% + + CAP1188 Capacitive Touch Sensor. Image by `Adafruit`_. + +.. _Adafruit: https://learn.adafruit.com/adafruit-cap1188-breakout/overview + +.. code-block:: yaml + + # Example configuration entry + cap1188: + id: cap1188_component + address: 0x29 + reset_pin: 14 + touch_threshold: 0x40 + allow_multiple_touches: 0x80 + + binary_sensor: + - platform: cap1188 + id: touch_key0 + channel: 0 + name: "Touch Key 0" + +Configuration variables: +------------------------ + +The configuration is made up of two parts: The central component, and individual Binary sensors per channel. + +- **address** (*Optional*, integer): The I²C address of the sensor. Defaults to ``0x29``. +- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor. +- **reset_pin** (*Optional*, :ref:`config-pin`): Set the pin that is used to reset the CAP1188 board on boot. +- **touch_threshold** (*Optional*, integer): The touch threshold for all channels. This defines the sensitivity for touch detection. + - ``0x00``: Maximum sensitivity - Most sensitive to touch + - ``0x20``: Default sensitivity + - ``0x40``: Medium sensitivity (I used this sensitivity when being used through a 3mm sheet of plastic) + - ``0x80``: Minimum sensitivity - Least sensitive to touch +- **allow_multiple_touches** (*Optional*, boolean): Whether to allow multitouch. Defaults to off. + +Binary Sensor +------------- + +The ``cap1188`` binary sensor allows you to use your CAP1188 with ESPHome. +First, setup a :ref:`cap1188-component` and then use this binary sensor platform to create individual +binary sensors for each touch sensor. + + +Configuration variables: + + +- **name** (*Optional*, string): The name for the binary sensor. +- **cap1188_id** (*Optional*, :ref:`config-id`): The ID of the CAP1188 defined above. Useful for multiple CAP1188's on the I²C bus. +- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. +- **channel** (**Required**, integer): The channel number the CAP1188 the touchkey is connected to. +- All other options from :ref:`Binary Sensor `. + +.. note:: + + SPI is not currently supported. I²C must be used at this time. + +See Also +-------- + +- :ref:`sensor-filters` +- :apiref:`cap1188/cap1188.h` +- `Adafruit CAP1188 Library `__ by `Adafruit `__ +- :ghedit:`Edit` diff --git a/components/binary_sensor/images/cap1188-full.jpg b/components/binary_sensor/images/cap1188-full.jpg new file mode 100644 index 0000000000000000000000000000000000000000..68c392885c7c281cb2e3ec30b409d099f8d9b114 GIT binary patch literal 171808 zcmb4qQ*b3r7wt(-%oE!_v2AN&+nCs#iEZ1qae|3$8xwQlNivhn{r-nrbzkr5e%rgd zx_Vc4*WSI>zm0zf0FZ)=ybJ&e3IKrmuL1sT10(@3K;ZxSe}ILBfrUqghlhiMM?*qF zKn9^JGCX`DA`%i33|w+bGGaw-#zaany0yG%<2ndA%fX09VVnF>H0g(K+PFSe_0QkQELc_qq!9yVc5dSk1 zK>>gO;QwR&&m9{0KZk!?02Ck;02%}Y{WtP~<|lao92E4Rn5h_(p!h%vd0_c~Ts*U> z3k@4W5XcP~5ZZJAKtl#h{LF-t$DOYxCyqxrNZ~}x!R1!fbV1;iki!=tgo(xzFNdD1 z5L4x~FqLpFX9;dPf5n`mzOxVm*5Q}Ife>62JT?_8#=_x&L1o~eB8OZQKL+Y2D-3|y z9X2L1K}1d(lw{DkNa_KIA1$QHm&zU&0UD|d78yD=^j&gePnxsE#mQcRBNzq)BC&

    &bSo~H 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

    $$!Uaz^ujB`XUG`^)C<0sW+ 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

    76q{t4-=9Tr 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 literal 0 HcmV?d00001 diff --git a/images/cap1188.jpg b/images/cap1188.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d0009139fdd0b94bf8bdcab8fa464945e7d9e81f GIT binary patch literal 20789 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 k?j~zt`L)TpTK9Dh~++4r}g%m4rY literal 0 HcmV?d00001 diff --git a/index.rst b/index.rst index 35aaee184..b3d0fe483 100644 --- a/index.rst +++ b/index.rst @@ -383,6 +383,7 @@ Binary Sensor Components Tuya Binary Sensor, components/binary_sensor/tuya, tuya.png Modbus Binary Sensor, components/binary_sensor/modbus_controller, modbus.png XPT2046, components/binary_sensor/xpt2046, xpt2046.jpg + CAP1188 Capacitive Touch Sensor, components/binary_sensor/cap1188, cap1188.jpg Custom Binary Sensor, components/binary_sensor/custom, language-cpp.svg Output Components From 0d0979823b4a300522a584cd7702f76ea2d835d6 Mon Sep 17 00:00:00 2001 From: Carlos Garcia Saura Date: Wed, 10 Nov 2021 19:13:16 +0100 Subject: [PATCH 22/31] [ADC] Reference new "raw output" option + clarify voltage ranges (#1592) --- components/sensor/adc.rst | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/components/sensor/adc.rst b/components/sensor/adc.rst index 1123e346d..d50736681 100644 --- a/components/sensor/adc.rst +++ b/components/sensor/adc.rst @@ -30,7 +30,8 @@ Configuration variables: Or on the ESP8266 alternatively also ``VCC``, see :ref:`adc-esp8266_vcc`. - **name** (**Required**, string): The name of the voltage sensor. - **attenuation** (*Optional*): Only on ESP32. Specify the ADC - attenuation to use. See :ref:`adc-esp32_attenuation`. + attenuation to use. See :ref:`adc-esp32_attenuation`. Defaults to ``0db``. +- **raw** (*Optional*): Allows to read the raw ADC output without any conversion or calibration. Defaults to ``false``. - **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``. - **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. @@ -52,23 +53,23 @@ Configuration variables: - multiply: 3.3 - .. _adc-esp32_attenuation: ESP32 Attenuation ----------------- -On the ESP32, the voltage measured with the ADC caps out at 1.1V by default as the sensing range -or the attenuation of the ADC is set to ``0db`` by default. +On the ESP32 the voltage measured with the ADC caps out at ~1.1V by default as the sensing range (attenuation of the ADC) is set to ``0db`` by default. +Measuring higher voltages requires setting ``attenuation`` to one of the following values: ``0db``, ``2.5db``, ``6db``, ``11db``. +There's more information `at the manufacturer's website `__. -To measure voltages higher than 1.1V, set ``attenuation`` to one of the `following values -`__: +To simplify this, we provide the setting ``attenuation: auto`` for an automatic/seamless transition among scales. `Our implementation +`__ combines all available ranges to allow the best resolution without having to compromise on a specific attenuation. + +.. note:: + + In our tests, the usable ADC range was from ~0.075V to ~3.12V (with the ``attenuation: auto`` setting), and anything outside that range capped out at either end. + Even though the measurements are calibrated, the range *limits* are variable among chips due to differences in the internal voltage reference. -- ``0db`` for a full-scale voltage of 1.1V (default) -- ``2.5db`` for a full-scale voltage of 1.5V -- ``6db`` for a full-scale voltage of 2.2V -- ``11db`` for a full-scale voltage of 3.9V -- ``auto`` for an automatic/seamless transition among scales .. _adc-esp8266_vcc: From 801e5faaf77460f727b3c0b7c692680003cf11f2 Mon Sep 17 00:00:00 2001 From: TVDLoewe Date: Wed, 10 Nov 2021 19:40:59 +0100 Subject: [PATCH 23/31] Update max7219digit.rst (#1602) --- components/display/max7219digit.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/components/display/max7219digit.rst b/components/display/max7219digit.rst index 9707d8b57..32436a884 100644 --- a/components/display/max7219digit.rst +++ b/components/display/max7219digit.rst @@ -66,6 +66,8 @@ Configuration variables: - **spi_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`SPI Component ` if you want to use multiple SPI buses. - **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. +- **num_chip_lines** (*Optional*, integer): Number of lines if you want to use the displays in Multiline Mode. Defaults to ``1`` Example: https://github.com/esphome/esphome/pull/1622#issue-836179156 +- **chip_lines_style** (*Optional*): How are the lines in Multiline Mode connected? Possible values are ``zigzag`` and ``snake``. Defaults to ``snake`` .. _display-max7219digit_lambda: From 59aeee460e379528bc1f223cf8da343beb41da59 Mon Sep 17 00:00:00 2001 From: Laszlo Gazdag Date: Wed, 10 Nov 2021 20:31:27 +0100 Subject: [PATCH 24/31] Add `web_server` component's `ota` parameter (#1598) --- components/web_server.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/components/web_server.rst b/components/web_server.rst index 2355b0935..ebe569eef 100644 --- a/components/web_server.rst +++ b/components/web_server.rst @@ -50,6 +50,7 @@ Configuration variables: - **username** (**Required**, string): The username to use for authentication. - **password** (**Required**, string): The password to check for authentication. +- **ota** (*Optional*, boolean): Turn on or off the OTA feature inside webserver. Strongly not suggested without enabled authentication settings. Default: `true` - **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. .. note:: @@ -67,12 +68,14 @@ Configuration variables: Example web_server configuration with CSS and JS included from esphome-docs. CSS and JS URL's are set to empty value, so no internet access is needed for this device to show it's web interface. + Force to turn off OTA function because the missing authentication. .. code-block:: yaml # Example configuration entry web_server: port: 80 + ota: false css_include: "../../../esphome-docs/_static/webserver-v1.min.css" css_url: "" js_include: "../../../esphome-docs/_static/webserver-v1.min.js" From ebc651322389972705c58ac16c3effcb0f2c683b Mon Sep 17 00:00:00 2001 From: Jesse Hills <3060199+jesserockz@users.noreply.github.com> Date: Thu, 11 Nov 2021 09:01:30 +1300 Subject: [PATCH 25/31] Improv serial docs (#1525) Co-authored-by: Guillermo Ruffino --- components/captive_portal.rst | 2 ++ components/esp32_improv.rst | 7 ++++--- components/improv_serial.rst | 33 +++++++++++++++++++++++++++++++++ guides/creators.rst | 5 +++++ index.rst | 3 ++- 5 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 components/improv_serial.rst diff --git a/components/captive_portal.rst b/components/captive_portal.rst index a40884f01..cefd84933 100644 --- a/components/captive_portal.rst +++ b/components/captive_portal.rst @@ -42,5 +42,7 @@ See Also -------- - :doc:`wifi` +- :doc:`improv_serial` +- :doc:`esp32_improv` - :apiref:`captive_portal/captive_portal.h` - :ghedit:`Edit` diff --git a/components/esp32_improv.rst b/components/esp32_improv.rst index f9a2589c2..2eea322a9 100644 --- a/components/esp32_improv.rst +++ b/components/esp32_improv.rst @@ -1,8 +1,8 @@ -Improv -====== +Improv via BLE +============== .. seo:: - :description: Instructions for setting up Improv WiFi in ESPHome. + :description: Instructions for setting up Improv via BLE in ESPHome. :image: improv-social.png The ``esp32_improv`` component in ESPHome implements the open `Improv standard `__ @@ -35,6 +35,7 @@ See Also -------- - :doc:`wifi` +- :doc:`improv_serial` - :doc:`captive_portal` - `Improv Wi-Fi `__ - :apiref:`esp32_improv/esp32_improv_component.h` diff --git a/components/improv_serial.rst b/components/improv_serial.rst new file mode 100644 index 000000000..5ba3ae0bd --- /dev/null +++ b/components/improv_serial.rst @@ -0,0 +1,33 @@ +Improv via Serial +================= + +.. seo:: + :description: Instructions for setting up Improv via Serial in ESPHome. + :image: improv-social.png + +The ``improv_serial`` component in ESPHome implements the open `Improv standard `__ +for configuring Wi-Fi on an ESPHome device by using a serial connection to the device, eg. USB. + +The ``improv_serial`` component requires the serial ``logger`` to be configured. + + +.. code-block:: yaml + + # Example configuration entry + wifi: + # ... + + improv_serial: + + +No configuration variables. + +See Also +-------- + +- :doc:`wifi` +- :doc:`captive_portal` +- :doc:`esp32_improv` +- `Improv Wi-Fi `__ +- :apiref:`improv_serial/improv_serial_component.h` +- :ghedit:`Edit` diff --git a/guides/creators.rst b/guides/creators.rst index 6c3027be3..12be14703 100644 --- a/guides/creators.rst +++ b/guides/creators.rst @@ -47,6 +47,10 @@ Example configuration esp32_improv: authorizer: none + logger: + + improv_serial: + Relevant Documentation ---------------------- @@ -61,6 +65,7 @@ Relevant Documentation - ``dashboard_import`` -> ``package_import_url`` - This should point to the public repository containing the configuration for the device so that the user's ESPHome dashboard can autodetect this device and create a minimal YAML using :ref:`config-git_packages`. +- ``improv_serial`` - :doc:`/components/improv_serial` See Also -------- diff --git a/index.rst b/index.rst index b3d0fe483..636519e82 100644 --- a/index.rst +++ b/index.rst @@ -592,7 +592,8 @@ Misc Components SIM800L, components/sim800l, sim800l.jpg DFPlayer, components/dfplayer, dfplayer.svg Captive Portal, components/captive_portal, wifi-strength-alert-outline.svg - Improv, components/esp32_improv, improv.svg + Improv via BLE, components/esp32_improv, improv.svg + Improv via Serial, components/improv_serial, improv.svg Debug Component, components/debug, bug-report.svg TM1651 Battery Display, components/tm1651, tm1651_battery_display.jpg RF Bridge, components/rf_bridge, rf_bridge.jpg From b6189bef9b252f029e42293248370c1414241136 Mon Sep 17 00:00:00 2001 From: Oxan van Leeuwen Date: Wed, 10 Nov 2021 22:08:37 +0100 Subject: [PATCH 26/31] Docs for repeat action (#1604) --- guides/automations.rst | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/guides/automations.rst b/guides/automations.rst index d81dbc715..9f88b36a0 100644 --- a/guides/automations.rst +++ b/guides/automations.rst @@ -561,6 +561,30 @@ Configuration variables: - **condition** (**Required**): The condition to check whether to execute. See :ref:`Conditions `. - **then** (**Required**, :ref:`config-action`): The action to perform until the condition evaluates to false. +.. _repeat_action: + +``repeat`` Action +----------------- + +This action allows you to repeat a block a given number of times. +For example, the automation below will flash the light five times. + +.. code-block:: yaml + + on_...: + - repeat: + count: 5 + then: + - light.turn_on: some_light + - delay: 1s + - light.turn_off: some_light + - delay: 10s + +Configuration variables: + +- **count** (**Required**, integer): The number of times the action should be repeated. +- **then** (**Required**, :ref:`config-action`): The action to repeat. + .. _wait_until_action: ``wait_until`` Action From 842cbff0c9ccbce8eeaf33205b6d76e43f284210 Mon Sep 17 00:00:00 2001 From: Jesse Hills <3060199+jesserockz@users.noreply.github.com> Date: Thu, 11 Nov 2021 10:10:06 +1300 Subject: [PATCH 27/31] Bump version to 2021.12.0-dev --- Doxygen | 2 +- _static/version | 2 +- conf.py | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Doxygen b/Doxygen index aad0168cb..aabf3a3f3 100644 --- a/Doxygen +++ b/Doxygen @@ -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 = 2021.11.0-dev +PROJECT_NUMBER = 2021.12.0-dev # 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 diff --git a/_static/version b/_static/version index a6eb7bb61..f69ab25f7 100644 --- a/_static/version +++ b/_static/version @@ -1 +1 @@ -2021.11.0-dev +2021.12.0-dev \ No newline at end of file diff --git a/conf.py b/conf.py index 815fcad81..d26a45b71 100644 --- a/conf.py +++ b/conf.py @@ -67,9 +67,9 @@ author = "Otto Winter" # built documents. # # The short X.Y version. -version = "2021.11" +version = "2021.12" # The full version, including alpha/beta/rc tags. -release = "2021.11.0-dev" +release = "2021.12.0-dev" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From feb40084976fe64e22b6d58cf95d571c42a2d07c Mon Sep 17 00:00:00 2001 From: Maurice Makaay Date: Wed, 10 Nov 2021 23:34:21 +0100 Subject: [PATCH 28/31] Add documentation for the UART debugger (#1536) Co-authored-by: Maurice Makaay --- components/uart.rst | 65 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/components/uart.rst b/components/uart.rst index 3c30a1129..beb68c4da 100644 --- a/components/uart.rst +++ b/components/uart.rst @@ -58,6 +58,7 @@ Configuration variables: - **parity** (*Optional*): The parity used on the UART bus. Options: ``NONE``, ``EVEN``, ``ODD``. Defaults to ``NONE``. - **stop_bits** (*Optional*, int): The number of stop bits to send. Options: 1, 2. Defaults to 1. - **id** (*Optional*, :ref:`config-id`): Manually specify the ID for this UART hub if you need multiple UART hubs. +- **debug** (*Optional*, mapping): Options for debugging communication on the UART hub, see :ref:`uart-debugging`. ESP32 options: @@ -110,6 +111,70 @@ This :ref:`Action ` sends a defined UART signal to the given UART id: my_second_uart data: 'other data' +.. _uart-debugging: + +Debugging +--------- + +If you need insight in the communication that is being sent and/or received over a UART bus, then you can make use +of the debugging feature. + +.. code-block:: yaml + + # Example configuration entry + uart: + baud_rate: 115200 + debug: + direction: BOTH + dummy_receiver: false + after: + bytes: 60 + sequence: + - lambda: UARTDebug::log_hex(direction, bytes, ':'); + +- **direction** (*Optional*, enum): The direction of communication to debug, one of: "RX" (receive, incoming), + "TX" (send, outgoing) or "BOTH". Defaults to "BOTH". +- **dummy_receiver** (*Optional*, boolean): Whether or not to enable the dummy receiver feature. The debugger + will only accumulate bytes that are actually read or sent by a UART device component. This feature is + useful when you want to debug all incoming communication, while no UART device component is configured + for the UART bus (yet). This is especially useful for developers. Normally you'd want to leave this + option disabled. Defaults to false. +- **after** (*Optional*, mapping): The debugger accumulates bytes of communication. This option defines when + to trigger publishing the accumulated bytes. The possible options are: + + - **bytes** (*Optional*, int): Trigger after accumulating the specified number of bytes. Defaults to 256. + - **timeout** (*Optional*, :ref:`config-time`): Trigger after no communication has been seen during the + specified timeout, while one or more bytes have been accumulated. Defaults to 100ms. + - **sequence** (*Optional*, string or list of bytes): Trigger after the specified sequence of bytes is + detected in the communication. + +- **sequence** (*Required*, :ref:`config-action`): Action(s) to perform for publishing debugging data. The + actions can make use of the following variables: + + - **direction**: ``uart::UART_DIRECTION_RX`` or ``uart::UART_DIRECTION_TX`` + - **bytes**: ``std::vector`` containing the accumulated bytes + +**Helper functions for logging** + +Helper functions are provided to make logging of debug data in various formats easy: + +- **UARTDebug::log_hex(direction, bytes, char separator)** Log the bytes as hex values, separated by the provided + separator character. +- **UARTDebug::log_string(direction, bytes)** Log the bytes as string values, escaping unprintable characters. +- **UARTDebug::log_int(direction, bytes, char separator)** Log the bytes as integer values, separated by the provided + separator character. +- **UARTDebug::log_binary(direction, bytes, char separator)** Log the bytes as `` ()`` values, + separated by the provided separator character. + +**Logger buffer size** + +Beware that the ``logger`` component uses a limited buffer size of 512 bytes by default. If the UART +debugger log lines become too long, then you will notice that they end up truncated in the log output. + +In that case, either make sure that the debugger outputs less data per log line (e.g. by setting the +``after.bytes`` option to a lower value) or increase the logger buffer size using the logger +``tx_buffer_size`` option. + See Also -------- From 56862eac260129d7ccfe5c4e695bbfa15d602c3d Mon Sep 17 00:00:00 2001 From: NeoAcheron <12508986+NeoAcheron@users.noreply.github.com> Date: Sat, 13 Nov 2021 15:43:52 +0100 Subject: [PATCH 29/31] pmsx003: add config options for the PMS5003S (#1615) --- components/sensor/pmsx003.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/sensor/pmsx003.rst b/components/sensor/pmsx003.rst index f04b294f2..741362297 100644 --- a/components/sensor/pmsx003.rst +++ b/components/sensor/pmsx003.rst @@ -17,6 +17,7 @@ This platform supports three sensor types, which you need to specify using the ` value: - ``PMSX003`` for generic PMS5003, PMS7003, ...; these sensors support ``pm_1_0``, ``pm_2_5`` and ``pm_10_0`` output. +- ``PMS5003S`` for PMS5003ST. These support ``pm_1_0``, ``pm_2_5`` and ``pm_10_0`` and ``formaldehyde``. - ``PMS5003T`` for PMS5003T. These support ``pm_2_5``, ``temperature`` and ``humidity``. - ``PMS5003ST`` for PMS5003ST. These support ``pm_2_5``, ``temperature``, ``humidity`` and ``formaldehyde``. @@ -68,7 +69,7 @@ Configuration variables: All options from :ref:`Sensor `. - **humidity** (*Optional*): Use the humidity value in % for the ``PMS5003T`` and ``PMS5003ST``. All options from :ref:`Sensor `. -- **formaldehyde** (*Optional*): Use the formaldehyde (HCHO) concentration in µg per cubic meter for the ``PMS5003ST``. +- **formaldehyde** (*Optional*): Use the formaldehyde (HCHO) concentration in µg per cubic meter for the ``PMS5003S`` and ``PMS5003ST``. All options from :ref:`Sensor `. - **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`UART Component ` if you want to use multiple UART buses. From 5a134a12eaaacf54cd5755d30ee5dd0c8e90bfeb Mon Sep 17 00:00:00 2001 From: "Sergey V. DUDANOV" Date: Sat, 13 Nov 2021 18:47:38 +0400 Subject: [PATCH 30/31] Add new climate on_state trigger info (#1614) --- components/climate/index.rst | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/components/climate/index.rst b/components/climate/index.rst index 7c1f3e75b..3a130a4da 100644 --- a/components/climate/index.rst +++ b/components/climate/index.rst @@ -184,6 +184,21 @@ advanced stuff. // etc. see API reference call.perform(); +.. _climate-on_state_trigger: + +``climate.on_state`` Trigger +****************************************************** + +This trigger is activated each time the state of the climate device is updated +(for example, if the current temperature measurement or the mode set by the users changes). + +.. code-block:: yaml + + climate: + - platform: midea # or any other platform + # ... + on_state: + - logger.log: "State updated!" See Also -------- From efc3ee797bc1f0e072c97e1d0f0d95167cd82b5f Mon Sep 17 00:00:00 2001 From: Clifford Roche Date: Sun, 14 Nov 2021 10:13:04 -0500 Subject: [PATCH 31/31] Add support for greeyac and I-Feel (#1607) --- components/climate/ir_climate.rst | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/components/climate/ir_climate.rst b/components/climate/ir_climate.rst index 4152dfa6e..62db46695 100755 --- a/components/climate/ir_climate.rst +++ b/components/climate/ir_climate.rst @@ -96,11 +96,23 @@ This platform utilises the library's generic one-size-fits-all API, which might Additional configuration must be specified for this platform: -- **protocol** (**Required**, string): Choose one of Arduino-HeatpumpIR's supported protcols: ``aux``, ``ballu``, ``carrier_mca``, ``carrier_nqv``, ``daikin_arc417``, ``daikin_arc480``, ``daikin``, ``fuego``, ``fujitsu_awyz``, ``gree``, ``greeya``, ``greeyan``, ``hisense_aud``, ``hitachi``, ``hyundai``, ``ivt``, ``midea``, ``mitsubishi_fa``, ``mitsubishi_fd``, ``mitsubishi_fe``, ``mitsubishi_heavy_fdtc``, ``mitsubishi_heavy_zj``, ``mitsubishi_heavy_zm``, ``mitsubishi_heavy_zmp``, ``mitsubishi_heavy_kj``, ``mitsubishi_msc``, ``mitsubishi_msy``, ``mitsubishi_sez``, ``panasonic_ckp``, ``panasonic_dke``, ``panasonic_jke``, ``panasonic_lke``, ``panasonic_nke``, ``samsung_aqv``, ``samsung_fjm``, ``sharp``, ``toshiba_daiseikai``, ``toshiba`` +- **protocol** (**Required**, string): Choose one of Arduino-HeatpumpIR's supported protcols: ``aux``, ``ballu``, ``carrier_mca``, ``carrier_nqv``, ``daikin_arc417``, ``daikin_arc480``, ``daikin``, ``fuego``, ``fujitsu_awyz``, ``gree``, ``greeya``, ``greeyac``, ``greeyan``, ``hisense_aud``, ``hitachi``, ``hyundai``, ``ivt``, ``midea``, ``mitsubishi_fa``, ``mitsubishi_fd``, ``mitsubishi_fe``, ``mitsubishi_heavy_fdtc``, ``mitsubishi_heavy_zj``, ``mitsubishi_heavy_zm``, ``mitsubishi_heavy_zmp``, ``mitsubishi_heavy_kj``, ``mitsubishi_msc``, ``mitsubishi_msy``, ``mitsubishi_sez``, ``panasonic_ckp``, ``panasonic_dke``, ``panasonic_jke``, ``panasonic_lke``, ``panasonic_nke``, ``samsung_aqv``, ``samsung_fjm``, ``sharp``, ``toshiba_daiseikai``, ``toshiba`` - **horizontal_default** (**Required**, string): What to default to when the AC unit's horizontal direction is *not* set to swing. Options are: ``left``, ``mleft``, ``middle``, ``mright``, ``right``, ``auto`` - **vertical_default** (**Required**, string): What to default to when the AC unit's vertical direction is *not* set to swing. Options are: ``down``, ``mdown``, ``middle``, ``mup``, ``up``, ``auto`` - **max_temperature** (**Required**, float): The maximum temperature that the AC unit supports being set to. - **min_temperature** (**Required**, float): The minimum temperature that the AC unit supports being set to. +- **sensor** (*Optional*, :ref:`config-id`): The sensor that is used to measure the ambient temperature. + +.. note:: + + - The ``greeyac`` protocol supports a feature Gree calls "I-Feel". The handheld remote control + has a built-in temperature sensor and it will periodically transmit the temperature from this sensor to the + AC unit. If a ``sensor`` is provided in the configuration with this model, the sensor's temperature will be + transmitted to the ``greeyac`` device in the same manner as the original remote controller. How often the + temperature is transmitted is determined by the ``update_interval`` assigned to the ``sensor``. Note that + ``update_interval`` must be less than 10 minutes or the ``greeyac`` device will revert to using its own + internal temperature sensor; a value of 2 minutes seems to work well. See :doc:`/components/sensor/index` + for more information. .. _ir-receiver_id: