Merge pull request #2031 from esphome/bump-2022.4.0

2022.4.0
This commit is contained in:
Jesse Hills 2022-04-21 07:43:45 +12:00 committed by GitHub
commit f130f0cb67
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
38 changed files with 1054 additions and 34 deletions

View File

@ -38,7 +38,7 @@ PROJECT_NAME = "ESPHome"
# could be handy for archiving the generated documentation or if some version # could be handy for archiving the generated documentation or if some version
# control system is used. # control system is used.
PROJECT_NUMBER = 2022.3.2 PROJECT_NUMBER = 2022.4.0
# Using the PROJECT_BRIEF tag one can provide an optional one line description # Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a # for a project that appears at the top of each page and should give viewer a

View File

@ -1,5 +1,5 @@
ESPHOME_PATH = ../esphome ESPHOME_PATH = ../esphome
ESPHOME_REF = 2022.3.2 ESPHOME_REF = 2022.4.0
.PHONY: html html-strict cleanhtml deploy help live-html Makefile netlify netlify-api api netlify-dependencies svg2png copy-svg2png minify .PHONY: html html-strict cleanhtml deploy help live-html Makefile netlify netlify-api api netlify-dependencies svg2png copy-svg2png minify

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

View File

@ -1 +1 @@
2022.3.2 2022.4.0

240
changelog/2022.4.0.rst Normal file
View File

@ -0,0 +1,240 @@
ESPHome 2022.4.0 - 20th April 2022
==================================
.. seo::
:description: Changelog for ESPHome 2022.4.0.
:image: /_static/changelog-2022.4.0.png
:author: Jesse Hills
:author_twitter: @jesserockz
.. imgtable::
:columns: 3
QMP6988, components/sensor/qmp6988, qmp6988_env3.png
Hydreon Rain Sensor, components/binary_sensor/hydreon_rgxx, hydreon_rg9.jpg
Mi Motion Sensor 2, components/sensor/xiaomi_ble, xiaomi_rtcgq02lm.jpg
Sonoff D1 Dimmer, components/light/sonoff_d1, sonoff_d1.jpg
MCP3208, components/sensor/mcp3204, mcp3204.jpg
Shelly Dimmer, components/light/shelly_dimmer, shellydimmer2.jpg
Home Assistant Addon Repo
-------------------------
This is a repeat from the 2022.2 release notes.
The `ESPHome Home Assistant addon repository <https://github.com/esphome/home-assistant-addon>`__
is added by default to new Home Assistant installations. Because of this, we have decided that we would
deprecate the ESPHome addon inside the `Community Addons <https://github.com/hassio-addons/repository>`__
and everyone should move to the ESPHome repo. It is safe to delete the Community ESPHome addon as
your configuration YAML files are stored in the Home Assistant configuration folder.
You can add the repository here:
.. raw:: html
<a href="https://my.home-assistant.io/redirect/supervisor_add_addon_repository/?repository_url=https%3A%2F%2Fgithub.com%2Fesphome%2Fhome-assistant-addon"
target="_blank">
<img src="https://my.home-assistant.io/badges/supervisor_add_addon_repository.svg"
alt="Open your Home Assistant instance and show the add add-on repository dialog with a specific repository URL pre-filled." />
</a>
And then install the latest ESPHome addon here:
.. raw:: html
<a href="https://my.home-assistant.io/redirect/supervisor_addon/?addon=5c53de3b_esphome" target="_blank">
<img src="https://my.home-assistant.io/badges/supervisor_addon.svg"
alt="Open your Home Assistant instance and show the dashboard of a Supervisor add-on." />
</a>
Python 3.8 Minimum
------------------
A friendly reminder that 2022.3 set the minimum Python version to 3.8.
Please upgrade your local python if you are unable to update ESPHome further.
This is taken care of automatically if you are using the Home Assistant Add-on, or the
ESPHome docker container.
Shelly Dimmer 2
---------------
Support for the STM32 chip of the Shelly Dimmer has been added in this release. The component also supports flashing custom firmware to the
stm32 via ESPHome which is required to use the component. See the :doc:`documentation </components/light/shelly_dimmer>` for more details.
Google Fonts
------------
:ghuser:`OttoWinter` has given everyone a way to use Google Fonts in their yaml and displays without having to manually download
ttf font files. The exqample below will automatically download and cache the Roboto ttf font file required so you can utilise it.
See the :ref:`display-static_text` documentation for more details.
.. code-block:: yaml
font:
- file: "gfonts://Roboto"
id: roboto
size: 20
Deep sleep wakeup time
----------------------
Deep sleep for ESP32 has had a new feature added.
.. code-block:: yaml
on_...:
- deep_sleep.enter:
until: "14:00:00"
time_id: ...
This will automatically calculate the time required to deep sleep to ensure that the device will
wake up at "14:00:00". The time format here is local time to match the timezone you have configured and
this requires a time component to be configured.
Sensors imported from Home Assistant
------------------------------------
In this release there is a breaking change on the sensors that are imported from homeassistant, ``platform: homeassistant``.
They will now default to being internal to ESPHome and will not be re-exported back to Home Assistant, MQTT or the web server.
This change makes sense as it was just extra sensors and netowkr traffic. You are able to add these back as non internal by
adding ``internal: false`` to the yaml for each of the sensors.
Full list of changes
--------------------
New Features
^^^^^^^^^^^^
- Allow to set user defined characters on LCD :esphomepr:`3322` by :ghuser:`numo68` (new-feature)
- Font allow using google fonts directly :esphomepr:`3243` by :ghuser:`OttoWinter` (new-feature) (notable-change)
- Add mqtt for idf :esphomepr:`2930` by :ghuser:`martgras` (new-feature)
- Extend mcp3204 to support 8 channels (mcp3208 variant) :esphomepr:`3332` by :ghuser:`RadekHvizdos` (new-feature)
- Add cover toggle support to endstop cover :esphomepr:`3358` by :ghuser:`rrooggiieerr` (new-feature)
- Remote base pronto receive :esphomepr:`2826` by :ghuser:`cvwillegen` (new-feature)
- Allow specifying deep sleep wakup clock time :esphomepr:`3312` by :ghuser:`jesserockz` (new-feature)
New Components
^^^^^^^^^^^^^^
- Add support for QMP6988 Pressure sensor :esphomepr:`3192` by :ghuser:`andrewpc` (new-integration)
- Add integration hydreon_rgxx for rain sensors by Hydreon :esphomepr:`2711` by :ghuser:`functionpointer` (new-integration)
- Add Xiaomi RTCGQ02LM - Mi Motion Sensor 2 :esphomepr:`3186` by :ghuser:`jesserockz` (new-integration)
- Add Sonoff D1 Dimmer support :esphomepr:`2775` by :ghuser:`anatoly-savchenkov` (new-integration)
- Refactor Sensirion Sensors :esphomepr:`3374` by :ghuser:`martgras` (new-integration)
- Add support for Shelly Dimmer 2 :esphomepr:`2954` by :ghuser:`rnauber` (new-integration)
Breaking Changes
^^^^^^^^^^^^^^^^
- Make home_assistant imported sensors internal by default :esphomepr:`3372` by :ghuser:`jesserockz` (breaking-change)
Beta Changes
^^^^^^^^^^^^
- Actually increase request memory for json parsing :esphomepr:`3331` by :ghuser:`jesserockz`
- Actually increase request memory for json parsing :esphomepr:`3331` by :ghuser:`jesserockz`
- Changes accuracy of single cell voltage :esphomepr:`3387` by :ghuser:`matthias882`
- Add support for Shelly Dimmer 2 :esphomepr:`2954` by :ghuser:`rnauber` (new-integration)
- Allocate smaller amount of buffer for JSON :esphomepr:`3384` by :ghuser:`dz0ny`
- Fix power_delivered/produced_phase sensor deviceclass in DSMR :esphomepr:`3395` by :ghuser:`mvdwetering`
- Shelly Dimmer: Delete obsolete LICENSE.txt :esphomepr:`3394` by :ghuser:`rnauber`
- Dont require empty object for wifi ap with defaults :esphomepr:`3404` by :ghuser:`jesserockz`
Notable Changes
^^^^^^^^^^^^^^^
- Font allow using google fonts directly :esphomepr:`3243` by :ghuser:`OttoWinter` (new-feature) (notable-change)
All changes
^^^^^^^^^^^
- Bump pytest-asyncio from 0.18.1 to 0.18.2 :esphomepr:`3262` by :ghuser:`dependabot[bot]`
- Bump zeroconf from 0.38.3 to 0.38.4 :esphomepr:`3257` by :ghuser:`dependabot[bot]`
- Bump click from 8.0.3 to 8.0.4 :esphomepr:`3248` by :ghuser:`dependabot[bot]`
- Bump docker dependencies :esphomepr:`3281` by :ghuser:`OttoWinter`
- Fixed wrong comment :esphomepr:`3286` by :ghuser:`Rai-Rai`
- Add support for QMP6988 Pressure sensor :esphomepr:`3192` by :ghuser:`andrewpc` (new-integration)
- Adds support for b-parasite's v2 BLE protocol :esphomepr:`3290` by :ghuser:`rbaron`
- increase delay for Ethernet module warm up Safe Mode :esphomepr:`3326` by :ghuser:`nagyrobi`
- Bump esptool from 3.2 to 3.3 :esphomepr:`3327` by :ghuser:`dependabot[bot]`
- Allow to set user defined characters on LCD :esphomepr:`3322` by :ghuser:`numo68` (new-feature)
- Font allow using google fonts directly :esphomepr:`3243` by :ghuser:`OttoWinter` (new-feature) (notable-change)
- Actually increase request memory for json parsing :esphomepr:`3331` by :ghuser:`jesserockz`
- Actually increase request memory for json parsing :esphomepr:`3331` by :ghuser:`jesserockz`
- Change beginning of file comments to avoid creating doxygen tag for `esphome` namespace :esphomepr:`3314` by :ghuser:`e28eta`
- Publish custom data when modbus number lambda fills vector :esphomepr:`3295` by :ghuser:`jesserockz`
- Define touchscreen support when in use. :esphomepr:`3296` by :ghuser:`geiseri`
- New vscode schema gen :esphomepr:`3336` by :ghuser:`glmnet`
- protobuf: fix incomplete 64 bits implementation :esphomepr:`3341` by :ghuser:`ianchi`
- feat: support ble_client that use security w/o pin codes :esphomepr:`3320` by :ghuser:`ammmze`
- Add mqtt for idf :esphomepr:`2930` by :ghuser:`martgras` (new-feature)
- Added a function to load custom characters in LCD display :esphomepr:`3279` by :ghuser:`andrewjswan`
- CAN bus: support remote transmission request flag for canbus.send :esphomepr:`3193` by :ghuser:`felixstorm`
- Tm1637 binarysensor :esphomepr:`2792` by :ghuser:`mvturnho`
- Bump click from 8.0.4 to 8.1.2 :esphomepr:`3351` by :ghuser:`dependabot[bot]`
- Bump pylint from 2.12.2 to 2.13.4 :esphomepr:`3348` by :ghuser:`dependabot[bot]`
- Bump pytest-asyncio from 0.18.2 to 0.18.3 :esphomepr:`3335` by :ghuser:`dependabot[bot]`
- Bump pytest from 7.0.1 to 7.1.1 :esphomepr:`3313` by :ghuser:`dependabot[bot]`
- Bump docker dependencies :esphomepr:`3354` by :ghuser:`OttoWinter`
- Bump voluptuous from 0.12.2 to 0.13.0 :esphomepr:`3355` by :ghuser:`dependabot[bot]`
- Bump tzlocal from 4.1 to 4.2 :esphomepr:`3356` by :ghuser:`dependabot[bot]`
- Bump pyupgrade from 2.31.0 to 2.31.1 :esphomepr:`3292` by :ghuser:`dependabot[bot]`
- Bump black from 22.1.0 to 22.3.0 :esphomepr:`3357` by :ghuser:`dependabot[bot]`
- Allow on_value_range for sensor and number to be templated :esphomepr:`3359` by :ghuser:`jesserockz`
- Add support for Electrolux heatpump and bump arduino-heatpumpir version :esphomepr:`3353` by :ghuser:`ikilledmypc`
- Implement newer RTU protocol of Growatt inverters :esphomepr:`3315` by :ghuser:`djwlindenaar`
- Add parameter to control i2c stop signal at endTransmission :esphomepr:`3370` by :ghuser:`kbickar`
- Fix SHTC3 sensor detection :esphomepr:`3365` by :ghuser:`ssieb`
- Extend mcp3204 to support 8 channels (mcp3208 variant) :esphomepr:`3332` by :ghuser:`RadekHvizdos` (new-feature)
- Bump pyupgrade from 2.31.1 to 2.32.0 :esphomepr:`3366` by :ghuser:`dependabot[bot]`
- Bump voluptuous from 0.13.0 to 0.13.1 :esphomepr:`3364` by :ghuser:`dependabot[bot]`
- Bump pylint from 2.13.4 to 2.13.5 :esphomepr:`3363` by :ghuser:`dependabot[bot]`
- Fix HM3301 AQI int8 overflow :esphomepr:`3361` by :ghuser:`calco88`
- Add cover toggle support to endstop cover :esphomepr:`3358` by :ghuser:`rrooggiieerr` (new-feature)
- Make home_assistant imported sensors internal by default :esphomepr:`3372` by :ghuser:`jesserockz` (breaking-change)
- Add integration hydreon_rgxx for rain sensors by Hydreon :esphomepr:`2711` by :ghuser:`functionpointer` (new-integration)
- Addition of Deep Sleep RTC pin definition for ESP32-S2 :esphomepr:`3303` by :ghuser:`andrewpc`
- Add Xiaomi RTCGQ02LM - Mi Motion Sensor 2 :esphomepr:`3186` by :ghuser:`jesserockz` (new-integration)
- Add Sonoff D1 Dimmer support :esphomepr:`2775` by :ghuser:`anatoly-savchenkov` (new-integration)
- Remote base pronto receive :esphomepr:`2826` by :ghuser:`cvwillegen` (new-feature)
- Use correct http defines :esphomepr:`3378` by :ghuser:`dz0ny`
- Refactor Sensirion Sensors :esphomepr:`3374` by :ghuser:`martgras` (new-integration)
- Fix silent config errors :esphomepr:`3380` by :ghuser:`jesserockz`
- Move PN532OnTagTrigger to nfc::NfcOnTagTrigger :esphomepr:`3379` by :ghuser:`jesserockz`
- Allow specifying deep sleep wakup clock time :esphomepr:`3312` by :ghuser:`jesserockz` (new-feature)
- Changes accuracy of single cell voltage :esphomepr:`3387` by :ghuser:`matthias882`
- Add support for Shelly Dimmer 2 :esphomepr:`2954` by :ghuser:`rnauber` (new-integration)
- Allocate smaller amount of buffer for JSON :esphomepr:`3384` by :ghuser:`dz0ny`
- Fix power_delivered/produced_phase sensor deviceclass in DSMR :esphomepr:`3395` by :ghuser:`mvdwetering`
- Shelly Dimmer: Delete obsolete LICENSE.txt :esphomepr:`3394` by :ghuser:`rnauber`
- Dont require empty object for wifi ap with defaults :esphomepr:`3404` by :ghuser:`jesserockz`
Past Changelogs
---------------
- :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`

View File

@ -2,7 +2,7 @@ Changelog
========= =========
.. redirect:: .. redirect::
:url: /changelog/2022.3.0.html :url: /changelog/2022.4.0.html
.. toctree:: .. toctree::
:glob: :glob:

View File

@ -0,0 +1,55 @@
Hydreon Rain Sensor Binary Sensor
=================================
.. seo::
:description: Instructions for setting up Hydreon rain sensors
:image: hydreon_rg9.jpg
:keywords: hydreon
The ``hydreon_rgxx`` binary sensor platform gives access to information provided by a Hydreon Rain Sensor.
For this sensor to work, a :doc:`/components/sensor/hydreon_rgxx` must be set up.
.. code-block:: yaml
# Example RG-9 entry
uart:
rx_pin: GPIO16
tx_pin: GPIO17
baud_rate: 9600
sensor:
- platform: hydreon_rgxx
model: "RG_9"
id: "hydreon_1"
update_interval: 1s
moisture:
name: "rain"
expire_after: 30s
binary_sensor:
- platform: hydreon_rgxx
hydreon_rgxx_id: "hydreon_1"
too_cold:
name: "too cold"
Configuration variables:
------------------------
- **hydreon_rgxx_id** (*Optional*, :ref:`config-id`): The ID of the Hydreon Rain Sensor display.
- **too_cold** (*Optional*): `true` if the sensor reports being too cold. Hydreon only mentions this feature for the RG-9.
- **name** (**Required**, string): The name for the voltage sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Binary Sensor <config-binary_sensor>`.
See Also
--------
- :doc:`/components/sensor/hydreon_rgxx`
- :doc:`index`
- :ghedit:`Edit`

