Merge pull request #1628 from esphome/bump-2021.11.0

2021.11.0
This commit is contained in:
Jesse Hills 2021-11-17 22:18:58 +13:00 committed by GitHub
commit 9bed2a2cbf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
47 changed files with 847 additions and 29 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 = 2021.10.3
PROJECT_NUMBER = 2021.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 = 2021.10.3
ESPHOME_REF = 2021.11.0
.PHONY: html html-strict cleanhtml deploy help webserver Makefile netlify netlify-api api netlify-dependencies svg2png copy-svg2png minify

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

View File

@ -1 +1 @@
2021.10.3
2021.11.0

289
changelog/2021.11.0.rst Normal file
View File

@ -0,0 +1,289 @@
ESPHome 2021.11.0 - 17th November 2021
======================================
.. seo::
:description: Changelog for ESPHome 2021.11.0.
:image: /_static/changelog-2021.11.0.png
:author: ESPHome
:author_twitter: @esphome_
.. imgtable::
:columns: 4
CSE7761, components/sensor/cse7761, cse7761.svg
CAP1188 Capacitive Touch Sensor, components/binary_sensor/cap1188, cap1188.jpg
ESP32 Camera Web Server, components/esp32_camera_web_server, camera.svg
Improv via Serial, components/improv_serial, improv.svg
State of the Open Smart Home
----------------------------
Mark your calendar for the `State of the Open Smart Home <https://www.home-assistant.io/state-of-the-open-home/>`__ hosted by Nabu Casa, Home Assistant & ESPHome
and well be joined by our friends from WLED and Z-Wave JS to talk about our work on making this vision a reality.
Where: YouTube
When: Saturday, December 11, at 11am PST / 8pm CET
.. raw:: html
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/6ZMXE5PXPqU"
title="YouTube video player" frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen>
</iframe>
Improv via Serial
-----------------
.. raw:: html
<script
type="module"
src="https://unpkg.com/improv-wifi-serial-sdk@2.0.0/dist/web/serial-launch-button.js"
></script>
<improv-wifi-serial-launch-button>
<i slot='unsupported'>The demo does not work in your browser. Use Google Chrome or Microsoft Edge.</i>
</improv-wifi-serial-launch-button>
After we created :doc:`/components/esp32_improv`, we thought it might be a good idea to implement the same for serial connections.
See the docs here for :doc:`Improv via Serial </components/improv_serial>` and the
`website documentation <https://www.improv-wifi.com/serial/>`__ for implementing a client or implementing improv in other firmware.
Entity Categories for Home Assistant
------------------------------------
Home Assistant 2021.11 added support for `Entity Categories <https://www.home-assistant.io/blog/2021/11/03/release-202111/#entity-categorization>`__
and with this release certain ESPHome entites such as the restart switch and uptime sensors will have the config and diagnostic categories set respectively.
The category can be overridden by the user in the yaml configuration.
Configuration URL
-----------------
Another feature added to Home Assistant 2021.11 is the configuration URL. This allows for ESPHome devices to notify Home Assistant when the ``web_server`` is
enabled and there will be a button in the Home Assistant device page to link directly to the ``web_server`` UI for your ESPHome device.
.. figure:: images/configuration-url.png
:align: center
:width: 50.0%
Repeat Action
-------------
:ghuser:`oxan` has implemented a ``repeat`` action for those that want to execute a list of actions x number of times without just copying and pasting them.
Device name length
------------------
The maximum length of the device name has been limited to 31 characters to fall in line with standards and you will get
an error if you try to set a device name longer than that.
BLE Sensor UUID changes
-----------------------
A bug was introduced in 2021.9 with the UUIDs for the ``ble_client`` sensors being reversed incorrectly. This release flips them to be the correct way around
and you will need to reverse them in your YAML configuration.
BH1750
------
When using the default resolution of 0.5 for the BH17850, the result is now divided by 2 as per the finidings of the community.
Binary sensor device classes
----------------------------
:esphomepr:`2703` brings the binary sensor device classes up to date with Home Assistant, but this means that
the ``update`` ``device_class`` for binary sensors has been removed, you will get an error in your configuration if
you are using this device class.
Full list of changes
--------------------
New Features
^^^^^^^^^^^^
- Make per-loop display clearing optional :esphomepr:`2626` by :ghuser:`timn` (new-feature)
- Add Entity categories for Home Assistant :esphomepr:`2636` by :ghuser:`jesserockz` (new-feature)
- Add repeat action for automations :esphomepr:`2538` by :ghuser:`oxan` (new-feature)
- Neopixelbus redo method definitions :esphomepr:`2616` by :ghuser:`OttoWinter` (new-feature) (breaking-change)
New Components
^^^^^^^^^^^^^^
- Feature/sensor cse7761 :esphomepr:`2546` by :ghuser:`berfenger` (new-integration)
- Add `esp32_camera_web_server:` to expose mjpg/jpg images :esphomepr:`2237` by :ghuser:`ayufan` (new-integration)
- CAP1188 Capacitive Touch Sensor Support :esphomepr:`2653` by :ghuser:`MrEditor97` (new-integration)
- Implement Improv via Serial component :esphomepr:`2423` by :ghuser:`jesserockz` (new-integration)
Breaking Changes
^^^^^^^^^^^^^^^^
- TCS34725 BugFix and GA factor :esphomepr:`2445` by :ghuser:`razorback16` (breaking-change)
- Limit hostnames to 31 characters :esphomepr:`2531` by :ghuser:`oxan` (breaking-change)
- Move default build path to .esphome directory :esphomepr:`2586` by :ghuser:`OttoWinter` (breaking-change)
- ESP8266 disable PIO LDF :esphomepr:`2608` by :ghuser:`OttoWinter` (breaking-change)
- Remove autoload of xiaomi_ble and ruuvi_ble :esphomepr:`2617` by :ghuser:`spbrogan` (breaking-change)
- BH1750: Fix a too high default H-res2 mode value :esphomepr:`2536` by :ghuser:`kixtarter` (breaking-change)
- Add option to use MQTT abbreviations :esphomepr:`2641` by :ghuser:`paulmonigatti` (breaking-change)
- Add restore_mode to rotary_encoder :esphomepr:`2643` by :ghuser:`niklasweber` (breaking-change)
- Neopixelbus redo method definitions :esphomepr:`2616` by :ghuser:`OttoWinter` (new-feature) (breaking-change)
- Update device classes for binary sensors :esphomepr:`2703` by :ghuser:`lcavalli` (breaking-change)
- BLE_Sensor: Use as_reversed_hex_array to properly parse UUIDs after #1627 :esphomepr:`2737` by :ghuser:`tekmaven` (breaking-change)
Beta Fixes
^^^^^^^^^^
- Fix template number initial value being NaN :esphomepr:`2692` by :ghuser:`jesserockz`
- [remote_transmitter] accurate pulse timing for ESP8266 :esphomepr:`2476` by :ghuser:`CarlosGS`
- Uart debugging support :esphomepr:`2478` by :ghuser:`mmakaay`
- Enable addressable light power supply based on raw values :esphomepr:`2690` by :ghuser:`oxan`
- Remove my.ha links from improv :esphomepr:`2695` by :ghuser:`jesserockz`
- Only allow prometheus when using arduino :esphomepr:`2697` by :ghuser:`jesserockz`
- Update device classes for binary sensors :esphomepr:`2703` by :ghuser:`lcavalli` (breaking-change)
- Bump ESPAsyncWebServer to 2.1.0 :esphomepr:`2686` by :ghuser:`jesserockz`
- Allow setting custom command_topic for Select and Number components :esphomepr:`2714` by :ghuser:`kbialek`
- Restore InterruptLock on wifi-less ESP8266 :esphomepr:`2712` by :ghuser:`oxan`
- Feed WDT between doing ESP32 touchpad measurements :esphomepr:`2720` by :ghuser:`oxan`
- RemoteTransmitter fix. Bug from version 2021.10. Some changes. :esphomepr:`2706` by :ghuser:`dudanov`
- Fix indentation of write_lambda for modbus_controller number :esphomepr:`2722` by :ghuser:`jesserockz`
- Remove unnecessary duplicate touch_pad_filter_start :esphomepr:`2724` by :ghuser:`Maelstrom96`
- Add zeroconf as a direct dependency and lock the version :esphomepr:`2729` by :ghuser:`jesserockz`
- Improv serial/checksum changes :esphomepr:`2731` by :ghuser:`jesserockz`
- Fix zeroconf time comparisons :esphomepr:`2733` by :ghuser:`jesserockz`
- BLE_Sensor: Use as_reversed_hex_array to properly parse UUIDs after #1627 :esphomepr:`2737` by :ghuser:`tekmaven` (breaking-change)
- Fix senseair component uart read timeout :esphomepr:`2658` by :ghuser:`rotarykite`
All changes
^^^^^^^^^^^
- TCS34725 BugFix and GA factor :esphomepr:`2445` by :ghuser:`razorback16` (breaking-change)
- Change millis() to faster micros() for 3ms check in feed_wdt :esphomepr:`2492` by :ghuser:`CarlosGS`
- Add ESP32 IDF as a test env for PRs :esphomepr:`2494` by :ghuser:`mmakaay`
- use no hold master mode for si7021/htu21d :esphomepr:`2528` by :ghuser:`dmitriy5181`
- Bump pyyaml from 5.4.1 to 6.0 :esphomepr:`2521` by :ghuser:`dependabot[bot]`
- Clarify statement at the cmd wizard tool, for new users :esphomepr:`2519` by :ghuser:`CarlosGS`
- Continue ethernet setup if hostname fails :esphomepr:`2430` by :ghuser:`Tommatheussen`
- Bump aioesphomeapi from 9.1.5 to 10.0.0 :esphomepr:`2508` by :ghuser:`dependabot[bot]`
- Move TemplatableValue helper class to automation.h :esphomepr:`2511` by :ghuser:`oxan`
- [esp-idf fix] increase FreeRTOS ticker loop from 100Hz to 1kHz :esphomepr:`2527` by :ghuser:`CarlosGS`
- Bump pytest-asyncio from 0.15.1 to 0.16.0 :esphomepr:`2547` by :ghuser:`dependabot[bot]`
- [ESP32] ADC auto-range setting :esphomepr:`2541` by :ghuser:`CarlosGS`
- Bump paho-mqtt from 1.5.1 to 1.6.0 :esphomepr:`2568` by :ghuser:`dependabot[bot]`
- Fix ESP8266 dallas GPIO16 INPUT_PULLUP :esphomepr:`2581` by :ghuser:`OttoWinter`
- Fix platformio version in Dockerfile doesn't match requirements :esphomepr:`2582` by :ghuser:`OttoWinter`
- Fix platformio_install_deps no longer installing all lib_deps :esphomepr:`2584` by :ghuser:`OttoWinter`
- ESP32 ADC use factory calibration data :esphomepr:`2574` by :ghuser:`OttoWinter`
- Add mDNS config dump :esphomepr:`2576` by :ghuser:`mmakaay`
- Fix mDNS ESP8266 log not included :esphomepr:`2589` by :ghuser:`OttoWinter`
- Bump platformio from 5.2.1 to 5.2.2 :esphomepr:`2569` by :ghuser:`dependabot[bot]`
- Update docker base images :esphomepr:`2583` by :ghuser:`OttoWinter`
- Bump paho-mqtt from 1.6.0 to 1.6.1 :esphomepr:`2596` by :ghuser:`dependabot[bot]`
- Logging a proper url allows terminals to make it clickable :esphomepr:`2554` by :ghuser:`jesserockz`
- Bump aioesphomeapi from 10.0.0 to 10.0.3 :esphomepr:`2595` by :ghuser:`dependabot[bot]`
- Bump tzlocal from 3.0 to 4.0.1 :esphomepr:`2553` by :ghuser:`dependabot[bot]`
- Add IDF support to dallas :esphomepr:`2578` by :ghuser:`OttoWinter`
- Limit hostnames to 31 characters :esphomepr:`2531` by :ghuser:`oxan` (breaking-change)
- Add EntityBase properties to ESP32 Camera :esphomepr:`2600` by :ghuser:`paulmonigatti`
- Move default build path to .esphome directory :esphomepr:`2586` by :ghuser:`OttoWinter` (breaking-change)
- ESP8266 disable PIO LDF :esphomepr:`2608` by :ghuser:`OttoWinter` (breaking-change)
- Switch issue-close-app to GH Actions and workflow cleanup :esphomepr:`2624` by :ghuser:`OttoWinter`
- relax max entities checking :esphomepr:`2629` by :ghuser:`martgras`
- Allow setting URL as platform_version :esphomepr:`2598` by :ghuser:`oxan`
- Constrain GH Actions workflows permissions :esphomepr:`2625` by :ghuser:`OttoWinter`
- Bump tzlocal from 4.0.1 to 4.0.2 :esphomepr:`2631` by :ghuser:`dependabot[bot]`
- Bump esptool from 3.1 to 3.2 :esphomepr:`2632` by :ghuser:`dependabot[bot]`
- Add publish_initial_value option to rotary encoder :esphomepr:`2503` by :ghuser:`niklasweber`
- Remove autoload of xiaomi_ble and ruuvi_ble :esphomepr:`2617` by :ghuser:`spbrogan` (breaking-change)
- Bump aioesphomeapi from 10.0.3 to 10.1.0 :esphomepr:`2638` by :ghuser:`dependabot[bot]`
- Expose web_server port via the API :esphomepr:`2467` by :ghuser:`alexiri`
- Allow cloning/fetching Github PR branches in external_components :esphomepr:`2639` by :ghuser:`jesserockz`
- use update_interval for sntp synchronization :esphomepr:`2563` by :ghuser:`martgras`
- Feature/sensor cse7761 :esphomepr:`2546` by :ghuser:`berfenger` (new-integration)
- Bump aioesphomeapi from 10.1.0 to 10.2.0 :esphomepr:`2642` by :ghuser:`dependabot[bot]`
- BH1750: Fix a too high default H-res2 mode value :esphomepr:`2536` by :ghuser:`kixtarter` (breaking-change)
- Bump tzlocal from 4.0.2 to 4.1 :esphomepr:`2645` by :ghuser:`dependabot[bot]`
- convert SCD30 into Component, polls dataready register :esphomepr:`2308` by :ghuser:`geoffrey-vl`
- Add option to use MQTT abbreviations :esphomepr:`2641` by :ghuser:`paulmonigatti` (breaking-change)
- Fix deep sleep invert_wakeup mode :esphomepr:`2644` by :ghuser:`OttoWinter`
- Expose webserver_port to the native API :esphomepr:`2640` by :ghuser:`jesserockz`
- Fix for noise in pulse_counter and duty_cycle components :esphomepr:`2646` by :ghuser:`CarlosGS`
- Bump black from 21.9b0 to 21.10b0 :esphomepr:`2650` by :ghuser:`dependabot[bot]`
- Add restore_mode to rotary_encoder :esphomepr:`2643` by :ghuser:`niklasweber` (breaking-change)
- Make per-loop display clearing optional :esphomepr:`2626` by :ghuser:`timn` (new-feature)
- Allow esp8266 to compile with no wifi :esphomepr:`2664` by :ghuser:`glmnet`
- Fix CRC error during DSMR chunked message reading :esphomepr:`2622` by :ghuser:`mmakaay`
- Add Entity categories for Home Assistant :esphomepr:`2636` by :ghuser:`jesserockz` (new-feature)
- Add SPI lib for ESP8266 and only add lib for ESP32 when using Arduino :esphomepr:`2677` by :ghuser:`mmakaay`
- Hotfix for encrypted DSMR regression :esphomepr:`2679` by :ghuser:`mmakaay`
- Add HA Entity Category support to MQTT :esphomepr:`2678` by :ghuser:`paulmonigatti`
- Fix gpio validation for esp32 variants :esphomepr:`2609` by :ghuser:`martgras`
- Fix when package url has no branch/ref :esphomepr:`2683` by :ghuser:`jesserockz`
- SSD1306_base -> Add support for 64x32 size and fix typo for flip functions :esphomepr:`2682` by :ghuser:`ychieux`
- Fix dashboard imports for adoption :esphomepr:`2684` by :ghuser:`jesserockz`
- Add `esp32_camera_web_server:` to expose mjpg/jpg images :esphomepr:`2237` by :ghuser:`ayufan` (new-integration)
- fix esp32 rmt receiver item array length :esphomepr:`2671` by :ghuser:`glmnet`
- Remote base add pronto protocol :esphomepr:`2619` by :ghuser:`cvwillegen`
- Set up output_switch at priority DATA instead of HARDWARE. :esphomepr:`2648` by :ghuser:`duncf`
- fix rc switch protocol 6 :esphomepr:`2672` by :ghuser:`glmnet`
- Remove "delay_microseconds_accurate()" and improve systemwide delayMicroseconds() :esphomepr:`2497` by :ghuser:`CarlosGS`
- modbus_controller: remove hard coded register size :esphomepr:`2654` by :ghuser:`martgras`
- CAP1188 Capacitive Touch Sensor Support :esphomepr:`2653` by :ghuser:`MrEditor97` (new-integration)
- Add missing hal.h include in esp32_camera_web_server :esphomepr:`2689` by :ghuser:`oxan`
- [ESP32 ADC] Add option for raw uncalibrated output :esphomepr:`2663` by :ghuser:`CarlosGS`
- Introduce parse_number() helper function :esphomepr:`2659` by :ghuser:`oxan`
- Add repeat action for automations :esphomepr:`2538` by :ghuser:`oxan` (new-feature)
- Neopixelbus redo method definitions :esphomepr:`2616` by :ghuser:`OttoWinter` (new-feature) (breaking-change)
- Introduce byteswap helpers :esphomepr:`2661` by :ghuser:`oxan`
- Max7219digit multiline :esphomepr:`1622` by :ghuser:`TVDLoewe`
- Clean-up string sanitization helpers :esphomepr:`2660` by :ghuser:`oxan`
- Introduce encode_value/decode_value() template functions :esphomepr:`2662` by :ghuser:`oxan`
- Make OTA function switchable in web_server component :esphomepr:`2685` by :ghuser:`lazlyhu`
- Implement Improv via Serial component :esphomepr:`2423` by :ghuser:`jesserockz` (new-integration)
- [ms5611]: Re-implement conversion from ADC readings to sensor values :esphomepr:`2665` by :ghuser:`anatoly-savchenkov`
- Fix template number initial value being NaN :esphomepr:`2692` by :ghuser:`jesserockz`
- [remote_transmitter] accurate pulse timing for ESP8266 :esphomepr:`2476` by :ghuser:`CarlosGS`
- Uart debugging support :esphomepr:`2478` by :ghuser:`mmakaay`
- Enable addressable light power supply based on raw values :esphomepr:`2690` by :ghuser:`oxan`
- Remove my.ha links from improv :esphomepr:`2695` by :ghuser:`jesserockz`
- Only allow prometheus when using arduino :esphomepr:`2697` by :ghuser:`jesserockz`
- Update device classes for binary sensors :esphomepr:`2703` by :ghuser:`lcavalli` (breaking-change)
- Bump ESPAsyncWebServer to 2.1.0 :esphomepr:`2686` by :ghuser:`jesserockz`
- Allow setting custom command_topic for Select and Number components :esphomepr:`2714` by :ghuser:`kbialek`
- Restore InterruptLock on wifi-less ESP8266 :esphomepr:`2712` by :ghuser:`oxan`
- Feed WDT between doing ESP32 touchpad measurements :esphomepr:`2720` by :ghuser:`oxan`
- RemoteTransmitter fix. Bug from version 2021.10. Some changes. :esphomepr:`2706` by :ghuser:`dudanov`
- Fix indentation of write_lambda for modbus_controller number :esphomepr:`2722` by :ghuser:`jesserockz`
- Remove unnecessary duplicate touch_pad_filter_start :esphomepr:`2724` by :ghuser:`Maelstrom96`
- Add zeroconf as a direct dependency and lock the version :esphomepr:`2729` by :ghuser:`jesserockz`
- Improv serial/checksum changes :esphomepr:`2731` by :ghuser:`jesserockz`
- Fix zeroconf time comparisons :esphomepr:`2733` by :ghuser:`jesserockz`
- BLE_Sensor: Use as_reversed_hex_array to properly parse UUIDs after #1627 :esphomepr:`2737` by :ghuser:`tekmaven` (breaking-change)
- Fix senseair component uart read timeout :esphomepr:`2658` by :ghuser:`rotarykite`
Past Changelogs
---------------
.. toctree::
:maxdepth: 1
2021.10.0
2021.9.0
2021.8.0
v1.20.0
v1.19.0
v1.18.0
v1.17.0
v1.16.0
v1.15.0
v1.14.0
v1.13.0
v1.12.0
v1.11.0
v1.10.0
v1.9.0
v1.8.0
v1.7.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

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

