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
# control system is used.
<<<<<<< HEAD
<<<<<<< HEAD
PROJECT_NUMBER = 1.21.0-dev
=======
PROJECT_NUMBER = 1.20.0
>>>>>>> current
=======
PROJECT_NUMBER = 1.20.1
>>>>>>> current
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a

View File

@ -1,5 +1,5 @@
ESPHOME_PATH = ../esphome
ESPHOME_REF = 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

View File

@ -1,5 +1,9 @@
<<<<<<< HEAD
<<<<<<< HEAD
1.21.0-dev
=======
1.20.0
>>>>>>> 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
- 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
--------------------

View File

@ -17,7 +17,7 @@ the eight touch pads of the ESP32 as :ref:`binary sensors <esp32-touch-binary-se
# Example configuration entry
esp32_touch:
setup_mode: False
setup_mode: false
binary_sensor:
- 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
esp32_touch:
setup_mode: True
setup_mode: true
binary_sensor:
- platform: esp32_touch
@ -148,7 +148,7 @@ touch/non-touch events.
:align: center
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.
See Also

View File

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

View File

@ -7,7 +7,7 @@ Nextion Binary Sensor Component
:description: Instructions for setting up Nextion binary sensor.
: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.
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_y_min: 340
calibration_y_max: 3860
swap_x_y: False
swap_x_y: false
binary_sensor:
- 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
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,
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.
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
on_frame:
- can_id: 500
use_extended_id: False
use_extended_id: false
then:
- lambda: |-
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.
- **can_id** (**Required**, integer): default *can id* used for transmitting frames.
- **use_extended_id** (*Optional*, boolean): default *False* identifies the type of *can_id*:
*False*: Standard 11 bits IDs, *True*: Extended 29 bits ID
- **use_extended_id** (*Optional*, boolean): default *false* identifies the type of *can_id*:
*false*: Standard 11 bits IDs, *true*: Extended 29 bits ID
- **bit_rate** (*Optional*, enum): One of the supported bitrates. Defaults to ``125KBPS``.
- 5KBPS
@ -138,8 +138,8 @@ Configuration variables:
the frame. Not needed if you are using only 1 can bus.
- **can_id** (*Optional*, int): Allows to override the can id configured in
the can bus device.
- **use_extended_id** (*Optional*, boolean): default *False* identifies the type of *can_id*:
*False*: Standard 11 Bit IDs, *True*: Extended 29Bit ID
- **use_extended_id** (*Optional*, boolean): default *false* identifies the type of *can_id*:
*false*: Standard 11 Bit IDs, *true*: Extended 29Bit ID
MCP2515 Component
-----------------
@ -221,7 +221,7 @@ Standard IDs and Extended IDs can coexist on the same segment.
then:
- canbus.send:
# Extended ID explicit
use_extended_id: True
use_extended_id: true
can_id: 0x100
data: [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08]
- canbus.send:
@ -235,11 +235,11 @@ Standard IDs and Extended IDs can coexist on the same segment.
spi_id: McpSpi
cs_pin: GPIO14
can_id: 0x1fff
use_extended_id: True
use_extended_id: true
bit_rate: 125kbps
on_frame:
- can_id: 0x123
use_extended_id: True
use_extended_id: true
then:
- lambda: |-
std::string b(x.begin(), x.end());

View File

@ -68,8 +68,8 @@ Configuration variables:
- **name** (**Required**, string): The name for the climate device.
- **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.
- **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_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``.
- **receiver_id** (*Optional*, :ref:`config-id`): The id of the remote_receiver if this platform supports
receiver. see: :ref:`ir-receiver_id`.
- All other options from :ref:`Climate <config-climate>`.
@ -102,7 +102,7 @@ IR receiver.
id: rcvr
pin:
number: GPIO14
inverted: True
inverted: true
mode: INPUT_PULLUP
# high 55% tolerance is recommended for some remote control units
tolerance: 55%

View File

@ -91,14 +91,14 @@ Configuration variables:
- **name** (**Required**, string): The name of the sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **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.
- **preset_eco** (*Optional*, boolean): ECO 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_eco** (*Optional*, boolean): ECO 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``.
- **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_both** (*Optional*, boolean): Enable **swing both** 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``.
- All other options from :ref:`Climate <config-climate>`.
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
to use multiple UART buses.
- **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:

View File

@ -45,8 +45,8 @@ Configuration variables:
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- **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_cool** (*Optional*, boolean): Specifies if the device has a cooling mode. Defaults to ``False``.
- **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``.
- **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_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
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
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.
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.
- 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
number (from all tracks in the device). If not specified plays the first track.
- **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
-------------------------------
@ -147,7 +147,7 @@ Configuration options:
- **file** (*Optional*, int, :ref:`templatable <config-templatable>`): The file number
inside the folder to play. Optional only if ``loop`` is not set.
- **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
@ -369,7 +369,7 @@ Sample code
then:
- dfplayer.play_folder:
folder: !lambda 'return folder;'
loop: True
loop: true
- service: dfplayer_set_device_tf
then:

View File

@ -70,8 +70,8 @@ Configuration variables:
************************
- **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``
- **partial_updating** (*Optional*, boolean): Makes the screen update partially, which is faster, but leaves burnin. 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``
- **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.
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
to use multiple SPI buses.
- **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:

View File

@ -46,7 +46,7 @@ Configuration variables:
``4``.
- **rotate_chip** (*Optional*): Rotates every 8x8 chip. Valid values are ``0``, ``90``, ``180`` and ``270``.
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``
- ``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_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``.
- **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
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

View File

@ -51,15 +51,15 @@ Configuration variables:
- **device_height** (**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
- **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.
Memory notes:
*************
- 8Bit color saves 50% of the buffer required.
- eightbitcolor: True 160x128 = 20480 *Important for memory constrained devices*
- eightbitcolor: False 160x128x2 = 40960
- ``eight_bit_color: true`` 160x128 = 20480 *Important for memory constrained devices*
- ``eight_bit_color: false`` 160x128x2 = 40960
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>`__.
- **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
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`.
- **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:
sda: 21
scl: 22
scan: True
scan: true
id: bus_a
Configuration variables:
@ -34,7 +34,7 @@ Configuration variables:
Defaults to the default of your board (usually GPIO22 for ESP32 and
GPIO5 for ESP8266).
- **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.
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.
@ -50,11 +50,11 @@ Configuration variables:
- id: bus_a
sda: 13
scl: 16
scan: True
scan: true
- id: bus_b
sda: 14
scl: 15
scan: True
scan: true
# Sensors should be specified as follows
- platform: bme680
i2c_id: bus_b

View File

@ -459,15 +459,15 @@ This effect cycles through a list of colors with specific durations.
- strobe:
name: Strobe Effect With Custom Values
colors:
- state: True
- state: true
brightness: 100%
red: 100%
green: 90%
blue: 0%
duration: 500ms
- state: False
- state: false
duration: 250ms
- state: True
- state: true
brightness: 100%
red: 0%
green: 100%
@ -479,7 +479,7 @@ Configuration variables:
- **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.
- **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%``.
- **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%``.
@ -603,7 +603,7 @@ the strip and shifts them forward every ``add_led_interval``.
blue: 0%
num_leds: 1
add_led_interval: 100ms
reverse: False
reverse: false
Configuration variables:
@ -614,13 +614,13 @@ Configuration variables:
- **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%``.
- **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
color each time. Defaults to ``False``.
- **random** (*Optional*, boolean): If set to ``true``, will overwrite the RGB colors by a new, randomly-chosen
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.
- **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``.
- **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
***********************

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
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
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
number: 0
mode: OUTPUT
inverted: False
inverted: false
# Individual inputs
binary_sensor:
@ -49,7 +49,7 @@ The MCP23008 component (`datasheet <http://ww1.microchip.com/downloads/en/device
number: 1
# One of INPUT or INPUT_PULLUP
mode: INPUT
inverted: False
inverted: false
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``.
- **number** (**Required**, integer): The pin number.
- **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``.
.. _mcp23016-label:
@ -99,7 +99,7 @@ has 16 GPIOs and can be configured the same way than the other variants.
# Use pin number 0
number: 0
mode: OUTPUT
inverted: False
inverted: false
# Individual inputs
binary_sensor:
@ -110,7 +110,7 @@ has 16 GPIOs and can be configured the same way than the other variants.
# Use pin number 1
number: 1
mode: INPUT
inverted: False
inverted: false
Configuration variables:
@ -158,7 +158,7 @@ binary sensor or GPIO switch.
# Use pin number 0
number: 0
mode: OUTPUT
inverted: False
inverted: false
# Individual inputs
binary_sensor:
@ -170,7 +170,7 @@ binary sensor or GPIO switch.
number: 1
# One of INPUT or INPUT_PULLUP
mode: INPUT_PULLUP
inverted: False
inverted: false
Configuration variables:
************************

