Merge branch 'current' into next

This commit is contained in:
Jesse Hills 2022-03-09 20:05:01 +13:00
commit a0e81502fe
No known key found for this signature in database
GPG Key ID: BEAAE804EFD8E83A
7 changed files with 67 additions and 55 deletions

View File

@ -123,6 +123,27 @@ Release 2022.2.3 - February 18
- Bump platformio from 5.2.4 to 5.2.5 :esphomepr:`3188` by :ghuser:`dependabot[bot]` - Bump platformio from 5.2.4 to 5.2.5 :esphomepr:`3188` by :ghuser:`dependabot[bot]`
Release 2022.2.4 - February 21
------------------------------
- Publish NAN when dallas conversion failed :esphomepr:`3227` by :ghuser:`OttoWinter`
- Fix ESP8266 climate memaccess warning :esphomepr:`3226` by :ghuser:`OttoWinter`
- Improve ESP8266 iram usage :esphomepr:`3223` by :ghuser:`OttoWinter`
- ESP32-C3 deep sleep fix :esphomepr:`3066` by :ghuser:`Troublebrewing`
- Fix lilygo touchscreen rotation :esphomepr:`3221` by :ghuser:`jesserockz`
- Fix fatal erroring in addon startup script :esphomepr:`3244` by :ghuser:`jesserockz`
Release 2022.2.5 - February 23
------------------------------
- Respect ESPHOME_USE_SUBPROCESS in esp32 post_build script :esphomepr:`3246` by :ghuser:`mweinelt`
- Fix regression caused by TSL2591 auto gain :esphomepr:`3249` by :ghuser:`Azimath`
Release 2022.2.6 - March 2
--------------------------
- Only get free memory size from internal :esphomepr:`3259` by :ghuser:`jesserockz`
Full list of changes Full list of changes
-------------------- --------------------

View File

@ -1,31 +0,0 @@
Sonoff NSPanel
==============
.. seo::
:description: Instructions for using ESPHome of the Sonoff NSPanel
The Sonoff NSPanel integration allows ESPHome to control features and functionality of the NSPanel's
built in display.
.. code-block:: yaml
nspanel:
time_id: REPLACEME
temperature: temperature_id
screen_power_switch: screen_power_switch_id
relays:
- relay_1_id
- relay_2_id
widgets:
- type: scene
name: Test
on_click:
- logger.log: Test Scene tapped
- type: empty
...
Configuration Variables:
------------------------

View File

