Update next from current 20201221 (#894)

This commit is contained in:
Jesse Hills 2020-12-21 13:55:44 +13:00 committed by GitHub
parent 29dd9f6075
commit fe6f68f150
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
363 changed files with 1186 additions and 275 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -573,6 +573,56 @@ Release 1.15.1 - September 14
- docs: Adds Tuya Climate temperature multiplier :docspr:`756` by :ghuser:`jesserockz`
- esphome: Adds support for Tuya Climate temperature multiplier :esphomepr:`1276` by :ghuser:`jesserockz`
Release 1.15.2 - September 20
-----------------------------
- docs: Light triggers referenced in the "automation" guide. :docspr:`746` by :ghuser:`demikl`
- docs: specific MacOS Docker command to launch dashboard :docspr:`553` by :ghuser:`oncleben31`
- docs: Update index.rst :docspr:`757` by :ghuser:`3ative`
- esphome: Adds new homeassistant.tag_scanned action :esphomepr:`1281` by :ghuser:`jesserockz`
- docs: add custom uart id usage :docspr:`765` by :ghuser:`glmnet`
- esphome: Readds the battery level for xiaomi_hhccjcy01 :esphomepr:`1288` by :ghuser:`jesserockz`
- esphome: fix(remote_receiver): Add missing pin setup for ESP32 :esphomepr:`1252` by :ghuser:`lwfitzgerald`
- docs: Add docs for homeassistant.tag_scanned action :docspr:`763` by :ghuser:`jesserockz`
Release 1.15.3 - October 22
---------------------------
- docs: Mention CODEOWNERS magic symbol :docspr:`767` by :ghuser:`glmnet`
- docs: using docker image to build esphome-docs locally :docspr:`747` by :ghuser:`demikl`
- docs: Add missing doc for rc_switch event :docspr:`740` by :ghuser:`micw`
- docs: Remove unneeded parameters :docspr:`752` by :ghuser:`KTibow`
- docs: Enable color_interlock for the Teckin SB50 example :docspr:`743` by :ghuser:`CarlosGS`
- docs: clarify esp8266_restore_from_flash with restore_value :docspr:`754` by :ghuser:`pille`
- docs: Update mirabella-genio-bulb.rst :docspr:`732` by :ghuser:`DotNetDann`
- docs: Fix APDS9960 datasheet link :docspr:`772` by :ghuser:`JonathanTreffler`
- docs: Update uart.rst :docspr:`771` by :ghuser:`sublime93`
- docs: Update index.rst :docspr:`773` by :ghuser:`damanti-me`
- docs: HM3301 - Change type to calculation_type :docspr:`769` by :ghuser:`rdehuyss`
- docs: Update diy.rst :docspr:`781` by :ghuser:`Dilbert66`
- docs: Update docker architectures in getting started :docspr:`780` by :ghuser:`jesserockz`
- docs: Remove bh7150 API reference :docspr:`784` by :ghuser:`JeffResc`
- docs: Add 2.13in-ttgo-b73 to list of waveshare models :docspr:`786` by :ghuser:`davewongillies`
- docs: Typo: connedted -> connected :docspr:`787` by :ghuser:`johanvanderkuijl`
- docs: Update edit URL on Sonoff Basic page :docspr:`785` by :ghuser:`JeffResc`
- docs: Update Sonoff Mini :docspr:`783` by :ghuser:`debsahu`
- docs: Set correct link to ESPColor struct :docspr:`788` by :ghuser:`cdrfun`
- docs: Add battery_level note for xiaomi_hhccjcy01 :docspr:`761` by :ghuser:`axilleas`
- docs: Corrected the example pin mapping to GPIO mapping. :docspr:`789` by :ghuser:`shaeed`
- esphome: fix chip_rotation: 180 :esphomepr:`1321` by :ghuser:`ssieb`
- docs: Fix links, moved to gists :docspr:`802` by :ghuser:`glmnet`
- docs: Update wifi.rst :docspr:`795` by :ghuser:`Frankster-NL`
- docs: BME680 default address is 0x76 :docspr:`792` by :ghuser:`trvrnrth`
- docs: Individual BMXXXXX sensor configs are optional :docspr:`791` by :ghuser:`trvrnrth`
- esphome: Fix Light Trigger :esphomepr:`1308` by :ghuser:`MartinWelsch`
- esphome: Fix Xiaomi merged packet parsing :esphomepr:`1293` by :ghuser:`Alex9779`
- docs: Correct pull-up value :docspr:`811` by :ghuser:`tomlut`
- esphome: Fix color_interlock behavior :esphomepr:`1325` by :ghuser:`margau`
- esphome: Fix scheduler with too many cancelled timers :esphomepr:`1309` by :ghuser:`glmnet`
- esphome: fix config check in OnlyWith configuration helper :esphomepr:`1304` by :ghuser:`akomelj`
- esphome: fix: Incorrect time delay conversion breaks remote_transmitter_esp8266.cpp :esphomepr:`1322` by :ghuser:`thejonesyboy`
- esphome: fix hm3301 AQICalculator is off by 1 :esphomepr:`1331` by :ghuser:`ikatkov`
Past Changelogs
---------------

View File

@ -75,6 +75,39 @@ Configuration options:
- **variables** (*Optional*, mapping): Optional variables that can be used in the ``data_template``.
Values are :ref:`lambdas <config-lambda>` and will be evaluated before sending the request.
Data structures are not possible, but you can create an script in Home Assistant and call with all
the parameters in plain format.
.. code-block:: yaml
# Home Assistant Configuration
script:
...
set_light_rgb:
alias: 'ESPHome RGB light set'
sequence:
- service: light.turn_on
data_template:
entity_id: '{{ light_name }}'
rgb_color:
- '{{ red }}'
- '{{ green }}'
- '{{ blue }}'
Then in ESPHome
.. code-block:: yaml
# In some trigger
on_...:
- homeassistant.service:
service: script.set_light_rgb
data:
light_name: 'my_light'
red: '255'
green: '199'
blue: '71'
.. _api-services:
User-defined Services

Binary file not shown.

Before

Width:  |  Height:  |  Size: 227 KiB

After

Width:  |  Height:  |  Size: 215 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 295 KiB

After

Width:  |  Height:  |  Size: 281 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 194 KiB

After

Width:  |  Height:  |  Size: 188 KiB

View File

@ -98,6 +98,24 @@ using :ref:`api-homeassistant_tag_scanned_action`.
then:
- homeassistant.tag_scanned: !lambda 'return x;'
Alternatively you could also send the value directly to Home Assistant via a
:doc:`template sensor </components/sensor/template>`.
.. code-block:: yaml
pn532:
# ...
on_tag:
then:
- text_sensor.template.publish:
id: rfid_tag
state: !lambda 'return x;'
text_sensor:
- platform: template
name: "RFID Tag"
id: rfid_tag
.. _pn532-tag:
NFC/RFID Tag

View File

@ -31,11 +31,13 @@ There are three types of bang bang controllers this platform can represent:
- As soon as the temperature goes below the lower target temperature, ``heat_action`` will be called.
- When the temperature goes above the higher temperature, ``idle_action`` will be called.
- If you change operating mode (manual mode). And it is between high and low temperature. It does not wait to get to low temperature, it starts working until it gets to high temperature.
- **Coolers**: For devices where the observed temperature can only be decreased.
- As soon as the temperature goes above the higher target temperature, ``cool_action`` will be called.
- When the temperature goes below the lower temperature, ``idle_action`` will be called.
- If you change operating mode (manual mode). And it is between high and low temperature. It does not wait to get to high temperature, it starts working until it gets to low temperature.
- **Heater+Cooler**: For devices where the temperature can both actively be increased and decreased.

View File

@ -111,7 +111,9 @@ Useful for
it will no longer enter deep sleep mode and you can upload your OTA update.
Remember to turn "OTA mode" off again after the OTA update by sending a MQTT message with the payload
``OFF``. Note that the device won't enter deep sleep again until the next reboot.
``OFF``. To enter the the deep sleep again after the OTA update send a message on the topic ``livingroom/sleep_mode``
with payload ``ON``. Deep sleep will start immediately. Don't forget to delete the payload before the node
wakes up again.
.. code-block:: yaml
@ -121,10 +123,14 @@ Useful for
mqtt:
# ...
on_message:
topic: livingroom/ota_mode
payload: 'ON'
then:
- deep_sleep.prevent: deep_sleep_1
- topic: livingroom/ota_mode
payload: 'ON'
then:
- deep_sleep.prevent: deep_sleep_1
- topic: livingroom/sleep_mode
payload: 'ON'
then:
- deep_sleep.enter: deep_sleep_1
See Also
--------

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 KiB

After

Width:  |  Height:  |  Size: 183 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 248 KiB

After

Width:  |  Height:  |  Size: 241 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 392 KiB

After

Width:  |  Height:  |  Size: 376 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 217 KiB

After

Width:  |  Height:  |  Size: 208 KiB

View File

@ -1,76 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="300"
height="300"
version="1"
id="svg14"
sodipodi:docname="seg09.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<metadata
id="metadata20">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs18" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1581"
inkscape:window-height="480"
id="namedview16"
showgrid="false"
inkscape:zoom="1.5733333"
inkscape:cx="142.17599"
inkscape:cy="160.323"
inkscape:window-x="718"
inkscape:window-y="580"
inkscape:window-maximized="0"
inkscape:current-layer="svg14" />
<g
id="g12"
stroke="#000">
<path
d="m 190.797,154.49152 -15.212,15.5 h -59 l -15.517,-15.5 15.517,-15.5 h 59 z m 0,81.5 -15.212,15.5 h -59 l -15.517,-15.5 15.517,-15.5 h 59 z"
id="path2"
inkscape:connector-curvature="0"
style="fill:#ff0000;fill-rule:evenodd" />
<path
d="M98 75.385l15.5 15.212v45L98 151.115l-15.5-15.518v-45L98 75.385zM194 75.385l15.5 15.212v45L194 151.115l-15.5-15.518v-45L194 75.385z"
id="path4"
fill="none" />
<path
d="M 190.797,72.5 175.585,88 h -59 L 101.068,72.5 116.585,57 h 59 z"
id="path6"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
inkscape:connector-curvature="0" />
<path
d="M98 157.443l15.5 15.212v45L98 233.172l-15.5-15.517v-45L98 157.443zM194 157.443l15.5 15.212v45L194 233.172l-15.5-15.517v-45l15.5-15.212z"
id="path8"
fill="none" />
<path
d="M237.5 239.25a12.25 12.25 0 1 1-24.5 0 12.25 12.25 0 1 1 24.5 0z"
id="path10"
stroke-linecap="round"
fill="none" />
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" id="svg14" width="300" height="300" version="1"><metadata id="metadata20"/><g id="g12" stroke="#000"><path id="path2" d="m 190.797,154.49152 -15.212,15.5 h -59 l -15.517,-15.5 15.517,-15.5 h 59 z m 0,81.5 -15.212,15.5 h -59 l -15.517,-15.5 15.517,-15.5 h 59 z" style="fill:red;fill-rule:evenodd"/><path id="path4" fill="none" d="M98 75.385l15.5 15.212v45L98 151.115l-15.5-15.518v-45L98 75.385zM194 75.385l15.5 15.212v45L194 151.115l-15.5-15.518v-45L194 75.385z"/><path id="path6" d="M 190.797,72.5 175.585,88 h -59 L 101.068,72.5 116.585,57 h 59 z" style="fill:#fff;fill-opacity:1;fill-rule:evenodd"/><path id="path8" fill="none" d="M98 157.443l15.5 15.212v45L98 233.172l-15.5-15.517v-45L98 157.443zM194 157.443l15.5 15.212v45L194 233.172l-15.5-15.517v-45l15.5-15.212z"/><path id="path10" fill="none" stroke-linecap="round" d="M237.5 239.25a12.25 12.25 0 1 1-24.5 0 12.25 12.25 0 1 1 24.5 0z"/></g></svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 983 B

View File

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="300" height="300" version="1"><g stroke="#000"><path d="M190.797 72.5L175.585 88h-59l-15.517-15.5L116.585 57h59l15.212 15.5zM190.797 154l-15.212 15.5h-59L101.068 154l15.517-15.5h59l15.212 15.5zM98 75.385l15.5 15.212v45L98 151.115l-15.5-15.518v-45L98 75.385zM194 75.385l15.5 15.212v45L194 151.115l-15.5-15.518v-45L194 75.385z" fill="red" fill-rule="evenodd"/><path d="M190.797 236.057l-15.212 15.5h-59l-15.517-15.5 15.517-15.5h59l15.212 15.5zM98 157.443l15.5 15.212v45L98 233.172l-15.5-15.517v-45L98 157.443zM194 157.443l15.5 15.212v45L194 233.172l-15.5-15.517v-45l15.5-15.212z" fill="none"/><path d="M237.5 239.25a12.25 12.25 0 1 1-24.5 0 12.25 12.25 0 1 1 24.5 0z" fill="none" stroke-linecap="round"/></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="300" height="300" version="1"><g stroke="#000"><path fill="red" fill-rule="evenodd" d="M190.797 72.5L175.585 88h-59l-15.517-15.5L116.585 57h59l15.212 15.5zM190.797 154l-15.212 15.5h-59L101.068 154l15.517-15.5h59l15.212 15.5zM98 75.385l15.5 15.212v45L98 151.115l-15.5-15.518v-45L98 75.385zM194 75.385l15.5 15.212v45L194 151.115l-15.5-15.518v-45L194 75.385z"/><path fill="none" d="M190.797 236.057l-15.212 15.5h-59l-15.517-15.5 15.517-15.5h59l15.212 15.5zM98 157.443l15.5 15.212v45L98 233.172l-15.5-15.517v-45L98 157.443zM194 157.443l15.5 15.212v45L194 233.172l-15.5-15.517v-45l15.5-15.212z"/><path fill="none" stroke-linecap="round" d="M237.5 239.25a12.25 12.25 0 1 1-24.5 0 12.25 12.25 0 1 1 24.5 0z"/></g></svg>

Before

Width:  |  Height:  |  Size: 760 B

After

Width:  |  Height:  |  Size: 759 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 KiB

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 233 KiB

After

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 359 KiB

After

Width:  |  Height:  |  Size: 344 KiB

View File

@ -118,7 +118,7 @@ Additionally, you have access to two helper methods which will fetch the width a
# ...
lambda: |-
// Draw a circle in the middle of the display
it.filled_circle(it.get_width() / 2, it.get_height() / 2);
it.filled_circle(it.get_width() / 2, it.get_height() / 2, 20);
You can view the full API documentation for the rendering engine in the "API Reference" in the See Also section.

View File

@ -201,6 +201,7 @@ appropriate lines of C code in the lambada to hide or show the image or text as
pin:
number: GPIO0
inverted: true
mode: INPUT_PULLUP
name: "T-Display Button Input 0"
id: tdisplay_button_input_0
- platform: gpio

View File

@ -8,6 +8,7 @@ Waveshare E-Paper Display
The ``waveshare_epaper`` display platform allows you to use
some E-Paper displays sold by `Waveshare <https://www.waveshare.com/product/displays/e-paper.htm>`__
with ESPHome. The 2.13" `TTGO module <https://github.com/lewisxhe/TTGO-EPaper-Series>`__ with an ESP32 on the board is supported as well.
Depending on your specific revision of the board you might need to try out the `-b73` version (see below).
Similar modules sold by other vendors might also work but not have been tested yet. Currently only
single-color E-Ink displays are implemented and of those only a few modules.
@ -73,13 +74,14 @@ Configuration variables:
- ``1.54in``
- ``2.13in`` (not tested)
- ``2.13in-ttgo`` (T5_V2.3 tested)
- ``2.70in``
- ``2.13in-ttgo-b73`` (T5_V2.3 with B73 display tested)
- ``2.70in`` (currently not working with the HAT Rev 2.1 version)
- ``2.90in``
- ``2.90in-b`` (B/W rendering only)
- ``4.20in``
- ``5.83in``
- ``7.50in``
- ``7.50inV2``
- ``7.50inV2`` (Can't use with an ESP8266 as it runs out of RAM)
- **busy_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The BUSY pin. Defaults to not connected.
- **reset_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The RESET pin. Defaults to not connected.

View File

@ -43,8 +43,6 @@ Advanced options:
but you can customize this behavior using this option.
- **platformio_options** (*Optional*, mapping): Additional options to pass over to PlatformIO in the
platformio.ini file. See :ref:`esphome-platformio_options`.
- **use_custom_code** (*Optional*, boolean): Whether to configure the project for writing custom components.
This sets up some flags so that custom code should compile correctly
- **includes** (*Optional*, list of files): A list of C[++] files to include in the main (auto-generated) sketch file
for custom components. The paths in this list are relative to the directory where the YAML configuration file
is in. Should have file extension ``.h`` - See :ref:`esphome-includes` for more info.

View File

@ -91,7 +91,19 @@ Configuration for Olimex ESP32-POE
clk_mode: GPIO17_OUT
phy_addr: 0
power_pin: GPIO12
Configuration for LILYGO TTGO T-Internet-POE ESP32-WROOM LAN8270A Chip
----------------------------------------------------------------------
.. code-block:: yaml
ethernet:
type: LAN8720
mdc_pin: GPIO23
mdio_pin: GPIO18
clk_mode: GPIO17_OUT
phy_addr: 0
Configuration for OpenHacks LAN8720
-----------------------------------
@ -106,6 +118,18 @@ Configuration for OpenHacks LAN8720
Note: This board has an issue that might cause the ESP32 to boot in program mode. When testing, make sure you are monitoring the
serial output and reboot the device several times to see if it boots into the program properly.
Configuration for Wireless Tag WT32-ETH01
-----------------------------------------
.. code-block:: yaml
ethernet:
type: LAN8720
mdc_pin: GPIO23
mdio_pin: GPIO18
clk_mode: GPIO0_IN
phy_addr: 1
power_pin: GPIO16
See Also
--------

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -8,10 +8,13 @@ I²C Bus
:image: i2c.png
:keywords: i2c, iic, bus
This component sets up the I²C bus for your ESP32 or ESP8266. In order for those components
This component sets up the I²C bus for your ESP32 or ESP8266. In order for these components
to work correctly, you need to define the I²C bus in your configuration. Please note the ESP
will enable its internal 10kΩ pullup resistors for these pins, so you usually don't need to
put on external ones.
put on external ones. You can use multiple devices on one I²C bus as each device is given a
unique address for communicating between between it and the ESP. You can do this by hopping
wires from the two lines (SDA and SCL) from each device board to the next device board or by
connecting the wires from each device back to the two I²C pins on the ESP.
.. code-block:: yaml

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 530 KiB

After

Width:  |  Height:  |  Size: 496 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 191 KiB

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 245 KiB

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

After

Width:  |  Height:  |  Size: 132 KiB

View File

@ -718,7 +718,7 @@ This effect allows you to access each LED individually in a custom light effect.
Available variables in the lambda:
- **it** - :apiclass:`AddressableLight <light::AddressableLight>` instance (see API reference for more info).
- **current_color** - :apiclass:`ESPColor ` <light::ESPColor>` instance (see API reference for more info).
- **current_color** - :apistruct:`ESPColor <light::ESPColor>` instance (see API reference for more info).
- **initial_run** - A bool which is true on the first execution of the lambda. Useful to reset static variables when restarting a effect.
.. code-block:: yaml

View File

@ -12,6 +12,10 @@ segments can be individually controlled.
Similarly, a single light strip can be partitioned into multiple partitions with this integration.
If you want to do this, you may run into strange behavior like that the original light entity (e.g., ``fastled_clockless``)
may be conflicting with the partition. For better control over which segments of the strip will overlap each other,
mark the original ``light`` as ``internal: true``.
.. code-block:: yaml
# Example configuration entry
@ -31,6 +35,8 @@ Similarly, a single light strip can be partitioned into multiple partitions with
# Example for light segment source
- platform: fastled_clockless
id: light2
# You may want (but don't need) this
internal: true
# Other settings
Configuration variables:

View File

@ -36,8 +36,7 @@ The MCP23008 component (`datasheet <http://ww1.microchip.com/downloads/en/device
mcp23008: mcp23008_hub
# Use pin number 0
number: 0
# One of INPUT, INPUT_PULLUP or OUTPUT
mode: INPUT_PULLUP
mode: OUTPUT
inverted: False
# Individual inputs

View File

@ -334,9 +334,15 @@ Configuration variables:
This action can also be used in :ref:`lambdas <config-lambda>`:
.. code-block:: yaml
mqtt:
# Give the mqtt component an ID
id: mqtt_client
.. code-block:: cpp
App.get_mqtt_client()->subscribe("the/topic", [=](const std::string &payload) {
id(mqtt_client).subscribe("the/topic", [=](const std::string &payload) {
// do something with payload
});
@ -362,7 +368,7 @@ Please note that it's a good idea to check if the key exists in the Json Object
# ...
on_json_message:
topic: the/topic
then:
then:
- light.turn_on:
id: living_room_lights
@ -397,9 +403,15 @@ Configuration variables:
This action can also be used in :ref:`lambdas <config-lambda>`:
.. code-block:: yaml
mqtt:
# Give the mqtt component an ID
id: mqtt_client
.. code-block:: cpp
App.get_mqtt_client()->subscribe_json("the/topic", [=](JsonObject &root) {
id(mqtt_client).subscribe_json("the/topic", [=](JsonObject &root) {
// do something with JSON-decoded value root
});
@ -522,6 +534,22 @@ the MQTT broker.
then:
- logger.log: MQTT is connected!
.. note::
This action can also be written in :ref:`lambdas <config-lambda>`:
.. code-block:: yaml
mqtt:
# Give the mqtt component an ID
id: mqtt_client
.. code-block:: cpp
if (id(mqtt_client)->is_connected()) {
// do something if MQTT is connected
}
See Also
--------

View File

@ -33,12 +33,12 @@ for example the `RobotDyn dimmer
# Example configuration entry
output:
- platform: ac_dimmer
id: dimmer1
gate_pin: D7
zero_cross_pin:
number: D6
mode: INPUT
inverted: yes
id: dimmer1
gate_pin: D7
zero_cross_pin:
number: D6
mode: INPUT
inverted: yes
light:
- platform: monochromatic

View File

@ -12,7 +12,7 @@ no need for additional filtering.
The DAC spans across two pins, each on its own channel: GPIO25 (Channel 1) and GPIO26 (Channel 2).
The output level is a percentage of the board supply voltage (VDD_A) - generally this will be 3.3V.
The output level is a percentage of the board supply voltage (VDD_A) - generally this will be 3.3 V.
.. code-block:: yaml
@ -29,6 +29,13 @@ The output level is a percentage of the board supply voltage (VDD_A) - generally
- output.set_level:
id: dac_output
level: 50%
# Use the DAC output as a light
light:
- platform: monochromatic
output: dac_output
gamma_correct: 1.4
id: dac_output
Configuration variables:
@ -48,6 +55,7 @@ Use Cases
- Driving a bar graph or large amount of LEDs using an analog-controlled LED driver like the LM3914
(`datasheet <https://www.ti.com/lit/ds/symlink/lm3914.pdf>`__); this can allow you to make tank
level indicators, temperature gauges, and so on from a single output pin
- Generating 0-10 V for a dimmable light (operational amplifier required)
See Also
--------

Binary file not shown.

Before

Width:  |  Height:  |  Size: 175 KiB

After

Width:  |  Height:  |  Size: 163 KiB

View File

@ -74,6 +74,9 @@ Automations:
- **on_rc5** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
RC5 remote code has been decoded. A variable ``x`` of type :apiclass:`remote_base::RC5Data`
is passed to the automation for use in lambdas.
- **on_rc_switch** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
RCSwitch RF code has been decoded. A variable ``x`` of type :apiclass:`remote_base::RCSwitchData`
is passed to the automation for use in lambdas.
- **on_samsung** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
Samsung remote code has been decoded. A variable ``x`` of type :apiclass:`remote_base::SamsungData`
is passed to the automation for use in lambdas.
@ -208,6 +211,20 @@ Remote code selection (exactly one of these has to be included):
remote_transmitter:
pin: 5
carrier_duty_percent: 100%
.. note::
To caputure the codes more effectively with directly connected receiver like tsop38238 you can try to use `INPUT_PULLUP`:
.. code-block:: yaml
remote_receiver:
pin:
number: D4
inverted: True
mode: INPUT_PULLUP
dump: all
See Also
--------

View File

@ -72,11 +72,15 @@ To measure voltages higher than 1.1V, set ``attenuation`` to one of the `followi
ESP8266 Measuring VCC
---------------------
On the ESP8266 you can even measure the voltage the chip is getting. This can be useful in situations
On the ESP8266 you can even measure the voltage the *chip is getting*. This can be useful in situations
where you want to shut down the chip if the voltage is low when using a battery.
To measure the VCC voltage, set ``pin:`` to ``VCC`` and make sure nothing is connected to the ``A0`` pin.
.. note::
To avoid confusion: It measures the voltage at the chip, and not at the VCC pin of the board. It should usually be around 3.3V.
.. code-block:: yaml
sensor:

View File

@ -6,7 +6,7 @@ APDS9960 Sensor
:image: apds9960.jpg
The ``apds9960`` sensor platform allows you to use your APDS9960 RGB and gesture sensors
(`datasheet <https://cdn-shop.adafruit.com/datasheets/BST-BME280_DS001-10.pdf>`__,
(`datasheet <https://cdn.sparkfun.com/datasheets/Sensors/Proximity/apds9960.pdf>`__,
`SparkFun`_) with ESPHome.
The :ref:`I²C <i2c>` is
required to be set up in your configuration for this sensor to work.

View File

@ -59,6 +59,6 @@ See Also
- :ref:`sensor-filters`
- :doc:`tsl2561`
- :apiref:`bh7150/bh7150.h`
- :apiref:`bh1750/bh1750.h`
- `BH1750 Library <https://github.com/claws/BH1750>`__ by `@claws <https://github.com/claws>`__
- :ghedit:`Edit`

View File

@ -37,7 +37,7 @@ required to be set up in your configuration for this sensor to work.
Configuration variables:
------------------------
- **temperature** (**Required**): The information for the temperature.
- **temperature** (*Optional*): The information for the temperature.
sensor
- **name** (**Required**, string): The name for the temperature
@ -47,7 +47,7 @@ Configuration variables:
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **pressure** (**Required**): The information for the pressure sensor.
- **pressure** (*Optional*): The information for the pressure sensor.
- **name** (**Required**, string): The name for the pressure sensor.
- **oversampling** (*Optional*): The oversampling parameter for the temperature sensor.
@ -55,7 +55,7 @@ Configuration variables:
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **humidity** (**Required**): The information for the pressure sensor.
- **humidity** (*Optional*): The information for the pressure sensor.
- **name** (**Required**, string): The name for the humidity sensor.
- **oversampling** (*Optional*): The oversampling parameter for the temperature sensor.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -39,7 +39,7 @@ your configuration for this sensor to work.
Configuration variables:
------------------------
- **temperature** (**Required**): The information for the temperature sensor.
- **temperature** (*Optional*): The information for the temperature sensor.
- **name** (**Required**, string): The name for the temperature sensor.
- **oversampling** (*Optional*): The oversampling parameter for the temperature sensor.
@ -47,7 +47,7 @@ Configuration variables:
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **pressure** (**Required**): The information for the pressure sensor.
- **pressure** (*Optional*): The information for the pressure sensor.
- **name** (**Required**, string): The name for the pressure sensor.
- **oversampling** (*Optional*): The oversampling parameter for the temperature sensor.
@ -55,7 +55,7 @@ Configuration variables:
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **humidity** (**Required**): The information for the humidity sensor.
- **humidity** (*Optional*): The information for the humidity sensor.
- **name** (**Required**, string): The name for the humidity sensor.
- **oversampling** (*Optional*): The oversampling parameter for the temperature sensor.
@ -63,14 +63,14 @@ Configuration variables:
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **gas_resistance** (**Required**): The information for the gas sensor.
- **gas_resistance** (*Optional*): The information for the gas sensor.
- **name** (**Required**, string): The name for the gas resistance sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **address** (*Optional*, int): Manually specify the I²C address of
the sensor. Defaults to ``0x77``. Another address can be ``0x76``.
the sensor. Defaults to ``0x76``. Another address can be ``0x77``.
- **iir_filter** (*Optional*): Set up an Infinite Impulse Response filter to increase accuracy. One of
``OFF``, ``1x``, ``3x``, ``7x``, ``15x``, ``31x``, ``63x`` and ``127x``. Defaults to ``OFF``.
- **heater** (*Optional*): The settings for the internal heater for the gas sensor. Set this

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -38,14 +38,14 @@ your configuration for this sensor to work.
Configuration variables:
------------------------
- **temperature** (**Required**): The information for the temperature sensor.
- **temperature** (*Optional*): The information for the temperature sensor.
- **name** (**Required**, string): The name for the temperature
sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **pressure** (**Required**): The information for the pressure sensor.
- **pressure** (*Optional*): The information for the pressure sensor.
- **name** (**Required**, string): The name for the pressure sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -35,7 +35,7 @@ required to be set up in your configuration for this sensor to work.
Configuration variables:
------------------------
- **temperature** (**Required**): The information for the temperature.
- **temperature** (*Optional*): The information for the temperature.
sensor
- **name** (**Required**, string): The name for the temperature
@ -45,7 +45,7 @@ Configuration variables:
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **pressure** (**Required**): The information for the pressure sensor.
- **pressure** (*Optional*): The information for the pressure sensor.
- **name** (**Required**, string): The name for the pressure sensor.
- **oversampling** (*Optional*): The oversampling parameter for the temperature sensor.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -76,7 +76,7 @@ Let's now also take a closer look at this line, which you might not be too used
.. code-block:: cpp
class MyCustomSensor : public Component, public Sensor {
class MyCustomSensor : public Component, public Sensor {
What this line is essentially saying is that we're defining our own class that's called ``MyCustomSensor``
which is also a subclass of :apiclass:`Component` and :apiclass:`Sensor <sensor::Sensor>`.
@ -132,6 +132,57 @@ Every time ``update`` is called we will now **publish** a new value to the front
The rest of ESPHome will then take care of processing this value and ultimately publishing it
to the outside world (for example using MQTT).
One last thing. Some sensors, such as the BMP180 were are going to explain later, require some other component before they can be used. Remember how we talked about the ``setup()`` method? Well just like when writing in the Arduino IDE, components need to be set up in the right order. For that ESPHome introduces another method in the :apiclass:`Component` class.
.. code-block:: cpp
float get_setup_priority() const override { return esphome::setup_priority::HARDWARE; }
Where HARDWARE can be any of:
.. code-block:: cpp
/// For communication buses like i2c/spi
extern const float BUS;
/// For components that represent GPIO pins like PCF8573
extern const float IO;
/// For components that deal with hardware and are very important like GPIO switch
extern const float HARDWARE;
/// For components that import data from directly connected sensors like DHT.
extern const float DATA;
/// Alias for DATA (here for compatability reasons)
extern const float HARDWARE_LATE;
/// For components that use data from sensors like displays
extern const float PROCESSOR;
extern const float WIFI;
/// For components that should be initialized after WiFi is connected.
extern const float AFTER_WIFI;
/// For components that should be initialized after a data connection (API/MQTT) is connected.
extern const float AFTER_CONNECTION;
/// For components that should be initialized at the very end of the setup process.
extern const float LATE;
Now don't let the wording confuse you. The ``get_setup_priority()`` method is an override. Instead of fetching the setup priority setup for us, it instead fetches the setup priority for esphome, while being defined by us. The BMP180 would for instance need to be setup with a priority of IO or lower. A serial streaming (TCP) server would require a working WIFI setup and therefore get AFTER_WIFI.
This finalizes our example as:
.. code-block:: cpp
class MyCustomSensor : public PollingComponent, public Sensor {
public:
// constructor
MyCustomSensor() : PollingComponent(15000) {}
float get_setup_priority() const override { return esphome::setup_priority::XXXX; }
void setup() override {
// This will be called by App.setup()
}
void update() override {
// This will be called every "update_interval" milliseconds.
}
};
Step 2: Registering the custom sensor
-------------------------------------

View File

@ -20,7 +20,7 @@ and similar 1-Wire temperature sensors.
To use your :ref:`dallas sensor <dallas-sensor>`, first define a dallas “hub” with a pin and
id, which you will later use to create the sensors. The 1-Wire bus the
sensors are connected to should have an external pullup resistor of
about 4.7KΩ. For this, connect a resistor of *about* 4.7KΩ (values around that like 1Ω will, if you don't have
about 4.7KΩ. For this, connect a resistor of *about* 4.7KΩ (values around that like 1KΩ will, if you don't have
massively long wires, work fine in most cases) between ``3.3V`` and the data pin.
.. code-block:: yaml

View File

@ -26,7 +26,7 @@ The sensor communicate with board by :ref:`I²C <i2c>` protocol, and requires 3.
name: "PM10.0"
aqi:
name: "AQI"
type: "CAQI"
calculation_type: "CAQI"
Configuration variables:
------------------------
@ -51,7 +51,7 @@ Configuration variables:
- **aqi** (*Optional*): AQI sensor. Requires the ``pm_2_5`` and ``pm_10_0`` sensors defined. See below.
- **type** (**Required**): One of: ``AQI`` or ``CAQI``.
- **calculation_type** (**Required**): One of: ``AQI`` or ``CAQI``.
- **name** (**Required**, string): The name for the temperature sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
@ -75,7 +75,7 @@ There are two implementations:
name: "PM10.0"
aqi:
name: "AQI"
type: "CAQI"
calculation_type: "CAQI"
See Also

View File

@ -20,6 +20,10 @@ states from your Home Assistant instance using the :doc:`native API </components
This component is only for numeral states. If you want to import arbitrary text states
from Home Assistant, use the :doc:`Home Assistant Text Sensor </components/text_sensor/homeassistant>`.
Albeit you might not plan to __export__ states from the node and you do not need an entity of the node
in Home Assistant, this component still requires you to register the node under Home Assistant. See:
:doc:`Getting started with Hassio </guides/getting_started_hassio>`
Importing attributes is currently not supported, but you can create template sensors in Home Assistant
that return the attribute of a sensor and then import the template sensor here.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 210 KiB

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 166 KiB

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 KiB

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 KiB

After

Width:  |  Height:  |  Size: 228 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 343 KiB

After

Width:  |  Height:  |  Size: 321 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 KiB

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 260 KiB

After

Width:  |  Height:  |  Size: 248 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 298 KiB

After

Width:  |  Height:  |  Size: 281 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 464 KiB

After

Width:  |  Height:  |  Size: 447 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 KiB

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 209 KiB

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 KiB

After

Width:  |  Height:  |  Size: 267 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 KiB

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 205 KiB

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 314 KiB

After

Width:  |  Height:  |  Size: 300 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

Some files were not shown because too many files have changed in this diff Show More