2
Doxygen
@ -38,7 +38,7 @@ PROJECT_NAME = "ESPHome"
|
|||||||
# could be handy for archiving the generated documentation or if some version
|
# could be handy for archiving the generated documentation or if some version
|
||||||
# control system is used.
|
# control system is used.
|
||||||
|
|
||||||
PROJECT_NUMBER = 2022.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
|
||||||
|
2
Makefile
@ -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
|
||||||
|
|
||||||
|
BIN
_static/changelog-2022.4.0.png
Normal file
After Width: | Height: | Size: 71 KiB |
@ -1 +1 @@
|
|||||||
2022.3.2
|
2022.4.0
|
240
changelog/2022.4.0.rst
Normal 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`
|
@ -2,7 +2,7 @@ Changelog
|
|||||||
=========
|
=========
|
||||||
|
|
||||||
.. redirect::
|
.. redirect::
|
||||||
:url: /changelog/2022.3.0.html
|
:url: /changelog/2022.4.0.html
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:glob:
|
:glob:
|
||||||
|
55
components/binary_sensor/hydreon_rgxx.rst
Normal 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`
|
@ -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
|
||||||
-------------------
|
-------------------
|
||||||
|
@ -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.
|
||||||
|
@ -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:
|
||||||
|
BIN
components/display/images/tm1637_2devices.png
Normal file
After Width: | Height: | Size: 9.1 KiB |
BIN
components/display/images/tm1637_3plus_devices.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
components/display/images/tm1637_key_connections.png
Normal file
After Width: | Height: | Size: 9.6 KiB |
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
@ -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
|
||||||
--------
|
--------
|
||||||
|
BIN
components/light/images/sonoff_d1.jpg
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
components/light/images/sonoff_d1_gpio0.jpg
Normal file
After Width: | Height: | Size: 316 KiB |
BIN
components/light/images/sonoff_d1_serial.jpg
Normal file
After Width: | Height: | Size: 280 KiB |
99
components/light/shelly_dimmer.rst
Normal 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`
|
124
components/light/sonoff_d1.rst
Normal 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`
|
@ -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
|
||||||
---------------------------------
|
---------------------------------
|
||||||
|
|
||||||
|
@ -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`
|
||||||
|
@ -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
|
||||||
|
114
components/sensor/hydreon_rgxx.rst
Normal 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`
|
BIN
components/sensor/images/hydreon_rg9_full.jpg
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
components/sensor/images/xiaomi_rtcgq02lm.jpg
Normal file
After Width: | Height: | Size: 81 KiB |
@ -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:
|
||||||
|
86
components/sensor/qmp6988.rst
Normal 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`
|
@ -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
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
|
4
conf.py
@ -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.
|
||||||
|
@ -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
After Width: | Height: | Size: 6.0 KiB |
BIN
images/qmp6988_env3.png
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
images/shellydimmer2.jpg
Normal file
After Width: | Height: | Size: 7.8 KiB |
BIN
images/sonoff_d1.jpg
Normal file
After Width: | Height: | Size: 8.5 KiB |
BIN
images/xiaomi_rtcgq02lm.jpg
Normal file
After Width: | Height: | Size: 3.8 KiB |
@ -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>`.
|
||||||
|