@ -32,10 +32,10 @@ which is 19200bps.
- homeassistant.event: - homeassistant.event:
event: esphome.rf_code_received event: esphome.rf_code_received
data: data:
sync: !lambda 'char buffer [10];return itoa(data.sync,buffer,16);' sync: !lambda 'return format_hex(data.sync);'
low: !lambda 'char buffer [10];return itoa(data.low,buffer,16);' low: !lambda 'return format_hex(data.low);'
high: !lambda 'char buffer [10];return itoa(data.high,buffer,16);' high: !lambda 'return format_hex(data.high);'
code: !lambda 'char buffer [10];return itoa(data.code,buffer,16);' code: !lambda 'return format_hex(data.code);'
Configuration variables: Configuration variables:
------------------------ ------------------------
@ -61,10 +61,10 @@ variables named ``code``, ``sync``, ``high`` and ``low``.
- homeassistant.event: - homeassistant.event:
event: esphome.rf_code_received event: esphome.rf_code_received
data: data:
sync: !lambda 'char buffer [10];return itoa(data.sync,buffer,16);' sync: !lambda 'return format_hex(data.sync);'
low: !lambda 'char buffer [10];return itoa(data.low,buffer,16);' low: !lambda 'return format_hex(data.low);'
high: !lambda 'char buffer [10];return itoa(data.high,buffer,16);' high: !lambda 'return format_hex(data.high);'
code: !lambda 'char buffer [10];return itoa(data.code,buffer,16);' code: !lambda 'return format_hex(data.code);'
.. _rf_bridge-send_code_action: .. _rf_bridge-send_code_action:
@ -182,8 +182,8 @@ are available inside that lambda under the variables named ``code``, ``protocol`
- homeassistant.event: - homeassistant.event:
event: esphome.rf_advanced_code_received event: esphome.rf_advanced_code_received
data: data:
length: !lambda 'char buffer [10];return itoa(data.length,buffer,16);' length: !lambda 'return format_hex(data.length);'
protocol: !lambda 'char buffer [10];return itoa(data.protocol,buffer,16);' protocol: !lambda 'return format_hex(data.protocol);'
code: !lambda 'return data.code;' code: !lambda 'return data.code;'
@ -321,7 +321,7 @@ Activate the internal buzzer to make a beep.
on_...: on_...:
then: then:
- rf_bridge.beep: - rf_bridge.beep:
duration: 100 duration: 100
Configuration options: Configuration options:
@ -335,7 +335,7 @@ Configuration options:
.. code-block:: cpp .. code-block:: cpp
id(rf_bridge).beep(100); id(rf_bridge).beep(100);
Getting started with Home Assistant Getting started with Home Assistant
----------------------------------- -----------------------------------
@ -376,10 +376,10 @@ Home Assistant as events and will also setup a service so you can send codes wit
- homeassistant.event: - homeassistant.event:
event: esphome.rf_code_received event: esphome.rf_code_received
data: data:
sync: !lambda 'char buffer [10];return itoa(data.sync,buffer,16);' sync: !lambda 'return format_hex(data.sync);'
low: !lambda 'char buffer [10];return itoa(data.low,buffer,16);' low: !lambda 'return format_hex(data.low);'
high: !lambda 'char buffer [10];return itoa(data.high,buffer,16);' high: !lambda 'return format_hex(data.high);'
code: !lambda 'char buffer [10];return itoa(data.code,buffer,16);' code: !lambda 'return format_hex(data.code);'
Now your latest received code will be in an event. Now your latest received code will be in an event.

View File

@ -8,7 +8,7 @@ Generic ESP8266
All ESP8266-based devices are supported by ESPHome. Simply select ``ESP8266`` when All ESP8266-based devices are supported by ESPHome. Simply select ``ESP8266`` when
the ESPHome wizard asks you for your platform and choose a board type the ESPHome wizard asks you for your platform and choose a board type
from `this link <https://platformio.org/boards?count=1000&filter%5Bplatform%5D=espressif8266>`__ when the wizard from `this link <https://registry.platformio.org/platforms/platformio/espressif8266/boards>`__ when the wizard
asks you for the board type. asks you for the board type.

View File

@ -361,6 +361,11 @@ Packages can also be loaded from a git repository by utilizing the correct confi
:ref:`config-substitutions` can be used inside the remote packages which allows users to override :ref:`config-substitutions` can be used inside the remote packages which allows users to override
them locally with their own subsitution value. them locally with their own subsitution value.
.. note::
Remote packages cannot have ``secret`` lookups in them. They should instead make use of substitutions with an
optional default in the packaged YAML, which the local device YAML can set using values from the local secrets.
.. code-block:: yaml .. code-block:: yaml
packages: packages:

View File

