Merge pull request #2296 from esphome/bump-2022.9.0b1

2022.9.0b1
This commit is contained in:
Jesse Hills 2022-09-14 17:27:24 +12:00 committed by GitHub
commit 5a9e1eae2c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
62 changed files with 1627 additions and 67 deletions

View File

@ -38,7 +38,7 @@ PROJECT_NAME = "ESPHome"
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = 2022.8.3
PROJECT_NUMBER = 2022.9.0b1
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a

View File

@ -1,5 +1,5 @@
ESPHOME_PATH = ../esphome
ESPHOME_REF = 2022.8.3
ESPHOME_REF = 2022.9.0b1
.PHONY: html html-strict cleanhtml deploy help live-html Makefile netlify netlify-api api netlify-dependencies svg2png copy-svg2png minify

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

View File

@ -1 +1 @@
2022.8.3
2022.9.0b1

124
changelog/2022.9.0.rst Normal file
View File

@ -0,0 +1,124 @@
ESPHome 2022.9.0 - 21st September 2022
======================================
.. seo::
:description: Changelog for ESPHome 2022.9.0.
:image: /_static/changelog-2022.9.0.png
:author: Jesse Hills
:author_twitter: @jesserockz
.. imgtable::
:columns: 4
DPS310, components/sensor/dps310, dps310.jpg
MCP9600, components/sensor/mcp9600, mcp9600.jpg
TM1621, components/display/tm1621, tm1621.jpg
MPL3115A2, components/sensor/mpl3115a2, mpl3115a2.jpg
uFire EC sensor, components/sensor/ufire_ec, ufire_ec.png
uFire ISE sensor, components/sensor/ufire_ise, ufire_ise.png
Factory Reset Switch, components/switch/factory_reset, restart-alert.svg
Factory Reset Button, components/button/factory_reset, restart-alert.svg
TM1638, components/display/tm1638, tm1638.jpg
BL0942, components/sensor/bl0942, bl0942.png
Full list of changes
--------------------
New Components
^^^^^^^^^^^^^^
- Add dps310 sensor support :esphomepr:`3704` by :ghuser:`kbx81` (new-integration)
- Support for MCP9600 Thermocouple Amplifier :esphomepr:`3700` by :ghuser:`MrEditor97` (new-integration)
- Add support to tm1621 display :esphomepr:`3737` by :ghuser:`Philippe12` (new-integration)
- u-fire EC sensor :esphomepr:`3774` by :ghuser:`pvizeli` (new-integration)
- Add support for MPL3115A2 Pressure/Altitude and Temperature Sensor :esphomepr:`3371` by :ghuser:`kbickar` (new-integration)
- Add support for BL0942 voltage, current, energy and power Sensor :esphomepr:`3777` by :ghuser:`dbuezas` (new-integration)
- Add Factory Reset button and switch :esphomepr:`3724` by :ghuser:`anatoly-savchenkov` (new-integration)
- Add support for TM1638 Led and Key component :esphomepr:`3340` by :ghuser:`skykingjwc` (new-integration)
- Add uFire ISE sensor :esphomepr:`3789` by :ghuser:`pvizeli` (new-integration)
All changes
^^^^^^^^^^^
- support modifying the apds9960 settings :esphomepr:`3708` by :ghuser:`ssieb`
- Add support for pvvx mithermometer display via ble client :esphomepr:`3333` by :ghuser:`puuu`
- Improve OTA error messages adding return codes :esphomepr:`3698` by :ghuser:`IgnacioHR`
- Send CR also for commands for sim800l :esphomepr:`3719` by :ghuser:`ssieb`
- hydreon_rgxx: Support lens_bad, em_sat and temperature :esphomepr:`3642` by :ghuser:`functionpointer`
- wifi: support 802.11k and 802.11v :esphomepr:`3600` by :ghuser:`stintel`
- Add final validate for i2c with mix/max frequency :esphomepr:`3727` by :ghuser:`jesserockz`
- Add dps310 sensor support :esphomepr:`3704` by :ghuser:`kbx81` (new-integration)
- Let favicon be cached :esphomepr:`3729` by :ghuser:`slovdahl`
- Add bitmap font support :esphomepr:`3573` by :ghuser:`justfalter`
- add log messages for bad pronto codes :esphomepr:`3738` by :ghuser:`ssieb`
- add color compare operator's :esphomepr:`3730` by :ghuser:`nielsnl68`
- Support for MCP9600 Thermocouple Amplifier :esphomepr:`3700` by :ghuser:`MrEditor97` (new-integration)
- Support high update rates and fix several bugs in the cse7766 component. :esphomepr:`3675` by :ghuser:`fhriley`
- Add Prometheus metrics relabeling :esphomepr:`3734` by :ghuser:`jangrewe`
- mcp23017: read output latch registers during setup :esphomepr:`3744` by :ghuser:`andyboeh`
- Captive portal show nearby WiFi with no ssid configured :esphomepr:`3748` by :ghuser:`anatoly-savchenkov`
- Remove unnecessary schema extension on template button :esphomepr:`3753` by :ghuser:`jesserockz`
- Tidy up switch schemas :esphomepr:`3754` by :ghuser:`jesserockz`
- Add IP101 support to Ethernet component :esphomepr:`3751` by :ghuser:`kbx81`
- Add BedJet Fan child component :esphomepr:`3735` by :ghuser:`jhansche`
- ibeacon support for the ble_rssi sensor :esphomepr:`3745` by :ghuser:`wjtje`
- Add AEHA IR Protocol :esphomepr:`3726` by :ghuser:`hazi`
- Add sum type to binary_sensor_map :esphomepr:`3541` by :ghuser:`fbrthld`
- Bump aioesphomeapi from 10.11.0 to 10.13.0 :esphomepr:`3740` by :ghuser:`dependabot[bot]`
- Bump pylint from 2.14.5 to 2.15.0 :esphomepr:`3746` by :ghuser:`dependabot[bot]`
- Esp32 pulsecounter optional pcnt :esphomepr:`3691` by :ghuser:`RoboMagus`
- Bump black from 22.6.0 to 22.8.0 :esphomepr:`3760` by :ghuser:`dependabot[bot]`
- Various ili9341 fixes :esphomepr:`3756` by :ghuser:`nielsnl68`
- Add the same docker tags as used in HA :esphomepr:`3752` by :ghuser:`andrey-yantsen`
- Bump pytest from 7.1.1 to 7.1.3 :esphomepr:`3766` by :ghuser:`dependabot[bot]`
- Remove unneeded line (spi component adds it) :esphomepr:`3778` by :ghuser:`jesserockz`
- Move crc16 to helpers :esphomepr:`3780` by :ghuser:`jesserockz`
- YAML linting :esphomepr:`3779` by :ghuser:`jesserockz`
- Add support to tm1621 display :esphomepr:`3737` by :ghuser:`Philippe12` (new-integration)
- u-fire EC sensor :esphomepr:`3774` by :ghuser:`pvizeli` (new-integration)
- Add support for MPL3115A2 Pressure/Altitude and Temperature Sensor :esphomepr:`3371` by :ghuser:`kbickar` (new-integration)
- Add support for BL0942 voltage, current, energy and power Sensor :esphomepr:`3777` by :ghuser:`dbuezas` (new-integration)
- Bump pylint from 2.15.0 to 2.15.2 :esphomepr:`3785` by :ghuser:`dependabot[bot]`
- Add Factory Reset button and switch :esphomepr:`3724` by :ghuser:`anatoly-savchenkov` (new-integration)
- [MPU6050] Support devices with WHOAMI 0x98 :esphomepr:`3784` by :ghuser:`CarlosGS`
- Bump zeroconf from 0.39.0 to 0.39.1 :esphomepr:`3782` by :ghuser:`dependabot[bot]`
- Add support for TM1638 Led and Key component :esphomepr:`3340` by :ghuser:`skykingjwc` (new-integration)
- Remove status_set_error from ufire_ec :esphomepr:`3792` by :ghuser:`pvizeli`
- Bump frenck/action-yamllint from 1.2.0 to 1.3.0 :esphomepr:`3798` by :ghuser:`dependabot[bot]`
- esp32_ble_tracker continuous and one shot scanning modes :esphomepr:`3649` by :ghuser:`jonofmac`
- Add stop action for ble scanning :esphomepr:`3799` by :ghuser:`jesserockz`
- Add Prometheus Service Discovery for online devices :esphomepr:`3788` by :ghuser:`cznewt`
- Allow ble tracker to subscribe to ota start and stop the scanning :esphomepr:`3800` by :ghuser:`jesserockz`
- Add uFire ISE sensor :esphomepr:`3789` by :ghuser:`pvizeli` (new-integration)
- fix spi timing issues :esphomepr:`3763` by :ghuser:`IgnacioHR`
Past Changelogs
---------------
- :doc:`2022.8.0`
- :doc:`2022.6.0`
- :doc:`2022.5.0`
- :doc:`2022.4.0`
- :doc:`2022.3.0`
- :doc:`2022.2.0`
- :doc:`2022.1.0`
- :doc:`2021.12.0`
- :doc:`2021.11.0`
- :doc:`2021.10.0`
- :doc:`2021.9.0`
- :doc:`2021.8.0`
- :doc:`v1.20.0`
- :doc:`v1.19.0`
- :doc:`v1.18.0`
- :doc:`v1.17.0`
- :doc:`v1.16.0`
- :doc:`v1.15.0`
- :doc:`v1.14.0`
- :doc:`v1.13.0`
- :doc:`v1.12.0`
- :doc:`v1.11.0`
- :doc:`v1.10.0`
- :doc:`v1.9.0`
- :doc:`v1.8.0`
- :doc:`v1.7.0`

View File

@ -2,7 +2,7 @@ Changelog
=========
.. redirect::
:url: /changelog/2022.8.0.html
:url: /changelog/2022.9.0.html
.. toctree::
:glob:

View File

@ -40,7 +40,23 @@ Configuration variables:
- **too_cold** (*Optional*): ``true`` if the sensor reports being too cold. Hydreon only mentions this feature for the RG-9.
- **name** (**Required**, string): The name for the voltage sensor.
- **name** (**Required**, string): The name for the sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Binary Sensor <config-binary_sensor>`.
- **lens_bad** (*Optional*): ``true`` if the sensor reports the lens being bad.
- **name** (**Required**, string): The name for the sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Binary Sensor <config-binary_sensor>`.
- **em_sat** (*Optional*): ``true`` if the sensor reports the Emitter being saturated.
- **name** (**Required**, string): The name for the sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.

