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.6.5
|
||||
PROJECT_NUMBER = 2023.7.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.6.5
|
||||
ESPHOME_REF = 2023.7.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.7.0.png
Normal file
After Width: | Height: | Size: 99 KiB |
@ -1 +1 @@
|
||||
2023.6.5
|
||||
2023.7.0
|
193
changelog/2023.7.0.rst
Normal file
@ -0,0 +1,193 @@
|
||||
ESPHome 2023.7.0 - 19th July 2023
|
||||
=================================
|
||||
|
||||
.. seo::
|
||||
:description: Changelog for ESPHome 2023.7.0.
|
||||
:image: /_static/changelog-2023.7.0.png
|
||||
:author: Jesse Hills
|
||||
:author_twitter: @jesserockz
|
||||
|
||||
.. imgtable::
|
||||
:columns: 4
|
||||
|
||||
XL9535 I/O Expander, components/xl9535, xl9535.svg
|
||||
Zio Ultrasonic Sensor, components/sensor/zio_ultrasonic, zio_ultrasonic.jpg
|
||||
Alpha3, components/sensor/alpha3, alpha3.jpg
|
||||
PCF8563 RTC, components/time/pcf8563, clock-outline.svg, dark-invert
|
||||
TT21100, components/touchscreen/tt21100, esp32-s3-korvo-2-lcd.png
|
||||
Grove TB6612FNG, components/grove_tb6612fng, motor.png
|
||||
ATM90E26, components/sensor/atm90e26, atm90e26.jpg
|
||||
Duty Time, components/sensor/duty_time, timer-play-outline.svg, dark-invert
|
||||
|
||||
Webserver with ESP-IDF
|
||||
----------------------
|
||||
|
||||
This releases adds support for the :doc:`Webserver </components/web_server>` and :doc:`/components/captive_portal`
|
||||
when using the ``esp-idf`` framework on ESP32 boards.
|
||||
|
||||
Display components
|
||||
------------------
|
||||
|
||||
This release adds a few changes to the display core code to optimise and allow for future
|
||||
improvements which are already in progress. This also may bring breaking changes to the internal APIs that ``external_components``
|
||||
may be relying on.
|
||||
|
||||
|
||||
Full list of changes
|
||||
--------------------
|
||||
|
||||
New Components
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
- XL9535 I/O Expander :esphomepr:`4899` by :ghuser:`mreditor97` (new-integration)
|
||||
- Add Zio Ultrasonic Distance Sensor Component :esphomepr:`5059` by :ghuser:`kahrendt` (new-integration)
|
||||
- Add Alpha3 pump component :esphomepr:`3787` by :ghuser:`jan-hofmeier` (new-integration)
|
||||
- RTC implementation of pcf8563 :esphomepr:`4998` by :ghuser:`KoenBreeman` (new-integration)
|
||||
- web server esp idf suppport :esphomepr:`3500` by :ghuser:`dentra` (new-integration)
|
||||
- Add TT21100 touchscreen component :esphomepr:`4793` by :ghuser:`kroimon` (new-integration)
|
||||
- Add support for Grove tb6612 fng :esphomepr:`4797` by :ghuser:`max246` (new-integration)
|
||||
- Add support for ATM90E26 :esphomepr:`4366` by :ghuser:`danieltwagner` (new-integration)
|
||||
- New 'Duty Time' sensor component :esphomepr:`5069` by :ghuser:`dudanov` (new-integration)
|
||||
|
||||
Breaking Changes
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
- display: add `BaseFont` and introduce `Font::draw` methods :esphomepr:`4963` by :ghuser:`ayufan` (breaking-change)
|
||||
- display: Rename `display.DisplayBufferRef` to `display.DisplayRef` used by lambda :esphomepr:`5002` by :ghuser:`ayufan` (breaking-change)
|
||||
- Remove template switch restore_state :esphomepr:`5106` by :ghuser:`jesserockz` (breaking-change)
|
||||
|
||||
Beta Changes
|
||||
^^^^^^^^^^^^
|
||||
|
||||
- Dont do mqtt ip lookup if `use_address` has ip address :esphomepr:`5096` by :ghuser:`jesserockz`
|
||||
- ESP32 enable ADC2 when wifi is disabled :esphomepr:`4381` by :ghuser:`pciavald`
|
||||
- [Sprinkler] Resume fixes :esphomepr:`5100` by :ghuser:`hostcc`
|
||||
- Remove template switch restore_state :esphomepr:`5106` by :ghuser:`jesserockz` (breaking-change)
|
||||
- Add timeout filter :esphomepr:`5104` by :ghuser:`clydebarrow`
|
||||
- P1 values for capacity tariff in Belgium :esphomepr:`5081` by :ghuser:`bwynants`
|
||||
- airthings_wave: Silence compiler warnings :esphomepr:`5098` by :ghuser:`kpfleming`
|
||||
- Sigma delta fix :esphomepr:`4911` by :ghuser:`PlainTechEnthusiast`
|
||||
- [LD2410] Remove baud_rate check :esphomepr:`5112` by :ghuser:`voed`
|
||||
- Fix silence detection flag on voice assistant :esphomepr:`5120` by :ghuser:`jesserockz`
|
||||
|
||||
All changes
|
||||
^^^^^^^^^^^
|
||||
|
||||
- Upgraded Haier climate component implementation :esphomepr:`4521` by :ghuser:`paveldn`
|
||||
- display: add `BaseFont` and introduce `Font::draw` methods :esphomepr:`4963` by :ghuser:`ayufan` (breaking-change)
|
||||
- display/font: optimise font rendering by about 25% :esphomepr:`4956` by :ghuser:`ayufan`
|
||||
- display: move `Rect` into `rect.cpp/.h` :esphomepr:`4957` by :ghuser:`ayufan`
|
||||
- Bump pytest from 7.3.1 to 7.3.2 :esphomepr:`4936` by :ghuser:`dependabot[bot]`
|
||||
- Add read/write for 16bit registers :esphomepr:`4844` by :ghuser:`CarsonF`
|
||||
- XL9535 I/O Expander :esphomepr:`4899` by :ghuser:`mreditor97` (new-integration)
|
||||
- Fix python venv restoring :esphomepr:`4965` by :ghuser:`jesserockz`
|
||||
- Preprocess away unused code when IPv6 is disabled :esphomepr:`4973` by :ghuser:`HeMan`
|
||||
- Bump aioesphomeapi from 14.0.0 to 14.1.0 :esphomepr:`4972` by :ghuser:`dependabot[bot]`
|
||||
- Add actions to animation :esphomepr:`4959` by :ghuser:`guillempages`
|
||||
- Bump zeroconf from 0.63.0 to 0.69.0 :esphomepr:`4970` by :ghuser:`dependabot[bot]`
|
||||
- mqtt: add ESP-IDF >= 5.0 support :esphomepr:`4854` by :ghuser:`stintel`
|
||||
- display: move `Image`, `Font` and `Animation` code into components :esphomepr:`4967` by :ghuser:`ayufan`
|
||||
- support empty schemas and one platform components :esphomepr:`4999` by :ghuser:`glmnet`
|
||||
- update dsmr to 0.7 :esphomepr:`5011` by :ghuser:`Pvlerick`
|
||||
- add water delivered to dsmr component :esphomepr:`4237` by :ghuser:`jerome992`
|
||||
- Update sync workflow :esphomepr:`5017` by :ghuser:`jesserockz`
|
||||
- Bump aioesphomeapi from 14.1.0 to 15.0.0 :esphomepr:`5012` by :ghuser:`dependabot[bot]`
|
||||
- Bump pyupgrade from 3.4.0 to 3.7.0 :esphomepr:`4971` by :ghuser:`dependabot[bot]`
|
||||
- Bump pytest from 7.3.2 to 7.4.0 :esphomepr:`5000` by :ghuser:`dependabot[bot]`
|
||||
- Attempt to fix script parameters :esphomepr:`4627` by :ghuser:`jesserockz`
|
||||
- Remove yaml test cache :esphomepr:`5019` by :ghuser:`jesserockz`
|
||||
- Bump esptool from 4.6 to 4.6.2 :esphomepr:`4949` by :ghuser:`dependabot[bot]`
|
||||
- Bump pytest-mock from 3.10.0 to 3.11.1 :esphomepr:`4977` by :ghuser:`dependabot[bot]`
|
||||
- binary_sensor removed unused filter :esphomepr:`5039` by :ghuser:`dudanov`
|
||||
- binary_sensor filters templatable delays :esphomepr:`5029` by :ghuser:`dudanov`
|
||||
- Improve the gamma settings for the S3-Box-lite display :esphomepr:`5046` by :ghuser:`guillempages`
|
||||
- Prepare ethernet to work with esp idf 5.0 :esphomepr:`5037` by :ghuser:`HeMan`
|
||||
- Prepare debug and logger component to work with idf 5.0 :esphomepr:`5036` by :ghuser:`HeMan`
|
||||
- Mopeka std fixes :esphomepr:`5041` by :ghuser:`Fabian-Schmidt`
|
||||
- Adjust signature for on_disconnect :esphomepr:`5009` by :ghuser:`bdraco`
|
||||
- Log component long time message at warning level :esphomepr:`5048` by :ghuser:`jesserockz`
|
||||
- Log start of i2c setup :esphomepr:`5049` by :ghuser:`jesserockz`
|
||||
- Initial debug component support for rp2040 :esphomepr:`5056` by :ghuser:`HeMan`
|
||||
- Fix when idf component has broken symlinks :esphomepr:`5058` by :ghuser:`jesserockz`
|
||||
- Some tests wasn't running (locally) :esphomepr:`5050` by :ghuser:`HeMan`
|
||||
- [ILI9xxx] Add ili9488_a (alternative gamma configuration for ILI9488) :esphomepr:`5027` by :ghuser:`lnicolas83`
|
||||
- [ili9xxx] Allow config of spi data rate. :esphomepr:`4701` by :ghuser:`Fabian-Schmidt`
|
||||
- Make scheduler debuging work with idf >= 5 :esphomepr:`5052` by :ghuser:`HeMan`
|
||||
- Adds 1.54" e-ink display (gdew0154m09) support to waveshare_epaper component :esphomepr:`4939` by :ghuser:`tobiasoort`
|
||||
- display: split `DisplayBuffer` and `Display` :esphomepr:`5001` by :ghuser:`ayufan`
|
||||
- Fixed ili9xxx_display update() method :esphomepr:`5013` by :ghuser:`nielsnl68`
|
||||
- [Ethernet] ksz8081rna support :esphomepr:`4739` by :ghuser:`Fabian-Schmidt`
|
||||
- Improve BME680 BSEC sensor device classes :esphomepr:`4859` by :ghuser:`trvrnrth`
|
||||
- Update RP2040 Aruino framwork and platform to latest :esphomepr:`5025` by :ghuser:`HeMan`
|
||||
- Allow pillow versions over 10 :esphomepr:`5071` by :ghuser:`HeMan`
|
||||
- display: Rename `display.DisplayBufferRef` to `display.DisplayRef` used by lambda :esphomepr:`5002` by :ghuser:`ayufan` (breaking-change)
|
||||
- Add Zio Ultrasonic Distance Sensor Component :esphomepr:`5059` by :ghuser:`kahrendt` (new-integration)
|
||||
- Add Alpha3 pump component :esphomepr:`3787` by :ghuser:`jan-hofmeier` (new-integration)
|
||||
- RTC implementation of pcf8563 :esphomepr:`4998` by :ghuser:`KoenBreeman` (new-integration)
|
||||
- web server esp idf suppport :esphomepr:`3500` by :ghuser:`dentra` (new-integration)
|
||||
- Add TT21100 touchscreen component :esphomepr:`4793` by :ghuser:`kroimon` (new-integration)
|
||||
- tuya_light: fix float->int conversion while setting color temperature :esphomepr:`5067` by :ghuser:`kswt`
|
||||
- Fix typo in mpu6050.cpp :esphomepr:`5086` by :ghuser:`stefanklug`
|
||||
- airthings_wave: Battery level reporting :esphomepr:`4979` by :ghuser:`kpfleming`
|
||||
- Add support for Grove tb6612 fng :esphomepr:`4797` by :ghuser:`max246` (new-integration)
|
||||
- Add MCP2515 12MHz xtal support :esphomepr:`5089` by :ghuser:`clydebarrow`
|
||||
- Correct message for standard transmission. :esphomepr:`5088` by :ghuser:`clydebarrow`
|
||||
- Restrict pillow to versions before 10.0.0 :esphomepr:`5090` by :ghuser:`jesserockz`
|
||||
- Bump esphome-dashboard to 20230711.0 :esphomepr:`5085` by :ghuser:`jesserockz`
|
||||
- added uart final validate data bits :esphomepr:`5079` by :ghuser:`dudanov`
|
||||
- Add support for ATM90E26 :esphomepr:`4366` by :ghuser:`danieltwagner` (new-integration)
|
||||
- Grove amend name :esphomepr:`5093` by :ghuser:`max246`
|
||||
- Fixing colon for tm1637 display if inverted set true :esphomepr:`5072` by :ghuser:`paveldn`
|
||||
- Fix use of optional<T> :esphomepr:`5091` by :ghuser:`dudanov`
|
||||
- New 'Duty Time' sensor component :esphomepr:`5069` by :ghuser:`dudanov` (new-integration)
|
||||
- Fix PIDController::in_deadband() to give correct result when error is zero :esphomepr:`5078` by :ghuser:`lewissbaker`
|
||||
- Edit error message for pillow install to add version restrictions :esphomepr:`5094` by :ghuser:`jesserockz`
|
||||
- Dont do mqtt ip lookup if `use_address` has ip address :esphomepr:`5096` by :ghuser:`jesserockz`
|
||||
- ESP32 enable ADC2 when wifi is disabled :esphomepr:`4381` by :ghuser:`pciavald`
|
||||
- [Sprinkler] Resume fixes :esphomepr:`5100` by :ghuser:`hostcc`
|
||||
- Remove template switch restore_state :esphomepr:`5106` by :ghuser:`jesserockz` (breaking-change)
|
||||
- Add timeout filter :esphomepr:`5104` by :ghuser:`clydebarrow`
|
||||
- P1 values for capacity tariff in Belgium :esphomepr:`5081` by :ghuser:`bwynants`
|
||||
- airthings_wave: Silence compiler warnings :esphomepr:`5098` by :ghuser:`kpfleming`
|
||||
- Sigma delta fix :esphomepr:`4911` by :ghuser:`PlainTechEnthusiast`
|
||||
- [LD2410] Remove baud_rate check :esphomepr:`5112` by :ghuser:`voed`
|
||||
- Fix silence detection flag on voice assistant :esphomepr:`5120` by :ghuser:`jesserockz`
|
||||
|
||||
Past Changelogs
|
||||
---------------
|
||||
|
||||
- :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.6.0.html
|
||||
:url: /changelog/2023.7.0.html
|
||||
|
||||
.. toctree::
|
||||
:glob:
|
||||
|
@ -94,7 +94,11 @@ of these entries matters!)
|
||||
- invert:
|
||||
- delayed_on: 100ms
|
||||
- delayed_off: 100ms
|
||||
- delayed_on_off: 100ms
|
||||
# Templated, delays for 1s (1000ms) only if a reed switch is active
|
||||
- delayed_on_off: !lambda "if (id(reed_switch).state) return 1000; else return 0;"
|
||||
- delayed_on_off:
|
||||
time_on: 10s
|
||||
time_off: !lambda "if (id(reed_switch).state) return 1000; else return 0;"
|
||||
- autorepeat:
|
||||
- delay: 1s
|
||||
time_off: 100ms
|
||||
@ -117,26 +121,64 @@ Simple filter that just inverts every value from the binary sensor.
|
||||
``delayed_on``
|
||||
**************
|
||||
|
||||
(**Required**, :ref:`config-time`): When a signal ON is received, wait for the specified time period until publishing
|
||||
an ON state. If an OFF value is received while waiting, the ON action is discarded. Or in other words:
|
||||
(**Required**, time, :ref:`templatable <config-templatable>`): When a signal ON is received,
|
||||
wait for the specified time period until publishing an ON state. If an OFF value is received
|
||||
while waiting, the ON action is discarded. Or in other words:
|
||||
Only send an ON value if the binary sensor has stayed ON for at least the specified time period.
|
||||
When using a lambda call, you should return the delay value in milliseconds.
|
||||
**Useful for debouncing push buttons**.
|
||||
|
||||
``delayed_off``
|
||||
***************
|
||||
|
||||
(**Required**, :ref:`config-time`): When a signal OFF is received, wait for the specified time period until publishing
|
||||
an OFF state. If an ON value is received while waiting, the OFF action is discarded. Or in other words:
|
||||
(**Required**, time, :ref:`templatable <config-templatable>`): When a signal OFF is received,
|
||||
wait for the specified time period until publishing an OFF state. If an ON value is received
|
||||
while waiting, the OFF action is discarded. Or in other words:
|
||||
Only send an OFF value if the binary sensor has stayed OFF for at least the specified time period.
|
||||
When using a lambda call, you should return the delay value in milliseconds.
|
||||
**Useful for debouncing push buttons**.
|
||||
|
||||
``delayed_on_off``
|
||||
******************
|
||||
|
||||
(**Required**, :ref:`config-time`): Only send an ON or OFF value if the binary sensor has stayed in the same state
|
||||
for at least the specified time period.
|
||||
Only send an ON or OFF value if the binary sensor has stayed in the same state for at least the specified time period.
|
||||
|
||||
This filter uses two time delays: on and off.
|
||||
|
||||
If the delays are equal, then you can configure the filter in short form by passing the time parameter:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
binary_sensor:
|
||||
- platform: ...
|
||||
# ...
|
||||
filters:
|
||||
- delayed_on_off: 1s
|
||||
|
||||
(**Required**, time, :ref:`templatable <config-templatable>`): ON and OFF delay.
|
||||
When using a lambda call, you should return the delay value in milliseconds.
|
||||
**Useful for debouncing binary switches**.
|
||||
|
||||
If the delays are different, then you need to pass them as in the example below:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
binary_sensor:
|
||||
- platform: ...
|
||||
# ...
|
||||
filters:
|
||||
- delayed_on_off:
|
||||
time_on: 10s
|
||||
time_off: 20s
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **time_on** (**Required**, time, :ref:`templatable <config-templatable>`): ON delay.
|
||||
- **time_off** (**Required**, time, :ref:`templatable <config-templatable>`): OFF delay.
|
||||
|
||||
When using a lambda call, you should return the delay value in milliseconds.
|
||||
|
||||
|
||||
``autorepeat``
|
||||
**************
|
||||
|
||||
|
@ -259,7 +259,7 @@ Configuration variables:
|
||||
- **cs_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): Is used to tell the receiving SPI device
|
||||
when it should listen for data on the SPI bus. Each device has an individual ``CS`` line.
|
||||
Sometimes also called ``SS``.
|
||||
- **clock** (*Optional*): One of ``8MHZ``, ``16MHZ`` or ``20MHZ``. Clock crystal used on the MCP2515 device.
|
||||
- **clock** (*Optional*): One of ``8MHZ``, ``12MHz``, ``16MHZ`` or ``20MHZ``. Clock crystal used on the MCP2515 device.
|
||||
Defaults to ``8MHZ``.
|
||||
- **mode** (*Optional*): Operation mode. Default to ``NORMAL``
|
||||
|
||||
@ -269,6 +269,10 @@ Configuration variables:
|
||||
|
||||
- All other options from :ref:`Canbus <config-canbus>`.
|
||||
|
||||
Note that not all combinations of clock and bitrate are supported. An unsupported
|
||||
combination will not be flagged at compile time, check the runtime log for a message like
|
||||
``Invalid frequency/bitrate combination`` if you suspect this is an issue.
|
||||
|
||||
Wiring options
|
||||
**************
|
||||
|
||||
|
@ -5,47 +5,11 @@ Haier Climate
|
||||
:description: Instructions for setting up a Haier climate devices.
|
||||
:image: air-conditioner.svg
|
||||
|
||||
The ``haier`` climate platform creates a Haier climate device.
|
||||
The component can be used as a replacement of a Haier proprietary WiFi modules such as KZW-W001 and KZW-W002.
|
||||
This is an implementation of the ESPHome component to control HVAC on the base of the SmartAir2 and hOn Haier protocols (AC that is controlled by the hOn or SmartAir2 application).
|
||||
|
||||
This component requires a :ref:`uart` to be setup.
|
||||
There are two versions of the Haier protocol. The older one is using an application called SmartAir2 and the newer one - an application called hOn. Both protocols are compatible on the transport level but have different commands to control appliances.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
logger:
|
||||
baud_rate: 0 #Disable UART logging for ESP8266
|
||||
|
||||
uart:
|
||||
rx_pin: GPIO3
|
||||
tx_pin: GPIO1
|
||||
baud_rate: 9600
|
||||
|
||||
climate:
|
||||
platform: haier
|
||||
name: Haier AC
|
||||
supported_swing_modes:
|
||||
- VERTICAL
|
||||
- HORIZONTAL
|
||||
- BOTH
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||
- **name** (**Required**, string): The name of the climate device.
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): How often device will be polled for status. Defaults to ``5s``.
|
||||
- **supported_swing_modes** (*Optional*, list): List of supported swing modes. Possible values are: ``VERTICAL``, ``HORIZONTAL``, ``BOTH``.
|
||||
- All other options from :ref:`Climate <config-climate>`.
|
||||
|
||||
Hardware setup
|
||||
--------------
|
||||
|
||||
Most units will have a dedicated USB-A port for Haier WiFi module.
|
||||
The physical USB port is in fact UART and does not "speak" USB protocol.
|
||||
It uses four USB pins as 5V, GND, RX, TX.
|
||||
You can use spare male USB cable to connect esphome device directly to the climate appliance.
|
||||
|
||||
Other units will not have USB ports, but will still probably have UART exposed somewhere on the main board.
|
||||
Older Haier models controlled by the SmartAir2 application are using the KZW-W002 module. This module can’t be reused, and you need to replace it with an ESP (RPI pico w) module. The USB connector on a board doesn’t support the USB protocol. It is a UART port that just uses a USB connector. To connect the ESP board to your AC you can cut a USB type A cable and connect wires to the climate connector.
|
||||
|
||||
.. list-table:: Haier UART pinout
|
||||
:header-rows: 1
|
||||
@ -75,12 +39,232 @@ Other units will not have USB ports, but will still probably have UART exposed s
|
||||
:align: center
|
||||
:width: 70.0%
|
||||
|
||||
USB Pinout
|
||||
KZW-W002 module pinout
|
||||
|
||||
Newer Haier models using a module called ESP32-for-Haier. It is an ESP32 single-core board with an ESP32-S0WD chip. In some cases, you can reuse this module and flash it with ESPHome, but some new modules don’t support this. They look the same but have encryption enabled.
|
||||
|
||||
**Warning!** The new generation of ESP32-Haier devices has encryption enabled, so they can only be flashed with firmware that is signed with a private key. There is no way to make them work with ESPHome, so if you try to do it, the board will get into a boot loop with error ``rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)`` The only way to recover this board is to flash it with the original image. So before starting your experiments make a backup image.
|
||||
|
||||
.. figure:: images/haier_pinout.jpg
|
||||
:align: center
|
||||
:width: 70.0%
|
||||
|
||||
ESP32-for-Haier UART0 pinout
|
||||
|
||||
Also, you can use any other ESP32, ESP8266 or a RPI pico W board. In this case, you will need to cut the original wire or make a connector yourself (the board has a JST SM04B-GHS-TB connector)
|
||||
|
||||
This component requires a :ref:`uart` to be setup.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
|
||||
uart:
|
||||
baud_rate: 9600
|
||||
tx_pin: 17
|
||||
rx_pin: 16
|
||||
id: ac_port
|
||||
|
||||
climate:
|
||||
- platform: haier
|
||||
id: haier_ac
|
||||
protocol: hOn
|
||||
name: Haier AC
|
||||
uart_id: ac_port
|
||||
wifi_signal: true
|
||||
beeper: true
|
||||
outdoor_temperature:
|
||||
name: Haier AC outdoor temperature
|
||||
visual:
|
||||
min_temperature: 16 °C
|
||||
max_temperature: 30 °C
|
||||
temperature_step: 1 °C
|
||||
supported_modes:
|
||||
- 'OFF'
|
||||
- AUTO
|
||||
- COOL
|
||||
- HEAT
|
||||
- DRY
|
||||
- FAN_ONLY
|
||||
supported_swing_modes:
|
||||
- 'OFF'
|
||||
- VERTICAL
|
||||
- HORIZONTAL
|
||||
- BOTH
|
||||
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||
- **uart_id** (*Optional*, :ref:`config-id`): ID of the UART port to communicate with AC.
|
||||
- **protocol** (*Optional*, string): Defines protocol of communication with AC. Possible values: hon or smartair2. Default value is smartair2.
|
||||
- **name** (**Required**, string): The name of the climate device.
|
||||
- **wifi_signal** (*Optional*, boolean): If true - send wifi signal level to AC. Supported only by hOn protocol.
|
||||
- **beeper** (*Optional*, boolean): Can be used to disable beeping on commands from AC. Supported only by hOn protocol.
|
||||
- **outdoor_temperature** (*Optional*): Temperature sensor for outdoor temperature. Supported only by hOn protocol.
|
||||
|
||||
- **name** (**Required**, string): The name of the sensor.
|
||||
- **id** (*Optional*, :ref:`config-id`): ID of the sensor, can be used for code generation
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
- **supported_modes** (*Optional*, list): Can be used to disable some of AC modes. Possible values: 'OFF', AUTO, COOL, HEAT, DRY, FAN_ONLY
|
||||
- **supported_swing_modes** (*Optional*, list): Can be used to disablesome swing modes if your AC does not support it. Possible values: 'OFF', VERTICAL, HORIZONTAL, BOTH
|
||||
- All other options from :ref:`Climate <config-climate>`.
|
||||
|
||||
Automations
|
||||
-----------
|
||||
|
||||
climate.haier.power_on Action
|
||||
*****************************
|
||||
|
||||
This action turns AC power on.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
then:
|
||||
climate.haier.power_on: device_id
|
||||
|
||||
climate.haier.power_off Action
|
||||
******************************
|
||||
|
||||
This action turns AC power off
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
then:
|
||||
climate.haier.power_off: device_id
|
||||
|
||||
climate.haier.power_toggle Action
|
||||
*********************************
|
||||
|
||||
This action toggles AC power
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
then:
|
||||
climate.haier.power_toggle: device_id
|
||||
|
||||
climate.haier.display_on Action
|
||||
*******************************
|
||||
|
||||
This action turns the AC display on
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
then:
|
||||
climate.haier.display_on: device_id
|
||||
|
||||
climate.haier.display_off Action
|
||||
********************************
|
||||
|
||||
This action turns the AC display off
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
then:
|
||||
climate.haier.display_off: device_id
|
||||
|
||||
climate.haier.health_on Action
|
||||
******************************
|
||||
|
||||
Turn on health mode (`UV light sterilization <https://www.haierhvac.eu/en/node/1809>`__)
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
then:
|
||||
climate.haier.health_on: device_id
|
||||
|
||||
climate.haier.health_off Action
|
||||
*******************************
|
||||
|
||||
Turn off health mode
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
then:
|
||||
climate.haier.health_off: device_id
|
||||
|
||||
climate.haier.beeper_on Action
|
||||
******************************
|
||||
|
||||
(supported only by hOn) This action enables beep feedback on every command sent to AC
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
then:
|
||||
climate.haier.beeper_on: device_id
|
||||
|
||||
climate.haier.beeper_off Action
|
||||
*******************************
|
||||
|
||||
(supported only by hOn) This action disables beep feedback on every command sent to AC (keep in mind that this will not work for IR remote commands)
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
then:
|
||||
climate.haier.beeper_off: device_id
|
||||
|
||||
climate.haier.set_vertical_airflow Action
|
||||
*****************************************
|
||||
|
||||
(supported only by hOn) Set direction for vertical airflow if the vertical swing is disabled. Possible values: Health_Up, Max_Up, Up, Center, Down, Health_Down.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
then:
|
||||
- climate.haier.set_vertical_airflow:
|
||||
id: device_id
|
||||
vertical_airflow: Up
|
||||
|
||||
climate.haier.set_horizontal_airflow Action
|
||||
*******************************************
|
||||
|
||||
(supported only by hOn) Set direction for horizontal airflow if the horizontal swing is disabled. Possible values: Max_Left, Left, Center, Right, Max_Right.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
then:
|
||||
- climate.haier.set_horizontal_airflow:
|
||||
id: device_id
|
||||
vertical_airflow: Right
|
||||
|
||||
climate.haier.start_self_cleaning Action
|
||||
****************************************
|
||||
|
||||
(supported only by hOn) Start `self-cleaning <https://www.haier.com/in/blogs/beat-the-summer-heat-with-haier-self-cleaning-ac.shtml>`__
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
then:
|
||||
- climate.haier.start_self_cleaning: device_id
|
||||
|
||||
climate.haier.start_steri_cleaning Action
|
||||
*****************************************
|
||||
|
||||
(supported only by hOn) Start 56°C steri-cleaning
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
then:
|
||||
- climate.haier.start_steri_cleaning: device_id
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- `esphaier <https://github.com/MiguelAngelLV/esphaier>`__
|
||||
- `haier-esphome <https://github.com/paveldn/haier-esphome>`__
|
||||
- :doc:`/components/climate/index`
|
||||
- :apiref:`haier/climate/haier.h`
|
||||
- :ghedit:`Edit`
|
||||
|
BIN
components/climate/images/haier_pinout.jpg
Normal file
After Width: | Height: | Size: 414 KiB |
@ -16,6 +16,7 @@ With this display driver you can control the following displays:
|
||||
- ILI9481
|
||||
- ILI9486
|
||||
- ILI9488
|
||||
- ILI9488_A (alternative gamma configuration for ILI9488)
|
||||
- M5STACK
|
||||
- S3BOX
|
||||
- S3BOX_LITE
|
||||
@ -62,7 +63,7 @@ Configuration variables:
|
||||
- **model** (**Required**): The model of the display. Options are:
|
||||
|
||||
- ``M5STACK``, ``TFT 2.4``, ``TFT 2.4R``, ``S3BOX``, ``S3BOX_LITE``
|
||||
- ``ILI9341``, ``ILI9342``, ``ILI9481``, ``ILI9486``, ``ILI9488``, ``ST7796``
|
||||
- ``ILI9341``, ``ILI9342``, ``ILI9481``, ``ILI9486``, ``ILI9488``, ``ILI9488_A`` (alternative gamma configuration for ILI9488), ``ST7796``
|
||||
|
||||
.. note:: According to its documentation, the ESP32 S3 Box Lite has an ST7789V display driver. We've found, however, that it works with the ILIxxxx component here, instead. This could change in the future.
|
||||
|
||||
@ -84,6 +85,7 @@ Configuration variables:
|
||||
- ``IMAGE_ADAPTIVE``
|
||||
- **color_palette_images** (*Optional*): A list of image files that will be used to generate the color pallet for the display. This should only be used in conjunction with ``-color_palette: IMAGE_ADAPTIVE`` above. The images will be analysed at compile time and a custom color pallet will be created based on the most commonly occuring colors. A typical setting would be a sample image that represented the fully populated display. This can significantly improve the quality of displayed images. Note that these images are not stored on the ESP device, just the 256byte color pallet created from them.
|
||||
- **dimensions** (*Optional*): Dimensions of the screen with WIDTHxHEIGHT. Usually not needed since ``model:`` has good defaults.
|
||||
- **data_rate** (*Optional*): Set the data rate of the SPI interface to the display. One of ``80MHz``, ``40MHz`` (default), ``20MHz``, ``10MHz``, ``5MHz``, ``2MHz``, ``1MHz``, ``200kHz``, ``75kHz`` or ``1kHz``. If you have multiple ILI9xxx displays they must all use the same **data_rate**.
|
||||
|
||||
Configuration examples
|
||||
**********************
|
||||
|
@ -784,6 +784,8 @@ This can be combined with all Lambdas:
|
||||
// Draw the animation my_animation at position [x=0,y=0]
|
||||
it.image(0, 0, id(my_animation), COLOR_ON, COLOR_OFF);
|
||||
|
||||
Additionally, you can use the ``animation.next_frame``, ``animation.prev_frame`` or ``animation.set_frame`` actions.
|
||||
|
||||
.. note::
|
||||
|
||||
To draw the next animation independent of Display draw cycle use an interval:
|
||||
@ -793,8 +795,7 @@ This can be combined with all Lambdas:
|
||||
interval:
|
||||
- interval: 5s
|
||||
then:
|
||||
lambda: |-
|
||||
id(my_animation).next_frame();
|
||||
animation.next_frame: my_animation
|
||||
|
||||
|
||||
Configuration variables:
|
||||
@ -823,6 +824,22 @@ Configuration variables:
|
||||
- **end_frame** (*Optional*, int): The last frame to show in the loop; when this frame is reached it will loop back to ``start_frame``. Defaults to the last frame in the animation.
|
||||
- **repeat** (*Optional*, int): Specifies how many times the loop will run. When the count is reached, the animation will continue with the next frame after ``end_frame``, or restart from the beginning if ``end_frame`` was the last frame. Defaults to "loop forever".
|
||||
|
||||
Actions:
|
||||
^^^^^^^^
|
||||
|
||||
- **animation.next_frame**: Moves the animation to the next frame. This is equivalent to the ``id(my_animation).next_frame();`` lambda call.
|
||||
|
||||
- **id** (**Required**, :ref:`config-id`): The ID of the animation to animate.
|
||||
|
||||
- **animation.prev_frame**: Moves the animation to the previous frame. This is equivalent to the ``id(my_animation).prev_frame();`` lambda call.
|
||||
|
||||
- **id** (**Required**, :ref:`config-id`): The ID of the animation to animate.
|
||||
|
||||
- **animation.set_frame**: Moves the animation to a specific frame. This is equivalent to the ``id(my_animation).set_frame(frame);`` lambda call.
|
||||
|
||||
- **id** (**Required**, :ref:`config-id`): The ID of the animation to animate.
|
||||
- **frame** (**Required**, int): The frame index to show next.
|
||||
|
||||
.. _display-pages:
|
||||
|
||||
Display Pages
|
||||
|
@ -7,8 +7,12 @@ Waveshare E-Paper Display
|
||||
|
||||
The ``waveshare_epaper`` display platform allows you to use
|
||||
some E-Paper displays sold by `Waveshare <https://www.waveshare.com/product/displays/e-paper.htm>`__
|
||||
with ESPHome. The 2.13" `TTGO module <https://github.com/lewisxhe/TTGO-EPaper-Series>`__ with an ESP32 on the board is supported as well.
|
||||
Depending on your specific revision of the board you might need to try out the ``-b73`` or ``-b1`` version (see below).
|
||||
with ESPHome. The 2.13" `TTGO module <https://github.com/lewisxhe/TTGO-EPaper-Series>`__ with an ESP32 on the board
|
||||
is supported as well. Depending on your specific revision of the board you might need to try out the ``-b73`` or ``-b1``
|
||||
version (see below).
|
||||
The 1.54" `Good Display gdew0154m09 <https://www.good-display.com/product/206.html>`__
|
||||
as used in the `M5Stack Core Ink <https://shop.m5stack.com/products/m5stack-esp32-core-ink-development-kit1-54-elnk-display>`__
|
||||
is also supported.
|
||||
Similar modules sold by other vendors might also work but not have been tested yet. Currently only
|
||||
single-color E-Ink displays are implemented and of those only a few modules.
|
||||
|
||||
@ -99,6 +103,12 @@ Configuration variables:
|
||||
- ``7.50inV2alt`` (alternative version to the above ``7.50inV2``)
|
||||
- ``7.50in-hd-b`` - Can't use with an ESP8266 as it runs out of RAM
|
||||
- ``gdey029t94`` - GooDisplay GDEY029T94, as used on the AdaFruit MagTag
|
||||
- ``1.54in-m5coreink-m09`` - GoodDisplay gdew0154m09, as used in the M5Stack Core Ink
|
||||
|
||||
.. warning::
|
||||
|
||||
The BUSY pin on the gdew0154m09 must be inverted to prevent permanent display damage. Set the pin to
|
||||
``inverted: true`` in the config.
|
||||
|
||||
- **busy_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The BUSY pin. Defaults to not connected.
|
||||
- **reset_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The RESET pin. Defaults to not connected.
|
||||
|
@ -41,6 +41,7 @@ Configuration variables:
|
||||
- ``IP101``
|
||||
- ``JL1101``
|
||||
- ``KSZ8081``
|
||||
- ``KSZ8081RNA``
|
||||
|
||||
- **mdc_pin** (**Required**, :ref:`config-pin`): The MDC pin of the board.
|
||||
Usually this is ``GPIO23``.
|
||||
|
133
components/grove_tb6612fng.rst
Normal file
@ -0,0 +1,133 @@
|
||||
Grove TB6612FNG Motor Drive
|
||||
===========================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up Grove TB6612FNG Motor Driver in ESPHome.
|
||||
:image: grove_tb6612fng.jpg
|
||||
|
||||
The Grove TBB6612FNG a runs over I²C bus and has the capability to control DC and Stepper motors.
|
||||
At the current stage of implementation only DC motor is implemented.
|
||||
|
||||
.. figure:: images/grove_tb6612fng.jpg
|
||||
:align: center
|
||||
:width: 50.0%
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration grove motor
|
||||
grove_tb6612fng:
|
||||
id: test_motor
|
||||
name: motor_outside
|
||||
address: 0x14
|
||||
|
||||
# Example switch trigger
|
||||
switch:
|
||||
- platform: template
|
||||
name: open_vent
|
||||
id: open_vent
|
||||
optimistic: True
|
||||
on_turn_on:
|
||||
then:
|
||||
- grove_tb6612fng.run:
|
||||
channel: 1
|
||||
speed: 255
|
||||
direction: BACKWARD
|
||||
id: test_motor
|
||||
- delay: 10s
|
||||
- switch.turn_on: stop_motor
|
||||
- switch.turn_off: open_vent
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **id** (**Required**, :ref:`config-id`): The id to use for this TB6612FNG component.
|
||||
- **address** (*Optional*, int): The I²C address of the driver.
|
||||
Defaults to ``0x14``.
|
||||
- **name** (*Required*, boolean): The name of the component
|
||||
|
||||
.. grove_tb6612fng.run:
|
||||
|
||||
``grove_tb6612fng.run`` Action
|
||||
------------------------------------
|
||||
|
||||
Set the motor to spin by defining the direction and speed of the rotation, speed is a range from 0 to 255
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
then:
|
||||
- grove_tb6612fng.run:
|
||||
channel: 1
|
||||
speed: 255
|
||||
direction: BACKWARD
|
||||
id: test_motor
|
||||
|
||||
|
||||
.. grove_tb6612fng.stop:
|
||||
|
||||
|
||||
``grove_tb6612fng.stop`` Action
|
||||
-------------------------------------
|
||||
|
||||
Set the motor to stop motion but wont stop to spin in case there is a force pulling down, you would want to use break action if this is your case
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
then:
|
||||
- grove_tb6612fng.stop:
|
||||
channel: 1
|
||||
|
||||
|
||||
|
||||
.. grove_tb6612fng.break:
|
||||
|
||||
|
||||
``grove_tb6612fng.break`` Action
|
||||
--------------------------------------
|
||||
|
||||
Set the motor channel to be on break mode which it ensure the wheel wont spin even if forced or pushed
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
then:
|
||||
- grove_tb6612fng.break:
|
||||
channel: 1
|
||||
id: test_motor
|
||||
|
||||
.. grove_tb6612fng.standby:
|
||||
|
||||
``grove_tb6612fng.standby`` Action
|
||||
----------------------------------
|
||||
|
||||
Set the board to be on standby when is not used for a long time which reduces power consumptions and any jerking motion when stationary
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
then:
|
||||
- grove_tb6612fng.standby
|
||||
id: test_motor
|
||||
|
||||
.. grove_tb6612fng.no_standby:
|
||||
|
||||
``grove_tb6612fng.no_standby`` Action
|
||||
-------------------------------------
|
||||
|
||||
Set the board to be awake, every esphome is restarted the default mode is set to standby to ensure the motor wont spin accidentally
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
then:
|
||||
- grove_tb6612fng.no_standby
|
||||
id: test_motor
|
||||
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ref:`i2c`
|
||||
- :doc:`switch/gpio`
|
||||
- :ghedit:`Edit`
|
BIN
components/images/grove_tb6612fng.jpg
Normal file
After Width: | Height: | Size: 22 KiB |
@ -74,6 +74,33 @@ To simplify this, we provide the setting ``attenuation: auto`` for an automatic/
|
||||
Even though the measurements are calibrated, the range *limits* are variable among chips due to differences in the internal voltage reference.
|
||||
|
||||
|
||||
.. _adc-esp32_pins:
|
||||
|
||||
ESP32 pins
|
||||
----------
|
||||
|
||||
``ADC2`` pins are only usable when Wi-Fi is not configured on the device.
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Variant
|
||||
- ADC1
|
||||
- ADC2
|
||||
* - ESP32
|
||||
- GPIO32 - GPIO39
|
||||
- GPIO0, GPIO2, GPIO4, GPIO12 - GPIO15, GPIO25 - GPIO27
|
||||
* - ESP32-C3
|
||||
- GPIO0 - GPIO4
|
||||
- GPIO5
|
||||
* - ESP32-S2
|
||||
- GPIO1 - GPIO10
|
||||
- GPIO11 - GPIO20
|
||||
* - ESP32-S3
|
||||
- GPIO1 - GPIO10
|
||||
- GPIO11 - GPIO20
|
||||
|
||||
|
||||
.. _adc-raw:
|
||||
|
||||
Different ESP32-ADC behavior since 2021.11
|
||||
|
@ -55,6 +55,7 @@ Configuration example:
|
||||
- platform: airthings_wave_plus
|
||||
ble_client_id: airthings01
|
||||
update_interval: 5min # default
|
||||
battery_update_interval: 24h # default
|
||||
temperature:
|
||||
name: "WavePlus Temperature"
|
||||
radon:
|
||||
@ -69,6 +70,8 @@ Configuration example:
|
||||
name: "WavePlus CO2"
|
||||
tvoc:
|
||||
name: "WavePlus VOC"
|
||||
battery_voltage:
|
||||
name: "WavePlus Battery Voltage"
|
||||
|
||||
ble_client:
|
||||
- mac_address: 01:02:03:04:05:06
|
||||
@ -93,6 +96,7 @@ Configuration example:
|
||||
- platform: airthings_wave_mini
|
||||
ble_client_id: airthingsmini
|
||||
update_interval: 5min # default
|
||||
battery_update_interval: 24h # default
|
||||
temperature:
|
||||
name: "WaveMini Temperature"
|
||||
pressure:
|
||||
@ -101,6 +105,8 @@ Configuration example:
|
||||
name: "WaveMini Humidity"
|
||||
tvoc:
|
||||
name: "WaveMini VOC"
|
||||
battery_voltage:
|
||||
name: "WaveMini Battery Voltage"
|
||||
|
||||
ble_client:
|
||||
- mac_address: 01:02:03:04:05:06
|
||||
@ -111,3 +117,66 @@ Configuration example:
|
||||
.. note::
|
||||
|
||||
The sensor uses active polling of devices every 5 minutes as per the device reported internal refresh timeout.
|
||||
|
||||
.. note::
|
||||
|
||||
Battery-voltage reporting defaults to once every 24 hours in order
|
||||
to reduce BLE traffic (obtaining the battery voltage requires quite
|
||||
a few BLE commands/responses); if you wish to have it reported
|
||||
more frequently configure the ``battery_update_interval``. The main
|
||||
sensor ``update_interval`` controls the overall polling frequency
|
||||
so setting the interval for the battery voltage to a lower value
|
||||
will result in the battery voltage being reported once per polling
|
||||
interval.
|
||||
|
||||
|
||||
Battery Level Reporting
|
||||
***********************
|
||||
|
||||
If you wish to have the 'percentage of battery life remaining'
|
||||
reported as a sensor, you can make use of the :ref:`copy-sensor`
|
||||
integration.
|
||||
|
||||
The examples below are based on standard alkaline-chemistry batteries;
|
||||
if you use other types of batteries you may need to adjust the
|
||||
reference voltages to obtain a proper 0-100% scale. The voltage
|
||||
references were chosen to closely match the 0-100% range displayed by
|
||||
the AirThings mobile app.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
sensor:
|
||||
- platform: airthings_wave_mini
|
||||
ble_client_id: airthingsmini
|
||||
battery_voltage:
|
||||
id: bv
|
||||
name: "WaveMini Battery Voltage"
|
||||
- platform: copy
|
||||
source_id: bv
|
||||
name: "WaveMini Battery Level"
|
||||
unit_of_measurement: percent
|
||||
device_class: battery
|
||||
accuracy_decimals: 0
|
||||
filters:
|
||||
- calibrate_linear:
|
||||
- 2.7 -> 0
|
||||
- 4.5 -> 100
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
sensor:
|
||||
- platform: airthings_wave_plus
|
||||
ble_client_id: airthings01
|
||||
battery_voltage:
|
||||
id: bv
|
||||
name: "WavePlus Battery Voltage"
|
||||
- platform: copy
|
||||
source_id: bv
|
||||
name: "WavePlus Battery Level"
|
||||
unit_of_measurement: percent
|
||||
device_class: battery
|
||||
accuracy_decimals: 0
|
||||
filters:
|
||||
- calibrate_linear:
|
||||
- 2.2 -> 0
|
||||
- 3.1 -> 100
|
||||
|
96
components/sensor/alpha3.rst
Normal file
@ -0,0 +1,96 @@
|
||||
Grundfos Alpha3
|
||||
===============
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for monitoring a Grundfos Alpha3 Model B circulator pump.
|
||||
:image: alpha3.jpg
|
||||
|
||||
The ``alpha3`` component allows you to monitor a Grundfos Alpha3 Model B circulator pump over BLE.
|
||||
|
||||
This component supports the following metrics:
|
||||
|
||||
- flow rate
|
||||
- head pressure
|
||||
- power consumption
|
||||
- speed (RPM)
|
||||
|
||||
This component uses the BLE peripheral on an ESP32, so you also need to enable
|
||||
this component. Please see the :doc:`/components/ble_client` docs for how to discover the MAC
|
||||
address of your Alpha3 pump, or you can find the list of paired MAC addresses in
|
||||
the list of paried Bluetooth devices on your smartphone after using the GO Remote app.
|
||||
|
||||
Configuration entry
|
||||
-------------------
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example Configuration
|
||||
esp32_ble_tracker:
|
||||
|
||||
ble_client:
|
||||
- mac_address: xx:xx:xx:xx:xx:xx
|
||||
id: radiator_pump
|
||||
|
||||
sensor:
|
||||
- platform: alpha3
|
||||
ble_client_id: radiator_pump
|
||||
flow:
|
||||
name: "Radiator Pump Flow"
|
||||
head:
|
||||
name: "Radiator Pump Head"
|
||||
speed:
|
||||
name: "Radiator Pump Speed"
|
||||
power:
|
||||
name: "Radiator Pump Power"
|
||||
voltage:
|
||||
name: "Radiator Pump Voltage"
|
||||
current:
|
||||
name: "Radiator Pump Current"
|
||||
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||
- **flow** (*Optional*): The estimated volume flow of the medium in ``m³/h``.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **head** (*Optional*): The estimated head (preasure difference generated by the pump) in ``m``.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **speed** (*Optional*): the speed of the pump rotor in ``RPM``.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **power** (*Optional*): The power consumption of the pump in ``W``.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **voltage** (*Optional*): Voltage in ``V``.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **current** (*Optional*): Current in ``A``.
|
||||
All options from :ref:`Sensor <config-sensor>`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Notes:
|
||||
-------------
|
||||
|
||||
.. warning::
|
||||
|
||||
Older pumps like the Alpha2 and Alpha3 Model A are not compatible, as they don't have Bluetooth integrated.
|
||||
The Alpha Reader is using a different protocol, so it won't work to connect your Alpha2 with this component.
|
||||
|
||||
.. note::
|
||||
|
||||
The ESP needs to be paired with the pump to read the sensors. If the devices are not paried the wireless indicator on the pump will turn on and off again.
|
||||
|
||||
For the initial pairing you have to press the 'Connectivity button' (Wireless symbol) on the pump.
|
||||
After the initial pairing the ESP should connect automatically when the pump turns on. When the ESP is conected the blue wireless indicator should be constantly lit.
|
||||
|
||||
.. note::
|
||||
|
||||
The pump can only be connected to one device at a time. If you want to use the GO Remote App, you have to first turn the ESP off.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :doc:`/components/ble_client`
|
||||
- :apiref:`alpha3/alpha3.h`
|
||||
- :ghedit:`Edit`
|
158
components/sensor/atm90e26.rst
Normal file
@ -0,0 +1,158 @@
|
||||
ATM90E26 Power Sensor
|
||||
=====================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up ATM90E26 energy metering sensors
|
||||
:image: atm90e26.jpg
|
||||
:keywords: ATM90E26, Single-Phase High-Performance Wide-SpanEnergy Metering IC, Single Phase Energy Meter
|
||||
|
||||
The ``atm90e26`` sensor platform allows you to use your ATM90E26 voltage/current and power sensors
|
||||
(`datasheet <https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-46002-SE-M90E26-Datasheet.pdf>`__) with
|
||||
ESPHome. This sensor is found in the `DitroniX GTEM ESP32 <https://ditronix.net/wiki/gtem-esp32-atm90e26-sdk-v1-specification/>`__ energy meter and other devices.
|
||||
|
||||
Communication with the device is done via an :ref:`SPI bus <spi>`, so you need to have an ``spi:`` entry in your configuration
|
||||
with both ``mosi_pin`` and ``miso_pin`` set.
|
||||
|
||||
The ATM90E26 IC measures a single phase's voltage (using a transformer) and current (using a shunt or CT clamp)
|
||||
and additionally provides active, reactive, and apparent power, frequency, power factor and phase angle measurements.
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **cs_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin CS is connected to. For the 6 channel meter main board, this will always be 5 and 4. For the add-on boards a jumper can be selected for each CS pin, but default to 0 and 16.
|
||||
- **line_frequency** (**Required**, string): The AC line frequency of the supply voltage. One of ``50Hz``, ``60Hz``.
|
||||
- **meter_constant** (**Required**, float): The number of pulses per kWh. The ATM90E26 internally works based on pulses and this value converts a pulse into Wh, which are emitted as `forward_active_energy` etc. Matching it against an existing meter is useful in that it allows visual confirmation for some devices that blink an LED for each pulse. Common values are 1000 pulses/kWh, 1666.66 pulses/kWh, or 3200 pulses/kWh. See also **gain_metering** which determines after how much energy a pulse is emitted.
|
||||
- **voltage** (*Optional*): Use the voltage value of this phase in V (RMS).
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **current** (*Optional*): Use the current value of this phase in amperes. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **power** (*Optional*): Use the power value on this phase in watts. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **reactive_power** (*Optional*): Use the reactive power value on this phase. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **power_factor** (*Optional*): Use the power factor value on this phase. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **forward_active_energy** (*Optional*): Use the forward active energy value on this phase in watt-hours.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **reverse_active_energy** (*Optional*): Use the reverse active energy value on this phase in watt-hours.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **frequency** (*Optional*): Use the frequency value calculated by the meter. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **pl_const** (*Optional*, int): A constant derived from the physical characteristics of your measurement setup. See the Calibration section.
|
||||
Defaults to ``1429876``.
|
||||
- **gain_metering** (*Optional*, int): This value determines how quickly internal energy registers accumulate and hence defines the value of a "pulse". Matching it against an existing meter is useful in that it allows visual confirmation for some devices that blink an LED for each pulse. See also the **meter_constant**.
|
||||
Defaults to ``7481``.
|
||||
- **gain_voltage** (*Optional*, int): Voltage gain to scale the low voltage AC power back to household mains feed.
|
||||
Defaults to ``26400``.
|
||||
- **gain_ct** (*Optional*, int): CT clamp calibration value.
|
||||
Defaults to ``31251``.
|
||||
- **gain_pga** (*Optional*, string): The gain for the CT clamp. Valid values are ``1X``, ``4X``, ``8X``, ``16X``, and ``24X``.
|
||||
Defaults to ``1X``.
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
|
||||
- **spi_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`SPI Component <spi>` if you want
|
||||
to use multiple SPI buses.
|
||||
|
||||
Calibration
|
||||
-----------
|
||||
|
||||
This sensor needs calibration to show correct values. In order to calibrate your AC-AC transformer and CT clamp
|
||||
it is easiest to start with the default values and then adjust them as necessary while measuring a known current.
|
||||
For a more accurate calibration you can use a Kill-A-Watt or similar meter.
|
||||
|
||||
**Voltage** is adjusted linearly to bring the observed value in agreement with a reference measurement. If your
|
||||
Kill-A-Watt shows 241 Volts and the ATM90E26 shows 234 Volts using the default `gain_voltage` of 26400, it would
|
||||
need to be adjusted to `241 / 234 * 26400 = 27190`.
|
||||
|
||||
**Current** is best measured with an ideal load (e.g. a space heater). The process is the same as for voltage, but
|
||||
you modify the `gain_ct` value instead. For a SCT-013-000 clamp a value of 28621 worked well for me but you should
|
||||
calibrate your specific clamp. Note that the ATM90E26 can output a **maximum current of 65A**. If you expect to
|
||||
measure higher current, simply "mis-calibrate" the CT clamp by a factor of e.g. 2 so that the ATM90E26 thinks it is
|
||||
measuring a lower current (e.g. 10A when 20A are flowing) and multiply the sensor's output by 2.
|
||||
|
||||
**PL Constant** is computed using the physical characteristics of the device we use. We compute the constant
|
||||
as `as 838860800 * gain_pga * <mV at 1A current> * <mV at ref voltage> / (<pulse constant> * <ref voltage>)`.
|
||||
See Section 3.2.2 in the
|
||||
`application note <https://ww1.microchip.com/downloads/en/Appnotes/Atmel-46102-SE-M90E26-ApplicationNote.pdf>`__
|
||||
for additional details. Say we use a SCT-013-000 CT clamp, which has an output of 50mA for 100A input current. Our
|
||||
burden has a value of 12 Ohm. We therefore expect to measure 6mV per amp of input current. Say our AC-AC
|
||||
transformer outputs 19.3V at 230V and we use a 100:1 voltage divider in front of the ATM90E26. We would therefore
|
||||
expect to measure 193 mV at a line voltage of 230V. The resulting PL Constant is, assuming a meter constant of
|
||||
3200 pulses/kWh (see below): `838860800 * 1 * 6 * 193 / (3200 * 230) = 1319838`.
|
||||
|
||||
**Meter Calibration** is completed by matching the ATM90E26's CF1 (active energy) pulse to those of your electricity
|
||||
meter by adjusting the `gain_metering` value until the pulses match. Next, set the `meter_constant`, which defines
|
||||
how many pulses make up one kWh of energy. If you are matching an existing meter, typical values may be 3200 pulses/kWh,
|
||||
1000 pulses/kWh, or for some rotating meters 1666.66 pulses per kWh. If you're not matching against a meter you may
|
||||
want to calibrate this value to emit 1000 pulses per kWh, or whatever other value is useful for your project.
|
||||
|
||||
If your current clamp or voltage transformer aren't well matched to the specific A90E26-based device you're using
|
||||
it **may be necessary to multiply values**, to stay within the value ranges specified in the
|
||||
`datasheet <https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-46002-SE-M90E26-Datasheet.pdf>`__ and
|
||||
`application note <https://ww1.microchip.com/downloads/en/Appnotes/Atmel-46102-SE-M90E26-ApplicationNote.pdf>`__.
|
||||
This component will enforce the stated maxima. In the example below, the AC-AC transformer used read 230V line voltage
|
||||
as 86.6V with default settings. This would imply a `gain_voltage` value of `230 / 86.6 * 26400 = 70115`.
|
||||
However, the chip's application note says this value must be below 32768. If we divide the `gain_voltage` by 4, we
|
||||
stay within the specified range, but must then multiply the voltage output as well as the power reading, which are
|
||||
off by a factor of 4. This is due to the width of registers in the chip and **is not necessary if your components
|
||||
can be calibrated within the specified range.**
|
||||
|
||||
Keeping the calibration values at the top of your yaml might make editing easier.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
substitutions:
|
||||
plconst_cal: '1429876' # default: 1429876, compute as 838860800 * (gain_pga * <sampled voltage (mV) at 1Amp current> * <sampled voltage (mV) at reference voltage> / (<pulse constant (e.g. 3200 pulses/kWh)> * <reference voltage, e.g. 230V>))
|
||||
current_cal: '32801' # default: 31251
|
||||
voltage_cal: '17528' # default: 26400 - Application note says this should be < 32768, maybe for some internal computation?
|
||||
metering_cal: '7481' # default: 7481 - Calibrate this to match your meter based on the CF1 (CFx) pulse.
|
||||
|
||||
spi:
|
||||
clk_pin: 18
|
||||
miso_pin: 19
|
||||
mosi_pin: 23
|
||||
|
||||
sensor:
|
||||
- platform: atm90e26
|
||||
cs_pin: 5
|
||||
voltage:
|
||||
name: House Voltage
|
||||
accuracy_decimals: 1
|
||||
filters:
|
||||
- multiply: 4
|
||||
current:
|
||||
name: House Amps
|
||||
# The max value for current that the meter can output is 65.535. If you expect to measure current over 65A,
|
||||
# divide the gain_ct by 2 (120A CT) or 4 (200A CT) and multiply the current and power values by 2 or 4 by uncommenting the filter below
|
||||
# filters:
|
||||
# - multiply: 2
|
||||
power:
|
||||
name: House Watts
|
||||
accuracy_decimals: 1
|
||||
filters:
|
||||
- multiply: 4
|
||||
reactive_power:
|
||||
name: House Reactive Power
|
||||
power_factor:
|
||||
name: House Power Factor
|
||||
accuracy_decimals: 2
|
||||
forward_active_energy:
|
||||
name: House Forward Active Energy
|
||||
reverse_active_energy:
|
||||
name: House Reverse Active Energy
|
||||
frequency:
|
||||
name: House Freq
|
||||
line_frequency: 50Hz
|
||||
pl_const: ${plconst_cal}
|
||||
meter_constant: '3200.0' # My old rotating-disc meter has a meter constant of 1666.66
|
||||
gain_metering: ${metering_cal}
|
||||
gain_voltage: ${voltage_cal}
|
||||
gain_ct: ${current_cal}
|
||||
gain_pga: 1X
|
||||
update_interval: '10s'
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ref:`sensor-filters`
|
||||
- :apiref:`atm90e26/atm90e26.h`
|
||||
- :ghedit:`Edit`
|
124
components/sensor/duty_time.rst
Normal file
@ -0,0 +1,124 @@
|
||||
Duty Time
|
||||
=========
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up a sensor that tracks the duty time of the some object.
|
||||
:image: timer-play-outline.svg
|
||||
|
||||
The ``duty_time`` sensor allows you to track the total duty time of the some object, for example, a light bulb, in seconds.
|
||||
Able to calculate the last turn-on time when an optional sensor ``last_time`` is included in the configuration.
|
||||
|
||||
Supports boolean signal sources: ``binary_sensor`` or ``lambda`` that returns a boolean state of tracked object.
|
||||
As an alternative to controlling a component in automations, may be used the ``sensor.duty_time.start`` and ``sensor.duty_time.stop`` actions.
|
||||
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
sensor:
|
||||
- platform: duty_time
|
||||
id: my_climate_work_time
|
||||
name: My Climate Work Time
|
||||
# Support logical sources (optional): 'binary_sensor'
|
||||
sensor: my_binary_sensor
|
||||
# ... EOR 'lambda'
|
||||
lambda: "return id(my_climate).mode != CLIMATE_MODE_OFF;"
|
||||
# Restore (optional, default: False)
|
||||
restore: false
|
||||
# Sensor for last turn-on time (optional)
|
||||
last_time:
|
||||
name: My Climate Last Turn-On Time
|
||||
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **sensor** (*Optional*, :ref:`config-id`): The ID of the ``binary_sensor`` to track the duty time. *May not be
|
||||
used with* ``lambda``.
|
||||
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): Lambda that will be called in a loop to get the current
|
||||
state of the tracked object. *May not be used with* ``sensor``.
|
||||
- **last_time** (*Optional*): Information of the last switch-on time sensor.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **restore** (*Optional*, boolean): Whether to store the intermediate result on the device so that the value can be
|
||||
restored upon power cycle or reboot.
|
||||
Warning: this option can wear out your flash. Defaults to ``false``.
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The update interval. Defaults to ``60s``.
|
||||
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
|
||||
Automations
|
||||
-----------
|
||||
|
||||
In addition to all basic :ref:`sensor automations <sensor-automations>`, the component supports the automations below.
|
||||
|
||||
.. _sensor-duty_time-start_action:
|
||||
|
||||
``sensor.duty_time.start`` Action
|
||||
*********************************
|
||||
|
||||
This action starts/resume time tracking. In lambdas, you may use the ``start()`` method.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
then:
|
||||
- sensor.duty_time.start: my_climate_work_time
|
||||
|
||||
|
||||
|
||||
.. _sensor-duty_time-stop_action:
|
||||
|
||||
``sensor.duty_time.stop`` Action
|
||||
********************************
|
||||
|
||||
This action suspends time tracking. Causes the sensor to be updated, including the ``last_time`` sensor. In lambdas, you may use the ``stop()`` method.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
then:
|
||||
- sensor.duty_time.stop: my_climate_work_time
|
||||
|
||||
|
||||
.. _sensor-duty_time-reset_action:
|
||||
|
||||
``sensor.duty_time.reset`` Action
|
||||
*********************************
|
||||
|
||||
This action resets the duty time counter. Causes a sensor update. Does not affect the ``last_time`` sensor. In lambdas, you may use the ``reset()`` method.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
then:
|
||||
- sensor.duty_time.reset: my_climate_work_time
|
||||
|
||||
|
||||
.. _sensor-duty_time-is_running_action:
|
||||
.. _sensor-duty_time-is_not_running_action:
|
||||
|
||||
``sensor.duty_time.is_running`` / ``sensor.duty_time.is_not_running`` Condition
|
||||
*******************************************************************************
|
||||
|
||||
This :ref:`Condition <config-condition>` checks if the ``duty_time`` counter is currently running (or suspended). In lambdas, you may use the ``is_running()`` method.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# In some trigger:
|
||||
on_...:
|
||||
if:
|
||||
condition:
|
||||
# Same syntax for 'is_not_running'
|
||||
sensor.duty_time.is_running: my_climate_work_time
|
||||
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ref:`config-sensor`
|
||||
- :ref:`config-lambda`
|
||||
- :ref:`automation`
|
||||
- :doc:`/components/binary_sensor/index`
|
||||
- :apiref:`duty_time/duty_time_sensor.h`
|
||||
- :ghedit:`Edit`
|
BIN
components/sensor/images/zio_ultrasonic.jpg
Normal file
After Width: | Height: | Size: 79 KiB |
@ -151,6 +151,7 @@ Filters are processed in the order they are defined in your configuration.
|
||||
- throttle_average: 1s
|
||||
- heartbeat: 5s
|
||||
- debounce: 0.1s
|
||||
- timeout: 1min
|
||||
- delta: 5.0
|
||||
- or:
|
||||
- throttle: 1s
|
||||
@ -466,6 +467,14 @@ The last value of the sensor will be sent.
|
||||
So a value of ``10s`` will cause the filter to output values every 10s regardless
|
||||
of the input values.
|
||||
|
||||
``timeout``
|
||||
************
|
||||
|
||||
After the first value has been sent, if no subsequent value is published within the
|
||||
``specified time period``, send ``NaN``.
|
||||
Especially useful when data is derived from some other communication
|
||||
channel, e.g. a serial port, which can potentially be interrupted.
|
||||
|
||||
``debounce``
|
||||
************
|
||||
|
||||
@ -557,6 +566,8 @@ Fahrenheit.
|
||||
- lambda: return x * (9.0/5.0) + 32.0;
|
||||
unit_of_measurement: "°F"
|
||||
|
||||
.. _sensor-automations:
|
||||
|
||||
Sensor Automation
|
||||
-----------------
|
||||
|
||||
|
48
components/sensor/zio_ultrasonic.rst
Normal file
@ -0,0 +1,48 @@
|
||||
Zio Ultrasonic Distance Sensor
|
||||
==============================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up the Zio Ultrasonic Distance sensor.
|
||||
:image: zio_ultrasonic.jpg
|
||||
:keywords: ultrasonic, i2c
|
||||
|
||||
The Zio Ultrasonic Distance sensor allows you to use your compatible
|
||||
(`datasheet <https://cdn.sparkfun.com/datasheets/Sensors/Proximity/HCSR04.pdf>`__,
|
||||
`sparkfun <https://www.sparkfun.com/products/17777>`__)
|
||||
sensors with ESPHome.
|
||||
|
||||
.. figure:: images/zio_ultrasonic.jpg
|
||||
:align: center
|
||||
:width: 30.0%
|
||||
|
||||
Zio Ultrasonic Distance Sensor.
|
||||
(Credit: `Sparkfun <https://www.sparkfun.com/products/17777>`__, image cropped and compressed)
|
||||
|
||||
.. _Sparkfun: https://www.sparkfun.com/products/17777
|
||||
|
||||
The Zio Ultrasonic Distance Sensor is an ultrasonic distance sensor based on the HC-SR04 sensor. Unlike the :doc:`Ultrasonic Distance Sensor component </components/sensor/ultrasonic>`, measurements are read over the I²C bus.
|
||||
|
||||
To use the sensor, first set up an :ref:`I²C Bus <i2c>` and connect the sensor to the specified pins.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
sensor:
|
||||
- platform: zio_ultrasonic
|
||||
name: "Distance"
|
||||
update_interval: 60s
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **address** (*Optional*, int): Manually specifiy the I²C address of the sensor. Defaults to ``0x00``.
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :doc:`Ultrasonic Sensor Component </components/sensor/ultrasonic>`
|
||||
- :ref:`sensor-filters`
|
||||
- :doc:`template`
|
||||
- :ghedit:`Edit`
|
@ -43,8 +43,6 @@ Configuration variables:
|
||||
be performed when the remote (like Home Assistant's frontend) requests the switch to be turned on.
|
||||
- **turn_off_action** (*Optional*, :ref:`Action <config-action>`): The action that should
|
||||
be performed when the remote (like Home Assistant's frontend) requests the switch to be turned off.
|
||||
- **restore_state** (*Optional*, boolean): Sets whether ESPHome should attempt to restore the
|
||||
state on boot-up and call the turn on/off actions with the recovered values. Defaults to ``no``.
|
||||
- **optimistic** (*Optional*, boolean): Whether to operate in optimistic mode - when in this mode,
|
||||
any command sent to the template switch will immediately update the reported state.
|
||||
Defaults to ``false``.
|
||||
|
@ -33,7 +33,7 @@ This :ref:`Action <config-action>` triggers a synchronization of the current sys
|
||||
on_...:
|
||||
- pcf85063.write_time
|
||||
|
||||
# in case you need to specify the DS1307 id
|
||||
# in case you need to specify the PCF85063 id
|
||||
- pcf85063.write_time:
|
||||
id: pcf85063_time
|
||||
|
||||
|
99
components/time/pcf8563.rst
Normal file
@ -0,0 +1,99 @@
|
||||
PCF8563 Time Source
|
||||
====================
|
||||
|
||||
You first need to set up the :doc:`I2C </components/i2c>` component.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
time:
|
||||
- platform: pcf8563
|
||||
id: pcf8563_time
|
||||
|
||||
Configuration variables
|
||||
-----------------------
|
||||
|
||||
- **address** (*Optional*, int): Manually specify the I²C address of the RTC. Defaults to ``0xA3``.
|
||||
- All other options from :ref:`base_time_config`.
|
||||
|
||||
|
||||
.. _pcf8563-write_time_action:
|
||||
|
||||
``pcf8563.write_time`` Action
|
||||
------------------------------
|
||||
|
||||
This :ref:`Action <config-action>` triggers a synchronization of the current system time to the RTC hardware.
|
||||
|
||||
.. note::
|
||||
|
||||
PCFe pcf8563 component will *not* write the RTC clock if not triggered *explicitly* by this action.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
- pcf8563.write_time
|
||||
|
||||
# in case you need to specify the DS1307 id
|
||||
- pcf8563.write_time:
|
||||
id: pcf8563_time
|
||||
|
||||
|
||||
.. _pcf8563-read_time_action:
|
||||
|
||||
``pcf8563.read_time`` Action
|
||||
-----------------------------
|
||||
|
||||
This :ref:`Action <config-action>` triggers a synchronization of the current system time from the RTC hardware.
|
||||
|
||||
.. note::
|
||||
|
||||
The PCF8563 component will automatically read the RTC clock every 15 minutes by default and synchronize the
|
||||
system clock when a valid timestamp was read from the RTC. (The ``update_interval`` can be changed.)
|
||||
This action can be used to trigger *additional* synchronizations.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
- pcf8563.read_time
|
||||
|
||||
# in case you need to specify the PCF8563 id
|
||||
- pcf8563.read_time:
|
||||
id: pcf8563_time
|
||||
|
||||
|
||||
.. _pcf8563-config_example:
|
||||
|
||||
Full Configuration Example
|
||||
--------------------------
|
||||
|
||||
In a typical setup, you will have at least one additional time source to synchronize the RTC with. Such an
|
||||
external time source might not always be available e.g. due to a limited network connection.
|
||||
In order to have a valid, reliable system time, the system should read the RTC once at start and then try to
|
||||
synchronize with an external reliable time source.
|
||||
When a synchronization to another time source was successful, the RTC can be resynchronized.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
esphome:
|
||||
on_boot:
|
||||
then:
|
||||
# read the RTC time once when the system boots
|
||||
pcf8563.read_time:
|
||||
|
||||
time:
|
||||
- platform: pcf8563
|
||||
# repeated synchronization is not necessary unless the external RTC
|
||||
# is much more accurate than the internal clock
|
||||
update_interval: never
|
||||
- platform: homeassistant
|
||||
# instead try to synchronize via network repeatedly ...
|
||||
on_time_sync:
|
||||
then:
|
||||
# ... and update the RTC when the synchronization was successful
|
||||
pcf8563.write_time:
|
||||
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ghedit:`Edit`
|
BIN
components/touchscreen/images/esp32-s3-box.png
Normal file
After Width: | Height: | Size: 62 KiB |
BIN
components/touchscreen/images/esp32-s3-korvo-2.png
Normal file
After Width: | Height: | Size: 51 KiB |
@ -81,6 +81,7 @@ See Also
|
||||
- :doc:`Inkplate 6 Plus </components/display/inkplate6>`
|
||||
- :doc:`EKTF2232 </components/touchscreen/ektf2232>`
|
||||
- :doc:`XPT2046 </components/touchscreen/xpt2046>`
|
||||
- :doc:`TT21100 </components/touchscreen/tt21100>`
|
||||
- :apiref:`touchscreen/touchscreen.h`
|
||||
- :apiref:`touchscreen/binary_sensor/touchscreen_binary_sensor.h`
|
||||
- :ghedit:`Edit`
|
||||
|
85
components/touchscreen/tt21100.rst
Normal file
@ -0,0 +1,85 @@
|
||||
TT21100 Touch Screen Controller
|
||||
===============================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up TT21100 touch screen controller with ESPHome
|
||||
:image: esp32-s3-korvo-2-lcd.png
|
||||
:keywords: TT21100, ESP32-S3-BOX, ESP32-S3-Korvo-2-LCD
|
||||
|
||||
The ``tt21100`` touchscreen platform allows using the touch screen controllers based on the TT21100 chip with ESPHome.
|
||||
The :ref:`I²C <i2c>` is required to be set up in your configuration for this touchscreen to work.
|
||||
|
||||
This controller is used in the Espressif ESP32-S3-BOX and the ESP32-S3-Korvo-2-LCD extension board for the ESP32-S3-Korvo-2.
|
||||
|
||||
.. figure:: images/esp32-s3-box.png
|
||||
:align: center
|
||||
:width: 50.0%
|
||||
|
||||
TT21100 touchscreen on ESP32-S3-BOX
|
||||
|
||||
.. figure:: images/esp32-s3-korvo-2.png
|
||||
:align: center
|
||||
:width: 50.0%
|
||||
|
||||
TT21100 touchscreen on ESP32-S3-Korvo-2
|
||||
|
||||
Base Touchscreen Configuration
|
||||
------------------------------
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
touchscreen:
|
||||
platform: tt21100
|
||||
id: my_touchscreen
|
||||
interrupt_pin: GPIO3
|
||||
reset_pin: GPIO48
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually set the ID of this touchscreen.
|
||||
- **interrupt_pin** (*Required*, :ref:`Pin Schema <config-pin_schema>`): The touch detection pin.
|
||||
- **reset_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The reset pin of the controller.
|
||||
|
||||
- All other options from :ref:`Touchscreen <config-touchscreen>`.
|
||||
|
||||
.. warning::
|
||||
|
||||
If the reset pin is shared between the display and TT21100 touchscreen
|
||||
(as is the case for the ESP32-S3-BOX and the ESP32-S3-Korvo-2-LCD),
|
||||
only configure the reset pin for the display and remove the **reset_pin** variable for the TT21100 touchscreen.
|
||||
The display component should be initialized before the touchscreen component, which has then already performed the reset.
|
||||
|
||||
Additional Buttons
|
||||
------------------
|
||||
|
||||
In addition to touch areas on the screen configured through the :ref:`Touchscreen <config-touchscreen>` component,
|
||||
the TT21100 supports up to four buttons located outside of the normal touchscreen area.
|
||||
On the ESP32-S3-BOX and the ESP32-S3-Korvo-2-LCD, the red circle below the display is such a button.
|
||||
A binary sensor can be configured to react to touching these buttons.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
binary_sensor:
|
||||
- platform: tt21100
|
||||
name: "Home"
|
||||
index: 0
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **tt21100_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the touchscreen.
|
||||
- **index** (**Required**, int): Internal index of the touch button, between 0 and 3.
|
||||
|
||||
- All other options from :ref:`Binary Sensor <config-binary_sensor>`.
|
||||
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ref:`Binary Sensor Filters <binary_sensor-filters>`
|
||||
- :apiref:`tt21100/touchscreen/tt21100.h`
|
||||
- :apiref:`tt21100/binary_sensor/tt21100_button.h`
|
||||
- :ghedit:`Edit`
|
67
components/xl9535.rst
Normal file
@ -0,0 +1,67 @@
|
||||
XL9535 I/O Expander
|
||||
====================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up XL9535 digital port expanders in ESPHome.
|
||||
:image: xl9535.svg
|
||||
|
||||
|
||||
The XL9535 component allows you to use **XL9535** I/O expander in ESPHome.
|
||||
It uses :ref:`I²C Bus <i2c>` for communication.
|
||||
|
||||
Once configured, you can use any of the **16** available pins for your projects.
|
||||
Within ESPHome they emulate a real internal GPIO pin
|
||||
and can therefore be used with many of ESPHome's components such as the GPIO
|
||||
Binary Sensor or GPIO Switch.
|
||||
|
||||
.. note::
|
||||
|
||||
This I/O Expander chip is used in the *Lilygo T-RGB 2.1" Round Display*
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
xl9535:
|
||||
- id: xl9535_hub
|
||||
address: 0x20
|
||||
|
||||
# Individual outputs
|
||||
switch:
|
||||
- platform: gpio
|
||||
name: XL9535 Pin 0
|
||||
pin:
|
||||
xl9535: xl9535_hub
|
||||
number: 0
|
||||
mode:
|
||||
output: true
|
||||
inverted: false
|
||||
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **id** (**Required**, :ref:`config-id`): The id to use for this ``xl9535`` component.
|
||||
- **address** (*Optional*, int): The I²C address of the driver.
|
||||
Defaults to ``0x20``.
|
||||
|
||||
|
||||
|
||||
Pin configuration variables:
|
||||
****************************
|
||||
|
||||
- **xl9535** (**Required**, :ref:`config-id`): The id of the ``xl9535`` component of the pin.
|
||||
- **number** (**Required**, int): The pin number.
|
||||
- **inverted** (*Optional*, boolean): If all read and written values
|
||||
should be treated as inverted. Defaults to ``false``.
|
||||
- **mode** (*Optional*, string): A pin mode to set for the pin at. One of ``INPUT`` or ``OUTPUT``.
|
||||
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ref:`i2c`
|
||||
- :doc:`switch/gpio`
|
||||
- :doc:`binary_sensor/gpio`
|
||||
- `XL9535 datasheet <https://datasheet.lcsc.com/lcsc/2211110930_XINLUDA-XL9535_C561273.pdf>`__
|
||||
- :apiref:`xl9535/xl9535.h`
|
||||
- :ghedit:`Edit`
|
4
conf.py
@ -67,9 +67,9 @@ author = "ESPHome"
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = "2023.6"
|
||||
version = "2023.7"
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = "2023.6.5"
|
||||
release = "2023.7.0"
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
|
@ -238,6 +238,7 @@ Contributors
|
||||
- `CODeRUS (@CODeRUS) <https://github.com/CODeRUS>`__
|
||||
- `Alex Miller (@Codex-) <https://github.com/Codex->`__
|
||||
- `Cody James (@codyjamestechnical) <https://github.com/codyjamestechnical>`__
|
||||
- `Coenie Richards (@coenier) <https://github.com/coenier>`__
|
||||
- `Ashton Lafferty (@cogneato) <https://github.com/cogneato>`__
|
||||
- `Colin Leroy-Mira (@colinleroy) <https://github.com/colinleroy>`__
|
||||
- `Max (@coltoncat) <https://github.com/coltoncat>`__
|
||||
@ -286,6 +287,7 @@ Contributors
|
||||
- `Anthony Uk (@dataway) <https://github.com/dataway>`__
|
||||
- `Dav-id (@dav-id-org) <https://github.com/dav-id-org>`__
|
||||
- `DAVe3283 (@DAVe3283) <https://github.com/DAVe3283>`__
|
||||
- `David Marín (@davefx) <https://github.com/davefx>`__
|
||||
- `Dave Richer (@davericher) <https://github.com/davericher>`__
|
||||
- `Dave T (@davet2001) <https://github.com/davet2001>`__
|
||||
- `Dave Wongillies (@davewongillies) <https://github.com/davewongillies>`__
|
||||
@ -306,7 +308,6 @@ Contributors
|
||||
- `ddt154 (@ddt154) <https://github.com/ddt154>`__
|
||||
- `DeadEnd (@DeadEnded) <https://github.com/DeadEnded>`__
|
||||
- `Debashish Sahu (@debsahu) <https://github.com/debsahu>`__
|
||||
- `declanshanaghy (@declanshanaghy) <https://github.com/declanshanaghy>`__
|
||||
- `Maximilian (@DeerMaximum) <https://github.com/DeerMaximum>`__
|
||||
- `definitio (@definitio) <https://github.com/definitio>`__
|
||||
- `Christiaan Blom (@Deinara) <https://github.com/Deinara>`__
|
||||
@ -529,6 +530,7 @@ Contributors
|
||||
- `Hamish Moffatt (@hmoffatt) <https://github.com/hmoffatt>`__
|
||||
- `Marcel Hoppe (@hobbypunk90) <https://github.com/hobbypunk90>`__
|
||||
- `Hopperpop (@Hopperpop) <https://github.com/Hopperpop>`__
|
||||
- `Ilia Sotnikov (@hostcc) <https://github.com/hostcc>`__
|
||||
- `Yang Hau (@howjmay) <https://github.com/howjmay>`__
|
||||
- `hpineapples (@hpineapples) <https://github.com/hpineapples>`__
|
||||
- `Antonio Vanegas (@hpsaturn) <https://github.com/hpsaturn>`__
|
||||
@ -683,6 +685,7 @@ Contributors
|
||||
- `Klarstein (@Klarstein) <https://github.com/Klarstein>`__
|
||||
- `Marcus Klein (@kleini) <https://github.com/kleini>`__
|
||||
- `KNXBroker (@KNXBroker) <https://github.com/KNXBroker>`__
|
||||
- `KoenBreeman (@KoenBreeman) <https://github.com/KoenBreeman>`__
|
||||
- `kokangit (@kokangit) <https://github.com/kokangit>`__
|
||||
- `konsulten (@konsulten) <https://github.com/konsulten>`__
|
||||
- `Kevin Pelzel (@kpelzel) <https://github.com/kpelzel>`__
|
||||
@ -711,6 +714,7 @@ Contributors
|
||||
- `Benny de Leeuw (@leeuwte) <https://github.com/leeuwte>`__
|
||||
- `Leonardo La Rocca (@leoli51) <https://github.com/leoli51>`__
|
||||
- `Leo Winter (@LeoWinterDE) <https://github.com/LeoWinterDE>`__
|
||||
- `Lewis Baker (@lewissbaker) <https://github.com/lewissbaker>`__
|
||||
- `Leon Loopik (@Lewn) <https://github.com/Lewn>`__
|
||||
- `Luca Gugelmann (@lgugelmann) <https://github.com/lgugelmann>`__
|
||||
- `Lubos Horacek (@lhoracek) <https://github.com/lhoracek>`__
|
||||
@ -801,7 +805,6 @@ Contributors
|
||||
- `melyux (@melyux) <https://github.com/melyux>`__
|
||||
- `Merlin Schumacher (@merlinschumacher) <https://github.com/merlinschumacher>`__
|
||||
- `Martin Flasskamp (@MFlasskamp) <https://github.com/MFlasskamp>`__
|
||||
- `Michael Gorven (@mgorven) <https://github.com/mgorven>`__
|
||||
- `M Hightower (@mhightower83) <https://github.com/mhightower83>`__
|
||||
- `Jörg Thalheim (@Mic92) <https://github.com/Mic92>`__
|
||||
- `Michael Muré (@MichaelMure) <https://github.com/MichaelMure>`__
|
||||
@ -827,7 +830,6 @@ Contributors
|
||||
- `mmanza (@mmanza) <https://github.com/mmanza>`__
|
||||
- `mnltake (@mnltake) <https://github.com/mnltake>`__
|
||||
- `Matt N. (@mnoorenberghe) <https://github.com/mnoorenberghe>`__
|
||||
- `Michał Obrembski (@mobrembski) <https://github.com/mobrembski>`__
|
||||
- `moritzj29 (@moritzj29) <https://github.com/moritzj29>`__
|
||||
- `Chris Laplante (@mostthingsweb) <https://github.com/mostthingsweb>`__
|
||||
- `MrEditor97 (@mreditor97) <https://github.com/mreditor97>`__
|
||||
@ -846,7 +848,6 @@ Contributors
|
||||
- `Igor Scheller (@MyIgel) <https://github.com/MyIgel>`__
|
||||
- `Mykle (@myklemykle) <https://github.com/myklemykle>`__
|
||||
- `Mynasru (@Mynasru) <https://github.com/Mynasru>`__
|
||||
- `Mikhail Zakharov (@mzakharo) <https://github.com/mzakharo>`__
|
||||
- `Kevin Uhlir (@n0bel) <https://github.com/n0bel>`__
|
||||
- `N6RDV (@N6RDV) <https://github.com/N6RDV>`__
|
||||
- `Erik Näsström (@Naesstrom) <https://github.com/Naesstrom>`__
|
||||
@ -861,7 +862,6 @@ Contributors
|
||||
- `Bergont Nicolas (@nbergont) <https://github.com/nbergont>`__
|
||||
- `neilger (@neilger) <https://github.com/neilger>`__
|
||||
- `Nejc Koncan (@nejc-cc) <https://github.com/nejc-cc>`__
|
||||
- `Mike Meessen (@netmikey) <https://github.com/netmikey>`__
|
||||
- `Nicolas Graziano (@ngraziano) <https://github.com/ngraziano>`__
|
||||
- `nickrout (@nickrout) <https://github.com/nickrout>`__
|
||||
- `Nick Whyte (@nickw444) <https://github.com/nickw444>`__
|
||||
@ -919,6 +919,7 @@ Contributors
|
||||
- `Paul Deen (@PaulAntonDeen) <https://github.com/PaulAntonDeen>`__
|
||||
- `Paul Monigatti (@paulmonigatti) <https://github.com/paulmonigatti>`__
|
||||
- `Paul Nicholls (@pauln) <https://github.com/pauln>`__
|
||||
- `Pavlo Dudnytskyi (@paveldn) <https://github.com/paveldn>`__
|
||||
- `Bartłomiej Biernacki (@pax0r) <https://github.com/pax0r>`__
|
||||
- `pcr20 (@pcr20) <https://github.com/pcr20>`__
|
||||
- `peddamat (@peddamat) <https://github.com/peddamat>`__
|
||||
@ -938,6 +939,7 @@ Contributors
|
||||
- `Piotr Kubiak (@piotr-kubiak) <https://github.com/piotr-kubiak>`__
|
||||
- `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>`__
|
||||
@ -1215,11 +1217,10 @@ Contributors
|
||||
- `Brynley McDonald (@ZephireNZ) <https://github.com/ZephireNZ>`__
|
||||
- `Geek_cat (@zhzhzhy) <https://github.com/zhzhzhy>`__
|
||||
- `I. Tomita (@ziceva) <https://github.com/ziceva>`__
|
||||
- `Michael Labuschke (@zigman79) <https://github.com/zigman79>`__
|
||||
- `Stefan Goethals (@zipkid) <https://github.com/zipkid>`__
|
||||
- `zivillian (@zivillian) <https://github.com/zivillian>`__
|
||||
- `Loïc (@zoic21) <https://github.com/zoic21>`__
|
||||
- `Zack Barett (@zsarnett) <https://github.com/zsarnett>`__
|
||||
- `Christian Zufferey (@zuzu59) <https://github.com/zuzu59>`__
|
||||
|
||||
*This page was last updated July 10, 2023.*
|
||||
*This page was last updated July 19, 2023.*
|
||||
|
BIN
images/alpha3.jpg
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
images/atm90e26.jpg
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
images/esp32-s3-korvo-2-lcd.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
images/grove_tb6612fng.jpg
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
images/motor.png
Normal file
After Width: | Height: | Size: 527 B |
1
images/timer-play-outline.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15 3H9V1H15V3M11 14H13V8H11V14M19 13C19.7 13 20.36 13.13 21 13.35C21 13.23 21 13.12 21 13C21 10.88 20.26 8.93 19.03 7.39L20.45 5.97C20 5.46 19.55 5 19.04 4.56L17.62 6C16.07 4.74 14.12 4 12 4C7.03 4 3 8.03 3 13S7.03 22 12 22C12.59 22 13.16 21.94 13.71 21.83C13.4 21.25 13.18 20.6 13.08 19.91C12.72 19.96 12.37 20 12 20C8.13 20 5 16.87 5 13S8.13 6 12 6 19 9.13 19 13M17 16V22L22 19L17 16Z" /></svg>
|
After Width: | Height: | Size: 466 B |
1
images/xl9535.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="375.31" height="94.488" viewBox="0 0 99.301 25"><path d="M5 0h89.3c2.77 0 5 2.23 5 5v15c0 2.77-2.23 5-5 5H5c-2.77 0-5-2.23-5-5V5c0-2.77 2.23-5 5-5Z" style="fill:#000;fill-opacity:1;stroke-width:.133497;stroke-miterlimit:4;stroke-dasharray:none"/><g aria-label="XL9535" style="font-size:10.5833px;line-height:1.25;letter-spacing:1.08479px;fill:#fffffc;stroke-width:.264583"><path d="m14.766 12.493 5.893 8.173h-4.222l-3.815-5.487-3.748 5.487h-4.2l5.848-8.038-5.554-7.767h4.154l3.635 5.125 3.567-5.125h3.951zM34.772 20.666H23.189V4.86h3.658v12.824h7.925zM42.246 4.59q3.319 0 5.193 2.032 1.874 2.01 1.874 5.803 0 2.687-1.016 4.606-.994 1.919-2.823 2.912-1.828.994-4.222.994-1.264 0-2.415-.271-1.152-.294-1.965-.813l1.355-2.687q1.151.79 2.958.79 2.01 0 3.183-1.174 1.174-1.196 1.264-3.432-1.422 1.423-3.928 1.423-1.513 0-2.755-.61-1.241-.61-1.964-1.716-.722-1.129-.722-2.596 0-1.58.79-2.777t2.145-1.829q1.377-.655 3.048-.655zm.27 7.451q1.197 0 1.942-.655.768-.677.768-1.716 0-1.038-.745-1.693-.722-.655-2.01-.655-1.173 0-1.919.632-.722.633-.722 1.716 0 1.084.722 1.739.746.632 1.965.632zM57.577 10.8q3.342 0 4.922 1.331 1.603 1.332 1.603 3.568 0 1.445-.722 2.641-.723 1.174-2.213 1.897-1.468.7-3.635.7-1.67 0-3.296-.43-1.603-.45-2.732-1.264l1.445-2.8q.903.678 2.077 1.062 1.174.361 2.416.361 1.377 0 2.167-.542.79-.542.79-1.513 0-1.016-.835-1.535-.813-.52-2.845-.52h-4.041l.813-8.895h9.64v2.935H56.54L56.29 10.8ZM73.947 11.296q2.077.339 3.184 1.558 1.106 1.196 1.106 2.98 0 1.377-.723 2.551-.722 1.152-2.212 1.852-1.468.7-3.613.7-1.67 0-3.296-.43-1.603-.45-2.732-1.264l1.422-2.8q.904.678 2.078 1.062 1.196.361 2.438.361 1.377 0 2.168-.52.79-.541.79-1.512 0-1.942-2.958-1.942h-1.67v-2.415l3.25-3.68h-6.728V4.86h11.063v2.37zM86.208 10.8q3.341 0 4.922 1.331 1.603 1.332 1.603 3.568 0 1.445-.723 2.641-.722 1.174-2.212 1.897-1.468.7-3.635.7-1.67 0-3.297-.43-1.603-.45-2.731-1.264l1.445-2.8q.903.678 2.077 1.062 1.174.361 2.415.361 1.378 0 2.168-.542.79-.542.79-1.513 0-1.016-.835-1.535-.813-.52-2.845-.52h-4.041l.812-8.895h9.641v2.935H85.17l-.248 3.003z" style="font-weight:700;font-size:22.5778px;font-family:Montserrat;-inkscape-font-specification:"Montserrat, Bold""/></g></svg>
|
After Width: | Height: | Size: 2.2 KiB |
BIN
images/zio_ultrasonic.jpg
Normal file
After Width: | Height: | Size: 14 KiB |
12
index.rst
@ -160,7 +160,6 @@ Core
|
||||
|
||||
Sensor Core, components/sensor/index, folder-open.svg, dark-invert
|
||||
Home Assistant, components/sensor/homeassistant, home-assistant.svg, dark-invert
|
||||
Integration, components/sensor/integration, sigma.svg, dark-invert
|
||||
MQTT Subscribe, components/sensor/mqtt_subscribe, mqtt.png
|
||||
Uptime Sensor, components/sensor/uptime, timer.svg, dark-invert
|
||||
WiFi Signal Strength, components/sensor/wifi_signal, network-wifi.svg, dark-invert
|
||||
@ -220,6 +219,7 @@ Bluetooth Low Energy (BLE)
|
||||
Mopeka Standard Check LP, components/sensor/mopeka_std_check, mopeka_std_check.jpg, tank level
|
||||
RuuviTag, components/sensor/ruuvitag, ruuvitag.jpg, Temperature & Humidity & Accelerometer
|
||||
Xiaomi BLE, components/sensor/xiaomi_ble, xiaomi_mijia_logo.jpg, Various
|
||||
Alpha3, components/sensor/alpha3, alpha3.jpg
|
||||
|
||||
|
||||
Digital Signals
|
||||
@ -240,6 +240,7 @@ Distance
|
||||
TOF10120, components/sensor/tof10120, tof10120.jpg, IR optical distance
|
||||
Ultrasonic Sensor, components/sensor/ultrasonic, ultrasonic.jpg, Acoustic distance
|
||||
VL53L0x, components/sensor/vl53l0x, vl53l0x.jpg, IR optical distance
|
||||
Zio Ultrasonic Sensor, components/sensor/zio_ultrasonic, zio_ultrasonic.jpg, Acoustic distance
|
||||
|
||||
|
||||
Electricity
|
||||
@ -247,6 +248,7 @@ Electricity
|
||||
.. imgtable::
|
||||
|
||||
ADE7953, components/sensor/ade7953, ade7953.svg, Power
|
||||
ATM90E26, components/sensor/atm90e26, atm90e26.jpg, Voltage & Current & Power
|
||||
ATM90E32, components/sensor/atm90e32, atm90e32.jpg, Voltage & Current & Power
|
||||
BL0939, components/sensor/bl0939, bl0939.png, Voltage & Current & Power & Energy
|
||||
BL0940, components/sensor/bl0940, bl0940.png, Voltage & Current & Power
|
||||
@ -357,9 +359,11 @@ Miscellaneous
|
||||
AS3935, components/sensor/as3935, as3935.jpg, Storm lightning
|
||||
Binary Sensor Map, components/sensor/binary_sensor_map, binary_sensor_map.jpg, Map binary to value
|
||||
b-parasite, components/sensor/b_parasite, b_parasite.jpg, Moisture & Temperature & Humidity & Light
|
||||
Duty Time, components/sensor/duty_time, timer-play-outline.svg, dark-invert
|
||||
EZO sensor circuits, components/sensor/ezo, ezo-ph-circuit.png, (pH)
|
||||
FS3000, components/sensor/fs3000, fs3000.jpg, Air velocity
|
||||
Havells Solar, components/sensor/havells_solar, havellsgti5000d_s.jpg, Solar rooftop
|
||||
Integration, components/sensor/integration, sigma.svg, dark-invert
|
||||
Growatt Solar, components/sensor/growatt_solar, growatt.jpg, Solar rooftop
|
||||
Kalman Combinator, components/sensor/kalman_combinator, function.svg, dark-invert
|
||||
Modbus Sensor, components/sensor/modbus_controller, modbus.png
|
||||
@ -460,6 +464,7 @@ Touchscreen
|
||||
|
||||
Nextion Binary Sensor, components/binary_sensor/nextion, nextion.jpg
|
||||
Touchscreen, components/touchscreen/index, touch.svg, dark-invert
|
||||
TT21100, components/touchscreen/tt21100, esp32-s3-korvo-2-lcd.png
|
||||
XPT2046, components/binary_sensor/xpt2046, xpt2046.jpg
|
||||
|
||||
Miscellaneous
|
||||
@ -577,6 +582,7 @@ Button Components
|
||||
Factory Reset Button, components/button/factory_reset, restart-alert.svg, dark-invert
|
||||
Wake-on-LAN, components/button/wake_on_lan, power_settings.svg, dark-invert
|
||||
|
||||
|
||||
Fan Components
|
||||
--------------
|
||||
|
||||
@ -631,6 +637,7 @@ Touchscreen Components
|
||||
Touchscreen Core, components/touchscreen/index, folder-open.svg, dark-invert
|
||||
EKTF2232, components/touchscreen/ektf2232, ektf2232.svg, Inkplate 6 Plus
|
||||
Lilygo T5 4.7", components/touchscreen/lilygo_t5_47, lilygo_t5_47_touch.jpg
|
||||
TT21100, components/touchscreen/tt21100, esp32-s3-korvo-2-lcd.png
|
||||
|
||||
Cover Components
|
||||
----------------
|
||||
@ -746,6 +753,7 @@ Time Components
|
||||
SNTP, components/time/sntp, clock-outline.svg, dark-invert
|
||||
GPS Time, components/time/gps, crosshairs-gps.svg, dark-invert
|
||||
DS1307 RTC, components/time/ds1307, clock-outline.svg, dark-invert
|
||||
PCF8563 RTC, components/time/pcf8563, clock-outline.svg, dark-invert
|
||||
PCF85063 RTC, components/time/pcf85063, clock-outline.svg, dark-invert
|
||||
|
||||
Home Assistant Companion Components
|
||||
@ -799,6 +807,7 @@ Miscellaneous Components
|
||||
Stepper, components/stepper/index, stepper.svg
|
||||
Servo, components/servo, servo.svg
|
||||
Sprinkler, components/sprinkler, sprinkler-variant.svg, dark-invert
|
||||
Grove TB6612FNG, components/grove_tb6612fng, motor.png
|
||||
|
||||
PCA6416A I/O Expander, components/pca6416a, pca6416a.svg
|
||||
PCA9554 I/O Expander, components/pca9554, pca9554a.jpg
|
||||
@ -810,6 +819,7 @@ Miscellaneous Components
|
||||
SX1509 I/O Expander, components/sx1509, sx1509.jpg
|
||||
SN74HC165 I/O Expander, components/sn74hc165, sn74hc595.jpg
|
||||
SN74HC595 I/O Expander, components/sn74hc595, sn74hc595.jpg
|
||||
XL9535 I/O Expander, components/xl9535, xl9535.svg
|
||||
SIM800L, components/sim800l, sim800l.jpg
|
||||
DFPlayer, components/dfplayer, dfplayer.svg, dark-invert
|
||||
Captive Portal, components/captive_portal, wifi-strength-alert-outline.svg, dark-invert
|
||||
|