Merge branch 'current' into next

This commit is contained in:
Jesse Hills 2021-07-29 19:51:02 +12:00
commit c30920a713
No known key found for this signature in database
GPG Key ID: BEAAE804EFD8E83A
65 changed files with 242 additions and 175 deletions

View File

@ -38,11 +38,15 @@ PROJECT_NAME = "ESPHome"
# could be handy for archiving the generated documentation or if some version # could be handy for archiving the generated documentation or if some version
# control system is used. # control system is used.
<<<<<<< HEAD
<<<<<<< HEAD <<<<<<< HEAD
PROJECT_NUMBER = 1.21.0-dev PROJECT_NUMBER = 1.21.0-dev
======= =======
PROJECT_NUMBER = 1.20.0 PROJECT_NUMBER = 1.20.0
>>>>>>> current >>>>>>> current
=======
PROJECT_NUMBER = 1.20.1
>>>>>>> current
# Using the PROJECT_BRIEF tag one can provide an optional one line description # 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 # 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_PATH = ../esphome
ESPHOME_REF = v1.20.0 ESPHOME_REF = v1.20.1
.PHONY: html html-strict cleanhtml deploy help webserver Makefile netlify netlify-api api netlify-dependencies svg2png copy-svg2png .PHONY: html html-strict cleanhtml deploy help webserver Makefile netlify netlify-api api netlify-dependencies svg2png copy-svg2png

View File

@ -1,5 +1,9 @@
<<<<<<< HEAD <<<<<<< HEAD
<<<<<<< HEAD
1.21.0-dev 1.21.0-dev
======= =======
1.20.0 1.20.0
>>>>>>> current >>>>>>> current
=======
1.20.1
>>>>>>> current

View File

@ -69,6 +69,15 @@ for you to read yourself. :doc:`/components/display/nextion`
- Display on_wake/on_sleep - Display on_wake/on_sleep
- Many API helpers (get_string/get_int) have been added - Many API helpers (get_string/get_int) have been added
Release 1.20.1 - July 27
------------------------
- Fix git pull for external_components :esphomepr:`2055` by :ghuser:`mmakaay`
- midea_ac: fix presets implementation :esphomepr:`2054` by :ghuser:`dudanov`
- Fixes new auto mode COOL and HEAT after :esphomepr:`1994` :esphomepr:`2053` by :ghuser:`carstenschroeder`
- Log warning about lack of support for Anova nano :esphomepr:`2063` by :ghuser:`buxtronix`
- Couple more updates for the Tuya component :esphomepr:`2065` by :ghuser:`nuttytree`
- Fix MQTT climate custom fan modes without regular ones :esphomepr:`2071` by :ghuser:`OttoWinter`
Full list of changes Full list of changes
-------------------- --------------------

View File

@ -17,7 +17,7 @@ the eight touch pads of the ESP32 as :ref:`binary sensors <esp32-touch-binary-se
# Example configuration entry # Example configuration entry
esp32_touch: esp32_touch:
setup_mode: False setup_mode: false
binary_sensor: binary_sensor:
- platform: esp32_touch - platform: esp32_touch
@ -131,7 +131,7 @@ to make the validator happy, we are going to find good thresholds in a moment an
# Example configuration entry for finding threshold values # Example configuration entry for finding threshold values
esp32_touch: esp32_touch:
setup_mode: True setup_mode: true
binary_sensor: binary_sensor:
- platform: esp32_touch - platform: esp32_touch
@ -148,7 +148,7 @@ touch/non-touch events.
:align: center :align: center
Finally, put your threshold parameter in the configuration. Do not forget to disable the ``setup_mode`` Finally, put your threshold parameter in the configuration. Do not forget to disable the ``setup_mode``
option again by setting it to ``False``. Otherwise you will end up spamming the logs and slowing the device option again by setting it to ``false``. Otherwise you will end up spamming the logs and slowing the device
down. down.
See Also See Also

View File

@ -60,7 +60,7 @@ sensor:
- platform: gpio - platform: gpio
pin: pin:
number: D2 number: D2
inverted: True inverted: true
name: ... name: ...
Debouncing Values Debouncing Values

View File

@ -7,7 +7,7 @@ Nextion Binary Sensor Component
:description: Instructions for setting up Nextion binary sensor. :description: Instructions for setting up Nextion binary sensor.
:image: nextion.jpg :image: nextion.jpg
The ``nextion`` binary sensor platform supports the many switched components in the Nextion as well as integer variables (>0 == True). It can be a component or variable in the Nextion display. The ``nextion`` binary sensor platform supports the many switched components in the Nextion as well as integer variables (>0 == true). It can be a component or variable in the Nextion display.
It is best to set the components vscope to global in the Nextion Editor. This way the component will be available if the page is shown or not. It is best to set the components vscope to global in the Nextion Editor. This way the component will be available if the page is shown or not.
See :doc:`/components/display/nextion` for setting up the display See :doc:`/components/display/nextion` for setting up the display

View File

@ -41,7 +41,7 @@ The :ref:`SPI <spi>` is required to be set up in your configuration for this sen
calibration_x_max: 280 calibration_x_max: 280
calibration_y_min: 340 calibration_y_min: 340
calibration_y_max: 3860 calibration_y_max: 3860
swap_x_y: False swap_x_y: false
binary_sensor: binary_sensor:
- platform: xpt2046 - platform: xpt2046
@ -220,7 +220,7 @@ That means that the minimum raw x is 281, maximum 3848, minimum y 347 and maximu
Identify which raw value is the display's x direction and what the y one. In our case Identify which raw value is the display's x direction and what the y one. In our case
moving right decreases the x raw value and going down increases the y one so the axes moving right decreases the x raw value and going down increases the y one so the axes
match and we *don't* need to use ``swap_x_y``. If the raw x is the display's y, match and we *don't* need to use ``swap_x_y``. If the raw x is the display's y,
use ``swap_x_y = True``. use ``swap_x_y = true``.
If one of the coordinates goes in the "wrong" direction it needs to be inverted. If one of the coordinates goes in the "wrong" direction it needs to be inverted.
The inversion is performed by swapping the minimum and maximum values. In our The inversion is performed by swapping the minimum and maximum values. In our

View File

@ -46,7 +46,7 @@ Each canbus platform extends this configuration schema.
can_id: 4 can_id: 4
on_frame: on_frame:
- can_id: 500 - can_id: 500
use_extended_id: False use_extended_id: false
then: then:
- lambda: |- - lambda: |-
std::string b(x.begin(), x.end()); std::string b(x.begin(), x.end());
@ -56,8 +56,8 @@ Configuration variables:
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. - **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- **can_id** (**Required**, integer): default *can id* used for transmitting frames. - **can_id** (**Required**, integer): default *can id* used for transmitting frames.
- **use_extended_id** (*Optional*, boolean): default *False* identifies the type of *can_id*: - **use_extended_id** (*Optional*, boolean): default *false* identifies the type of *can_id*:
*False*: Standard 11 bits IDs, *True*: Extended 29 bits ID *false*: Standard 11 bits IDs, *true*: Extended 29 bits ID
- **bit_rate** (*Optional*, enum): One of the supported bitrates. Defaults to ``125KBPS``. - **bit_rate** (*Optional*, enum): One of the supported bitrates. Defaults to ``125KBPS``.
- 5KBPS - 5KBPS
@ -138,8 +138,8 @@ Configuration variables:
the frame. Not needed if you are using only 1 can bus. the frame. Not needed if you are using only 1 can bus.
- **can_id** (*Optional*, int): Allows to override the can id configured in - **can_id** (*Optional*, int): Allows to override the can id configured in
the can bus device. the can bus device.
- **use_extended_id** (*Optional*, boolean): default *False* identifies the type of *can_id*: - **use_extended_id** (*Optional*, boolean): default *false* identifies the type of *can_id*:
*False*: Standard 11 Bit IDs, *True*: Extended 29Bit ID *false*: Standard 11 Bit IDs, *true*: Extended 29Bit ID
MCP2515 Component MCP2515 Component
----------------- -----------------
@ -221,7 +221,7 @@ Standard IDs and Extended IDs can coexist on the same segment.
then: then:
- canbus.send: - canbus.send:
# Extended ID explicit # Extended ID explicit
use_extended_id: True use_extended_id: true
can_id: 0x100 can_id: 0x100
data: [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08] data: [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08]
- canbus.send: - canbus.send:
@ -235,11 +235,11 @@ Standard IDs and Extended IDs can coexist on the same segment.
spi_id: McpSpi spi_id: McpSpi
cs_pin: GPIO14 cs_pin: GPIO14
can_id: 0x1fff can_id: 0x1fff
use_extended_id: True use_extended_id: true
bit_rate: 125kbps bit_rate: 125kbps
on_frame: on_frame:
- can_id: 0x123 - can_id: 0x123
use_extended_id: True use_extended_id: true
then: then:
- lambda: |- - lambda: |-
std::string b(x.begin(), x.end()); std::string b(x.begin(), x.end());

View File

@ -68,8 +68,8 @@ Configuration variables:
- **name** (**Required**, string): The name for the climate device. - **name** (**Required**, string): The name for the climate device.
- **sensor** (*Optional*, :ref:`config-id`): The sensor that is used to measure the ambient - **sensor** (*Optional*, :ref:`config-id`): The sensor that is used to measure the ambient
temperature. This is only for reporting the current temperature in the frontend. temperature. This is only for reporting the current temperature in the frontend.
- **supports_cool** (*Optional*, boolean): Enables setting cooling mode for this climate device. Defaults to ``True``. - **supports_cool** (*Optional*, boolean): Enables setting cooling mode for this climate device. Defaults to ``true``.
- **supports_heat** (*Optional*, boolean): Enables setting heating mode for this climate device. Defaults to ``True``. - **supports_heat** (*Optional*, boolean): Enables setting heating mode for this climate device. Defaults to ``true``.
- **receiver_id** (*Optional*, :ref:`config-id`): The id of the remote_receiver if this platform supports - **receiver_id** (*Optional*, :ref:`config-id`): The id of the remote_receiver if this platform supports
receiver. see: :ref:`ir-receiver_id`. receiver. see: :ref:`ir-receiver_id`.
- All other options from :ref:`Climate <config-climate>`. - All other options from :ref:`Climate <config-climate>`.
@ -102,7 +102,7 @@ IR receiver.
id: rcvr id: rcvr
pin: pin:
number: GPIO14 number: GPIO14
inverted: True inverted: true
mode: INPUT_PULLUP mode: INPUT_PULLUP
# high 55% tolerance is recommended for some remote control units # high 55% tolerance is recommended for some remote control units
tolerance: 55% tolerance: 55%

View File

@ -91,14 +91,14 @@ Configuration variables:
- **name** (**Required**, string): The name of the sensor. - **name** (**Required**, string): The name of the sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas. - **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`. - All other options from :ref:`Sensor <config-sensor>`.
- **beeper** (*Optional*, boolean): Beeper feedback on command. Defaults to ``False``. - **beeper** (*Optional*, boolean): Beeper feedback on command. Defaults to ``false``.
- **custom_fan_modes** (*Optional*, list): List of supported custom fan modes. Possible values are: SILENT, TURBO. - **custom_fan_modes** (*Optional*, list): List of supported custom fan modes. Possible values are: SILENT, TURBO.
- **preset_eco** (*Optional*, boolean): ECO preset support. Defaults to ``False``. - **preset_eco** (*Optional*, boolean): ECO preset support. Defaults to ``false``.
- **preset_sleep** (*Optional*, boolean): SLEEP preset support. Defaults to ``False``. - **preset_sleep** (*Optional*, boolean): SLEEP preset support. Defaults to ``false``.
- **preset_boost** (*Optional*, boolean): BOOST preset support. Defaults to ``False``. - **preset_boost** (*Optional*, boolean): BOOST preset support. Defaults to ``false``.
- **custom_presets** (*Optional*, list): List of supported custom presets. Possible values are: FREEZE_PROTECTION. - **custom_presets** (*Optional*, list): List of supported custom presets. Possible values are: FREEZE_PROTECTION.
- **swing_horizontal** (*Optional*, boolean): Enable **swing horizontal** option. Defaults to ``False``. - **swing_horizontal** (*Optional*, boolean): Enable **swing horizontal** option. Defaults to ``false``.
- **swing_both** (*Optional*, boolean): Enable **swing both** option. Defaults to ``False``. - **swing_both** (*Optional*, boolean): Enable **swing both** option. Defaults to ``false``.
- All other options from :ref:`Climate <config-climate>`. - All other options from :ref:`Climate <config-climate>`.
Configuration variables of midea-dongle component: Configuration variables of midea-dongle component:
@ -108,7 +108,7 @@ Configuration variables of midea-dongle component:
- **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :doc:`../uart` if you want - **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :doc:`../uart` if you want
to use multiple UART buses. to use multiple UART buses.
- **strength_icon** (*Optional*, boolean): Set if your device have signal strength icon - **strength_icon** (*Optional*, boolean): Set if your device have signal strength icon
and you want to use this feature. By default, on connected state, icon show maximum signal quality. Defaults to ``False``. and you want to use this feature. By default, on connected state, icon show maximum signal quality. Defaults to ``false``.
Acknowledgments: Acknowledgments:

View File

@ -45,8 +45,8 @@ Configuration variables:
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. - **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- **name** (**Required**, string): The name of the climate device. - **name** (**Required**, string): The name of the climate device.
- **supports_heat** (*Optional*, boolean): Specifies if the device has a heating mode. Defaults to ``True``. - **supports_heat** (*Optional*, boolean): Specifies if the device has a heating mode. Defaults to ``true``.
- **supports_cool** (*Optional*, boolean): Specifies if the device has a cooling mode. Defaults to ``False``. - **supports_cool** (*Optional*, boolean): Specifies if the device has a cooling mode. Defaults to ``false``.
- **switch_datapoint** (**Required**, int): The datapoint id number of the climate switch. - **switch_datapoint** (**Required**, int): The datapoint id number of the climate switch.
- **active_state_datapoint** (*Optional*, int): The datapoint id number of the active state. - **active_state_datapoint** (*Optional*, int): The datapoint id number of the active state.
- **active_state_heating_value** (*Optional*, int): The active state datapoint value the device reports when heating. Defaults to ``1``. - **active_state_heating_value** (*Optional*, int): The active state datapoint value the device reports when heating. Defaults to ``1``.