View File

@ -0,0 +1,51 @@
Factory Reset Button
====================
.. seo::
:description: Instructions for setting up buttons that can remotely invalidate all ESPHome preferences stored in flash and reboot ESP.
:image: restart.svg
The ``factory_reset`` button allows you to remotely invalidate (reset) all ESPHome :ref:`preferences <preferences-flash_write_interval>` stored in flash memory and reboot your node.
After reboot all states, parameters and variables will be reinitialized with their default values. This is useful:
- for devices preflashed with ESPHome to reset behavior back to factory state
- in case of moving a device to a new environment or starting a new use-case (e.g. reset counters or state)
- for privacy concerns when giving away a device
.. note::
**USE WITH GREAT CAUTION!** All credentials, global variables, counters and saved states stored in non-volatile memory will be lost with no chance of recovering them.
Even raw reading of flash memory with ``esptool`` will not help, since data is physically erased from flash memory.
For devices configured using :doc:`captive portal </components/captive_portal>`, this will reset WiFi settings as well, thus making such devices offline.
You'll need to be in close proximity to your device to configure it again using a built-in WiFi access point and captive portal.
.. figure:: images/factory-rst-ui.png
:align: center
:width: 80.0%
.. code-block:: yaml
# Example configuration entry
button:
- platform: factory_reset
name: Restart with Factory Default Settings
Configuration variables:
------------------------
- **name** (**Required**, string): The name of the button.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- All other options from :ref:`Button <config-button>`.
See Also
--------
- :doc:`shutdown`
- :doc:`restart`
- :doc:`safe_mode`
- :doc:`/components/switch/factory_reset`
- :doc:`template`
- :apiref:`factory_reset/factory_reset_button.h`
- :ghedit:`Edit`

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -25,6 +25,9 @@ Configuration variables:
See Also
--------
- :doc:`shutdown`
- :doc:`safe_mode`
- :doc:`factory_reset`
- :doc:`/components/switch/restart`
- :doc:`template`
- :apiref:`restart/button/restart_button.h`

View File

@ -33,6 +33,8 @@ See Also
- :doc:`shutdown`
- :doc:`restart`
- :doc:`factory_reset`
- :doc:`/components/switch/safe_mode`
- :doc:`template`
- :apiref:`safe_mode/safe_mode_button.h`
- :ghedit:`Edit`

View File

@ -32,6 +32,9 @@ See Also
--------
- :doc:`restart`
- :doc:`safe_mode`
- :doc:`factory_reset`
- :doc:`/components/switch/shutdown`
- :doc:`template`
- :apiref:`shutdown/shutdown_button.h`
- :ghedit:`Edit`

View File

@ -68,6 +68,31 @@ From :ref:`lambdas <config-lambda>`, you can call methods to do some advanced st
- lambda: |-
id(bedjet_1).upgrade_firmware();
- ``.send_local_time``: If `time_id` is set, attempt to sync the clock now.
.. code-block:: yaml
button:
- platform: template
name: "Sync Clock"
on_press:
then:
- lambda: |-
id(my_bedjet_fan).send_local_time();
- ``.set_clock``: Set the BedJet clock to a specified time; works with or without a `time_id`.
.. code-block:: yaml
button:
- platform: template
name: "Set Clock to 10:10pm"
on_press:
then:
- lambda: |-
id(my_bedjet_fan).set_clock(22, 10);
``bedjet`` Climate
------------------
@ -97,29 +122,30 @@ Configuration variables:
- All other options from :ref:`Climate <config-climate>`.
- ``.send_local_time``: If ``time_id`` is set, attempt to sync the clock now.
``bedjet`` Fan
--------------
.. code-block:: yaml
The `fan` platform exposes the BedJet's fan-related functionality, including
on/off and speed control.
button:
- platform: template
name: "Sync Clock"
on_press:
then:
- lambda: |-
id(my_bedjet_fan).send_local_time();
When the BedJet is already on, turning the Fan component off will set the BedJet unit's mode to
``OFF``. If it was not already on, it will be turned on to mode ``FAN_ONLY``.
- ``.set_clock``: Set the BedJet clock to a specified time; works with or without a ``time_id``.
.. code-block:: yaml
.. code-block:: yaml
fan:
- platform: bedjet
id: my_bedjet_fan_entity
name: "My BedJet Fan"
bedjet_id: bedjet_1
button:
- platform: template
name: "Set Clock to 10:10pm"
on_press:
then:
- lambda: |-
id(my_bedjet_fan).set_clock(22, 10);
Configuration variables:
************************
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- **name** (**Required**, string): The name of the fan device.
- **bedjet_id** (**Required**, :ref:`config-id`): The ID of the Bedjet component.
- Other options from :ref:`Fan <config-fan>`.
Known issues:
-------------

Binary file not shown.

After

Width:  |  Height:  |  Size: 426 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

View File

@ -149,10 +149,11 @@ Fonts
The rendering engine also has a powerful font drawer which integrates seamlessly into ESPHome.
Whereas in most Arduino display projects you have to use one of a few pre-defined fonts in very
specific sizes, with ESPHome you have the option to use **any** TrueType (``.ttf``) font file
at **any** size! Granted the reason for it is actually not having to worry about the licensing of font files :)
at **any** size, as well as fixed-size `PCF <https://en.wikipedia.org/wiki/Portable_Compiled_Format>`_ and `BDF <https://en.wikipedia.org/wiki/Glyph_Bitmap_Distribution_Format>`_ bitmap fonts! Granted the reason for it is
actually not having to worry about the licensing of font files :)
To use fonts you first have to define a font object in your ESPHome configuration file. Just grab
a ``.ttf`` file from somewhere on the internet and place it, for example,
a ``.ttf``, ``.pcf``, or ``.bdf`` file from somewhere on the internet and place it, for example,
inside a ``fonts`` folder next to your configuration file.
Next, create a ``font:`` section in your configuration:
@ -169,12 +170,15 @@ Next, create a ``font:`` section in your configuration:
id: roboto
size: 20
- file: "fonts/tom-thumb.bdf"
id: tomthumb
display:
# ...
Configuration variables:
- **file** (**Required**): The path (relative to where the .yaml file is) of the TrueType font
- **file** (**Required**): The path (relative to where the .yaml file is) of the font
file. You can use the ``gfonts://`` short form to use Google Fonts, or use the below structure:
- **type** (**Required**, string): Can be ``gfonts`` or ``local``.
@ -200,12 +204,13 @@ Configuration variables:
**Local Fonts**:
- **path** (**Required**, string): The path (relative to where the .yaml file is) of the TrueType font file.
- **path** (**Required**, string): The path (relative to where the .yaml file is) of the TrueType or bitmap font file.
- **id** (**Required**, :ref:`config-id`): The ID with which you will be able to reference the font later
in your display code.
- **size** (*Optional*, int): The size of the font in pt (not pixel!).
If you want to use the same font in different sizes, create two font objects. Defaults to ``20``.
If you want to use the same font in different sizes, create two font objects. Note: *size* is ignored
by bitmap fonts. Defaults to ``20``.
- **glyphs** (*Optional*, list): A list of characters you plan to use. Only the characters you specify
here will be compiled into the binary. Adjust this if you need some special characters or want to
reduce the size of the binary if you don't plan to use some glyphs. The items in the list can also
@ -216,7 +221,7 @@ Configuration variables:
.. note::
To use fonts you will need to have the python ``pillow`` package installed, as ESPHome uses that package
to translate the TrueType files into an internal format. If you're running this as a Home Assistant
to translate the TrueType and bitmap font files into an internal format. If you're running this as a Home Assistant
add-on or with the official ESPHome docker image, it should already be installed. Otherwise you need
to install it using
``pip install pillow``.

View File

