2
Doxygen
@ -38,7 +38,7 @@ PROJECT_NAME = "ESPHome"
|
||||
# could be handy for archiving the generated documentation or if some version
|
||||
# control system is used.
|
||||
|
||||
PROJECT_NUMBER = 2023.8.3
|
||||
PROJECT_NUMBER = 2023.9.0
|
||||
|
||||
# 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
|
||||
|
2
Makefile
@ -1,5 +1,5 @@
|
||||
ESPHOME_PATH = ../esphome
|
||||
ESPHOME_REF = 2023.8.3
|
||||
ESPHOME_REF = 2023.9.0
|
||||
|
||||
.PHONY: html html-strict cleanhtml deploy help live-html Makefile netlify netlify-api api netlify-dependencies svg2png copy-svg2png minify
|
||||
|
||||
|
BIN
_static/changelog-2023.9.0.png
Normal file
After Width: | Height: | Size: 63 KiB |
@ -1 +1 @@
|
||||
2023.8.3
|
||||
2023.9.0
|
237
changelog/2023.9.0.rst
Normal file
@ -0,0 +1,237 @@
|
||||
ESPHome 2023.9.0 - 27th September 2023
|
||||
======================================
|
||||
|
||||
.. seo::
|
||||
:description: Changelog for ESPHome 2023.9.0.
|
||||
:image: /_static/changelog-2023.9.0.png
|
||||
:author: Jesse Hills
|
||||
:author_twitter: @jesserockz
|
||||
|
||||
.. imgtable::
|
||||
:columns: 3
|
||||
|
||||
BK72xx, components/libretiny, bk72xx.svg
|
||||
RTL87xx, components/libretiny, rtl87xx.svg
|
||||
WireGuard, components/wireguard, wireguard_custom_logo.svg, dark-invert
|
||||
PMWCS3, components/sensor/pmwcs3, pmwcs3.jpg
|
||||
SEN0321, components/sensor/sen0321, sen0321.jpg
|
||||
LightWaveRF, components/light/lightwaverf, brightness-medium.svg, dark-invert
|
||||
BMI160, components/sensor/bmi160, bmi160.jpg
|
||||
SPI LED Strips, components/light/spi_led_strip, apa102.jpg
|
||||
|
||||
LibreTiny
|
||||
---------
|
||||
|
||||
:doc:`LibreTiny </components/libretiny>` is a platform for the RTL87xx and BK72xx family of chips. ESPHome leverages
|
||||
this platform and brings the powerful yet simple YAML configuration to these chips.
|
||||
|
||||
It has been months in the making, and many back and forwards with :ghuser:`kuba2k2`
|
||||
(and all of the contributors to LibreTiny), but we finally got there and merged it in.
|
||||
|
||||
.. |wireguard| unicode:: WireGuard 0xAE
|
||||
|
||||
Wireguard
|
||||
---------
|
||||
|
||||
:doc:`WireGuard </components/wireguard>` is a new component that allows you to connect to a |wireguard| Peer.
|
||||
|
||||
LED Strips
|
||||
----------
|
||||
|
||||
Following on from the previously added :doc:`/components/light/esp32_rmt_led_strip`, we now have
|
||||
:doc:`SPI LED Strips </components/light/spi_led_strip>`. These are replacement components for
|
||||
:doc:`/components/light/neopixelbus` and :doc:`/components/light/fastled` that
|
||||
do not rely on the Arduino framework.
|
||||
|
||||
Full list of changes
|
||||
--------------------
|
||||
|
||||
New Components
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
- Add pmwcs3 capacitive soil moisture & temperature sensor component :esphomepr:`4624` by :ghuser:`SeByDocKy` (new-integration)
|
||||
- Support for LibreTiny platform (RTL8710, BK7231 & other modules) :esphomepr:`3509` by :ghuser:`kuba2k2` (new-integration)
|
||||
- Adding DFRobot Ozone Sensor Support (sen0321) :esphomepr:`4782` by :ghuser:`notjj` (new-integration)
|
||||
- Integration LightwaveRF switches :esphomepr:`4812` by :ghuser:`max246` (new-integration)
|
||||
- Refactor SPI code; Add ESP-IDF hardware support :esphomepr:`5311` by :ghuser:`clydebarrow` (new-integration)
|
||||
- Add BMI160 support :esphomepr:`5143` by :ghuser:`flaviut` (new-integration)
|
||||
- Native SPI RGB LED component :esphomepr:`5288` by :ghuser:`clydebarrow` (new-integration)
|
||||
- Wireguard component :esphomepr:`4256` by :ghuser:`lhoracek` (new-integration)
|
||||
|
||||
Breaking Changes
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
- Synchronise Device Classes from Home Assistant :esphomepr:`5328` by :ghuser:`esphomebot` (breaking-change)
|
||||
- Use /data directory for .esphome folder when running as HA add-on :esphomepr:`5374` by :ghuser:`jesserockz` (breaking-change)
|
||||
|
||||
Beta Changes
|
||||
^^^^^^^^^^^^
|
||||
|
||||
- Add patch to apt install :esphomepr:`5389` by :ghuser:`synesthesiam`
|
||||
- Fix Waveshare 7.5v2 epaper screens are always powered on :esphomepr:`5283` by :ghuser:`phoenixswiss`
|
||||
- Update radon_eye_listener.cpp :esphomepr:`5401` by :ghuser:`rmmacias`
|
||||
- Add shelly-dimmer-stm32 51.7 to known versions :esphomepr:`5400` by :ghuser:`trvrnrth`
|
||||
- Add E-Trailer Gaslevel support to Mopeka Std Check :esphomepr:`5397` by :ghuser:`Phhere`
|
||||
- fix disabled wifi power on 8266 :esphomepr:`5409` by :ghuser:`ssieb`
|
||||
- fix handling of web server version :esphomepr:`5405` by :ghuser:`ssieb`
|
||||
- Climate preset fix :esphomepr:`5407` by :ghuser:`Jorre05`
|
||||
- Remove Wi-Fi dependency from Midea component :esphomepr:`5394` by :ghuser:`AnthonyMaiorani`
|
||||
- http_request: Cleanups and safety improvements :esphomepr:`5360` by :ghuser:`kpfleming`
|
||||
- Make the pulse meter timeout on startup when no pulses are received :esphomepr:`5388` by :ghuser:`TrentHouliston`
|
||||
- Wizard: fix colored text in input prompts :esphomepr:`5313` by :ghuser:`kuba2k2`
|
||||
- support keypads with pulldowns :esphomepr:`5404` by :ghuser:`ssieb`
|
||||
- Fix SPI inverted clock on ESP8266 :esphomepr:`5416` by :ghuser:`clydebarrow`
|
||||
- [RP2040W] Fix WiFi bootloop upon LibreTiny support :esphomepr:`5414` by :ghuser:`hostcc`
|
||||
- dallas: limit addresses to 64 bits :esphomepr:`5413` by :ghuser:`oddstr13`
|
||||
- Bump zeroconf from 0.108.0 to 0.112.0 :esphomepr:`5392` by :ghuser:`dependabot[bot]`
|
||||
- LibreTiny: enable MQTT, bump to v1.4.1 :esphomepr:`5419` by :ghuser:`kuba2k2`
|
||||
- Wireguard keepalive remove uint16 type :esphomepr:`5430` by :ghuser:`glmnet`
|
||||
- Fix #4896 and #4903 :esphomepr:`5433` by :ghuser:`clydebarrow`
|
||||
|
||||
All changes
|
||||
^^^^^^^^^^^
|
||||
|
||||
- Updated my username in Code Owners :esphomepr:`5247` by :ghuser:`mreditor97`
|
||||
- remote_base: change dumpers log level :esphomepr:`5253` by :ghuser:`dudanov`
|
||||
- Add `libfreetype-dev` Debian package for armv7 Docker builds :esphomepr:`5262` by :ghuser:`pierlon`
|
||||
- Add delay before enabling ipv6 :esphomepr:`5256` by :ghuser:`HeMan`
|
||||
- Bump zeroconf from 0.74.0 to 0.80.0 :esphomepr:`5260` by :ghuser:`dependabot[bot]`
|
||||
- Bump click from 8.1.6 to 8.1.7 :esphomepr:`5272` by :ghuser:`dependabot[bot]`
|
||||
- Remove support for ESP-IDF version < 4 :esphomepr:`5261` by :ghuser:`HeMan`
|
||||
- Add pmwcs3 capacitive soil moisture & temperature sensor component :esphomepr:`4624` by :ghuser:`SeByDocKy` (new-integration)
|
||||
- Add manufacturer data config to BLE server :esphomepr:`5251` by :ghuser:`clydebarrow`
|
||||
- Add support for ESP32-{S2,S3,C3} to debug component :esphomepr:`4731` by :ghuser:`jayme-github`
|
||||
- Support for ESP32-C2 & ESP32-C6 :esphomepr:`4377` by :ghuser:`vidplace7`
|
||||
- Bump arduino-heatpumpir to v1.0.23 :esphomepr:`5269` by :ghuser:`rob-deutsch`
|
||||
- Fix equality check when setting current-based cover position :esphomepr:`5167` by :ghuser:`kroimon`
|
||||
- Bump platformio from 6.1.9 to 6.1.10 :esphomepr:`5237` by :ghuser:`dependabot[bot]`
|
||||
- Add Invert method for SSD1306 :esphomepr:`5292` by :ghuser:`max246`
|
||||
- Update PSRAM config params for IDF4+ :esphomepr:`5298` by :ghuser:`kbx81`
|
||||
- Fix legacy zeroconf record update method :esphomepr:`5294` by :ghuser:`bdraco`
|
||||
- Bump zeroconf from 0.80.0 to 0.86.0 :esphomepr:`5308` by :ghuser:`dependabot[bot]`
|
||||
- Add PSRAM mode and speed config :esphomepr:`5312` by :ghuser:`kbx81`
|
||||
- Add extra SLPOUT for waking up some ST7789 chips :esphomepr:`5319` by :ghuser:`clydebarrow`
|
||||
- 7789 controller fixes take 2 :esphomepr:`5320` by :ghuser:`clydebarrow`
|
||||
- Bump Arduino Pico to 3.4.0 :esphomepr:`5321` by :ghuser:`HeMan`
|
||||
- Use gzip compression for the web server component's static resources :esphomepr:`5291` by :ghuser:`EternityForest`
|
||||
- Bump zeroconf from 0.86.0 to 0.88.0 :esphomepr:`5315` by :ghuser:`dependabot[bot]`
|
||||
- Adding heating coil and fan icons, enum device_class :esphomepr:`5325` by :ghuser:`barndawgie`
|
||||
- Add dashboard API to get firmware binaries :esphomepr:`4675` by :ghuser:`kuba2k2`
|
||||
- Make uart error message go away :esphomepr:`5329` by :ghuser:`clydebarrow`
|
||||
- add heating functionality to SI7021 :esphomepr:`4828` by :ghuser:`max246`
|
||||
- Bump esphome-dashboard to 20230904.0 :esphomepr:`5339` by :ghuser:`jesserockz`
|
||||
- Added Handling for Nack "file not found" :esphomepr:`5338` by :ghuser:`croessi`
|
||||
- Prepare api and time for ESP-IDF >= 5 :esphomepr:`5332` by :ghuser:`HeMan`
|
||||
- Tweak Improv serial to build in IDF 5 :esphomepr:`5331` by :ghuser:`kbx81`
|
||||
- Support for LibreTiny platform (RTL8710, BK7231 & other modules) :esphomepr:`3509` by :ghuser:`kuba2k2` (new-integration)
|
||||
- Extend ESP32 CAN bit rates /bus speed support :esphomepr:`5280` by :ghuser:`mkaiser`
|
||||
- Debug component: add free PSRAM sensor :esphomepr:`5334` by :ghuser:`kahrendt`
|
||||
- libretiny: fix uart_port framework config :esphomepr:`5343` by :ghuser:`jesserockz`
|
||||
- Bump actions/checkout from 3 to 4 :esphomepr:`5341` by :ghuser:`dependabot[bot]`
|
||||
- Add Lilygo T-Embed to st7789v display config. :esphomepr:`5337` by :ghuser:`clydebarrow`
|
||||
- Disable IPv6 when config explicitly says false :esphomepr:`5310` by :ghuser:`HeMan`
|
||||
- Add defines.h to ethernet_component.h for ENABLE_IPV6 :esphomepr:`5344` by :ghuser:`kbx81`
|
||||
- Synchronise Device Classes from Home Assistant :esphomepr:`5328` by :ghuser:`esphomebot` (breaking-change)
|
||||
- Bump pytest from 7.4.0 to 7.4.1 :esphomepr:`5342` by :ghuser:`dependabot[bot]`
|
||||
- Fixed default temperature step values for haier climate :esphomepr:`5330` by :ghuser:`paveldn`
|
||||
- Add debug component to all tests :esphomepr:`5333` by :ghuser:`HeMan`
|
||||
- Support MaxBotix XL in addition to HRXL :esphomepr:`4510` by :ghuser:`notjj`
|
||||
- Adding DFRobot Ozone Sensor Support (sen0321) :esphomepr:`4782` by :ghuser:`notjj` (new-integration)
|
||||
- mdns: bump IDF mdns component to 1.2.0 :esphomepr:`5217` by :ghuser:`stintel`
|
||||
- Integration LightwaveRF switches :esphomepr:`4812` by :ghuser:`max246` (new-integration)
|
||||
- Bump flake8 from 6.0.0 to 6.1.0 :esphomepr:`5171` by :ghuser:`dependabot[bot]`
|
||||
- Bump tornado from 6.3.2 to 6.3.3 :esphomepr:`5236` by :ghuser:`dependabot[bot]`
|
||||
- Bump platformio from 6.1.10 to 6.1.11 :esphomepr:`5323` by :ghuser:`dependabot[bot]`
|
||||
- Only run ci-docker when ci-docker workflow changes :esphomepr:`5347` by :ghuser:`jesserockz`
|
||||
- esp32: Extra build customization :esphomepr:`5322` by :ghuser:`jesserockz`
|
||||
- Allow upload command to flash file via serial :esphomepr:`5274` by :ghuser:`jesserockz`
|
||||
- Allow "--device SERIAL" on cli to flash only via serial :esphomepr:`5351` by :ghuser:`jesserockz`
|
||||
- Fix PN532 for IDF 5 and ultralight enhancements :esphomepr:`5352` by :ghuser:`kbx81`
|
||||
- Fix cpu_ll_get_cycle_count() deprecated warning :esphomepr:`5353` by :ghuser:`kbx81`
|
||||
- Refactor SPI code; Add ESP-IDF hardware support :esphomepr:`5311` by :ghuser:`clydebarrow` (new-integration)
|
||||
- Bump actions/cache from 3.3.1 to 3.3.2 :esphomepr:`5367` by :ghuser:`dependabot[bot]`
|
||||
- Bump zeroconf from 0.88.0 to 0.102.0 :esphomepr:`5368` by :ghuser:`dependabot[bot]`
|
||||
- Fix repeat.count = 0 case :esphomepr:`5364` by :ghuser:`Xmister`
|
||||
- Fix dashboard download for ESP32 variants :esphomepr:`5355` by :ghuser:`kuba2k2`
|
||||
- Bump pytest from 7.4.1 to 7.4.2 :esphomepr:`5357` by :ghuser:`dependabot[bot]`
|
||||
- [ADC] Support measuring VCC on Raspberry Pico (W) :esphomepr:`5335` by :ghuser:`hostcc`
|
||||
- Move CONF_PHASE_A/B/C constants to const.py. :esphomepr:`5304` by :ghuser:`kpfleming`
|
||||
- Add BMI160 support :esphomepr:`5143` by :ghuser:`flaviut` (new-integration)
|
||||
- Use black-pre-commit-mirror to speed up pre-commit runs. :esphomepr:`5372` by :ghuser:`kpfleming`
|
||||
- Native SPI RGB LED component :esphomepr:`5288` by :ghuser:`clydebarrow` (new-integration)
|
||||
- Wireguard component :esphomepr:`4256` by :ghuser:`lhoracek` (new-integration)
|
||||
- Bump LibreTiny version to 1.4.0 :esphomepr:`5375` by :ghuser:`kuba2k2`
|
||||
- time: Make std::string version of strftime() avoid runaway memory allocations :esphomepr:`5348` by :ghuser:`kpfleming`
|
||||
- Fix disabled wifi crash on boot :esphomepr:`5370` by :ghuser:`Xmister`
|
||||
- debug: add ESP32-C6 support :esphomepr:`5354` by :ghuser:`stintel`
|
||||
- Make string globals persist-able using fixed size allocations :esphomepr:`5296` by :ghuser:`EternityForest`
|
||||
- Use /data directory for .esphome folder when running as HA add-on :esphomepr:`5374` by :ghuser:`jesserockz` (breaking-change)
|
||||
- Bump zeroconf from 0.102.0 to 0.108.0 :esphomepr:`5376` by :ghuser:`dependabot[bot]`
|
||||
- Bump black from 23.7.0 to 23.9.1 :esphomepr:`5377` by :ghuser:`dependabot[bot]`
|
||||
- Attempt to fix rp2040 adc with vcc :esphomepr:`5378` by :ghuser:`jesserockz`
|
||||
- Enable IPv6 for ESP8266 and Raspberry pi pico w (RP2040) :esphomepr:`4759` by :ghuser:`HeMan`
|
||||
- Workflow updates :esphomepr:`5384` by :ghuser:`jesserockz`
|
||||
- Modbus Controller added some features :esphomepr:`5318` by :ghuser:`0x3333`
|
||||
- Force heater off on setup :esphomepr:`5161` by :ghuser:`rufuswilson`
|
||||
- Add IDF 5 test yaml, add adc to IDF tests, fix adc for IDF 5 :esphomepr:`5379` by :ghuser:`kbx81`
|
||||
- Add patch to apt install :esphomepr:`5389` by :ghuser:`synesthesiam`
|
||||
- Fix Waveshare 7.5v2 epaper screens are always powered on :esphomepr:`5283` by :ghuser:`phoenixswiss`
|
||||
- Update radon_eye_listener.cpp :esphomepr:`5401` by :ghuser:`rmmacias`
|
||||
- Add shelly-dimmer-stm32 51.7 to known versions :esphomepr:`5400` by :ghuser:`trvrnrth`
|
||||
- Add E-Trailer Gaslevel support to Mopeka Std Check :esphomepr:`5397` by :ghuser:`Phhere`
|
||||
- fix disabled wifi power on 8266 :esphomepr:`5409` by :ghuser:`ssieb`
|
||||
- fix handling of web server version :esphomepr:`5405` by :ghuser:`ssieb`
|
||||
- Climate preset fix :esphomepr:`5407` by :ghuser:`Jorre05`
|
||||
- Remove Wi-Fi dependency from Midea component :esphomepr:`5394` by :ghuser:`AnthonyMaiorani`
|
||||
- http_request: Cleanups and safety improvements :esphomepr:`5360` by :ghuser:`kpfleming`
|
||||
- Make the pulse meter timeout on startup when no pulses are received :esphomepr:`5388` by :ghuser:`TrentHouliston`
|
||||
- Wizard: fix colored text in input prompts :esphomepr:`5313` by :ghuser:`kuba2k2`
|
||||
- support keypads with pulldowns :esphomepr:`5404` by :ghuser:`ssieb`
|
||||
- Fix SPI inverted clock on ESP8266 :esphomepr:`5416` by :ghuser:`clydebarrow`
|
||||
- [RP2040W] Fix WiFi bootloop upon LibreTiny support :esphomepr:`5414` by :ghuser:`hostcc`
|
||||
- dallas: limit addresses to 64 bits :esphomepr:`5413` by :ghuser:`oddstr13`
|
||||
- Bump zeroconf from 0.108.0 to 0.112.0 :esphomepr:`5392` by :ghuser:`dependabot[bot]`
|
||||
- LibreTiny: enable MQTT, bump to v1.4.1 :esphomepr:`5419` by :ghuser:`kuba2k2`
|
||||
- Wireguard keepalive remove uint16 type :esphomepr:`5430` by :ghuser:`glmnet`
|
||||
- Fix #4896 and #4903 :esphomepr:`5433` by :ghuser:`clydebarrow`
|
||||
|
||||
Past Changelogs
|
||||
---------------
|
||||
|
||||
- :doc:`2023.8.0`
|
||||
- :doc:`2023.7.0`
|
||||
- :doc:`2023.6.0`
|
||||
- :doc:`2023.5.0`
|
||||
- :doc:`2023.4.0`
|
||||
- :doc:`2023.3.0`
|
||||
- :doc:`2023.2.0`
|
||||
- :doc:`2022.12.0`
|
||||
- :doc:`2022.11.0`
|
||||
- :doc:`2022.10.0`
|
||||
- :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`
|
@ -2,7 +2,7 @@ Changelog
|
||||
=========
|
||||
|
||||
.. redirect::
|
||||
:url: /changelog/2023.8.0.html
|
||||
:url: /changelog/2023.9.0.html
|
||||
|
||||
.. toctree::
|
||||
:glob:
|
||||
|
@ -63,9 +63,13 @@ Configuration variables:
|
||||
*false*: Standard 11 bits IDs, *true*: Extended 29 bits ID
|
||||
- **bit_rate** (*Optional*, enum): One of the supported bitrates. Defaults to ``125KBPS``.
|
||||
|
||||
- ``5KBPS`` - Not supported by ``esp32_can``
|
||||
- ``10KBPS`` - Not supported by ``esp32_can``
|
||||
- ``20KBPS`` - Not supported by ``esp32_can``
|
||||
- ``1KBPS`` - Support by ``esp32_can`` depends on ESP32 variant
|
||||
- ``5KBPS`` - Support by ``esp32_can`` depends on ESP32 variant
|
||||
- ``10KBPS`` - Support by ``esp32_can`` depends on ESP32 variant
|
||||
- ``12K5BPS`` - Support by ``esp32_can`` depends on ESP32 variant
|
||||
- ``16KBPS`` - Support by ``esp32_can`` depends on ESP32 variant
|
||||
- ``20KBPS`` - Support by ``esp32_can`` depends on ESP32 variant
|
||||
- ``25KBPS``
|
||||
- ``31K25BPS`` - Not supported by ``esp32_can``
|
||||
- ``33KBPS`` - Not supported by ``esp32_can``
|
||||
- ``40KBPS`` - Not supported by ``esp32_can``
|
||||
@ -80,6 +84,9 @@ Configuration variables:
|
||||
- ``500KBPS``
|
||||
- ``1000KBPS``
|
||||
|
||||
See :ref:`this table <esp32-can-bit-rate>` for a list of supported bit rates by the internal CAN (TWAI) controllers of different ESP32 variants.
|
||||
|
||||
|
||||
Automations:
|
||||
------------
|
||||
|
||||
@ -198,6 +205,36 @@ You only need to specify the RX and TX pins. Any GPIO will work.
|
||||
on_frame:
|
||||
...
|
||||
|
||||
|
||||
.. _esp32-can-bit-rate:
|
||||
|
||||
The table lists the specific bit rates supported by the component for ESP32 variants:
|
||||
=================== ======= ========== ========== ========== ========== ==========
|
||||
bit_rate ESP32 ESP32-S2 ESP32-S3 ESP32-C3 ESP32-C6 ESP32-H2
|
||||
=================== ======= ========== ========== ========== ========== ==========
|
||||
1KBPS x x x x x
|
||||
5KBPS x x x x x
|
||||
10KBPS x x x x x
|
||||
12K5BPS x x x x x
|
||||
16KBPS x x x x x
|
||||
20KBPS x x x x x
|
||||
25KBPS x x x x x x
|
||||
31K25BPS
|
||||
33KBPS
|
||||
40KBPS
|
||||
50KBPS x x x x x x
|
||||
80KBPS
|
||||
83K38BPS
|
||||
95KBPS
|
||||
100KBPS x x x x x x
|
||||
125KBPS (Default) x x x x x x
|
||||
250KBPS x x x x x x
|
||||
500KBPS x x x x x x
|
||||
800KBPS x x x x x x
|
||||
1000KBPS x x x x x x
|
||||
=================== ======= ========== ========== ========== ========== ==========
|
||||
|
||||
|
||||
Wiring options
|
||||
**************
|
||||
|
||||
|
@ -104,7 +104,7 @@ This platform utilises the library's generic one-size-fits-all API, which might
|
||||
|
||||
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``, ``zhlt01``
|
||||
- **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``, ``greeyt``, ``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``
|
||||
- **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.
|
||||
|
@ -38,6 +38,8 @@ ESP heap memory (free space, maximum free block size and fragmentation level) an
|
||||
name: "Heap Max Block"
|
||||
loop_time:
|
||||
name: "Loop Time"
|
||||
psram:
|
||||
name: "Free PSRAM"
|
||||
|
||||
# Logger must be at least debug (default)
|
||||
logger:
|
||||
@ -55,7 +57,7 @@ Configuration variables:
|
||||
- ESP32:
|
||||
|
||||
- Chip model, cores, revision
|
||||
- Chip features (BLE / BT / WiFi_BGN / EMB_FLASH / ...)
|
||||
- Chip features (BLE / BT / WiFi_BGN / EMB_FLASH / EMB_PSRAM / ...)
|
||||
- ESP-IDF version
|
||||
- EFuse MAC
|
||||
- Reset reason
|
||||
@ -67,42 +69,25 @@ Configuration variables:
|
||||
- SDK, Core & Boot versions
|
||||
- Reset reason & information
|
||||
|
||||
Accepts these options:
|
||||
Accepts all options from :ref:`Text Sensor <config-text_sensor>`.
|
||||
|
||||
- **name** (**Required**, string): The name of the sensor.
|
||||
- All other options from :ref:`Text Sensor <config-text_sensor>`.
|
||||
|
||||
- **reset_reason** (*Optional*): Reports the last reboot reason in a human-readable form.
|
||||
|
||||
Accepts these options:
|
||||
|
||||
- **name** (**Required**, string): The name of the sensor.
|
||||
- All other options from :ref:`Text Sensor <config-text_sensor>`.
|
||||
- **reset_reason** (*Optional*): Reports the last reboot reason in a human-readable form. Accepts all options from :ref:`Text Sensor <config-text_sensor>`.
|
||||
|
||||
Sensor
|
||||
-------
|
||||
Configuration variables:
|
||||
|
||||
- **free** (*Optional*): Reports the free heap size in bytes.
|
||||
|
||||
- **name** (**Required**, string): The name of the sensor.
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
- **free** (*Optional*): Reports the free heap size in bytes. All options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **fragmentation** (*Optional*): Reports the fragmentation metric of the heap
|
||||
(0% is clean, more than ~50% is not harmless). Only available on ESP8266 with Arduino 2.5.2+.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **block** (*Optional*): Reports the largest contiguous free RAM block on the heap in bytes. All options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **name** (**Required**, string): The name of the sensor.
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
- **loop_time** (*Optional*): Reports the longest time between successive iterations of the main loop. All options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **block** (*Optional*): Reports the largest contiguous free RAM block on the heap in bytes.
|
||||
|
||||
- **name** (**Required**, string): The name of the sensor.
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **loop_time** (*Optional*): Reports the longest time between successive iterations of the main loop.
|
||||
|
||||
- **name** (**Required**, string): The name of the sensor.
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
- **psram** (*Optional*): Reports the free PSRAM in bytes. Only available on ESP32. All options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
@ -57,50 +57,140 @@ to an ESP module.
|
||||
|
||||
For more information about the font options see: :ref:`display-fonts`.
|
||||
|
||||
.. warning::
|
||||
|
||||
When using the TTGO T-Display module, the GPIO pin numbers above *cannot be changed* as they are
|
||||
hardwired within the module/PCB.
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
Options below marked **Required** *unless preset* must be provided but may be defined by a preset depending on the selected model, so
|
||||
may not need to be explicitly specified in your YAML file. If you do specify them they will override any preset.
|
||||
|
||||
- **model** (**Required**, string): The display model to use. One of the following options:
|
||||
|
||||
- ``TTGO TDisplay 135x240``
|
||||
- ``Adafruit Funhouse 240x240``
|
||||
- ``Adafruit RR 280x240`` (round-rectangular display -- some pixels are "deleted" from corners to form rounded shape)
|
||||
- ``Adafruit S2 TFT FEATHER 240X135`` (requires ``power_supply`` be specified, see below)
|
||||
- ``Custom`` (see details below)
|
||||
- ``Adafruit S2 TFT FEATHER 240X135``
|
||||
- ``LILYGO T-Embed 170X320``
|
||||
- ``Custom`` For other displays not listed above
|
||||
|
||||
- **cs_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The CS 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.
|
||||
- **height** (*Optional*, int): When ``model`` is set to "Custom", use this to specify the ``height`` of the display
|
||||
in pixels. This option may not be specified when the ``model`` is not set to "Custom".
|
||||
- **width** (*Optional*, int): When ``model`` is set to "Custom", use this to specify the ``width`` of the display
|
||||
in pixels. This option may not be specified when the ``model`` is not set to "Custom".
|
||||
- **offset_height** (*Optional*, int): When ``model`` is set to "Custom", use this to specify the display's vertical
|
||||
- **height** (**Required** *unless preset*, int): Sets height of display in pixels.
|
||||
- **width** (**Required** *unless preset*, int): Sets width of display.
|
||||
- **offset_height** (**Required** *unless preset*, int): When ``model`` is set to "Custom", use this to specify the display's vertical
|
||||
offset in pixels. This option may not be specified when the ``model`` is not set to "Custom".
|
||||
- **offset_width** (*Optional*, int): When ``model`` is set to "Custom", use this to specify the display's horizontal
|
||||
- **offset_width** (**Required** *unless preset*, int): When ``model`` is set to "Custom", use this to specify the display's horizontal
|
||||
offset in pixels. This option may not be specified when the ``model`` is not set to "Custom".
|
||||
- **cs_pin** (**Required** *unless preset*, :ref:`Pin Schema <config-pin_schema>`): The CS pin.
|
||||
- **dc_pin** (**Required** *unless preset*, :ref:`Pin Schema <config-pin_schema>`): The DC pin.
|
||||
- **reset_pin** (**Required** *unless preset*, :ref:`Pin Schema <config-pin_schema>`): The RESET pin.
|
||||
- **eightbitcolor** (*Optional*, boolean): Limits the supported color depth to eight bits. May be useful on
|
||||
memory-constrained devices.
|
||||
- **backlight_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The display's backlight pin.
|
||||
memory-constrained devices. Defaults to false.
|
||||
- **backlight_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The display's backlight pin. May be required
|
||||
depending on the hardware configuration.
|
||||
- **power_supply** (*Optional*, :ref:`config-id`): The :doc:`power supply </components/power_supply>` to connect to
|
||||
this display. The power supply will be turned on before attempting to initialize the display. When ``model`` is set
|
||||
to "Adafruit S2 TFT FEATHER 240X135" this option is required as there are variations of this board sold with differing
|
||||
pin assignments.
|
||||
this display if required by hardware. The power supply will be turned on before attempting to initialize the display.
|
||||
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
||||
See :ref:`display-engine` for more information.
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
||||
- **pages** (*Optional*, list): Show pages instead of a single lambda. See :ref:`display-pages`.
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||
|
||||
|
||||
Preset configuration
|
||||
********************
|
||||
|
||||
For specific models there is some preset configuration which will satisy some of the **Required** *unless preset* values.
|
||||
All models except ``Custom`` preset the ``height``, ``width`` and ``offset_...`` values.
|
||||
The table below summarises the other presets. Note that SPI CLK and SDO (mosi) pins, and the power supply pin must be separately
|
||||
configured in ``spi:`` and ``power_supply:`` blocks - the pins are noted below for convenience only.
|
||||
|
||||
Items marked RQ are hardware dependent but required and not preset. Items marked ? are optional depending on the hardware.
|
||||
|
||||
.. list-table:: Model presets
|
||||
:header-rows: 1
|
||||
|
||||
|
||||
* - Model
|
||||
- Height/ width
|
||||
- Offsets
|
||||
- CS
|
||||
- DC
|
||||
- Reset
|
||||
- Back light
|
||||
- Pwr sup
|
||||
- SPI clk
|
||||
- SPI mosi
|
||||
* - TTGO TDisplay 135x240
|
||||
- 240/135
|
||||
- 52/40
|
||||
- 5
|
||||
- 6
|
||||
- 23
|
||||
- 4
|
||||
-
|
||||
- 18
|
||||
- 19
|
||||
* - Adafruit Funhouse 240x240
|
||||
- 240/240
|
||||
- 0/0
|
||||
- 40
|
||||
- 39
|
||||
- 41
|
||||
- 21
|
||||
-
|
||||
- 36
|
||||
- 35
|
||||
* - Adafruit RR 280x240
|
||||
- 240/240
|
||||
- 0/20
|
||||
- RQ
|
||||
- RQ
|
||||
- RQ
|
||||
- ?
|
||||
- ?
|
||||
- RQ
|
||||
- RQ
|
||||
* - Adafruit S2 TFT FEATHER 240X135
|
||||
- 240/135
|
||||
- 52/40
|
||||
- 7
|
||||
- 39
|
||||
- 40
|
||||
- 45
|
||||
- 21
|
||||
- 36
|
||||
- 35
|
||||
* - LILYGO T-Embed 170X320
|
||||
- 320/170
|
||||
- 35/0
|
||||
- 10
|
||||
- 13
|
||||
- 9
|
||||
- 15
|
||||
- 46
|
||||
- 12
|
||||
- 11
|
||||
* - Custom
|
||||
- RQ
|
||||
- RQ
|
||||
- RQ
|
||||
- RQ
|
||||
- RQ
|
||||
- ?
|
||||
- ?
|
||||
- RQ
|
||||
- RQ
|
||||
|
||||
|
||||
|
||||
For all boards you can override the presets by specifying any of the configuration options. Pin assignments on some
|
||||
boards can change between versions so if it doesn't work with the presets check the board pinouts and override options as
|
||||
required.
|
||||
|
||||
.. note::
|
||||
|
||||
On memory-constrained devices, it may be possible to use *part* of the display area by setting the model to "custom"
|
||||
and specifying a smaller ``height`` and/or ``width`` than that of the actual display.
|
||||
On memory-constrained devices, it may be possible to use *part* of the display area by
|
||||
specifying a smaller ``height`` and/or ``width`` than that of the actual display.
|
||||
|
||||
|
||||
Configuration examples
|
||||
|
@ -14,6 +14,8 @@ data and control.
|
||||
# Example configuration
|
||||
|
||||
esp32_ble_server:
|
||||
manufacturer: "Orange"
|
||||
manufacturer_data: [0x4C, 0, 0x23, 77, 0xF0 ]
|
||||
|
||||
|
||||
Configuration variables:
|
||||
@ -22,6 +24,9 @@ Configuration variables:
|
||||
- **manufacturer** (*Optional*, string): The name of the manufacturer/firmware creator. Defaults to ``ESPHome``.
|
||||
- **model** (*Optional*, string): The model name of the device. Defaults to the friendly name of the ``board`` chosen
|
||||
in the :ref:`core configuration <esphome-configuration_variables>`.
|
||||
- **manufacturer_data** (*Optional*, list of bytes): The manufacturer-specific data to include in the advertising
|
||||
packet. Should be a list of bytes, where the first two are the little-endian representation of the 16-bit
|
||||
manufacturer ID as assigned by the Bluetooth SIG.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
221
components/libretiny.rst
Normal file
@ -0,0 +1,221 @@
|
||||
LibreTiny Platform
|
||||
==================
|
||||
|
||||
.. seo::
|
||||
:description: Configuration for the LibreTiny platform for ESPHome.
|
||||
:image: libretiny.svg
|
||||
|
||||
This component contains platform-specific options for the `LibreTiny <https://docs.libretiny.eu/>`__ platform.
|
||||
It provides support for the following microcontrollers:
|
||||
|
||||
- **BK72xx**: BK7231T, BK7231N
|
||||
- **RTL87xx**: RTL8710BN, RTL8710BX
|
||||
|
||||
Since different microcontrollers are supported, you need to include the appropriate ESPHome component,
|
||||
depending on which processor your device has.
|
||||
|
||||
Refer to `LibreTiny/Boards <https://docs.libretiny.eu/link/boards>`__ to find your board type.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry for BK72xx
|
||||
bk72xx:
|
||||
board: generic-bk7231n-qfn32-tuya
|
||||
|
||||
# Example configuration entry for RTL87xx
|
||||
rtl87xx:
|
||||
board: generic-rtl8710bn-2mb-788k
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **board** (**Required**, string): The PlatformIO board ID that should be used. Choose the appropriate board from
|
||||
`this list <https://registry.platformio.org/packages/platforms/kuba2k2/libretiny/boards>`__
|
||||
(the icon next to the name can be used to copy the board ID).
|
||||
|
||||
**This affects CPU selection and some internal settings** - make sure to choose the right CPU.
|
||||
If unsure about the choice of a particular board, choose a generic board such as ``generic-bk7231n-qfn32-tuya``.
|
||||
|
||||
- **framework** (*Optional*): Options for the underlying framework used by ESPHome.
|
||||
|
||||
- **version** (*Optional*, string): The LibreTiny version number to use, from
|
||||
`LibreTiny platform releases <https://github.com/kuba2k2/libretiny/releases>`__. Defaults to ``recommended``. Additional values
|
||||
|
||||
- ``dev``: Use the latest commit from https://github.com/kuba2k2/libretiny, note this may break at any time
|
||||
- ``latest``: Use the latest *release* from https://github.com/kuba2k2/libretiny/releases, even if it hasn't been recommended yet.
|
||||
- ``recommended``: Use the recommended framework version.
|
||||
|
||||
- **source** (*Optional*, string): The PlatformIO package or repository to use for the framework. This can be used to use a custom or patched version of the framework.
|
||||
|
||||
- :ref:`Advanced options <advanced-options>`
|
||||
|
||||
- **family** (*Optional*, boolean): The family of LibreTiny-supported microcontrollers that is used on this board.
|
||||
One of ``bk7231n``, ``bk7231t``, ``rtl8710b``, ``rtl8720c``, ``bk7251``, ``bk7231q``.
|
||||
Defaults to the variant that is detected from the board, if a board that's unknown to ESPHome is used,
|
||||
this option is mandatory. **It's recommended not to include this option**.
|
||||
|
||||
.. note::
|
||||
|
||||
Support for the LibreTiny platform is still in development and there could be issues or missing components.
|
||||
|
||||
In particular, **MQTT is not supported yet**, because of reported stability issues.
|
||||
|
||||
Please report any issues on `LibreTiny GitHub <https://github.com/kuba2k2/libretiny>`__.
|
||||
|
||||
Getting Started
|
||||
---------------
|
||||
|
||||
Since BK72xx and RTL87xx chips are relatively new on the IoT Open Source development stage,
|
||||
there aren't many resources on flashing and configuring them.
|
||||
|
||||
Here are a few useful links:
|
||||
|
||||
- `tuya-cloudcutter <https://github.com/tuya-cloudcutter/tuya-cloudcutter>`__ - flashing ESPHome Over-the-Air
|
||||
to some devices compatible with Tuya/SmartLife apps (BK72xx only!)
|
||||
|
||||
- `Textual & video guide by digiblurDIY <https://docs.libretiny.eu/link/cloudcutter-digiblur>`__
|
||||
- `Video guide by LibreTiny <https://docs.libretiny.eu/link/cloudcutter-video>`__
|
||||
- `ESPHome-Kickstart <https://docs.libretiny.eu/link/kickstart>`__ - starter firmware to upload OTA with Cloudcutter
|
||||
|
||||
- `Flashing BK72xx by UART <https://docs.libretiny.eu/link/flashing-beken-72xx>`__
|
||||
- `Flashing RTL8710B by UART <https://docs.libretiny.eu/link/flashing-realtek-ambz>`__
|
||||
- `UPK2ESPHome <https://upk.libretiny.eu/>`__ - generating ESPHome YAML automatically, from Cloudcutter profiles or Kickstart firmware (also BK72xx only)
|
||||
|
||||
GPIO Pin Numbering
|
||||
------------------
|
||||
|
||||
Chips supported by LibreTiny use the internal GPIO pin numbering of the boards, this means that
|
||||
you don't have to worry about other kinds of pin numberings, yay!
|
||||
|
||||
Additionally, you can use **pin function macros** to quickly access a GPIO tied to a particular peripheral,
|
||||
such as UART1 TX/RX or PWM0.
|
||||
See `LibreTiny/GPIO Access <https://docs.libretiny.eu/link/gpio-access>`__ to learn more.
|
||||
|
||||
Most of the popular boards (often incorrectly called "chips"), that are usually shipped with Smart Home devices,
|
||||
are *supported by LibreTiny*, which means that a pinout drawing is available, with all GPIOs described.
|
||||
Visit `LibreTiny/Boards <https://docs.libretiny.eu/link/boards>`__ to find all supported boards.
|
||||
|
||||
The ``Pin functions`` table outlines all GPIOs available on the chosen board.
|
||||
*You can use any of the visible names* to access a particular GPIO.
|
||||
|
||||
Some notes about the pins on BK72xx:
|
||||
|
||||
- ``TX2 (P0)`` and ``RX2 (P1)`` are used for the default :doc:`/components/logger` UART port.
|
||||
- ``TX1 (P11)`` and ``RX1 (P10)`` are used for flashing firmware, as well as for :doc:`/components/tuya`.
|
||||
- ``ADC3 (P23)`` is the only :doc:`/components/sensor/adc` available on BK7231.
|
||||
|
||||
Some notes about the pins on RTL8710BN/BX:
|
||||
|
||||
- ``TX2 (PA30)`` and ``RX2 (PA29)`` are used for flashing the firmware,
|
||||
as well as the default :doc:`/components/logger` UART port.
|
||||
- ``TX2 (PA30)`` is additionally used to determine the boot mode on startup (similar to ESP32).
|
||||
Pulling it LOW on startup will enter "download mode".
|
||||
|
||||
Example configuration entries using various naming styles:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# GPIO switch on P26/GPIO26 (BK72xx example)
|
||||
switch:
|
||||
- platform: gpio
|
||||
name: Relay 1
|
||||
pin: P26
|
||||
|
||||
# GPIO binary sensor on PA12 (RTL87xx example)
|
||||
binary_sensor:
|
||||
- platform: gpio
|
||||
name: "Pin PA12"
|
||||
pin: PA12
|
||||
|
||||
# ADC reading (BK72xx example)
|
||||
sensor:
|
||||
- platform: adc
|
||||
pin: ADC3
|
||||
name: "Battery Level"
|
||||
|
||||
# PWM component
|
||||
output:
|
||||
- platform: libretiny_pwm
|
||||
pin: PWM2
|
||||
frequency: 1000 Hz
|
||||
id: pwm_output
|
||||
# using light with the PWM
|
||||
light:
|
||||
- platform: monochromatic
|
||||
output: pwm_output
|
||||
name: "Kitchen Light"
|
||||
|
||||
# Tuya MCU on UART1 (BK72xx example)
|
||||
uart:
|
||||
rx_pin: RX1
|
||||
tx_pin: TX1
|
||||
baud_rate: 9600
|
||||
tuya:
|
||||
|
||||
.. _advanced-options:
|
||||
|
||||
Advanced options
|
||||
----------------
|
||||
|
||||
These are some advanced configuration options of LibreTiny platform.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
bk72xx:
|
||||
board: cb2s
|
||||
framework:
|
||||
version: dev
|
||||
loglevel: debug
|
||||
debug:
|
||||
- wifi
|
||||
- ota
|
||||
sdk_silent: auto
|
||||
uart_port: 2
|
||||
gpio_recover: false
|
||||
options:
|
||||
LT_LOG_HEAP: 1
|
||||
LT_AUTO_DOWNLOAD_REBOOT: 1
|
||||
|
||||
- **loglevel** (*Optional*, string): Logging level for LibreTiny core. Controls the output of logging messages
|
||||
from the core (doesn't affect ESPHome logger!). *These messages are only visible on the physical UART*.
|
||||
One of ``verbose``, ``trace`` (same as ``verbose``), ``debug``, ``info``,
|
||||
``warn`` (default), ``error``, ``fatal``, ``none``.
|
||||
|
||||
- **debug** (*Optional*, string or string list): Modules to enable LibreTiny debugging for.
|
||||
Refer to `LibreTiny/Configuration <https://docs.libretiny.eu/link/config-debug>`__
|
||||
for more information - some modules are enabled by default.
|
||||
One or more of ``wifi``, ``client``, ``server``, ``ssl``, ``ota``, ``fdb``,
|
||||
``mdns``, ``lwip``, ``lwip_assert``.
|
||||
Specifying ``none`` will disable all modules. You can also combine ``none`` with one or more of the modules.
|
||||
|
||||
- **sdk_silent** (*Optional*, string): Define the SDK logging "silent mode".
|
||||
This disables messages from vendor SDKs, which makes UART output more readable, but can hide some error messages.
|
||||
*This affects the physical UART port only*.
|
||||
Refer to `LibreTiny/Configuration <https://docs.libretiny.eu/link/config-serial>`__ for more information.
|
||||
|
||||
- ``all``: Disable all messages (default).
|
||||
- ``auto``: Disable selectively, i.e. during Wi-Fi activation.
|
||||
- ``none``: Keep all logging messages, don't disable anything.
|
||||
|
||||
- **uart_port** (*Optional*, int): Choose the default UART port of the framework.
|
||||
This affects LibreTiny logging messages, **as well as the default port for**
|
||||
:doc:`ESPHome logger </components/logger>` (e.g. if you don't specify any other).
|
||||
One of 0, 1, 2. The default value is chip-specific and is chosen by LibreTiny appropriately.
|
||||
|
||||
- **gpio_recover** (*Optional*, boolean): Disable JTAG/SWD debugging peripherals. This may be needed
|
||||
to free GPIOs that should be used for other functions. Defaults to ``true``.
|
||||
|
||||
- **options** (*Optional*, mapping): Custom options passed to LibreTiny platform.
|
||||
Refer to `LibreTiny/Configuration <https://docs.libretiny.eu/link/config>`__ to see all options.
|
||||
*This takes precedence (overrides) all options described above*.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :doc:`esphome`
|
||||
- :doc:`/components/output/libretiny_pwm`
|
||||
- :doc:`/components/text_sensor/libretiny`
|
||||
- `LibreTiny Documentation <https://docs.libretiny.eu/>`__ (external)
|
||||
- :doc:`/components/tuya`
|
||||
- :ghedit:`Edit`
|
@ -24,7 +24,7 @@ FastLED Light
|
||||
|
||||
FastLED does **not** work with ESP-IDF.
|
||||
|
||||
For addressable lights, you can use :doc:`esp32_rmt_led_strip`.
|
||||
For addressable lights, you can use :doc:`esp32_rmt_led_strip` or for SPI LEDs see :doc:`spi_led_strip`..
|
||||
|
||||
.. _fastled-clockless:
|
||||
|
||||
@ -110,6 +110,8 @@ SPI
|
||||
The ``fastled_spi`` light platform allows you to create RGB lights
|
||||
in ESPHome for a :ref:`number of supported chipsets <fastled_spi-chipsets>`.
|
||||
|
||||
See :doc:`/components/light/spi_led_strip` for an alternative component that works on ESP-IDF (and Arduino.)
|
||||
|
||||
SPI FastLED lights differ from the
|
||||
:ref:`fastled-clockless` in that they require two pins to be connected, one for a data and one for a clock signal
|
||||
whereas the clockless lights only need a single pin.
|
||||
@ -169,6 +171,7 @@ See Also
|
||||
--------
|
||||
|
||||
- :doc:`/components/light/index`
|
||||
- :doc:`/components/light/spi_led_strip`
|
||||
- :doc:`/components/power_supply`
|
||||
- :apiref:`fastled_base/fastled_light.h`
|
||||
- `Arduino FastLED library <https://github.com/FastLED/FastLED>`__
|
||||
|
BIN
components/light/images/apa102.jpg
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
components/light/images/lightwaverf.jpg
Normal file
After Width: | Height: | Size: 16 KiB |
93
components/light/lightwaverf.rst
Normal file
@ -0,0 +1,93 @@
|
||||
LightWaveRF Switch
|
||||
==================
|
||||
|
||||
.. seo::
|
||||
:description: LightWaveRF Switch Lights
|
||||
:image: brightness-medium.svg
|
||||
|
||||
The ``LightWaveRF`` light platform creates a module to dump and send commands to light switches
|
||||
|
||||
.. figure:: images/lightwaverf.jpg
|
||||
:align: center
|
||||
:width: 40.0%
|
||||
|
||||
LightwaveRF switches are very common in UK automation. They allow control of lights, sockets, relays and more via RF remote or via a hub.
|
||||
Using an inexpensive RF transmitter and receiver you can control your devices via ESPHome.
|
||||
|
||||
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
|
||||
# Specify the two pins to connect the receiver and transmitter
|
||||
lightwaverf:
|
||||
read_pin: 13
|
||||
write_pin: 14
|
||||
|
||||
# Create a switch to trigger a light
|
||||
switch:
|
||||
- platform: template
|
||||
name: "Turn off sofa"
|
||||
id: light_off_ceiling_sofa
|
||||
turn_on_action:
|
||||
lightwaverf.send_raw:
|
||||
code: [0x04, 0x00, 0x00, 0x00, 0x0f, 0x03, 0x0d, 0x09, 0x08, 0x08]
|
||||
name: "Sofa"
|
||||
repeat: 1
|
||||
|
||||
|
||||
Note: To gather the RAW codes from the remote, setup the ``read_pin`` and observe in the logs the printing of the codes.
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **read_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin that the receiver is connected to
|
||||
- **write_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): the pin that the transmitter is connected to
|
||||
|
||||
|
||||
.. lightwaverf.send_raw:
|
||||
|
||||
|
||||
``lightwaverf.send_raw`` Action
|
||||
--------------------------------
|
||||
|
||||
Send the raw data that has been captured via the dump system
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
then:
|
||||
- lightwaverf.send_raw:
|
||||
code: [0x04, 0x00, 0x00, 0x00, 0x0f, 0x03, 0x0d, 0x09, 0x08, 0x08]
|
||||
name: "Sofa"
|
||||
repeat: 1
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **name** (*Optional*, string): The name to give for the action
|
||||
- **code** (**Required**, list hex): The raw dump in an array of hex
|
||||
- **repeat** (*Optional*, int): The number of times the message will be repeated
|
||||
- **inverted** (*Optional*, boolean): Send the signal inverted
|
||||
|
||||
|
||||
Compatible Hardware
|
||||
-------------------
|
||||
|
||||
The RF transmitters/receivers listed below have been confirmed to work with the current code base. If you discover others that work, please let us know!
|
||||
|
||||
Compatible transmitter:
|
||||
|
||||
- MX-FS-03V
|
||||
|
||||
Compatible receiver:
|
||||
|
||||
- RXB6
|
||||
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :doc:`/components/light/index`
|
||||
- :ghedit:`Edit`
|
@ -9,7 +9,8 @@ NeoPixelBus Light
|
||||
|
||||
NeoPixelBus does **not** work with ESP-IDF.
|
||||
|
||||
For addressable lights, you can use :doc:`esp32_rmt_led_strip`.
|
||||
For clockless lights, you can use :doc:`esp32_rmt_led_strip`, and for SPI LEDs see :doc:`spi_led_strip`.
|
||||
|
||||
|
||||
The ``neopixelbus`` light platform allows you to create RGB lights
|
||||
in ESPHome for an individually addressable lights like NeoPixel or WS2812.
|
||||
|
68
components/light/spi_led_strip.rst
Normal file
@ -0,0 +1,68 @@
|
||||
SPI LED Strip Light
|
||||
===================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up SPI LED RGB lights in ESPHome.
|
||||
:image: ../components/light/images/apa102.jpg
|
||||
|
||||
The ``spi_led_strip`` light platform drives one or more SPI interfaced RGB LEDs. These LEDs are often used in strips, where
|
||||
each LED is individually addressable. This component requires an SPI interface to be configured.
|
||||
|
||||
This component has been tested with APA102 LEDs and should also work with HD107 and SK9822 type LEDs, or any others
|
||||
with a similar interface - SPI, 8 bits per colour and BGR ordering.
|
||||
|
||||
.. figure:: images/apa102.jpg
|
||||
:align: center
|
||||
:width: 75.0%
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
spi:
|
||||
mosi_pin: GPIO3
|
||||
clk_pin: GPIO9
|
||||
|
||||
light:
|
||||
- platform: spi_led_strip
|
||||
num_leds: 30
|
||||
color_correct: [80%, 60%, 100%]
|
||||
id: rgb_led
|
||||
name: "RGB LED Strip"
|
||||
data_rate: 1MHz
|
||||
|
||||
Color Correction
|
||||
----------------
|
||||
|
||||
It is often favourable to calibrate/correct the color produced by an LED strip light as the
|
||||
perceived intensity of different colors will generally vary. This can be done by using
|
||||
``color_correct`` to adjust the relative brightness of the RGB components.
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **name** (**Required**, string): The name of the light.
|
||||
- **num_leds** (*Optional*, int): The number of LEDs attached. The default is 1.
|
||||
- **effects** (*Optional*, list): A list of :ref:`light effects <light-effects>` to use for this light.
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||
- **data_rate** (*Optional*): Set the data rate of the SPI interface to the display. One of ``80MHz``, ``40MHz``, ``20MHz``, ``10MHz``, ``5MHz``, ``2MHz``, ``1MHz`` (default), ``200kHz``, ``75kHz`` or ``1kHz``.
|
||||
- All other options from :ref:`Light <config-light>`.
|
||||
|
||||
You may also need to configure an ``output`` GPIO pin to control power to the LEDs, depending on your hardware. The
|
||||
APA102 and friends do not have a ``CS`` input, and are write-only so the SPI ``miso`` pin should not be specified.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
.. figure:: images/rgb-detail.jpg
|
||||
:align: center
|
||||
:width: 75.0%
|
||||
|
||||
- :doc:`/components/light/index`
|
||||
- :doc:`/components/output/ledc`
|
||||
- :doc:`/components/output/esp8266_pwm`
|
||||
- :doc:`/components/output/pca9685`
|
||||
- :doc:`/components/output/tlc59208f`
|
||||
- :doc:`/components/output/my9231`
|
||||
- :doc:`/components/output/sm16716`
|
||||
- :apiref:`rgb/rgb_light_output.h`
|
||||
- :ghedit:`Edit`
|
@ -59,6 +59,11 @@ Configuration variables:
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval that the sensors should be checked.
|
||||
Defaults to 60 seconds.
|
||||
|
||||
- **offline_skip_updates** (*Optional*, integer): When a controller doesn't respond to a command, it is
|
||||
marked as offline, you can specify how many updates will be skipped while it is offline. If using a bus with multiple
|
||||
controllers, this avoids waiting for timeouts allowing to read other controllers in the same bus. When the controller
|
||||
responds to a command, it'll be marked online again.
|
||||
|
||||
|
||||
Example
|
||||
-------
|
||||
|
@ -18,7 +18,7 @@ networks (WiFi, Ethernet).
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **enable_ipv6** (*Optional*, boolean): Enables IPv6 support. Defaults to ``false``. Only available on ESP32 with ESP-IDF framework.
|
||||
- **enable_ipv6** (*Optional*, boolean): Enables IPv6 support. Defaults to ``false``.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
66
components/output/libretiny_pwm.rst
Normal file
@ -0,0 +1,66 @@
|
||||
LibreTiny PWM Output
|
||||
====================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up LibreTiny hardware PWMs.
|
||||
:image: pwm.png
|
||||
|
||||
The LibreTiny PWM platform allows you to use a hardware PWM on BK72xx and RTL87xx chips.
|
||||
Refer to `LibreTiny/Boards <https://docs.libretiny.eu/link/boards>`__ to find your board
|
||||
and which PWM pins it supports.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
output:
|
||||
- platform: libretiny_pwm
|
||||
pin: P8
|
||||
frequency: 1000 Hz
|
||||
id: pwm_output
|
||||
|
||||
# Example usage in a light
|
||||
light:
|
||||
- platform: monochromatic
|
||||
output: pwm_output
|
||||
name: "Kitchen Light"
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin to use PWM on.
|
||||
- **id** (**Required**, :ref:`config-id`): The id to use for this output component.
|
||||
- **frequency** (*Optional*, frequency): The frequency to run the PWM with. Lower frequencies
|
||||
have more visual artifacts, but can represent much more colors. Defaults to ``1000 Hz``.
|
||||
- All other options from :ref:`Output <config-output>`.
|
||||
|
||||
.. _output-libretiny_pwm-set_frequency_action:
|
||||
|
||||
``output.libretiny_pwm.set_frequency`` Action
|
||||
---------------------------------------------
|
||||
|
||||
This :ref:`Action <config-action>` allows you to manually change the frequency of a LibreTiny PWM
|
||||
channel at runtime. Use cases include controlling a passive buzzer (for pitch control).
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
- output.libretiny_pwm.set_frequency:
|
||||
id: pwm_output
|
||||
frequency: 100Hz
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **id** (**Required**, :ref:`config-id`): The ID of the PWM output to change.
|
||||
- **frequency** (**Required**, :ref:`templatable <config-templatable>`, float): The frequency
|
||||
to set in hertz.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :doc:`/components/libretiny`
|
||||
- :doc:`/components/output/index`
|
||||
- :doc:`/components/light/monochromatic`
|
||||
- :doc:`/components/fan/speed`
|
||||
- :doc:`/components/power_supply`
|
||||
- :apiref:`libretiny_pwm/libretiny_pwm.h`
|
||||
- :ghedit:`Edit`
|
31
components/psram.rst
Normal file
@ -0,0 +1,31 @@
|
||||
PSRAM
|
||||
=====
|
||||
|
||||
.. seo::
|
||||
:description: Configuration for the ESP32 PSRAM platform for ESPHome.
|
||||
:image: psram.svg
|
||||
|
||||
This component enables and configures PSRAM if/when available on ESP32 modules/boards.
|
||||
It is automatically loaded and enabled by components that require it.
|
||||
|
||||
PSRAM is only available on the ESP32.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
psram:
|
||||
mode: octal
|
||||
speed: 80MHz
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **mode** (*Optional*): Defines the operating mode the PSRAM should utilize. One of ``quad`` or ``octal``.
|
||||
- **speed** (*Optional*, int): The speed at which the PSRAM should operate. One of ``40MHz``, ``80MHz`` or ``120MHz``.
|
||||
Note that ``80MHz`` and ``120MHz`` are not supported on all modules; in addition, ``120MHz`` is considered
|
||||
"experimental" at the time this document was written.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ghedit:`Edit`
|
@ -30,7 +30,7 @@ Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **pin** (**Required**, :ref:`config-pin`): The pin to measure the voltage on.
|
||||
Or on the ESP8266 alternatively also ``VCC``, see :ref:`adc-esp8266_vcc`.
|
||||
Or on the ESP8266 or Raspberry Pi Pico it could alternatively be set to ``VCC``, see :ref:`adc-vcc`.
|
||||
- **name** (**Required**, string): The name of the voltage sensor.
|
||||
- **attenuation** (*Optional*): Only on ESP32. Specify the ADC
|
||||
attenuation to use. See :ref:`adc-esp32_attenuation`. Defaults to ``0db``.
|
||||
@ -122,10 +122,23 @@ For users that don't need a precise voltage reading, the "raw" output option all
|
||||
|
||||
Note we don't recommend this method as it will change between chips, and newer ESP32 modules have different ranges (i.e. 0-8191); it is better to use the new calibrated voltages and update any existing filters accordingly.
|
||||
|
||||
.. _adc-esp8266_vcc:
|
||||
.. _adc-vcc:
|
||||
|
||||
ESP8266 Measuring VCC
|
||||
---------------------
|
||||
Measuring VCC
|
||||
-------------
|
||||
|
||||
The following configuration block adds the sensor reflecting VCC on a supported hardware platform.
|
||||
Please see specific sections below of what voltage is actually measured.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
sensor:
|
||||
- platform: adc
|
||||
pin: VCC
|
||||
name: "VCC Voltage"
|
||||
|
||||
On ESP8266
|
||||
~~~~~~~~~~
|
||||
|
||||
On the ESP8266 you can even measure the voltage the *chip is getting*. This can be useful in situations
|
||||
where you want to shut down the chip if the voltage is low when using a battery.
|
||||
@ -136,12 +149,19 @@ To measure the VCC voltage, set ``pin:`` to ``VCC`` and make sure nothing is con
|
||||
|
||||
To avoid confusion: It measures the voltage at the chip, and not at the VCC pin of the board. It should usually be around 3.3V.
|
||||
|
||||
.. code-block:: yaml
|
||||
On Raspberry Pi Pico
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
On the Raspberry Pi Pico and Pico W the ADC can measure VSYS voltage.
|
||||
|
||||
Depending on how VSYS is powered the readings will have different meanings - either power supply voltage when it is connected to VSYS pin directly, or USB voltage (VBUS) minus some drop on the Schottky diode the Raspberry Pi Pico has between those pins.
|
||||
Our experiments indicate the drop being ~0.1V for Pico and ~0.25V for Pico W; you can use sensor filters to adjust the final value.
|
||||
|
||||
.. note::
|
||||
|
||||
On Raspberry Pi Pico W the ADC GPIO29 pin for VSYS is shared with WiFi chip, so attempting to use it explicitly will likely hang the WiFi connection.
|
||||
It is recommended to use ``VCC`` as ADC pin in that case.
|
||||
|
||||
sensor:
|
||||
- platform: adc
|
||||
pin: VCC
|
||||
name: "VCC Voltage"
|
||||
|
||||
RP2040 Internal Core Temperature
|
||||
--------------------------------
|
||||
|
84
components/sensor/bmi160.rst
Normal file
@ -0,0 +1,84 @@
|
||||
BMI160 Accelerometer/Gyroscope Sensor
|
||||
======================================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up BMI160 Accelerometer and Gyroscope sensors.
|
||||
:image: bmi160.jpg
|
||||
|
||||
The ``bmi160`` sensor platform allows you to use your BMI160 Accelerometer/Gyroscope
|
||||
(`datasheet <https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bmi160-ds000.pdf>`__,
|
||||
`SparkFun`_) sensors with
|
||||
ESPHome. The :ref:`I²C Bus <i2c>` is
|
||||
required to be set up in your configuration for this sensor to work.
|
||||
|
||||
This component only does some basic filtering and no calibration. Due to the complexity of
|
||||
this sensor and the amount of possible configuration options, you should probably
|
||||
create a custom component by copying and modifying the existing code if you want a specific
|
||||
new feature. Supporting all possible use-cases would be quite hard.
|
||||
|
||||
|
||||
.. figure:: images/bmi160-full.jpg
|
||||
:align: center
|
||||
:width: 50.0%
|
||||
|
||||
BMI160 Accelerometer/Gyroscope Sensor.
|
||||
|
||||
.. _SparkFun: https://www.sparkfun.com/products/18794
|
||||
|
||||
.. figure:: images/bmi160-ui.png
|
||||
:align: center
|
||||
:width: 80.0%
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
sensor:
|
||||
- platform: bmi160
|
||||
address: 0x68
|
||||
update_interval: 60s
|
||||
acceleration_x:
|
||||
name: "BMI160 Accel X"
|
||||
acceleration_y:
|
||||
name: "BMI160 Accel Y"
|
||||
acceleration_z:
|
||||
name: "BMI160 Accel z"
|
||||
gyroscope_x:
|
||||
name: "BMI160 Gyro X"
|
||||
gyroscope_y:
|
||||
name: "BMI160 Gyro Y"
|
||||
gyroscope_z:
|
||||
name: "BMI160 Gyro z"
|
||||
temperature:
|
||||
name: "BMI160 Temperature"
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **address** (*Optional*, int): Manually specify the I²C address of the sensor. Defaults to ``0x68``, may also be ``0x69``.
|
||||
- **acceleration_x** (*Optional*): Use the X-Axis of the Accelerometer. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **acceleration_y** (*Optional*): Use the Y-Axis of the Accelerometer. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **acceleration_z** (*Optional*): Use the Z-Axis of the Accelerometer. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **gyroscope_x** (*Optional*): Use the X-Axis of the Gyroscope. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **gyroscope_y** (*Optional*): Use the Y-Axis of the Gyroscope. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **gyroscope_z** (*Optional*): Use the Z-Axis of the Gyroscope. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **temperature** (*Optional*): Use the internal temperature of the sensor. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
|
||||
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ref:`sensor-filters`
|
||||
- :doc:`template`
|
||||
- :doc:`ultrasonic`
|
||||
- :apiref:`bmi160/bmi160.h`
|
||||
- `i2cdevlib <https://github.com/jrowberg/i2cdevlib>`__ by `Jeff Rowberg <https://github.com/jrowberg>`__
|
||||
- :ghedit:`Edit`
|
After Width: | Height: | Size: 3.0 KiB |
@ -1,13 +1,15 @@
|
||||
HRXL MaxSonar WR Series
|
||||
=======================
|
||||
HRXL/XL MaxSonar WR Series
|
||||
==========================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up MaxBotix HRXL MaxSonar WR ultrasonic distance measurement sensors in ESPHome.
|
||||
:description: Instructions for setting up MaxBotix HRXL or XL MaxSonar WR ultrasonic distance measurement sensors in ESPHome.
|
||||
:image: hrxl_maxsonar_wr.jpg
|
||||
:keywords: ultrasonic, maxbotix, maxsonar
|
||||
|
||||
This sensor allows you to use HRXL MaxSonar WR series ultrasonic sensors by MaxBotix
|
||||
(`datasheet <https://www.maxbotix.com/documents/HRXL-MaxSonar-WR_Datasheet.pdf>`__)
|
||||
or the XL MaxSonar WR series
|
||||
(`datasheet <https://www.maxbotix.com/documents/XL-MaxSonar-WR_Datasheet.pdf>`__)
|
||||
with ESPHome to measure distances. Depending on the model, these sensors can measure
|
||||
in a range between 30 centimeters and 10 meters.
|
||||
|
||||
|
@ -9,6 +9,7 @@ HTU21D | Si7021 | SHT21 Temperature & Humidity Sensor
|
||||
The HTU21D Temperature & Humidity component allows you to use HTU21D, Si7021 and SHT21 sensors with
|
||||
ESPHome. The :ref:`I²C Bus <i2c>` is required to be set up in your configuration for this sensor to work.
|
||||
|
||||
|
||||
Example sensors:
|
||||
|
||||
- (`Adafruit <https://www.adafruit.com/product/1899>`__)
|
||||
@ -34,6 +35,8 @@ Example sensors:
|
||||
name: "Temperature"
|
||||
humidity:
|
||||
name: "Humidity"
|
||||
heater:
|
||||
name: "Heater"
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
@ -44,8 +47,12 @@ Configuration variables:
|
||||
- **humidity** (*Optional*): The information for the humidity sensor.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **heater** (*Optional*): The information for the heater sensor.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
|
||||
|
||||
The heater may be enabled to help correct the reading; see the datasheet for more information.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
BIN
components/sensor/images/bmi160-full.jpg
Normal file
After Width: | Height: | Size: 84 KiB |
BIN
components/sensor/images/bmi160-ui.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
components/sensor/images/pmwcs3.jpg
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
components/sensor/images/sen0321.jpg
Normal file
After Width: | Height: | Size: 103 KiB |
135
components/sensor/pmwcs3.rst
Normal file
@ -0,0 +1,135 @@
|
||||
PMWCS3 Capacitive Soil Moisture and Temperature Sensor
|
||||
======================================================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up PMWCS3 capacitive soil moisture sensor in ESPHome.
|
||||
:image: pmwcs3.jpg
|
||||
:keywords: PMWCS3
|
||||
|
||||
The ``pmwcs3`` sensor platform allows you to use your PMWCS3
|
||||
(`informations <https://tinovi.com/wp-content/uploads/2020/01/PM-WCS-3-I2C.pdf>`__)
|
||||
capacitive soil moisture and temperature sensor with ESPHome. The :ref:`I²C bus <i2c>` is required to be set up in
|
||||
your configuration for this sensor to work. Wiring scheme: red is 3.3V, black & shield is GND, green is SDA and white is SCL.
|
||||
2.2kOhm resistors are advised to pullup both SDA & SDA lines.
|
||||
|
||||
.. figure:: images/pmwcs3.jpg
|
||||
:align: center
|
||||
:width: 80.0%
|
||||
|
||||
PMWCS3 Capacitive Soil Moisture and Temperature Sensor.
|
||||
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
sensor:
|
||||
- platform: pmwcs3
|
||||
e25:
|
||||
name: "pmwcs3 e25"
|
||||
ec:
|
||||
name: "pmwcs3 ec"
|
||||
temperature:
|
||||
name: "pmwcs3 temperature"
|
||||
vwc:
|
||||
name: "pmwcs3 vwc"
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **e25** (*Optional*): Electrical Conductivity, reference at 25°C in dS/m.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **ec** (*Optional*): Electrical Conductivity in mS/m.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **temperature** (*Optional*): Soil temperature in °C.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **vwc** (*Optional*): Volumetric Water Content in cm3cm−3.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **address** (*Optional*, int): Manually specify the I²C address of the sensor.
|
||||
Defaults to ``0x63``.
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
|
||||
sensor. Defaults to ``60s``.
|
||||
|
||||
.. _sensor-PMWCS3AirCalibrationAction:
|
||||
|
||||
``pmwcs3.air_calibration`` Action
|
||||
-----------------------------------
|
||||
|
||||
The pmwcs3 probe can to be calibrated in dry/air conditions.
|
||||
The air calibration is a 30s procedure.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
sensor:
|
||||
- platform: pmwcs3
|
||||
id: pmwcs3_id
|
||||
# ...
|
||||
|
||||
# in some trigger
|
||||
on_...:
|
||||
- sensor.pmwcs3_id.air_calibration:
|
||||
id: pmwcs3_id
|
||||
|
||||
Configuration option:
|
||||
|
||||
- **id** (**Required**, :ref:`config-id`): The ID of the pmwcs3 sensor.
|
||||
|
||||
.. _sensor-PMWCS3WaterCalibrationAction:
|
||||
|
||||
``pmwcs3.water_calibration`` Action
|
||||
-----------------------------------
|
||||
|
||||
The pmwcs3 probe can to be also calibrated in water saturated conditions. Install the probe into a glass of water.
|
||||
The water calibration is also a 30s procedure.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
sensor:
|
||||
- platform: pmwcs3
|
||||
id: pmwcs3_id
|
||||
# ...
|
||||
|
||||
# in some trigger
|
||||
on_...:
|
||||
- sensor.pmwcs3_id.water_calibration:
|
||||
id: pmwcs3_id
|
||||
|
||||
Configuration option:
|
||||
|
||||
- **id** (**Required**, :ref:`config-id`): The ID of the pmwcs3 sensor.
|
||||
|
||||
.. _sensor-PMWCS3NewI2cAddressAction:
|
||||
|
||||
``pmwcs3.newi2caddress`` Action
|
||||
-----------------------------------
|
||||
|
||||
A new I2C address can be set (for multi-probes cases for example)
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
sensor:
|
||||
- platform: pmwcs3
|
||||
id: pmwcs3_id
|
||||
# ...
|
||||
|
||||
# in some trigger
|
||||
on_...:
|
||||
- sensor.pmwcs3_id.newi2caddress:
|
||||
id: pmwcs3_id
|
||||
newaddress: 0x65
|
||||
|
||||
Configuration options:
|
||||
|
||||
- **id** (**Required**, :ref:`config-id`): The ID of the pmwcs3 sensor.
|
||||
- **newaddress** (**Required**, int): New I2C address.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ref:`sensor-filters`
|
||||
- :apiref:`pmwcs3/pmwcs3.h`
|
||||
- `Temperature Compensation for Conductivity <https://www.aqion.de/site/112>`__
|
||||
- `PMWCS3 Library <https://github.com/tinovi/i2cArduino>`__ by `@tinovi <https://github.com/tinovi>`__
|
||||
- :ghedit:`Edit`
|
49
components/sensor/sen0321.rst
Normal file
@ -0,0 +1,49 @@
|
||||
SEN0321 DFRobot Ozone Sensor
|
||||
============================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up SEN0321 DFRobot ozone sensors
|
||||
:image: sen0321.jpg
|
||||
:keywords: sen0321
|
||||
|
||||
The ``sen0321`` sensor platform allows you to use your DFRobot
|
||||
(`product wiki <https://wiki.dfrobot.com/Gravity_IIC_Ozone_Sensor_(0-10ppm)%20SKU_SEN0321>`__,
|
||||
`DFRobot`_) ozone sensors with ESPHome. The sensor is used in automatic mode where the sensor actively
|
||||
updates its measurements every 2 seconds.
|
||||
:ref:`I²C <i2c>` is required to be set up in your configuration for this sensor to work.
|
||||
|
||||
.. figure:: images/sen0321.jpg
|
||||
:align: center
|
||||
:width: 50.0%
|
||||
|
||||
DFRobot Ozone Sensor (sen0321).
|
||||
|
||||
.. _DFRobot: https://www.dfrobot.com/product-2005.html
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
sensor:
|
||||
- platform: sen0321
|
||||
name: "Ozone Sensor"
|
||||
address: 0x73
|
||||
update_interval: 60s
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- All options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **address** (*Optional*, int): Manually specify the I²C address of
|
||||
the sensor. Defaults to ``0x73``. Sensor can be configured to ``0x70``, ``0x71``, ``0x72``, or ``0x73`` using jumpers on the board.
|
||||
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
|
||||
sensor. Defaults to ``60s``.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ref:`sensor-filters`
|
||||
- :apiref:`sen0321/sen0321.h`
|
||||
- `DFRobot SEN0321 Library <https://github.com/DFRobot/DFRobot_OzoneSensor/>`__ by `DFRobot <https://www.dfrobot.com/>`__
|
||||
- :ghedit:`Edit`
|
@ -48,6 +48,8 @@ Configuration variables:
|
||||
Defaults to ``0x44``.
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
|
||||
sensor. Defaults to ``60s``.
|
||||
- **heater_enabled** (*Optional*, bool): Turn on/off heater at boot.
|
||||
Defaults to ``true``.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
@ -4,47 +4,145 @@ SPI Bus
|
||||
=======
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up an SPI bus in ESPHome
|
||||
:description: Instructions for setting up SPI components in ESPHome
|
||||
:image: spi.svg
|
||||
:keywords: SPI
|
||||
|
||||
SPI is a very common high-speed protocol for a lot of devices. The SPI bus usually consists of 4 wires:
|
||||
SPI is a very common high-speed protocol for a lot of devices. The ESPHome SPI component implements only the host controller
|
||||
role, where it controls the bus, and writes or reads data from peripherals attached to the bus.
|
||||
|
||||
The SPI bus usually consists of 4 wires:
|
||||
|
||||
- **CLK**: Is used to tell the receiving device when to read data. All devices on the bus can
|
||||
share this line. Sometimes also called ``SCK``.
|
||||
- **CS** (chip select): Is used to tell the receiving device when it should listen for data. Each device has
|
||||
an individual CS line. Sometimes also called ``SS``. If the SPI bus has a single device, its CS pin
|
||||
can sometimes be connected to ground to tell it that it is always selected.
|
||||
- **MOSI** (also DIN): Is used to send data from the master (the ESP) to the receiving device. All devices on the bus can
|
||||
share this line.
|
||||
- **MISO** (also DOUT): Is used to receive data. All devices on the bus can
|
||||
share this line.
|
||||
- **MOSI** (aka SDO - Serial Data Out): Is used to send data from the controller (the ESP) to the peripheral device.
|
||||
All devices on the bus share this line.
|
||||
- **MISO** (also SDI - Serial Data In): Is used to receive data. All devices on the bus share this line.
|
||||
|
||||
In some cases one of **MOSI** or **MISO** do not exist as the receiving device only accepts data or sends data.
|
||||
|
||||
To set up SPI devices in ESPHome, you first need to place a top-level SPI hub like below which defines what pins to
|
||||
use for the functions described above. The **CS** pins are then individually managed by the components. The ``spi:``
|
||||
component also accepts a list of buses if you want to have multiple SPI buses with your ESP (though this should
|
||||
rarely be necessary, as the SPI bus can be shared by the devices).
|
||||
To set up SPI devices in ESPHome, you first need to place a top-level SPI component which defines the pins to
|
||||
use for the functions described above. The **CS** pins are individually managed by the other components that
|
||||
reference the ``spi`` component.
|
||||
This component also accepts a list of controllers if you want to implement multiple SPI buses.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
# Example configuration entry - single controller
|
||||
spi:
|
||||
clk_pin: GPIO14
|
||||
mosi_pin: GPIO13
|
||||
miso_pin: GPIO12
|
||||
|
||||
# Example configuration entry - two controllers
|
||||
spi:
|
||||
- id: spi_bus0
|
||||
clk_pin: GPIO18
|
||||
mosi_pin: GPIO23
|
||||
miso_pin: GPIO19
|
||||
interface: hardware
|
||||
- id: spi_bus1
|
||||
clk_pin: GPIO14
|
||||
mosi_pin: GPIO27
|
||||
miso_pin: GPIO26
|
||||
interface: any
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **clk_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin used for the clock line of the SPI bus.
|
||||
- **mosi_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The pin used for the MOSI line of the SPI bus.
|
||||
- **miso_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The pin used for the MISO line of the SPI bus.
|
||||
- **force_sw** (*Optional*, boolean): Whether software implementation should be used even if hardware one is available.
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID for this SPI hub if you need multiple SPI hubs.
|
||||
- **interface** (*Optional*): Controls which hardware or software SPI implementation should be used.
|
||||
Value may be one of ``any`` (default), ``software``, ``hardware``, ``spi``, ``spi2`` or ``spi3``, depending on
|
||||
the particular chip. See discussion below.
|
||||
- **force_sw** (*Optional*, **Deprecated**, boolean): Whether software implementation should be used even if a hardware
|
||||
controller is available. Default is ``false``.
|
||||
|
||||
Interface selection:
|
||||
--------------------
|
||||
|
||||
ESP32 and ESP8266 chips have several hardware SPI controller implementations - usually the first one or two
|
||||
are reserved for use to access
|
||||
the flash and PSRAM memories, leaving one or two user-accessible controllers. SPI controller instances configured in
|
||||
ESPHome can be assigned to one of these with the ``interface:`` configuration option.
|
||||
|
||||
By default (``interface: any``) the first available hardware controller will be assigned, a second if available then
|
||||
any further instances configured will use software mode. You can choose a specific controller with ``spi`` (meaning
|
||||
the first or only available controller) or one of ``spi2`` and ``spi3`` for ESP32 chips with two available SPI
|
||||
controllers. Note that SPI0 and SPI1 are typically not available, being reserved for accessing flash and PSRAM.
|
||||
|
||||
If the ``software`` option is chosen, or you configure more SPI instances than there are available hardware controllers,
|
||||
the remaining instances will use a software implementation, which is unable to achieve data rates above a few hundred
|
||||
kHz. This is acceptable for sensors or other devices not transferring large amounts of data, but will be too slow
|
||||
to drive a display for example.
|
||||
|
||||
While the ESP32 supports the reassignment of the default SPI pins to most other GPIO pins, using the dedicated SPI pins
|
||||
can improve performance and stability for certain ESP/device combinations.
|
||||
ESP8266 has a more limited selection of pins that can be used; check the datasheet for more information.
|
||||
|
||||
Generic SPI device component:
|
||||
-----------------------------
|
||||
.. _spi_device:
|
||||
|
||||
Other components that depend on the SPI component will reference it, typically to communicate with specific
|
||||
peripheral devices. There is also a general-purpose SPI device component that can be used to communicate with hardware not
|
||||
supported by a specific component. It allows selection of the SPI mode, data_rate, CS pin and bit order.
|
||||
Reads and writes on the device can be performed with lambdas. For example:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
spi:
|
||||
clk_pin: GPIO14
|
||||
mosi_pin: GPIO27
|
||||
miso_pin: GPIO26
|
||||
interface: hardware
|
||||
|
||||
spi_device:
|
||||
id: spidev
|
||||
cs_pin: GPIO13
|
||||
data_rate: 2MHz
|
||||
mode: 3
|
||||
bit_order: lsb_first
|
||||
|
||||
on...:
|
||||
then:
|
||||
- lambda: !lambda |-
|
||||
id(spidev).enable();
|
||||
id(spidev).write_byte(0x4F);
|
||||
id(spidev).disable();
|
||||
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **data_rate** (*Optional*): Set the data rate of the controller. One of ``80MHz``, ``40MHz``, ``20MHz``, ``10MHz``,
|
||||
``5MHz``, ``4MHz``, ``2MHz``, ``1MHz`` (default), ``200kHz``, ``75kHz`` or ``1kHz``. A numeric value in Hz can alternatively
|
||||
be specified.
|
||||
- **mode** (*Optional*): Set the controller mode - one of ``mode0``, ``mode1``, ``mode2``, ``mode3``. The default is ``mode3``.
|
||||
See table below for more information
|
||||
- **bit_order** (*Optional*): Set the bit order - choose one of ``msb_first`` (default) or ``lsb_first``.
|
||||
- **cs_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The CS pin.
|
||||
|
||||
SPI modes:
|
||||
----------
|
||||
|
||||
SPI devices operate in one of four modes as per the table below. The choice of mode is dictated by the requirements
|
||||
of the speficic peripheral chip.
|
||||
|
||||
.. csv-table:: Supported Modes
|
||||
:header: "Mode", "Clock Idle Polarity", "Clock Phase", "Data shifted on", "Data sampled on"
|
||||
|
||||
"0", "low", "leading", "/CS activation and falling CLK", "rising CLK"
|
||||
"1", "low", "trailing", "rising CLK", "falling CLK"
|
||||
"2", "high", "leading", "/CS activation and rising CLK", "falling CLK"
|
||||
"3", "high", "trailing", "falling CLK", "rising CLK"
|
||||
|
||||
|
||||
**Please note:** while both ESP8266 and ESP32 support the reassignment of the default SPI pins to other GPIO pins, using the dedicated SPI pins can improve performance and stability for certain ESP/device combinations.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
31
components/text_sensor/libretiny.rst
Normal file
@ -0,0 +1,31 @@
|
||||
LibreTiny Text Sensor
|
||||
=====================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up LibreTiny text sensors.
|
||||
:image: libretiny.svg
|
||||
|
||||
The ``libretiny`` text sensor platform exposes various LibreTiny core
|
||||
information via text sensors.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
text_sensor:
|
||||
- platform: libretiny
|
||||
version:
|
||||
name: LibreTiny Version
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **version** (*Optional*): Expose the version of LibreTiny core as a text sensor. All options from
|
||||
:ref:`Text Sensor <config-text_sensor>`.
|
||||
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :doc:`/components/libretiny`
|
||||
- :apiref:`libretiny/lt_component.h`
|
||||
- :ghedit:`Edit`
|
296
components/wireguard.rst
Normal file
@ -0,0 +1,296 @@
|
||||
WireGuard Component
|
||||
===================
|
||||
|
||||
.. |wireguard| unicode:: WireGuard 0xAE
|
||||
.. _wireguard: https://www.wireguard.org/
|
||||
|
||||
.. seo::
|
||||
:description: Instructions to setup WireGuard for your ESP board.
|
||||
:keywords: WireGuard, VPN, ESP32
|
||||
|
||||
|wireguard|_ is an extremely simple yet fast and modern VPN that utilizes
|
||||
state-of-the-art cryptography. This component uses a **custom**
|
||||
implementation not developed by original authors and currently
|
||||
available for **ESP32 platform only**.
|
||||
|
||||
Please note that *"WireGuard" and the "WireGuard" logo are
|
||||
registered trademarks of Jason A. Donenfeld.* See
|
||||
`"WireGuard" Trademark Usage Policy <https://www.wireguard.com/trademark-policy/>`__
|
||||
for additional information.
|
||||
|
||||
.. warning::
|
||||
|
||||
To successfully use this component you must have |wireguard| also
|
||||
on your remote host (already installed and ready to accept connections).
|
||||
If you don't have it please read the section :ref:`wireguard-installation`.
|
||||
|
||||
.. warning::
|
||||
|
||||
This component requires the system clock to be synchronized.
|
||||
|
||||
See :doc:`time/index` to setup a time source
|
||||
and **do not use** ``homeassistant`` time-platform if
|
||||
Home Assistant is on the remote peer because the time
|
||||
synchronization is a prerequisite to establish the VPN link.
|
||||
|
||||
The :doc:`time/sntp` is a valid time-platform choice.
|
||||
|
||||
A VPN tunnel can be created to a **single** remote peer
|
||||
adding the following to your configuration:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
wireguard:
|
||||
address: x.y.z.w
|
||||
private_key: AaBbCcDd...=
|
||||
peer_endpoint: wg.server.example
|
||||
peer_public_key: EeFfGgHh...=
|
||||
|
||||
# Optional netmask (this is the default if omitted)
|
||||
netmask: 255.255.255.255
|
||||
|
||||
# Optional endpoint port (WireGuard default if omitted)
|
||||
peer_port: 51820
|
||||
|
||||
# Optional pre-shared key (omit if not in use)
|
||||
peer_preshared_key: XxYyZzWw...=
|
||||
|
||||
# Optional list of ip/mask (any host is allowed if omitted)
|
||||
peer_allowed_ips:
|
||||
- x.y.z.0/24
|
||||
- l.m.n.o/32 # the /32 can be omitted for single host
|
||||
- [...]
|
||||
|
||||
# Optional keepalive (disabled by default)
|
||||
peer_persistent_keepalive: 25s
|
||||
|
||||
It is recommended to use *secrets* at least for private and pre-shared keys:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
wireguard:
|
||||
private_key: !secret wg_privkey
|
||||
peer_preshared_key: !secret wg_shrdkey
|
||||
|
||||
Configuration variables
|
||||
------------------------
|
||||
|
||||
.. _wireguard-address:
|
||||
|
||||
- **address** (**Required**, IPv4 address): The local VPN address of the device.
|
||||
|
||||
If you intend to upload firmwares through the VPN link you probably need
|
||||
to copy this value to the ``use_address`` parameter of the :doc:`wifi`.
|
||||
|
||||
- **netmask** (*Optional*, IPv4 address): The netmask for the configured address.
|
||||
Default to ``255.255.255.255``.
|
||||
|
||||
See section :ref:`wireguard-static-routes` if outgoing connections are
|
||||
expected to transit through the VPN link (e.g. with :doc:`mqtt` to a
|
||||
remote MQTT broker).
|
||||
|
||||
- **private_key** (**Required**, string): The private key of the device.
|
||||
|
||||
- **peer_endpoint** (**Required**, string): The hostname of the remote peer.
|
||||
|
||||
- **peer_port** (*Optional*, UDP port): The port where remote peer is listening on.
|
||||
The |wireguard| default is ``51820``.
|
||||
|
||||
- **peer_public_key** (**Required**, string): The public key of the remote peer.
|
||||
|
||||
- **peer_preshared_key** (*Optional*, string): The chosen pre-shared key between
|
||||
local device and remote peer.
|
||||
|
||||
- **peer_persistent_keepalive** (*Optional*, :ref:`config-time`): The amount of
|
||||
time after which a *keepalive* packet is sent through the tunnel.
|
||||
By default this feature is disabled (``0s``).
|
||||
|
||||
If there are NATs or firewalls between the device and the remote peer set
|
||||
this value to something like ``25s``.
|
||||
|
||||
- **peer_allowed_ips** (*Optional*, list of IPv4 networks): A list of networks
|
||||
in CIDR notation (*IP/mask*) to be allowed through the tunnel. Any host
|
||||
(``0.0.0.0/0``) will be allowed if this parameter is omitted.
|
||||
|
||||
The device own ``address/32`` is always added by default to this list.
|
||||
|
||||
See section :ref:`wireguard-static-routes` if outgoing connections are
|
||||
expected to transit through the VPN link (e.g. with :doc:`mqtt` to a
|
||||
remote MQTT broker).
|
||||
|
||||
- **reboot_timeout** (*Optional*, :ref:`config-time`): The amount of time to wait
|
||||
before rebooting the device when the remote peer is unreachable. Can be disabled
|
||||
by setting this to ``0s``. Default to ``15min``.
|
||||
|
||||
- **require_connection_to_proceed** (*Optional*, boolean): Set to ``true`` to
|
||||
wait for the remote peer to be up before continuing to boot the device.
|
||||
Default to ``false``.
|
||||
|
||||
This can be used to delay the initialization of components that use the
|
||||
VPN tunnel as long as the VPN isn't ready. For example if you are using
|
||||
:doc:`mqtt` to reach a remote broker you may experience boot freeze just
|
||||
after the setup of MQTT because it waits for the broker to be reachable,
|
||||
but the connection cannot be established until the VPN link is
|
||||
active too. To bypass such deadlock set this parameter to ``true`` in
|
||||
order to not initialize MQTT until the remote peer is up.
|
||||
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): How often to check
|
||||
the connection status and the latest handshake value. Default to ``10s``.
|
||||
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||
|
||||
.. _wireguard-static-routes:
|
||||
|
||||
Static routes and outgoing connections
|
||||
--------------------------------------
|
||||
|
||||
Currently there is no way on ESP32 devices to configure static routes for
|
||||
network interfaces, so the ``peer_allowed_ips`` list is used only to allow
|
||||
(or drop) packets that pass through the VPN tunnel, not to define static
|
||||
routes for remote hosts.
|
||||
|
||||
The routes are implicitly added by the configured ``netmask`` and
|
||||
**only** packets with destination *inside* the same network defined
|
||||
by ``address/netmask`` will be routed to the tunnel.
|
||||
|
||||
This means that the user has to tweak the ``netmask`` parameter
|
||||
to "cover" **all** the networks in the allowed IPs list in order
|
||||
to successfully establish *outgoing* connections to remote hosts.
|
||||
Incoming connections are not affected by ``netmask``.
|
||||
|
||||
Let's explain with some examples:
|
||||
|
||||
+--------------+---------------------+----------------------+------------------------------+
|
||||
| address | netmask | allowed ips | working outgoing connections |
|
||||
+==============+=====================+======================+==============================+
|
||||
| 172.16.0.100 | *omitted* or | *omitted* or | **none**, |
|
||||
| | 255.255.255.255 | any other value | no routes are created |
|
||||
+ +---------------------+----------------------+------------------------------+
|
||||
| | 255.255.255.0 | *omitted* | only to ``172.16.0.0/24`` |
|
||||
+ + +----------------------+ because ``192.168.0.0/24`` +
|
||||
| | | - 172.16.0.0/24 | and any other network will |
|
||||
| | | - 192.168.0.0/24 | be outside ``172.16.0.0/24`` |
|
||||
| | | - *any other* | |
|
||||
+ + +----------------------+------------------------------+
|
||||
| | | - 192.168.0.0/24 | **none** because |
|
||||
| | | | ``192.168.0.0/24`` is not |
|
||||
| | | | part of ``172.16.0.0/24`` |
|
||||
+--------------+---------------------+----------------------+------------------------------+
|
||||
| 10.44.0.100 | 255.0.0.0 | *omitted* | to ``10.0.0.0/8`` network |
|
||||
+ + +----------------------+------------------------------+
|
||||
| | | - 10.44.0.0/16 | only to the networks in |
|
||||
| | | - 10.10.0.0/16 | the allowed list because the |
|
||||
| | | | netmask will route the whole |
|
||||
| | | | ``10.0.0.0/8`` but wireguard |
|
||||
| | | | allows only those two |
|
||||
| | | | subnets |
|
||||
+--------------+---------------------+----------------------+------------------------------+
|
||||
| any | 0.0.0.0 | *omitted* | **any** |
|
||||
+ + +----------------------+------------------------------+
|
||||
| | | - 172.16.0.0/24 | to any network that is in |
|
||||
| | | - 10.44.0.0/16 | the list of allowed IPs |
|
||||
| | | - 10.10.0.0/16 | because the netmask will |
|
||||
| | | | route any traffic but |
|
||||
| | | | wireguard allows only its |
|
||||
| | | | own list |
|
||||
+--------------+---------------------+----------------------+------------------------------+
|
||||
|
||||
.. note::
|
||||
|
||||
Setting the ``netmask`` to ``0.0.0.0`` has the effect of routing
|
||||
through the VPN link any traffic. It is like having set the wireguard
|
||||
interface as the system default.
|
||||
|
||||
.. _wireguard-sensors:
|
||||
|
||||
Sensors
|
||||
-------
|
||||
|
||||
Here after the sensors available for this component.
|
||||
|
||||
Status Binary Sensor
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
This binary sensor tracks the connection status (*online*/*offline*) of the remote peer.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
binary_sensor:
|
||||
- platform: wireguard
|
||||
status:
|
||||
name: 'WireGuard Status'
|
||||
|
||||
All options from :ref:`Binary Sensor <config-binary_sensor>` can be added to the
|
||||
above configuration.
|
||||
|
||||
Latest Handshake Sensor
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
This sensor reports the *timestamp* of the latest completed handshake.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
sensor:
|
||||
- platform: wireguard
|
||||
latest_handshake:
|
||||
name: 'WireGuard Latest Handshake'
|
||||
|
||||
All options from :ref:`Sensor <config-sensor>` can be added to the
|
||||
above configuration.
|
||||
|
||||
.. _wireguard-installation:
|
||||
|
||||
Remote peer setup
|
||||
-----------------
|
||||
|
||||
There are many different ways for installing and configuring
|
||||
|wireguard| on servers, home servers or general host. It depends
|
||||
on the platform and on the operating system in use.
|
||||
|
||||
You can start reading the `official documentation <https://www.wireguard.com/>`__
|
||||
to have an overview of what it is and on how to install it *system wide* for
|
||||
common operating systems. Read the thread at `Home Assistant Community Add-on: WireGuard
|
||||
<https://community.home-assistant.io/t/home-assistant-community-add-on-wireguard/134662>`__
|
||||
if you intend to install it through Home Assistant. Plase note that securely
|
||||
setting up a VPN requires some networking experience, you will need to open
|
||||
router ports and possibly use custom commands to redirect traffic.
|
||||
|
||||
Once everything is configured you should be able to add the device
|
||||
to Home Assistant. See next section.
|
||||
|
||||
Connecting to remote Home Assistant
|
||||
-----------------------------------
|
||||
|
||||
The ESP device should interact with remote Home Assistant, across the VPN link,
|
||||
as it is on the local network but probably the initial *auto discovery*
|
||||
will not work and you have to add the device **manually**.
|
||||
|
||||
These are the steps:
|
||||
|
||||
1. go to the Home Assistant "Integrations" page
|
||||
2. click on the "Add Integration" button (bottom right corner)
|
||||
3. select "ESPHome" from the list
|
||||
4. insert the configured IP :ref:`address <wireguard-address>`
|
||||
as the host name
|
||||
|
||||
The device should now be linked to your remote Home Assistant.
|
||||
|
||||
.. note::
|
||||
|
||||
If you have issues linking the ESP device try setting
|
||||
the ``use_address`` parameter of the :doc:`wifi` to the value
|
||||
of the :ref:`address <wireguard-address>` configured here.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :doc:`time/index`
|
||||
- :doc:`time/sntp`
|
||||
- |wireguard|_ official website
|
||||
- `Home Assistant Community Add-on: WireGuard
|
||||
<https://community.home-assistant.io/t/home-assistant-community-add-on-wireguard/134662>`__
|
||||
(also on `GitHub <https://github.com/hassio-addons/addon-wireguard>`__)
|
||||
- :ghedit:`Edit`
|
4
conf.py
@ -67,9 +67,9 @@ author = "ESPHome"
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = "2023.8"
|
||||
version = "2023.9"
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = "2023.8.3"
|
||||
release = "2023.9.0"
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
|
@ -273,7 +273,8 @@ global variables can be used to store the state of a garage door.
|
||||
# Example for global string variable
|
||||
- id: my_global_string
|
||||
type: std::string
|
||||
restore_value: no # Strings cannot be saved/restored
|
||||
restore_value: yes
|
||||
max_restore_data_length: 24
|
||||
initial_value: '"Global value is"'
|
||||
|
||||
# In an automation
|
||||
@ -298,6 +299,8 @@ Configuration variables:
|
||||
- **restore_value** (*Optional*, boolean): Whether to try to restore the state on boot up.
|
||||
Be careful: on the ESP8266, you only have a total of 96 bytes available for this! Defaults to ``no``.
|
||||
This will use storage in "RTC memory", so it won't survive a power-cycle unless you use the ``esp8266_restore_from_flash`` option to save to flash. See :doc:`esp8266_restore_from_flash </components/esphome>` for details.
|
||||
- **max_restore_data_length** (*Optional*, integer): Only applies to variables of type ``std::string``. ESPHome will allocate enough space for this many characters,
|
||||
plus single character of overhead. Strings longer than this will not be saved. The max value of this variable is 254 characters, and the default is 63 characters.
|
||||
- **initial_value** (*Optional*, string): The value with which to initialize this variable if the state
|
||||
can not be restored or if state restoration is not enabled. This needs to be wrapped in quotes! Defaults to
|
||||
the C++ default value for this type (for example ``0`` for integers).
|
||||
|
@ -19,6 +19,7 @@ Contributors
|
||||
- `007hacky007 (@007hacky007) <https://github.com/007hacky007>`__
|
||||
- `0hax (@0hax) <https://github.com/0hax>`__
|
||||
- `0x0a11c0de (@0x0a11c0de) <https://github.com/0x0a11c0de>`__
|
||||
- `Tercio Filho (@0x3333) <https://github.com/0x3333>`__
|
||||
- `Denis Bodor (aka Lefinnois) (@0xDRRB) <https://github.com/0xDRRB>`__
|
||||
- `2016for (@2016for) <https://github.com/2016for>`__
|
||||
- `2mikrobi (@2mikrobi) <https://github.com/2mikrobi>`__
|
||||
@ -95,6 +96,7 @@ Contributors
|
||||
- `Sergey Anisimov (@anisimovsergey) <https://github.com/anisimovsergey>`__
|
||||
- `Nikolay Vasilchuk (@Anonym-tsk) <https://github.com/Anonym-tsk>`__
|
||||
- `Anthony Keane (@anthonykeane) <https://github.com/anthonykeane>`__
|
||||
- `Anthony (@AnthonyMaiorani) <https://github.com/AnthonyMaiorani>`__
|
||||
- `Rémi K. (@antibill51) <https://github.com/antibill51>`__
|
||||
- `Antonio Fiol (@antonio-fiol) <https://github.com/antonio-fiol>`__
|
||||
- `Adriaan Peeters (@apeeters) <https://github.com/apeeters>`__
|
||||
@ -147,6 +149,7 @@ Contributors
|
||||
- `Bella Coola (@BellaCoola) <https://github.com/BellaCoola>`__
|
||||
- `Pierre (@bemble) <https://github.com/bemble>`__
|
||||
- `Ben-Schwabe (@Ben-Schwabe) <https://github.com/Ben-Schwabe>`__
|
||||
- `Benas09 (@Benas09) <https://github.com/Benas09>`__
|
||||
- `Ben Hoff (@benhoff) <https://github.com/benhoff>`__
|
||||
- `Benjamin Aigner (@benjaminaigner) <https://github.com/benjaminaigner>`__
|
||||
- `Benno Pütz (@bennop) <https://github.com/bennop>`__
|
||||
@ -167,6 +170,7 @@ Contributors
|
||||
- `Bill Church (@billchurch) <https://github.com/billchurch>`__
|
||||
- `Brian Kaufman (@bkaufx) <https://github.com/bkaufx>`__
|
||||
- `JDavid (@blackhack) <https://github.com/blackhack>`__
|
||||
- `blackshoals (@blackshoals) <https://github.com/blackshoals>`__
|
||||
- `blacktirion (@blacktirion) <https://github.com/blacktirion>`__
|
||||
- `blakadder (@blakadder) <https://github.com/blakadder>`__
|
||||
- `Branimir Lambov (@blambov) <https://github.com/blambov>`__
|
||||
@ -224,6 +228,7 @@ Contributors
|
||||
- `Carlos Cordero (@ccorderor) <https://github.com/ccorderor>`__
|
||||
- `cdmonk (@cdmonk) <https://github.com/cdmonk>`__
|
||||
- `ceaswaran (@ceaswaran) <https://github.com/ceaswaran>`__
|
||||
- `Xavi (@Cebeerre) <https://github.com/Cebeerre>`__
|
||||
- `Cellie (@CelliesProjects) <https://github.com/CelliesProjects>`__
|
||||
- `Jeppe H. (@cenobitedk) <https://github.com/cenobitedk>`__
|
||||
- `Chris Feenstra (@cfeenstra1024) <https://github.com/cfeenstra1024>`__
|
||||
@ -280,6 +285,7 @@ Contributors
|
||||
- `d-rez (@d-rez) <https://github.com/d-rez>`__
|
||||
- `Dale Higgs (@dale3h) <https://github.com/dale3h>`__
|
||||
- `damanti-me (@damanti-me) <https://github.com/damanti-me>`__
|
||||
- `Justin Grover (@dancingcactus) <https://github.com/dancingcactus>`__
|
||||
- `Dan C Williams (@dancwilliams) <https://github.com/dancwilliams>`__
|
||||
- `Daniel Bjørnbakk (@danibjor) <https://github.com/danibjor>`__
|
||||
- `Daniel Kucera (@danielkucera) <https://github.com/danielkucera>`__
|
||||
@ -324,6 +330,7 @@ Contributors
|
||||
- `denes44 (@denes44) <https://github.com/denes44>`__
|
||||
- `Dennis (@dennisvbussel) <https://github.com/dennisvbussel>`__
|
||||
- `dentra (@dentra) <https://github.com/dentra>`__
|
||||
- `depasseg (@depasseg) <https://github.com/depasseg>`__
|
||||
- `Davide Depau (@depau) <https://github.com/depau>`__
|
||||
- `dependabot[bot] (@dependabot[bot]) <https://github.com/dependabot[bot]>`__
|
||||
- `Joeri Colman (@depuits) <https://github.com/depuits>`__
|
||||
@ -354,7 +361,6 @@ Contributors
|
||||
- `Dominik (@DomiStyle) <https://github.com/DomiStyle>`__
|
||||
- `Derek M. (@doolbneerg) <https://github.com/doolbneerg>`__
|
||||
- `Dorian Zedler (@dorianim) <https://github.com/dorianim>`__
|
||||
- `Mark Dietzer (@Doridian) <https://github.com/Doridian>`__
|
||||
- `Sebastian Krzyszkowiak (@dos1) <https://github.com/dos1>`__
|
||||
- `Jiang Sheng (@doskoi) <https://github.com/doskoi>`__
|
||||
- `Artem Sheremet (@dotdoom) <https://github.com/dotdoom>`__
|
||||
@ -495,6 +501,7 @@ Contributors
|
||||
- `Germain Masse (@gmasse) <https://github.com/gmasse>`__
|
||||
- `Garret Buell (@gmbuell) <https://github.com/gmbuell>`__
|
||||
- `Jelle Raaijmakers (@gmta) <https://github.com/gmta>`__
|
||||
- `gnicolasb (@gnicolasb) <https://github.com/gnicolasb>`__
|
||||
- `Go0oSer (@Go0oSer) <https://github.com/Go0oSer>`__
|
||||
- `Dario Gogliandolo (@godario) <https://github.com/godario>`__
|
||||
- `Gonzalo Paniagua Javier (@gonzalop) <https://github.com/gonzalop>`__
|
||||
@ -506,12 +513,12 @@ Contributors
|
||||
- `Greg Arnold (@GregJArnold) <https://github.com/GregJArnold>`__
|
||||
- `Greg MacLellan (@gregmac) <https://github.com/gregmac>`__
|
||||
- `Gil Peeters (@grillp) <https://github.com/grillp>`__
|
||||
- `Guillaume Rischard (@grischard) <https://github.com/grischard>`__
|
||||
- `George (@grob6000) <https://github.com/grob6000>`__
|
||||
- `groovejumper (@groovejumper) <https://github.com/groovejumper>`__
|
||||
- `gsexton (@gsexton) <https://github.com/gsexton>`__
|
||||
- `Gabriel Sieben (@gsieben) <https://github.com/gsieben>`__
|
||||
- `Jadson Santos (@gtjadsonsantos) <https://github.com/gtjadsonsantos>`__
|
||||
- `guardmedia (@guardmedia) <https://github.com/guardmedia>`__
|
||||
- `Guillaume DELVIT (@guiguid) <https://github.com/guiguid>`__
|
||||
- `guillempages (@guillempages) <https://github.com/guillempages>`__
|
||||
- `Guyohms (@Guyohms) <https://github.com/Guyohms>`__
|
||||
@ -538,7 +545,10 @@ Contributors
|
||||
- `Hermann Kraus (@herm) <https://github.com/herm>`__
|
||||
- `Herr Frei (@herrfrei) <https://github.com/herrfrei>`__
|
||||
- `highground88 (@highground88) <https://github.com/highground88>`__
|
||||
- `hindenbugbite (@hindenbugbite) <https://github.com/hindenbugbite>`__
|
||||
- `Henrik Fransson (@hmfhmf) <https://github.com/hmfhmf>`__
|
||||
- `Hamish Moffatt (@hmoffatt) <https://github.com/hmoffatt>`__
|
||||
- `Hobby Components (@HobbyComponents) <https://github.com/HobbyComponents>`__
|
||||
- `Marcel Hoppe (@hobbypunk90) <https://github.com/hobbypunk90>`__
|
||||
- `Hopperpop (@Hopperpop) <https://github.com/Hopperpop>`__
|
||||
- `Ilia Sotnikov (@hostcc) <https://github.com/hostcc>`__
|
||||
@ -640,8 +650,6 @@ Contributors
|
||||
- `jmichiel (@jmichiel) <https://github.com/jmichiel>`__
|
||||
- `JMoratelli (@JMoratelli) <https://github.com/JMoratelli>`__
|
||||
- `Jonathas Barbosa (@jnthas) <https://github.com/jnthas>`__
|
||||
- `Joe Gross (@joegross) <https://github.com/joegross>`__
|
||||
- `Johan van der Kuijl (@johanvanderkuijl) <https://github.com/johanvanderkuijl>`__
|
||||
- `Johboh (@Johboh) <https://github.com/Johboh>`__
|
||||
- `John Britton (@johndbritton) <https://github.com/johndbritton>`__
|
||||
- `John Erik Halse (@johnerikhalse) <https://github.com/johnerikhalse>`__
|
||||
@ -675,6 +683,7 @@ Contributors
|
||||
- `kaegi (@kaegi) <https://github.com/kaegi>`__
|
||||
- `kahrendt (@kahrendt) <https://github.com/kahrendt>`__
|
||||
- `Kamahat (@kamahat) <https://github.com/kamahat>`__
|
||||
- `Kapil Yedidi (@kapily) <https://github.com/kapily>`__
|
||||
- `Karl0ss (@karl0ss) <https://github.com/karl0ss>`__
|
||||
- `Kattni (@kattni) <https://github.com/kattni>`__
|
||||
- `Krzysztof Białek (@kbialek) <https://github.com/kbialek>`__
|
||||
@ -777,10 +786,8 @@ Contributors
|
||||
- `Ben Marengo (@marengaz) <https://github.com/marengaz>`__
|
||||
- `Marvin Gaube (@margau) <https://github.com/margau>`__
|
||||
- `maringeph (@maringeph) <https://github.com/maringeph>`__
|
||||
- `Mario (@mario-tux) <https://github.com/mario-tux>`__
|
||||
- `Mark Hildreth (@markhildreth) <https://github.com/markhildreth>`__
|
||||
- `Mark Schabacker (@markschabacker) <https://github.com/markschabacker>`__
|
||||
- `Marek Marczykowski-Górecki (@marmarek) <https://github.com/marmarek>`__
|
||||
- `marshn (@marshn) <https://github.com/marshn>`__
|
||||
- `marsjan155 (@marsjan155) <https://github.com/marsjan155>`__
|
||||
- `Martin (@martgras) <https://github.com/martgras>`__
|
||||
@ -876,7 +883,6 @@ Contributors
|
||||
- `Nicky Ivy (@nickyivyca) <https://github.com/nickyivyca>`__
|
||||
- `NP v/d Spek (@nielsnl68) <https://github.com/nielsnl68>`__
|
||||
- `Niels Zeilemaker (@NielsZeilemaker) <https://github.com/NielsZeilemaker>`__
|
||||
- `Joakim Vindgard (@nigobo) <https://github.com/nigobo>`__
|
||||
- `nikito7 (@nikito7) <https://github.com/nikito7>`__
|
||||
- `niklasweber (@niklasweber) <https://github.com/niklasweber>`__
|
||||
- `Zvonimir Haramustek (@nitko12) <https://github.com/nitko12>`__
|
||||
@ -950,7 +956,6 @@ Contributors
|
||||
- `Peter Kuehne (@pkuehne) <https://github.com/pkuehne>`__
|
||||
- `Plácido Revilla (@placidorevilla) <https://github.com/placidorevilla>`__
|
||||
- `PlainTechEnthusiast (@PlainTechEnthusiast) <https://github.com/PlainTechEnthusiast>`__
|
||||
- `Marcus Kempe (@plopp) <https://github.com/plopp>`__
|
||||
- `Jan Pluskal (@pluskal) <https://github.com/pluskal>`__
|
||||
- `DK (@poldim) <https://github.com/poldim>`__
|
||||
- `poloswiss (@poloswiss) <https://github.com/poloswiss>`__
|
||||
@ -972,7 +977,6 @@ Contributors
|
||||
- `Quinn Casey (@qcasey) <https://github.com/qcasey>`__
|
||||
- `Tommy Jonsson (@quazzie) <https://github.com/quazzie>`__
|
||||
- `Quentin Smith (@quentinmit) <https://github.com/quentinmit>`__
|
||||
- `Johannes Rebling (@r0oland) <https://github.com/r0oland>`__
|
||||
- `Richard Kuhnt (@r15ch13) <https://github.com/r15ch13>`__
|
||||
- `Richard Miles (@r89m) <https://github.com/r89m>`__
|
||||
- `Aaron Zhang (@rabbit-aaron) <https://github.com/rabbit-aaron>`__
|
||||
@ -988,7 +992,6 @@ Contributors
|
||||
- `reddn (@reddn) <https://github.com/reddn>`__
|
||||
- `redlukas (@redlukas) <https://github.com/redlukas>`__
|
||||
- `Alex (@redwngsrul) <https://github.com/redwngsrul>`__
|
||||
- `Refferic (@Refferic) <https://github.com/Refferic>`__
|
||||
- `Regev Brody (@regevbr) <https://github.com/regevbr>`__
|
||||
- `Rei Vilo (@rei-vilo) <https://github.com/rei-vilo>`__
|
||||
- `Alex Reid (@reidprojects) <https://github.com/reidprojects>`__
|
||||
@ -1117,6 +1120,7 @@ Contributors
|
||||
- `testbughub (@testbughub) <https://github.com/testbughub>`__
|
||||
- `Greg Lincoln (@tetious) <https://github.com/tetious>`__
|
||||
- `Terry Hardie (@thardie) <https://github.com/thardie>`__
|
||||
- `Michael Jahn (@thatSecOpsGuy) <https://github.com/thatSecOpsGuy>`__
|
||||
- `thatslolo (@thatslolo) <https://github.com/thatslolo>`__
|
||||
- `The-Paran0id-Andr0id (@The-Paran0id-Andr0id) <https://github.com/The-Paran0id-Andr0id>`__
|
||||
- `Thomas Eckerstorfer (@TheEggi) <https://github.com/TheEggi>`__
|
||||
@ -1128,6 +1132,7 @@ Contributors
|
||||
- `Bart (@TheNameIsBart) <https://github.com/TheNameIsBart>`__
|
||||
- `Zixuan Wang (@TheNetAdmin) <https://github.com/TheNetAdmin>`__
|
||||
- `Dominik Bruhn (@theomega) <https://github.com/theomega>`__
|
||||
- `Alan Lord (@theopensourcerer) <https://github.com/theopensourcerer>`__
|
||||
- `Brian Levinsen (@therealeldaria) <https://github.com/therealeldaria>`__
|
||||
- `Steve Scott (@thewishy) <https://github.com/thewishy>`__
|
||||
- `Florian Gareis (@TheZoker) <https://github.com/TheZoker>`__
|
||||
@ -1205,6 +1210,7 @@ Contributors
|
||||
- `Wauter (@Wauter) <https://github.com/Wauter>`__
|
||||
- `WeekendWarrior1 (@WeekendWarrior1) <https://github.com/WeekendWarrior1>`__
|
||||
- `Ian Wells (@wellsi) <https://github.com/wellsi>`__
|
||||
- `Andrew Garrett (@werdnum) <https://github.com/werdnum>`__
|
||||
- `whimsee (@whimsee) <https://github.com/whimsee>`__
|
||||
- `wifwucite (@wifwucite) <https://github.com/wifwucite>`__
|
||||
- `wilberforce (@wilberforce) <https://github.com/wilberforce>`__
|
||||
@ -1218,10 +1224,10 @@ Contributors
|
||||
- `workingmanrob (@workingmanrob) <https://github.com/workingmanrob>`__
|
||||
- `Sven Serlier (@wrt54g) <https://github.com/wrt54g>`__
|
||||
- `Wolfgang Tremmel (@wtremmel) <https://github.com/wtremmel>`__
|
||||
- `Wvirgil123 (@Wvirgil123) <https://github.com/Wvirgil123>`__
|
||||
- `wysiwyng (@wysiwyng) <https://github.com/wysiwyng>`__
|
||||
- `Jakob (@XDjackieXD) <https://github.com/XDjackieXD>`__
|
||||
- `Mike Brown (@xenoxaos) <https://github.com/xenoxaos>`__
|
||||
- `Péter Sárközi (@Xmister) <https://github.com/Xmister>`__
|
||||
- `Xose Pérez (@xoseperez) <https://github.com/xoseperez>`__
|
||||
- `WitchKing (@xvil) <https://github.com/xvil>`__
|
||||
- `Andrew Kroll (@xxxajk) <https://github.com/xxxajk>`__
|
||||
@ -1240,4 +1246,4 @@ Contributors
|
||||
- `Zsolt Zsiros (@ZsZs73) <https://github.com/ZsZs73>`__
|
||||
- `Christian Zufferey (@zuzu59) <https://github.com/zuzu59>`__
|
||||
|
||||
*This page was last updated September 6, 2023.*
|
||||
*This page was last updated September 27, 2023.*
|
||||
|
BIN
images/apa102.jpg
Normal file
After Width: | Height: | Size: 9.7 KiB |
14
images/bk72xx.svg
Normal file
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="404.53" height="94.488" version="1.1" viewBox="0 0 107.03 25" xmlns="http://www.w3.org/2000/svg">
|
||||
<g>
|
||||
<path d="m5.0006-2.5483e-5h97.032c2.7704 0 5.0006 2.2303 5.0006 5.0006v14.999c0 2.7704-2.2303 5.0006-5.0006 5.0006h-97.032c-2.7704 0-5.0006-2.2303-5.0006-5.0006v-14.999c0-2.7704 2.2303-5.0006 5.0006-5.0006z" stroke-width="2.1757"/>
|
||||
<g fill="#fffffc" stroke-width=".26458" aria-label="BK72xx">
|
||||
<path d="m5.8934 20.666v-15.805h8.4441q3.2738 0 4.8317 1.1741 1.5579 1.1515 1.5579 2.9577 0 1.1966-0.67734 2.1449-0.65476 0.92569-1.9191 1.4676-1.2644 0.54187-3.1158 0.54187l0.45156-1.2192q1.8514 0 3.1835 0.51929 1.3547 0.51929 2.0772 1.5127 0.74507 0.97085 0.74507 2.3481 0 2.0546-1.7159 3.2061-1.6933 1.1515-4.9671 1.1515zm5.2381-3.7254h3.2061q0.88054 0 1.3095-0.31609 0.45156-0.31609 0.45156-0.92569t-0.45156-0.92569q-0.42898-0.31609-1.3095-0.31609h-3.5673v-3.5222h2.8448q0.90312 0 1.3095-0.29351 0.42898-0.31609 0.42898-0.88054 0-0.58703-0.42898-0.88054-0.4064-0.29351-1.3095-0.29351h-2.4836z"/>
|
||||
<path d="m29.231 17.279-0.29351-5.8477 5.9606-6.5702h5.8025l-6.6831 7.3604-2.9577 3.0254zm-4.7639 3.3867v-15.805h5.2381v15.805zm10.386 0-4.651-6.1412 3.4544-3.6576 7.3604 9.7988z"/>
|
||||
<path d="m44.49 20.666 5.9606-13.908 1.4224 2.2352h-7.4959l2.0772-2.4158v4.7188h-4.4027v-6.4347h13.524v3.2738l-5.2607 12.531z"/>
|
||||
<path d="m57.873 20.666v-3.2738l5.7122-5.2832q0.54187-0.51929 0.79023-0.90312 0.27094-0.38382 0.36125-0.67734 0.09031-0.31609 0.09031-0.58703 0-0.58703-0.38382-0.90312-0.38382-0.33867-1.1515-0.33867-0.69992 0-1.3321 0.38382-0.63218 0.36125-0.99343 1.0837l-4.0189-2.0094q0.85796-1.6256 2.5739-2.6416 1.7159-1.016 4.2672-1.016 1.874 0 3.319 0.6096 1.445 0.6096 2.2578 1.7159 0.8128 1.1063 0.8128 2.619 0 0.76765-0.2032 1.5353-0.18062 0.76765-0.76765 1.6256-0.58702 0.83538-1.7385 1.874l-4.2898 3.906-0.83538-1.8514h8.1958v4.1318z"/>
|
||||
<path d="m71.863 20.666 5.8251-7.6313-0.13547 2.9351-5.5542-7.6539h5.7574l2.7319 4.0866-2.1223 0.15804 3.0029-4.2446h5.351l-5.5767 7.4056v-2.8222l5.6896 7.7668h-5.8477l-2.8222-4.3575 2.1449 0.29351-2.9125 4.064z"/>
|
||||
<path d="m87.527 20.666 5.8251-7.6313-0.13547 2.9351-5.5542-7.6539h5.7574l2.7319 4.0866-2.1223 0.15804 3.0029-4.2446h5.351l-5.5767 7.4056v-2.8222l5.6896 7.7668h-5.8477l-2.8222-4.3575 2.1449 0.29351-2.9125 4.064z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
BIN
images/bmi160.jpg
Normal file
After Width: | Height: | Size: 15 KiB |
17
images/libretiny.svg
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="493.56" height="116.85" version="1.1" viewBox="0 0 130.59 30.916" xmlns="http://www.w3.org/2000/svg">
|
||||
<g>
|
||||
<path d="m5.0006-2.5483e-5h120.59c2.7704 0 5.0006 2.2303 5.0006 5.0006v20.914c0 2.7704-2.2303 5.0006-5.0006 5.0006h-120.59c-2.7704 0-5.0006-2.2303-5.0006-5.0006v-20.914c0-2.7704 2.2303-5.0006 5.0006-5.0006z" stroke-width="2.6724"/>
|
||||
<g fill="#fffffc" stroke-width=".26458" aria-label="LibreTiny">
|
||||
<path d="m5.8934 23.398v-15.805h5.3284v11.673h7.1346v4.1318z"/>
|
||||
<path d="m20.781 23.398v-12.35h5.1026v12.35zm2.5513-13.344q-1.3998 0-2.2352-0.74507-0.83538-0.74507-0.83538-1.8514t0.83538-1.8514q0.83538-0.74507 2.2352-0.74507t2.2352 0.69991 0.83538 1.8062q0 1.1741-0.83538 1.9417-0.83538 0.74507-2.2352 0.74507z"/>
|
||||
<path d="m37.498 23.623q-1.6933 0-2.7319-0.67734-1.0386-0.67734-1.5127-2.0997-0.45156-1.4224-0.45156-3.635 0-2.1901 0.49671-3.5899 0.49671-1.4224 1.5353-2.0997 1.0612-0.69992 2.6642-0.69992 1.6256 0 2.9803 0.76765 1.3547 0.76765 2.1675 2.2126 0.8128 1.4224 0.8128 3.4093 0 1.9869-0.8128 3.4318-0.8128 1.4224-2.1675 2.2126-1.3547 0.76765-2.9803 0.76765zm-8.2409-0.22578v-16.753h5.1026v6.0509l-0.22578 4.5156-0.02258 4.5156v1.6708zm7.0217-3.7479q0.56445 0 1.016-0.27094t0.72249-0.8128q0.27094-0.56445 0.27094-1.3547 0-0.8128-0.27094-1.3321-0.27094-0.54187-0.72249-0.8128t-1.016-0.27094q-0.56445 0-1.016 0.27094t-0.72249 0.8128q-0.27093 0.51929-0.27093 1.3321 0 0.79023 0.27093 1.3547 0.27094 0.54187 0.72249 0.8128t1.016 0.27094z"/>
|
||||
<path d="m46.155 23.398v-12.35h4.8542v3.7254l-0.79023-1.0612q0.56445-1.445 1.8062-2.1675 1.2418-0.72249 2.9803-0.72249v4.5156q-0.33867-0.04516-0.6096-0.06773-0.24836-0.02258-0.51929-0.02258-1.1515 0-1.8965 0.6096-0.72249 0.58702-0.72249 2.0546v5.4864z"/>
|
||||
<path d="m64.227 23.623q-2.2578 0-3.9511-0.83538-1.6708-0.83538-2.5965-2.2804-0.92569-1.4676-0.92569-3.2964 0-1.874 0.90312-3.319 0.92569-1.445 2.5061-2.2578 1.603-0.8128 3.5899-0.8128 1.8288 0 3.3641 0.72249 1.5579 0.72249 2.4836 2.1449 0.94827 1.4224 0.94827 3.5222 0 0.27093-0.02258 0.6096-0.02258 0.31609-0.04516 0.58702h-9.5053v-2.461h6.7959l-1.9191 0.65476q0-0.72249-0.27094-1.2192-0.24836-0.51929-0.69991-0.79023-0.45156-0.29351-1.0837-0.29351-0.63218 0-1.1063 0.29351-0.45156 0.27094-0.69992 0.79023-0.24836 0.49671-0.24836 1.2192v0.76765q0 0.79023 0.31609 1.3547 0.31609 0.56445 0.90312 0.85796 0.58702 0.27094 1.4224 0.27094 0.85796 0 1.3998-0.22578 0.56445-0.22578 1.174-0.67734l2.6642 2.6868q-0.90312 0.97085-2.2352 1.4901-1.3095 0.49671-3.1609 0.49671z"/>
|
||||
<path d="m74.81 23.398v-11.673h-4.6285v-4.1318h14.585v4.1318h-4.6285v11.673z"/>
|
||||
<path d="m87.104 23.398v-12.35h5.1026v12.35zm2.5513-13.344q-1.3998 0-2.2352-0.74507-0.83538-0.74507-0.83538-1.8514t0.83538-1.8514q0.83538-0.74507 2.2352-0.74507 1.3998 0 2.2352 0.69991 0.83538 0.69991 0.83538 1.8062 0 1.1741-0.83538 1.9417-0.83538 0.74507-2.2352 0.74507z"/>
|
||||
<path d="m104.16 10.822q1.4224 0 2.5739 0.58702 1.1515 0.56445 1.8062 1.7837 0.67733 1.2192 0.67733 3.1609v7.0443h-5.1026v-6.1638q0-1.1515-0.4064-1.6256-0.40641-0.49671-1.1063-0.49671-0.51929 0-0.97085 0.24836-0.42898 0.22578-0.69992 0.76765-0.24835 0.54187-0.24835 1.4676v5.8025h-5.1026v-12.35h4.8542v3.6125l-0.97085-1.0386q0.72249-1.3998 1.9417-2.0997 1.2418-0.69992 2.7545-0.69992z"/>
|
||||
<path d="m115.01 28.004q-1.016 0-2.0772-0.31609-1.0386-0.29351-1.6708-0.79023l1.6933-3.4996q0.38382 0.29351 0.85796 0.47414 0.49671 0.18062 0.94827 0.18062 0.67734 0 1.0386-0.29351 0.36125-0.27094 0.58703-0.83538l0.51929-1.3095 0.36125-0.49671 3.9511-10.07h4.8317l-5.08 12.598q-0.67733 1.6933-1.5804 2.6416-0.88054 0.94827-1.9868 1.3321-1.0837 0.38382-2.3933 0.38382zm1.1966-4.0414-5.3735-12.915h5.2381l3.7028 9.6182z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.6 KiB |
BIN
images/pmwcs3.jpg
Normal file
After Width: | Height: | Size: 15 KiB |
1
images/psram.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 106 25" id="svg5" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><defs id="defs9"/><path d="M5 0h96a5 5 0 015 5v15a5 5 0 01-5 5H5a5 5 0 01-5-5V5a5 5 0 015-5z" style="fill:#000" id="path2"/><g aria-label="PSRAM" id="component-text" style="font-weight:700;font-size:25px;font-family:Montserrat;letter-spacing:1.1px;fill:#fffffc"><path d="M7.075 21V3.5h7.575q2.35.0 4.05.775 1.7.75 2.625 2.175t.925 3.4q0 1.95-.925 3.375t-2.625 2.2q-1.7.75-4.05.75H9.325l1.8-1.825V21zm4.05-6.2-1.8-1.925h5.1q1.875.0 2.8-.8t.925-2.225q0-1.45-.925-2.25-.925-.8-2.8-.8h-5.1l1.8-1.925z" id="path11"/><path d="m32.225009 21.3q-2.1.0-4.025-.55-1.925-.575-3.1-1.475l1.375-3.05q1.125.8 2.65 1.325 1.55.5 3.125.5 1.2.0 1.925-.225.75-.25 1.1-.675t.35-.975q0-.7-.55-1.1-.55-.425-1.45-.675-.9-.275-2-.5-1.075-.25-2.175-.6-1.075-.35-1.975-.9-.9-.55-1.475-1.45-.55-.9-.55-2.3.0-1.5.8-2.725.825-1.25 2.45-1.975 1.65-.75 4.125-.75 1.65.0 3.25.4 1.6.375 2.825 1.15l-1.25 3.075q-1.225-.7-2.45-1.025-1.225-.35-2.4-.35-1.175.0-1.925.275t-1.075.725q-.325.425-.325 1 0 .675.55 1.1.55.4 1.45.65.9.25 1.975.5 1.1.25 2.175.575 1.1.325 2 .875t1.45 1.45q.575.9.575 2.275.0 1.475-.825 2.7t-2.475 1.975q-1.625.75-4.125.75z" id="path13"/><path d="M43.52502 21V3.5h7.575q2.35.0 4.05.775 1.7.75 2.625 2.175t.925 3.4q0 1.95-.925 3.375-.925 1.4-2.625 2.15t-4.05.75h-5.325l1.8-1.775V21zm11.125.0-4.375-6.35h4.325l4.425 6.35zm-7.075-6.2-1.8-1.9h5.1q1.875.0 2.8-.8.925-.825.925-2.25.0-1.45-.925-2.25-.925-.8-2.8-.8h-5.1l1.8-1.925z" id="path15"/><path d="m60.700037 21 7.8-17.5h4l7.825 17.5h-4.25l-6.4-15.45h1.6l-6.425 15.45zm3.9-3.75 1.075-3.075h9l1.1 3.075z" id="path17"/><path d="M83.250056 21V3.5h3.35l7.45 12.35h-1.775l7.325-12.35h3.325004l.05 17.5h-3.800004l-.025-11.675h.7l-5.85 9.825h-1.825l-5.975-9.825h.85V21z" id="path19"/></g></svg>
|
After Width: | Height: | Size: 1.8 KiB |
15
images/rtl87xx.svg
Normal file
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="454.57" height="94.488" version="1.1" viewBox="0 0 120.27 25" xmlns="http://www.w3.org/2000/svg">
|
||||
<g>
|
||||
<path d="m5.0006-2.5483e-5h110.27c2.7704 0 5.0006 2.2303 5.0006 5.0006v14.999c0 2.7704-2.2303 5.0006-5.0006 5.0006h-110.27c-2.7704 0-5.0006-2.2303-5.0006-5.0006v-14.999c0-2.7704 2.2303-5.0006 5.0006-5.0006z" stroke-width="2.3063"/>
|
||||
<g fill="#fffffc" stroke-width=".26458" aria-label="RTL87xx">
|
||||
<path d="m5.8934 20.666v-15.805h7.6088q2.2126 0 3.8157 0.72249 1.6256 0.72249 2.5061 2.0772 0.88054 1.3321 0.88054 3.1609 0 1.8288-0.88054 3.1609-0.88054 1.3095-2.5061 2.0094-1.603 0.69992-3.8157 0.69992h-4.651l2.3707-2.1901v6.1638zm9.4601 0-3.8834-5.7574h5.6445l3.9286 5.7574zm-4.1318-5.5767-2.3707-2.4158h4.3124q1.1063 0 1.6256-0.49671 0.54187-0.49671 0.54187-1.3547 0-0.85796-0.54187-1.3547-0.51929-0.49671-1.6256-0.49671h-4.3124l2.3707-2.4158z"/>
|
||||
<path d="m27.017 20.666v-11.673h-4.6285v-4.1318h14.585v4.1318h-4.6285v11.673z"/>
|
||||
<path d="m39.469 20.666v-15.805h5.3284v11.673h7.1346v4.1318z"/>
|
||||
<path d="m60.882 21.027q-2.0997 0-3.7028-0.6096-1.5805-0.63218-2.4836-1.7611-0.90312-1.1515-0.90312-2.6868t0.92569-2.619q0.92569-1.0837 2.5287-1.6482 1.603-0.56445 3.635-0.56445t3.635 0.56445q1.603 0.56445 2.5287 1.6482 0.92569 1.0837 0.92569 2.619t-0.90312 2.6868q-0.90312 1.1289-2.5061 1.7611-1.5805 0.6096-3.6802 0.6096zm0-3.5899q0.76765 0 1.2418-0.42898 0.49671-0.45156 0.49671-1.2192 0-0.76765-0.49671-1.1966-0.47414-0.45156-1.2418-0.45156-0.76765 0-1.2644 0.45156-0.47414 0.42898-0.47414 1.1966 0 0.76765 0.47414 1.2192 0.49671 0.42898 1.2644 0.42898zm0-3.7254q-1.8514 0-3.3415-0.51929-1.4676-0.54187-2.3255-1.5353-0.85796-1.016-0.85796-2.4384 0-1.445 0.83538-2.4836 0.83538-1.0612 2.3029-1.6482 1.4676-0.58703 3.3867-0.58703 1.9191 0 3.3867 0.58703 1.4676 0.58703 2.3029 1.6482 0.83538 1.0386 0.83538 2.4836 0 1.4224-0.85796 2.4384-0.85796 0.99343-2.3255 1.5353-1.4676 0.51929-3.3415 0.51929zm0-2.9125q0.54187 0 0.90312-0.36125 0.36125-0.36125 0.36125-0.99343 0-0.65476-0.36125-0.99343-0.36125-0.36125-0.90312-0.36125-0.54187 0-0.90312 0.36125-0.36125 0.33867-0.36125 0.99343 0 0.63218 0.36125 0.99343 0.36125 0.36125 0.90312 0.36125z"/>
|
||||
<path d="m72.554 20.666 5.9606-13.908 1.4224 2.2352h-7.4959l2.0772-2.4158v4.7188h-4.4027v-6.4347h13.524v3.2738l-5.2607 12.531z"/>
|
||||
<path d="m85.102 20.666 5.8251-7.6313-0.13547 2.9351-5.5542-7.6539h5.7574l2.7319 4.0866-2.1223 0.15804 3.0029-4.2446h5.351l-5.5767 7.4056v-2.8222l5.6896 7.7668h-5.8477l-2.8222-4.3575 2.1449 0.29351-2.9125 4.064z"/>
|
||||
<path d="m100.76 20.666 5.8251-7.6313-0.13546 2.9351-5.5542-7.6539h5.7574l2.7319 4.0866-2.1223 0.15804 3.0029-4.2446h5.351l-5.5767 7.4056v-2.8222l5.6896 7.7668h-5.8477l-2.8222-4.3575 2.1449 0.29351-2.9126 4.064z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.7 KiB |
BIN
images/sen0321.jpg
Normal file
After Width: | Height: | Size: 5.6 KiB |
87
images/wireguard_custom_logo.svg
Normal file
@ -0,0 +1,87 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="282"
|
||||
height="188"
|
||||
version="1.1"
|
||||
id="svg8">
|
||||
<metadata
|
||||
id="metadata14">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs12" />
|
||||
<path
|
||||
d="m 21.2435,127.36317 h 239.512 c 10.31,0 18.667,8.358 18.667,18.667 v 20.667 c 0,10.309 -8.358,18.666 -18.667,18.666 H 21.2435 c -10.31,0 -18.666,-8.357 -18.666,-18.666 v -20.667 c 0,-10.31 8.357,-18.667 18.666,-18.667 z"
|
||||
id="path2" />
|
||||
<path
|
||||
d="m 21.2435,127.36317 h 239.512 c 10.31,0 18.667,8.358 18.667,18.667 v 20.667 c 0,10.309 -8.358,18.666 -18.667,18.666 H 21.2435 c -10.309,0 -18.666,-8.357 -18.666,-18.666 v -20.667 c 0,-10.31 8.357,-18.667 18.666,-18.667 z"
|
||||
fill="none"
|
||||
stroke="#000000"
|
||||
stroke-width="1.333"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-miterlimit="10"
|
||||
id="path4" />
|
||||
<g
|
||||
aria-label="WIREGUARD®"
|
||||
id="text18"
|
||||
style="font-size:42.6667px;line-height:125%;font-family:'Neuropol Nova';-inkscape-font-specification:'Neuropol Nova';text-align:center;letter-spacing:2px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1">
|
||||
<path
|
||||
d="m 20.982449,141.10321 h 4.250003 l 6.541672,26.29168 6.520838,-26.29168 h 4.72917 l 6.541671,26.29168 6.520839,-26.29168 h 4.270836 l -7.812506,31.10419 h -5.29167 l -6.562505,-27.00002 -6.625005,27.00002 h -5.291671 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:42.6667px;font-family:sans-serif;-inkscape-font-specification:sans-serif;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1"
|
||||
id="path851" />
|
||||
<path
|
||||
d="m 66.611383,150.82331 h 2.893225 v 21.38409 h -2.893225 z"
|
||||
style="font-size:29.3333px"
|
||||
id="path853" />
|
||||
<path
|
||||
d="m 87.403027,162.18137 q 0.930989,0.3151 1.804686,1.34635 0.88802,1.03125 1.776039,2.83593 l 2.936195,5.84375 h -3.108069 l -2.735674,-5.48567 q -1.059895,-2.14844 -2.062498,-2.85026 -0.98828,-0.70182 -2.707028,-0.70182 H 80.15564 v 9.03775 h -2.893226 v -21.38409 h 6.531243 q 3.666662,0 5.471347,1.53255 1.804686,1.53255 1.804686,4.62629 0,2.01953 -0.945312,3.35156 -0.930988,1.33203 -2.721351,1.84766 z m -7.247387,-8.98046 v 7.59114 h 3.638017 q 2.091143,0 3.151038,-0.95964 1.074217,-0.97396 1.074217,-2.85026 0,-1.8763 -1.074217,-2.82161 -1.059895,-0.95963 -3.151038,-0.95963 z"
|
||||
style="font-size:29.3333px"
|
||||
id="path855" />
|
||||
<path
|
||||
d="m 99.658223,150.82331 h 13.520817 v 2.43489 h -10.62759 v 6.33072 h 10.18358 v 2.4349 h -10.18358 v 7.74868 h 10.8854 v 2.4349 H 99.658223 Z"
|
||||
style="font-size:29.3333px"
|
||||
id="path857" />
|
||||
<path
|
||||
d="m 142.73765,167.76989 v -8.35417 h -6.87501 v -3.45833 h 11.04168 v 13.35417 q -2.4375,1.72917 -5.375,2.625 -2.93751,0.875 -6.27084,0.875 -7.29167,0 -11.41668,-4.25 -4.10417,-4.27084 -4.10417,-11.87501 0,-7.625 4.10417,-11.87501 4.12501,-4.27083 11.41668,-4.27083 3.04167,0 5.77084,0.75 2.75,0.75 5.0625,2.20833 v 4.47917 q -2.33334,-1.97917 -4.95834,-2.97917 -2.625,-1 -5.52084,-1 -5.70833,0 -8.58334,3.18751 -2.85416,3.1875 -2.85416,9.5 0,6.29167 2.85416,9.47918 2.87501,3.1875 8.58334,3.1875 2.22917,0 3.97917,-0.375 1.75001,-0.39584 3.14584,-1.20834 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:42.6667px;font-family:sans-serif;-inkscape-font-specification:sans-serif;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1"
|
||||
id="path859" />
|
||||
<path
|
||||
d="m 154.97463,150.82331 h 2.90755 v 12.99087 q 0,3.43749 1.24609,4.95572 1.2461,1.50391 4.03906,1.50391 2.77864,0 4.02474,-1.50391 1.24609,-1.51823 1.24609,-4.95572 v -12.99087 h 2.90755 v 13.34894 q 0,4.18229 -2.07682,6.3164 -2.0625,2.13411 -6.10156,2.13411 -4.05338,0 -6.1302,-2.13411 -2.0625,-2.13411 -2.0625,-6.3164 z"
|
||||
style="font-size:29.3333px"
|
||||
id="path861" />
|
||||
<path
|
||||
d="m 185.93553,153.67356 -3.92447,10.64192 h 7.86327 z m -1.63281,-2.85025 h 3.27994 l 8.14973,21.38409 h -3.0078 l -1.94792,-5.48567 h -9.63931 l -1.94792,5.48567 h -3.05077 z"
|
||||
style="font-size:29.3333px"
|
||||
id="path864" />
|
||||
<path
|
||||
d="m 210.98108,162.18137 q 0.93099,0.3151 1.80469,1.34635 0.88802,1.03125 1.77603,2.83593 l 2.9362,5.84375 h -3.10807 l -2.73567,-5.48567 q -1.0599,-2.14844 -2.0625,-2.85026 -0.98828,-0.70182 -2.70703,-0.70182 h -3.15104 v 9.03775 h -2.89322 v -21.38409 h 6.53124 q 3.66666,0 5.47135,1.53255 1.80468,1.53255 1.80468,4.62629 0,2.01953 -0.94531,3.35156 -0.93099,1.33203 -2.72135,1.84766 z m -7.24739,-8.98046 v 7.59114 h 3.63802 q 2.09114,0 3.15104,-0.95964 1.07421,-0.97396 1.07421,-2.85026 0,-1.8763 -1.07421,-2.82161 -1.0599,-0.95963 -3.15104,-0.95963 z"
|
||||
style="font-size:29.3333px"
|
||||
id="path866" />
|
||||
<path
|
||||
d="m 226.12951,153.20091 v 16.62889 h 3.49478 q 4.42578,0 6.47395,-2.00521 2.0625,-2.00521 2.0625,-6.33072 0,-4.29687 -2.0625,-6.28776 -2.04817,-2.0052 -6.47395,-2.0052 z m -2.89323,-2.3776 h 5.944 q 6.21614,0 9.12369,2.59244 2.90755,2.57812 2.90755,8.07812 0,5.52864 -2.92187,8.12108 -2.92187,2.59245 -9.10937,2.59245 h -5.944 z"
|
||||
style="font-size:29.3333px"
|
||||
id="path868" />
|
||||
<path
|
||||
d="m 254.26362,142.54434 q -1.19401,0 -2.22396,0.42839 -1.02995,0.42838 -1.88673,1.28516 -0.85677,0.85677 -1.29427,1.90495 -0.4375,1.03906 -0.4375,2.22396 0,1.17578 0.4375,2.21485 0.4375,1.02995 1.29427,1.88672 0.85678,0.85677 1.88673,1.29427 1.02995,0.42839 2.22396,0.42839 1.20313,0 2.23307,-0.42839 1.03907,-0.4375 1.89584,-1.29427 0.84766,-0.84766 1.26693,-1.87761 0.42839,-1.02995 0.42839,-2.22396 0,-1.21224 -0.42839,-2.24219 -0.42839,-1.03907 -1.26693,-1.88672 -0.85677,-0.85678 -1.89584,-1.28516 -1.02994,-0.42839 -2.23307,-0.42839 z m 0,-0.9388 q 1.38542,0 2.57943,0.5013 1.20313,0.5013 2.19662,1.4948 0.99349,0.99349 1.48568,2.1875 0.49219,1.19401 0.49219,2.59766 0,1.38542 -0.49219,2.57943 -0.49219,1.1849 -1.48568,2.17839 -0.99349,0.99349 -2.19662,1.4948 -1.19401,0.5013 -2.57943,0.5013 -1.38542,0 -2.58855,-0.5013 -1.19401,-0.50131 -2.1875,-1.4948 -0.99349,-0.99349 -1.48568,-2.17839 -0.49219,-1.19401 -0.49219,-2.57943 0,-1.40365 0.49219,-2.59766 0.49219,-1.19401 1.48568,-2.1875 0.99349,-0.9935 2.1875,-1.4948 1.20313,-0.5013 2.58855,-0.5013 z m -0.2461,3.77344 h -1.12109 v 2.51563 h 1.12109 q 1.00261,0 1.39454,-0.28255 0.40104,-0.28255 0.40104,-0.96615 0,-0.69271 -0.40104,-0.97526 -0.40104,-0.29167 -1.39454,-0.29167 z m 0.0638,-0.9388 q 1.60417,0 2.39714,0.54687 0.79297,0.53777 0.79297,1.64063 0,0.78386 -0.48308,1.29428 -0.47396,0.51041 -1.34896,0.66536 0.21875,0.0729 0.51953,0.42839 0.3099,0.34635 0.72917,1.01172 l 1.2487,2.03255 h -1.56771 l -1.17578,-1.90495 q -0.53776,-0.875 -0.875,-1.10286 -0.32813,-0.23698 -0.82032,-0.23698 h -0.60156 v 3.24479 h -1.41276 v -7.6198 z"
|
||||
style="font-size:18.6667px;baseline-shift:super;stroke:none"
|
||||
id="path870" />
|
||||
</g>
|
||||
<path
|
||||
d="M 117.67886,1.97033 H 164.3211 L 140.99998,25.29145 117.67886,1.97033 m 11.66056,75.093997 c -2.33211,2.643067 -3.88685,6.529913 -3.88685,10.416768 a 15.547412,15.547412 0 0 0 15.54741,15.547415 15.547412,15.547412 0 0 0 15.54741,-15.547415 c 0,-4.27554 -1.71021,-8.162386 -4.58649,-10.960923 l 11.03867,-11.038667 c 5.59707,5.674809 9.09524,13.448519 9.09524,21.99959 A 31.094826,31.094826 0 0 1 140.99998,118.57592 31.094826,31.094826 0 0 1 109.90515,87.481095 c 0,-8.317865 3.26496,-15.858362 8.55108,-21.377691 l -0.0777,-0.07773 55.03784,-54.960104 v 0 c 5.59707,-5.59708 13.37078,-9.09524 21.99959,-9.09524 a 31.094826,31.094826 0 0 1 31.09483,31.094832 31.094826,31.094826 0 0 1 -31.09483,31.094824 c -8.55107,0 -16.32478,-3.49817 -21.99959,-9.095234 l 11.03867,-11.038667 c 2.79853,2.876271 6.68539,4.586489 10.96092,4.586489 A 15.547412,15.547412 0 0 0 210.96337,33.065162 15.547412,15.547412 0 0 0 195.41596,17.51774 c -4.27553,0 -8.16239,1.71021 -10.96092,4.58648 L 129.33946,77.064332 M 97.54496,22.10422 C 94.74643,19.22795 90.85957,17.51774 86.58403,17.51774 A 15.547412,15.547412 0 0 0 71.03662,33.065157 15.547412,15.547412 0 0 0 86.58403,48.612569 c 4.27554,0 8.1624,-1.710218 10.96093,-4.586489 l 11.03866,11.038658 c -5.67481,5.597073 -13.44851,9.095243 -21.99959,9.095243 A 31.094826,31.094826 0 0 1 55.48921,33.065157 31.094826,31.094826 0 0 1 86.58403,1.97033 c 8.62882,0 16.40252,3.49816 21.99959,9.09524 v 0 l 21.45543,21.455423 -11.03866,11.038667 z"
|
||||
id="path863"
|
||||
style="stroke-width:7.77371" />
|
||||
</svg>
|
After Width: | Height: | Size: 8.8 KiB |
21
index.rst
@ -5,14 +5,14 @@
|
||||
|
||||
.. seo::
|
||||
:description: ESPHome Homepage - Reimagining DIY Home Automation. ESPHome is a framework that
|
||||
tries to provide the best possible use experience for using ESP8266, ESP32 and RP2040 microcontrollers
|
||||
tries to provide the best possible use experience for using IoT microcontrollers
|
||||
for Home Automation. Just write a simple YAML configuration file and get your own customized firmware.
|
||||
:image: logo.svg
|
||||
|
||||
.. image:: /images/logo-text.svg
|
||||
:class: dark-invert
|
||||
|
||||
ESPHome is a system to control your ESP8266/ESP32 and RP2040 by simple yet powerful configuration files and control them remotely through Home Automation systems.
|
||||
ESPHome is a system to control your microcontrollers by simple yet powerful configuration files and control them remotely through Home Automation systems.
|
||||
|
||||
.. image:: /images/hero.png
|
||||
|
||||
@ -124,6 +124,8 @@ Platforms
|
||||
ESP8266, components/esp8266, esp8266.svg
|
||||
ESP32, components/esp32, esp32.svg
|
||||
RP2040, components/rp2040, rp2040.svg
|
||||
BK72xx, components/libretiny, bk72xx.svg
|
||||
RTL87xx, components/libretiny, rtl87xx.svg
|
||||
|
||||
Core Components
|
||||
---------------
|
||||
@ -131,8 +133,8 @@ Core Components
|
||||
.. imgtable::
|
||||
|
||||
Core, components/esphome, cloud-circle.svg, dark-invert
|
||||
PSRAM, components/psram, psram.svg
|
||||
WiFi, components/wifi, network-wifi.svg, dark-invert
|
||||
MQTT, components/mqtt, mqtt.png
|
||||
Network, components/network, network-wifi.svg, dark-invert
|
||||
|
||||
I²C Bus, components/i2c, i2c.svg
|
||||
@ -140,6 +142,7 @@ Core Components
|
||||
UART Bus, components/uart, uart.svg
|
||||
CAN Bus, components/canbus, canbus.svg
|
||||
|
||||
MQTT, components/mqtt, mqtt.png
|
||||
OTA Updates, components/ota, system-update.svg, dark-invert
|
||||
Logger, components/logger, file-document-box.svg, dark-invert
|
||||
Web Server, components/web_server, http.svg, dark-invert
|
||||
@ -183,6 +186,7 @@ Air Quality
|
||||
PMSX003, components/sensor/pmsx003, pmsx003.svg, Particulate
|
||||
RadonEye BLE, components/sensor/radon_eye_ble, radon_eye_logo.png, Radon
|
||||
SDS011 Sensor, components/sensor/sds011, sds011.jpg, Particulate
|
||||
SEN0321, components/sensor/sen0321, sen0321.jpg, Ozone
|
||||
SEN5x, components/sensor/sen5x, sen54.jpg, Temperature & Humidity, Volatile organics and NOx
|
||||
SenseAir, components/sensor/senseair, senseair_s8.jpg, CO2
|
||||
SCD30, components/sensor/scd30, scd30.jpg, CO2 & Temperature & Humidity
|
||||
@ -311,6 +315,7 @@ Environmental
|
||||
MPL3115A2, components/sensor/mpl3115a2, mpl3115a2.jpg, Temperature & Pressure
|
||||
MS5611, components/sensor/ms5611, ms5611.jpg, Pressure
|
||||
NTC Thermistor, components/sensor/ntc, ntc.jpg, Temperature
|
||||
PMWCS3, components/sensor/pmwcs3, pmwcs3.jpg, Soil moisture & Temperature
|
||||
QMP6988, components/sensor/qmp6988, qmp6988_env3.png, Temperature & Pressure
|
||||
RadonEye BLE, components/sensor/radon_eye_ble, radon_eye_logo.png, Radon
|
||||
RuuviTag, components/sensor/ruuvitag, ruuvitag.jpg, Temperature & Humidity & Accelerometer
|
||||
@ -380,6 +385,7 @@ Miscellaneous
|
||||
Resol VBus, components/vbus, resol_deltasol_bs_plus.jpg
|
||||
Person Sensor (SEN21231), components/sensor/sen21231, sen21231.png
|
||||
Kuntze pool sensor, components/sensor/kuntze, kuntze.jpg
|
||||
WireGuard, components/wireguard, wireguard_custom_logo.svg
|
||||
|
||||
|
||||
Motion
|
||||
@ -387,10 +393,11 @@ Motion
|
||||
.. imgtable::
|
||||
|
||||
APDS9960, components/sensor/apds9960, apds9960.jpg, Colour & Gesture
|
||||
BMI160, components/sensor/bmi160, bmi160.jpg, Accelerometer & Gyroscope
|
||||
LD2410, components/sensor/ld2410, ld2410.jpg, Motion & Presence
|
||||
MPU6050, components/sensor/mpu6050, mpu6050.jpg, Accelerometer & Gyroscope
|
||||
MPU6886, components/sensor/mpu6886, mpu6886.jpg, Accelerometer & Gyroscope
|
||||
RuuviTag, components/sensor/ruuvitag, ruuvitag.jpg, Temperature & Humidity & Accelerometer
|
||||
LD2410, components/sensor/ld2410, ld2410.jpg, Motion & Presence
|
||||
|
||||
|
||||
Thermocouple
|
||||
@ -484,6 +491,7 @@ Miscellaneous
|
||||
Remote Receiver, components/remote_receiver, remote.svg, dark-invert
|
||||
Resol VBus, components/vbus, resol_deltasol_bs_plus.jpg
|
||||
Tuya Binary Sensor, components/binary_sensor/tuya, tuya.png
|
||||
WireGuard, components/wireguard, wireguard_custom_logo.svg
|
||||
|
||||
Output Components
|
||||
-----------------
|
||||
@ -496,6 +504,7 @@ Output Components
|
||||
GPIO Output, components/output/gpio, pin.svg, dark-invert
|
||||
ESP32 DAC, components/output/esp32_dac, dac.svg
|
||||
ESP32 LEDC, components/output/ledc, pwm.png
|
||||
LibreTiny PWM, components/output/libretiny_pwm, pwm.png
|
||||
AC Dimmer, components/output/ac_dimmer, ac_dimmer.svg, dark-invert
|
||||
PCA9685, components/output/pca9685, pca9685.jpg
|
||||
TLC59208F, components/output/tlc59208f, tlc59208f.jpg
|
||||
@ -541,10 +550,12 @@ Light Components
|
||||
FastLED Light, components/light/fastled, color_lens.svg, dark-invert
|
||||
NeoPixelBus Light, components/light/neopixelbus, color_lens.svg, dark-invert
|
||||
Light Partition, components/light/partition, color_lens.svg, dark-invert
|
||||
SPI LED Strips, components/light/spi_led_strip, apa102.jpg
|
||||
|
||||
Tuya Dimmer, components/light/tuya, tuya.png
|
||||
Shelly Dimmer, components/light/shelly_dimmer, shellydimmer2.jpg
|
||||
Custom Light, components/light/custom, language-cpp.svg, dark-invert
|
||||
LightWaveRF, components/light/lightwaverf, brightness-medium.svg
|
||||
|
||||
H-bridge Light, components/light/hbridge, brightness-medium.svg, dark-invert
|
||||
Sonoff D1 Dimmer, components/light/sonoff_d1, sonoff_d1.jpg
|
||||
@ -676,6 +687,7 @@ Text Sensor Components
|
||||
Nextion Text Sensor, components/text_sensor/nextion, nextion.jpg
|
||||
Tuya Text Sensor, components/text_sensor/tuya, tuya.png
|
||||
WL-134 Pet Tag Sensor , components/text_sensor/wl_134, fingerprint.svg, dark-invert
|
||||
LibreTiny, components/text_sensor/libretiny, libretiny.svg
|
||||
|
||||
Climate Components
|
||||
------------------
|
||||
@ -842,6 +854,7 @@ Miscellaneous Components
|
||||
SML, components/sml, sml.svg
|
||||
Atlas Scientific Peristaltic Pump, components/ezo_pmp, ezo-pmp.jpg
|
||||
Resol VBus, components/vbus, resol_deltasol_bs_plus.jpg
|
||||
WireGuard, components/wireguard, wireguard_custom_logo.svg
|
||||
Demo, components/demo, description.svg, dark-invert
|
||||
Copy, components/copy, content-copy.svg, dark-invert
|
||||
|
||||
|