View File

@ -83,16 +83,17 @@ Configuration variables:
Automations: Automations:
------------ ------------
- **on_frame** (*Optional*, :ref:`Automation <automation>`): An automation to perform when ability - **on_frame** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
CAN Frame is received. See :ref:`canbus-on-frame`. CAN frame is received. See :ref:`canbus-on-frame`.
.. _canbus-on-frame: .. _canbus-on-frame:
``on_frame`` ``on_frame``
************ ************
This automation will be triggered when a can frame is received. A variable ``x`` of type This automation will be triggered when a CAN frame is received. A variable ``x`` of type
``std::vector<uint8_t>`` is passed to the automation for use in lambdas. ``std::vector<uint8_t>`` containing the frame data and a variable ``can_id`` of type ``uint32_t``
containing the actual received CAN id are passed to the automation for use in lambdas.
.. note:: .. note::
@ -110,6 +111,34 @@ This automation will be triggered when a can frame is received. A variable ``x`
lambda: 'return (x.size() > 0) ? x[0] == 0x11 : false;' lambda: 'return (x.size() > 0) ? x[0] == 0x11 : false;'
then: then:
light.toggle: light1 light.toggle: light1
- can_id: 0b00000000000000000000001000000
can_id_mask: 0b11111000000000011111111000000
use_extended_id: true
then:
- lambda: |-
auto pdo_id = can_id >> 14;
switch (pdo_id)
{
case 117:
ESP_LOGD("canbus", "exhaust_fan_duty");
break;
case 118:
ESP_LOGD("canbus", "supply_fan_duty");
break;
case 119:
ESP_LOGD("canbus", "supply_fan_flow");
break;
// to be continued...
}
Configuration variables:
************************
- **can_id** (**Required**, int): The received CAN id to trigger this automation on.
- **can_id_mask** (*Optional*, int): The bit mask to apply to the received CAN id before trying to match it
with *can_id*, defaults to ``0x1fffffff`` (all bits of received CAN id are compared with *can_id*).
- **use_extended_id** (*Optional*, boolean): Identifies the type of *can_id* to match on, defaults to *false*.
``canbus.send`` Action ``canbus.send`` Action
********************** **********************
@ -144,6 +173,8 @@ Configuration variables:
the can bus device. the can bus device.
- **use_extended_id** (*Optional*, boolean): default *false* identifies the type of *can_id*: - **use_extended_id** (*Optional*, boolean): default *false* identifies the type of *can_id*:
*false*: Standard 11 Bit IDs, *true*: Extended 29Bit ID *false*: Standard 11 Bit IDs, *true*: Extended 29Bit ID
- **remote_transmission_request** (*Optional*, boolean): Set to send CAN bus frame to request data from another node
(defaults to *false*). If a certain data length code needs to be sent, provide as many (dummy) bytes in *data*.
ESP32 CAN Component ESP32 CAN Component
------------------- -------------------

View File

@ -98,7 +98,7 @@ This platform utilises the library's generic one-size-fits-all API, which might
Additional configuration must be specified for this platform: Additional configuration must be specified for this platform:
- **protocol** (**Required**, string): Choose one of Arduino-HeatpumpIR's supported protcols: ``aux``, ``ballu``, ``carrier_mca``, ``carrier_nqv``, ``daikin_arc417``, ``daikin_arc480``, ``daikin``, ``fuego``, ``fujitsu_awyz``, ``gree``, ``greeya``, ``greeyac``, ``greeyan``, ``hisense_aud``, ``hitachi``, ``hyundai``, ``ivt``, ``midea``, ``mitsubishi_fa``, ``mitsubishi_fd``, ``mitsubishi_fe``, ``mitsubishi_heavy_fdtc``, ``mitsubishi_heavy_zj``, ``mitsubishi_heavy_zm``, ``mitsubishi_heavy_zmp``, ``mitsubishi_heavy_kj``, ``mitsubishi_msc``, ``mitsubishi_msy``, ``mitsubishi_sez``, ``panasonic_ckp``, ``panasonic_dke``, ``panasonic_jke``, ``panasonic_lke``, ``panasonic_nke``, ``samsung_aqv``, ``samsung_fjm``, ``sharp``, ``toshiba_daiseikai``, ``toshiba`` - **protocol** (**Required**, string): Choose one of Arduino-HeatpumpIR's supported protcols: ``aux``, ``ballu``, ``carrier_mca``, ``carrier_nqv``, ``daikin_arc417``, ``daikin_arc480``, ``daikin``, ``electroluxyal``, ``fuego``, ``fujitsu_awyz``, ``gree``, ``greeya``, ``greeyac``, ``greeyan``, ``hisense_aud``, ``hitachi``, ``hyundai``, ``ivt``, ``midea``, ``mitsubishi_fa``, ``mitsubishi_fd``, ``mitsubishi_fe``, ``mitsubishi_heavy_fdtc``, ``mitsubishi_heavy_zj``, ``mitsubishi_heavy_zm``, ``mitsubishi_heavy_zmp``, ``mitsubishi_heavy_kj``, ``mitsubishi_msc``, ``mitsubishi_msy``, ``mitsubishi_sez``, ``panasonic_ckp``, ``panasonic_dke``, ``panasonic_jke``, ``panasonic_lke``, ``panasonic_nke``, ``samsung_aqv``, ``samsung_fjm``, ``sharp``, ``toshiba_daiseikai``, ``toshiba``
- **horizontal_default** (**Required**, string): What to default to when the AC unit's horizontal direction is *not* set to swing. Options are: ``left``, ``mleft``, ``middle``, ``mright``, ``right``, ``auto`` - **horizontal_default** (**Required**, string): What to default to when the AC unit's horizontal direction is *not* set to swing. Options are: ``left``, ``mleft``, ``middle``, ``mright``, ``right``, ``auto``
- **vertical_default** (**Required**, string): What to default to when the AC unit's vertical direction is *not* set to swing. Options are: ``down``, ``mdown``, ``middle``, ``mup``, ``up``, ``auto`` - **vertical_default** (**Required**, string): What to default to when the AC unit's vertical direction is *not* set to swing. Options are: ``down``, ``mdown``, ``middle``, ``mup``, ``up``, ``auto``
- **max_temperature** (**Required**, float): The maximum temperature that the AC unit supports being set to. - **max_temperature** (**Required**, float): The maximum temperature that the AC unit supports being set to.

View File

@ -97,9 +97,20 @@ This action makes the given deep sleep component enter deep sleep immediately.
id: deep_sleep_1 id: deep_sleep_1
sleep_duration: 20min sleep_duration: 20min
# ESP32 can sleep until a specific time of day.
on_...:
then:
- deep_sleep.enter:
id: deep_sleep_1
until: "16:00:00"
time_id: sntp_id
Configuration options: Configuration options:
- **sleep_duration** (*Optional*, :ref:`templatable <config-templatable>`, :ref:`config-time`): The time duration to stay in deep sleep mode. - **sleep_duration** (*Optional*, :ref:`templatable <config-templatable>`, :ref:`config-time`): The time duration to stay in deep sleep mode.
- **until** (*Optional*, string): The time of day to wake up. Only on ESP32.
- **time_id** (*Optional*, :ref:`config-id`): The ID of the time component to use for the ``until`` option. Only on ESP32.
.. _deep_sleep-prevent_action: .. _deep_sleep-prevent_action:

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

View File

@ -143,8 +143,8 @@ You can view the full API documentation for the rendering engine in the "API Ref
.. _display-static_text: .. _display-static_text:
Drawing Static Text Fonts
******************* *****
The rendering engine also has a powerful font drawer which integrates seamlessly into ESPHome. The rendering engine also has a powerful font drawer which integrates seamlessly into ESPHome.
Whereas in most Arduino display projects you have to use one of a few pre-defined fonts in very Whereas in most Arduino display projects you have to use one of a few pre-defined fonts in very
@ -164,13 +164,44 @@ Next, create a ``font:`` section in your configuration:
id: my_font id: my_font
size: 20 size: 20
# gfonts://family[@weight]
- file: "gfonts://Roboto"
id: roboto
size: 20
display: display:
# ... # ...
Configuration variables: Configuration variables:
- **file** (**Required**, string): The path (relative to where the .yaml file is) of the TrueType font - **file** (**Required**): The path (relative to where the .yaml file is) of the TrueType font
file. 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.
- **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 font file.
- **id** (**Required**, :ref:`config-id`): The ID with which you will be able to reference the font later - **id** (**Required**, :ref:`config-id`): The ID with which you will be able to reference the font later
in your display code. in your display code.
- **size** (*Optional*, int): The size of the font in pt (not pixel!). - **size** (*Optional*, int): The size of the font in pt (not pixel!).
@ -190,8 +221,10 @@ Configuration variables:
to install it using to install it using
``pip install pillow``. ``pip install pillow``.
Drawing Static Text
*******************
Then, in your display code just reference the font like so: In your display code, you can render static text by referencing the font and just entering your string:
.. code-block:: yaml .. code-block:: yaml

View File

@ -203,6 +203,45 @@ turns off 90 seconds after the last activation of the sensor.
- lambda: |- - lambda: |-
id(mydisplay).no_backlight(); id(mydisplay).no_backlight();
User Defined Characters
-----------------------
The LCD display has the possibility to define up to eight user defined characters occupying the characters
``0`` to ``7`` and mirrored at ``8`` to ``15`` (i.e. ``\x08`` can be used instead of the ``\0`` that can
be problematic in strings). Each character has eight lines of five bits, with the first line on the top
and the most significant bit on the left, meaning that ``0b10000`` followed by six zeros and a ``0b00001``
defines a dot at the upper left and lower right of the character.
.. code-block:: yaml
display:
- platform: lcd_pcf8574
id: mydisplay
# ...
user_characters:
- position: 0
data:
- 0b00000
- 0b01010
- 0b00000
- 0b00100
- 0b00100
- 0b10001
- 0b01110
- 0b00000
- position: 7
data:
- 0b00000
- 0b01010
- 0b00000
- 0b00100
- 0b00100
- 0b00000
- 0b01110
- 0b10001
lambda: |-
it.print("Hello, world \x08 \x07!");
See Also See Also
-------- --------

View File

@ -48,6 +48,37 @@ Configuration variables:
.. _display-tm1637_lambda: .. _display-tm1637_lambda:
Binary Sensor
-------------
The TM1637 LED display controller also includes a special circuit with keyboard scan interface and enhanced identification circuit with anti-interference keys.
This circuit uses the 8 segment lines that also drive the LED display. But combined with the K1 and K2 pins we can add 16 keys that can be used as binary sensors in esphome.
.. figure:: images/tm1637_key_connections.png
:align: center
:width: 50.0%
TM1637 display keyboard connections
.. code-block:: yaml
binary_sensor:
- platform: tm1637
id: key0
name: key1-00
tm1637_id: tm1637_display
key: 0
Configuration variables:
************************
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor.
- **name** (*Optional*, string): The name for the binary sensor.
- **tm1637_id** (*Optional*, ::ref:`config-id`): The id of the tm1637 that should be used to scan the keys in case you are using multiple devices.
- **key** (**Required**, integer): The keycode for the connected key (Seg0 = 0, Seg1 = 1 etc,). Range is from
0 to 15.
- All other options from :ref:`Binary Sensor <config-binary_sensor>`.
Rendering Lambda Rendering Lambda
---------------- ----------------
@ -125,6 +156,25 @@ The following example creates a typical digital clock with the ``:`` colon flash
else else
it.strftime("%H%M", id(homeassistant_time).now()); it.strftime("%H%M", id(homeassistant_time).now());
Connect multiple displays
-------------------------
To connect multiple TM1636 displays you need as many control lines as you have displays. This is achived by sharing control-lines for clk and dio between displays.
.. figure:: images/tm1637_2devices.png
:align: center
:width: 50.0%
Two TM1637 displays on only 2 control lines
When using more than 2 devices like 3 or more you add a control-line for the Dio pin and share this with the next display Clk pin.
The last displays Dio pin shares the Clk pin of the first display.
.. figure:: images/tm1637_3plus_devices.png
:align: center
:width: 50.0%
Three TM1637 displays on 3 control lines
See Also See Also
-------- --------

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 316 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 KiB

View File

@ -0,0 +1,99 @@
Shelly Dimmer
=============
.. seo::
:description: Instructions for setting up a Shelly Dimmer 2.
:image: shellydimmer2.jpg
The ``shelly_dimmer`` component adds support for the dimming and power-metering functionality that can be found the `Shelly Dimmer 2 <https://shelly.cloud/knowledge-base/devices/shelly-dimmer-2/>`_. The interaction with mains is done via an STM32 microcontroller that is flashed with an `open source firmware <https://github.com/jamesturton/shelly-dimmer-stm32>`_.
A detailed analysis of the Shelly Dimmer 2 hardware is given `here <https://github.com/arendst/Tasmota/issues/6914>`_.
.. figure:: ../../images/shellydimmer2.jpg
:align: center
:width: 40.0%
An example of a configuration of this component:
.. code-block:: yaml
logger:
baud_rate: 0
uart:
tx_pin: 1
rx_pin: 3
baud_rate: 115200
sensor:
light:
- platform: shelly_dimmer
name: Shelly Dimmer 2 Light
id: thislight
power:
name: Shelly Dimmer 2 Light Power
voltage:
name: Shelly Dimmer 2 Light Voltage
current:
name: Shelly Dimmer 2 Light Current
max_brightness: 500
firmware:
version: "51.6"
update: true
Configuration variables:
------------------------
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the UART hub.
.. note::
Currently, only the first hardware UART of the ESP is supported, which has to be configured like this:
.. code-block:: yaml
uart:
tx_pin: 1
rx_pin: 3
baud_rate: 115200
- **name** (**Required**, string): The name of the light.
- **leading_edge** (**Optional**, boolean): `Dimming mode <https://en.wikipedia.org/wiki/Dimmer#Solid-state_dimmer>`_: "true" means leading edge, "false" (default) is trailing edge.
- **min_brightness** (**Optional**, int): Minimum brightness value on a scale from 0..1000, the default is 0.
- **max_brightness** (**Optional**, int): Maximum brightness value on a scale from 0..1000, the default is 1000.
- **warmup_brightness** (**Optional**, int): Brightness threshold below which the dimmer switches on later in mains current cycle. `This might help with dimming LEDs <https://github.com/jamesturton/shelly-dimmer-stm32/pull/23>`_. The value is from 0..1000 with an default of 0.
- **nrst_pin** (**Optional**, :ref:`config-pin`): Pin connected with "NRST" of STM32. The default is "GPIO5".
- **boot0_pin** (**Optional**, :ref:`config-pin`): Pin connected with "BOOT0" of STM32. The default is "GPIO4".
- **current** (**Optional**): Sensor of the current in Amperes. All options from
:ref:`Sensor <config-sensor>`.
- **voltage** (**Optional**): Sensor of the voltage in Volts. Only accurate if neutral is connected. All options from :ref:`Sensor <config-sensor>`.
- **power** (**Optional**): Sensor of the active power in Watts. Only accurate if neutral is connected. All options from :ref:`Sensor <config-sensor>`.
- **firmware** (**Optional**):
- **version** (**Optional**): Version string of the `firmware <https://github.com/jamesturton/shelly-dimmer-stm32>`_ that will be expected on the microcontroller. The default is "51.6", another known-good firmware is "51.5".
- **url** (**Optional**): An URL to download the firmware from. Defaults to github for known firmware versions.
- **sha256** (**Optional**): A hash to compare the downloaded firmware against. Defaults a proper hash of known firmware versions.
- **update** (**Optional**): Should the firmware of the STM be updated if necessary? The default is false.
.. note::
When flashing Shelly Dimmer with esphome for the first time, flashing the STM firmware is necessary too for the dimmer to work:
.. code-block:: yaml
firmware:
version: "51.6" #<-- set version here
update: true
- All other options from :ref:`Light <config-light>`.
See Also
--------
- :doc:`/components/light/index`
- :apiref:`shelly_dimmer/light/shelly_dimmer.h`
- :ghedit:`Edit`