View File

@ -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 <https://cdn-shop.adafruit.com/datasheets/CAP1188.pdf>`__,
`Adafruit`_) Capacitive Touch Sensor with ESPHome. The :ref:`I²C <i2c>` 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 <config-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 <https://github.com/adafruit/Adafruit_CAP1188_Library>`__ by `Adafruit <https://www.adafruit.com/>`__
- :ghedit:`Edit`

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

View File

@ -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 <config-mqtt-component>`.
.. _binary_sensor-filters:

View File

@ -42,5 +42,7 @@ See Also
--------
- :doc:`wifi`
- :doc:`improv_serial`
- :doc:`esp32_improv`
- :apiref:`captive_portal/captive_portal.h`
- :ghedit:`Edit`

View File

@ -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:

View File

@ -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:

View File

@ -56,6 +56,8 @@ Configuration variables:
- **lambda** (*Optional*, :ref:`lambda <config-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.

View File

@ -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 <config-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 <config-lambda>` in ESPHome. Display
lambdas are additionally passed a variable called ``it`` which represents the rendering engine object.
.. code-block:: yaml

View File

@ -66,6 +66,8 @@ Configuration variables:
- **spi_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`SPI Component <spi>` 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:

View File

@ -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:

View File

@ -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://<ip>:<port>/`.
.. 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`

View File

@ -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 <https://www.improv-wifi.com/>`__
@ -35,6 +35,7 @@ See Also
--------
- :doc:`wifi`
- :doc:`improv_serial`
- :doc:`captive_portal`
- `Improv Wi-Fi <https://www.improv-wifi.com/>`__
- :apiref:`esp32_improv/esp32_improv_component.h`