@ -0,0 +1,234 @@
PVVX MiThermometer Display
==========================
.. seo::
:description: Instructions for setting up BLE devices with PVVX MiThermometer custom firmware as displays.
:image: /components/sensor/images/xiaomi_lywsd03mmc.jpg
The ``pvvx_mithermometer`` display platform allows you to use devices running the `ATC_MiThermometer firmware <https://github.com/pvvx/ATC_MiThermometer>`__ by pvvx as display drivers with ESPHome.
.. figure:: /components/sensor/images/xiaomi_lywsd03mmc.jpg
:align: center
:width: 75.0%
Xiaomi LYWSD03MMC.
The data to be displayed is transmitted as external data via BLE.
To do this, a ``ble_client`` component must be set up.
This component can also synchronize the time of the pvvx device by transmitting a timestamp on each connection.
After the data has been transmitted, the BLE connection is terminated in order to be able to receive the advertising data required for the ``pvvx_mithermometer`` sensor platform.
The pvvx firmware refreshes the screen periodically (can be set as minimum LCD refresh rate in the firmware configuration).
By default, the internal sensor data and, if available and valid (``validity_period``), the external data are switched every 2.5 s.
Further firmware configuration makes it possible to activate other display modes such as time and battery status.
The firmware configuration can be changed via browser using `TelinkMiFlasher.html <https://pvvx.github.io/ATC_MiThermometer/TelinkMiFlasher.html>`__.
.. code-block:: yaml
# Example configuration entry
esp32_ble_tracker:
ble_client:
- mac_address: "A4:C1:38:B1:CD:7F"
id: pvvx_ble_display
display:
- platform: pvvx_mithermometer
ble_client_id: pvvx_ble_display
lambda: |-
it.print_bignum(23.1);
it.print_unit(pvvx_mithermometer::UNIT_DEG_C);
it.print_smallnum(33);
it.print_percent(true);
it.print_happy(true);
it.print_bracket(true);
Configuration variables:
------------------------
- **ble_client_id** (**Required**, :ref:`config-id`): ID of the associated BLE client.
- **time_id** (*Optional*, :ref:`config-id`): ID of a :doc:`/components/time` component. If set, the time will be synchronized with every connection.
- **disconnect_delay** (*Optional*, :ref:`config-time`): The amount of time the BLE connection is maintained before being disconnected again. Defaults to ``5s``.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to transmit the display data. Defaults to ``60s``.
- **validity_period** (*Optional*, :ref:`config-time`): The time periode for which the pvvx device should display the information. Defaults to ``5min``.
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use to define the information to be displayed.
See :ref:`display-pvvx_mithermometer_lambda` for more information.
- **auto_clear_enabled** (*Optional*, boolean): Whether to automatically clear the display data before each lambda call,
or to keep the existing display content (must overwrite explicitly, e.g., only on data change). Defaults to ``true``.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
.. _display-pvvx_mithermometer_lambda:
Rendering Lambda
----------------
The ``pvvx_mithermometer`` displays can only show two numbers with optional units and a smiley face. Therefore, the API is tailord to these limitations.
In the lambda you're passed a variable called ``it`` as with all other displays. In this case however, ``it`` is a ``PVVXDisplay`` instance (see API Reference).
.. code-block:: yaml
display:
- platform: pvvx_mithermometer
# ...
lambda: |-
// Print -2.1 as big number (first row)
it.print_bignum(-2.1);
// Print °C next to the big number
it.print_unit(pvvx_mithermometer::UNIT_DEG_C);
// Print 88 as small number (second row)
it.print_smallnum(88);
// Print % next to the small number
it.print_percent(true);
// Print the low battery symbol
it.print_battery(true);
// Print a happy smiley. Results in " ^_^ "
it.print_happy(true);
// Print a sad smiley. Results in " -∧- "
it.print_sad(true);
// The comination of happy and sad simley results in " Δ△Δ "
// Print round brackets around the simley
it.print_bracket(true);
// The final result is "(Δ△Δ)"
Valid values for the big number (``it.print_bignum()``) are from -99.5 to 1999.5. Smaller values are displayed as ``Lo``, larger ones as ``Hi``. It will be printed to the screen. If not defined, a 0 will be displayed.
Valid values for the small number (``it.print_smallnum()``) are from -9 to 99. Smaller values are displayed as ``Lo``, larger ones as ``Hi``. If not defined, a 0 will be displayed.
Possible values for the unit of the big number (``it.print_unit()``) are:
- ``pvvx_mithermometer::UNIT_NONE``: do not show a unit
- ``pvvx_mithermometer::UNIT_DEG_GHE``: show ``°Г``
- ``pvvx_mithermometer::UNIT_MINUS``: show ``-``
- ``pvvx_mithermometer::UNIT_DEG_F``: show ``°F``
- ``pvvx_mithermometer::UNIT_LOWDASH``: show ``_``
- ``pvvx_mithermometer::UNIT_DEG_C``: show ``°C``
- ``pvvx_mithermometer::UNIT_LINES``: show ``=``
- ``pvvx_mithermometer::UNIT_DEG_E``: show ``°E``
The appearance of the smiley can be defined by combining the functions ``it.print_happy()``, ``it.print_sad()`` and ``it.print_bracket(true)``:
=================== =============== ================= ==========
``print_bracket()`` ``print_sad()`` ``print_happy()`` result
=================== =============== ================= ==========
false false false
false false true ``^_^``
false true false ``-∧-``
false true true ``Δ△Δ``
true false false ``( )``
true false true ``(^_^)``
true true false ``(-∧-)``
true true true ``(Δ△Δ)``
=================== =============== ================= ==========
Display states of other sensors
*******************************
The following example display the sensor states of a MiFlora sensor on a pvvx display. The time is also synchronized.
.. code-block:: yaml
time:
- platform: homeassistant
id: homeassistant_time
esp32_ble_tracker:
ble_client:
- mac_address: "A4:C1:38:B1:CD:7F"
id: pvvx_ble_display
sensor:
- platform: pvvx_mithermometer
mac_address: "A4:C1:38:B1:CD:7F"
temperature:
name: "PVVX Temperature"
humidity:
name: "PVVX Humidity"
battery_level:
name: "PVVX Battery-Level"
battery_voltage:
name: "PVVX Battery-Voltage"
- platform: xiaomi_hhccjcy01
mac_address: '94:2B:FF:5C:91:61'
temperature:
name: "Xiaomi HHCCJCY01 Temperature"
id: miflora_temperature
moisture:
name: "Xiaomi HHCCJCY01 Moisture"
id: miflora_moisture
illuminance:
name: "Xiaomi HHCCJCY01 Illuminance"
conductivity:
name: "Xiaomi HHCCJCY01 Soil Conductivity"
display:
- platform: pvvx_mithermometer
ble_client_id: pvvx_ble_display
update_interval: 10min
validity_period: 15min
time_id: homeassistant_time
lambda: |-
double temp = id(miflora_temperature).state;
double moisture = id(miflora_moisture).state;
it.print_bignum(temp);
it.print_unit(pvvx_mithermometer::UNIT_DEG_C);
it.print_smallnum(moisture);
it.print_percent();
if (temp < 5 || temp > 30 || moisture < 10 || moisture > 50) {
it.print_sad();
} else {
it.print_happy();
}
Only synchronize the time once a day
************************************
The following example will synchronized the time of the pvvx device once a day.
.. code-block:: yaml
time:
- platform: homeassistant
id: homeassistant_time
esp32_ble_tracker:
ble_client:
- mac_address: "A4:C1:38:B1:CD:7F"
id: pvvx_ble_display
sensor:
- platform: pvvx_mithermometer
mac_address: "A4:C1:38:B1:CD:7F"
temperature:
name: "PVVX Temperature"
humidity:
name: "PVVX Humidity"
battery_level:
name: "PVVX Battery-Level"
battery_voltage:
name: "PVVX Battery-Voltage"
display:
- platform: pvvx_mithermometer
ble_client_id: pvvx_ble_display
update_interval: 24h
validity_period: 0s
time_id: homeassistant_time
See Also
--------
- :doc:`index`
- :doc:`/components/ble_client`
- :doc:`/components/sensor/xiaomi_ble`
- :apiref:`pvvx_mithermometer/display/pvvx_display.h`
- `ATC_MiThermometer firmware <https://github.com/pvvx/ATC_MiThermometer>`__ by `pvvx <https://github.com/pvvx>`__
- :ghedit:`Edit`

View File

@ -0,0 +1,92 @@
TM1621 LCD Display
========================
.. seo::
:description: Instructions for setting up TM1621 LCD Display.
:image: tm1621.jpg
The ``tm1621`` display platform allows you to use the popular TM1621 LCD display drivers with ESPHome, that can find in Sonoff device like THR316D, THR320D, POWR316D or POWR320D
.. figure:: images/tm1621-full.jpg
:align: center
:width: 75.0%
TM1621 LCD Display.
The LCD have four signal, ``cs`` for chip select, ``data`` for data signal, ``read`` for reading data dir and ``write`` for writing data dir
.. code-block:: yaml
# Example configuration entry
display:
platform: tm1621
id: tm1621_display
cs_pin: GPIO17
data_pin: GPIO5
read_pin: GPIO23
write_pin: GPIO18
lambda: |-
it.printf(0, "%.1f", id(my_sensor1).state);
it.display_celsius(true);
it.printf(1, "%.1f", id(my_sensor2).state);
it.display_humidity(true);
Configuration variables:
------------------------
- **cs_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin you have the CS line.
- **data_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin you have the DATA line.
- **read_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin you have the READ line.
- **write_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin you have the WRITE line.
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the TM1621.
See :ref:`display-tm1621_lambda` for more information.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``1s``.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
.. _display-tm1621_lambda:
Rendering Lambda
----------------
The TM1621 has a similar API to the fully fledged :ref:`display-engine`, but it's only a subset as the TM1621
LCD displays don't have a concept of individual pixels. In the lambda you're passed a variable called ``it``
as with all other displays. In this case however, ``it`` is a TM1621 instance (see API Reference).
The most basic operation with the TM1621 is wiring a simple number to the screen as in the configuration example
at the top of this page. But even though you're passing in a string (here ``"0123"``), ESPHome converts it
into a representation that the TM1621 can understand.
Each of the three methods (``print`` and ``printf``) all optionally take a the line number (0 for first line and 1 for the second).
This argument is ``0`` by default.
Also note that the ``.`` (dot) character is special because when ESPHome encounters it in the string the dot
segment of the previous position will be enabled.
.. code-block:: yaml
display:
- platform: tm1621
# ...
lambda: |-
it.printf(0, "%.1f", id(my_sensor1).state);
it.display_celsius(true);
it.printf(1, "%.1f", id(my_sensor2).state);
it.display_humidity(true);
Please see :ref:`display-printf` for a quick introduction into the ``printf`` formatting rules.
Also we have five function to display or not some unites:
- °C on the first line : ``display_celsius(bool)``
- °F on the first line : ``display_fahrenheit(bool)``
- %HR on the second line : ``display_fahrenheit(bool)``
- V on the first line and A on the second line : ``display_voltage(bool)``
- kW/h on the first line and W on the second line : ``display_kwh(bool)``
See Also
--------
- :doc:`index`
- :apiref:`tm1621/tm1621.h`
- :ghedit:`Edit`

View File

