Merge branch 'current' into next
4
Doxygen
@ -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
|
||||
|
2
Makefile
@ -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
|
||||
|
||||
|
BIN
_static/changelog-1.20.0.png
Normal file
After Width: | Height: | Size: 30 KiB |
@ -1 +1,5 @@
|
||||
1.21.0-dev
|
||||
<<<<<<< HEAD
|
||||
1.21.0-dev
|
||||
=======
|
||||
1.20.0
|
||||
>>>>>>> current
|
||||
|
BIN
changelog/images/online-indicator.png
Normal file
After Width: | Height: | Size: 14 KiB |
@ -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
@ -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
|
@ -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:
|
||||
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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")``;
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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:
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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>`.
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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::
|
||||
|
@ -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::
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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``.
|
||||
|
||||
|
@ -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>`.
|
||||
|
@ -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::
|
||||
|
||||
|
@ -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
|
||||
|
@ -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::
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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``.
|
||||
|
2
conf.py
@ -147,7 +147,7 @@ html_sidebars = {
|
||||
# 'about.html',
|
||||
"searchbox.html",
|
||||
"localtoc.html",
|
||||
"contact.html"
|
||||
"contact.html",
|
||||
]
|
||||
}
|
||||
|
||||
|
@ -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"
|
||||
|
102
cookbook/ilonda-wifi-smart-fish-feeder.rst
Normal 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`
|
BIN
cookbook/images/ilonda-wifi-smart-fish-feeder-cookbook.jpg
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
cookbook/images/ilonda-wifi-smart-fish-feeder.jpg
Normal file
After Width: | Height: | Size: 64 KiB |
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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.*
|
||||
|
BIN
images/anova.png
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 32 KiB |
BIN
images/ilonda-wifi-smart-fish-feeder-cookbook.jpg
Normal file
After Width: | Height: | Size: 11 KiB |
@ -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>`.
|
||||
|
@ -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",
|
||||
|