mirror of
https://github.com/esphome/esphome-docs.git
synced 2024-12-25 17:17:54 +01:00
commit
9bed2a2cbf
2
Doxygen
2
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.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
|
||||
|
2
Makefile
2
Makefile
@ -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
|
||||
|
||||
|
BIN
_static/changelog-2021.11.0.png
Normal file
BIN
_static/changelog-2021.11.0.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 49 KiB |
@ -1 +1 @@
|
||||
2021.10.3
|
||||
2021.11.0
|
289
changelog/2021.11.0.rst
Normal file
289
changelog/2021.11.0.rst
Normal 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 we’ll 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
|
BIN
changelog/images/configuration-url.png
Normal file
BIN
changelog/images/configuration-url.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
@ -2,7 +2,7 @@ Changelog
|
||||
=========
|
||||
|
||||
.. redirect::
|
||||
:url: /changelog/2021.10.0.html
|
||||
:url: /changelog/2021.11.0.html
|
||||
|
||||
.. toctree::
|
||||
:glob:
|
||||
|
85
components/binary_sensor/cap1188.rst
Normal file
85
components/binary_sensor/cap1188.rst
Normal 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`
|
BIN
components/binary_sensor/images/cap1188-full.jpg
Normal file
BIN
components/binary_sensor/images/cap1188-full.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 168 KiB |
@ -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:
|
||||
|
@ -42,5 +42,7 @@ See Also
|
||||
--------
|
||||
|
||||
- :doc:`wifi`
|
||||
- :doc:`improv_serial`
|
||||
- :doc:`esp32_improv`
|
||||
- :apiref:`captive_portal/captive_portal.h`
|
||||
- :ghedit:`Edit`
|
||||
|
@ -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:
|
||||
|
||||
|
@ -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:
|
||||
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
||||
|
@ -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:
|
||||
|
||||
|
38
components/esp32_camera_web_server.rst
Normal file
38
components/esp32_camera_web_server.rst
Normal 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`
|
@ -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`
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
||||
|
33
components/improv_serial.rst
Normal file
33
components/improv_serial.rst
Normal 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`
|
@ -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:
|
||||
|
@ -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 <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>``.
|
||||
|
@ -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:
|
||||
|
||||
|
@ -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
|
||||
******************************************
|
||||
|
||||
|
@ -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:
|
||||
|
||||
|
@ -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:
|
||||
|
||||
|
74
components/sensor/cse7761.rst
Normal file
74
components/sensor/cse7761.rst
Normal 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`
|
@ -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:
|
||||
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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``.
|
||||
|
@ -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::
|
||||
|
@ -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:
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
--------
|
||||
|
||||
|
@ -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"
|
||||
|
4
conf.py
4
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.3"
|
||||
release = "2021.11.0"
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
|
@ -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
|
||||
-------------
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
--------
|
||||
|
@ -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
BIN
images/cap1188.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
49
images/cse7761.svg
Normal file
49
images/cse7761.svg
Normal 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 |
@ -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
BIN
svg2png/cse7761.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
Loading…
Reference in New Issue
Block a user