View File

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

View File

@ -38,10 +38,10 @@ Configuration variables:
- **client_id** (*Optional*, string): The client id to use for opening
connections. See :ref:`mqtt-defaults` for more information.
- **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 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
Assistants MQTT discovery. Should not contain trailing slash.
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
payload: online
qos: 0
retain: True
retain: true
Configuration options:
@ -103,7 +103,7 @@ Configuration options:
Service <https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels>`__
level of the topic. Defaults to 0.
- **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:
@ -126,7 +126,7 @@ discovery in your Home Assistant configuration with the following:
# Example Home Assistant configuration.yaml entry
mqtt:
broker: ...
discovery: True
discovery: true
And that should already be it 🎉 All devices defined through ESPHome should show up automatically
in the entities section of Home Assistant.
@ -253,8 +253,8 @@ MQTT can have some overrides for specific options.
name: "Component Name"
# Optional variables:
retain: True
discovery: True
retain: true
discovery: true
availability:
topic: livingroom/status
payload_available: online
@ -267,7 +267,7 @@ Configuration variables:
- **name** (**Required**, string): The name to use for the MQTT
Component.
- **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 for a component. Defaults to the global default.
- **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>`__
level of the topic. Defaults to 0.
- **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::
@ -498,7 +498,7 @@ Configuration options:
Service <https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels>`__
level of the topic. Defaults to 0.
- **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::

View File

@ -41,7 +41,7 @@ Configuration variables:
restored with ``restore_value``.
Cannot be used with ``lambda``. Defaults to ``min_value``.
- **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
----------------------------------

View File

@ -21,14 +21,14 @@ Logging+WiFi+OTA are initialized, so that you can upload a new binary.
# Example configuration entry
ota:
safe_mode: True
safe_mode: true
password: VERYSECURE
Configuration variables:
------------------------
- **safe_mode** (*Optional*, boolean): Whether to enable safe mode.
Defaults to ``True``.
Defaults to ``true``.
- **password** (*Optional*, string): The password to use for updates.
- **port** (*Optional*, int): The port to use for OTA updates. Defaults
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
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.
- All other options from :ref:`Output <config-output>`.

View File

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

View File

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

View File

@ -32,7 +32,7 @@ not work.
pcf8574:
- id: 'pcf8574_hub'
address: 0x21
pcf8575: False
pcf8575: false
# Individual outputs
switch:
@ -44,7 +44,7 @@ not work.
number: 0
# One of INPUT or OUTPUT
mode: OUTPUT
inverted: False
inverted: false
Configuration variables:
************************
@ -52,7 +52,7 @@ Configuration variables:
- **id** (**Required**, :ref:`config-id`): The id to use for this PCF8574 component.
- **address** (*Optional*, int): The I²C address of the driver.
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:
@ -61,7 +61,7 @@ Pin configuration variables:
- **pcf8574** (**Required**, :ref:`config-id`): The id of the PCF8574 component of the pin.
- **number** (**Required**, integer): The pin number.
- **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``.

View File

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

View File

@ -26,7 +26,7 @@ Configuration variables:
- **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.
- **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.

View File

@ -96,7 +96,7 @@ In teleinfo platform:
- **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
standard mode. Defaults to ``False``.
standard mode. Defaults to ``false``.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
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"
address: 0x29
update_interval: 60s
long_range: True
long_range: true
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
# Use pin number 0
number: 0
inverted: False
inverted: false
Configuration variables:
************************
@ -59,7 +59,7 @@ Pin configuration variables:
- **sn74hc595** (**Required**, :ref:`config-id`): The id of the SN74HC595 component of the pin.
- **number** (**Required**, integer): The pin number.
- **inverted** (*Optional*, boolean): If all written values should be treated as inverted.
Defaults to ``False``.
Defaults to ``false``.
See Also

View File

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

View File

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

View File

@ -27,7 +27,7 @@ Configuration variables:
sensor in the frontend.
- **inverted** (*Optional*, boolean): Whether to invert the binary
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
not be exposed to the frontend (like Home Assistant). Only specifying an ``id`` without
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
number: 0
mode: INPUT_PULLUP
inverted: True
inverted: true
# Individual binary outputs
switch:
@ -164,7 +164,7 @@ The outputs can in turn be used to add PWM-enabled lights like the monochromatic
number: 1
# use as output for switch
mode: OUTPUT
inverted: False
inverted: false
# Individual outputs
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.
- **number** (**Required**, integer): The pin number.
- **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``,
``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
id: multiplex0
i2c_id: i2c0
scan: True
scan: true
# Individual I2C Devices
sensor:

View File

@ -23,7 +23,7 @@ Configuration variables:
------------------------
- **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.
- All other options from :ref:`Text Sensor <config-text_sensor>`.
@ -36,7 +36,7 @@ Disabling the compilation timestamp:
text_sensor:
- platform: version
name: "ESPHome Version"
hide_timestamp: True
hide_timestamp: true
This will, for example, change the output of the senser from:

View File

@ -54,7 +54,7 @@ Configuration variables:
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:

View File

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

View File

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

View File

@ -89,7 +89,7 @@ I also needed this procedure to flash M5Stack ATOM Lite and ATOM Matrix modules,
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:
pin:
number: GPIO10
inverted: True
inverted: true
spi:
clk_pin: GPIO13
@ -171,10 +171,10 @@ ESPHome configuration
- id: bus_a
sda: GPIO21
scl: GPIO22
scan: True
scan: true
esp32_touch:
#setup_mode: True
#setup_mode: true
iir_filter: 10ms
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:
number: GPIO14
mode: INPUT_PULLUP
inverted: True
inverted: true
id: button_1
on_press:
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:
number: GPIO4
mode: INPUT_PULLUP
inverted: True
inverted: true
id: button_1
on_press:
then:
@ -108,7 +108,7 @@ The R1 version of the Dual controls the relays via the UART, so the code gets a
pin:
number: GPIO14
mode: INPUT_PULLUP
inverted: True
inverted: true
id: button_2
on_press:
then:
@ -197,7 +197,7 @@ It's basically the same as the :doc:`T2 </cookbook/sonoff-t1-3>`
pin:
number: GPIO0
mode: INPUT_PULLUP
inverted: True
inverted: true
id: button
on_press:
then:
@ -207,7 +207,7 @@ It's basically the same as the :doc:`T2 </cookbook/sonoff-t1-3>`
pin:
number: GPIO14
mode: INPUT_PULLUP
inverted: True
inverted: true
id: button
on_press:
then:

View File

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

View File

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

View File

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

View File

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

View File

@ -226,7 +226,7 @@ of the basic functions.
pin:
number: GPIO0
mode: INPUT_PULLUP
inverted: True
inverted: true
name: "Sonoff S20 Button"
- platform: status
name: "Sonoff S20 Status"
@ -246,7 +246,7 @@ of the basic functions.
id: s20_green_led
pin:
number: GPIO13
inverted: True
inverted: true
light:
# ... 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
pin:
number: GPIO13
inverted: True
inverted: true
# Note: do *not* make the relay a dimmable (PWM) signal, relays cannot handle that
- platform: gpio
id: s20_relay

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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