View File

@ -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://<user or org>/<repository name>[@<branch or tag>]
The source field also accepts a short hand **github://** pull request from the ESPHome repository:
.. code-block:: yaml
external_components:
# shorthand
source: github://pr#<number>
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

View File

@ -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:

View File

@ -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 <https://www.improv-wifi.com/>`__
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 <https://www.improv-wifi.com/>`__
- :apiref:`improv_serial/improv_serial_component.h`
- :ghedit:`Edit`

View File

@ -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 <config-mqtt-component>`.
.. _light-toggle_action:

View File

@ -43,6 +43,9 @@ Configuration variables:
- **discovery_prefix** (*Optional*, string): The prefix to use for Home
Assistants MQTT discovery. Should not contain trailing slash.
Defaults to ``homeassistant``.
- **use_abbreviations** (*Optional*, boolean): Whether to use
`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>``.

View File

@ -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:

View File

@ -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 <config-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
******************************************

View File

@ -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:

View File

@ -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,22 +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 <https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/adc.html#_CPPv425adc1_config_channel_atten14adc1_channel_t11adc_atten_t>`__.
To measure voltages higher than 1.1V, set ``attenuation`` to one of the `following values
<https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/peripherals/adc.html#_CPPv225adc1_config_channel_atten14adc1_channel_t11adc_atten_t>`__:
To simplify this, we provide the setting ``attenuation: auto`` for an automatic/seamless transition among scales. `Our implementation
<https://github.com/esphome/esphome/blob/dev/esphome/components/adc/adc_sensor.cpp>`__ 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
.. _adc-esp8266_vcc:

View File

@ -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 <uart>` 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 <config-sensor>`.
- **current_1** (*Optional*): Use the current value of the channel 1 in amperes. All options from
:ref:`Sensor <config-sensor>`.
- **current_2** (*Optional*): Use the current value of the channel 2 in amperes. All options from
:ref:`Sensor <config-sensor>`.
- **active_power_1** (*Optional*): Use the (active) power value of the channel 1 in watts. All options from
:ref:`Sensor <config-sensor>`.
- **active_power_2** (*Optional*): Use the (active) power value of the channel 2 in watts. All options from
:ref:`Sensor <config-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 <uart>` if you want
to use multiple UART buses.
See Also
--------
- :ref:`sensor-filters`
- :apiref:`cse7761/cse7761.h`
- :ghedit:`Edit`

View File

@ -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:

View File

@ -59,6 +59,17 @@ 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``.
- **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 </components/esphome>`.
- ``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 <automation>`): Actions to be performed when
the knob is turned clockwise. See :ref:`sensor-rotary_encoder-triggers`.
- **on_anticlockwise** (*Optional*, :ref:`Automation <automation>`): Actions to be performed when

View File

@ -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:

View File

@ -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``.

View File

@ -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::

View File

@ -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 <config-mqtt-component>`.
.. _switch-toggle_action:

View File

@ -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 <config-mqtt-component>`.
Automations:

View File

@ -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 <config-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<uint8_t>`` 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 ``<binary> (<hex>)`` 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
--------

View File

@ -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"

View File

@ -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.3"
release = "2021.11.0"
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.

View File

@ -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
-------------

View File

@ -561,6 +561,30 @@ Configuration variables:
- **condition** (**Required**): The condition to check whether to execute. See :ref:`Conditions <config-condition>`.
- **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

View File

@ -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
--------

View File

@ -55,6 +55,7 @@ Contributors
- `aliktb (@aliktb) <https://github.com/aliktb>`__
- `Amish Vishwakarma (@amishv) <https://github.com/amishv>`__
- `Jason Nader (@ammgws) <https://github.com/ammgws>`__
- `anatoly-savchenkov (@anatoly-savchenkov) <https://github.com/anatoly-savchenkov>`__
- `andig (@andig) <https://github.com/andig>`__
- `András Bíró (@andrasbiro) <https://github.com/andrasbiro>`__
- `Andreas Hergert (@andreashergert1984) <https://github.com/andreashergert1984>`__
@ -87,6 +88,7 @@ Contributors
- `Viktr (@BbIKTOP) <https://github.com/BbIKTOP>`__
- `J. Nick Koston (@bdraco) <https://github.com/bdraco>`__
- `Ben Suffolk (@bensuffolk) <https://github.com/bensuffolk>`__
- `Arturo Casal (@berfenger) <https://github.com/berfenger>`__
- `Ivan Bessarabov (@bessarabov) <https://github.com/bessarabov>`__
- `besteru (@besteru) <https://github.com/besteru>`__
- `Bierchermuesli (@Bierchermuesli) <https://github.com/Bierchermuesli>`__
@ -106,6 +108,7 @@ Contributors
- `Brian Hanifin (@brianhanifin) <https://github.com/brianhanifin>`__
- `brianrjones69 (@brianrjones69) <https://github.com/brianrjones69>`__
- `buddydvd (@buddydvd) <https://github.com/buddydvd>`__
- `bulburDE (@bulburDE) <https://github.com/bulburDE>`__
- `buxtronix (@buxtronix) <https://github.com/buxtronix>`__
- `bvansambeek (@bvansambeek) <https://github.com/bvansambeek>`__
- `bwente (@bwente) <https://github.com/bwente>`__
@ -123,6 +126,7 @@ Contributors
- `John (@CircuitSetup) <https://github.com/CircuitSetup>`__
- `Colby Rome (@cisasteelersfan) <https://github.com/cisasteelersfan>`__
- `Chris Debenham (@cjd) <https://github.com/cjd>`__
- `Clifford Roche (@cmroche) <https://github.com/cmroche>`__
- `CODeRUS (@CODeRUS) <https://github.com/CODeRUS>`__
- `Cody James (@codyjamestechnical) <https://github.com/codyjamestechnical>`__
- `John Coggeshall (@coogle) <https://github.com/coogle>`__
@ -193,6 +197,7 @@ Contributors
- `Daniel Müller (@dtmuller) <https://github.com/dtmuller>`__
- `dubit0 (@dubit0) <https://github.com/dubit0>`__
- `Sergey V. DUDANOV (@dudanov) <https://github.com/dudanov>`__
- `Duncan Findlay (@duncf) <https://github.com/duncf>`__
- `dyarkovoy (@dyarkovoy) <https://github.com/dyarkovoy>`__
- `Dimitris Zervas (@dzervas) <https://github.com/dzervas>`__
- `dziobson (@dziobson) <https://github.com/dziobson>`__
@ -246,6 +251,7 @@ Contributors
- `frippe75 (@frippe75) <https://github.com/frippe75>`__
- `Fritz Mueller (@fritzm) <https://github.com/fritzm>`__
- `Marc Egli (@frog32) <https://github.com/frog32>`__
- `frspp (@frspp) <https://github.com/frspp>`__
- `mr G1K (@G1K) <https://github.com/G1K>`__
- `Aljaž Srebrnič (@g5pw) <https://github.com/g5pw>`__
- `Gabe Cook (@gabe565) <https://github.com/gabe565>`__
@ -254,6 +260,7 @@ Contributors
- `GeekVisit (@GeekVisit) <https://github.com/GeekVisit>`__
- `R Huish (@genestealer) <https://github.com/genestealer>`__
- `Geoff Davis (@geoffdavis) <https://github.com/geoffdavis>`__
- `Geoffrey Van Landeghem (@geoffrey-vl) <https://github.com/geoffrey-vl>`__
- `Gérald Guiony (@gerald-guiony) <https://github.com/gerald-guiony>`__
- `Gerard (@gerard33) <https://github.com/gerard33>`__
- `Giovanni (@Gio-dot) <https://github.com/Gio-dot>`__
@ -290,6 +297,7 @@ Contributors
- `MoA (@honomoa) <https://github.com/honomoa>`__
- `Hopperpop (@Hopperpop) <https://github.com/Hopperpop>`__
- `Yang Hau (@HowJMay) <https://github.com/HowJMay>`__
- `Antonio Vanegas (@hpsaturn) <https://github.com/hpsaturn>`__
- `hreintke (@hreintke) <https://github.com/hreintke>`__
- `Huub Eikens (@huubeikens) <https://github.com/huubeikens>`__
- `Petr Urbánek (@HyperReap) <https://github.com/HyperReap>`__
@ -307,6 +315,7 @@ Contributors
- `Ivan Shvedunov (@ivan4th) <https://github.com/ivan4th>`__
- `Ivan Kravets (@ivankravets) <https://github.com/ivankravets>`__
- `Ivo-tje (@Ivo-tje) <https://github.com/Ivo-tje>`__
- `Jan Harkes (@jaharkes) <https://github.com/jaharkes>`__
- `Jakob Reiter (@jakommo) <https://github.com/jakommo>`__
- `James Braid (@jamesbraid) <https://github.com/jamesbraid>`__
- `James Gao (@jamesgao) <https://github.com/jamesgao>`__
@ -354,11 +363,13 @@ Contributors
- `kalebzettl (@kalebzettl) <https://github.com/kalebzettl>`__
- `Karol Zlot (@karolzlot) <https://github.com/karolzlot>`__
- `Krasimir Nedelchev (@kaykayehnn) <https://github.com/kaykayehnn>`__
- `Krzysztof Białek (@kbialek) <https://github.com/kbialek>`__
- `kbouchard111 (@kbouchard111) <https://github.com/kbouchard111>`__
- `Keith Burzinski (@kbx81) <https://github.com/kbx81>`__
- `Robert Kiss (@kepten) <https://github.com/kepten>`__
- `Kevin O'Rourke (@kevinior) <https://github.com/kevinior>`__
- `kimonm (@kimonm) <https://github.com/kimonm>`__
- `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>`__
@ -386,6 +397,8 @@ Contributors
- `Steffen Weinreich (@lairsdragon) <https://github.com/lairsdragon>`__
- `Fredrik Lindqvist (@Landrash) <https://github.com/Landrash>`__
- `larsonmpdx (@larsonmpdx) <https://github.com/larsonmpdx>`__
- `Laszlo Gazdag (@lazlyhu) <https://github.com/lazlyhu>`__
- `lcavalli (@lcavalli) <https://github.com/lcavalli>`__
- `lein1013 (@lein1013) <https://github.com/lein1013>`__
- `Riku Lindblad (@lepinkainen) <https://github.com/lepinkainen>`__
- `Luca Gugelmann (@lgugelmann) <https://github.com/lgugelmann>`__
@ -403,6 +416,7 @@ Contributors
- `M95D (@M95D) <https://github.com/M95D>`__
- `Marc-Antoine Courteau (@macourteau) <https://github.com/macourteau>`__
- `Massimiliano Ravelli (@madron) <https://github.com/madron>`__
- `Alexandre-Jacques St-Jacques (@Maelstrom96) <https://github.com/Maelstrom96>`__
- `magnus (@magnusja) <https://github.com/magnusja>`__
- `Magnus Øverli (@magnusoverli) <https://github.com/magnusoverli>`__
- `Major Péter (@majorpeter) <https://github.com/majorpeter>`__
@ -433,6 +447,7 @@ Contributors
- `Me No Dev (@me-no-dev) <https://github.com/me-no-dev>`__
- `Alexandr Zarubkin (@me21) <https://github.com/me21>`__
- `Joseph Mearman (@Mearman) <https://github.com/Mearman>`__
- `Bas (@Mechazawa) <https://github.com/Mechazawa>`__
- `Mechotronic (@Mechotronic) <https://github.com/Mechotronic>`__
- `MeIchthys (@meichthys) <https://github.com/meichthys>`__
- `meijerwynand (@meijerwynand) <https://github.com/meijerwynand>`__
@ -460,6 +475,7 @@ Contributors
- `monkeyclass (@monkeyclass) <https://github.com/monkeyclass>`__
- `Moritz Glöckl (@moritzgloeckl) <https://github.com/moritzgloeckl>`__
- `Matthew Pettitt (@mpettitt) <https://github.com/mpettitt>`__
- `Sam Hughes (@MrEditor97) <https://github.com/MrEditor97>`__
- `Mariusz Kryński (@mrk-its) <https://github.com/mrk-its>`__
- `Ryan Matthews (@mrrsm) <https://github.com/mrrsm>`__
- `MrZetor (@MrZetor) <https://github.com/MrZetor>`__
@ -472,6 +488,7 @@ Contributors
- `Kevin Uhlir (@n0bel) <https://github.com/n0bel>`__
- `n8detar (@n8detar) <https://github.com/n8detar>`__
- `Erik Näsström (@Naesstrom) <https://github.com/Naesstrom>`__
- `H. Árkosi Róbert (@nagyrobi) <https://github.com/nagyrobi>`__
- `Oskar Napieraj (@napieraj) <https://github.com/napieraj>`__
- `Nate Lust (@natelust) <https://github.com/natelust>`__
- `ueno (@nayuta-ueno) <https://github.com/nayuta-ueno>`__
@ -480,6 +497,7 @@ Contributors
- `NMC (@ncareau) <https://github.com/ncareau>`__
- `Nebula (@nebula-it) <https://github.com/nebula-it>`__
- `needspeed (@needspeed) <https://github.com/needspeed>`__
- `NeoAcheron (@NeoAcheron) <https://github.com/NeoAcheron>`__
- `nepozs (@nepozs) <https://github.com/nepozs>`__
- `Mike Meessen (@netmikey) <https://github.com/netmikey>`__
- `nickrout (@nickrout) <https://github.com/nickrout>`__
@ -491,6 +509,7 @@ Contributors
- `Zvonimir Haramustek (@nitko12) <https://github.com/nitko12>`__
- `Nikolay Kitanov (@nkitanov) <https://github.com/nkitanov>`__
- `nldroid (@nldroid) <https://github.com/nldroid>`__
- `Nicolas Liaudat (@nliaudat) <https://github.com/nliaudat>`__
- `Niccolò Maggioni (@nmaggioni) <https://github.com/nmaggioni>`__
- `Alex (@nnmalex) <https://github.com/nnmalex>`__
- `Jan Sandbrink (@NobodysNightmare) <https://github.com/NobodysNightmare>`__
@ -591,18 +610,17 @@ Contributors
- `romerod (@romerod) <https://github.com/romerod>`__
- `Jérôme W. (@RomRider) <https://github.com/RomRider>`__
- `Robbie Page (@rorpage) <https://github.com/rorpage>`__
- `rotarykite (@rotarykite) <https://github.com/rotarykite>`__
- `rradar (@rradar) <https://github.com/rradar>`__
- `rspaargaren (@rspaargaren) <https://github.com/rspaargaren>`__
- `Rubén G. (@rubengargar) <https://github.com/rubengargar>`__
- `RubyBailey (@RubyBailey) <https://github.com/RubyBailey>`__
- `rudgr (@rudgr) <https://github.com/rudgr>`__
- `Roberto Wagner (@rwagnervm) <https://github.com/rwagnervm>`__
- `rweather (@rweather) <https://github.com/rweather>`__
- `ryanalden (@ryanalden) <https://github.com/ryanalden>`__
- `Ryan Nazaretian (@ryannazaretian) <https://github.com/ryannazaretian>`__
- `Silvio (@s1lvi0) <https://github.com/s1lvi0>`__
- `Jan Čermák (@sairon) <https://github.com/sairon>`__
- `samnewman86 (@samnewman86) <https://github.com/samnewman86>`__
- `sascha lammers (@sascha432) <https://github.com/sascha432>`__
- `Sascha (@Scarbous) <https://github.com/Scarbous>`__
- `Nils Schulte (@Schnilz) <https://github.com/Schnilz>`__
@ -615,13 +633,11 @@ Contributors
- `sethcohn (@sethcohn) <https://github.com/sethcohn>`__
- `Emanuele Tessore (@setola) <https://github.com/setola>`__
- `Abdelkader Boudih (@seuros) <https://github.com/seuros>`__
- `shaeed (@shaeed) <https://github.com/shaeed>`__
- `SharkSharp (@SharkSharp) <https://github.com/SharkSharp>`__
- `shbatm (@shbatm) <https://github.com/shbatm>`__
- `sherbang (@sherbang) <https://github.com/sherbang>`__
- `Shish (@shish) <https://github.com/shish>`__
- `SiliconAvatar (@SiliconAvatar) <https://github.com/SiliconAvatar>`__
- `sillyfrog (@sillyfrog) <https://github.com/sillyfrog>`__
- `Derek Hageman (@Sizurka) <https://github.com/Sizurka>`__
- `Stephen Tierney (@sjtrny) <https://github.com/sjtrny>`__
- `Niklas Wagner (@Skaronator) <https://github.com/Skaronator>`__
@ -629,6 +645,7 @@ Contributors
- `Luca Zimmermann (@soundstorm) <https://github.com/soundstorm>`__
- `Sourabh Jaiswal (@sourabhjaiswal) <https://github.com/sourabhjaiswal>`__
- `Philip Allgaier (@spacegaier) <https://github.com/spacegaier>`__
- `Sean Brogan (@spbrogan) <https://github.com/spbrogan>`__
- `Stephan Peijnik-Steinwender (@speijnik) <https://github.com/speijnik>`__
- `spilin (@spilin) <https://github.com/spilin>`__
- `square99 (@square99) <https://github.com/square99>`__
@ -650,6 +667,7 @@ Contributors
- `tantive (@tantive) <https://github.com/tantive>`__
- `TBobsin (@TBobsin) <https://github.com/TBobsin>`__
- `Team Super Panda (@teamsuperpanda) <https://github.com/teamsuperpanda>`__
- `Ryan Hoffman (@tekmaven) <https://github.com/tekmaven>`__
- `Tempura San (@tempura-san) <https://github.com/tempura-san>`__
- `testbughub (@testbughub) <https://github.com/testbughub>`__
- `Greg Lincoln (@tetious) <https://github.com/tetious>`__
@ -666,11 +684,13 @@ Contributors
- `Dominik Bruhn (@theomega) <https://github.com/theomega>`__
- `Simon (@theOzzieRat) <https://github.com/theOzzieRat>`__
- `Florian Gareis (@TheZoker) <https://github.com/TheZoker>`__
- `Thomas Hollstegge (@Tho85) <https://github.com/Tho85>`__
- `Thomas Klingbeil (@thomasklingbeil) <https://github.com/thomasklingbeil>`__
- `Thomas Dietrich (@ThomDietrich) <https://github.com/ThomDietrich>`__
- `Andrew Thompson (@thompsa) <https://github.com/thompsa>`__
- `Tijs-B (@Tijs-B) <https://github.com/Tijs-B>`__
- `Aidan Timson (@timmo001) <https://github.com/timmo001>`__
- `Tim Niemueller (@timn) <https://github.com/timn>`__
- `Tim P (@timpur) <https://github.com/timpur>`__
- `Tim Savage (@timsavage) <https://github.com/timsavage>`__
- `Max Efremov (@Tmin10) <https://github.com/Tmin10>`__
@ -694,6 +714,7 @@ Contributors
- `Tuckie (@Tuckie) <https://github.com/Tuckie>`__
- `Alexey Vlasov (@turbulator) <https://github.com/turbulator>`__
- `Seppel Hardt (@tuxBurner) <https://github.com/tuxBurner>`__
- `TVDLoewe (@TVDLoewe) <https://github.com/TVDLoewe>`__
- `Thorsten von Eicken (@tve) <https://github.com/tve>`__
- `Tyler Menezes (@tylermenezes) <https://github.com/tylermenezes>`__
- `ukewea (@ukewea) <https://github.com/ukewea>`__
@ -711,6 +732,7 @@ Contributors
- `Ian Wells (@wellsi) <https://github.com/wellsi>`__
- `Werner Beroux (@wernight) <https://github.com/wernight>`__
- `wifwucite (@wifwucite) <https://github.com/wifwucite>`__
- `wilberforce (@wilberforce) <https://github.com/wilberforce>`__
- `Wilmar den Ouden (@wilmardo) <https://github.com/wilmardo>`__
- `Emil Hesslow (@WizKid) <https://github.com/WizKid>`__
- `WJCarpenter (@wjcarpenter) <https://github.com/wjcarpenter>`__
@ -721,6 +743,7 @@ Contributors
- `Mike (@xsnoopy) <https://github.com/xsnoopy>`__
- `Yaroslav (@Yarikx) <https://github.com/Yarikx>`__
- `Marcin Jaworski (@yawor) <https://github.com/yawor>`__
- `ychieux (@ychieux) <https://github.com/ychieux>`__
- `Pavel (@yekm) <https://github.com/yekm>`__
- `Atsuko Ito (@yottatsa) <https://github.com/yottatsa>`__
- `Nico B (@youknow0) <https://github.com/youknow0>`__
@ -734,4 +757,4 @@ Contributors
- `ZTX18 (@ZTX18) <https://github.com/ZTX18>`__
- `Christian Zufferey (@zuzu59) <https://github.com/zuzu59>`__
*This page was last updated October 27, 2021.*
*This page was last updated November 17, 2021.*