View File

@ -51,10 +51,10 @@ Configuration variables:
- **has_built_in_endstop** (*Optional*, boolean): Indicates that the cover has built in end stop - **has_built_in_endstop** (*Optional*, boolean): Indicates that the cover has built in end stop
detectors. In this configuration the ``stop_action`` is not performed when the open or close detectors. In this configuration the ``stop_action`` is not performed when the open or close
time is completed and if the cover is commanded to open or close the corresponding actions time is completed and if the cover is commanded to open or close the corresponding actions
will be performed without checking current state. Defaults to ``False``. will be performed without checking current state. Defaults to ``false``.
- **assumed_state** (*Optional*, boolean): Whether the true state of the cover is not known. - **assumed_state** (*Optional*, boolean): Whether the true state of the cover is not known.
This will make the Home Assistant frontend show buttons for both OPEN and CLOSE actions, instead This will make the Home Assistant frontend show buttons for both OPEN and CLOSE actions, instead
of hiding or disabling one of them. Defaults to ``True``. of hiding or disabling one of them. Defaults to ``true``.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. - **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- All other options from :ref:`Cover <config-cover>`. - All other options from :ref:`Cover <config-cover>`.

View File

@ -109,7 +109,7 @@ Configuration options:
- **file** (*Optional*, int, :ref:`templatable <config-templatable>`): The global track - **file** (*Optional*, int, :ref:`templatable <config-templatable>`): The global track
number (from all tracks in the device). If not specified plays the first track. number (from all tracks in the device). If not specified plays the first track.
- **loop** (*Optional*, bool, :ref:`templatable <config-templatable>`): Repeats playing - **loop** (*Optional*, bool, :ref:`templatable <config-templatable>`): Repeats playing
the same track. Defaults to ``False``. the same track. Defaults to ``false``.
``dfplayer.play_folder`` Action ``dfplayer.play_folder`` Action
------------------------------- -------------------------------
@ -147,7 +147,7 @@ Configuration options:
- **file** (*Optional*, int, :ref:`templatable <config-templatable>`): The file number - **file** (*Optional*, int, :ref:`templatable <config-templatable>`): The file number
inside the folder to play. Optional only if ``loop`` is not set. inside the folder to play. Optional only if ``loop`` is not set.
- **loop** (*Optional*, bool, :ref:`templatable <config-templatable>`): Repeats playing - **loop** (*Optional*, bool, :ref:`templatable <config-templatable>`): Repeats playing
all files in the folder. Causes ``file`` to be ignored. Defaults to ``False``. all files in the folder. Causes ``file`` to be ignored. Defaults to ``false``.
``dfplayer.set_device`` Action ``dfplayer.set_device`` Action
@ -369,7 +369,7 @@ Sample code
then: then:
- dfplayer.play_folder: - dfplayer.play_folder:
folder: !lambda 'return folder;' folder: !lambda 'return folder;'
loop: True loop: true
- service: dfplayer_set_device_tf - service: dfplayer_set_device_tf
then: then:

View File

@ -70,8 +70,8 @@ Configuration variables:
************************ ************************
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. - **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- **greyscale** (*Optional*, boolean): Makes the screen display 3 bit colors. Defaults to ``False`` - **greyscale** (*Optional*, boolean): Makes the screen display 3 bit colors. Defaults to ``false``
- **partial_updating** (*Optional*, boolean): Makes the screen update partially, which is faster, but leaves burnin. Defaults to ``False`` - **partial_updating** (*Optional*, boolean): Makes the screen update partially, which is faster, but leaves burnin. Defaults to ``false``
- **full_update_every** (*Optional*, int): When partial updating is enabled, forces a full screen update after chosen number of updates. Defaults to ``10`` - **full_update_every** (*Optional*, int): When partial updating is enabled, forces a full screen update after chosen number of updates. Defaults to ``10``
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display. - **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
See :ref:`display-engine` for more information. See :ref:`display-engine` for more information.

View File

@ -53,7 +53,7 @@ Configuration variables:
- **spi_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`SPI Component <spi>` if you want - **spi_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`SPI Component <spi>` if you want
to use multiple SPI buses. to use multiple SPI buses.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. - **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- **reverse_enable** (*Optional*, boolean): For some displays the order of the chips is reversed so you'll see "56781234" instead of "12345678". This option will adjust the output to compensate. Defaults to ``False``. - **reverse_enable** (*Optional*, boolean): For some displays the order of the chips is reversed so you'll see "56781234" instead of "12345678". This option will adjust the output to compensate. Defaults to ``false``.
.. _display-max7219_lambda: .. _display-max7219_lambda:

View File

@ -46,7 +46,7 @@ Configuration variables:
``4``. ``4``.
- **rotate_chip** (*Optional*): Rotates every 8x8 chip. Valid values are ``0``, ``90``, ``180`` and ``270``. - **rotate_chip** (*Optional*): Rotates every 8x8 chip. Valid values are ``0``, ``90``, ``180`` and ``270``.
Defaults to ``0``. Defaults to ``0``.
- **scroll_enable** (*Optional*, boolean): Turn scroll mode on when content does not fit. Defaults to ``True``. - **scroll_enable** (*Optional*, boolean): Turn scroll mode on when content does not fit. Defaults to ``true``.
- **scroll_mode** (*Optional*): Set the scroll mode. One of ``CONTINUOUS`` or ``STOP``. Defaults to ``CONTINUOUS`` - **scroll_mode** (*Optional*): Set the scroll mode. One of ``CONTINUOUS`` or ``STOP``. Defaults to ``CONTINUOUS``
- ``CONTINUOUS``: Always scrolls and the text repeats continuously, you might need to add some - ``CONTINUOUS``: Always scrolls and the text repeats continuously, you might need to add some
@ -57,7 +57,7 @@ Configuration variables:
- **scroll_delay** (*Optional*, :ref:`config-time`): Set delay time before scroll starts. Defaults to ``1s``. - **scroll_delay** (*Optional*, :ref:`config-time`): Set delay time before scroll starts. Defaults to ``1s``.
- **scroll_dwell** (*Optional*, :ref:`config-time`): Sets the wait time at the end of the scroll before starting - **scroll_dwell** (*Optional*, :ref:`config-time`): Sets the wait time at the end of the scroll before starting
over. This is only used in mode ``STOP``. Defaults to ``1s``. over. This is only used in mode ``STOP``. Defaults to ``1s``.
- **reverse_enable** (*Optional*, boolean): For some displays the order of the displays is reversed ("DCBA"). This option will reverse the display to ("ABCD") again. Defaults to ``False``. - **reverse_enable** (*Optional*, boolean): For some displays the order of the displays is reversed ("DCBA"). This option will reverse the display to ("ABCD") again. Defaults to ``false``.
- **intensity** (*Optional*, integer): The intensity with which the MAX7219 should drive the outputs. Range is - **intensity** (*Optional*, integer): The intensity with which the MAX7219 should drive the outputs. Range is
from ``0``, least intense to ``15`` the brightest. Defaults to ``15``. from ``0``, least intense to ``15`` the brightest. Defaults to ``15``.
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the - **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the

View File

@ -51,15 +51,15 @@ Configuration variables:
- **device_height** (**Required**, int): The device height. 160 is default - **device_height** (**Required**, int): The device height. 160 is default
- **col_start** (**Required**, int): The device height. 160 is default - **col_start** (**Required**, int): The device height. 160 is default
- **row_start** (**Required**, int): The device height. 160 is default - **row_start** (**Required**, int): The device height. 160 is default
- **eight_bit_color** (*Optional*, "True/False" ): 8bit mode. Default is False. This saves 50% of the buffer required for the display. - **eight_bit_color** (*Optional*, "true/false" ): 8bit mode. Default is false. This saves 50% of the buffer required for the display.
- **reset_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The RESET pin. - **reset_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The RESET pin.
Memory notes: Memory notes:
************* *************
- 8Bit color saves 50% of the buffer required. - 8Bit color saves 50% of the buffer required.
- eightbitcolor: True 160x128 = 20480 *Important for memory constrained devices* - ``eight_bit_color: true`` 160x128 = 20480 *Important for memory constrained devices*
- eightbitcolor: False 160x128x2 = 40960 - ``eight_bit_color: false`` 160x128x2 = 40960
Models: Models:

View File

@ -52,7 +52,7 @@ Advanced options:
to include in the project. See `platformio lib install <https://docs.platformio.org/en/latest/userguide/lib/cmd_install.html>`__. to include in the project. See `platformio lib install <https://docs.platformio.org/en/latest/userguide/lib/cmd_install.html>`__.
- **comment** (*Optional*, string): Additional text information about this node. Only for display in UI. - **comment** (*Optional*, string): Additional text information about this node. Only for display in UI.
- **name_add_mac_suffix** (*Optional*, boolean): Appends the last 6 bytes of the mac address of the device to - **name_add_mac_suffix** (*Optional*, boolean): Appends the last 6 bytes of the mac address of the device to
the name in the form ``<name>-aabbcc``. Defaults to ``False``. the name in the form ``<name>-aabbcc``. Defaults to ``false``.
See :ref:`esphome-mac_suffix`. See :ref:`esphome-mac_suffix`.
- **project** (*Optional*): ESPHome Creator's Project information. See :ref:`esphome-creators_project`. - **project** (*Optional*): ESPHome Creator's Project information. See :ref:`esphome-creators_project`.

View File

@ -22,7 +22,7 @@ connecting the wires from each device back to the two I²C pins on the ESP.
i2c: i2c:
sda: 21 sda: 21
scl: 22 scl: 22
scan: True scan: true
id: bus_a id: bus_a
Configuration variables: Configuration variables:
@ -34,7 +34,7 @@ Configuration variables:
Defaults to the default of your board (usually GPIO22 for ESP32 and Defaults to the default of your board (usually GPIO22 for ESP32 and
GPIO5 for ESP8266). GPIO5 for ESP8266).
- **scan** (*Optional*, boolean): If ESPHome should do a search of the I²C address space on startup. - **scan** (*Optional*, boolean): If ESPHome should do a search of the I²C address space on startup.
Defaults to ``True``. Defaults to ``true``.
- **frequency** (*Optional*, float): Set the frequency the I²C bus should operate on. - **frequency** (*Optional*, float): Set the frequency the I²C bus should operate on.
Defaults to ``50kHz``. Values are ``50kHz``, ``100kHz``, ``200kHz``, ... ``800kHz`` Defaults to ``50kHz``. Values are ``50kHz``, ``100kHz``, ``200kHz``, ... ``800kHz``
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID for this I²C bus if you need multiple I²C buses. - **id** (*Optional*, :ref:`config-id`): Manually specify the ID for this I²C bus if you need multiple I²C buses.
@ -50,11 +50,11 @@ Configuration variables:
- id: bus_a - id: bus_a
sda: 13 sda: 13
scl: 16 scl: 16
scan: True scan: true
- id: bus_b - id: bus_b
sda: 14 sda: 14
scl: 15 scl: 15
scan: True scan: true
# Sensors should be specified as follows # Sensors should be specified as follows
- platform: bme680 - platform: bme680
i2c_id: bus_b i2c_id: bus_b

View File

@ -459,15 +459,15 @@ This effect cycles through a list of colors with specific durations.
- strobe: - strobe:
name: Strobe Effect With Custom Values name: Strobe Effect With Custom Values
colors: colors:
- state: True - state: true
brightness: 100% brightness: 100%
red: 100% red: 100%
green: 90% green: 90%
blue: 0% blue: 0%
duration: 500ms duration: 500ms
- state: False - state: false
duration: 250ms duration: 250ms
- state: True - state: true
brightness: 100% brightness: 100%
red: 0% red: 0%
green: 100% green: 100%
@ -479,7 +479,7 @@ Configuration variables:
- **name** (*Optional*, string): The name of the effect. Defaults to ``Strobe``. - **name** (*Optional*, string): The name of the effect. Defaults to ``Strobe``.
- **colors** (*Optional*, list): A list of colors to cycle through. Defaults to a quick cycle between ON and OFF. - **colors** (*Optional*, list): A list of colors to cycle through. Defaults to a quick cycle between ON and OFF.
- **state** (*Optional*, boolean): The ON/OFF state to show. Defaults to ``True``. - **state** (*Optional*, boolean): The ON/OFF state to show. Defaults to ``true``.
- **brightness** (*Optional*, percentage): The brightness of the light. Defaults to ``100%``. - **brightness** (*Optional*, percentage): The brightness of the light. Defaults to ``100%``.
- **red** (*Optional*, percentage): The percentage that the red color should be on for RGB lights. Defaults to ``100%``. - **red** (*Optional*, percentage): The percentage that the red color should be on for RGB lights. Defaults to ``100%``.
- **green** (*Optional*, percentage): The percentage that the green color should be on for RGB lights. Defaults to ``100%``. - **green** (*Optional*, percentage): The percentage that the green color should be on for RGB lights. Defaults to ``100%``.
@ -603,7 +603,7 @@ the strip and shifts them forward every ``add_led_interval``.
blue: 0% blue: 0%
num_leds: 1 num_leds: 1
add_led_interval: 100ms add_led_interval: 100ms
reverse: False reverse: false
Configuration variables: Configuration variables:
@ -614,13 +614,13 @@ Configuration variables:
- **red** (*Optional*, percentage): The percentage the red color channel should be on. Defaults to ``100%``. - **red** (*Optional*, percentage): The percentage the red color channel should be on. Defaults to ``100%``.
- **green** (*Optional*, percentage): The percentage the green color channel should be on. Defaults to ``100%``. - **green** (*Optional*, percentage): The percentage the green color channel should be on. Defaults to ``100%``.
- **blue** (*Optional*, percentage): The percentage the blue color channel should be on. Defaults to ``100%``. - **blue** (*Optional*, percentage): The percentage the blue color channel should be on. Defaults to ``100%``.
- **random** (*Optional*, boolean): If set to ``True``, will overwrite the RGB colors by a new, randomly-chosen - **random** (*Optional*, boolean): If set to ``true``, will overwrite the RGB colors by a new, randomly-chosen
color each time. Defaults to ``False``. color each time. Defaults to ``false``.
- **num_leds** (*Optional*, int): The number of leds of this type to have before moving on to the next color. - **num_leds** (*Optional*, int): The number of leds of this type to have before moving on to the next color.
- **add_led_interval** (*Optional*, :ref:`config-time`): The interval with which to shift in new leds at the - **add_led_interval** (*Optional*, :ref:`config-time`): The interval with which to shift in new leds at the
beginning of the strip. Defaults to ``100ms``. beginning of the strip. Defaults to ``100ms``.
- **reverse** (*Optional*, boolean): Whether to reverse the direction of the color wipe. Defaults to ``False``. - **reverse** (*Optional*, boolean): Whether to reverse the direction of the color wipe. Defaults to ``false``.
Addressable Scan Effect Addressable Scan Effect
*********************** ***********************