@ -0,0 +1,188 @@
TM1638 7 Segment Display Keypad & LED Module
============================================
.. seo::
:description: Instructions for setting up TM1638 7 Segment Display Keypad & LED Module
:image: tm1638.jpg
The ``tm1638`` display platform allows you to use the popular TM1638 7 Segment Display Keypad & LED Module with ESPHome.
.. figure:: images/tm1638-full.jpg
:align: center
:width: 75.0%
TM1638 8-Segment Display Keypad & LED Module.
The module can be powered with 5v DC. To display the colon punctuation use the
``.`` in the colon place. (See clock example below)
.. code-block:: yaml
# Example configuration entry
display:
platform: tm1638
id: tm1638_display
stb_pin: 5
clk_pin: 18
dio_pin: 23
intensity: 5
update_interval: 5s
lambda: |-
it.print("0123");
Configuration variables:
------------------------
- **stb_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin you have the STB line hooked up to.
- **clk_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin you have the CLK line hooked up to.
- **dio_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin you have the DIO line hooked up to.
- **intensity** (*Optional*, int): The intensity with which the TM1638 should drive the outputs. Range is from
0 (least intense) to 7 (the default). This setting will affect the 7 segment display and the 8 individual LED lights.
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the TM1638.
See :ref:`display-tm1638_lambda` for more information.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``1s``.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
.. _display-tm1638_lambda:
Rendering Lambda
----------------
The TM1638 has a similar API to the fully fledged :ref:`display-engine`, but it's only a subset as the TM1638
7-segment Display Keypad & LED Module does not have a concept of individual pixels. In the lambda you're passed a variable called ``it``
as with all other displays. In this case however, ``it`` is a TM1638 instance (see API Reference).
The most basic operation with the TM1638 is writing a simple number to the screen as in the configuration example
at the top of this page. But even though you're passing in a string (here ``"0123"``), ESPHome converts it
into a representation that the TM1638 can understand: The exact pixels that should be turned on. And of course,
not all characters can be represented. You can see a full list of characters :ref:`at the MAX7219 docs <display-max7219_characters>`.
Each of the three methods (``print``, ``printf`` and ``strftime``) all optionally take a position argument at the
beginning which can be used to print the text at a specific position. This argument is ``0`` by default which
means the first character of the first TM1638. For example to start the first character of your text at
the end of the TM1638, you would write ``it.print(3, "0");``.
Also note that the ``.`` (dot) character is special because when ESPHome encounters it in the string the dot
segment of the previous position will be enabled.
.. code-block:: yaml
display:
- platform: tm1638
# ...
lambda: |-
// Print 0 at position 0 (left)
it.print("0");
// Result: "0 "
// Print 1 at position 1 (second character)
it.print(1, "1");
// Result: "01 "
// Let's write a sensor value (let's assume it's 42.1)
it.printf(0, "%.1f", id(my_sensor).state);
// Result: "42.1 " (the dot will appear on the "2" segment)
// Overwrite the previous content with blank
it.print(" ");
// Print a right-padded sensor value with 0 digits after the decimal
it.printf("S%3.0f", id(my_sensor).state);
// Result: "S 42"
// Print the current time
it.strftime("%H.%M");
// Result for 10:06:42 -> "10:06" on a display with : and "10.06" on a display with .
Please see :ref:`display-printf` for a quick introduction into the ``printf`` formatting rules and
:ref:`display-strftime` for an introduction into the ``strftime`` time formatting.
Creating a digital clock
************************
The following example creates a typical digital clock with the ``:`` colon flashing every second.
.. code-block:: yaml
time:
- platform: homeassistant
id: homeassistant_time
display:
platform: tm1638
clk_pin: 18
dio_pin: 23
stb_pin: 5
update_interval: 500ms
lambda: |-
static int i = 0;
i++;
if ((i % 2) == 0)
it.strftime("%H.%M", id(homeassistant_time).now());
else
it.strftime("%H%M", id(homeassistant_time).now());
LEDs
----------------
The TM1638 7 Segment Display Keypad & LED Module has 8 LED lights across the top or middle of the display, depending on the board. These LEDs can be exposed as :doc:`switches </components/switch/index>` or :doc:`outputs </components/output/index>` with the led property set between 0 and 7. The board has the LEDs labelled 1-8, but the leds use zero based addressing. The LED labelled "1" is LED 0 in the configuration.
.. code-block:: yaml
switch:
- platform: tm1638
id: TM1638Led1
led: 0
output:
- platform: tm1638
id: TM1638Led2
led: 1
Buttons
----------------
The TM1638 7 Segment Display Keypad & LED Module has 8 buttons across the top or middle of the display, depending on the board. These buttons are exposed as binary sensor components with the key property set between 0 and 7, They can be accessed via the binary sensor component configuration. As with the LEDs the buttons are labeled 1-8 on the board, but use zero based addressing. Therefore the button labelled "1" is key 0 in the configuration. See :doc:`/components/binary_sensor/index`
.. code-block:: yaml
binary_sensor:
- platform: tm1638
name: "TM1638 Button 1"
id: TM1638Button1
key: 0
filters:
- delayed_on: 10ms
on_press:
then:
- switch.turn_on: TM1638Led1
on_release:
then:
- switch.turn_off: TM1638Led1
- platform: tm1638
name: "TM1638 Button 2"
id: TM1638Button2
key: 1
filters:
- delayed_on: 10ms
on_press:
then:
- output.turn_on: TM1638Led2
on_release:
then:
- output.turn_off: TM1638Led2
See Also
--------
- :doc:`index`
- :doc:`/components/switch/index`
- :doc:`/components/binary_sensor/index`
- :apiref:`tm1638/tm1638.h`
- :ghedit:`Edit`

View File

@ -74,6 +74,8 @@ Configuration variables:
after having received an advertising packet. With some devices this is necessary to receive all data,
but also drains those devices' power a bit more. Some devices don't need this, in that case
you can save power and RF pollution by setting it to ``false``. Defaults to ``true``.
- **continuous** (*Optional*, boolean): Whether to scan continuously (forever) or to only scan when
asked to start a scan (with start_scan action). Defaults to ``true``.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID for this ESP32 BLE Hub.
@ -87,14 +89,17 @@ Automations:
- **on_ble_service_data_advertise** (*Optional*, :ref:`Automation <automation>`): An automation to
perform when a Bluetooth advertising with service data is received. See
:ref:`esp32_ble_tracker-on_ble_service_data_advertise`.
- **on_scan_end** (*Optional*, :ref:`Automation <automation>`): An automation to perform when
a BLE scan has completed (the duration of the scan). This works with continuous set to true or false.
ESP32 Bluetooth Low Energy Tracker Automation
---------------------------------------------
.. _esp32_ble_tracker-on_ble_advertise:
``on_ble_advertise``
********************
``on_ble_advertise`` Trigger
************************************************
This automation will be triggered when a Bluetooth advertising is received. A variable ``x`` of type
:apiclass:`esp32_ble_tracker::ESPBTDevice` is passed to the automation for use in lambdas.
@ -129,8 +134,8 @@ Configuration variables:
.. _esp32_ble_tracker-on_ble_manufacturer_data_advertise:
``on_ble_manufacturer_data_advertise``
**************************************
``on_ble_manufacturer_data_advertise`` Trigger
************************************************
This automation will be triggered when a Bluetooth advertising with manufcaturer data is received. A
variable ``x`` of type ``std::vector<uint8_t>`` is passed to the automation for use in lambdas.
@ -160,8 +165,8 @@ Configuration variables:
.. _esp32_ble_tracker-on_ble_service_data_advertise:
``on_ble_service_data_advertise``
*********************************
``on_ble_service_data_advertise`` Trigger
************************************************
This automation will be triggered when a Bluetooth advertising with service data is received. A
variable ``x`` of type ``std::vector<uint8_t>`` is passed to the automation for use in lambdas.
@ -186,6 +191,69 @@ Configuration variables:
- **service_uuid** (**Required**, string): 16 bit, 32 bit, or 128 bit BLE Service UUID.
- See :ref:`Automation <automation>`.
``on_scan_end`` Trigger
************************************************
This automation will be triggered when a Bluetooth scanning sequence has completed. If running
with continuous set to true, this will trigger every time the scan completes (the duration of
a scan).
.. code-block:: yaml
esp32_ble_tracker:
on_scan_end:
- then:
- lambda: |-
ESP_LOGD("ble_auto", "The scan has ended!");
Configuration variables:
- None
- See :ref:`Automation <automation>`.
``esp32_ble_tracker.start_scan`` Action
************************************************
Start a Bluetooth scan. If there is a scan already in progress, then the action is ignored.
.. code-block:: yaml
esp32_ble_tracker:
scan_parameters:
continuous: false
on_...:
- esp32_ble_tracker.start_scan:
Configuration variables:
- **continuous** (*Optional*, boolean): Whether to start the scan in continuous mode. Defaults to ``false``
.. note::
This action can also be written in :ref:`lambdas <config-lambda>`:
.. code-block:: yaml
esp32_ble_tracker:
id: ble_tracker_id
.. code-block:: cpp
id(ble_tracker_id).start_scan()
``esp32_ble_tracker.stop_scan`` Action
************************************************
Stops the bluetooth scanning. It can be started again with the above start scan action.
.. code-block:: yaml
esp32_ble_tracker:
on_...:
- esp32_ble_tracker.stop_scan:
See Also
--------

View File

@ -6,9 +6,11 @@ Ethernet Component
:image: ethernet.svg
:keywords: Ethernet, ESP32
This core ESPHome component sets up ethernet connections for ESP32s.
This ESPHome component enables *wired* Ethernet connections for ESP32s.
Ethernet for ESP8266 is not supported.
This component can't be used in same time than Wifi one, even if your ESP32 has both wired.
This component and the Wi-Fi component may **not** be used simultaneously, even if both are physically available.
.. code-block:: yaml
@ -29,24 +31,23 @@ This component can't be used in same time than Wifi one, even if your ESP32 has
Configuration variables:
------------------------
- **type** (**Required**, string): The type of LAN chipset. Must be one of
``LAN8720`` or ``TLK110`` (see datasheet for more details).
- **type** (**Required**, string): The type of LAN chipset/phy. Must be one of
``LAN8720``, ``TLK110`` or ``IP101`` (see datasheet for more details).
- **mdc_pin** (**Required**, :ref:`config-pin`): The MDC pin of the board.
Usually this is ``GPIO23``.
- **mdio_pin** (**Required**, :ref:`config-pin`): The MDIO pin of the board.
Usually this is ``GPIO18``.
- **clk_mode** (*Optional*, string): The clock mode of the data lines, this must be one
of these values: (see datasheet of your board for more details)
- **clk_mode** (*Optional*, string): The clock mode of the data lines. See your board's
datasheet for more details. Must be one of the following values:
- ``GPIO0_IN`` (Default) - External clock
- ``GPIO0_OUT`` - Internal clock
- ``GPIO16_OUT`` - Internal clock
- ``GPIO17_OUT`` - Internal clock
- **phy_addr** (*Optional*, int): The PHY addr type of the ethernet controller. Defaults to 0.
- **power_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The pin with which
to control the power of the board. Leave unspecified for no power pin (default)
- **phy_addr** (*Optional*, int): The PHY addr type of the Ethernet controller. Defaults to 0.
- **power_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The pin controlling the
power/reset status of the Ethernet controller. Leave unspecified for no power pin (default).
- **manual_ip** (*Optional*): Manually configure the static IP of the node.
- **static_ip** (**Required**, IPv4 address): The static IP of your node.
@ -66,9 +67,10 @@ Configuration variables:
.. note::
If your ethernet board is not designed with an ESP32 built in, chances are that you are going
to use flying leads, dupont wires, etc. to connect the ethernet to the ESP32. This is
probably to fail as the ethernet interface uses a high frequency clock signal. For more
If your Ethernet board is not designed with an ESP32 built in, it's common to attempt
to use flying leads, dupont wires, etc. to connect the Ethernet controller to the ESP32.
This approach is likely to fail, however, as the Ethernet interface uses a high frequency
clock signal that will not travel reliably over these types of connections. For more
information and wiring details refer to the link in the *See also* section.
Configuration for Olimex ESP32-POE
@ -151,7 +153,7 @@ Configuration for OpenHacks LAN8720
program properly.
Configuration for wESP32 board (up to rev.6)
-------------------------------------------------
--------------------------------------------
.. code-block:: yaml
@ -167,6 +169,19 @@ Configuration for wESP32 board (up to rev.6)
Revision 7 and upwards of the wESP32 board does not have a LAN8720 chip. Until support for the
replacement RTL8201 is included in ESPHome, the wESP board rev.7 will not work with the above configuration.
Configuration for ESP32-Ethernet-Kit board
------------------------------------------
.. code-block:: yaml
ethernet:
type: IP101
mdc_pin: GPIO23
mdio_pin: GPIO18
clk_mode: GPIO0_IN
phy_addr: 1
power_pin: GPIO5
See Also
--------

View File

@ -29,6 +29,7 @@ Configuration variables:
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- **include_internal** (*Optional*, boolean): Whether ``internal`` entities should be displayed on the
web interface. Defaults to ``false``.
- **relabel** (*Optional*): Override metric labels. See :ref:`prometheus-relabel`
.. note::
@ -41,6 +42,32 @@ Configuration variables:
static_configs:
- targets: [<ip or node_name.local>]
Metric Relabeling
-----------------
ESPHome allows you to do some basic relabeling of Prometheus metrics.
This is useful if you want to have different metric names or IDs than those shown in Home Assistant or the web interface.
You can relabel metric name or ID labels by adding a ``relabel`` block in the ``prometheus`` configuration,
and then adding a block with ``id`` and/or ``name`` fields for each sensor whose labels your want to override.
.. _prometheus-relabel:
``relabel``
***********
Set the the ``id`` and ``name`` label values of the Prometheus metric for the sensor with the specified ID.
.. code-block:: yaml
# Example configuration entry
prometheus:
relabel:
my_voltage_sensor:
id: angry_pixies
name: "Angry Pixies"
See Also
--------

View File

@ -30,6 +30,7 @@ Configuration variables:
- **dump** (*Optional*, list): Decode and dump these remote codes in the logs (at log.level=DEBUG).
Set to ``all`` to dump all available codecs:
- **aeha**: Decode and dump AEHA infrared codes.
- **coolix**: Decode and dump Coolix infrared codes.
- **dish**: Decode and dump Dish infrared codes.
- **jvc**: Decode and dump JVC infrared codes.
@ -65,6 +66,9 @@ Configuration variables:
Automations:
- **on_aeha** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
AEHA remote code has been decoded. A variable ``x`` of type :apiclass:`remote_base::AEHAData`
is passed to the automation for use in lambdas.
- **on_coolix** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
Coolix remote code has been decoded. A variable ``x`` of type :apiclass:`remote_base::CoolixData`
is passed to the automation for use in lambdas.
@ -164,6 +168,12 @@ Configuration variables:
Remote code selection (exactly one of these has to be included):
- **aeha**: Trigger on a decoded AEHA remote code with the given data.
- **address** (**Required**, int): The address to trigger on, see dumper output for more info.
- **data** (**Required**, 3-35 bytes list): The code to listen for, see :ref:`remote_transmitter-transmit_aeha`
for more info. Usually you only need to copy this directly from the dumper output.
- **coolix**: Trigger on a decoded Coolix remote code with the given data.
- **data** (**Required**, int): The 24-bit Coolix code to trigger on, see dumper output for more info.

View File

@ -78,6 +78,27 @@ Configuration variables:
If you're looking for the same functionality as is default in the ``rpi_rf`` integration in
Home Assistant, you'll want to set the **times** to 10 and the **wait_time** to 0s.
.. _remote_transmitter-transmit_aeha:
``remote_transmitter.transmit_aeha`` Action
*********************************************
This :ref:`action <config-action>` sends a AEHA code to a remote transmitter.
.. code-block:: yaml
on_...:
- remote_transmitter.transmit_aeha:
address: 0x1FEF
data: [0x1F, 0x3E, 0x06, 0x5F]
Configuration variables:
- **address** (**Required**, int): The address to send the command to, see dumper output for more details.
- **data** (**Required**, list): The command to send, A length of 2-35 bytes can be specified for one packet.
AEHA refers to the Association for Electric Home Appliances in Japan, a format used by Panasonic and many other companies.
.. _remote_transmitter-transmit_coolix:
``remote_transmitter.transmit_coolix`` Action

View File

@ -54,6 +54,12 @@ Base Configuration:
- **address** (*Optional*, int): The I²C address of the sensor. Defaults to ``0x39``.
- **update_interval** (*Optional*, :ref:`config-time`): The interval
to check the sensor. Defaults to ``60s``.
- **led_drive** (*Optional*, int): The LED drive level in mA. One of 100mA, 50mA, 25mA, 12.5mA. Defaults to ``100mA``.
- **proximity_gain** (*Optional*, int): The proximity gain level. One of 1x, 2x, 4x, 8x. Defaults to ``4x``.
- **ambient_light_gain** (*Optional*, int): The ambient light gain level. One of 1x, 4x, 16x, 64x. Defaults to ``4x``.
- **gesture_led_drive** (*Optional*, int): The gesture LED drive level in mA. One of 100mA, 50mA, 25mA, 12.5mA. Defaults to ``100mA``.
- **gesture_gain** (*Optional*, int): The proximity gain level. One of 1x, 2x, 4x, 8x. Defaults to ``4x``.
- **gesture_wait_time** (*Optional*, int): The gesture wait time in ms. One of 0ms, 2.8ms, 5.6ms, 8.4ms, 14ms, 22.4ms, 30.8ms, 39.2ms. Defaults to ``2.8ms``.
Sensor
------

View File

@ -13,7 +13,7 @@ This sensor is **mostly used for touch** devices but could be used for any ``bin
Add your binary sensors as ``channels`` to the binary sensor map. The binary sensor map then publishes a value depending
on the type of the binary sensor map and the values specified with each channel.
This platform currently supports only one measurement type: ``GROUP``, but others might get added later.
This platform currently supports two measurement types: ``GROUP`` and ``SUM``, and others might get added later.
You need to specify which type of mapping you want with the ``type:`` configuration value:
- ``GROUP`` Each channel has its own value. The sensor publishes the average value of all active
@ -47,6 +47,45 @@ You need to specify which type of mapping you want with the ``type:`` configurat
channel: 0
id: touchkey0
# ...
- ``SUM`` Each channel has its own value. The sensor publishes the sum of all active
binary sensors values.
.. code-block:: yaml
# Example configuration entry
sensor:
- platform: binary_sensor_map
id: group_0
name: 'Group Map 0'
type: sum
channels:
- binary_sensor: bit0
value: 1
- binary_sensor: bit1
value: 2
- binary_sensor: bit2
value: 4
- binary_sensor: bit3
value: 8
binary_sensor:
- platform: gpio
pin: 4
id: bit0
- platform: gpio
pin: 5
id: bit1
- platform: gpio
pin: 6
id: bit2
- platform: gpio
pin: 7
id: bit3
# ...
Configuration variables:
------------------------

View File

@ -0,0 +1,68 @@
Belling BL0942 Energy Monitor
==================================
.. seo::
:description: Instructions for setting up BL0942 power monitors.
:image: bl0942.png
:keywords: BL0942, Aubess, Mini Smart Switch With Energy Monitor
The ``bl0942`` sensor platform allows you to use BL0942 energy monitors sensors with
ESPHome. These are used in some Tuya-devices (e.g. Aubess Tuya WiFi Mini Smart Switch With Energy Monitor)
The communication with this integration is done over a :ref:`UART bus <uart>`.
You must therefore have a ``uart:`` entry in your configuration with both the TX and RX pins set
to some pins on your board and the baud rate set to 4800 with 1 stop bit.
.. code-block:: yaml
# Example configuration entry
uart:
id: uart_bus
tx_pin: TX
rx_pin: RX
baud_rate: 4800
stop_bits: 1
sensor:
- platform: bl0942
uart_id: uart_bus
voltage:
name: 'BL0942 Voltage'
current:
name: 'BL0942 Current'
power:
name: 'BL0942 Power'
filters:
multiply: -1
energy:
name: 'BL0942 Energy'
frequency:
name: "BL0942 Frequency"
accuracy_decimals: 2
update_interval: 60s
Configuration variables:
------------------------
- **voltage** (*Optional*): The voltage value of the sensor in Volts.
All options from :ref:`Sensor <config-sensor>`.
- **current** (*Optional*): The current value of the sensor in Amperes. All options from
:ref:`Sensor <config-sensor>`.
- **power** (*Optional*): The (active) power value of the sensor in Watts. Note that some power meters will report this in negative values (probably wired backwards), so you may want to use a filter to multiply it by -1. All options from :ref:`Sensor <config-sensor>`.
- **energy** (*Optional*): Use the voltage value of the sensor in kWh.
All options from :ref:`Sensor <config-sensor>`.
- **frequency** (*Optional*): The frequency value of the sensor in Hertz. All options from
:ref:`Sensor <config-sensor>`.
All options from :ref:`Sensor <config-sensor>`.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
sensor. Defaults to ``60s``.
- **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`UART Component <uart>` if you want
to use multiple UART buses.
See Also
--------
- :ref:`sensor-filters`
- :apiref:`bl0942/bl0942.h`
- :ghedit:`Edit`

View File

@ -24,6 +24,10 @@ instructions for setting up this platform.
- platform: ble_rssi
service_uuid: '11aa'
name: "BLE Test Service 16 bit RSSI value"
# RSSI based on iBeacon UUID
- platform: ble_rssi
ibeacon_uuid: '68586f1e-89c2-11eb-8dcd-0242ac130003'
name: "BLE Test Service iBeacon RSSI value"
.. note::
@ -35,10 +39,18 @@ Configuration variables:
- **name** (**Required**, string): The name of the sensor.
- **mac_address** (*Optional*, MAC Address): The MAC address to track for this
sensor. Either this or ''service_uuid'' has to be present.
sensor. Note that exactly one of ``mac_address``, ``service_uuid`` or ``ibeacon_uuid`` must be present.
- **service_uuid** (*Optional*, 16 bit, 32 bit, or 128 bit BLE Service UUID): The BLE
Service UUID which can be tracked if the device randomizes the MAC address. Either
this or ''mac_address'' has to be present.
Service UUID which can be tracked if the device randomizes the MAC address. Note that exactly one of
``mac_address``, ``service_uuid`` or ``ibeacon_uuid`` must be present.
- **ibeacon_uuid** (*Optional*, string): The `universally unique identifier <https://en.wikipedia.org/wiki/Universally_unique_identifier>`__
to identify the beacon that needs to be tracked. Note that exactly one of ``mac_address``,
``service_uuid`` or ``ibeacon_uuid`` must be present.
- **ibeacon_major** (*Optional*, int): The iBeacon major identifier of the beacon that needs
to be tracked. Usually used to group beacons, for example for grouping all beacons in the
same building.
- **ibeacon_minor** (*Optional*, int): The iBeacon minor identifier of the beacon that needs
to be tracked. Usually used to identify beacons within an iBeacon group.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- All other options from :ref:`Sensor <config-sensor>`.