@ -52,6 +52,7 @@ Contributors
- `Alex Iribarren (@alexiri) <https://github.com/alexiri>`__ - `Alex Iribarren (@alexiri) <https://github.com/alexiri>`__
- `Alex Mekkering (@AlexMekkering) <https://github.com/AlexMekkering>`__ - `Alex Mekkering (@AlexMekkering) <https://github.com/AlexMekkering>`__
- `Alex (@alexyao2015) <https://github.com/alexyao2015>`__ - `Alex (@alexyao2015) <https://github.com/alexyao2015>`__
- `alva (@alva-seal) <https://github.com/alva-seal>`__
- `Amish Vishwakarma (@amishv) <https://github.com/amishv>`__ - `Amish Vishwakarma (@amishv) <https://github.com/amishv>`__
- `Jason Nader (@ammgws) <https://github.com/ammgws>`__ - `Jason Nader (@ammgws) <https://github.com/ammgws>`__
- `anatoly-savchenkov (@anatoly-savchenkov) <https://github.com/anatoly-savchenkov>`__ - `anatoly-savchenkov (@anatoly-savchenkov) <https://github.com/anatoly-savchenkov>`__
@ -141,6 +142,7 @@ Contributors
- `Cougar (@Cougar) <https://github.com/Cougar>`__ - `Cougar (@Cougar) <https://github.com/Cougar>`__
- `Connor Prussin (@cprussin) <https://github.com/cprussin>`__ - `Connor Prussin (@cprussin) <https://github.com/cprussin>`__
- `cryptelli (@cryptelli) <https://github.com/cryptelli>`__ - `cryptelli (@cryptelli) <https://github.com/cryptelli>`__
- `cstaahl (@cstaahl) <https://github.com/cstaahl>`__
- `Chris Talkington (@ctalkington) <https://github.com/ctalkington>`__ - `Chris Talkington (@ctalkington) <https://github.com/ctalkington>`__
- `cvwillegen (@cvwillegen) <https://github.com/cvwillegen>`__ - `cvwillegen (@cvwillegen) <https://github.com/cvwillegen>`__
- `cwitting (@cwitting) <https://github.com/cwitting>`__ - `cwitting (@cwitting) <https://github.com/cwitting>`__
@ -211,6 +213,7 @@ Contributors
- `Ermanno Baschiera (@ebaschiera) <https://github.com/ebaschiera>`__ - `Ermanno Baschiera (@ebaschiera) <https://github.com/ebaschiera>`__
- `Robert Resch (@edenhaus) <https://github.com/edenhaus>`__ - `Robert Resch (@edenhaus) <https://github.com/edenhaus>`__
- `Niclas Larsson (@edge90) <https://github.com/edge90>`__ - `Niclas Larsson (@edge90) <https://github.com/edge90>`__
- `EdJoPaTo (@EdJoPaTo) <https://github.com/EdJoPaTo>`__
- `Eduardo Pérez (@eduperez) <https://github.com/eduperez>`__ - `Eduardo Pérez (@eduperez) <https://github.com/eduperez>`__
- `Eenoo (@Eenoo) <https://github.com/Eenoo>`__ - `Eenoo (@Eenoo) <https://github.com/Eenoo>`__
- `Eli Fidler (@efidler) <https://github.com/efidler>`__ - `Eli Fidler (@efidler) <https://github.com/efidler>`__
@ -322,6 +325,7 @@ Contributors
- `Petko Bordjukov (@ignisf) <https://github.com/ignisf>`__ - `Petko Bordjukov (@ignisf) <https://github.com/ignisf>`__
- `ikatkov (@ikatkov) <https://github.com/ikatkov>`__ - `ikatkov (@ikatkov) <https://github.com/ikatkov>`__
- `imgbot[bot] (@imgbot[bot]) <https://github.com/imgbot[bot]>`__ - `imgbot[bot] (@imgbot[bot]) <https://github.com/imgbot[bot]>`__
- `ImSorryButWho (@ImSorryButWho) <https://github.com/ImSorryButWho>`__
- `Lorenzo Ortiz (@Infinitte) <https://github.com/Infinitte>`__ - `Lorenzo Ortiz (@Infinitte) <https://github.com/Infinitte>`__
- `irtimaled (@irtimaled) <https://github.com/irtimaled>`__ - `irtimaled (@irtimaled) <https://github.com/irtimaled>`__
- `Ivan Shvedunov (@ivan4th) <https://github.com/ivan4th>`__ - `Ivan Shvedunov (@ivan4th) <https://github.com/ivan4th>`__
@ -481,6 +485,7 @@ Contributors
- `Michael Gorven (@mgorven) <https://github.com/mgorven>`__ - `Michael Gorven (@mgorven) <https://github.com/mgorven>`__
- `mhentschke (@mhentschke) <https://github.com/mhentschke>`__ - `mhentschke (@mhentschke) <https://github.com/mhentschke>`__
- `Michaël Arnauts (@michaelarnauts) <https://github.com/michaelarnauts>`__ - `Michaël Arnauts (@michaelarnauts) <https://github.com/michaelarnauts>`__
- `Micha Nordmann (@Michanord) <https://github.com/Michanord>`__
- `micronen (@micronen) <https://github.com/micronen>`__ - `micronen (@micronen) <https://github.com/micronen>`__
- `Pauline Middelink (@middelink) <https://github.com/middelink>`__ - `Pauline Middelink (@middelink) <https://github.com/middelink>`__
- `Mikko Tervala (@MikkoTervala) <https://github.com/MikkoTervala>`__ - `Mikko Tervala (@MikkoTervala) <https://github.com/MikkoTervala>`__
@ -532,6 +537,7 @@ Contributors
- `Joakim Vindgard (@nigobo) <https://github.com/nigobo>`__ - `Joakim Vindgard (@nigobo) <https://github.com/nigobo>`__
- `nikito7 (@nikito7) <https://github.com/nikito7>`__ - `nikito7 (@nikito7) <https://github.com/nikito7>`__
- `niklasweber (@niklasweber) <https://github.com/niklasweber>`__ - `niklasweber (@niklasweber) <https://github.com/niklasweber>`__
- `Niorix (@Niorix) <https://github.com/Niorix>`__
- `Zvonimir Haramustek (@nitko12) <https://github.com/nitko12>`__ - `Zvonimir Haramustek (@nitko12) <https://github.com/nitko12>`__
- `Nikolay Kitanov (@nkitanov) <https://github.com/nkitanov>`__ - `Nikolay Kitanov (@nkitanov) <https://github.com/nkitanov>`__
- `nldroid (@nldroid) <https://github.com/nldroid>`__ - `nldroid (@nldroid) <https://github.com/nldroid>`__
@ -539,7 +545,6 @@ Contributors
- `Niccolò Maggioni (@nmaggioni) <https://github.com/nmaggioni>`__ - `Niccolò Maggioni (@nmaggioni) <https://github.com/nmaggioni>`__
- `Jan Sandbrink (@NobodysNightmare) <https://github.com/NobodysNightmare>`__ - `Jan Sandbrink (@NobodysNightmare) <https://github.com/NobodysNightmare>`__
- `Łukasz Śliwiński (@nonameplum) <https://github.com/nonameplum>`__ - `Łukasz Śliwiński (@nonameplum) <https://github.com/nonameplum>`__
- `ffabi (@norges) <https://github.com/norges>`__
- `Greg Johnson (@notgwj) <https://github.com/notgwj>`__ - `Greg Johnson (@notgwj) <https://github.com/notgwj>`__
- `nouser2013 (@nouser2013) <https://github.com/nouser2013>`__ - `nouser2013 (@nouser2013) <https://github.com/nouser2013>`__
- `Stanislav Meduna (@numo68) <https://github.com/numo68>`__ - `Stanislav Meduna (@numo68) <https://github.com/numo68>`__
@ -574,6 +579,7 @@ Contributors
- `Paul Doidge (@pdoidge) <https://github.com/pdoidge>`__ - `Paul Doidge (@pdoidge) <https://github.com/pdoidge>`__
- `peq123 (@peq123) <https://github.com/peq123>`__ - `peq123 (@peq123) <https://github.com/peq123>`__
- `per1234 (@per1234) <https://github.com/per1234>`__ - `per1234 (@per1234) <https://github.com/per1234>`__
- `Peter Valkov (@peter-valkov) <https://github.com/peter-valkov>`__
- `Peter Foreman (@peterforeman) <https://github.com/peterforeman>`__ - `Peter Foreman (@peterforeman) <https://github.com/peterforeman>`__
- `Peter Remøy Paulsen (@petrepa) <https://github.com/petrepa>`__ - `Peter Remøy Paulsen (@petrepa) <https://github.com/petrepa>`__
- `Philip Rosenberg-Watt (@PhilRW) <https://github.com/PhilRW>`__ - `Philip Rosenberg-Watt (@PhilRW) <https://github.com/PhilRW>`__
@ -706,6 +712,7 @@ Contributors
- `Tempura San (@tempura-san) <https://github.com/tempura-san>`__ - `Tempura San (@tempura-san) <https://github.com/tempura-san>`__
- `testbughub (@testbughub) <https://github.com/testbughub>`__ - `testbughub (@testbughub) <https://github.com/testbughub>`__
- `Greg Lincoln (@tetious) <https://github.com/tetious>`__ - `Greg Lincoln (@tetious) <https://github.com/tetious>`__
- `Thane Gill (@thanegill) <https://github.com/thanegill>`__
- `The Impaler (@the-impaler) <https://github.com/the-impaler>`__ - `The Impaler (@the-impaler) <https://github.com/the-impaler>`__
- `Nejc (@thedexboy) <https://github.com/thedexboy>`__ - `Nejc (@thedexboy) <https://github.com/thedexboy>`__
- `Thomas Eckerstorfer (@TheEggi) <https://github.com/TheEggi>`__ - `Thomas Eckerstorfer (@TheEggi) <https://github.com/TheEggi>`__
@ -744,13 +751,13 @@ Contributors
- `Trick van Staveren (@trickv) <https://github.com/trickv>`__ - `Trick van Staveren (@trickv) <https://github.com/trickv>`__
- `Tobias (@tripplet) <https://github.com/tripplet>`__ - `Tobias (@tripplet) <https://github.com/tripplet>`__
- `Troon (@Troon) <https://github.com/Troon>`__ - `Troon (@Troon) <https://github.com/Troon>`__
- `Tyler Bules (@Troublebrewing) <https://github.com/Troublebrewing>`__
- `Olli Salonen (@trsqr) <https://github.com/trsqr>`__ - `Olli Salonen (@trsqr) <https://github.com/trsqr>`__
- `Trevor North (@trvrnrth) <https://github.com/trvrnrth>`__ - `Trevor North (@trvrnrth) <https://github.com/trvrnrth>`__
- `Trygve Laugstøl (@trygvis) <https://github.com/trygvis>`__ - `Trygve Laugstøl (@trygvis) <https://github.com/trygvis>`__
- `Gediminas Šaltenis (@trylika) <https://github.com/trylika>`__ - `Gediminas Šaltenis (@trylika) <https://github.com/trylika>`__
- `Tuan (@tuanpmt) <https://github.com/tuanpmt>`__ - `Tuan (@tuanpmt) <https://github.com/tuanpmt>`__
- `tubalainen (@tubalainen) <https://github.com/tubalainen>`__ - `tubalainen (@tubalainen) <https://github.com/tubalainen>`__
- `Tuckie (@Tuckie) <https://github.com/Tuckie>`__
- `Alexey Vlasov (@turbulator) <https://github.com/turbulator>`__ - `Alexey Vlasov (@turbulator) <https://github.com/turbulator>`__
- `Seppel Hardt (@tuxBurner) <https://github.com/tuxBurner>`__ - `Seppel Hardt (@tuxBurner) <https://github.com/tuxBurner>`__
- `TVDLoewe (@TVDLoewe) <https://github.com/TVDLoewe>`__ - `TVDLoewe (@TVDLoewe) <https://github.com/TVDLoewe>`__
@ -798,4 +805,4 @@ Contributors
- `Michael Labuschke (@zigman79) <https://github.com/zigman79>`__ - `Michael Labuschke (@zigman79) <https://github.com/zigman79>`__
- `Christian Zufferey (@zuzu59) <https://github.com/zuzu59>`__ - `Christian Zufferey (@zuzu59) <https://github.com/zuzu59>`__
*This page was last updated February 18, 2022.* *This page was last updated March 2, 2022.*

18
lint.py
View File

@ -356,8 +356,12 @@ def lint_directive_formatting(fname, content):
# Empty line must follow # Empty line must follow
if lines[j]: if lines[j]:
errors.append( errors.append(
"Directive '{}' is not followed by an empty line. Please insert an " (
"empty line after {}:{}".format(directive_name, f, j) j,
1,
"Directive '{}' is not followed by an empty line. Please insert an "
"empty line after {}:{}".format(directive_name, fname, j),
)
) )
continue continue
@ -374,11 +378,17 @@ def lint_directive_formatting(fname, content):
num_indent = num_spaces - base_indentation num_indent = num_spaces - base_indentation
if j == k and num_indent != 4: if j == k and num_indent != 4:
errors.append( errors.append(
"Directive '{}' must be indented with 4 spaces, not {}. See " (
"{}:{}".format(directive_name, num_indent, f, j + 1) j + 1,
num_indent,
"Directive '{}' must be indented with 4 spaces, not {}. See "
"{}:{}".format(directive_name, num_indent, fname, j + 1),
)
) )
break break
return errors
@lint_re_check( @lint_re_check(
r"https://esphome.io/", r"https://esphome.io/",