BIN
images/cap1188.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

49
images/cse7761.svg Normal file
View File

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="261.333"
height="60"
version="1.1"
id="svg8"
sodipodi:docname="cse7761.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs12" />
<sodipodi:namedview
id="namedview10"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="4.1777075"
inkscape:cx="120.04191"
inkscape:cy="26.928644"
inkscape:window-width="2560"
inkscape:window-height="1349"
inkscape:window-x="0"
inkscape:window-y="30"
inkscape:window-maximized="1"
inkscape:current-layer="svg8" />
<path
d="M19.333.667H242c10.31 0 18.667 8.357 18.667 18.666V40c0 10.31-8.358 18.667-18.667 18.667H19.333C9.024 58.667.667 50.309.667 40V19.333C.667 9.024 9.024.667 19.333.667z"
id="path2" />
<path
d="M19.333.667H242c10.31 0 18.667 8.357 18.667 18.666V40c0 10.31-8.358 18.667-18.667 18.667H19.333C9.024 58.667.667 50.309.667 40V19.333C.667 9.024 9.024.667 19.333.667z"
fill="none"
stroke="#000"
stroke-width="1.333"
stroke-linecap="round"
stroke-linejoin="round"
stroke-miterlimit="10"
id="path4" />
<path
id="path866"
style="fill:#ffffff"
d="m 245.01812,13.6665 v 32.667 h -11.014 v -24.36 h -5.6 v -8.307 z M 34.51588,47.08 c -3.453333,0 -6.564333,-0.715667 -9.333,-2.147 -2.769333,-1.462 -4.947333,-3.484 -6.534,-6.066 -1.555333,-2.613333 -2.333,-5.569 -2.333,-8.867 0,-3.298 0.777667,-6.238 2.333,-8.82 1.586667,-2.613333 3.764667,-4.635667 6.534,-6.067 2.768667,-1.462 5.879667,-2.193 9.333,-2.193 3.173333,0 6.004333,0.56 8.493,1.68 2.489333,1.12 4.542667,2.737667 6.16,4.853 l -6.953,6.207 c -2.022,-2.551333 -4.402,-3.827 -7.14,-3.827 -2.302,0 -4.153,0.746667 -5.553,2.24 -1.4,1.462667 -2.1,3.438333 -2.1,5.927 0,2.488667 0.7,4.479667 2.1,5.973 1.4,1.462667 3.251,2.194 5.553,2.194 2.738,0 5.118,-1.275667 7.14,-3.827 l 6.953,6.207 c -1.617333,2.115333 -3.670667,3.733 -6.16,4.853 -2.488667,1.12 -5.319667,1.68 -8.493,1.68 z m 33.54,0 c -2.706667,0 -5.351,-0.295667 -7.933,-0.887 -2.551333,-0.622 -4.651333,-1.446333 -6.3,-2.473 l 3.546,-8.027 c 1.556,0.902667 3.298333,1.634 5.227,2.194 1.928667,0.528667 3.779667,0.793 5.553,0.793 1.524667,0 2.613667,-0.14 3.267,-0.42 0.653333,-0.311333 0.98,-0.762333 0.98,-1.353 0,-0.684667 -0.435667,-1.198 -1.307,-1.54 -0.84,-0.342667 -2.24,-0.716 -4.2,-1.12 -2.52,-0.529333 -4.62,-1.089333 -6.3,-1.68 -1.68,-0.622667 -3.142,-1.618333 -4.386,-2.987 -1.244667,-1.4 -1.867,-3.282333 -1.867,-5.647 0,-2.053333 0.575667,-3.92 1.727,-5.6 1.150667,-1.68 2.861667,-3.002 5.133,-3.966 2.302,-0.964667 5.086333,-1.447 8.353,-1.447 2.24,0 4.433333,0.249 6.58,0.747 2.178,0.466667 4.091333,1.166667 5.74,2.1 l -3.313,7.98 c -3.204667,-1.618 -6.238,-2.427 -9.1,-2.427 -2.831333,0 -4.247,0.684333 -4.247,2.053 0,0.653333 0.42,1.151333 1.26,1.494 0.84,0.310667 2.224667,0.652667 4.154,1.026 2.488667,0.466667 4.588667,1.011333 6.3,1.634 1.710667,0.590667 3.188333,1.570667 4.433,2.94 1.275333,1.368667 1.913,3.235333 1.913,5.6 0,2.053333 -0.575333,3.92 -1.726,5.6 -1.151333,1.648667 -2.878,2.970667 -5.18,3.966 -2.271333,0.964667 -5.040333,1.447 -8.307,1.447 z m 49.64,-9.053 v 8.306 h -27.16 V 13.667 h 26.553 v 8.306 h -15.726 V 25.8 h 13.813 v 7.933 h -13.813 v 4.294 z m 34.52,-24.36 v 6.766 l -10.873,25.9 h -12.04 l 10.36,-24.126 h -6.3 v 4.76 h -9.1 v -13.3 z m 34.1,0 v 6.766 l -10.873,25.9 h -12.04 l 10.36,-24.126 h -6.3 v 4.76 h -9.1 v -13.3 z m 23.32,11.526 c 1.99133,0 3.84233,0.435667 5.553,1.307 1.71133,0.871333 3.08033,2.100333 4.107,3.687 1.02667,1.586667 1.54,3.406667 1.54,5.46 0,2.270667 -0.591,4.277333 -1.773,6.02 -1.15133,1.742 -2.738,3.079667 -4.76,4.013 -2.02267,0.933333 -4.26267,1.4 -6.72,1.4 -3.14267,0 -5.896,-0.606667 -8.26,-1.82 -2.33333,-1.213333 -4.15333,-3.017667 -5.46,-5.413 -1.30667,-2.396 -1.96,-5.336 -1.96,-8.82 0,-3.733333 0.74667,-6.969 2.24,-9.707 1.524,-2.738 3.63933,-4.822333 6.346,-6.253 2.738,-1.431333 5.91133,-2.147 9.52,-2.147 1.96,0 3.82667,0.233333 5.6,0.7 1.77333,0.435333 3.28233,1.057667 4.527,1.867 l -3.967,7.7 c -1.61733,-1.151333 -3.59267,-1.727 -5.926,-1.727 -1.898,0 -3.46933,0.482333 -4.714,1.447 -1.21333,0.933333 -2.00667,2.302 -2.38,4.106 1.71133,-1.213333 3.87367,-1.82 6.487,-1.82 z m -2.8,14.28 c 0.99533,0 1.80433,-0.295333 2.427,-0.886 0.622,-0.591333 0.933,-1.400333 0.933,-2.427 0,-1.026667 -0.311,-1.835667 -0.933,-2.427 -0.62267,-0.622 -1.43167,-0.933 -2.427,-0.933 -0.99533,0 -1.80433,0.311 -2.427,0.933 -0.622,0.591333 -0.933,1.400333 -0.933,2.427 0,1.026667 0.311,1.835667 0.933,2.427 0.62267,0.590667 1.43167,0.886 2.427,0.886 z" />
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@ -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
@ -382,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
@ -577,6 +579,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
@ -589,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

BIN
svg2png/cse7761.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB