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 = 2024.2.2
|
||||
PROJECT_NUMBER = 2024.3.0b1
|
||||
|
||||
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
||||
# for a project that appears at the top of each page and should give viewer a
|
||||
|
2
Makefile
@ -1,5 +1,5 @@
|
||||
ESPHOME_PATH = ../esphome
|
||||
ESPHOME_REF = 2024.2.2
|
||||
ESPHOME_REF = 2024.3.0b1
|
||||
|
||||
.PHONY: html html-strict cleanhtml deploy help live-html Makefile netlify netlify-api api netlify-dependencies svg2png copy-svg2png minify
|
||||
|
||||
|
BIN
_static/changelog-2024.3.0.png
Normal file
After Width: | Height: | Size: 169 KiB |
@ -1 +1 @@
|
||||
2024.2.2
|
||||
2024.3.0b1
|
224
changelog/2024.3.0.rst
Normal file
@ -0,0 +1,224 @@
|
||||
ESPHome 2024.3.0 - 20th March 2024
|
||||
==================================
|
||||
|
||||
.. seo::
|
||||
:description: Changelog for ESPHome 2024.3.0.
|
||||
:image: /_static/changelog-2024.3.0.png
|
||||
:author: Jesse Hills
|
||||
:author_twitter: @jesserockz
|
||||
|
||||
.. imgtable::
|
||||
:columns: 5
|
||||
|
||||
Datetime Core, components/datetime/index, clock-outline.svg, dark-invert
|
||||
Template Datetime, components/datetime/template, description.svg, dark-invert
|
||||
|
||||
AM2315C, components/sensor/am2315c, am2315c.jpg
|
||||
HTU31D, components/sensor/htu31d, htu31d.jpg,
|
||||
MS8607, components/sensor/ms8607, ms8607.jpg
|
||||
|
||||
AGS10, components/sensor/ags10, ags10.jpg
|
||||
VEML6030, components/sensor/veml7700, veml6030.jpg
|
||||
VEML7700, components/sensor/veml7700, veml7700.jpg
|
||||
|
||||
MR24HPC1 mmWave, components/seeed_mr24hpc1, seeed-mr24hpc1.jpg
|
||||
|
||||
ADS1118, components/sensor/ads1118, ads1118.jpg
|
||||
|
||||
CST816, components/touchscreen/cst816, cst816.jpg
|
||||
CST226, components/touchscreen/cst226, t4-s3.jpg
|
||||
|
||||
RPI_DPI_RGB, components/display/rpi_dpi_rgb, waveshare_touch-s3.jpg
|
||||
Quad SPI AMOLED, components/display/qspi_amoled, t4-s3.jpg
|
||||
ST7701S, components/display/st7701s, indicator.jpg
|
||||
|
||||
ADE7880, components/sensor/ade7880, ade7880.svg
|
||||
Emmeti, components/climate/climate_ir, air-conditioner-ir.svg, dark-invert
|
||||
Uponor Smatrix, components/uponor_smatrix, uponor.svg
|
||||
Kamstrup KMP, components/sensor/kamstrup_kmp, kamstrup_kmp.jpg
|
||||
Template Fan, components/fan/template, description.svg, dark-invert
|
||||
|
||||
|
||||
Notes to be written...
|
||||
|
||||
|
||||
Full list of changes
|
||||
--------------------
|
||||
|
||||
New Components
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
- New component: ADE7880 voltage/current/power/energy sensor :esphomepr:`5242` by :ghuser:`kpfleming` (new-integration)
|
||||
- Add Uponor Smatrix component :esphomepr:`5769` by :ghuser:`kroimon` (new-integration)
|
||||
- Support for MS8607 PHT (Pressure Humidity Temperature) sensor :esphomepr:`3307` by :ghuser:`e28eta` (new-integration)
|
||||
- Add datetime date entities :esphomepr:`6191` by :ghuser:`RFDarter` (new-integration)
|
||||
- Add AGS10 Sensor :esphomepr:`6070` by :ghuser:`mak-42` (new-integration)
|
||||
- ads1118 component :esphomepr:`5711` by :ghuser:`solomondg1` (new-integration)
|
||||
- Add CST816 touchscreen driver :esphomepr:`5941` by :ghuser:`clydebarrow` (new-integration)
|
||||
- AM2315C Temperature + Humidity Sensor :esphomepr:`6266` by :ghuser:`swoboda1337` (new-integration)
|
||||
- Touchscreen: add support for CST226 controller chip :esphomepr:`6151` by :ghuser:`clydebarrow` (new-integration)
|
||||
- Drivers for RGB 16 bit parallel displays :esphomepr:`5872` by :ghuser:`clydebarrow` (new-integration)
|
||||
- VEML7700 and VEML6030 light sensors :esphomepr:`6067` by :ghuser:`latonita` (new-integration)
|
||||
- Add Seeed Studio mmWave Kit MR24HPC1 :esphomepr:`5761` by :ghuser:`limengdu` (new-integration)
|
||||
- Add driver for quad SPI AMOLED displays :esphomepr:`6354` by :ghuser:`clydebarrow` (new-integration)
|
||||
- feat: Add HTU31D Support :esphomepr:`5805` by :ghuser:`betterengineering` (new-integration)
|
||||
- Emmeti infrared climate support :esphomepr:`5197` by :ghuser:`E440QF` (new-integration)
|
||||
- Added Kamstrup Multical 40x component :esphomepr:`4200` by :ghuser:`cfeenstra1024` (new-integration)
|
||||
- add template fan :esphomepr:`6310` by :ghuser:`ssieb` (breaking-change)
|
||||
|
||||
Breaking Changes
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
- LTR390 - Multiple bugfixes :esphomepr:`6161` by :ghuser:`sjtrny` (breaking-change)
|
||||
- Touchscreen component and driver fixes :esphomepr:`5997` by :ghuser:`nielsnl68` (breaking-change)
|
||||
- Additional sensors and binary sensors support for Haier Climate :esphomepr:`6257` by :ghuser:`paveldn` (breaking-change)
|
||||
- add template fan :esphomepr:`6310` by :ghuser:`ssieb` (breaking-change)
|
||||
|
||||
All changes
|
||||
^^^^^^^^^^^
|
||||
|
||||
- Bump openssh-client to 1:9.2p1-2+deb12u2 :esphomepr:`6216` by :ghuser:`jesserockz`
|
||||
- Add support for 1.8V-powered devices :esphomepr:`6234` by :ghuser:`bisbastuner`
|
||||
- Adjust HeatpumpIR dependency :esphomepr:`6222` by :ghuser:`ivankravets`
|
||||
- INA226 - fixed improper work with signed values, added configurable ADC parameters :esphomepr:`6172` by :ghuser:`latonita`
|
||||
- Prevent network config on rpipico board :esphomepr:`5832` by :ghuser:`carlosV2`
|
||||
- Bump pytest-asyncio from 0.23.3 to 0.23.5 :esphomepr:`6201` by :ghuser:`dependabot[bot]`
|
||||
- New component: ADE7880 voltage/current/power/energy sensor :esphomepr:`5242` by :ghuser:`kpfleming` (new-integration)
|
||||
- Add some components to the new testing framework (D) :esphomepr:`6175` by :ghuser:`kbx81`
|
||||
- Provide example devcontainer config for mdns and USB passthrough :esphomepr:`6094` by :ghuser:`linkedupbits`
|
||||
- Bump black from 23.12.1 to 24.2.0 :esphomepr:`6221` by :ghuser:`dependabot[bot]`
|
||||
- Bump pytest from 7.4.4 to 8.0.1 :esphomepr:`6246` by :ghuser:`dependabot[bot]`
|
||||
- Bump codecov/codecov-action from 3 to 4 :esphomepr:`6160` by :ghuser:`dependabot[bot]`
|
||||
- Bump peter-evans/create-pull-request from 5.0.2 to 6.0.0 :esphomepr:`6159` by :ghuser:`dependabot[bot]`
|
||||
- Bump frenck/action-yamllint from 1.4.2 to 1.5.0 :esphomepr:`6236` by :ghuser:`dependabot[bot]`
|
||||
- Bump voluptuous from 0.14.1 to 0.14.2 :esphomepr:`6181` by :ghuser:`dependabot[bot]`
|
||||
- Bump pyupgrade from 3.15.0 to 3.15.1 :esphomepr:`6247` by :ghuser:`dependabot[bot]`
|
||||
- LTR390 - Multiple bugfixes :esphomepr:`6161` by :ghuser:`sjtrny` (breaking-change)
|
||||
- Fix yamllint :esphomepr:`6253` by :ghuser:`jesserockz`
|
||||
- Improve the error message on OTA version mismatch :esphomepr:`6259` by :ghuser:`sybrenstuvel`
|
||||
- Bump aioesphomeapi from 21.0.2 to 22.0.0 :esphomepr:`6263` by :ghuser:`dependabot[bot]`
|
||||
- Allow ESP8266 to use multiple i2c busses :esphomepr:`6145` by :ghuser:`LouDou`
|
||||
- Add Uponor Smatrix component :esphomepr:`5769` by :ghuser:`kroimon` (new-integration)
|
||||
- Fix test_build_components for macOS sed :esphomepr:`6278` by :ghuser:`kbx81`
|
||||
- Allow to specify global build directory :esphomepr:`6276` by :ghuser:`werwolfby`
|
||||
- Add device class support to text sensor :esphomepr:`6202` by :ghuser:`dougiteixeira`
|
||||
- Bump pytest from 8.0.1 to 8.0.2 :esphomepr:`6288` by :ghuser:`dependabot[bot]`
|
||||
- Improve dualstack and IPv6 support :esphomepr:`5449` by :ghuser:`HeMan`
|
||||
- Waveshare e-ink 2IN9_V2 - fix full and partial update based on vendor… :esphomepr:`5481` by :ghuser:`darianndd`
|
||||
- Add RTTTL volume control. :esphomepr:`5968` by :ghuser:`nielsnl68`
|
||||
- Touchscreen component and driver fixes :esphomepr:`5997` by :ghuser:`nielsnl68` (breaking-change)
|
||||
- Add `on_update` trigger for Project versions :esphomepr:`6298` by :ghuser:`jesserockz`
|
||||
- Bump peter-evans/create-pull-request from 6.0.0 to 6.0.1 :esphomepr:`6302` by :ghuser:`dependabot[bot]`
|
||||
- CSE7766 Apparent Power & Power Factor calculations :esphomepr:`6292` by :ghuser:`DAVe3283`
|
||||
- Adding W5500 support to ethernet component :esphomepr:`4424` by :ghuser:`JeroenVanOort`
|
||||
- Fix numbering of ip_address sensors :esphomepr:`6305` by :ghuser:`HeMan`
|
||||
- Bump aioesphomeapi from 22.0.0 to 23.0.0 :esphomepr:`6293` by :ghuser:`dependabot[bot]`
|
||||
- Add regular polygon shapes to display component :esphomepr:`6108` by :ghuser:`mathieu-mp`
|
||||
- Fix return value in `core/automation.h` :esphomepr:`6314` by :ghuser:`FlyingFeng2021`
|
||||
- aht10: Added new CMD and renamed existing CMD to match datasheet :esphomepr:`6303` by :ghuser:`cptskippy`
|
||||
- handling with the negative temperature in the sensor tmp102 :esphomepr:`6316` by :ghuser:`FlyingFeng2021`
|
||||
- x9c: fix off by 1 error :esphomepr:`6318` by :ghuser:`andynumber2`
|
||||
- Support for MS8607 PHT (Pressure Humidity Temperature) sensor :esphomepr:`3307` by :ghuser:`e28eta` (new-integration)
|
||||
- Separate logger implementations for each hardware platform into different files :esphomepr:`6167` by :ghuser:`tomaszduda23`
|
||||
- Additional sensors and binary sensors support for Haier Climate :esphomepr:`6257` by :ghuser:`paveldn` (breaking-change)
|
||||
- Add toggle command to cover web_server endpoint :esphomepr:`6319` by :ghuser:`heythisisnate`
|
||||
- Improv: support connecting to hidden networks :esphomepr:`6322` by :ghuser:`jesserockz`
|
||||
- Update mDNS for IDF >= 5.0 :esphomepr:`6328` by :ghuser:`HeMan`
|
||||
- DFPlayer: refix Bug created with PR 4758 :esphomepr:`5861` by :ghuser:`sandronidi`
|
||||
- Fix build failures on host platform caused by #6167 :esphomepr:`6338` by :ghuser:`clydebarrow`
|
||||
- Update bang_bang to log two decimal places in config dump :esphomepr:`6304` by :ghuser:`rafalw1277`
|
||||
- Add datetime date entities :esphomepr:`6191` by :ghuser:`RFDarter` (new-integration)
|
||||
- Add AGS10 Sensor :esphomepr:`6070` by :ghuser:`mak-42` (new-integration)
|
||||
- Bump aioesphomeapi from 23.0.0 to 23.1.0 :esphomepr:`6332` by :ghuser:`dependabot[bot]`
|
||||
- Bump pytest-asyncio from 0.23.5 to 0.23.5.post1 :esphomepr:`6334` by :ghuser:`dependabot[bot]`
|
||||
- Bump docker/setup-buildx-action from 3.0.0 to 3.1.0 :esphomepr:`6295` by :ghuser:`dependabot[bot]`
|
||||
- Set dependabot to look at composite actions versions :esphomepr:`6343` by :ghuser:`jesserockz`
|
||||
- ads1118 component :esphomepr:`5711` by :ghuser:`solomondg1` (new-integration)
|
||||
- Bump actions/cache from 4.0.0 to 4.0.1 :esphomepr:`6306` by :ghuser:`dependabot[bot]`
|
||||
- Bump docker/build-push-action from 5.0.0 to 5.2.0 in /.github/actions/build-image :esphomepr:`6347` by :ghuser:`dependabot[bot]`
|
||||
- fix: modbus_textsensor response is too long in some cases :esphomepr:`6333` by :ghuser:`NewoPL`
|
||||
- add template fan :esphomepr:`6310` by :ghuser:`ssieb` (breaking-change)
|
||||
- dump config after logging CDC port is opened by host :esphomepr:`6169` by :ghuser:`tomaszduda23`
|
||||
- Add IRK support to allow tracking of devices with random MAC addresses :esphomepr:`6335` by :ghuser:`chbmuc`
|
||||
- [Fingerprint_grow] Implements Sleep Mode feature :esphomepr:`6116` by :ghuser:`alexborro`
|
||||
- cleanup ili9xxx component by removing data rate define :esphomepr:`6350` by :ghuser:`nielsnl68`
|
||||
- web_server_idf: support x-www-form-urlencoded POST requests :esphomepr:`6037` by :ghuser:`dentra`
|
||||
- feat(MQTT): Add QoS option for each MQTT component :esphomepr:`6279` by :ghuser:`Rapsssito`
|
||||
- Check permissions :esphomepr:`6255` by :ghuser:`OdileVidrine`
|
||||
- Add CST816 touchscreen driver :esphomepr:`5941` by :ghuser:`clydebarrow` (new-integration)
|
||||
- ILI9XXX: Lazily allocate buffer :esphomepr:`6352` by :ghuser:`clydebarrow`
|
||||
- AM2315C Temperature + Humidity Sensor :esphomepr:`6266` by :ghuser:`swoboda1337` (new-integration)
|
||||
- Add ble_presence binary sensor timeout config value. :esphomepr:`6024` by :ghuser:`clydebarrow`
|
||||
- Add state listeners to `rotary_encoder` :esphomepr:`6035` by :ghuser:`clydebarrow`
|
||||
- ili9xxx: Add support for GC9A01A display :esphomepr:`6351` by :ghuser:`clydebarrow`
|
||||
- Touchscreen: add support for CST226 controller chip :esphomepr:`6151` by :ghuser:`clydebarrow` (new-integration)
|
||||
- font: add anti-aliasing and other features :esphomepr:`6198` by :ghuser:`clydebarrow`
|
||||
- Mhz19 warmup :esphomepr:`6214` by :ghuser:`fornellas`
|
||||
- Refactor ATM90E32 to reduce blocking time and improve accuracy. :esphomepr:`5670` by :ghuser:`descipher`
|
||||
- Bump aioesphomeapi from 23.1.0 to 23.1.1 :esphomepr:`6348` by :ghuser:`dependabot[bot]`
|
||||
- Bump pytest from 8.0.2 to 8.1.1 :esphomepr:`6346` by :ghuser:`dependabot[bot]`
|
||||
- Add support for Waveshare 2.13" V2 display :esphomepr:`6337` by :ghuser:`manuelkasper`
|
||||
- Mitsubishi Climate updates :esphomepr:`3886` by :ghuser:`RubyBailey`
|
||||
- Drivers for RGB 16 bit parallel displays :esphomepr:`5872` by :ghuser:`clydebarrow` (new-integration)
|
||||
- hydreon_rgxx - add resolution option :esphomepr:`6077` by :ghuser:`mrtoy-me`
|
||||
- SPI schema now uses typed_schema with `type` key :esphomepr:`6353` by :ghuser:`clydebarrow`
|
||||
- VEML7700 and VEML6030 light sensors :esphomepr:`6067` by :ghuser:`latonita` (new-integration)
|
||||
- Add Seeed Studio mmWave Kit MR24HPC1 :esphomepr:`5761` by :ghuser:`limengdu` (new-integration)
|
||||
- Add getter for font glyph data :esphomepr:`6355` by :ghuser:`clydebarrow`
|
||||
- Require reset_pin for certain waveshare_epaper models in YAML validation :esphomepr:`6357` by :ghuser:`manuelkasper`
|
||||
- touchscreen driver fixes :esphomepr:`6356` by :ghuser:`clydebarrow`
|
||||
- Make USE_HOST compilable on msys2 :esphomepr:`6359` by :ghuser:`maruel`
|
||||
- download font from url on build :esphomepr:`5254` by :ghuser:`landonr`
|
||||
- Add driver for quad SPI AMOLED displays :esphomepr:`6354` by :ghuser:`clydebarrow` (new-integration)
|
||||
- ADE7953: Add the ability to use accumulating energy registers, more precise power reporting :esphomepr:`6311` by :ghuser:`isorin`
|
||||
- feat: Add HTU31D Support :esphomepr:`5805` by :ghuser:`betterengineering` (new-integration)
|
||||
- Emmeti infrared climate support :esphomepr:`5197` by :ghuser:`E440QF` (new-integration)
|
||||
- Added Kamstrup Multical 40x component :esphomepr:`4200` by :ghuser:`cfeenstra1024` (new-integration)
|
||||
- add possibility to provide different conversion times for Bus Voltage… :esphomepr:`6327` by :ghuser:`kev300`
|
||||
|
||||
|
||||
Past Changelogs
|
||||
---------------
|
||||
|
||||
- :doc:`2024.2.0`
|
||||
- :doc:`2023.12.0`
|
||||
- :doc:`2023.11.0`
|
||||
- :doc:`2023.10.0`
|
||||
- :doc:`2023.9.0`
|
||||
- :doc:`2023.8.0`
|
||||
- :doc:`2023.7.0`
|
||||
- :doc:`2023.6.0`
|
||||
- :doc:`2023.5.0`
|
||||
- :doc:`2023.4.0`
|
||||
- :doc:`2023.3.0`
|
||||
- :doc:`2023.2.0`
|
||||
- :doc:`2022.12.0`
|
||||
- :doc:`2022.11.0`
|
||||
- :doc:`2022.10.0`
|
||||
- :doc:`2022.9.0`
|
||||
- :doc:`2022.8.0`
|
||||
- :doc:`2022.6.0`
|
||||
- :doc:`2022.5.0`
|
||||
- :doc:`2022.4.0`
|
||||
- :doc:`2022.3.0`
|
||||
- :doc:`2022.2.0`
|
||||
- :doc:`2022.1.0`
|
||||
- :doc:`2021.12.0`
|
||||
- :doc:`2021.11.0`
|
||||
- :doc:`2021.10.0`
|
||||
- :doc:`2021.9.0`
|
||||
- :doc:`2021.8.0`
|
||||
- :doc:`v1.20.0`
|
||||
- :doc:`v1.19.0`
|
||||
- :doc:`v1.18.0`
|
||||
- :doc:`v1.17.0`
|
||||
- :doc:`v1.16.0`
|
||||
- :doc:`v1.15.0`
|
||||
- :doc:`v1.14.0`
|
||||
- :doc:`v1.13.0`
|
||||
- :doc:`v1.12.0`
|
||||
- :doc:`v1.11.0`
|
||||
- :doc:`v1.10.0`
|
||||
- :doc:`v1.9.0`
|
||||
- :doc:`v1.8.0`
|
||||
- :doc:`v1.7.0`
|
@ -2,7 +2,7 @@ Changelog
|
||||
=========
|
||||
|
||||
.. redirect::
|
||||
:url: /changelog/2024.2.0.html
|
||||
:url: /changelog/2024.3.0.html
|
||||
|
||||
.. toctree::
|
||||
:glob:
|
||||
|
@ -30,10 +30,15 @@ The ``ble_presence`` binary sensor platform lets you track the presence of a Blu
|
||||
mac_address: AC:37:43:77:5F:4C
|
||||
name: "ESP32 BLE Tracker Google Home Mini"
|
||||
min_rssi: -80dB
|
||||
# Presence based on Identity Resolving Key (IRK)
|
||||
- platform: ble_presence
|
||||
irk: 1234567890abcdef1234567890abcdef
|
||||
name: "ESP32 BLE Tracker iPhone"
|
||||
# Presence based on BLE Service UUID
|
||||
- platform: ble_presence
|
||||
service_uuid: '11aa'
|
||||
name: "ESP32 BLE Tracker Test Service 16 bit"
|
||||
timeout: 45s
|
||||
# Presence based on iBeacon UUID
|
||||
- platform: ble_presence
|
||||
ibeacon_uuid: '68586f1e-89c2-11eb-8dcd-0242ac130003'
|
||||
@ -51,14 +56,17 @@ Configuration variables:
|
||||
|
||||
- **name** (**Required**, string): The name of the binary sensor.
|
||||
- **mac_address** (*Optional*, MAC Address): The MAC address to track for this
|
||||
binary sensor. Note that exactly one of ``mac_address``, ``service_uuid`` or ``ibeacon_uuid``
|
||||
binary sensor. Note that exactly one of ``mac_address``, ``irk``, ``service_uuid`` or ``ibeacon_uuid``
|
||||
must be present.
|
||||
- **irk** (*Optional*, 16 byte hex string): The Identity Resolving Key (IRK) to track for this
|
||||
binary sensor. Note that exactly one of ``mac_address``, ``irk``, ``service_uuid`` or ``ibeacon_uuid``
|
||||
must be present.
|
||||
- **service_uuid** (*Optional*, string): 16 bit, 32 bit, or 128 bit BLE Service UUID
|
||||
which can be tracked if the device randomizes the MAC address. Note that exactly one of
|
||||
``mac_address``, ``service_uuid`` or ``ibeacon_uuid`` must be present.
|
||||
``mac_address``, ``irk``, ``service_uuid`` or ``ibeacon_uuid`` must be present.
|
||||
- **ibeacon_uuid** (*Optional*, string): The `universally unique identifier <https://en.wikipedia.org/wiki/Universally_unique_identifier>`__
|
||||
to identify the beacon that needs to be tracked. Note that exactly one of ``mac_address``,
|
||||
``service_uuid`` or ``ibeacon_uuid`` must be present.
|
||||
``irk``, ``service_uuid`` or ``ibeacon_uuid`` must be present.
|
||||
- **ibeacon_major** (*Optional*, int): The iBeacon major identifier of the beacon that needs
|
||||
to be tracked. Usually used to group beacons, for example for grouping all beacons in the
|
||||
same building.
|
||||
@ -67,6 +75,8 @@ Configuration variables:
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify
|
||||
the ID used for code generation.
|
||||
- **min_rssi** (*Optional*, int): at which minimum RSSI level would the component report the device be present.
|
||||
- **timeout** (*Optional*, :ref:`config-time`): The delay after last detecting the device before publishing not present state.
|
||||
The default is 5 minutes.
|
||||
- All other options from :ref:`Binary Sensor <config-binary_sensor>`.
|
||||
|
||||
.. _esp32_ble_tracker-setting_up_devices:
|
||||
@ -105,8 +115,15 @@ iBeacon major and minor identifiers, BLE manufacturer data, RSSI and other data
|
||||
debugging purposes. Note that this is useful only during set-up and a less verbose log level
|
||||
should be specified afterwards.
|
||||
|
||||
Please note that devices that show a ``RANDOM`` address type in the logs cannot be used for
|
||||
MAC address based tracking, since their MAC-address periodically changes. Instead you can:
|
||||
Please note that devices that show a ``RANDOM`` address type in the logs probably use a privacy
|
||||
feature called Resolvable Private Addresses to avoid BLE tracking. Since their MAC-address periodically
|
||||
changes, they can't be tracked by the MAC address. However, if you know the devices "Identity Resolving
|
||||
Key" (IRK), you can check if the generated private MAC address belongs to the device with the IRK.
|
||||
|
||||
There is no support to obtain the key with ESPHome. For now you will have to use one of the options
|
||||
described in the ESPresense project: https://espresense.com/beacons
|
||||
|
||||
Alternatively you can:
|
||||
|
||||
- Create a BLE beacon, set a unique 16 bit, 32 bit or 128 bit Service UUID and track your device
|
||||
based on that. Make sure you don't pick a `GATT Service UUID
|
||||
|
68
components/binary_sensor/haier.rst
Normal file
@ -0,0 +1,68 @@
|
||||
Haier Climate Binary Sensors
|
||||
============================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up additional binary sensors for Haier climate devices.
|
||||
:image: haier.svg
|
||||
|
||||
Additional sensors for Haier Climate device. **These sensors are supported only by the hOn protocol**.
|
||||
|
||||
|
||||
.. figure:: images/haier-climate.jpg
|
||||
:align: center
|
||||
:width: 50.0%
|
||||
|
||||
.. 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
|
||||
|
||||
binary_sensor:
|
||||
- platform: haier
|
||||
haier_id: haier_ac
|
||||
compressor_status:
|
||||
name: Haier Outdoor Compressor Status
|
||||
defrost_status:
|
||||
name: Haier Defrost Status
|
||||
four_way_valve_status:
|
||||
name: Haier Four Way Valve Status
|
||||
indoor_electric_heating_status:
|
||||
name: Haier Indoor Electric Heating Status
|
||||
indoor_fan_status:
|
||||
name: Haier Indoor Fan Status
|
||||
outdoor_fan_status:
|
||||
name: Haier Outdoor Fan Status
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **haier_id** (**Required**, :ref:`config-id`): The id of haier climate component
|
||||
- **compressor_status** (*Optional*): A binary sensor that indicates Haier climate compressor activity.
|
||||
All options from :ref:`Binary Sensor <config-binary_sensor>`.
|
||||
- **defrost_status** (*Optional*): A binary sensor that indicates defrost procedure activity.
|
||||
All options from :ref:`Binary Sensor <config-binary_sensor>`.
|
||||
- **four_way_valve_status** (*Optional*): A binary sensor that indicates four way valve status.
|
||||
All options from :ref:`Binary Sensor <config-binary_sensor>`.
|
||||
- **indoor_electric_heating_status** (*Optional*): A binary sensor that indicates electrical heating system activity.
|
||||
All options from :ref:`Binary Sensor <config-binary_sensor>`.
|
||||
- **indoor_fan_status** (*Optional*): A binary sensor that indicates indoor fan activity.
|
||||
All options from :ref:`Binary Sensor <config-binary_sensor>`.
|
||||
- **outdoor_fan_status** (*Optional*): A binary sensor that indicates outdoor fan activity.
|
||||
All options from :ref:`Binary Sensor <config-binary_sensor>`.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :doc:`Haier Climate </components/climate/haier>`
|
||||
- :ghedit:`Edit`
|
BIN
components/binary_sensor/images/haier-climate.jpg
Normal file
After Width: | Height: | Size: 22 KiB |
@ -31,6 +31,8 @@ submit a feature request (see FAQ).
|
||||
+---------------------------------------+---------------------+----------------------+
|
||||
| :ref:`Delonghi<delonghi_ir>` | ``delonghi`` | yes |
|
||||
+---------------------------------------+---------------------+----------------------+
|
||||
| Emmeti | ``emmeti`` | yes |
|
||||
+---------------------------------------+---------------------+----------------------+
|
||||
| Fujitsu General | ``fujitsu_general`` | yes |
|
||||
+---------------------------------------+---------------------+----------------------+
|
||||
| :ref:`GREE<gree_ir>` | ``gree`` | |
|
||||
@ -42,7 +44,7 @@ submit a feature request (see FAQ).
|
||||
+---------------------------------------+---------------------+----------------------+
|
||||
| Midea | ``midea_ir`` | yes |
|
||||
+---------------------------------------+---------------------+----------------------+
|
||||
| Mitsubishi | ``mitsubishi`` | |
|
||||
| :ref:`Mitsubishi<mitsubishi>` | ``mitsubishi`` | yes |
|
||||
+---------------------------------------+---------------------+----------------------+
|
||||
| Noblex | ``noblex`` | yes |
|
||||
+---------------------------------------+---------------------+----------------------+
|
||||
@ -253,6 +255,48 @@ Known working with:
|
||||
|
||||
- Delonghi PAC WE 120HP
|
||||
|
||||
.. _mitsubishi:
|
||||
|
||||
``mitsubishi`` Climate
|
||||
------------------------
|
||||
|
||||
Additonal configurations available for this platform.
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **set_fan_mode** (*Optional*, string): Select the fan modes desired or that are supported on your remote. Defaults to ``3levels``
|
||||
|
||||
- Options are: ``3levels`` , ``4levels``, ``quiet_4levels``.
|
||||
|
||||
- ``3levels``; Low [fan speed 1], Medium [2], High [3]
|
||||
- ``4levels``; Low [1], Middle [2], Medium [3], High [4]
|
||||
- ``quiet_4levels``; Low [1], Middle [2], Medium [3], High [4], Quiet [5]
|
||||
|
||||
- **supports_dry** (*Optional*, boolean): Enables setting dry mode for this unit. Defaults to ``false``.
|
||||
- **supports_fan_only** (*Optional*, boolean): Enables setting fan only mode for this unit. Confirm that mode is supported on your remote. Defaults to ``false``.
|
||||
|
||||
- **horizontal_default** (*Optional*, string): What to default to when the AC unit's horizontal direction is *not* set to swing. Defaults to ``middle``.
|
||||
|
||||
- Options are: ``left``, ``middle-left``, ``middle``, ``middle-right``, ``right``, ``auto``
|
||||
- **vertical_default** (*Optional*, string): What to default to when the AC unit's vertical direction is *not* set to swing. Defaults to ``middle``.
|
||||
|
||||
- Options are: ``down``, ``middle-down``, ``middle``, ``middle-up``, ``up``, ``auto``
|
||||
|
||||
.. note::
|
||||
|
||||
- This climate IR component is also known to work with some Stiebel Eltron Units. It has been tested with Stiebel Eltron IR-Remote ``KM07F`` and unit ``ACW 25 i``
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
climate:
|
||||
- platform: mitsubishi
|
||||
name: "Heatpump"
|
||||
set_fan_mode: "quiet_4levels"
|
||||
supports_dry: "true"
|
||||
supports_fan_only: "true"
|
||||
horizontal_default: "left"
|
||||
vertical_default: "down"
|
||||
|
||||
.. _toshiba:
|
||||
|
||||
@ -284,7 +328,7 @@ Configuration variables:
|
||||
``update_interval`` must be less than seven minutes or the ``RAC-PT1411HWRU`` will revert to using its own
|
||||
internal temperature sensor; a value of 30 seconds seems to work well. See :doc:`/components/sensor/index`
|
||||
for more information.
|
||||
|
||||
|
||||
- This climate IR component is also known to work with Midea model MAP14HS1TBL and may work with other similar
|
||||
models, as well. (Midea acquired Toshiba's product line and re-branded it.)
|
||||
|
||||
|
@ -74,8 +74,6 @@ This component requires a :ref:`uart` to be setup.
|
||||
wifi_signal: true
|
||||
beeper: true
|
||||
display: true
|
||||
outdoor_temperature:
|
||||
name: Haier AC outdoor temperature
|
||||
visual:
|
||||
min_temperature: 16 °C
|
||||
max_temperature: 30 °C
|
||||
@ -125,16 +123,11 @@ Configuration variables:
|
||||
- **control_method** (*Optional*, list): (supported only by hOn) Defines control method (should be supported by AC). Supported values: MONITOR_ONLY - no control, just monitor status, SET_GROUP_PARAMETERS - set all AC parameters with one command (default method), SET_SINGLE_PARAMETER - set each parameter individually (this method is supported by some new ceiling ACs like AD71S2SM3FA)
|
||||
- **display** (*Optional*, boolean): Can be used to set the AC display off.
|
||||
- **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', HEAT_COOL, COOL, HEAT, DRY, FAN_ONLY
|
||||
- **supported_swing_modes** (*Optional*, list): Can be used to disable some swing modes if your AC does not support it. Possible values: 'OFF', VERTICAL, HORIZONTAL, BOTH
|
||||
- **supported_presets** (*Optional*, list): Can be used to disable some presets. Possible values for smartair2 are: AWAY, BOOST, COMFORT. Possible values for hOn are: AWAY, ECO, BOOST, SLEEP. AWAY preset can be enabled only in HEAT mode, it is disabled by default
|
||||
- **on_alarm_start (Optional, :ref:`Automation <automation>`):** (supported only by hOn) Automation to perform when AC activates a new alarm. See :ref:`haier-on_alarm_start`
|
||||
- **on_alarm_end (Optional, :ref:`Automation <automation>`):** (supported only by hOn) Automation to perform when AC deactivates a new alarm. See :ref:`haier-on_alarm_end`
|
||||
- **on_alarm_start** (*Optional*, :ref:`Automation <automation>`): (supported only by hOn) Automation to perform when AC activates a new alarm. See :ref:`haier-on_alarm_start`
|
||||
- **on_alarm_end** (*Optional*, :ref:`Automation <automation>`): (supported only by hOn) Automation to perform when AC deactivates a new alarm. See :ref:`haier-on_alarm_end`
|
||||
- All other options from :ref:`Climate <config-climate>`.
|
||||
|
||||
Automations
|
||||
@ -327,6 +320,8 @@ See Also
|
||||
--------
|
||||
|
||||
- `haier-esphome <https://github.com/paveldn/haier-esphome>`__
|
||||
- :doc:`Haier Climate Sensors </components/sensor/haier>`
|
||||
- :doc:`Haier Climate Binary Sensors </components/binary_sensor/haier>`
|
||||
- :doc:`/components/climate/index`
|
||||
- :apiref:`haier/climate/haier.h`
|
||||
- :ghedit:`Edit`
|
||||
|
166
components/datetime/index.rst
Normal file
@ -0,0 +1,166 @@
|
||||
Datetime Component
|
||||
==================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up datetime components in ESPHome.
|
||||
:image: folder-open.svg
|
||||
|
||||
ESPHome has support for components to create a datetime entity. A datetime entity
|
||||
currently represents a date that can be set by the user/frontend.
|
||||
|
||||
.. note::
|
||||
|
||||
Requires Home Assistant 2024.4 or newer.
|
||||
|
||||
.. _config-datetime:
|
||||
|
||||
Base Datetime Configuration
|
||||
---------------------------
|
||||
|
||||
All datetime in ESPHome have a name and an optional icon.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example datetime configuration
|
||||
name: Date to check
|
||||
|
||||
# Optional variables:
|
||||
icon: "mdi:calendar-alert"
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **name** (**Required**, string): The name for the datetime.
|
||||
|
||||
.. note::
|
||||
|
||||
If you have a :ref:`friendly_name <esphome-configuration_variables>` set for your device and
|
||||
you want the datetime to use that name, you can set ``name: None``.
|
||||
|
||||
- **icon** (*Optional*, icon): Manually set the icon to use for the datetime in the frontend.
|
||||
- **internal** (*Optional*, boolean): Mark this component as internal. Internal components will
|
||||
not be exposed to the frontend (like Home Assistant). Only specifying an ``id`` without
|
||||
a ``name`` will implicitly set this to true.
|
||||
- **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend,
|
||||
(usually Home Assistant) without the user manually enabling it (via the Home Assistant UI).
|
||||
Requires Home Assistant 2021.9 or newer. Defaults to ``false``.
|
||||
- **entity_category** (*Optional*, string): The category of the entity.
|
||||
See https://developers.home-assistant.io/docs/core/entity/#generic-properties
|
||||
for a list of available options. Requires Home Assistant 2021.11 or newer.
|
||||
Set to ``""`` to remove the default entity category.
|
||||
|
||||
MQTT Options:
|
||||
|
||||
- All other options from :ref:`MQTT Component <config-mqtt-component>`.
|
||||
|
||||
Datetime Automation
|
||||
-------------------
|
||||
|
||||
You can access the most recent state as a string of the datetime in :ref:`lambdas <config-lambda>` using
|
||||
``id(datetime_id).state``.
|
||||
You can also access it as a ``ESPTime`` object by ``id(datetime_id).state_as_time``
|
||||
|
||||
.. _datetime-on_value:
|
||||
|
||||
``on_value``
|
||||
************
|
||||
|
||||
This automation will be triggered when a new value is published. In :ref:`Lambdas <config-lambda>`
|
||||
you can get the value as a ESPTime object from the trigger with ``x``.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
datetime:
|
||||
- platform: template
|
||||
# ...
|
||||
on_value:
|
||||
then:
|
||||
- lambda: |-
|
||||
if(x.hour >= 12) {
|
||||
ESP_LOGD("main", "Updated hour is later or equal to 12");
|
||||
} else {
|
||||
ESP_LOGD("main", "Updated hour is earlier than 12");
|
||||
}
|
||||
|
||||
Configuration variables: See :ref:`Automation <automation>`.
|
||||
|
||||
.. _datetime-date_set_action:
|
||||
|
||||
``datetime.date.set`` Action
|
||||
****************************
|
||||
|
||||
This is an :ref:`Action <config-action>` for setting a datetime date state.
|
||||
The ``date`` provided can be in one of 3 formats:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# String date
|
||||
- datetime.date.set:
|
||||
id: my_date
|
||||
date: "2023-12-04"
|
||||
|
||||
# Individual date parts
|
||||
- datetime.date.set:
|
||||
id: my_date
|
||||
date:
|
||||
year: 2023
|
||||
month: 12
|
||||
day: 4
|
||||
|
||||
# Using a lambda
|
||||
- datetime.date.set:
|
||||
id: my_date
|
||||
date: !lambda |-
|
||||
// Return an ESPTime struct
|
||||
return {.day_of_month: 4, .month: 12, .year: 2023};
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **id** (**Required**, :ref:`config-id`): The ID of the datetime to set.
|
||||
- **date** (**Required**, string, date parts, :ref:`templatable <config-templatable>`):
|
||||
The value to set the datetime to.
|
||||
|
||||
|
||||
|
||||
.. _datetime-lambda_calls:
|
||||
|
||||
lambda calls
|
||||
************
|
||||
|
||||
From :ref:`lambdas <config-lambda>`, you can call several methods on all datetimes to do some
|
||||
advanced stuff (see the full API Reference for more info).
|
||||
|
||||
- ``.make_call()``: Make a call for updating the datetime value.
|
||||
|
||||
.. code-block:: cpp
|
||||
|
||||
// Within lambda, set the date to 2024-02-25
|
||||
auto call = id(my_date).make_call();
|
||||
call.set_date("2024-02-25");
|
||||
call.perform();
|
||||
|
||||
Check the API reference for information on the methods that are available for
|
||||
the ``DateCall`` object.
|
||||
|
||||
- ``.year``: Retrieve the current year of the ``date``. It will be ``0`` if no value has been set.
|
||||
- ``.month``: Retrieve the current month of the ``date``. It will be ``0`` if no value has been set.
|
||||
- ``.day``: Retrieve the current day of the ``date``. It will be ``0`` if no value has been set.
|
||||
- ``.state_as_esptime()``: Retrieve the current value of the datetime as a :apistruct:`ESPTime` object.
|
||||
|
||||
.. code-block:: cpp
|
||||
|
||||
// For example, create a custom log message when a value is received:
|
||||
ESP_LOGI("main", "Value of my datetime: %04d-%02d-%02d", id(my_date).year, id(my_date).month, id(my_date).day);
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :apiref:`DateTimeBase <datetime/datetime_base.h>`
|
||||
- :apiref:`DateEntity <datetime/date_entity.h>`
|
||||
- :apiref:`DateCall <datetime/date_entity.h>`
|
||||
- :ghedit:`Edit`
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:glob:
|
||||
|
||||
*
|
59
components/datetime/template.rst
Normal file
@ -0,0 +1,59 @@
|
||||
Template Datetime
|
||||
=================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up template datetime with ESPHome.
|
||||
:image: description.svg
|
||||
|
||||
The ``template`` datetime platform allows you to create a datetime with templated values
|
||||
using :ref:`lambdas <config-lambda>`.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
datetime:
|
||||
- platform: template
|
||||
id: my_date
|
||||
type: date
|
||||
name: Pick a Date
|
||||
optimistic: yes
|
||||
initial_value: "2024-01-30"
|
||||
restore_value: true
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **type** (*Required*, enum): The type of the datetime. Can only be ``date``.
|
||||
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`):
|
||||
Lambda to be evaluated every update interval to get the current value of the datetime.
|
||||
- **set_action** (*Optional*, :ref:`Action <config-action>`): The action that should
|
||||
be performed when the remote (like Home Assistant's frontend) requests to set the
|
||||
dateime value. The new value is available to lambdas in the ``x`` variable.
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval on which to update the datetime
|
||||
by executing the ``lambda``. Defaults to ``60s``.
|
||||
- **optimistic** (*Optional*, boolean): Whether to operate in optimistic mode - when in this mode,
|
||||
any command sent to the template datetime will immediately update the reported state.
|
||||
Cannot be used with ``lambda``. Defaults to ``false``.
|
||||
- **restore_value** (*Optional*, boolean): Saves and loads the state to RTC/Flash.
|
||||
Cannot be used with ``lambda``. Defaults to ``false``.
|
||||
- **initial_value** (*Optional*, string): The value to set the state to on setup if not
|
||||
restored with ``restore_value``. Can be one of:
|
||||
|
||||
- A string in the format ``%Y-%m-%d``, eg: ``"2023-12-04"``.
|
||||
- An object including ``year``, ``month``, ``day``.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
initial_value:
|
||||
year: 2023
|
||||
month: 12
|
||||
day: 4
|
||||
|
||||
- All other options from :ref:`Datetime <config-datetime>`.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ref:`automation`
|
||||
- :apiref:`template/datetime/template_date.h`
|
||||
- :ghedit:`Edit`
|
160
components/display/fonts.rst
Normal file
@ -0,0 +1,160 @@
|
||||
.. _display-fonts:
|
||||
|
||||
Font Renderer Component
|
||||
=======================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up fonts in ESPHome.
|
||||
:image: format-font.svg
|
||||
|
||||
ESPHome's graphical rendering engine also has a powerful font drawer which integrates seamlessly into the system. You have the option to use **any** OpenType/TrueType (``.ttf``, ``.otf``, ``.woff``) font file at **any** size, as well as fixed-size `PCF <https://en.wikipedia.org/wiki/Portable_Compiled_Format>`_ and `BDF <https://en.wikipedia.org/wiki/Glyph_Bitmap_Distribution_Format>`_ bitmap fonts.
|
||||
|
||||
These fonts can be used in ESPHome's :ref:`own rendering engine <display-engine>`.
|
||||
|
||||
To use fonts you can either
|
||||
- Just grab a ``.ttf``, ``.otf``, ``.woff``, ``.pcf``, or ``.bdf`` file from somewhere on the internet and place it, for example, inside a ``fonts`` folder next to your configuration file.
|
||||
- Use the ``gfonts://`` short form to use Google Fonts directly.
|
||||
- Load a font from a URL directly on build.
|
||||
|
||||
Next, create a ``font:`` section in your configuration:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Various ways to configure fonts
|
||||
font:
|
||||
- file: "fonts/Comic Sans MS.ttf"
|
||||
id: my_font
|
||||
size: 20
|
||||
bpp: 2
|
||||
|
||||
- file: "fonts/tom-thumb.bdf"
|
||||
id: tomthumb
|
||||
|
||||
# gfonts://family[@weight]
|
||||
- file: "gfonts://Roboto"
|
||||
id: roboto_20
|
||||
size: 20
|
||||
|
||||
- file:
|
||||
type: gfonts
|
||||
family: Roboto
|
||||
weight: 900
|
||||
id: roboto_16
|
||||
size: 16
|
||||
|
||||
- file: "gfonts://Material+Symbols+Outlined"
|
||||
id: icons_50
|
||||
size: 50
|
||||
glyphs: ["\U0000e425"] # mdi-timer
|
||||
|
||||
- file: "fonts/RobotoCondensed-Regular.ttf"
|
||||
id: roboto_special_28
|
||||
size: 28
|
||||
bpp: 4
|
||||
glyphs: [
|
||||
a,A,á,Á,e,E,é,É,
|
||||
(,),+,-,_,.,°,•,µ,
|
||||
"\u0020", #space
|
||||
"\u0021", #!
|
||||
"\u0022", #"
|
||||
"\u0027", #'
|
||||
]
|
||||
|
||||
- file: "fonts/RobotoCondensed-Regular.ttf"
|
||||
id: my_font_with_icons
|
||||
size: 20
|
||||
bpp: 4
|
||||
extras:
|
||||
- file: "fonts/materialdesignicons-webfont.ttf"
|
||||
glyphs: [
|
||||
"\U000F02D1", # mdi-heart
|
||||
"\U000F05D4", # mdi-airplane-landing
|
||||
]
|
||||
|
||||
- file: "https://github.com/IdreesInc/Monocraft/releases/download/v3.0/Monocraft.ttf"
|
||||
id: web_font
|
||||
size: 20
|
||||
- file:
|
||||
url: "https://github.com/IdreesInc/Monocraft/releases/download/v3.0/Monocraft.ttf"
|
||||
type: web
|
||||
id: web_font2
|
||||
size: 24
|
||||
|
||||
display:
|
||||
# ...
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **file** (**Required**, string): The path (relative to where the .yaml file is) of the font
|
||||
file. You can also use the ``gfonts://`` short form to use Google Fonts, or use the below structure:
|
||||
|
||||
- **type** (**Required**, string): Can be ``local``, ``gfonts`` or ``web``.
|
||||
|
||||
**Local Fonts**:
|
||||
|
||||
- **path** (**Required**, string): The path (relative to where the .yaml file is) of the OpenType/TrueType or bitmap font file.
|
||||
|
||||
**Google Fonts**:
|
||||
|
||||
Each Google Font will be downloaded once and cached for future use. This can also be used to download Material
|
||||
Symbols or Icons as in the example above.
|
||||
|
||||
- **family** (**Required**, string): The name of the Google Font family.
|
||||
- **italic** (*Optional*, boolean): Whether the font should be italic.
|
||||
- **weight** (*Optional*, enum): The weight of the font. Can be either the text name or the integer value:
|
||||
- **thin**: 100
|
||||
- **extra-light**: 200
|
||||
- **light**: 300
|
||||
- **regular**: 400 (**default**)
|
||||
- **medium**: 500
|
||||
- **semi-bold**: 600
|
||||
- **bold**: 700
|
||||
- **extra-bold**: 800
|
||||
- **black**: 900
|
||||
|
||||
**Web Fonts**:
|
||||
|
||||
- **url** (**Required**, string): The URL of the TrueType or bitmap font file.
|
||||
|
||||
- **id** (**Required**, :ref:`config-id`): The ID with which you will be able to reference the font later
|
||||
in your display code.
|
||||
- **size** (*Optional*, int): The size of the font in pt (not pixel!).
|
||||
If you want to use the same font in different sizes, create two font objects. Note: *size* is ignored
|
||||
by bitmap fonts. Defaults to ``20``.
|
||||
- **bpp** (*Optional*, int): The bit depth of the rendered font from OpenType/TrueType, for anti-aliasing. Can be ``1``, ``2``, ``4``, ``8``. Defaults to ``1``.
|
||||
- **glyphs** (*Optional*, list): A list of characters you plan to use. Only the characters you specify
|
||||
here will be compiled into the binary. Adjust this if you need some special characters or want to
|
||||
reduce the size of the binary if you don't plan to use some glyphs. You can also specify glyphs by their codepoint (see below). Defaults to ``!"%()+=,-_.:°/?0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz``.
|
||||
- **extras** (*Optional*, enum): A list of font glyph configurations you'd like to include within this font, from other OpenType/TrueType files (eg. icons from other font, but at the same size as the main font):
|
||||
|
||||
- **file** (**Required**, string): The path of the font file with the extra glyphs.
|
||||
- **glyphs** (**Required**, list): A list of glyphs you want to include. Can't repeat the same glyph codepoint if it was declared in the level above.
|
||||
|
||||
.. note::
|
||||
|
||||
OpenType/TrueType font files offer icons at codepoints far from what's reachable on a standard keyboard, for these it's needed
|
||||
to specify the unicode codepoint of the glyph as a hex address escaped with ``\u`` or ``\U``.
|
||||
|
||||
- Code points up to ``0xFFFF`` are encoded like ``\uE6E8``. Lowercase ``\u`` and exactly 4 hexadecimal digits.
|
||||
- Code points above ``0xFFFF`` are encoded like ``\U0001F5E9``. Capital ``\U`` and exactly 8 hexadecimal digits.
|
||||
|
||||
The ``extras`` section only supports OpenType/TrueType files, ``size`` and ``bpp`` will be the same as the above level. This will allow printing icons alongside the characters in the same string, like ``I \uF004 You \uF001``.
|
||||
|
||||
Many font sizes with multiple glyphs at high bit depths will increase the binary size considerably. Make your choices carefully.
|
||||
|
||||
|
||||
.. note::
|
||||
|
||||
To use fonts you will need to have the python ``pillow`` package installed, as ESPHome uses that package
|
||||
to translate the OpenType/TrueType and bitmap font files into an internal format. If you're running this as a Home Assistant add-on or with the official ESPHome docker image, it should already be installed. Otherwise you need
|
||||
to install it using ``pip install "pillow==10.2.0"``.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :apiref:`display/display_buffer.h`
|
||||
- :ref:`display-engine`
|
||||
- `MDI cheatsheet <https://pictogrammers.com/library/mdi/>`_
|
||||
- `MDI font repository <https://github.com/Pictogrammers/pictogrammers.github.io/tree/main/%40mdi/font/>`_
|
||||
- :ghedit:`Edit`
|
@ -10,6 +10,7 @@ ILI9xxx TFT LCD Series
|
||||
Models
|
||||
------
|
||||
With this display driver you can control the following displays:
|
||||
- GC9A01A
|
||||
- ILI9341
|
||||
- ILI9342
|
||||
- ILI9481
|
||||
@ -69,6 +70,7 @@ Configuration variables:
|
||||
- ``ILI9341``, ``ILI9342``, ``ILI9486``, ``ILI9488``, ``ILI9488_A`` (alternative gamma configuration for ILI9488)
|
||||
- ``ILI9481``, ``ILI9481-18`` (18 bit mode)
|
||||
- ``ST7789V``, ``ST7796``
|
||||
- ``GC9A01A``
|
||||
|
||||
- **dc_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The DC pin.
|
||||
- **reset_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The RESET pin.
|
||||
|
BIN
components/display/images/indicator.jpg
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
components/display/images/t-display-amoled.jpg
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
components/display/images/t4-s3.jpg
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
components/display/images/waveshare_touch-s3.jpg
Normal file
After Width: | Height: | Size: 25 KiB |
@ -9,10 +9,10 @@ The ``display`` component houses ESPHome's powerful rendering and display
|
||||
engine. Fundamentally, there are these types of displays:
|
||||
|
||||
- Text based displays like :doc:`7-Segment displays <max7219>` or
|
||||
:doc:`some LCD displays <lcd_display>`.
|
||||
- Displays like the :doc:`nextion` that have their own processors for rendering.
|
||||
- Binary displays which can toggle ON/OFF any pixel, like :doc:`E-Paper displays <waveshare_epaper>` or
|
||||
:doc:`OLED displays <ssd1306>`.
|
||||
:doc:`LCD displays <lcd_display>`.
|
||||
- Graphical serial displays like :doc:`nextion` that have their own processors for rendering.
|
||||
- Graphical binary displays which can toggle ON/OFF any pixel, like :doc:`E-Paper <waveshare_epaper>`,
|
||||
:doc:`OLED <ssd1306>` or :doc:`TFT <ili9xxx>` displays.
|
||||
|
||||
For the last type, ESPHome has a powerful rendering engine that can do
|
||||
many things like draw some basic shapes, print text with any font you want, or even show images.
|
||||
@ -24,11 +24,6 @@ using an API that is designed to
|
||||
- be simple and to be used without programming experience
|
||||
- but also be flexible enough to work with more complex tasks like displaying an analog clock.
|
||||
|
||||
.. note::
|
||||
|
||||
Display hardware is complex and sometimes doesn't behave as expected. If you're having trouble with your display,
|
||||
please see :ref:`troubleshooting` below.
|
||||
|
||||
.. _display-engine:
|
||||
|
||||
Display Rendering Engine
|
||||
@ -38,6 +33,11 @@ In this section we will be discussing how to use ESPHome's display rendering eng
|
||||
and some basic commands. Please note that this only applies to displays that can control each pixel
|
||||
individually.
|
||||
|
||||
.. note::
|
||||
|
||||
Display hardware is complex and sometimes doesn't behave as expected. If you're having trouble with your display,
|
||||
please see :ref:`troubleshooting` below.
|
||||
|
||||
So, first a few basics: When setting up a display platform in ESPHome there will be a configuration
|
||||
option called ``lambda:`` which will be called every time ESPHome wants to re-render the display.
|
||||
In each cycle, the display is automatically cleared before the lambda is executed. You can disable
|
||||
@ -72,7 +72,7 @@ x always represents the horizontal axis (width) and y the vertical axis (height)
|
||||
the rendering engine is always first specify the ``x`` coordinate and then the ``y`` coordinate.
|
||||
|
||||
Basic Shapes
|
||||
************
|
||||
------------
|
||||
|
||||
Now that you know a bit more about ESPHome's coordinate system, let's draw some basic shapes like lines, rectangles
|
||||
and circles:
|
||||
@ -101,6 +101,13 @@ and circles:
|
||||
// and a filled triangle !
|
||||
it.filled_triangle(125, 5, 105, 25, 150, 50);
|
||||
|
||||
// Regular Polygons? Let's draw the outline of a pointy-topped hexagon inscribed in a circle
|
||||
// centered on [x1=100,y1=100] with a radius of 50
|
||||
it.regular_polygon(100, 100, 50, EDGES_HEXAGON);
|
||||
// and a filled flat-topped octagon!
|
||||
it.filled_regular_polygon(200, 200, 50, EDGES_OCTAGON, VARIATION_FLAT_TOP);
|
||||
// Need to rotate the polygon, or retrieve the coordinates of its vertices? Check the API!
|
||||
|
||||
All the above methods can optionally also be called with an argument at the end which specifies in which
|
||||
color to draw. For monochrome displays, only ``COLOR_ON`` (the default if color is not given) and ``COLOR_OFF`` are supported.
|
||||
|
||||
@ -152,110 +159,14 @@ Additionally, you have access to two helper methods which will fetch the width a
|
||||
|
||||
You can view the full API documentation for the rendering engine in the "API Reference" in the See Also section.
|
||||
|
||||
.. _display-fonts:
|
||||
|
||||
Fonts
|
||||
*****
|
||||
|
||||
The rendering engine also has a powerful font drawer which integrates seamlessly into ESPHome.
|
||||
Whereas in most Arduino display projects you have to use one of a few pre-defined fonts in very
|
||||
specific sizes, with ESPHome you have the option to use **any** TrueType (``.ttf``) font file
|
||||
at **any** size, as well as fixed-size `PCF <https://en.wikipedia.org/wiki/Portable_Compiled_Format>`_ and `BDF <https://en.wikipedia.org/wiki/Glyph_Bitmap_Distribution_Format>`_ bitmap fonts! Granted the reason for it is
|
||||
actually not having to worry about the licensing of font files :)
|
||||
|
||||
To use fonts you first have to define a font object in your ESPHome configuration file. Just grab
|
||||
a ``.ttf``, ``.pcf``, or ``.bdf`` file from somewhere on the internet and place it, for example,
|
||||
inside a ``fonts`` folder next to your configuration file.
|
||||
|
||||
Next, create a ``font:`` section in your configuration:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
font:
|
||||
- file: "fonts/Comic Sans MS.ttf"
|
||||
id: my_font
|
||||
size: 20
|
||||
|
||||
# gfonts://family[@weight]
|
||||
- file: "gfonts://Roboto"
|
||||
id: roboto
|
||||
size: 20
|
||||
|
||||
- file:
|
||||
type: gfonts
|
||||
family: Roboto
|
||||
weight: 900
|
||||
id: font2
|
||||
size: 16
|
||||
|
||||
- file: "fonts/tom-thumb.bdf"
|
||||
id: tomthumb
|
||||
|
||||
- file: 'gfonts://Material+Symbols+Outlined'
|
||||
id: icon_font_50
|
||||
size: 50
|
||||
glyphs: ["\U0000e425"] # mdi-timer
|
||||
|
||||
display:
|
||||
# ...
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **file** (**Required**): The path (relative to where the .yaml file is) of the font
|
||||
file. You can use the ``gfonts://`` short form to use Google Fonts, or use the below structure:
|
||||
|
||||
- **type** (**Required**, string): Can be ``gfonts`` or ``local``.
|
||||
|
||||
**Google Fonts**:
|
||||
|
||||
Each Google Font will be downloaded once and cached for future use. This can also be used to download Material
|
||||
Symbols or Icons as in the example above.
|
||||
|
||||
- **family** (**Required**, string): The name of the Google Font family.
|
||||
- **weight** (*Optional*, enum): The weight of the font. Can be either the text name or the integer value:
|
||||
|
||||
- **thin**: 100
|
||||
- **extra-light**: 200
|
||||
- **light**: 300
|
||||
- **regular**: 400 (**default**)
|
||||
- **medium**: 500
|
||||
- **semi-bold**: 600
|
||||
- **bold**: 700
|
||||
- **extra-bold**: 800
|
||||
- **black**: 900
|
||||
|
||||
- **italic** (*Optional*, boolean): Whether the font should be italic.
|
||||
|
||||
**Local Fonts**:
|
||||
|
||||
- **path** (**Required**, string): The path (relative to where the .yaml file is) of the TrueType or bitmap font file.
|
||||
|
||||
- **id** (**Required**, :ref:`config-id`): The ID with which you will be able to reference the font later
|
||||
in your display code.
|
||||
- **size** (*Optional*, int): The size of the font in pt (not pixel!).
|
||||
If you want to use the same font in different sizes, create two font objects. Note: *size* is ignored
|
||||
by bitmap fonts. Defaults to ``20``.
|
||||
- **glyphs** (*Optional*, list): A list of characters you plan to use. Only the characters you specify
|
||||
here will be compiled into the binary. Adjust this if you need some special characters or want to
|
||||
reduce the size of the binary if you don't plan to use some glyphs. The items in the list can also
|
||||
be more than one character long if you for example want to use font ligatures. Defaults to
|
||||
``!"%()+=,-_.:°/?0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz``.
|
||||
|
||||
|
||||
.. note::
|
||||
|
||||
To use fonts you will need to have the python ``pillow`` package installed, as ESPHome uses that package
|
||||
to translate the TrueType and bitmap font files into an internal format. If you're running this as a Home Assistant
|
||||
add-on or with the official ESPHome docker image, it should already be installed. Otherwise you need
|
||||
to install it using
|
||||
``pip install "pillow==10.1.0"``.
|
||||
|
||||
.. _display-static_text:
|
||||
|
||||
Drawing Static Text
|
||||
*******************
|
||||
-------------------
|
||||
|
||||
In your display code, you can render static text by referencing the font and just entering your string:
|
||||
To be able to display text, you need to prepare some fonts. ESPHome's :ref:`font renderer <display-fonts>` allows you to use OpenType/TrueType/Bitmap fonts for your texts. This is very flexiblle because you can prepare various sets of fonts at different sizes with a different number of glyphs which is extremely convenient when we're talking about flash space.
|
||||
|
||||
In your display code, you can render static text by referencing the font and just entering your string enclosed in double quotes:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
@ -296,11 +207,21 @@ As with basic shapes, you can also specify a color for the text:
|
||||
// Syntax is always: it.print(<x>, <y>, <font>, [color=COLOR_ON], [align=TextAlign::TOP_LEFT], <text>);
|
||||
it.print(0, 0, id(my_font), COLOR_ON, "Left aligned");
|
||||
|
||||
In case of fonts rendered at higher bit depths, the background color has to be specified after the text in order for antialiasing to work:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
display:
|
||||
- platform: ...
|
||||
# ...
|
||||
lambda: |-
|
||||
// Syntax is always: it.print(<x>, <y>, <font>, [color=COLOR_ON], [align], <text>, [color=COLOR_OFF]);
|
||||
it.print(0, 0, id(my_font_with_icons), COLOR_ON, TextAlign::CENTER, "Just\U000f05d4here. Already\U000F02D1this.", COLOR_OFF);
|
||||
|
||||
.. _display-printf:
|
||||
|
||||
Formatted Text
|
||||
**************
|
||||
--------------
|
||||
|
||||
Static text by itself is not too impressive. What we really want is to display *dynamic* content like sensor values
|
||||
on the display!. That's where ``printf`` comes in. ``printf`` is a formatting engine from the C era and ESPHome
|
||||
@ -350,7 +271,7 @@ Another interesting format string is ``%7.2f``, which would become the right-jus
|
||||
- ``.2`` - round the decimal number to ``2`` digits after the decimal point.
|
||||
- ``f`` - specifier: f(loat).
|
||||
|
||||
You can even have as many format strings as you want in a single printf call. Just make sure the put the
|
||||
You can even have as many formatted items as you want in a single printf call. Just make sure the put the
|
||||
arguments after the format string in the right order.
|
||||
|
||||
.. code-block:: yaml
|
||||
@ -372,6 +293,19 @@ To display a text string from a ``text_sensor``, append ``.c_str()`` to the end
|
||||
lambda: |-
|
||||
it.printf(0, 0, id(my_font), "Text to follow: %s", id(template_text).state.c_str());
|
||||
|
||||
|
||||
When using anti-aliased fonts you will probably need to specify the color to draw the characters, and the background
|
||||
color to mix in for anti-aliasing. This requires the full version of `printf`, e.g.:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
display:
|
||||
- platform: ...
|
||||
# ...
|
||||
lambda: |-
|
||||
it.printf(10, 100, id(roboto), Color(0x123456), COLOR_OFF, display::TextAlign::BASELINE, "%f", id(heap_free).state);
|
||||
|
||||
|
||||
The last printf tip for use in displays I will discuss here is how to display binary sensor values. You
|
||||
*could* of course just check the state with an ``if`` statement as the first few lines in the example below, but if
|
||||
you want to be efficient you can use an *inline if* too. With the ``%s`` print specifier you can tell it to
|
||||
@ -404,14 +338,14 @@ use any string you pass it, like ``"ON"`` or ``"OFF"``.
|
||||
.. _display-strftime:
|
||||
|
||||
Displaying Time
|
||||
***************
|
||||
---------------
|
||||
|
||||
You can display current time using a time component. Please see the example :ref:`here <strftime>`.
|
||||
|
||||
.. _clipping:
|
||||
|
||||
Screen Clipping
|
||||
***************
|
||||
---------------
|
||||
|
||||
Screen clipping is a new set of methods since version 2023.2.0 of esphome. It could be useful when you just want to show
|
||||
a part of an image or make sure that what you draw on the screen does not go outside a specific region on the screen.
|
||||
@ -463,12 +397,10 @@ With ``get_clipping();`` you get a ``Rect`` object back with the latest set clip
|
||||
|
||||
With ``is_clipping();`` tells you if clipping is activated.
|
||||
|
||||
|
||||
|
||||
.. _config-color:
|
||||
|
||||
Color
|
||||
*****
|
||||
-----
|
||||
|
||||
When using RGB-capable displays in ESPHome you may wish to use custom colors.
|
||||
A ``color`` component exists for just this purpose:
|
||||
@ -518,7 +450,7 @@ RGB displays use red, green, and blue, while grayscale displays may use white.
|
||||
.. _display-graphs:
|
||||
|
||||
Graph Component
|
||||
***************
|
||||
---------------
|
||||
|
||||
You can display a graph of a sensor value(s) using this component. The states used for the graph are stored in
|
||||
memory at the time the sensor updates and will be lost when the device reboots.
|
||||
@ -631,8 +563,11 @@ And then later in code:
|
||||
- Axis labels are currently not possible without manually placing them.
|
||||
- The grid and border color is set with it.graph(), while the traces are defined separately.
|
||||
|
||||
|
||||
.. _display-qrcode:
|
||||
|
||||
QR Code Component
|
||||
*****************
|
||||
-----------------
|
||||
|
||||
Use this component to generate a QR-code containing a string on the device, which can then be drawn on compatible displays.
|
||||
|
||||
@ -667,8 +602,11 @@ To draw the QR-code, call the ``it.qr_code`` function from your render lambda:
|
||||
// Draw the QR-code at position [x=50,y=0] with white color and a 2x scale
|
||||
it.qr_code(50, 0, id(homepage_qr), Color(255,255,255), 2);
|
||||
|
||||
|
||||
.. _display-image:
|
||||
|
||||
Images
|
||||
******
|
||||
------
|
||||
|
||||
Use this component to store graphical images on the device, you can then draw the images on compatible displays.
|
||||
|
||||
@ -783,7 +721,7 @@ You can also use this to invert images in two colors display, use ``COLOR_OFF``
|
||||
as the additional parameters.
|
||||
|
||||
Animation
|
||||
*********
|
||||
---------
|
||||
|
||||
Allows to use animated images on displays. Animation inherits all options from the image component.
|
||||
It adds additional lambda methods: ``next_frame()``, ``prev_frame()`` and ``set_frame()`` to change the shown picture of a gif.
|
||||
@ -984,7 +922,7 @@ Troubleshooting
|
||||
---------------
|
||||
|
||||
Color Test Pattern
|
||||
******************
|
||||
------------------
|
||||
|
||||
If you're experiencing issues with your color display, the script below can help you to identify what might be wrong.
|
||||
It will show 3 color bars in **RED**, **GREEN** and **BLUE**. To help the graphics display team determine
|
||||
@ -1031,6 +969,7 @@ See Also
|
||||
--------
|
||||
|
||||
- :apiref:`display/display_buffer.h`
|
||||
- :ref:`Fonts <display-fonts>`
|
||||
- :ghedit:`Edit`
|
||||
|
||||
.. toctree::
|
||||
|
185
components/display/qspi_amoled.rst
Normal file
@ -0,0 +1,185 @@
|
||||
Quad SPI AMOLED Displays
|
||||
========================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up quad SPI AMOLED displays.
|
||||
:image: t4-s3.jpg
|
||||
|
||||
.. _qspi_amoled:
|
||||
|
||||
Models
|
||||
------
|
||||
This display driver supports AMOLED displays with quad SPI interfaces.
|
||||
|
||||
This driver has been tested with the following displays:
|
||||
|
||||
- Lilygo T4-S3
|
||||
- Lilygo T-Display S3 AMOLED
|
||||
|
||||
Usage
|
||||
-----
|
||||
This component requires an ESP32 and the use of
|
||||
ESP-IDF. PSRAM is a requirement due to the size of the display buffer. A :ref:`quad SPI bus <spi>` interface must be configured.
|
||||
|
||||
.. figure:: images/t4-s3.jpg
|
||||
:align: center
|
||||
:width: 75.0%
|
||||
|
||||
Lilygo T4-S3
|
||||
|
||||
.. figure:: images/t-display-amoled.jpg
|
||||
:align: center
|
||||
:width: 75.0%
|
||||
|
||||
Lilygo T-Display S3 AMOLED
|
||||
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example minimal configuration entry
|
||||
|
||||
display:
|
||||
- platform: qspi_amoled
|
||||
model: RM690B0
|
||||
data_rate: 80MHz
|
||||
spi_mode: mode0
|
||||
dimensions:
|
||||
width: 450
|
||||
height: 600
|
||||
offset_width: 16
|
||||
color_order: rgb
|
||||
invert_colors: false
|
||||
brightness: 255
|
||||
cs_pin: 11
|
||||
reset_pin: 13
|
||||
enable_pin: 9
|
||||
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **model** (**Required**): One of ``RM67162`` or ``RM690B0``.
|
||||
- **cs_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The chip select pin.
|
||||
- **reset_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The RESET pin.
|
||||
- **enable_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The display enable pin.
|
||||
- **brightness** (*Optional*, int): A brightness value in the range 0-255
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
||||
- **auto_clear_enabled** (*Optional*, boolean): Whether to automatically clear the display in each loop (''true'', default),
|
||||
or to keep the existing display content (must overwrite explicitly, e.g., only on data change).
|
||||
- **pages** (*Optional*, list): Show pages instead of a single lambda. See :ref:`display-pages`.
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||
- **color_order** (*Optional*): Should be one of ``rgb`` (default) or ``bgr``.
|
||||
- **dimensions** (**Required**): Dimensions of the screen, specified either as *width* **x** *height* (e.g ``320x240``) or with separate config keys.
|
||||
- **height** (**Required**, int): Specifies height of display in pixels.
|
||||
- **width** (**Required**, int): Specifies width of display.
|
||||
- **offset_width** (*Optional*, int): Specify an offset for the x-direction of the display, typically used when a display is smaller than the maximum supported by the driver chip. Default is 0
|
||||
- **offset_height** (*Optional*, int): Specify an offset for the y-direction of the display. Default is 0.
|
||||
|
||||
- **rotation** (*Optional*): Rotate the display presentation in software. Choose one of ``0°``, ``90°``, ``180°``, or ``270°``.
|
||||
- **transform** (*Optional*): Transform the display presentation using hardware. All defaults are ``false``. This option cannot be used with ``rotation``.
|
||||
|
||||
- **swap_xy** (*Optional*, boolean): If true, exchange the x and y axes.
|
||||
- **mirror_x** (*Optional*, boolean): If true, mirror the x axis.
|
||||
- **mirror_y** (*Optional*, boolean): If true, mirror the y axis.
|
||||
- **data_rate** (*Optional*): Set the data rate of the SPI interface to the display. One of ``80MHz``, ``40MHz``, ``20MHz``, ``10MHz`` (default), ``5MHz``, ``2MHz`` or ``1MHz``.
|
||||
- **spi_mode** (*Optional*): Set the mode for the SPI interface to the display. Default is ``MODE0``.
|
||||
- **invert_colors** (*Optional*): With this boolean option you can invert the display colors.
|
||||
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
||||
See :ref:`display-engine` for more information.
|
||||
|
||||
|
||||
|
||||
Example configurations
|
||||
----------------------
|
||||
|
||||
|
||||
Lilygo T4-S3
|
||||
************
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
spi:
|
||||
id: quad_spi
|
||||
type: quad
|
||||
clk_pin: 15
|
||||
data_pins: [14, 10, 16, 12]
|
||||
|
||||
i2c:
|
||||
sda: 6
|
||||
scl: 7
|
||||
|
||||
touchscreen:
|
||||
- platform: cst226
|
||||
id: my_touchscreen
|
||||
interrupt_pin: 8
|
||||
reset_pin: 17
|
||||
|
||||
display:
|
||||
- platform: qspi_amoled
|
||||
model: RM690B0
|
||||
data_rate: 80MHz
|
||||
spi_mode: mode0
|
||||
dimensions:
|
||||
width: 450
|
||||
height: 600
|
||||
offset_width: 16
|
||||
color_order: rgb
|
||||
invert_colors: false
|
||||
brightness: 255
|
||||
cs_pin: 11
|
||||
reset_pin: 13
|
||||
enable_pin: 9
|
||||
update_interval: never
|
||||
auto_clear_enabled: false
|
||||
|
||||
psram:
|
||||
mode: octal
|
||||
speed: 80MHz
|
||||
|
||||
Lilygo T-Display S3 AMOLED
|
||||
**************************
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
spi:
|
||||
id: quad_spi
|
||||
clk_pin: 47
|
||||
data_pins:
|
||||
- 18
|
||||
- 7
|
||||
- 48
|
||||
- 5
|
||||
|
||||
i2c:
|
||||
sda: 3
|
||||
scl: 2
|
||||
|
||||
touchscreen:
|
||||
- platform: cst816
|
||||
id: my_touchscreen
|
||||
interrupt_pin:
|
||||
number: 21
|
||||
|
||||
display:
|
||||
- platform: qspi_amoled
|
||||
model: RM67162
|
||||
id: main_lcd
|
||||
dimensions:
|
||||
height: 240
|
||||
width: 536
|
||||
transform:
|
||||
mirror_x: true
|
||||
swap_xy: true
|
||||
color_order: rgb
|
||||
brightness: 255
|
||||
cs_pin: 6
|
||||
reset_pin: 17
|
||||
enable_pin: 38
|
||||
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :doc:`index`
|
||||
- :apiref:`qspi_amoled/qspi_amoled.h`
|
||||
- :ghedit:`Edit`
|
213
components/display/rpi_dpi_rgb.rst
Normal file
@ -0,0 +1,213 @@
|
||||
RPI_DPI_RGB Display Driver
|
||||
===========================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up 16 bit "RPI_DPI_RGB" parallel displays
|
||||
:image: waveshare_touch-s3.jpg
|
||||
|
||||
.. _rpi_dpi_rgb:
|
||||
|
||||
Models
|
||||
------
|
||||
This display driver supports displays with 16 bit parallel interfaces, often referred to as "RPI_DPI_RGB" type.
|
||||
These have a parallel interface but no SPI interface and require no configuration of the driver chip.
|
||||
|
||||
This driver has been tested with the following displays:
|
||||
|
||||
- Waveshare ESP32-S3-Touch-LCD-4.3
|
||||
- Makerfabs 4.3" display (Sunton)
|
||||
|
||||
Usage
|
||||
-----
|
||||
This component requires an ESP32 (usually an ESP32-S3 because of the number of GPIO pins required) and the use of
|
||||
ESP-IDF. PSRAM is a requirement due to the size of the display buffer.
|
||||
|
||||
.. figure:: images/waveshare_touch-s3.jpg
|
||||
:align: center
|
||||
:width: 75.0%
|
||||
|
||||
Waveshare ESP32-S3 Touch 4.3
|
||||
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
|
||||
# Example minimal configuration entry
|
||||
display:
|
||||
- platform: rpi_dpi_rgb
|
||||
id: rpi_disp
|
||||
dimensions:
|
||||
width: 800
|
||||
height: 480
|
||||
de_pin: REPLACE_ME
|
||||
hsync_pin: REPLACE_ME
|
||||
vsync_pin: REPLACE_ME
|
||||
pclk_pin: REPLACE_ME
|
||||
|
||||
data_pins:
|
||||
red:
|
||||
- XX #r1
|
||||
- XX #r2
|
||||
- XX #r3
|
||||
- XX #r4
|
||||
- XX #r5
|
||||
green:
|
||||
- XX #g0
|
||||
- XX #g1
|
||||
- XX #g2
|
||||
- XX #g3
|
||||
- XX #g4
|
||||
- XX #g5
|
||||
blue:
|
||||
- XX #b1
|
||||
- XX #b2
|
||||
- XX #b3
|
||||
- XX #b4
|
||||
- XX #b5
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **data_pins** (**Required**) A list of pins used for the databus. Specified in 3 groups:
|
||||
|
||||
- **red**: (**Required**, :ref:`Pin Schema <config-pin_schema>`) Exactly 5 pin numbers for the red databits, listed from least to most significant bit.
|
||||
- **green**: (**Required**, :ref:`Pin Schema <config-pin_schema>`) Exactly 6 pin numbers for the green databits, listed from least to most significant bit.
|
||||
- **blue**: (**Required**, :ref:`Pin Schema <config-pin_schema>`) Exactly 5 pin numbers for the blue databits, listed from least to most significant bit.
|
||||
- **de_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The DE pin
|
||||
- **pclk_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The PCLK pin.
|
||||
- **hsync_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The Horizontal sync pin.
|
||||
- **vsync_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The Vertical sync pin.
|
||||
- **reset_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The RESET pin.
|
||||
- **hsync_pulse_width** (*Optional*, int): The horizontal sync pulse width.
|
||||
- **hsync_front_porch** (*Optional*, int): The horizontal front porch length.
|
||||
- **hsync_back_porch** (*Optional*, int): The horizontal back porch length.
|
||||
- **vsync_pulse_width** (*Optional*, int): The vertical sync pulse width.
|
||||
- **vsync_front_porch** (*Optional*, int): The vertical front porch length.
|
||||
- **vsync_back_porch** (*Optional*, int): The vertical back porch length.
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
||||
- **auto_clear_enabled** (*Optional*, boolean): Whether to automatically clear the display in each loop (''true'', default),
|
||||
or to keep the existing display content (must overwrite explicitly, e.g., only on data change).
|
||||
- **pages** (*Optional*, list): Show pages instead of a single lambda. See :ref:`display-pages`.
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||
- **color_order** (*Optional*): Should be one of ``bgr`` (default) or ``rgb``.
|
||||
- **dimensions** (**Required**): Dimensions of the screen, specified either as *width* **x** *height* (e.g ``320x240``) or with separate config keys.
|
||||
- **height** (**Required**, int): Specifies height of display in pixels.
|
||||
- **width** (**Required**, int): Specifies width of display.
|
||||
- **offset_width** (*Optional*, int): Specify an offset for the x-direction of the display, typically used when an LCD is smaller than the maximum supported by the driver chip. Default is 0
|
||||
- **offset_height** (*Optional*, int): Specify an offset for the y-direction of the display. Default is 0.
|
||||
|
||||
- **pclk_frequency** (*Optional*): Set the pixel clock speed. Default is 16MHz.
|
||||
- **pclk_inverted** (*Optional* bool): If the pclk is active negative (default is True)
|
||||
- **invert_colors** (*Optional*): With this boolean option you can invert the display colors. **Note** some of the displays have this option set automatically to true and can't be changed.
|
||||
- **rotation** (*Optional*): Rotate the display presentation in software. Choose one of ``0°``, ``90°``, ``180°``, or ``270°``.
|
||||
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
||||
See :ref:`display-engine` for more information.
|
||||
|
||||
|
||||
The horizontal and vertical ``pulse_width``, ``front_porch`` and ``back_porch`` values are optional, but may require
|
||||
changing for a specific display. Refer to the manufacturer's sample code for suitable values. These specify timing
|
||||
requirements for the display.
|
||||
|
||||
Example configurations
|
||||
----------------------
|
||||
|
||||
|
||||
Waveshare ESP32-S3 Touch 4.3
|
||||
****************************
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
display:
|
||||
- platform: rpi_dpi_rgb
|
||||
auto_clear_enabled: false
|
||||
color_order: RGB
|
||||
pclk_frequency: 16MHz
|
||||
dimensions:
|
||||
width: 800
|
||||
height: 480
|
||||
de_pin:
|
||||
number: 5
|
||||
hsync_pin:
|
||||
number: 46
|
||||
ignore_strapping_warning: true
|
||||
vsync_pin:
|
||||
number: 3
|
||||
ignore_strapping_warning: true
|
||||
pclk_pin: 7
|
||||
hsync_back_porch: 30
|
||||
hsync_front_porch: 210
|
||||
hsync_pulse_width: 30
|
||||
vsync_back_porch: 4
|
||||
vsync_front_porch: 4
|
||||
vsync_pulse_width: 4
|
||||
data_pins:
|
||||
red:
|
||||
- 1 #r3
|
||||
- 2 #r4
|
||||
- 42 #r5
|
||||
- 41 #r6
|
||||
- 40 #r7
|
||||
blue:
|
||||
- 14 #b3
|
||||
- 38 #b4
|
||||
- 18 #b5
|
||||
- 17 #b6
|
||||
- 10 #b7
|
||||
green:
|
||||
- 39 #g2
|
||||
- 0 #g3
|
||||
- 45 #g4
|
||||
- 48 #g5
|
||||
- 47 #g6
|
||||
- 21 #g7
|
||||
|
||||
|
||||
Makerfabs 4.3" 800x480 display
|
||||
******************************
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
display:
|
||||
- platform: rpi_dpi_rgb
|
||||
update_interval: never
|
||||
auto_clear_enabled: false
|
||||
id: rpi_display
|
||||
color_order: RGB
|
||||
rotation: 90
|
||||
dimensions:
|
||||
width: 800
|
||||
height: 480
|
||||
de_pin:
|
||||
number: 40
|
||||
hsync_pin: 39
|
||||
vsync_pin: 41
|
||||
pclk_pin: 42
|
||||
data_pins:
|
||||
red:
|
||||
- 45 #r1
|
||||
- 48 #r2
|
||||
- 47 #r3
|
||||
- 21 #r4
|
||||
- 14 #r5
|
||||
green:
|
||||
- 5 #g0
|
||||
- 6 #g1
|
||||
- 7 #g2
|
||||
- 15 #g3
|
||||
- 16 #g4
|
||||
- 4 #g5
|
||||
blue:
|
||||
- 8 #b1
|
||||
- 3 #b2
|
||||
- 46 #b3
|
||||
- 9 #b4
|
||||
- 1 #b5
|
||||
|
||||
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :doc:`index`
|
||||
- :apiref:`rpi_dpi_rgb/rpi_dpi_rgb.h`
|
||||
- :ghedit:`Edit`
|
199
components/display/st7701s.rst
Normal file
@ -0,0 +1,199 @@
|
||||
ST7701S Display Driver
|
||||
======================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up ST7701S 16 bit "RGB" parallel displays
|
||||
:image: indicator.jpg
|
||||
|
||||
.. _st7701s:
|
||||
|
||||
Models
|
||||
------
|
||||
This display driver supports displays with 16 bit parallel interfaces, often referred to as "RGB". It currently
|
||||
supports the ST7701S chip.
|
||||
|
||||
This driver has been tested with the following displays:
|
||||
|
||||
- Seeed Sensecap Indicator
|
||||
- Makerfabs 4" display
|
||||
|
||||
Usage
|
||||
-----
|
||||
This component requires an ESP32 (usually an ESP32-S3 because of the number of GPIO pins required) and the use of
|
||||
ESP-IDF. PSRAM is a requirement due to the size of the display buffer.
|
||||
|
||||
.. figure:: images/indicator.jpg
|
||||
:align: center
|
||||
:width: 75.0%
|
||||
|
||||
Sensecap Indicator display
|
||||
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example minimal configuration entry
|
||||
display:
|
||||
- platform: st7701s
|
||||
dimensions:
|
||||
width: 480
|
||||
height: 480
|
||||
cs_pin: REPLACE_ME
|
||||
reset_pin: REPLACE_ME
|
||||
de_pin: REPLACE_ME
|
||||
hsync_pin: REPLACE_ME
|
||||
vsync_pin: REPLACE_ME
|
||||
pclk_pin: REPLACE_ME
|
||||
# Replace XX with the correct pin number
|
||||
|
||||
data_pins:
|
||||
red:
|
||||
- XX #r1
|
||||
- XX #r2
|
||||
- XX #r3
|
||||
- XX #r4
|
||||
- XX #r5
|
||||
green:
|
||||
- XX #g0
|
||||
- XX #g1
|
||||
- XX #g2
|
||||
- XX #g3
|
||||
- XX #g4
|
||||
- XX #g5
|
||||
blue:
|
||||
- XX #b1
|
||||
- XX #b2
|
||||
- XX #b3
|
||||
- XX #b4
|
||||
- XX #b5
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **init_sequence** (*Optional*, A list of byte arrays): Specifies the init sequence for the display
|
||||
- **data_pins** (**Required**): A list of pins used for the databus. Specified in 3 groups.
|
||||
|
||||
- **red**: (**Required**, :ref:`Pin Schema <config-pin_schema>`) Exactly 5 pin numbers for the red databits, listed from least to most significant bit.
|
||||
- **green**: (**Required**, :ref:`Pin Schema <config-pin_schema>`) Exactly 6 pin numbers for the green databits, listed from least to most significant bit.
|
||||
- **blue**: (**Required**, :ref:`Pin Schema <config-pin_schema>`) Exactly 5 pin numbers for the blue databits, listed from least to most significant bit.
|
||||
- **de_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The DE pin.
|
||||
- **dc_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The DC pin.
|
||||
- **pclk_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The PCLK pin.
|
||||
- **hsync_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The Horizontal sync pin.
|
||||
- **vsync_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The Vertical sync pin.
|
||||
- **reset_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The RESET pin.
|
||||
- **hsync_pulse_width** (*Optional*, int): The horizontal sync pulse width.
|
||||
- **hsync_front_porch** (*Optional*, int): The horizontal front porch length.
|
||||
- **hsync_back_porch** (*Optional*, int): The horizontal back porch length.
|
||||
- **vsync_pulse_width** (*Optional*, int): The vertical sync pulse width.
|
||||
- **vsync_front_porch** (*Optional*, int): The vertical front porch length.
|
||||
- **vsync_back_porch** (*Optional*, int): The vertical back porch length.
|
||||
- **pclk_frequency** (*Optional*): Set the pixel clock speed. Default is 8MHz.
|
||||
- **pclk_inverted** (*Optional* bool): If the pclk is active negative (default is True)
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
||||
- **auto_clear_enabled** (*Optional*, boolean): Whether to automatically clear the display in each loop (''true'', default),
|
||||
or to keep the existing display content (must overwrite explicitly, e.g., only on data change).
|
||||
- **pages** (*Optional*, list): Show pages instead of a single lambda. See :ref:`display-pages`.
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||
- **color_order** (*Optional*): Should be one of ``bgr`` (default) or ``rgb``.
|
||||
- **dimensions** (**Required**): Dimensions of the screen, specified either as *width* **x** *height* (e.g ``320x240``) or with separate config keys.
|
||||
|
||||
- **height** (**Required**, int): Specifies height of display in pixels.
|
||||
- **width** (**Required**, int): Specifies width of display.
|
||||
- **offset_width** (*Optional*, int): Specify an offset for the x-direction of the display, typically used when an LCD is smaller than the maximum supported by the driver chip. Default is 0
|
||||
- **offset_height** (*Optional*, int): Specify an offset for the y-direction of the display. Default is 0.
|
||||
|
||||
- **data_rate** (*Optional*): Set the data rate of the SPI interface to the display. One of ``80MHz``, ``40MHz``,
|
||||
``20MHz``, ``10MHz``, ``5MHz``, ``2MHz``, ``1MHz`` (default), ``200kHz``, ``75kHz`` or ``1kHz``.
|
||||
- **spi_mode** (*Optional*): Set the mode for the SPI interface to the display. Default is ``MODE0`` but some displays require ``MODE3``.
|
||||
- **invert_colors** (*Optional*): With this boolean option you can invert the display colors. **Note** some of the displays have this option set automatically to true and can't be changed.
|
||||
- **rotation** (*Optional*): Rotate the display presentation in software. Choose one of ``0°``, ``90°``, ``180°``, or ``270°``. This option cannot be used with ``transform``.
|
||||
- **transform** (*Optional*): Transform the display presentation using hardware. All defaults are ``false``. This option cannot be used with ``rotation``.
|
||||
|
||||
- **swap_xy** (*Optional*, boolean): If true, exchange the x and y axes.
|
||||
- **mirror_x** (*Optional*, boolean): If true, mirror the x axis.
|
||||
- **mirror_y** (*Optional*, boolean): If true, mirror the y axis.
|
||||
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
||||
See :ref:`display-engine` for more information.
|
||||
|
||||
|
||||
**Note:** To rotate the display in hardware use one of the following combinations:
|
||||
|
||||
- 90 degrees - use ``swap_xy`` with ``mirror_x``
|
||||
- 180 degrees - use ``mirror_x`` with ``mirror_y``
|
||||
- 270 degrees - use ``swap_xy`` with ``mirror_y``
|
||||
|
||||
The horizontal and vertical ``pulse_width``, ``front_porch`` and ``back_porch`` values are optional, but may require
|
||||
changing for a specific display. Refer to the manufacturer's sample code for suitable values. These specify timing
|
||||
requirements for the display.
|
||||
|
||||
The ``init_sequence`` requires a list of elements, one of which may be a single integer selecting a canned init
|
||||
sequence (the default and currently the only sequence is 1), the remainder must be byte arrays providing additional
|
||||
init commands, each consisting of a command byte followed by zero or more data bytes.
|
||||
|
||||
These will be collected and sent to the display via SPI during initialisation.
|
||||
|
||||
Example configurations
|
||||
----------------------
|
||||
|
||||
Seeed Sensecap Indicator
|
||||
************************
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
display:
|
||||
- platform: st7701s
|
||||
auto_clear_enabled: false
|
||||
update_interval: never
|
||||
spi_mode: MODE3
|
||||
color_order: RGB
|
||||
dimensions:
|
||||
width: 480
|
||||
height: 480
|
||||
invert_colors: true
|
||||
transform:
|
||||
mirror_x: true
|
||||
mirror_y: true
|
||||
cs_pin:
|
||||
pca9554: p_c_a
|
||||
number: 4
|
||||
reset_pin:
|
||||
pca9554: p_c_a
|
||||
number: 5
|
||||
de_pin: 18
|
||||
hsync_pin: 16
|
||||
vsync_pin: 17
|
||||
pclk_pin: 21
|
||||
init_sequence:
|
||||
- 1 # select canned init sequence number 1
|
||||
- [ 0xE0, 0x1F ] # Set sunlight readable enhancement
|
||||
data_pins:
|
||||
red:
|
||||
- 4 #r1
|
||||
- 3 #r2
|
||||
- 2 #r3
|
||||
- 1 #r4
|
||||
- 0 #r5
|
||||
green:
|
||||
- 10 #g0
|
||||
- 9 #g1
|
||||
- 8 #g2
|
||||
- 7 #g3
|
||||
- 6 #g4
|
||||
- 5 #g5
|
||||
blue:
|
||||
- 15 #b1
|
||||
- 14 #b2
|
||||
- 13 #b3
|
||||
- 12 #b4
|
||||
- 11 #b5
|
||||
lambda: |-
|
||||
it.fill(COLOR_BLACK);
|
||||
it.print(0, 0, id(my_font), id(my_red), TextAlign::TOP_LEFT, "Hello World!");
|
||||
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :doc:`index`
|
||||
- :apiref:`st7701s/st7701s.h`
|
||||
- :ghedit:`Edit`
|
@ -7,8 +7,9 @@ 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``
|
||||
with ESPHome. The 2.13" `TTGO module <https://github.com/lewisxhe/TTGO-EPaper-Series>`__ and the
|
||||
`Waveshare Cloud Module <https://www.waveshare.com/wiki/2.13inch_e-Paper_Cloud_Module>`__ with an ESP32
|
||||
on the board are supported as well. Depending on your specific revision of the TTGO 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>`__
|
||||
@ -88,6 +89,7 @@ Configuration variables:
|
||||
- ``2.13in-ttgo-b74`` - T5_V2.3.1 with B74 display tested
|
||||
- ``2.13in-ttgo-b1`` - T5_V2.3 with B1 display tested
|
||||
- ``2.13in-ttgo-dke`` - T5_V2.3 with DKE group display (DEPG0213BN) tested
|
||||
- ``2.13inv2`` - 2.13in V2 display (Pico e-Paper 2.13v2 and Cloud Module)
|
||||
- ``2.13inv3`` - 2.13in V3 display (Pico e-Paper 2.13v3)
|
||||
- ``2.70in`` - currently not working with the HAT Rev 2.1 version
|
||||
- ``2.70inv2``
|
||||
@ -95,6 +97,7 @@ Configuration variables:
|
||||
- ``2.70in-bv2`` - Black/White/Red
|
||||
- ``2.90in``
|
||||
- ``2.90inv2``
|
||||
- ``2.90inv2-r2`` - 2.9in V2 display, but with different initialization and full/partial display refresh management than ``2.90inv2``
|
||||
- ``2.90in-b`` - B/W rendering only
|
||||
- ``2.90in-bV3`` - B/W rendering only
|
||||
- ``4.20in``
|
||||
@ -119,13 +122,13 @@ Configuration variables:
|
||||
- **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.
|
||||
Make sure you pull this pin high (by connecting it to 3.3V with a resistor) if not connected to a GPIO pin.
|
||||
The B74 display variant requires the reset pin.
|
||||
The 2.13" B74 and V2 display variants require the reset pin.
|
||||
- **rotation** (*Optional*): Set the rotation of the display. Everything you draw in ``lambda:`` will be rotated
|
||||
by this option. One of ``0°`` (default), ``90°``, ``180°``, ``270°``.
|
||||
- **full_update_every** (*Optional*, int): E-Paper displays have two modes of switching to the next image: A partial
|
||||
update that only changes the pixels that have changed and a full update mode that first clears the entire display
|
||||
and then re-draws the image. The former is much quicker and nicer, but every so often a full update needs to happen
|
||||
because artifacts accumulate. On the ``1.54in``, ``1.54inv2``, ``2.13in``, ``2.90in`` and ``2.90inv2`` models you have the option to switch only
|
||||
because artifacts accumulate. On the ``1.54in``, ``1.54inv2``, ``2.13in``, ``2.13inv2``, ``2.90in`` and ``2.90inv2`` models, you have the option to only
|
||||
do a full-redraw every x-th time using this option. Defaults to ``30`` on the described models and a full update for
|
||||
all other models.
|
||||
- **reset_duration** (*Optional*, :ref:`config-time`): Duration for the display reset operation. Defaults to ``200ms``.
|
||||
|
@ -40,8 +40,9 @@ Advanced options:
|
||||
|
||||
- **build_path** (*Optional*, string): Customize where ESPHome will store the build files
|
||||
for your node. By default, ESPHome puts the PlatformIO project it uses to build the
|
||||
firmware in the ``.esphome/build/<NODE>`` directory, but you can customize this
|
||||
behavior using this option.
|
||||
firmware in the ``.esphome/build/<NODE>`` (or into path from ``ESPHOME_BUILD_PATH`` environment variable if specified) directory,
|
||||
but you can customize this behavior using this option. Official docker image automatically use `/build` folder
|
||||
as default one in case it is mounted to it.
|
||||
- **platformio_options** (*Optional*, mapping): Additional options to pass over to PlatformIO in the
|
||||
platformio.ini file. See :ref:`esphome-platformio_options`.
|
||||
- **includes** (*Optional*, list of files): A list of C/C++ files to include in the main (auto-generated) sketch file
|
||||
@ -57,6 +58,10 @@ Advanced options:
|
||||
|
||||
- **name** (**Required**, string): Name of the project
|
||||
- **version** (**Required**, string): Version of the project
|
||||
- **on_update** (*Optional*, :ref:`Automation <automation>`): An automation to perform when the device firmware is updated.
|
||||
This compares the above ``version`` field with the ``version`` that was in the previous firmware
|
||||
as long as the ``name`` matches.
|
||||
The ``version`` is stored in flash memory when the firmware is first run for future comparisons.
|
||||
- **min_version** (*Optional*, string): The minimum ESPHome version required to compile this configuration.
|
||||
See :ref:`esphome-min_version`.
|
||||
- **compile_process_limit** (*Optional*, int): The maximum number of simultaneous compile processes to run.
|
||||
@ -324,15 +329,15 @@ The same procedure can be done for changing the static IP of a device.
|
||||
Adding the MAC address as a suffix to the device name
|
||||
-----------------------------------------------------
|
||||
|
||||
Using ``name_add_mac_suffix`` allows :doc:`creators </guides/creators>` to
|
||||
provision multiple devices at the factory with a single firmware and still
|
||||
Using ``name_add_mac_suffix`` allows :doc:`creators </guides/creators>` to
|
||||
provision multiple devices at the factory with a single firmware and still
|
||||
have unique identification for customer installs.
|
||||
|
||||
.. note::
|
||||
|
||||
End users will need to create an individual YAML config file if they want to OTA update the
|
||||
End users will need to create an individual YAML config file if they want to OTA update the
|
||||
devices in the future. Creators can facilitate this process by providing ``dashboard_import`` URL
|
||||
for end users. This allows them to easily update their devices as new features are made available
|
||||
for end users. This allows them to easily update their devices as new features are made available
|
||||
upstream.
|
||||
|
||||
|
||||
|
@ -14,7 +14,7 @@ This component and the Wi-Fi component may **not** be used simultaneously, even
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
# Example configuration entry for RMII chips
|
||||
ethernet:
|
||||
type: LAN8720
|
||||
mdc_pin: GPIO23
|
||||
@ -28,6 +28,18 @@ This component and the Wi-Fi component may **not** be used simultaneously, even
|
||||
gateway: 10.0.0.1
|
||||
subnet: 255.255.255.0
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry for SPI chips
|
||||
ethernet:
|
||||
type: W5500
|
||||
clk_pin: GPIO19
|
||||
mosi_pin: GPIO21
|
||||
miso_pin: GPIO23
|
||||
cs_pin: GPIO18
|
||||
interrupt_pin: GPIO36
|
||||
reset_pin: GPIO22
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
@ -35,13 +47,17 @@ Configuration variables:
|
||||
|
||||
Supported chipsets are:
|
||||
|
||||
- ``LAN8720``
|
||||
- ``RTL8201``
|
||||
- ``DP83848``
|
||||
- ``IP101``
|
||||
- ``JL1101``
|
||||
- ``KSZ8081``
|
||||
- ``KSZ8081RNA``
|
||||
- ``LAN8720`` (RMII)
|
||||
- ``RTL8201`` (RMII)
|
||||
- ``DP83848`` (RMII)
|
||||
- ``IP101`` (RMII)
|
||||
- ``JL1101`` (RMII)
|
||||
- ``KSZ8081`` (RMII)
|
||||
- ``KSZ8081RNA`` (RMII)
|
||||
- ``W5500`` (SPI)
|
||||
|
||||
RMII configuration variables:
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
- **mdc_pin** (**Required**, :ref:`config-pin`): The MDC pin of the board.
|
||||
Usually this is ``GPIO23``.
|
||||
@ -58,6 +74,24 @@ Configuration variables:
|
||||
- **phy_addr** (*Optional*, int): The PHY addr type of the Ethernet controller. Defaults to 0.
|
||||
- **power_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The pin controlling the
|
||||
power/reset status of the Ethernet controller. Leave unspecified for no power pin (default).
|
||||
|
||||
SPI configuration variables:
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
- **clk_pin** (**Required**, :ref:`config-pin`): The SPI clock pin.
|
||||
- **mosi_pin** (**Required**, :ref:`config-pin`): The SPI MOSI pin.
|
||||
- **miso_pin** (**Required**, :ref:`config-pin`): The SPI MISO pin.
|
||||
- **cs_pin** (**Required**, :ref:`config-pin`): The SPI chip select pin.
|
||||
- **interrupt_pin** (*Optional*, :ref:`config-pin`): The interrupt pin.
|
||||
- **reset_pin** (*Optional*, :ref:`config-pin`): The reset pin.
|
||||
- **clock_speed** (*Optional*, float): The SPI clock speed.
|
||||
Any frequency between `8Mhz` and `80Mhz` is allowed, but the nearest integer division
|
||||
of `80Mhz` is used, i.e. `16Mhz` (`80Mhz` / 5) is used when `15Mhz` is configured.
|
||||
Default: `26.67Mhz`.
|
||||
|
||||
Advanced common configuration variables:
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
- **manual_ip** (*Optional*): Manually configure the static IP of the node.
|
||||
|
||||
- **static_ip** (**Required**, IPv4 address): The static IP of your node.
|
||||
@ -83,6 +117,10 @@ Configuration variables:
|
||||
clock signal that will not travel reliably over these types of connections. For more
|
||||
information and wiring details refer to the link in the *See also* section.
|
||||
|
||||
.. note::
|
||||
|
||||
SPI based chips do *not* use :doc:`spi`. This means that SPI pins can't be shared with other devices.
|
||||
|
||||
Configuration examples
|
||||
----------------------
|
||||
|
||||
|
@ -73,14 +73,20 @@ MQTT options:
|
||||
|
||||
Automation triggers:
|
||||
|
||||
- **on_state** (*Optional*, :ref:`Action <config-action>`): An automation to perform
|
||||
when the fan state is changed. See :ref:`fan-on_state_trigger`.
|
||||
- **on_turn_on** (*Optional*, :ref:`Action <config-action>`): An automation to perform
|
||||
when the fan is turned on. See :ref:`fan-on_turn_on_off_trigger`.
|
||||
- **on_turn_off** (*Optional*, :ref:`Action <config-action>`): An automation to perform
|
||||
when the fan is turned off. See :ref:`fan-on_turn_on_off_trigger`.
|
||||
- **on_direction_set** (*Optional*, :ref:`Action <config-action>`): An automation to perform
|
||||
when the fan direction is changed. See :ref:`fan-on_direction_set_trigger`.
|
||||
- **on_oscillating_set** (*Optional*, :ref:`Action <config-action>`): An automation to perform
|
||||
when the fan oscillating state is changed. See :ref:`fan-on_oscillating_set_trigger`.
|
||||
- **on_speed_set** (*Optional*, :ref:`Action <config-action>`): An automation to perform
|
||||
when the fan speed is set/changed. See :ref:`fan-on_speed_set_trigger`.
|
||||
when the fan speed is changed. See :ref:`fan-on_speed_set_trigger`.
|
||||
- **on_preset_set** (*Optional*, :ref:`Action <config-action>`): An automation to perform
|
||||
when the fan preset mode is set/changed. See :ref:`fan-on_preset_set_trigger`.
|
||||
when the fan preset mode is changed. See :ref:`fan-on_preset_set_trigger`.
|
||||
|
||||
.. _fan-toggle_action:
|
||||
|
||||
@ -175,6 +181,24 @@ This :ref:`condition <config-condition>` passes if the given fan is on or off.
|
||||
then:
|
||||
- script.execute: my_script
|
||||
|
||||
.. _fan-on_state_trigger:
|
||||
|
||||
``fan.on_state`` Trigger
|
||||
------------------------
|
||||
|
||||
This trigger is activated each time the fan state is changed. It will fire when the state is either set via API e.g. in Home Assistant or locally by an automation or a lambda function.
|
||||
A pointer to the ``Fan`` is available as a variable called ``x``.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
fan:
|
||||
- platform: speed # or any other platform
|
||||
# ...
|
||||
on_state:
|
||||
- logger.log:
|
||||
format: "Fan State changed! Fan Speed is %d!"
|
||||
args: [ x->speed ]
|
||||
|
||||
.. _fan-on_turn_on_off_trigger:
|
||||
|
||||
``fan.on_turn_on`` / ``fan.on_turn_off`` Trigger
|
||||
@ -193,12 +217,49 @@ if a command to turn the fan on or off already matches the current state.
|
||||
on_turn_off:
|
||||
- logger.log: "Fan Turned Off!"
|
||||
|
||||
.. _fan-on_direction_set_trigger:
|
||||
|
||||
``fan.on_direction_set`` Trigger
|
||||
--------------------------------
|
||||
|
||||
This trigger is activated each time the fan direction is changed. It will fire when the direction is either set via API e.g. in Home Assistant or locally by an automation or a lambda function.
|
||||
The new direction is available as a variable called ``x``. (``0`` is FORWARD, ``1`` is REVERSE)
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
fan:
|
||||
- platform: speed # or any other platform
|
||||
# ...
|
||||
on_direction_set:
|
||||
- logger.log:
|
||||
format: "Fan Direction was changed to %s!"
|
||||
args: [ x == 0 ? "FORWARD" : "REVERSE" ]
|
||||
|
||||
.. _fan-on_oscillating_set_trigger:
|
||||
|
||||
``fan.on_oscillating_set`` Trigger
|
||||
----------------------------------
|
||||
|
||||
This trigger is activated each time the fan oscillating state is changed. It will fire when the state is either set via API e.g. in Home Assistant or locally by an automation or a lambda function.
|
||||
The new oscillating state is available as a variable called ``x``.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
fan:
|
||||
- platform: speed # or any other platform
|
||||
# ...
|
||||
on_oscillating_set:
|
||||
- logger.log:
|
||||
format: "Fan Oscillating State was changed to %s!"
|
||||
args: [ ONOFF(x) ]
|
||||
|
||||
.. _fan-on_speed_set_trigger:
|
||||
|
||||
``fan.on_speed_set`` Trigger
|
||||
----------------------------
|
||||
|
||||
This trigger is activated each time the fan speed is changed. It will fire when the speed is either set via API e.g. in Home Assistant or locally by an automation or a lambda function.
|
||||
The new speed is available as a variable called ``x``.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
@ -206,7 +267,9 @@ This trigger is activated each time the fan speed is changed. It will fire when
|
||||
- platform: speed # or any other platform
|
||||
# ...
|
||||
on_speed_set:
|
||||
- logger.log: "Fan Speed was changed!"
|
||||
- logger.log:
|
||||
format: "Fan Speed was changed to %d!"
|
||||
args: [ x ]
|
||||
|
||||
.. _fan-on_preset_set_trigger:
|
||||
|
||||
@ -214,6 +277,7 @@ This trigger is activated each time the fan speed is changed. It will fire when
|
||||
-----------------------------
|
||||
|
||||
This trigger is activated each time the fan preset mode is changed. It will fire when the preset mode is either set via API e.g. in Home Assistant or locally by an automation or a lambda function.
|
||||
The new mode is available as a variable called ``x``.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
@ -221,7 +285,9 @@ This trigger is activated each time the fan preset mode is changed. It will fire
|
||||
- platform: speed # or any other platform
|
||||
# ...
|
||||
on_preset_set:
|
||||
- logger.log: "Fan preset mode was changed!"
|
||||
- logger.log:
|
||||
format: "Fan preset mode was changed to %s!"
|
||||
args: [ x.c_str() ]
|
||||
|
||||
Lambda calls
|
||||
------------
|
||||
|
@ -24,8 +24,7 @@ Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **name** (*Optional*, string): The name for this fan.
|
||||
- **output** (*Optional*, :ref:`config-id`): The id of the :ref:`float output <output>` to use for this fan.
|
||||
(This is a temporary change until a template fan is available.)
|
||||
- **output** (**Required**, :ref:`config-id`): The id of the :ref:`float output <output>` to use for this fan.
|
||||
- **oscillation_output** (*Optional*, :ref:`config-id`): The id of the
|
||||
:ref:`output <output>` to use for the oscillation state of this fan. Default is empty.
|
||||
- **direction_output** (*Optional*, :ref:`config-id`): The id of the
|
||||
|
41
components/fan/template.rst
Normal file
@ -0,0 +1,41 @@
|
||||
Template Fan
|
||||
============
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up template fans.
|
||||
:image: fan.svg
|
||||
|
||||
The ``template`` fan platform lets you create a fan interface using only triggers.
|
||||
|
||||
.. figure:: images/fan-ui.png
|
||||
:align: center
|
||||
:width: 80.0%
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
fan:
|
||||
- platform: template
|
||||
name: "Virtual Fan"
|
||||
on_state:
|
||||
- do something
|
||||
on_speed_set:
|
||||
- do something
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||
- **name** (*Optional*, string): The name for this fan.
|
||||
- **has_direction** (*Optional*, boolean): Indicates if there should be a control for direction. Default is ``false``.
|
||||
- **has_oscillating** (*Optional*, boolean): Indicates if there should be a control for oscillating. Default is ``false``.
|
||||
- **speed_count** (*Optional*, int): Set the number of supported discrete speed levels. Default is only on/off.
|
||||
- **preset_modes** (*Optional*): A list of preset modes for this fan. Preset modes can be used in automations (i.e. `on_preset_set`).
|
||||
- All other options from :ref:`Fan Component <config-fan>`.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :doc:`/components/fan/index`
|
||||
- :apiref:`template/fan/template_fan.h`
|
||||
- :ghedit:`Edit`
|
@ -38,6 +38,11 @@ If available on your reader model, it's recommended to connect 3.3VT (touch indu
|
||||
# Declare Grow Fingerprint Reader
|
||||
fingerprint_grow:
|
||||
sensing_pin: GPIO12
|
||||
sensor_power_pin:
|
||||
number: GPIO18
|
||||
inverted: true
|
||||
idle_period_to_sleep: 5s
|
||||
|
||||
on_finger_scan_start:
|
||||
...
|
||||
on_finger_scan_matched:
|
||||
@ -66,8 +71,10 @@ Base Configuration:
|
||||
- **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the UART hub.
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||
- **sensing_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): Pin connected to the reader's finger detection signal (WAKEUP) output.
|
||||
- **sensor_power_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): Output pin responsible for toogling the sensor power on and off.
|
||||
- **password** (*Optional*, int): Password to use for authentication. Defaults to ``0x00``.
|
||||
- **new_password** (*Optional*, int): Sets a new password to use for authentication. See :ref:`fingerprint_grow-set_new_password` for more information.
|
||||
- **idle_period_to_sleep** (*Optional*, :ref:`config-time`): The sensor idle period to wait before powering it off (sleep). Defaults to ``5s``. See :ref:`fingerprint_grow-sleep_mode` for more information.
|
||||
- **on_finger_scan_start** (*Optional*, :ref:`Automation <automation>`): An action to be performed when the finger touches the sensor. See :ref:`fingerprint_grow-on_finger_scan_start`.
|
||||
- **on_finger_scan_matched** (*Optional*, :ref:`Automation <automation>`): An action to be performed when an enrolled fingerprint is scanned. See :ref:`fingerprint_grow-on_finger_scan_matched`.
|
||||
- **on_finger_scan_unmatched** (*Optional*, :ref:`Automation <automation>`): An action to be performed when an unknown fingerprint is scanned. See :ref:`fingerprint_grow-on_finger_scan_unmatched`.
|
||||
@ -127,6 +134,32 @@ Sensor
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
.. _fingerprint_grow-sleep_mode:
|
||||
|
||||
Sleep Mode
|
||||
----------
|
||||
The sensor idle power consumption is roughly 20mA. If you plan to keep the device running continuously, it is wise to implement the Sleep Mode, which puts the sensor to sleep (power off) a few seconds after the last communication (configurable with ``idle_period_to_sleep``). It can only be implemented along with the Touch Sensing Feature, since it uses the touch feedback to wake up the sensor.
|
||||
To implement this feature, you will need one more free GPIO pin to toggle the sensor power on and off and two external components: a 10kOhms resistor and a PNP transistor (like a BC327).
|
||||
|
||||
This is a wiring example for the R503 and below you can find the respective configuration:
|
||||
|
||||
.. figure:: images/fingeprint_grow-sleep_mode_wiring.jpg
|
||||
:align: center
|
||||
:width: 50.0%
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
uart:
|
||||
rx_pin: GPIO16
|
||||
tx_pin: GPIO17
|
||||
baud_rate: 57600
|
||||
|
||||
fingerprint_grow:
|
||||
sensing_pin: GPIO4
|
||||
sensor_power_pin:
|
||||
number: GPIO18
|
||||
inverted: true
|
||||
idle_period_to_sleep: 5s
|
||||
|
||||
.. _fingerprint_grow-set_new_password:
|
||||
|
||||
|
BIN
components/images/fingeprint_grow-sleep_mode_wiring.jpg
Normal file
After Width: | Height: | Size: 90 KiB |
BIN
components/images/seeed-mr24hpc1-card.png
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
components/images/seeed-mr24hpc1-mmwave-kit.png
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
components/images/seeed-mr24hpc1.jpg
Normal file
After Width: | Height: | Size: 13 KiB |
@ -11,6 +11,7 @@ Components
|
||||
fan/index
|
||||
light/index
|
||||
number/index
|
||||
datetime/index
|
||||
output/index
|
||||
select/index
|
||||
sensor/index
|
||||
|
@ -353,6 +353,7 @@ MQTT can have some overrides for specific options.
|
||||
|
||||
name: "Component Name"
|
||||
# Optional variables:
|
||||
qos: 1
|
||||
retain: true
|
||||
availability:
|
||||
topic: livingroom/status
|
||||
@ -366,6 +367,7 @@ Configuration variables:
|
||||
|
||||
- **name** (**Required**, string): The name to use for the MQTT
|
||||
Component.
|
||||
- **qos** (*Optional*, int): The [Quality of Service](https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels/) level for publishing. Defaults to 0.
|
||||
- **retain** (*Optional*, boolean): If all MQTT state messages should
|
||||
be retained. Defaults to ``true``.
|
||||
- **discovery** (*Optional*, boolean): Manually enable/disable
|
||||
|
@ -14,11 +14,13 @@ networks (WiFi, Ethernet).
|
||||
# Example configuration
|
||||
network:
|
||||
enable_ipv6: true
|
||||
min_ipv6_addr_count: 2
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **enable_ipv6** (*Optional*, boolean): Enables IPv6 support. Defaults to ``false``.
|
||||
- **min_ipv6_addr_count** (*Optional*, integer): ESPHome considers the network to be connected when it has one IPv4 address and this number of IPv6 addresses. Defaults to ``0`` so as to not hang on boot with networks where IPv6 is not enabled. ``2`` is typically a reasonable value for configurations requiring IPv6.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
@ -37,6 +37,7 @@ The tone generator needs a PWM capable output to work with, currently only the
|
||||
rtttl:
|
||||
output: rtttl_out
|
||||
id: my_rtttl
|
||||
gain: 60%
|
||||
|
||||
Overview Using the I2S speaker
|
||||
------------------------------
|
||||
@ -54,6 +55,7 @@ The tone generator can instead be used with a :doc:`Speaker </components/speaker
|
||||
rtttl:
|
||||
speaker: my_speaker
|
||||
id: my_rtttl
|
||||
gain: 0.8
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
@ -62,6 +64,7 @@ Configuration variables:
|
||||
this buzzer.
|
||||
- **speaker** (**Exclusive**, :ref:`config-id`): The id of the :ref:`speaker <i2s_audio>` to play the song on.
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||
- **gain** (*Optional*, Percentage): With this value you can set the volume of the sound.
|
||||
- **on_finished_playback** (*Optional*, :ref:`Automation <automation>`): An action to be
|
||||
performed when playback is finished.
|
||||
|
||||
|
454
components/seeed_mr24hpc1.rst
Normal file
@ -0,0 +1,454 @@
|
||||
Seeed Studio MR24HPC1 mmWave (Kit)
|
||||
==================================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up MR24HPC1 mmWave (Kit).
|
||||
:image: seeed-mr24hpc1.jpg
|
||||
|
||||
Component/Hub
|
||||
-------------
|
||||
|
||||
The ``seeed_mr24hpc1`` platform allows you to use Seeed Studio 24GHz mmWave Sensor -
|
||||
Human Static Presence Module Lite (`Product Page <https://www.seeedstudio.com/24GHz-mmWave-Sensor-Human-Static-Presence-Module-Lite-p-5524.html>`__) and
|
||||
Seeed Studio mmWave Human Detection Sensor Kit (`Product Page <https://www.seeedstudio.com/mmWave-Human-Detection-Sensor-Kit-p-5773.html>`__) with ESPHome.
|
||||
|
||||
The :ref:`UART <uart>` is required to be set up in your configuration for this sensor to work, ``parity`` and ``stop_bits`` **must be** respectively ``NONE`` and ``1``.
|
||||
You can use the ESP32 software or hardware serial to use this MR24HPC1, its default baud rate is 115200.
|
||||
|
||||
.. figure:: images/seeed-mr24hpc1.jpg
|
||||
:align: center
|
||||
:width: 50.0%
|
||||
|
||||
Seeed Studio 24GHz mmWave Sensor - Human Static Presence Module Lite
|
||||
|
||||
|
||||
.. figure:: images/seeed-mr24hpc1-mmwave-kit.png
|
||||
:align: center
|
||||
:width: 50.0%
|
||||
|
||||
Seeed Studio mmWave Human Detection Sensor Kit
|
||||
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
seeed_mr24hpc1:
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`UART Component <uart>` if you want
|
||||
to use multiple UART buses.
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID for this :doc:`seeed_mr24hpc1` component if you need multiple components.
|
||||
|
||||
Binary Sensor
|
||||
-------------
|
||||
|
||||
The ``seeed_mr24hpc1`` binary sensor allows you to perform different measurements.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
binary_sensor:
|
||||
- platform: seeed_mr24hpc1
|
||||
has_target:
|
||||
name: "Presence Information"
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **has_target** (*Optional*): If true target detect either still or in movement.
|
||||
All options from :ref:`Binary Sensor <config-binary_sensor>`.
|
||||
|
||||
Sensor
|
||||
------
|
||||
|
||||
The ``seeed_mr24hpc1`` sensor allows you to perform different measurements.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
sensor:
|
||||
- platform: seeed_mr24hpc1
|
||||
custom_presence_of_detection:
|
||||
name: "Static Distance"
|
||||
movement_signs:
|
||||
name: "Body Movement Parameter"
|
||||
custom_motion_distance:
|
||||
name: "Motion Distance"
|
||||
custom_spatial_static_value:
|
||||
name: "Existence Energy"
|
||||
custom_spatial_motion_value:
|
||||
name: "Motion Energy"
|
||||
custom_motion_speed:
|
||||
name: "Motion Speed"
|
||||
custom_mode_num:
|
||||
name: "Current Custom Mode"
|
||||
|
||||
.. _seeed_mr24hpc1-spatial_static:
|
||||
|
||||
.. _seeed_mr24hpc1-spatial_mtion:
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **custom_presence_of_detection** (*Optional*, float): Valid only for :ref:`underlying open functions <seeed_mr24hpc1-open_function>`.
|
||||
Radar detects human breath at a straight line distance, usually no more than 3 metres.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **movement_signs** (*Optional*, int): A value calculated by a built-in algorithm to determine if someone is moving in the current environment.
|
||||
When the value is 0, the radar determines that no one is present in the environment. When the value is 1,
|
||||
the radar determines that someone is present in the environment and is stationary.
|
||||
When the value is greater than 1, the radar determines that someone is present in the environment and is in motion.
|
||||
The larger the value, the stronger the motion.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **custom_motion_distance** (*Optional*, float): Valid only for :ref:`underlying open functions <seeed_mr24hpc1-open_function>`.
|
||||
Distance in meters of detected moving target.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **custom_spatial_static_value** (*Optional*, int): Valid only for :ref:`underlying open functions <seeed_mr24hpc1-open_function>`.
|
||||
Electromagnetic waves are present in the environment, with a low change in frequency when no one is present.
|
||||
The value of the overall space electromagnetic wave reflection weakly floating when there is someone breathing in the space (chest breathing micromotion).
|
||||
The output range for this value is 0-250.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **custom_spatial_motion_value** (*Optional*, int): Valid only for :ref:`underlying open functions <seeed_mr24hpc1-open_function>`.
|
||||
Motion amplitude values, different motion amplitudes cause different electromagnetic wave frequency changes.
|
||||
The output range for this value is 0-250.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **custom_motion_speed** (*Optional*, float): Valid only for :ref:`underlying open functions <seeed_mr24hpc1-open_function>`.
|
||||
The magnitude of the speed of the target movement is determined in real time. Approaching radar speed is positive, away is negative.
|
||||
When there is no movement speed, the value is 0, and the speed gear is in 0.5m/s increments.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **custom_mode_num** (*Optional*, int): The custom mode number that the radar is currently in. If it is not in custom mode, then the value is 0.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
.. _seeed_mr24hpc1-open_function:
|
||||
|
||||
.. _seeed_mr24hpc1-standard_mode:
|
||||
|
||||
Switch
|
||||
------
|
||||
|
||||
The ``seeed_mr24hpc1`` switch allows you to control your device.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
switch:
|
||||
- platform: seeed_mr24hpc1
|
||||
underlying_open_function:
|
||||
name: Underlying Open Function Info Output Switch
|
||||
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **underlying_open_function** (*Optional*): Enable/disable **underlying open function**. When this switch is off, it indicates that it is currently in **standard mode**.
|
||||
Defaults to off (standard mode). Turning on this feature allows you to observe more information about the environment and is recommended to use it
|
||||
again in complex environments where the basic functionality is not sufficient. When this function is turned on, the stationary/motion and approach/away judgement of
|
||||
the basic function will be disabled. Notice this requires more resources and is not recommended to be enabled when not necessary.
|
||||
All options from :ref:`Switch <config-switch>`.
|
||||
|
||||
|
||||
Number
|
||||
------
|
||||
|
||||
The ``seeed_mr24hpc1`` number allows you to control the configuration.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
number:
|
||||
- platform: seeed_mr24hpc1
|
||||
sensitivity:
|
||||
name: "Sensitivity"
|
||||
custom_mode:
|
||||
name: "Custom Mode"
|
||||
existence_threshold:
|
||||
name: "Existence Energy Threshold"
|
||||
motion_threshold:
|
||||
name: "Motion Energy Threshold"
|
||||
motion_trigger:
|
||||
name: "Motion Trigger Time"
|
||||
motion_to_rest:
|
||||
name: "Motion To Rest Time"
|
||||
custom_unman_time:
|
||||
name: "Time For Entering No Person State (Custom Mode)"
|
||||
|
||||
.. _seeed_mr24hpc1-custom_mode:
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **sensitivity** (*Optional*, int): Valid only in :ref:`standard mode <seeed_mr24hpc1-standard_mode>`. Used to adjust the sensitivity of the radar.
|
||||
The sensitivity setting adjusts the detection distance of the sensor for human body in static state.
|
||||
There are 3 levels for sensitivity setting, with the default level being sensitivity 3.
|
||||
All options from :ref:`Number <config-number>`.
|
||||
|
||||
.. list-table:: Sensitivity
|
||||
:widths: 25 25
|
||||
:header-rows: 1
|
||||
|
||||
* - Sensitivity
|
||||
- Detection Radius (m)
|
||||
* - 1
|
||||
- 2.5m
|
||||
* - 2
|
||||
- 3m
|
||||
* - 3
|
||||
- 4m
|
||||
|
||||
- **custom_mode** (*Optional*, int): Settings and go to the Custom Mode option. Some of the function modules can only be set up in Custom Mode.
|
||||
There are four storage areas for custom modes. When you finish setting and click the Setup End button, the radar applies the custom mode options you have set.
|
||||
All options from :ref:`Number <config-number>`.
|
||||
- **existence_threshold** (*Optional*, int): Valid only in :ref:`custom mode settings <seeed_mr24hpc1-custom_mode>`.
|
||||
This corresponds to :ref:`custom_spatial_static_value <seeed_mr24hpc1-spatial_static>`.
|
||||
When the value of ``custom_spatial_static_value`` is greater than the set value, the radar will judge that someone is stationary,
|
||||
otherwise it will judge that no one is.
|
||||
The default value is ``33``.
|
||||
All options from :ref:`Number <config-number>`.
|
||||
- **motion_threshold** (*Optional*, int): Valid only in :ref:`custom mode settings <seeed_mr24hpc1-custom_mode>`.
|
||||
This corresponds to :ref:`custom_spatial_motion_value <seeed_mr24hpc1-spatial_mtion>`.
|
||||
When the value of ``custom_spatial_motion_value`` is greater than the set value, the radar will judge that someone is moving,
|
||||
otherwise it will judge that someone is stationary.
|
||||
The default value is ``4``.
|
||||
All options from :ref:`Number <config-number>`.
|
||||
- **motion_trigger** (*Optional*, int): Valid only in :ref:`custom mode settings <seeed_mr24hpc1-custom_mode>`.
|
||||
Used for time accumulation of motion triggers, multiple judgement triggers to reduce false alarms.
|
||||
Can be used with ``motion_threshold`` and ``motion_boundary`` for performance limitation.
|
||||
The default value is ``150ms``.
|
||||
All options from :ref:`Number <config-number>`.
|
||||
- **motion_to_rest** (*Optional*, int): Valid only in :ref:`custom mode settings <seeed_mr24hpc1-custom_mode>`.
|
||||
Sets the time for the radar to judge from body motion to body at rest.
|
||||
Can be used with ``existence_threshold`` and ``motion_threshold`` for performance limitation.
|
||||
The default value is ``3000ms``.
|
||||
All options from :ref:`Number <config-number>`.
|
||||
- **custom_unman_time** (*Optional*, int): Valid only in :ref:`custom mode settings <seeed_mr24hpc1-custom_mode>`.
|
||||
Sets the time for the radar to judge from body presence to unoccupied state.
|
||||
Can be used with ``existence_threshold`` and ``existence_boundary`` for performance limitation.
|
||||
The default value is ``30s``.
|
||||
All options from :ref:`Number <config-number>`.
|
||||
|
||||
Button
|
||||
------
|
||||
|
||||
The ``seeed_mr24hpc1`` button allows you to perform actions.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
button:
|
||||
- platform: seeed_mr24hpc1
|
||||
restart:
|
||||
name: "Module Restart"
|
||||
custom_set_end:
|
||||
name: "End Of Custom Mode Settings"
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **restart**: Restart the device. All options from :ref:`Button <config-button>`.
|
||||
- **custom_set_end**: Valid only in :ref:`custom mode settings <seeed_mr24hpc1-custom_mode>`.
|
||||
This button is used to end the current custom mode setting and enable that custom mode.
|
||||
All options from :ref:`Button <config-button>`.
|
||||
|
||||
|
||||
Text Sensor
|
||||
-----------
|
||||
|
||||
The ``seeed_mr24hpc1`` text sensor allows you to get information about your device.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
text_sensor:
|
||||
- platform: seeed_mr24hpc1
|
||||
heart_beat:
|
||||
name: "Heartbeat"
|
||||
product_model:
|
||||
name: "Product Model"
|
||||
product_id:
|
||||
name: "Product ID"
|
||||
hardware_model:
|
||||
name: "Hardware Model"
|
||||
hardware_version:
|
||||
name: "Hardware Version"
|
||||
keep_away:
|
||||
name: "Active Reporting Of Proximity"
|
||||
motion_status:
|
||||
name: "Motion Information"
|
||||
custom_mode_end:
|
||||
name: "Custom Mode Status"
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **heart_beat** (*Optional*): Sensor operating status indicator.
|
||||
All options from :ref:`Text Sensor <config-text_sensor>`.
|
||||
- **product_model** (*Optional*): The product model.
|
||||
All options from :ref:`Text Sensor <config-text_sensor>`.
|
||||
- **product_id** (*Optional*): The product ID.
|
||||
All options from :ref:`Text Sensor <config-text_sensor>`.
|
||||
- **hardware_model** (*Optional*): The hardware model.
|
||||
All options from :ref:`Text Sensor <config-text_sensor>`.
|
||||
- **hardware_version** (*Optional*): The hardware version.
|
||||
All options from :ref:`Text Sensor <config-text_sensor>`.
|
||||
- **keep_away** (*Optional*): Indicator for detecting objects approaching or moving away.
|
||||
All options from :ref:`Text Sensor <config-text_sensor>`.
|
||||
- **motion_status** (*Optional*): An indicator that detects the movement or stationarity of an object.
|
||||
All options from :ref:`Text Sensor <config-text_sensor>`.
|
||||
- **custom_mode_end** (*Optional*): Used to indicate whether or not the current radar is in a customised mode amongst the setup functions.
|
||||
There are three main statuses: "Not in custom mode", "Setup in progress..." and "Set Success!".
|
||||
All options from :ref:`Text Sensor <config-text_sensor>`.
|
||||
|
||||
Select
|
||||
-----------
|
||||
|
||||
The ``seeed_mr24hpc1`` select allows you to control the configuration.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
select:
|
||||
- platform: seeed_mr24hpc1
|
||||
scene_mode:
|
||||
name: "Scene"
|
||||
unman_time:
|
||||
name: "Time For Entering No Person State (Standard Function)"
|
||||
existence_boundary:
|
||||
name: "Existence Boundary"
|
||||
motion_boundary:
|
||||
name: "Motion Boundary"
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **scene_mode**: Valid only in :ref:`standard mode <seeed_mr24hpc1-standard_mode>`. Used to select a preset scene in standard mode.
|
||||
The function of scene mode is to adjust the maximum detection range of the sensor to recognize human movements (Maximum detection distance of the sensor).
|
||||
There are 4 modes for scene mode, with the default mode being the living room mode. The detection range values for each scene mode are in the following table.
|
||||
All options from :ref:`Select <config-select>`.
|
||||
|
||||
.. list-table:: Scene mode
|
||||
:widths: 25 25
|
||||
:header-rows: 1
|
||||
|
||||
* - Scene mode
|
||||
- Detection Radius (m)
|
||||
* - Living room
|
||||
- 4m - 4.5m
|
||||
* - Bedroom
|
||||
- 3.5m - 4m
|
||||
* - Bathroom
|
||||
- 2.5m - 3m
|
||||
* - Area detection
|
||||
- 3m - 3.5m
|
||||
|
||||
- **unman_time**: Valid only in :ref:`standard mode <seeed_mr24hpc1-standard_mode>`.
|
||||
Same as ``custom_unman_time``, but this setting is only valid in standard mode.
|
||||
All options from :ref:`Select <config-select>`.
|
||||
- **existence_boundary**: Valid only in :ref:`custom mode settings <seeed_mr24hpc1-custom_mode>`.
|
||||
The distance to the farthest stationary target detected by the radar. Used to reduce radar false alarms. Reduces interference outside the detection range.
|
||||
The default value is ``5m``.
|
||||
All options from :ref:`Select <config-select>`.
|
||||
- **motion_boundary**: Valid only in :ref:`custom mode settings <seeed_mr24hpc1-custom_mode>`.
|
||||
The distance to the furthest moving target detected by the radar. Used to reduce radar false alarms.
|
||||
Reduces the detection range of out-of-range doors, glass interference from moving objects outside the door.
|
||||
The default value is ``5m``.
|
||||
All options from :ref:`Select <config-select>`.
|
||||
|
||||
Home Assistant Card
|
||||
-------------------
|
||||
|
||||
For a more intuitive view of the sensor data, you can use the customised card below.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: entities
|
||||
entities:
|
||||
- entity: button.{$DEVICE}_module_restart
|
||||
name: Module Restart
|
||||
- entity: sensor.{$DEVICE}_hardware_model
|
||||
name: Hardware Model
|
||||
- entity: sensor.{$DEVICE}_hardware_version
|
||||
name: Hardware Version
|
||||
- entity: sensor.{$DEVICE}_heartbeat
|
||||
name: Heartbeat
|
||||
- entity: sensor.{$DEVICE}_product_id
|
||||
name: Product ID
|
||||
- entity: sensor.{$DEVICE}_product_model
|
||||
name: Product Model
|
||||
title: {$DEVICE} Information
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: entities
|
||||
entities:
|
||||
- entity: select.{$DEVICE}_scene
|
||||
name: Scene
|
||||
- entity: number.{$DEVICE}_sensitivity
|
||||
name: Sensitivity
|
||||
- entity: select.{$DEVICE}_time_for_entering_no_person_state_standard_function
|
||||
name: Time For Entering No Person State Setting (Standard Function)
|
||||
- entity: binary_sensor.{$DEVICE}_presence_information
|
||||
name: Presence Information
|
||||
- entity: sensor.{$DEVICE}_motion_information
|
||||
name: Motion Information
|
||||
- entity: sensor.{$DEVICE}_body_movement_parameter
|
||||
name: Body Movement Parameter
|
||||
- entity: sensor.{$DEVICE}_active_reporting_of_proximity
|
||||
name: Active Reporting Of Proximity
|
||||
title: Unsolicited Information
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: entities
|
||||
entities:
|
||||
- entity: switch.{$DEVICE}_underlying_open_function_info_output_switch
|
||||
name: Underlying Open Function Info Output Switch
|
||||
- entity: sensor.{$DEVICE}_existence_energy
|
||||
name: Existence Energy
|
||||
- entity: sensor.{$DEVICE}_motion_energy
|
||||
name: Motion Energy
|
||||
- entity: sensor.{$DEVICE}_static_distance
|
||||
name: Static Distance
|
||||
- entity: sensor.{$DEVICE}_motion_distance
|
||||
name: Motion Distance
|
||||
- entity: sensor.{$DEVICE}_motion_speed
|
||||
name: Motion Speed
|
||||
title: Underlying Open Function
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: entities
|
||||
entities:
|
||||
- entity: sensor.{$DEVICE}_custom_mode_status
|
||||
name: Custom Mode Status
|
||||
- entity: number.{$DEVICE}_custom_mode
|
||||
name: Custom Mode
|
||||
- entity: sensor.{$DEVICE}_current_custom_mode
|
||||
name: Current Custom Mode
|
||||
- entity: button.{$DEVICE}_end_of_custom_mode_settings
|
||||
name: End Of Custom Mode Settings
|
||||
- entity: select.{$DEVICE}_existence_boundary
|
||||
name: Existence Boundary
|
||||
- entity: select.{$DEVICE}_motion_boundary
|
||||
name: Motion Boundary
|
||||
- entity: number.{$DEVICE}_existence_energy_threshold
|
||||
name: Existence Energy Threshold
|
||||
- entity: number.{$DEVICE}_motion_energy_threshold
|
||||
name: Motion Energy Threshold
|
||||
- entity: number.{$DEVICE}_motion_trigger_time
|
||||
name: Motion Trigger Time
|
||||
- entity: number.{$DEVICE}_motion_to_rest_time
|
||||
name: Motion To Rest Time
|
||||
- entity: number.{$DEVICE}_time_for_entering_no_person_state_custom_mode
|
||||
name: Time For Entering No Person State (Custom Mode)
|
||||
title: Custom Settings
|
||||
|
||||
Then replace all instances of ``{$DEVICE}`` with your device name
|
||||
|
||||
The result:
|
||||
|
||||
.. figure:: images/seeed-mr24hpc1-card.png
|
||||
:align: center
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- `Official Using Documents for Seeed Studio 24GHz mmWave Sensor - Human Static Presence Module Lite <https://wiki.seeedstudio.com/Radar_MR24HPC1/>`_
|
||||
- `Official Using Documents for Seeed Studio mmWave Human Detection Sensor Kit <https://wiki.seeedstudio.com/mmwave_human_detection_kit/>`_
|
||||
- `Product Detail Page for Seeed Studio 24GHz mmWave Sensor - Human Static Presence Module Lite <https://www.seeedstudio.com/24GHz-mmWave-Sensor-Human-Static-Presence-Module-Lite-p-5524.html>`_
|
||||
- `Product Detail Page for Seeed Studio mmWave Human Detection Sensor Kit <https://www.seeedstudio.com/mmWave-Human-Detection-Sensor-Kit-p-5773.html>`_
|
||||
- `Source of inspiration for implementation <https://github.com/limengdu/mmwave-kit-external-components/>`_
|
||||
- :apiref:`seeed_mr24hpc1/seeed_mr24hpc1.h`
|
||||
- :ghedit:`Edit`
|
311
components/sensor/ade7880.rst
Normal file
@ -0,0 +1,311 @@
|
||||
ADE7880 Power Sensor
|
||||
====================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up ADE7880 energy metering sensors
|
||||
:keywords: ADE7880, Shelly 3EM
|
||||
|
||||
The ``ade7880`` sensor platform allows you to use ADE7880
|
||||
voltage/current/power sensors (`datasheet`_) with ESPHome. This sensor
|
||||
chip is commonly found in Shelly 3EM and 3EM Pro devices.
|
||||
|
||||
Communication with the chip is over an :ref:`I2C bus <i2c>`, so
|
||||
you need to have an ``i2c:`` entry in your configuration with both
|
||||
``sda`` and ``scl`` set. It is also recommended to set the I2C
|
||||
``frequency`` to ``200kHz`` or higher, if the board containing the
|
||||
chip can support it (this speed has been verified to work in the
|
||||
Shelly 3EM). While this is not necessary, if a significant number of
|
||||
the ``ade7880`` individual sensors (e.g. more than six) are enabled,
|
||||
the time consumed by the I2C transactions can be substantial and
|
||||
result in warning messages in the ESPHome logs.
|
||||
|
||||
The ADE7880 chip can measure up to three power phases, along with a
|
||||
neutral. Current can be measured on all four inputs, while voltage and
|
||||
power can be measured on the power phases. Current is measured using
|
||||
CT clamps.
|
||||
|
||||
While the chip is designed for 3-phase AC power, the phase inputs are
|
||||
independent of each other, so the chip can be used with single-phase
|
||||
and two-phase AC power circuits as well (or a mixture of them).
|
||||
|
||||
Instantaneous vs. Accumulated Sensors
|
||||
-------------------------------------
|
||||
|
||||
The digital signal processor (DSP) in the ADE7880 executes its
|
||||
computations 8,000 times per second. As a result, each sensor listed
|
||||
below as 'instantaneous' reports the computed value from the most
|
||||
recent DSP cycle; it does not report an average over the time period
|
||||
since the last update.
|
||||
|
||||
Each sensor listed as 'accumulated' below reports the sum of all
|
||||
computed values since the last update.
|
||||
|
||||
The update interval defaults to 60 seconds, but can be lowered if you
|
||||
wish to have more frequent readings; this will increase the load (and
|
||||
database growth) of the connected Home Assistant correspondingly.
|
||||
|
||||
Configuration Variables
|
||||
-----------------------
|
||||
|
||||
- **irq1_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`):
|
||||
The GPIO pin that the ADE7880's IRQ1 output is connected to. The
|
||||
``ade7880`` component uses this input to determine when the ADE7880
|
||||
chip has completed its power-up and reset cycles.
|
||||
|
||||
- **irq0_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`):
|
||||
The GPIO pin that the ADE7880's IRQ0 output is connected to, if
|
||||
any. The ``ade7880`` component does not use this input, but if the
|
||||
IRQ0 output is connected to a GPIO and that GPIO is *not* configured
|
||||
as an ``input``, the chip will produce excessive heat and its
|
||||
lifetime could be shortened. The simplest way to ensure that the
|
||||
GPIO pin is properly connected is to supply it here, but if you wish
|
||||
to configure it elsewhere in your configuration that is a reasonable
|
||||
alternative.
|
||||
|
||||
- **reset_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`):
|
||||
The GPIO pin that the ADE7880's RESET input is connected to, if
|
||||
any. If this pin is configured, the ``ade7880`` component will use
|
||||
it to initiate a 'hardware reset' of the chip when needed; if this
|
||||
pin is not configured, the component will attempt to initiate a
|
||||
'software reset' of the chip when needed, but this could fail if the
|
||||
chip is not responding properly to the I2C bus.
|
||||
|
||||
- **frequency** (*Optional*, string): The AC line frequency of the
|
||||
supply voltage. The supported range is ``45Hz`` to
|
||||
``65Hz``. Defaults to ``50Hz``.
|
||||
|
||||
- **phase_a** (*Optional*): The configuration variables for the 'A'
|
||||
phase inputs of the chip. Refer to the configuration examples below
|
||||
for the `simple` and `detailed` sensor configuration options.
|
||||
|
||||
- **name** (*Optional*, string): The name of the phase, which will
|
||||
be used a prefix in the names of all of the phase's sensors.
|
||||
|
||||
- **voltage** (instantaneous) (*Optional*): Report the RMS voltage
|
||||
value of this phase in volts (V). In detailed configuration mode,
|
||||
all options from :ref:`Sensor <config-sensor>` are supported.
|
||||
|
||||
- **current** (instantaneous) (*Optional*): Report the RMS current
|
||||
value of this phase in amperes (A). In detailed configuration
|
||||
mode, all options from :ref:`Sensor <config-sensor>` are
|
||||
supported.
|
||||
|
||||
- **active_power** (instantaneous) (*Optional*): Report the active
|
||||
(consumed) power value of this phase in watts (W). In detailed
|
||||
configuration mode, all options from :ref:`Sensor <config-sensor>`
|
||||
are supported.
|
||||
|
||||
- **apparent_power** (instantaneous) (*Optional*): Report the
|
||||
apparent (voltage multiplied by current) power value of this phase
|
||||
in volt-amperes (VA). In detailed configuration mode, all options
|
||||
from :ref:`Sensor <config-sensor>` are supported.
|
||||
|
||||
- **power_factor** (instantaneous) (*Optional*): Report the power
|
||||
factor value of this phase as a percentage (%). In detailed
|
||||
configuration mode, all options from :ref:`Sensor <config-sensor>`
|
||||
are supported.
|
||||
|
||||
- **forward_active_energy** (accumulated) (*Optional*): Report the
|
||||
forward active energy value of this phase in watt-hours (Wh). In
|
||||
detailed configuration mode, all options from :ref:`Sensor
|
||||
<config-sensor>` are supported.
|
||||
|
||||
- **reverse_active_energy** (accumulated) (*Optional*): Report the
|
||||
reverse active energy value of this phase in
|
||||
volt-ampere-reactive-hours (VARh). In detailed configuration mode,
|
||||
all options from :ref:`Sensor <config-sensor>` are supported.
|
||||
|
||||
- **calibration** (**Required**): The calibration values necessary
|
||||
for this phase's sensors to report correct values.
|
||||
|
||||
- **current_gain** (**Required**, integer): The value for the
|
||||
``AIGAIN`` calibration register.
|
||||
|
||||
- **voltage_gain** (**Required**, integer): The value for the
|
||||
``AVGAIN`` calibration register.
|
||||
|
||||
- **power_gain** (**Required**, integer): The value for the
|
||||
``APGAIN`` calibration register.
|
||||
|
||||
- **phase_angle** (**Required**, integer): The value for the
|
||||
``APHCAL`` calibration register.
|
||||
|
||||
- **phase_b** (*Optional*): The configuration variables for the 'B'
|
||||
phase inputs of the chip. Identical to ``phase_a``.
|
||||
|
||||
- **phase_c** (*Optional*): The configuration variables for the 'C'
|
||||
phase inputs of the chip. Identical to ``phase_a``.
|
||||
|
||||
- **neutral** (*Optional*): The configuration variables for the
|
||||
'neutral' phase of the chip.
|
||||
|
||||
- **name** (*Optional*, string): The name of the phase, which will
|
||||
be used a prefix in the names of all of the phase's sensors.
|
||||
|
||||
- **current** (instantaneous) (**Required**): Report the RMS current
|
||||
value of the neutral in amperes (A). In detailed configuration
|
||||
mode, all options from :ref:`Sensor <config-sensor>` are
|
||||
supported.
|
||||
|
||||
- **calibration** (**Required**): The calibration values necessary
|
||||
for this phase's sensors to report correct values.
|
||||
|
||||
- **current_gain** (**Required**, integer): The value for the
|
||||
``NIGAIN`` calibration register.
|
||||
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval
|
||||
to report the sensor values. Defaults to ``60s``.
|
||||
|
||||
- **i2c_id** (*Optional*, :ref:`config-id`): Specify the ID of the
|
||||
:ref:`I2C Component <i2c>` if your configuration includes multiple
|
||||
I2C buses.
|
||||
|
||||
Calibration
|
||||
-----------
|
||||
|
||||
These sensors needs calibration to report correct values. For the
|
||||
Shelly 3EM and 3EM Pro devices, the calibration is performed during
|
||||
manufacturing, and the calibration data is included in the firmware
|
||||
stored in the device. See the `Shelly 3EM`_ section of the ESPHome
|
||||
Devices site for details on how to obtain the calibration data for a
|
||||
3EM device.
|
||||
|
||||
Configuration Examples
|
||||
----------------------
|
||||
|
||||
There are two sensor configuration modes supported: *simple* and
|
||||
*detailed*. The mode can be chosen for each sensor indepedently from
|
||||
all other sensors.
|
||||
|
||||
The *simple* mode is useful when you have no need to provide IDs for
|
||||
sensors, or to override any of the default sensor settings (unit of
|
||||
measurement, device class, state class, decimal accuracy). The value
|
||||
provided for each sensor variable will be the sensor's name
|
||||
(optionally prefixed with the phase name, if it has been
|
||||
configured).
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example simple sensor configuration mode
|
||||
sensor:
|
||||
- platform: ade7880
|
||||
irq0_pin:
|
||||
number: GPIO13
|
||||
irq1_pin:
|
||||
number: GPIO5
|
||||
phase_a:
|
||||
name: Room Heater
|
||||
voltage: Voltage
|
||||
current: Current
|
||||
active_power: Active Power
|
||||
power_factor: Power Factor
|
||||
forward_active_energy: Forward Active Energy
|
||||
reverse_active_energy: Reverse Active Energy
|
||||
calibration:
|
||||
current_gain: 3116628
|
||||
voltage_gain: -757178
|
||||
power_gain: -1344457
|
||||
phase_angle: 188
|
||||
|
||||
Because the phase name 'Room Heater' was configured, the resulting
|
||||
names for the various sensors will be 'Room Heater Voltage', 'Room
|
||||
Heater Current', etc.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example detailed sensor configuration mode
|
||||
sensor:
|
||||
- platform: ade7880
|
||||
irq0_pin:
|
||||
number: GPIO13
|
||||
irq1_pin:
|
||||
number: GPIO5
|
||||
phase_a:
|
||||
voltage: Voltage
|
||||
current:
|
||||
name: Current
|
||||
accuracy_decimals: 0
|
||||
active_power: Active Power
|
||||
power_factor:
|
||||
id: ade_power_factor
|
||||
name: Power Factor
|
||||
forward_active_energy: Forward Active Energy
|
||||
reverse_active_energy: Reverse Active Energy
|
||||
calibration:
|
||||
current_gain: 3116628
|
||||
voltage_gain: -757178
|
||||
power_gain: -1344457
|
||||
phase_angle: 188
|
||||
|
||||
In this example, the ``accuracy_decimals`` variable for the
|
||||
``current`` sensor has been specified (overriding the default), and an
|
||||
``ID`` has been specified for the ``power_factor`` sensor. The
|
||||
remaining sensors for the 'A' phase are configured using 'simple'
|
||||
configuration mode.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example full platform configuration
|
||||
sensor:
|
||||
- platform: ade7880
|
||||
irq0_pin:
|
||||
number: GPIO13
|
||||
irq1_pin:
|
||||
number: GPIO5
|
||||
reset_pin:
|
||||
number: GPIO16
|
||||
frequency: 60Hz
|
||||
phase_a:
|
||||
name: Phase A
|
||||
voltage: Voltage
|
||||
current: Current
|
||||
active_power: Active Power
|
||||
power_factor: Power Factor
|
||||
forward_active_energy: Forward Active Energy
|
||||
reverse_active_energy: Reverse Active Energy
|
||||
calibration:
|
||||
current_gain: 3116628
|
||||
voltage_gain: -757178
|
||||
power_gain: -1344457
|
||||
phase_angle: 188
|
||||
phase_b:
|
||||
name: Phase B
|
||||
voltage: Voltage
|
||||
current: Current
|
||||
active_power:: Active Power
|
||||
power_factor: Power Factor
|
||||
forward_active_energy: Forward Active Energy
|
||||
reverse_active_energy: Reverse Active Energy
|
||||
calibration:
|
||||
current_gain: 3133655
|
||||
voltage_gain: -755235
|
||||
power_gain: -1345638
|
||||
phase_angle: 188
|
||||
phase_c:
|
||||
name: Phase C
|
||||
voltage: Voltage
|
||||
current: Current
|
||||
active_power: Active Power
|
||||
power_factor: Power Factor
|
||||
forward_active_energy: Forward Active Energy
|
||||
reverse_active_energy: Reverse Active Energy
|
||||
calibration:
|
||||
current_gain: 3111158
|
||||
voltage_gain: -743813
|
||||
power_gain: -1351437
|
||||
phase_angle: 180
|
||||
neutral:
|
||||
name: Test 3 Unused
|
||||
current: Current
|
||||
calibration:
|
||||
current_gain: 3011156
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ref:`sensor-filters`
|
||||
- :apiref:`ade7880/ade7880.h`
|
||||
- :ghedit:`Edit`
|
||||
|
||||
.. _datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/ADE7880.pdf
|
||||
.. _`Shelly 3EM`: https://devices.esphome.io/devices/Shelly-3EM
|
@ -122,6 +122,7 @@ Configuration variables:
|
||||
- **active_power_gain_a** (*Optional*, int): Set the active power amplification of the A channel. Defaults to ``0x400000``.
|
||||
- **active_power_gain_b** (*Optional*, int): Set the active power amplification of the B channel. Defaults to ``0x400000``.
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
|
||||
- **use_accumulated_energy_registers** (*Optional*, boolean): Use ADE7935 accumulated energy registers instead of instant power registers. These registers store the accumulated energy since the last read and should provide better accuracy for power calculation. Defaults to ``false``.
|
||||
|
||||
Over SPI
|
||||
--------
|
||||
@ -253,6 +254,7 @@ Configuration variables:
|
||||
- **active_power_gain_a** (*Optional*, int): Set the active power amplification of the A channel. Defaults to ``0x400000``.
|
||||
- **active_power_gain_b** (*Optional*, int): Set the active power amplification of the B channel. Defaults to ``0x400000``.
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
|
||||
- **use_accumulated_energy_registers** (*Optional*, boolean): Use ADE7935 accumulated energy registers instead of instant power registers. These registers store the accumulated energy since the last read and should provide better accuracy for power calculation. Defaults to ``false``.
|
||||
|
||||
Use with Shelly 2.5
|
||||
-------------------
|
||||
|
116
components/sensor/ads1118.rst
Normal file
@ -0,0 +1,116 @@
|
||||
ADS1118 4-Channel 16-Bit A/D Converter with Internal Temperature Sensor
|
||||
=======================================================================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up ADS1118 multiplexed analog voltage sensors.
|
||||
:image: ads1118.jpg
|
||||
:keywords: ADS1118
|
||||
|
||||
.. _ads1118-component:
|
||||
|
||||
Component/Hub
|
||||
-------------
|
||||
|
||||
ADS1118 4-Channel 16-Bit A/D Converter (`datasheet <https://www.ti.com/lit/ds/symlink/ads1118.pdf>`__)
|
||||
The ``ads1118`` domain creates a global hub so that you can later create
|
||||
individual sensors using the :ref:`ADS1118 Sensor Platform <ads1118-sensor>`.
|
||||
It uses the :ref:`SPI Bus <spi>` for communication.
|
||||
|
||||
.. figure:: images/ads1118-full.jpg
|
||||
:align: center
|
||||
:width: 60.0%
|
||||
|
||||
ADS1118 16-Bit ADC.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
ads1118:
|
||||
cs_pin: GPIO15
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **cs_pin** (**Required**, int): The SPI cable select pin to use.
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID for this ADS1118 Hub. Use this if you
|
||||
want to use multiple ADS1118 hubs at once.
|
||||
|
||||
.. _ads1118-sensor:
|
||||
|
||||
Sensor
|
||||
------
|
||||
|
||||
The ``ads1118`` sensor allows you to use your ADS1118 delta-sigma ADC
|
||||
sensors (`datasheet <https://www.ti.com/lit/ds/symlink/ads1118.pdf>`__) with ESPHome.
|
||||
First, setup an :ref:`ADS1118 Hub <ads1118-component>` for your ADS1118 sensor and then use this
|
||||
sensor platform to create individual sensors that will report the voltage.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
ads1118:
|
||||
cs_pin: GPIO15
|
||||
sensor:
|
||||
- platform: ads1118
|
||||
type: 'adc'
|
||||
id: 'batt_volt'
|
||||
name: "Battery Voltage"
|
||||
multiplexer: 'A3_GND'
|
||||
gain: 4.096
|
||||
update_interval: .01s
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **type** (*Optional*): ``adc``(default) or ``temperature``
|
||||
- **ads1118_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the
|
||||
:ref:`ADS1118 Hub <ads1118-component>` you want to use this sensor.
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
ADC Options:
|
||||
^^^^^^^^^^^^
|
||||
|
||||
- **multiplexer** (**Required**): The multiplexer channel of this sensor. Effectively means between which pins you want to measure voltage.
|
||||
- **gain** (**Required**, float): The gain of this sensor.
|
||||
|
||||
Temperature Options:
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
None
|
||||
|
||||
Multiplexer and Gain
|
||||
--------------------
|
||||
|
||||
.. note::
|
||||
|
||||
As per (`datasheet <https://www.ti.com/lit/ds/symlink/ads1118.pdf>`__) Section 7.3 Note 2:
|
||||
"No more than VDD + 0.3V must be applied to the analog inputs of the device."
|
||||
This means if you power the device with 3.3V, take care not to supply the 4 AIN pins with more than 3.6V.
|
||||
|
||||
The ADS1118 has a multiplexer that can be configured to measure voltage between several pin configurations. These are:
|
||||
|
||||
- ``A0_A1`` (between Pin 0 and Pin 1)
|
||||
- ``A0_A3`` (between Pin 0 and Pin 3)
|
||||
- ``A1_A3`` (between Pin 1 and Pin 3)
|
||||
- ``A2_A3`` (between Pin 2 and Pin 3)
|
||||
- ``A0_GND`` (between Pin 0 and GND)
|
||||
- ``A1_GND`` (between Pin 1 and GND)
|
||||
- ``A2_GND`` (between Pin 2 and GND)
|
||||
- ``A3_GND`` (between Pin 3 and GND)
|
||||
|
||||
Additionally, the ADS1118 has a Programmable Gain Amplifier (PGA) that can help you measure voltages in different ranges, these are:
|
||||
|
||||
- ``6.144`` (measures up to 6.144V)
|
||||
- ``4.096`` (measures up to 4.096V)
|
||||
- ``2.048`` (measures up to 2.048V)
|
||||
- ``1.024`` (measures up to 1.024V)
|
||||
- ``0.512`` (measures up to 0.512V)
|
||||
- ``0.256`` (measures up to 0.256V)
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ref:`sensor-filters`
|
||||
- :doc:`adc`
|
||||
- :doc:`ads1115`
|
||||
- :apiref:`ads1118/ads1118.h`
|
||||
- :ghedit:`Edit`
|
121
components/sensor/ags10.rst
Normal file
@ -0,0 +1,121 @@
|
||||
AGS10 Volatile Organic Compound (VOC) Sensor
|
||||
============================================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up AGS10 VOC sensors with ESPHome
|
||||
:image: ags10.jpg
|
||||
:keywords: AGS10
|
||||
|
||||
The ``ags10`` sensor platform VOC sensor allows you to use your ASAIR AGS10
|
||||
(`datasheet <http://www.aosong.com/userfiles/files/Datasheet%20AGS10.pdf>`__,
|
||||
`ASAIR`_ ) sensors with
|
||||
ESPHome. The :ref:`I²C Bus <i2c>` is
|
||||
required to be set up in your configuration for this sensor to work.
|
||||
|
||||
.. note::
|
||||
|
||||
The sensor supports up to 15kHz operation, so you should specify up to ``frequency: 15kHz`` in your ``i2c`` configuration.
|
||||
|
||||
|
||||
.. _ASAIR: http://www.aosong.com/en/products-86.html
|
||||
|
||||
.. figure:: images/ags10.jpg
|
||||
:align: center
|
||||
:width: 30.0%
|
||||
|
||||
AGS10 VOC Sensor
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
sensor:
|
||||
- platform: ags10
|
||||
tvoc:
|
||||
name: TVOC
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **tvoc** (**Required**): The information for the total Volatile Organic Compounds sensor.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **address** (*Optional*, int): Manually specify the I²C address of
|
||||
the sensor. Defaults to ``0x1A``.
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
|
||||
sensor. Defaults to ``60s``.
|
||||
- **version** (*Optional*): The firmware version of the sensor.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **resistance** (*Optional*): The initial value of the sensor resistance.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
Actions:
|
||||
--------
|
||||
|
||||
.. _sensor-AGS10SetZeroPointAction:
|
||||
|
||||
``ags10.set_zero_point`` Action
|
||||
-------------------------------
|
||||
|
||||
Zero-point of AGS10 has been calibrated before leaving factory. User can re-calibrate the zero-point as
|
||||
needed.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
sensor:
|
||||
- platform: ags10
|
||||
id: ags10_1_id
|
||||
# ...
|
||||
|
||||
# in some trigger
|
||||
on_...:
|
||||
- ags10.set_zero_point:
|
||||
id: ags10_1_id
|
||||
mode: CURRENT_VALUE
|
||||
|
||||
Configuration option:
|
||||
|
||||
- **id** (**Required**, :ref:`config-id`): The ID of the AGS10 sensor.
|
||||
- **mode** (**Required**, enum): One of supported modes:
|
||||
|
||||
- ``FACTORY_DEFAULT`` - reset to the factory zero-point
|
||||
- ``CURRENT_VALUE`` - set zero-point calibration with current resistance
|
||||
- ``CUSTOM_VALUE`` - set zero-point calibration with resistance pointed with ``value`` option
|
||||
|
||||
- **value** (**Optional**, int): nominated resistance value to set (unit: 0.1 kΩ).
|
||||
|
||||
|
||||
.. _sensor-AGS10NewI2cAddressAction:
|
||||
|
||||
``ags10.new_i2c_address`` Action
|
||||
--------------------------------
|
||||
|
||||
I2C address of AGS10 can be modified, and it is possible to use multiple AGS10 sensors on one bus.
|
||||
After sending the command for address changing, the new address is saved and takes effect immediately even
|
||||
after power-off.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
sensor:
|
||||
- platform: ags10
|
||||
id: ags10_1_id
|
||||
# ...
|
||||
|
||||
# in some trigger
|
||||
on_...:
|
||||
- ags10.new_i2c_address:
|
||||
id: ags10_1_id
|
||||
address: 0x1E
|
||||
|
||||
Configuration options:
|
||||
|
||||
- **id** (**Required**, :ref:`config-id`): The ID of the AGS10 sensor.
|
||||
- **address** (**Required**, int): New I2C address.
|
||||
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ref:`sensor-filters`
|
||||
- :apiref:`ags10/ags10.h`
|
||||
- :ghedit:`Edit`
|
54
components/sensor/am2315c.rst
Normal file
@ -0,0 +1,54 @@
|
||||
AM2315C Temperature+Humidity Sensor
|
||||
===================================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up AM2315C temperature and humidity sensors
|
||||
:image: am2315c.jpg
|
||||
:keywords: am2315c
|
||||
|
||||
The ``am2315c`` Temperature+Humidity sensor allows you to use your AM2315C
|
||||
(`datasheet <https://cdn-shop.adafruit.com/product-files/5182/5182_AM2315C.pdf>`__) I²C-based sensor with ESPHome.
|
||||
|
||||
.. figure:: images/am2315c-full.jpg
|
||||
:align: center
|
||||
:width: 50.0%
|
||||
|
||||
AM2315C Temperature & Humidity Sensor.
|
||||
|
||||
.. figure:: images/temperature-humidity.png
|
||||
:align: center
|
||||
:width: 80.0%
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
sensor:
|
||||
- platform: am2315c
|
||||
temperature:
|
||||
name: "Living Room Temperature"
|
||||
humidity:
|
||||
name: "Living Room Humidity"
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **temperature** (**Optional**): The temperature sensor.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **humidity** (**Optional**): The humidity sensor.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
|
||||
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ref:`sensor-filters`
|
||||
- :doc:`absolute_humidity`
|
||||
- :doc:`dht`
|
||||
- :doc:`dht12`
|
||||
- :doc:`hdc1080`
|
||||
- :doc:`htu21d`
|
||||
- :apiref:`am2315c/am2315c.h`
|
||||
- :ghedit:`Edit`
|
@ -8,7 +8,7 @@ ATM90E32 Power Sensor
|
||||
|
||||
The ``atm90e32`` sensor platform allows you to use your ATM90E32 voltage/current and power sensors
|
||||
(`datasheet <http://ww1.microchip.com/downloads/en/devicedoc/Atmel-46003-SE-M90E32AS-Datasheet.pdf>`__) with
|
||||
ESPHome. This sensor is commonly found in CircuitSetup 2 and 6 channel energy meters.
|
||||
ESPHome. This sensor is commonly found in CircuitSetup 2 and 6 channel energy meters and the `Gelidus Research <https://www.gelidus.ca/>`__ 2 channel power meter.
|
||||
|
||||
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.
|
||||
@ -50,6 +50,12 @@ Configuration variables:
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **power_factor** (*Optional*): Use the power factor value on this phase. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **phase_angle** (*Optional*): Use the phase angle value on this phase in degrees. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **peak_current** (*Optional*): Use the peak current value on this phase in amperes. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **harmonic_power** (*Optional*): Use the harmonic power value on this phase. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **gain_voltage** (*Optional*, int): Voltage gain to scale the low voltage AC power pack to household mains feed.
|
||||
Defaults to ``7305``.
|
||||
- **gain_ct** (*Optional*, int): CT clamp calibration for this phase.
|
||||
@ -63,6 +69,7 @@ Configuration variables:
|
||||
- **phase_c** (*Optional*): The configuration options for the 3rd phase. Same options as 1st phase.
|
||||
- **frequency** (*Optional*): Use the frequenycy value calculated by the meter. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **peak_current_signed** (*Optional*, boolean): Control the peak current output as signed or absolute. Defaults to ``false``.
|
||||
- **chip_temperature** (*Optional*): Use the chip temperature value. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **gain_pga** (*Optional*, string): The gain for the CT clamp, ``2X`` for 100A, ``4X`` for 100A - 200A. One of ``1X``, ``2X``, ``4X``.
|
||||
@ -127,7 +134,7 @@ repeated for each one.
|
||||
|
||||
Here are common current calibration values for the **Split Single Phase Energy Meter** when **gain_pga** is set to ``4X``:
|
||||
- 200A/100mA SCT-024: 12597
|
||||
|
||||
|
||||
Here are common current calibration values for the **Split Single Phase Energy Meter** when **gain_pga** is set to ``2X``:
|
||||
- 20A/25mA SCT-006: 10170
|
||||
- 100A/50mA SCT-013-000: 25498
|
||||
@ -191,10 +198,9 @@ same polarity; getting this backwards will be just like having it on the wrong p
|
||||
Note that the current measurement is the RMS value so is always positive. They only way to determine directon is to
|
||||
look at the power factor. If there are only largly resistive loads and no power sources, (PF almost 1), it is simpler
|
||||
to just create a template sensor that computes power from Irms*Vrms and ignore all these details. On the other
|
||||
hand, one might be surprised how reactive some loads are and the CirciuitSetup designs are able to
|
||||
hand, one might be surprised how reactive some loads are and the CirciuitSetup designs are able to
|
||||
handle these situations well.
|
||||
|
||||
|
||||
Additional Examples
|
||||
-------------------
|
||||
|
||||
@ -457,6 +463,60 @@ Additional Examples
|
||||
- multiply: 0.001
|
||||
unit_of_measurement: kWh
|
||||
|
||||
Harmonic Power
|
||||
--------------
|
||||
|
||||
Harmonic power in AC systems refers to deviations from the ideal sinusoidal waveform, caused by multiples of the
|
||||
fundamental frequency. It results from non-linear loads and can lead to issues like voltage distortion, equipment
|
||||
overheating, and misoperation of protective devices. The ATM90E32 can output advanced harmonic power measurements
|
||||
providing important analysis data for monitoring power anomalies on the bus.
|
||||
|
||||
**Harmonic Power Example:**
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
sensor:
|
||||
- platform: atm90e32
|
||||
phase_a:
|
||||
harmonic_power:
|
||||
name: ${disp_name} CT1 Harmonic Power
|
||||
|
||||
Phase Angle
|
||||
-----------
|
||||
|
||||
Phase angle in AC systems represents the angular displacement of a sinusoidal waveform from a reference point.
|
||||
It's a measure of timing difference between voltage and current. Phase angle is crucial for power factor assessment
|
||||
and efficient power transfer. This advanced measurement function is available with an ATM90E32.
|
||||
|
||||
**Phase Angle Example:**
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
sensor:
|
||||
- platform: atm90e32
|
||||
phase_a:
|
||||
phase_angle:
|
||||
name: ${disp_name} L1 Phase Angle
|
||||
|
||||
Peak Current
|
||||
------------
|
||||
|
||||
Peak current in AC systems refers to the maximum value of the alternating current waveform. It signifies the highest
|
||||
magnitude reached during each cycle of the sinusoidal waveform. Peak current is relevant for sizing components and
|
||||
assessing the capacity of electrical equipment in the system. This advanced measurement is avaiable from the ATM90E32.
|
||||
Peak current can be displayed in signed or unsigned format using a bolean parameter which spans all phases.
|
||||
The default is false which is unsigned.
|
||||
|
||||
**Peak Current Example:**
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
sensor:
|
||||
- platform: atm90e32
|
||||
phase_a:
|
||||
peak_current:
|
||||
name: ${disp_name} CT1 Peak Current
|
||||
peak_current_signed: True
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
@ -10,8 +10,8 @@ Component/Hub
|
||||
-------------
|
||||
|
||||
The ``bme680_bsec`` sensor platform allows you to use your BME680
|
||||
(`datasheet <https://cdn-shop.adafruit.com/product-files/3660/BME680.pdf>`__,
|
||||
`Adafruit`_) temperature, pressure and humidity and gas sensors with ESPHome via the Bosch Sensortec Environmental Cluster (BSEC)
|
||||
(`datasheet <https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bme680-ds001.pdf>`__,
|
||||
`Adafruit`_, `Pimoroni`_) temperature, pressure and humidity and gas sensors with ESPHome via the Bosch Sensortec Environmental Cluster (BSEC)
|
||||
software library. The use of Bosch's proprietary algorithms provide an Index for Air Quality (IAQ) measurement derived from the
|
||||
gas resistance sensor's response to specific Volatile Organic Compounds (VOC). The BSEC software also provides estimated values
|
||||
for CO₂ and Breath Volatile Organic Compounds (b-VOC) using a correlation between VOC and CO₂ in a human's exhaled breath.
|
||||
@ -34,6 +34,8 @@ The :ref:`I²C <i2c>` is required to be set up in your configuration for this se
|
||||
|
||||
.. _Adafruit: https://www.adafruit.com/product/3660
|
||||
|
||||
.. _Pimoroni: https://shop.pimoroni.com/products/bme680-breakout
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Minimal example configuration with common sensors
|
||||
@ -101,6 +103,9 @@ Configuration variables:
|
||||
- **iaq_mode** (*Optional*, string): IAQ calculation mode. Default is ``static`` for static applications (e.g. fixed indoor devices).
|
||||
Can be ``mobile`` for mobile applications (e.g. carry-on devices).
|
||||
|
||||
- **supply_voltage** (*Optional*, string): Supply voltage of the sensor. Default is ``3.3V``.
|
||||
Can be set to ``1.8V`` if your sensor is 1.8V-powered (e.g. the Pimoroni PIM357 BME680 Breakout module).
|
||||
|
||||
- **sample_rate** (*Optional*, string): Sample rate. Default is ``lp`` for low power consumption, sampling every 3 seconds.
|
||||
Can be ``ulp`` for ultra-low power, sampling every 5 minutes.
|
||||
This controls the sampling rate for gas-dependent sensors and will govern the interval at which the sensor heater is operated.
|
||||
@ -231,6 +236,14 @@ For each sensor, all other options from :ref:`Sensor <config-sensor>` and :ref:`
|
||||
# Default: static
|
||||
iaq_mode: static
|
||||
|
||||
# Supply voltage
|
||||
# --------------------
|
||||
# Available options:
|
||||
# - 3.3V
|
||||
# - 1.8V
|
||||
# Default: 3.3V
|
||||
supply_voltage: 3.3V
|
||||
|
||||
# Sample rate
|
||||
# -----------
|
||||
# Available options:
|
||||
@ -423,7 +436,7 @@ The selected b-VOC gasses are as follows:
|
||||
IAQ Accuracy and Calibration
|
||||
----------------------------
|
||||
|
||||
The BSEC software automatically calibrates automatically in the background to provide consistent IAQ performance. The
|
||||
The BSEC software automatically calibrates in the background to provide consistent IAQ performance. The
|
||||
calibration process considers the recent measurement history so that a value of 50 corresponds to a “typical good”
|
||||
level and a value of 200 to a “typical polluted” level. The IAQ Accuracy sensor will give one of the following values:
|
||||
|
||||
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
@ -23,6 +23,9 @@ will probably want some sort of averaging or throttle filter on the sensors.
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
substitutions:
|
||||
update_interval: 60s
|
||||
|
||||
# Disable logging over USB
|
||||
logger:
|
||||
baud_rate: 0
|
||||
@ -36,15 +39,27 @@ will probably want some sort of averaging or throttle filter on the sensors.
|
||||
current:
|
||||
name: "Sonoff Pow R2 Current"
|
||||
filters:
|
||||
- throttle_average: 60s
|
||||
- throttle_average: ${update_interval}
|
||||
voltage:
|
||||
name: "Sonoff Pow R2 Voltage"
|
||||
filters:
|
||||
- throttle: 60s
|
||||
- throttle_average: ${update_interval}
|
||||
power:
|
||||
name: "Sonoff Pow R2 Power"
|
||||
filters:
|
||||
- throttle_average: ${update_interval}
|
||||
energy:
|
||||
name: "Sonoff Pow R2 Energy"
|
||||
filters:
|
||||
- throttle: ${update_interval}
|
||||
apparent_power:
|
||||
name: "Sonoff Pow R2 Apparent Power"
|
||||
filters:
|
||||
- throttle_average: ${update_interval}
|
||||
power_factor:
|
||||
name: "Sonoff Pow R2 Power Factor"
|
||||
filters:
|
||||
- throttle_average: ${update_interval}
|
||||
.. note::
|
||||
|
||||
The configuration above should work for Sonoff POWs (R2).
|
||||
@ -60,6 +75,10 @@ Configuration variables:
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **energy** (*Optional*): Use the total energy value of the sensor in Wh.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **apparent_power** (*Optional*): Use the apparent power value of the sensor in volt amps.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **power_factor** (*Optional*): Use the power factor value of the sensor.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`UART Component <uart>` if you want
|
||||
to use multiple UART buses.
|
||||
|
||||
|
90
components/sensor/haier.rst
Normal file
@ -0,0 +1,90 @@
|
||||
Haier Climate Sensors
|
||||
=====================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up additional sensors for Haier climate devices.
|
||||
:image: haier.svg
|
||||
|
||||
Additional sensors for Haier Climate device. **These sensors are supported only by the hOn protocol**.
|
||||
|
||||
|
||||
.. figure:: images/haier-climate.jpg
|
||||
:align: center
|
||||
:width: 50.0%
|
||||
|
||||
.. 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
|
||||
|
||||
sensor:
|
||||
- platform: haier
|
||||
haier_id: haier_ac
|
||||
outdoor_temperature:
|
||||
name: Haier outdoor temperature
|
||||
humidity:
|
||||
name: Haier Indoor Humidity
|
||||
compressor_current:
|
||||
name: Haier Compressor Current
|
||||
compressor_frequency:
|
||||
name: Haier Compressor Frequency
|
||||
expansion_valve_open_degree:
|
||||
name: Haier Expansion Valve Open Degree
|
||||
indoor_coil_temperature:
|
||||
name: Haier Indoor Coil Temperature
|
||||
outdoor_coil_temperature:
|
||||
name: Haier Outdoor Coil Temperature
|
||||
outdoor_defrost_temperature:
|
||||
name: Haier Outdoor Defrost Temperature
|
||||
outdoor_in_air_temperature:
|
||||
name: Haier Outdoor In Air Temperature
|
||||
outdoor_out_air_temperature:
|
||||
name: Haier Outdoor Out Air Temperature
|
||||
power:
|
||||
name: Haier Power
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **haier_id** (**Required**, :ref:`config-id`): The id of haier climate component
|
||||
- **outdoor_temperature** (*Optional*): Temperature sensor for outdoor temperature.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **humidity** (*Optional*): Sensor for indoor humidity. Make sure that your climate model supports this type of sensor.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **compressor_current** (*Optional*): Sensor for climate compressor current. Make sure that your climate model supports this type of sensor.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **compressor_frequency** (*Optional*): Sensor for climate compressor frequency. Make sure that your climate model supports this type of sensor.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **expansion_valve_open_degree** (*Optional*): Sensor for climate's expansion valve open degree. Make sure that your climate model supports this type of sensor.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **indoor_coil_temperature** (*Optional*): Temperature sensor for indoor coil temperature. Make sure that your climate model supports this type of sensor.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **outdoor_coil_temperature** (*Optional*): Temperature sensor for outdoor coil temperature. Make sure that your climate model supports this type of sensor.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **outdoor_defrost_temperature** (*Optional*): Temperature sensor for outdoor defrost temperature. Make sure that your climate model supports this type of sensor.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **outdoor_in_air_temperature** (*Optional*): Temperature sensor incoming air temperature.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **outdoor_out_air_temperature** (*Optional*): Temperature sensor for outgoing air temperature.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **power** (*Optional*): Sensor for climate power consumption. Make sure that your climate model supports this type of sensor.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :doc:`Haier Climate </components/climate/haier>`
|
||||
- :ref:`sensor-filters`
|
||||
- :ghedit:`Edit`
|
62
components/sensor/htu31d.rst
Normal file
@ -0,0 +1,62 @@
|
||||
HTU31D Temperature & Humidity Sensor
|
||||
=====================================================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up HTU31D temperature and humidity sensors.
|
||||
:image: htu31d.jpg
|
||||
:keywords: HTU31D
|
||||
|
||||
The HTU31D Temperature & Humidity component allows you to use HTU31D sensors with
|
||||
ESPHome. The :ref:`I²C Bus <i2c>` is required to be set up in your configuration for this sensor to work.
|
||||
|
||||
|
||||
Example sensors:
|
||||
|
||||
- (`Adafruit <https://www.adafruit.com/product/4832>`__)
|
||||
|
||||
.. figure:: images/htu31d.jpg
|
||||
:align: center
|
||||
:width: 50.0%
|
||||
|
||||
HTU31D Temperature & Humidity Sensor. Image by `Adafruit`_.
|
||||
|
||||
.. _Adafruit: https://www.adafruit.com/product/4832
|
||||
|
||||
.. figure:: images/temperature-humidity.png
|
||||
:align: center
|
||||
:width: 80.0%
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
sensor:
|
||||
- platform: htu31d
|
||||
temperature:
|
||||
name: "Temperature"
|
||||
humidity:
|
||||
name: "Humidity"
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **temperature** (*Optional*): The information for the temperature sensor.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **humidity** (*Optional*): The information for the humidity sensor.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ref:`sensor-filters`
|
||||
- :doc:`absolute_humidity`
|
||||
- :doc:`htu21d`
|
||||
- :doc:`dht`
|
||||
- :doc:`dht12`
|
||||
- :doc:`hdc1080`
|
||||
- :doc:`sht3xd`
|
||||
- :apiref:`htu31d/htu31d.h`
|
||||
- `i2cdevlib <https://github.com/jrowberg/i2cdevlib>`__ by `Jeff Rowberg <https://github.com/jrowberg>`__
|
||||
- :ghedit:`Edit`
|
@ -68,6 +68,7 @@ Device FAQ: `<https://rainsensors.com/support/rg-9-rg-15-faq/>`__
|
||||
sensor:
|
||||
- platform: hydreon_rgxx
|
||||
model: "RG_15"
|
||||
resolution: high
|
||||
update_interval: 60s
|
||||
acc:
|
||||
name: "rain"
|
||||
@ -101,6 +102,9 @@ Configuration variables:
|
||||
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **resolution** (*Optional*, string): Specify rain sensor resolution. Must be either ``low`` or ``high``. Default resolution is ``high``.
|
||||
Only applies to RG-15.
|
||||
|
||||
- **acc** (*Optional*): Amount of rain since last message (see ``update_interval``), in ``mm``. Only on RG-15.
|
||||
|
||||
- **name** (**Required**, string): The name for the sensor.
|
||||
|
BIN
components/sensor/images/ads1118-full.jpg
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
components/sensor/images/ags10.jpg
Normal file
After Width: | Height: | Size: 52 KiB |
BIN
components/sensor/images/am2315c-full.jpg
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
components/sensor/images/haier-climate.jpg
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
components/sensor/images/htu31d.jpg
Normal file
After Width: | Height: | Size: 277 KiB |
BIN
components/sensor/images/kamstrup_kmp.jpg
Normal file
After Width: | Height: | Size: 46 KiB |
88
components/sensor/images/kamstrup_kmp_holder.svg
Normal file
@ -0,0 +1,88 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
viewBox="0 0 125.72441 125.72436"
|
||||
width="125.72441"
|
||||
height="125.72436"
|
||||
version="1.1"
|
||||
id="svg7268"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<desc
|
||||
id="desc7230">plate.dxf - scale = 1.0, origin = (0.0, 0.0), method = manual</desc>
|
||||
<defs
|
||||
id="defs7244">
|
||||
<marker
|
||||
id="DistanceX"
|
||||
orient="auto"
|
||||
refX="0"
|
||||
refY="0"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
d="M 3,-3 -3,3 M 0,-5 V 5"
|
||||
style="stroke:#000000;stroke-width:0.5"
|
||||
id="path7232" />
|
||||
</marker>
|
||||
<pattern
|
||||
id="Hatch"
|
||||
patternUnits="userSpaceOnUse"
|
||||
width="8"
|
||||
height="8"
|
||||
x="0"
|
||||
y="0">
|
||||
<path
|
||||
d="M8 4 l-4,4"
|
||||
stroke="#000000"
|
||||
stroke-width="0.25"
|
||||
linecap="square"
|
||||
id="path7235" />
|
||||
<path
|
||||
d="M6 2 l-4,4"
|
||||
stroke="#000000"
|
||||
stroke-width="0.25"
|
||||
linecap="square"
|
||||
id="path7237" />
|
||||
<path
|
||||
d="M4 0 l-4,4"
|
||||
stroke="#000000"
|
||||
stroke-width="0.25"
|
||||
linecap="square"
|
||||
id="path7239" />
|
||||
</pattern>
|
||||
<symbol
|
||||
id="*MODEL_SPACE" />
|
||||
<symbol
|
||||
id="*PAPER_SPACE" />
|
||||
</defs>
|
||||
<g
|
||||
id="g7266"
|
||||
transform="translate(62.862205,-1059.6575)">
|
||||
<path
|
||||
d="m 62.362205,1122.5197 a 62.362205,62.362205 0 1 0 -124.72441,0 62.362205,62.362205 0 1 0 124.72441,0 z"
|
||||
style="fill:none;stroke:#000000"
|
||||
id="path7246" />
|
||||
<path
|
||||
d="m -18.059243,1151.9175 a 11.338583,11.338583 0 1 0 -22.677165,0 11.338583,11.338583 0 1 0 22.677165,0 z"
|
||||
style="fill:#800000;stroke:#000000"
|
||||
id="path7250" />
|
||||
<path
|
||||
d="m 40.736408,1151.9175 a 11.338583,11.338583 0 1 0 -22.677165,0 11.338583,11.338583 0 1 0 22.677165,0 z"
|
||||
style="fill:#800000;stroke:#000000"
|
||||
id="path7252" />
|
||||
<path
|
||||
d="m 40.736408,1093.1219 a 11.338583,11.338583 0 1 0 -22.677165,0 11.338583,11.338583 0 1 0 22.677165,0 z"
|
||||
style="fill:#800000;stroke:#000000"
|
||||
id="path7254" />
|
||||
<path
|
||||
d="m -18.059243,1093.1219 a 11.338583,11.338583 0 1 0 -22.677165,0 11.338583,11.338583 0 1 0 22.677165,0 z"
|
||||
style="fill:#800000;stroke:#000000"
|
||||
id="path7256" />
|
||||
<path
|
||||
d="m -3.779528,1122.5197 a 9.448819,9.448819 0 1 0 -18.897637,0 9.448819,9.448819 0 1 0 18.897637,0 z"
|
||||
style="fill:#008000;stroke:#000000"
|
||||
id="path7262" />
|
||||
<path
|
||||
d="m 22.677165,1122.5197 a 9.448819,9.448819 0 1 0 -18.897637,0 9.448819,9.448819 0 1 0 18.897637,0 z"
|
||||
style="fill:#008000;stroke:#000000"
|
||||
id="path7264" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.6 KiB |
1968
components/sensor/images/kamstrup_kmp_sch.svg
Normal file
After Width: | Height: | Size: 65 KiB |
BIN
components/sensor/images/ms8607-full.jpg
Normal file
After Width: | Height: | Size: 150 KiB |
BIN
components/sensor/images/veml7700-full.jpg
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
components/sensor/images/veml7700-spectral.png
Normal file
After Width: | Height: | Size: 76 KiB |
BIN
components/sensor/images/veml7700-ui.png
Normal file
After Width: | Height: | Size: 24 KiB |
@ -7,10 +7,8 @@ INA226 DC current and power sensor
|
||||
:keywords: ina226
|
||||
|
||||
The ``ina226`` sensor platform allows you to use your INA226 DC Current and Power Sensor
|
||||
(`datasheet <http://www.ti.com/lit/ds/symlink/ina226.pdf>`__,
|
||||
`eBay`_) sensors with
|
||||
ESPHome. The :ref:`I²C Bus <i2c>` is
|
||||
required to be set up in your configuration for this sensor to work.
|
||||
(`datasheet <http://www.ti.com/lit/ds/symlink/ina226.pdf>`__, `eBay`_) sensors with ESPHome.
|
||||
The :ref:`I²C Bus <i2c>` is required to be set up in your configuration for this sensor to work.
|
||||
|
||||
|
||||
.. figure:: images/ina226-full.jpg
|
||||
@ -28,6 +26,11 @@ required to be set up in your configuration for this sensor to work.
|
||||
- platform: ina226
|
||||
address: 0x40
|
||||
shunt_resistance: 0.1 ohm
|
||||
max_current: 3.2A
|
||||
# adc time used for both, Bus Voltage and Shunt Voltage
|
||||
adc_time: 140us
|
||||
adc_averaging: 128
|
||||
update_interval: 60s
|
||||
current:
|
||||
name: "INA226 Current"
|
||||
power:
|
||||
@ -36,28 +39,49 @@ required to be set up in your configuration for this sensor to work.
|
||||
name: "INA226 Bus Voltage"
|
||||
shunt_voltage:
|
||||
name: "INA226 Shunt Voltage"
|
||||
max_current: 3.2A
|
||||
update_interval: 60s
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
sensor:
|
||||
- platform: ina226
|
||||
address: 0x40
|
||||
adc_time:
|
||||
voltage: 140us
|
||||
current: 332us
|
||||
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **address** (*Optional*, int): Manually specify the I²C address of the sensor. Defaults to ``0x40``.
|
||||
- **address** (*Optional*, integer): Manually specify the I²C address of the sensor. Defaults to ``0x40``.
|
||||
- **shunt_resistance** (*Optional*, float): The value of the shunt resistor on the board for current calculation.
|
||||
Defaults to ``0.1 ohm``.
|
||||
- **max_current** (*Optional*, float): The maximum current you are expecting. ESPHome will use this to
|
||||
configure the sensor optimally. Defaults to ``3.2A``.
|
||||
- **current** (*Optional*): Use the current value of the sensor in amperes. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **power** (*Optional*): Use the power value of the sensor in watts. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **bus_voltage** (*Optional*): Use the bus voltage (voltage of the high side contact) value of the sensor in V.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **shunt_voltage** (*Optional*): Use the shunt voltage (voltage across the shunt resistor) value of the sensor in V.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **adc_time** (*Optional*, :ref:`config-time` or both of the following nested options): The time in microseconds to perform a single ADC conversion.
|
||||
Defaults to ``1100us``. Valid values are ``140us``, ``204us``, ``332us``, ``588us``, ``1100us``, ``2116us``,
|
||||
``4156us``, ``8244us``.
|
||||
|
||||
- **voltage** (**Required**, :ref:`config-time`) ADC conversion time for Bus Voltage
|
||||
- **current** (**Required**, :ref:`config-time`) ADC conversion time for Shunt Voltage (Current measurement)
|
||||
- **adc_averaging** (*Optional*, integer): Selects ADC sample averaging count. Defaults to ``4``. Valid values are
|
||||
``1``, ``4``, ``16``, ``64``, ``128``, ``256``, ``512``, ``1024``.
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
|
||||
|
||||
|
||||
Sensors
|
||||
-------
|
||||
The component offers four sensors. You can configure all or any subset of them. Each configured sensor
|
||||
is reported separately on each update_interval. The ``name`` option is required for each sensor configured.
|
||||
All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **current** (*Optional*): Calculated current output, Amperes.
|
||||
- **power** (*Optional*): Calculated power output, Watts.
|
||||
- **bus_voltage** (*Optional*): Bus voltage output (voltage of the high side contact), Volts.
|
||||
- **shunt_voltage** (*Optional*): Shunt voltage (voltage across the shunt resistor) value of the sensor, Volts.
|
||||
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
|
120
components/sensor/kamstrup_kmp.rst
Normal file
@ -0,0 +1,120 @@
|
||||
Kamstrup Meter Protocol [KMP]
|
||||
=============================
|
||||
|
||||
.. figure:: images/kamstrup_kmp.jpg
|
||||
:scale: 75%
|
||||
|
||||
Kamstrup MULTICAL 403
|
||||
|
||||
The Kamstrup Meter Protocol (KMP) is used by certain Kamstrup utility
|
||||
meters and can be used to read measurements from the meter.
|
||||
|
||||
For example, the Kamstrup MULTICAL 403 is a meter used by some energy
|
||||
companies in The Netherlands to measure delivered heat by a district heating
|
||||
network (in Dutch: stadsverwarming).
|
||||
|
||||
Heat is transported using warm water to the consumer. The meter measures
|
||||
the temperature of the water delivered and returned as well as the water
|
||||
flow. This is used to calculate the consumed energy, typically in giga
|
||||
joule (GJ).
|
||||
|
||||
The Kamstrup Multical has an optical interface just above the display
|
||||
that uses the Kamstrup Meter Protocol for communication.
|
||||
This component can be used to request measurements from the meter using
|
||||
the optical interface.
|
||||
|
||||
A :ref:`UART bus <uart>` is required to communicate with the meter. The baudrate
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
sensor:
|
||||
- platform: kamstrup_kmp
|
||||
heat_energy:
|
||||
name: Heat Energy
|
||||
power:
|
||||
name: Heat Power
|
||||
temp_diff:
|
||||
name: Heat Temperature Difference
|
||||
flow:
|
||||
name: Heat Flow
|
||||
custom:
|
||||
- name: Custom Heat Energy
|
||||
command: 0x003C
|
||||
- name: Custom Heat Power
|
||||
command: 0x0050
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **heat_energy** (*Optional*): Heat energy delivered.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **power** (*Optional*): Current power delivered.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **temp1** (*Optional*): Temperatue of sensor 1.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **temp2** (*Optional*): Temperatue of sensor 2.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **temp_diff** (*Optional*): Temperature difference between the 2 sensors.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **flow** (*Optional*): Water flow.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **volume** (*Optional*): Volume.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **custom** (*Optional*): List of custom sensors.
|
||||
|
||||
- **command** (**Required**, 2-byte hex): The KMP command code (e.g. 0x003C).
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **update_interval** (*Optional*): The polling interval. Defaults to ``60s``.
|
||||
|
||||
.. note::
|
||||
|
||||
- The uart baudrate has to be set to 1200 baud and the stop bits to 2.
|
||||
It is recommended to use pins associated with a hardware UART.
|
||||
For more information regarding uart configuration, refer to :ref:`UART <uart>`.
|
||||
- Only the provided sensors will appear as sensor, and only those are read from
|
||||
the meter.
|
||||
- Custom sensors can be used to receive measurements from the Kampstrup meter,
|
||||
other than the ones provided natively with this component. To request extra
|
||||
measurements, add one or multiple sensors to the ``custom`` setting and provide the
|
||||
KMP command. This command is a 2 byte integer value. For example ``0x003C`` is
|
||||
the command code for heat energy. In the example above, two custom sensors were
|
||||
added. These request the Heat Energy and Heat Power respectively. This will be the
|
||||
same as the native ``heat_energy`` and ``power`` sensors.
|
||||
- Keep in mind that the meter is battery operated. The more sensors read and the
|
||||
lower the update interval, the faster the battery will drain.
|
||||
|
||||
Hardware
|
||||
--------
|
||||
|
||||
The Kamstrup meter uses an optical interface, just above the display. The required
|
||||
optical transceiver can be made using the schematic below. Connect the RX and TX
|
||||
lines to the pins configured under the uart section in the config file. In the
|
||||
configuration example above, this would be GPIO pin 13 and 15 respectively.
|
||||
|
||||
.. figure:: images/kamstrup_kmp_sch.svg
|
||||
:scale: 200%
|
||||
|
||||
Optical reader schematic
|
||||
|
||||
To safe energy, the optical interface of the Kamstrup meter is not active by default.
|
||||
To activate the interface, press a button on the device. The interface will now be
|
||||
available for a few minutes. To keep the interface alive, magnets must be placed
|
||||
around the LED / photo diode. The image below shows the arrangement. The green
|
||||
circles are the LED and photo diode, which must be placed exactly on top of the
|
||||
optical interface window of the meter. The red circles indicate 6mm neodymium
|
||||
magnets.
|
||||
|
||||
.. figure:: images/kamstrup_kmp_holder.svg
|
||||
|
||||
Magnet arrangement
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ref:`config-sensor`
|
||||
- `DIY hardware with housing <https://github.com/cfeenstra1024/kamstrup-multical-hardware#readme>`__ by `Chris Feenstra <https://github.com/cfeenstra1024>`__
|
||||
- :ghedit:`Edit`
|
@ -21,10 +21,14 @@ The :ref:`I²C Bus <i2c>` is required to be set up in your configuration for thi
|
||||
|
||||
sensor:
|
||||
- platform: ltr390
|
||||
uv:
|
||||
uv_index:
|
||||
name: "UV Index"
|
||||
uv:
|
||||
name: "UV Sensor Counts"
|
||||
light:
|
||||
name: "Light"
|
||||
ambient_light:
|
||||
name: "Light Sensor Counts"
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
@ -33,8 +37,8 @@ Configuration variables:
|
||||
- **uv** (*Optional*): Sensor counts for the UV sensor (#). All options from :ref:`Sensor <config-sensor>`.
|
||||
- **light** (*Optional*): Lux of ambient light (lx). All options from :ref:`Sensor <config-sensor>`.
|
||||
- **ambient_light** (*Optional*): Sensor counts for the Ambient light sensor (#). All options from :ref:`Sensor <config-sensor>`.
|
||||
- **gain** (*Optional*, string): Adjusts the sensitivity of the sensor. A larger value means higher sensitivity. See table below for details. Default is ``"X3"``.
|
||||
- **resolution** (*Optional*, int): ADC resolution. Higher resolutions require longer sensor integration times. See table below for details. Default is ``18``.
|
||||
- **gain** (*Optional*, string): Adjusts the sensitivity of the sensor. A larger value means higher sensitivity. Default is ``"X18"``, see table below for options.
|
||||
- **resolution** (*Optional*, int): ADC resolution. Higher resolutions require longer sensor integration times. Default is ``20``, see table below for options.
|
||||
- **window_correction_factor** (*Optional*, float): Window correction factor. Use larger values when using under tinted windows. Default is ``1.0``, must be ``>= 1.0``.
|
||||
- **address** (*Optional*, int): Manually specify the I²C address of the sensor. Default is ``0x53``.
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
|
||||
@ -45,7 +49,7 @@ Lux and UVI Formulas
|
||||
|
||||
.. math::
|
||||
|
||||
\text{lux} = \frac{0.6 \times \text{als}}{\text{gain} \times \text{int}} \times \text{wfac}
|
||||
\text{lux} = \frac{0.6 \times \text{als}}{\text{gain} \times \frac{\text{int}}{100} } \times \text{wfac}
|
||||
|
||||
.. math::
|
||||
|
||||
@ -53,11 +57,22 @@ Lux and UVI Formulas
|
||||
|
||||
where:
|
||||
|
||||
- ``als`` and ``uv`` are the sensor values
|
||||
- ``gain`` is the amount of gain, see the table below for details
|
||||
- ``int`` is the integration time in 100s of ms and is tied to the resolution, see the table below for details
|
||||
- ``sensitivity`` has the value ``2300`` and is the sensor's count per UVI
|
||||
- ``wfac`` is the window correction factor
|
||||
- ``als`` and ``uv`` are the sensor values.
|
||||
- ``gain`` is the sensor gain, see the table below for details.
|
||||
- ``int`` is the integration time in ms and is tied to the resolution, see the table below for details.
|
||||
- ``sensitivity`` is the sensor's count per UVI. See note below for details.
|
||||
- ``wfac`` is the window correction factor.
|
||||
|
||||
It is recommended to use the defaults of ``X18`` gain and resolution of 20 bits when UV Index sensing is required since
|
||||
the data sheet only provides accurate conversion formula for this combination. The UVI value is linearly scaled from
|
||||
this reference point when using other combinations of gain and resolution, which may be slightly inaccurate. The scaling
|
||||
formula is:
|
||||
|
||||
.. math::
|
||||
|
||||
\text{sensitivity} = 2300 \times \frac{\text{gain}}{18} \times \frac{\text{int}}{400}
|
||||
|
||||
where :math:`2300` is the sensor count per UVI at the default configuration.
|
||||
|
||||
Gain
|
||||
----
|
||||
@ -66,7 +81,7 @@ Gain
|
||||
:widths: 25 25
|
||||
:header-rows: 1
|
||||
|
||||
* - Gain Parameter
|
||||
* - Configuration value
|
||||
- gain
|
||||
* - X1
|
||||
- 1
|
||||
@ -83,28 +98,28 @@ Gain
|
||||
Resolution
|
||||
----------
|
||||
|
||||
.. list-table:: Resolution
|
||||
.. list-table::
|
||||
:widths: 25 25 10
|
||||
:header-rows: 1
|
||||
|
||||
* - Resolution Parameter (bits)
|
||||
* - Configuration value
|
||||
- Resolution (bits)
|
||||
- Integration Time (ms)
|
||||
- int
|
||||
* - 16
|
||||
- 16
|
||||
- 25
|
||||
- 0.25
|
||||
* - 17
|
||||
- 17
|
||||
- 50
|
||||
- 0.5
|
||||
* - 18
|
||||
- 18
|
||||
- 100
|
||||
- 1
|
||||
* - 19
|
||||
- 19
|
||||
- 200
|
||||
- 2
|
||||
* - 20
|
||||
- 20
|
||||
- 400
|
||||
- 4
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
@ -71,6 +71,8 @@ Configuration variables:
|
||||
Set this value to ``true`` to enable ABC on boot.
|
||||
Doesn't send calibration command if not set (default sensor logic will be used).
|
||||
|
||||
- **warmup_time** (*Optional*, Time): The sensor has a warmup time and before that, it returns bougus readings (eg: 500ppm, 505ppm...). This setting discards readings until the warmup time happened (``NAN`` is returned). The datasheet says preheating takes 1min, but empirical tests have shown it often takes more, so the 75s default should be enough to accomodate for that.
|
||||
|
||||
.. figure:: images/mhz19-pins.jpg
|
||||
:align: center
|
||||
:width: 80.0%
|
||||
|
72
components/sensor/ms8607.rst
Normal file
@ -0,0 +1,72 @@
|
||||
MS8607 Temperature+Pressure+Humidity Sensor
|
||||
===========================================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up MS8607 temperature, humidity, and pressure sensors.
|
||||
:image: ms8607.jpg
|
||||
:keywords: MS8607
|
||||
|
||||
The ``ms8607`` sensor platform allows you to use your MS8607 (`datasheet`_, `Adafruit`_) temperature,
|
||||
pressure and humidity sensors with ESPHome. An :ref:`I²C Bus <i2c>` is required to be set up in
|
||||
your configuration for this sensor to work.
|
||||
|
||||
.. figure:: images/ms8607-full.jpg
|
||||
:align: center
|
||||
|
||||
MS8607 Temperature, Pressure & Humidity Sensor. Image by `Adafruit`_
|
||||
|
||||
.. _datasheet: https://www.te.com/commerce/DocumentDelivery/DDEController?Action=srchrtrv&DocNm=MS8607-02BA01&DocType=DS&DocLang=English
|
||||
.. _Adafruit: https://www.adafruit.com/product/4716
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
sensor:
|
||||
- platform: ms8607
|
||||
temperature:
|
||||
name: Temperature
|
||||
humidity:
|
||||
name: Humidity
|
||||
pressure:
|
||||
name: Pressure
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **temperature** (**Required**): The information for the temperature sensor.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **pressure** (**Required**): The information for the pressure sensor.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **humidity** (**Required**): The information for the humidity sensor.
|
||||
|
||||
- **address** (*Optional*, int): Manually specify the I²C address of
|
||||
the humidity sensor. Defaults to ``0x40``.
|
||||
- **i2c_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`I²C Component <i2c>` if your
|
||||
configuration uses multiple I²C buses. This should match the ``i2c_id`` documented below.
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **address** (*Optional*, int): Manually specify the I²C address of
|
||||
the temperature & pressure sensor. Defaults to ``0x76``.
|
||||
- **i2c_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`I²C Component <i2c>` if your
|
||||
configuration uses multiple I²C buses. This should match the ``i2c_id`` inside of ``humidity``, documented above.
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
|
||||
sensor. Defaults to ``60s``.
|
||||
|
||||
|
||||
I²C Addresses
|
||||
-------------
|
||||
The MS8607 digital sensor has two I²C addresses: one for temperature & pressure (``0x76``), and the other for
|
||||
humidity readings (``0x40``). They are attached to the same ``SCL``/``SDA`` pins on the package, so if you need to
|
||||
customize the ``i2c_id``, you need to specify it at the top-level for temperature & humidity, and use the same value
|
||||
inside the humidity configuration block.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ref:`sensor-filters`
|
||||
- :apiref:`ms8607/ms8607.h`
|
||||
- `MS8607 Generic C Driver <https://github.com/TEConnectivity/MS8607_Generic_C_Driver>`__ by `TE Connectivity <http://www.te.com/>`__
|
||||
- `Manufacturer's product page <https://www.te.com/usa-en/product-CAT-BLPS0018.html>`__
|
||||
- :ghedit:`Edit`
|
177
components/sensor/veml7700.rst
Normal file
@ -0,0 +1,177 @@
|
||||
VEML7700 and VEML6030 Ambient Light Sensors
|
||||
===========================================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up VEML7700 / VEML6030 ambient light sensors in ESPHome.
|
||||
:image: veml7700.jpg
|
||||
:keywords: VEML7700, VEML6300
|
||||
|
||||
The ``veml7700`` sensor platform allows you to use the Vishay VEML7700 and VEML6030 ambient light sensors with ESPHome.
|
||||
Communication with the device is over :ref:`I²C <i2c>`, which must be present in your configuration. VEML7700 and VEML6030
|
||||
are basically the same but in different packages. The VEML7700 uses a fixed address of ``0x10``, while the smaller VEML6030
|
||||
can be configured to use either ``0x10`` or ``0x48``.
|
||||
|
||||
The VEML 7700/6030 devices are available on breakout boards from a number of vendors including `Adafruit`_, `SparkFun`_,
|
||||
`DFRobot`_, and others.
|
||||
|
||||
.. _Adafruit: http://www.adafruit.com/products/4162
|
||||
.. _SparkFun: https://www.sparkfun.com/products/15436
|
||||
.. _DFRobot: https://www.dfrobot.com/product-1620.html
|
||||
|
||||
|
||||
.. figure:: images/veml7700-full.jpg
|
||||
:align: center
|
||||
:width: 70.0%
|
||||
|
||||
VEML7700 Ambient Light Sensor on a board and standalone sensors.
|
||||
|
||||
.. figure:: images/veml7700-ui.png
|
||||
:align: center
|
||||
:width: 60.0%
|
||||
|
||||
VEML sensor in Home Assistant UI.
|
||||
|
||||
The sensor is a high accuracy ambient light digital 16-bit resolution sensor with dynamic range from 0 lux to about 120,000 lux.
|
||||
Its wide range of measurements is enabled by four configurable *gain* levels and six different *integration time* options.
|
||||
Higher gain values are typically used for lower light conditions.
|
||||
|
||||
The sensor has two photodiodes with different spectral response represented by two channels: an *ALS* channel and a *WHITE* channel.
|
||||
The *ALS*, or *Ambient light* channel follows a so-called human eye curve very closely. The *WHITE* channel covers a much wider wavelength/spectrum, capturing quite a lot of near-infrared radiance.
|
||||
|
||||
.. figure:: images/veml7700-spectral.png
|
||||
:align: center
|
||||
:width: 100.0%
|
||||
|
||||
ALS and WHITE channels spectral response
|
||||
|
||||
|
||||
Using this component's automatic measurement mode is advised; in this mode, proper *gain* and *integration time* are automatically selected by the component after
|
||||
taking several measurements. To do so, it follows a process recommended by the manufacturer.
|
||||
|
||||
Should you desire to manually control those parameters - please note that:
|
||||
|
||||
- Gain levels of 1/8 and 1/4 shall be used in most cases.
|
||||
- Gain levels of 1 an 2 are only intended to be used in low light conditions < 100 lux. For very high illuminations it shows high non-linearity.
|
||||
- In the range of 0 lux - 1000 lux the sensor measurements are stricly linear for Gain 1/4 and 1/8, after 1000 lux it shows non-linearity.
|
||||
|
||||
|
||||
A lux compensation formula is used to get better readings in bright conditions.
|
||||
However, it gives quite high error in very bright direct sunlight (instead of 100-120 kilolux it might give 150-200k+).
|
||||
|
||||
This Wikipedia `article <https://en.wikipedia.org/wiki/Lux>`__ has a table of some lux values for comparison.
|
||||
|
||||
Automatic measurement mode
|
||||
--------------------------
|
||||
|
||||
In automatic measurement mode the component starts from Gain 1/8 and 100 ms (*default*).
|
||||
|
||||
- If illuminance is higher than 46 lx (100 counts) it gradually reduces integration time to get good reading (best in range 100 - 10,000 counts).
|
||||
- In case of low illuminance (less than 46 lx) it tries to gradually increase gain and only then increase integration time.
|
||||
|
||||
Please note, that in low light conditions measurement process might take several seconds due to long exposure periods and sensor reconfigurations.
|
||||
|
||||
Starting values can be overriden by setting ``gain`` and ``integration_time`` parameters. The gain value gets adjusted first if possible.
|
||||
|
||||
Lux compensation
|
||||
----------------
|
||||
|
||||
Lux compensation is done as recommended by the manufacturer, however it can be turned off by
|
||||
setting ``lux_compensation: false`` in your device's configuration.
|
||||
|
||||
.. math::
|
||||
|
||||
\displaystyle \begin{array}{l}
|
||||
lux & = & counts \times resolution(time, gain)\\
|
||||
lux_{comp} & =& 6.0135e \times 10^{-13} \times lux^4 - 9.3924e \times 10^{-9} \times lux^3\\
|
||||
& & + 8.1488e \times 10^{-5} \times lux^2 + 1.0023 \times lux\\
|
||||
\\
|
||||
\text{Where:} & & \\
|
||||
counts & - & \text{sensor readings, counts}\\
|
||||
resolution & - & \text{sensor resolution for given integration time and gain, lx/counts}\\
|
||||
lux & - & \text{calculated illumination, lx}\\
|
||||
lux_{comp} & - & \text{compensated illumniation, lx}\\
|
||||
\end{array}
|
||||
|
||||
Available data
|
||||
--------------
|
||||
|
||||
The implementation offers seven sensors:
|
||||
- Two providing *lux* value,
|
||||
- Two unitless data measurements directly from the device,
|
||||
- Two actual *gain* and *integration time* values used for the measurement (useful in automatic mode), and
|
||||
- One fully artificial, somewhat representing near-infrared part of spectrum.
|
||||
|
||||
- **ambient_light**: Illuminance value for *ALS* channel representing human eye, lx
|
||||
- **full_spectrum**: Illuminance value for *WHITE* channel with wide spectrum, lx
|
||||
- **infrared**: Calculated illuminance value (*WHITE* minus *ALS*) representing near-infrared spectre, lx
|
||||
- **ambient_light_counts**: Raw 16 bit reading from *ALS* channel, counts
|
||||
- **full_spectrum_counts**: Raw 16 bit reading from *WHITE* channel, counts
|
||||
- **actual_gain**: The actual gain value being used for values reported, multiplier
|
||||
- **actual_integration_time**: The actual integration time being used for values reported, ms
|
||||
|
||||
Example configuration
|
||||
---------------------
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
sensor:
|
||||
- platform: veml7700
|
||||
address: 0x10
|
||||
update_interval: 60s
|
||||
|
||||
# short variant of sensor definition:
|
||||
ambient_light: "Ambient light"
|
||||
# longer variant of sensor definition:
|
||||
actual_gain:
|
||||
name: "Actual gain"
|
||||
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **auto_mode** (*Optional*, boolean): Automatic gain and integration time selection. Defaults to ``True``.
|
||||
- **integration_time** (*Optional*, :ref:`config-time`):
|
||||
The amount of time the sensor is exposed. Valid values are ``25ms``, ``50ms``, ``100ms`` *(default)*,
|
||||
``200ms``, ``400ms``, ``800ms``. *In automatic mode it sets starting value*.
|
||||
- **gain** (*Optional*, string): The gain the device will use for the internal ADC. Valid values are
|
||||
``1/8x`` *(default)*, ``1/4x``, ``1x``, ``2x``. Higher values are better in low-light conditions.
|
||||
*In automatic mode it sets starting gain value*.
|
||||
- **lux_compensation** (*Optional*, boolean): Lux compensation formula is used as per manufacturer.
|
||||
Defaults to ``True``.
|
||||
- **glass_attenuation_factor** (*Optional*): The attenuation factor of glass if it's behind some glass
|
||||
or plastic facia. Default is ``1.0`` means ``100%`` transmissivity. ``2`` means ``50%`` transmissivity etc.
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval for checking the sensors.
|
||||
Defaults to ``60s``.
|
||||
- All other options for I²C devices described at :ref:`I²C Bus <i2c>`.
|
||||
The sensor supports bus modes "standard" and "fast": 10 kHz to 400 kHz.
|
||||
|
||||
Sensors
|
||||
.......
|
||||
|
||||
You can configure all or any subset of the sensors described earlier.
|
||||
Each configured sensor is reported separately on each ``update_interval``. **name** (**Required**, string) is required for
|
||||
every sensor. All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
However, if you don't need any other options, you can just use shorthands like this: ``ambient_light: Ambient light``.
|
||||
|
||||
- **ambient_light** (*Optional*): Illuminance for visible light (*ALS channel*), lx.
|
||||
- **full_spectrum** (*Optional*): Illuminance for the full spectrum sensor (*WHITE channel*), lx.
|
||||
- **infrared** (*Optional*): Calculated illuminance for the Near-IR spectrum (*WHITE* minus *ALS*), lx.
|
||||
- **ambient_light_counts** (*Optional*): The reading for visible light (*ALS channel*), counts.
|
||||
- **full_spectrum_counts** (*Optional*): The reading for the full spectrum sensor (*WHITE channel*), counts.
|
||||
- **actual_gain** (*Optional*): The value of gain used for reported values. Particularly useful when "auto_mode" is selected.
|
||||
- **actual_integration_time** (*Optional*): Integration time used for reported values, ms. Particularly useful when "auto_mode" is selected.
|
||||
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ref:`sensor-filters`
|
||||
- `VEML 7700 datasheet <https://github.com/latonita/datasheets-storage/blob/main/sensors/VEML7700.pdf>`__
|
||||
- Application note `Designing the VEML7700 Into an Application <https://github.com/latonita/datasheets-storage/blob/main/sensors/VEML7700-designing.pdf>`__
|
||||
- `VEML 6030 datasheet <https://github.com/latonita/datasheets-storage/blob/main/sensors/VEML6030.pdf>`__
|
||||
- Application note `Designing the VEML6030 Into an Application <https://github.com/latonita/datasheets-storage/blob/main/sensors/VEML6030-designing.pdf>`__
|
||||
- `Radiometric vs. Photometric Units <https://www.thorlabs.de/catalogPages/506.pdf>`__
|
||||
- :apiref:`veml7700/veml7700.h`
|
||||
- :ghedit:`Edit`
|
@ -22,7 +22,7 @@ The SPI bus usually consists of 4 wires:
|
||||
All devices on the bus share this line.
|
||||
- **MISO** (also SDI - Serial Data In): Is used to receive data. All devices on the bus share this line.
|
||||
|
||||
In some cases one of **MOSI** or **MISO** do not exist as the receiving device only accepts data or sends data.
|
||||
In some cases one of **MOSI** or **MISO** does not exist as the receiving device only accepts data or sends data.
|
||||
It is also possible to configure a quad SPI interface using 4 output data lines. This is required only for
|
||||
use with certain components.
|
||||
|
||||
@ -52,6 +52,7 @@ This component also accepts a list of controllers if you want to implement multi
|
||||
miso_pin: GPIO26
|
||||
interface: any
|
||||
- id: quad_spi_bus
|
||||
type: quad
|
||||
clk_pin: GPIO47
|
||||
data_pins:
|
||||
- 40
|
||||
@ -62,17 +63,22 @@ This component also accepts a list of controllers if you want to implement multi
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **type** (*Optional*): Choose between ``single`` for standard 1 bit bus SPI (the default) or ``quad`` for quad SPI.
|
||||
- **clk_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin used for the clock line of the SPI bus.
|
||||
- **mosi_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The pin used for the MOSI line of the SPI bus.
|
||||
- **miso_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The pin used for the MISO line of the SPI bus.
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID for this SPI hub if you need multiple SPI hubs.
|
||||
- **interface** (*Optional*): Controls which hardware or software SPI implementation should be used.
|
||||
Value may be one of ``any`` (default), ``software``, ``hardware``, ``spi``, ``spi2`` or ``spi3``, depending on
|
||||
the particular chip. See discussion below.
|
||||
- **data_pins** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): Must be a list of exactly 4 pins to be used
|
||||
for the quad SPI output data lines.
|
||||
the type and the particular chip used. See discussion below.
|
||||
|
||||
At least one of ``mosi_pin``, ``miso_pin`` and ``data_pins`` must be specified.
|
||||
For the conventional ``single`` bit bus at least one of ``miso_pin`` or ``mosi_pin`` is required.
|
||||
|
||||
- **mosi_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The pin used for the MOSI line of the SPI bus.
|
||||
- **miso_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The pin used for the MISO line of the SPI bus.
|
||||
|
||||
For ``quad`` type instead specify ``data_pins``:
|
||||
|
||||
- **data_pins** (*Required*, :ref:`Pin Schema <config-pin_schema>`): Must be a list of exactly 4 pins to be used
|
||||
for the quad SPI output data lines.
|
||||
|
||||
|
||||
Interface selection:
|
||||
@ -97,6 +103,8 @@ While the ESP32 supports the reassignment of the default SPI pins to most other
|
||||
can improve performance and stability for certain ESP/device combinations.
|
||||
ESP8266 has a more limited selection of pins that can be used; check the datasheet for more information.
|
||||
|
||||
Quad mode requires a hardware interface, so ``software`` and ``any`` are not permitted values.
|
||||
|
||||
Generic SPI device component:
|
||||
-----------------------------
|
||||
.. _spi_device:
|
||||
|
@ -15,6 +15,16 @@ via text sensors.
|
||||
- platform: ethernet_info
|
||||
ip_address:
|
||||
name: ESP IP Address
|
||||
address_0:
|
||||
name: ESP IP Address 0
|
||||
address_1:
|
||||
name: ESP IP Address 1
|
||||
address_2:
|
||||
name: ESP IP Address 2
|
||||
address_3:
|
||||
name: ESP IP Address 3
|
||||
address_4:
|
||||
name: ESP IP Address 4
|
||||
|
||||
|
||||
Configuration variables:
|
||||
@ -22,6 +32,8 @@ Configuration variables:
|
||||
|
||||
- **ip_address** (*Optional*): Expose the IP Address of the ESP as a text sensor. All options from
|
||||
:ref:`Text Sensor <config-text_sensor>`.
|
||||
- **address_0-address_4** (*Optional*): With dual stack (IPv4 and IPv6) the device will have at least two IP addresses -- often more. To report all addresses the configuration may have up to five sub-sensors. All options from
|
||||
:ref:`Text Sensor <config-text_sensor>`.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
@ -32,6 +32,10 @@ Configuration variables:
|
||||
you want the text sensor to use that name, you can set ``name: None``.
|
||||
|
||||
- **icon** (*Optional*, icon): Manually set the icon to use for the sensor in the frontend.
|
||||
- **device_class** (*Optional*, string): The device class for the
|
||||
sensor. Only the ``timestamp`` and ``date`` device classes are supported.
|
||||
Set to ``""`` to remove the default device class of a sensor.
|
||||
Requires Home Assistant 2024.3 or newer.
|
||||
- **internal** (*Optional*, boolean): Mark this component as internal. Internal components will
|
||||
not be exposed to the frontend (like Home Assistant). Only specifying an ``id`` without
|
||||
a ``name`` will implicitly set this to true.
|
||||
|
@ -15,6 +15,16 @@ via text sensors.
|
||||
- platform: wifi_info
|
||||
ip_address:
|
||||
name: ESP IP Address
|
||||
address_0:
|
||||
name: ESP IP Address 0
|
||||
address_1:
|
||||
name: ESP IP Address 1
|
||||
address_2:
|
||||
name: ESP IP Address 2
|
||||
address_3:
|
||||
name: ESP IP Address 3
|
||||
address_4:
|
||||
name: ESP IP Address 4
|
||||
ssid:
|
||||
name: ESP Connected SSID
|
||||
bssid:
|
||||
@ -31,6 +41,8 @@ Configuration variables:
|
||||
|
||||
- **ip_address** (*Optional*): Expose the IP Address of the ESP as a text sensor. All options from
|
||||
:ref:`Text Sensor <config-text_sensor>`.
|
||||
- **address_0-address_4** (*Optional*): With dual stack (IPv4 and IPv6) the device will have at least two IP addresses -- often more. To report all addresses the configuration may have up to five sub-sensors. All options from
|
||||
:ref:`Text Sensor <config-text_sensor>`.
|
||||
- **ssid** (*Optional*): Expose the SSID of the currently connected WiFi network as a text sensor. All options from
|
||||
:ref:`Text Sensor <config-text_sensor>`.
|
||||
- **bssid** (*Optional*): Expose the BSSID of the currently connected WiFi network as a text sensor. All options from
|
||||
|
46
components/touchscreen/cst226.rst
Normal file
@ -0,0 +1,46 @@
|
||||
cst226 Touch Screen Controller
|
||||
===============================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up cst226 touch screen controller with ESPHome
|
||||
:image: t4-s3.jpg
|
||||
:keywords: cst226, T4-S3
|
||||
|
||||
The ``cst226`` touchscreen platform allows using the touch screen controllers based on the cst226 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 Lilygo T4-S3 AMOLED Display.
|
||||
|
||||
|
||||
.. figure:: images/t4-s3.jpg
|
||||
:align: center
|
||||
:width: 50.0%
|
||||
|
||||
cst226 touchscreen on Lilygo T4-S3 AMOLED Display
|
||||
|
||||
Base Touchscreen Configuration
|
||||
------------------------------
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
touchscreen:
|
||||
platform: cst226
|
||||
id: my_touchscreen
|
||||
interrupt_pin: GPIO3
|
||||
|
||||
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.
|
||||
- **rotation** (*Optional*): Set the rotation of the touchscreen. By default this will be set to match the display associated with the touchscreen, but this allows more control. Choices are ``0``, ``90``, ``180`` and ``270``.
|
||||
|
||||
- All other options from :ref:`Touchscreen <config-touchscreen>`.
|
||||
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :apiref:`cst226/touchscreen/cst226_touchscreen.h`
|
||||
- :ghedit:`Edit`
|
69
components/touchscreen/cst816.rst
Normal file
@ -0,0 +1,69 @@
|
||||
cst816 Touch Screen Controller
|
||||
===============================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up cst816 touch screen controller with ESPHome
|
||||
:image: cst816.jpg
|
||||
:keywords: CST816, T-DISPLAY, AMOLED
|
||||
|
||||
The ``cst816`` touchscreen platform allows using the touch screen controllers based on the CST816 series of chips 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 Lilygo T-Display S3 AMOLED. The component should work with CST816T, CST816S, CST820 and CST716
|
||||
controller chips.
|
||||
|
||||
|
||||
.. figure:: images/cst816.jpg
|
||||
:align: center
|
||||
:width: 50.0%
|
||||
|
||||
cst816t touchscreen on T-Display S3 AMOLED
|
||||
|
||||
Base Touchscreen Configuration
|
||||
------------------------------
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
touchscreen:
|
||||
platform: cst816
|
||||
id: my_touchscreen
|
||||
interrupt_pin: GPIO3
|
||||
reset_pin: GPIO21
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually set the ID of this touchscreen.
|
||||
- **interrupt_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The touch detection pin.
|
||||
- **reset_pin** (**Optional**, :ref:`Pin Schema <config-pin_schema>`): The chip reset pin.
|
||||
|
||||
- All other options from :ref:`Touchscreen <config-touchscreen>`.
|
||||
|
||||
Binary Sensor
|
||||
-------------
|
||||
|
||||
In addition to touch areas on the screen configured through the :ref:`Touchscreen <config-touchscreen>` component,
|
||||
the cst816 will report touches on a button outside the screen area.
|
||||
A binary sensor can be configured to react to touching this button.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
binary_sensor:
|
||||
- platform: cst816
|
||||
name: "Home"
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **cst816_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the touchscreen.
|
||||
|
||||
- All other options from :ref:`Binary Sensor <config-binary_sensor>`.
|
||||
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :apiref:`cst816/touchscreen/cst816_touchscreen.h`
|
||||
- :ghedit:`Edit`
|
BIN
components/touchscreen/images/cst816.jpg
Normal file
After Width: | Height: | Size: 9.6 KiB |
BIN
components/touchscreen/images/t4-s3.jpg
Normal file
After Width: | Height: | Size: 27 KiB |
138
components/uponor_smatrix.rst
Normal file
@ -0,0 +1,138 @@
|
||||
Uponor Smatrix Base Pulse Underfloor Heating
|
||||
============================================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up an Uponor Smatrix Base Pulse underfloor heating control system in ESPHome.
|
||||
:keywords: Uponor Smatrix, HCS, Thermostat
|
||||
|
||||
The Uponor Smatrix component allows you to integrate an Uponor Smatrix Base Pulse underfloor heating control system in ESPHome without the need for an Smatrix Pulse Com R-208 communication module.
|
||||
It directly communicates with the controller and thermostats via the RS485 thermostat bus.
|
||||
|
||||
Connecting to the bus
|
||||
---------------------
|
||||
|
||||
This component is able to communicate directly with the RS485 thermostat bus. For that, you will need to connect an RS485 to TTL converter to a UART bus of your ESPHome device.
|
||||
|
||||
The RS485 side of the converter can either be connected to one of the A/B terminals on the controller or on one of the thermostats.
|
||||
The +/- terminals provide 5 volts and can be used to power your ESPHome device.
|
||||
|
||||
The :ref:`UART Component <uart>` must be configured with a baud rate of 19200, 8 data bits, no parity, 1 stop bit.
|
||||
|
||||
.. _uponor-gettingstarted:
|
||||
|
||||
Getting started
|
||||
---------------
|
||||
|
||||
The controller and the thermostats have unique addresses used for communication that are not displayed anywhere but can only be found when scanning the bus.
|
||||
Start with a basic configuration that just contains the UART and Uponor hub components. Make sure that the UART pins are configured according to your wiring and the baud rate is set to 19200.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
uponor_smatrix:
|
||||
|
||||
When you upload this configuration to your ESPHome device and connect it to the Uponor Smatrix bus, it will print a list of detected addresses to the log output.
|
||||
|
||||
.. code-block:: text
|
||||
|
||||
[00:00:00][C][uponor_smatrix:019]: Uponor Smatrix
|
||||
[00:00:00][C][uponor_smatrix:020]: System address: 0x110B
|
||||
[00:00:00][C][uponor_smatrix:031]: Detected unknown device addresses:
|
||||
[00:00:00][C][uponor_smatrix:033]: 0xDE62
|
||||
[00:00:00][C][uponor_smatrix:033]: 0xDDFF
|
||||
[00:00:00][C][uponor_smatrix:033]: 0xDE72
|
||||
[00:00:00][C][uponor_smatrix:033]: 0xDE4A
|
||||
[00:00:00][C][uponor_smatrix:033]: 0xDE13
|
||||
|
||||
With that you can then add ``climate`` or ``sensor`` components for the detected devices. Optionally, you can also statically add the detected system address to your ``uponor_smatrix`` configuration.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
uponor_smatrix:
|
||||
address: 0x110B
|
||||
|
||||
climate:
|
||||
- platform: uponor_smatrix
|
||||
address: 0xDE13
|
||||
name: Thermostat Living Room
|
||||
|
||||
|
||||
Controller/Hub component
|
||||
------------------------
|
||||
|
||||
The main ``uponor_smatrix`` component is responsible for the communication with the controller and thermostats and distributes data to the climate and sensor components described below.
|
||||
|
||||
It is also able to synchronize the date and time of the thermostats with a time source in case your system has thermostats that can be programmed with a time schedule.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
uponor_smatrix:
|
||||
address: 0x110B
|
||||
uart_id: my_uart
|
||||
time_id: my_time
|
||||
|
||||
Configuration variables:
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- **address** (*Optional*, int): The 16 bit system/controller address. This will be automatically detected from the bus if not specified. See :ref:`uponor-gettingstarted` on how to find the address.
|
||||
- **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`UART Component <uart>` if you want to use multiple UART buses.
|
||||
- **time_id** (*Optional*, :ref:`config-id`): Specify the ID of the :doc:`Time Component <time/index>` to use as the time source if you want ESPHome to automatically synchronize the date and time of the thermostats.
|
||||
- **time_device_address** (*Optional*, int): The 16 bit device address of the thermostat that keeps the system time. This will be automatically detected from the bus if not specified.
|
||||
It needs to be the device address of the first thermostat that was paired to the controller, and the one where you can manually change the date and time via the buttons on the thermostat.
|
||||
|
||||
.. note::
|
||||
|
||||
The system address and the address of the thermostat keeping the time will be automatically detected from the bus if not specified in the configuration!
|
||||
You can safely leave out those parameters in almost all cases.
|
||||
|
||||
Climate component
|
||||
------------------
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
climate:
|
||||
- platform: uponor_smatrix
|
||||
address: 0xDE13
|
||||
name: Thermostat Living Room
|
||||
|
||||
Configuration variables:
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- **address** (*Required*, int): The 16 bit device address of the thermostat. See :ref:`uponor-gettingstarted` on how to find the address.
|
||||
- **uponor_smatrix_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the ``uponor_smatrix`` hub component if you want to use multiple hub components on one ESPHome device.
|
||||
- All options from :ref:`Climate <config-climate>`.
|
||||
|
||||
Sensor component
|
||||
----------------
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
sensor:
|
||||
- platform: uponor_smatrix
|
||||
address: 0xDE13
|
||||
humidity:
|
||||
name: Humidity Living Room
|
||||
temperature:
|
||||
name: Temperature Living Room
|
||||
external_temperature:
|
||||
name: Floor Temperature Living Room
|
||||
|
||||
Configuration variables:
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- **address** (*Required*, int): The 16 bit device address of the thermostat. See :ref:`uponor-gettingstarted` on how to find the address.
|
||||
- **uponor_smatrix_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the ``uponor_smatrix`` hub component if you want to use multiple hub components on one ESPHome device.
|
||||
- **humidity** (*Optional*): A sensor reading the current humidity the thermostat reports.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **temperature** (*Optional*): A sensor reading the current temperature the thermostat reports.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **external_temperature** (*Optional*): A sensor reading the current external temperature the thermostat reports.
|
||||
This comes from an optionally attached external temperature sensor that can measure the floor or outdoor temperature.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- `Protocol Analysis <https://github.com/kroimon/uponor-smatrix-analysis>`__
|
||||
- :apiref:`uponor_smatrix/uponor_smatrix.h`
|
||||
- :ghedit:`Edit`
|
4
conf.py
@ -67,9 +67,9 @@ author = "ESPHome"
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = "2024.2"
|
||||
version = "2024.3"
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = "2024.2.2"
|
||||
release = "2024.3.0b1"
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
|
@ -68,6 +68,7 @@ Contributors
|
||||
- `Alex Dekker (@Alex1602) <https://github.com/Alex1602>`__
|
||||
- `Alexander Leisentritt (@Alex9779) <https://github.com/Alex9779>`__
|
||||
- `Alex Barcelo (@alexbarcelo) <https://github.com/alexbarcelo>`__
|
||||
- `alexborro (@alexborro) <https://github.com/alexborro>`__
|
||||
- `AlexCPU (@AlexCPU) <https://github.com/AlexCPU>`__
|
||||
- `Alexandre Danault (@AlexDanault) <https://github.com/AlexDanault>`__
|
||||
- `Alex Iribarren (@alexiri) <https://github.com/alexiri>`__
|
||||
@ -118,6 +119,7 @@ Contributors
|
||||
- `arturo182 (@arturo182) <https://github.com/arturo182>`__
|
||||
- `arunderwood (@arunderwood) <https://github.com/arunderwood>`__
|
||||
- `Arya (@Arya11111) <https://github.com/Arya11111>`__
|
||||
- `aschmitz (@aschmitz) <https://github.com/aschmitz>`__
|
||||
- `Borys Pierov (@ashald) <https://github.com/ashald>`__
|
||||
- `Ash McKenzie (@ashmckenzie) <https://github.com/ashmckenzie>`__
|
||||
- `ashp8i (@ashp8i) <https://github.com/ashp8i>`__
|
||||
@ -422,6 +424,7 @@ Contributors
|
||||
- `Janez Troha (@dz0ny) <https://github.com/dz0ny>`__
|
||||
- `Dimitris Zervas (@dzervas) <https://github.com/dzervas>`__
|
||||
- `Dan Jackson (@e28eta) <https://github.com/e28eta>`__
|
||||
- `Ettore Beltrame (@E440QF) <https://github.com/E440QF>`__
|
||||
- `Earle F. Philhower, III (@earlephilhower) <https://github.com/earlephilhower>`__
|
||||
- `Ermanno Baschiera (@ebaschiera) <https://github.com/ebaschiera>`__
|
||||
- `Robert Resch (@edenhaus) <https://github.com/edenhaus>`__
|
||||
@ -507,7 +510,7 @@ Contributors
|
||||
- `风飘雨 (@flyrainning) <https://github.com/flyrainning>`__
|
||||
- `foltymat (@foltymat) <https://github.com/foltymat>`__
|
||||
- `Fabio Pugliese Ornellas (@fornellas) <https://github.com/fornellas>`__
|
||||
- `Fractal147 (@Fractal147) <https://github.com/Fractal147>`__
|
||||
- `SmartShackMaster (@fototakas) <https://github.com/fototakas>`__
|
||||
- `Francis-labo (@Francis-labo) <https://github.com/Francis-labo>`__
|
||||
- `Francisk0 (@Francisk0) <https://github.com/Francisk0>`__
|
||||
- `Frank Bakker (@FrankBakkerNl) <https://github.com/FrankBakkerNl>`__
|
||||
@ -522,21 +525,18 @@ Contributors
|
||||
- `Franck Nijhof (@frenck) <https://github.com/frenck>`__
|
||||
- `Kenneth Fribert (@fribse) <https://github.com/fribse>`__
|
||||
- `frippe75 (@frippe75) <https://github.com/frippe75>`__
|
||||
- `Fritz Mueller (@fritzm) <https://github.com/fritzm>`__
|
||||
- `Florian Trück (@ftrueck) <https://github.com/ftrueck>`__
|
||||
- `functionpointer (@functionpointer) <https://github.com/functionpointer>`__
|
||||
- `mr G1K (@G1K) <https://github.com/G1K>`__
|
||||
- `Aljaž Srebrnič (@g5pw) <https://github.com/g5pw>`__
|
||||
- `Alex Hermann (@gaaf) <https://github.com/gaaf>`__
|
||||
- `Gabe Cook (@gabe565) <https://github.com/gabe565>`__
|
||||
- `Gareth Cooper (@gaco79) <https://github.com/gaco79>`__
|
||||
- `gazoodle (@gazoodle) <https://github.com/gazoodle>`__
|
||||
- `gcopeland (@gcopeland) <https://github.com/gcopeland>`__
|
||||
- `Greg Cormier (@gcormier) <https://github.com/gcormier>`__
|
||||
- `GeekVisit (@GeekVisit) <https://github.com/GeekVisit>`__
|
||||
- `R Huish (@genestealer) <https://github.com/genestealer>`__
|
||||
- `Geoff Davis (@geoffdavis) <https://github.com/geoffdavis>`__
|
||||
- `Geoffrey Van Landeghem (@geoffrey-vl) <https://github.com/geoffrey-vl>`__
|
||||
- `Gérald Guiony (@gerald-guiony) <https://github.com/gerald-guiony>`__
|
||||
- `Gerard (@gerard33) <https://github.com/gerard33>`__
|
||||
- `Giampiero Baggiani (@giampiero7) <https://github.com/giampiero7>`__
|
||||
@ -544,14 +544,12 @@ Contributors
|
||||
- `Giel Janssens (@gieljnssns) <https://github.com/gieljnssns>`__
|
||||
- `Giovanni (@Gio-dot) <https://github.com/Gio-dot>`__
|
||||
- `git2212 (@git2212) <https://github.com/git2212>`__
|
||||
- `GitforZhangXL (@GitforZhangXL) <https://github.com/GitforZhangXL>`__
|
||||
- `github-actions[bot] (@github-actions[bot]) <https://github.com/github-actions[bot]>`__
|
||||
- `gitolicious (@gitolicious) <https://github.com/gitolicious>`__
|
||||
- `The Gitter Badger (@gitter-badger) <https://github.com/gitter-badger>`__
|
||||
- `Frederik Gladhorn (@gladhorn) <https://github.com/gladhorn>`__
|
||||
- `Guillermo Ruffino (@glmnet) <https://github.com/glmnet>`__
|
||||
- `Germán Martín (@gmag11) <https://github.com/gmag11>`__
|
||||
- `Germain Masse (@gmasse) <https://github.com/gmasse>`__
|
||||
- `Garret Buell (@gmbuell) <https://github.com/gmbuell>`__
|
||||
- `gnicolasb (@gnicolasb) <https://github.com/gnicolasb>`__
|
||||
- `Go0oSer (@Go0oSer) <https://github.com/Go0oSer>`__
|
||||
@ -582,7 +580,6 @@ Contributors
|
||||
- `Hagai Shatz (@hagai-shatz) <https://github.com/hagai-shatz>`__
|
||||
- `hajar97 (@hajar97) <https://github.com/hajar97>`__
|
||||
- `Boris Hajduk (@hajdbo) <https://github.com/hajdbo>`__
|
||||
- `Gavin Mogan (@halkeye) <https://github.com/halkeye>`__
|
||||
- `Charles (@hallard) <https://github.com/hallard>`__
|
||||
- `Aniket (@HandyHat) <https://github.com/HandyHat>`__
|
||||
- `Charles Thompson (@haryadoon) <https://github.com/haryadoon>`__
|
||||
@ -604,7 +601,6 @@ Contributors
|
||||
- `hpineapples (@hpineapples) <https://github.com/hpineapples>`__
|
||||
- `Antonio Vanegas (@hpsaturn) <https://github.com/hpsaturn>`__
|
||||
- `hreintke (@hreintke) <https://github.com/hreintke>`__
|
||||
- `Huub Eikens (@huubeikens) <https://github.com/huubeikens>`__
|
||||
- `Steve Rodgers (@hwstar) <https://github.com/hwstar>`__
|
||||
- `hificat (@hzkincony) <https://github.com/hzkincony>`__
|
||||
- `Arjan Filius (@iafilius) <https://github.com/iafilius>`__
|
||||
@ -665,6 +661,7 @@ Contributors
|
||||
- `Jeremy Willans (@jeremywillans) <https://github.com/jeremywillans>`__
|
||||
- `jerome992 (@jerome992) <https://github.com/jerome992>`__
|
||||
- `Jesse Hills (@jesserockz) <https://github.com/jesserockz>`__
|
||||
- `Jessica Hamilton (@jessicah) <https://github.com/jessicah>`__
|
||||
- `Yuval Brik (@jhamhader) <https://github.com/jhamhader>`__
|
||||
- `Joe (@jhansche) <https://github.com/jhansche>`__
|
||||
- `jimtng (@jimtng) <https://github.com/jimtng>`__
|
||||
@ -708,7 +705,6 @@ Contributors
|
||||
- `Mike Ryan (@justfalter) <https://github.com/justfalter>`__
|
||||
- `Kris (@K-r-i-s-t-i-a-n) <https://github.com/K-r-i-s-t-i-a-n>`__
|
||||
- `k0rtina (@k0rtina) <https://github.com/k0rtina>`__
|
||||
- `Harald Nagel (@k7hpn) <https://github.com/k7hpn>`__
|
||||
- `kaegi (@kaegi) <https://github.com/kaegi>`__
|
||||
- `kahrendt (@kahrendt) <https://github.com/kahrendt>`__
|
||||
- `Kaldek (@Kaldek) <https://github.com/Kaldek>`__
|
||||
@ -799,9 +795,12 @@ Contributors
|
||||
- `Scott Cappellani (@maeneak) <https://github.com/maeneak>`__
|
||||
- `Magnus Nordlander (@magnusnordlander) <https://github.com/magnusnordlander>`__
|
||||
- `majbthrd (@majbthrd) <https://github.com/majbthrd>`__
|
||||
- `Piotr Majkrzak (@majkrzak) <https://github.com/majkrzak>`__
|
||||
- `Dmitry (@mak-42) <https://github.com/mak-42>`__
|
||||
- `Kasper Malfroid (@malfroid) <https://github.com/malfroid>`__
|
||||
- `Malle355 (@Malle355) <https://github.com/Malle355>`__
|
||||
- `raymonder jin (@mamil) <https://github.com/mamil>`__
|
||||
- `Manuel Kasper (@manuelkasper) <https://github.com/manuelkasper>`__
|
||||
- `Manuel Díez (@manutenfruits) <https://github.com/manutenfruits>`__
|
||||
- `marcelolcosta (@marcelolcosta) <https://github.com/marcelolcosta>`__
|
||||
- `Marcel van der Veldt (@marcelveldt) <https://github.com/marcelveldt>`__
|
||||
@ -831,6 +830,7 @@ Contributors
|
||||
- `matt123p (@matt123p) <https://github.com/matt123p>`__
|
||||
- `matthias882 (@matthias882) <https://github.com/matthias882>`__
|
||||
- `Matus Ivanecky (@maty535) <https://github.com/maty535>`__
|
||||
- `matzman666 (@matzman666) <https://github.com/matzman666>`__
|
||||
- `Christian (@max246) <https://github.com/max246>`__
|
||||
- `Max Bachmann (@maxbachmann) <https://github.com/maxbachmann>`__
|
||||
- `Maximilian Gerhardt (@maxgerhardt) <https://github.com/maxgerhardt>`__
|
||||
@ -896,6 +896,7 @@ Contributors
|
||||
- `Martin Weinelt (@mweinelt) <https://github.com/mweinelt>`__
|
||||
- `Martin Wetterwald (@mwetterw) <https://github.com/mwetterw>`__
|
||||
- `mwolter805 (@mwolter805) <https://github.com/mwolter805>`__
|
||||
- `Morgan Hunter (@mxc42) <https://github.com/mxc42>`__
|
||||
- `myhomeiot (@myhomeiot) <https://github.com/myhomeiot>`__
|
||||
- `Mykle (@myklemykle) <https://github.com/myklemykle>`__
|
||||
- `Mynasru (@Mynasru) <https://github.com/Mynasru>`__
|
||||
@ -1056,6 +1057,7 @@ Contributors
|
||||
- `Rei Vilo (@rei-vilo) <https://github.com/rei-vilo>`__
|
||||
- `Alex Reid (@reidprojects) <https://github.com/reidprojects>`__
|
||||
- `RenierM26 (@RenierM26) <https://github.com/RenierM26>`__
|
||||
- `RFDarter (@RFDarter) <https://github.com/RFDarter>`__
|
||||
- `Robin Pronk (@rfpronk) <https://github.com/rfpronk>`__
|
||||
- `Robert Gabrielson (@rgabrielson11) <https://github.com/rgabrielson11>`__
|
||||
- `Rafael Goes (@rgriffogoes) <https://github.com/rgriffogoes>`__
|
||||
@ -1082,6 +1084,7 @@ Contributors
|
||||
- `Jérôme W. (@RomRider) <https://github.com/RomRider>`__
|
||||
- `roscoegray (@roscoegray) <https://github.com/roscoegray>`__
|
||||
- `rotarykite (@rotarykite) <https://github.com/rotarykite>`__
|
||||
- `Robert Paskowitz (@rpaskowitz) <https://github.com/rpaskowitz>`__
|
||||
- `Rajan Patel (@rpatel3001) <https://github.com/rpatel3001>`__
|
||||
- `Bob Perciaccante (@rperciaccante) <https://github.com/rperciaccante>`__
|
||||
- `rradar (@rradar) <https://github.com/rradar>`__
|
||||
@ -1132,6 +1135,7 @@ Contributors
|
||||
- `shenxiaozheng (@shenxiaozheng) <https://github.com/shenxiaozheng>`__
|
||||
- `sherbang (@sherbang) <https://github.com/sherbang>`__
|
||||
- `Shish (@shish) <https://github.com/shish>`__
|
||||
- `sibowler (@sibowler) <https://github.com/sibowler>`__
|
||||
- `signix (@signix) <https://github.com/signix>`__
|
||||
- `SiliconAvatar (@SiliconAvatar) <https://github.com/SiliconAvatar>`__
|
||||
- `Mark Lopez (@Silvenga) <https://github.com/Silvenga>`__
|
||||
@ -1324,11 +1328,10 @@ Contributors
|
||||
- `Björn Stenberg (@zagor) <https://github.com/zagor>`__
|
||||
- `david reid (@zathras777) <https://github.com/zathras777>`__
|
||||
- `Brynley McDonald (@ZephireNZ) <https://github.com/ZephireNZ>`__
|
||||
- `Geek_cat (@zhzhzhy) <https://github.com/zhzhzhy>`__
|
||||
- `Stefan Goethals (@zipkid) <https://github.com/zipkid>`__
|
||||
- `zivillian (@zivillian) <https://github.com/zivillian>`__
|
||||
- `Zack Barett (@zsarnett) <https://github.com/zsarnett>`__
|
||||
- `Zsolt Zsiros (@ZsZs73) <https://github.com/ZsZs73>`__
|
||||
- `Christian Zufferey (@zuzu59) <https://github.com/zuzu59>`__
|
||||
|
||||
*This page was last updated March 6, 2024.*
|
||||
*This page was last updated March 13, 2024.*
|
||||
|
1
images/ade7880.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 132 25" id="svg5" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><defs id="defs9"/><path d="M5 0H127a5 5 0 015 5v15a5 5 0 01-5 5H5a5 5 0 01-5-5V5a5 5 0 015-5z" style="fill:#000" id="path2"/><g aria-label="ade7880" id="component-text" style="font-weight:900;font-size:25px;font-family:Montserrat;letter-spacing:1.1px;fill:#fffffc"><path d="m14.525 21v-2.425l-.4-.65v-4.6q0-1-.625-1.525-.6-.525-1.975-.525-.925.0-1.875.3Q8.7 11.85 8.025 12.35l-1.8-3.725q1.2-.75 2.875-1.15t3.275-.4q3.525.0 5.45 1.575 1.95 1.575 1.95 5V21zm-3.875.25q-1.675.0-2.8-.575Q6.725 20.1 6.15 19.15 5.575 18.175 5.575 17q0-1.325.675-2.25t2.05-1.4q1.4-.475 3.525-.475h2.85V15.6h-1.95q-.9.0-1.325.3-.4.275-.4.85.0.475.35.8.375.3 1 .3.575.0 1.05-.3.5-.325.725-1l.725 1.675q-.325 1.525-1.375 2.275t-2.825.75z" id="path11"/><path d="m29.575005 21.25q-1.775.0-3.3-.85-1.5-.875-2.4-2.45-.9-1.6-.9-3.8t.9-3.775q.9-1.6 2.4-2.45 1.525-.85 3.3-.85 1.8.0 2.95.775 1.15.75 1.7 2.325.55 1.55.55 3.975.0 2.45-.525 4.025-.5 1.575-1.65 2.325-1.125.75-3.025.75zm1.35-4.4q.625.0 1.125-.3t.8-.9q.3-.625.3-1.5.0-.9-.3-1.475-.3-.6-.8-.9t-1.125-.3-1.125.3-.8.9q-.3.575-.3 1.475.0.875.3 1.5.3.6.8.9t1.125.3zm2.4 4.15v-1.85l-.025-5-.25-5v-6.7h5.65V21z" id="path13"/><path d="m49.850003 21.25q-2.5.0-4.375-.925-1.85-.925-2.875-2.525-1.025-1.625-1.025-3.65.0-2.075 1-3.675 1.025-1.6 2.775-2.5 1.775-.9 3.975-.9 2.025.0 3.725.8 1.725.8 2.75 2.375 1.05 1.575 1.05 3.9.0.3-.025.675-.025.35-.05.65h-10.525V12.75h7.525l-2.125.725q0-.8-.3-1.35-.275-.575-.775-.875-.5-.325-1.2-.325t-1.225.325q-.5.3-.775.875-.275.55-.275 1.35v.85q0 .875.35 1.5t1 .95q.65.3 1.575.3.95.0 1.55-.25.625-.25 1.3-.75l2.95 2.975q-1 1.075-2.475 1.65-1.45.55-3.5.55z" id="path15"/><path d="m61.07501 21 6.6-15.4 1.575 2.475h-8.3l2.3-2.675v5.225h-4.875V3.5h14.975V7.125L67.52501 21z" id="path17"/><path d="m83.175035 21.4q-2.325.0-4.1-.675-1.75-.7-2.75-1.95-1-1.275-1-2.975.0-1.7 1.025-2.9 1.025-1.2 2.8-1.825 1.775-.625 4.025-.625t4.025.625 2.8 1.825q1.025 1.2 1.025 2.9t-1 2.975q-1 1.25-2.775 1.95-1.75.675-4.075.675zm0-3.975q.85.0 1.375-.475.55-.5.55-1.35t-.55-1.325q-.525-.5-1.375-.5t-1.4.5q-.525.475-.525 1.325t.525 1.35q.55.475 1.4.475zm0-4.125q-2.05.0-3.7-.575-1.625-.6-2.575-1.7-.95-1.125-.95-2.7.0-1.6.925-2.75.925-1.175 2.55-1.825 1.625-.65 3.75-.65t3.75.65q1.625.65 2.55 1.825.925 1.15.925 2.75.0 1.575-.95 2.7-.95 1.1-2.575 1.7-1.625.575-3.7.575zm0-3.225q.6.0 1-.4t.4-1.1q0-.725-.4-1.1-.4-.4-1-.4t-1 .4q-.4.375-.4 1.1.0.7.4 1.1t1 .4z" id="path19"/><path d="m101.22502 21.4q-2.324997.0-4.099997-.675-1.75-.7-2.75-1.95-1-1.275-1-2.975.0-1.7 1.025-2.9 1.025-1.2 2.8-1.825 1.775-.625 4.024997-.625 2.25.0 4.025.625t2.8 1.825q1.025 1.2 1.025 2.9t-1 2.975q-1 1.25-2.775 1.95-1.75.675-4.075.675zm0-3.975q.85.0 1.375-.475.55-.5.55-1.35t-.55-1.325q-.525-.5-1.375-.5t-1.399997.5q-.525.475-.525 1.325t.525 1.35q.549997.475 1.399997.475zm0-4.125q-2.049997.0-3.699997-.575-1.625-.6-2.575-1.7-.95-1.125-.95-2.7.0-1.6.925-2.75.925-1.175 2.55-1.825 1.625-.65 3.749997-.65 2.125.0 3.75.65 1.625.65 2.55 1.825.925 1.15.925 2.75.0 1.575-.95 2.7-.95 1.1-2.575 1.7-1.625.575-3.7.575zm0-3.225q.6.0 1-.4t.4-1.1q0-.725-.4-1.1-.4-.4-1-.4t-1 .4q-.399997.375-.399997 1.1.0.7.399997 1.1.4.4 1 .4z" id="path21"/><path d="m119.45001 21.4q-2.325.0-4.125-1.075-1.775-1.075-2.8-3.125-1-2.05-1-4.95.0-2.9 1-4.95 1.025-2.05 2.8-3.125 1.8-1.075 4.125-1.075t4.1 1.075q1.8 1.075 2.8 3.125 1.025 2.05 1.025 4.95t-1.025 4.95q-1 2.05-2.8 3.125-1.775 1.075-4.1 1.075zm0-4.725q.575.0 1.025-.4.45-.4.7-1.375.275-.975.275-2.65.0-1.7-.275-2.65-.25-.975-.7-1.375t-1.025-.4-1.025.4-.725 1.375q-.25.95-.25 2.65.0 1.675.25 2.65.275.975.725 1.375.45.4 1.025.4z" id="path23"/></g></svg>
|
After Width: | Height: | Size: 3.6 KiB |
BIN
images/ads1118.jpg
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
images/ags10.jpg
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
images/am2315c.jpg
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
images/cst816.jpg
Normal file
After Width: | Height: | Size: 9.6 KiB |
1
images/format-font.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17,8H20V20H21V21H17V20H18V17H14L12.5,20H14V21H10V20H11L17,8M18,9L14.5,16H18V9M5,3H10C11.11,3 12,3.89 12,5V16H9V11H6V16H3V5C3,3.89 3.89,3 5,3M6,5V9H9V5H6Z" /></svg>
|
After Width: | Height: | Size: 233 B |
BIN
images/htu31d.jpg
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
images/kamstrup_kmp.jpg
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
images/ms8607.jpg
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
images/seeed-mr24hpc1.jpg
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
images/t4-s3.jpg
Normal file
After Width: | Height: | Size: 27 KiB |
4
images/uponor.svg
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" version="1.0" width="105" height="27" viewBox="-0.561 -0.624 105 27" id="svg2217" xml:space="preserve">
|
||||
<g id="g2241"><path d="M 26.743,0 C 22.23,0 18.574,3.659 18.574,8.171 L 18.574,11.094 L 18.572,11.094 L 18.572,23.803 C 18.572,24.807 19.387,25.62 20.387,25.62 L 22.201,25.62 C 23.206,25.62 24.02,24.807 24.02,23.803 L 24.02,19.707 C 24.871,20.009 25.786,20.172 26.742,20.172 C 31.256,20.172 34.913,16.514 34.913,12.002 L 34.913,8.171 C 34.914,3.659 31.257,0 26.743,0 M 29.467,13.818 C 29.467,15.322 28.246,16.541 26.743,16.541 C 25.239,16.541 24.021,15.322 24.021,13.818 L 24.021,6.357 C 24.021,4.852 25.239,3.631 26.743,3.631 C 28.246,3.631 29.467,4.852 29.467,6.357 L 29.467,13.818 z " style="fill: rgb(0, 116, 190); fill-rule: evenodd;" id="path2221"/><path d="M 14.522,0 L 12.707,0 C 11.704,0 10.893,0.813 10.893,1.816 L 10.893,13.818 C 10.893,15.322 9.673,16.541 8.168,16.541 C 6.665,16.541 5.445,15.322 5.445,13.818 L 5.445,1.816 C 5.445,0.813 4.633,0 3.63,0 L 1.815,0 C 0.813,0 0,0.813 0,1.816 L 0,12.002 C 0,16.514 3.657,20.172 8.168,20.172 C 12.68,20.172 16.338,16.514 16.338,12.002 L 16.338,1.816 C 16.338,0.813 15.524,0 14.522,0" style="fill: rgb(0, 116, 190); fill-rule: evenodd;" id="path2223"/><path d="M 101.95,0 L 101.041,0 C 96.528,0 92.873,3.659 92.873,8.171 L 92.873,18.357 C 92.873,19.359 93.683,20.172 94.687,20.172 L 96.503,20.172 C 97.504,20.172 98.315,19.359 98.315,18.357 L 98.315,6.357 C 98.315,4.852 99.536,3.631 101.041,3.631 L 101.95,3.631 C 102.952,3.631 103.764,2.819 103.764,1.816 C 103.764,0.813 102.952,0 101.95,0" style="fill: rgb(0, 116, 190); fill-rule: evenodd;" id="path2225"/><path d="M 82.467,0 C 77.956,0 74.296,3.659 74.296,8.171 L 74.296,12.002 C 74.296,16.514 77.956,20.172 82.467,20.172 C 86.978,20.172 90.638,16.514 90.638,12.002 L 90.638,8.171 C 90.638,3.659 86.978,0 82.467,0 M 85.188,13.818 C 85.188,15.322 83.97,16.541 82.466,16.541 C 80.961,16.541 79.742,15.322 79.742,13.818 L 79.742,6.357 C 79.742,4.852 80.961,3.631 82.466,3.631 C 83.97,3.631 85.188,4.852 85.188,6.357 L 85.188,13.818 z " style="fill: rgb(0, 116, 190); fill-rule: evenodd;" id="path2227"/><path d="M 63.892,0 C 59.379,0 55.722,3.659 55.722,8.171 L 55.722,18.357 C 55.722,19.359 56.535,20.172 57.539,20.172 L 59.353,20.172 C 60.356,20.172 61.169,19.359 61.169,18.357 L 61.169,6.357 C 61.169,4.852 62.388,3.631 63.891,3.631 C 65.395,3.631 66.616,4.852 66.616,6.357 L 66.616,18.357 C 66.616,19.359 67.429,20.172 68.43,20.172 L 70.245,20.172 C 71.251,20.172 72.062,19.359 72.062,18.357 L 72.062,8.171 C 72.063,3.659 68.405,0 63.892,0" style="fill: rgb(0, 116, 190); fill-rule: evenodd;" id="path2231"/><path d="M 45.317,0 C 40.806,0 37.149,3.659 37.149,8.171 L 37.149,12.002 C 37.149,16.514 40.806,20.172 45.317,20.172 C 49.831,20.172 53.488,16.514 53.488,12.002 L 53.488,8.171 C 53.488,3.659 49.831,0 45.317,0 M 48.041,13.818 C 48.041,15.322 46.821,16.541 45.317,16.541 C 43.814,16.541 42.593,15.322 42.593,13.818 L 42.593,6.357 C 42.593,4.852 43.814,3.631 45.317,3.631 C 46.821,3.631 48.041,4.852 48.041,6.357 L 48.041,13.818 z " style="fill: rgb(0, 116, 190); fill-rule: evenodd;" id="path2233"/></g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.2 KiB |
BIN
images/veml6030.jpg
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
images/veml7700.jpg
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
images/waveshare_touch-s3.jpg
Normal file
After Width: | Height: | Size: 25 KiB |
27
index.rst
@ -179,6 +179,7 @@ Air Quality
|
||||
***********
|
||||
.. imgtable::
|
||||
|
||||
AGS10, components/sensor/ags10, ags10.jpg, Volatile Organic Compound Sensor
|
||||
AirThings BLE, components/sensor/airthings_ble, airthings_logo.png, Radon, CO2, Volatile organics
|
||||
CCS811, components/sensor/ccs811, ccs811.jpg, CO2 & Volatile organics
|
||||
EE895, components/sensor/ee895, EE895.png, CO2 & Temperature & Pressure
|
||||
@ -214,6 +215,7 @@ Analogue
|
||||
ADC, components/sensor/adc, flash.svg, ESP internal, dark-invert
|
||||
ADC128S102, components/sensor/adc128s102, adc128s102.png , 8-channel ADC
|
||||
ADS1115, components/sensor/ads1115, ads1115.jpg, 4-channel ADC
|
||||
ADS1118, components/sensor/ads1118, ads1118.jpg, 4-channel ADC
|
||||
CD74HC4067, components/sensor/cd74hc4067, cd74hc4067.jpg, 16-channel analog multiplexer
|
||||
MCP3008, components/sensor/mcp3008, mcp3008.jpg, 8-channel ADC
|
||||
MCP3204 / MCP3208, components/sensor/mcp3204, mcp3204.jpg, 4-channel ADC
|
||||
@ -262,6 +264,7 @@ Electricity
|
||||
***********
|
||||
.. imgtable::
|
||||
|
||||
ADE7880, components/sensor/ade7880, ade7880.svg, Voltage & Current & Power
|
||||
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
|
||||
@ -279,6 +282,7 @@ Electricity
|
||||
INA226, components/sensor/ina226, ina226.jpg, DC Current & Power
|
||||
INA260, components/sensor/ina260, ina260.jpg, DC Current & Power
|
||||
INA3221, components/sensor/ina3221, ina3221.jpg, 3-Ch DC current
|
||||
Kamstrup KMP, components/sensor/kamstrup_kmp, kamstrup_kmp.jpg, District Heating Meter
|
||||
MAX9611, components/sensor/max9611, max9611.jpg, +60VDC Voltage & Current & Power & Temperature
|
||||
PZEM AC, components/sensor/pzemac, pzem-ac.jpg, Voltage & Current & Power
|
||||
PZEM DC, components/sensor/pzemdc, pzem-dc.jpg, Voltage & Current & Power
|
||||
@ -297,6 +301,7 @@ Environmental
|
||||
Absolute Humidity, components/sensor/absolute_humidity, water-drop.svg, dark-invert
|
||||
AHT10 / AHT20 / AHT21 / DHT20, components/sensor/aht10, aht10.jpg, Temperature & Humidity
|
||||
AirThings BLE, components/sensor/airthings_ble, airthings_logo.png, Temperature & Humidity & Pressure
|
||||
AM2315C, components/sensor/am2315c, am2315c.jpg, Temperature & Humidity
|
||||
AM2320, components/sensor/am2320, am2320.jpg, Temperature & Humidity
|
||||
BME280, components/sensor/bme280, bme280.jpg, Temperature & Humidity & Pressure
|
||||
BME680, components/sensor/bme680, bme680.jpg, Temperature & Humidity & Pressure & Gas
|
||||
@ -319,6 +324,7 @@ Environmental
|
||||
Honeywell ABP2 I2C, components/sensor/honeywellabp2_i2c, honeywellabp.jpg, Pressure & Temperature
|
||||
Honeywell HIH I2C, components/sensor/honeywell_hih_i2c, honeywellhih.jpg, Temperature & Humidity
|
||||
HTU21D / Si7021 / SHT21, components/sensor/htu21d, htu21d.jpg, Temperature & Humidity
|
||||
HTU31D, components/sensor/htu31d, htu31d.jpg, Temperature & Humidity
|
||||
Hydreon Rain Sensor, components/sensor/hydreon_rgxx, hydreon_rg9.jpg, Rain
|
||||
Inkbird IBS-TH1 Mini, components/sensor/inkbird_ibsth1_mini, inkbird_isbth1_mini.jpg, Temperature & Humidity
|
||||
Internal Temperature, components/sensor/internal_temperature, thermometer.svg, Temperature, dark-invert
|
||||
@ -327,6 +333,7 @@ Environmental
|
||||
MLX90614, components/sensor/mlx90614, mlx90614.jpg, Temperature
|
||||
MPL3115A2, components/sensor/mpl3115a2, mpl3115a2.jpg, Temperature & Pressure
|
||||
MS5611, components/sensor/ms5611, ms5611.jpg, Pressure
|
||||
MS8607, components/sensor/ms8607, ms8607.jpg, Temperature & Humidity & Pressure
|
||||
NTC Thermistor, components/sensor/ntc, ntc.jpg, Temperature
|
||||
PMWCS3, components/sensor/pmwcs3, pmwcs3.jpg, Soil moisture & Temperature
|
||||
QMP6988, components/sensor/qmp6988, qmp6988_env3.png, Temperature & Pressure
|
||||
@ -363,6 +370,8 @@ Light
|
||||
TSL2561, components/sensor/tsl2561, tsl2561.jpg, Lux
|
||||
TSL2591, components/sensor/tsl2591, tsl2591.jpg, Lux
|
||||
VEML3235, components/sensor/veml3235, veml3235.jpg, Lux
|
||||
VEML6030, components/sensor/veml7700, veml6030.jpg, Lux
|
||||
VEML7700, components/sensor/veml7700, veml7700.jpg, Lux
|
||||
|
||||
|
||||
Magnetic
|
||||
@ -415,6 +424,7 @@ Motion
|
||||
BMI160, components/sensor/bmi160, bmi160.jpg, Accelerometer & Gyroscope
|
||||
LD2410, components/sensor/ld2410, ld2410.jpg, Motion & Presence
|
||||
LD2420, components/sensor/ld2420, ld2420.jpg, Motion & Presence
|
||||
Seeed Studio MR24HPC1 mmWave, components/seeed_mr24hpc1, seeed-mr24hpc1.jpg, Motion & Presence
|
||||
MPU6050, components/sensor/mpu6050, mpu6050.jpg, Accelerometer & Gyroscope
|
||||
MPU6886, components/sensor/mpu6886, mpu6886.jpg, Accelerometer & Gyroscope
|
||||
RuuviTag, components/sensor/ruuvitag, ruuvitag.jpg, Temperature & Humidity & Accelerometer
|
||||
@ -509,6 +519,7 @@ Presence Detection
|
||||
DFRobot mmWave Radar, components/dfrobot_sen0395, dfrobot_sen0395.jpg
|
||||
LD2410, components/sensor/ld2410, ld2410.jpg
|
||||
LD2420, components/sensor/ld2420, ld2420.jpg
|
||||
Seeed Studio MR24HPC1 mmWave, components/seeed_mr24hpc1, seeed-mr24hpc1.jpg
|
||||
|
||||
Miscellaneous
|
||||
*************
|
||||
@ -643,6 +654,7 @@ Fan Components
|
||||
H-bridge Fan, components/fan/hbridge, fan.svg, dark-invert
|
||||
Speed Fan, components/fan/speed, fan.svg, dark-invert
|
||||
Tuya Fan, components/fan/tuya, tuya.png
|
||||
Template Fan, components/fan/template, description.svg, dark-invert
|
||||
|
||||
Display Components
|
||||
------------------
|
||||
@ -650,6 +662,7 @@ Display Components
|
||||
.. imgtable::
|
||||
|
||||
Display Core, components/display/index, folder-open.svg, dark-invert
|
||||
Font Renderer, components/display/fonts, format-font.svg, dark-invert
|
||||
Addressable Light, components/display/addressable_light, addressable_light.jpg
|
||||
ILI9xxx, components/display/ili9xxx, ili9341.jpg
|
||||
ILI9341, components/display/ili9xxx, ili9341.svg
|
||||
@ -665,7 +678,9 @@ Display Components
|
||||
MAX7219 Dot Matrix, components/display/max7219digit, max7219digit.jpg
|
||||
Nextion, components/display/nextion, nextion.jpg
|
||||
PCD8544 (Nokia 5110/ 3310), components/display/pcd8544, pcd8544.jpg
|
||||
Quad SPI AMOLED, components/display/qspi_amoled, t4-s3.jpg
|
||||
PVVX MiThermometer, components/display/pvvx_mithermometer, ../components/sensor/images/xiaomi_lywsd03mmc.jpg
|
||||
RPI_DPI_RGB, components/display/rpi_dpi_rgb, waveshare_touch-s3.jpg
|
||||
SSD1306, components/display/ssd1306, ssd1306.jpg
|
||||
SSD1322, components/display/ssd1322, ssd1322.jpg
|
||||
SSD1325, components/display/ssd1325, ssd1325.jpg
|
||||
@ -674,6 +689,7 @@ Display Components
|
||||
SSD1351, components/display/ssd1351, ssd1351.jpg
|
||||
ST7567, components/display/st7567, st7567.jpg
|
||||
ST7735, components/display/st7735, st7735.jpg
|
||||
ST7701S, components/display/st7701s, indicator.jpg
|
||||
ST7789V, components/display/st7789v, st7789v.jpg
|
||||
ST7796, components/display/ili9xxx, st7796.svg
|
||||
ST7920, components/display/st7920, st7920.jpg
|
||||
@ -688,10 +704,12 @@ Touchscreen Components
|
||||
.. imgtable::
|
||||
|
||||
Touchscreen Core, components/touchscreen/index, folder-open.svg, dark-invert
|
||||
CST816, components/touchscreen/cst816, cst816.jpg
|
||||
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
|
||||
XPT2046, components/touchscreen/xpt2046, xpt2046.jpg
|
||||
CST226, components/touchscreen/cst226, t4-s3.jpg
|
||||
GT911, components/touchscreen/gt911, esp32_s3_box_3.png
|
||||
FT63X6, components/touchscreen/ft63x6, wt32-sc01.png
|
||||
|
||||
@ -748,6 +766,7 @@ Climate Components
|
||||
Anova Cooker, components/climate/anova, anova.png
|
||||
BedJet Climate System, components/climate/bedjet, bedjet.png
|
||||
Haier Climate, components/climate/haier, haier.svg
|
||||
Uponor Smatrix Base Pulse Underfloor Heating, components/uponor_smatrix, uponor.svg
|
||||
|
||||
Number Components
|
||||
-----------------
|
||||
@ -844,6 +863,14 @@ Alarm Control Panel Components
|
||||
Alarm Control Panel Core, components/alarm_control_panel/index, alarm-panel.svg, dark-invert
|
||||
Template Alarm Control Panel, components/alarm_control_panel/template, description.svg, dark-invert
|
||||
|
||||
Datetime Components
|
||||
-------------------
|
||||
|
||||
.. imgtable::
|
||||
|
||||
Datetime Core, components/datetime/index, clock-outline.svg, dark-invert
|
||||
Template Datetime, components/datetime/template, description.svg, dark-invert
|
||||
|
||||
Miscellaneous Components
|
||||
------------------------
|
||||
|
||||
|
@ -244,7 +244,7 @@ stopped midway. An example GET request for ``/cover/front_window_blinds`` might
|
||||
- **tilt**: (only if supported by this cover component) tilt angle from 0.0 to 1.0.
|
||||
|
||||
POST requests on the other hand allow performing actions on the cover, the available
|
||||
methods being ``open``, ``close``, ``stop`` and ``set``. The following parameters
|
||||
methods being ``open``, ``close``, ``stop``, ``toggle`` and ``set``. The following parameters
|
||||
can be used:
|
||||
|
||||
- **position**: The target position for a ``set`` call. The ``open`` method implies
|
||||
|