mirror of
https://github.com/esphome/esphome-docs.git
synced 2025-03-01 03:51:36 +01:00
Merge branch 'current' into patch-1
This commit is contained in:
commit
ed88c1c6bc
2
.github/workflows/docker.yml
vendored
2
.github/workflows/docker.yml
vendored
@ -20,7 +20,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
-
|
-
|
||||||
name: Checkout source code
|
name: Checkout source code
|
||||||
uses: actions/checkout@v3.0.2
|
uses: actions/checkout@v3.1.0
|
||||||
-
|
-
|
||||||
name: Set up Docker Buildx
|
name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v2
|
uses: docker/setup-buildx-action@v2
|
||||||
|
2
.github/workflows/lint.yml
vendored
2
.github/workflows/lint.yml
vendored
@ -19,7 +19,7 @@ jobs:
|
|||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3.0.2
|
- uses: actions/checkout@v3.1.0
|
||||||
- name: Set up Python 3.8
|
- name: Set up Python 3.8
|
||||||
uses: actions/setup-python@v4
|
uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
|
4
.github/workflows/stale.yml
vendored
4
.github/workflows/stale.yml
vendored
@ -16,7 +16,7 @@ jobs:
|
|||||||
stale:
|
stale:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/stale@v5
|
- uses: actions/stale@v6
|
||||||
with:
|
with:
|
||||||
days-before-pr-stale: 60
|
days-before-pr-stale: 60
|
||||||
days-before-pr-close: 7
|
days-before-pr-close: 7
|
||||||
@ -35,7 +35,7 @@ jobs:
|
|||||||
close-issues:
|
close-issues:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/stale@v5
|
- uses: actions/stale@v6
|
||||||
with:
|
with:
|
||||||
days-before-pr-stale: -1
|
days-before-pr-stale: -1
|
||||||
days-before-pr-close: -1
|
days-before-pr-close: -1
|
||||||
|
@ -4,4 +4,4 @@ ports:
|
|||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
- before: pip3 install -r requirements.txt
|
- before: pip3 install -r requirements.txt
|
||||||
command: make webserver
|
command: make live-html
|
||||||
|
2
Doxygen
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.9.2
|
PROJECT_NUMBER = 2022.10.0
|
||||||
|
|
||||||
# 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
2
Makefile
@ -1,5 +1,5 @@
|
|||||||
ESPHOME_PATH = ../esphome
|
ESPHOME_PATH = ../esphome
|
||||||
ESPHOME_REF = 2022.9.2
|
ESPHOME_REF = 2022.10.0
|
||||||
|
|
||||||
.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
|
||||||
|
|
||||||
|
@ -3,3 +3,4 @@
|
|||||||
# Moved components
|
# Moved components
|
||||||
# e.g: /components/sensors/abc.html /components/sensors/xyz.html 301
|
# e.g: /components/sensors/abc.html /components/sensors/xyz.html 301
|
||||||
/components/sensor/sgp40.html /components/sensor/sgp4x.html 301
|
/components/sensor/sgp40.html /components/sensor/sgp4x.html 301
|
||||||
|
/components/binary_sensor/xpt2046.html /components/touchscreen/xpt2046.html 301
|
||||||
|
BIN
_static/changelog-2022.10.0.png
Normal file
BIN
_static/changelog-2022.10.0.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 21 KiB |
@ -186,3 +186,7 @@ div.index-shields {
|
|||||||
margin-left: 32px;
|
margin-left: 32px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.breadcrumbs li {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
@ -1 +1 @@
|
|||||||
2022.9.2
|
2022.10.0
|
@ -27,6 +27,17 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
|
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block relbar_top %}
|
||||||
|
{% if parents|length > 0 %}
|
||||||
|
<ul class="breadcrumbs">
|
||||||
|
{%- for doc in parents %}
|
||||||
|
<li><a href="{{ doc.link|e }}">{{ doc.title }}</a> ➔</li>
|
||||||
|
{%- endfor %}
|
||||||
|
<li>{{title}}</li>
|
||||||
|
</ul>
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
{% block footer %}
|
{% block footer %}
|
||||||
<div id="upgrade-footer">
|
<div id="upgrade-footer">
|
||||||
A new version has been release since you last visited this page: {{ release }} 🎉
|
A new version has been release since you last visited this page: {{ release }} 🎉
|
||||||
|
127
changelog/2022.10.0.rst
Normal file
127
changelog/2022.10.0.rst
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
ESPHome 2022.10.0 - 19th October 2022
|
||||||
|
=====================================
|
||||||
|
|
||||||
|
.. seo::
|
||||||
|
:description: Changelog for ESPHome 2022.10.0.
|
||||||
|
:image: /_static/changelog-2022.10.0.png
|
||||||
|
:author: Jesse Hills
|
||||||
|
:author_twitter: @jesserockz
|
||||||
|
|
||||||
|
.. imgtable::
|
||||||
|
:columns: 2
|
||||||
|
|
||||||
|
BLE Client RSSI Sensor, components/sensor/ble_client, bluetooth.svg
|
||||||
|
ZHLT01 IR Climate, components/climate/climate_ir, air-conditioner-ir.svg
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
This month we have been busy upgrading the Bluetooth Proxy support for Home Assistant.
|
||||||
|
This meant there are many PRs awaiting reviews for new components that were unable to be
|
||||||
|
reviewed and merged in time. We will be trying to pack the next release.
|
||||||
|
|
||||||
|
Python Version 3.9
|
||||||
|
------------------
|
||||||
|
|
||||||
|
ESPHome now requires Python 3.9 or newer. This is taken care of if you use the Home Assistant addon
|
||||||
|
or docker image. If using pip, you will need to upgrade your Python version manually before ESPHome will
|
||||||
|
upgrade.
|
||||||
|
|
||||||
|
BLE Client Sensors
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Due to adding a new RSSI sensor to the ``ble_client`` sensor platform, a new ``type`` configuration variable.
|
||||||
|
You will get a validation error when you try to install and you have not added a ``type`` to your
|
||||||
|
existing configurations.
|
||||||
|
|
||||||
|
XPT2046 Touchscreen
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
The ``xpt2046`` touchscreen component has been updated to be a platform of ``touchscreen`` instead of a
|
||||||
|
top level component. This requires a small change to your configuration, see :doc:`/components/touchscreen/xpt2046`
|
||||||
|
for the new way to configure.
|
||||||
|
|
||||||
|
|
||||||
|
Full list of changes
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Breaking Changes
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
- Thermostat remove deprecated config :esphomepr:`3643` by :ghuser:`MrMDavidson` (breaking-change)
|
||||||
|
- Bump python min to 3.9 :esphomepr:`3871` by :ghuser:`jesserockz` (breaking-change)
|
||||||
|
- Refactor xpt2046 to be a touchscreen platform :esphomepr:`3793` by :ghuser:`nielsnl68` (breaking-change)
|
||||||
|
- Add ble RSSI sensor for connected devices :esphomepr:`3860` by :ghuser:`RoboMagus` (breaking-change)
|
||||||
|
|
||||||
|
Beta Changes
|
||||||
|
^^^^^^^^^^^^
|
||||||
|
|
||||||
|
- fix never calling preset change trigger :esphomepr:`3864` by :ghuser:`glmnet`
|
||||||
|
- Modbus QWORD fix :esphomepr:`3856` by :ghuser:`dudanov`
|
||||||
|
- Send true and not RSSI in ble_presence :esphomepr:`3904` by :ghuser:`fjouault`
|
||||||
|
- Remove address type map from bluetooth proxy :esphomepr:`3905` by :ghuser:`jesserockz`
|
||||||
|
|
||||||
|
All changes
|
||||||
|
^^^^^^^^^^^
|
||||||
|
|
||||||
|
- Update mcp23s17.cpp :esphomepr:`3797` by :ghuser:`pawel3410`
|
||||||
|
- Allow CORS for web_server :esphomepr:`3819` by :ghuser:`zhzhzhy`
|
||||||
|
- Dont fail fast on CI for docker :esphomepr:`3832` by :ghuser:`jesserockz`
|
||||||
|
- Thermostat remove deprecated config :esphomepr:`3643` by :ghuser:`MrMDavidson` (breaking-change)
|
||||||
|
- Add support for parsing the short local name in the tracker :esphomepr:`3854` by :ghuser:`bdraco`
|
||||||
|
- Add display GPIO setup instruction for Aliexpress display :esphomepr:`3851` by :ghuser:`kbx81`
|
||||||
|
- fix dump preset string type :esphomepr:`3863` by :ghuser:`glmnet`
|
||||||
|
- Bump CI to python 3.9 :esphomepr:`3869` by :ghuser:`jesserockz`
|
||||||
|
- Add cg.with_local_variable :esphomepr:`3577` by :ghuser:`jpeletier`
|
||||||
|
- Fix time/automation (cron) wdt crash when time jumps ahead too much :esphomepr:`3844` by :ghuser:`jpeletier`
|
||||||
|
- Bump pyupgrade from 2.37.3 to 3.0.0 :esphomepr:`3867` by :ghuser:`dependabot[bot]`
|
||||||
|
- Add min_version to esphome config :esphomepr:`3866` by :ghuser:`jesserockz`
|
||||||
|
- Bump python min to 3.9 :esphomepr:`3871` by :ghuser:`jesserockz` (breaking-change)
|
||||||
|
- Bump pylint from 2.15.2 to 2.15.3 :esphomepr:`3870` by :ghuser:`dependabot[bot]`
|
||||||
|
- Add new sensor device classes :esphomepr:`3895` by :ghuser:`jesserockz`
|
||||||
|
- Refactor xpt2046 to be a touchscreen platform :esphomepr:`3793` by :ghuser:`nielsnl68` (breaking-change)
|
||||||
|
- Proxy friendly host url resolution for `use_address` with path. :esphomepr:`3653` by :ghuser:`RoboMagus`
|
||||||
|
- Update webserver index file :esphomepr:`3896` by :ghuser:`jesserockz`
|
||||||
|
- Correctly set ble_write UUIDs based on their lengths. :esphomepr:`3885` by :ghuser:`RoboMagus`
|
||||||
|
- Fix default unit for ble_rssi sensor :esphomepr:`3874` by :ghuser:`RoboMagus`
|
||||||
|
- Exposing coordinates from touchscreen binary sensor :esphomepr:`3891` by :ghuser:`gpambrozio`
|
||||||
|
- Fix type annotation on `extract_registry_entry_config` :esphomepr:`3623` by :ghuser:`quentinmit`
|
||||||
|
- Add ble RSSI sensor for connected devices :esphomepr:`3860` by :ghuser:`RoboMagus` (breaking-change)
|
||||||
|
- Fix pulse_meter filter logic :esphomepr:`3321` by :ghuser:`cstaahl`
|
||||||
|
- Add support for ZHLT01 heatpump IR protocol :esphomepr:`3655` by :ghuser:`cfeenstra1024`
|
||||||
|
- Send GATT error events to HA :esphomepr:`3884` by :ghuser:`jesserockz`
|
||||||
|
- Do not require CS pin for ST7789V :esphomepr:`3888` by :ghuser:`definitio`
|
||||||
|
- fix never calling preset change trigger :esphomepr:`3864` by :ghuser:`glmnet`
|
||||||
|
- Modbus QWORD fix :esphomepr:`3856` by :ghuser:`dudanov`
|
||||||
|
- Send true and not RSSI in ble_presence :esphomepr:`3904` by :ghuser:`fjouault`
|
||||||
|
- Remove address type map from bluetooth proxy :esphomepr:`3905` by :ghuser:`jesserockz`
|
||||||
|
|
||||||
|
Past Changelogs
|
||||||
|
---------------
|
||||||
|
|
||||||
|
- :doc:`2022.9.0`
|
||||||
|
- :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`
|
@ -36,6 +36,12 @@ A new Factory Reset switch and button has been added this release, allowing rese
|
|||||||
as counters, restored values, and more importantly, the wifi credentials of a device that has been set up
|
as counters, restored values, and more importantly, the wifi credentials of a device that has been set up
|
||||||
using the captive portal such as pre-flashed devices you would have purchased.
|
using the captive portal such as pre-flashed devices you would have purchased.
|
||||||
|
|
||||||
|
Bluetooth Active Connections
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
ESPHome 2022.9.3 adds active connections to the ``bluetooth_proxy`` component allowing Home Assistant
|
||||||
|
to connect to and control supported devices.
|
||||||
|
|
||||||
Release 2022.9.1 - September 22
|
Release 2022.9.1 - September 22
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
|
||||||
@ -46,6 +52,18 @@ Release 2022.9.2 - September 29
|
|||||||
|
|
||||||
- Bump dashboard to 20220925.0 :esphomepr:`3846` by :ghuser:`glmnet`
|
- Bump dashboard to 20220925.0 :esphomepr:`3846` by :ghuser:`glmnet`
|
||||||
|
|
||||||
|
Release 2022.9.3 - October 6
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
- Bluetooth Proxy active connections :esphomepr:`3817` by :ghuser:`jesserockz`
|
||||||
|
|
||||||
|
Release 2022.9.4 - October 7
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
- Add network type to mdns service message :esphomepr:`3880` by :ghuser:`jesserockz`
|
||||||
|
- Bump esphome-dashboard to 20221007.0 :esphomepr:`3881` by :ghuser:`jesserockz`
|
||||||
|
- Dont add wifi block to yaml if discovered device uses ethernet :esphomepr:`3882` by :ghuser:`jesserockz`
|
||||||
|
|
||||||
Full list of changes
|
Full list of changes
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ Changelog
|
|||||||
=========
|
=========
|
||||||
|
|
||||||
.. redirect::
|
.. redirect::
|
||||||
:url: /changelog/2022.9.0.html
|
:url: /changelog/2022.10.0.html
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:glob:
|
:glob:
|
||||||
|
42
components.py
Normal file
42
components.py
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
import os
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def setup(app):
|
||||||
|
"""Setup connects events to the components output builder"""
|
||||||
|
app.connect("html-page-context", add_component_details)
|
||||||
|
app.connect("build-finished", create_output)
|
||||||
|
app.compoents_output = {}
|
||||||
|
|
||||||
|
is_production = os.getenv("NETLIFY") == "true"
|
||||||
|
|
||||||
|
return {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"parallel_read_safe": True,
|
||||||
|
"parallel_write_safe": not is_production,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def add_component_details(app, pagename, templatename, context, doctree):
|
||||||
|
"""As each page is built, collect page details for the output."""
|
||||||
|
if pagename.startswith("components/"):
|
||||||
|
page_key = pagename[11:].replace("/", "_")
|
||||||
|
component_name = pagename.split("/")[-1]
|
||||||
|
page_data = {
|
||||||
|
"title": context["title"],
|
||||||
|
"url": context["pageurl"],
|
||||||
|
"path": context["pagename"],
|
||||||
|
}
|
||||||
|
if os.path.exists(os.path.join(app.builder.srcdir, "images", component_name + ".png")):
|
||||||
|
page_data["image"] = app.builder.config.html_baseurl + "/_images/" + component_name + ".png"
|
||||||
|
elif os.path.exists(os.path.join(app.builder.srcdir, "images", component_name + ".jpg")):
|
||||||
|
page_data["image"] = app.builder.config.html_baseurl + "/_images/" + component_name + ".jpg"
|
||||||
|
|
||||||
|
app.compoents_output[page_key] = page_data
|
||||||
|
|
||||||
|
|
||||||
|
def create_output(app, exception):
|
||||||
|
"""Generates the components.json from the collected component pages"""
|
||||||
|
with open(os.path.join(app.builder.outdir, "components.json"), "wt") as f:
|
||||||
|
f.write(json.dumps(app.compoents_output))
|
@ -34,7 +34,7 @@ Configuration:
|
|||||||
|
|
||||||
bluetooth_proxy:
|
bluetooth_proxy:
|
||||||
|
|
||||||
No configuration variables.
|
- **active** (*Optional*, boolean): Enables proxying active connections. Defaults to ``false``. Requires Home Assistant 2022.10 or later.
|
||||||
|
|
||||||
See Also
|
See Also
|
||||||
--------
|
--------
|
||||||
|
@ -102,7 +102,7 @@ This platform utilises the library's generic one-size-fits-all API, which might
|
|||||||
|
|
||||||
Additional configuration must be specified for this platform:
|
Additional configuration must be specified for this platform:
|
||||||
|
|
||||||
- **protocol** (**Required**, string): Choose one of Arduino-HeatpumpIR's supported protcols: ``aux``, ``ballu``, ``carrier_mca``, ``carrier_nqv``, ``daikin_arc417``, ``daikin_arc480``, ``daikin``, ``electroluxyal``, ``fuego``, ``fujitsu_awyz``, ``gree``, ``greeya``, ``greeyac``, ``greeyan``, ``hisense_aud``, ``hitachi``, ``hyundai``, ``ivt``, ``midea``, ``mitsubishi_fa``, ``mitsubishi_fd``, ``mitsubishi_fe``, ``mitsubishi_heavy_fdtc``, ``mitsubishi_heavy_zj``, ``mitsubishi_heavy_zm``, ``mitsubishi_heavy_zmp``, ``mitsubishi_heavy_kj``, ``mitsubishi_msc``, ``mitsubishi_msy``, ``mitsubishi_sez``, ``panasonic_ckp``, ``panasonic_dke``, ``panasonic_jke``, ``panasonic_lke``, ``panasonic_nke``, ``samsung_aqv``, ``samsung_fjm``, ``sharp``, ``toshiba_daiseikai``, ``toshiba``
|
- **protocol** (**Required**, string): Choose one of Arduino-HeatpumpIR's supported protcols: ``aux``, ``ballu``, ``carrier_mca``, ``carrier_nqv``, ``daikin_arc417``, ``daikin_arc480``, ``daikin``, ``electroluxyal``, ``fuego``, ``fujitsu_awyz``, ``gree``, ``greeya``, ``greeyac``, ``greeyan``, ``hisense_aud``, ``hitachi``, ``hyundai``, ``ivt``, ``midea``, ``mitsubishi_fa``, ``mitsubishi_fd``, ``mitsubishi_fe``, ``mitsubishi_heavy_fdtc``, ``mitsubishi_heavy_zj``, ``mitsubishi_heavy_zm``, ``mitsubishi_heavy_zmp``, ``mitsubishi_heavy_kj``, ``mitsubishi_msc``, ``mitsubishi_msy``, ``mitsubishi_sez``, ``panasonic_ckp``, ``panasonic_dke``, ``panasonic_jke``, ``panasonic_lke``, ``panasonic_nke``, ``samsung_aqv``, ``samsung_fjm``, ``sharp``, ``toshiba_daiseikai``, ``toshiba``, ``zhlt01``
|
||||||
- **horizontal_default** (**Required**, string): What to default to when the AC unit's horizontal direction is *not* set to swing. Options are: ``left``, ``mleft``, ``middle``, ``mright``, ``right``, ``auto``
|
- **horizontal_default** (**Required**, string): What to default to when the AC unit's horizontal direction is *not* set to swing. Options are: ``left``, ``mleft``, ``middle``, ``mright``, ``right``, ``auto``
|
||||||
- **vertical_default** (**Required**, string): What to default to when the AC unit's vertical direction is *not* set to swing. Options are: ``down``, ``mdown``, ``middle``, ``mup``, ``up``, ``auto``
|
- **vertical_default** (**Required**, string): What to default to when the AC unit's vertical direction is *not* set to swing. Options are: ``down``, ``mdown``, ``middle``, ``mup``, ``up``, ``auto``
|
||||||
- **max_temperature** (**Required**, float): The maximum temperature that the AC unit supports being set to.
|
- **max_temperature** (**Required**, float): The maximum temperature that the AC unit supports being set to.
|
||||||
@ -120,6 +120,8 @@ Additional configuration must be specified for this platform:
|
|||||||
internal temperature sensor; a value of 2 minutes seems to work well. See :doc:`/components/sensor/index`
|
internal temperature sensor; a value of 2 minutes seems to work well. See :doc:`/components/sensor/index`
|
||||||
for more information.
|
for more information.
|
||||||
|
|
||||||
|
- The ``zhlt01`` protocol supports multiple AC brands: Eurom, Chigo, Tristar, Tecnomaster, Elgin, Geant, Tekno, Topair, Proma, Sumikura, JBS, Turbo Air, Nakatomy, Celestial Air, Ager, Blueway, Airlux, etc.
|
||||||
|
|
||||||
.. _ir-receiver_id:
|
.. _ir-receiver_id:
|
||||||
|
|
||||||
Using a Receiver
|
Using a Receiver
|
||||||
|
@ -52,8 +52,6 @@ modes that Home Assistant offers.
|
|||||||
- platform: thermostat
|
- platform: thermostat
|
||||||
name: "Thermostat Climate Controller"
|
name: "Thermostat Climate Controller"
|
||||||
sensor: my_temperature_sensor
|
sensor: my_temperature_sensor
|
||||||
default_target_temperature_low: 20 °C
|
|
||||||
default_target_temperature_high: 22 °C
|
|
||||||
min_cooling_off_time: 300s
|
min_cooling_off_time: 300s
|
||||||
min_cooling_run_time: 300s
|
min_cooling_run_time: 300s
|
||||||
min_heating_off_time: 300s
|
min_heating_off_time: 300s
|
||||||
@ -66,6 +64,11 @@ modes that Home Assistant offers.
|
|||||||
idle_action:
|
idle_action:
|
||||||
- switch.turn_off: air_cond
|
- switch.turn_off: air_cond
|
||||||
- switch.turn_off: heater
|
- switch.turn_off: heater
|
||||||
|
default_preset: Home
|
||||||
|
preset:
|
||||||
|
- name: Home
|
||||||
|
default_target_temperature_low: 20 °C
|
||||||
|
default_target_temperature_high: 22 °C
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
@ -74,7 +77,6 @@ modes that Home Assistant offers.
|
|||||||
- platform: thermostat
|
- platform: thermostat
|
||||||
name: "Thermostat Climate Controller"
|
name: "Thermostat Climate Controller"
|
||||||
sensor: my_temperature_sensor
|
sensor: my_temperature_sensor
|
||||||
default_target_temperature_low: 20 °C
|
|
||||||
min_heating_off_time: 300s
|
min_heating_off_time: 300s
|
||||||
min_heating_run_time: 300s
|
min_heating_run_time: 300s
|
||||||
min_idle_time: 30s
|
min_idle_time: 30s
|
||||||
@ -82,6 +84,11 @@ modes that Home Assistant offers.
|
|||||||
- switch.turn_on: heater
|
- switch.turn_on: heater
|
||||||
idle_action:
|
idle_action:
|
||||||
- switch.turn_off: heater
|
- switch.turn_off: heater
|
||||||
|
default_preset: Home
|
||||||
|
preset:
|
||||||
|
- name: Home
|
||||||
|
default_target_temperature_low: 20 °C
|
||||||
|
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
@ -90,7 +97,6 @@ modes that Home Assistant offers.
|
|||||||
- platform: thermostat
|
- platform: thermostat
|
||||||
name: "Thermostat Climate Controller"
|
name: "Thermostat Climate Controller"
|
||||||
sensor: my_temperature_sensor
|
sensor: my_temperature_sensor
|
||||||
default_target_temperature_high: 22 °C
|
|
||||||
min_cooling_off_time: 300s
|
min_cooling_off_time: 300s
|
||||||
min_cooling_run_time: 300s
|
min_cooling_run_time: 300s
|
||||||
min_idle_time: 30s
|
min_idle_time: 30s
|
||||||
@ -98,6 +104,11 @@ modes that Home Assistant offers.
|
|||||||
- switch.turn_on: air_cond
|
- switch.turn_on: air_cond
|
||||||
idle_action:
|
idle_action:
|
||||||
- switch.turn_off: air_cond
|
- switch.turn_off: air_cond
|
||||||
|
default_preset: Home
|
||||||
|
preset:
|
||||||
|
- name: Home
|
||||||
|
default_target_temperature_high: 22 °C
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Controller Behavior and Hysteresis
|
Controller Behavior and Hysteresis
|
||||||
@ -163,7 +174,7 @@ Default Target Temperatures and Mode
|
|||||||
|
|
||||||
These configuration items determine default values the thermostat controller should use when it starts.
|
These configuration items determine default values the thermostat controller should use when it starts.
|
||||||
|
|
||||||
- **default_mode** (*Optional*, *Deprecated*, climate mode): The default climate mode the controller should
|
- **default_mode** (*Optional*, *Deprecated*, climate mode): The default climate mode the controller should
|
||||||
use if it is unable to restore it from memory. One of:
|
use if it is unable to restore it from memory. One of:
|
||||||
|
|
||||||
- ``off`` (default)
|
- ``off`` (default)
|
||||||
@ -173,7 +184,7 @@ These configuration items determine default values the thermostat controller sho
|
|||||||
- ``dry``
|
- ``dry``
|
||||||
- ``fan_only``
|
- ``fan_only``
|
||||||
- ``auto``
|
- ``auto``
|
||||||
|
|
||||||
This value is used the first time your device starts after ESPHome is initially installed onto it. Add
|
This value is used the first time your device starts after ESPHome is initially installed onto it. Add
|
||||||
this option into your configuration if you want your thermostat component to start in a climate mode other
|
this option into your configuration if you want your thermostat component to start in a climate mode other
|
||||||
than ``off``. If this option is not configured, you'll need to manually change the climate mode later via
|
than ``off``. If this option is not configured, you'll need to manually change the climate mode later via
|
||||||
@ -190,9 +201,9 @@ device's configuration.
|
|||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
**default_mode**, **default_target_temperature_low**, and **default_target_temperature_high** are
|
**default_mode**, **default_target_temperature_low**, and **default_target_temperature_high** are
|
||||||
being removed in a future release. In the future you will need to migrate your configuration to using
|
being removed in a future release. In the future you will need to migrate your configuration to using
|
||||||
a :ref:`preset <thermostat-preset>` which will allow for more flexibility and customisation
|
a :ref:`preset <thermostat-preset>` which will allow for more flexibility and customisation
|
||||||
|
|
||||||
Note that ``min_temperature`` and ``max_temperature`` from the base climate component are used to define
|
Note that ``min_temperature`` and ``max_temperature`` from the base climate component are used to define
|
||||||
the range of allowed temperature values in the thermostat component. See :doc:`/components/climate/index`.
|
the range of allowed temperature values in the thermostat component. See :doc:`/components/climate/index`.
|
||||||
@ -315,22 +326,6 @@ Set Point Options/Behavior
|
|||||||
- **supplemental_heating_delta** (*Required with* ``supplemental_heating_action``, float): When the temperature
|
- **supplemental_heating_delta** (*Required with* ``supplemental_heating_action``, float): When the temperature
|
||||||
difference between the lower set point and the current temperature exceeds this value,
|
difference between the lower set point and the current temperature exceeds this value,
|
||||||
``supplemental_heating_action`` will be called immediately.
|
``supplemental_heating_action`` will be called immediately.
|
||||||
- **away_config** (*Optional*, *Deprecated*): Additionally specify target temperature range settings for away mode.
|
|
||||||
Away mode can be used to have a second set of target temperatures (for example, while the user is
|
|
||||||
away or sleeping/at night).
|
|
||||||
|
|
||||||
- **default_target_temperature_low** (*Optional*, float): The default low target temperature for the control
|
|
||||||
algorithm when Away mode is selected. This can be dynamically set in the frontend later.
|
|
||||||
- **default_target_temperature_high** (*Optional*, float): The default high target temperature for the control
|
|
||||||
algorithm when Away mode is selected. This can be dynamically set in the frontend later.
|
|
||||||
|
|
||||||
**If configured, at least one of** ``default_target_temperature_low`` **and** ``default_target_temperature_high``
|
|
||||||
**must be specified in the away mode configuration.**
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
**away_config** is deprecated and will be removed in a future release. You should migrate your configuration
|
|
||||||
to using a :ref:`preset <thermostat-preset>` which allows for more flexibility and customisation
|
|
||||||
|
|
||||||
.. _thermostat-preset:
|
.. _thermostat-preset:
|
||||||
|
|
||||||
@ -343,19 +338,19 @@ experience and automation.
|
|||||||
|
|
||||||
- **preset**: (*Optional*, list)
|
- **preset**: (*Optional*, list)
|
||||||
|
|
||||||
- **name** (*Required*, string): Name of the preset. If this is one of the *standard* presets (``eco``, ``away``,
|
- **name** (*Required*, string): Name of the preset. If this is one of the *standard* presets (``eco``, ``away``,
|
||||||
``boost``, ``comfort``, ``home``, ``sleep``, or ``activity``) it is considered a *standard* preset. Any other
|
``boost``, ``comfort``, ``home``, ``sleep``, or ``activity``) it is considered a *standard* preset. Any other
|
||||||
string will make the preset a *custom* preset. *Standard* and *custom* presets are functionally equivalent,
|
string will make the preset a *custom* preset. *Standard* and *custom* presets are functionally equivalent,
|
||||||
the only difference is that when switching the mode via :ref:`climate.control Action <climate-control_action>`
|
the only difference is that when switching the mode via :ref:`climate.control Action <climate-control_action>`
|
||||||
you will need to use the `preset` or `custom_preset` property as appropriate. The Home Assistant
|
you will need to use the `preset` or `custom_preset` property as appropriate. The Home Assistant
|
||||||
`climate.set_preset_mode` service treats them identically
|
`climate.set_preset_mode` service treats them identically
|
||||||
- **default_target_temperature_low** (*Optional*, float): The default low target temperature when switching to
|
- **default_target_temperature_low** (*Optional*, float): The default low target temperature when switching to
|
||||||
this preset
|
this preset
|
||||||
- **default_target_temperature_high** (*Optional*, float): The default high target temperature when switching
|
- **default_target_temperature_high** (*Optional*, float): The default high target temperature when switching
|
||||||
to this preset.
|
to this preset.
|
||||||
- **mode** (*Optional*, climate mode): The mode the thermostat should switch to when this preset is activated.
|
- **mode** (*Optional*, climate mode): The mode the thermostat should switch to when this preset is activated.
|
||||||
If not specified, the thermostat's mode will remain unchanged when the preset is activated. One of:
|
If not specified, the thermostat's mode will remain unchanged when the preset is activated. One of:
|
||||||
|
|
||||||
- ``heat_cool``
|
- ``heat_cool``
|
||||||
- ``cool``
|
- ``cool``
|
||||||
- ``heat``
|
- ``heat``
|
||||||
@ -378,7 +373,7 @@ experience and automation.
|
|||||||
- **swing_mode** (*Optional*, climate swing mode): The fan swing mode the thermostat should switch to when this
|
- **swing_mode** (*Optional*, climate swing mode): The fan swing mode the thermostat should switch to when this
|
||||||
preset is activated. If not specified, the thermostat's fan swing mode will remain unchanged when the preset
|
preset is activated. If not specified, the thermostat's fan swing mode will remain unchanged when the preset
|
||||||
is activated. One of:
|
is activated. One of:
|
||||||
|
|
||||||
- ``off``
|
- ``off``
|
||||||
- ``both``
|
- ``both``
|
||||||
- ``horizontal``
|
- ``horizontal``
|
||||||
@ -422,6 +417,67 @@ experience and automation.
|
|||||||
preset_change:
|
preset_change:
|
||||||
- logger.log: Preset has been changed!
|
- logger.log: Preset has been changed!
|
||||||
|
|
||||||
|
Default Preset
|
||||||
|
**************
|
||||||
|
|
||||||
|
These configuration items determine default values the thermostat controller should use when it starts.
|
||||||
|
|
||||||
|
- **default_preset** (*Optional*, string): The name of the preset to use by default. Must match a preset
|
||||||
|
as per :ref:`preset <thermostat-preset>`.
|
||||||
|
- **on_boot_restore_from**: (*Optional*, on_boot_restore_from): Controls what the thermostat will do when
|
||||||
|
it first boots. One of:
|
||||||
|
|
||||||
|
- ``memory`` (default): The thermostat will restore any settings from last time it was running.
|
||||||
|
- ``default_preset``: The thermostat will always switch to the preset specified by **default_preset**
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
You can specify a ``default_preset`` and set ``on_boot_restore_from`` to ``memory``. In this mode when
|
||||||
|
the settings from last boot cannot be retrieved, for any reason, then the specified ``default_preset``
|
||||||
|
will be applied.
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
# This climate controller, on first boot, will switch to "My Startup Preset". Subsequent boots would
|
||||||
|
# restore to whatever mode it was in prior to the reboot
|
||||||
|
climate:
|
||||||
|
- platform: thermostat
|
||||||
|
name: "From Memory Thermostat"
|
||||||
|
default_preset: My Startup Preset
|
||||||
|
on_boot_restore_from: memory
|
||||||
|
preset:
|
||||||
|
- name: My Startup Preset
|
||||||
|
default_target_temperature_low: 17
|
||||||
|
default_target_temperature_high: 26
|
||||||
|
fan_mode: OFF
|
||||||
|
swing_mode: OFF
|
||||||
|
mode: OFF
|
||||||
|
# Custom preset
|
||||||
|
- name: A custom preset
|
||||||
|
default_target_temperature_low: 21
|
||||||
|
default_target_temperature_high: 23
|
||||||
|
fan_mode: HIGH
|
||||||
|
mode: HEAT_COOL
|
||||||
|
|
||||||
|
# This climate controller will always switch to "Every Start Preset"
|
||||||
|
climate:
|
||||||
|
- platform: thermostat
|
||||||
|
name: "Default Preset Thermostat"
|
||||||
|
default_preset: Every Start Preset
|
||||||
|
on_boot_restore_from: default_preset
|
||||||
|
preset:
|
||||||
|
- name: Every Start Preset
|
||||||
|
default_target_temperature_low: 17
|
||||||
|
default_target_temperature_high: 26
|
||||||
|
fan_mode: OFF
|
||||||
|
swing_mode: OFF
|
||||||
|
mode: OFF
|
||||||
|
# Custom preset
|
||||||
|
- name: A custom preset
|
||||||
|
default_target_temperature_low: 21
|
||||||
|
default_target_temperature_high: 23
|
||||||
|
fan_mode: HIGH
|
||||||
|
mode: HEAT_COOL
|
||||||
|
|
||||||
Additional Actions/Behavior
|
Additional Actions/Behavior
|
||||||
***************************
|
***************************
|
||||||
@ -487,7 +543,7 @@ Hysteresis Values
|
|||||||
|
|
||||||
- While this platform uses the term temperature everywhere, it can also be used to regulate other values.
|
- While this platform uses the term temperature everywhere, it can also be used to regulate other values.
|
||||||
For example, controlling humidity is also possible with this platform.
|
For example, controlling humidity is also possible with this platform.
|
||||||
- ``min_temperature`` and ``max_temperature`` from the base climate component are used the define the range of
|
- ``min_temperature`` and ``max_temperature`` from the base climate component are used the define the range of
|
||||||
adjustability and the defaults will probably not make sense for control of things like humidity. See
|
adjustability and the defaults will probably not make sense for control of things like humidity. See
|
||||||
:doc:`/components/climate/index`.
|
:doc:`/components/climate/index`.
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ CS to your set ``cs_pin`` and finally GND to GND.
|
|||||||
|
|
||||||
You can even daisy-chain multiple MAX7219s by connecting the DOUT of the previous chip in the chain to the
|
You can even daisy-chain multiple MAX7219s by connecting the DOUT of the previous chip in the chain to the
|
||||||
next DIN. With more than ~3 chips the 3.3V will probably not be enough, so then you will have to potentially
|
next DIN. With more than ~3 chips the 3.3V will probably not be enough, so then you will have to potentially
|
||||||
use a logic level converted.
|
use a logic level converter.
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ Configuration variables:
|
|||||||
- ``Adafruit RR 280x240`` (round-rectangular display -- some pixels are "deleted" from corners to form rounded shape)
|
- ``Adafruit RR 280x240`` (round-rectangular display -- some pixels are "deleted" from corners to form rounded shape)
|
||||||
- ``Custom`` (see details below)
|
- ``Custom`` (see details below)
|
||||||
|
|
||||||
- **cs_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The CS pin.
|
- **cs_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The CS pin.
|
||||||
- **dc_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The DC pin.
|
- **dc_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The DC pin.
|
||||||
- **reset_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The RESET pin.
|
- **reset_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The RESET pin.
|
||||||
- **height** (*Optional*, int): When ``model`` is set to "Custom", use this to specify the ``height`` of the display
|
- **height** (*Optional*, int): When ``model`` is set to "Custom", use this to specify the ``height`` of the display
|
||||||
|
@ -50,6 +50,8 @@ Advanced options:
|
|||||||
|
|
||||||
- **name** (**Required**, string): Name of the project
|
- **name** (**Required**, string): Name of the project
|
||||||
- **version** (**Required**, string): Version of the project
|
- **version** (**Required**, string): Version of the project
|
||||||
|
- **min_version** (*Optional*, string): The minimum ESPHome version required to compile this configuration.
|
||||||
|
See :ref:`esphome-min_version`.
|
||||||
|
|
||||||
Old-style platform options, which have been moved to the platform-specific :doc:`esp32 </components/esp32>` and
|
Old-style platform options, which have been moved to the platform-specific :doc:`esp32 </components/esp32>` and
|
||||||
:doc:`esp8266 </components/esp8266>` sections but are still accepted here for compatibility reasons (usage not
|
:doc:`esp8266 </components/esp8266>` sections but are still accepted here for compatibility reasons (usage not
|
||||||
@ -129,11 +131,11 @@ too many WiFi/MQTT connection attempts, Over-The-Air updates being applied or th
|
|||||||
Configuration variables:
|
Configuration variables:
|
||||||
|
|
||||||
- **priority** (*Optional*, float): The priority to execute your custom shutdown code. A higher value
|
- **priority** (*Optional*, float): The priority to execute your custom shutdown code. A higher value
|
||||||
means a high priority and in case of shutdown triggers that the code is executed **later**.
|
means a high priority and in case of shutdown triggers that the code is executed **later**.
|
||||||
Priority is used primarily for the initialization order of components. Shutdowns for these components are handled in *reverse* order, such that e.g. sensors (600) are shutdown before the hardware components (800) they depend on.
|
Priority is used primarily for the initialization order of components. Shutdowns for these components are handled in *reverse* order, such that e.g. sensors (600) are shutdown before the hardware components (800) they depend on.
|
||||||
Please note this is an ESPHome-internal value and any change will not be marked as a breaking change.
|
Please note this is an ESPHome-internal value and any change will not be marked as a breaking change.
|
||||||
Defaults to ``600``. For priority values refer to the list in the :ref:`esphome-on_boot` section.
|
Defaults to ``600``. For priority values refer to the list in the :ref:`esphome-on_boot` section.
|
||||||
|
|
||||||
- See :ref:`Automation <automation>`.
|
- See :ref:`Automation <automation>`.
|
||||||
|
|
||||||
.. _esphome-on_loop:
|
.. _esphome-on_loop:
|
||||||
@ -337,6 +339,14 @@ should be ``author_name.project_name``.
|
|||||||
name: "jesse.leds_party"
|
name: "jesse.leds_party"
|
||||||
version: "1.0.0"
|
version: "1.0.0"
|
||||||
|
|
||||||
|
.. _esphome-min_version:
|
||||||
|
|
||||||
|
Minimum ESPHome version
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
This allows YAML files to specify the minimum version of ESPHome required to compile.
|
||||||
|
This is useful in the case of packages where a published package might use features only
|
||||||
|
available in a newer version of ESPHome. This allows for a more friendly error message.
|
||||||
|
|
||||||
See Also
|
See Also
|
||||||
--------
|
--------
|
||||||
|
@ -6,9 +6,10 @@ Logger Component
|
|||||||
:image: file-document-box.svg
|
:image: file-document-box.svg
|
||||||
|
|
||||||
The logger component automatically logs all log messages through the
|
The logger component automatically logs all log messages through the
|
||||||
serial port and through MQTT topics. By default, all logs with a
|
serial port and through MQTT topics (if there is an MQTT client in the
|
||||||
severity higher than ``DEBUG`` will be shown. Decreasing the log level
|
configuration). By default, all logs with a severity higher than
|
||||||
can help with the performance of the application and memory size.
|
``DEBUG`` will be shown. Decreasing the log level can help with the
|
||||||
|
performance of the application and memory size.
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
@ -54,7 +55,9 @@ The logger component makes use of platform-specific hardware UARTs for serial lo
|
|||||||
By default, the logger will occupy ``UART0``. The ESP32 has three hardware UARTs, all of
|
By default, the logger will occupy ``UART0``. The ESP32 has three hardware UARTs, all of
|
||||||
which can be used for both transmit and receive. The ESP8266 only has two hardware UARTs,
|
which can be used for both transmit and receive. The ESP8266 only has two hardware UARTs,
|
||||||
one of which is transmit-only. The ESP8266 ``UART0`` can also be 'swapped' to TX/RX on the
|
one of which is transmit-only. The ESP8266 ``UART0`` can also be 'swapped' to TX/RX on the
|
||||||
CTS/RTS pins, if you need to use GPIO1 and GPIO3 for something else.
|
CTS/RTS pins, if you need to use GPIO1 and GPIO3 for something else. Note that the common
|
||||||
|
NodeMCU boards have their USB-UART Adapters fixed to the default GPIOs used by ``UART0``,
|
||||||
|
so if you use anything else you will not get log messages over the on-board USB.
|
||||||
|
|
||||||
Possible Hardware UART configurations:
|
Possible Hardware UART configurations:
|
||||||
|
|
||||||
|
@ -290,6 +290,21 @@ You have to download the server CA certficiate in PEM format and add it to ``cer
|
|||||||
Usually these are .crt files and you can open them with any text editor.
|
Usually these are .crt files and you can open them with any text editor.
|
||||||
Also make sure to change the ``port`` of the mqtt broker. Most brokers use port 8883 for TLS connections.
|
Also make sure to change the ``port`` of the mqtt broker. Most brokers use port 8883 for TLS connections.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
MbedTLS, the library that handles TLS for the esp-idf, doesn't validate wildcard certificates.
|
||||||
|
|
||||||
|
The Common Name check only works if the CN is explicitly reported in the certificate.
|
||||||
|
|
||||||
|
- \*.example.com -> Fail
|
||||||
|
- mqtt.example.com -> Success
|
||||||
|
|
||||||
|
If a secure connection is necessary for your device, you really want to set:
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
skip_cert_cn_check: false
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
mqtt:
|
mqtt:
|
||||||
@ -298,6 +313,7 @@ Also make sure to change the ``port`` of the mqtt broker. Most brokers use port
|
|||||||
discovery: true
|
discovery: true
|
||||||
discovery_prefix: ${mqtt_prefix}/homeassistant
|
discovery_prefix: ${mqtt_prefix}/homeassistant
|
||||||
log_topic: ${mqtt_prefix}/logs
|
log_topic: ${mqtt_prefix}/logs
|
||||||
|
# Evaluate carefully skip_cert_cn_check
|
||||||
skip_cert_cn_check: true
|
skip_cert_cn_check: true
|
||||||
idf_send_async: false
|
idf_send_async: false
|
||||||
certificate_authority: |
|
certificate_authority: |
|
||||||
|
@ -61,7 +61,7 @@ This action turns the output with the given ID on when executed.
|
|||||||
|
|
||||||
on_...:
|
on_...:
|
||||||
then:
|
then:
|
||||||
- output.turn_on: relay_1
|
- output.turn_on: light_1
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@ -69,7 +69,7 @@ This action turns the output with the given ID on when executed.
|
|||||||
|
|
||||||
.. code-block:: cpp
|
.. code-block:: cpp
|
||||||
|
|
||||||
id(relay_1).turn_on();
|
id(light_1).turn_on();
|
||||||
|
|
||||||
.. _output-turn_off_action:
|
.. _output-turn_off_action:
|
||||||
|
|
||||||
@ -82,7 +82,7 @@ This action turns the output with the given ID off when executed.
|
|||||||
|
|
||||||
on_...:
|
on_...:
|
||||||
then:
|
then:
|
||||||
- output.turn_off: relay_1
|
- output.turn_off: light_1
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@ -90,7 +90,7 @@ This action turns the output with the given ID off when executed.
|
|||||||
|
|
||||||
.. code-block:: cpp
|
.. code-block:: cpp
|
||||||
|
|
||||||
id(relay_1).turn_off();
|
id(light_1).turn_off();
|
||||||
|
|
||||||
.. _output-set_level_action:
|
.. _output-set_level_action:
|
||||||
|
|
||||||
@ -98,14 +98,14 @@ This action turns the output with the given ID off when executed.
|
|||||||
***************************
|
***************************
|
||||||
|
|
||||||
This action sets the float output to the given level when executed. Note: This only
|
This action sets the float output to the given level when executed. Note: This only
|
||||||
works with floating point outputs like ESP8266 PWM or LEDC.
|
works with floating point outputs like ESP8266 PWM, LEDC or ``slow_pwm``.
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
on_...:
|
on_...:
|
||||||
then:
|
then:
|
||||||
- output.set_level:
|
- output.set_level:
|
||||||
id: output_1
|
id: light_1
|
||||||
level: 50%
|
level: 50%
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
@ -115,7 +115,7 @@ works with floating point outputs like ESP8266 PWM or LEDC.
|
|||||||
.. code-block:: cpp
|
.. code-block:: cpp
|
||||||
|
|
||||||
// range is 0.0 (off) to 1.0 (on)
|
// range is 0.0 (off) to 1.0 (on)
|
||||||
id(relay_1).set_level(0.5);
|
id(light_1).set_level(0.5);
|
||||||
|
|
||||||
Full Output Index
|
Full Output Index
|
||||||
-----------------
|
-----------------
|
||||||
@ -129,10 +129,13 @@ Full Output Index
|
|||||||
- :doc:`/components/fan/speed`
|
- :doc:`/components/fan/speed`
|
||||||
- :apiref:`binary_output.h <output/binary_output.h>`,
|
- :apiref:`binary_output.h <output/binary_output.h>`,
|
||||||
:apiref:`float_output.h <output/float_output.h>`
|
:apiref:`float_output.h <output/float_output.h>`
|
||||||
- :ghedit:`Edit`
|
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
:glob:
|
:glob:
|
||||||
|
|
||||||
*
|
*
|
||||||
|
|
||||||
|
- :ghedit:`Edit`
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ BLE Client Sensor
|
|||||||
:image: bluetooth.svg
|
:image: bluetooth.svg
|
||||||
|
|
||||||
The ``ble_client`` component is a sensor platform that can
|
The ``ble_client`` component is a sensor platform that can
|
||||||
query BLE devices for specific values of service characteristics.
|
query BLE devices for RSSI or specific values of service characteristics.
|
||||||
|
|
||||||
For more information on BLE services and characteristics, see
|
For more information on BLE services and characteristics, see
|
||||||
:doc:`/components/ble_client`.
|
:doc:`/components/ble_client`.
|
||||||
@ -21,6 +21,7 @@ For more information on BLE services and characteristics, see
|
|||||||
|
|
||||||
sensor:
|
sensor:
|
||||||
- platform: ble_client
|
- platform: ble_client
|
||||||
|
type: characteristic
|
||||||
ble_client_id: itag_black
|
ble_client_id: itag_black
|
||||||
name: "iTag battery level"
|
name: "iTag battery level"
|
||||||
service_uuid: '180f'
|
service_uuid: '180f'
|
||||||
@ -28,20 +29,34 @@ For more information on BLE services and characteristics, see
|
|||||||
icon: 'mdi:battery'
|
icon: 'mdi:battery'
|
||||||
unit_of_measurement: '%'
|
unit_of_measurement: '%'
|
||||||
|
|
||||||
|
- platform: ble_client
|
||||||
|
type: rssi
|
||||||
|
ble_client_id: itag_black
|
||||||
|
name: "iTag RSSI"
|
||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
- **ble_client_id** (**Required**, :ref:`config-id`): ID of the associated BLE client.
|
- **type** (**Required**): One of ``rssi``, ``characteristic``.
|
||||||
- **service_uuid** (**Required**, UUID): UUID of the service on the device.
|
|
||||||
- **characteristic_uuid** (**Required**, UUID): UUID of the service's characteristic to query.
|
rssi options:
|
||||||
- **descriptor_uuid** (*Optional*, UUID): UUID of the characteristic's descriptor to query.
|
|
||||||
- **id** (*Optional*, :ref:`config-id`): The ID to use for code generation, and for reference by dependent components.
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to poll the device.
|
||||||
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for converting a raw data
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
reading to a sensor value. See :ref:`ble-sensor-lambda` for more information.
|
|
||||||
- **notify** (*Optional*, boolean): Instruct the server to send notifications for this
|
characteristic options:
|
||||||
characteristic.
|
|
||||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to poll the device.
|
- **ble_client_id** (**Required**, :ref:`config-id`): ID of the associated BLE client.
|
||||||
- All other options from :ref:`Sensor <config-sensor>`.
|
- **service_uuid** (**Required**, UUID): UUID of the service on the device.
|
||||||
|
- **characteristic_uuid** (**Required**, UUID): UUID of the service's characteristic to query.
|
||||||
|
- **descriptor_uuid** (*Optional*, UUID): UUID of the characteristic's descriptor to query.
|
||||||
|
- **id** (*Optional*, :ref:`config-id`): The ID to use for code generation, and for reference by dependent components.
|
||||||
|
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for converting a raw data
|
||||||
|
reading to a sensor value. See :ref:`ble-sensor-lambda` for more information.
|
||||||
|
- **notify** (*Optional*, boolean): Instruct the server to send notifications for this
|
||||||
|
characteristic.
|
||||||
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to poll the device.
|
||||||
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
|
||||||
Automations:
|
Automations:
|
||||||
|
|
||||||
@ -64,6 +79,7 @@ variable ``x`` of type ``std::vector<uint8_t>``. The function must return a sing
|
|||||||
|
|
||||||
sensor:
|
sensor:
|
||||||
- platform: ble_client
|
- platform: ble_client
|
||||||
|
type: characteristic
|
||||||
ble_client_id: t_sensor
|
ble_client_id: t_sensor
|
||||||
name: "Temperature Sensor 32bit float"
|
name: "Temperature Sensor 32bit float"
|
||||||
...
|
...
|
||||||
|
@ -7,7 +7,7 @@ CSE7766 Power Sensor
|
|||||||
:keywords: cse7766, cse7759b, Sonoff Pow R2
|
:keywords: cse7766, cse7759b, Sonoff Pow R2
|
||||||
|
|
||||||
The ``cse7766`` sensor platform allows you to use your CSE7766 voltage/current and power sensors
|
The ``cse7766`` sensor platform allows you to use your CSE7766 voltage/current and power sensors
|
||||||
(`datasheet <http://dl.itead.cc/S31/CSE7766.pdf>`__) sensors with
|
(`datasheet <https://itead.cc/wp-content/uploads/2022/05/CSE7766.pdf>`__) sensors with
|
||||||
ESPHome. This sensor is commonly found in Sonoff POW R2. CSE7759B is similar to CSE7766
|
ESPHome. This sensor is commonly found in Sonoff POW R2. CSE7759B is similar to CSE7766
|
||||||
and works with this integration.
|
and works with this integration.
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ SGP40 Volatile Organic Compound Sensor and SGP41 VOC and NOx Sensor
|
|||||||
:image: sgp40.jpg
|
:image: sgp40.jpg
|
||||||
|
|
||||||
The ``sgp4x`` sensor platform allows you to use your Sensirion SGP40
|
The ``sgp4x`` sensor platform allows you to use your Sensirion SGP40
|
||||||
(`datasheet <https://www.sensirion.com/fileadmin/user_upload/customers/sensirion/Dokumente/9_Gas_Sensors/Sensirion_Gas_Sensors_SGP40_Datasheet.pdf>`__) or SGP41
|
(`datasheet <https://sensirion.com/media/documents/296373BB/6203C5DF/Sensirion_Gas_Sensors_Datasheet_SGP40.pdf>`__) or SGP41
|
||||||
(`datasheet <https://sensirion.com/media/documents/5FE8673C/61E96F50/Sensirion_Gas_Sensors_Datasheet_SGP41.pdf>`__) with ESPHome.
|
(`datasheet <https://sensirion.com/media/documents/5FE8673C/61E96F50/Sensirion_Gas_Sensors_Datasheet_SGP41.pdf>`__) with ESPHome.
|
||||||
The type of sensor used is automatically detected.
|
The type of sensor used is automatically detected.
|
||||||
The :ref:`I²C Bus <i2c>` is required to be set up in your configuration for this sensor to work.
|
The :ref:`I²C Bus <i2c>` is required to be set up in your configuration for this sensor to work.
|
||||||
@ -41,7 +41,7 @@ Configuration variables:
|
|||||||
|
|
||||||
- **name** (**Required**, string): The name of the sensor.
|
- **name** (**Required**, string): The name of the sensor.
|
||||||
- **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.
|
||||||
- **algorithm_tuning** (*Optional*): The VOC algorithm can be customized by tuning 6 different parameters. For more details see `Engineering Guidelines for SEN5x <https://sensirion.com/media/documents/25AB572C/61E961EA/Sensirion_Engineering_Guidelines_SEN5x.pdf>`__
|
- **algorithm_tuning** (*Optional*): The VOC algorithm can be customized by tuning 6 different parameters. For more details see `Engineering Guidelines for SEN5x <https://sensirion.com/media/documents/25AB572C/62B463AA/Sensirion_Engineering_Guidelines_SEN5x.pdf>`__
|
||||||
|
|
||||||
- **index_offset** (*Optional*): VOC index representing typical (average) conditions. Allowed values are in range 1..250. The default value is 100.
|
- **index_offset** (*Optional*): VOC index representing typical (average) conditions. Allowed values are in range 1..250. The default value is 100.
|
||||||
- **learning_time_offset_hours** (*Optional*): Time constant to estimate the VOC algorithm offset from the history in hours. Past events will be forgotten after about twice the learning time. Allowed values are in range 1..1000. The default value is 12 hour
|
- **learning_time_offset_hours** (*Optional*): Time constant to estimate the VOC algorithm offset from the history in hours. Past events will be forgotten after about twice the learning time. Allowed values are in range 1..1000. The default value is 12 hour
|
||||||
@ -57,7 +57,7 @@ Configuration variables:
|
|||||||
|
|
||||||
- **name** (**Required**, string): The name of the sensor.
|
- **name** (**Required**, string): The name of the sensor.
|
||||||
- **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.
|
||||||
- **algorithm_tuning** (*Optional*): The NOx algorithm can be customized by tuning 5 different parameters.For more details see `Engineering Guidelines for SEN5x <https://sensirion.com/media/documents/25AB572C/61E961EA/Sensirion_Engineering_Guidelines_SEN5x.pdf>`__
|
- **algorithm_tuning** (*Optional*): The NOx algorithm can be customized by tuning 5 different parameters.For more details see `Engineering Guidelines for SEN5x <https://sensirion.com/media/documents/25AB572C/62B463AA/Sensirion_Engineering_Guidelines_SEN5x.pdf>`__
|
||||||
|
|
||||||
- **index_offset** (*Optional*): NOx index representing typical (average) conditions. Allowed values are in range 1..250. The default value is 100.
|
- **index_offset** (*Optional*): NOx index representing typical (average) conditions. Allowed values are in range 1..250. The default value is 100.
|
||||||
- **learning_time_offset_hours** (*Optional*): Time constant to estimate the NOx algorithm offset from the history in hours. Past events will be forgotten after about twice the learning time. Allowed values are in range 1..1000. The default value is 12 hour
|
- **learning_time_offset_hours** (*Optional*): Time constant to estimate the NOx algorithm offset from the history in hours. Past events will be forgotten after about twice the learning time. Allowed values are in range 1..1000. The default value is 12 hour
|
||||||
|
@ -107,10 +107,13 @@ In teleinfo platform:
|
|||||||
- **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`UART Component <uart>` if you want
|
- **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`UART Component <uart>` if you want
|
||||||
to use multiple UART buses.
|
to use multiple UART buses.
|
||||||
|
|
||||||
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation or multiple hubs.
|
||||||
|
|
||||||
Sensor
|
Sensor
|
||||||
******
|
******
|
||||||
|
|
||||||
- **tag_name** (**Required**, string): Specify the tag you want to retrieve from the Teleinformation.
|
- **tag_name** (**Required**, string): Specify the tag you want to retrieve from the Teleinformation.
|
||||||
|
- **teleinfo_id** (*Optional*, :ref:`config-id`): Specify the ID of used hub.
|
||||||
- **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>`.
|
||||||
|
|
||||||
@ -118,6 +121,7 @@ Text Sensor
|
|||||||
***********
|
***********
|
||||||
|
|
||||||
- **tag_name** (**Required**, string): Specify the tag you want to retrieve from the Teleinformation.
|
- **tag_name** (**Required**, string): Specify the tag you want to retrieve from the Teleinformation.
|
||||||
|
- **teleinfo_id** (*Optional*, :ref:`config-id`): Specify the ID of used hub.
|
||||||
- **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:`Text Sensor <config-text_sensor>`.
|
- All other options from :ref:`Text Sensor <config-text_sensor>`.
|
||||||
|
|
||||||
|
@ -7,10 +7,10 @@ uFire Isolated EC sensor
|
|||||||
:keywords: ufire ec sensor temperature esphome
|
:keywords: ufire ec sensor temperature esphome
|
||||||
|
|
||||||
The ``ufire_ec`` sensor platform allows you to use your uFire Isolated EC sensor
|
The ``ufire_ec`` sensor platform allows you to use your uFire Isolated EC sensor
|
||||||
with ESPHome. The :ref:`I²C Bus <i2c>` is
|
with ESPHome. The :ref:`I²C Bus <i2c>` is required to be set up in your
|
||||||
required to be set up in your configuration for this sensor to work.
|
configuration for this sensor to work. It requires also to have a temperature
|
||||||
It required also to have an temperature sensor in the liquit tank; this can
|
sensor in the liquid tank; this can be on the same board or an external sensor
|
||||||
be on the same board or external sensor linked to the uFire EC configuration.
|
linked to the uFire EC configuration.
|
||||||
|
|
||||||
.. figure:: images/ufire_ec.png
|
.. figure:: images/ufire_ec.png
|
||||||
:align: center
|
:align: center
|
||||||
|
@ -92,7 +92,7 @@ Configuration example:
|
|||||||
LYWSDCGQ
|
LYWSDCGQ
|
||||||
********
|
********
|
||||||
|
|
||||||
Hygro thermometer, round body, segment LCD, broadcasts temperature, humidity and battery level.
|
Hygro thermometer, round body, segment LCD, broadcasts temperature, humidity and battery level. This device is also known as MJ_HT_V1. In HA's native Xiaomi BLE integration, the device info page shows it as "MJ_HT_V1 (LYWSDCGQ by Xiaomi)".
|
||||||
|
|
||||||
.. figure:: images/xiaomi_lywsdcgq.jpg
|
.. figure:: images/xiaomi_lywsdcgq.jpg
|
||||||
:align: center
|
:align: center
|
||||||
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
@ -80,7 +80,7 @@ See Also
|
|||||||
- :ref:`Binary Sensor Filters <binary_sensor-filters>`
|
- :ref:`Binary Sensor Filters <binary_sensor-filters>`
|
||||||
- :doc:`Inkplate 6 Plus </components/display/inkplate6>`
|
- :doc:`Inkplate 6 Plus </components/display/inkplate6>`
|
||||||
- :doc:`EKTF2232 </components/touchscreen/ektf2232>`
|
- :doc:`EKTF2232 </components/touchscreen/ektf2232>`
|
||||||
- :doc:`XPT2046 </components/binary_sensor/xpt2046>`
|
- :doc:`XPT2046 </components/touchscreen/xpt2046>`
|
||||||
- :apiref:`touchscreen/touchscreen.h`
|
- :apiref:`touchscreen/touchscreen.h`
|
||||||
- :apiref:`touchscreen/binary_sensor/touchscreen_binary_sensor.h`
|
- :apiref:`touchscreen/binary_sensor/touchscreen_binary_sensor.h`
|
||||||
- :ghedit:`Edit`
|
- :ghedit:`Edit`
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
XPT2046 Touch Screen Controller
|
XPT2046 Touch Screen Controller (Updated version)
|
||||||
==================================
|
==================================================
|
||||||
|
|
||||||
.. seo::
|
.. seo::
|
||||||
:description: Instructions for setting up XPT2046 touch screen controller with ESPHome
|
:description: Instructions for setting up XPT2046 touch screen controller with ESPHome
|
||||||
@ -8,10 +8,7 @@ XPT2046 Touch Screen Controller
|
|||||||
|
|
||||||
.. _xpt2046-component:
|
.. _xpt2046-component:
|
||||||
|
|
||||||
Component/Hub
|
The ``xpt2046`` touchscreen platform allows using the touch screen controllers
|
||||||
-------------
|
|
||||||
|
|
||||||
The ``xpt2046`` component allows using the touch screen controllers
|
|
||||||
based on the XPT2046 chip
|
based on the XPT2046 chip
|
||||||
(`datasheet <https://datasheetspdf.com/pdf-file/746665/XPTEK/XPT2046/1>`__,
|
(`datasheet <https://datasheetspdf.com/pdf-file/746665/XPTEK/XPT2046/1>`__,
|
||||||
`AZ-Delivery`_) with ESPHome. Many cheap LCD displays contain this controller.
|
`AZ-Delivery`_) with ESPHome. Many cheap LCD displays contain this controller.
|
||||||
@ -28,32 +25,20 @@ The :ref:`SPI <spi>` is required to be set up in your configuration for this sen
|
|||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
# Example configuration entry
|
# Example configuration entry
|
||||||
xpt2046:
|
touchscreen:
|
||||||
|
platform: xpt2046
|
||||||
id: touchscreen
|
id: touchscreen
|
||||||
cs_pin: 17
|
cs_pin: 17
|
||||||
irq_pin: 16
|
interupt_pin: 16
|
||||||
update_interval: 50ms
|
update_interval: 50ms
|
||||||
report_interval: 1s
|
report_interval: 1s
|
||||||
threshold: 400
|
threshold: 400
|
||||||
dimension_x: 240
|
|
||||||
dimension_y: 320
|
|
||||||
calibration_x_min: 3860
|
calibration_x_min: 3860
|
||||||
calibration_x_max: 280
|
calibration_x_max: 280
|
||||||
calibration_y_min: 340
|
calibration_y_min: 340
|
||||||
calibration_y_max: 3860
|
calibration_y_max: 3860
|
||||||
swap_x_y: false
|
swap_x_y: false
|
||||||
|
|
||||||
binary_sensor:
|
|
||||||
- platform: xpt2046
|
|
||||||
xpt2046_id: touchscreen
|
|
||||||
id: touch_key0
|
|
||||||
x_min: 80
|
|
||||||
x_max: 160
|
|
||||||
y_min: 106
|
|
||||||
y_max: 212
|
|
||||||
on_state:
|
|
||||||
- lambda: 'ESP_LOGI("main", "key0: %s", (x ? "touch" : "release"));'
|
|
||||||
|
|
||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
------------------------
|
------------------------
|
||||||
@ -66,12 +51,12 @@ Base Configuration:
|
|||||||
- **cs_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The chip select pin.
|
- **cs_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The chip select pin.
|
||||||
Often marked ``T_CS`` on the board.
|
Often marked ``T_CS`` on the board.
|
||||||
|
|
||||||
- **irq_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The touch detection pin.
|
- **interupt_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The touch detection pin.
|
||||||
Often marked ``T_IRQ`` on the board. If not specified the component will use polling
|
Often marked ``T_IRQ`` on the board. If not specified the component will use polling
|
||||||
via SPI.
|
via SPI. This key is renamed from **irq_pin**
|
||||||
|
|
||||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
|
||||||
sensor. If ``irq_pin`` is specified the touch will be detected nearly instantaneously and this setting
|
sensor. If ``interupt_pin`` is specified the touch will be detected nearly instantaneously and this setting
|
||||||
will be used only for the release detection. Defaults to ``50ms``.
|
will be used only for the release detection. Defaults to ``50ms``.
|
||||||
|
|
||||||
- **report_interval** (*Optional*, :ref:`config-time`): The interval to periodically
|
- **report_interval** (*Optional*, :ref:`config-time`): The interval to periodically
|
||||||
@ -79,12 +64,6 @@ Base Configuration:
|
|||||||
|
|
||||||
- **threshold** (*Optional*, int): The value to detect the touch or release. Defaults to ``400``.
|
- **threshold** (*Optional*, int): The value to detect the touch or release. Defaults to ``400``.
|
||||||
|
|
||||||
- **dimension_x** (*Optional*, int): The dimension of the display in the horizontal
|
|
||||||
direction. Usually in pixels but a percentage can be useful as well. Defaults to ``100``.
|
|
||||||
|
|
||||||
- **dimension_y** (*Optional*, int): The dimension of the display in the vertical
|
|
||||||
direction. Usually in pixels but a percentage can be useful as well. Defaults to ``100``.
|
|
||||||
|
|
||||||
- **calibration_x_min** (*Optional*, int): The raw value corresponding to the left
|
- **calibration_x_min** (*Optional*, int): The raw value corresponding to the left
|
||||||
(or top if ``swap_x_y`` is specified) edge of the display. See :ref:`xpt2046-calibration`
|
(or top if ``swap_x_y`` is specified) edge of the display. See :ref:`xpt2046-calibration`
|
||||||
for the process to calibrate the touch screen. Defaults to ``0``.
|
for the process to calibrate the touch screen. Defaults to ``0``.
|
||||||
@ -100,65 +79,8 @@ Base Configuration:
|
|||||||
|
|
||||||
- **swap_x_y** (*Optional*, boolean): If true the x and y axes are swapped. Defaults to ``false``.
|
- **swap_x_y** (*Optional*, boolean): If true the x and y axes are swapped. Defaults to ``false``.
|
||||||
|
|
||||||
- **on_state** (*Optional*, :ref:`Automation <automation>`): An automation to perform
|
- All other options from :ref:`config-touchscreen`.
|
||||||
when the touch screen is pressed or released. See :ref:`xpt2046-on_state`.
|
|
||||||
|
|
||||||
.. _xpt2046-on_state:
|
|
||||||
|
|
||||||
``on_state`` Action
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
This automation will be triggered when the XPT2046 touch screen detects a touch, a release
|
|
||||||
or periodically each ``report_interval`` while touched.
|
|
||||||
|
|
||||||
This trigger provides three arguments: ``x`` and ``y`` are of the type int and specify the
|
|
||||||
coordinates of the touch and a bool ``touched`` specifying whether a touch or release was
|
|
||||||
detected.
|
|
||||||
|
|
||||||
Additionally to the coordinates, the touch status and the raw values needed for the calibration
|
|
||||||
can be accessed as member variables.
|
|
||||||
|
|
||||||
The following code
|
|
||||||
|
|
||||||
.. code-block:: yaml
|
|
||||||
|
|
||||||
xpt2046:
|
|
||||||
on_state:
|
|
||||||
- lambda: |-
|
|
||||||
ESP_LOGI("main", "args x=%d, y=%d, touched=%s", x, y, (touched ? "touch" : "release"));
|
|
||||||
ESP_LOGI("main", "member x=%d, y=%d, touched=%d, x_raw=%d, y_raw=%d, z_raw=%d",
|
|
||||||
id(touchscreen).x,
|
|
||||||
id(touchscreen).y,
|
|
||||||
(int) id(touchscreen).touched,
|
|
||||||
id(touchscreen).x_raw,
|
|
||||||
id(touchscreen).y_raw,
|
|
||||||
id(touchscreen).z_raw
|
|
||||||
);
|
|
||||||
|
|
||||||
produces
|
|
||||||
|
|
||||||
.. code-block:: none
|
|
||||||
|
|
||||||
[20:17:37][I][main:065]: args x=145, y=261, touched=touch
|
|
||||||
[20:17:37][I][main:073]: member x=145, y=261, touched=1, x_raw=1686, y_raw=3218, z_raw=424
|
|
||||||
[20:17:37][I][main:065]: args x=145, y=261, touched=release
|
|
||||||
[20:17:37][I][main:073]: member x=145, y=261, touched=0, x_raw=0, y_raw=0, z_raw=0
|
|
||||||
|
|
||||||
Binary Sensor
|
|
||||||
-------------
|
|
||||||
|
|
||||||
The ``xpt2046`` binary sensor allows you to setup areas on the touch screen as virtual
|
|
||||||
buttons. First, setup a :ref:`xpt2046-component` and then use this binary sensor platform
|
|
||||||
to create individual binary sensors for each virtual button.
|
|
||||||
|
|
||||||
- **name** (*Optional*, string): The name for the binary sensor.
|
|
||||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
|
||||||
- **xpt2046_id** (*Optional*, :ref:`config-id`): Specify the ID of the component the sensor is part of. Useful when you have more than one touch screen.
|
|
||||||
- **x_min** (**Required**, int): Left coordinate of the screen area to be detected as the virtual button.
|
|
||||||
- **x_max** (**Required**, int): Right coordinate of the screen area to be detected as the virtual button.
|
|
||||||
- **y_min** (**Required**, int): Top coordinate of the screen area to be detected as the virtual button.
|
|
||||||
- **y_max** (**Required**, int): Bottom coordinate of the screen area to be detected as the virtual button.
|
|
||||||
- All other options from :ref:`Binary Sensor <config-binary_sensor>`.
|
|
||||||
|
|
||||||
.. _xpt2046-calibration:
|
.. _xpt2046-calibration:
|
||||||
|
|
||||||
@ -168,7 +90,7 @@ Calibration
|
|||||||
To match the point of the touch to the display coordinates the touch screen has to be calibrated.
|
To match the point of the touch to the display coordinates the touch screen has to be calibrated.
|
||||||
The XPT2046 component returns raw values in the 0 to 4095 range. Those raw values are available
|
The XPT2046 component returns raw values in the 0 to 4095 range. Those raw values are available
|
||||||
as the ``x_raw`` and ``y_raw`` member variables and for example write them out as in the example
|
as the ``x_raw`` and ``y_raw`` member variables and for example write them out as in the example
|
||||||
:ref:`xpt2046-on_state`. The goal of the calibration is to identify the raw values corresponding
|
:ref:`touchscreen-on_touch`. The goal of the calibration is to identify the raw values corresponding
|
||||||
to the edges of the screen.
|
to the edges of the screen.
|
||||||
|
|
||||||
The calibration assumes a display oriented in a way that you will be using it, i.e. your
|
The calibration assumes a display oriented in a way that you will be using it, i.e. your
|
||||||
@ -179,16 +101,13 @@ values nor ``swap_x_y``.
|
|||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
# Touchscreen
|
# Touchscreen
|
||||||
xpt2046:
|
touchscreen:
|
||||||
|
platform: xpt2046
|
||||||
id: touchscreen
|
id: touchscreen
|
||||||
cs_pin: 17
|
cs_pin: 17
|
||||||
irq_pin: 16
|
on_touch:
|
||||||
dimension_x: 240
|
|
||||||
dimension_y: 320
|
|
||||||
on_state:
|
|
||||||
- lambda: |-
|
- lambda: |-
|
||||||
if (touched)
|
ESP_LOGI("cal", "x=%d, y=%d, x_raw=%d, y_raw=%0d",
|
||||||
ESP_LOGI("cal", "x=%d, y=%d, x_raw=%d, y_raw=%d",
|
|
||||||
id(touchscreen).x,
|
id(touchscreen).x,
|
||||||
id(touchscreen).y,
|
id(touchscreen).y,
|
||||||
id(touchscreen).x_raw,
|
id(touchscreen).x_raw,
|
||||||
@ -230,7 +149,8 @@ The vertical direction is fine. The configuration would thus be
|
|||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
xpt2046:
|
touchscreen:
|
||||||
|
platform: xpt2046
|
||||||
calibration_x_min: 3848
|
calibration_x_min: 3848
|
||||||
calibration_x_max: 281
|
calibration_x_max: 281
|
||||||
calibration_y_min: 347
|
calibration_y_min: 347
|
||||||
@ -250,7 +170,7 @@ Note that the touch screen is not extremely precise and there might be nonlinear
|
|||||||
or similar errors so don't expect a pixel-perfect precision. You can verify the touchpoint
|
or similar errors so don't expect a pixel-perfect precision. You can verify the touchpoint
|
||||||
using a display lambda similar to the following.
|
using a display lambda similar to the following.
|
||||||
|
|
||||||
.. code-block:: none
|
.. code-block:: yaml
|
||||||
|
|
||||||
display:
|
display:
|
||||||
- platform: ili9341
|
- platform: ili9341
|
7
conf.py
7
conf.py
@ -39,7 +39,8 @@ sys.path.append(os.path.abspath("."))
|
|||||||
extensions = [
|
extensions = [
|
||||||
"github",
|
"github",
|
||||||
"seo",
|
"seo",
|
||||||
"sitemap",
|
"components",
|
||||||
|
"sitemap"
|
||||||
]
|
]
|
||||||
|
|
||||||
# Add any paths that contain templates here, relative to this directory.
|
# Add any paths that contain templates here, relative to this directory.
|
||||||
@ -66,9 +67,9 @@ author = "ESPHome"
|
|||||||
# built documents.
|
# built documents.
|
||||||
#
|
#
|
||||||
# The short X.Y version.
|
# The short X.Y version.
|
||||||
version = "2022.9"
|
version = "2022.10"
|
||||||
# The full version, including alpha/beta/rc tags.
|
# The full version, including alpha/beta/rc tags.
|
||||||
release = "2022.9.2"
|
release = "2022.10.0"
|
||||||
|
|
||||||
# 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.
|
||||||
|
@ -55,6 +55,7 @@ Configuration example:
|
|||||||
# a notification is received, the corresponding binary_sensor
|
# a notification is received, the corresponding binary_sensor
|
||||||
# is briefly toggled.
|
# is briefly toggled.
|
||||||
- platform: ble_client
|
- platform: ble_client
|
||||||
|
type: characteristic
|
||||||
ble_client_id: itag_black
|
ble_client_id: itag_black
|
||||||
name: "Black iTag btn"
|
name: "Black iTag btn"
|
||||||
service_uuid: 'ffe0'
|
service_uuid: 'ffe0'
|
||||||
@ -73,12 +74,18 @@ Configuration example:
|
|||||||
# support this characteristic, you will see 'Unknown' in the
|
# support this characteristic, you will see 'Unknown' in the
|
||||||
# HA frontend.
|
# HA frontend.
|
||||||
- platform: ble_client
|
- platform: ble_client
|
||||||
|
type: characteristic
|
||||||
ble_client_id: itag_black
|
ble_client_id: itag_black
|
||||||
name: "Black iTag Battery"
|
name: "Black iTag Battery"
|
||||||
service_uuid: '180f'
|
service_uuid: '180f'
|
||||||
characteristic_uuid: '2a19'
|
characteristic_uuid: '2a19'
|
||||||
icon: 'mdi:battery'
|
icon: 'mdi:battery'
|
||||||
unit_of_measurement: '%'
|
unit_of_measurement: '%'
|
||||||
|
# This entry queries polls the RSSI when the tag is connected.
|
||||||
|
- platform: ble_client
|
||||||
|
type: rssi
|
||||||
|
ble_client_id: itag_black
|
||||||
|
name: "Black iTag RSSI"
|
||||||
|
|
||||||
Explanation
|
Explanation
|
||||||
-----------
|
-----------
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
Cookbook
|
Devices
|
||||||
========
|
========
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
|
@ -274,7 +274,7 @@ global variables can be used to store the state of a garage door.
|
|||||||
- id: my_global_string
|
- id: my_global_string
|
||||||
type: std::string
|
type: std::string
|
||||||
restore_value: no # Strings cannot be saved/restored
|
restore_value: no # Strings cannot be saved/restored
|
||||||
initial_value: '"hello world"'
|
initial_value: '"Global value is"'
|
||||||
|
|
||||||
# In an automation
|
# In an automation
|
||||||
on_press:
|
on_press:
|
||||||
@ -287,7 +287,7 @@ global variables can be used to store the state of a garage door.
|
|||||||
id(my_global_int) += 10;
|
id(my_global_int) += 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
ESP_LOGD(TAG, "Global value is: %d", id(my_global_int));
|
ESP_LOGD(TAG, "%s: %d", id(my_global_string), id(my_global_int));
|
||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
|
|
||||||
|
@ -129,7 +129,6 @@ Contributors
|
|||||||
- `Mauricio Bonani (@bonanitech) <https://github.com/bonanitech>`__
|
- `Mauricio Bonani (@bonanitech) <https://github.com/bonanitech>`__
|
||||||
- `Casey Olson (@bookcasey) <https://github.com/bookcasey>`__
|
- `Casey Olson (@bookcasey) <https://github.com/bookcasey>`__
|
||||||
- `BoukeHaarsma23 (@BoukeHaarsma23) <https://github.com/BoukeHaarsma23>`__
|
- `BoukeHaarsma23 (@BoukeHaarsma23) <https://github.com/BoukeHaarsma23>`__
|
||||||
- `Patrik Hermansson (@bphermansson) <https://github.com/bphermansson>`__
|
|
||||||
- `brambo123 (@brambo123) <https://github.com/brambo123>`__
|
- `brambo123 (@brambo123) <https://github.com/brambo123>`__
|
||||||
- `Bram Kragten (@bramkragten) <https://github.com/bramkragten>`__
|
- `Bram Kragten (@bramkragten) <https://github.com/bramkragten>`__
|
||||||
- `Brad Davidson (@brandond) <https://github.com/brandond>`__
|
- `Brad Davidson (@brandond) <https://github.com/brandond>`__
|
||||||
@ -153,6 +152,7 @@ Contributors
|
|||||||
- `Ciprian Constantinescu (@cciprian5) <https://github.com/cciprian5>`__
|
- `Ciprian Constantinescu (@cciprian5) <https://github.com/cciprian5>`__
|
||||||
- `Marco (@cdrfun) <https://github.com/cdrfun>`__
|
- `Marco (@cdrfun) <https://github.com/cdrfun>`__
|
||||||
- `Cellie (@CelliesProjects) <https://github.com/CelliesProjects>`__
|
- `Cellie (@CelliesProjects) <https://github.com/CelliesProjects>`__
|
||||||
|
- `Chris Feenstra (@cfeenstra1024) <https://github.com/cfeenstra1024>`__
|
||||||
- `Kostas Chatzikokolakis (@chatziko) <https://github.com/chatziko>`__
|
- `Kostas Chatzikokolakis (@chatziko) <https://github.com/chatziko>`__
|
||||||
- `chris-jennings (@chris-jennings) <https://github.com/chris-jennings>`__
|
- `chris-jennings (@chris-jennings) <https://github.com/chris-jennings>`__
|
||||||
- `Chris (@chrismaki) <https://github.com/chrismaki>`__
|
- `Chris (@chrismaki) <https://github.com/chrismaki>`__
|
||||||
@ -211,6 +211,7 @@ Contributors
|
|||||||
- `Donovan Baarda (@dbaarda) <https://github.com/dbaarda>`__
|
- `Donovan Baarda (@dbaarda) <https://github.com/dbaarda>`__
|
||||||
- `David Buezas (@dbuezas) <https://github.com/dbuezas>`__
|
- `David Buezas (@dbuezas) <https://github.com/dbuezas>`__
|
||||||
- `dckiller51 (@dckiller51) <https://github.com/dckiller51>`__
|
- `dckiller51 (@dckiller51) <https://github.com/dckiller51>`__
|
||||||
|
- `Daniel Correa Lobato (@dclobato) <https://github.com/dclobato>`__
|
||||||
- `Debashish Sahu (@debsahu) <https://github.com/debsahu>`__
|
- `Debashish Sahu (@debsahu) <https://github.com/debsahu>`__
|
||||||
- `declanshanaghy (@declanshanaghy) <https://github.com/declanshanaghy>`__
|
- `declanshanaghy (@declanshanaghy) <https://github.com/declanshanaghy>`__
|
||||||
- `definitio (@definitio) <https://github.com/definitio>`__
|
- `definitio (@definitio) <https://github.com/definitio>`__
|
||||||
@ -298,6 +299,7 @@ Contributors
|
|||||||
- `Christian Ferbar (@ferbar) <https://github.com/ferbar>`__
|
- `Christian Ferbar (@ferbar) <https://github.com/ferbar>`__
|
||||||
- `FeuerSturm (@FeuerSturm) <https://github.com/FeuerSturm>`__
|
- `FeuerSturm (@FeuerSturm) <https://github.com/FeuerSturm>`__
|
||||||
- `Frank Riley (@fhriley) <https://github.com/fhriley>`__
|
- `Frank Riley (@fhriley) <https://github.com/fhriley>`__
|
||||||
|
- `Frédéric Jouault (@fjouault) <https://github.com/fjouault>`__
|
||||||
- `fkirill (@fkirill) <https://github.com/fkirill>`__
|
- `fkirill (@fkirill) <https://github.com/fkirill>`__
|
||||||
- `Sean Vig (@flacjacket) <https://github.com/flacjacket>`__
|
- `Sean Vig (@flacjacket) <https://github.com/flacjacket>`__
|
||||||
- `Diego Elio Pettenò (@Flameeyes) <https://github.com/Flameeyes>`__
|
- `Diego Elio Pettenò (@Flameeyes) <https://github.com/Flameeyes>`__
|
||||||
@ -400,6 +402,7 @@ Contributors
|
|||||||
- `James Braid (@jamesbraid) <https://github.com/jamesbraid>`__
|
- `James Braid (@jamesbraid) <https://github.com/jamesbraid>`__
|
||||||
- `James Duke (@jamesduke) <https://github.com/jamesduke>`__
|
- `James Duke (@jamesduke) <https://github.com/jamesduke>`__
|
||||||
- `James Gao (@jamesgao) <https://github.com/jamesgao>`__
|
- `James Gao (@jamesgao) <https://github.com/jamesgao>`__
|
||||||
|
- `James Lakin (@jamesorlakin) <https://github.com/jamesorlakin>`__
|
||||||
- `Juraj Andrássy (@JAndrassy) <https://github.com/JAndrassy>`__
|
- `Juraj Andrássy (@JAndrassy) <https://github.com/JAndrassy>`__
|
||||||
- `Jan Grewe (@jangrewe) <https://github.com/jangrewe>`__
|
- `Jan Grewe (@jangrewe) <https://github.com/jangrewe>`__
|
||||||
- `János Rusiczki (@janosrusiczki) <https://github.com/janosrusiczki>`__
|
- `János Rusiczki (@janosrusiczki) <https://github.com/janosrusiczki>`__
|
||||||
@ -453,7 +456,6 @@ Contributors
|
|||||||
- `Javier Peletier (@jpeletier) <https://github.com/jpeletier>`__
|
- `Javier Peletier (@jpeletier) <https://github.com/jpeletier>`__
|
||||||
- `jsuanet (@jsuanet) <https://github.com/jsuanet>`__
|
- `jsuanet (@jsuanet) <https://github.com/jsuanet>`__
|
||||||
- `James Szalay (@jtszalay) <https://github.com/jtszalay>`__
|
- `James Szalay (@jtszalay) <https://github.com/jtszalay>`__
|
||||||
- `junnikokuki (@junnikokuki) <https://github.com/junnikokuki>`__
|
|
||||||
- `Justahobby01 (@Justahobby01) <https://github.com/Justahobby01>`__
|
- `Justahobby01 (@Justahobby01) <https://github.com/Justahobby01>`__
|
||||||
- `Mike Ryan (@justfalter) <https://github.com/justfalter>`__
|
- `Mike Ryan (@justfalter) <https://github.com/justfalter>`__
|
||||||
- `Justin Gerhardt (@justin-gerhardt) <https://github.com/justin-gerhardt>`__
|
- `Justin Gerhardt (@justin-gerhardt) <https://github.com/justin-gerhardt>`__
|
||||||
@ -465,7 +467,6 @@ Contributors
|
|||||||
- `Kris (@K-r-i-s-t-i-a-n) <https://github.com/K-r-i-s-t-i-a-n>`__
|
- `Kris (@K-r-i-s-t-i-a-n) <https://github.com/K-r-i-s-t-i-a-n>`__
|
||||||
- `Harald Nagel (@k7hpn) <https://github.com/k7hpn>`__
|
- `Harald Nagel (@k7hpn) <https://github.com/k7hpn>`__
|
||||||
- `kaegi (@kaegi) <https://github.com/kaegi>`__
|
- `kaegi (@kaegi) <https://github.com/kaegi>`__
|
||||||
- `kahrendt (@kahrendt) <https://github.com/kahrendt>`__
|
|
||||||
- `Karol Zlot (@karolzlot) <https://github.com/karolzlot>`__
|
- `Karol Zlot (@karolzlot) <https://github.com/karolzlot>`__
|
||||||
- `Kattni (@kattni) <https://github.com/kattni>`__
|
- `Kattni (@kattni) <https://github.com/kattni>`__
|
||||||
- `Krasimir Nedelchev (@kaykayehnn) <https://github.com/kaykayehnn>`__
|
- `Krasimir Nedelchev (@kaykayehnn) <https://github.com/kaykayehnn>`__
|
||||||
@ -484,10 +485,8 @@ Contributors
|
|||||||
- `Kevin Lewis (@kll) <https://github.com/kll>`__
|
- `Kevin Lewis (@kll) <https://github.com/kll>`__
|
||||||
- `Koen Vervloesem (@koenvervloesem) <https://github.com/koenvervloesem>`__
|
- `Koen Vervloesem (@koenvervloesem) <https://github.com/koenvervloesem>`__
|
||||||
- `Petr Vraník (@konikvranik) <https://github.com/konikvranik>`__
|
- `Petr Vraník (@konikvranik) <https://github.com/konikvranik>`__
|
||||||
- `korellas (@korellas) <https://github.com/korellas>`__
|
|
||||||
- `Kevin Pelzel (@kpelzel) <https://github.com/kpelzel>`__
|
- `Kevin Pelzel (@kpelzel) <https://github.com/kpelzel>`__
|
||||||
- `Karl Q. (@kquinsland) <https://github.com/kquinsland>`__
|
- `Karl Q. (@kquinsland) <https://github.com/kquinsland>`__
|
||||||
- `krahabb (@krahabb) <https://github.com/krahabb>`__
|
|
||||||
- `Kodey Converse (@krconv) <https://github.com/krconv>`__
|
- `Kodey Converse (@krconv) <https://github.com/krconv>`__
|
||||||
- `KristopherMackowiak (@KristopherMackowiak) <https://github.com/KristopherMackowiak>`__
|
- `KristopherMackowiak (@KristopherMackowiak) <https://github.com/KristopherMackowiak>`__
|
||||||
- `kroimon (@kroimon) <https://github.com/kroimon>`__
|
- `kroimon (@kroimon) <https://github.com/kroimon>`__
|
||||||
@ -578,6 +577,7 @@ 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>`__
|
||||||
|
- `Michael Haas (@mhaas) <https://github.com/mhaas>`__
|
||||||
- `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>`__
|
||||||
- `Midbin (@Midbin) <https://github.com/Midbin>`__
|
- `Midbin (@Midbin) <https://github.com/Midbin>`__
|
||||||
@ -698,6 +698,7 @@ Contributors
|
|||||||
- `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>`__
|
||||||
- `Tommy Jonsson (@quazzie) <https://github.com/quazzie>`__
|
- `Tommy Jonsson (@quazzie) <https://github.com/quazzie>`__
|
||||||
|
- `Quentin Smith (@quentinmit) <https://github.com/quentinmit>`__
|
||||||
- `Quinn Hosler (@quinnhosler) <https://github.com/quinnhosler>`__
|
- `Quinn Hosler (@quinnhosler) <https://github.com/quinnhosler>`__
|
||||||
- `Johannes Rebling (@r0oland) <https://github.com/r0oland>`__
|
- `Johannes Rebling (@r0oland) <https://github.com/r0oland>`__
|
||||||
- `Richard Kuhnt (@r15ch13) <https://github.com/r15ch13>`__
|
- `Richard Kuhnt (@r15ch13) <https://github.com/r15ch13>`__
|
||||||
@ -771,7 +772,6 @@ Contributors
|
|||||||
- `Spegs21 (@Spegs21) <https://github.com/Spegs21>`__
|
- `Spegs21 (@Spegs21) <https://github.com/Spegs21>`__
|
||||||
- `Stephan Peijnik-Steinwender (@speijnik) <https://github.com/speijnik>`__
|
- `Stephan Peijnik-Steinwender (@speijnik) <https://github.com/speijnik>`__
|
||||||
- `Eric Lind (@sperly) <https://github.com/sperly>`__
|
- `Eric Lind (@sperly) <https://github.com/sperly>`__
|
||||||
- `Paul Krischer (@SqyD) <https://github.com/SqyD>`__
|
|
||||||
- `Samuel Sieb (@ssieb) <https://github.com/ssieb>`__
|
- `Samuel Sieb (@ssieb) <https://github.com/ssieb>`__
|
||||||
- `Stefan Staub (@sstaub) <https://github.com/sstaub>`__
|
- `Stefan Staub (@sstaub) <https://github.com/sstaub>`__
|
||||||
- `St4n (@St4n) <https://github.com/St4n>`__
|
- `St4n (@St4n) <https://github.com/St4n>`__
|
||||||
@ -840,6 +840,7 @@ Contributors
|
|||||||
- `Gediminas Šaltenis (@trylika) <https://github.com/trylika>`__
|
- `Gediminas Šaltenis (@trylika) <https://github.com/trylika>`__
|
||||||
- `Tuan (@tuanpmt) <https://github.com/tuanpmt>`__
|
- `Tuan (@tuanpmt) <https://github.com/tuanpmt>`__
|
||||||
- `tubalainen (@tubalainen) <https://github.com/tubalainen>`__
|
- `tubalainen (@tubalainen) <https://github.com/tubalainen>`__
|
||||||
|
- `tube0013 (@tube0013) <https://github.com/tube0013>`__
|
||||||
- `Alexey Vlasov (@turbulator) <https://github.com/turbulator>`__
|
- `Alexey Vlasov (@turbulator) <https://github.com/turbulator>`__
|
||||||
- `Seppel Hardt (@tuxBurner) <https://github.com/tuxBurner>`__
|
- `Seppel Hardt (@tuxBurner) <https://github.com/tuxBurner>`__
|
||||||
- `TVDLoewe (@TVDLoewe) <https://github.com/TVDLoewe>`__
|
- `TVDLoewe (@TVDLoewe) <https://github.com/TVDLoewe>`__
|
||||||
@ -897,4 +898,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 29, 2022.*
|
*This page was last updated October 19, 2022.*
|
||||||
|
@ -13,7 +13,7 @@ from docutils import nodes
|
|||||||
|
|
||||||
# This file is not processed by default as extension unless added.
|
# This file is not processed by default as extension unless added.
|
||||||
# To add this extension from command line use:
|
# To add this extension from command line use:
|
||||||
# -Dextensions=github,seo,sitemap,schema_doc"
|
# -Dextensions=github,seo,sitemap,components,schema_doc"
|
||||||
|
|
||||||
# also for improve performance running old version
|
# also for improve performance running old version
|
||||||
# -d_build/.doctrees-schema
|
# -d_build/.doctrees-schema
|
||||||
|
Loading…
Reference in New Issue
Block a user