View File

@ -0,0 +1,61 @@
DPS310 Atmospheric Pressure Sensor
==================================
.. seo::
:description: Instructions for setting up DPS310 atmospheric pressure sensors
:image: dps310.jpg
:keywords: DPS310
The ``dps310`` sensor platform allows you to use both the temperature and pressure sensors on
your DPS310 atmospheric pressure sensor (`Adafruit <https://www.adafruit.com/product/4494>`__)
with ESPHome. The :ref:`I²C <i2c>` component is required to be set up in your configuration.
.. figure:: images/dps310-full.jpg
:align: center
:width: 50.0%
DPS310 Atmospheric Pressure Sensor board from `Adafruit <https://www.adafruit.com/product/4494>`__
.. code-block:: yaml
# Example configuration entry
sensor:
- platform: dps310
temperature:
name: "Outside Temperature"
pressure:
name: "Outside Pressure"
address: 0x77
update_interval: 60s
Configuration variables:
------------------------
- **pressure** (**Required**): 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.
- All other options from :ref:`Sensor <config-sensor>`.
- **temperature** (**Required**): 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>`.
- **address** (*Optional*, int): Manually specify the I²C address of
the sensor. Defaults to ``0x77``.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
sensor. Defaults to ``60s``.
See Also
--------
- :ref:`sensor-filters`
- :doc:`bmp280`
- :doc:`bme680`
- :doc:`bmp085`
- :apiref:`dps310/dps310.h`
- :ghedit:`Edit`

View File

@ -38,6 +38,8 @@ required to be set up in your configuration for this sensor to work.
- platform: hydreon_rgxx
too_cold:
name: "too cold"
lens_bad:
name: "lens bad"
.. code-block:: yaml
@ -99,6 +101,12 @@ 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>`.
- **temperature** (*Optional*): Temperature +-5°C. Only on RG-9 Version 1.100 or later.
- **name** (**Required**, string): The name for the sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@ -0,0 +1,69 @@
MCP9600 Thermocouple Amplifier
===========================================
.. seo::
:description: Instructions for setting up the MCP9600 thermocouple amplifier
:image: mcp9600.jpg
:keywords: MCP9600
The ``mcp9600`` sensor platform allows you to use your MCP9600 and MCP9601
(`datasheet <https://cdn-learn.adafruit.com/assets/assets/000/105/040/original/MCP960X-Data-Sheet-20005426%281%29.pdf>`__,
`Adafruit`_) to measure the temperature of a connected thermocouple while also measuring the ambient temperature around the sensor with ESPHome. :ref:`I²C <i2c>` is
required to be set up in your configuration for this sensor to work.
.. warning::
The :ref:`I²C <i2c>` bus must be set to a minimum of ``100khz`` due to the limitations of the MCP9600 and MCP9601.
.. figure:: images/mcp9600.jpg
:align: center
:width: 80.0%
MCP9600 Thermocouple Amplifier
.. _Adafruit: https://www.adafruit.com/product/4101
.. code-block:: yaml
# Example configuration entry
sensor:
- platform: mcp9600
hot_junction:
name: "Thermocouple Temperature"
cold_junction:
name: "Ambient Temperature"
thermocouple_type: K
address: 0x67
update_interval: 60s
Configuration variables:
------------------------
- **hot_junction** (*Optional*): The information for the Hot Junction 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>`.
- **cold_junction** (*Optional*): The information for the Cold Junction 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>`.
- **thermocouple_type** (*Optional*): Set the thermocouple type. Options are:
K, J, T, N, S, E, B and R type thermocouple. Defaults to ``K``.
- **address** (*Optional*, int): Manually specify the I²C address of
the sensor. Defaults to ``0x67``.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
sensor. Defaults to ``60s``.
See Also
--------
- :ref:`sensor-filters`
- :apiref:`mcp9600/mcp9600.h`
- `Adafruit MCP9600 Library <https://github.com/adafruit/Adafruit_MCP9600>`__ by `Adafruit <https://www.adafruit.com/>`__
- `SparkFun MCP9600 Library <https://github.com/sparkfun/SparkFun_MCP9600_Arduino_Library>`__ by `SparkFun <https://www.sparkfun.com/>`__
- :ghedit:`Edit`

View File

