Merge branch 'current' into next

This commit is contained in:
Jesse Hills 2021-07-27 09:42:47 +12:00
commit d41b259a28
No known key found for this signature in database
GPG Key ID: BEAAE804EFD8E83A
50 changed files with 436 additions and 79 deletions

View File

@ -38,7 +38,11 @@ PROJECT_NAME = "ESPHome"
# could be handy for archiving the generated documentation or if some version
# control system is used.
<<<<<<< HEAD
PROJECT_NUMBER = 1.21.0-dev
=======
PROJECT_NUMBER = 1.20.0
>>>>>>> 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 = dev
ESPHOME_REF = v1.20.0
.PHONY: html html-strict cleanhtml deploy help webserver Makefile netlify netlify-api api netlify-dependencies svg2png copy-svg2png

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -2,7 +2,7 @@ Changelog
=========
.. redirect::
:url: /changelog/v1.19.0.html
:url: /changelog/v1.20.0.html
.. toctree::
:glob:

219
changelog/v1.20.0.rst Normal file
View File

@ -0,0 +1,219 @@
Changelog - Version 1.20.0 - 21st July 2021
===========================================
.. seo::
:description: Changelog for ESPHome version 1.20.0.
:image: /_static/changelog-1.20.0.png
:author: ESPHome
:author_twitter: @esphome_
.. imgtable::
:columns: 2
Number Core, components/number/index, folder-open.svg
Template Number, components/number/template, description.svg
Havells Inverter, components/sensor/havells_inverter, havellsgti5000d_s.jpg
Anova Cooker, components/climate/anova, anova.png
Here's to another timely release bringing a few new components and a whole bunch of changes under
the hood to existing ones.
Number Entities
---------------
Creating ``number`` entities in Home Assistant from ESPHome is now supported. This basically replaces
creating an ``input_number`` and then importing that sensor into ESPHome as a sensor with
``platform: homeassistant``. The state of the number can also be updated directly on the ESPHome device
and will be reflected in Home Assistant.
I would like to see what other platforms people can come up with for the number component,
I have a few ideas myself.
Light Changes
-------------
Unfortunately, some breaking changes had to be made:
- For addressable RGBW lights, the brightness now also applies to the white channel (this was already the case for
non-addressable RGBW lights). If you want to control only the brightness of the color channel, use the new ``color_brightness`` option.
- For RGBW lights, the white channel is no longer normalized by the color intensity in the ``light.turn_on`` and
``light.control`` actions. In previous versions, if the red value was set to 60% and the white value to 30%, this
would result in the white channel being at 50% brightness. Starting with this version, this will result in the
white channel being set to 30%, as expected.
ESPHome Dashboard
-----------------
Thanks :ghuser:`balloob` for making a small, but very significant change to the dashboard cards so now people who suffer from color-blindness
will know whether or not the node is online.
.. figure:: images/online-indicator.png
:align: center
:width: 50.0%
Nextion
-------
The Nextion component has had a major rewrite this release bringing many more features to those that use the displays.
I am not sure how to describe the changes except for listing the main change points from the PR and linking to the docs
for you to read yourself. :doc:`/components/display/nextion`
- Sensors/binary sensors/switch/text sensors and touch have all been added.
- Over the air TFT file upload
- Polling has been added to all the components
- Display on_wake/on_sleep
- Many API helpers (get_string/get_int) have been added
Full list of changes
--------------------
New Features
^^^^^^^^^^^^
- Allow WiFi AP to use device name :esphomepr:`1990` by :ghuser:`jesserockz` (new-feature)
- Add Number entities (from Home Assistant) :esphomepr:`1971` by :ghuser:`jesserockz` (new-feature) (new-integration) (notable-change)
- Nextion upload and sensors :esphomepr:`1464` by :ghuser:`SenexCrenshaw` (cherry-picked) (new-feature) (notable-change)
- Adding last_reset_type to sensors that should support it. :esphomepr:`2039` by :ghuser:`jesserockz` (cherry-picked) (new-feature)
New Components
^^^^^^^^^^^^^^
- Climate component for Ballu air conditioners with remote model YKR-K/002E :esphomepr:`1939` by :ghuser:`bazuchan` (new-integration)
- Anova ble component :esphomepr:`1752` by :ghuser:`buxtronix` (new-integration)
- Add Number entities (from Home Assistant) :esphomepr:`1971` by :ghuser:`jesserockz` (new-feature) (new-integration) (notable-change)
- Added support for havells_solar sensor :esphomepr:`1988` by :ghuser:`sourabhjaiswal` (new-integration)
Breaking Changes
^^^^^^^^^^^^^^^^
- remote_receiver use config parent receiver for registering dumpers :esphomepr:`1980` by :ghuser:`jesserockz` (breaking-change)
- Change color model to fix white channel issues :esphomepr:`1895` by :ghuser:`oxan` (breaking-change)
- Remove a whole bunch of deprecated/removed stuff :esphomepr:`1981` by :ghuser:`jesserockz` (breaking-change)
- catch 0.0 in float set_level pre-adjustment :esphomepr:`2013` by :ghuser:`WeekendWarrior1` (breaking-change)
- Climate mode meaning was changed :esphomepr:`1995` by :ghuser:`OttoWinter` (breaking-change)
Beta Fixes
^^^^^^^^^^
- Nextion upload and sensors :esphomepr:`1464` by :ghuser:`SenexCrenshaw` (cherry-picked) (new-feature) (notable-change)
- Fix ethernet component hostname handling :esphomepr:`2010` by :ghuser:`flacjacket` (cherry-picked)
- Refactor docker build system and workflows :esphomepr:`2023` by :ghuser:`OttoWinter` (cherry-picked)
- GH Actions CI use GHCR :esphomepr:`2027` by :ghuser:`OttoWinter` (cherry-picked)
- Dashboard disable assets caching :esphomepr:`2025` by :ghuser:`OttoWinter` (cherry-picked)
- Improve external components error messages :esphomepr:`2026` by :ghuser:`OttoWinter` (cherry-picked)
- Number and Template Number updates :esphomepr:`2036` by :ghuser:`jesserockz` (cherry-picked)
- Add restore_value to template number :esphomepr:`2041` by :ghuser:`jesserockz` (cherry-picked)
- midea_ac: Fix turbo boost mode. Preset PRESET_BOOST. :esphomepr:`2029` by :ghuser:`dudanov` (cherry-picked)
- Bump dashboard to 20210719.0 :esphomepr:`2043` by :ghuser:`balloob` (cherry-picked)
- Correct ADS1115 handling of multiple sensors in continuous mode :esphomepr:`2016` by :ghuser:`flacjacket` (cherry-picked)
- ESP32 ADC use esp-idf :esphomepr:`2024` by :ghuser:`OttoWinter` (cherry-picked)
- Fix white value transition for addressable lights :esphomepr:`2045` by :ghuser:`oxan` (cherry-picked)
- Adding last_reset_type to sensors that should support it. :esphomepr:`2039` by :ghuser:`jesserockz` (cherry-picked) (new-feature)
- Remove superfluous polling on ADS1115 :esphomepr:`2015` by :ghuser:`flacjacket` (cherry-picked)
Notable Changes
^^^^^^^^^^^^^^^
- Add Number entities (from Home Assistant) :esphomepr:`1971` by :ghuser:`jesserockz` (new-feature) (new-integration) (notable-change)
- Nextion upload and sensors :esphomepr:`1464` by :ghuser:`SenexCrenshaw` (cherry-picked) (new-feature) (notable-change)
All changes
^^^^^^^^^^^
- Update ambiguous command :esphomepr:`1889` by :ghuser:`jesserockz`
- Configure clang-format for consistent pointer alignment :esphomepr:`1890` by :ghuser:`OttoWinter`
- Activate some clang-tidy checks :esphomepr:`1884` by :ghuser:`OttoWinter`
- Avoid non-const globals and enable clang-tidy check :esphomepr:`1892` by :ghuser:`agners`
- Convert st7735.cpp to use Unix line separators :esphomepr:`1894` by :ghuser:`oxan`
- Split files in light component :esphomepr:`1893` by :ghuser:`oxan`
- Fix CI by avoiding non-const global :esphomepr:`1907` by :ghuser:`oxan`
- Adds support cpp to vscode :esphomepr:`1828` by :ghuser:`dentra`
- Support ESP8266 Arduino 3.0.0 :esphomepr:`1897` by :ghuser:`agners`
- Run script/setup in devcontainer instead of pip install :esphomepr:`1913` by :ghuser:`OttoWinter`
- Fix typo in test3.yaml :esphomepr:`1928` by :ghuser:`loongyh`
- Fix error print in script/helpers.py :esphomepr:`1935` by :ghuser:`agners`
- Add variable bit width for Samsung protocol :esphomepr:`1927` by :ghuser:`kbx81`
- Add data sizes to log message :esphomepr:`1938` by :ghuser:`jesserockz`
- Update generation script to add const :esphomepr:`1945` by :ghuser:`jesserockz`
- Bump dashboard to 20210621.0 :esphomepr:`1946` by :ghuser:`balloob`
- Improve DHT read timings :esphomepr:`1901` by :ghuser:`agners`
- More VSCode devcontainer improvements :esphomepr:`1934` by :ghuser:`agners`
- Validate color temperature values for RGBWW/CWWW lights :esphomepr:`1957` by :ghuser:`oxan`
- Fix on_multi_click min_length :esphomepr:`1960` by :ghuser:`jesserockz`
- Climate component for Ballu air conditioners with remote model YKR-K/002E :esphomepr:`1939` by :ghuser:`bazuchan` (new-integration)
- Simplify initializing glyph_data :esphomepr:`1970` by :ghuser:`gladhorn`
- Add device_class support for MQTT integration :esphomepr:`1832` by :ghuser:`definitio`
- Rename master branch to release :esphomepr:`1976` by :ghuser:`OttoWinter`
- Fix tuya fan speed send :esphomepr:`1978` by :ghuser:`trvrnrth`
- Time Based Cover: Fixed apparent race condition on ESP32 chips :esphomepr:`1984` by :ghuser:`pdoidge`
- Fix invalid escape sequences in regex (fix pytest warning) :esphomepr:`1814` by :ghuser:`oxan`
- Bump hypothesis from 5.21.0 to 5.49.0 :esphomepr:`1753` by :ghuser:`mweinelt`
- Bump pytest-mock from 3.5.1 to 3.6.1 :esphomepr:`1754` by :ghuser:`dependabot[bot]`
- hlw8012: fix constants for BL0937 :esphomepr:`1973` by :ghuser:`ianchi`
- Anova ble component :esphomepr:`1752` by :ghuser:`buxtronix` (new-integration)
- Add stepper.set_acceleration and stepper.set_deceleration to stepper component :esphomepr:`1977` by :ghuser:`WeekendWarrior1`
- remote_receiver use config parent receiver for registering dumpers :esphomepr:`1980` by :ghuser:`jesserockz` (breaking-change)
- Don't try compat parsing for "esphome version" :esphomepr:`1966` by :ghuser:`oxan`
- Change color model to fix white channel issues :esphomepr:`1895` by :ghuser:`oxan` (breaking-change)
- Allow WiFi AP to use device name :esphomepr:`1990` by :ghuser:`jesserockz` (new-feature)
- Support custom fan modes in mqtt_climate :esphomepr:`1989` by :ghuser:`mgorven`
- Bump protobuf from 3.17.0 to 3.17.3 :esphomepr:`1986` by :ghuser:`dependabot[bot]`
- Bump pytest-cov from 2.11.1 to 2.12.1 :esphomepr:`1855` by :ghuser:`dependabot[bot]`
- Bump pytest-asyncio from 0.14.0 to 0.15.1 :esphomepr:`1793` by :ghuser:`dependabot[bot]`
- Improve climate mode code docs :esphomepr:`1995` by :ghuser:`OttoWinter`
- Climate modes COOL and HEAT are auto modes :esphomepr:`1994` by :ghuser:`carstenschroeder`
- Add state callback to ota component :esphomepr:`1816` by :ghuser:`mmakaay`
- Fix deprecation message for old climate swing mode methods :esphomepr:`2003` by :ghuser:`oxan`
- Add Number entities (from Home Assistant) :esphomepr:`1971` by :ghuser:`jesserockz` (new-feature) (new-integration) (notable-change)
- Fixed lolin32 lite key :esphomepr:`2001` by :ghuser:`monkeyclass`
- Add support for IBS-TH1 External Sensor :esphomepr:`1983` by :ghuser:`MikkoTervala`
- Bang bang climate new mode meanings :esphomepr:`1996` by :ghuser:`OttoWinter`
- Sgp30 sensor improvements :esphomepr:`1510` by :ghuser:`huubeikens`
- Color brightness fixes :esphomepr:`2008` by :ghuser:`oxan`
- Bump black from 21.5b1 to 21.6b0 :esphomepr:`2011` by :ghuser:`dependabot[bot]`
- Added support for havells_solar sensor :esphomepr:`1988` by :ghuser:`sourabhjaiswal` (new-integration)
- Remove a whole bunch of deprecated/removed stuff :esphomepr:`1981` by :ghuser:`jesserockz` (breaking-change)
- catch 0.0 in float set_level pre-adjustment :esphomepr:`2013` by :ghuser:`WeekendWarrior1` (breaking-change)
- Introduce clamp as a template function :esphomepr:`1953` by :ghuser:`agners`
- [Teleinfo] do not stop parsing frame if there is only a CRC error on … :esphomepr:`1999` by :ghuser:`St4n`
- Nextion upload and sensors :esphomepr:`1464` by :ghuser:`SenexCrenshaw` (cherry-picked) (new-feature) (notable-change)
- Fix ethernet component hostname handling :esphomepr:`2010` by :ghuser:`flacjacket` (cherry-picked)
- Refactor docker build system and workflows :esphomepr:`2023` by :ghuser:`OttoWinter` (cherry-picked)
- GH Actions CI use GHCR :esphomepr:`2027` by :ghuser:`OttoWinter` (cherry-picked)
- Dashboard disable assets caching :esphomepr:`2025` by :ghuser:`OttoWinter` (cherry-picked)
- Improve external components error messages :esphomepr:`2026` by :ghuser:`OttoWinter` (cherry-picked)
- Number and Template Number updates :esphomepr:`2036` by :ghuser:`jesserockz` (cherry-picked)
- Add restore_value to template number :esphomepr:`2041` by :ghuser:`jesserockz` (cherry-picked)
- midea_ac: Fix turbo boost mode. Preset PRESET_BOOST. :esphomepr:`2029` by :ghuser:`dudanov` (cherry-picked)
- Bump dashboard to 20210719.0 :esphomepr:`2043` by :ghuser:`balloob` (cherry-picked)
- Correct ADS1115 handling of multiple sensors in continuous mode :esphomepr:`2016` by :ghuser:`flacjacket` (cherry-picked)
- ESP32 ADC use esp-idf :esphomepr:`2024` by :ghuser:`OttoWinter` (cherry-picked)
- Fix white value transition for addressable lights :esphomepr:`2045` by :ghuser:`oxan` (cherry-picked)
- Adding last_reset_type to sensors that should support it. :esphomepr:`2039` by :ghuser:`jesserockz` (cherry-picked) (new-feature)
- Remove superfluous polling on ADS1115 :esphomepr:`2015` by :ghuser:`flacjacket` (cherry-picked)
Past Changelogs
---------------
.. toctree::
:maxdepth: 1
v1.19.0
v1.18.0
v1.17.0
v1.16.0
v1.15.0
v1.14.0
v1.13.0
v1.12.0
v1.11.0
v1.10.0
v1.9.0
v1.8.0
v1.7.0