View File

@ -0,0 +1,124 @@
Sonoff D1 Dimmer
================
.. seo::
:description: Instructions for setting up a Sonoff D1 dimmer switch.
:image: brightness-medium.svg
The ``sonoff_d1`` light platform creates a simple brightness-only light for the
hardware found in `Sonoff D1 dimmer <https://itead.cc/product/sonoff-d1-smart-dimmer-switch/>`__. Installations with Sonoff RM433 433MHz radio
remotes are also supported. Use this component to integrate Sonoff D1 dimmer into
ESPHome / Home Assistant ecosystem.
.. figure:: images/sonoff_d1.jpg
:align: center
:width: 100.0%
Sonoff D1 dimmer front and back view. Image by `ITEAD <https://itead.cc/product/sonoff-d1-smart-dimmer-switch/>`__.
Sonoff D1 uses another MCU for light dimming and handling of radio commands.
It's hooked up to ESP8266 via UART bus with default RX / TX pins being used on
ESP8266 side. Bi-directional symmetric request / response protocol is implemented
between ESP8266 and MCU. ``sonoff_d1`` component implements this protocol and
translates between HA light commands and serial messages.
For detailed instructions on how to replace the stock firmware with ESPHome see :doc:`/devices/sonoff_s20`.
You will need to locate GPIO0 pin and serial port. Photos below should help.
.. figure:: images/sonoff_d1_gpio0.jpg
:align: center
:width: 100.0%
Photo of GPIO 0, images by `klotzma <https://github.com/arendst/Tasmota/issues/7598#issuecomment-578433417>`__.
.. figure:: images/sonoff_d1_serial.jpg
:align: center
:width: 100.0%
Photo of serial port pins, images by `klotzma <https://github.com/arendst/Tasmota/issues/7598#issuecomment-578433417>`__.
Before using this components make sure:
- board is configured to ``esp8285``
- :ref:`UART bus <uart>` is configured with default RX / TX pins and 9600 baud rate
- :doc:`logger </components/logger>` to the serial port is disabled by setting ``baud_rate`` to ``0``
- in case you need light state restoration on power up, make sure ``restore_from_flash`` is set to ``true`` in the :doc:`ESP8266 platform </components/esp8266>`
This component is useless for devices other than Sonoff D1 dimmer.
.. code-block:: yaml
# Example configuration entry
esphome:
name: my-d1-dimmer
# Restore from flash if you want to keep the last state at power up
esp8266:
board: esp8285
restore_from_flash: true
# Make sure your WiFi will connect
wifi:
ssid: "ssid"
password: "password"
# Make sure logging is not using the serial port
logger:
baud_rate: 0
# Enable Home Assistant API
api:
# Make sure you can upload new firmware OTA
ota:
# D1 dimmer uses hardware serial port on the default pins @ 9600 bps
uart:
rx_pin: RX
tx_pin: TX
baud_rate: 9600
# And finally the light component
# gamma correction equal to zero gives linear scale,
# exactly what's needed for this device
light:
- platform: sonoff_d1
use_rm433_remote: False
name: Sonoff D1 Dimmer
restore_mode: RESTORE_DEFAULT_OFF
gamma_correct: 0.0
default_transition_length: 1s
Configuration variables
-----------------------
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- **name** (**Required**, string): The name of the light.
- **use_rm433_remote** (*Optional*, boolean): Set to ``True`` if your setup uses Sonoff RM433
or any other radio remote control. Properly setting this parameter allows the platform to
identify what to do with incoming UART commands. RF chip is known to catch random commands
if not paired with a real remote (so called ghost commands). This problem is observed even
with the stock firmware and most probably is a bug in the MCU firmware or in the RF chip
firmware. Setting this to ``False`` instructs the platform to properly ignore such commands
and thus prevent unexpected switches or light intensity changes.
- **min_value** (*Optional*, int): The lowest dimmer value allowed. Acceptable value for your
setup will depend on actual light bulbs installed and number of them. Start with the default
value and check what will be the minimal brightness bulbs can render. Pay attention that for
some dimmable LED lamps minimal turn-on brightness will be higher that the minimal achievable
brightness if you just decrease it when lamp is already turned on. Defaults to 0.
- **max_value** (*Optional*, int): The highest dimmer value allowed. Use this to hard-limit light
intensity for your setup. For some bulbs this parameter might be also useful to prevent
flickering at high brightness values. Defaults to 100.
- All other options from :ref:`Light <config-light>`.
See Also
--------
- :doc:`/components/light/index`
- :doc:`/components/uart`
- :doc:`/components/logger`
- :doc:`/components/esp8266`
- :ghedit:`Edit`

View File

@ -24,6 +24,12 @@ in which case this is not needed.
username: livingroom username: livingroom
password: !secret mqtt_password password: !secret mqtt_password
.. note::
Support for esp-idf is still experminental. Please report issues you have with mqtt using the esp-idf framework.
Configuration variables: Configuration variables:
------------------------ ------------------------
@ -71,8 +77,13 @@ Configuration variables:
- **shutdown_message** (*Optional*, :ref:`mqtt-message`): The message to send when - **shutdown_message** (*Optional*, :ref:`mqtt-message`): The message to send when
the node shuts down and the connection is closed cleanly. See :ref:`mqtt-last_will_birth` for more information. the node shuts down and the connection is closed cleanly. See :ref:`mqtt-last_will_birth` for more information.
- **ssl_fingerprints** (*Optional*, list): Only on ESP8266. A list of SHA1 hashes used - **ssl_fingerprints** (*Optional*, list): Only on ESP8266. A list of SHA1 hashes used
for verifying SSL connections. See :ref:`mqtt-ssl_fingerprints` for verifying SSL connections. See :ref:`mqtt-ssl_fingerprints`.
for more information. for more information.
- **certificate_authority** *(Optional*, string): Only with `esp-idf`. CA certificate in PEM format. See :ref:`mqtt-tls-idf` for more information
- **skip_cert_cn_check** (*Optional*, bool): Only with `esp-idf`. Don't verify if the common name in the server certificate matches the value of ``broker``.
- **idf_send_async** (*Optional*, bool): Only with `esp-idf`. Default is false. If true publishing the message happens from the internal mqtt task. The client only enqueues the message.
The advantage of asyncronous publishing is that it doesn't block the esphome main thread. The disadvantage is a delay (up to 1-2 seconds) until the messages are actually sent out.
Set this to true if ypi send large amounts of of data over mqtt.
- **reboot_timeout** (*Optional*, :ref:`config-time`): The amount of time to wait before rebooting when no - **reboot_timeout** (*Optional*, :ref:`config-time`): The amount of time to wait before rebooting when no
MQTT connection exists. Can be disabled by setting this to ``0s``. Defaults to ``15min``. MQTT connection exists. Can be disabled by setting this to ``0s``. Defaults to ``15min``.
- **keepalive** (*Optional*, :ref:`config-time`): The time - **keepalive** (*Optional*, :ref:`config-time`): The time
@ -262,6 +273,56 @@ then run the ``mqtt-fingerprint`` script of ESPHome to get the certificate:
.. _config-mqtt-component: .. _config-mqtt-component:
.. _mqtt-tls-idf:
TLS with esp-idf (esp32)
------------------------
If used with the esp-idf framework a TLS connection to a mqtt broker can be established.
The servers CA certificate is required to validate the connection.
You have to download the server CA certficiate in PEM format and add it to ``certificate_authority``.
Usually these are .crt files and you can open them with any text editor.
Also make sure to change the ``port`` of the mqtt broker. Most brokers use port 8883 for TLS connections.
.. code-block:: yaml
mqtt:
broker: test.mymqtt.local
port: 8883
discovery: true
discovery_prefix: ${mqtt_prefix}/homeassistant
log_topic: ${mqtt_prefix}/logs
skip_cert_cn_check: true
idf_send_async: false
certificate_authority: |
-----BEGIN CERTIFICATE-----
MIIEAzCCAuugAwIBAgIUBY1hlCGvdj4NhBXkZ/uLUZNILAwwDQYJKoZIhvcNAQEL
BQAwgZAxCzAJBgNVBAYTAkdCMRcwFQYDVQQIDA5Vbml0ZWQgS2luZ2RvbTEOMAwG
A1UEBwwFRGVyYnkxEjAQBgNVBAoMCU1vc3F1aXR0bzELMAkGA1UECwwCQ0ExFjAU
BgNVBAMMDW1vc3F1aXR0by5vcmcxHzAdBgkqhkiG9w0BCQEWEHJvZ2VyQGF0Y2hv
by5vcmcwHhcNMjAwNjA5MTEwNjM5WhcNMzAwNjA3MTEwNjM5WjCBkDELMAkGA1UE
BhMCR0IxFzAVBgNVBAgMDlVuaXRlZCBLaW5nZG9tMQ4wDAYDVQQHDAVEZXJieTES
MBAGA1UECgwJTW9zcXVpdHRvMQswCQYDVQQLDAJDQTEWMBQGA1UEAwwNbW9zcXVp
dHRvLm9yZzEfMB0GCSqGSIb3DQEJARYQcm9nZXJAYXRjaG9vLm9yZzCCASIwDQYJ
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAME0HKmIzfTOwkKLT3THHe+ObdizamPg
UZmD64Tf3zJdNeYGYn4CEXbyP6fy3tWc8S2boW6dzrH8SdFf9uo320GJA9B7U1FW
Te3xda/Lm3JFfaHjkWw7jBwcauQZjpGINHapHRlpiCZsquAthOgxW9SgDgYlGzEA
s06pkEFiMw+qDfLo/sxFKB6vQlFekMeCymjLCbNwPJyqyhFmPWwio/PDMruBTzPH
3cioBnrJWKXc3OjXdLGFJOfj7pP0j/dr2LH72eSvv3PQQFl90CZPFhrCUcRHSSxo
E6yjGOdnz7f6PveLIB574kQORwt8ePn0yidrTC1ictikED3nHYhMUOUCAwEAAaNT
MFEwHQYDVR0OBBYEFPVV6xBUFPiGKDyo5V3+Hbh4N9YSMB8GA1UdIwQYMBaAFPVV
6xBUFPiGKDyo5V3+Hbh4N9YSMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL
BQADggEBAGa9kS21N70ThM6/Hj9D7mbVxKLBjVWe2TPsGfbl3rEDfZ+OKRZ2j6AC
6r7jb4TZO3dzF2p6dgbrlU71Y/4K0TdzIjRj3cQ3KSm41JvUQ0hZ/c04iGDg/xWf
+pp58nfPAYwuerruPNWmlStWAXf0UTqRtg4hQDWBuUFDJTuWuuBvEXudz74eh/wK
sMwfu1HFvjy5Z0iMDU8PUDepjVolOCue9ashlS4EB5IECdSR2TItnAIiIwimx839
LdUdRudafMu5T5Xma182OC0/u/xRlEm+tvKGGmfFcN0piqVl8OrSPBgIlb+1IKJE
m/XriWr/Cq4h/JfB7NTsezVslgkBaoU=
-----END CERTIFICATE-----
MQTT Component Base Configuration MQTT Component Base Configuration
--------------------------------- ---------------------------------

View File

@ -40,7 +40,8 @@ Configuration variables:
- **nexa**: Decode and dump Nexa (RF) codes. - **nexa**: Decode and dump Nexa (RF) codes.
- **panasonic**: Decode and dump Panasonic infrared codes. - **panasonic**: Decode and dump Panasonic infrared codes.
- **pioneer**: Decode and dump Pioneer infrared codes. - **pioneer**: Decode and dump Pioneer infrared codes.
- **raw**: Print all remote codes in their raw form. Useful for using arbitrary protocols. - **pronto**: Print remote code in Pronto form. Useful for using arbitrary protocols.
- **raw**: Print all remote codes in their raw form. Also useful for using arbitrary protocols.
- **rc5**: Decode and dump RC5 IR codes. - **rc5**: Decode and dump RC5 IR codes.
- **rc_switch**: Decode and dump RCSwitch RF codes. - **rc_switch**: Decode and dump RCSwitch RF codes.
- **samsung**: Decode and dump Samsung infrared codes. - **samsung**: Decode and dump Samsung infrared codes.
@ -101,6 +102,9 @@ Automations:
- **on_pioneer** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a - **on_pioneer** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
pioneer remote code has been decoded. A variable ``x`` of type :apistruct:`remote_base::PioneerData` pioneer remote code has been decoded. A variable ``x`` of type :apistruct:`remote_base::PioneerData`
is passed to the automation for use in lambdas. is passed to the automation for use in lambdas.
- **on_pronto** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
Pronto remote code has been decoded. A variable ``x`` of type ``std::string``
is passed to the automation for use in lambdas.
- **on_raw** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a - **on_raw** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
raw remote code has been decoded. A variable ``x`` of type ``std::vector<int>`` raw remote code has been decoded. A variable ``x`` of type ``std::vector<int>``
is passed to the automation for use in lambdas. is passed to the automation for use in lambdas.
@ -213,6 +217,11 @@ Remote code selection (exactly one of these has to be included):
- **rc_code_1** (**Required**, int): The remote control code to trigger on, see dumper output for more details. - **rc_code_1** (**Required**, int): The remote control code to trigger on, see dumper output for more details.
- **pronto**: Trigger on a Pronto remote code with the given code.
- **data** (**Required**, string): The code to listen for, see :ref:`remote_transmitter-transmit_raw`
for more info. Usually you only need to copy this directly from the dumper output.
- **raw**: Trigger on a raw remote code with the given code. - **raw**: Trigger on a raw remote code with the given code.
- **code** (**Required**, list): The code to listen for, see :ref:`remote_transmitter-transmit_raw` - **code** (**Required**, list): The code to listen for, see :ref:`remote_transmitter-transmit_raw`

View File

@ -34,6 +34,7 @@ to some pins on your board and the baud rate set to 9600.
sensor: sensor:
- platform: growatt_solar - platform: growatt_solar
update_interval: 10s update_interval: 10s
protocol_version: RTU
inverter_status: inverter_status:
name: "Growatt Status Code" name: "Growatt Status Code"
@ -102,6 +103,9 @@ Configuration variables:
- **inverter_status** (*Optional*): Status code of the inverter (0: waiting, 1: normal, 3:fault) - **inverter_status** (*Optional*): Status code of the inverter (0: waiting, 1: normal, 3:fault)
- **protocol_version** (*Optional*): Version of the protocol used by your inverter.
Old inverters use RTU (default). Newer ones use RTU2 (e.g. MIC, MIN, MAX series)
- **phase_a** (*Optional*): The group of exposed sensors for Phase A/1. - **phase_a** (*Optional*): The group of exposed sensors for Phase A/1.
- **current** (*Optional*): Use the current value of the sensor in amperes. All options from - **current** (*Optional*): Use the current value of the sensor in amperes. All options from

View File

@ -0,0 +1,114 @@
Hydreon Rain Sensor
===================
.. seo::
:description: Instructions for setting up Hydreon rain sensors
:image: hydreon_rg9.jpg
:keywords: hydreon
The ``hydreon_rgxx`` sensor platform allows you to use rain sensors by Hydreon. Currently supported are the RG-9 and RG-15 (`rainsensors <https://rainsensors.com/products/model-comparison/>`_) sensors.
These optical rain sensors use a UART connection at 3.3V. The :ref:`UART <uart>` is
required to be set up in your configuration for this sensor to work.
.. figure:: images/hydreon_rg9_full.jpg
:align: center
:width: 50.0%
Hydreon RG-9 Rain Sensor. Image by `Hydreon <https://rainsensors.com/products/rg-9/>`_.
.. code-block:: yaml
# Example RG-9 entry
uart:
rx_pin: GPIO16
tx_pin: GPIO17
baud_rate: 9600
sensor:
- platform: hydreon_rgxx
model: "RG_9"
update_interval: 60s
moisture:
name: "rain"
expire_after: 120s
binary_sensor:
- platform: hydreon_rgxx
too_cold:
name: "too cold"
.. code-block:: yaml
# Example RG-15 entry
uart:
rx_pin: GPIO16
tx_pin: GPIO17
baud_rate: 9600
sensor:
- platform: hydreon_rgxx
model: "RG_15"
update_interval: 60s
acc:
name: "rain"
event_acc:
name: "rain event"
total_acc:
name: "rain total"
r_int:
name: "rain intensity"
Configuration variables:
------------------------
- **model**: (**Required**, int): Specify which rain sensor you have connected. Must be either ``RG_9`` or ``RG_15``.
- **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`UART Component <uart>` if you want
to use multiple UART buses.
- **moisture** (*Optional*): Rain intensity level from 0-7. Only on RG-9.
- **name** (**Required**, string): The name for the voltage sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **acc** (*Optional*): Amount of rain since last message (see `update_interval`), in `mm`. Only on RG-15.
- **name** (**Required**, string): The name for the voltage sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **event_acc** (*Optional*): Amount of rain for this event (i.e. since it last stopped raining), in `mm`. Only on RG-15.
- **name** (**Required**, string): The name for the voltage sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **total_acc** (*Optional*): Total amount of rain this sensor has ever measured, in `mm`. Only on RG-15.
- **name** (**Required**, string): The name for the voltage sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **r_int** (*Optional*): Current rain intensity in `mm/h`. Only on RG-15.
- **name** (**Required**, string): The name for the voltage sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
See Also
--------
- :ref:`sensor-filters`
- :doc:`../binary_sensor/hydreon_rgxx`
- `Hydreon RG-9 <https://rainsensors.com/products/rg-9/>`__
- `Hydreon RG-15 <https://rainsensors.com/products/rg-15/>`__
- `RG-15 V1.000 manual <https://rainsensors.com/wp-content/uploads/sites/3/2020/07/rg-15_instructions_sw_1.000.pdf>`__
- `RG-9 V1.000 manual <https://rainsensors.com/wp-content/uploads/sites/3/2021/03/2020.08.25-rg-9_instructions.pdf>`__
- :ghedit:`Edit`

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

View File

@ -1,14 +1,15 @@
MCP3204 4-Channel 12-Bit A/D Converter MCP3204 & MCP3208 12-Bit A/D Converters
====================================== =======================================
.. seo:: .. seo::
:description: Instructions for setting up MCP3204 12-Bit Analog to Digital Converter in ESPHome. :description: Instructions for setting up MCP3204 & MCP3208 12-Bit Analog to Digital Converter in ESPHome.
:keywords: MCP3204 :keywords: MCP3204 MCP3208
:image: mcp3204.jpg :image: mcp3204.jpg
The Microchip Technology Inc. MCP3204 The Microchip Technology Inc. MCP3204 & MCP3208
devices are successive approximation 12-bit Analog-to-Digital (A/D) converters with on-board sample and devices are successive approximation 12-bit Analog-to-Digital (A/D) converters with on-board sample and
hold circuitry. hold circuitry. This integration is common for both device types.
configure both devices as MCP3204 and observe the maximum number of channels as per variant used.
.. figure:: images/mcp3204.jpg .. figure:: images/mcp3204.jpg
:align: center :align: center
@ -19,17 +20,18 @@ hold circuitry.
Component/Hub Component/Hub
------------- -------------
The MCP3204 component allows you to use MCP3204 4-Channel 12-Bit A/D Converter The MCP3204 component allows you to use MCP3204 or MCP3208 12-Bit A/D Converter
(`datasheet <https://ww1.microchip.com/downloads/en/DeviceDoc/21298e.pdf>`__) in ESPHome. (`datasheet <https://ww1.microchip.com/downloads/en/DeviceDoc/21298e.pdf>`__) in ESPHome.
The MCP3204 is a 4-channel and MCP3208 is an 8-channel device.
It uses the :ref:`SPI Bus <spi>` for communication. It uses the :ref:`SPI Bus <spi>` for communication.
Once configured, you can use any of the 4 pins as Once configured, you can use any of the 4 or 8 pins (depending on device variant) as
sensors for your projects. sensors for your projects.
Each pin will respond with a voltage calculated off of the ``reference_voltage`` (default is 3.3V). Each pin will respond with a voltage calculated off of the ``reference_voltage`` (default is 3.3V).
It calculates the voltage by multiplying the ``reference_voltage * value`` on the pin (basically the percentage of VREF) It calculates the voltage by multiplying the ``reference_voltage * value`` on the pin (basically the percentage of VREF)
Most configurations will set the ``reference_voltage`` = VREF (pin 13 on the chip) Most configurations will set the ``reference_voltage`` = VREF pin
.. code-block:: yaml .. code-block:: yaml
@ -47,6 +49,12 @@ Most configurations will set the ``reference_voltage`` = VREF (pin 13 on the chi
id: solar_voltage id: solar_voltage
number: 0 # MCP3204 pin number number: 0 # MCP3204 pin number
# In case MCP3208 is used. you can specify pin number > 4
- platform: mcp3204 # Attached to pin 7 of the MCP3208.
update_interval: 1s
id: supply_voltage
number: 7 # MCP3208 pin number
Configuration variables: Configuration variables:
************************ ************************
@ -59,8 +67,8 @@ Configuration variables:
Sensor Sensor
------ ------
The ``mcp3204`` sensor allows you to use your MCP3204 12-Bit A/D Converter sensors with ESPHome. The ``mcp3204`` sensor allows you to use your MCP3204 or MCP3208 12-Bit A/D Converter sensors with ESPHome.
First, setup a :ref:`MCP3204 Hub <mcp3204-component>` for your MCP3204 sensor and then use this First, setup a :ref:`MCP3204 Hub <mcp3204-component>` for your MCP3204/8 sensor and then use this
sensor platform to create individual sensors that will report the voltage to Home Assistant. sensor platform to create individual sensors that will report the voltage to Home Assistant.
Configuration variables: Configuration variables:

View File

@ -0,0 +1,86 @@
QMP6988 Temperature+Pressure Sensor
===================================
.. seo::
:description: Instructions for setting up QMP6988 temperature and pressure sensors with ESPHome
:keywords: QMP6988
The ``qmp6988`` sensor platform allows you to use your QMP6988
(`datasheet <https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/unit/enviii/QMP6988%20Datasheet.pdf>`__,
`M5Stack`_) temperature and pressure sensors with ESPHome. The :ref:`I²C <i2c>` is
required to be set up in your configuration for this sensor to work.
.. figure:: ../../images/qmp6988_env3.png
:align: center
:width: 40.0%
QMP6988 Temperature and Pressure Sensor.
.. _M5Stack: https://docs.m5stack.com/en/unit/envIII
.. code-block:: yaml
# Example configuration entry
sensor:
- platform: qmp6988
temperature:
name: "Living Room Temperature"
oversampling: 16x
pressure:
name: "Living Room Pressure"
oversampling: 16x
address: 0x70
update_interval: 60s
iir_filter: 2x
Configuration variables:
------------------------
- **temperature** (*Optional*): The information for the temperature sensor
- **name** (**Required**, string): The name for the temperature
sensor.
- **oversampling** (*Optional*): The oversampling parameter for the temperature sensor.
See :ref:`Oversampling Options <qmp6988-oversampling>`.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **pressure** (*Optional*): The information for the pressure sensor.
- **name** (**Required**, string): The name for the pressure sensor.
- **oversampling** (*Optional*): The oversampling parameter for the temperature sensor.
See :ref:`Oversampling Options <qmp6988-oversampling>`.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **address** (*Optional*, int): Manually specify the I²C address of
the sensor. Defaults to ``0x70``. ``0x56`` is also configurable - see datasheet.
- **iir_filter** (*Optional*): Set up an Infinite Impulse Response filter to increase accuracy. One of
``OFF``, ``2x``, ``4x``, ``8x``, ``16x``, ``32x``. Defaults to ``OFF``.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
sensor. Defaults to ``60s``.
.. _qmp6988-oversampling:
Oversampling Options
--------------------
By default, the QMP6988 sensor has been configured to measure each value 8 times when requesting a new value. You can, however,
configure this amount. Possible oversampling values:
- ``NONE`` (value is skipped)
- ``1x``
- ``2x``
- ``4x``
- ``8x`` (default)
- ``16x``
- ``32x``
- ``64x``
See Also
--------
- :ref:`sensor-filters`
- :apiref:`qmp6988/qmp6988.h`
- `QMP6988 Library <https://github.com/m5stack/UNIT_ENV>`__ by `M5Stack <https://m5stack.com>`__
- :ghedit:`Edit`

View File

@ -485,6 +485,43 @@ Configuration example:
illuminance: illuminance:
name: "CGPR1 Illuminance" name: "CGPR1 Illuminance"
RTCGQ02LM - Mi Motion Sensor 2
******************************
Motion & ambient light sensor. Broadcasts motion detection, light/dark and battery status. Also has a button that broadcasts when pressed.
Requires a bindkey in order to decrypt the received data (see :ref:`obtaining_the_bindkey`).
.. figure:: images/xiaomi_rtcgq02lm.jpg
:align: center
:width: 30.0%
Configuration example:
.. code-block:: yaml
xiaomi_rtcgq02lm:
- id: motion_one
mac_address: 01:23:45:67:89:AB
bindkey: fe39106baeedb7c801e3d63c4396f97e
binary_sensor:
- platform: xiaomi_rtcgq02lm
id: motion_one
motion:
name: "Mi Motion"
light:
name: "Mi Motion Sensor Light"
button:
name: "Mi Motion Sensor Button"
sensor:
- platform: xiaomi_rtcgq02lm
id: motion_one
battery_level:
name: "Mi Motion Sensor Battery Level"
Setting Up Devices Setting Up Devices
------------------ ------------------

View File

@ -66,9 +66,9 @@ author = "ESPHome"
# built documents. # built documents.
# #
# The short X.Y version. # The short X.Y version.
version = "2022.3" version = "2022.4"
# The full version, including alpha/beta/rc tags. # The full version, including alpha/beta/rc tags.
release = "2022.3.2" release = "2022.4.0"
# The language for content autogenerated by Sphinx. Refer to documentation # The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages. # for a list of supported languages.

View File

@ -55,10 +55,12 @@ Contributors
- `alva (@alva-seal) <https://github.com/alva-seal>`__ - `alva (@alva-seal) <https://github.com/alva-seal>`__
- `Amish Vishwakarma (@amishv) <https://github.com/amishv>`__ - `Amish Vishwakarma (@amishv) <https://github.com/amishv>`__
- `Jason Nader (@ammgws) <https://github.com/ammgws>`__ - `Jason Nader (@ammgws) <https://github.com/ammgws>`__
- `Branden Cash (@ammmze) <https://github.com/ammmze>`__
- `anatoly-savchenkov (@anatoly-savchenkov) <https://github.com/anatoly-savchenkov>`__ - `anatoly-savchenkov (@anatoly-savchenkov) <https://github.com/anatoly-savchenkov>`__
- `andig (@andig) <https://github.com/andig>`__ - `andig (@andig) <https://github.com/andig>`__
- `András Bíró (@andrasbiro) <https://github.com/andrasbiro>`__ - `András Bíró (@andrasbiro) <https://github.com/andrasbiro>`__
- `Andreas Hergert (@andreashergert1984) <https://github.com/andreashergert1984>`__ - `Andreas Hergert (@andreashergert1984) <https://github.com/andreashergert1984>`__
- `Andrew J.Swan (@andrewjswan) <https://github.com/andrewjswan>`__
- `andrewpc (@andrewpc) <https://github.com/andrewpc>`__ - `andrewpc (@andrewpc) <https://github.com/andrewpc>`__
- `Andrzej (@andriej) <https://github.com/andriej>`__ - `Andrzej (@andriej) <https://github.com/andriej>`__
- `Andreas (@anduchs) <https://github.com/anduchs>`__ - `Andreas (@anduchs) <https://github.com/anduchs>`__
@ -115,6 +117,7 @@ Contributors
- `buddydvd (@buddydvd) <https://github.com/buddydvd>`__ - `buddydvd (@buddydvd) <https://github.com/buddydvd>`__
- `buxtronix (@buxtronix) <https://github.com/buxtronix>`__ - `buxtronix (@buxtronix) <https://github.com/buxtronix>`__
- `bvansambeek (@bvansambeek) <https://github.com/bvansambeek>`__ - `bvansambeek (@bvansambeek) <https://github.com/bvansambeek>`__
- `calco88 (@calco88) <https://github.com/calco88>`__
- `Carlos Gustavo Sarmiento (@carlos-sarmiento) <https://github.com/carlos-sarmiento>`__ - `Carlos Gustavo Sarmiento (@carlos-sarmiento) <https://github.com/carlos-sarmiento>`__
- `Carlos Garcia Saura (@CarlosGS) <https://github.com/CarlosGS>`__ - `Carlos Garcia Saura (@CarlosGS) <https://github.com/CarlosGS>`__
- `Carlos Ruiz (@CarlosRDomin) <https://github.com/CarlosRDomin>`__ - `Carlos Ruiz (@CarlosRDomin) <https://github.com/CarlosRDomin>`__
@ -190,6 +193,7 @@ Contributors
- `Mark (@Diramu) <https://github.com/Diramu>`__ - `Mark (@Diramu) <https://github.com/Diramu>`__
- `Dirk Heinke (@DirkHeinke) <https://github.com/DirkHeinke>`__ - `Dirk Heinke (@DirkHeinke) <https://github.com/DirkHeinke>`__
- `Dirk Jahnke (@dirkj) <https://github.com/dirkj>`__ - `Dirk Jahnke (@dirkj) <https://github.com/dirkj>`__
- `djwlindenaar (@djwlindenaar) <https://github.com/djwlindenaar>`__
- `Marcos Pérez Ferro (@djwmarcx) <https://github.com/djwmarcx>`__ - `Marcos Pérez Ferro (@djwmarcx) <https://github.com/djwmarcx>`__
- `Dan Mannock (@dmannock) <https://github.com/dmannock>`__ - `Dan Mannock (@dmannock) <https://github.com/dmannock>`__
- `Dmitriy Lopatko (@dmitriy5181) <https://github.com/dmitriy5181>`__ - `Dmitriy Lopatko (@dmitriy5181) <https://github.com/dmitriy5181>`__
@ -210,6 +214,7 @@ Contributors
- `Sergey V. DUDANOV (@dudanov) <https://github.com/dudanov>`__ - `Sergey V. DUDANOV (@dudanov) <https://github.com/dudanov>`__
- `Duncan Findlay (@duncf) <https://github.com/duncf>`__ - `Duncan Findlay (@duncf) <https://github.com/duncf>`__
- `dyarkovoy (@dyarkovoy) <https://github.com/dyarkovoy>`__ - `dyarkovoy (@dyarkovoy) <https://github.com/dyarkovoy>`__
- `Janez Troha (@dz0ny) <https://github.com/dz0ny>`__
- `Dimitris Zervas (@dzervas) <https://github.com/dzervas>`__ - `Dimitris Zervas (@dzervas) <https://github.com/dzervas>`__
- `Dan Jackson (@e28eta) <https://github.com/e28eta>`__ - `Dan Jackson (@e28eta) <https://github.com/e28eta>`__
- `Ermanno Baschiera (@ebaschiera) <https://github.com/ebaschiera>`__ - `Ermanno Baschiera (@ebaschiera) <https://github.com/ebaschiera>`__
@ -272,6 +277,7 @@ Contributors
- `Gabe Cook (@gabe565) <https://github.com/gabe565>`__ - `Gabe Cook (@gabe565) <https://github.com/gabe565>`__
- `Gareth Cooper (@gaco79) <https://github.com/gaco79>`__ - `Gareth Cooper (@gaco79) <https://github.com/gaco79>`__
- `GeekVisit (@GeekVisit) <https://github.com/GeekVisit>`__ - `GeekVisit (@GeekVisit) <https://github.com/GeekVisit>`__
- `Ian Reinhart Geiser (@geiseri) <https://github.com/geiseri>`__
- `R Huish (@genestealer) <https://github.com/genestealer>`__ - `R Huish (@genestealer) <https://github.com/genestealer>`__
- `Geoff Davis (@geoffdavis) <https://github.com/geoffdavis>`__ - `Geoff Davis (@geoffdavis) <https://github.com/geoffdavis>`__
- `Geoffrey Van Landeghem (@geoffrey-vl) <https://github.com/geoffrey-vl>`__ - `Geoffrey Van Landeghem (@geoffrey-vl) <https://github.com/geoffrey-vl>`__
@ -325,6 +331,7 @@ Contributors
- `igg (@igg) <https://github.com/igg>`__ - `igg (@igg) <https://github.com/igg>`__
- `Petko Bordjukov (@ignisf) <https://github.com/ignisf>`__ - `Petko Bordjukov (@ignisf) <https://github.com/ignisf>`__
- `ikatkov (@ikatkov) <https://github.com/ikatkov>`__ - `ikatkov (@ikatkov) <https://github.com/ikatkov>`__
- `Tim Smeets (@ikilledmypc) <https://github.com/ikilledmypc>`__
- `imgbot[bot] (@imgbot[bot]) <https://github.com/imgbot[bot]>`__ - `imgbot[bot] (@imgbot[bot]) <https://github.com/imgbot[bot]>`__
- `ImSorryButWho (@ImSorryButWho) <https://github.com/ImSorryButWho>`__ - `ImSorryButWho (@ImSorryButWho) <https://github.com/ImSorryButWho>`__
- `Lorenzo Ortiz (@Infinitte) <https://github.com/Infinitte>`__ - `Lorenzo Ortiz (@Infinitte) <https://github.com/Infinitte>`__
@ -336,6 +343,7 @@ Contributors
- `Jan Harkes (@jaharkes) <https://github.com/jaharkes>`__ - `Jan Harkes (@jaharkes) <https://github.com/jaharkes>`__
- `Jakob Reiter (@jakommo) <https://github.com/jakommo>`__ - `Jakob Reiter (@jakommo) <https://github.com/jakommo>`__
- `James Braid (@jamesbraid) <https://github.com/jamesbraid>`__ - `James Braid (@jamesbraid) <https://github.com/jamesbraid>`__
- `James Duke (@jamesduke) <https://github.com/jamesduke>`__
- `James Gao (@jamesgao) <https://github.com/jamesgao>`__ - `James Gao (@jamesgao) <https://github.com/jamesgao>`__
- `János Rusiczki (@janosrusiczki) <https://github.com/janosrusiczki>`__ - `János Rusiczki (@janosrusiczki) <https://github.com/janosrusiczki>`__
- `Jan Pieper (@janpieper) <https://github.com/janpieper>`__ - `Jan Pieper (@janpieper) <https://github.com/janpieper>`__
@ -345,6 +353,7 @@ Contributors
- `Jas Strong (@jasstrong) <https://github.com/jasstrong>`__ - `Jas Strong (@jasstrong) <https://github.com/jasstrong>`__
- `Jonas Bergler (@jbergler) <https://github.com/jbergler>`__ - `Jonas Bergler (@jbergler) <https://github.com/jbergler>`__
- `JbLb (@jblb) <https://github.com/jblb>`__ - `JbLb (@jblb) <https://github.com/jblb>`__
- `Jonathan Burns (@jburns20) <https://github.com/jburns20>`__
- `James Callaghan (@jcallaghan) <https://github.com/jcallaghan>`__ - `James Callaghan (@jcallaghan) <https://github.com/jcallaghan>`__
- `Josh Willox (@jcwillox) <https://github.com/jcwillox>`__ - `Josh Willox (@jcwillox) <https://github.com/jcwillox>`__
- `jddonovan (@jddonovan) <https://github.com/jddonovan>`__ - `jddonovan (@jddonovan) <https://github.com/jddonovan>`__
@ -357,6 +366,7 @@ Contributors
- `Jérôme Laban (@jeromelaban) <https://github.com/jeromelaban>`__ - `Jérôme Laban (@jeromelaban) <https://github.com/jeromelaban>`__
- `Jesse Hills (@jesserockz) <https://github.com/jesserockz>`__ - `Jesse Hills (@jesserockz) <https://github.com/jesserockz>`__
- `Yuval Brik (@jhamhader) <https://github.com/jhamhader>`__ - `Yuval Brik (@jhamhader) <https://github.com/jhamhader>`__
- `Joe (@jhansche) <https://github.com/jhansche>`__
- `Jim Bauwens (@jimbauwens) <https://github.com/jimbauwens>`__ - `Jim Bauwens (@jimbauwens) <https://github.com/jimbauwens>`__
- `Jérémy JOURDIN (@JJK801) <https://github.com/JJK801>`__ - `Jérémy JOURDIN (@JJK801) <https://github.com/JJK801>`__
- `Jonathan Jefferies (@jjok) <https://github.com/jjok>`__ - `Jonathan Jefferies (@jjok) <https://github.com/jjok>`__
@ -471,6 +481,7 @@ Contributors
- `matt123p (@matt123p) <https://github.com/matt123p>`__ - `matt123p (@matt123p) <https://github.com/matt123p>`__
- `Matteo Franceschini (@matteofranceschini) <https://github.com/matteofranceschini>`__ - `Matteo Franceschini (@matteofranceschini) <https://github.com/matteofranceschini>`__
- `Matthew Mazzanti (@matthewmazzanti) <https://github.com/matthewmazzanti>`__ - `Matthew Mazzanti (@matthewmazzanti) <https://github.com/matthewmazzanti>`__
- `matthias882 (@matthias882) <https://github.com/matthias882>`__
- `Maurice Schleußinger (@maurice-schleussinger) <https://github.com/maurice-schleussinger>`__ - `Maurice Schleußinger (@maurice-schleussinger) <https://github.com/maurice-schleussinger>`__
- `mbo18 (@mbo18) <https://github.com/mbo18>`__ - `mbo18 (@mbo18) <https://github.com/mbo18>`__
- `mckaymatthew (@mckaymatthew) <https://github.com/mckaymatthew>`__ - `mckaymatthew (@mckaymatthew) <https://github.com/mckaymatthew>`__
@ -514,6 +525,7 @@ Contributors
- `MrZetor (@MrZetor) <https://github.com/MrZetor>`__ - `MrZetor (@MrZetor) <https://github.com/MrZetor>`__
- `mtl010957 (@mtl010957) <https://github.com/mtl010957>`__ - `mtl010957 (@mtl010957) <https://github.com/mtl010957>`__
- `Murilo (@murilobaliego) <https://github.com/murilobaliego>`__ - `Murilo (@murilobaliego) <https://github.com/murilobaliego>`__
- `Michel van de Wetering (@mvdwetering) <https://github.com/mvdwetering>`__
- `Michiel van Turnhout (@mvturnho) <https://github.com/mvturnho>`__ - `Michiel van Turnhout (@mvturnho) <https://github.com/mvturnho>`__
- `Martin Weinelt (@mweinelt) <https://github.com/mweinelt>`__ - `Martin Weinelt (@mweinelt) <https://github.com/mweinelt>`__
- `myhomeiot (@myhomeiot) <https://github.com/myhomeiot>`__ - `myhomeiot (@myhomeiot) <https://github.com/myhomeiot>`__
@ -573,6 +585,7 @@ Contributors
- `Pablo Clemente Maseda (@paclema) <https://github.com/paclema>`__ - `Pablo Clemente Maseda (@paclema) <https://github.com/paclema>`__
- `Derrick Lyndon Pallas (@pallas) <https://github.com/pallas>`__ - `Derrick Lyndon Pallas (@pallas) <https://github.com/pallas>`__
- `Panuruj Khambanonda (PK) (@panuruj) <https://github.com/panuruj>`__ - `Panuruj Khambanonda (PK) (@panuruj) <https://github.com/panuruj>`__
- `parats15 (@parats15) <https://github.com/parats15>`__
- `Pasi Suominen (@pasiz) <https://github.com/pasiz>`__ - `Pasi Suominen (@pasiz) <https://github.com/pasiz>`__
- `Patrick Felstead (@patfelst) <https://github.com/patfelst>`__ - `Patrick Felstead (@patfelst) <https://github.com/patfelst>`__
- `Paul Deen (@PaulAntonDeen) <https://github.com/PaulAntonDeen>`__ - `Paul Deen (@PaulAntonDeen) <https://github.com/PaulAntonDeen>`__
@ -613,6 +626,7 @@ Contributors
- `Richard Miles (@r89m) <https://github.com/r89m>`__ - `Richard Miles (@r89m) <https://github.com/r89m>`__
- `Pär Stålberg (@rabbadab) <https://github.com/rabbadab>`__ - `Pär Stålberg (@rabbadab) <https://github.com/rabbadab>`__
- `Aaron Zhang (@rabbit-aaron) <https://github.com/rabbit-aaron>`__ - `Aaron Zhang (@rabbit-aaron) <https://github.com/rabbit-aaron>`__
- `RadekHvizdos (@RadekHvizdos) <https://github.com/RadekHvizdos>`__
- `Radim Karniš (@radimkarnis) <https://github.com/radimkarnis>`__ - `Radim Karniš (@radimkarnis) <https://github.com/radimkarnis>`__
- `Florian Ragwitz (@rafl) <https://github.com/rafl>`__ - `Florian Ragwitz (@rafl) <https://github.com/rafl>`__
- `Rai-Rai (@Rai-Rai) <https://github.com/Rai-Rai>`__ - `Rai-Rai (@Rai-Rai) <https://github.com/Rai-Rai>`__
@ -648,6 +662,7 @@ Contributors
- `Robbie Page (@rorpage) <https://github.com/rorpage>`__ - `Robbie Page (@rorpage) <https://github.com/rorpage>`__
- `rotarykite (@rotarykite) <https://github.com/rotarykite>`__ - `rotarykite (@rotarykite) <https://github.com/rotarykite>`__
- `rradar (@rradar) <https://github.com/rradar>`__ - `rradar (@rradar) <https://github.com/rradar>`__
- `rrooggiieerr (@rrooggiieerr) <https://github.com/rrooggiieerr>`__
- `rspaargaren (@rspaargaren) <https://github.com/rspaargaren>`__ - `rspaargaren (@rspaargaren) <https://github.com/rspaargaren>`__
- `rsumner (@rsumner) <https://github.com/rsumner>`__ - `rsumner (@rsumner) <https://github.com/rsumner>`__
- `Rubén G. (@rubengargar) <https://github.com/rubengargar>`__ - `Rubén G. (@rubengargar) <https://github.com/rubengargar>`__
@ -715,10 +730,8 @@ Contributors
- `TBobsin (@TBobsin) <https://github.com/TBobsin>`__ - `TBobsin (@TBobsin) <https://github.com/TBobsin>`__
- `Team Super Panda (@teamsuperpanda) <https://github.com/teamsuperpanda>`__ - `Team Super Panda (@teamsuperpanda) <https://github.com/teamsuperpanda>`__
- `Ryan Hoffman (@tekmaven) <https://github.com/tekmaven>`__ - `Ryan Hoffman (@tekmaven) <https://github.com/tekmaven>`__
- `Tempura San (@tempura-san) <https://github.com/tempura-san>`__
- `testbughub (@testbughub) <https://github.com/testbughub>`__ - `testbughub (@testbughub) <https://github.com/testbughub>`__
- `Greg Lincoln (@tetious) <https://github.com/tetious>`__ - `Greg Lincoln (@tetious) <https://github.com/tetious>`__
- `Thane Gill (@thanegill) <https://github.com/thanegill>`__
- `Nejc (@thedexboy) <https://github.com/thedexboy>`__ - `Nejc (@thedexboy) <https://github.com/thedexboy>`__
- `Thomas Eckerstorfer (@TheEggi) <https://github.com/TheEggi>`__ - `Thomas Eckerstorfer (@TheEggi) <https://github.com/TheEggi>`__
- `TheGroundZero (@TheGroundZero) <https://github.com/TheGroundZero>`__ - `TheGroundZero (@TheGroundZero) <https://github.com/TheGroundZero>`__
@ -749,8 +762,8 @@ Contributors
- `Tom Price (@tomtom5152) <https://github.com/tomtom5152>`__ - `Tom Price (@tomtom5152) <https://github.com/tomtom5152>`__
- `tony (@tony-fav) <https://github.com/tony-fav>`__ - `tony (@tony-fav) <https://github.com/tony-fav>`__
- `David Kiliani (@torfbolt) <https://github.com/torfbolt>`__ - `David Kiliani (@torfbolt) <https://github.com/torfbolt>`__
- `Teemu Simola (@tpssim) <https://github.com/tpssim>`__
- `Felix Eckhofer (@tribut) <https://github.com/tribut>`__ - `Felix Eckhofer (@tribut) <https://github.com/tribut>`__
- `Trick van Staveren (@trickv) <https://github.com/trickv>`__
- `Tobias (@tripplet) <https://github.com/tripplet>`__ - `Tobias (@tripplet) <https://github.com/tripplet>`__
- `Troon (@Troon) <https://github.com/Troon>`__ - `Troon (@Troon) <https://github.com/Troon>`__
- `Tyler Bules (@Troublebrewing) <https://github.com/Troublebrewing>`__ - `Tyler Bules (@Troublebrewing) <https://github.com/Troublebrewing>`__
@ -770,6 +783,7 @@ Contributors
- `Nad (@valordk) <https://github.com/valordk>`__ - `Nad (@valordk) <https://github.com/valordk>`__
- `André Lademann (@vergissberlin) <https://github.com/vergissberlin>`__ - `André Lademann (@vergissberlin) <https://github.com/vergissberlin>`__
- `Víctor Ferrer García (@vicfergar) <https://github.com/vicfergar>`__ - `Víctor Ferrer García (@vicfergar) <https://github.com/vicfergar>`__
- `Vincèn (@vincegre) <https://github.com/vincegre>`__
- `VitaliyKurokhtin (@VitaliyKurokhtin) <https://github.com/VitaliyKurokhtin>`__ - `VitaliyKurokhtin (@VitaliyKurokhtin) <https://github.com/VitaliyKurokhtin>`__
- `voibit (@voibit) <https://github.com/voibit>`__ - `voibit (@voibit) <https://github.com/voibit>`__
- `Xuming Feng (@voicevon) <https://github.com/voicevon>`__ - `Xuming Feng (@voicevon) <https://github.com/voicevon>`__
@ -808,4 +822,4 @@ Contributors
- `Michael Labuschke (@zigman79) <https://github.com/zigman79>`__ - `Michael Labuschke (@zigman79) <https://github.com/zigman79>`__
- `Christian Zufferey (@zuzu59) <https://github.com/zuzu59>`__ - `Christian Zufferey (@zuzu59) <https://github.com/zuzu59>`__
*This page was last updated March 30, 2022.* *This page was last updated April 20, 2022.*

BIN
images/hydreon_rg9.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

BIN
images/qmp6988_env3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
images/shellydimmer2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

BIN
images/sonoff_d1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

BIN
images/xiaomi_rtcgq02lm.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -209,7 +209,7 @@ Analogue
ADS1115, components/sensor/ads1115, ads1115.jpg, 4-channel ADC ADS1115, components/sensor/ads1115, ads1115.jpg, 4-channel ADC
CD74HC4067, components/sensor/cd74hc4067, cd74hc4067.jpg, 16-channel analog multiplexer CD74HC4067, components/sensor/cd74hc4067, cd74hc4067.jpg, 16-channel analog multiplexer
MCP3008, components/sensor/mcp3008, mcp3008.jpg, 8-channel ADC MCP3008, components/sensor/mcp3008, mcp3008.jpg, 8-channel ADC
MCP3204, components/sensor/mcp3204, mcp3204.jpg, 4-channel ADC MCP3204/MCP3208, components/sensor/mcp3204, mcp3204.jpg, 4-channel ADC
Resistance, components/sensor/resistance, omega.svg Resistance, components/sensor/resistance, omega.svg
@ -295,11 +295,13 @@ Environmental
HDC1080, components/sensor/hdc1080, hdc1080.jpg, Temperature & Humidity HDC1080, components/sensor/hdc1080, hdc1080.jpg, Temperature & Humidity
Honeywell ABP, components/sensor/honeywellabp, honeywellabp.jpg, Pressure & Temperature Honeywell ABP, components/sensor/honeywellabp, honeywellabp.jpg, Pressure & Temperature
HTU21D / Si7021 / SHT21, components/sensor/htu21d, htu21d.jpg, Temperature & Humidity HTU21D / Si7021 / SHT21, components/sensor/htu21d, htu21d.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 Inkbird IBS-TH1 Mini, components/sensor/inkbird_ibsth1_mini, inkbird_isbth1_mini.jpg, Temperature & Humidity
MCP9808, components/sensor/mcp9808, mcp9808.jpg, Temperature MCP9808, components/sensor/mcp9808, mcp9808.jpg, Temperature
MH-Z19, components/sensor/mhz19, mhz19.jpg, CO2 & Temperature MH-Z19, components/sensor/mhz19, mhz19.jpg, CO2 & Temperature
MS5611, components/sensor/ms5611, ms5611.jpg, Pressure MS5611, components/sensor/ms5611, ms5611.jpg, Pressure
NTC Thermistor, components/sensor/ntc, ntc.jpg, Temperature NTC Thermistor, components/sensor/ntc, ntc.jpg, Temperature
QMP6988, components/sensor/qmp6988, qmp6988_env3.png, Temperature & Pressure
RadonEye BLE, components/sensor/radon_eye_ble, radon_eye_logo.png, Radon RadonEye BLE, components/sensor/radon_eye_ble, radon_eye_logo.png, Radon
RuuviTag, components/sensor/ruuvitag, ruuvitag.jpg, Temperature & Humidity & Accelerometer RuuviTag, components/sensor/ruuvitag, ruuvitag.jpg, Temperature & Humidity & Accelerometer
SCD30, components/sensor/scd30, scd30.jpg, CO2 & Temperature & Humidity SCD30, components/sensor/scd30, scd30.jpg, CO2 & Temperature & Humidity
@ -400,6 +402,7 @@ Binary Sensor Components
Analog Threshold, components/binary_sensor/analog_threshold, analog_threshold.svg Analog Threshold, components/binary_sensor/analog_threshold, analog_threshold.svg
ESP32 BLE Presence, components/binary_sensor/ble_presence, bluetooth.svg ESP32 BLE Presence, components/binary_sensor/ble_presence, bluetooth.svg
ESP32 Touch Pad, components/binary_sensor/esp32_touch, touch.svg ESP32 Touch Pad, components/binary_sensor/esp32_touch, touch.svg
Hydreon Rain Sensor Binary Sensor, components/binary_sensor/hydreon_rgxx, hydreon_rg9.jpg
MPR121 Capacitive Touch Sensor, components/binary_sensor/mpr121, mpr121.jpg MPR121 Capacitive Touch Sensor, components/binary_sensor/mpr121, mpr121.jpg
Nextion Binary Sensor, components/binary_sensor/nextion, nextion.jpg Nextion Binary Sensor, components/binary_sensor/nextion, nextion.jpg
Template Binary Sensor, components/binary_sensor/template, description.svg Template Binary Sensor, components/binary_sensor/template, description.svg
@ -462,9 +465,11 @@ Light Components
Light Partition, components/light/partition, color_lens.svg Light Partition, components/light/partition, color_lens.svg
Tuya Dimmer, components/light/tuya, tuya.png Tuya Dimmer, components/light/tuya, tuya.png
Shelly Dimmer, components/light/shelly_dimmer, shellydimmer2.jpg
Custom Light, components/light/custom, language-cpp.svg Custom Light, components/light/custom, language-cpp.svg
H-bridge Light, components/light/hbridge, brightness-medium.svg H-bridge Light, components/light/hbridge, brightness-medium.svg
Sonoff D1 Dimmer, components/light/sonoff_d1, sonoff_d1.jpg
Looking for WS2811 and similar individually addressable lights? Have a look at the Looking for WS2811 and similar individually addressable lights? Have a look at the
:doc:`FastLED Light </components/light/fastled>`. :doc:`FastLED Light </components/light/fastled>`.