@ -0,0 +1,70 @@
MPL3115A2 Barometric Pressure/Altitude/Temperature Sensor
=========================================================
.. seo::
:description: Instructions for setting up MPL3115A2 atmospheric pressure sensors.
:image: mpl3115a2.jpg
:keywords: MPL3115A2
The ``mpl3115a2`` sensor platform allows you to use your MPL3115A2 atmospheric pressure sensors
(`datasheet <https://www.nxp.com/docs/en/data-sheet/MPL3115A2.pdf>`__,
`Adafruit`_) temperature and pressure sensors with ESPHome. The :ref:`I²C <i2c>` is
required to be set up in your configuration for this sensor to work.
.. figure:: images/mpl3115a2-full.jpg
:align: center
:width: 50.0%
MPL3115A2 Barometric Pressure/Altitude/Temperature Sensor
.. _Adafruit: https://www.adafruit.com/product/1893
.. code-block:: yaml
# Example configuration entry
sensor:
- platform: mpl3115a2
temperature:
name: "MPL3115A2 Temperature"
pressure:
name: "MPL3115A2 Pressure"
update_interval: 10s
Configuration variables:
------------------------
The MPL3115A2 can be configured to output either pressure or altitude depending on which
sensor is configured.
- **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.
- All other options from :ref:`Sensor <config-sensor>`.
- **altitude** (**Optional**): The information for the altitude sensor.
- **name** (**Required**, string): The name for the altitude sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-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>`.
- **address** (*Optional*, int): Manually specify the I²C address of
the sensor. Defaults to ``0x60``.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
sensor. Defaults to ``60s``.
See Also
--------
- :ref:`sensor-filters`
- :doc:`bmp280`
- :doc:`bme280`
- :doc:`bmp085`
- :doc:`ms5611`
- :apiref:`mpl3115a2/mpl3115a2.h`
- :ghedit:`Edit`

View File

@ -38,10 +38,13 @@ Configuration variables:
- **falling_edge** (*Optional*): What to do when a falling edge is
detected. One of ``DISABLE``, ``INCREMENT`` and ``DECREMENT``.
Defaults to ``DISABLE``.
- **use_pcnt** (*Optional*, boolean): Use hardware ``PCNT`` pulse counter. Only supported on ESP32. Defaults to ``true``.
- **internal_filter** (*Optional*, :ref:`config-time`): If a pulse shorter than this
time is detected, its discarded and no pulse is counted. Defaults to ``13us``. On the ESP32,
this value can not be higher than ``13us``, for the ESP8266 you can use larger intervals too.
time is detected, its discarded and no pulse is counted. Defaults to ``13us``. On the ESP32, when using the hardware pulse counter
this value can not be higher than ``13us``, for the ESP8266 or with ``use_pcnt: false`` you can use larger intervals too.
If you enable this, set up the ``count_mode`` to increase on the falling edge, not leading edge. For S0 pulse meters that are used to meter power consumption 50-100 ms is a reasonable value.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.

View File

@ -0,0 +1,108 @@
uFire Isolated EC sensor
========================
.. seo::
:description: Instructions for setting up uFire Isolated EC sensor in esphome
:image: ufire_ec.png
:keywords: ufire ec sensor temperature esphome
The ``ufire_ec`` sensor platform allows you to use your uFire Isolated EC sensor
with ESPHome. The :ref:`I²C Bus <i2c>` is
required to be set up in your configuration for this sensor to work.
It required also to have an temperature sensor in the liquit tank; this can
be on the same board or external sensor linked to the uFire EC configuration.
.. figure:: images/ufire_ec.png
:align: center
:width: 100.0%
.. code-block:: yaml
# Example configuration entry
sensor:
- platform: ufire_ec
id: ufire_ec_board
temperature:
id: temperature_liquit
name: Temperature
ec:
name: EC
Configuration variables:
------------------------
- **address** (**Optional**, int): Specify the I²C address of the sensor. Defaults to ``0x3C``.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
sensor. Defaults to ``60s``.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- **temperature_sensor** (*Optional*, :ref:`config-id`): Set the ID of the temperature
sensor. Only needed if the onboard temperature sensor is not used.
- **ec** (*Optional*, :ref:`Sensor <config-sensor>`): Set the EC sensor configuration.
- **temperature** (*Optional*, :ref:`Sensor <config-sensor>`): Set the onboard temperature sensor configuration.
Can't be used together with ``temperature_sensor``.
- **temperature_compensation** (*Optional*, float): Set the temperature compensation for the EC
sensor. Defaults to ``21.0``.
- **temperature_coefficient** (*Optional*, float): Set the temperature coefficient for the EC
sensor. Defaults to ``0.019``.
- All other options from :ref:`Sensor <config-sensor>`.
.. _sensor-ufire_ec-calibrate_probe_action:
``sensor.ufire_ec.calibrate_probe`` Action
------------------------------------------
The EC probe have to be calibrated. For this you need know the EC reference value and temperature
of the calibration solution.
.. code-block:: yaml
# Example configuration entry
sensor:
- platform: ufire_ec
id: ufire_ec_board
# ...
# in some trigger
on_...:
- sensor.ufire_ec_board.calibrate_probe:
id: ufire_ec_board
solution: 0.146
temperature: !lambda "return id(temperature_liquit).state;"
Configuration options:
- **id** (**Required**, :ref:`config-id`): The ID of the ufire EC sensor.
- **solution** (**Required**, float): Solution reference EC value.
- **temperature** (**Required**, float): Solution current temperature.
.. _sensor-ufire_ec-reset:
``sensor.ufire_ec.reset`` Action
--------------------------------
Reset the current calibration on the sensor.
.. code-block:: yaml
# Example configuration entry
sensor:
- platform: ufire_ec
id: ufire_ec_board
# ...
# in some trigger
on_...:
- sensor.ufire_ec_board.reset:
id: ufire_ec_board
Configuration options:
- **id** (**Required**, :ref:`config-id`): The ID of the ufire EC sensor.
See Also
--------
- :ref:`sensor-filters`
- :apiref:`ufire_ec/ufire_ec.h`
- :ghedit:`Edit`

View File

@ -0,0 +1,132 @@
uFire ISE pH sensor
===================
.. seo::
:description: Instructions for setting up uFire ISE pH sensor in esphome
:image: ufire_ise.png
:keywords: ufire ph sensor temperature esphome
The ``ufire_ise`` sensor platform allows you to use your uFire ISE pH sensor with
ESPHome. The :ref:`I²C Bus <i2c>` is
required to be set up in your configuration for this sensor to work.
It required also to have an temperature sensor in the liquit tank; this can
be on the same board or external sensor linked to the uFire ISE pH configuration.
.. figure:: images/ufire_ise.png
:align: center
:width: 100.0%
.. code-block:: yaml
# Example configuration entry
sensor:
- platform: ufire_ise
id: ufire_ise_board
temperature:
id: temperature_liquit
name: Temperature
ph:
name: pH
Configuration variables:
------------------------
- **address** (**Optional**, int): Specify the I²C address of the sensor. Defaults to ``0x3f``.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
sensor. Defaults to ``60s``.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- **temperature_sensor** (*Optional*, :ref:`config-id`): Set the ID of the temperature
sensor. Only needed if the onboard temperature sensor is not used.
- **ph** (*Optional*, :ref:`Sensor <config-sensor>`): Set the pH sensor configuration. All options from :ref:`Sensor <config-sensor>`.
- **temperature** (*Optional*, :ref:`Sensor <config-sensor>`): Set the onboard temperature sensor configuration. All options from :ref:`Sensor <config-sensor>`.
Can't be used together with ``temperature_sensor``.
.. _sensor-ufire_ise-calibrate_probe_high_action:
``sensor.ufire_ise.calibrate_probe_high`` Action
------------------------------------------------
The pH probe have to be calibrated. For this you need know the pH reference value and temperature
of the calibration high solution.
.. code-block:: yaml
# Example configuration entry
sensor:
- platform: ufire_ise
id: ufire_ise_board
# ...
# in some trigger
on_...:
- sensor.ufire_ise_board.calibrate_probe_high:
id: ufire_ise_board
solution: 7.0
temperature: !lambda "return id(temperature_liquit).state;"
Configuration options:
- **id** (**Required**, :ref:`config-id`): The ID of the ufire pH sensor.
- **solution** (**Required**, float): Solution reference pH value.
- **temperature** (**Required**, float): Solution current temperature.
.. _sensor-ufire_ise-calibrate_probe_low_action:
``sensor.ufire_ise.calibrate_probe_low`` Action
-----------------------------------------------
The pH probe have to be calibrated. For this you need know the pH reference value and temperature
of the calibration low solution.
.. code-block:: yaml
# Example configuration entry
sensor:
- platform: ufire_ise
id: ufire_ise_board
# ...
# in some trigger
on_...:
- sensor.ufire_ise_board.calibrate_probe_low:
id: ufire_ise_board
solution: 4.0
temperature: !lambda "return id(temperature_liquit).state;"
Configuration options:
- **id** (**Required**, :ref:`config-id`): The ID of the ufire pH sensor.
- **solution** (**Required**, float): Solution reference pH value.
- **temperature** (**Required**, float): Solution current temperature.
.. _sensor-ufire_ise-reset_action:
``sensor.ufire_ise.reset`` Action
---------------------------------
Reset the current calibration on the sensor.
.. code-block:: yaml
# Example configuration entry
sensor:
- platform: ufire_ise
id: ufire_ise_board
# ...
# in some trigger
on_...:
- sensor.ufire_ise_board.reset:
id: ufire_ise_board
Configuration options:
- **id** (**Required**, :ref:`config-id`): The ID of the ufire pH sensor.
See Also
--------
- :ref:`sensor-filters`
- :apiref:`ufire_ise/ufire_ise.h`
- :ghedit:`Edit`

View File

@ -647,6 +647,7 @@ See Also
- :doc:`/components/esp32_ble_tracker`
- :doc:`/components/sensor/index`
- :doc:`/components/display/pvvx_mithermometer`
- :apiref:`xiaomi_lywsd03mmc/xiaomi_ble.h`
- :doc:`/components/ethernet`
- :doc:`/components/bluetooth_proxy`

View File

@ -0,0 +1,51 @@
Factory Reset Switch
====================
.. seo::
:description: Instructions for setting up switches that can remotely invalidate all ESPHome preferences stored in flash and reboot ESP.
:image: restart.svg
The ``factory_reset`` switch allows you to remotely invalidate (reset) all ESPHome :ref:`preferences <preferences-flash_write_interval>` stored in flash memory and reboot your node.
After reboot all states, parameters and variables will be reinitialized with their default values. This is useful:
- for devices preflashed with ESPHome to reset behavior back to factory state
- in case of moving a device to a new environment or starting a new use-case (e.g. reset counters or state)
- for privacy concerns when giving away a device
.. note::
**USE WITH GREAT CAUTION!** All credentials, global variables, counters and saved states stored in non-volatile memory will be lost with no chance of recovering them.
Even raw reading of flash memory with ``esptool`` will not help, since data is physically erased from flash memory.
For devices configured using :doc:`captive portal </components/captive_portal>`, this will reset WiFi settings as well, thus making such devices offline.
You'll need to be in close proximity to your device to configure it again using a built-in WiFi access point and captive portal.
.. figure:: images/factory-rst-ui.png
:align: center
:width: 80.0%
.. code-block:: yaml
# Example configuration entry
switch:
- platform: factory_reset
name: Restart with Factory Default Settings
Configuration variables:
------------------------
- **name** (**Required**, string): The name of the switch.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- All other options from :ref:`Switch <config-switch>`.
See Also
--------
- :doc:`shutdown`
- :doc:`restart`
- :doc:`safe_mode`
- :doc:`/components/button/factory_reset`
- :doc:`template`
- :apiref:`factory_reset/factory_reset_switch.h`
- :ghedit:`Edit`

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

@ -29,9 +29,10 @@ Configuration variables:
See Also
--------
- :doc:`/components/button/restart`
- :doc:`shutdown`
- :doc:`safe_mode`
- :doc:`factory_reset`
- :doc:`/components/button/restart`
- :doc:`template`
- :apiref:`restart/switch/restart_switch.h`
- :ghedit:`Edit`

View File

@ -33,6 +33,8 @@ See Also
- :doc:`shutdown`
- :doc:`restart`
- :doc:`factory_reset`
- :doc:`/components/button/safe_mode`
- :doc:`template`
- :apiref:`safe_mode/safe_mode_switch.h`
- :ghedit:`Edit`

View File

@ -32,6 +32,9 @@ See Also
--------
- :doc:`restart`
- :doc:`safe_mode`
- :doc:`factory_reset`
- :doc:`/components/button/shutdown`
- :doc:`template`
- :apiref:`shutdown/shutdown_switch.h`
- :ghedit:`Edit`

View File

@ -85,6 +85,9 @@ Configuration variables:
The downside is that this option connects to the first network the ESP sees, even if that network is very far away and
better ones are available.
- **enable_btm** (*Optional*, bool): Only on ``esp32`` with ``esp-idf``. Enable 802.11v BSS Transition Management support.
- **enable_rrm** (*Optional*, bool): Only on ``esp32`` with ``esp-idf``. Enable 802.11k Radio Resource Management support.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
Access Point Mode

View File

@ -66,9 +66,9 @@ author = "ESPHome"
# built documents.
#
# The short X.Y version.
version = "2022.8"
version = "2022.9"
# The full version, including alpha/beta/rc tags.
release = "2022.8.3"
release = "2022.9.0b1"
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.

View File

@ -272,6 +272,10 @@ config in the main yaml file. All definitions from packages will be merged with
config in non-destructive way so you could always override some bits and pieces of package
configuration.
Dictionaries are merged key-by-key. Lists of components are merged by component
ID if specified. Other lists are merged by concatenation. All other config
values are replaced with the later value.
Local packages
**************

View File

@ -40,6 +40,21 @@ If you want to use `docker-compose` instead, here's a sample file:
privileged: true
network_mode: host
The project provides multiple docker tags; please pick the one that suits you
better:
- ``latest`` and ``stable`` point to the latest stable release available. It's
not recommended to automatically update the container based on those tags
because of the possible breaking changes between releases.
- Release-tracking tag ``YEAR.MONTH`` (e.g. ``2022.8``) points to the latest
stable patch release available within the required version. There should
never be a breaking change when upgrading the containers based on tags like
that.
- ``beta`` points to the latest released beta version, and to the latest stable
release when there is no fresh beta release.
- ``dev`` is the bleeding edge release; built daily based on the latest changes
in the ``dev`` branch.
Connecting the ESP Device
-------------------------

View File

@ -118,6 +118,7 @@ Contributors
- `Bill Church (@billchurch) <https://github.com/billchurch>`__
- `Brian Kaufman (@bkaufx) <https://github.com/bkaufx>`__
- `JDavid (@blackhack) <https://github.com/blackhack>`__
- `blakadder (@blakadder) <https://github.com/blakadder>`__
- `Branimir Lambov (@blambov) <https://github.com/blambov>`__
- `Jim Ekman (@blejdfist) <https://github.com/blejdfist>`__
- `Scott Smith (@blurfl) <https://github.com/blurfl>`__
@ -182,6 +183,7 @@ Contributors
- `cwitting (@cwitting) <https://github.com/cwitting>`__
- `Alex Solomaha (@CyanoFresh) <https://github.com/CyanoFresh>`__
- `Luar Roji (@cyberplant) <https://github.com/cyberplant>`__
- `Aleš Komárek (@cznewt) <https://github.com/cznewt>`__
- `d-two (@d-two) <https://github.com/d-two>`__
- `dab0g (@dab0g) <https://github.com/dab0g>`__
- `Dale Higgs (@dale3h) <https://github.com/dale3h>`__
@ -442,6 +444,7 @@ Contributors
- `Jonathan Adams (@jonathanadams) <https://github.com/jonathanadams>`__
- `Jonathan Treffler (@JonathanTreffler) <https://github.com/JonathanTreffler>`__
- `JonnyaiR (@jonnyair) <https://github.com/jonnyair>`__
- `Jonathan V (@jonofmac) <https://github.com/jonofmac>`__
- `Joppy (@JoppyFurr) <https://github.com/JoppyFurr>`__
- `joseph douce (@josephdouce) <https://github.com/josephdouce>`__
- `Joshua Spence (@joshuaspence) <https://github.com/joshuaspence>`__
@ -562,7 +565,6 @@ Contributors
- `Maurice Schleußinger (@maurice-schleussinger) <https://github.com/maurice-schleussinger>`__
- `Maximilian Gerhardt (@maxgerhardt) <https://github.com/maxgerhardt>`__
- `mbo18 (@mbo18) <https://github.com/mbo18>`__
- `mckaymatthew (@mckaymatthew) <https://github.com/mckaymatthew>`__
- `Me No Dev (@me-no-dev) <https://github.com/me-no-dev>`__
- `Alexandr Zarubkin (@me21) <https://github.com/me21>`__
- `Joseph Mearman (@Mearman) <https://github.com/Mearman>`__
@ -576,10 +578,8 @@ Contributors
- `Marco Lusini (@met67) <https://github.com/met67>`__
- `Martin Flasskamp (@MFlasskamp) <https://github.com/MFlasskamp>`__
- `Michael Gorven (@mgorven) <https://github.com/mgorven>`__
- `mhentschke (@mhentschke) <https://github.com/mhentschke>`__
- `Michaël Arnauts (@michaelarnauts) <https://github.com/michaelarnauts>`__
- `Micha Nordmann (@Michanord) <https://github.com/Michanord>`__
- `micronen (@micronen) <https://github.com/micronen>`__
- `Pauline Middelink (@middelink) <https://github.com/middelink>`__
- `Mikko Tervala (@MikkoTervala) <https://github.com/MikkoTervala>`__
- `MiKuBB (@MiKuBB) <https://github.com/MiKuBB>`__
@ -676,6 +676,7 @@ Contributors
- `Peter Foreman (@peterforeman) <https://github.com/peterforeman>`__
- `Peter Galantha (@peterg79) <https://github.com/peterg79>`__
- `Peter Remøy Paulsen (@petrepa) <https://github.com/petrepa>`__
- `Philippe FOUQUET (@Philippe12) <https://github.com/Philippe12>`__
- `Philip Rosenberg-Watt (@PhilRW) <https://github.com/PhilRW>`__
- `pieterbrink123 (@pieterbrink123) <https://github.com/pieterbrink123>`__
- `Tommy van der Vorst (@pixelspark) <https://github.com/pixelspark>`__
@ -693,6 +694,7 @@ Contributors
- `Patrick Toal (@ptoal) <https://github.com/ptoal>`__
- `Leandro Puerari (@puerari) <https://github.com/puerari>`__
- `puuu (@puuu) <https://github.com/puuu>`__
- `Pascal Vizeli (@pvizeli) <https://github.com/pvizeli>`__
- `[pʲɵs] (@pyos) <https://github.com/pyos>`__
- `Qc (@qc24) <https://github.com/qc24>`__
- `Karol Zlot (@qqgg231) <https://github.com/qqgg231>`__
@ -761,6 +763,7 @@ Contributors
- `Niklas Wagner (@Skaronator) <https://github.com/Skaronator>`__
- `Rafael Treviño (@skasi7) <https://github.com/skasi7>`__
- `Brian Slesinsky (@skybrian) <https://github.com/skybrian>`__
- `Jordan W. Cobb (@skykingjwc) <https://github.com/skykingjwc>`__
- `Sebastian Lövdahl (@slovdahl) <https://github.com/slovdahl>`__
- `smischny (@smischny) <https://github.com/smischny>`__
- `Luca Zimmermann (@soundstorm) <https://github.com/soundstorm>`__
@ -896,4 +899,4 @@ Contributors
- `Zack Barett (@zsarnett) <https://github.com/zsarnett>`__
- `Christian Zufferey (@zuzu59) <https://github.com/zuzu59>`__
*This page was last updated September 6, 2022.*
*This page was last updated September 14, 2022.*

BIN
images/bl0942.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
images/dps310.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
images/mcp9600.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
images/mpl3115a2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
images/tm1621.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

BIN
images/tm1638.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
images/ufire_ec.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
images/ufire_ise.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@ -255,6 +255,7 @@ Electricity
ATM90E32, components/sensor/atm90e32, atm90e32.jpg, Voltage & Current & Power
BL0939, components/sensor/bl0939, bl0939.png, Voltage & Current & Power & Energy
BL0940, components/sensor/bl0940, bl0940.png, Voltage & Current & Power
BL0942, components/sensor/bl0942, bl0942.png, Voltage & Current & Power
CS5460A, components/sensor/cs5460a, cs5460a.png, Voltage & Current & Power
CSE7761, components/sensor/cse7761, cse7761.svg, Voltage & Current & Power
CSE7766, components/sensor/cse7766, cse7766.svg, Voltage & Current & Power
@ -294,6 +295,7 @@ Environmental
Dallas DS18B20, components/sensor/dallas, dallas.jpg, Temperature
DHT, components/sensor/dht, dht.jpg, Temperature & Humidity
DHT12, components/sensor/dht12, dht12.jpg, Temperature & Humidity
DPS310, components/sensor/dps310, dps310.jpg, Temperature & Pressure
ENS210, components/sensor/ens210, ens210.jpg, Temperature & Humidity
HDC1080, components/sensor/hdc1080, hdc1080.jpg, Temperature & Humidity
Honeywell ABP, components/sensor/honeywellabp, honeywellabp.jpg, Pressure & Temperature
@ -302,6 +304,7 @@ Environmental
Inkbird IBS-TH1 Mini, components/sensor/inkbird_ibsth1_mini, inkbird_isbth1_mini.jpg, Temperature & Humidity
MCP9808, components/sensor/mcp9808, mcp9808.jpg, Temperature
MH-Z19, components/sensor/mhz19, mhz19.jpg, CO2 & Temperature
MPL3115A2, components/sensor/mpl3115a2, mpl3115a2.jpg, Temperature & Pressure
MS5611, components/sensor/ms5611, ms5611.jpg, Pressure
NTC Thermistor, components/sensor/ntc, ntc.jpg, Temperature
QMP6988, components/sensor/qmp6988, qmp6988_env3.png, Temperature & Pressure
@ -360,6 +363,8 @@ Miscellaneous
SMT100, components/sensor/smt100, smt100.jpg, Moisture & Temperature
Tuya Sensor, components/sensor/tuya, tuya.png
TX20, components/sensor/tx20, tx20.jpg, Wind speed & Wind direction
uFire EC sensor, components/sensor/ufire_ec, ufire_ec.png, EC & Temperature
uFire ISE sensor, components/sensor/ufire_ise, ufire_ise.png, pH & Temperature
Motion
@ -379,7 +384,8 @@ Thermocouple
MAX31855, components/sensor/max31855, max31855.jpg, K-Type
MAX31856, components/sensor/max31856, max31856.jpg, All types
MAX31865, components/sensor/max31865, max31865.jpg, Platinum RTD
MAX6675, components/sensor/max6675, max6675.jpg, K-Type
MAX6675, components/sensor/max6675, max6675.jpg, K-Type,
MCP9600, components/sensor/mcp9600, mcp9600.jpg, All types
Weight
@ -490,6 +496,7 @@ Switch Components
Restart Switch, components/switch/restart, restart.svg
Safe Mode Switch, components/switch/safe_mode, restart-alert.svg
Shutdown Switch, components/switch/shutdown, power_settings.svg
Factory Reset Switch, components/switch/factory_reset, restart-alert.svg
Generic Output Switch, components/switch/output, upload.svg
Template Switch, components/switch/template, description.svg
UART Switch, components/switch/uart, uart.svg
@ -510,6 +517,7 @@ Button Components
Restart Button, components/button/restart, restart.svg
Safe Mode Button, components/button/safe_mode, restart-alert.svg
Shutdown Button, components/button/shutdown, power_settings.svg
Factory Reset Button, components/button/factory_reset, restart-alert.svg
Wake-on-LAN, components/button/wake_on_lan, power_settings.svg
Fan Components
@ -533,8 +541,11 @@ Display Components
LCD Display, components/display/lcd_display, lcd.jpg
MAX7219, components/display/max7219, max7219.jpg
MAX7219 Dot Matrix, components/display/max7219digit, max7219digit.jpg
TM1621, components/display/tm1621, tm1621.jpg
TM1637, components/display/tm1637, tm1637.jpg
TM1638, components/display/tm1638, tm1638.jpg
Nextion, components/display/nextion, nextion.jpg
PVVX MiThermometer, components/display/pvvx_mithermometer, ../components/sensor/images/xiaomi_lywsd03mmc.jpg
SSD1306, components/display/ssd1306, ssd1306.jpg
SSD1322, components/display/ssd1322, ssd1322.jpg
SSD1325, components/display/ssd1325, ssd1325.jpg

View File

@ -1,7 +1,6 @@
#!/usr/bin/env python
# reStructuredText (RST) to GitHub-flavored Markdown converter
import re
import sys
from docutils import core, nodes, writers
from urllib import parse
@ -32,8 +31,7 @@ class Translator(nodes.NodeVisitor):
raise nodes.StopTraversal
def visit_title(self, node):
self.version = re.match(r"(\d+\.\d+\.\d+).*", node.children[0]).group(1)
raise nodes.SkipChildren
pass
def visit_title_reference(self, node):
raise Exception(

View File

@ -834,7 +834,14 @@ class SchemaGeneratorVisitor(nodes.NodeVisitor):
self.app.config.html_baseurl,
self.docname + ".html#" + title.parent["ids"][0],
)
markdown += f"\n\n*See also: [{self.props_section_title}]({url})*"
if (
self.props_section_title is not None
and self.props_section_title.endswith(title.astext())
):
markdown += f"\n\n*See also: [{self.props_section_title}]({url})*"
else:
markdown += f"\n\n*See also: [{self.getMarkdown(title)}]({url})*"
return markdown
def update_prop(self, node, props):