View File

@ -67,7 +67,7 @@ the RGB channels to maximum whilst wanting a white light will have an undesired
configuration variable is available that prevents the RGB leds and white leds from being turned on at the same configuration variable is available that prevents the RGB leds and white leds from being turned on at the same
time: ``color_interlock``. time: ``color_interlock``.
Setting this variable to ``True`` will automatically turn off the RGB leds when the white value is non-zero, or Setting this variable to ``true`` will automatically turn off the RGB leds when the white value is non-zero, or
when the color is set to white (equal values for red, green and blue). When a different color is set, or the when the color is set to white (equal values for red, green and blue). When a different color is set, or the
color brightness is raised above 0%, the white leds are automatically turned off. color brightness is raised above 0%, the white leds are automatically turned off.

View File

@ -37,7 +37,7 @@ The MCP23008 component (`datasheet <http://ww1.microchip.com/downloads/en/device
# Use pin number 0 # Use pin number 0
number: 0 number: 0
mode: OUTPUT mode: OUTPUT
inverted: False inverted: false
# Individual inputs # Individual inputs
binary_sensor: binary_sensor:
@ -49,7 +49,7 @@ The MCP23008 component (`datasheet <http://ww1.microchip.com/downloads/en/device
number: 1 number: 1
# One of INPUT or INPUT_PULLUP # One of INPUT or INPUT_PULLUP
mode: INPUT mode: INPUT
inverted: False inverted: false
Configuration variables: Configuration variables:
************************ ************************
@ -68,7 +68,7 @@ Pin configuration variables:
- **interrupt** (*Optional*): Set this pin to trigger the INT pin on the component. Can be one of ``CHANGE``, ``RISING``, ``FALLING``. - **interrupt** (*Optional*): Set this pin to trigger the INT pin on the component. Can be one of ``CHANGE``, ``RISING``, ``FALLING``.
- **number** (**Required**, integer): The pin number. - **number** (**Required**, integer): The pin number.
- **inverted** (*Optional*, boolean): If all read and written values - **inverted** (*Optional*, boolean): If all read and written values
should be treated as inverted. Defaults to ``False``. should be treated as inverted. Defaults to ``false``.
- **mode** (*Optional*, string): A pin mode to set for the pin at. One of ``INPUT`` or ``OUTPUT``. - **mode** (*Optional*, string): A pin mode to set for the pin at. One of ``INPUT`` or ``OUTPUT``.
.. _mcp23016-label: .. _mcp23016-label:
@ -99,7 +99,7 @@ has 16 GPIOs and can be configured the same way than the other variants.
# Use pin number 0 # Use pin number 0
number: 0 number: 0
mode: OUTPUT mode: OUTPUT
inverted: False inverted: false
# Individual inputs # Individual inputs
binary_sensor: binary_sensor:
@ -110,7 +110,7 @@ has 16 GPIOs and can be configured the same way than the other variants.
# Use pin number 1 # Use pin number 1
number: 1 number: 1
mode: INPUT mode: INPUT
inverted: False inverted: false
Configuration variables: Configuration variables:
@ -158,7 +158,7 @@ binary sensor or GPIO switch.
# Use pin number 0 # Use pin number 0
number: 0 number: 0
mode: OUTPUT mode: OUTPUT
inverted: False inverted: false
# Individual inputs # Individual inputs
binary_sensor: binary_sensor:
@ -170,7 +170,7 @@ binary sensor or GPIO switch.
number: 1 number: 1
# One of INPUT or INPUT_PULLUP # One of INPUT or INPUT_PULLUP
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: False inverted: false
Configuration variables: Configuration variables:
************************ ************************

View File

@ -39,7 +39,7 @@ The MCP23S08 component (`datasheet <http://ww1.microchip.com/downloads/en/Device
number: 0 number: 0
# One of INPUT, INPUT_PULLUP or OUTPUT # One of INPUT, INPUT_PULLUP or OUTPUT
mode: OUTPUT mode: OUTPUT
inverted: False inverted: false
# Individual inputs # Individual inputs
binary_sensor: binary_sensor:
@ -51,7 +51,7 @@ The MCP23S08 component (`datasheet <http://ww1.microchip.com/downloads/en/Device
number: 1 number: 1
# One of INPUT or INPUT_PULLUP # One of INPUT or INPUT_PULLUP
mode: INPUT mode: INPUT
inverted: False inverted: false
Configuration variables: Configuration variables:
************************ ************************
@ -104,7 +104,7 @@ binary sensor or GPIO switch.
# Use pin number 0 # Use pin number 0
number: 0 number: 0
mode: OUTPUT mode: OUTPUT
inverted: False inverted: false
# Individual inputs # Individual inputs
binary_sensor: binary_sensor:
@ -116,7 +116,7 @@ binary sensor or GPIO switch.
number: 1 number: 1
# One of INPUT or INPUT_PULLUP # One of INPUT or INPUT_PULLUP
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: False inverted: false
Configuration variables: Configuration variables:
************************ ************************

View File

@ -38,10 +38,10 @@ Configuration variables:
- **client_id** (*Optional*, string): The client id to use for opening - **client_id** (*Optional*, string): The client id to use for opening
connections. See :ref:`mqtt-defaults` for more information. connections. See :ref:`mqtt-defaults` for more information.
- **discovery** (*Optional*, boolean): If Home Assistant automatic - **discovery** (*Optional*, boolean): If Home Assistant automatic
discovery should be enabled. Defaults to ``True``. discovery should be enabled. Defaults to ``true``.
- **discovery_retain** (*Optional*, boolean): Whether to retain MQTT - **discovery_retain** (*Optional*, boolean): Whether to retain MQTT
discovery messages so that entities are added automatically on Home discovery messages so that entities are added automatically on Home
Assistant restart. Defaults to ``True``. Assistant restart. Defaults to ``true``.
- **discovery_prefix** (*Optional*, string): The prefix to use for Home - **discovery_prefix** (*Optional*, string): The prefix to use for Home
Assistants MQTT discovery. Should not contain trailing slash. Assistants MQTT discovery. Should not contain trailing slash.
Defaults to ``homeassistant``. Defaults to ``homeassistant``.
@ -91,7 +91,7 @@ It is used in several places like last will and birth messages or MQTT log optio
topic: topic/to/send/to topic: topic/to/send/to
payload: online payload: online
qos: 0 qos: 0
retain: True retain: true
Configuration options: Configuration options:
@ -103,7 +103,7 @@ Configuration options:
Service <https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels>`__ Service <https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels>`__
level of the topic. Defaults to 0. level of the topic. Defaults to 0.
- **retain** (*Optional*, boolean): If the published message should - **retain** (*Optional*, boolean): If the published message should
have a retain flag on or not. Defaults to ``True``. have a retain flag on or not. Defaults to ``true``.
The ``log_topic`` has an additional configuration option: The ``log_topic`` has an additional configuration option:
@ -126,7 +126,7 @@ discovery in your Home Assistant configuration with the following:
# Example Home Assistant configuration.yaml entry # Example Home Assistant configuration.yaml entry
mqtt: mqtt:
broker: ... broker: ...
discovery: True discovery: true
And that should already be it 🎉 All devices defined through ESPHome should show up automatically And that should already be it 🎉 All devices defined through ESPHome should show up automatically
in the entities section of Home Assistant. in the entities section of Home Assistant.
@ -253,8 +253,8 @@ MQTT can have some overrides for specific options.
name: "Component Name" name: "Component Name"
# Optional variables: # Optional variables:
retain: True retain: true
discovery: True discovery: true
availability: availability:
topic: livingroom/status topic: livingroom/status
payload_available: online payload_available: online
@ -267,7 +267,7 @@ Configuration variables:
- **name** (**Required**, string): The name to use for the MQTT - **name** (**Required**, string): The name to use for the MQTT
Component. Component.
- **retain** (*Optional*, boolean): If all MQTT state messages should - **retain** (*Optional*, boolean): If all MQTT state messages should
be retained. Defaults to ``True``. be retained. Defaults to ``true``.
- **discovery** (*Optional*, boolean): Manually enable/disable - **discovery** (*Optional*, boolean): Manually enable/disable
discovery for a component. Defaults to the global default. discovery for a component. Defaults to the global default.
- **availability** (*Optional*): Manually set what should be sent to - **availability** (*Optional*): Manually set what should be sent to
@ -447,7 +447,7 @@ Configuration options:
Service <https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels>`__ Service <https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels>`__
level of the topic. Defaults to 0. level of the topic. Defaults to 0.
- **retain** (*Optional*, boolean, :ref:`templatable <config-templatable>`): If the published message should - **retain** (*Optional*, boolean, :ref:`templatable <config-templatable>`): If the published message should
have a retain flag on or not. Defaults to ``False``. have a retain flag on or not. Defaults to ``false``.
.. note:: .. note::
@ -498,7 +498,7 @@ Configuration options:
Service <https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels>`__ Service <https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels>`__
level of the topic. Defaults to 0. level of the topic. Defaults to 0.
- **retain** (*Optional*, boolean): If the published message should - **retain** (*Optional*, boolean): If the published message should
have a retain flag on or not. Defaults to ``False``. have a retain flag on or not. Defaults to ``false``.
.. note:: .. note::

View File

@ -41,7 +41,7 @@ Configuration variables:
restored with ``restore_value``. restored with ``restore_value``.
Cannot be used with ``lambda``. Defaults to ``min_value``. Cannot be used with ``lambda``. Defaults to ``min_value``.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. - **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- All other options from :ref:`Sensor <config-number>`. - All other options from :ref:`Number <config-number>`.
``number.set`` Action ``number.set`` Action
---------------------------------- ----------------------------------

View File

@ -21,14 +21,14 @@ Logging+WiFi+OTA are initialized, so that you can upload a new binary.
# Example configuration entry # Example configuration entry
ota: ota:
safe_mode: True safe_mode: true
password: VERYSECURE password: VERYSECURE
Configuration variables: Configuration variables:
------------------------ ------------------------
- **safe_mode** (*Optional*, boolean): Whether to enable safe mode. - **safe_mode** (*Optional*, boolean): Whether to enable safe mode.
Defaults to ``True``. Defaults to ``true``.
- **password** (*Optional*, string): The password to use for updates. - **password** (*Optional*, string): The password to use for updates.
- **port** (*Optional*, int): The port to use for OTA updates. Defaults - **port** (*Optional*, int): The port to use for OTA updates. Defaults
to ``3232`` for the ESP32 and ``8266`` for the ESP8266. to ``3232`` for the ESP32 and ``8266`` for the ESP8266.

View File

@ -62,7 +62,7 @@ Configuration variables:
- **init_with_half_cycle** (*Optional*, boolean): Will send the first full half AC cycle - **init_with_half_cycle** (*Optional*, boolean): Will send the first full half AC cycle
Try to use this for dimmable LED lights, it might help turning on at low brightness Try to use this for dimmable LED lights, it might help turning on at low brightness
levels. On Halogen lamps it might show at initial flicker. Defaults to ``False``. levels. On Halogen lamps it might show at initial flicker. Defaults to ``false``.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. - **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- All other options from :ref:`Output <config-output>`. - All other options from :ref:`Output <config-output>`.

View File

@ -26,7 +26,7 @@ Each output platform extends this configuration schema.
- platform: ... - platform: ...
id: my_output_id id: my_output_id
power_supply: power_supply_id power_supply: power_supply_id
inverted: False inverted: false
min_power: 0.01 min_power: 0.01
max_power: 0.75 max_power: 0.75
@ -38,7 +38,7 @@ Configuration variables:
this output. When the output is enabled, the power supply will this output. When the output is enabled, the power supply will
automatically be switched on too. automatically be switched on too.
- **inverted** (*Optional*, boolean): If the output should be treated - **inverted** (*Optional*, boolean): If the output should be treated
as inverted. Defaults to ``False``. as inverted. Defaults to ``false``.
Float outputs only: Float outputs only:

View File

@ -18,7 +18,7 @@ and configurable alternative is ``0x61``.
i2c: i2c:
sda: 21 sda: 21
scl: 22 scl: 22
scan: True scan: true
# Set the output with default (address: 0x60 / global i2c) # Set the output with default (address: 0x60 / global i2c)
output: output:

View File

@ -32,7 +32,7 @@ not work.
pcf8574: pcf8574:
- id: 'pcf8574_hub' - id: 'pcf8574_hub'
address: 0x21 address: 0x21
pcf8575: False pcf8575: false
# Individual outputs # Individual outputs
switch: switch:
@ -44,7 +44,7 @@ not work.
number: 0 number: 0
# One of INPUT or OUTPUT # One of INPUT or OUTPUT
mode: OUTPUT mode: OUTPUT
inverted: False inverted: false
Configuration variables: Configuration variables:
************************ ************************
@ -52,7 +52,7 @@ Configuration variables:
- **id** (**Required**, :ref:`config-id`): The id to use for this PCF8574 component. - **id** (**Required**, :ref:`config-id`): The id to use for this PCF8574 component.
- **address** (*Optional*, int): The I²C address of the driver. - **address** (*Optional*, int): The I²C address of the driver.
Defaults to ``0x21``. Defaults to ``0x21``.
- **pcf8575** (*Optional*, boolean): Whether this is a 16-pin PCF8575. Defaults to ``False``. - **pcf8575** (*Optional*, boolean): Whether this is a 16-pin PCF8575. Defaults to ``false``.
Pin configuration variables: Pin configuration variables:
@ -61,7 +61,7 @@ Pin configuration variables:
- **pcf8574** (**Required**, :ref:`config-id`): The id of the PCF8574 component of the pin. - **pcf8574** (**Required**, :ref:`config-id`): The id of the PCF8574 component of the pin.
- **number** (**Required**, integer): The pin number. - **number** (**Required**, integer): The pin number.
- **inverted** (*Optional*, boolean): If all read and written values - **inverted** (*Optional*, boolean): If all read and written values
should be treated as inverted. Defaults to ``False``. should be treated as inverted. Defaults to ``false``.
- **mode** (*Optional*, string): A pin mode to set for the pin at. One of ``INPUT`` or ``OUTPUT``. - **mode** (*Optional*, string): A pin mode to set for the pin at. One of ``INPUT`` or ``OUTPUT``.

View File

@ -231,7 +231,7 @@ Remote code selection (exactly one of these has to be included):
remote_receiver: remote_receiver:
pin: pin:
number: D4 number: D4
inverted: True inverted: true
mode: INPUT_PULLUP mode: INPUT_PULLUP
dump: all dump: all

View File

@ -26,7 +26,7 @@ Configuration variables:
- **name** (**Required**, string): The name for the CO₂eq sensor. - **name** (**Required**, string): The name for the CO₂eq sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas. - **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s`` - **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``
- **store_baseline** (*Optional*, boolean ): Stores and retrieves the baseline information for quicker startups. Defaults to ``True`` - **store_baseline** (*Optional*, boolean ): Stores and retrieves the baseline information for quicker startups. Defaults to ``true``
- **compensation** (*Optional*): The block containing sensors used for compensation. If not set defaults will be used. - **compensation** (*Optional*): The block containing sensors used for compensation. If not set defaults will be used.

View File

@ -96,7 +96,7 @@ In teleinfo platform:
- **historical_mode** (*Optional*): Whether to use historical mode or standard mode. - **historical_mode** (*Optional*): Whether to use historical mode or standard mode.
With historical mode, baudrate of 1200 must be used whereas 9600 must be used in With historical mode, baudrate of 1200 must be used whereas 9600 must be used in
standard mode. Defaults to ``False``. standard mode. Defaults to ``false``.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the - **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
sensor. Defaults to ``60s``. sensor. Defaults to ``60s``.

View File

@ -51,7 +51,7 @@ The :ref:`I²C Bus <i2c>` is required to be set up in your configuration for thi
name: "VL53L0x Distance" name: "VL53L0x Distance"
address: 0x29 address: 0x29
update_interval: 60s update_interval: 60s
long_range: True long_range: true
Configuration variables: Configuration variables:
------------------------ ------------------------

View File

@ -40,7 +40,7 @@ Use of the OE pin is optional. If used, the pin should be pulled up externally.
sn74hc595: sn74hc595_hub sn74hc595: sn74hc595_hub
# Use pin number 0 # Use pin number 0
number: 0 number: 0
inverted: False inverted: false
Configuration variables: Configuration variables:
************************ ************************
@ -59,7 +59,7 @@ Pin configuration variables:
- **sn74hc595** (**Required**, :ref:`config-id`): The id of the SN74HC595 component of the pin. - **sn74hc595** (**Required**, :ref:`config-id`): The id of the SN74HC595 component of the pin.
- **number** (**Required**, integer): The pin number. - **number** (**Required**, integer): The pin number.
- **inverted** (*Optional*, boolean): If all written values should be treated as inverted. - **inverted** (*Optional*, boolean): If all written values should be treated as inverted.
Defaults to ``False``. Defaults to ``false``.
See Also See Also

View File

@ -38,7 +38,7 @@ Configuration variables:
status_led: status_led:
pin: pin:
number: D0 number: D0
inverted: True inverted: true
See Also See Also
-------- --------

View File

@ -79,7 +79,7 @@ Configuration variables:
# ... # ...
dir_pin: dir_pin:
number: D1 number: D1
inverted: True inverted: true
ULN2003 Component ULN2003 Component
----------------- -----------------

View File

@ -27,7 +27,7 @@ Configuration variables:
sensor in the frontend. sensor in the frontend.
- **inverted** (*Optional*, boolean): Whether to invert the binary - **inverted** (*Optional*, boolean): Whether to invert the binary
state, i.e. report ON states as OFF and vice versa. Defaults state, i.e. report ON states as OFF and vice versa. Defaults
to ``False``. to ``false``.
- **internal** (*Optional*, boolean): Mark this component as internal. Internal components will - **internal** (*Optional*, boolean): Mark this component as internal. Internal components will
not be exposed to the frontend (like Home Assistant). Only specifying an ``id`` without not be exposed to the frontend (like Home Assistant). Only specifying an ``id`` without
a ``name`` will implicitly set this to true. a ``name`` will implicitly set this to true.

View File

@ -152,7 +152,7 @@ The outputs can in turn be used to add PWM-enabled lights like the monochromatic
# Use pin number 0 on the SX1509 # Use pin number 0 on the SX1509
number: 0 number: 0
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
# Individual binary outputs # Individual binary outputs
switch: switch:
@ -164,7 +164,7 @@ The outputs can in turn be used to add PWM-enabled lights like the monochromatic
number: 1 number: 1
# use as output for switch # use as output for switch
mode: OUTPUT mode: OUTPUT
inverted: False inverted: false
# Individual outputs # Individual outputs
output: output:
@ -185,7 +185,7 @@ The outputs can in turn be used to add PWM-enabled lights like the monochromatic
- **sx1509** (**Required**, :ref:`config-id`): The id of the SX1509 component of the pin. - **sx1509** (**Required**, :ref:`config-id`): The id of the SX1509 component of the pin.
- **number** (**Required**, integer): The pin number. - **number** (**Required**, integer): The pin number.
- **inverted** (*Optional*, boolean): If all read and written values - **inverted** (*Optional*, boolean): If all read and written values
should be treated as inverted. Defaults to ``False``. should be treated as inverted. Defaults to ``false``.
- **mode** (*Optional*, string): A pin mode to set for the pin at. One of ``INPUT``, - **mode** (*Optional*, string): A pin mode to set for the pin at. One of ``INPUT``,
``INPUT_PULLUP`` or ``OUTPUT``. ``INPUT_PULLUP`` or ``OUTPUT``.

View File

@ -27,7 +27,7 @@ Once configured, you can use any of the 8 channels (TCA9548A) as separated chann
- address: 0x70 - address: 0x70
id: multiplex0 id: multiplex0
i2c_id: i2c0 i2c_id: i2c0
scan: True scan: true
# Individual I2C Devices # Individual I2C Devices
sensor: sensor:

View File

@ -23,7 +23,7 @@ Configuration variables:
------------------------ ------------------------
- **name** (**Required**, string): The name of the text sensor. - **name** (**Required**, string): The name of the text sensor.
- **hide_timestamp** (*Optional*, boolean): Allows you to hide the compilation timestamp from the version string. Defaults to ``False``. - **hide_timestamp** (*Optional*, boolean): Allows you to hide the compilation timestamp from the version string. Defaults to ``false``.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. - **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- All other options from :ref:`Text Sensor <config-text_sensor>`. - All other options from :ref:`Text Sensor <config-text_sensor>`.
@ -36,7 +36,7 @@ Disabling the compilation timestamp:
text_sensor: text_sensor:
- platform: version - platform: version
name: "ESPHome Version" name: "ESPHome Version"
hide_timestamp: True hide_timestamp: true
This will, for example, change the output of the senser from: This will, for example, change the output of the senser from:

View File

@ -54,7 +54,7 @@ Configuration variables:
ESP32 options: ESP32 options:
- **invert** (*Optional*, boolean): Invert the logic levels of the RX and TX pins. Options: ``True`` or ``False``. Defaults to ``False``. - **invert** (*Optional*, boolean): Invert the logic levels of the RX and TX pins. Options: ``true`` or ``false``. Defaults to ``false``.
.. _uart-hardware_uarts: .. _uart-hardware_uarts:

View File

@ -254,7 +254,7 @@ which these adaptions created by `@cryptelli <https://community.home-assistant.i
- platform: gpio - platform: gpio
pin: pin:
number: GPIO3 number: GPIO3
inverted: True inverted: true
name: "Power Button" name: "Power Button"
on_press: on_press:
- switch.toggle: relay - switch.toggle: relay
@ -277,7 +277,7 @@ which these adaptions created by `@cryptelli <https://community.home-assistant.i
- platform: hlw8012 - platform: hlw8012
sel_pin: sel_pin:
number: GPIO12 number: GPIO12
inverted: True inverted: true
cf_pin: GPIO04 cf_pin: GPIO04
cf1_pin: GPIO05 cf1_pin: GPIO05
current_resistor: 0.00221 current_resistor: 0.00221
@ -381,7 +381,7 @@ Check the following page for calibrating the measurements: :ref:`sensor-filter-c
- platform: gpio - platform: gpio
pin: pin:
number: GPIO0 number: GPIO0
inverted: True inverted: true
name: "${plug_name}_button" name: "${plug_name}_button"
on_press: on_press:
- switch.toggle: relay - switch.toggle: relay
@ -390,7 +390,7 @@ Check the following page for calibrating the measurements: :ref:`sensor-filter-c
- platform: gpio - platform: gpio
name: "${plug_name}_LED_Red" name: "${plug_name}_LED_Red"
pin: GPIO13 pin: GPIO13
inverted: True inverted: true
restore_mode: ALWAYS_OFF restore_mode: ALWAYS_OFF
id: red_led id: red_led
@ -410,7 +410,7 @@ Check the following page for calibrating the measurements: :ref:`sensor-filter-c
- platform: hlw8012 - platform: hlw8012
sel_pin: sel_pin:
number: GPIO12 number: GPIO12
inverted: True inverted: true
cf_pin: GPIO04 cf_pin: GPIO04
cf1_pin: GPIO05 cf1_pin: GPIO05
current_resistor: ${current_res} current_resistor: ${current_res}

View File

@ -102,7 +102,7 @@ Note your ``address`` and ``model`` might be different, use the scan option to f
i2c: i2c:
sda: D1 sda: D1
scl: D2 scl: D2
scan: False scan: false
display: display:
- platform: ssd1306_i2c - platform: ssd1306_i2c

View File

@ -79,7 +79,7 @@ Then you need to set it up with yaml.
id: vbutton_light id: vbutton_light
pin: pin:
number: GPIO0 number: GPIO0
inverted: True inverted: true
on_press: on_press:
then: then:
- light.toggle: ifan02_light - light.toggle: ifan02_light
@ -88,7 +88,7 @@ Then you need to set it up with yaml.
id: vbutton_relay_1 id: vbutton_relay_1
pin: pin:
number: GPIO9 number: GPIO9
inverted: True inverted: true
on_press: on_press:
then: then:
- switch.toggle: fan_relay1 - switch.toggle: fan_relay1
@ -98,7 +98,7 @@ Then you need to set it up with yaml.
id: vbutton_relay_2 id: vbutton_relay_2
pin: pin:
number: GPIO10 number: GPIO10
inverted: True inverted: true
on_press: on_press:
then: then:
- switch.toggle: fan_relay2 - switch.toggle: fan_relay2
@ -108,7 +108,7 @@ Then you need to set it up with yaml.
id: vbutton_relay_3 id: vbutton_relay_3
pin: pin:
number: GPIO14 number: GPIO14
inverted: True inverted: true
on_press: on_press:
then: then:
- switch.toggle: fan_relay3 - switch.toggle: fan_relay3
@ -137,7 +137,7 @@ Then you need to set it up with yaml.
switch: switch:
- platform: template - platform: template
id: update_fan_speed id: update_fan_speed
optimistic: True optimistic: true
turn_on_action: turn_on_action:
then: then:
- delay: 200ms - delay: 200ms

View File

@ -89,7 +89,7 @@ I also needed this procedure to flash M5Stack ATOM Lite and ATOM Matrix modules,
Calibration & Testing Calibration & Testing
===================== =====================
Once everything is hooked up and flashed, enable ``esp32_touch:`` ``setup_mode: True`` and proceed to adjust the threshold setting on the touch-sensitive binary sensor (GPIO33) to find the proper value for your particular moisture sensor and cabling situation. Grab a glass of water for testing, another for yourself, and dip away while watching the logs. Your goal is to find a threshold value that is sufficient to trigger the binary sensor in water, but not otherwise. See :ref:`ESP32 Touch Pad <esp32-touch-binary-sensor>` for more information. Once everything is hooked up and flashed, enable ``esp32_touch:`` ``setup_mode: true`` and proceed to adjust the threshold setting on the touch-sensitive binary sensor (GPIO33) to find the proper value for your particular moisture sensor and cabling situation. Grab a glass of water for testing, another for yourself, and dip away while watching the logs. Your goal is to find a threshold value that is sufficient to trigger the binary sensor in water, but not otherwise. See :ref:`ESP32 Touch Pad <esp32-touch-binary-sensor>` for more information.
------------ ------------
@ -161,7 +161,7 @@ ESPHome configuration
status_led: status_led:
pin: pin:
number: GPIO10 number: GPIO10
inverted: True inverted: true
spi: spi:
clk_pin: GPIO13 clk_pin: GPIO13
@ -171,10 +171,10 @@ ESPHome configuration
- id: bus_a - id: bus_a
sda: GPIO21 sda: GPIO21
scl: GPIO22 scl: GPIO22
scan: True scan: true
esp32_touch: esp32_touch:
#setup_mode: True #setup_mode: true
iir_filter: 10ms iir_filter: 10ms
binary_sensor: binary_sensor:

View File

@ -118,7 +118,7 @@ Now you have a pair of wires from the GPIO and 0V to your retractive switch lets
pin: pin:
number: GPIO14 number: GPIO14
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
id: button_1 id: button_1
on_press: on_press:
then: then:

View File

@ -98,7 +98,7 @@ The R1 version of the Dual controls the relays via the UART, so the code gets a
pin: pin:
number: GPIO4 number: GPIO4
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
id: button_1 id: button_1
on_press: on_press:
then: then:
@ -108,7 +108,7 @@ The R1 version of the Dual controls the relays via the UART, so the code gets a
pin: pin:
number: GPIO14 number: GPIO14
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
id: button_2 id: button_2
on_press: on_press:
then: then:
@ -197,7 +197,7 @@ It's basically the same as the :doc:`T2 </cookbook/sonoff-t1-3>`
pin: pin:
number: GPIO0 number: GPIO0
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
id: button id: button
on_press: on_press:
then: then:
@ -207,7 +207,7 @@ It's basically the same as the :doc:`T2 </cookbook/sonoff-t1-3>`
pin: pin:
number: GPIO14 number: GPIO14
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
id: button id: button
on_press: on_press:
then: then:

View File

@ -37,7 +37,7 @@ T1
pin: pin:
number: GPIO0 number: GPIO0
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
id: button_1 id: button_1
on_press: on_press:
then: then:
@ -100,7 +100,7 @@ T2
pin: pin:
number: GPIO0 number: GPIO0
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
id: button_1 id: button_1
on_press: on_press:
then: then:
@ -110,7 +110,7 @@ T2
pin: pin:
number: GPIO9 number: GPIO9
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
id: button_2 id: button_2
on_press: on_press:
then: then:
@ -171,7 +171,7 @@ T3
pin: pin:
number: GPIO0 number: GPIO0
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
id: button_1 id: button_1
on_press: on_press:
then: then:
@ -181,7 +181,7 @@ T3
pin: pin:
number: GPIO9 number: GPIO9
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
id: button_2 id: button_2
on_press: on_press:
then: then:
@ -191,7 +191,7 @@ T3
pin: pin:
number: GPIO10 number: GPIO10
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
id: button_3 id: button_3
on_press: on_press:
then: then:

View File

@ -244,25 +244,25 @@ of the basic functions.
pin: pin:
number: GPIO0 number: GPIO0
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
name: "Sonoff 4CH Button 1" name: "Sonoff 4CH Button 1"
- platform: gpio - platform: gpio
pin: pin:
number: GPIO9 number: GPIO9
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
name: "Sonoff 4CH Button 2" name: "Sonoff 4CH Button 2"
- platform: gpio - platform: gpio
pin: pin:
number: GPIO10 number: GPIO10
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
name: "Sonoff 4CH Button 3" name: "Sonoff 4CH Button 3"
- platform: gpio - platform: gpio
pin: pin:
number: GPIO14 number: GPIO14
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
name: "Sonoff 4CH Button 4" name: "Sonoff 4CH Button 4"
- platform: status - platform: status
name: "Sonoff 4CH Status" name: "Sonoff 4CH Status"
@ -286,7 +286,7 @@ of the basic functions.
- platform: esp8266_pwm - platform: esp8266_pwm
id: blue_led id: blue_led
pin: GPIO13 pin: GPIO13
inverted: True inverted: true
light: light:
# ... and then make a light out of it. # ... and then make a light out of it.

View File

@ -18,7 +18,7 @@ binary_sensor:
pin: pin:
number: GPIO0 number: GPIO0
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
name: "Sonoff 4CH Button 1" name: "Sonoff 4CH Button 1"
on_press: on_press:
- switch.toggle: relay_1 - switch.toggle: relay_1
@ -26,7 +26,7 @@ binary_sensor:
pin: pin:
number: GPIO9 number: GPIO9
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
name: "Sonoff 4CH Button 2" name: "Sonoff 4CH Button 2"
on_press: on_press:
- switch.toggle: relay_2 - switch.toggle: relay_2
@ -34,7 +34,7 @@ binary_sensor:
pin: pin:
number: GPIO10 number: GPIO10
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
name: "Sonoff 4CH Button 3" name: "Sonoff 4CH Button 3"
on_press: on_press:
- switch.toggle: relay_3 - switch.toggle: relay_3
@ -42,7 +42,7 @@ binary_sensor:
pin: pin:
number: GPIO14 number: GPIO14
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
name: "Sonoff 4CH Button 4" name: "Sonoff 4CH Button 4"
on_press: on_press:
- switch.toggle: relay_4 - switch.toggle: relay_4
@ -71,7 +71,7 @@ output:
- platform: esp8266_pwm - platform: esp8266_pwm
id: blue_led id: blue_led
pin: GPIO13 pin: GPIO13
inverted: True inverted: true
light: light:
- platform: monochromatic - platform: monochromatic

View File

@ -72,7 +72,7 @@ exposes all of the basic functions.
pin: pin:
number: GPIO0 number: GPIO0
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
name: "Sonoff Basic Button" name: "Sonoff Basic Button"
on_press: on_press:
- switch.toggle: relay - switch.toggle: relay

View File

@ -226,7 +226,7 @@ of the basic functions.
pin: pin:
number: GPIO0 number: GPIO0
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
name: "Sonoff S20 Button" name: "Sonoff S20 Button"
- platform: status - platform: status
name: "Sonoff S20 Status" name: "Sonoff S20 Status"
@ -246,7 +246,7 @@ of the basic functions.
id: s20_green_led id: s20_green_led
pin: pin:
number: GPIO13 number: GPIO13
inverted: True inverted: true
light: light:
# ... and then make a light out of it. # ... and then make a light out of it.
@ -275,7 +275,7 @@ in Home Assistant, replace the last part with this:
id: s20_green_led id: s20_green_led
pin: pin:
number: GPIO13 number: GPIO13
inverted: True inverted: true
# Note: do *not* make the relay a dimmable (PWM) signal, relays cannot handle that # Note: do *not* make the relay a dimmable (PWM) signal, relays cannot handle that
- platform: gpio - platform: gpio
id: s20_relay id: s20_relay

View File

@ -19,7 +19,7 @@ binary_sensor:
pin: pin:
number: GPIO0 number: GPIO0
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
name: "Sonoff S20 Button" name: "Sonoff S20 Button"
on_press: on_press:
- switch.toggle: relay - switch.toggle: relay
@ -37,7 +37,7 @@ output:
- platform: esp8266_pwm - platform: esp8266_pwm
id: s20_green_led id: s20_green_led
pin: GPIO13 pin: GPIO13
inverted: True inverted: true
light: light:
- platform: monochromatic - platform: monochromatic

View File

@ -247,19 +247,19 @@ of the basic functions.
pin: pin:
number: GPIO0 number: GPIO0
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
name: "Sonoff T1 UK 3 Gang Touchpad 1" name: "Sonoff T1 UK 3 Gang Touchpad 1"
- platform: gpio - platform: gpio
pin: pin:
number: GPIO9 number: GPIO9
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
name: "Sonoff T1 UK 3 Gang Touchpad 2" name: "Sonoff T1 UK 3 Gang Touchpad 2"
- platform: gpio - platform: gpio
pin: pin:
number: GPIO10 number: GPIO10
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
name: "Sonoff T1 UK 3 Gang Touchpad 3" name: "Sonoff T1 UK 3 Gang Touchpad 3"
- platform: status - platform: status
name: "Sonoff T1 UK 3 Gang Status" name: "Sonoff T1 UK 3 Gang Status"
@ -280,7 +280,7 @@ of the basic functions.
- platform: esp8266_pwm - platform: esp8266_pwm
id: blue_led id: blue_led
pin: GPIO13 pin: GPIO13
inverted: True inverted: true
light: light:
# ... and then make a light out of it. # ... and then make a light out of it.

View File

@ -25,7 +25,7 @@ binary_sensor:
pin: pin:
number: GPIO0 number: GPIO0
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
name: "Sonoff T1 UK 3 Gang Touchpad 1" name: "Sonoff T1 UK 3 Gang Touchpad 1"
on_press: on_press:
- switch.toggle: relay_1 - switch.toggle: relay_1
@ -33,7 +33,7 @@ binary_sensor:
pin: pin:
number: GPIO9 number: GPIO9
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
name: "Sonoff T1 UK 3 Gang Touchpad 2" name: "Sonoff T1 UK 3 Gang Touchpad 2"
on_press: on_press:
- switch.toggle: relay_2 - switch.toggle: relay_2
@ -41,7 +41,7 @@ binary_sensor:
pin: pin:
number: GPIO10 number: GPIO10
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
name: "Sonoff T1 UK 3 Gang Touchpad 3" name: "Sonoff T1 UK 3 Gang Touchpad 3"
on_press: on_press:
- switch.toggle: relay_3 - switch.toggle: relay_3
@ -67,7 +67,7 @@ output:
- platform: esp8266_pwm - platform: esp8266_pwm
id: blue_led id: blue_led
pin: GPIO13 pin: GPIO13
inverted: True inverted: true
light: light:
# ... and then make a light out of it. # ... and then make a light out of it.

View File

@ -251,19 +251,19 @@ of the basic functions.
pin: pin:
number: GPIO0 number: GPIO0
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
name: "Sonoff T3 EU 3 Gang Touchpad 1" name: "Sonoff T3 EU 3 Gang Touchpad 1"
- platform: gpio - platform: gpio
pin: pin:
number: GPIO9 number: GPIO9
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
name: "Sonoff T3 EU 3 Gang Touchpad 2" name: "Sonoff T3 EU 3 Gang Touchpad 2"
- platform: gpio - platform: gpio
pin: pin:
number: GPIO10 number: GPIO10
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
name: "Sonoff T3 EU 3 Gang Touchpad 3" name: "Sonoff T3 EU 3 Gang Touchpad 3"
- platform: status - platform: status
name: "Sonoff T3 EU 3 Gang Status" name: "Sonoff T3 EU 3 Gang Status"
@ -284,7 +284,7 @@ of the basic functions.
- platform: esp8266_pwm - platform: esp8266_pwm
id: blue_led id: blue_led
pin: GPIO13 pin: GPIO13
inverted: True inverted: true
light: light:
# ... and then make a light out of it. # ... and then make a light out of it.

View File

@ -25,7 +25,7 @@ binary_sensor:
pin: pin:
number: GPIO0 number: GPIO0
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
name: "Sonoff T3 EU 3 Gang Touchpad 1" name: "Sonoff T3 EU 3 Gang Touchpad 1"
on_press: on_press:
- switch.toggle: relay_1 - switch.toggle: relay_1
@ -33,7 +33,7 @@ binary_sensor:
pin: pin:
number: GPIO9 number: GPIO9
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
name: "Sonoff T3 EU 3 Gang Touchpad 2" name: "Sonoff T3 EU 3 Gang Touchpad 2"
on_press: on_press:
- switch.toggle: relay_2 - switch.toggle: relay_2
@ -41,7 +41,7 @@ binary_sensor:
pin: pin:
number: GPIO10 number: GPIO10
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
name: "Sonoff T3 EU 3 Gang Touchpad 3" name: "Sonoff T3 EU 3 Gang Touchpad 3"
on_press: on_press:
- switch.toggle: relay_3 - switch.toggle: relay_3
@ -67,7 +67,7 @@ output:
- platform: esp8266_pwm - platform: esp8266_pwm
id: blue_led id: blue_led
pin: GPIO13 pin: GPIO13
inverted: True inverted: true
light: light:
# ... and then make a light out of it. # ... and then make a light out of it.

View File

@ -22,7 +22,7 @@ binary_sensor:
pin: pin:
number: GPIO1 number: GPIO1
mode: INPUT_PULLUP mode: INPUT_PULLUP
inverted: True inverted: true
on_press: on_press:
- switch.toggle: relay - switch.toggle: relay
@ -31,7 +31,7 @@ switch:
id: blue_led id: blue_led
pin: pin:
number: GPIO13 number: GPIO13
inverted: True inverted: true
- platform: gpio - platform: gpio
name: "Teckin Relay" name: "Teckin Relay"
pin: GPIO14 pin: GPIO14
@ -45,13 +45,13 @@ switch:
status_led: status_led:
pin: pin:
number: GPIO3 number: GPIO3
inverted: True inverted: true
sensor: sensor:
- platform: hlw8012 - platform: hlw8012
sel_pin: sel_pin:
number: GPIO12 number: GPIO12
inverted: True inverted: true
cf_pin: GPIO04 cf_pin: GPIO04
cf1_pin: GPIO05 cf1_pin: GPIO05
# Higher value gives lower watt readout # Higher value gives lower watt readout

View File

@ -30,7 +30,7 @@ sensor:
- platform: hlw8012 - platform: hlw8012
sel_pin: sel_pin:
number: GPIO12 number: GPIO12
inverted: True inverted: true
cf_pin: GPIO5 cf_pin: GPIO5
cf1_pin: GPIO14 cf1_pin: GPIO14
current: current:
@ -64,7 +64,7 @@ time:
status_led: status_led:
pin: pin:
number: GPIO0 # Red LED number: GPIO0 # Red LED
inverted: True inverted: true
binary_sensor: binary_sensor:
- platform: gpio - platform: gpio
@ -73,14 +73,14 @@ binary_sensor:
name: ${friendly_name} Button name: ${friendly_name} Button
on_press: on_press:
- switch.toggle: relay - switch.toggle: relay
internal: True internal: true
switch: switch:
- platform: gpio - platform: gpio
id: blue_led id: blue_led
pin: pin:
number: GPIO2 number: GPIO2
inverted: True inverted: true
- platform: gpio - platform: gpio
pin: GPIO4 pin: GPIO4

View File

@ -74,14 +74,14 @@ In some places, ESPHome also supports a more advanced “pin schema”.
# Advanced: # Advanced:
pin: pin:
number: D0 number: D0
inverted: True inverted: true
mode: INPUT_PULLUP mode: INPUT_PULLUP
Configuration variables: Configuration variables:
- **number** (**Required**, pin): The pin number. - **number** (**Required**, pin): The pin number.
- **inverted** (*Optional*, boolean): If all read and written values - **inverted** (*Optional*, boolean): If all read and written values
should be treated as inverted. Defaults to ``False``. should be treated as inverted. Defaults to ``false``.
- **mode** (*Optional*, string): A pin mode to set for the pin at - **mode** (*Optional*, string): A pin mode to set for the pin at
startup, corresponds to Arduinos ``pinMode`` call. startup, corresponds to Arduinos ``pinMode`` call.
@ -326,7 +326,7 @@ merged with the services definitions from main config file.
i2c: i2c:
sda: GPIO21 sda: GPIO21
scl: GPIO22 scl: GPIO22
scan: True scan: true
frequency: 100kHz frequency: 100kHz
# Enable logging # Enable logging

View File

@ -126,7 +126,7 @@ Sensor </components/binary_sensor/gpio>`.
name: "Living Room Window" name: "Living Room Window"
pin: pin:
number: 16 number: 16
inverted: True inverted: true
mode: INPUT_PULLUP mode: INPUT_PULLUP
This is an advanced feature of ESPHome. Almost all pins can This is an advanced feature of ESPHome. Almost all pins can

View File

@ -132,7 +132,7 @@ Sensor </components/binary_sensor/gpio>`.
name: "Living Room Window" name: "Living Room Window"
pin: pin:
number: 16 number: 16
inverted: True inverted: true
mode: INPUT_PULLUP mode: INPUT_PULLUP
This time when installing, you dont need to have the device plugged in This time when installing, you dont need to have the device plugged in

View File

@ -26,7 +26,9 @@ Contributors
- `Abel Matser (@abelmatser) <https://github.com/abelmatser>`__ - `Abel Matser (@abelmatser) <https://github.com/abelmatser>`__
- `Abílio Costa (@abmantis) <https://github.com/abmantis>`__ - `Abílio Costa (@abmantis) <https://github.com/abmantis>`__
- `acshef (@acshef) <https://github.com/acshef>`__ - `acshef (@acshef) <https://github.com/acshef>`__
- `Zhenyu Wu (@Adam5Wu) <https://github.com/Adam5Wu>`__
- `adamgreg (@adamgreg) <https://github.com/adamgreg>`__ - `adamgreg (@adamgreg) <https://github.com/adamgreg>`__
- `Chris Byrne (@adapt0) <https://github.com/adapt0>`__
- `Attila Darazs (@adarazs) <https://github.com/adarazs>`__ - `Attila Darazs (@adarazs) <https://github.com/adarazs>`__
- `adezerega (@adezerega) <https://github.com/adezerega>`__ - `adezerega (@adezerega) <https://github.com/adezerega>`__
- `Andrea Donno (@adonno) <https://github.com/adonno>`__ - `Andrea Donno (@adonno) <https://github.com/adonno>`__
@ -54,26 +56,33 @@ Contributors
- `Andreas (@anduchs) <https://github.com/anduchs>`__ - `Andreas (@anduchs) <https://github.com/anduchs>`__
- `anekinloewe (@anekinloewe) <https://github.com/anekinloewe>`__ - `anekinloewe (@anekinloewe) <https://github.com/anekinloewe>`__
- `Vegetto (@angelnu) <https://github.com/angelnu>`__ - `Vegetto (@angelnu) <https://github.com/angelnu>`__
- `Sergey Anisimov (@anisimovsergey) <https://github.com/anisimovsergey>`__
- `ankycooper (@ankycooper) <https://github.com/ankycooper>`__ - `ankycooper (@ankycooper) <https://github.com/ankycooper>`__
- `Nikolay Vasilchuk (@Anonym-tsk) <https://github.com/Anonym-tsk>`__ - `Nikolay Vasilchuk (@Anonym-tsk) <https://github.com/Anonym-tsk>`__
- `Adriaan Peeters (@apeeters) <https://github.com/apeeters>`__ - `Adriaan Peeters (@apeeters) <https://github.com/apeeters>`__
- `Darius Ratkevičius (@aphex008) <https://github.com/aphex008>`__ - `Darius Ratkevičius (@aphex008) <https://github.com/aphex008>`__
- `Andy Allsopp (@arallsopp) <https://github.com/arallsopp>`__
- `arantius (@arantius) <https://github.com/arantius>`__
- `Ash McKenzie (@ashmckenzie) <https://github.com/ashmckenzie>`__ - `Ash McKenzie (@ashmckenzie) <https://github.com/ashmckenzie>`__
- `Pavel Pletenev (@ASMfreaK) <https://github.com/ASMfreaK>`__ - `Pavel Pletenev (@ASMfreaK) <https://github.com/ASMfreaK>`__
- `Mike Dunston (@atanisoft) <https://github.com/atanisoft>`__ - `Mike Dunston (@atanisoft) <https://github.com/atanisoft>`__
- `Arsène von Wyss (@avonwyss) <https://github.com/avonwyss>`__
- `Achilleas Pipinellis (@axilleas) <https://github.com/axilleas>`__ - `Achilleas Pipinellis (@axilleas) <https://github.com/axilleas>`__
- `Kamil Trzciński (@ayufan) <https://github.com/ayufan>`__ - `Kamil Trzciński (@ayufan) <https://github.com/ayufan>`__
- `Nicholas Peters (@Azimath) <https://github.com/Azimath>`__ - `Nicholas Peters (@Azimath) <https://github.com/Azimath>`__
- `Daniel (@azrael783) <https://github.com/azrael783>`__ - `Daniel (@azrael783) <https://github.com/azrael783>`__
- `Florian Mösch (@badbadc0ffee) <https://github.com/badbadc0ffee>`__ - `Florian Mösch (@badbadc0ffee) <https://github.com/badbadc0ffee>`__
- `Marco Tombesi (@baggior) <https://github.com/baggior>`__
- `balk77 (@balk77) <https://github.com/balk77>`__ - `balk77 (@balk77) <https://github.com/balk77>`__
- `Paulus Schoutsen (@balloob) <https://github.com/balloob>`__ - `Paulus Schoutsen (@balloob) <https://github.com/balloob>`__
- `Andrew Zaborowski (@balrog-kun) <https://github.com/balrog-kun>`__ - `Andrew Zaborowski (@balrog-kun) <https://github.com/balrog-kun>`__
- `Rutger Nijhuis (@BananaPukeh) <https://github.com/BananaPukeh>`__ - `Rutger Nijhuis (@BananaPukeh) <https://github.com/BananaPukeh>`__
- `bazuchan (@bazuchan) <https://github.com/bazuchan>`__ - `bazuchan (@bazuchan) <https://github.com/bazuchan>`__
- `Viktr (@BbIKTOP) <https://github.com/BbIKTOP>`__
- `J. Nick Koston (@bdraco) <https://github.com/bdraco>`__ - `J. Nick Koston (@bdraco) <https://github.com/bdraco>`__
- `Ben Suffolk (@bensuffolk) <https://github.com/bensuffolk>`__ - `Ben Suffolk (@bensuffolk) <https://github.com/bensuffolk>`__
- `Bierchermuesli (@Bierchermuesli) <https://github.com/Bierchermuesli>`__ - `Bierchermuesli (@Bierchermuesli) <https://github.com/Bierchermuesli>`__
- `JDavid (@blackhack) <https://github.com/blackhack>`__
- `Jim Ekman (@blejdfist) <https://github.com/blejdfist>`__ - `Jim Ekman (@blejdfist) <https://github.com/blejdfist>`__
- `Bob (@Bmooij) <https://github.com/Bmooij>`__ - `Bob (@Bmooij) <https://github.com/Bmooij>`__
- `Mauricio Bonani (@bonanitech) <https://github.com/bonanitech>`__ - `Mauricio Bonani (@bonanitech) <https://github.com/bonanitech>`__
@ -85,11 +94,13 @@ Contributors
- `Brad Davidson (@brandond) <https://github.com/brandond>`__ - `Brad Davidson (@brandond) <https://github.com/brandond>`__
- `Brian Hanifin (@brianhanifin) <https://github.com/brianhanifin>`__ - `Brian Hanifin (@brianhanifin) <https://github.com/brianhanifin>`__
- `brianrjones69 (@brianrjones69) <https://github.com/brianrjones69>`__ - `brianrjones69 (@brianrjones69) <https://github.com/brianrjones69>`__
- `buddydvd (@buddydvd) <https://github.com/buddydvd>`__
- `buxtronix (@buxtronix) <https://github.com/buxtronix>`__ - `buxtronix (@buxtronix) <https://github.com/buxtronix>`__
- `bvansambeek (@bvansambeek) <https://github.com/bvansambeek>`__ - `bvansambeek (@bvansambeek) <https://github.com/bvansambeek>`__
- `bwente (@bwente) <https://github.com/bwente>`__ - `bwente (@bwente) <https://github.com/bwente>`__
- `Carlos Gustavo Sarmiento (@carlos-sarmiento) <https://github.com/carlos-sarmiento>`__ - `Carlos Gustavo Sarmiento (@carlos-sarmiento) <https://github.com/carlos-sarmiento>`__
- `Carlos Garcia Saura (@CarlosGS) <https://github.com/CarlosGS>`__ - `Carlos Garcia Saura (@CarlosGS) <https://github.com/CarlosGS>`__
- `Carlos Ruiz (@CarlosRDomin) <https://github.com/CarlosRDomin>`__
- `carstenschroeder (@carstenschroeder) <https://github.com/carstenschroeder>`__ - `carstenschroeder (@carstenschroeder) <https://github.com/carstenschroeder>`__
- `cbialobos (@cbialobos) <https://github.com/cbialobos>`__ - `cbialobos (@cbialobos) <https://github.com/cbialobos>`__
- `Ciprian Constantinescu (@cciprian5) <https://github.com/cciprian5>`__ - `Ciprian Constantinescu (@cciprian5) <https://github.com/cciprian5>`__
@ -98,6 +109,7 @@ Contributors
- `Pavel Skuratovich (@Chupaka) <https://github.com/Chupaka>`__ - `Pavel Skuratovich (@Chupaka) <https://github.com/Chupaka>`__
- `John (@CircuitSetup) <https://github.com/CircuitSetup>`__ - `John (@CircuitSetup) <https://github.com/CircuitSetup>`__
- `Chris Debenham (@cjd) <https://github.com/cjd>`__ - `Chris Debenham (@cjd) <https://github.com/cjd>`__
- `CODeRUS (@CODeRUS) <https://github.com/CODeRUS>`__
- `Cody James (@codyjamestechnical) <https://github.com/codyjamestechnical>`__ - `Cody James (@codyjamestechnical) <https://github.com/codyjamestechnical>`__
- `John Coggeshall (@coogle) <https://github.com/coogle>`__ - `John Coggeshall (@coogle) <https://github.com/coogle>`__
- `James Crook (@cooljimy84) <https://github.com/cooljimy84>`__ - `James Crook (@cooljimy84) <https://github.com/cooljimy84>`__
@ -135,8 +147,10 @@ Contributors
- `Rsan (@deltazerorsan) <https://github.com/deltazerorsan>`__ - `Rsan (@deltazerorsan) <https://github.com/deltazerorsan>`__
- `Mickaël Le Baillif (@demikl) <https://github.com/demikl>`__ - `Mickaël Le Baillif (@demikl) <https://github.com/demikl>`__
- `dentra (@dentra) <https://github.com/dentra>`__ - `dentra (@dentra) <https://github.com/dentra>`__
- `Davide Depau (@Depau) <https://github.com/Depau>`__
- `dependabot[bot] (@dependabot[bot]) <https://github.com/dependabot[bot]>`__ - `dependabot[bot] (@dependabot[bot]) <https://github.com/dependabot[bot]>`__
- `Destix (@Destix) <https://github.com/Destix>`__ - `Destix (@Destix) <https://github.com/Destix>`__
- `Develo (@devyte) <https://github.com/devyte>`__
- `Dezorian (@Dezorian) <https://github.com/Dezorian>`__ - `Dezorian (@Dezorian) <https://github.com/Dezorian>`__
- `Alain Turbide (@Dilbert66) <https://github.com/Dilbert66>`__ - `Alain Turbide (@Dilbert66) <https://github.com/Dilbert66>`__
- `Mark (@Diramu) <https://github.com/Diramu>`__ - `Mark (@Diramu) <https://github.com/Diramu>`__
@ -157,6 +171,7 @@ Contributors
- `DrRob (@DrRob) <https://github.com/DrRob>`__ - `DrRob (@DrRob) <https://github.com/DrRob>`__
- `dubit0 (@dubit0) <https://github.com/dubit0>`__ - `dubit0 (@dubit0) <https://github.com/dubit0>`__
- `Sergey V. DUDANOV (@dudanov) <https://github.com/dudanov>`__ - `Sergey V. DUDANOV (@dudanov) <https://github.com/dudanov>`__
- `dyarkovoy (@dyarkovoy) <https://github.com/dyarkovoy>`__
- `Dimitris Zervas (@dzervas) <https://github.com/dzervas>`__ - `Dimitris Zervas (@dzervas) <https://github.com/dzervas>`__
- `dziobson (@dziobson) <https://github.com/dziobson>`__ - `dziobson (@dziobson) <https://github.com/dziobson>`__
- `Dan Jackson (@e28eta) <https://github.com/e28eta>`__ - `Dan Jackson (@e28eta) <https://github.com/e28eta>`__
@ -184,6 +199,7 @@ Contributors
- `escoand (@escoand) <https://github.com/escoand>`__ - `escoand (@escoand) <https://github.com/escoand>`__
- `esphomebot (@esphomebot) <https://github.com/esphomebot>`__ - `esphomebot (@esphomebot) <https://github.com/esphomebot>`__
- `Evan Coleman (@evandcoleman) <https://github.com/evandcoleman>`__ - `Evan Coleman (@evandcoleman) <https://github.com/evandcoleman>`__
- `Clemens Kirchgatterer (@everslick) <https://github.com/everslick>`__
- `Malte Franken (@exxamalte) <https://github.com/exxamalte>`__ - `Malte Franken (@exxamalte) <https://github.com/exxamalte>`__
- `Fabian Affolter (@fabaff) <https://github.com/fabaff>`__ - `Fabian Affolter (@fabaff) <https://github.com/fabaff>`__
- `C W (@fake-name) <https://github.com/fake-name>`__ - `C W (@fake-name) <https://github.com/fake-name>`__
@ -201,6 +217,7 @@ Contributors
- `Evgeny (@freekode) <https://github.com/freekode>`__ - `Evgeny (@freekode) <https://github.com/freekode>`__
- `Brett McKenzie (@freerangeeggs) <https://github.com/freerangeeggs>`__ - `Brett McKenzie (@freerangeeggs) <https://github.com/freerangeeggs>`__
- `Franck Nijhof (@frenck) <https://github.com/frenck>`__ - `Franck Nijhof (@frenck) <https://github.com/frenck>`__
- `frippe75 (@frippe75) <https://github.com/frippe75>`__
- `Fritz Mueller (@fritzm) <https://github.com/fritzm>`__ - `Fritz Mueller (@fritzm) <https://github.com/fritzm>`__
- `Marc Egli (@frog32) <https://github.com/frog32>`__ - `Marc Egli (@frog32) <https://github.com/frog32>`__
- `mr G1K (@G1K) <https://github.com/G1K>`__ - `mr G1K (@G1K) <https://github.com/G1K>`__
@ -209,6 +226,7 @@ Contributors
- `galagaking (@galagaking) <https://github.com/galagaking>`__ - `galagaking (@galagaking) <https://github.com/galagaking>`__
- `GeekVisit (@GeekVisit) <https://github.com/GeekVisit>`__ - `GeekVisit (@GeekVisit) <https://github.com/GeekVisit>`__
- `Geoff Davis (@geoffdavis) <https://github.com/geoffdavis>`__ - `Geoff Davis (@geoffdavis) <https://github.com/geoffdavis>`__
- `Gérald Guiony (@gerald-guiony) <https://github.com/gerald-guiony>`__
- `Gerard (@gerard33) <https://github.com/gerard33>`__ - `Gerard (@gerard33) <https://github.com/gerard33>`__
- `Giovanni (@Gio-dot) <https://github.com/Gio-dot>`__ - `Giovanni (@Gio-dot) <https://github.com/Gio-dot>`__
- `github-actions[bot] (@github-actions[bot]) <https://github.com/github-actions[bot]>`__ - `github-actions[bot] (@github-actions[bot]) <https://github.com/github-actions[bot]>`__
@ -217,6 +235,7 @@ Contributors
- `Frederik Gladhorn (@gladhorn) <https://github.com/gladhorn>`__ - `Frederik Gladhorn (@gladhorn) <https://github.com/gladhorn>`__
- `Guillermo Ruffino (@glmnet) <https://github.com/glmnet>`__ - `Guillermo Ruffino (@glmnet) <https://github.com/glmnet>`__
- `Giorgos Logiotatidis (@glogiotatidis) <https://github.com/glogiotatidis>`__ - `Giorgos Logiotatidis (@glogiotatidis) <https://github.com/glogiotatidis>`__
- `Germán Martín (@gmag11) <https://github.com/gmag11>`__
- `Germain Masse (@gmasse) <https://github.com/gmasse>`__ - `Germain Masse (@gmasse) <https://github.com/gmasse>`__
- `Jelle Raaijmakers (@GMTA) <https://github.com/GMTA>`__ - `Jelle Raaijmakers (@GMTA) <https://github.com/GMTA>`__
- `gordon-zhao (@gordon-zhao) <https://github.com/gordon-zhao>`__ - `gordon-zhao (@gordon-zhao) <https://github.com/gordon-zhao>`__
@ -228,17 +247,23 @@ Contributors
- `h0-- (@h0--) <https://github.com/h0-->`__ - `h0-- (@h0--) <https://github.com/h0-->`__
- `haade (@haade-administrator) <https://github.com/haade-administrator>`__ - `haade (@haade-administrator) <https://github.com/haade-administrator>`__
- `Peter van Dijk (@Habbie) <https://github.com/Habbie>`__ - `Peter van Dijk (@Habbie) <https://github.com/Habbie>`__
- `Hagai Shatz (@hagai-shatz) <https://github.com/hagai-shatz>`__
- `Boris Hajduk (@hajdbo) <https://github.com/hajdbo>`__ - `Boris Hajduk (@hajdbo) <https://github.com/hajdbo>`__
- `Gavin Mogan (@halkeye) <https://github.com/halkeye>`__ - `Gavin Mogan (@halkeye) <https://github.com/halkeye>`__
- `Charles (@hallard) <https://github.com/hallard>`__
- `Charles Thompson (@haryadoon) <https://github.com/haryadoon>`__ - `Charles Thompson (@haryadoon) <https://github.com/haryadoon>`__
- `hcoohb (@hcoohb) <https://github.com/hcoohb>`__ - `hcoohb (@hcoohb) <https://github.com/hcoohb>`__
- `Héctor Giménez (@hectorgimenez) <https://github.com/hectorgimenez>`__ - `Héctor Giménez (@hectorgimenez) <https://github.com/hectorgimenez>`__
- `Jimmy Hedman (@HeMan) <https://github.com/HeMan>`__ - `Jimmy Hedman (@HeMan) <https://github.com/HeMan>`__
- `HepoH3 (@HepoH3) <https://github.com/HepoH3>`__ - `HepoH3 (@HepoH3) <https://github.com/HepoH3>`__
- `Hermann Kraus (@herm) <https://github.com/herm>`__
- `Hamish Moffatt (@hmoffatt) <https://github.com/hmoffatt>`__ - `Hamish Moffatt (@hmoffatt) <https://github.com/hmoffatt>`__
- `MoA (@honomoa) <https://github.com/honomoa>`__ - `MoA (@honomoa) <https://github.com/honomoa>`__
- `Hopperpop (@Hopperpop) <https://github.com/Hopperpop>`__
- `hreintke (@hreintke) <https://github.com/hreintke>`__
- `Huub Eikens (@huubeikens) <https://github.com/huubeikens>`__ - `Huub Eikens (@huubeikens) <https://github.com/huubeikens>`__
- `Petr Urbánek (@HyperReap) <https://github.com/HyperReap>`__ - `Petr Urbánek (@HyperReap) <https://github.com/HyperReap>`__
- `Arjan Filius (@iafilius) <https://github.com/iafilius>`__
- `Adrián Panella (@ianchi) <https://github.com/ianchi>`__ - `Adrián Panella (@ianchi) <https://github.com/ianchi>`__
- `Ian Leeder (@ianleeder) <https://github.com/ianleeder>`__ - `Ian Leeder (@ianleeder) <https://github.com/ianleeder>`__
- `icarome (@icarome) <https://github.com/icarome>`__ - `icarome (@icarome) <https://github.com/icarome>`__
@ -262,6 +287,7 @@ Contributors
- `Joshua Dadswell (@jdads1) <https://github.com/jdads1>`__ - `Joshua Dadswell (@jdads1) <https://github.com/jdads1>`__
- `jeff-h (@jeff-h) <https://github.com/jeff-h>`__ - `jeff-h (@jeff-h) <https://github.com/jeff-h>`__
- `Jeff Rescignano (@JeffResc) <https://github.com/JeffResc>`__ - `Jeff Rescignano (@JeffResc) <https://github.com/JeffResc>`__
- `Jej (@jej) <https://github.com/jej>`__
- `Jesse Hills (@jesserockz) <https://github.com/jesserockz>`__ - `Jesse Hills (@jesserockz) <https://github.com/jesserockz>`__
- `Jim Bauwens (@jimbauwens) <https://github.com/jimbauwens>`__ - `Jim Bauwens (@jimbauwens) <https://github.com/jimbauwens>`__
- `Jérémy JOURDIN (@JJK801) <https://github.com/JJK801>`__ - `Jérémy JOURDIN (@JJK801) <https://github.com/JJK801>`__
@ -286,6 +312,7 @@ Contributors
- `Jack Wozny (@jwozny) <https://github.com/jwozny>`__ - `Jack Wozny (@jwozny) <https://github.com/jwozny>`__
- `Kris (@K-r-i-s-t-i-a-n) <https://github.com/K-r-i-s-t-i-a-n>`__ - `Kris (@K-r-i-s-t-i-a-n) <https://github.com/K-r-i-s-t-i-a-n>`__
- `Harald Nagel (@k7hpn) <https://github.com/k7hpn>`__ - `Harald Nagel (@k7hpn) <https://github.com/k7hpn>`__
- `kaegi (@kaegi) <https://github.com/kaegi>`__
- `kalebzettl (@kalebzettl) <https://github.com/kalebzettl>`__ - `kalebzettl (@kalebzettl) <https://github.com/kalebzettl>`__
- `Krasimir Nedelchev (@kaykayehnn) <https://github.com/kaykayehnn>`__ - `Krasimir Nedelchev (@kaykayehnn) <https://github.com/kaykayehnn>`__
- `kbouchard111 (@kbouchard111) <https://github.com/kbouchard111>`__ - `kbouchard111 (@kbouchard111) <https://github.com/kbouchard111>`__
@ -296,6 +323,7 @@ Contributors
- `Kurt Kellner (@kkellner) <https://github.com/kkellner>`__ - `Kurt Kellner (@kkellner) <https://github.com/kkellner>`__
- `Klaas Schoute (@klaasnicolaas) <https://github.com/klaasnicolaas>`__ - `Klaas Schoute (@klaasnicolaas) <https://github.com/klaasnicolaas>`__
- `Klarstein (@Klarstein) <https://github.com/Klarstein>`__ - `Klarstein (@Klarstein) <https://github.com/Klarstein>`__
- `Marcus Klein (@kleini) <https://github.com/kleini>`__
- `klenaers (@klenaers) <https://github.com/klenaers>`__ - `klenaers (@klenaers) <https://github.com/klenaers>`__
- `Kevin Lewis (@kll) <https://github.com/kll>`__ - `Kevin Lewis (@kll) <https://github.com/kll>`__
- `Koen Vervloesem (@koenvervloesem) <https://github.com/koenvervloesem>`__ - `Koen Vervloesem (@koenvervloesem) <https://github.com/koenvervloesem>`__
@ -335,6 +363,7 @@ Contributors
- `magnus (@magnusja) <https://github.com/magnusja>`__ - `magnus (@magnusja) <https://github.com/magnusja>`__
- `Magnus Øverli (@magnusoverli) <https://github.com/magnusoverli>`__ - `Magnus Øverli (@magnusoverli) <https://github.com/magnusoverli>`__
- `Major Péter (@majorpeter) <https://github.com/majorpeter>`__ - `Major Péter (@majorpeter) <https://github.com/majorpeter>`__
- `raymonder jin (@mamil) <https://github.com/mamil>`__
- `Manuel Díez (@manutenfruits) <https://github.com/manutenfruits>`__ - `Manuel Díez (@manutenfruits) <https://github.com/manutenfruits>`__
- `Marcel van der Veldt (@marcelveldt) <https://github.com/marcelveldt>`__ - `Marcel van der Veldt (@marcelveldt) <https://github.com/marcelveldt>`__
- `Marc (@MarcHagen) <https://github.com/MarcHagen>`__ - `Marc (@MarcHagen) <https://github.com/MarcHagen>`__
@ -354,11 +383,13 @@ Contributors
- `Maurice Schleußinger (@maurice-schleussinger) <https://github.com/maurice-schleussinger>`__ - `Maurice Schleußinger (@maurice-schleussinger) <https://github.com/maurice-schleussinger>`__
- `mbo18 (@mbo18) <https://github.com/mbo18>`__ - `mbo18 (@mbo18) <https://github.com/mbo18>`__
- `Me No Dev (@me-no-dev) <https://github.com/me-no-dev>`__ - `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>`__ - `Joseph Mearman (@Mearman) <https://github.com/Mearman>`__
- `Mechotronic (@Mechotronic) <https://github.com/Mechotronic>`__ - `Mechotronic (@Mechotronic) <https://github.com/Mechotronic>`__
- `MeIchthys (@meichthys) <https://github.com/meichthys>`__ - `MeIchthys (@meichthys) <https://github.com/meichthys>`__
- `meijerwynand (@meijerwynand) <https://github.com/meijerwynand>`__ - `meijerwynand (@meijerwynand) <https://github.com/meijerwynand>`__
- `Marco (@Melkor82) <https://github.com/Melkor82>`__ - `Marco (@Melkor82) <https://github.com/Melkor82>`__
- `Merlin Schumacher (@merlinschumacher) <https://github.com/merlinschumacher>`__
- `Michael Gorven (@mgorven) <https://github.com/mgorven>`__ - `Michael Gorven (@mgorven) <https://github.com/mgorven>`__
- `mhentschke (@mhentschke) <https://github.com/mhentschke>`__ - `mhentschke (@mhentschke) <https://github.com/mhentschke>`__
- `micw (@micw) <https://github.com/micw>`__ - `micw (@micw) <https://github.com/micw>`__
@ -380,6 +411,7 @@ Contributors
- `monkeyclass (@monkeyclass) <https://github.com/monkeyclass>`__ - `monkeyclass (@monkeyclass) <https://github.com/monkeyclass>`__
- `Moritz Glöckl (@moritzgloeckl) <https://github.com/moritzgloeckl>`__ - `Moritz Glöckl (@moritzgloeckl) <https://github.com/moritzgloeckl>`__
- `Matthew Pettitt (@mpettitt) <https://github.com/mpettitt>`__ - `Matthew Pettitt (@mpettitt) <https://github.com/mpettitt>`__
- `Mariusz Kryński (@mrk-its) <https://github.com/mrk-its>`__
- `Ryan Matthews (@mrrsm) <https://github.com/mrrsm>`__ - `Ryan Matthews (@mrrsm) <https://github.com/mrrsm>`__
- `MrZetor (@MrZetor) <https://github.com/MrZetor>`__ - `MrZetor (@MrZetor) <https://github.com/MrZetor>`__
- `mtl010957 (@mtl010957) <https://github.com/mtl010957>`__ - `mtl010957 (@mtl010957) <https://github.com/mtl010957>`__
@ -407,14 +439,17 @@ Contributors
- `Jan Sandbrink (@NobodysNightmare) <https://github.com/NobodysNightmare>`__ - `Jan Sandbrink (@NobodysNightmare) <https://github.com/NobodysNightmare>`__
- `ffabi (@norges) <https://github.com/norges>`__ - `ffabi (@norges) <https://github.com/norges>`__
- `Greg Johnson (@notgwj) <https://github.com/notgwj>`__ - `Greg Johnson (@notgwj) <https://github.com/notgwj>`__
- `nouser2013 (@nouser2013) <https://github.com/nouser2013>`__
- `Stanislav Meduna (@numo68) <https://github.com/numo68>`__ - `Stanislav Meduna (@numo68) <https://github.com/numo68>`__
- `Nuno Sousa (@nunofgs) <https://github.com/nunofgs>`__ - `Nuno Sousa (@nunofgs) <https://github.com/nunofgs>`__
- `Maksym Lunin (@nut-code-monkey) <https://github.com/nut-code-monkey>`__
- `Chris Nussbaum (@nuttytree) <https://github.com/nuttytree>`__ - `Chris Nussbaum (@nuttytree) <https://github.com/nuttytree>`__
- `obrain17 (@obrain17) <https://github.com/obrain17>`__ - `obrain17 (@obrain17) <https://github.com/obrain17>`__
- `Ockert Marais (@OckertM) <https://github.com/OckertM>`__ - `Ockert Marais (@OckertM) <https://github.com/OckertM>`__
- `Dave Walker (@oddsockmachine) <https://github.com/oddsockmachine>`__ - `Dave Walker (@oddsockmachine) <https://github.com/oddsockmachine>`__
- `Olivér Falvai (@ofalvai) <https://github.com/ofalvai>`__ - `Olivér Falvai (@ofalvai) <https://github.com/ofalvai>`__
- `Omar Ghader (@omarghader) <https://github.com/omarghader>`__ - `Omar Ghader (@omarghader) <https://github.com/omarghader>`__
- `Ömer Şiar Baysal (@omersiar) <https://github.com/omersiar>`__
- `Oncleben31 (@oncleben31) <https://github.com/oncleben31>`__ - `Oncleben31 (@oncleben31) <https://github.com/oncleben31>`__
- `onde2rock (@onde2rock) <https://github.com/onde2rock>`__ - `onde2rock (@onde2rock) <https://github.com/onde2rock>`__
- `Oscar Bolmsten (@oscar-b) <https://github.com/oscar-b>`__ - `Oscar Bolmsten (@oscar-b) <https://github.com/oscar-b>`__
@ -422,7 +457,9 @@ Contributors
- `Otto Winter (@OttoWinter) <https://github.com/OttoWinter>`__ - `Otto Winter (@OttoWinter) <https://github.com/OttoWinter>`__
- `Oxan van Leeuwen (@oxan) <https://github.com/oxan>`__ - `Oxan van Leeuwen (@oxan) <https://github.com/oxan>`__
- `Pack3tL0ss (@Pack3tL0ss) <https://github.com/Pack3tL0ss>`__ - `Pack3tL0ss (@Pack3tL0ss) <https://github.com/Pack3tL0ss>`__
- `Pablo Clemente Maseda (@paclema) <https://github.com/paclema>`__
- `Panuruj Khambanonda (PK) (@panuruj) <https://github.com/panuruj>`__ - `Panuruj Khambanonda (PK) (@panuruj) <https://github.com/panuruj>`__
- `Pasi Suominen (@pasiz) <https://github.com/pasiz>`__
- `Paul Deen (@PaulAntonDeen) <https://github.com/PaulAntonDeen>`__ - `Paul Deen (@PaulAntonDeen) <https://github.com/PaulAntonDeen>`__
- `Paul Nicholls (@pauln) <https://github.com/pauln>`__ - `Paul Nicholls (@pauln) <https://github.com/pauln>`__
- `Bartłomiej Biernacki (@pax0r) <https://github.com/pax0r>`__ - `Bartłomiej Biernacki (@pax0r) <https://github.com/pax0r>`__
@ -442,15 +479,19 @@ Contributors
- `DK (@poldim) <https://github.com/poldim>`__ - `DK (@poldim) <https://github.com/poldim>`__
- `polyfaces (@polyfaces) <https://github.com/polyfaces>`__ - `polyfaces (@polyfaces) <https://github.com/polyfaces>`__
- `Iván Povedano (@pove) <https://github.com/pove>`__ - `Iván Povedano (@pove) <https://github.com/pove>`__
- `pplucky (@pplucky) <https://github.com/pplucky>`__
- `probonopd (@probonopd) <https://github.com/probonopd>`__
- `Peter Stuifzand (@pstuifzand) <https://github.com/pstuifzand>`__ - `Peter Stuifzand (@pstuifzand) <https://github.com/pstuifzand>`__
- `Peter Tatrai (@ptatrai) <https://github.com/ptatrai>`__ - `Peter Tatrai (@ptatrai) <https://github.com/ptatrai>`__
- `Leandro Puerari (@puerari) <https://github.com/puerari>`__ - `Leandro Puerari (@puerari) <https://github.com/puerari>`__
- `puuu (@puuu) <https://github.com/puuu>`__ - `puuu (@puuu) <https://github.com/puuu>`__
- `Qc (@qc24) <https://github.com/qc24>`__
- `Karol Zlot (@qqgg231) <https://github.com/qqgg231>`__ - `Karol Zlot (@qqgg231) <https://github.com/qqgg231>`__
- `Tommy Jonsson (@quazzie) <https://github.com/quazzie>`__ - `Tommy Jonsson (@quazzie) <https://github.com/quazzie>`__
- `Quinn Hosler (@quinnhosler) <https://github.com/quinnhosler>`__ - `Quinn Hosler (@quinnhosler) <https://github.com/quinnhosler>`__
- `r-jordan (@r-jordan) <https://github.com/r-jordan>`__ - `r-jordan (@r-jordan) <https://github.com/r-jordan>`__
- `Richard Kuhnt (@r15ch13) <https://github.com/r15ch13>`__ - `Richard Kuhnt (@r15ch13) <https://github.com/r15ch13>`__
- `Richard Miles (@r89m) <https://github.com/r89m>`__
- `Pär Stålberg (@rabbadab) <https://github.com/rabbadab>`__ - `Pär Stålberg (@rabbadab) <https://github.com/rabbadab>`__
- `Florian Ragwitz (@rafl) <https://github.com/rafl>`__ - `Florian Ragwitz (@rafl) <https://github.com/rafl>`__
- `rbaron (@rbaron) <https://github.com/rbaron>`__ - `rbaron (@rbaron) <https://github.com/rbaron>`__
@ -463,6 +504,7 @@ Contributors
- `Rich Foley (@RichFoley) <https://github.com/RichFoley>`__ - `Rich Foley (@RichFoley) <https://github.com/RichFoley>`__
- `Richard Lewis (@richrd) <https://github.com/richrd>`__ - `Richard Lewis (@richrd) <https://github.com/richrd>`__
- `Rico van Genugten (@ricovangenugten) <https://github.com/ricovangenugten>`__ - `Rico van Genugten (@ricovangenugten) <https://github.com/ricovangenugten>`__
- `rjlexx (@rjlexx) <https://github.com/rjlexx>`__
- `rjmurph2241 (@rjmurph2241) <https://github.com/rjmurph2241>`__ - `rjmurph2241 (@rjmurph2241) <https://github.com/rjmurph2241>`__
- `René Klomp (@rklomp) <https://github.com/rklomp>`__ - `René Klomp (@rklomp) <https://github.com/rklomp>`__
- `rlowens (@rlowens) <https://github.com/rlowens>`__ - `rlowens (@rlowens) <https://github.com/rlowens>`__
@ -487,6 +529,7 @@ Contributors
- `ryanalden (@ryanalden) <https://github.com/ryanalden>`__ - `ryanalden (@ryanalden) <https://github.com/ryanalden>`__
- `Ryan Nazaretian (@ryannazaretian) <https://github.com/ryannazaretian>`__ - `Ryan Nazaretian (@ryannazaretian) <https://github.com/ryannazaretian>`__
- `samnewman86 (@samnewman86) <https://github.com/samnewman86>`__ - `samnewman86 (@samnewman86) <https://github.com/samnewman86>`__
- `sascha lammers (@sascha432) <https://github.com/sascha432>`__
- `Sascha (@Scarbous) <https://github.com/Scarbous>`__ - `Sascha (@Scarbous) <https://github.com/Scarbous>`__
- `Nils Schulte (@Schnilz) <https://github.com/Schnilz>`__ - `Nils Schulte (@Schnilz) <https://github.com/Schnilz>`__
- `Ville Skyttä (@scop) <https://github.com/scop>`__ - `Ville Skyttä (@scop) <https://github.com/scop>`__
@ -498,6 +541,7 @@ Contributors
- `Emanuele Tessore (@setola) <https://github.com/setola>`__ - `Emanuele Tessore (@setola) <https://github.com/setola>`__
- `Abdelkader Boudih (@seuros) <https://github.com/seuros>`__ - `Abdelkader Boudih (@seuros) <https://github.com/seuros>`__
- `shaeed (@shaeed) <https://github.com/shaeed>`__ - `shaeed (@shaeed) <https://github.com/shaeed>`__
- `SharkSharp (@SharkSharp) <https://github.com/SharkSharp>`__
- `shbatm (@shbatm) <https://github.com/shbatm>`__ - `shbatm (@shbatm) <https://github.com/shbatm>`__
- `sherbang (@sherbang) <https://github.com/sherbang>`__ - `sherbang (@sherbang) <https://github.com/sherbang>`__
- `Shish (@shish) <https://github.com/shish>`__ - `Shish (@shish) <https://github.com/shish>`__
@ -519,6 +563,7 @@ Contributors
- `St4n (@St4n) <https://github.com/St4n>`__ - `St4n (@St4n) <https://github.com/St4n>`__
- `starwolf73 (@starwolf73) <https://github.com/starwolf73>`__ - `starwolf73 (@starwolf73) <https://github.com/starwolf73>`__
- `Steve Baxter (@stevebaxter) <https://github.com/stevebaxter>`__ - `Steve Baxter (@stevebaxter) <https://github.com/stevebaxter>`__
- `sticilface (@sticilface) <https://github.com/sticilface>`__
- `stubs12 (@stubs12) <https://github.com/stubs12>`__ - `stubs12 (@stubs12) <https://github.com/stubs12>`__
- `Jordan Vohwinkel (@sublime93) <https://github.com/sublime93>`__ - `Jordan Vohwinkel (@sublime93) <https://github.com/sublime93>`__
- `Marcel Feix (@Syndlex) <https://github.com/Syndlex>`__ - `Marcel Feix (@Syndlex) <https://github.com/Syndlex>`__
@ -530,6 +575,7 @@ Contributors
- `Team Super Panda (@teamsuperpanda) <https://github.com/teamsuperpanda>`__ - `Team Super Panda (@teamsuperpanda) <https://github.com/teamsuperpanda>`__
- `teffcz (@teffcz) <https://github.com/teffcz>`__ - `teffcz (@teffcz) <https://github.com/teffcz>`__
- `testbughub (@testbughub) <https://github.com/testbughub>`__ - `testbughub (@testbughub) <https://github.com/testbughub>`__
- `Greg Lincoln (@tetious) <https://github.com/tetious>`__
- `The Impaler (@the-impaler) <https://github.com/the-impaler>`__ - `The Impaler (@the-impaler) <https://github.com/the-impaler>`__
- `Nejc (@thedexboy) <https://github.com/thedexboy>`__ - `Nejc (@thedexboy) <https://github.com/thedexboy>`__
- `Thomas Eckerstorfer (@TheEggi) <https://github.com/TheEggi>`__ - `Thomas Eckerstorfer (@TheEggi) <https://github.com/TheEggi>`__
@ -562,10 +608,13 @@ Contributors
- `David Kiliani (@torfbolt) <https://github.com/torfbolt>`__ - `David Kiliani (@torfbolt) <https://github.com/torfbolt>`__
- `Torwag (@torwag) <https://github.com/torwag>`__ - `Torwag (@torwag) <https://github.com/torwag>`__
- `Felix Eckhofer (@tribut) <https://github.com/tribut>`__ - `Felix Eckhofer (@tribut) <https://github.com/tribut>`__
- `Tobias (@tripplet) <https://github.com/tripplet>`__
- `Troon (@Troon) <https://github.com/Troon>`__ - `Troon (@Troon) <https://github.com/Troon>`__
- `truglodite (@truglodite) <https://github.com/truglodite>`__ - `truglodite (@truglodite) <https://github.com/truglodite>`__
- `Trevor North (@trvrnrth) <https://github.com/trvrnrth>`__ - `Trevor North (@trvrnrth) <https://github.com/trvrnrth>`__
- `Trygve Laugstøl (@trygvis) <https://github.com/trygvis>`__
- `Gediminas Šaltenis (@trylika) <https://github.com/trylika>`__ - `Gediminas Šaltenis (@trylika) <https://github.com/trylika>`__
- `Tuan (@tuanpmt) <https://github.com/tuanpmt>`__
- `tubalainen (@tubalainen) <https://github.com/tubalainen>`__ - `tubalainen (@tubalainen) <https://github.com/tubalainen>`__
- `Tuckie (@Tuckie) <https://github.com/Tuckie>`__ - `Tuckie (@Tuckie) <https://github.com/Tuckie>`__
- `Alexey Vlasov (@turbulator) <https://github.com/turbulator>`__ - `Alexey Vlasov (@turbulator) <https://github.com/turbulator>`__
@ -579,6 +628,7 @@ Contributors
- `voibit (@voibit) <https://github.com/voibit>`__ - `voibit (@voibit) <https://github.com/voibit>`__
- `Xuming Feng (@voicevon) <https://github.com/voicevon>`__ - `Xuming Feng (@voicevon) <https://github.com/voicevon>`__
- `vxider (@Vxider) <https://github.com/Vxider>`__ - `vxider (@Vxider) <https://github.com/Vxider>`__
- `WallyCZ (@WallyCZ) <https://github.com/WallyCZ>`__
- `warpzone (@warpzone) <https://github.com/warpzone>`__ - `warpzone (@warpzone) <https://github.com/warpzone>`__
- `Wauter (@Wauter) <https://github.com/Wauter>`__ - `Wauter (@Wauter) <https://github.com/Wauter>`__
- `webeling67 (@webeling67) <https://github.com/webeling67>`__ - `webeling67 (@webeling67) <https://github.com/webeling67>`__
@ -608,4 +658,4 @@ Contributors
- `San (@zhujunsan) <https://github.com/zhujunsan>`__ - `San (@zhujunsan) <https://github.com/zhujunsan>`__
- `Christian Zufferey (@zuzu59) <https://github.com/zuzu59>`__ - `Christian Zufferey (@zuzu59) <https://github.com/zuzu59>`__
*This page was last updated July 22, 2021.* *This page was last updated July 27, 2021.*