2
Doxygen
@ -38,7 +38,7 @@ PROJECT_NAME = "ESPHome"
|
|||||||
# could be handy for archiving the generated documentation or if some version
|
# could be handy for archiving the generated documentation or if some version
|
||||||
# control system is used.
|
# 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
|
# 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
|
# for a project that appears at the top of each page and should give viewer a
|
||||||
|
2
Makefile
@ -1,5 +1,5 @@
|
|||||||
ESPHOME_PATH = ../esphome
|
ESPHOME_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
|
.PHONY: html html-strict cleanhtml deploy help live-html Makefile netlify netlify-api api netlify-dependencies svg2png copy-svg2png minify
|
||||||
|
|
||||||
|
BIN
_static/changelog-2022.9.0.png
Normal file
After Width: | Height: | Size: 158 KiB |
@ -1 +1 @@
|
|||||||
2022.8.3
|
2022.9.0b1
|
124
changelog/2022.9.0.rst
Normal 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`
|
@ -2,7 +2,7 @@ Changelog
|
|||||||
=========
|
=========
|
||||||
|
|
||||||
.. redirect::
|
.. redirect::
|
||||||
:url: /changelog/2022.8.0.html
|
:url: /changelog/2022.9.0.html
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:glob:
|
:glob:
|
||||||
|
@ -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.
|
- **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.
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
|
|
||||||
|
51
components/button/factory_reset.rst
Normal 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`
|
BIN
components/button/images/factory-rst-ui.png
Normal file
After Width: | Height: | Size: 10 KiB |
@ -25,6 +25,9 @@ Configuration variables:
|
|||||||
See Also
|
See Also
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
- :doc:`shutdown`
|
||||||
|
- :doc:`safe_mode`
|
||||||
|
- :doc:`factory_reset`
|
||||||
- :doc:`/components/switch/restart`
|
- :doc:`/components/switch/restart`
|
||||||
- :doc:`template`
|
- :doc:`template`
|
||||||
- :apiref:`restart/button/restart_button.h`
|
- :apiref:`restart/button/restart_button.h`
|
||||||
|
@ -33,6 +33,8 @@ See Also
|
|||||||
|
|
||||||
- :doc:`shutdown`
|
- :doc:`shutdown`
|
||||||
- :doc:`restart`
|
- :doc:`restart`
|
||||||
|
- :doc:`factory_reset`
|
||||||
|
- :doc:`/components/switch/safe_mode`
|
||||||
- :doc:`template`
|
- :doc:`template`
|
||||||
- :apiref:`safe_mode/safe_mode_button.h`
|
- :apiref:`safe_mode/safe_mode_button.h`
|
||||||
- :ghedit:`Edit`
|
- :ghedit:`Edit`
|
||||||
|
@ -32,6 +32,9 @@ See Also
|
|||||||
--------
|
--------
|
||||||
|
|
||||||
- :doc:`restart`
|
- :doc:`restart`
|
||||||
|
- :doc:`safe_mode`
|
||||||
|
- :doc:`factory_reset`
|
||||||
|
- :doc:`/components/switch/shutdown`
|
||||||
- :doc:`template`
|
- :doc:`template`
|
||||||
- :apiref:`shutdown/shutdown_button.h`
|
- :apiref:`shutdown/shutdown_button.h`
|
||||||
- :ghedit:`Edit`
|
- :ghedit:`Edit`
|
||||||
|
@ -68,6 +68,31 @@ From :ref:`lambdas <config-lambda>`, you can call methods to do some advanced st
|
|||||||
- lambda: |-
|
- lambda: |-
|
||||||
id(bedjet_1).upgrade_firmware();
|
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
|
``bedjet`` Climate
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
@ -97,29 +122,30 @@ Configuration variables:
|
|||||||
|
|
||||||
- All other options from :ref:`Climate <config-climate>`.
|
- 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:
|
When the BedJet is already on, turning the Fan component off will set the BedJet unit's mode to
|
||||||
- platform: template
|
``OFF``. If it was not already on, it will be turned on to mode ``FAN_ONLY``.
|
||||||
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
|
||||||
|
|
||||||
.. code-block:: yaml
|
fan:
|
||||||
|
- platform: bedjet
|
||||||
|
id: my_bedjet_fan_entity
|
||||||
|
name: "My BedJet Fan"
|
||||||
|
bedjet_id: bedjet_1
|
||||||
|
|
||||||
button:
|
Configuration variables:
|
||||||
- platform: template
|
************************
|
||||||
name: "Set Clock to 10:10pm"
|
|
||||||
on_press:
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||||
then:
|
- **name** (**Required**, string): The name of the fan device.
|
||||||
- lambda: |-
|
- **bedjet_id** (**Required**, :ref:`config-id`): The ID of the Bedjet component.
|
||||||
id(my_bedjet_fan).set_clock(22, 10);
|
- Other options from :ref:`Fan <config-fan>`.
|
||||||
|
|
||||||
Known issues:
|
Known issues:
|
||||||
-------------
|
-------------
|
||||||
|
BIN
components/display/images/tm1621-full.jpg
Normal file
After Width: | Height: | Size: 426 KiB |
BIN
components/display/images/tm1638-full.jpg
Normal file
After Width: | Height: | Size: 72 KiB |
@ -149,10 +149,11 @@ Fonts
|
|||||||
The rendering engine also has a powerful font drawer which integrates seamlessly into ESPHome.
|
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
|
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
|
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
|
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.
|
inside a ``fonts`` folder next to your configuration file.
|
||||||
|
|
||||||
Next, create a ``font:`` section in your configuration:
|
Next, create a ``font:`` section in your configuration:
|
||||||
@ -169,12 +170,15 @@ Next, create a ``font:`` section in your configuration:
|
|||||||
id: roboto
|
id: roboto
|
||||||
size: 20
|
size: 20
|
||||||
|
|
||||||
|
- file: "fonts/tom-thumb.bdf"
|
||||||
|
id: tomthumb
|
||||||
|
|
||||||
display:
|
display:
|
||||||
# ...
|
# ...
|
||||||
|
|
||||||
Configuration variables:
|
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:
|
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``.
|
- **type** (**Required**, string): Can be ``gfonts`` or ``local``.
|
||||||
@ -200,12 +204,13 @@ Configuration variables:
|
|||||||
|
|
||||||
**Local Fonts**:
|
**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
|
- **id** (**Required**, :ref:`config-id`): The ID with which you will be able to reference the font later
|
||||||
in your display code.
|
in your display code.
|
||||||
- **size** (*Optional*, int): The size of the font in pt (not pixel!).
|
- **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
|
- **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
|
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
|
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::
|
.. note::
|
||||||
|
|
||||||
To use fonts you will need to have the python ``pillow`` package installed, as ESPHome uses that package
|
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
|
add-on or with the official ESPHome docker image, it should already be installed. Otherwise you need
|
||||||
to install it using
|
to install it using
|
||||||
``pip install pillow``.
|
``pip install pillow``.
|
||||||
|
234
components/display/pvvx_mithermometer.rst
Normal 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`
|
92
components/display/tm1621.rst
Normal 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`
|
188
components/display/tm1638.rst
Normal 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`
|
@ -74,6 +74,8 @@ Configuration variables:
|
|||||||
after having received an advertising packet. With some devices this is necessary to receive all data,
|
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
|
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``.
|
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.
|
- **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
|
- **on_ble_service_data_advertise** (*Optional*, :ref:`Automation <automation>`): An automation to
|
||||||
perform when a Bluetooth advertising with service data is received. See
|
perform when a Bluetooth advertising with service data is received. See
|
||||||
:ref:`esp32_ble_tracker-on_ble_service_data_advertise`.
|
: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 Bluetooth Low Energy Tracker Automation
|
||||||
---------------------------------------------
|
---------------------------------------------
|
||||||
|
|
||||||
.. _esp32_ble_tracker-on_ble_advertise:
|
.. _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
|
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.
|
: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:
|
.. _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
|
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.
|
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:
|
.. _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
|
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.
|
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.
|
- **service_uuid** (**Required**, string): 16 bit, 32 bit, or 128 bit BLE Service UUID.
|
||||||
- See :ref:`Automation <automation>`.
|
- 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
|
See Also
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
@ -6,9 +6,11 @@ Ethernet Component
|
|||||||
:image: ethernet.svg
|
:image: ethernet.svg
|
||||||
:keywords: Ethernet, ESP32
|
: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.
|
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
|
.. 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:
|
Configuration variables:
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
- **type** (**Required**, string): The type of LAN chipset. Must be one of
|
- **type** (**Required**, string): The type of LAN chipset/phy. Must be one of
|
||||||
``LAN8720`` or ``TLK110`` (see datasheet for more details).
|
``LAN8720``, ``TLK110`` or ``IP101`` (see datasheet for more details).
|
||||||
- **mdc_pin** (**Required**, :ref:`config-pin`): The MDC pin of the board.
|
- **mdc_pin** (**Required**, :ref:`config-pin`): The MDC pin of the board.
|
||||||
Usually this is ``GPIO23``.
|
Usually this is ``GPIO23``.
|
||||||
- **mdio_pin** (**Required**, :ref:`config-pin`): The MDIO pin of the board.
|
- **mdio_pin** (**Required**, :ref:`config-pin`): The MDIO pin of the board.
|
||||||
Usually this is ``GPIO18``.
|
Usually this is ``GPIO18``.
|
||||||
- **clk_mode** (*Optional*, string): The clock mode of the data lines, this must be one
|
- **clk_mode** (*Optional*, string): The clock mode of the data lines. See your board's
|
||||||
of these values: (see datasheet of your board for more details)
|
datasheet for more details. Must be one of the following values:
|
||||||
|
|
||||||
- ``GPIO0_IN`` (Default) - External clock
|
- ``GPIO0_IN`` (Default) - External clock
|
||||||
- ``GPIO0_OUT`` - Internal clock
|
- ``GPIO0_OUT`` - Internal clock
|
||||||
- ``GPIO16_OUT`` - Internal clock
|
- ``GPIO16_OUT`` - Internal clock
|
||||||
- ``GPIO17_OUT`` - Internal clock
|
- ``GPIO17_OUT`` - Internal clock
|
||||||
|
|
||||||
- **phy_addr** (*Optional*, int): The PHY addr type of the ethernet controller. Defaults to 0.
|
- **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
|
- **power_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The pin controlling the
|
||||||
to control the power of the board. Leave unspecified for no power pin (default)
|
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.
|
- **manual_ip** (*Optional*): Manually configure the static IP of the node.
|
||||||
|
|
||||||
- **static_ip** (**Required**, IPv4 address): The static IP of your node.
|
- **static_ip** (**Required**, IPv4 address): The static IP of your node.
|
||||||
@ -66,9 +67,10 @@ Configuration variables:
|
|||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
If your ethernet board is not designed with an ESP32 built in, chances are that you are going
|
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 to the ESP32. This is
|
to use flying leads, dupont wires, etc. to connect the Ethernet controller to the ESP32.
|
||||||
probably to fail as the ethernet interface uses a high frequency clock signal. For more
|
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.
|
information and wiring details refer to the link in the *See also* section.
|
||||||
|
|
||||||
Configuration for Olimex ESP32-POE
|
Configuration for Olimex ESP32-POE
|
||||||
@ -151,7 +153,7 @@ Configuration for OpenHacks LAN8720
|
|||||||
program properly.
|
program properly.
|
||||||
|
|
||||||
Configuration for wESP32 board (up to rev.6)
|
Configuration for wESP32 board (up to rev.6)
|
||||||
-------------------------------------------------
|
--------------------------------------------
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. 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
|
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.
|
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
|
See Also
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@ Configuration variables:
|
|||||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
- **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
|
- **include_internal** (*Optional*, boolean): Whether ``internal`` entities should be displayed on the
|
||||||
web interface. Defaults to ``false``.
|
web interface. Defaults to ``false``.
|
||||||
|
- **relabel** (*Optional*): Override metric labels. See :ref:`prometheus-relabel`
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@ -41,6 +42,32 @@ Configuration variables:
|
|||||||
static_configs:
|
static_configs:
|
||||||
- targets: [<ip or node_name.local>]
|
- 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
|
See Also
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
@ -30,6 +30,7 @@ Configuration variables:
|
|||||||
- **dump** (*Optional*, list): Decode and dump these remote codes in the logs (at log.level=DEBUG).
|
- **dump** (*Optional*, list): Decode and dump these remote codes in the logs (at log.level=DEBUG).
|
||||||
Set to ``all`` to dump all available codecs:
|
Set to ``all`` to dump all available codecs:
|
||||||
|
|
||||||
|
- **aeha**: Decode and dump AEHA infrared codes.
|
||||||
- **coolix**: Decode and dump Coolix infrared codes.
|
- **coolix**: Decode and dump Coolix infrared codes.
|
||||||
- **dish**: Decode and dump Dish infrared codes.
|
- **dish**: Decode and dump Dish infrared codes.
|
||||||
- **jvc**: Decode and dump JVC infrared codes.
|
- **jvc**: Decode and dump JVC infrared codes.
|
||||||
@ -65,6 +66,9 @@ Configuration variables:
|
|||||||
|
|
||||||
Automations:
|
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
|
- **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`
|
Coolix remote code has been decoded. A variable ``x`` of type :apiclass:`remote_base::CoolixData`
|
||||||
is passed to the automation for use in lambdas.
|
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):
|
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.
|
- **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.
|
- **data** (**Required**, int): The 24-bit Coolix code to trigger on, see dumper output for more info.
|
||||||
|
@ -78,6 +78,27 @@ Configuration variables:
|
|||||||
If you're looking for the same functionality as is default in the ``rpi_rf`` integration in
|
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.
|
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:
|
||||||
|
|
||||||
``remote_transmitter.transmit_coolix`` Action
|
``remote_transmitter.transmit_coolix`` Action
|
||||||
|
@ -54,6 +54,12 @@ Base Configuration:
|
|||||||
- **address** (*Optional*, int): The I²C address of the sensor. Defaults to ``0x39``.
|
- **address** (*Optional*, int): The I²C address of the sensor. Defaults to ``0x39``.
|
||||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval
|
||||||
to check the sensor. Defaults to ``60s``.
|
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
|
Sensor
|
||||||
------
|
------
|
||||||
|
@ -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
|
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.
|
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:
|
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
|
- ``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
|
channel: 0
|
||||||
id: touchkey0
|
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:
|
Configuration variables:
|
||||||
------------------------
|
------------------------
|
||||||
|
68
components/sensor/bl0942.rst
Normal 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`
|
@ -24,6 +24,10 @@ instructions for setting up this platform.
|
|||||||
- platform: ble_rssi
|
- platform: ble_rssi
|
||||||
service_uuid: '11aa'
|
service_uuid: '11aa'
|
||||||
name: "BLE Test Service 16 bit RSSI value"
|
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::
|
.. note::
|
||||||
|
|
||||||
@ -35,10 +39,18 @@ Configuration variables:
|
|||||||
|
|
||||||
- **name** (**Required**, string): The name of the sensor.
|
- **name** (**Required**, string): The name of the sensor.
|
||||||
- **mac_address** (*Optional*, MAC Address): The MAC address to track for this
|
- **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** (*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
|
Service UUID which can be tracked if the device randomizes the MAC address. Note that exactly one of
|
||||||
this or ''mac_address'' has to be present.
|
``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.
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||||
- All other options from :ref:`Sensor <config-sensor>`.
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
|
||||||
|
61
components/sensor/dps310.rst
Normal 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`
|
@ -38,6 +38,8 @@ required to be set up in your configuration for this sensor to work.
|
|||||||
- platform: hydreon_rgxx
|
- platform: hydreon_rgxx
|
||||||
too_cold:
|
too_cold:
|
||||||
name: "too cold"
|
name: "too cold"
|
||||||
|
lens_bad:
|
||||||
|
name: "lens bad"
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
@ -99,6 +101,12 @@ Configuration variables:
|
|||||||
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
- All other options from :ref:`Sensor <config-sensor>`.
|
- 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``.
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
|
||||||
|
|
||||||
|
|
||||||
|
BIN
components/sensor/images/dps310-full.jpg
Normal file
After Width: | Height: | Size: 472 KiB |
BIN
components/sensor/images/mcp9600.jpg
Normal file
After Width: | Height: | Size: 168 KiB |
BIN
components/sensor/images/mpl3115a2-full.jpg
Normal file
After Width: | Height: | Size: 51 KiB |
BIN
components/sensor/images/ufire_ec.png
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
components/sensor/images/ufire_ise.png
Normal file
After Width: | Height: | Size: 35 KiB |
69
components/sensor/mcp9600.rst
Normal 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`
|
70
components/sensor/mpl3115a2.rst
Normal 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`
|
@ -38,10 +38,13 @@ Configuration variables:
|
|||||||
- **falling_edge** (*Optional*): What to do when a falling edge is
|
- **falling_edge** (*Optional*): What to do when a falling edge is
|
||||||
detected. One of ``DISABLE``, ``INCREMENT`` and ``DECREMENT``.
|
detected. One of ``DISABLE``, ``INCREMENT`` and ``DECREMENT``.
|
||||||
Defaults to ``DISABLE``.
|
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
|
- **internal_filter** (*Optional*, :ref:`config-time`): If a pulse shorter than this
|
||||||
time is detected, it’s discarded and no pulse is counted. Defaults to ``13us``. On the ESP32,
|
time is detected, it’s 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 you can use larger intervals too.
|
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.
|
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``.
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
|
||||||
|
108
components/sensor/ufire_ec.rst
Normal 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`
|
132
components/sensor/ufire_ise.rst
Normal 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`
|
@ -647,6 +647,7 @@ See Also
|
|||||||
|
|
||||||
- :doc:`/components/esp32_ble_tracker`
|
- :doc:`/components/esp32_ble_tracker`
|
||||||
- :doc:`/components/sensor/index`
|
- :doc:`/components/sensor/index`
|
||||||
|
- :doc:`/components/display/pvvx_mithermometer`
|
||||||
- :apiref:`xiaomi_lywsd03mmc/xiaomi_ble.h`
|
- :apiref:`xiaomi_lywsd03mmc/xiaomi_ble.h`
|
||||||
- :doc:`/components/ethernet`
|
- :doc:`/components/ethernet`
|
||||||
- :doc:`/components/bluetooth_proxy`
|
- :doc:`/components/bluetooth_proxy`
|
||||||
|
51
components/switch/factory_reset.rst
Normal 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`
|
BIN
components/switch/images/factory-rst-ui.png
Normal file
After Width: | Height: | Size: 9.1 KiB |
@ -29,9 +29,10 @@ Configuration variables:
|
|||||||
See Also
|
See Also
|
||||||
--------
|
--------
|
||||||
|
|
||||||
- :doc:`/components/button/restart`
|
|
||||||
- :doc:`shutdown`
|
- :doc:`shutdown`
|
||||||
- :doc:`safe_mode`
|
- :doc:`safe_mode`
|
||||||
|
- :doc:`factory_reset`
|
||||||
|
- :doc:`/components/button/restart`
|
||||||
- :doc:`template`
|
- :doc:`template`
|
||||||
- :apiref:`restart/switch/restart_switch.h`
|
- :apiref:`restart/switch/restart_switch.h`
|
||||||
- :ghedit:`Edit`
|
- :ghedit:`Edit`
|
||||||
|
@ -33,6 +33,8 @@ See Also
|
|||||||
|
|
||||||
- :doc:`shutdown`
|
- :doc:`shutdown`
|
||||||
- :doc:`restart`
|
- :doc:`restart`
|
||||||
|
- :doc:`factory_reset`
|
||||||
|
- :doc:`/components/button/safe_mode`
|
||||||
- :doc:`template`
|
- :doc:`template`
|
||||||
- :apiref:`safe_mode/safe_mode_switch.h`
|
- :apiref:`safe_mode/safe_mode_switch.h`
|
||||||
- :ghedit:`Edit`
|
- :ghedit:`Edit`
|
||||||
|
@ -32,6 +32,9 @@ See Also
|
|||||||
--------
|
--------
|
||||||
|
|
||||||
- :doc:`restart`
|
- :doc:`restart`
|
||||||
|
- :doc:`safe_mode`
|
||||||
|
- :doc:`factory_reset`
|
||||||
|
- :doc:`/components/button/shutdown`
|
||||||
- :doc:`template`
|
- :doc:`template`
|
||||||
- :apiref:`shutdown/shutdown_switch.h`
|
- :apiref:`shutdown/shutdown_switch.h`
|
||||||
- :ghedit:`Edit`
|
- :ghedit:`Edit`
|
||||||
|
@ -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
|
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.
|
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.
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||||
|
|
||||||
Access Point Mode
|
Access Point Mode
|
||||||
|
4
conf.py
@ -66,9 +66,9 @@ author = "ESPHome"
|
|||||||
# built documents.
|
# built documents.
|
||||||
#
|
#
|
||||||
# The short X.Y version.
|
# The short X.Y version.
|
||||||
version = "2022.8"
|
version = "2022.9"
|
||||||
# The full version, including alpha/beta/rc tags.
|
# 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
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
# for a list of supported languages.
|
# for a list of supported languages.
|
||||||
|
@ -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
|
config in non-destructive way so you could always override some bits and pieces of package
|
||||||
configuration.
|
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
|
Local packages
|
||||||
**************
|
**************
|
||||||
|
|
||||||
|
@ -40,6 +40,21 @@ If you want to use `docker-compose` instead, here's a sample file:
|
|||||||
privileged: true
|
privileged: true
|
||||||
network_mode: host
|
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
|
Connecting the ESP Device
|
||||||
-------------------------
|
-------------------------
|
||||||
|
@ -118,6 +118,7 @@ Contributors
|
|||||||
- `Bill Church (@billchurch) <https://github.com/billchurch>`__
|
- `Bill Church (@billchurch) <https://github.com/billchurch>`__
|
||||||
- `Brian Kaufman (@bkaufx) <https://github.com/bkaufx>`__
|
- `Brian Kaufman (@bkaufx) <https://github.com/bkaufx>`__
|
||||||
- `JDavid (@blackhack) <https://github.com/blackhack>`__
|
- `JDavid (@blackhack) <https://github.com/blackhack>`__
|
||||||
|
- `blakadder (@blakadder) <https://github.com/blakadder>`__
|
||||||
- `Branimir Lambov (@blambov) <https://github.com/blambov>`__
|
- `Branimir Lambov (@blambov) <https://github.com/blambov>`__
|
||||||
- `Jim Ekman (@blejdfist) <https://github.com/blejdfist>`__
|
- `Jim Ekman (@blejdfist) <https://github.com/blejdfist>`__
|
||||||
- `Scott Smith (@blurfl) <https://github.com/blurfl>`__
|
- `Scott Smith (@blurfl) <https://github.com/blurfl>`__
|
||||||
@ -182,6 +183,7 @@ Contributors
|
|||||||
- `cwitting (@cwitting) <https://github.com/cwitting>`__
|
- `cwitting (@cwitting) <https://github.com/cwitting>`__
|
||||||
- `Alex Solomaha (@CyanoFresh) <https://github.com/CyanoFresh>`__
|
- `Alex Solomaha (@CyanoFresh) <https://github.com/CyanoFresh>`__
|
||||||
- `Luar Roji (@cyberplant) <https://github.com/cyberplant>`__
|
- `Luar Roji (@cyberplant) <https://github.com/cyberplant>`__
|
||||||
|
- `Aleš Komárek (@cznewt) <https://github.com/cznewt>`__
|
||||||
- `d-two (@d-two) <https://github.com/d-two>`__
|
- `d-two (@d-two) <https://github.com/d-two>`__
|
||||||
- `dab0g (@dab0g) <https://github.com/dab0g>`__
|
- `dab0g (@dab0g) <https://github.com/dab0g>`__
|
||||||
- `Dale Higgs (@dale3h) <https://github.com/dale3h>`__
|
- `Dale Higgs (@dale3h) <https://github.com/dale3h>`__
|
||||||
@ -442,6 +444,7 @@ Contributors
|
|||||||
- `Jonathan Adams (@jonathanadams) <https://github.com/jonathanadams>`__
|
- `Jonathan Adams (@jonathanadams) <https://github.com/jonathanadams>`__
|
||||||
- `Jonathan Treffler (@JonathanTreffler) <https://github.com/JonathanTreffler>`__
|
- `Jonathan Treffler (@JonathanTreffler) <https://github.com/JonathanTreffler>`__
|
||||||
- `JonnyaiR (@jonnyair) <https://github.com/jonnyair>`__
|
- `JonnyaiR (@jonnyair) <https://github.com/jonnyair>`__
|
||||||
|
- `Jonathan V (@jonofmac) <https://github.com/jonofmac>`__
|
||||||
- `Joppy (@JoppyFurr) <https://github.com/JoppyFurr>`__
|
- `Joppy (@JoppyFurr) <https://github.com/JoppyFurr>`__
|
||||||
- `joseph douce (@josephdouce) <https://github.com/josephdouce>`__
|
- `joseph douce (@josephdouce) <https://github.com/josephdouce>`__
|
||||||
- `Joshua Spence (@joshuaspence) <https://github.com/joshuaspence>`__
|
- `Joshua Spence (@joshuaspence) <https://github.com/joshuaspence>`__
|
||||||
@ -562,7 +565,6 @@ Contributors
|
|||||||
- `Maurice Schleußinger (@maurice-schleussinger) <https://github.com/maurice-schleussinger>`__
|
- `Maurice Schleußinger (@maurice-schleussinger) <https://github.com/maurice-schleussinger>`__
|
||||||
- `Maximilian Gerhardt (@maxgerhardt) <https://github.com/maxgerhardt>`__
|
- `Maximilian Gerhardt (@maxgerhardt) <https://github.com/maxgerhardt>`__
|
||||||
- `mbo18 (@mbo18) <https://github.com/mbo18>`__
|
- `mbo18 (@mbo18) <https://github.com/mbo18>`__
|
||||||
- `mckaymatthew (@mckaymatthew) <https://github.com/mckaymatthew>`__
|
|
||||||
- `Me No Dev (@me-no-dev) <https://github.com/me-no-dev>`__
|
- `Me No Dev (@me-no-dev) <https://github.com/me-no-dev>`__
|
||||||
- `Alexandr Zarubkin (@me21) <https://github.com/me21>`__
|
- `Alexandr Zarubkin (@me21) <https://github.com/me21>`__
|
||||||
- `Joseph Mearman (@Mearman) <https://github.com/Mearman>`__
|
- `Joseph Mearman (@Mearman) <https://github.com/Mearman>`__
|
||||||
@ -576,10 +578,8 @@ Contributors
|
|||||||
- `Marco Lusini (@met67) <https://github.com/met67>`__
|
- `Marco Lusini (@met67) <https://github.com/met67>`__
|
||||||
- `Martin Flasskamp (@MFlasskamp) <https://github.com/MFlasskamp>`__
|
- `Martin Flasskamp (@MFlasskamp) <https://github.com/MFlasskamp>`__
|
||||||
- `Michael Gorven (@mgorven) <https://github.com/mgorven>`__
|
- `Michael Gorven (@mgorven) <https://github.com/mgorven>`__
|
||||||
- `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>`__
|
- `Micha Nordmann (@Michanord) <https://github.com/Michanord>`__
|
||||||
- `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>`__
|
||||||
- `MiKuBB (@MiKuBB) <https://github.com/MiKuBB>`__
|
- `MiKuBB (@MiKuBB) <https://github.com/MiKuBB>`__
|
||||||
@ -676,6 +676,7 @@ Contributors
|
|||||||
- `Peter Foreman (@peterforeman) <https://github.com/peterforeman>`__
|
- `Peter Foreman (@peterforeman) <https://github.com/peterforeman>`__
|
||||||
- `Peter Galantha (@peterg79) <https://github.com/peterg79>`__
|
- `Peter Galantha (@peterg79) <https://github.com/peterg79>`__
|
||||||
- `Peter Remøy Paulsen (@petrepa) <https://github.com/petrepa>`__
|
- `Peter Remøy Paulsen (@petrepa) <https://github.com/petrepa>`__
|
||||||
|
- `Philippe FOUQUET (@Philippe12) <https://github.com/Philippe12>`__
|
||||||
- `Philip Rosenberg-Watt (@PhilRW) <https://github.com/PhilRW>`__
|
- `Philip Rosenberg-Watt (@PhilRW) <https://github.com/PhilRW>`__
|
||||||
- `pieterbrink123 (@pieterbrink123) <https://github.com/pieterbrink123>`__
|
- `pieterbrink123 (@pieterbrink123) <https://github.com/pieterbrink123>`__
|
||||||
- `Tommy van der Vorst (@pixelspark) <https://github.com/pixelspark>`__
|
- `Tommy van der Vorst (@pixelspark) <https://github.com/pixelspark>`__
|
||||||
@ -693,6 +694,7 @@ Contributors
|
|||||||
- `Patrick Toal (@ptoal) <https://github.com/ptoal>`__
|
- `Patrick Toal (@ptoal) <https://github.com/ptoal>`__
|
||||||
- `Leandro Puerari (@puerari) <https://github.com/puerari>`__
|
- `Leandro Puerari (@puerari) <https://github.com/puerari>`__
|
||||||
- `puuu (@puuu) <https://github.com/puuu>`__
|
- `puuu (@puuu) <https://github.com/puuu>`__
|
||||||
|
- `Pascal Vizeli (@pvizeli) <https://github.com/pvizeli>`__
|
||||||
- `[pʲɵs] (@pyos) <https://github.com/pyos>`__
|
- `[pʲɵs] (@pyos) <https://github.com/pyos>`__
|
||||||
- `Qc (@qc24) <https://github.com/qc24>`__
|
- `Qc (@qc24) <https://github.com/qc24>`__
|
||||||
- `Karol Zlot (@qqgg231) <https://github.com/qqgg231>`__
|
- `Karol Zlot (@qqgg231) <https://github.com/qqgg231>`__
|
||||||
@ -761,6 +763,7 @@ Contributors
|
|||||||
- `Niklas Wagner (@Skaronator) <https://github.com/Skaronator>`__
|
- `Niklas Wagner (@Skaronator) <https://github.com/Skaronator>`__
|
||||||
- `Rafael Treviño (@skasi7) <https://github.com/skasi7>`__
|
- `Rafael Treviño (@skasi7) <https://github.com/skasi7>`__
|
||||||
- `Brian Slesinsky (@skybrian) <https://github.com/skybrian>`__
|
- `Brian Slesinsky (@skybrian) <https://github.com/skybrian>`__
|
||||||
|
- `Jordan W. Cobb (@skykingjwc) <https://github.com/skykingjwc>`__
|
||||||
- `Sebastian Lövdahl (@slovdahl) <https://github.com/slovdahl>`__
|
- `Sebastian Lövdahl (@slovdahl) <https://github.com/slovdahl>`__
|
||||||
- `smischny (@smischny) <https://github.com/smischny>`__
|
- `smischny (@smischny) <https://github.com/smischny>`__
|
||||||
- `Luca Zimmermann (@soundstorm) <https://github.com/soundstorm>`__
|
- `Luca Zimmermann (@soundstorm) <https://github.com/soundstorm>`__
|
||||||
@ -896,4 +899,4 @@ Contributors
|
|||||||
- `Zack Barett (@zsarnett) <https://github.com/zsarnett>`__
|
- `Zack Barett (@zsarnett) <https://github.com/zsarnett>`__
|
||||||
- `Christian Zufferey (@zuzu59) <https://github.com/zuzu59>`__
|
- `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
After Width: | Height: | Size: 12 KiB |
BIN
images/dps310.jpg
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
images/mcp9600.jpg
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
images/mpl3115a2.jpg
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
images/tm1621.jpg
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
images/tm1638.jpg
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
images/ufire_ec.png
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
images/ufire_ise.png
Normal file
After Width: | Height: | Size: 35 KiB |
13
index.rst
@ -255,6 +255,7 @@ Electricity
|
|||||||
ATM90E32, components/sensor/atm90e32, atm90e32.jpg, Voltage & Current & Power
|
ATM90E32, components/sensor/atm90e32, atm90e32.jpg, Voltage & Current & Power
|
||||||
BL0939, components/sensor/bl0939, bl0939.png, Voltage & Current & Power & Energy
|
BL0939, components/sensor/bl0939, bl0939.png, Voltage & Current & Power & Energy
|
||||||
BL0940, components/sensor/bl0940, bl0940.png, Voltage & Current & Power
|
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
|
CS5460A, components/sensor/cs5460a, cs5460a.png, Voltage & Current & Power
|
||||||
CSE7761, components/sensor/cse7761, cse7761.svg, Voltage & Current & Power
|
CSE7761, components/sensor/cse7761, cse7761.svg, Voltage & Current & Power
|
||||||
CSE7766, components/sensor/cse7766, cse7766.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
|
Dallas DS18B20, components/sensor/dallas, dallas.jpg, Temperature
|
||||||
DHT, components/sensor/dht, dht.jpg, Temperature & Humidity
|
DHT, components/sensor/dht, dht.jpg, Temperature & Humidity
|
||||||
DHT12, components/sensor/dht12, dht12.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
|
ENS210, components/sensor/ens210, ens210.jpg, Temperature & Humidity
|
||||||
HDC1080, components/sensor/hdc1080, hdc1080.jpg, Temperature & Humidity
|
HDC1080, components/sensor/hdc1080, hdc1080.jpg, Temperature & Humidity
|
||||||
Honeywell ABP, components/sensor/honeywellabp, honeywellabp.jpg, Pressure & Temperature
|
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
|
Inkbird IBS-TH1 Mini, components/sensor/inkbird_ibsth1_mini, inkbird_isbth1_mini.jpg, Temperature & Humidity
|
||||||
MCP9808, components/sensor/mcp9808, mcp9808.jpg, Temperature
|
MCP9808, components/sensor/mcp9808, mcp9808.jpg, Temperature
|
||||||
MH-Z19, components/sensor/mhz19, mhz19.jpg, CO2 & 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
|
MS5611, components/sensor/ms5611, ms5611.jpg, Pressure
|
||||||
NTC Thermistor, components/sensor/ntc, ntc.jpg, Temperature
|
NTC Thermistor, components/sensor/ntc, ntc.jpg, Temperature
|
||||||
QMP6988, components/sensor/qmp6988, qmp6988_env3.png, Temperature & Pressure
|
QMP6988, components/sensor/qmp6988, qmp6988_env3.png, Temperature & Pressure
|
||||||
@ -360,6 +363,8 @@ Miscellaneous
|
|||||||
SMT100, components/sensor/smt100, smt100.jpg, Moisture & Temperature
|
SMT100, components/sensor/smt100, smt100.jpg, Moisture & Temperature
|
||||||
Tuya Sensor, components/sensor/tuya, tuya.png
|
Tuya Sensor, components/sensor/tuya, tuya.png
|
||||||
TX20, components/sensor/tx20, tx20.jpg, Wind speed & Wind direction
|
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
|
Motion
|
||||||
@ -379,7 +384,8 @@ Thermocouple
|
|||||||
MAX31855, components/sensor/max31855, max31855.jpg, K-Type
|
MAX31855, components/sensor/max31855, max31855.jpg, K-Type
|
||||||
MAX31856, components/sensor/max31856, max31856.jpg, All types
|
MAX31856, components/sensor/max31856, max31856.jpg, All types
|
||||||
MAX31865, components/sensor/max31865, max31865.jpg, Platinum RTD
|
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
|
Weight
|
||||||
@ -490,6 +496,7 @@ Switch Components
|
|||||||
Restart Switch, components/switch/restart, restart.svg
|
Restart Switch, components/switch/restart, restart.svg
|
||||||
Safe Mode Switch, components/switch/safe_mode, restart-alert.svg
|
Safe Mode Switch, components/switch/safe_mode, restart-alert.svg
|
||||||
Shutdown Switch, components/switch/shutdown, power_settings.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
|
Generic Output Switch, components/switch/output, upload.svg
|
||||||
Template Switch, components/switch/template, description.svg
|
Template Switch, components/switch/template, description.svg
|
||||||
UART Switch, components/switch/uart, uart.svg
|
UART Switch, components/switch/uart, uart.svg
|
||||||
@ -510,6 +517,7 @@ Button Components
|
|||||||
Restart Button, components/button/restart, restart.svg
|
Restart Button, components/button/restart, restart.svg
|
||||||
Safe Mode Button, components/button/safe_mode, restart-alert.svg
|
Safe Mode Button, components/button/safe_mode, restart-alert.svg
|
||||||
Shutdown Button, components/button/shutdown, power_settings.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
|
Wake-on-LAN, components/button/wake_on_lan, power_settings.svg
|
||||||
|
|
||||||
Fan Components
|
Fan Components
|
||||||
@ -533,8 +541,11 @@ Display Components
|
|||||||
LCD Display, components/display/lcd_display, lcd.jpg
|
LCD Display, components/display/lcd_display, lcd.jpg
|
||||||
MAX7219, components/display/max7219, max7219.jpg
|
MAX7219, components/display/max7219, max7219.jpg
|
||||||
MAX7219 Dot Matrix, components/display/max7219digit, max7219digit.jpg
|
MAX7219 Dot Matrix, components/display/max7219digit, max7219digit.jpg
|
||||||
|
TM1621, components/display/tm1621, tm1621.jpg
|
||||||
TM1637, components/display/tm1637, tm1637.jpg
|
TM1637, components/display/tm1637, tm1637.jpg
|
||||||
|
TM1638, components/display/tm1638, tm1638.jpg
|
||||||
Nextion, components/display/nextion, nextion.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
|
SSD1306, components/display/ssd1306, ssd1306.jpg
|
||||||
SSD1322, components/display/ssd1322, ssd1322.jpg
|
SSD1322, components/display/ssd1322, ssd1322.jpg
|
||||||
SSD1325, components/display/ssd1325, ssd1325.jpg
|
SSD1325, components/display/ssd1325, ssd1325.jpg
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# reStructuredText (RST) to GitHub-flavored Markdown converter
|
# reStructuredText (RST) to GitHub-flavored Markdown converter
|
||||||
|
|
||||||
import re
|
|
||||||
import sys
|
import sys
|
||||||
from docutils import core, nodes, writers
|
from docutils import core, nodes, writers
|
||||||
from urllib import parse
|
from urllib import parse
|
||||||
@ -32,8 +31,7 @@ class Translator(nodes.NodeVisitor):
|
|||||||
raise nodes.StopTraversal
|
raise nodes.StopTraversal
|
||||||
|
|
||||||
def visit_title(self, node):
|
def visit_title(self, node):
|
||||||
self.version = re.match(r"(\d+\.\d+\.\d+).*", node.children[0]).group(1)
|
pass
|
||||||
raise nodes.SkipChildren
|
|
||||||
|
|
||||||
def visit_title_reference(self, node):
|
def visit_title_reference(self, node):
|
||||||
raise Exception(
|
raise Exception(
|
||||||
|
@ -834,7 +834,14 @@ class SchemaGeneratorVisitor(nodes.NodeVisitor):
|
|||||||
self.app.config.html_baseurl,
|
self.app.config.html_baseurl,
|
||||||
self.docname + ".html#" + title.parent["ids"][0],
|
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
|
return markdown
|
||||||
|
|
||||||
def update_prop(self, node, props):
|
def update_prop(self, node, props):
|
||||||
|