View File

@ -8,7 +8,7 @@ Nextion Binary Sensor Component
: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.
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
@ -54,8 +54,8 @@ Configuration variables:
- All other options from :ref:`Binary Sensor <config-binary_sensor>`.
**Touch Sensor:**
The Nextion will send a **page_id** and **component_id** when the *Send Component ID* check box is selected for the component. To enable
this native event **page_id** and **component_id** are required. No :ref:`nextion_custom_binary_sensor_protocol` is required. If **page_id** and **component_id** are set then the component will only react to touch events from the Nextion. Setting **component_name** will allow setting options like forground color.
The Nextion will send a **page_id** and **component_id** when the *Send Component ID* check box is selected for the component. To enable
this native event **page_id** and **component_id** are required. No :ref:`nextion_custom_binary_sensor_protocol` is required. If **page_id** and **component_id** are set then the component will only react to touch events from the Nextion. Setting **component_name** will allow setting options like foreground color.
.. note::
@ -76,7 +76,7 @@ Example:
lambda: |-
id(nextion1).update_components_by_page_prefix("page"+x+".");
See :ref:`nextion_binary_sensor_how_things_update` for additional information
@ -120,15 +120,15 @@ more advanced functions (see the full :apiref:`nextion/binary_sensor/nextion_bin
How things Update
-----------------
A Nextion component with an integer value (.val) or Nextion variable will be automatically polled if **update_interval** is set.
To have the Nextion send the data you can use the :ref:`nextion_custom_binary_sensor_protocol` for this. Add the :ref:`nextion_custom_binary_sensor_protocol` to the
component or function you want to trigger the send. Typically this is in *Touch Press Event* but some components, like a slider, should have it
set in the *Touch Release Event* to capture all the changes. Since this is a custom protocol it can be sent from anywhere (timers/functions/componenets)
in the Nextion.
To have the Nextion send the data you can use the :ref:`nextion_custom_binary_sensor_protocol` for this. Add the :ref:`nextion_custom_binary_sensor_protocol` to the
component or function you want to trigger the send. Typically this is in *Touch Press Event* but some components, like a slider, should have it
set in the *Touch Release Event* to capture all the changes. Since this is a custom protocol it can be sent from anywhere (timers/functions/components)
in the Nextion.
.. note::
There is no need to check the *Send Component ID* for the *Touch Press Event* or *Touch Release Event*
for an integer value component since this will be sending the real value to esphome,
for an integer value component since this will be sending the real value to esphome,
but make sure you have both checked for a touch sensor.
@ -137,11 +137,11 @@ Using the above yaml example:
- "Radio 0 Binary Sensor" will poll the Nextion for the ``r0.val`` value and set the state accordingly.
- "Is Darkmode Set" will NOT poll the Nextion. Either the Nextion will need to use the :ref:`nextion_custom_binary_sensor_protocol` or use a lambda:
- :ref:`Lambda Calls <nextion_binary_sensor_lambda_calls>`.
- :ref:`Lambda Calls <nextion_binary_sensor_lambda_calls>`.
.. note::
No updates will be sent to the Nextion if it is sleeping. Once it wakes the components will be updated. If a component is invisible , :code:`visible(false)` , then it wont update until it is set to be visible.
No updates will be sent to the Nextion if it is sleeping. Once it wakes the components will be updated. If a component is invisible , :code:`visible(false)` , then it won't update until it is set to be visible.
.. _nextion_custom_binary_sensor_protocol:

View File

@ -31,7 +31,7 @@ Over SPI
--------
The ``rc522_spi`` component allows you to use RC522 RFID controllers with ESPHome. This component is a global hub that
establishes the connection to the RC522 via :ref:`SPI <spi>` (also avilable over I²C). Using the
establishes the connection to the RC522 via :ref:`SPI <spi>` (also available over I²C). Using the
:ref:`RC522 binary sensors <rc522-tag>` you can then create individual binary sensors that track if
an RFID tag is currently detected by the RC522.
@ -67,7 +67,7 @@ Over I²C
--------
The ``rc522_i2c`` component allows you to use RC522 RFID controllers with ESPHome. This component is a global hub that
establishes the connection to the RC522 via :ref:`I²C <i2c>` (also avilable over SPI). Using the
establishes the connection to the RC522 via :ref:`I²C <i2c>` (also available over SPI). Using the
:ref:`RC522 binary sensors <rc522-tag>` you can then create individual binary sensors that track if
an RFID tag is currently detected by the RC522.

View File

@ -25,7 +25,7 @@ transmitted data.
The CAN bus itself has only two wires named Can High and Can Low or CanH and CanL. For the ESPHome
CAN bus to work you need to select the device that has the physical CAN bus implemented.
At this moment only the MCP2515 driver is supported. You can configure multiple busses.
At this moment only the MCP2515 driver is supported. You can configure multiple buses.
Any can bus node can transmit data at any time, and any node can send any ``can_id`` value and any
node can receive any can_id too. Is up to you how to organize the can_id values. You can setup a can

View File

@ -25,6 +25,10 @@ address of your Anova device.
You cannot use the Anova app over BLE whilst this component is connected, you
should disconnect it first. To setup a (dis-)connect switch, see :doc:`/components/switch/ble_client`.
.. warning::
The Anova Nano is not currently supported as it uses a different BLE protocol.
.. code-block:: yaml
ble_client:

View File

@ -72,7 +72,16 @@ Configuration variables:
- **id** (**Required**, :ref:`config-id`): The ID of the climate device to control.
- **mode** (*Optional*, string, :ref:`templatable <config-templatable>`): Put the climate device
in a specific mode. One of ``OFF``, ``HEAT_COOL``, ``COOL`` and ``HEAT``.
in a specific mode. One of
- ``OFF`` - The device is manually set to off, the device is inactive.
- ``AUTO`` - The device is should adjust the temperature dynamically. For example based on a schedule, or learned behavior.
- ``HEAT`` - The device is set to heat to reach a target temperature.
- ``COOL`` - The device is set to cool to reach a target temperature.
- ``HEAT_COOL`` - The device should heat/cool to maintain a target temperature.
- ``FAN_ONLY`` - The device only has the fan enabled, no heating or cooling is taking place.
- ``DRY`` - The device is set to dry/humidity mode.
- **target_temperature** (*Optional*, float, :ref:`templatable <config-templatable>`): Set the
target temperature of a climate device.
- **target_temperature_low** (*Optional*, float, :ref:`templatable <config-templatable>`): Set the

View File

@ -10,7 +10,7 @@ physical thermostat. Its operation is similar to the :doc:`bang-bang <bang_bang>
(the air temperature) and the controller will try to keep this value within a range defined by the set point(s). To do this,
the controller can activate devices like a heating unit and/or a cooling unit to change the value observed by the sensor.
When configured for both heating and cooling, it is essentially two :doc:`bang-bang <bang_bang>` controllers in one; it
differs, however, in that interation with the thermostat component is nearly identical to that of a real thermostat.
differs, however, in that interaction with the thermostat component is nearly identical to that of a real thermostat.
This component can operate in one of two ways:

View File

@ -15,7 +15,7 @@ controlling the cover. The user just needs to enter what to do when the platform
cover in either direction, or stop it, as well as information about open and close information so that
the current position can be approximated.
Additionally, open and close durations can be specified to allow ESPHome to approximate the
Additionally, open and close durations must be specified to allow ESPHome to approximate the
current position of the cover.
.. figure:: images/more-info-ui.png
@ -55,7 +55,7 @@ Configuration variables:
- **open_endstop** (**Required**, :ref:`config-id`): The ID of the
:ref:`Binary Sensor <config-binary_sensor>` that turns on when the open position is reached.
- **close_action** (*Optional*, :ref:`Action <config-action>`): The action that should
- **close_action** (**Required**, :ref:`Action <config-action>`): The action that should
be performed when the remote requests the cover to be closed.
- **close_duration** (**Required**, :ref:`config-time`): The amount of time it takes the cover
to close from the fully-open state.

View File

@ -194,7 +194,7 @@ The display can be switched on and off "dynamically" within the lambda code with
it.turn_on_off(true);
For a quick display some additional commands are embedded in the code with a related 8 pixel font. Three methods
(``printdigit``, ``printdigitf`` and ``strftimedigit``) can be used for diplaying characters. Each 8 X 8 grid is used to
(``printdigit``, ``printdigitf`` and ``strftimedigit``) can be used for displaying characters. Each 8 X 8 grid is used to
display a single character. So not very space efficient. The format of the command is: ``it.printdigit("1234");`` or
``it.printdigitf("%s","1234")``;

View File

@ -54,7 +54,7 @@ Configuration variables:
- **dns1** (*Optional*, IPv4 address): The main DNS server to use.
- **dns2** (*Optional*, IPv4 address): The backup DNS server to use.
- **enable_mdns** (*Optional*, boolean): Controls if your node should advertise its presense and services using mDNS. When set to ``false`` you won't be able to access your node using its hostname which can break certain functionalities. Please see :ref:`notes on disabling mDNS <faq-notes_on_disabling_mdns>`. Defaults to ``true``.
- **enable_mdns** (*Optional*, boolean): Controls if your node should advertise its presence and services using mDNS. When set to ``false`` you won't be able to access your node using its hostname which can break certain functionalities. Please see :ref:`notes on disabling mDNS <faq-notes_on_disabling_mdns>`. Defaults to ``true``.
- **use_address** (*Optional*, string): Manually override what address to use to connect
to the ESP. Defaults to auto-generated value. For example, if you have changed your
static IP and want to flash OTA to the previously configured IP address.

View File

@ -417,7 +417,7 @@ Configuration variables:
- **name** (*Optional*, string): The name of the effect. Defaults to ``Pulse``.
- **transition_length** (*Optional*, :ref:`config-time`): The duration of each transition. Defaults to ``1s``.
- **update_interval** (*Optional*, :ref:`config-time`): The interval when the new transistion is started. Defaults to ``1s``.
- **update_interval** (*Optional*, :ref:`config-time`): The interval when the new transition is started. Defaults to ``1s``.
Random Effect
@ -529,7 +529,7 @@ This effect allows you to write completely custom light effects yourself using :
lambda: |-
static int state = 0;
auto call = id(my_light).turn_on();
// Transtion of 1000ms = 1s
// Transition of 1000ms = 1s
call.set_transition_length(1000);
if (state == 0) {
call.set_rgb(1.0, 1.0, 1.0);
@ -992,7 +992,7 @@ Configuration variables:
.. note::
You can also set the ``port`` to ``19446`` for compatability with Hyperion Classic using a
You can also set the ``port`` to ``19446`` for compatibility with Hyperion Classic using a
UDP device with protocol 0.
Currently the following realtime protocols are supported:

View File

@ -38,7 +38,7 @@ Advanced settings:
- **esp8266_store_log_strings_in_flash** (*Optional*, boolean): If set to false, disables storing
log strings in the flash section of the device (uses more memory). Defaults to true.
- **on_message** (*Optional*, :ref:`Automation <automation>`): An action to be
performed when a message is to be looged. The vairables ``int level``, ``const char* tag`` and
performed when a message is to be logged. The variables ``int level``, ``const char* tag`` and
``const char* message`` are available for lambda processing.
.. _logger-hardware_uarts:

View File

@ -110,7 +110,7 @@ progress percentage (a value between 0 and 100) from the trigger with variable `
``on_end``
**********
This automation will be triggered when an OTA update has completed sucessfully,
This automation will be triggered when an OTA update has completed successfully,
right before the device is rebooted.
Because the update has completed, you can safely use an automation action that

View File

@ -224,7 +224,7 @@ Remote code selection (exactly one of these has to be included):
.. note::
To caputure the codes more effectively with directly connected receiver like tsop38238 you can try to use ``INPUT_PULLUP``:
To capture the codes more effectively with directly connected receiver like tsop38238 you can try to use ``INPUT_PULLUP``:
.. code-block:: yaml

View File

@ -7,7 +7,7 @@ RF Bridge Component
:keywords: RF Bridge
The ``RF Bridge`` Component provides the ability to send and receive 433MHz remote codes without hardware
hacking the circuit board to bypass the ``efm8bb1`` MCU. This component implements the communcation protocol
hacking the circuit board to bypass the ``efm8bb1`` MCU. This component implements the communication protocol
that the original ``efm8bb1`` firmware implements. The device is connected via the
:doc:`UART bus </components/uart>`. The uart bus must be configured at the same speed of the module
which is 19200bps.

View File

@ -38,7 +38,7 @@ Configuration variables
-----------------------
- **mac_address** (**Required**): The MAC address of the device.
- **temperature** (*Optional*): Air temperature in Celcius.
- **temperature** (*Optional*): Air temperature in Celsius.
- **name** (**Required**): Sensor name.
- All other options from :ref:`Sensor <config-sensor>`.

View File

@ -32,7 +32,7 @@ your configuration for this sensor to work.
update_interval: 60s
By default the **measurement_duration** is set to ``69`` which will result into measurements up
to 54612.5 lx for this sensor. For low-light situtations consider to choose a higher
to 54612.5 lx for this sensor. For low-light situations consider to choose a higher
measurement_duration up to ``254`` which will result in a maximum measurement range up to 14835 lx.
For sunny scenes (for example outdoors with sunlight) use lower values down to ``31`` which will
give you the maximum measurement range up to 121556 lx.

View File

@ -92,7 +92,7 @@ Configuration variables:
When using a voltage transformer this is the secondary turns to primary turns ratio. When using a
current transformer (such as the ZMPT101B) this is equals
``(secondary turns * burden resistor value) / (primary turns * limiting resistor value)``, and
similarly for combiations of transfomers and voltage dividers. Defaults to ``0.001``. Must be
similarly for combinations of transfomers and voltage dividers. Defaults to ``0.001``. Must be
a positive number.
- **phase_offset** (*Optional*): This can be used to account for a phase offset between the voltage
sensing circuit and the current sensing circuit to improve power measurement accuracy. Admits

View File

@ -157,9 +157,9 @@ Configuration variables:
- **today_generation_time** (*Optional*): Use the day generation time value for same day of the
sensor in minutes. All options from :ref:`Sensor <config-sensor>`.
- **inverter_module_temp** (*Optional*): Use the inverter module temperature value of the sensor in
degree celcius. All options from :ref:`Sensor <config-sensor>`.
degree celsius. All options from :ref:`Sensor <config-sensor>`.
- **inverter_inner_temp** (*Optional*): Use the inverter inner temperature value of the sensor in
degree celcius. All options from :ref:`Sensor <config-sensor>`.
degree celsius. All options from :ref:`Sensor <config-sensor>`.
- **inverter_bus_voltage** (*Optional*): Use the inverter bus voltage value of the sensor in volts.
All options from :ref:`Sensor <config-sensor>`.
- **insulation_of_pv_n_to_ground** (*Optional*): Use the insulation of photo voltiacs's

View File

@ -28,7 +28,7 @@ Once configured, you can use any of the 8 pins as
sensors for your projects.
Each pin will respond with a voltage calculated off of the reference_voltage (default is 3.3v).
It calculates the voltage by multplying the reference_voltage * value on the pin (basically the percentage of VREF)
It calculates the voltage by multiplying the reference_voltage * value on the pin (basically the percentage of VREF)
Most configurations will set the reference_voltage = VREF (pin 13 on the chip)

View File

@ -127,7 +127,7 @@ How things Update
A Nextion component with an integer value (.val) or Nextion variable will be automatically polled if **update_interval** is set.
To have the Nextion send the data you can use the :ref:`nextion_custom_sensor_protocol` for this. Add the :ref:`nextion_custom_sensor_protocol` to the
component or function you want to trigger the send. Typically this is in *Touch Press Event* but some components, like a slider, should have it
set in the *Touch Release Event* to capture all the changes. Since this is a custom protocol it can be sent from anywhere (timers/functions/componenets)
set in the *Touch Release Event* to capture all the changes. Since this is a custom protocol it can be sent from anywhere (timers/functions/components)
in the Nextion.
.. note::

View File

@ -50,8 +50,6 @@ Configuration variables:
- **total** (*Optional*): Report the total number of pulses.
- All options from :ref:`Sensor <config-sensor>`.
- All other options from :ref:`Sensor <config-sensor>`.
.. note::

View File

@ -9,7 +9,7 @@ QMC5883L Magnetometer
The ``qmc5883l`` allows you to use your QMC5883L triple-axis magnetometers
(`datasheet <http://wiki.sunfounder.cc/images/7/72/QMC5883L-Datasheet-1.0.pdf>`__) with
ESPHome. This sensor is very simular to the :ref:`HMC5883L <hmc5883l>` sensor and is oftern found
as a knock off replacement. The QMC5883L sensor preforms on par to the HMC5883L sensor,
as a knock off replacement. The QMC5883L sensor performs on par to the HMC5883L sensor,
though the congiuration differs. The :ref:`I²C Bus <i2c>` is required to be set up in your
configuration for this sensor to work.

View File

@ -139,9 +139,9 @@ Configuration variables:
- Only available if RAWv2 protocol is used.
- **measurement_sequence_number** (*Optional*): The information for the
measurment sequence number sensor
measurement sequence number sensor
- **name** (**Required**, string): The name for the measurment sequence
- **name** (**Required**, string): The name for the measurement sequence
number sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use
in lambdas.

View File

@ -94,7 +94,7 @@ Configuration variables:
In teleinfo platform:
- **historical_mode** (*Optional*): Wether 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
standard mode. Defaults to ``False``.

View File

@ -34,7 +34,7 @@ Configuration variables:
- **name** (**Required**, string): The name for the temperature sensor.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
- **address** (*Optional*, int): The I²C address of the sensor. Defauls to ``0x48``.
- **address** (*Optional*, int): The I²C address of the sensor. Defaults to ``0x48``.
See :ref:`I²C Addresses <tmp117_i2c_addresses>` for more information.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.

View File

@ -5,10 +5,10 @@ Nextion Switch Component
.. seo::
:description: Instructions for setting up Nextion Switch.
:image: nextion.jpg
:image: nextion.jpg
The ``nextion`` switch platform supports the many switched components in the Nextion as well as integer variables. 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
@ -20,7 +20,7 @@ See :doc:`/components/display/nextion` for setting up the display
id: nextion1
# ...
switch:
switch:
- platform: nextion
id: r0_switch
name: "Radio 0 Switch"
@ -37,7 +37,7 @@ Configuration variables:
- **name** (**Required**, string): The name of the sensor.
- **nextion_id** (*Optional*, :ref:`config-id`): The ID of the Nextion display.
- **component_name** (*Optional*, string): The name of the Nextion component.
- **variable_name** (*Optional*, string): The name of the Nextion variable. Any value over ``0`` is considerd to be **on**
- **variable_name** (*Optional*, string): The name of the Nextion variable. Any value over ``0`` is considered to be **on**
- **update_interval** (*Optional*, :ref:`config-time`): The duration to update the sensor. If using a :ref:`nextion_custom_switch_protocol` this should not be used
- **background_color** (*Optional*, :ref:`config-color`): The background color
- **background_pressed_color** (*Optional*, :ref:`config-color`): The background color when pressed
@ -90,21 +90,21 @@ some more advanced functions (see the full :apiref:`nextion/nextion_switch.h` fo
How things Update
-----------------
A Nextion component with an integer value (.val) or Nextion variable will be automatically polled if **update_interval** is set.
To have the Nextion send the data you can use the :ref:`nextion_custom_switch_protocol` for this. Add the :ref:`nextion_custom_switch_protocol` to the
component or function you want to trigger the send. Typically this is in *Touch Press Event* but some components, like a slider, should have it
set in the *Touch Release Event* to capture all the changes. Since this is a custom protocol it can be sent from anywhere (timers/functions/componenets)
in the Nextion.
To have the Nextion send the data you can use the :ref:`nextion_custom_switch_protocol` for this. Add the :ref:`nextion_custom_switch_protocol` to the
component or function you want to trigger the send. Typically this is in *Touch Press Event* but some components, like a slider, should have it
set in the *Touch Release Event* to capture all the changes. Since this is a custom protocol it can be sent from anywhere (timers/functions/components)
in the Nextion.
.. note::
There is no need to check the *Send Component ID* for the *Touch Press Event* or *Touch Release Event*
since this will be sending the real value to esphome.
Using the above yaml example:
Using the above yaml example:
- "Radio 0 switch" will poll the Nextion for the ``r0.val`` value and set the state accordingly.
- "Is Darkmode Set" will NOT poll the Nextion. Either the Nextion will need to use the :ref:`nextion_custom_switch_protocol` or use a lambda:
- :ref:`Lambda Calls <nextion_switch_lambda_calls>`.
- :ref:`Lambda Calls <nextion_switch_lambda_calls>`.
.. note::

View File

@ -9,7 +9,7 @@ The TCA9548A component allows you to use TCA9548A as a I²C multiplexer
(`datasheet <https://www.ti.com/lit/ds/symlink/tca9548a.pdf>`__,
`AdaFruit`_) in ESPHome. It uses :ref:`I²C Bus <i2c>` for communication.
Once configured, you can use any of the 8 channels (TCA9548A) as seperated channels for your projects.
Once configured, you can use any of the 8 channels (TCA9548A) as separated channels for your projects.
.. figure:: images/tca9548a.jpg

View File

@ -5,11 +5,11 @@ Nextion Text Sensor Component
.. seo::
:description: Instructions for setting up Nextion text sensor.
:image: nextion.jpg
:image: nextion.jpg
The ``nextion`` text sensor platform supports text strings. 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.
if the page is shown or not.
See :doc:`/components/display/nextion` for setting up the display
@ -35,7 +35,7 @@ Configuration variables:
- **name** (**Required**, string): The name of the sensor.
- **nextion_id** (*Optional*, :ref:`config-id`): The ID of the Nextion display.
- **component_name** (*Optional*, string): The name of the Nextion component.
- **variable_name** (*Optional*, string): The name of the Nextion variable. Any value over ``0`` is considerd to be **on**
- **variable_name** (*Optional*, string): The name of the Nextion variable. Any value over ``0`` is considered to be **on**
- **update_interval** (*Optional*, :ref:`config-time`): The duration to update the sensor. If using a :ref:`nextion_custom_text_sensor_protocol` this should not be used
- **background_color** (*Optional*, :ref:`config-color`): The background color
- **foreground_color** (*Optional*, :ref:`config-color`): The foreground color
@ -84,20 +84,20 @@ some more advanced functions (see the full :apiref:`nextion/text_sensor/nextion_
How things Update
-----------------
A Nextion component with an integer value (.val) or Nextion variable will be automatically polled if **update_interval** is set.
To have the Nextion send the data you can use the :ref:`nextion_custom_text_sensor_protocol` for this. Add the :ref:`nextion_custom_text_sensor_protocol` to the
component or function you want to trigger the send. Typically this is in *Touch Press Event* but some components, like a slider, should have it
set in the *Touch Release Event* to capture all the changes. Since this is a custom protocol it can be sent from anywhere (timers/functions/componenets)
in the Nextion.
To have the Nextion send the data you can use the :ref:`nextion_custom_text_sensor_protocol` for this. Add the :ref:`nextion_custom_text_sensor_protocol` to the
component or function you want to trigger the send. Typically this is in *Touch Press Event* but some components, like a slider, should have it
set in the *Touch Release Event* to capture all the changes. Since this is a custom protocol it can be sent from anywhere (timers/functions/components)
in the Nextion.
.. note::
There is no need to check the *Send Component ID* for the *Touch Press Event* or *Touch Release Event*
since this will be sending the real value to esphome.
Using the above yaml example:
- "text0" will poll the Nextion for ``text0.txt`` value and set the state accordingly.
Using the above yaml example:
- "text0" will poll the Nextion for ``text0.txt`` value and set the state accordingly.
- :ref:`Lambda Calls <nextion_text_sensor_lambda_calls>`.
- :ref:`Lambda Calls <nextion_text_sensor_lambda_calls>`.
.. note::

View File

@ -239,7 +239,7 @@ Configuration variables:
Due to limitations of the SNTP implementation, this component will trigger ``on_time_sync`` only once when it detects that the
system clock has been set, even if the update was not done by the SNTP implementation!
This must be taken into consideration when SNTP is used together with other real time componnents, where another time source could
This must be taken into consideration when SNTP is used together with other real time components, where another time source could
update the time before SNTP synchronizes.
GPS Time Source
@ -326,7 +326,7 @@ In a typical setup, you will have at least one additional time source to synchro
external time source might not always be available e.g. due to a limited network connection.
In order to have a valid, reliable system time, the system should read the RTC once at start and then try to
synchronize with an external reliable time source.
When a synchronization to another time source was successfull, the RTC can be resynchronized.
When a synchronization to another time source was successful, the RTC can be resynchronized.
.. code-block:: yaml

View File

@ -62,7 +62,7 @@ Configuration variables:
- **ap_timeout** (*Optional*, :ref:`time <config-time>`): The time after which to enable the
configured fallback hotspot. Defaults to ``1min``.
- **enable_mdns** (*Optional*, boolean): Controls if your node should advertise its presense and services using mDNS. When set to ``false`` you won't be able to access your node using its hostname which can break certain functionalities. Please see :ref:`notes on disabling mDNS <faq-notes_on_disabling_mdns>`. Defaults to ``true``.
- **enable_mdns** (*Optional*, boolean): Controls if your node should advertise its presence and services using mDNS. When set to ``false`` you won't be able to access your node using its hostname which can break certain functionalities. Please see :ref:`notes on disabling mDNS <faq-notes_on_disabling_mdns>`. Defaults to ``true``.
- **domain** (*Optional*, string): Set the domain of the node hostname used for uploading.
For example, if it's set to ``.local``, all uploads will be sent to ``<HOSTNAME>.local``.
Defaults to ``.local``.

View File

@ -147,7 +147,7 @@ html_sidebars = {
# 'about.html',
"searchbox.html",
"localtoc.html",
"contact.html"
"contact.html",
]
}

View File

@ -71,7 +71,7 @@ Configuration example:
state: OFF
# This entry queries the battery level. Some tags may not
# support this characteristic, you will see 'Unknown' in the
# HA frontent.
# HA frontend.
- platform: ble_client
ble_client_id: itag_black
name: "Black iTag Battery"

View File

@ -0,0 +1,102 @@
Ilonda Wifi Smart Fish Feeder (L88)
===================================
Ilonda Wifi Smart Fish Feeder (L88) is a Tuya-based device sold by Amazon (not only under Ilonda, but also under other brand names).
.. figure:: images/ilonda-wifi-smart-fish-feeder.jpg
:align: center
:width: 50.0%
Originally intended to be used with its companion app, once flashed using `tuya-convert <https://github.com/ct-Open-Source/tuya-convert>`__, ESPHome generated
firmware can be uploaded allowing you to control the Wifi Smart Fish Feeder via Home Assistant.
Wifi Smart Fish Feeder Configuration
------------------------------------
Thanks to the amazing `Tasmota template <https://templates.blakadder.com/ilonda_L88.html>`__,
managed to build a fully working esphome configuration. This assumes you have a secret.yaml with ssid and password keys.
.. code-block:: yaml
esphome:
name: wifi_smart_fish_feeder
platform: ESP8266
board: esp01_1m
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
logger:
api:
ota:
# Binary Sensor to allow relay to be switched when physical button is pressed
binary_sensor:
- platform: gpio
id: button
pin:
number: GPIO4
mode: INPUT_PULLUP
inverted: True
name: 'Switch feeder'
on_press:
- switch.turn_on: relay
- platform: status
name: "Status"
switch:
# Switch to turn feeder on for 3 seconds/off and turn on/off LED
- platform: gpio
name: 'Relay feeder'
id: relay
pin: GPIO14
on_turn_on:
- light.turn_on: led
- delay: 3s
- switch.turn_off: relay
- light.turn_off: led
restore_mode: ALWAYS_OFF
sensor:
# Feeder counter
- platform: pulse_meter
pin: GPIO12
name: 'Counter/min'
unit_of_measurement: 'time(s)'
internal: true
total:
unit_of_measurement: 'time(s)'
name: 'Counter feeder'
# To allow led to be controlled via GPIO
output:
- platform: esp8266_pwm
id: blue_led
pin:
number: GPIO5
inverted: true
# LED control
light:
- platform: monochromatic
output: blue_led
id: led
You can now add your Wifi Smart Fish Feeder to Home Assistant via the configurations page, look for 'ESPHome' under the Integrations option and click 'Configure'.
See Also
--------
- :doc:`/components/binary_sensor/gpio`
- :doc:`/components/switch/gpio`
- :doc:`/components/sensor/pulse_meter`
- :doc:`/components/output/esp8266_pwm`
- :doc:`/components/light/monochromatic`
- :doc:`/guides/automations`
- `Fish Feeder diagrams and pictures <https://community.openhab.org/t/ilonda-fish-feeder-openhab/99190>`__.
- :ghedit:`Edit`

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

View File

@ -9,7 +9,7 @@ Infostripe
Showing the current status of sensor states using a Neopixel (WS2812B) strip is a simple way to communicate states to the user.
Compared to a dashboard screen the infostrip can only communicate the information like a binary sensor.
- color (e.g., red = error/warning, orange = waring, green = ok, blue = active)
- color (e.g., red = error/warning, orange = warning, green = ok, blue = active)
- intensity (off, scaled brightness)
- mode (continuous vs. flashing, flashing or strobe is not recommend)
- light position on stripe

View File

@ -33,7 +33,7 @@ Syntax
Here's a quick RST primer:
Title hierarchy is based on order of occurence, not on type of character used to underline it. This
Title hierarchy is based on order of occurrence, not on type of character used to underline it. This
documents establish the following character order for better consistency.
- **Headers**: You can write titles like this:

View File

@ -70,6 +70,7 @@ Contributors
- `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>`__
- `J. Nick Koston (@bdraco) <https://github.com/bdraco>`__
- `Ben Suffolk (@bensuffolk) <https://github.com/bensuffolk>`__
- `Bierchermuesli (@Bierchermuesli) <https://github.com/Bierchermuesli>`__
@ -89,6 +90,7 @@ Contributors
- `bwente (@bwente) <https://github.com/bwente>`__
- `Carlos Gustavo Sarmiento (@carlos-sarmiento) <https://github.com/carlos-sarmiento>`__
- `Carlos Garcia Saura (@CarlosGS) <https://github.com/CarlosGS>`__
- `carstenschroeder (@carstenschroeder) <https://github.com/carstenschroeder>`__
- `cbialobos (@cbialobos) <https://github.com/cbialobos>`__
- `Ciprian Constantinescu (@cciprian5) <https://github.com/cciprian5>`__
- `Marco (@cdrfun) <https://github.com/cdrfun>`__
@ -127,6 +129,7 @@ Contributors
- `dckiller51 (@dckiller51) <https://github.com/dckiller51>`__
- `Debashish Sahu (@debsahu) <https://github.com/debsahu>`__
- `declanshanaghy (@declanshanaghy) <https://github.com/declanshanaghy>`__
- `definitio (@definitio) <https://github.com/definitio>`__
- `deftdawg (@deftdawg) <https://github.com/deftdawg>`__
- `Christiaan Blom (@Deinara) <https://github.com/Deinara>`__
- `Rsan (@deltazerorsan) <https://github.com/deltazerorsan>`__
@ -186,6 +189,7 @@ Contributors
- `C W (@fake-name) <https://github.com/fake-name>`__
- `Christian Ferbar (@ferbar) <https://github.com/ferbar>`__
- `fkirill (@fkirill) <https://github.com/fkirill>`__
- `Sean Vig (@flacjacket) <https://github.com/flacjacket>`__
- `Diego Elio Pettenò (@Flameeyes) <https://github.com/Flameeyes>`__
- `foxsam21 (@foxsam21) <https://github.com/foxsam21>`__
- `Fractal147 (@Fractal147) <https://github.com/Fractal147>`__
@ -223,6 +227,7 @@ Contributors
- `Guyohms (@Guyohms) <https://github.com/Guyohms>`__
- `h0-- (@h0--) <https://github.com/h0-->`__
- `haade (@haade-administrator) <https://github.com/haade-administrator>`__
- `Peter van Dijk (@Habbie) <https://github.com/Habbie>`__
- `Boris Hajduk (@hajdbo) <https://github.com/hajdbo>`__
- `Gavin Mogan (@halkeye) <https://github.com/halkeye>`__
- `Charles Thompson (@haryadoon) <https://github.com/haryadoon>`__
@ -232,6 +237,7 @@ Contributors
- `HepoH3 (@HepoH3) <https://github.com/HepoH3>`__
- `Hamish Moffatt (@hmoffatt) <https://github.com/hmoffatt>`__
- `MoA (@honomoa) <https://github.com/honomoa>`__
- `Huub Eikens (@huubeikens) <https://github.com/huubeikens>`__
- `Petr Urbánek (@HyperReap) <https://github.com/HyperReap>`__
- `Adrián Panella (@ianchi) <https://github.com/ianchi>`__
- `Ian Leeder (@ianleeder) <https://github.com/ianleeder>`__
@ -292,6 +298,7 @@ Contributors
- `Klarstein (@Klarstein) <https://github.com/Klarstein>`__
- `klenaers (@klenaers) <https://github.com/klenaers>`__
- `Kevin Lewis (@kll) <https://github.com/kll>`__
- `Koen Vervloesem (@koenvervloesem) <https://github.com/koenvervloesem>`__
- `korellas (@korellas) <https://github.com/korellas>`__
- `Kevin Pelzel (@kpelzel) <https://github.com/kpelzel>`__
- `Karl Q. (@kquinsland) <https://github.com/kquinsland>`__
@ -330,6 +337,7 @@ Contributors
- `Major Péter (@majorpeter) <https://github.com/majorpeter>`__
- `Manuel Díez (@manutenfruits) <https://github.com/manutenfruits>`__
- `Marcel van der Veldt (@marcelveldt) <https://github.com/marcelveldt>`__
- `Marc (@MarcHagen) <https://github.com/MarcHagen>`__
- `Marc Teale (@marcteale) <https://github.com/marcteale>`__
- `marecabo (@marecabo) <https://github.com/marecabo>`__
- `Marvin Gaube (@margau) <https://github.com/margau>`__
@ -351,9 +359,11 @@ Contributors
- `MeIchthys (@meichthys) <https://github.com/meichthys>`__
- `meijerwynand (@meijerwynand) <https://github.com/meijerwynand>`__
- `Marco (@Melkor82) <https://github.com/Melkor82>`__
- `Michael Gorven (@mgorven) <https://github.com/mgorven>`__
- `mhentschke (@mhentschke) <https://github.com/mhentschke>`__
- `micw (@micw) <https://github.com/micw>`__
- `Pauline Middelink (@middelink) <https://github.com/middelink>`__
- `Mikko Tervala (@MikkoTervala) <https://github.com/MikkoTervala>`__
- `mikosoft83 (@mikosoft83) <https://github.com/mikosoft83>`__
- `Minideezel (@minideezel) <https://github.com/minideezel>`__
- `mipa87 (@mipa87) <https://github.com/mipa87>`__
@ -367,6 +377,7 @@ Contributors
- `mnaz (@mnaz) <https://github.com/mnaz>`__
- `Michael Nieß (@mniess) <https://github.com/mniess>`__
- `Matt N. (@mnoorenberghe) <https://github.com/mnoorenberghe>`__
- `monkeyclass (@monkeyclass) <https://github.com/monkeyclass>`__
- `Moritz Glöckl (@moritzgloeckl) <https://github.com/moritzgloeckl>`__
- `Matthew Pettitt (@mpettitt) <https://github.com/mpettitt>`__
- `Ryan Matthews (@mrrsm) <https://github.com/mrrsm>`__
@ -374,6 +385,7 @@ Contributors
- `mtl010957 (@mtl010957) <https://github.com/mtl010957>`__
- `Murilo (@murilobaliego) <https://github.com/murilobaliego>`__
- `Michiel van Turnhout (@mvturnho) <https://github.com/mvturnho>`__
- `Martin Weinelt (@mweinelt) <https://github.com/mweinelt>`__
- `Mynasru (@Mynasru) <https://github.com/Mynasru>`__
- `Niels Ulrik Andersen (@myplacedk) <https://github.com/myplacedk>`__
- `Kevin Uhlir (@n0bel) <https://github.com/n0bel>`__
@ -414,6 +426,7 @@ Contributors
- `Paul Deen (@PaulAntonDeen) <https://github.com/PaulAntonDeen>`__
- `Paul Nicholls (@pauln) <https://github.com/pauln>`__
- `Bartłomiej Biernacki (@pax0r) <https://github.com/pax0r>`__
- `Paul Doidge (@pdoidge) <https://github.com/pdoidge>`__
- `peq123 (@peq123) <https://github.com/peq123>`__
- `per1234 (@per1234) <https://github.com/per1234>`__
- `perjury (@perjury) <https://github.com/perjury>`__
@ -433,6 +446,7 @@ Contributors
- `Peter Tatrai (@ptatrai) <https://github.com/ptatrai>`__
- `Leandro Puerari (@puerari) <https://github.com/puerari>`__
- `puuu (@puuu) <https://github.com/puuu>`__
- `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>`__
@ -493,6 +507,7 @@ Contributors
- `Stephen Tierney (@sjtrny) <https://github.com/sjtrny>`__
- `Niklas Wagner (@Skaronator) <https://github.com/Skaronator>`__
- `Luca Zimmermann (@soundstorm) <https://github.com/soundstorm>`__
- `Sourabh Jaiswal (@sourabhjaiswal) <https://github.com/sourabhjaiswal>`__
- `Philip Allgaier (@spacegaier) <https://github.com/spacegaier>`__
- `spattinson (@spattinson) <https://github.com/spattinson>`__
- `spilin (@spilin) <https://github.com/spilin>`__
@ -501,6 +516,7 @@ Contributors
- `sredfern (@sredfern) <https://github.com/sredfern>`__
- `srg74 (@srg74) <https://github.com/srg74>`__
- `Samuel Sieb (@ssieb) <https://github.com/ssieb>`__
- `St4n (@St4n) <https://github.com/St4n>`__
- `starwolf73 (@starwolf73) <https://github.com/starwolf73>`__
- `Steve Baxter (@stevebaxter) <https://github.com/stevebaxter>`__
- `stubs12 (@stubs12) <https://github.com/stubs12>`__
@ -592,4 +608,4 @@ Contributors
- `San (@zhujunsan) <https://github.com/zhujunsan>`__
- `Christian Zufferey (@zuzu59) <https://github.com/zuzu59>`__
*This page was last updated June 24, 2021.*
*This page was last updated July 22, 2021.*

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -503,6 +503,7 @@ Cookbook
IAQ (Indoor Air Quality) Board, cookbook/iaq_board, iaq_board2.jpg
Custom UART Text Sensor, cookbook/uart_text_sensor, language-cpp.svg
IWOOLE Table Lamp, cookbook/iwoole_rgbw_table_lamp, iwoole_rgbw_table_lamp.png
Ilonda Wifi Smart Fish Feeder, cookbook/ilonda-wifi-smart-fish-feeder, ilonda-wifi-smart-fish-feeder-cookbook.jpg
Do you have other awesome automations or cool setups? Please feel free to add them to the
documentation for others to copy. See :doc:`Contributing </guides/contributing>`.

View File

@ -234,11 +234,11 @@ class SchemaGeneratorVisitor(nodes.NodeVisitor):
self.props_level = 0
def visit_document(self, node):
# ESPHome page docs follows strict formating guidelines which allows
# ESPHome page docs follows strict formatting guidelines which allows
# for docs to be parsed directly into yaml schema
if self.docname in ["components/sensor/binary_sensor_map"]:
# temporarly not supported
# temporarily not supported
raise nodes.SkipChildren
if len(list(node.traverse(nodes.paragraph))) == 0:
@ -349,7 +349,7 @@ class SchemaGeneratorVisitor(nodes.NodeVisitor):
if title_text == CONFIGURATION_VARIABLES:
if not self.props and self.multi_component is None:
raise ValueError(
f'Found a "{CONFIGURATION_VARIABLES}": title after {self.previous_title_text}. Unkown object.'
f'Found a "{CONFIGURATION_VARIABLES}": title after {self.previous_title_text}. Unknown object.'
)
if title_text == "Over SPI" or title_text == "Over I²C":
@ -645,7 +645,7 @@ class SchemaGeneratorVisitor(nodes.NodeVisitor):
self.prop_stack.append(self.props)
self.props = self.find_props(ref)
else:
# TODO: if the list items are formated like:
# TODO: if the list items are formatted like:
# - ``value`` <optional description>
# - ``other value`` <optional description>
# then we could ensure these are enum values (or populate enum values double check.)
@ -798,7 +798,7 @@ class SchemaGeneratorVisitor(nodes.NodeVisitor):
k = str(prop_name)
jprop = props.get(k)
if not jprop:
# Create docs for common properties when descriptions are overriden
# Create docs for common properties when descriptions are overridden
# in the most specific component.
if k in [
@ -812,7 +812,7 @@ class SchemaGeneratorVisitor(nodes.NodeVisitor):
"update_interval",
# uart
"uart_id",
# ligth
# light
"effects",
"gamma_correct",
"default_transition_length",